清华数电复习.docx

上传人:b****8 文档编号:29997771 上传时间:2023-08-04 格式:DOCX 页数:24 大小:757.71KB
下载 相关 举报
清华数电复习.docx_第1页
第1页 / 共24页
清华数电复习.docx_第2页
第2页 / 共24页
清华数电复习.docx_第3页
第3页 / 共24页
清华数电复习.docx_第4页
第4页 / 共24页
清华数电复习.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

清华数电复习.docx

《清华数电复习.docx》由会员分享,可在线阅读,更多相关《清华数电复习.docx(24页珍藏版)》请在冰豆网上搜索。

清华数电复习.docx

清华数电复习

第一章:

布尔代数

1、URISC:

超级精简指令计算机包括控制单元,数据通路和存储器,还有一个时钟信号

数据通路:

程序计数器,寄存器,ALU,地址寄存器,数据寄存器。

控制单元:

产生控制信号

2、摩尔定律:

集成电路的集成度每三年翻两番,工作效率提高约30%。

但集成电路的集成度和工作效率不能无限提高,因为要考虑集成电路的功耗问题。

功耗问题制约着集成电路的发展。

考虑到功耗问题,增大集成度就要降低频率,提高频率就要降低集成度。

3、机器码:

原码、反码和补码

正数的原码是本身,负数的原码是绝对值+2^(n-1)

正数的反码等于原码,负数的反码是原码的符号位不变,数值位按位取反

正数的补码是本身,负数的补码是取反加一;表示范围比原码和反码多1,0只有一种

注意:

1.采用补码表示,可以用加法器来实现减法运算:

a)先对减数进行求补运算(取反加1)

b)将求补后的减数与被减数相加

c)相加的结果即为用补码表示的两数相减结果

2.有符号数用补码表示,那么无符号数和有符号数的加减运算可以用同一电路完成,无符号数无进位,有符号数无溢出

4、二进制编码:

a)BCD码(有权码):

0~9都用对应的二进制数表示

b)余三码(无权码):

十进制数加三后表示为二进制数,可以产生正确的进位,但结果需要修正,若有进位,加3;无进位,减3

c)格雷码:

可靠编码,相邻的两个二进制数只有一位不同

d)ASCII码(美国标准信息交换代码):

用七位二进制码对字符进行编码;0~9:

0110000-0111001;A-Z:

41H:

1000001;a-z:

61H:

1100001

5、多媒体信息的编码:

采样、量化、编码

6、与或非门

7、布尔代数:

用逻辑门实现,通过定律可以化简函数或取消冒险

8、组合逻辑的设计:

a)逻辑抽象

b)真值表

c)卡诺图化简(化简结果不唯一)

d)逻辑函数

e)逻辑图

9、最小项:

在n变量逻辑函数中,含有所有n个变量的与项,每个变量均以原变量或反变量的形式出现且仅出现一次;

最大项:

在n变量逻辑函数中,含有所有n个变量的或项,每个变量均以原变量或反变量的形式出现且仅出现一次。

组合逻辑函数的标准形式:

最小项的或或者是最大项的与

第三章:

组合逻辑电路

1、组合逻辑:

输出是输入的逻辑函数,当前输出仅与当前输入有关,无记忆电路

基础器件:

晶体管

电路结构:

逻辑门

2、组合逻辑部件:

[1]比较器

a)抽象出输入、输出变量

b)做出真值表

c)卡诺图化简

d)写出逻辑函数

e)做出逻辑图

[2]编码器:

用m位二进制编码为n<=2^m个信号进行编码

a)普通编码器

b)优先编码器:

多个信号可以同时输入

[3]译码器:

n个输入,2^n个输出

处理器中利用译码器寻址

[4]数据选择器:

2^n个数据输入,n个选择输入,一个输出,多路开关

快速查找表

[5]加法器:

计算机中加、减、乘、除,均可转换为加法运算。

a)半加器:

不考虑进位

b)全加器:

考虑进位

c)串行加法器:

进位是串行进行,必须在低位运算完后才能求高位

d)并行加法器:

进位通过单独的电路实现,成本高

3、大规模集成电路大多采用CMOS,静态功耗低

a)CMOS反相器:

PMOS接高电平,NMOS接低电平

b)CMOS与非门:

两个NMOS串联接地,PMOS并联

c)CMOS或非门:

两个NMOS并联,PMOS串联

NMOS串联时,PMOS必须并联,反之亦然;NMOS和PMOS必须一个导通,一个截止

d)CMOS与门/或门:

与非门/或非门+非门:

晶体管更多,面积更大,速度更慢

e)传输门:

PMOS和NMOS并联

传输门实现三态门:

0、1、高阻态

典型应用:

设备和总线使用三态门连接

f)CMOS漏极开路输出:

无PMOS

●工作时必须外接电源和上拉电阻,带负载能力强

●输出端可直接相连,实现线与功能

4、组合逻辑中的冒险:

由于不同路径的延时不同造成

1)静态冒险:

一个本应保持不变的输出经历瞬时转换

静态1冒险:

取值为1的输出瞬时经历0状态

静态0冒险:

取值为0的输出瞬时经历1状态

消除静态冒险的前提:

输出的毛刺是单端输入取值变换的结果

冒险消除:

a)加入冗余项b)加入采样脉冲

2)动态冒险:

本应发生从0-1或者1-0的单次跳变的输出信号发生不只一次跳变

5、组合逻辑的非理想因素

1)稳态因素:

逻辑电平,噪声容限,扇出系数

a)逻辑电平

b)噪声容限:

两级电路之间输出电压与输入电压的差值VNH

c)扇出系数:

最坏情况下,一个逻辑门所能驱动的输入端数目

2)动态因素:

速度/延时,功耗,噪声

a)速度:

逻辑门的输出从一个状态转换为另一个状态需要的时间

延时:

从逻辑门的输入发生变化到输出发生变化所用的时间(延时导致冒险)

b)功耗:

单位时间内消耗的能量

[1]静态功耗:

CMOS在输入稳定的情况下,总有一个管子截止,因而理想情况下静态功耗为0;但由于漏电流的存在,实际静态功耗不为0

[2]动态功耗:

CMOS电路工作时会产生动态功耗,由开关电流和短路电流引起。

开关电流:

输入为“0”时,PMOS导通,电源通过PMOS向负载电容充电;输入为”1”时,负载电容向NMOS放电。

开关电流就是对负载电容不断地充放电形成的。

低功耗技术:

降低工作电压和工作频率

功耗时延积:

低功耗,延长电路寿命;时延小工作速度快

第五章:

时序逻辑电路

1、时序逻辑电路:

电路的输出不仅与当前的输入有关,还与电路原来的状态有关;

关键部件:

具有存储功能的记忆元件

电路的状态与时间顺序有关

2、时钟:

分布于包含记忆元件的电路中的一个周期信号(同步/异步)

时钟信号:

用来同步控制所有的时序单元(锁存器/触发器)

时钟信号的产生:

利用反相器形成环形振荡器

产生一组具有不同相位的时钟信号:

3、亚稳态:

两个时钟域不同步,CLKB对在DA变化时最DA采样,采样值可能为0也可能为1,非确定值

4、双稳态单元——基本时序单元

5、状态机:

给定一个输入集合,根据对输入的接收顺序确定一个输出集合

有限状态机:

输入和输出集合都是有限的,而且状态的数目是有限的。

有限状态机模型:

状态集合,状态转移集合,关联于状态的操作集合,关联于转移的操作集合,同时关联于状态和转移的操作集合。

6、有限状态机的分类:

a)Mealy机(米利机):

输出依赖于当前的网络状态和当前输入

b)Moore机(摩尔机):

输出只依赖于当前的网络状态,与输入无关

7、基本时序电路:

1)锁存器:

在任意时刻连续监测输入,并改变输出状态,与时钟信号无关(时钟信号可以有也可以没有,有的话只是用作使能端)有透明性

a)RS锁存器:

b)D锁存器:

可以有时钟信号作为使能端,在时钟信号有效期间,时刻监测输入取值

c)锁存器的时间参数:

最小脉宽:

为了得到输出结果需要的输入信号有效的最短时间

延时:

输入信号发生变化后,输出信号发生变化需要的时间

建立时间:

锁存操作开始之前,输入信号保持不变的时间

保持时间:

锁存操作开始以后,输入信号保持不变的时间

d)应用:

输入缓冲电路

防止各个输入信号到达时间不一致导致的竞争与冒险

2)触发器:

仅在时钟有效时采样输入,并改变输出状态

基本结构:

双稳态单元

可以避免透明性,每个时钟信号只改变一次

a)主从触发器:

脉宽触发

b)边沿触发器:

利用时钟的上升沿或者下降沿触发

第六章:

时序逻辑电路的设计

1、摩尔型时序电路输出与时钟同步,输出与状态同步,状态多

米利型时序电路输出与时钟异步,只要输入发生变化,输出就发生相应变化;可能出现毛刺;状态少

2、同步时序电路的设计方法:

1)确定输入和输出,抽象出一个有限状态机

2)状态化简

3)状态分配

4)确定激励方程和输出方程

5)根据激励方程和输出方程,画出两级或多级电路图

3、同步时序电路:

串行加法器:

记录进位

第九章时序逻辑电路

1、寄存器:

触发器构成

a)存储寄存器:

仅存储

并行输入,并行输出

b)移位寄存器:

移位+存储

串入串出,串入并出,并入串出,并入并出四种

串入简单,并入分为移位模式和加载模式

2、计数器

a)加法/减法计数器

b)特殊进制计数器

c)环形/扭环计数器

环形计数器:

将移位寄存器的串行输出接到串行输入,不能自启动

只有n个有用状态,2^n-n个状态被浪费

1)可以增加组合逻辑电路使得电路能够自启动

2)利用触发器的预置位和复位功能重新加载计数器

扭环计数器:

将移位寄存器的输出的反接回串行输入端,可以自启动

N个触发器,有2N个不同状态,比环形计数器的模多一倍,但触发器的利用率仍不够

d)异步/同步计数器

异步计数器:

自启动:

在无外界干预的情况下,经过若干状态转换能够进入正常计数状态

微机原理

1、CPU执行时间=指令数*每条指令的平均执行周期数*时钟周期

2、提高执行速度:

1)快速电路技术2)流水线结构

3、MIPS:

RISC:

32个通用寄存器(32位)$0始终返回0;$31被子程序调用指令(跳转与链接指令)用于保存返回地址

2^30个存储字,字地址必须是4的倍数

4、为什么只32个通用寄存器?

电信号传输距离越远,传输时间越长,寄存器太多会延长时钟周期

5、内存访问:

load和store指令

6、算术运算指令:

add$t0,$t1,$t2

sub$t0,$t1,$t2

addi$t0,$t1,5#立即数加法,无立即数减法

7、逻辑运算指令:

and,or,nor(或非),xor(异或)

如何实现或运算?

将$t0与1异或

8、移位运算:

1)移位量为立即数

sll$t0,$t1,4

srl$t0,$t1,4

sra$t0,$t1,4

3)移位量在寄存器中

sllv$t0,$t1,$t2

srlv$t0,$t1,$t2

srav$t0,$t1,$t2

9、比较指令:

1)比较两个寄存器

slt$t0,$t1,$t2#if($t1<$t2)$t0=1

sltu$t0,$t1,$t2#无符号数比较

2)寄存器与立即数

slti$t0,$t1,$t2#if($t1<$t2)$t0=1

sltui$t0,$t1,$t2#无符号数比较

1、MIPS的操作数只能是寄存器或者立即数,若为内存中的数据,需要先用LOAD指令取出

2、数据传送指令

Load指令:

lw$t0,32($t1)#只能用基址(变址)加偏移量内存寻址方式

lh(半字),lb(一个字节),装入最低位,剩余位用符号位填充(符号扩展)

lhu,lbu,无符号数,最高位补0(0扩展)

store指令:

sw$t0,32($t1),sh,sb,shu,sbu

3、将寄存器数据和内存数据交换:

用栈来保护$sp指针,栈从高到低增长,堆从低到高增长。

1)入栈

addi$sp,$sp,-12

sw$s1,8($sp)

sw$s2,4($sp)

sw$s3,0($sp)

3)出栈

lw$s1,8($sp)

lw$s2,4($sp)

lw$s3,0($sp)

addi$sp,$sp,12

4、装入高位立即数

lui$t1,30

将32位立即数0x1234abcd装入t1寄存器

lui$t1,0x1234

ori$t1,abcd

5、流程控制指令:

顺序、分支、循环

1)分支:

条件分支:

beq$t1,$t2,Target

bne$t1,$t2,Target

无条件分支:

jLable

分支指令的应用:

a)条件分支

Unsignedinti,j;

if(i

elsez=g-h

sltu$t0,$t1,$t2#比较指令

beq$t0,$zero,Else#分支指令

sub$s0,$s1,$s2

jExit

ELSE:

sub$s0,$s1,$s2

Exit:

2)循环

While(save[i]==k)i=i+1;

Bne,loop

6、子过程调用:

(跳转与链接指令jal)

$a0-$a3传递参数;$v0-$v1返回值;$ra返回地址

jalProcedure

jr$ra

过程调用$s0-$s7必须保存

7、

第一步为什么要左移两位?

因为每个数组元素占1个字节,即4bit,所以要左移两位,来表示第i个字节

8、赋值:

move$s0,$zero

9、字符串操作:

需要额外的存储空间存储字符串长度或者字符串结尾标识符

第二章MIPS三种指令格式

1、MIPS有三种指令格式:

R型(RegisterFormat):

算数运算指令和寄存器指令

I型(ImmediateFormat):

数据传送指令及立即数指令、分支指令

分支指令采用PC相对寻址,需要左移两位再与基址相加(PC+4)+(OFFSET<<2),OFFSET指的是字节数,而非bit数,分支范围是向上2^15条指令和向下2^15-1条指令

J型(JumpFormat):

跳转指令,跳转与链接指令,26个字节,左移两位

2、MIPS寻址方式:

寄存器寻址add$s0,$s1,$s2,立即数寻址addi$sp,$sp,4,基址加偏移寻址lw$s0,8($t0),PC相对寻址(分支beq$s1,$s2,L1),

为什么以PC为基准?

几乎所有的条件分支指令都是跳转到当前指令附近的地址。

如何处理16位无法表达的远距离分支?

插入一个无条件跳转指令,并将当前分支指令取反以确定是否跳过该指令,即分支指令与无条件跳转指令结合:

如bne$s0,$s1,L1=>beq$s0,$s1,L1jLL1:

……

伪直接寻址(跳转指令,跳转与链接指令):

26位无法表示如何?

用寄存器跳转指令jr(32位);目的地址比当前地址小怎么办?

3、内存布局:

4、浮点数:

32.25e-2

5、标识符:

字母,数字,下划线,”.”不能以数字开头,保留字不能作为标识符

6、伪指令,汇编时用等效指令替代:

MOVE(数据传送)move$t0,$t1=>add$t1,$zero,$t0

LI(装入立即数),LA(装入地址)

第三章:

处理器

1、处理器包括数据通路和控制器

2、CPU执行时间=指令数*CPI(每条指令平均执行周期数)*时钟周期

3、数据通路部件:

通用寄存器,算术逻辑单元,,存储器(数据/指令)、程序计数器,符号扩展单元,数据选择器

4、寄存器:

D触发器构成

5、时钟同步方法:

只有在写操作的时候,时钟信号才有效;读操作和组合逻辑相同

6、单周期,周期长度由执行时间最长的指令决定

7、多周期数据通路与单周期区别:

1)指令和数据共用一个存储器

2)只需要一个ALU单元,而不是一个ALU+两个加法器

3)在每个单元后加入了一个或多个寄存器存储输出值,以便在后面的时钟周期内使用

