1.7.5CMOS 书P19

  • CMOS比较擅长构成的门电路是非门、与非门、或非门、传输门
  • 像与门就用与非门+非门组成。

1.6.4直流电压传输特性 书P15

  • 书中谈到选择逻辑电平的合理方法是选择在传输特征曲线斜率$\frac{dV(Y)}{dV(A)}=-1$的位置,对应图1-25中的$V_{IL}$和$V_{IH}$。这两个位置被称为单位增益点。在单位增益点选择逻辑电平可以最大化噪声容限。
  • 个人理解:选择这两个点后,性质与 图1-25 a) 的反相器理想曲线会很相似。

2.8.1复用器

  1. 书P48
    • 书中谈到,一个$2^N$个输入的复用器可以通过将合适的输入连接到0或者1的方法来实现任何$N$输入逻辑函数。
    • 个人理解:$N$输入有$2^N$种可能的组成结果。

2.9时序

2.9.1传播延迟和最小延迟 书P51

  • 传播延迟$t_{pd}$:
    • 定义1:当输入改变直到一个或多个输出达到它们的最终值所经历的最长时间。
    • 定义2:一个信号从输入到输出的 关键路径(critical path) 长度。
  • 最小延迟$t_{cd}$:
    • 定义1:当一个输入发生变化直到任何一个输出 开始改变 的最短时间。
    • 定义2: 一个信号从输入到输出的 最短路径(short path) 长度。
  • 最短控制 - 输出延迟:控制信号的输入到最终输出的时间最小值。当 数据输入在控制输入前 到达时,倾向使用该策略。
    • 个人理解:由于数据信号先达到,故需要想法设法减少控制信号达到的时间。
  • 最短数据 - 输出延迟:数据信号的输入到最终输出的时间最小值。当 控制输入在数据输入前 到达时,倾向使用该策略。

3时序逻辑设计

3.2锁存器和触发器 书P61

  • 发展历史
    1. 交叉耦合的反相器对。特点:有记忆功能,但是没有输入。
    2. SR锁存器。特点:是交叉耦合的或非门对;当S=R=1时会产生两个输出为0的混乱电路响应;S和R混淆了时间和内容。
    3. D锁存器。特点:在SR锁存器的基础上将输入分为数据输入D和时钟输入CLK;避免了S和R同时为1的情况;电平敏感。
    4. D触发器。特点:使用两个D锁存器;在时钟CLK上升沿将数据输入D复制到输出Q。
    5. 寄存器:由共享一个公共$CLK$的一排N个触发器组成。

      例3.4竞争条件 书P68

  • 过程分析:假设初始状态$CLK=D=1$,通过反相器需要的时间相较与门和或门要长很多。
    1. 在初始状态$CLK=D=1$下,$Q_{prev}=Q=1$。
    2. 当$CLK=0$时,$N1=0$,此时由于反相器速度很慢,$N2$仍为$0$,故得到$Q=0,Q_{prev}=0$。
    3. 等到$\overline{CLK}=1$时,由于$Q_{prev}=0$,则此时$N2=0$,输出$Q=0$,而不会保持预期值1了。

      建立时间约束(最大延迟约束)和保持时间约束(最小延迟约束)书P84

  • 关键是理解两者的思想内涵。注意书中的分析都是基于R2展开的;CLK上升沿到达R1后,才会开始引起后续的一系列变化。
    1. 建立时间约束是为了满足R2的建立时间,即D2必须在不迟于下一个时钟沿之前的建立时间稳定。因为它限制了组合逻辑的最大延迟,故又称最大延迟约束。
    2. 保持时间约束是为了满足R2的保持时间,即输入D2必须保持不变直到本次时钟沿满足$t_{hold}$的要求。因为它限制了组合逻辑的最小延迟,故又称最小延迟约束。
    3. 引入时钟偏移$ t_{skew} $后,务必抓住前面两点理解。要尽量减少时钟偏移。
    4. $t_{cd}$和$t_{pd}$是设计师可以控制的变量,一般是通过增减组合路径上的门电路数确定。其他变量一般由制造商确定。

      分辨时间 书86

  • 书中的公式$P(t_{res}>t)=\frac{T_{0}}{T_{c}}e^{-\frac{t}{\tau}}$
    分析:$T_{c}$为时钟周期,$\tau$和$T_{0}$由触发器的属性决定。一般来说取$t = t_{pcq}$时,该公式的概率将达到一个很高的值。
  • 分辨时间是指输出从亚稳态到稳态的时间。
  • 书P90的公式(3-25)推导:$P(t_{res}>t)=\frac{T_{0}}{T_{c}}e^{-\frac{t}{\tau}}$将$t = T_{c}-t_{setup}$代入即可。

5. 数字模块

先进进位加法器 书P147

  • 超前进位加法器的思想是并行计算进位,以缩短关键路径。
    主要公式:进位信号

    5.5.6 只读存储器 书P165

  • 书中原理:为了读ROM位单元,位线被缓慢的拉至高电平1。随后打开字线(即赋值为1,这样会打开NMOS),如果晶体管存在,则位线会接地变为低电平0;如果晶体管不存在,则仍然保持高电平1。
  • 一个$2^N字\times M位$的存储器可以实现任何$N$输入和$M$输出的组合逻辑功能,这种用于执行逻辑的存储阵列称为查找表(LUT)
  • 这里的仅仅是代表存储器的行,对应的代表列。

6. 体系结构

6.3.2 I类型指令 书P189

  • 为什么补码进行扩展一般是用符号扩展?原因是符号扩展不改变补码的值。例:
    001 符号扩展为 000 001  ——> 原码值为000 001即+1
    101 符号扩展为 111 101  ——> 原码值为100 011即-3

7. 微体系结构

7.1.1 体系结构状态和指令集 newbing

  • 体系结构状态是指计算机体系结构中的寄存器和内存中的数据的集合。它反映了计算机在某一时刻的运行状态。不同的指令会改变体系结构状态,例如读写寄存器或内存。体系结构状态与微体系结构状态不同,微体系结构状态是指微处理器内部的数据,例如流水线、缓存、预测等。
  • 体系结构寄存器是指在指令集中可以使用,提供给程序员使用的寄存器。它们反映了体系结构状态,也就是计算机的运行状态;非体系结构寄存器是指不需要程序员了解,对他们而言是透明的,指令不能直接对这些寄存器使用的寄存器。它们是CPU内部的物理寄存器,用来提高处理器的指令级并行的能力。例如,流水线、缓存、预测等都涉及非体系结构寄存器2。

    7.3.3 更多指令 书P239

  • 扩展主译码器真值表中各个控制信号的含义:
    • RegWrite:是否写寄存器文件。
    • RegDst:选择目的寄存器是Instr[20:16]还是Instr[15:11]。
    • ALUSrc:选择ALU的输入之一是来自立即数扩展还是寄存器文件。
    • Branch:是否为有条件分支指令。
    • MemWrite:是否向存储器写数据。
    • MemtoReg:选择写入寄存器文件的数据是来自ALU结果还是数据存储器。
    • ALUOp:选择ALU计算是否涉及加法、减法或者依赖于funct字段。比如lw rt, imm(rs)中,就涉及imm+$rs的加法,故lw的ALUOp为加法字段。
    • Jump:是否为无条件跳转指令。

      7.8.1 深流水线 书P282

  • 例7.11 深流水线中, 指令时间$T_{instruction}$=$T_c*CPI$。

2023年3月16日 看完 好书