4 ms·
Intel made the paragraph size of the x86 16 bytes, or four bits of the physical address. The documentation I read at the time claimed that this was to make shar
by kabdib 8y ago
Intel made the paragraph size of the x86 16 bytes, or four bits of the physical address. The documentation I read at the time claimed that this was to make sharing pieces of segments easier (or perhaps they wanted to encourage people to make zillions of very small segments, e.g., one per procedure).
I think that was simply done without much thought and then post-facto justified by the hardware engineers. They couldn't afford another 4 pins of physical address space, so they effectively made that pin limitation architectural.
If the paragraph size had been 256 bits (just shift another four bits) then the x86 would have had a logical address space of 16MB, just like the 68K at the time. This probably would have changed the face of the personal computing industry (no 640K limit, for starters).
- whoopdedo 8y agoI wasn't there, but building entire systems from zillions of small procedures sounds familiar. Wasn't this a guiding principle behind languages such as SmallTalk and Forth? The first system to be implemented on 8086 was Forth with its structure of loading code from 1K blocks. But I can see the chicken-and-egg here. Did languages at the time think in terms of small contained blocks of code because the hardware they ran on was limited? Or did CPU engineers restrict their designs to match the segmented demands of the programming languages?
- kabdib 8y agoI've wondered if the 16 byte paragraph size came from prejudices of engineers who were involved with the iAPX 432, an "object oriented" processor that was canceled after Intel realized it had significant, architecture-level performance flaws.