其实就是整理一下自己做题的思考与学习,查漏补缺的环节
程序计数器的新值
设机器字长为16位,存储器按字节编址,设PC=1000H,当读取一条双字长指令后,PC=_____
注意是按字节编址,这意味着从1000H到1001H就多了一个字节。双字长意味着16bit*2=32bit=4B
。这样就是1004H
关于跳跃寻址
指令的寻址方式有顺序和跳跃两种,采用跳跃寻址方式,可以实现程序的条件转移或无条件转移
移位
算术右移:最高位填充符号位。
逻辑右移:最高位填充0
左移都是补0
指令Cache
指令Cache与数据Cache分离的主要目的是减少指令流水线资源冲突,取指访问iCache,读写数据访问dCache。
超长指令字
超长指令字是由编译程序把多条能够并行操作的指令组合成一条具有多个操作码字段的指令
在每个时钟周期内同时执行多条指令的是超标量技术
设计微指令
微指令下一条地址的计算方法:断定法
根据机器状态决定下一条微指令的地址,下一条微指令的地址包含在当前微指令的代码中。这是一种直接给定微地址和测试判定地址相结合的方式。
水平型格式微指令的设计一般就分为三块
|---操作控制字段---|---测试条件---|---下地址字段---|
以下题为例
已知某计算机采用微程序控制器,控制存储器容量为 128×32 位。微程序可以在整个控制存储器中现分支跳转,控制微程序的判别测试条件有3 个,微指令采用水平型格式,后续微指令地址采用断定法。请设计微指令格式。
由题意知微指令长度是32位。控制存储器最多容纳这样的微指令128条。128= 2 7 2^7 27,故下地址字段7位。测试条件由题意是3个。最终操作控制字段是32-7-3=22位