A student writes, but if I reproduce his entire message, I think I spoil too much of the fun. He asks why we need a DATA.SIZE signal. There are of course two cases: Loads and Stores. He clearly understands the Store case, and points out that it could be irrelevant if the code (written or compiled) was guaranteed to have no unaligned accesses. But code is written by programmers, and the job of the microarchitect is not only to execute well formed code, but to kick off the machine code that is not well formed. I have been out of the country the last few days so, unless the TAs have told you something else, I think we can assume the code that is written is properly aligned. We will add later the microarchitecture to detect ill-formed code. [Hopefully, one the TAs will read this early today and correct this if they have something else in mind that is escaping me at the moment. I have been up all night dealing with the email that has stacked up, so I may be forgetting something.] The Load case, he did not get. So, on a LDB, what gets put into the MDR. What do we want to put in the GPR that we are reading. How are we going to get that without the DATA.SIZE signal as a control to the box that takes input from the MDR and puts output on the bus. Yale Patt