Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Interesting performance thread over at TinyCLR


  • Please log in to reply
16 replies to this topic

#1 fxmaker

fxmaker

    New Member

  • Members
  • Pip
  • 5 posts

Posted 26 April 2012 - 05:00 AM

Hi,

MoonDragon, a fellow over on TinyCLR, implemented what seems to be a fairly fine grained evaluation of actual performance on the FEZ Spider, a .net Gadgeteer board.

His findings were devastating for me and I wonder if a similar result will be found when I fire up the Go that arrived today.

He found the following:


Some of the results I got (in microseconds per single op, rounded down):
Simple for loop: 54
Assignment of const ( y = 5 ): 7
Assignment of var ( y = z ): 11
Multiply constants ( 3 * 5 ): 0
Multiply with var ( 3 * z ): 10
Compare two constants ( 3 > 5 ): 11
Compare with var ( y > 5 ): 41
Compare 2 vars ( y > z ): 45


MoonDragon's full thread is here: Original thread.

Is the runtime on the Go going to place as high a burden on the processor?

(what that is saying above is you effectively only about 100,000 instructions per second in the managed environment)


Thanks

#2 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 26 April 2012 - 05:35 AM

Hi fxmaker,

Is the runtime on the Go going to place as high a burden on the processor?

One of the design goals with Netduino Go was to enable the micros on the modules to do the heavy lifting for native code. So that you can focus on command-and-control logic in your mainboard C# code. We also included a true MiniJTAG (Cortex Debug Port) connection on the mainboard so that you can mix native code into your firmware and debug using a super-inexpensive STLink/V2 JTAG debugger.

All that said, the STM32F405 micro on Netduino Go is several times faster than the 72MHz ARMv4 NXP chips. You will see quite a bit of overhead from the MSIL interpeter (running your C# code) but it should be quite a bit zippier. That chip is a monster. To be specific, 210 DMIPS plus it has a math co-proc on board.

Chris

#3 Arbiter

Arbiter

    Advanced Member

  • Members
  • PipPipPip
  • 132 posts
  • LocationBrisbane, Australia

Posted 26 April 2012 - 11:01 AM

(Forgive me but I've always wanted to say this)

You young whippersnappers don't know how good you've got it. The device you're fretting about is forty times faster than my first computer, on which the BASIC interpreter took 2000 microseconds to go round an empty loop. It has several hundred times more memory, uses about a fifth of the power and is about a tenth of the price.

When I was a lad we had to solder everything together ourselves. Some of the chips on my first motherboard were 74xx series discrete logic gates. Mass storage was done by bitbanging a modified cassette tape deck, and a full system reset typically involved a paperclip. 16K of RAM cost $30 at a time when you could buy a car for $3000 and it got static damaged just by thinking about touching it (or at least seemed to).

Every time I look at a Netduino I think about this and I'm amazed all over again.
One day, all this too shall parse.

#4 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 26 April 2012 - 11:10 AM

When I was a lad we had to solder everything together ourselves. Some of the chips on my first motherboard were 74xx series discrete logic gates. Mass storage was done by bitbanging a modified cassette tape deck, and a full system reset typically involved a paperclip. 16K of RAM cost $30 at a time when you could buy a car for $3000 and it got static damaged just by thinking about touching it (or at least seemed to).

Did you ever try running a BBS from a program stored on an audio cassette? I picked up some of that tech after it was out of style, but I still got to participate in some of the fun :)

I also remember doing a lot of "renum" commands in BASIC, whenever I needed to re-insert a line and wanted the listings to be pretty again :)

Chris

#5 Arbiter

Arbiter

    Advanced Member

  • Members
  • PipPipPip
  • 132 posts
  • LocationBrisbane, Australia

Posted 26 April 2012 - 11:47 AM

Did you ever try running a BBS from a program stored on an audio cassette? I picked up some of that tech after it was out of style, but I still got to participate in some of the fun :)

I also remember doing a lot of "renum" commands in BASIC, whenever I needed to re-insert a line and wanted the listings to be pretty again :)

Chris



My BBS ambitions never really got off the ground as I couldn't get the necessary amendments to the Telecommunications Act ratified by the senate, which is to say my mum wouldn't let me tie up the phone like that.

Oh yes, REN 100, 10. I think the first thing I ever touch-typed was LIST. At one point I had a Logo compiler crammed into 14.5K of the available 16K of application memory. I got it from some magazine listing originally. It did work but it was glacially slow. I profiled the code (using my brain, no profilers for that platform) and rewrote the parser in Z80 assembler and invoked it via USR. It was still slow but not ridiculous and there was another 1K of Logo application space!

Now that I think about it, fitting my telemetry gathering software into the N+ has been eerily reminiscent of that Logo project.

