计算机组成原理期末复习


一些重点

第二章
定点数的表示与乘除运算、浮点数的表示与加减运算

第三章
刷新时间的计算、存储容量的扩展、各种带宽、Cache相关(命中率,访问时间)
主存与Catch的地址映射

第四章
指令和数据的寻址方式、指令格式寻址方式的特点

第五章

指令周期流程图与微周期操作序列、数据相关、微指令三个字段的计算、流水线

第六章
总线带宽、波特率

第七章
磁盘相关的计算、刷新存储器的容量与带宽

第八章
中断屏蔽

各章知识点的部分整理

第一章 计算机系统概述

数字计算机的基本组成:控制器,运算器,存储器,输入设备,输出设备

冯诺依曼计算机的基本思想:存储程序的思想,将程序和数据放在同一存储器中

指令在存储器中顺序存放

软件分为系统软件(包括服务性程序,语言程序,操作系统,数据库管理系统)和应用软件。

计算机系统的层次结构:高级语言级、汇编语言级、操作系统级、一般机器级、微程序设计级

一般机器级也称为机器语言级,微程序级和机器级都属于硬件级,操作系统是混合级

任何操作可以由软件来实现,也可以由硬件来实现

任何指令的执行可以由硬件完成,也可由软件完成

固件是一种介于传统的软件和硬件之间的实体,功能类似软件,形态类似硬件

将子程序返回地址放在堆栈时,子程序允许嵌套

运行时间=指令数*CPI/主频

只有外部可屏蔽中断才需要进入中断响应周期,以获取相应的中断类型号

冯氏机是以运算器为中心的,I/O设备于存储器件的数据传送通过运算器来完成

连接程序是系统软件,编译器和汇编程序都经常依赖于连接程序

冯诺依曼计算机是控制流驱动方式

电子管---晶体管---中小规模集成电路---大规模集成电路

一个完整的计算机系统应包括硬件系统和软件系统

普林斯顿结构也就是冯诺依曼结构

数据库管理系统DBMS是系统软件,数据库系统DBS是引入数据库后的系统

软件和硬件在逻辑上是等效的,但不是等价的

寄存器由触发器构成

第二章 运算方法和运算器

n位二进制补码的表示范围:- 2的(n-1)次方 到 2的(n-1)次方 -1

第三章 存储系统

一个0或1是一个存储位元,存储位元<存储单元<存储器

速度:寄存器>cache>主存

RAM是非永久记忆的存储器,断电后信息即消失

字存储单元:存放一个机器字的存储单元

机器字:一个机器字可以包含数个字节,机器字有字长

  • 所以一个存储单元也可以包含数个能够单独编址的字节地址

按字寻址的计算机:计算机中可编址的最小单位是字存储单元

大端、小端模式

存储器带宽:【只要是带宽,就是数据/时间】,是衡量数据传输速率的指标

存取时间(存储器访问时间):一次读操作命令发出,到数据读出到数据总线上

  • 通常读时间等于写时间

存储周期:连续启动两次读操作所需间隔的最小时间

SRAM //常用于cache缓存

SRAM中,用一个锁存器(触发器)作为存储元,掉电即丢失

地址译码器是主存的构成部分,不属于CPU

有三组信号线:

  • 地址线:指定能有多少个存储单元,是地址译码器的输入,输出2的n次方条

    • 地址译码器输出的选择线为行线,作用是打开该行每个存储位元的与非门
  • 数据线:指定存储器的字长,用来传数据

  • 控制线:控制读、写操作 R/W非

SRAM采用二级译码,行、列单独译码,然后交叉编码

当R/W线加负脉冲时,地址线和数据线的电平必须是稳定的

DRAM //常用于做主存储器

DRAM的存储元是一个MOS晶体管+电容器,电容器充满电为1,没有电荷为0

分时传送地址码,增加了行、列地址锁存器(用来存行、列地址,地址线宽度没有变)

  • 注意地址传了两次,所以做题的时候,地址线是算出来的一半

DRAM读写后都可以不刷新,未读写的要定期、按行刷新,刷新计数器长度=行地址锁存器

刷新操作和读写操作交替进行,要通过2选1开关来提供刷新的行地址或读写的行地址

通常用ROM(read-only memory)存放系统程序,用RAM(random-access memory)组成用户区

存储器地址寄存器MAR应保证能访问到整个主存地址空间,MAR的位数和实际的主存容量无关,MAR的位数决定了主存地址空间的大小

MAR有n位,则存储器有2的n次方个存储单元

//在提到存储器有x MB这种格式时,M=2的20次方

CDRAM中,SRAM读出期间可同时对DRAM进行刷新;数据输出路径和数据输入路径是分开的,允许在写操作完成的同时启动同一行的读操作

闪存中,浮空栅带许多电子--0,带很少或不带电子--1;写比读慢

SSD固态硬盘,就是由FLASH芯片组成的

