计算机组成原理——指令系统与CPU概念梳理

本文主要探讨了计算机的指令系统,包括指令字的概念、指令字长、操作码的位扩展以及地址格式的设计。此外,还详细介绍了中央处理器(CPU)的工作原理,如指令执行、指令译码器、用户可见与不可见寄存器、中断处理机制、ALU运算以及微指令的相关知识。数据旁路技术和流水线技术在提高CPU效率方面的作用也有所提及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指令系统

  1. 指令字指在计算机中的一个字表示的是一个指令,数据字同理
  2. 计算机中的所有指令字长不一(定长32位,不定长8位的倍数),所以在存储器存放时,可能会占用多个存储单元,从存储器读出并通过总线传输时,可能分多次进行,也可能一次读多条指令。每一条指令必须包含操作码
  3. 可以用硬件换取空间,减少指令字中需要指明的地址码,在不改变字长的情况下,扩大指令操作数的直接寻址范围。
  4. 地址格式也可用来表示寄存器,减少访存次数。
  5. 为什么要用位的扩展来确定指令操作码:。
    a) 短的操作码一定不能被用来作为长的操作码的前缀。
    b) 先确定短的操作码,那么接下来的操作码就一定不能含有短操作码,那就只有取出位中还未用作表示的作为长操作码的前缀。
    c) 数目可能不够,那就只有进行扩展来增大数目。
  6. 加括号:存储介质数值;不加括号:存储介质或编码。
  7. 在取址过程中,指令总是从内存单元被取到指令寄存器IR中。
  8. 在直接寻址的指令字中,地址码字段直接给出主存地址;在寄存器寻址的指令字中,地址码字段直接给出寄存器编号。
  9. 基址寄存器的内容由系统决定,程序执行过程中用户不可随意改变。当使用通用寄存器作为基址寄存器时,用户有权直到使用了哪个寄存器。
    中央处理器

中央处理器

  1. CPU的工作过程就是周而复始的执行指令,计算机各个部分所进行的工作都是有CPU根据指令的要求来启动的

  2. 指令译码器就是对操作码进行测试,从而识别出这条操作码所要求的操作。

  3. 用户可见寄存器指用户可以通过程序访问的寄存器;IR、MAR、MDR是CPU内部的工作寄存器,在程序执行过程中自动赋值,程序员无法进行操作,称为用户不可见寄存器。

  4. DMA工作层面是机器周期,中断工作层面是指令周期

  5. 当CPU采用中断方式实现主存与I/O交换信息时,CPU在每条指

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进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值