Hey Chris am I ever going to see 4.2 on the N+? I know the Go is the go, as it were, but I have a project to finish.You were making positive noises about increased app space. Will it happen? I don't need much more, it's so close to fitting it's not funny.One more K and I'd be able to use the debugger again (at the moment using the debugger causes OM lockups).
One day, all this too shall parse.

#6 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 26 April 2012 - 12:09 PM

Hey Chris am I ever going to see 4.2 on the N+? I know the Go is the go, as it were, but I have a project to finish.You were making positive noises about increased app space. Will it happen? I don't need much more, it's so close to fitting it's not funny.One more K and I'd be able to use the debugger again (at the moment using the debugger causes OM lockups).

We have an RC5 update. A few folks are testing it. If they give us a thumbs-up, we can post it :)

We hope to increase the space to 56KB. Right now we're at 48KB.

Chris

#7 greg

greg

    Advanced Member

  • Members
  • PipPipPip
  • 169 posts
  • LocationChicago, IL

Posted 26 April 2012 - 02:06 PM

Hi fxmaker,

One of the design goals with Netduino Go was to enable the micros on the modules to do the heavy lifting for native code. So that you can focus on command-and-control logic in your mainboard C# code. We also included a true MiniJTAG (Cortex Debug Port) connection on the mainboard so that you can mix native code into your firmware and debug using a super-inexpensive STLink/V2 JTAG debugger.

All that said, the STM32F405 micro on Netduino Go is several times faster than the 72MHz ARMv4 NXP chips. You will see quite a bit of overhead from the MSIL interpeter (running your C# code) but it should be quite a bit zippier. That chip is a monster. To be specific, 210 DMIPS plus it has a math co-proc on board.

Chris


Chris you and your STM's! Although I will agree the F4s are awesome.

BTW - a little off topic but I thought you were leaning towards the Atmel Cortex-M4, but you went with the ST? Not that I'm complaining, I really like the ST stuff.

-Greg

#8 fxmaker

fxmaker

    New Member

  • Members
  • Pip
  • 5 posts

Posted 26 April 2012 - 10:31 PM

Who you calling a whippersnapper :) My first digital music player was an AM radio tuned between stations sitting on a drum which caused specific RFI based on where the heads were. My first mainframe had 4K of memory. I got my first Unix distribution directly from Ken Thompson own hands. My first program was entered with switches. I didn't know if I could ever fill an RL05. And and and ... You're right - the whippersnappers ARE spoiled. :) Wish I were one of them.

#9 Arbiter

Arbiter

    Advanced Member

  • Members
  • PipPipPip
  • 132 posts
  • LocationBrisbane, Australia

Posted 27 April 2012 - 12:06 AM

Who you calling a whippersnapper :)


Clearly not you.

My first digital music player was an AM radio tuned between stations sitting on a drum which caused specific RFI based on where the heads were.


Clever.

My first mainframe had 4K of memory.


Was it the type that was woven on a loom with little ring magnets at the junction of the wires? We had some of that.

I got my first Unix distribution directly from Ken Thompson own hands.
My first program was entered with switches.


Now I'm impressed. :)

I didn't know if I could ever fill an RL05.


Don't be absurd, those things store millions of bytes.

We had to keep ours in a cardboard box. At the bottom of a lake. </python>
One day, all this too shall parse.

#10 fxmaker

fxmaker

    New Member

  • Members
  • Pip
  • 5 posts

Posted 27 April 2012 - 03:39 AM

Clever.


Thank you. The competition wasn't so much who could play the best song. It was more like who could play a recognizable song.

Was it the type that was woven on a loom with little ring magnets at the junction of the wires? We had some of that.


Yes. Beautiful creations made by persons who had previously worked in the silk industry.

Now I'm impressed. :)


In those days you phoned those guys up, asked nicely and sent them media. Then, you waited until the postman returned with a copy of whatever it was on their development machine that day.

We had to keep ours in a cardboard box. At the bottom of a lake. </python>


Now that's clever!

Year's later I missed the front panel bus lights so much I wrote a front panel emulator for the Amiga. With all applications running in a common address space it was easy to capture the program counter of the application that was running at the time of a low level interrupt wedged into the OS (just peek the right number of bytes backward on the stack). Shove the PC into the front panel emulator's memory where it would be picked up in user mode and displayed in little make believe lights.

Ahhh. The nostalgia!

#11 Arbiter

Arbiter

    Advanced Member

  • Members
  • PipPipPip
  • 132 posts
  • LocationBrisbane, Australia

Posted 27 April 2012 - 12:29 PM

Years later I missed the front panel bus lights so much I wrote a front panel emulator for the Amiga. With all applications running in a common address space it was easy to capture the program counter of the application that was running at the time of a low level interrupt wedged into the OS (just peek the right number of bytes backward on the stack). Shove the PC into the front panel emulator's memory where it would be picked up in user mode and displayed in little make believe lights.


