控制器的结构和功能 (计组学习笔记)

本文详细介绍了计算机控制器的结构与功能,包括地址总线、控制总线和数据总线的作用,以及控制器如何指挥CPU和其他设备的数据流动。同时,探讨了控制单元的输入输出、工作原理及设计步骤。

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

一研为定,万山无阻 !

控制器的结构与功能

  • 地址总线(DB ): 内存储器、输入设备和输出设备从地址总线接收地址信息。单向
  • 控制总线 (CB) : 内存储器、输入设备和输出设备从控制总线得到控制信号。单向
  • 数据总线 (DB) : 内存储器、输入设备和输出设备通过数据总线与其他部件传送数据。 双向
  • 接口 : 输入设备和输出设备通过接口电路与总线相连接。由于内存中的数据格式与输入输出设备的格式内容不相同,所以需要一个接口
    在这里插入图片描述
    在这里插入图片描述

控制器的功能

  • 控制器是计算机系统的指挥中心
  • 从主存中取出一条指令,并指出下一条指令在主存中的位置。
  • 对指令进行译码或测试,产生相应的操作控制信号,以便启
    动规定的动作。
  • 指挥并控制CPU、主存、输入和输出设备之间的数据流动方向

控制单元的输入与输出

输入

  • 操作码、时钟、标志、外来信号

输出

  • CPU 内部控制信号

  • 到控制总线的控制信号

在这里插入图片描述

控制器的工作原理(了解)

CU 的设计 :硬布线(组合逻辑 + 触发器)

在这里插入图片描述

  • 关于机器周期:机器周期可看做所有指令执行过程中的一个基准时间。通常以存取周期作为基准时间,即机器周期。在存储字长等于指令字长的前提下,取指周期也可看做机器周期。

在这里插入图片描述

设计步骤

1.分析每个阶段的微操作序列 (重要)
2.选择CPU的控制方式
3.安排微操作时序
4.电路设计

CPU的控制方式

  • CPU的控制方式:产生不同微操作命令序列所用的时序控制方式。

同步控制方式

在这里插入图片描述

异步控制方式

在这里插入图片描述

联合控制方式

  • 对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法。

安排微操作时序

安排微操作原则

  • 原则一 : 微操作的先后顺序不得随意更改
  • 原则二: 被控对象不同的微操作,尽量安排在一个节拍内完成
  • 原则三: 占用时间较短的微操作,尽量安排在一个节拍内完成,并允许有先后顺序

取址周期

原顺序
在这里插入图片描述
根据三大原则改造

在这里插入图片描述

间址周期

在这里插入图片描述

执行周期

非访存指令

在这里插入图片描述

访存指令

在这里插入图片描述

条件指令
  • 分为有条件转移指令与无条件转移指令
    在这里插入图片描述
中断周期
  • EINT 硬件关中断
    在这里插入图片描述

在这里插入图片描述

  • 这些操作由中断隐指令完成
    注意
  • 中断隐指令不是一条指令,而是指一条指令的中断周期由硬件完成的一系列操作。

中断周期的三个任务
1、保存断点
2、形成中断服务程序的入口地址
3、关中断

电路设计

设计步骤
1、列出操作时间表
2、写出微操作命令的最简表达式
3、画出逻辑图

  • I 进入的为间址阶段
  • I(*) 进入的为执行阶段

在这里插入图片描述

在这里插入图片描述

  • CLA 清零指令
  • COM 取反指令

在这里插入图片描述

微操作信号综合

以 M(MAR) --> MDR 为例

  • 推出微操作逻辑表达式
    在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值