4 ms·
Reverse-engineering the classic MK4116 16-kilobit DRAM chip (2020)
- qiqitori 3y agoWe are at an interesting point in computer history IMO. Microcontrollers are getting fast enough to keep up with most things happening inside the first (or first few) generations of personal computers. Before, you had to use FPGAs. Now, people use the Pico to create things like digital RGB upscalers or N64 cartridges. The Raspberry Pi Pico is fast enough (or almost fast enough) to keep up with most timing transitions of the 4116 and/or 4164, and I was able to create a Raspberry Pi Pico-based RAM tester that tests 4116 or 4164 RAM chips _live_ as they are being driven by an MSX. If you're interested, take a look at my blog entry here: https://blog.qiqitori.com/2023/08/testing-4164-4116-dram-ics-in-circuit-live-with-a-raspberry-pi-pico-without-removing-them-wip/ https://blog.qiqitori.com/2023/08/testing-4164-4116-dram-ics...
- tysam_and 3y agoI guess this is a bit outside of microcontrollers, but it is nice to see currents going towards things like FPGAs too, for example. GPUs are great but for my usecase they also can be a bit limiting, because I'd like to do high throughput bitmagic on numbers, which starts to get difficult past a certain point. And certain bit depths like 5, 3, and under get weird too. All that said, definitely agree that much more powerful microcontrollers is extremely nice, less fiddling with weird fiddly quirks, more devvy magic. <3 :'))))
- johnklos 3y agoNeat! I remember feeling very, very fancy when I got my Timex/Sinclair 16K RAM pack. It used 4116 chips. I was puzzled why they'd have so many chips in the expansion instead of just using static RAM, but back then everything was pricey. Compared with the 2K of RAM the TS/1000 comes with, this was a huge amount of memory :)
- rwmj 3y agoAnd of course the ZX Spectrum main memory used only half of the chips. Sinclair could buy faulty RAM chips very cheaply, they binned them into "top half working" or "bottom half working", then put either all tops or all bottoms into each Speccy and set a solder point on the motherboard accordingly.
- nickt 3y agoThe Speccy used 4116s and 4164s (and later 4464s in the Amstrad versions, except the "+2"). The 4116 was used for lower RAM in 48k version, or all the RAM if you had a 16k version. The 4164 was used for upper RAM, and they were the ones that were binned for working upper and lower, and you set a jumper to select the good half to use. In the 128k "toastrack" and grey "+2" it used good versions of the 4164 for all its memory. A neat and typical Sinclair solution to saving a few bob on each unit. --edit to clarify the chips the +2 used
- fred256 3y agoPrevious discussion: https://news.ycombinator.com/item?id=25093933 https://news.ycombinator.com/item?id=25093933
- mmastrac 3y agoThis was a brilliant design. It had to balance cost in terms of pins and dynamic refresh, with capacity and reliability. It hit a sweet spot for everything that basically let this design take over the world of early computing and it was easily composable to larger memory sizes up to a point that was sufficient for the time. There's a pretty good reason this style of RAM is used on so many machines of the time, in pretty much the same configuration, and that you can pretty much swap RAM chips between machines of this time.
- rwmj 3y agoThe amazing thing (as Ken points out right at the end) is the latest chips store 16 gigabits, about a million times larger, in a similar area. So you can think of each of those 1979 transistors as now containing 10^6 2020's transistors! It's mind-boggling. Also a million transistors is approximately an Intel 80386 (actually it's a little bit more).
- userbinator 3y agoAlso a million transistors is approximately an Intel 80386 (actually it's a little bit more). 275k for a 386. 1.2M for a 486. (I just noticed the Wikipedia article on the 386 is wrong --- it gives both 275k and 855k, with the latter a citation to a set of presentation slides that doesn't even contain the numbers "855". Perhaps that's where the misinformation came from? But I strongly remember the 275k number from early Intel marketing material.)
- kens 3y agoI looked into this: the 386SL has 855,000 transistors while the other 386 versions have 275,000 transistors. I updated the Wikipedia page, adding a reference to Intel's detailed "Microprocessor Quick Reference Guide", which has transistor counts for most of their chips. (I wish I had found this guide long ago.) https://www.intel.com/pressroom/kits/quickreffam.htm https://www.intel.com/pressroom/kits/quickreffam.htm
- userbinator 3y agoThat page you found is not 100% either - it claims the 8088 has only 64k addressable memory. Likewise, I'm doubtful that a 386SL needs over 3x the transistors of the non-SL.
- naoru 3y agoAfaik 386SL was in fact not a 386, but a cutdown 486. This might explain the difference in transistor count.
- ChrisArchitect 3y ago(2020)
- ChrisArchitect 3y agoDiscussion from back then: https://news.ycombinator.com/item?id=25093933 https://news.ycombinator.com/item?id=25093933
- kens 3y agoThe MK4116 chip hasn't changed much since 2020, so hopefully you will still find this article relevant :-)
- RetroTechie 3y agoAlways interesting how much engineering went into a 'simple' early chip like this. This was state-of-the-art once. :-) Never liked these 4116s myself due to their multi-supply voltages. Common cause of problems where used (like in the ZX Spectrum as another poster pointed out). And of course Ken Shirriff is brilliant as always!
- deleted 3y ago[deleted]