取指令的解释原理

Python015

取指令的解释原理,第1张

取指令的解释原理:打开电源,存储在cmos里的BIOS程序开始检验硬件,这就是开机自检。先是北桥芯片包括CPU、内存、显卡、硬盘等。然后是南桥芯片

地址加法器的存在是为了解决一个矛盾:”8086寄存器是16位的,但地址总线是20位的“。所以它要通过这个地址加法器得到一个20位的地址,也就是将16位地址通过左移4位,然后将4位偏移地址加上去,这样就成了一个20位的物理地址,可以找到实际存储位置了。

命令组成:

现行指令地址送至存储器地址寄存器,记作PC→MAR。

向主存发送读命令,启动主存作读操作,记作1→R。

将MAR(通过地址总线)所指的主存单元中的内容(指令)经数据总线读至MDR内,记作M(MAR)→MDR。

将MDR的内容送至IR,记作MDR→IR。

指令的操作码送至CU译码,记作OP(IR)→CU。

形成下一条指令的地址,记作(PC)+1→PC。

7.某cpu的主频为10mhz,若已知每个机器周期平均包含4个时钟周期,该机的平均指令执行速度为1mips,试求该机的平均指令周期及每个指令周期含几个机器周期?若改用时钟周期为0.4us的cpu芯片,则计算机的平均执行速度为多少mips?若要得到平均每秒80万次的指令执行速度,则应采用主频为多少的cpu芯片?

时钟周期是用主频的倒数也就是100ns

机器周期也即是四倍400ns

平均指令周期就是1us

用这个除去400ns就是2.5个

如果改变,那么周期变短,此时的机器周期是变成了四倍,也就是1.6us

那么此时指令执行速度就是四分之一

0.25mips

若是每秒80万次,就是1/0.8nips=1.25us

机器周期为0.5us

时钟周期为0.125us

主频是8mhz(其实就是变成0.8倍就行了)

13.设cpu内部结构如图9.4所示,此外还设有r1-r44个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如r2位寄存器r2的输入控制,r2为寄存器r2的输出控制)要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号

pc->mar

1->r

pc+1->pc

mdr->ir

r2o->y

r4o->mar

1->r

(Y)+(MAR)->z

z->r2

pc->mar

1->r

pc+1->pc

mdr->ir

M(MDR)->MAR

1->r

r1o->y

(y)-(mdr)->z

z->r1

14.设单总线计算机结构如图9.5所示,其中m为主存,xr为变址寄存器,ear为有效地址寄存器,latch为锁存器,假设指令地址已存于pc中,划出“lda*d”和“sub x,d”指令周期信息流程图,并列出相应的控制信号序列

pc->bus->mar

m(mar)->mdr

mdr->bus->ir

op(ur)->cu

pc+1->pc

pc+d(ir)->ear

ear->bus->,ar

m(mar)->mdr

mdr->bus->acc

pc->bus->mar

m(mar)->mdr

mdr->bus->ir

op(ur)->cu

pc+1->pc

sr+d(ir)->ear

ear->bus->mar

m(mar)->mdr

acc-madr->latch

latch->bus->acc