Re: [fonc] Alto-2?
Related to Arduino is the Papilo One FPGA board: http://gadgetfactory.net/ Not a compatible form factor (pin-outs don't accept Arduino shields AFAICT), but low cost and might be a good starting point. cheers, danm On 5/25/11 6:18 PM, K. K. Subramaniam wrote: On Thursday 26 May 2011 3:14:48 AM Casey Ransberger wrote: I miss taking apart computers. It's wonderful that they've gotten so small, but it comes at a price, I think. No one's really figured out a way to make something that small which leaves room for serviceability. When I was a kid, I learned so much with the case open. Have you looked at Arduino boards? It is a fully-open system that can be configured into many form factors and puts the fun back into programming. Subbu ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Alto-2?
The main features of the Alto were a terrific combination of speed, parsimony, and architecture. -- Speed came from bipolar transistors. It had a 150ns microinstruction time. -- Parsimony allowed these to be economic enough for a 1972 personal computer/workstation (we eventually built almost 2000 of these). -- Architecture allowed it to be very flexible without sacrificing speed. To just mention one great idea: it had 16 zero-overhead program counters and separate logic to decide which one would be used for the next microinstruction -- this allowed bottom level virtual multicore multitasking for system functions (running the display, disk, handling I/O, painting the screen, emulating VHLLs, etc. (The Lincoln Labs TX-2 on which Sketchpad was done, also had multiple program counters, etc.) So an Alto-2 exercise should try to think through the issues of speed, parsimony and architecture in today's world of possibilities! Cheers, Alan From: Jecel Assumpcao Jr. je...@merlintec.com To: Fundamentals of New Computing fonc@vpri.org Sent: Wed, May 25, 2011 6:57:51 PM Subject: Re: [fonc] Alto-2? Ian Piumarta wrote on Wed, 25 May 2011 21:20:24 -0400 Dear Casey, a) I want to play with software b) I want to play with FPGAs You could start with Thacker's 'Tiny Computer' (described from p.123 onwards in http://piumarta.com/pov/points-of-view.pdf) and add/fix whatever you think is missing/broken. Great advice, see also http://projects.csail.mit.edu/beehive/ You might consider starting out with a simulator before moving on to FPGAs. See the example microprocessor in http://www.tkgate.org/ This tool is a lot of fun. Unfortunately, I'll only be able to post a proper reply on Friday (and can make comments on SiliconSqueak then). -- Jecel ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Alto-2?
A couple of years ago we started this project called Squeak, which is simply not an attempt to give the world a free Smalltalk, but an attempt to give the world a bootstrapping mechanism for something much better than Smalltalk, and when you fool around with Squeak, please, please, think of it from that standpoint. Think of how you can obsolete the damn thing by using its own mechanisms for getting the next version of itself. - Alan Kay, The Computer Revolution Hasn't Happened Yet, October 7, 1997, OOPSLA'97 Keynote. On May 26, 2011, at 1:57 AM, Max OrHai wrote: Have you looked at Jecel Assumpcao's SiliconSqueak? An awful lot can be done on the cheap with modern FPGAs, so long as you don't stray too far from the conventional CPU design space... On May 26, 2011, at 2:46 AM, Casey Ransberger wrote: Thanks for recommending Silicon Squeak. Jecel's project is so awesome! And while I totally can't wait to have one:) I think what I can do this year will likely be limited to integrating off the shelf parts. That said, I'm hoping I can create something interesting even with those constraints. I've bounced email back and forth with Jecel, and I really like his point of view:) Allow me to describe a few key features of our SiliconSqueak research here, as most papers have not been published yet. SiliconSqueak, like the Xerox Alto, is a microcode processor. It has many 32 bit cores, each with a stack and data cache, a minimal 5 stage instruction pipeline and ring networks. In the microcode we implement the Squeak bytecodes so the processor can behave like the software Squeak Virtual Machine running standard Squeak images bit-identical. Because we optimized the design for Squeak bytecodes, message sends are particularly efficient. The use of microcode allows many other bytecode or virtual machine systems to be implemented easily, including Lisp, Python, Frank (as a target assembly/bytecode or even the stack oriented abstract machine itself). The Worlds mechanism could also be implemented in microcode to achieve a significant speedup. Although you can emulate almost any system in microcode (as it is turing-complete), the further you go from the Squeak bytecode model, the less efficient it might get. I guess a C compiler targeting the microcode could be more than 4 times slower than on a processor optimized to run C. A typical SiliconSqueak FPGA or ASIC has a number of cores connected with multiple ring networks to other cores, memory and high speeds links, ranging from 4 x 3,1 Gbps to 88 x 28 Gbps. I think of it as a roomful of Alto's on a chip. Sending a message to an object (in Squeak implemented with bytecodes) can be handled in many different ways by the microcode and underlying hardware ring network. A message send can be sent to any object anywhere. It can be in the cache, in the local object heap, in another core or in cores reachable through the external links to neighboring SiliconSqueak units and routed by the hardware until it reaches the location of the object. If the object is external to interconnected the clusters of SiliconSqueaks forming a supercomputer, it can also be handed off to Smalltalk code running in the image, that can then send it as IP packets over the internet to a remote Squeak image (that itself may be running on a manycore SiliconSqueak or software implemented Squeak VM). A single Squeak image can at runtime distribute its objects among the memories of all cores of all SiliconSqueak processors. A message sends to an remote object would run code on the remote core, achieving parallelism that can be transparent to the Squeak programmer. However, it can also be utilized for explicit forms of parallelism. By extending the functionality of the message send behavior different (parallel) programming models can be accommodated (for example future sends as in Actors). Other auto-tuning algorithms can (transparently) redistribute objects among the cores to implement other ways to exploit fine or course grained parallelism. It is also an option to have multiple images running on the system, some on a single core, some using multiple cores. Intercommunicating with external Squeak images on VMs on Unix or other operating systems will appear from the programmers point of view as transparent as among SiliconSqueak cores. SiliconSqueak is a power efficient, parallel, reconfigurable architecture optimized for adaptive compilation. The system includes a mix of basic and extended processors, where these extensions are configurable accelerators like the 64 ALU matrix. Other accelerators like a vector processor, a graphics processor, a MPEG encode/decoder, an encrypt/decrypt processor or an FPU can be implemented as hardware. These accelerators can also be implemented in microcode with the 64 ALU matrix. As these accelerators communicate through the ring network,
[fonc] Alto-2?
Hello all, I've found myself with the first sizable chunk of free time I've had in years. I've been having so much fun! But I must admit, after a bunch of hustle-your-butt software work, the software part isn't completely satisfying me. I miss taking apart computers. It's wonderful that they've gotten so small, but it comes at a price, I think. No one's really figured out a way to make something that small which leaves room for serviceability. When I was a kid, I learned _so much_ with the case open. Somewhere I read about an XO installation where they found a little girl who'd set up an assembly line and was doing her own repairs on other kids laptops. No one asked her to, she just decided to do it. It really warmed my heart:) and I couldn't help feeling some nostalgia, because I was *totally* that kid. And when you add free time to life long love, well, hah! I'm gonna build a computer this year. I was thinking it would be fun to throw out the Intel architecture and look at alternatives. I know nothing of silicon, not really, and so I'm liable to grab parts off of the shelf, though that visual-6502 simulator I found on the web has me tempted all the same. For a CPU, I thought it might be interesting, and temporarily future-proof, to go with something ARM. I know people have had the Squeak VM running on ARM chips, which is sort of my only req'ment anymore, outside of the web browser which lets me live in the modern world. But then I stopped. What about Frank? I have a feeling Frank should work anywhere, but since I've only seen things Ian is doing, I thought I'd stop to ask. If I wanted to be able to run VPRI's bits (if and) when they become generally available, is there a particular chip architecture I should go with? Okay that's the first question. The other question is, was there anything in particular about the Alto that folks on this list miss? Would the Alto make an interesting case study for me to explore, or have modern computers imitated it to the point where it isn't the thing to examine? I'm picking my way through the wikipedia article, but it occurs to me that not having used the thing, it might be hard for the details on the wiki to jump out at me in any sort of aha moment. Not sure that the tech is at the point where I can hope to construct something Dynabook-shaped, but I know that I can make one improvement to the interim desktop design just by using a flat panel that will swivel into a portrait orientation:) ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Alto-2?
This sounds like a really cool project, and I hope you report to the list as you make progress. Have you looked at Jecel Assumpcao's SiliconSqueak? An awful lot can be done on the cheap with modern FPGAs, so long as you don't stray *too* far from the conventional CPU design space... (For an example of what I mean by too far, check out http://cellmatrix.com or http://greenarraychips.com). I really wish more people designed *whole* systems, both hardware and software, these days. -- Max On Wed, May 25, 2011 at 2:44 PM, Casey Ransberger casey.obrie...@gmail.comwrote: Hello all, I've found myself with the first sizable chunk of free time I've had in years. I've been having so much fun! But I must admit, after a bunch of hustle-your-butt software work, the software part isn't completely satisfying me. I miss taking apart computers. It's wonderful that they've gotten so small, but it comes at a price, I think. No one's really figured out a way to make something that small which leaves room for serviceability. When I was a kid, I learned _so much_ with the case open. Somewhere I read about an XO installation where they found a little girl who'd set up an assembly line and was doing her own repairs on other kids laptops. No one asked her to, she just decided to do it. It really warmed my heart:) and I couldn't help feeling some nostalgia, because I was *totally* that kid. And when you add free time to life long love, well, hah! I'm gonna build a computer this year. I was thinking it would be fun to throw out the Intel architecture and look at alternatives. I know nothing of silicon, not really, and so I'm liable to grab parts off of the shelf, though that visual-6502 simulator I found on the web has me tempted all the same. For a CPU, I thought it might be interesting, and temporarily future-proof, to go with something ARM. I know people have had the Squeak VM running on ARM chips, which is sort of my only req'ment anymore, outside of the web browser which lets me live in the modern world. But then I stopped. What about Frank? I have a feeling Frank should work anywhere, but since I've only seen things Ian is doing, I thought I'd stop to ask. If I wanted to be able to run VPRI's bits (if and) when they become generally available, is there a particular chip architecture I should go with? Okay that's the first question. The other question is, was there anything in particular about the Alto that folks on this list miss? Would the Alto make an interesting case study for me to explore, or have modern computers imitated it to the point where it isn't the thing to examine? I'm picking my way through the wikipedia article, but it occurs to me that not having used the thing, it might be hard for the details on the wiki to jump out at me in any sort of aha moment. Not sure that the tech is at the point where I can hope to construct something Dynabook-shaped, but I know that I can make one improvement to the interim desktop design just by using a flat panel that will swivel into a portrait orientation:) ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Alto-2?
Totally. People who are really serious about software should make their own hardware. That quote's been stuck in my head ever since I saw Jobs doing the commencement speech at Stanford on YouTube. I've been wanting to build a computer again more and more ever since my usual vendor started using proprietary screws to keep me out of my laptop (it works... I don't really feel like reinventing the screwdriver head...) Like I said, I don't believe that I have the requisite knowledge to do silicon design myself, even if it has gotten cheap enough. If it makes you feel better, though, I do believe that an interim of the early 21st century ought to be as self-describing and self-implementing as possible, so I'm currently thinking about making two models. a) I want to play with software b) I want to play with FPGAs I've also thought about actually shipping something where the *only* option was to go with one of those FPGA development boards, and I haven't investigated the ramifications of going that route, but if I had to guess, I bet those boards cost more than the deployment boards, and I'm not sure what the difference is performance-wise. Thanks for recommending Silicon Squeak. Jecel's project is so awesome! And while I totally can't wait to have one:) I think what I can do this year will likely be limited to integrating off the shelf parts. That said, I'm hoping I can create something interesting even with those constraints. I've bounced email back and forth with Jecel, and I really like his point of view:) On May 25, 2011, at 4:57 PM, Max OrHai max.or...@gmail.com wrote: This sounds like a really cool project, and I hope you report to the list as you make progress. Have you looked at Jecel Assumpcao's SiliconSqueak? An awful lot can be done on the cheap with modern FPGAs, so long as you don't stray too far from the conventional CPU design space... (For an example of what I mean by too far, check out http://cellmatrix.com or http://greenarraychips.com). I really wish more people designed whole systems, both hardware and software, these days. -- Max On Wed, May 25, 2011 at 2:44 PM, Casey Ransberger casey.obrie...@gmail.com wrote: Hello all, I've found myself with the first sizable chunk of free time I've had in years. I've been having so much fun! But I must admit, after a bunch of hustle-your-butt software work, the software part isn't completely satisfying me. I miss taking apart computers. It's wonderful that they've gotten so small, but it comes at a price, I think. No one's really figured out a way to make something that small which leaves room for serviceability. When I was a kid, I learned _so much_ with the case open. Somewhere I read about an XO installation where they found a little girl who'd set up an assembly line and was doing her own repairs on other kids laptops. No one asked her to, she just decided to do it. It really warmed my heart:) and I couldn't help feeling some nostalgia, because I was *totally* that kid. And when you add free time to life long love, well, hah! I'm gonna build a computer this year. I was thinking it would be fun to throw out the Intel architecture and look at alternatives. I know nothing of silicon, not really, and so I'm liable to grab parts off of the shelf, though that visual-6502 simulator I found on the web has me tempted all the same. For a CPU, I thought it might be interesting, and temporarily future-proof, to go with something ARM. I know people have had the Squeak VM running on ARM chips, which is sort of my only req'ment anymore, outside of the web browser which lets me live in the modern world. But then I stopped. What about Frank? I have a feeling Frank should work anywhere, but since I've only seen things Ian is doing, I thought I'd stop to ask. If I wanted to be able to run VPRI's bits (if and) when they become generally available, is there a particular chip architecture I should go with? Okay that's the first question. The other question is, was there anything in particular about the Alto that folks on this list miss? Would the Alto make an interesting case study for me to explore, or have modern computers imitated it to the point where it isn't the thing to examine? I'm picking my way through the wikipedia article, but it occurs to me that not having used the thing, it might be hard for the details on the wiki to jump out at me in any sort of aha moment. Not sure that the tech is at the point where I can hope to construct something Dynabook-shaped, but I know that I can make one improvement to the interim desktop design just by using a flat panel that will swivel into a portrait orientation:) ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org
Re: [fonc] Alto-2?
On Thursday 26 May 2011 3:14:48 AM Casey Ransberger wrote: I miss taking apart computers. It's wonderful that they've gotten so small, but it comes at a price, I think. No one's really figured out a way to make something that small which leaves room for serviceability. When I was a kid, I learned so much with the case open. Have you looked at Arduino boards? It is a fully-open system that can be configured into many form factors and puts the fun back into programming. Subbu ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Alto-2?
Dear Casey, a) I want to play with software b) I want to play with FPGAs You could start with Thacker's 'Tiny Computer' (described from p.123 onwards in http://piumarta.com/pov/points-of-view.pdf) and add/fix whatever you think is missing/broken. Regards, Ian ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Alto-2?
Perhaps you could do a core in an FPGA and grab whatever else you want: dram controllers, usb IO, video from here: www.opencores.org? The Alto would have done a lot of that in microcode ;-) Hmm, kinda similar to the 8-core Parallax Propellor in that regard. I've been digging around the silicon structures project, Mead, Conway and many others at Parc. Here's a scheme-79 chip that was run on one of the first multi-project wafers. http://dspace.mit.edu/bitstream/handle/1721.1/6334/AIM-559.pdf?sequence=2 As that awesome article Ian referenced shows the Spartan-3 has logic/memory many times faster and larger than the Alto. By the way, a friend of mine bought one of these recently: http://www.silica.com/products/highlight/product/xilinx-spartan-6-lx9-microboard.html Xess stuff has keyboard mouse vga interface ports. Guess it depends where you wanna spend time hacking http://www.xess.com/prods/prod035.php I'm sure there are many more... Toby On 25 May 2011 18:20, Ian Piumarta piuma...@speakeasy.net wrote: Dear Casey, a) I want to play with software b) I want to play with FPGAs You could start with Thacker's 'Tiny Computer' (described from p.123 onwards in http://piumarta.com/pov/points-of-view.pdf) and add/fix whatever you think is missing/broken. Regards, Ian ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Alto-2?
Ian Piumarta wrote on Wed, 25 May 2011 21:20:24 -0400 Dear Casey, a) I want to play with software b) I want to play with FPGAs You could start with Thacker's 'Tiny Computer' (described from p.123 onwards in http://piumarta.com/pov/points-of-view.pdf) and add/fix whatever you think is missing/broken. Great advice, see also http://projects.csail.mit.edu/beehive/ You might consider starting out with a simulator before moving on to FPGAs. See the example microprocessor in http://www.tkgate.org/ This tool is a lot of fun. Unfortunately, I'll only be able to post a proper reply on Friday (and can make comments on SiliconSqueak then). -- Jecel ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc