Chip Letter Links No.19 : AMD Zen 4, Nvidia, x86 Instructions, 8-Bit Video, General Turtle, 1-Bit Computing, ZX Spectrum
Great links, images and reading for 25 June 2023
Hi everyone and thanks for subscribing. This is one of our regular series of posts with links, images and articles of interest, inspired by Adam Tooze’s excellent Chartbook.
Each edition starts with a beautiful die image. This week it’s an AMD Zen 4 Core Complex Die (from a Ryzen 5 7600), courtesy of Fritzchens Fritz. For more photos of Zen 4 see this terrific album.
Nvidia’s Embarrassingly Parallel Success
Paying subscribers can get early access to the first of a short series of posts on Nvidia’s recent surge and its origins. Just click the link below.
How Many x86 Instructions Are There?
x86 is a CISC Instruction Set Architecture (although some think it is quite a RISCy CISC!) but exactly how many instructions does it have? One view from Fabian Giesen:
To not leave you hanging: Intel has an official x86 encoder/decoder library called XED. According to Intel’s XED, as of this writing, there are 1503 defined x86 instructions (“iclasses” in XED lingo), from
AAA
toXTEST
(this includes AMD-specific extensions too, by the way). Straightforward, right?
But of course it’s not that simple, and the post looks into the question in a lot more detail.
An interesting related question from a linked article ‘Does a compiler use all x86 instructions?’ to which the answer seems to be: not really.
So we shouldn’t be too surprised that Intel is looking to simplify x86 according to this Intel blog (although not to remove instructions):
With this evolution, Intel believes there are opportunities for simplification in our hardware and software ecosystem.
Certain legacy modes have little utility in modern operating systems besides bootstrapping the CPU into the 64-bit mode. It is worth asking the question, “Could these seldom used elements of the architecture be removed to simplify a 64-bit mode-only architecture?”
And of course modern Arm is quite complex too, as Fabien notes:
And by the way, I used x86 as an example here, but don’t believe for a second the same thing doesn’t apply to, say, the ARM chip in your phone. Modern ARM chips support multiple encodings and also rank over 1000 instructions if you count them at the same level of granularity as XEDs “iforms”.
Links : How many x86 instructions?
8-Bit TRS-80 Video
Is it possible to play video on an 8-bit computer from the 1970s. Yes it is! *
Here is a TRS-80 using an 8-bit Z80 microprocessor playing A-Ha’s ‘Take on Me’ Music Video.
It’s not perfect, but still pretty impressive for an 8-bit processor like the TRS-80’s Z80.
From the project website:
What you see there is 60 frame per second, full-screen video. Well, on the Model 4. The Model III manages just over 54 frames/second and the Model I just over 51 frames/second. What you hear is about 15 Khz audio with effectively 5 or 6 bits per sample.
* There is a catch. It needs a ‘FreHD’ hard drive emulator to stream the data from, so it’s not a stock, original TRS-80 and this wouldn't have been possible back in the early 1980s.
Links : Project Website
1-Bit Computing
Can we go lower than 8-bits and still do useful work? The first microprocessor, the Intel 4004, was of course a 4-bit design. How about a 1-bit machine then?
The answer, perhaps surprisingly, is yes.
The Motorola MC14500B was a 1-bit microprocessor from Motorola intended to replace discrete logic in industrial control applications (Motorola called it an ICU for ‘Industrial Control Unit’). From the MC14500 manual:
The Motorola MC14500B is a single chip, one-bit static CMOS processor optimized for decision-oriented tasks. The processor is housed jn a 16-pin package and features 16-four-bit instructions. The instructions perform logical operations on data appearing on a one-bit bidirectional data line and data in a one-bit accumulating Result Register within the lCU. All operations are performed at the bit level.
I think this probably the simplest ‘real world’ processor design I’ve come across. But is it possible to do interesting things with the MC14500B?
Well here is a simple game ‘Kill the bit’, presented by Usage Electric on YouTube.
There is also a great video on reverse engineering the MC14500 from die shots.
And finally there is a whole playlist of videos on this one bit computer.
General Turtle
A fun post from Samuel Arbesman about the ‘General Turtle’ company. According to the Computer History Wiki:
General Turtle was a company spun off from the MIT Logo group, first to make floor turtles. It later made Turtle Terminal 2500 and the 3500, which was a small computer based on an LSI-11. It moved to Canada, under the name Societe Generale Tortue, where the 3500 was commercialized as a word processor.
‘Floor Turtles’ were pieces of hardware that were controlled using the Logo programming language.
The post goes on to explore the idea of a single purpose machine, a machine that is ‘delimited in its abilities and which gains from these limitations’.
I very much share Samuel’s view expressed later in the post about computing history:
I’ve written before about the need to delve into the history of technology in order to discover ideas that might be worth revisiting. And it seems that there are more modern equivalents here, such as the machines made by Freewrite specifically geared towards drafting text without distractions. Dumb phones too are having a moment.
After the break: Building a brand new ZX Spectrum from new parts in 2023 and the ZX Spectrum running on a Raspberry Pi Pico.