Mon, 2 Mar 2009, 00:25
Sorry I am just getting this to you now. I received the following a few hours ago from a student working on Lab 3. I understand that some of the rest of you had questions on this, and that my TAs answered your questions. I am sending this anyway just to be sure you all are on top this. A student writes: Dear Professor Patt, In the first paragraph of section C.5.2 in Appendix C that was given to us, the process for loading the MDR is described. Unless I'm misunderstanding it, the first paragraph states that if MAR[0] = 0, MDR is loaded with SR[15:0], and if it's 1, then MDR is loaded with SR[7:0] in both the high and low bytes. However, in the very next paragraph, it refers back to this process, stating, "Recall that if DATA.SIZE is BYTE, MDR was previously loaded with SR[7:0]'SR[7:0]." This seems like a contradiction to me. Could you clarify how the MDR is loaded? <<name withheld to protect the student troubled by the contradiction>> Yes, you are quite right, they contradict each other. However, they do so only in that there are "don't care" conditions that get set one way if we use MAR[0} and a different way if we use DATA_SIZE. Since they are "don't cares," even though MDR gets loaded differently in the two cases, it does not affect anything meaningful. That is, what I need in MDR after loading is (x1, x2, x are all don't care): MAR[0] DATA_SIZE | MDR[15:8] MDR[7:0] - 0 B | x1 BUS[7:0] 0 W | BUS[15:8] BUS[7:0] 1 B | BUS[7:0] x2 1 W | x x I can get this desired result in two ways, as described in the contradictory paragraphs of the student's message. If I load based on MAR[0], then x1 gets loaded with BUS[15:8], and x2 gets loaded with BUS[7:0]. If I load based on DATASIZE, x1 and x2 are both BUS[7:0]. Actually, we do not need both control lines, and should remove one of them. For those who were in class last Wednesday, you note that one of the four input combinations due to MAR[0], DATA_SIZE is problematic, and we will have to deal with that situation before much longer. But on Lab 3. Hope Lab 3 is now just a pleasant memory. Yale Patt