The Intel 8088 And 8086 Processor’s Instruction Prefetch Circuitry

The 8088 die under a microscope, with main functional blocks labeled. This photo shows the chip's single metal layer; the polysilicon and silicon are underneath. (Credit: Ken Shirriff)
The 8088 die under a microscope, with main functional blocks labeled. This photo shows the chip’s single metal layer; the polysilicon and silicon are underneath. (Credit: Ken Shirriff)

Cache prefetching is what allows processors to have data and/or instructions ready for use in a fast local cache rather than having to wait for a fetch request to trickle through to system RAM and back again. The Intel 8088  (and its big brother 8086) processor was among the first microprocessors to implement (instruction) prefetching in hardware, which [Ken Shirriff] has analyzed based on die images of this famous processor. This follows last year’s deep-dive into the 8086’s prefetching hardware, with (unsurprisingly) many similarities between these two microprocessors, as well as a few differences that are mostly due to the 8088’s cut-down 8-bit data bus.

While the 8086 has 3 16-bit slots in the instruction prefetcher the 8088 gets 4 slots, each 8-bit. The prefetching hardware is part of the Bus Interface Unit (BIU), which effectively decouples the actual processor (Execution Unit, or EU) from the system RAM. While previous MPUs would be fully deterministic, with instructions being loaded from RAM and subsequently executed, the 8086 and 8088’s prefetching meant that such assumptions no longer were true. The added features in the BIU also meant that the instruction pointer (IP) and related registers moved to the BIU, while the ringbuffer logic around the queue had to somehow keep the queueing and pointer offsets into RAM working correctly.

Even though these days CPUs have much more complicated, multi-level caches that are measured in kilobytes and megabytes, it’s fascinating to see where it all began, with just a few bytes and relatively straight-forward hardware logic that you easily follow under a microscope.

Exploring The Sega Saturn’s Wacky Architecture

Sega Saturn mainboard with main components labelled. More RAM is found on the bottom, as well. (Credit: Rodrigo Copetti)
Sega Saturn mainboard with main components labelled. More RAM is found on the bottom, as well. (Credit: Rodrigo Copetti)

In the annals of game console history, the Sega Saturn is probably the most convoluted system of all time, even giving the Playstation 3 a run for its rings. Also known as the system on which Sega beached itself before its Dreamcast swansong, it featured an incredible four CPUs, two video processors, multiple levels and types of RAM, all pushed onto game studios with virtually no software tools or plan how to use the thing. An introduction to this console’s architecture is provided by [Rodrigo Copetti], which gives a good idea of the harrowing task of developing for this system.

Launched in Japan in 1994 and North America and Europe in 1995, it featured a double-speed CD-ROM drive, Hitachi’s zippy new SH-2 CPU (times two) and some 3D processing grunt that was intended to let it compete with Sony’s Playstation. The video and sound solutions were all proprietary to Sega, with the two video processors (VDP1 & 2) handling parts of the rendering process which complicated its use for 3D tasks, along with its use of quadrilaterals instead of triangles as with the Playstation and Nintendo 64.

Although a lot of performance could be extracted from the Saturn’s idiosyncratic architecture, its high price and ultimately the competition with the Sony Playstation and the 1996 release of the Nintendo 64 would spell the end for the Saturn. Although the Dreamcast did not repeat the Saturn’s mistakes, it seems one commercial failure was enough to ruin Sega’s chances as a hardware developer.

Hybrid Binaries On Windows For ARM: ARM64EC And ARM64X Explained

With ARM processors increasingly becoming part of the desktop ecosystem, porting code that was written for x86_64 platforms is both necessary and a massive undertaking. For many codebases a simple recompile may be all it takes, but where this is not straightforward Microsoft’s ARM64EC (for ‘Emulator Compatible’) Application Binary Interface (ABI) provides a transition path. Unlike Apple’s ‘Fat Binaries’, this features hybrid PE executables (ARM64 eXtended, or ARM64X) that run mixed ARM64EC and x86_64 binary code on Windows 11 ARM systems. An in-depth explanation is provided by one of the authors, [Darek Mihocka].

ARM64EC was announced by Microsoft on June 28, 2021 as a new feature in Windows 11 for ARM, with more recently Qualcomm putting it forward during the 2024 Game Developers Conference (GDC) as one reason why high-performance gaming on its Snapdragon SoCs should be much easier than often assumed. Naturally, this assumes that Windows 11 is being used, as it contains the x86_64 emulator with ARM64EC support. The major difference between plain ARMv8 and ARM64EC code is that the latter has changes on an ABI level to e.g. calling conventions that ease interoperability between emulated x86_64 and ARM64 code.

Although technologically impressive, Windows 11’s marketshare is still rather small, even before looking at Windows 11 on ARM. It’ll be interesting to see whether Qualcomm’s bravado comes to fruition, and make ARM64EC more relevant for the average software developer.

3D Printing Real Wood With Just Cellulose And Lignin

Although the components of wood – cellulose and lignin – are exceedingly cheap and plentiful, combining these into a wood-like structure is not straightforward, despite many attempts to make these components somehow self-assemble. A recent attempt by [MD Shajedul Hoque Thakur] and colleagues as published in Science Advances now may have come closest to 3D printing literal wood using cellulose and lignin ink, using direct ink writing (DIW) as additive manufacturing method.

