I was talking to my friend Jack today about computers and memory and differences between Big Endian and Little Endian and whether it would make any difference to a disk drive. Disk drive controllers in PC's use control blocks which are in memory. The CPU sets aside a small section of memory to use as a control block, fills in all the necessary fields, and then tells the disk drive controller where this block is located. The disk drive in turn uses a DMA channel to read the control block, which tells the controller what operations it is supposed to perform with the disk drive.
Now Jack tells me he originated the use of control blocks for PC's. He was working on a 6800 based disk controller back in 1976. As the project progressed they realized they needed to pass more data to the disk controller. The way they had been doing it was to add a new register, which meant adding address decoding hardware, which was a big pain. So Jack says, let's just put all the information in this one block of memory and let the controller pick it up from there, which made everyone happy, which is how disk control blocks for PC's were born.
And Endian-ness? It could make a real mess of things if the DMA controller and the CPU used different methods. You could deal with it in software, but it would require an extra processing step when writing the control block and when reading the status back. Assuming anyone is still using control blocks, and I suspect they are.
Silicon Forest
If the type is too small, Ctrl+ is your friend
Monday, December 27, 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment