作者barry800414 (小铭)
看板b98902HW
标题[计组] 考古题第五题
时间Mon Nov 8 00:42:44 2010
题目是这样:
5.(10%) The "jump register " instruction in the original TOY machine uses Rd
as the register to hold the address to jump to. Explain why it is wrong and
how to fix this
呃 其实我一开始题目看不懂 不过後来有问到了
目前理解以及问到的答案是:
type 1 : opcode d s t
jump register 的指令是type 1 pc<- R[t]
意思是假如要跳到RF这个register 要打 E00F
而之所以不是 pc<-R[d] (也就是打EF00) 的原因是
投影片里面 TOY machine 中的 datapath
IR 里面的d并没有连到 register B Address的部分 (B Data会连到ALU的 input2)
只有连到register W address & A Address 而 A Data 是连到 ALU 的 input 1
所以没办法做copy input2的动作 也就没办法给pc
(我不确定对不对)
是说我觉得很奇怪的是 我刚刚打开之前写的.asm档用toyasm 转成.toy档案
我看到jump register 被翻译成 EF00
阿不是就不能用?? 怎麽还是EF00??
请强者帮忙解答 感激不尽!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.243.226
1F:→ jcaosola:96年第五题问一样的事 11/08 01:40
2F:→ barry800414:这个送大家 11/08 02:38
4F:→ barry800414:从讲义里面撷取的 toy asm reference card 是阿蹦的 11/08 02:40
5F:推 k1923456:推 11/08 08:36
6F:推 seanwu:因为toyvm不管datapath... 它要怎麽做都ok 11/08 09:58
7F:推 seanwu:当然EF00要硬做还是ok啦,把MUX_READ_REG=1,ALUop=000 11/08 10:00