Microstructures of 3D-printed wood after printing and post-printing operations. (Credit: Thakur et al., 2024)
Microstructures of 3D printed wood after printing and post-printing operations. (Credit: Thakur et al., 2024)

This water-based ink was created by mixing TOCN (tempo-oxidized cellulose nanofiber), a 10.6 wt % aqueous CNC (cellulose nanocrystals) and lignin in a 15:142:10 ratio, giving it roughly the viscosity of clay. The purpose of having both TOCNs and CNCs is to replicate the crystalline and amorphous cellulose elements of wood-based cellulose.

This ink was printed from a syringe head (SDS-60) installed in a Hyrel 3D Engine HR 3D printer. This printer is much like your average FDM printer, just targeting bioprinting and a wide range of heads to print and handle various attachments in a laboratory setting. The ink was extruded into specific shapes that were either freeze dried to get rid of the liquid component, or additionally also heated (at 180°C), with a third set of samples put into a hot press. These additional steps seem to promote the binding of the lignin and create a more durable result.

Continue reading “3D Printing Real Wood With Just Cellulose And Lignin”

Complex Organic Chemistry In Sulfuric Acid And Life On Venus

Finding extraterrestrial life in any form would be truly one of the largest discoveries in humankind’s history, yet after decades of scouring the surface of Mars and investigating other bodies like asteroids, we still have found no evidence. While we generally assume that we’re looking for carbon-based lifeforms in a water-rich environment like Jupiter’s moon Europa, what if complex organic chemistry would be just as happy with sulfuric acid (H2SO4) as solvent rather than dihydrogen monoxide (H2O)? This is the premise behind a range of recent studies, with a newly published research article in Astrobiology by [Maxwell D. Seager] and colleagues lending credence to this idea.

Previous studies have shown that organic chemistry in concentrated sulfuric acid is possible, and that nucleic acid bases – including adenosine, cytosine, guanine, thymine and uracil which form DNA – are also stable in this environment, which is similar to that of the Venusian clouds at an altitude where air pressure is roughly one atmosphere. In this new article, twenty amino acids were exposed to the concentrations of sulfuric acid usually found on Venus, at 98% and 81%, with the rest being water. Of these, 11 were unchanged after 4 weeks, 9 were reactive on their side chains, much like they would have been in pure water. Only tryptophan ended up being unstable, but as the researchers note, not all amino acids are stable in water either.

Continue reading “Complex Organic Chemistry In Sulfuric Acid And Life On Venus”

The Lunar Odyssey: Moon Landings From The 1960s To Today’s Attempts

With the recent string of lunar landing attempts, it’s interesting to consider how much things have changed – or stayed the same – since the first soft landing attempts in the 1960s with the US Ranger and USSR Luna landers. During the 1950s the possibility of landing a spacecraft on the Moon’s surface was investigated and attempted by both the US and USSR. This resulted in a number of lunar lander missions in the 1960s, with the US’s Ranger 3 and 5 missing the Moon, Ranger 4 nearly missing it but instead crashing into the far side of the Moon, and eventually the USSR’s Luna 9 making the first touchdown on the lunar surface in 1966 after a string of USSR mission failures.

What’s perhaps most interesting was how these first US and USSR spacecraft managed to touch down, with Luna 9 opting to inflate a landing airbag and bounce until it came to a halt. This approach had doomed Luna 8, as its airbag got punctured during inflating, causing a hard crash. Meanwhile the US’s Surveyor 1 was the first US spacecraft to land on the Moon, opting to use a solid-fuel retrorocket to slow the craft down and three liquid-fueled vernier thrusters to prepare it for a drop down from 3.4 meters onto the lunar surface.

Now, nearly 60 years later, the landers we sent regularly make it to the lunar surface, but more often than not end up crashing or toppling over into awkward positions. How much have lunar landings really changed?

Continue reading “The Lunar Odyssey: Moon Landings From The 1960s To Today’s Attempts”

Commodore CHESSmate Replica Runs On The ESP32

The Commodore CHESSmate chess computer might not be terribly well known, but that doesn’t make it any less worthy of being reproduced. If anything it is more important, as it gives more people an opportunity to use one of these devices, yet beyond a purely emulated experience the real user interface is harder to experience.

Internals of the reproduction Commodore ChessMate (Credit: Michael Gardi)

This is where [Michael Gardi]’s modernized replica provides a highly accessible version, consisting of a custom PCB with an ESP32 as the brains of the system. Although decidedly overkill next to the 6502 in the original CHESSmate, it makes the project far easier for others to assemble as it contains few components that shouldn’t be readily available.

The ESP32 is mounted on a small daughterboard which plugs into the main PCB with the buttons, LEDs and indicators. The whole stack is then inserted into the 3D printed reproduction case. These 3D models along with the ESP32 port of the CHESSmate firmware can be found in the GitHub repository, along with a minimalist frame and a ‘CHESSmate Lite’ version as alternative enclosure options for those who somehow don’t appreciate the delightful 1980s aesthetics.

We covered the Commodore CHESSmate last year, including a highly faithful reproduction built by [Hans Otten], which [Michael] read the day after meeting [Peter Jennings], the author of MicroChess (which the CHESSmate uses internally) at an event at York University. Taking this as a sign, he set to work on this particular project.

We’re not sure if there’s really a cosmic force directing [Michael] towards his next project, but if there is, we’d like to take this opportunity to thank it for doing a fantastic job so far.