1+GHz
256 cogs/cores with 64KB
64MB hub
64 I/O
P2-HOT instruction set
This would be a tiny die. No need for more than 64 I/O to keep a sane smt package.
Of course, somewhere near 22nm die life kicks in. The metal migrates (or should I say "flows") such that life expectancy can only be guaranteed for 10 years. While pcs and phones don't matter, some products like cars, tvs, medical electronics etc are expected to last a lot longer than 10 years! A new problem on the horizon!!
Here in Oz I think a packet of cigs is around $40 now so that is something like $2 per cigarette. So, about 2 1/2 cigs per Raspberry Pi Zero
Now if I could just get my latest prop board down to $5. But the envelope, anti static bag, and postage is almost $4 And Australia Post are talking about some serious price increases too.
I was thinking of going down under to learn forth. But $40 a pack is a nono for me.
I didn't back the CHIP that mont, already having RPi's to spare; so I back this phoned. At last I will have a phone that works, or only myself to blame if it dont
I didn't back the CHIP that mont, already having RPi's to spare; so I back this phoned. At last I will have a phone that works, or only myself to blame if it dont
Yeah, Seairth pointed this out, earlier in this thread. Very cool indeed. The possibilities are endless.
I guess I need to bite the bullet and get to grips with one of the supported hieroglyphic programming languages
Whoa, you have a Linux machine capable of running pretty much any language there is and you want to use BASIC on it!
Why did we bother with the past four and a half decades of development in programming languages?
Luckily we can run FORTRAN on these things so I'm happy:)
I guess I still don't get what is so great about many of the popular languages of today. On the one hand we are aiming for minimal power consumption but then we pick a development tool that makes the processor work harder to achieve acceptable performance.
As it happens we know exactly when that day was, it was on May 1, 1964 when John Kemeny and Thomas Kurtz designed BASIC Over 50 years ago!
Now, if you happen to be talking about Visual BASIC which has all the features of modern programming languages and can be compiled to native code, you have a point. But to my mind that is no longer BASIC, it's just an other variant of all the common themes we have in most of the other commonly used languages.
Jeff Atwood points out that Python is slow. He then ascribes this to it being an interpreted language. May be so, its hard to optimize a dynamic language at run time. The benchmarks he has there are all about low level math. But what if we were dealing with string searching or doing arithmetic on 1000 didgit numbers? Is C++ and it's std libs or bignum libraries going to be much faster? Certainly it won't be as easy to program.
Jeff also excludes JavaScript. An interpreted language that can run almost as fast as native compiled C++.
Strangely one of the easiest to use, cheapest and most power efficient micro-controller systems I know of is the Espruino. Programmed in Javascript.
Performance is going to continue to be revisited for a while. We've sort of topped out on single thread performance. And multiprocessing of various kinds just isn't an obvious general replacement.
The JS work to run that fast is impressive, and a hint at where things might go.
Power matters too. More efficient code is always better for power reasons. Apple has made a lot of low leven kernel scheduling changes to maximize code throughput per unit of power, and there is more to come.
Well, we were considering energy efficiency here not all out speed.
Seems to me the way for code to be energy efficient is:
1) Run it as slowly as possible. A lower CPU clock rate.
That's fine but often you want speed in bursts. Very fast when rendering a web page but pretty much dead will do whilst you are reading. Same applies to many applications, even in real-time embedded systems.
2) Don't run more code that you have to to get the job done. Code optimization.
That brings us to the efficiency tweaks of Apples kernel and such like. We don't want the OS fiddling around doing useless work.
It also brings us to the compiled vs interpreter arguments. Why have your processor wasting energy interpreting byte codes or whatever? Just compile to native.
JS is interesting in this respect because the very semantics of the language is event based. If there are no incoming events it lies dormant. There is no "while (1)" or "repeat" do forever loop in there. That means there need not be any OS kernel underneath to deschedule and reschedule it. Such rescheduling is energy wasting "busy work".
That means that something like the Esprunino can be incredibly energy efficient, with no extra work on the programmers behalf. Your code spends most of it's time in low power sleep mode. When an interesting event happens the relevant event handler is fired off, does it's job and returns. Automatically you are back in low power mode.
Unfortunately the Espruino JS engine is no way as efficient as modern JS engines in browsers or Node.js. There is just not enough room in a micro-controller to put a JIT compiler etc.
Well, we were considering energy efficiency here not all out speed.
..... There is just not enough room in a micro-controller to put a JIT compiler etc.
Even if that JIT compiler could fit, it would play havoc with the energy efficiency.
Of course, no one cares on a GHz desktop with a 100W power envelope.
If you want the appeal of script languages, with the speed of compilers, another approach would be to duplicate
what the original Turbo Pascal managed.
Say 8080 opcodes are ruffly a quarter of the size of P1/P2 opcodes, a Turbo Pascal should use 160K on a P2. Interesting.
But as soon as @Heater or @DR_Acula get CP/M running on the P2, we get tons of languages...
long live the Z80.
Enjoy!
Mike
Your links on a RAID array are not going anywhere,
404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
Like to view.
well - sadly that server expired a couple of days ago. @#%$%$&^$ Strato Webservices. Sure it was a w2003 system, its running since over ten years at their hosting center. And we have a backup to some backup server at Strato.
Sadly after total hardware crash of the dedicated server, Strato is not able to provide a W2003 server image to install so we could reload our backup of the system.
They can just give us a new dedicated W2012 server.
So MSrobots webserver is out of business for now.
The whole RAISD system/project flopped completely. No interest at all, even if it was working as advertised. @MacTuxLin build 100 of them for me, I did the software. I paid him in full and we agreed he kept 25 just in case somebody down under needs some. 50 of them went to PropellerPowered and 25 to myself.
I send some of them kits out to people I took the software from to modify for my needs after asking them for their address. Set up the website with demos and stuff, wrote documentation and -
sold none.
One guy emailed me he got one from PropellerPowered and had some questions. Sadly @Jeff did not even reimbursed me for the only one sold I know of.
But @Jeff is missing for other reasons and I am not mad at him. Same with @MacTuxLin. Both of them are good guys.
I might have working copies of the software here, but my svn server is missing now also so I have to check for revisions in different folders/machines.
Enjoy!
Mike.
@Heater.
please do not mention Git or GitHub now. Just say something about Microsoft or so.
But as soon as @Heater or @DR_Acula get CP/M running on the P2, we get tons of languages...
Well, yeees.. but those still are not native compilers.
However, such Emulation paths can be useful for bootstrapping.
Project Oberon is very (Turbo+CP/M) like, but comes with all the source code... & it hosts on 1MByte of SRAM,
so that's heading toward P2 territory.
(Much closer to P2 than any 4GB OS desktop)
I notice there is a Windows emulator here, & a P2 emulated version of that, would help testing whilst the code generator is modified to generate native P2. Then, the emulator is no longer needed.
I should add this link : http://www.astrobe.com/RISC5/default.htm
It mentions a reduced OS version, that can run on FPGAs with 192k internal RAM, certainly within P2
Well, we were considering energy efficiency here not all out speed.
..... There is just not enough room in a micro-controller to put a JIT compiler etc.
Even if that JIT compiler could fit, it would play havoc with the energy efficiency.
Of course, no one cares on a GHz desktop with a 100W power envelope.
If you want the appeal of script languages, with the speed of compilers, another approach would be to duplicate
what the original Turbo Pascal managed.
Checking the size of some of the more compact compilers I have here, I find 840k, 850k, 1M+, or still roughly 20 times larger.
Makes me wonder how QNX could let me switch between 4 terminal windows, each one running a different program. I could switch between Magic Wand, Supercalc, and dBase as well as a fourth program, and that was all done on a Z80 S100 system with 64K ram.
I have one of your RAID kits (waiting to be built). It was purchased from Propellerpowered. If you ever do run across the software, I could use a .zip of the latest, just so I do have some software when I finish the kit. No real hurry, my completion rate on projects is very low.
Even if that JIT compiler could fit, it would play havoc with the energy efficiency. Of course, no one cares on a GHz desktop with a 100W power envelope.
I'm not about to say that JS is the be all an end all of efficiency. Far from it. I only point out that the language semantics itself have features that make being efficient very easy.
A few years back my first production server process went live. It was handling hundreds of XML messages per second. I was amazed to find that it's CPU usage was about the same as the C++ version of the same process that it replaced!
Conclusion: The JIT does not play havoc with energy efficiency.
I runs such things on the Raspberry Pi now a days. That's more like 1 Watt than a 100. Most of that power is burned in the Pi GPU and peripheral chips that take up hundreds of times more transistors than the ARM CPU running my code.
Turbo Pascal is a brilliant thing. No way am I going back to Pascal though.
But now you go on to code size. Which is not directly related to energy efficiency.
@msrobots,
That is a sad tale about RAID and it's servers.
I will refrain from the obvious comments. But at your request: Never trust in Microsoft.
I'm very jealous of your having Niklaus as a professor.
I will refrain from the obvious comments. But at your request: Never trust in Microsoft.
Easy, heater. Some heavy-handed moderator sunk my "Vista Update Party" thread. It was certainly not a Microsoft bashing thread, but apparently any mention of MS in a less-than-positive light tickles itchy mouse fingers.
One more mention of MS or Windows and this thread may sleep with the fishes.
In a related story, my Vista thread has a happy ending. Oops, I may have just triggered Threadmageddon...
Now, if you happen to be talking about Visual BASIC which has all the features of modern programming languages and can be compiled to native code, you have a point. But to my mind that is no longer BASIC, it's just an other variant of all the common themes we have in most of the other commonly used languages.
I have never used VB nor BASICA (GWBASIC).
I went straight in to QuickBASIC in 1986 "which has all the features of modern programming languages and can be compiled to native code". However, load up any code written for the aforementioned interpreters and it will run (a heck of a lot quicker) without modification.
If a Model T Ford is a car then what is a Bugatti Veyron? I still call it a car.
For me, VB was/is more of an office-app language where even a "Hello World" results in bloatware. I switched to PowerBASIC which is capable of producing .exe's as small and fast as any C compiler.
But what if we were dealing with string searching or doing arithmetic on 1000 didgit numbers? Is C++ and it's std libs or bignum libraries going to be much faster? Certainly it won't be as easy to program.
Does any language out there have the string-handling power/ease of programming to compete with BASIC?
PowerBASIC and the like might be fun an all but being proprietary, closed source, single vendor, non-standard it is no interest in the modern world.
I am more interested in having tools/support to let me get the job done and I have to say that the great open source Linux, for example, doesn't let me do that....I still struggle to install/uninstall programs, let alone actually use them. MS and QuickBASIC literally put me in business, 30 years ago...Yeah, I have had a lot of fun while my competitors dreaded every compile/link/load.
And more generally a huge and ever growing part of the software development world, from Google to Facebook down wards. Even MS is embracing the open source way.
Yeah, nothing wrong with a tool like PowerBasic. As far as I'm concerned, that's closed source, but they are adding enough value to make sense. It's a valid way to go.
The modern world is a BIG place Heater. What a lot of people miss is the implications of that bigness. One of those implications is how niches work. If you are in one, or create one, and the body of people participating fund the niche, everybody is golden, regardless of what "the modern world" actually does or thinks about any of it.
...just sayin'
Hey I just looked and, Pnut is 600Kb. That's editor, compiler, assembler, loader all in one. Based on earlier work, the guts of SPIN are in there already. Work to be done there, but the bulk code size number is sane.
Break those up a little, and maybe supply the basics on the P2 chip, assembler, monitor, loader, etc... and bring SPIN and friends in on SD card. A system with a P1, P2, and a couple of SD cards, EEPROM, etc... may well punch well above it's weight. BASIC, SPIN+PASM, C, FORTH.. could be some good times ahead people!
For a while, I was thinking it would just be a curio. But, it's looking like Propellers can soon be Programming Propellers and it might just be a respectable setup.
Cluso has the P1 OS looking interesting, and may well cram the basics onto a P1 as well. (which is kind of notable really)
None of this takes away from the well established path, OSS chain, PC, etc... It's just one of those potential niches I wrote about. Finding or creating one can pay us (and I mean US as users doing stuff for people, and Parallax as supplier) pretty well. It's worth some thought.
I expect to have Michael Park's Sphinx Compiler working under my PropOS shortly
Just depends on my available time.
LEX and LINK run but I haven't tested they work correctly. CODEGEN fails presumably because it is too big so I have some extra work to do here. I wanted them to be commands under PropOS rather than standalone and separate binaries.
Then I will need an editor. Maybe ZiCog using hub ram to run CPM with an editor???
Comments
1+GHz
256 cogs/cores with 64KB
64MB hub
64 I/O
P2-HOT instruction set
This would be a tiny die. No need for more than 64 I/O to keep a sane smt package.
Of course, somewhere near 22nm die life kicks in. The metal migrates (or should I say "flows") such that life expectancy can only be guaranteed for 10 years. While pcs and phones don't matter, some products like cars, tvs, medical electronics etc are expected to last a lot longer than 10 years! A new problem on the horizon!!
I was thinking of going down under to learn forth. But $40 a pack is a nono for me.
Enjoy!
Mike
Do you mean this?
https://www.kickstarter.com/projects/seeed/rephone-kit-worlds-first-open-source-and-modular-p
I didn't back the CHIP that mont, already having RPi's to spare; so I back this phoned. At last I will have a phone that works, or only myself to blame if it dont
I guess I need to bite the bullet and get to grips with one of the supported hieroglyphic programming languages
I guess I still don't get what is so great about many of the popular languages of today. On the one hand we are aiming for minimal power consumption but then we pick a development tool that makes the processor work harder to achieve acceptable performance.
http://blog.codinghorror.com/the-day-performance-didnt-matter-any-more/
"the day performance didnt matter any more"
As it happens we know exactly when that day was, it was on May 1, 1964 when John Kemeny and Thomas Kurtz designed BASIC Over 50 years ago!
Now, if you happen to be talking about Visual BASIC which has all the features of modern programming languages and can be compiled to native code, you have a point. But to my mind that is no longer BASIC, it's just an other variant of all the common themes we have in most of the other commonly used languages.
Jeff Atwood points out that Python is slow. He then ascribes this to it being an interpreted language. May be so, its hard to optimize a dynamic language at run time. The benchmarks he has there are all about low level math. But what if we were dealing with string searching or doing arithmetic on 1000 didgit numbers? Is C++ and it's std libs or bignum libraries going to be much faster? Certainly it won't be as easy to program.
Jeff also excludes JavaScript. An interpreted language that can run almost as fast as native compiled C++.
Strangely one of the easiest to use, cheapest and most power efficient micro-controller systems I know of is the Espruino. Programmed in Javascript.
The JS work to run that fast is impressive, and a hint at where things might go.
Power matters too. More efficient code is always better for power reasons. Apple has made a lot of low leven kernel scheduling changes to maximize code throughput per unit of power, and there is more to come.
Seems to me the way for code to be energy efficient is:
1) Run it as slowly as possible. A lower CPU clock rate.
That's fine but often you want speed in bursts. Very fast when rendering a web page but pretty much dead will do whilst you are reading. Same applies to many applications, even in real-time embedded systems.
2) Don't run more code that you have to to get the job done. Code optimization.
That brings us to the efficiency tweaks of Apples kernel and such like. We don't want the OS fiddling around doing useless work.
It also brings us to the compiled vs interpreter arguments. Why have your processor wasting energy interpreting byte codes or whatever? Just compile to native.
JS is interesting in this respect because the very semantics of the language is event based. If there are no incoming events it lies dormant. There is no "while (1)" or "repeat" do forever loop in there. That means there need not be any OS kernel underneath to deschedule and reschedule it. Such rescheduling is energy wasting "busy work".
That means that something like the Esprunino can be incredibly energy efficient, with no extra work on the programmers behalf. Your code spends most of it's time in low power sleep mode. When an interesting event happens the relevant event handler is fired off, does it's job and returns. Automatically you are back in low power mode.
Unfortunately the Espruino JS engine is no way as efficient as modern JS engines in browsers or Node.js. There is just not enough room in a micro-controller to put a JIT compiler etc.
Even if that JIT compiler could fit, it would play havoc with the energy efficiency.
Of course, no one cares on a GHz desktop with a 100W power envelope.
If you want the appeal of script languages, with the speed of compilers, another approach would be to duplicate
what the original Turbo Pascal managed.
This link
http://developers.slashdot.org/story/11/11/01/1343241/things-that-turbo-pascal-is-smaller-than
mentions
at 39,731 bytes, the entire Turbo Pascal 3.02 executable (compiler and IDE)
Checking the size of some of the more compact compilers I have here, I find 840k, 850k, 1M+, or still roughly 20 times larger.
Say 8080 opcodes are ruffly a quarter of the size of P1/P2 opcodes, a Turbo Pascal should use 160K on a P2. Interesting.
But as soon as @Heater or @DR_Acula get CP/M running on the P2, we get tons of languages...
long live the Z80.
Enjoy!
Mike
Your links on a RAID array are not going anywhere,
404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
Like to view.
well - sadly that server expired a couple of days ago. @#%$%$&^$ Strato Webservices. Sure it was a w2003 system, its running since over ten years at their hosting center. And we have a backup to some backup server at Strato.
Sadly after total hardware crash of the dedicated server, Strato is not able to provide a W2003 server image to install so we could reload our backup of the system.
They can just give us a new dedicated W2012 server.
So MSrobots webserver is out of business for now.
The whole RAISD system/project flopped completely. No interest at all, even if it was working as advertised. @MacTuxLin build 100 of them for me, I did the software. I paid him in full and we agreed he kept 25 just in case somebody down under needs some. 50 of them went to PropellerPowered and 25 to myself.
I send some of them kits out to people I took the software from to modify for my needs after asking them for their address. Set up the website with demos and stuff, wrote documentation and -
sold none.
One guy emailed me he got one from PropellerPowered and had some questions. Sadly @Jeff did not even reimbursed me for the only one sold I know of.
But @Jeff is missing for other reasons and I am not mad at him. Same with @MacTuxLin. Both of them are good guys.
I might have working copies of the software here, but my svn server is missing now also so I have to check for revisions in different folders/machines.
Enjoy!
Mike.
@Heater.
please do not mention Git or GitHub now. Just say something about Microsoft or so.
Well, yeees.. but those still are not native compilers.
However, such Emulation paths can be useful for bootstrapping.
Project Oberon is very (Turbo+CP/M) like, but comes with all the source code... & it hosts on 1MByte of SRAM,
so that's heading toward P2 territory.
(Much closer to P2 than any 4GB OS desktop)
I notice there is a Windows emulator here, & a P2 emulated version of that, would help testing whilst the code generator is modified to generate native P2. Then, the emulator is no longer needed.
http://www.projectoberon.com/
http://www.paddedcell.com/projectoberon/RISCW32.zip
and the host Fpga-core CPU of this system has an emulator here
https://github.com/pdewacht/oberon-risc-emu
I should add this link :
http://www.astrobe.com/RISC5/default.htm
It mentions a reduced OS version, that can run on FPGAs with 192k internal RAM, certainly within P2
Makes me wonder how QNX could let me switch between 4 terminal windows, each one running a different program. I could switch between Magic Wand, Supercalc, and dBase as well as a fourth program, and that was all done on a Z80 S100 system with 64K ram.
That was at the TU Berlin last century. At that time it was Modula2 he was teaching.
Project Oberon looks quite interesting. Sadly no time to dig into.
Enjoy!
Mike
I have one of your RAID kits (waiting to be built). It was purchased from Propellerpowered. If you ever do run across the software, I could use a .zip of the latest, just so I do have some software when I finish the kit. No real hurry, my completion rate on projects is very low.
Sorry to hear it was a failed project for you.
A few years back my first production server process went live. It was handling hundreds of XML messages per second. I was amazed to find that it's CPU usage was about the same as the C++ version of the same process that it replaced!
Conclusion: The JIT does not play havoc with energy efficiency.
I runs such things on the Raspberry Pi now a days. That's more like 1 Watt than a 100. Most of that power is burned in the Pi GPU and peripheral chips that take up hundreds of times more transistors than the ARM CPU running my code.
Turbo Pascal is a brilliant thing. No way am I going back to Pascal though.
But now you go on to code size. Which is not directly related to energy efficiency.
@msrobots,
That is a sad tale about RAID and it's servers.
I will refrain from the obvious comments. But at your request: Never trust in Microsoft.
I'm very jealous of your having Niklaus as a professor.
Easy, heater. Some heavy-handed moderator sunk my "Vista Update Party" thread. It was certainly not a Microsoft bashing thread, but apparently any mention of MS in a less-than-positive light tickles itchy mouse fingers.
One more mention of MS or Windows and this thread may sleep with the fishes.
In a related story, my Vista thread has a happy ending. Oops, I may have just triggered Threadmageddon...
Arguably MS is off topic for the forum. But in the case of parallax.com and raspberrypi.org I believe its very pertinent.
Ah well.
How can you tell when a thread is sunk?
I thought there was supposedly going to be some kind of notification comment in the thread or something like that.
A thread has been sunk when it no longer rises to the top after a new comment. At least notifications remain on. Until someone "fixes" that.
Good one!
I have never used VB nor BASICA (GWBASIC).
I went straight in to QuickBASIC in 1986 "which has all the features of modern programming languages and can be compiled to native code". However, load up any code written for the aforementioned interpreters and it will run (a heck of a lot quicker) without modification.
If a Model T Ford is a car then what is a Bugatti Veyron? I still call it a car.
For me, VB was/is more of an office-app language where even a "Hello World" results in bloatware. I switched to PowerBASIC which is capable of producing .exe's as small and fast as any C compiler.
Does any language out there have the string-handling power/ease of programming to compete with BASIC?
Yeah, it would have been interesting to see PowerBASIC included.
That would be Javascript. I'm sure there are many others.
PowerBASIC and the like might be fun an all but being proprietary, closed source, single vendor, non-standard it is no interest in the modern world.
OK, I need to have a look
I am more interested in having tools/support to let me get the job done and I have to say that the great open source Linux, for example, doesn't let me do that....I still struggle to install/uninstall programs, let alone actually use them. MS and QuickBASIC literally put me in business, 30 years ago...Yeah, I have had a lot of fun while my competitors dreaded every compile/link/load.
You mean no interest to you. However in the modern world, the company is still selling and making money off PowerBasic.
And more generally a huge and ever growing part of the software development world, from Google to Facebook down wards. Even MS is embracing the open source way.
The modern world is a BIG place Heater. What a lot of people miss is the implications of that bigness. One of those implications is how niches work. If you are in one, or create one, and the body of people participating fund the niche, everybody is golden, regardless of what "the modern world" actually does or thinks about any of it.
...just sayin'
Hey I just looked and, Pnut is 600Kb. That's editor, compiler, assembler, loader all in one. Based on earlier work, the guts of SPIN are in there already. Work to be done there, but the bulk code size number is sane.
Break those up a little, and maybe supply the basics on the P2 chip, assembler, monitor, loader, etc... and bring SPIN and friends in on SD card. A system with a P1, P2, and a couple of SD cards, EEPROM, etc... may well punch well above it's weight. BASIC, SPIN+PASM, C, FORTH.. could be some good times ahead people!
For a while, I was thinking it would just be a curio. But, it's looking like Propellers can soon be Programming Propellers and it might just be a respectable setup.
Cluso has the P1 OS looking interesting, and may well cram the basics onto a P1 as well. (which is kind of notable really)
None of this takes away from the well established path, OSS chain, PC, etc... It's just one of those potential niches I wrote about. Finding or creating one can pay us (and I mean US as users doing stuff for people, and Parallax as supplier) pretty well. It's worth some thought.
Just depends on my available time.
LEX and LINK run but I haven't tested they work correctly. CODEGEN fails presumably because it is too big so I have some extra work to do here. I wanted them to be commands under PropOS rather than standalone and separate binaries.
Then I will need an editor. Maybe ZiCog using hub ram to run CPM with an editor???