Well then, there's your first Netduino project: use a Netduino as a front panel for another Netduino. You can implement not just the lamps but front panel switches that work. I can get you the datasheets for the chipset; your Netduino could actually have a good old fashioned Front Panel. You could go nuts and put it in an enamel steel box with a lock door and a peep window, ideally with a notice on 132 column fanfold that says

ACHTUNG!

ALLES TURISTEN UND NONTEKNISCHEN LOOKENPEEPERS!

DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKSEN.

IST NICHT FÜR GEWERKEN BEI DUMMKOPFEN. DER RUBBERNECKEN SIGHTSEEREN KEEPEN DAS COTTONPICKEN HÄNDER IN DAS POCKETS MUSS.

ZO RELAXEN UND WATSCHEN DER BLINKENLICHTEN.


It would have to work a little differently given the much higher speed of the Netduino (note clever jab at whippersnappers) but I think it could be a genuinely useful diagnostic tool.
One day, all this too shall parse.

#12 Nevyn

Nevyn

    Advanced Member

  • Members
  • PipPipPip
  • 1072 posts
  • LocationNorth Yorkshire, UK

Posted 27 April 2012 - 01:33 PM

We had to keep ours in a cardboard box. At the bottom of a lake. </python>

That was going through my mind :)

Regards,
Mark

To be or not to be = 0xFF

 

Blogging about Netduino, .NET, STM8S and STM32 and generally waffling on about life

Follow @nevynuk on Twitter


#13 EricMeyer

EricMeyer

    Advanced Member

  • Members
  • PipPipPip
  • 41 posts
  • LocationAllen, Texas

Posted 27 April 2012 - 02:22 PM

I worked as a civilian contractor for the Navy in the 70s on a Flight Simulator for training pilots on carrier landings. Our operators/Instructors console was simply gorgeous and I would love to create something like that. Talk about der-blinkenlichten! Of course I have no idea what use it would be, but it sure was beautiful. The younguns do not appreciate how far we have come since the "good ole" days though. The first hard drive I ever bought cost $2500.00 and it only held 5MB. I thought I would never fill it up! -Eric

#14 Arbiter

Arbiter

    Advanced Member

  • Members
  • PipPipPip
  • 132 posts
  • LocationBrisbane, Australia

Posted 29 April 2012 - 01:07 PM

That was going through my mind :)

Regards,
Mark



Computer hardware is probably the only field in which life really is like that Python sketch. For example (in best mock Yorkshire accent)

When I were at uni, our department only 'ad one computer. Sixty-three of us, there were, standing in line for one aging keypunch - and that broke down every other week. We couldn't afford no fancy debugger, there weren't enough cycles for the likes o' us. We 'ad to think about 'ow t'code might run.


Of course five years later it was a very different world, with three rooms full of VT220s for three Vaxes all networked and a printer in two of the rooms. Step-through debuggers existed, but we still didn't use them - and strangely I think it stood us in good stead. Fast forward to present and I can't use the debugger on my Netduino because with my app loaded and initialised there isn't enough RAM to accomodate the overheads.
One day, all this too shall parse.

#15 carb

carb

    Advanced Member

  • Members
  • PipPipPip
  • 352 posts
  • LocationCrystal River, Florida

Posted 29 April 2012 - 01:49 PM

Computer hardware is probably the only field in which life really is like that Python sketch. For example (in best mock Yorkshire accent)



Of course five years later it was a very different world, with three rooms full of VT220s for three Vaxes all networked and a printer in two of the rooms. Step-through debuggers existed, but we still didn't use them - and strangely I think it stood us in good stead. Fast forward to present and I can't use the debugger on my Netduino because with my app loaded and initialised there isn't enough RAM to accomodate the overheads.

I think that someone, somewhere is planning on making a module for the Netduino Go! that has a 5 1/4" single sided floppy drive. Soon I hope I have a few disks at work.

#16 samjones

samjones

    Advanced Member

  • Members
  • PipPipPip
  • 105 posts

Posted 01 May 2012 - 02:23 AM

And here I thought I was the oldest poker on this board.... I was bootstrapping Imsai 8080 ( http://en.wikipedia....wiki/IMSAI_8080 ) as a ten year old from the front panel, and loading the BASIC interpreter Bill Gates wrote from paper tape. Fantastic bunch of fogeys around here!

#17 carb

carb

    Advanced Member

  • Members
  • PipPipPip
  • 352 posts
  • LocationCrystal River, Florida

Posted 01 May 2012 - 02:42 AM

And here I thought I was the oldest poker on this board.... I was bootstrapping Imsai 8080 ( http://en.wikipedia....wiki/IMSAI_8080 ) as a ten year old from the front panel, and loading the BASIC interpreter Bill Gates wrote from paper tape.

Fantastic bunch of fogeys around here!

I'm only 59 and about 5 days old, not sure which number is most significant.

Started out as a reactor operator using a computer that recorded plant performance data on paper tape.

I normally still learn faster than I forget, just not as fast as the kids. (No disrepect intended):P

Chuck




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.