并行存储器

双端口存储器:同一个存储器具有两组相互独立的读写控制电路,进行并行的独立操作;每个端口有自己的片选控制CE和输出驱动控制OE;BUSY标志

顺序方式:高位选模块,低位选块内地址;各模块串行工作

交叉方式:高位选块内地址,低位选模块;连续地址分布在相邻的模块内

多模块交叉存储器:是一种并行存储器结构

  • 假设模块字长=数据总线宽度,存储周期T,总线传送周期τ,交叉模块数m
  • 为了实现流水线方式存取,应满足T=mτ
  • 连续读取m个字所需的时间为 T+(m-1)τ
  • 当题目问的是可提供的最大带宽时,就不考虑第一个任务了

低位交叉多体并行存储器的特点:各模块都有独立的读写控制电路,地址寄存器,数据寄存器;低位地址为体号,高位地址为体内地址;程序连续存放在相邻体中

cache的透明性:当CPU访问存储器时,给出的一个字的内存地址会自动变换成cache的地址

cache与主存的数据交换是以块为单位的,无论用哪种映射方式,都要把主存和cache划分为同样大小的块

替换策略:LFU:最不经常使用(不能严格反映近期访问情况),LRU:近期最少使用(每次命中的cache清零,其他都加一,换出最大值的一行),随机替换

写操作策略:

  • 写回法:命中,只修改cache,此行被换出时才写回主存,每行必须有个修改位,反映此行是否被修改过;未命中,将要写的块复制到cache中再修改(先只改cache)
  • 全写法:命中,cache和主存同时写;未命中,直接向主存写(也叫写直通)
  • 写一次法:除了第一次写命中要写入主存外,其他都和写回法一样

多级cache

软磁盘上内存储器应该采用ROM和RAM

第四章 指令系统

机器指令:简称指令,每条指令可完成一个独立的算术运算或逻辑运算操作

符号语言用指令助记符来编写程序;机器语言用指令代码编写程序

指令字:简称指令,表示一条指令的机器字

指令格式:指令字的结构形式,由操作码字段和地址码字段组成

操作码OP:表示该指令应进行什么性质的操作,有固定和不固定长度的,位数一般取决于指令系统的规模

单地址指令的被操作数通常是累加寄存器AC,操作结果又放回AC中

S为存储器,R为寄存器,有SS型,RR型,RS型指令,分别访存3,0,1或2次

机器字长:计算机能直接处理的二进制数据的位数,决定了计算机的运算精度

  • 机器字长通常与主存单元的位数一致
  • 通用寄存器的字长默认为机器字长
  • pc的字长通常和mar的字长一样,按照存储器的容量定

指令字长度:指令字的位数;与机器字长相比,有单、半、双字长指令

  • 如何区分:只有一行的指令格式就是单字长

数据通常分为四类:地址数据、数值数据、字符数据、逻辑数据

地址数据一般被看作是无符号整数(只有一种特殊情况)

存储器既可以用来存放数据,又可以用来存放指令

某操作数/某指令放在存储单元时,存储单元的编号,就是它在存储器中的地址

CISC中大约有20%的指令占据了80%的处理机时间

  • RISC的指令字长是定长的,只有Load/Store指令才能访存,采用指令流水线技术,多数指令在一个时钟周期内完成,有较多的通用寄存器,控制方式绝大多数为组合逻辑控制
  • CISC的指令字长是不定长的,指令都能访存,通用寄存器较少,控制方式绝大多数为微程序控制

第五章 中央处理器

程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据

CPU:中央处理器,专门用来完成取出指令和执行指令工作的计算机部件

CPU的基本功能:指令控制(程序的顺序控制)、数据加工(对数据进行算数和逻辑运算)、操作控制(管理并产生每条指令的操作信号,送往相应的部件,从而控制部件)、时间控制(对各种操作实施时间上的定时)

CPU=运算器+控制器+cache

  • 控制器:取出指令,对指令进行译码,产生操作控制信号,指挥并控制数据流动方向
  • 控制器=PC+IR+指令译码器+时序产生器+操作控制器OC
  • 运算器:=算术逻辑单元ALU+累加寄存器+数据缓冲寄存器+状态条件寄存器,是数据加工处理部件,是执行部件,受控制器的命令,执行所有的算术运算和逻辑运算

CPU中的主要寄存器:DR、IR、PC、AR、R0-R3、PSW

CPU中的寄存器分为用户可见和用户不可见两大类:

  • 用户可见:通用寄存器组、程序状态字寄存器PSWR、程序计数器PC、累加寄存器ACC
  • 不可见:指令寄存器IR、暂存寄存器DR、存储器地址寄存器MAR、存储器数据寄存器MDR

通用寄存器的功能:当算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区。还可用作地址指示器、变址寄存器、堆栈指示器

数据通路:许多寄存器之间传送信息的通路

