计算机组成之LF

计算机组成之LF


1、假设微程序控制器容量为1024×48位,微程序可在整个控存内实现转移,反映所有指令执行状态转换的有限状态机中有4个分支点,采用水平型微指令格式,并采用断定法确定下一条微地址,即由专门的下地址字段确定微地址。

1)设计微指令格式,说明各字段的含义和位数;
2)对转移控制字段进行编码。

(1)解:微程序控制器容量位 1024 × 48,说明下地址字段有10位 ;
有4个分支点,说明需要对5钟情况进行控制,转移字段有3位;
微操作码字段有 48 - 10 - 3 = 35位

(2)转移控制字段编码:(注:编码方式不唯一,只要正确即可)
000:下地址字段指出的地址作为下一条微地址
100:根据分支1处的条件来选择下一条微地址
101:根据分支2处的条件来选择下一条微地址
110:根据分支3处的条件来选择下一条微地址
111:根据分支4处的条件来选择下一条微地址


2、某计算机CPU主频为500MHz,CPI为5.假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,传输单位为32位,对应的中断服务程序包含18条指令,中断响应等其他开销相当于两条指令的执行时间。回答下列问题,要求给出计算过程。

1)在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?
2)当该外设的数据传输率达到5MB/s时,改用DMA方式传送数据。假定每次DMA传送的块大小为5000B,DMA预处理和后处理的总开销为500个时钟周期,则CPU用于外设I/O的时间占整个CPU时间的百分比是多少?(假设DMA与CPU之间没有访存冲突)

解:
(1)每次中断处理的时钟周期数为 (18+2)× 5 = 100
外设传输的数据为0.5MB/s,每次中断传送4字节,
中断次数 = 0.5MB / 4B = 125000次
100 × 125000 = 12.5M 个时钟周期
CPU主频500MHZ,时间为12.5/500=2.5%

(2)5MB/1000B = 1000次
500 × 1000 =0.5M
0.5M / 500M = 0.1%


3、“非常简单CPU”的寄存器和内部组织结构如下:存储空间为64B,程序员可访问的寄存器AC,另有工作用的6位地址寄存器AR、6位程序计数器PC、8位数据寄存器DR、2位指令寄存器IR。

指令集结构如下:

(1)假设初始时PC=0,AC=25H,内存各单元的内容如下所示。程序运行5个指令周期后,AC=? 写出每步的过程。

单元号 内容
0 01000111
1 00000110
2 11101010
3 10000001
4 10101010
5 01010101
6 00000011
7 10101010
8 11111100
pc = 0,内容 = 01 000 111 执行AND
内容地址 = 000 111 
M[000 111] = M[ 7 ] = 1010 1010
AC = 25H = 0010 0101 
AC ^ 1010 1010 = 0010 0000 = 20H

pc=1,内容 = 00000110 执行 ADD
内容地址 = 000110 = 6
AC + 00000011 =  0010 0000  + 00000011
 = 0010 0011 = 23H

pc=2,内容 = 11101010 执行INC
AC + 1 = 0010 0100 = 24H

pc =3 ,内容 = 10000001 执行 JMP
内容地址 = 000001 = 1 跳到1号单元

pc = 4,AC + 00000011 = 27H

故执行5个周期后,AC = 27H

(2)画出CPU状态图。

因为指令寄存器IR有两位,所以完成四种操作需要用的IR指令分别为00、01、10、11


(3)用RTL语言写出各状态的操作语句。

FETCH1: AR←PC (取址)
FETCH2: DR←M,PC←PC+1
FETCH3: IR←DR[7…6],AR←DR[5…0]

ADD1: DR←M
ADD2: AC←AC+DR

AND1: DR←M
AND2: AC←AC∧DR

JMP1: PC←DR[5…0]

INC1: AC←AC+1



待续。。。

猜你喜欢

转载自blog.csdn.net/Touale/article/details/112908188