Computer Organization
$Ericaaaaaaaa$
$Jan,\ 2021$
组合逻辑设计
逻辑门电路
TTL、MOS 集成门电路
-
晶体管
-
COMS
-
N 型
-
P 型
Gate N 型 P 型 0 (低电平) OFF (截止) ON (导通) 1 (高电平) ON (导通) OFF (截止) - 注意事项
- 导通时应该让
Sourse
和Gate
之间电压有反差 - 避免无源驱动
- 避免短路
- 导通时应该让
-
-
利用晶体管构建门电路
-
NAND
-
NOR
-
与门、非门、或门、复合逻辑门电路及其性能指标
-
门电路
名称 示意图 真值表 NOT AND OR XOR NAND NOR
布尔代数
布尔代数基本原理
逻辑函数表达式:标准表达式(最小项表达式、最大项表达式)
逻辑函数表达式的简化法:(合并乘积项法、吸收项法、配项法)
-
合并乘积项法——利用互补律消去一个变量
$F = A(BC + \overline{B}\overline{C}) + AB\overline{C} + A\overline{B}C$
$\ \ \ \ =ABC + A\overline{B}\overline{C} + AB\overline{C} + A\overline{B}C$ 利用分配律展开
$\ \ \ \ =(ABC + A\overline{B}C) + (A\overline{B}\overline{C} + AB\overline{C}))$ 合并
$\ \ \ \ =AC(B + \overline{B}) + A\overline{C}(\overline{B} + B)$ 互补律
$\ \ \ \ =AC + A\overline{C}$ 互补律
$\ \ \ \ =A(C + \overline{C})$ 互补律
$\ \ \ \ =A$
-
吸收项法——利用吸收律和包含律减少“与”项
$F = A\overline{B} + \overline{A}B + ABCD + \overline{A}\overline{B}CD$
$\ \ \ \ =(A\overline{B} + \overline{A}B) + (AB + \overline{A}\overline{B})CD$
$\ \ \ \ =(A\overline{B}+\overline{A}B) + \overline{A\overline{B} + \overline{A}B}CD\ \ \ \ \ \ 吸收律: A \pm AB = A\pm B$
$\ \ \ \ =A\overline{B} + \overline{A}B + CD$
-
配项法——利用互补律,配在乘积项上
$F = AB + \overline{A}\overline{B}C + BC$
$\ \ \ \ =AB + \overline{A}\overline{B}C + BC(A +\overline{A})$
$\ \ \ \ =AB + \overline{A}\overline{B}C + ABC + \overline{A}BC$
$\ \ \ \ =(AB + ABC) + (\overline{A}\overline{B}C + \overline{A}BC)$
$\ \ \ \ =AB(1 + C) + \overline{A}C(B + \overline{B})$
$\ \ \ \ =AB + \overline{A}C$
-
卡诺图 $(K-map)$
$y = bd + b’d’ + acd$
用卡诺图生成的最简表达式不唯一。
使用卡诺图可以方便的化简多个布尔表达式。
- 卡诺图采用格雷码,即相邻方格中有一个变量的值不同。
- 卡诺图是环绕的
- 用卡诺图得到最小化等式的规则
- 用最少的圈来圈住全部所有的1
- 每个圈中的所有方格都必须包含1
- 每个圈必须是矩形,其每个边长必须是 2 的整数次幂(例如 1, 2, 4)
- 每个圈必须尽可能的大
- 圈可以环绕卡诺图的边界
- 如果可以使用更少数量的圈,则卡诺图中一个为 1 的方格可以被多次圈住
Verilog HDL 介绍
【Verilog HDL】 是硬件描述语言的一种,用于数字电子系统设计。
【HDL】$Hardware\ Description\ Language$ 硬件描述语言
【VHDL】$VHSIC\ Hardware\ Description\ Language$ 高速集成电路硬件描述语言
【VHSIC】$Very\ High\ Speed\ Integrated\ Circuit$ 高速集成电路
基本组合逻辑部件设计与分析
运算单元电路(加法器、比较器)
-
一位全加器
-
末位
- 列出真值表
$a_0$ $b_0$ $s_0$ $c_1\ (Carry Out Bit)$ 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 - 通过真值表写出表达式
$s_0 = a_0\ XOR\ b_0$
$c_1 = a_0\ AND\ b_0$
-
其它位
- 列出真值表
$a_i$ $b_i$ $c_i$ $s_i$ $c_{i+1}\ (Carry Out Bit)$ 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 -
通过真值表写出表达式
$s_i = \overline{a_i}\overline{b_i}c_i + \overline{a_i}b_i\overline{c_i} + a_i\overline{b_i}\overline{c_i} + a_ib_ic_i$
$c_{i+1} = a_ib_i + a_ic_i + b_ic_i$
-
根据表达式构造一位全加器
-
行波进位加法器
-
-
比较器
多路选择器,译码器,编码器
-
8 选 1 数据选择器
-
功能①
-
控制端共三位,为 $A_2A_1A_0$,通过 $A_0,\ A_1,\ A_2$ 的组合选择某个 $D$
-
$Y = \overline{A_2}\overline{A_1}\overline{A_0}D_0 + \overline{A_2}\overline{A_1}A_0D_1 + \overline{A_2}A_1\overline{A_0}D_2 + \overline{A_2}A_1A_0D_3 + A_2\overline{A_1}\overline{A_0}D_4 + A_2\overline{A_1}A_0D_5 + A_2A_1\overline{A_0}D_6 + A_2A_1A_0D_7$
$\ \ \ =m_0D_0 + m_1D_1 + m_2D_2 + m_3D_3 + m_4D_4 + m_5D_5 + m_6D_6 + m_7D_7$
-
-
功能②
-
$D_7 - D_0$ 为控制端——多功能运算电路
通过 $D_7 - D_0$ 取不同的值,从输入变量 $A_2,\ A_1,\ A_0$ 的各个最小项中选取某几个最小项输出,实现不同的运算电路。
共 $2^8 = 256$ 种功能——包含 3 变量的各种最小项表达式,可实现任意组合逻辑电路的设计
-
$Y = \overline{A_2}\overline{A_1}\overline{A_0}D_0 + \overline{A_2}\overline{A_1}A_0D_1 + \overline{A_2}A_1\overline{A_0}D_2 + \overline{A_2}A_1A_0D_3 + A_2\overline{A_1}\overline{A_0}D_4 + A_2\overline{A_1}A_0D_5 + A_2A_1\overline{A_0}D_6 + A_2A_1A_0D_7$
$\ \ \ =m_0D_0 + m_1D_1 + m_2D_2 + m_3D_3 + m_4D_4 + m_5D_5 + m_6D_6 + m_7D_7$
-
【例】利用数据选择器实现逻辑函数 $F(A, B, C) = \overline{A}\overline{B}C + \overline{A}B\overline{C} + AB$
【解】
$A-A_2, B-A_1, C-A_0$
$F(A, B, C) = \overline{A}\overline{B}C + \overline{A}B\overline{C} + AB = m_1 + m_2 + m_6 + m_7$
故:$A_0 = 0, D_1 = 1, D_2 = 1, D_3 = 0, D_4 = 1, D_5 = 0, D_6 = 1, D_7 = 1$
-
-
译码器
时序逻辑设计
锁存器和触发器
SR 锁存器,D 锁存器
SR 锁存器
Q 与 ~Q 随着 R 与 S 的改变随时改变
D 锁存器 (D-latch)
在 clk 置位时,D 实时改变 Q 与 ~Q,
在 clk 为0时,D 对 Q 与 ~Q 无影响
D 触发器 (D-flip flop)
在 clk 上升沿时,Q 同步更新为 D 的值
D Latch vs. D Flip-Flop
JK 触发器
有限状态机 Finite State Machine (FSM)
概述
- 状态:电路所处的特定工作阶段
- 状态寄存器:
- 状态寄存器的值:
- 次态逻辑:根据输入和当前状态的编码值,计算下一个状态编码值
- 次态逻辑也是组合逻辑
- 输出逻辑:根据状态及输入,计算该状态下的输出值
表示方法
构造方法
-
规划状态总数
-
构造状态图
每个状态的转移条件必须是完备的
-
根据【输入信号、当前状态编码、下一个状态编码】构造每个寄存器的 D 输入信号的门电路
方法:真值表→乘积项表达式→最简表达式→最简门电路
-
根据设计需求决定当前状态的输出
设计要点
-
初始状态
-
复位信号
-
状态编码方式
- 二进制编码
- $\log_2^N$ 个触发器表示 $N$ 个状态
- 节约逻辑资源,但可能产生毛刺
- 格雷编码
- $\log_2^N$ 个触发器表示 $N$ 个状态
- 节约逻辑资源,但可能产生毛刺
- 一位独热编码(One Hot Encoding)
- 资源消耗多,但无毛刺
- 降低次态逻辑和输出逻辑的复杂度,有利于提高时钟频率
- FPGA 具有丰富的寄存器资源,采用一位独热码编码可以有效提高电路的速度和可靠性
状态 二进制编码 格雷编码 一位独热编码 0 000 000 00000001 1 001 001 00000010 2 010 011 00000100 3 011 010 00001000 4 100 110 00010000 5 101 111 00100000 6 110 101 01000000 7 111 100 10000000 - 二进制编码
Moore 型 FSM
Mealy 型 FSM
状态机类型的选择
时序逻辑电路分析
数据寄存器
移位寄存器
包括时钟、串行输入 $S_{in}$、串行输出$S_{out}$和 N 位并行输出 $Q_{N-1:0}$
移位寄存器可以看作是串行到并行的转换器。输入由 $S_{in}$以串行的方式提供(一次一位)。在 N 个周期后,前面的 N 位输入可以在 Q 中并行访问。
计数器
计数器 = 加法器 + 复位寄存器
主存储器
存储单元电路
存储器阵列($memory\ array$)——可以有效存储大量数据
-
概述
-
位单元
存储器阵列由为单元(bit cell)的阵列组成,其中每个为单元存储一位数据。
-
存储器的结构
-
-
分类
- 动态随机访问存储器(DRAM)
- 静态随机访问存储器(SRAM)
- 只读存储器(ROM)
- 现代ROM不再只读,也可以写入。不同点在于ROM的写入时间更长,但是是非易失的。
RAM是易失型,关掉电源时会丢失数据;ROM是非易失型,没有电源也能无期限的保存数据。
SRAM 存储单元电路 Static Random Access Memory
不需要刷新存储位
DRAM 存储单元电路 Dynamic Random Access Memory
以电容的充电和放电来存储位。位值存储在电容中,nMOS作为开关。字线作为MOS的开关
ROM 存储单元电路
以是否存在晶体管作为是否存储一位。在读过程中,位线被拉高,如果存在MOS,则位线被拉低,不存在MOS则保持高。
主存储器的结构
SRAM 芯片的内部结构
DRAM 芯片的内部结构
存储器的扩展
芯片容量的基本描述
字单元数 × 每个字单元的位数
-
1K × 2:1024个字单元,每个字单元 2 位(二进制位)
-
64 K × 8:
存储器的扩展方法
DRAM 的刷新
指令系统与 MIPS 汇编语言
指令系统概述
指令系统的基本要素
指令格式
!
MIPS 指令系统
MIPS 汇编语言编程
MIPS 处理器设计
处理器的功能、组成、一般设计方法等
MIPS 处理器设计概述
结构、指令集、数据通路的基本组件
单周期处理器设计
单周期数据通路和控制器设计
单周期处理器性能分析
流水线处理器设计
流水线数据通路和控制器设计
流水线处理器性能分析
流水线冒险及其处理
高速缓冲存储器 (Cache)
程序执行局部性原理
时间局部性
空间局部性
局部性成因
- 绝大多数情况下指令顺序执行
- 程序主要行为特征表现为循环
- 数组、结构等具有局部性
存储层次常用概念
-
数据包含原则:高层次数据 $\in$ 低层次数据
-
数据交换基本原则:数据交换一般只在相邻两层之间完成
-
命中 Hit
-
命中率 Hite Rate (HR)
-
缺失 Miss
-
缺失率 Miss Rate (MR)
HR + MR = 1
-
命中时间 Hit Time (HT):包括查找时间、判断时间以及数据读写时间的总和
-
缺失代价 Miss Penalty (MP):某层缺失后从下层获取数据所需要的时间。
Cache 的结构与工作原理
cache 的每个数据单元被称为块(cache block)
寄存器与 cache 之间的数据交换以 寄存器 为单位,但 cache 之间以及 cache 与下层主存储器之间的数据交换以 cache 块为单位。
Cache 的映射机制
直接映射 Direct-Mapped Cache
有效 | 标记 | 索引 | 块内偏移 |
---|---|---|---|
Valid |
Tag |
Index |
Offset |
$1$ | $地址总位数 - Offset - Index$ | $\log_2{cache块总数}$ | $\log_2{cache块大小}$ |
多级 Cache
全相联映射
组相联映射
Cache 的替换策略
Cache 性能分析与其他
容量计算
性能分析
直接映射
AMAT (Average Memoory Access Time)
average time to access memory considering both hits and misses.