8、指令执行步骤:

1)取指令2)指令译码和读寄存器3)执行指令,存储器地址计算或分支完成

9、性能:

存储,ALU和寄存器堆有延时,其他无延时

分支和跳转3个周期,sw和ALU4个周期,lw5个周期

第四章异常处理

1、异常:

处理器内部的不可预知事件,如溢出;同步

2、中断:

来自处理器外部的不可预知事件,例如I/O;异步

3、异常是非程序控制的控制转移:

1)记录产生异常的指令地址2)保护现场3)处理结束后恢复现场4)执行响应操作

4、获得异常处理程序地址的方法:

8086向量法;入口保存在固定地址出;MIPS原因寄存器:

使用一个通用的异常处理程序,通过将足够的信息加载到原因寄存器中来采取相应措施EPC寄存器保存异常地址;Cause寄存器:

异常原因

第五章:

流水线

1、流水线:

将一条指令的执行过程分解为若干个子过程,每个子过程与其他子过程同时进行。

通过时间重叠来提高处理器的处理速度。

2、超标量:

设置多个独立的功能部件确保处理器可以在一个周期内执行多条指令

3、超长指令字:

在一条指令中设置多个独立字段,确保各字段可以独立控制功能单元并行工作

4、但流水线不能缩短单条指令的执行时间,但可以提高指令的吞吐率;流水线的时间受限与最慢的处理资源

5、流水线性能:

1)吞吐率:

单位时间内处理的指令数2)加速比:

不使用流水线和使用流水线的时间之比

6、取指令、指令译码和读寄存器、执行指令、访问存储器、写回寄存器

7、单周期、多周期、流水线的比较

流水线冒险:

1)结构冒险:

多条指令同时使用同一部件,无法在同一周期内执行

解决:

增加资源,如增加运算部件、使用哈佛体系结构(指令和数据存放在不同的存储器中)

2)数据冒险:

一个操作必须等待另一个操作完成才能进行,流水线必须停顿。

(指令间的数据相关关系)

解决:

1)硬件:

数据转发2)软件:

指令调度

3)控制冒险:

处理器需要根据一条指令进行决策(分支指令造成),为了取到正确的指令而产生流水线延迟

解决:

1)硬件:

阻塞,分支预测2)软件:

指令调度延迟分支

1、将单周期通路改造为流水线:

1)在各功能单元间加入寄存器存储各级输出值,以便本级的值可以直接被下一级使用,防止数据冒险

2)寄存器堆的读写:

写操作发生在时钟周期的前半段,读操作发生在时钟周期的后半段,因此数据可以在一个周期内完成读和写

2、控制信息:

ID段产生控制信息,控制EX,MEM,WB,控制信号依次传递

3、数据冒险与转发:

通过额外的硬件(数据转发单元)提前得到需要的结果

数据冒险与阻塞:

LOAD指令紧跟一条需要读取其结果的指令时,数据转发解决不了,必须通过流水线阻塞(冒险阻塞单元)

4、控制冒险:

1)静态分支预测:

a)假设分支不发生,若分支,则丢弃ID,IF,MEM

b)提前分支预测:

在ID段计算分支地址,并判断是否进行分支,额外的硬件支持

2)动态分支预测:

根据分支发生的历史记录,判断是否分支;

1位动态预测,根据前一次预测;2位动态预测,根据上两次预测下一次

2)指令调度(分支延迟)

在分支指令之后加入适当的无关指令(分支延迟槽),以延迟后续操作。

分支延迟槽中的指令执行完之后,才执行分支指令

5、流水线中的异常处理:

需要清除IF,ID,MEM

EPC:

异常处理的地址+4,EPC-4得到异常地址

第七章cache

1、SRAM:

速度快,所用管子多,单个器件容量小,贵

DRAM:

速度慢,所用管子少,芯片密度高,但需要刷新

2、速度:

寄存器100ps>cache0.5-2.5ns>主存储器50-70ns>磁盘ms>光盘/磁带

3、存储器访问的局部性原理:

时间局部性(循环)和空间局部性(顺序)

4、高速缓存:

cache硬件实现地址映射和替换算法,包括统一cache(指令和数据使用同一个Cache),哈佛Cache(数据和指令分开两个Cache)

5、如何知道cache是否命中?

在内存地址和Cache地址之间建立确定的逻辑关系:

地址映射

将主存分块,有块地址和块内地址;cache分成同样大小的块;二者以块为单位进行数据传输

a)直接映射:

主存中的每一块只能装入特定的行中j=imod2^c简单,但命中率低

b)全相联映射:

主存中的每一块能够映射到cache任一行中,命中率高,但要做相联比较,代价高

c)组相联映射:

将cache分成g组,每组k行,组间为直接映射,组内为全相联映射

替换策略

有空行填空行,无空行,a)FIFO先进先出法b)LRU最近最少使用c)随机方法

更新策略

1.写无效:

命中时,直接写入主存,并使cache行无效,可能造成缺失率增加

2.通写:

cache和主存都写,访问时间=访问主存时间

3.带缓冲的通写:

加硬件缓冲器,处理器处理和写入内存同时进行

4.回写:

只写cache,修改标记,会造成主存与cache不一致

6、性能分析

CPU时间=(CPU执行周期数+存储器停顿周期数)*时钟周期长度

存储器停顿周期数由cache缺失导致

7、多级Cache

L1目的在于减少命中时间,小;L2致力于减少缺失率,大

第十章:

虚拟存储器

1、单处理器只能在同一时间处理一个进程,但由于进程间切换较快,所以好像是同时进行

2、存储器管理有两种基本方法:

页式管理和段式管理

3、虚拟存储器的访问:

局部性原理

4、虚拟存储器:

建立在内存和辅助存储器(磁盘、光盘等)之上

操作系统将编译好的程序放入辅助存储器,程序运行时,一页一页地调入到内存由CPU执行;当主存储器发生溢出时,操作系统将主存储器中的页面移到辅助存储器中,然后将物理内存分配给其他用途

5、物理内存:

内存;

虚拟内存:

内存加辅助存储器,大于物理内存

6、页式虚拟存储器管理:

将虚拟内存和物理内存按页划分,分为页号和页内偏移

7、缺页的代价巨大,因而用全相联方式映射以降低缺页率

8、采用索引表来存放虚拟页和物理页之间的关系:

物理页数远大于cache的行数,用相联比较的方法不可行。

建立页表(慢表)(主存储器中),通常2级以上页表

第一级页表总在内存中,第二级一部分在内存中,一部分在虚拟内存中

缺页时,引发异常EPC,读取新的页到内存中,并允许程序重新访问

8、处理器访问存储器时,给出虚拟地址,由MMU转换为物理地址

9、快表(TLB):

最近用过的页转换的Cache,由硬件实现

10、虚拟存储和Cache的区别:

1)Cache为了达到CPU与主存之间的速度匹配;虚拟存储主要为了弥补内存容量的不足;

2)Cache容量小,一块为单位传送数据,数据传送量小;而虚拟存储以页为单位传送,数据传送量大

3)CPU和Cache还有主存都有直接通路,一旦Cache未命中,CPU直接访问内存,并向Cache调度信息块;而CPU和辅助存储器之间无直接通路,一旦访问缺失,需要同虚拟内存中调到内存中,在通过CPU读取

4)主存-Cache存储结构存取信息,地址变化,替换策略均直接由硬件实现,对程序员而言是透明的;而虚拟存储是硬件和软件相结合的结果,地址变换由硬件实现,而页表的设置和调度由操作系统完成,非透明的。

11、对冲突的来源进行分析:

3C模型

1)强制缺失:

对不在Cache中的块进行第一次访问的缺失

2)容量缺失:

Cache容量有限,不能容纳所有的块,被替换出的块再次被访问时的缺失

3)冲突缺失:

组相联和直接映射多个块竞争Cache中同一位置所致,

A)提高相联度可以减少冲突缺失,但相联度的增加会降低访问速度

B)增大容量

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1