操作控制器OC的功能:根据指令操作码和时序信号,产生各种操作控制信号,正确地选择数据通路(在各寄存器之间建立数据通路)。操作控制器可分两种:

  • 硬连线控制器,采用时序逻辑技术实现
  • 微程序控制器,采用存储逻辑实现

时序产生器的作用:对各种操作信号实施时间上的控制

指令和数据都放在内存里,CPU如何识别是数据还是指令?:根据时间来判断,取指令阶段取出的是指令,执行指令阶段取的是数据

时序信号的基本体制是电位-脉冲制

微程序控制器,采用节拍电位-节拍脉冲二级体制,即只有一个节拍电位(表示一个CPU周期的时间),在节拍电位中又包含若干个节拍脉冲(T周期)

节拍脉冲把一个CPU周期划分成几个较小的时间间隔

微程序控制器的时序电路比较简单

常见的控制方式:(反映了时序信号的定时方式

  • 同步控制方式:已定的指令在执行时所需的机器周期数和时钟周期数都固定不变
  • 异步控制方式:需要多少时间就占用多少时间,没有固定的CPU周期数或严格的时钟周期
  • 联合控制方式:
    • 法一:大部分指令在固定的机器周期内完成,少数用异步
    • 法二:机器周期的节拍脉冲数固定,但各指令的机器周期数不固定【微程序控制器采用这种方法】

微程序控制原理的基本思想:把操作控制信号编制成微指令,存放到控制存储器里,运行时取出微指令,产生指令运行所需的操作控制信号

数字计算机基本上分为两部分:控制部件和执行部件

微程序设计技术是用软件方法来设计硬件的技术

微命令是微操作的控制信号,微操作是微命令的操作过程

微操作是执行部件中最基本的操作,可分为相容的(能同时或在同一个CPU周期内并行执行的)和互斥的

微指令存储在控制器的控制存储器中

一段微程序对应一条机器指令

一条微指令包括两大部分:

  • 操作控制字段,(微操作码字段),产生微操作控制信号
    • 某位为1,表示发微命令
    • 微指令发的控制信号是节拍电位信号,持续时间一个CPU周期
    • 微命令信号还要引入时间控制(如T脉冲)
  • 顺序控制字段,(即微地址码字段),控制产生下一条要实行的微指令地址

操作控制:操作控制字段,每一位表示一个微命令,该位为1,表示发出微命令

顺序控制:指出下一条微指令的地址;4位直接给出下一条微指令的地址,2位作为判别测试标志,均为0时,表示不进行测试,某位为1时,表示要进行p1或p2的判别测试,根据测试结果对下一条微指令地址进行修改

微程序控制器=控制存储器CM+微指令寄存器(分微命令寄存器和微地址寄存器两部分)+地址转移逻辑

在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期

控制存储器的字长=微指令字的长度,存储容量取决于微程序的数量

微地址寄存器决定下一条微指令的地址

微命令寄存器,保存一条微命令的操作控制字段和判别测试字段P的信息

地址转移逻辑,通过判别测试字段P和执行部件的“状态条件”反馈信息,修改微地址寄存器的内容,自动修改微地址

微程序控制器的工作过程:

1.取指令的公共操作(机器指令)
	通常由一段取值微程序完成,机器开始运行时,自动将取指微程序的入口微地址送到微地址寄存器,并从控制存储器中读出相应的微指令送到微指令寄存器
	取指微程序的入口地址一般为控制存储器的0号单元
	取指微程序执行完后,主存中取出的机器指令就存入指令寄存器IR中
2.机器指令的操作码字段,通过微地址形成部件,产生该机器指令对应的微程序入口地址,送入微地址寄存器
3.从控制存储器中逐条取出对用的微指令并执行
4.一条机器指令的最后一条微指令执行完后,下一条微指令地址又回到取值微程序的入口地址

取机器指令的微指令,任务有:1.从内存取出一条机器指令并放到IR;2.对PC+1;3.对机器指令的操作码用P1进行判别测试,然后修改微地址寄存器内容,给出下一道微指令的地址

数据通路是CPU中ALU、控制单元CU、寄存器之间的连接线路

微命令编码:对微指令中的操作控制字段采用的表示方法

  • 直接表示法:操作控制字段的每一位可以直接控制计算机,不需要译码,指令字太长
  • 编码表示法:把一组相斥的微命令组成一个小组(字段),然后用字段译码,译码输出操作控制信号。n位二进制译码后可表示2的n次方-1个微命令,因为要预留全0状态,表示不操作,不发出任何微命令
  • 混合编码法

入口地址:公用的取指微程序从主存中取出机器指令之后,由机器指令的操作码字段指出各段微程序的入口地址,这是多路转移的情况

微地址的形成方法:

  • 计数器方式:顺序执行时,后继微地址=现行微地址+一个增量;遇到转移时,微指令的转移地址段形成转移微地址。由于转移地址写在微指令中,所以只能有一个转移分支
  • 多路转移方式:不产生分支时,后继微地址由微指令的顺序控制字段给出;出现分支时,根据顺序控制字段的“判别测试”标志和“状态条件”信息选择一个微地址,可实现2的n次方个路的转移

水平型微指令:一次能定义且能并行执行多个微命令

垂直型微指令:微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能

动态微程序设计:可通过改变微指令和微程序来改变机器的指令系统

微程序的节拍脉冲宽度相同;微程序的时序产生器只需要产生节拍脉冲

时间并行:采用流水处理部件,让多个处理过程在时间上相互错开,重叠地使用同一套硬件设备的各个部分

空间并行:指资源重复,引入空间因素

时间并行+空间并行:例如超标量流水线技术,在一个机器周期中同时执行两条指令

指令流水线:指令步骤的并行,将指令流的处理过程划分

算术流水线:运算操作步骤的并行

处理机流水线:宏流水线,指程序步骤的并行

资源相关:多条指令进入流水线后在同一机器时钟周期,争用同一个功能部件

控制相关:转移指令引起的;延迟转移法或转移预测法

第六章 总线

三总线结构包括:

  • 内部总线:CPU内部,连接各寄存器和运算器
  • 系统总线:外部总线,CPU和其他高速功能部件
  • I/O总线:中低速I/O设备相互连接的总线

地址总线宽度,指明总线能够直接访问的存储器的地址空间范围

数据总线宽度,指明访问一次存储器或外设时,能同时交换数据的位数

控制总线,包括各种控制命令,请求/仲裁信号,时序同步信号,中断,DMA控制信号等

//系统总线可分为数据、地址、控制总线

总线带宽=传输的数据量/需要的时间;总线带宽=总线传输速率=吞吐率

单总线(总线分时工作)、多总线(CPU总线、系统总线、高速总线、扩充总线)结构

地址线是单向的,数据线是双向的,控制线对每根线来说是单向的,总体看是双向的

当代总线结构:数据传送总线(地址线+数据线+控制线)、仲裁总线(总线请求+总线授权)、中断和同步总线(中断请求+中断认可)、公用线

CPU和它私有的cache一起,当成一个模块接到总线上

系统总线上传送的信息必须采用并行传送方式

并行方式传送时,每个数据位都需要单独一条传输线

分时传送有两种:总线复用(某传输线上既传送地址信息,又传送数据信息,须划分时间片)、部件分时

利用串行方式传送字符,每秒钟传送的bit位数常称为波特率

在各种异步通信方式中,不互锁速度最快

同步通信是一种比特同步通信技术,一个总线周期的传输过程是先传送地址,再传送数据

并行总线传输并不一定比串行总线传输速度快

分离事务通信方式可以提高总线利用率

握手(应答)信号在通信总线上传输,数据线上可以传输中断类型号

缺页处理完成后,回到发生缺页的指令继续执行

第七章 I/O

载磁体相对于磁头运动时,就可以连续写入一串二进制信息

当磁头对载磁体做相对运动时,读出相应的信息

磁盘=磁记录介质+磁盘控制器+磁盘驱动器

磁盘控制器=控制逻辑与时序+数据并-串转换电路+串-并转换电路

平均找道时间=找道时间(题目给出)+磁盘转半圈的时间+数据传送时间

名词解释

摩尔定律:每18个月,集成电路的性能将提高一倍,而其价格将降低一半

吞吐量:表征一台计算机在某一时间间隔内能够处理的信息量,单位是字节/秒(B/s)

响应时间:从输入有效到系统产生相应之间的时间度量

处理机字长:处理机运算器中一次能够完成二进制数运算的位数。

总线宽度:一般指CPU中运算器与存储器之间进行互连的内部总线二进制位数

存储器带宽:存储器的速度指标,单位时间内从存储器读出的二进制数信息量,字节数/秒

主频:主时钟不断产生固定频率的时钟,主时钟的频率f叫CPU的主频

CPU=central processing unit

CPU时钟周期:主频的倒数,T=1/f

CPU执行时间:CPU执行一段程序所占用的CPU时间,=CPU时钟周期数*CPU时钟周期长

CPI:每条指令周期数,即执行一条指令所需的平均时钟周期数

MIPS:表示每秒百万条指令数;MIPS值越高说明机器速度越快

Te:程序执行时间

MFLOPS:表示每秒百万次浮点操作次数;只能用来衡量机器浮点操作的性能

数据字:如果某字代表要处理的数据,称为数据字

指令字:如果某字为一条指令,称为指令字

指令:计算机硬件可直接执行的每一个基本的算术运算或逻辑运算操作称为一条指令

MSB: most significant bit 最高有效位

LSB: last significant bit 最低有效位

RAM:随机读写存储器,既能读出又能写入的半导体存储器

ROM:只读存储器,存储的内容是固定不变的,只能读出,不能写入的半导体存储器

SRAM:静态读写存储器,存取速度快,但存储容量不如DRAM大

DRAM:动态读写存储器

局部性原理:处理器访问存储器时,所访问的存储单元在一段时间内都趋向于一个较小的连续区域中

  • 空间局部:紧邻被访问单元的地方也将被访问
  • 时间局部:刚被访问的单元很快将再次被访问

存储容量:指一个存储器中可以容纳的存储单元总数

CDRAM:带高速缓冲存储器(cache)的动态存储器,是在通常的DRAM芯片内又集成了一个小容量的SRAM

SDRAM:同步型动态存储器,SDRAM的操作要求与系统时钟相同步

DDR SDRAM:双倍数据率SDRAM,在时钟的上升沿和下降沿都能传数据

EPROM:光擦除可编程只读存储器

E2PROM:电擦除可编程只读存储器

CDROM:只读型光盘存储器,不属于ROM(即光盘,且采用串行存储,不采用随机存取方式

FLASH存储器:闪存,本质上属于E2PROM,非易失

  • NAND闪存:非线性闪存,适用于大容量存储设备;NOR闪存:线性闪存

CAM:相联存储器,用来存CPU要访问的字的地址,即可按地址寻址又可按内容寻址

指令系统:一台计算机中所有机器指令的集合

系列机:基本指令系统相同、基本体系结构相同的一系列计算机,解决了各机种的软件兼容问题,新机种一定包含所有旧的全部指令

CISC:复杂指令系统计算机

RISC:精简指令系统计算机

寻址方式:采用地址指定方式时,形成操作数或指令地址的方式

SF(NF):符号标志位,记录结果是否为负

CF:进位标志位,记录了无符号数的进位/借位(只对无符号数运算有意义

OF:溢出标志位,记录有符号数运算结果是否发生溢出(只对有符号数运算有意义

MAR:存储器地址寄存器

MDR:存储器数据寄存器

DR:数据缓冲寄存器,Data Register,用来暂时存放ALU运算结果、主存读出的一条指令或一个数据字,向内存存入时同理。作用:作为CPU和内存、外设之间信息传送的中转站;补偿它们之间速度上的差别

IR:指令寄存器,instruction register,用来保存正在执行的一条指令。当执行一条指令时,先把指令从内存取到缓冲寄存器中,再传送给IR

  • 指令译码器:对操作码进行测试
  • 指令寄存器中操作码字段的输出就是指令译码器的输入
  • 操作码译码之后,即可向操作控制器发出具体操作的特定信号

PC: program counter,程序计数器,也称指令计数器,确定下一条指令的地址。通常情况下自动加一,转移指令时,下一条指令由转移指令规定,所以PC要有寄存信息和计数两种结构

AR: address register,地址寄存器,保存当前CPU所访问的内存单元地址。由于CPU和内存间存在操作速度上的差别,必须用AR保持地址信息,直到内存的读/写操作完成为止

  • 当CPU向内存存数据/从内存读出指令时,都要用到AR和DR(一个存地址,一个存数据),如果把外设地址看作内存地址,也同理使用AR和DR

PSW: program status word,状态字寄存器,保存由算术指令和逻辑指令运算或测试结果建立的各种条件代码。如进位标志C,溢出标志V,为零标志Z,为负标志N等,通常分别由1位触发器保存;还保存了中断和系统工作状态等信息。是一个由各种条件状态标志拼凑而成的寄存器

指令周期:取指令、分析指令到执行完该指令所需的全部时间

机器周期=CPU周期:每个机器周期完成一个基本操作。用主存的存取周期为基础来规定CPU周期。一个指令周期包含若干个机器周期

时钟周期=T周期=节拍脉冲:机器主频的倒数

OC: operation controller 操作控制器

公操作:一条指令执行完毕后,CPU所开始进行的一些操作。这些操作主要是CPU对外围设备请求的处理,如中断处理,通道处理等

CU:控制单元,负责程序的流程管理,CU=IR+ID(指令译码器)+OC

CP: clock pulse,脉冲输入端

控制方式:控制不同操作序列时序信号的方法

状态测试:执行部件通过反馈线向控制部件反映操作情况,以便控制部件根据执行部件的状态来下达新的微命令

微命令:控制部件通过控制线向执行部件发出的各种控制命令。是构成控制序列的最小单位

微操作:微命令的操作过程,微命令和微操作一一对应

微指令:在同一CPU周期内并行执行的微操作控制信息

CM:控制存储器,用来存放实现全部指令系统的微程序,是只读型存储器

微程序:一系列微指令的有序集合

微地址:存放微指令的控制存储器的单元地址

微指令周期:读出一条微指令并执行微指令的时间

并行性:在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同的工作

  • 同时性:同一时刻发生的并行性
  • 并发性:同一个时间间隔发生的并行性

IF: instruction fetch,取指

ID: instruction decode,指令译码

EX: execution,执行

WB: write back,写回

超标量:超标量流水,是指它具有两条以上的指令流水线

总线:总线是构成计算机系统的互联机构,是多个系统功能部件之间进行数据传送的公共通路

总线带宽:总线本身所能达到的最高传输速率,单位MB/s

接口:I/O设备适配器,接口是指CPU和主存、外围设备之间通过总线进行连接的逻辑部件

总线时钟周期:就是机器的时钟周期

总线时钟频率:1/总线时钟周期

总线传输周期:一次总线操作所需的时间,包含若干个总线时钟周期

总线工作频率:总线传输周期的倒数

总线宽度:总线上能够同时传输的数据位数

波特率:每秒传送的比特位数

存储元:是记录一个二进制信息位的最小单位

RAID:廉价冗余磁盘阵列,是用多台磁盘存储器组成的大容量外存系统

PCI总线:是一个与处理器时钟频率无关的高速外围总线

大题内容

第二章

原码一位乘法:先算结果的符号位,数值部分直接手动乘起来

m×n位不带符号位的阵列乘法器

求补电路:E=0(正数)时,输入和输出一样;E=1(负数)时,从数最右端往左边扫描,直到第一个1,该位和右边各位保持不变,左边各数值位按位取反

在原码乘法中,算前求补和算后求补都不需要,正负数原码与真值的差别只有符号位;间接的补码阵列乘法却需要使用三个求补器

  • 算前求补:为了获得绝对值(所以原码输入的话直接去除符号位即可),补码输入要先求一次补再去掉符号位

  • 算后求补:如果要的是原码的结果,直接加上符号位后输出即可,要的是补码的结果,需要加上结果的符号位后,对计算结果求补。

不恢复余数法:

法1:(用双符号位,用补码下去计算

​ 余数>0,商1,余数左移,下次做减法;余数<0,商0,余数左移,下次做加法

  • 左移,是连符号位一起左移一位;做减法,就是加上[-y]的补码

  • 算到n位商(n是除数的位)即可得商,最后在加上余数(余数就是最后一次的结果

法2(老师ppt上的,也是用补码算

CAS:可控加法/减法单元,P=0,做加法运算,P=1,做减法运算

被除数是除数的双倍长(例如除数有3位,被除数就是6位,商也就是3位

​ (例如被除数:0.101001,除数:0.111,商:0.101;余数:0.000110)

  • 目的:控制商的位数,假如被除数和除数位数相同,没有约束条件,只能除一次

余数为正,商1,[-y]补右移n位(当前获得的是有几位商就右移几位),做加法

余数为负,商0,[y]补右移n位(当前获得的是有几位商就右移几位),做加法

  • 若最后余数为负数,则将该结果加上右移n位的除数

    算数移位,负数补码左0右1

浮点数加减:

阶码是定点整数,尾数是定点纯小数

加减法运算的步骤:

1.0操作数检查 //写解答题时这行要先写
2.对阶,将两个数的阶码相减,阶码小的那个数,尾数右移1位,阶码+1,直到与大阶码相等 
//右移出来的那些位,可以括号在后面
3.尾数求和,直接算加法 //题目一般要用补码,记得先写出补码,还要看是不是双符号位表示
4.结果规格化:如果尾数相加结果出现01.xxx或10.xxx则说明溢出,要向右规格化(尾数右移1位,阶码+1);尾数太小时,向左规格化,考虑符号位时,即符号位与最高数值位相同时需要向左规格化,即0.0xxx或1.1xxx时;不考虑符号位,当尾数不是1.M时向左规格化
5.舍入:0舍1入(被丢掉的最高位为0则舍去,为1则尾数末位+1)、四舍五入(中间值是100...0,与具体多少位有关,多余位的值,如果超过中间值的一半,则+1,小于,则舍去,等于时,若最低有效位,也就是被保留下的最后一位,为0,则舍去,为1,则+1)
6.溢出处理:阶码上溢,认为是无穷,阶码下溢,认为是0;尾数上溢,则尾数右移,阶码+1,尾数下溢,要进行舍入处理

第三章

刷新时间的计算

刷新周期:上次整个存储器刷完,到本次整个存储器刷完的时间间隔

三种刷新方式:集中刷新、分散刷新、异步刷新

  • 集中刷新,前段时间正常读写,需要刷新是集中刷新整个存储器;会有'死时间'
  • 分散刷新:每行的刷新插入到正常的每个读写周期中;刷新过于频繁
  • 异步刷新:刷新操作平均分散到整个刷新周期;刷新周期/需要刷的行数=时间间隔

// 1M如果没有特殊说明的话,是1024行*1024列

存储器容量的扩充

  • 字长位数扩展(位扩展

芯片字长位数较短时,用多片芯片扩展位数。

地址线和控制线公用,数据线单独分开连接

  • 字存储容量扩展(字扩展

存储容量较小(也就是字数少)时,用多片芯片扩展字数

地址总线和数据总线公用,控制线中R/W公用,使能端EN不能公用

这些芯片不会同时工作

地址总线的高n位要拿来一起做使能信号

  • 字位扩展:字和位同时扩展

所有的扩充类型 所需芯片数量=要求的存储器容量/给定芯片的容量

主存与cpu的连接

地址线的连接:CPU地址线的低位与芯片地址线相连(字选),CPU地址线的高位在扩充存储芯片时用(片选)
CPU数据线数应等于存储芯片的数据线数
CPU读/写命令线一般可直接与存储芯片的读/写控制端相连

各种带宽(顺序/交叉存储器的带宽

顺序存储器,连续读取m个字所需的时间为m*T

交叉存储器,连续读取m个字所需的时间为 T+(m-1)τ

1ns=10的-9次方s;1Mbps=1*10的6次方bit/s

Cache相关(命中率,访问时间)

  • 命中率h=Nc/(Nc+Nm)

    • Nc为cache的存取次数,Nm为主存的存取次数
  • 访问效率e=tc/ta=1/[r+(1-r)*h]

    • tc为命中时cache访问时间,tm为未命中时的主存访问时间
    • ta为平均访问时间,ta=h*tc+(1-h)·tm
    • r=tm/tc 表示主存慢于cache的倍率

主存与Catch的地址映射

  • 全相联:

主存地址的长度=标记的位数s+字的长度w位

主存的块数=2的s次方 (用来求s

块大小=行大小=2的w次方 个字/字节

内存中任一块可以映射到cache的任意一行中

将地址分为两部分:块号和字,内存块写入cache时,同时写入块号标记

cpu给出访问地址后也分成块号和字,块号与cache中所有行的标记比较,确定某行是否在cache中,若存在,则拿地址中的字来选字(一行当中有若干个字)

适用于小容量cache,大型的话比较器会很复杂

  • 直接映射:

一个主存块只能拷贝到cache的一个特定行

cache行号i,主存块号j,i=j mod m ,m为cache总行数

将s位的块地址分成两部分,r位做行地址,s-r位做标记

每个内存地址,都对应于某个特定的cache行地址

cpu给出内存地址后,用r位行号确定cache中的某一行,再用地址中s-r位标记与该行标记进行比较,若一样则命中,再用w位的字确定字(全程只需要比较一次

cache的行数=2的r次方

tag有s-r位,主存中有2的s-r次方 行会放到cache中的同一行

适合大容量cache,更多的行数可以减小冲突

  • 组相联:

将cache分组,组间采用直接映射,组内采用全相联

主存当中的某一行固定放在某个组内,但放在组内的哪一行不确定

内存地址=tag+组号+字,组号用来定位组,tag和组里的每行tag比较,若有相同的,则命中

每组行数为v,则称为v路组相联

第四章

指令格式&寻址方式的特点

指令格式如果只有一行,就是单字长的,两行就是双字长的

操作码字段OP的位数n,可以指定2的n次方条指令

根据地址码字段,看有多少个地址,是RR/SS/RS型指令

RR型指令结构常用于算数逻辑运算类指令

指令和数据的寻址方式

  • 指令寻址方式:顺序寻址和跳跃寻址

顺序寻址:指令地址在内存中按顺序安排,程序计数器PC指向的永远是下一条指令的地址

PC取出的值送到指令寄存器IR,PC随即+1,IR对程序员不可见

跳跃寻址:下条指令的地址码不是由PC给出,而是由本条指令给出

程序跳跃时,是先将要跳跃的地址传给PC

  • 操作数的寻址方式:

地址码是由形式地址和寻址方式特征位等组合形成的

形式地址(A):也称偏移量;寻址方式特征位=间址位(I)+变址位(X)

操作数的寻址:把操作数的形式地址,通过间址和变址等组合变换为操作数有效地址的过程

  • 隐含寻址:操作数的地址是隐含的,例如AC对单地址指令来说是隐含地址

  • 立即寻址:OP字段后面的部分是操作数本身,这样的操作数被称为立即数

  • 直接寻址:地址码给出的字段A就是操作数有效地址EA,操作数地址无法更改,用D表示操作数,则D=(A)

  • 间接寻址:地址A是操作数地址的地址,有效地址EA=(A),至少需要两次访问主存 //寻址特征位I=0为直接寻址,I=1为间接寻址

  • 寄存器寻址:地址码给出某通用寄存器的编号,操作数存放在寄存器里,即EA=Ri

  • 寄存器间接寻址:操作数的地址放在某一通用寄存器中,操作数放在主存中,即EA=(Ri)

  • 偏移寻址:有效地址EA=A+(R),要求有两个地址字段,至少一个是显示的,包括相对寻址、基址寻址、变址寻址

    • 相对寻址:隐含引用的是PC,即EA=A+(PC),此时形式地址A常称为偏移量(D),值可正可负(唯一地址可能为负的情况),相对寻址,就是相对当前的指令地址而言
    • 基址寻址:地址码给出偏移量A(D),基准地址放在基址寄存器Rb中,EA=(Rb)+A
    • 变址寻址:变址寄存器Rx,EA=A+(Rx),适用于数组运算、字符串操作等成批数据处理,目的在于实现程序块的规律变化
  • 段寻址:实质还是基址寻址

  • 堆栈寻址:堆栈有寄存器堆栈和存储器堆栈,数据都是先进后出

[ppt上的题目]

第五章

指令周期流程图与微周期操作序列

取值周期:

  • PC中装有指令的地址(八进制)
  • PC的内容被放到指令地址总线ABUS(I)上,用地址译码器对地址进行译码,并启动读命令
  • 从该地址读出的指令,通过指令总线IBUS装入IR
  • PC+1
  • IR中的操作码OP被译码,CPU识别出是哪个指令。取值周期结束

mov指令的执行周期(mov R0,R1)

  • OC送出控制信号到通用寄存器,选择源寄存器和目标寄存器
  • OC送出控制信号到ALU,指定ALU做传送操作
  • OC送出控制信号,打开ALU输出三态门,将ALU的输出送到数据总线DBUS
  • OC送出控制信号,将DBUS上的数据打入DR
  • OC送出控制信号,将DR中的数据打入到目标寄存器

LAD指令的执行周期(LAD R1,6)

  • OC发出控制命令,将指令中的直接地址码6放到数据总线DBUS上
  • OC发出操作命令,将地址码装入地址寄存器AR
  • OC发出读命令,将数存中6号单元对应的数读出放到DBUS上
  • OC发出命令,将DBUS上的数据装入DR
  • OC发出命令,将DR中的数装入目标寄存器R1
  • DBUS数据总线分时进行了地址传送和数据传送,所以执行周期需要两个CPU周期

STO指令的执行周期(STO R2,(R3))

  • OC送出操作命令到通用寄存器,选择(R3)作为地址单元
  • OC发出操作命令,打开通用寄存器输出三态门,将该地址放到DBUS上
  • OC发出操作命令,将地址打入AR,进行数存地址译码
  • OC发出操作命令,到通用寄存器,选择(R2),作为写入数据
  • OC发出操作命令,打开通用寄存器输出三态门,将数据放到DBUS上
  • OC发出操作命令,将数据写入对应地址单元

例题:画出其指令周期流程图并列出相应的微操作控制信号序列

方框图表示指令周期中,一个方框表示一个CPU周期,方框内的内容是数据通路操作或控制操作,菱形表示判别或测试,波浪号表示公操作

所以这个题是要画图的,而且要根据给定的数据通路来写流程

在给出CPU的结构和数据通路框图后,再写出对应指令的微操作序列

微指令三个字段的计算

水平型微指令的一般结构:控制字段 判别测试字段 下地址字段

流水CPU

流水CPU的结构:指令部件(本身构成指令流水线,取指令、指令译码、计算操作数地址、去操作数等几个过程)+指令队列(一个先进先出的寄存器栈,用来放经过译码的指令和取来的操作数)+执行部件(可有多个ALU)

一般用多体交叉存储器;执行部件分为定点和浮点执行部件,可并行执行

把输入的任务分成一系列子任务,并使各子任务能在流水线各个阶段并发执行

每个子过程称为过程段,一个指令流水线的过程段:IF--ID--EX--WB

各个过程段之间设有高速缓冲寄存器,暂时存上一过程的结果

时空图:横坐标表示时间,纵坐标表示空间,即流水线的各个子过程,也成为流水线深度(stage)

当流水线满载时,每个时钟周期就可以输出一个结果

流水线各个功能段所需时间应尽量相等,时间长的功能段将成为瓶颈

流水线有助于提高整个程序的吞吐率,但没有减少每个指令的执行时间

CPU时钟周期的最短时间是指令流水线的各功能段需要的最长执行时间(有时需要考虑缓存时间)

数据相关

必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的

当后继指令需要的操作数,刚好是前一指令的运算结果,就发生数据相关冲突

解决方法:定向传送技术,在运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果

写后读WAR:后面的读指令用到前面指令所写的数据

写后写WAW:两条指令写同一个单元

读后写RAW:后面的写指令覆盖前面指令读的单元

解决方法:推迟后继指令的操作;数据旁路技术,设置相关的直接通路forwarding

第六章

总线带宽

总线带宽=传输的数据量/需要的时间

总线带宽=总线宽度*总线工作频率

设总线带宽用Dr表示,总线时钟周期=T=1/f,一个总线周期传送的数据量为D,则Dr=D*f=D/T


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM