![]() |
|
![]() |
| That's basically the concept of Turing Completeness. Any Turing complete system can run anything. It may be very slow, but it will run. ChatGPT could run on a 4004, all you need is time. |
![]() |
| It is defined as arbitrarily large but not infinite. That's not because of physical concerns, but because some of the theorems don't work if the memory is actually infinite. |
![]() |
| Llama takes a lot more MIPS and a lot more RAM than linux. Linux is more complicated, but computers were running linux 30 years ago. In this case, quantity has a quality all of its own. |
![]() |
| It was funny when Sun proudly and unilaterally proclaimed that Sun put the "dot" into "dot com", leaving it wide open for Microsoft to slyly counter that oh yeah, well Microsoft put the "COM" into "dot com" -- i.e. ActiveX, IE, MSJVM, IIS, OLE, Visual Basic, Excel, Word, etc!
And then IBM mocked "When they put the dot into dot-com, they forgot how they were going to connect the dots," after sassily rolling out Eclipse just to cast a dark shadow on Java. Badoom psssh! https://www.itbusiness.ca/news/ibm-brings-on-demand-computin... "The Network Is The Network and The Computer Is The Computer. We regret the confusion." https://news.ycombinator.com/item?id=34256623 >Oh yeah, don't get me started about NFS! (Oops, too late.) I'll just link with short summaries: [...] >NFS originally stood for "No File Security". [...] >The network is the computer is insecure, indeed. |
![]() |
| There was also a system where a person could email a request for a webpage to a certain email address and the web page would be returned by email. Existed in late 1980s? I think or maybe early 1990s? |
![]() |
| I installed Windows 95 on an Amiga 3000 with a 25 MHz m68030 via floppy to see if DMF formatted disks would work and to play around. By the time it finished, I had forgotten what I wanted to try out. |
![]() |
| At Hackaday Supercon in 2002, the badge for attendees (https://hackaday.com/2022/10/12/the-2022-supercon-badge-is-a...) implemented a fictional 4-bit CPU along with control panel for directly entering instructions and running and stepping through code. I had a huge amount of fun implementing a space shooter video game on it, as the panel included a bit-by-bit view of one of its pages of memory. Comparing its Voya4 architecture with the 4004 was fascinating. Some similar tradeoffs, but the Voya4 has the benefit of 50 years of CPU instruction set exposure.
Alas, dimitygr's method wouldn't work on the badge, as the memory and RAM are all internal to the PIC24 that implements the CPU emulator. BTW, 4-bit CPUs are still made and used. Many of the mass-produced IR remotes are programmed using a 4-bit MCU. See https://www.emmicroelectronic.com/sites/default/files/produc... for a datasheet. |
![]() |
| It's not original research. A Master's Thesis at most, or only a Bachelor's Degree Final Project. Regardless, doing such amazing work for a blog (and geek fame) is amazing. |
![]() |
| oof. amazing.
…you can see in the high PC bits what's currently executing! P.S.: Still loads the kernel faster than a virtual ISO on a server's shitty IPMI over the internet ;D |
![]() |
| There's the Turing award, which is an equivalent prize for computing. Could add an acknowledgement for strange and unusual applications of computer science. |
![]() |
| In the "Why MIPS?" section:
> some have shitty addressing modes necessitating that they would be slow (RISCV) What is wrong with the RISC-V addressing modes? |
![]() |
| > Well, lack of REG+REG and REG+SHIFTED_REG addressing modes handicaps it significantly.
Does it? Well, there's a vendor specific extension for that (XTheadMemIdx): https://github.com/XUANTIE-RV/thead-extension-spec/releases/... Not sure about GCC, but on clang it is trivial to enable it. And if you really want to (assuming you have the hardware) you could compile exactly the same code with and without it and compare how much exactly it is handicapped if those instructions are not there. Plus, on RISC-V multiplication/division (about which you've complained) is optional, and there is also a variant of RISC-V with only 16 registers instead of 32 (also very simple to enable on recent versions of clang, although Linux would probably need some modifications to be able to run on that). So I'm not entirely convinced that RISC-V would be worse here. |
![]() |
| >lack of REG+REG and REG+SHIFTED_REG addressing modes handicaps it significantly
Is this a guess, or statistically supported on a body of empirical evidence like the RISC-V spec is? |
![]() |
|
Very impressive project. Recording it with a phone seems complicated though. Why not a Raspberry Pi with camera module? Or a decent webcam and any computer? |
![]() |
| At first i was like "I'm pretty sure this is bullshit or some cheat used" but then i was like "Oh, its dimitry."
Impressive work, as always. |
![]() |
| I'm glad to see the Datapoint 2200 is getting attention, but by reasonable definitions of "microprocessor", the Intel 4004 was first, the Texas Instruments TMX 1795 was second, and the Intel 8008 was third. It seems like you're ruling out the 4004 on the basis of "intent" since it was designed for a calculator. But my view is that the 4004 is a programmable, general-purpose CPU-on-a-chip, so it's a microprocessor. Much as I'd like to rule out the 4004 as the first microprocessor, I don't see any justifiable grounds to do this.
Intel's real innovation—the thing that made the microprocessor important—was creating the microprocessor as a product category. Selling a low-cost general-purpose processor chip to anyone who wanted it is what created the modern computer industry. By this perspective, too, the 4004 was the first microprocessor, creating the category. My article in IEEE Spectrum on this subject goes into much more detail: https://spectrum.ieee.org/the-surprising-story-of-the-first-... |
![]() |
| Your argument is that because the 4004 was built to power a calculator that disqualifies it as a microprocessor? Independent of the actual nature of the 4004 itself and its potential applications beyond its first intended use? Can’t see how that makes sense at all.
Your statement about Intel 'pushing back' the date to 1971 also makes little sense given Intel advertised [1] the 4004 as a CPU in Electronic News in Nov 1971. [1] https://en.wikipedia.org/wiki/Intel_4004#/media/File:Intel_4... |
![]() |
| IMO, just because a microprocessor has a quirky instruction set that doesn't include some standard instructions, or was made for a specific purpose in mind, doesn't make it not a microprocessor. |
![]() |
| I didn't know the guy but he clearly knows what he's doing, it's unbelievably entertaining to read the details of achieving an impossible task with the most underpowered tool possible. |
![]() |
| Wonderful read but that ending bit about taking the video truly hurt...
It kind of shows that no one can be an expert in everything at the same time. |
![]() |
| Jack Ganssle’s The Embedded Muse covers tools and techniques in embedded development. In one article, he reported that 4-bit MCU’s were still competitive in some sectors:
https://www.ganssle.com/rants/is4bitsdead.htm I suspected we’d see either 4- or 8-bit return for neural networks. IBM did try the kilocore processor which was a massively-parallel, 8-bit system. Multicore 4- and 8-bitters are also the kind thing people could build on cheaper nodes, like Skywater’s 130nm. |
![]() |
| not that I found. And it makes sense since without MHz-fast 4002 and 4289, it is useless. Plus, swinging a bus from -15V to 0V at MHz speeds will take quite some drive current. |
It illustrates a point I've explained to many people over the years: once computers started coming with persistent storage, open address spaces and MMUs towards the late '80s and early '90s, we basically arrived at modern computing. An Amiga 3000 or i80486 computer can run the same things as a modern computer. Sure, we have ways to run things orders of magnitude faster, and sure, we now have things that didn't exist then (like GPUs that can run code), but there's no functional difference between those machines and new ones.
I love that Dmitry shows how loosely "functional" can be defined :)