3 ms·
Any idea where I could go about learning to do this myself? A few google searches mainly led me to things saying it was impossible.
by ntumlin 10y ago
Any idea where I could go about learning to do this myself? A few google searches mainly led me to things saying it was impossible.
- Luc 10y agoI think you'll like this then: http://www.nand2tetris.org/ http://www.nand2tetris.org/
- dang 10y agoIt's a wonderful, in fact an astonishing course. I hope that when they come out with part 2, it really does go all the way to Tetris. The "nand" bit is a slight fudge (they actually start you off with both nand and a flip-flop, which is still amazing), but we can grant them a bit of poetic license on that. But not on the Tetris!
- nickpsecurity 10y agoI wonder if this had something to do with someone I countered a day or two ago thinking all you needed was a NAND gate to do anything. I said you need memory and some other things for most hardware. Maybe that commenter got the idea from this project's name...
- andars 10y agoNote that you can in fact create memory with NAND gates. See https://en.wikipedia.org/wiki/Flip-flop_(electronics)#SR_NAND_latch https://en.wikipedia.org/wiki/Flip-flop_(electronics)#SR_NAN...
- dang 10y agoYes, and in one of their Coursera videos the nand2tetris guys sketch out how this works. But I wish they'd have included it in the course itself. Maybe it would have needed an extra chapter, but for those of us who never studied it before it's really cool stuff.
- nickpsecurity 10y agoThat's neat. Lets test the rest then. Full claim was a computer needed logic cells, RAM, ROM/flash, and analog components (eg I/O & power-related). Still only need a NAND gate? ;)
- andars 10y agoI'll give it a shot :) logic cells: easy, by universality of NAND. RAM: distinction between flip flops and RAM is unnecessary from a strictly technical standpoint. a massive (or not so much) array of flip flops with decoder and mux (also just made of NANDs) can get you by. ROM/flash: maybe I could argue NAND flash counts as just a NAND gate, but not quite. I'll concede nonvolatile memory with just plain old NANDs. May I suggest a https://en.wikipedia.org/wiki/Diode_matrix https://en.wikipedia.org/wiki/Diode_matrix? "analog components": having Vcc and ground available is an implicit requirement of having a functional NAND gate, and IO could just be some wires mirroring a memory location. Overall I'd say its a largely accurate statement. All you need is something to set up your initial conditions (e.g. program in memory).
- cbd1984 10y agoWe've forgotten how hard of a problem RAM used to be, and how far into the Rube Goldberg we went to solve it. Things We Actually Did: Mercury delay lines were tubes full of mercury we sent vibrations through. Those vibrations would reflect around and get detected and read out later. This wasn't, technically, random-access, but it was memory. Williams-Kilburn tubes were CRTs with long-persistence phosphor, the exact opposite of what display CRTs used, and metal plates on the front to allow the contents of memory to be read out. You could have two identical CRTs, one with the plate to use as RAM and one built into the display panel so the operators could see the contents of RAM in real time. Core memory was tiny little ceramic ferrite doughnuts woven into complicated metal grids which would change how they were magnetized in response to a sufficient current; their state could be read back out non-destructively, and core was, in fact, nonvolatile. The core modules were woven by hand by women working with microscopes and very steady hands. Being able to make usable amounts of memory out of components we can just etch into silicon was an amazing advance. Nothing short of revolutionary, really; computers as we know them would be flatly impossible without cheap, plentiful RAM.