在本文中,我们将详细讨论微指令格式的Nano编程,还将借助示例进行理解,并讨论对Nano编程的需求。让我们一一讨论。
前提条件–水平和垂直微指令
微指令格式:
微指令的控制域决定了要产生的控制信号。它有两种不同的格式:水平或垂直。让我们一一讨论。
类型1:
水平微指令:
在这里,我们将讨论以下水平微指令格式。
- 微指令的每一位都对应一个控制信号。
- 该位为1,即相应的控制信号将由微指令产生。如果微指令中有N位,那么它可以通过该微指令产生N个控制信号。
- 随着控制信号的增加,微指令也变得越来越宽。因此,控制存储器水平增长。
- 由于不使用解码器,因此执行速度更快。
- 控制存储器很大,因为微指令很宽。
类型2:
垂直微指令:
在这里,我们将讨论以下垂直微指令格式。
- 微指令的位被解码。
- 解码后的输出决定要产生的控制信号。
- 微指令中的N位将总共产生2个N控制信号。
- 但是一个微指令可以生成一个控件。
- 需要更多的微指令。
- 同样,解码会使执行速度变慢。
- 电路很复杂。
需要纳米编程:
- 水平微指令可以同时产生多个控制信号,但是范围很广。这使得控制存储器非常大。
- 垂直微指令很窄,但是在解码后仅产生一个控制信号。这使控制存储器较小,但是执行速度很慢。
- 两种方法各有优缺点。
- 因此,需要将两种技术的组合称为纳米编程。
纳米编程:
- 在这里,我们有一个两级控制存储器。
- 指令从主存储器中提取到指令寄存器IR中。
- 使用其操作码,将其第一条微指令的地址加载到µPC中,
- 使用该地址,我们将从微控制存储器(µCM)中提取微指令到微指令寄存器µIR中。
- 这是垂直形式,并由解码器解码。
- 解码后的输出将新地址加载到nano程序计数器(nPC)中。
- 通过使用此地址,可将纳米指令从纳米控制存储器(nCM)提取到纳米指令寄存器(nIR)中。
- 这是水平形式,可以直接生成一次可能多个的控制信号。
- 这样的组合提供了两种技术的优点。
- 由于微指令是垂直的,因此控制存储器的大小很小。
例子 –
- 假设处理器具有32条指令(8条用于数据传输操作的算术运算8、8条用于移位运算的逻辑运算8)。假设我们总共需要32个控制信号,其中8个负责执行数据传输操作,8个用于逻辑,8个用于移位,8个用于算术。
- 如果我们通过水平微指令来实现它,那么每个微指令的大小应为32位。对于数据传输操作,最有可能我们不需要其他3种类型的指令的控制信号,因此在整个微指令中,用于生成不同3种指令类型的控制信号的27位为0(垃圾),这会占用大量内存空间的浪费,也控制了内存大小的增加。
- 如果我们使用纳米编程,则微控制存储器具有用于通过解码(即使用垂直微指令)来识别指令类型的指令。在识别指令类型之后,纳米控制存储器负责为先前识别的特定指令类型生成控制信号。因此,这样做的优点是每条纳米指令的大小减少到8位,每条微指令的大小减少到2位(用于识别4种不同类型的指令和2×4解码器),即,垂直微指令的优势我们也可以生产同时针对特定指令类型的多个控制信号,这是水平指令的优势。