6.7-CU微程序设计
引入#
采用组合逻辑设计方法设计CU,每一个微操作命令都对应一个逻辑电路,一旦设计完毕便会发现,这种CU的线路结构十分庞杂。为了克服这个缺点,设想采用与【存储程序】相类似的方法,来解决微操作命令序列的形成。
-
执行[微命令] 就是执行 [微操作]
- 微命令:PCout = 1,ARin = 1
- 微操作:PC → AR
-
- 一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行
- 从指令与微指令,程序与微程序,地址与微地址的对应关系来看,前者与内存储器有关,后者与控制存储器有关
- 每一个CPU周期对应一条微指令
微程序CU的工作原理#
机器指令所对应的微程序#
工作原理#
- 微程序是利用软件思想设计硬件的技术
- 控制信号序列像程序一样存储起来
- 控制信号序列分解为若干节拍
- 1 个节拍的信号编成 1 条微指令
- 多个节拍对应多条微指令,形成 1 段微程序
- 依序执行微程序即可生成控制信号序列
- 指令取指执行
- 微程序执行
- 微指令执行
- 生成控制信号
- 控制信号序列像程序一样存储起来
- [存储技术] 和 [程序设计] 相结合,回避复杂时序逻辑设计
微程序控制单元的基本框图#
- 控制存储器
- CMAR:控存地址寄存器,用来存放欲读出的微指令地址
- CMDR:控存数据寄存器,用来存放从控存读出的微指令
- 顺序逻辑
- 用来控制微指令序列,具体就是控制形成下一条微指令(即后续微指令)的地址
- 其输入与如下字段有关
- 微地址形成部件(与IR相连):开始执行时,提供微程序在控存的首地址(微程序入口地址)给 [顺序逻辑]部件
- 微指令的下地址字段:执行过程中,其负责提供后续微指令的地址给 [顺序逻辑]部件
- 外来的标志(PSW、CLK)
微指令的基本格式#
- 一条微指令对应一个时钟周期
- 微指令操作控制字段的信号在该时钟周期内有效,为1有效
- 指令需要多少时钟周期就包括多少微指令
微程序举例#
门阵列控制器#
由大量的与门、或门阵列等电路构成的器件,简称为门阵列器件。用门阵列器件设计的操作控制器,称为门阵列控制器。
使用通用可编程逻辑器件(大规模集成电路制成):既可实现组合逻辑,也实现时序逻辑,因而可以满足计算机系统中对随机逻辑功能的需要。
门阵列器件基本思想#
采用门阵列器件设计控制器的基本设计思想与早期的硬布线控制器一样
- 首先写出每个操作控制信号的逻辑表达式
- 然后选用某种门阵列芯片,并通过编程来实现这些表达式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?