1
(1)
T_{p_1}=0.9\times5\times10^9\div4GHz=1.125s
T_{p_2}=0.75\times1\times10^9\div3GHz=0.25s
p_2 所用时长更短。
(2)
T=1\times10^9\times0.9\div4GHz=0.225s
I_{p_2}=0.225s\times3GHz\div0.75=9\times10^8
(3)
MIPS_{p_1}=\frac{4GHz}{0.9\times10^6}=4444s^{-1}
MIPS_{p_2}=\frac{3GHz}{0.75\times10^6}=4000s^{-1}
p_1 的 MIPS 更高,但是按照 (1) 的结论更慢。
(4)
MFLOPS_{p_1}=\frac{5\times10^9\times40\%}{1.125s\times10^6}=1778s^{-1}
MFLOPS_{p_2}=\frac{1\times10^9\times40\%}{0.25s\times10^6}=1600s^{-1}
2
(1)
ALU:计算单元,执行算术运算,SOC 课讲过。
REGFILE:寄存器单元,提供寄存器读写。
MUX:选择器,按照控制信号连接对应的电路。
MEMORY:内存单元,按照地址读写内容。
(2)
ALU,REGFILE,MUX 属于 CPU.
MEMORY(包括 MAR,MDR)属于内存
(3) 图中 INPUT 和 OUTPUT 使用固定内存映射进行 I/O.
x86 计算机中显示器信号、键盘、鼠标可以使用内存映射进行 I/O. 除此之外 I/O 设备还有声卡、网卡、硬盘等。
3
(1)
| A | B | Bin | D | Bout |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
(2) 功能:计算 A-B-Bin,结果为 D,借位 Bout,即一位全减器。
(3)
module Foo(A, B, Bin, D, Bout);
input A, B, Bin;
output D, Bout;
assign D = A^B^Bin;
assign Bout=(~A&(B|Bin))|(B&Bin);
endmodule
4
(1) 不区分,PC(IP)所指位置默认皆为指令,遇到非法指令直接报错。程序应自己设置合适的跳转保证 PC(IP)所指位置皆为指令。
按地址读取内存时全部视为数据,指令也视为对应的二进制数据。
发表回复