5.1 习题(20)

2,

程序状态寄存器属于运算器

3,

通用寄存器不是一开始就有功能的,需要编写技术逻辑与移位逻辑

本身不一定具备

通用寄存器是可编程的多功能寄存器

6,

标志寄存器PWR,FR是运算器的一部分,有当前指令执行结果的状态信息

控制信息:允许中断,有中断置位指令

为CPU做出一些判断:转移指令、中断指令提供依据

7,

CPU的位数是指CPU总线的线数,CPU一次性能处理的位数

一般和机器字长是一致的

需要访存的时间,访存一次都是直接计算一次

地址总线的线数->可寻址范围->存储器最大容量

数据总线的线数->一次可取的数据位数->MDR的位数->运算器寄存器的位数

控制总线线数->一次可并行传送的控制信息位数

I/O线数->与外设通信的并行程度

8,

用户可见用户不可见
通用寄存器RMAR
程序状态寄存器PSWMDR
程序计数器PC指令寄存器IR
暂存寄存器Y

10,

PC在取指后自增

转移指令分为条件转移和无条件转移

条件转移有可能不满足就不跳转

无条件转移会无条件跳转

11,

无条件跳转指令,取指令自增一次,执行的时候回修改一次,一共修改两次

12,

通用寄存器存放了操作数和各种地址信息

机器字长决定了地址的长度,一次性能处理的二进制位数

通用寄存器的位数由机器字长决定

15,

通用寄存器可以存放数据和地址,和一些指令但不能替代专用寄存器

16,

寄存器功能
程序计数器指令地址
累加寄存器计算的中间结果
中断寄存器优先级控制
程序状态字寄存器表示程序和机器运行的状态,为转移指令、中断指令提供依据

17,

状态寄存器,保留运算指令或测试指令的结果而建立的状态信息

18,

如何取指令:PC

拿来放哪里:IR

如何解析指令:CU

19,

指令译码,只会对操作码进行译码

20,

地址译码器属于存储器,将地址信号翻译成存储信号,将地址信号翻译成存储单元的选通信号

21,

CPU决定指令执行顺序的程序计数器

22,

一条指令的周期

取指周期:取指令

间址周期:取有效地址

执行周期:取操作数

中断周期:保存断点

多级寻址:前面有一位标志位看是否是最后一个

23,

IR存放的是指令的位数

如果是边界对齐,PC中的位数是总容量/指令的大小,然后用多个二进制位数表示

如果是间接须知 EA的长度也是类似PC中的,要取决于数的大小

24,

25,

CPU专用寄存器

MAR,MDR,IR,PSW,PC

1. 深入掌握CPU的工作原理,包括ALU、控制器、寄存器、存储器等部件的工作原理; 2. 熟悉和掌握指令系统的设计方法,并设计简单的指令系统; 3. 理解和掌握小型计算机的工作原理,以系统的方法建立起整机概念; 4. 理解和掌握基于VHDL语言和TEC-CA硬件平台设计模型机的方法。 二、设计要求   参考所给的16位实验CPU的设计与实现,体会其整体设计思路,并理解该CPU的工作原理。在此基础上,对该16位的实验CPU(称为参考CPU)进行改造,以设计得到一个8位的CPU。总的要求是将原来16位的数据通路,改成8位的数据通路,总的要求如下: 将原来8位的OP码,改成4位的OP码; 将原来8位的地址码(包含2个操作数),改成4位的地址码(包含2个操作数)。   在上述总要求的基础上,对实验CPU的指令系统、ALU、控制器、寄存器、存储器进行相应的改造。具体要求如下: 修改指令格式,将原来指令长为16位的指令格式改成8位的指令长格式; 设计总共16条指令的指令系统。此指令系统可以是参考CPU指令系统的子集,但参考CPU指令系统中A组和B组中的指令至少都要选用2条。此外,常见的算术逻辑运算、跳转等指令要纳入所设计的指令系统; 设计8位的寄存器,每个寄存器有1个输入端口和2个输出端口。寄存器的数量受控于每一个操作数的位数,具体要看指令格式如何设计; 设计8位的ALU,具体要实现哪些功能与指令系统有关。设计时,不直接修改参考CPU的VHDL代码,而是改用类似之前基础实验时设计ALU的方式设计; 设计8位的控制逻辑部件,具体结合指令功能、硬布线逻辑进行修改; 设计8位的地址寄存器IR、程序计数器PC、地址寄存器AR; 设计8位的存储器读写部件。由于改用了8位的数据通路,不能直接采用DEC-CA平台上的2片16位的存储芯片,需要按照基础实验3的方法设计存储器。此种方法不能通过DebugController下载测试指令,因此测试指令如何置入到存储器中是一个难点。设计时,可以考虑简单点地把指令写死在存储器中(可用于验证指令的执行),然后用只读方式读出来;或者考虑在reset的那一节拍里,实现存储器中待测试指令的置入; (可选项)设计8位的数据寄存器DR; (可选项)不直接设计存储器RAM,而是采用DEC-CA平台上的2片16位的存储芯片.在实现了第9个要求的基础上,实现由Debugcontroller置入待测试指令; (可选项)顶层实体,不是由BDF方式画图实现,而是用类似基础实验4(通用寄存器组)中设计顶层实体的方式,用VHDL语言来实现。 (可选项)自己设想   利用设计好的指令系统,编写汇编代码,以便测试所有设计的指令及指令涉及的相关功能。设计好测试用的汇编代码后,然后利用Quartus II软件附带的DebugController编写汇编编译规则。接着,利用DebugController软件把汇编编译之后的二进制代码置入到所采用的存储器中,并对设计好的8位CPU进行测试。
一、 设计目标 设计目的: 设计一个含有36条指令的MIPS单周期处理器,并能将指令准确的执行并烧写到试验箱上来验证 设计初衷 1、理解MIPS指令结构,理解MIPS指令集中常用指令的功能和编码,学会对这些指令进行归纳分类。 2、了解熟悉MIPS体系中的处理器结构 3、熟悉并掌握单周期处理器CPU的原理和设计 4、进一步加强Verilog语言进行电路设计的能力 二、实验设备 1、装有xilinx ISE的计算机一台 2、LS-CPU-EXB-002教学系统实验箱一台 三、实验任务 1.、学习 MIPS 指令集,深入理解常用指令的功能和编码,并进行归纳确定处理器各部件的控制码,比如使用何种 ALU 运算,是否写寄存器堆等。 2、单周期 CPU 是指一条指令的所有操作在一个时钟周期内执行完。设计中所有寄存器和存储器都是异步读同步写的,即读出数据不需要时钟控制,但写入数据需时钟控制。 故单周期 CPU 的运作即:在一个时钟周期内,根据 PC 值从指令 ROM 中读出相应的指令,将指令译码后从寄存器堆中读出需要的操作数,送往 ALU 模块,ALU 模块运算得到结果。 如果是 store 指令,则 ALU 运算结果为数据存储的地址,就向数据 RAM 发出写请求,在下一个时钟上升沿真正写入到数据存储器。 如果是 load 指令,则 ALU 运算结果为数据存储的地址,根据该值从数据存 RAM 中读出数据,送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆中。 如果非 load/store 操作,若有写寄存器堆的操作,则直接将 ALU 运算结果送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆中。 如果是分支跳转指令,则是需要将结果写入到 pc 寄存器中的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值