Posts

Showing posts from June, 2025

Exploring 16-bit Bus Access on the PC/AT

Image
Entering the 16-bit Era I've been adding support for the 8086 CPU to MartyPC, and looking ahead to eventual support for the 286 .  The biggest fundamental change coming from the 8088 is that the data bus width on these CPUs expands from 8 bits to 16. This ends up being a bit more complicated than I originally anticipated, but I've come to learn some interesting things about how Intel implemented the 16-bit data bus that explains some things that were long-standing mysteries to me, such as the reason for memory alignment penalties. In this article, we'll explore schematics for the IBM 5170, better known as the IBM AT. This model was arguably IBM’s most influential computer, as it established the eponymous AT standard that shaped the PC-compatible market - setting it on an evolutionary path that modern PCs continue to follow. Memory Alignment And You Modern Intel and AMD CPUs have minimal memory alignment requirements¹. Any remaining penalties for "unaligned" reads ...