Re: Width of PC Memory
Posted: Mon Mar 15, 2021 4:46 pm
No.lukassevc wrote:I was thinking about the problem yesterday and I think I've found the solution, for example if the 8088 wants to write 0x1234 to the address 0x00000 it writes 0x34 to the lower address, in this case it is 0x00000 and 0x12 to 0x00001, and the other hand the 8086 writes 0x1234 to the address 0x00000 since it's 16 bits wide, am I correct? And since there wasn't any other x86 microprocessor from Intel which had the data bus 8 bits long, then just the 8088/80188 use this weird cost-saving thing. This also means that the 8086 can save twice as much data as the 8088 due to the fact that it needs just 1 address to store 16 bits long number while the 8088 needs 2 addresses. And alo you can clearly see that memory can be 16 bits wide. Am I again correct? The last unsolved thing is the HDD, since yes it loads 512 bytes i.e. one sector, but how does it store the data in the memory? Is every byte stored at different address in order to be backwards-compatible with the original IBM PC which used the 8088 so that it can access all of the data or it stores 2 bytes i.e. 16 bits to one address which is more efficient since the 8086 can access the whole 16 bits wide data bus?
8088/8086 have the same logical view of memory, which is byte addressable.
So writing 0x1234 to the address 0x00000 writes 0x34 to the lower address, in this case it is 0x00000 and 0x12 to 0x00001, on both the 8088 and the 8086.
The difference is that the 8086 does it in a single data cycle, whereas the 8088 will need two data cycles.
You have to decouple the architectural view of memory, which in the 8088/8086 is byte addressable with 16-bit load/stores, and the physical interface to memory, which is 8-bits for the 8088 versus 16-bit for the 8086 (and 32-bit for the 386/486, but 64-bit for Pentium despite being architecturally 32-bit.)