计算机组成原理(笔记)

第一章 计算机系统概述

1.计算机发展历程

1.1 硬件的发展

1.四代变化:

①第一代计算机:电子管时代。使用机器语言编程,体积大,成本高;
②第二代计算机:晶体管时代。软件开始使用高级语言,操作系统雏形;
③第三代计算机:中小规模集成电路时代。高级语言发展迅速,开始有分时操作系统;
④第四代计算机:超大规模集成电路时代。产生微处理器,并行,高速缓存等新概念;

2.元件的更新换代

1.摩尔定律–》2.半导体存储器–》3.微处理器的发展。

①微型计算机的发展以微处理器为标志。
②传统冯诺依曼体系采用 单指令流,单数据流方式。

1.2 软件的发展

经历了面向机器的机器语言和汇编语言,面向问题的高级语言。
高级语言的发展又经历了科学工程计算的FORTRAN -->结构化设计的PASCAL --> 面向对象的C++ -->适应网络的Java。

2.计算机系统结构层次

2.1 计算硬件的基本组成

  1. 输入设备:将信息转为计算机能识别的形式输入。
  2. 输出设备:将计算机处理结果以人们能认识的形式输出。
  3. 存储器:计算机的存储部件,用来存放程序和数据。
  4. 运算器:是计算机的执行部件,进行算数和逻辑运算。
  5. 控制器:指挥中心,协调各部件工作。

2.2 早期冯诺依曼

提出“存储程序”概念。存储程序将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直到程序执行结构。

冯诺依曼体系的特点:

1.由五大部件组成。
2.指令和数据以同等地位存于存储器,可按地址寻访。
3.指令和数据用二进制表示。
4.指令由操作码和地址码组成。
5.指令在存储器内按顺序存放。
6.早期冯诺依曼以运算器为中心。现代存储器已经以存储器为中心,使IO尽可能绕过CPU

现代计算机结构:
计算机组成原理(笔记)_第1张图片
计算机组成原理(笔记)_第2张图片

2.3 认识各个部件

1.输入设备
2.输出设备
3.存储器

①也称主存储器,CPU能直接访问的存储器是主存储器,辅助存储器(外存)用来帮主存储器记忆更多信息。
②主存储器由多个存储单元组成,每个存储单元包括若干存储元件。每个存储单元可存储一串二进制代码,称这串代码为存储字。称这串代码的位数为存储字长。
③工作方式:按存储单元地址存取,即按地址存取方式。

计算机组成原理(笔记)_第3张图片
计算机组成原理(笔记)_第4张图片

1.地址寄存器(MAR):存放访存地址,用于寻址,来找存储单元。一般和存储字长相等。
2.数据寄存器(MDR):暂存从存储器读写的信息。
3.时序控制逻辑:产生存储操作的时序信号。
4.存储体:数据在存储体内按地址存取。

基本概念:

1.存储单元:每个存储单元存放一串二进制代码。
2.存储字:存储单元中二进制代码的组合。
3.存储字长:存储单元中二进制代码的位数。
4.存储元:存储二进制的电子元件,每个存储元可存1bit。

4. 运算器

运算器用于进行算术运算和逻辑运算。核心是算数逻辑单元(ALU)。主要包括:
1.ACC:累加器,用于存储操作数,或运算结果。
2.MQ:乘商寄存器,在乘、除运算时,用于存储操作数或运算结果。
3.X:通用的操作数寄存器,用于存放操作数。
4.ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算。
5.PSW:程序状态寄存器,存放标志信息,如是否溢出,有无进位。

5.控制器

控制器是计算机的控制中心,协调计算机的各项工作。主要包括:
1.CU:控制单元,分析指令,给出控制信号。
2.IR:指令寄存器,存储当前执行的指令。
3.PC:程序计数器,存放下一条指令地址,有自动加1功能。

完成一条指令包括取指令(PC和IR),分析指令,执行指令(CU)。

3.工作过程

三个步骤:
1.程序和数据装入主存。
2.源程序转换为可执行文件。
3.可执行文件收地址逐条执行指令。

1.计算机的多级结构:

1.高级语言机器(用编译程序翻译为汇编语言)–》2.汇编语言(用汇编程序翻译成机器语言程序)–》3.操作系统机器(用机器语言解释操作系统)–》4.用机器语言的机器(用微程序解释机器指令)–》5.微程序指令(由硬件直接执行)。

2.翻译程序

翻译程序是把高级语言源程序转换为机器语言程序的软件。

翻译程序有两种

  1. 编译程序:将高级语言一次全部翻译为目标程序。
  2. 解释程序:翻译一句执行一句。

3.三个级别的语言:

1.机器语言:称二进制代码语言,计算机唯一可以识别的语言。
2.汇编语言:面向机器的低级语言,是机器语言的符号表示,与机器语言一一对应。
3.高级语言:如JAVA C++,是方便程序设计人员解决问题的程序。

4.计算机性能指标

1.机器字长:计算机一次运算所能处理的二进制数据的位数。
2.数据通路带宽数据总线一次所能并行传输信息的位数。
3.数据通路子系统通过数据总线连接形成的数据传输路径。
4.数据通路宽度指数据总线的宽度。
5.主存容量主存储器能存储信息的最大量,以字节衡量。如MAR为16位,则有65536个存储单元(2的16次方,可称64K),若MDR为32位,则存储容量为64K x 32位。
6.运算速度

1.吞吐量:单位时间内处理请求的数量。
2.响应时间:发送请求到作出响应并获得所需结果所需要的时间。包括CPU时间(运行花费)与等待时间。
3.CPU时钟周期:主频的倒数,是CPU中最小的时间单位。
4.主频:主时钟的频率,衡量机器速度,主频越高,执行时间越短。
5.CPI:执行一条指令所需的时钟周期数。(不同指令和相同指令CPI都有可能不同)。
6.CPU执行时间:运行一个程序花费的时间。CPU执行时间等于CPU时钟周期数/主频。
综上CPU性能取决于:①主频(时钟频率)。②每条指令执行用的时钟周期数。③指令条数。
7.MIPS:每秒执行多少百万条指令。IPS=主频/CPI。

第二章 数据的表示和运算

1.二进制转八进制/十六进制:整数部分三个或四个一组,小数部分三个或四个一组。
2.八进制/十六进制转二进制:将每位改为三位或四位。
3.任意进制转十进制:各位数码与它们的权值相乘,把乘积相加,称为按权展开相加法。如11.1=1x2一次方+1x2的0次方+1x2的负一次方。
4.十进制转任意进制:整数部分除基取余(先余为低),小数部分乘基取整(先整为高)。

任意十进制一定可以表示二进制,任意二进制不一定表示十进制。

2.1 真值和机器数

1.真值:实际生活中带“+”,“-”的数称为真值。真值是机器数所代表的的实际值。
2.机器数:将数据的符号数字化(0表正,1表负),这种数为机器数。

2.2 BCD码

1. 8421码

有权码。各位的数值分别为8,4,2,1。如1000=8,0100=4。
①若8421码转为十进制<=9,则不需要修正,若>9,即>=10,则需要加6进行修正。
②1010到1111这六个为无效码

2. 余3码

无权码。在8421码基础上加上二进制的 0011形成的。如8–》1011。

3.2421码

有权码。权值从高到低分别为2,4,2,1。特点是>=5的最高位为1而非0.如5=1011,并非0101。

2.2 校验码

1.def:是指能够发现或能够自动纠正错误的数据编码,也称检错纠错编码。
2.原理:增加冗余码来检错。
3.码距:指任意两个合法码字之间不同的位的个数。码距越大,检错纠错能力越强。

1.奇偶校验码

源码基础上加上一位校验位,码距为2,只能检测一位错误,不能确定出错位置或偶数位错误。
1.奇校验码:1的个数为奇数。
2.偶检验码:1的个数为偶数。

2. 海明校验码

检错能力:2位。纠错能力:1位。

3.循环冗余校验码(CRC)

  1. 基本思想:在K位信息码后拼接R位的校验码,整个编码长度为N位。
    2.基于线性编码理论。

2.3 定点数的表示和运算

计算机组成原理(笔记)_第5张图片
1.有符号和无符号数

1.无符号数:整个机器字长全部二进制均为数值位。
2.有符号数:约定二进制最高位为符号位,组成有符号数。

2.机器数的定点表示

定点表示即约定机器数中小数点位置固定不变。

1.定点小数:是纯小数,小数点在符号位之后,有效数值部分最高位之前。
2.定点整数:是纯整数,小数点在数值部分最低位之后。

3.原码

用机器数的最高位表示数的符号,其余表示数的绝对值。
若机器字长n+1位,原码整数的表示范围:-(2n-1)≤x≤2n-1
真值0有+0和-0两种形式。【+0】原=*0*0000,【-0】=*1*0000
若机器字长n+1位,原码小数的表示范围:-(1-2-n)≤1-2-n(关于原点对称)

4.反码

> 这里是引用

真值0的反码不唯一,负数的反码符号位为“1”,数值部分取反。【+0】反=0.0000;【-0】反=1.1111

5.补码
计算机组成原理(笔记)_第6张图片

补码的真值0的表示是唯一的。【+0】补=0.0000,【-0】补=0.0000.

6.移码
在这里插入图片描述

移码的真值0只有一种表示形式。移码与真值最接近,移码大真值就大。

1.原码--》反码:为正:原=反;为负:符号位不变,数值位取反。
2.原码--》补码:为正:原=补;为负:原码先变反码,反码末尾+1。即除了符号位,其余位取反末尾再加1。
3.原码--》移码:先变为补码,符号位取反得移码。

1.补码的作用:使用补码可将减法操作转变为等价的加法,ALU中无需集成减法器。执行加法操作时,符号位一起参与运算。

2.4 定点数的运算

移位:通过改变各个数码位和小数点的相对位置,从而改变各数码位的位权。可用移位运算实现乘除。

1.算术移位

算数移位的对象是有符号数,☆移位过程符号位保持不变

1.对于正数:原码,补码,反码均添0.
2.对于复数:①原码:左右移动都添0。②补码:左移添0,右移添1。③对于反码:左右都添1。
3.左移高位舍弃,若舍弃位=0,则相当于x2,若舍弃为=1,则会出现误差。
4.右移低位舍弃,舍弃位=0,相当于÷2,若舍弃位=1,丢失精度。

2.逻辑移位

将操作数视为无符号数,仅对无符号数操作。
1.逻辑左移:高位丢失,低位补0。
2.逻辑右移:低位丢失,高位补0。

3.循环移位

分为带进位标志位CF的循环移位(大循环)和不带进位标志位的循环移位。
特点:移出的数位又被移入数据中,是否带进位要看是否将进位标志位加入循环移位。

4.原码定点数加减法

1.加法规则:符号位相同,绝对值相加,符号位不变。符号位不同,做减法,绝对值大的减绝对直小的,结果符号位与绝对值大的相同。
2.减法规则:先将减数符号取反,被减数与符号取反的减数按原码加法运算。溢出位丢掉。

5.补码定点数加减法

1.【B】补变为【-B】补:所有位取反(包括符号位),末尾+1。
2.【A+B】补=【A】补+【B】补。
3.【A-B】补=【A】补+【-B】补。

6.符号扩展

作用:计算机运算中,有时必须把给定位数的数转换为具有不同位数的形式。如8位机器字变为16位。

7.溢出和判断方法

1.溢出:指运算结果超出了数的表示范围。大于机器所能表示的最大正数为上溢,小于所能表示的最小负数为下溢。同符号数相加或异符号数相减才会溢出。
2.补码定点数加减法运算三个判断溢出方法:

  1. 采用一位符号位:参加的数符号相同,结果符号不同则表示溢出。
  2. 采用双符号位:也称模4补码。最高符号位的情况:①00:正数,无溢出。②01:结果正溢出。③10:结果负溢出。④11:结果为负,无溢出。
  3. 采用一位符号位根据数据位进位情况判断溢出。

2.5 强制类型转换

1.长度相同无符号数与有符号数:不改变数据内容,改变解释方式。
2.长整数变短整数:高位截断,保留低位。
3.短整数变长整数:符号扩展。

2.6 数据存储和排列

1.大端和小端方式

1.大端方式:从低地址开始,最高有效字节存放在前。便于人阅读。
2.小段方式:从低地址开始,最低有效字节存放在前。便于机器处理。

2.按边界处理

假设存储字长32位i,可按字节,半字和字寻址。
边界对齐访问一个字一次方寸,不对齐可能两次。

2.7 浮点数的表示

计算机组成原理(笔记)_第7张图片

r是阶码的底,一般为2。E为阶码,M为尾数。

1.左规当浮点数运算结果为非规格化时要进行规格化,将尾数算数左移一位,阶码减一的方法为左规。需要时要进行多次。
2.右规浮点数运算结果尾数溢出(双符号位01或10)时,将尾数算术右移一位,阶码+1的方法为右规。只进行一次。

规格化浮点数:为了提高运算的精度,需要充分利用尾数的有效数位,进行规格化处理,即规定尾数的最高数位必须是一个有效值。

规格化操作:就是通过调整一个非规格化浮点数尾数和阶码大小,使非零浮点数在尾数的最高数位上保证是一个有效值。
计算机组成原理(笔记)_第8张图片

3.规格化浮点数特点

1.原码规格化:基数为2----原码规格化的尾数最高位一定是1。基数是4----尾数最高两位不全为0。
2.补码规格化:基数为2----补码规格化符号位与最高数值位相反。

4.IEEE 754标准

1.阶码全1,全0用作特殊用途。
2.阶码真值= 移码 - 偏移量

5.定点,浮点数的区别

1.若两者字长相同,则浮点表示法表示的数值范围大于定点表示法。
2.精度是指一个数所含有效数值位的位数。字长相同的两者,浮点数扩大了数表示范围,但精度降低了。
3.浮点数包括阶码和尾数,运算时要做阶码和尾数的运算,而且运算结果要规格化,所以运算复杂。
4.定点运算中,结果超出数表示范围会溢出。浮点运算超出数表示范围不一定溢出。只有规格化后解码超出表示范围才会溢出。

6.规格化情况

1.尾数出现00.0xxx或11.1xxx,需左规,尾数左移一位,阶码-1;
2.运算和出现溢出,需右规,尾数右移,阶码+1;

7.浮点数溢出判断

浮点数的溢出由阶码判断。当阶码符号位为10表上溢,01时表下溢。

2.8 加法器

1.一位全加器。
2.串行加法器。
3.并行加法器:①串行进位。②并行进位。

第三章 存储系统

3.1 存储器概述

3.1.1 存储器分类

1.按层次分类

1.主存储器:存放程序和数据。
2.辅助存储器:存放当前暂时不用的程序和数据以及一些永久性保存的信息。
3.高速缓冲存储器:Cache,位于主存和CPU之间,存放正在执行的程序段和数据。
计算机组成原理(笔记)_第9张图片

2.按存储介质

1.磁表名存储器(磁盘)。2.磁心存储器半导体存储器。3.光存储器(光盘)。

3.按存取方式分类

1.随机存储器(RAM):随机存取,用作主存和高速缓存存储器。如内存条。
2.只读存储器(ROM):只能随机读不能写入,一旦写入就不变,断电信息不会丢失。
3.串行访问存储器:读写时,要按物理位置先后顺序寻址。包括顺序存取存储器(磁带)和直接存取存储器(磁盘)。

4.按信息的可保存性分类

1.易失性存储器:断电后存储信息消失。如RAM。
2.非易失性存储器:断电后信息不消失。如ROM。
3.破坏性读出:信息读出后,原存储信息被破坏。如DRAM芯片。
4.非破坏性读出:信息读出后,被读取存储单元信息不被破坏。如SRAM芯片,磁盘。

3.1.2 存储器性能指标

1.存储容量。2.单位成本。3.存储速度。
计算机组成原理(笔记)_第10张图片

note:存取时间不等于存储周期,通常存储周期大于存取时间。存储周期=存取时间+恢复时间。

3.2 存储器层次化结构

1.Cache--主存:解决CPU和主存速度不匹配问题。数据调度由硬件自动完成,对所有程序员透明。
2.主存--辅存:解决存储系统容量问题。数据调度由硬件和操作系统共同完成,对应用程序员透明。

计算机组成原理(笔记)_第11张图片
计算机组成原理(笔记)_第12张图片

3.3 半导体随机存储器

3.3.1 DRAM和SRAM工作原理

1.SRAM工作原理

静态随机存储器(SRAM)存储元是双稳态触发器来记忆信息,属于非破坏性读出。

2.DRAM工作原理

动态随机存储器(DRAM)利用存储元电路上的栅极电容的电荷存储信息的。
采用地址复用技术,地址信号分行列两次传送。密度比SRAM高。属于破坏性读出。

因为DRAM电荷维持时间段,不断电信息也会消失,所以必须定时刷新,三种方式:

  1. 集中刷新:刷新周期内利用固定时间刷新,期间停止读写,称为“死时间”。
  2. 分散刷新:刷新分散到各个工作周期,即前半周期 读写,后半刷新。
  3. 异步刷新:前两者的结合,刷新周期除以行数,得到时间间隔t,每隔t刷新一次。把对每行的刷新分散到整个刷新周期。
1.刷新对CPU透明,即不依赖于外部访问。
2.刷新类似于读操作,但不同,仅给栅极电容补充电荷,无信息输出。
3.刷新的单位是行,所以刷新仅需要行地址。

计算机组成原理(笔记)_第13张图片

3.DRAM和SRAM对比

1.DRAM容易集成,容量大,密度高。破坏性读出。
2.SRAM速度快。非破坏性读出。
3.两者都是易失性存储,即断电后内容消失。

NOTE:RAM--内存。ROM--辅存。

3.3.2 只读存储器

1.只读存储器ROM特点

1.结构简单,位密度比可读写存储器高。
2.非易失性,所以可靠性高。

2.ROM的类型

1.掩模式只读存储器(MROM):厂商直接写入,无法改变。
2.一次可编程只读存储器(PROM):一次性编程,用户可用专门设备写入,写入后无法改变。
3.可擦除可编程只读存储器(EPROM):可多次读写,先擦除后编程。
4.闪存存储器(FLASH Memory):不加电也可长期保存,又能快速擦除重写。如(u盘,sd卡)。
5.固态硬盘(ssd)

3.主存储器的构成
计算机组成原理(笔记)_第14张图片
计算机组成原理(笔记)_第15张图片

地址线单向。从主存地址送到主存中的地址寄存器。

3.4 主存储器与CPU连接

3.4.1 连接原理

1.主存储器通过数据总线,地址总线,控制总线与CPU连接。
2.地址总线位数决定了可寻址的最大空间。
3.控制总线支出总线周期类型和本词输入/输出操作完成的时刻。

3.4.2 主存容量的扩展

1.位扩展法CPU的数据线数与存储芯片的不一致,进行位扩展。

1.连接方式是将多个存储芯片的地址端,片选端,读写控制端并联,将数据端分别引出。8片8K x 1位的存储芯片 —> 1个8K x 8位的存储芯片。

2.字扩展法

1.增加存储器数量,位数不变。字扩展将芯片地址线,数据线,读写控制线并联,由片选信号CS区分芯片地址范围,片选号译码给出。

3.字位同时扩展法

4.字扩展法中片选信号的选择

1.线选法:除了片内寻址外的高位地址线,其余分别连接各个存储芯片的片选端。即n个线对应n个地址。优:线路简单,不需要译码器。缺:不能充分利用系统的存储空间。
2.译码片选法:除了片内寻址的高位地址线,通过地址译码器产生片选信号来选择哪个存储芯片。
计算机组成原理(笔记)_第16张图片

3.5 双端口RAM和多模块存储器

3.5.1 双端口RAM

1.指一个存储器有左右两个独立的端口,有两组独立的数据线和读写控制线,允许两个独立的控制器异步访问存储单元。
2.两端口同时存取存储器的同一单元地址会冲突。有四种情况:①同时同一地址读。②同时同一地址写。③不同时同一地址写。④同时同一地址一个读一个写。
计算机组成原理(笔记)_第17张图片

3.5.2 多模块存储器

`为提高访存速度`

1.单体多字存储器

存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字,一次并行读出m个字,地址必须顺序排列并在同一存储单元。

2.多体并行存储器

由多体模块组成,每个模块相同容量和存取速度,由独立的寄存区,读写控制电路。他们既能并行又能串行。

多体并行存储器分两种:

1. 高位交叉编址(顺序方式):高位表体号,低位为体内地址。访问连续主存块时总数先在一个模块内访问,访问完才到 下一个模块,不能并行访问,所以不能提高吞吐量,相当于单纯的扩容。(低位送高位进行译码)(连续存取n个字耗时nT)
2. 低位交叉编址(交叉方式):①低位地址为体号,高位为体内地址。②程序连续存放在相邻模块,所以采用此方式的存储器称为交叉存储器。③访问时候采用流水线的方式进行存取。④(高位体内地址送到低位确定的模块译码)(连续存取n个字耗时T+(n-1)r)T为存取周期,总线传送周期(即存取时间)为r。存储器交叉模块数(即存储体个数)m>=T/r。
计算机组成原理(笔记)_第18张图片

3.6 高速缓存存储器

3.6.1 Cache工作原理

1.位于存储器层次结构顶层,由SRAM构成,(速度快,成本高)。
2.Cache和主存都划为相等的块,以块为单位交换信息,仅保存主存中活跃的副本。若读命令访问命中cache,直接对cache读。若未命中,访问主存,并从主存将读的一块调入cache。

3.6.2 Cache和主存的映射方式

1.地址映射是把主存地址空间映射到Cache地址空间,即把存放在主存的信息按某规则装入Cache。
2.地址变换是CPU访存时,将主存地址按映射规则换算称Cache地址的过程。

计算机组成原理(笔记)_第19张图片

地址映射的3种方法:

1. 直接映射:每个主存块只能放到Cache的一个特定位置。Cache块号=主存块号 % Cache总块数。

直接映射地址结构为:【标记】【Cache行号】【块内地址】。
访存过程:先根据中间行号找到Cache行,然后主存高t位于标记对比,若相等且有效位为1,则Cache命中。否则不命中,从CPU读出的块存入Cache。
优缺点:实现简单,但不灵活,容易冲突,利用率低。

2. 全相联映射:主存块可存放在Cache任意位置。

全相联地址结构为:【标记】【块内地址】。
访存过程:每行的标记位用来指出取自主存哪一块,访存时与标记位比较。
优缺点:灵活,冲突低,空间利用率高,但标记速度慢,成本高(需要相联存储器)。

3. 组相联映射:Cache块分为若干组,每个主存块可放到特定分组中的任意一个位置。组号=主存块号 % 分组数。

主存地址映射结构:【标记】【Cache组号】【块内地址】。组内采用直接映射,组件全相联映射。
CPU访存过程:先找到Cache组号,行标记与主存高位标记比较,相等且有效位为1则命中。
组内块越多,冲突越少,

三者比较:
1.直接映射命中率最低,全相联最高。
2.直接映射判断开销小,需时间短。全相联判断开销最大,时间长。
3.直接映射标记占的额外空间开销最少,全相联标记占的最多。

3.6.3 Cache中主存块的替换算法

当Cache中的行数被占满时,又传送来一个新块,需要进行替换。

1.三种替换算法

1.随机算法(RAND):随机确定替换的块。优:实现简单。缺:未依据局部性原理,命中率低。
2.先进先出算法(FIFO):命中率低。未依据局部性原理。
3.近期最少使用算法(LRU):依据程序访问的局部性原理,选择近期内长久未访问的Cache行替换。(设置计数器记录使用情况,命中行计数器清0,其余比他低的+1.未命中且有空闲行,装入的行计数器为0,其余+1.未命中且无空闲行,计数器数值为3的被淘汰,新装入行的块变0,其余+1.)
4.最不经常使用算法(LFU):将一段时间内访问次数最少的存储行换出。(设置计数器,新建的从0开始,被访问+1,每次替换出计数器最小的行。)未遵循局部性原理。

计算机组成原理(笔记)_第20张图片

3.6.4 Cache写策略

为了保持Cache与主存数据一致性。

1.对于Cache写命中,两种策略

1.全写法:当CPU对Cache写命中时,把数据同时写入Cache和主存。一般用写缓冲(减少直接写入主存的时间耗费)。优缺点:访存次数增加,速度变慢,但更能保证数据一致性。
2.写回法:CPU对Cache写命中时,只修改Cache的内容,不立即写入主存,仅当此块被换出时才写回主存。优缺:减少了访存,但存在数据不一致隐患。此种方法通常每个Cache行必须设置一个标志位(脏位),反映此块是否被修改过。

2.对于Cache写不命中,两种策略

1.写分配法:CPU对Cache块写不命中时,把主存中的块调入Cache,在Cache中修改,当Cache行被替换时再写会主存。通常搭配写回法。
2.非写分配法:写不命中时只写入主存,不调入Cache(只有读命令未命中才调入Cache),当再次使用该块时,调入Cache。搭配全写法。

note:1.各级cache间常用“全写法 + 非写分配法”。
2.cache与主存之间常用“写回法 + 写分配法”。

计算机组成原理(笔记)_第21张图片

3.7 虚拟存储器

3.7.1 基本概念

1.用户编程允许涉及的地址称为虚地址/逻辑地址。
2.虚地址对应的存储空间称为虚拟空间。
3.实际的主存单元地址称为实地址/物理地址。
4.实地址空间对应的是主存地址空间,也称实地址空间。

3.7.2 页式虚拟存储器

1.拆分成大小相等的页面。
2.虚拟存储器:在操作系统的管理下,只把当前需要的部分数据调入主存,暂不需要的部分留在辅存中。在用户看来,似乎获得了一个超大的主存(虚拟性)。
3.有效位:也称装入位,来表示对应页面是否在主存。若为1表示虚页号已从外存调入内存,为0则没有调入。
4.脏位:也称修改位,表示当前页面是否被修改过。
5.引用位:`也称使用位,来配合替换策略进行设置。如实现FIFO。统计页面被访问多少次。计算机组成原理(笔记)_第22张图片

以页为单位的虚拟存储器为页式虚拟存储器。

优缺点:

页面长度固定,调入方便。但会存在最后一页的零头无法利用,因页不是逻辑上的实体所以处理,保护和共享不及段式虚拟存储器方便。

3.7.3 快表(TLB)

经常访问的页存入快表。

3.7.4 段式虚拟存储器

1.按照功能模块拆分。如#0段是自己代码,#1是库函数代码。
2.段表结构:【段号】【段首址】【装入位】【段长】计算机组成原理(笔记)_第23张图片

优缺点

把程序按逻辑结构分段,具有逻辑独立性,使得它易于编译,管理,修改和保护,也便于多道程序共享。但因段长度可变,分配空间不变,容易留下碎片。

3.7.5 段页式虚拟存储器

先分段,再分页,调入调出仍以页为基本单位。
一个程序一个段表,多个页表。
优缺点:兼具页式和段式优点,但地址变换需查两次表,开销大。

3.7.6虚拟存储器与Cache的比较

1.相同

1.都是为了提高系统性能。
2.都把数据划分为小信息块。
3.都有地址映射,替换算法,更新策略。
4.依据局部性原理,将常用的数据存放在高速部件中。

2.不同

1.Cache解决系统速度,虚拟存储器解决主存容量。
2.Cache由硬件实现,是硬件存储器,虚拟存储器是逻辑上的存储器。
3.不命中时,因为cache速度快,虚拟存储系统对系统性能影响大。
4.CPU与Cache和主存都建立了直接访问的通路,而辅存没有。

第四章 指令系统

4.1 指令格式

1.指令(又称机器指令),是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。
2.一台计算机的所有指令的集合构成该机的指令系统,也称指令集。
3.指令系统是计算机的主要属性,位于硬件和软件的交界面上。

4.1.1 指令的基本格式

一条指令 = 操作码 + 地址码。
1.操作码:指出该指令应该执行什么性质的操作和具有何种功能。如指出是算数加还是减运算。
2.地址码:给出被操作信息(指令或数据)的地址。
3.指令的长度:即一条指令中二进制代码的位数。
4.指令字长取决于操作码,地址码及地址码的个数。
5.单字长指令:指令字长等于机器字长 。
6.定长指令字结构:一个指令系统中所有指令的长度相等。
7.变长指令字结构:各种指令的字长随指令功能而异。

根据指令中操作数地址码的数目不同,指令分为几种格式:

  1. 零地址指令:

只给出操作码OP。无显式地址。指令有两种可能:
①不需要操作数的指令,空操作,停机指令。
②0地址的运算类仅用在堆栈计算机中。两个操作数隐含存放在栈顶。

  1. 一地址指令:

地址格式:【OP操作码】【地址码A1】
两种常见形态:
①单操作数指令,如+1,-1。完成一条指令三次访存:①取指②读A1③写会A1。
②隐含约定目的地址的双操作数,一个数在地址A1,一个在寄存区ACC。完成一条指令两次访存:①取指②读A1。(写回寄存器不需要访存)

  1. 二地址指令:

地址格式:【OP】【A1】【A2】。
常见形态:
约定两个数的运算,分别存在A1,A2。完成一条指令4次访存:①取指②读A1③读A2④写会A1。

  1. 三地址指令:

地址格式:【OP】【A1】【A2】【A3(结果)】
一条指令四次访存:①取指②读A1③读A2④写回A3。

  1. 四地址指令:

地址格式:【OP】【A1】【A2】【A3(结果)】【A4(下地址)】
一条指令四次访存:同三地址指令。执行结束后,PC的值改为A4所指地址。

计算机组成原理(笔记)_第24张图片
计算机组成原理(笔记)_第25张图片

4.1.2 定长操作码指令格式

定长操作码在指令最高位部分分配固定的若干位表操作码。n位操作码字段的指令系统最大表示2的n次方条指令。
若指令长度不变,地址码越多,寻址能力越差。

4.1.3 扩展操作码指令格式

计算机组成原理(笔记)_第26张图片

定义:可变长操作码:即全部指令的操作码字段的位数不固定,且分散的存放在指令的不同位置上。虽然增加了丰富的指令种类但显然会增加指令译码难度。
扩展操作码:属于变长操作码,它使操作码的长度随地址码减少而增加,不同地址数的指令有不同长度的操作码,可以在满足需要前提有效缩短指令字长。

设计扩展操作码格式要注意的两点:

  1. 不允许短码是长码的前缀,否则会出现歧义。
  2. 指令的操作码不能重复。会导致无法识别。
    通常使用频率高的分配操作码短,使用频率低的分配长。

4.2 指令的寻址方式

1.寻址方式是指寻找指令/操作数有效地址的方式,即确定本条指令的数据地址和下一条待执行指令的地址的方法。
2.指令中的地址码存放的是信息的形式地址,通过寻址方式+形式地址找到有效地址。
3.寻址方式包括:1.指令寻址。2.数据寻址

4.2.1 指令寻址和数据寻址

1.指令寻址即如何确定下一条指令的地址。两种方式:

1.顺序寻址:通过程序计数器(PC)加1,自动跳转下一条指令地址。
2.跳跃寻址:通过转移指令实现。包括相对寻址和绝对寻址。跳跃后将地址赋给PC,仍诉通过PC给出下一条指令。计算机组成原理(笔记)_第27张图片

2.数据寻址指如何在指令中表示操作数地址,得到操作数或操作数的地址。

指令格式:【操作码】【寻址特征】【形式地址A】

4.2.2 数据寻址的常见方式

  1. 隐含地址:不明确给出操作数地址,而在指令中隐含操作数地址。

计算机组成原理(笔记)_第28张图片

  1. 立即寻址:形式地址A中存放的就是操作数本身。只需访存1次。

计算机组成原理(笔记)_第29张图片

  1. 直接寻址:指令中的形式地址A是操作数的真是地址EA。

计算机组成原理(笔记)_第30张图片

  1. 间接寻址:形式地址A中给出的是操作数有效地址所在的地址。可以一次也可以多次间接寻址。

计算机组成原理(笔记)_第31张图片

  1. 寄存器寻址:在指令字中直接给出操作数所在的寄存器编号。访存一次:仅取指令。

计算机组成原理(笔记)_第32张图片

  1. 寄存器间接寻址:指在寄存器R中给出的是操作数所在主存单元的地址。两次访存:①取指②寻址。

这里是引用

  1. 相对寻址:指程序计数器(PC)的内容加上指令格式中的形式地址A形成的操作数有效地址。A是相对于下一条指令(PC先+1)的位移量,可正负,补码表示。

这里是引用

  1. 基址寻址:将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A形成操作数的有效地址。EA=B

计算机组成原理(笔记)_第33张图片计算机组成原理(笔记)_第34张图片

  1. 变址寻址:指有效地址A等于指令中形式地址A与变址寄存器IX的内容之和。EA=(IX)+A

变址寄存器是面向用户的:程序执行过程用户可改变寄存器的内容。
主要处理循环问题数组问题。计算机组成原理(笔记)_第35张图片

偏移寻址包括:1.基址寻址。2.变址寻址。3.相对寻址。
计算机组成原理(笔记)_第36张图片

10.堆栈寻址: 操作数存放在堆栈中,隐含SP栈顶作为操作数地址。

1.堆栈:是存储器中一块特定的,按后进先出管理的存储区。包括软堆栈和硬堆栈。
2.软堆栈:从主存中划分一段区域做堆栈。访存1次。
3.硬堆栈:又称寄存器堆栈,成本高,不适合做大容量堆栈。
计算机组成原理(笔记)_第37张图片
计算机组成原理(笔记)_第38张图片

4.3 CISC 和 RISC 的概念

指令系统朝两个截然不同方向发展:
1.增强原有指令功能,设置更复杂的新指令实现软件功能的硬化,这类机器称为复杂指令系统计算机(CISC)。X86,主要用于笔记本
2.减少指令种类和简化指令功能,提高指令的执行速度,这类机器称为精简指令系统计算机(RISC)。用于手机。

4.3.1 复杂指令系统计算机(CISC)(Complex Instruction Set Computer)

设计思路:一条指令完成一个复杂的基本功能。

4.3.2 复杂指令系统计算机(RISC)(Reduced Instruction Set Computing )

设计思路:一条指令完成一个基本“动作”,多条指令组合完成一个复杂的基本功能。

4.3.3 两者比较

1.CISC控制器大多采用微程序控制,即采用存储程序,设计好的指令提前存储。RISC控制器采用组合逻辑控制。
2.RISC更能提高运算速度。因为RISC采用流水线技术,指令数、寻址方式、指令格式种类少,所以运算速度快。
3.RISC便于设计,可降低成本,提高可靠性。
4.RISC有利于编译程序代码优化。

第五章 中央处理器

计算机组成原理(笔记)_第39张图片

5.1 CPU的功能和基本结构

中央处理器(CPU)由运算器和控制器组成。
1.控制器功能:负责协调控制计算机各部件执行程序的指令序列,取指,分析指,执行指令。是整个系统的指挥中心。
2.运算器功能:对数据进行逻辑运算,加工。

CPU的具体功能包括:

  1. 指令控制:完成取指,分析指,执行指令,即程序的顺序控制。
  2. 操作控制:CPU管理从内存取出的指令的操作信号,将信号送到相应部件,从而控制部件。
  3. 时间控制:对操作加以事件上的控制,为每条指令按时间顺序提供控制信号。
  4. 数据加工:对数据进行算术和逻辑运算。
  5. 中断处理:对运行过程出现的异常和特殊请求进行处理。

1.运算器

运算器基本功能接收控制器发来的命令并执行相应动作,对数据进行加工处理。
运算器组成:
1.算术逻辑单元。2.暂存寄存器。3.累加寄存器。4.通用寄存器。5.程序状态寄存器。6.移位器。7.计数器。

2.控制器

控制器基本功能是执行指令,每条指令的执行是控制器发出的一组微操作实现的。
控制器包括硬布线控制器和微程序控制器。
控制器组成:
1.程序计数器。2.指令寄存器。3.指令译码器。4.存储器地址寄存器。5.存储器数据寄存器。6.时序系统。7.微操作信号发生器。
控制器工作原理:根据指令操作码,指令执行步骤(微命令序列),条件信号来形成计算机各部件要用到的控制信号。

3.专用数据通路根据指令执行过程的数据和地址的流动方向安排连接线路。
计算机组成原理(笔记)_第40张图片

5.2 指令执行过程

5.2.1 指令周期

1.CPU从主存取出并执行一条指令的时间称为指令周期,不同指令,周期可能不同。
2.指令周期常用若干机器周期表示,一个机器周期又包含若干时钟周期,(时钟周期也称节拍或T周期,是CPU操作的最小的基本单位)。
3.每个指令周期内机器周期数可以不等,每个机器周期内节拍数也可不等。
4.对于无条件转移指令JMP x,执行时不需要访问主存,所以只包含取指阶段(取指,分析指),执行阶段。
5.对于间接寻址的指令,需先访存取出有效地址,再访存取出操作数,多了一个间址周期。
6.若采用中断方式交换信息时,指令结束前应多个中断周期。
计算机组成原理(笔记)_第41张图片计算机组成原理(笔记)_第42张图片

四个工作周期(取指,间址,执行,中断)都有访存,但目的不同:

  1. 取指周期:为了取指令。
  2. 间址周期:为了得到有效地址。
  3. 执行周期:执行指令。
  4. 中断周期:保存程序断点。
为区分上述四个周期,可在CPU内设置四个触发器FE,IND,EX,INT。以“1”表示有效来控制。

5.2.2 指令周期的数据流

数据流是根据要求依次访问的数据序列。指令不同阶段,依次访问的数据序列是不同的。

1.取指周期

取指周期任务是根据PC中的内容从主存中取出指令代码并放在IR中。
取指阶段,PC中存放的是指令的地址,取出的是指令,放在指令寄存器中。

2.间址周期

间址周期的任务是 取操作数有效地址。

3.执行周期

执行周期任务是 根据IR中指令字的操作码和操作数通过ALU操作产生结果。

4.中断周期

中断周期任务是 处理中断请求。
暂停当前任务去执行其他任务,需要保存断点(一般用堆栈保存)来恢复当前任务。

5.2.3 指令执行方案

1.单指令周期

对所有指令都选用相同的执行时间来完成,称为单指令周期方案。
每条指令都在固定时间内完成,指令之间串行执行(前一条完成才能执行下一条)。
指令周期取决于执行时间最长的指令的执行时间。

2.多指令周期

对不同类型指令选用不同执行步骤完成,称为多指令周期方案。
指令间串行执行。指令需要几个周期就分配几个周期。

3.流水线方案

指令间可并行执行的方案,称为流水线方案。
计算机组成原理(笔记)_第43张图片
计算机组成原理(笔记)_第44张图片

5.3 数据通路的基本功能和基本结构

5.3.1 数据通路的功能

1.数据在功能部件之间可传送的路径 称为数据通路。路径上的部件称为数据通路部件。
2.数据通路描述了信息从什么地方开始,经过哪个部件,最后到哪个寄存器。
3.数据通路的功能是实现CPU内部的运算器与寄存器 及 寄存器之间的数据交换。

5.3.2 数据通路的基本结构

1.内部总线:指同一部件,如CPU内部连接各寄存器及运算部件之间的总线;
2.系统总线:指同一台计算机系统的各部件,如CPU、内存、
通道和各类I/O接口间互相连接的总线。

数据通路基本结构有以下几种:

  1. CPU内部单总线结构:

所有寄存器输入输出都连接到一条公共通路上。优缺点:结构简单,成本低,但数据传输冲突较多。

  1. CPU内部三总线方式:
  2. 专用数据通路方式:

根据指令执行过程中的数据和地址的流动方向安排线路。避免使用总线。优缺点:性能高,但硬件量大。

当一个部件有多个输入时,可用多路选择器 或 三态门 选择哪一个有效。

1.寄存器之间的数据传送需要借助CPU内部总线完成。
2.主存与CPU之间的数据传送借助CPU内部总线。
3.执行算术或逻辑运算因为ALU不能存数据,所以相加的两数必须在ALU两端同时有效,因此一端使用暂存器存CPU传来的其中一个,另一个直接输入ALU,结果存到暂存寄存器中。

微操作:如(PC)-》MAR就是一个微操作。

计算机组成原理(笔记)_第45张图片

5.4 控制器的功能和工作原理

5.4.1 控制器的功能和结构

控制器是计算机的指挥中心,主要功能有:
1.从主存中取出一条指令,并指出下一条指令在主存地址。
2.对指令进行译码或测试,产生相应的控制信号,来启动相应的动作。
3.指挥并控制CPU,主存,输入输出和设备之间的数据流动。

控制器包括1.硬布线控制器。2.微程序控制器。

5.4.2 硬布线控制器

指令的操作码决定了控制单元发出不同操作命令的关键。为简化CU逻辑,将操作码译码和节拍发生器从CU分离。

1.CU的控制信号来源:

  1. 经指令译码器译码产生的指令信息:经过译码得到操作码字段,配合时钟信号产生不同的控制信号。
  2. 时序系统产生的机器周期信号和节拍信号:使控制单元按一定的先后和节奏发出各个控制信号。
  3. 来自执行单元的反馈信息即标志:控制单元有时会依赖CPU所处的状态产生控制信号,如BAN指令。
  4. 还接受来自系统总线的控制信号,如中断,DMA请求。

2.硬布线控制器的时序系统及微操作

1.时钟周期:用时钟信号控制节拍发生器可产生节拍,每个节拍宽度正好等于一个时钟周期。每个节拍内机器可完成一个或几个需执行的操作。
2.机器周期:机器周期可视为所有指令执行的一个基准时间。访问一次存储器的时间是固定的,因此常用存取周期作为基准时间,即内存中读取一个指令字的最短时间作为机器周期。在存储字长=指令字长前提下,取指周期可视为机器周期。
3.指令周期。
4.微操作命令分析:控制单元具有发出各种操作命令序列的功能。这些命令与指令有关,而且必须按一定次序发出,才能使机器有序工作。

3.CPU的控制方式

控制单元控制一条指令执行的过程实际上是一次执行一个确定的微操作序列的过程。不同指令微操作数及复杂程度不同,每个微操作所需执行时间也不同。主要有三种控制方式:

1.同步控制方式:指所有的控制信号均来自一个统一的时钟信号。通常以最长和最繁琐的微操作为标准。
2.异步控制方式:不能存在基准时间,各部件按自身固有速度工作,通过应答方式联络。
3.联合控制方式:介于同步异步之间,对指令微操作采用大部分同步,小部分异步控制的办法。

5.4.3 微程序控制器

微操作控制器采用存储逻辑实现,把微操作信号代码化,使每条机器指令转化为微程序存入专门的存储器中,微操作控制信号由微指令产生。

1.微程序控制的概念

1.设计思想:将每条机器指令编写成一个微程序,每个微程序包含若干微指令,每个微指令对应几个微操作命令。
2.微命令与微操作:一条机器指令可分解为一个微操作序列,这些微操作都是不可再分的操作。控制部件向执行部件发出的控制命令称为微命令,它是构成控制序列的最小单位,如打开某个门的电位信号。微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的执行过程。
“ ---------”微命令有相容与互斥性之分。相容性微命令指可以同时产生,共同完成某微操作的微命令。互斥性微命令指机器中不允许同时出现的微命令。
3.微指令与微周期微指令是若干微命令的集合。存放微指令的控制器地址称为微地址微周期指从控制器中读取一条微指令并执行相应微操作所需要的时间。
“-----------”一条微指令包括微操作码字段 和 微地址码字段。
4.主存储器与控制存储器:主存储器用于存放程序和数据,在CPU外部,用RAM实现。控制存储器(CM)存放微程序,在CPU内部,ROM实现。
5.程序与微程序:程序是指令的有序集合,用来完成特定功能。微程序是微指令的集合,一条指令的功能由一段微程序来实现。

补充:
1.微程序是微指令组成的,用于描述机器指令,实际上是机器指令的解释器。
2.指令是对程序执行步骤的描述,是对微指令功能的封装。
3.微指令是对指令执行步骤的描述。
4.程序由指令序列组成,微程序由微指令序列组成,每种指令对应一个微程序。

区分不同寄存器

  1. 地址寄存器(MAR):存放主存的读写地址。
  2. 微地址寄存器(CMAR):存放控制存储器的读写微命令地址。
  3. 指令寄存器(IR):存放主存中读出的指令。
  4. 微指令寄存器(CMDR):存放从控制存储器中读出的微指令。

2.微程序控制器组成和工作过程

①.基本组成

1.控制存储器:微程序控制器核心部件。存放指令对应的微程序,ROM构成。
2.微指令寄存器:存放从CM取出的微指令。
3.微地址形成部件:产生初始微地址和后续微地址。
4.微地址寄存器:接收微地址形成部件传来的微地址。

②.工作过程

1.取微指令公共操作。
2.通过操作码字段,微地址形成部件产生微程序入口地址。
3.从CM中取出对应的微指令并执行。
4.执行完微指令回到入口地址重复1。

③.微程序和机器指令

一条机器指令对应一个微程序。任何一条机器指令的取指令操作都相同,可编为一个微程序。

3. 微指令的编码格式

1.也称微指令的控制方式。指如何对微指令的控制字段进行编码,形成控制信号。
2.编码的目的是保证速度前提下,尽量缩短微指令字长。

1.直接编码方式微命令字段中每一位都代表一个微命令。优缺点:简单,直观,并行性好。但微指令字过长。
2.字段直接编码方式:微命令分为若干小段,互斥性微命令在一组,相容性不在一组。优缺点:可缩短微指令,但要译码后才发出微命令。
3.字段间接编码方式:一个字段的某些命令需要另一个字段的微命令来解释。又称隐式编码。优缺点:可进一步缩短微指令字长,但削弱了并行控制能力。

4.微指令的地址形成

1.直接由微指令的下地址字段指出。
2.根据机器指令的操作码形成。
3.由专门硬件产生。

5.微指令的格式与微指令的编码方式有关。

1.水平型微指令:一条水平型微指令定义并执行几种并行的基本操作。计算机组成原理(笔记)_第46张图片
2.垂直型微指令:一条垂直型微指令只能定义并执行一种基本操作。特点是采用机器指令操作码方式来规定微指令功能。指令格式为:【微操作码】【目的地址】【源地址】。优缺点:微指令短,便于编写微程序。但微程序长,执行速度慢。
3.混合型微指令:垂直型微指令基础上增加一些并行操作。

水平型微指令与垂直型比较:

1.水平型并行能力强,效率高,灵活性强。垂直型差。
2.水平型执行一条指令的时间短。垂直型微指令执行时间长。

7.动态微程序设计和毫微程序设计

1.动态微程序设计:能根据用户的要求改变微程序,则称机器有动态微程序设计功能。可采用EPROM实现。
2.毫微程序设计:用来解释微程序的。微程序计算机中,主存取出的指令是存放在控制存储器中的微程序来解释执行的,通过控制线进行控制。若硬件不由微程序直接控制,而是通过毫微程序解释,则称这个二级控制存储器为毫微存储器。

8。硬布线和微程序控制器的特点

1.硬布线特点:由于控制器速度取决于电路延迟,所以速度快。缺点是不能通过其他额外修改器增加新功能。
2.微程序控制器特点:规整性,灵活性,可维护性等优点。缺点是采用了存储程序原理,所以每条指令都要从控制存储器中取一次,影响速度。

计算机组成原理(笔记)_第47张图片

5.5 指令流水线

5.5.1 指令流水线的基本概念

把重复的过程分为若干子过程,子过程之间并行执行。是一种并行处理技术。

1.指令流水定义

1.取指:根据PC内容从主存中取出指令送到IR。
2.分析:对操作码译码,按给定的寻址方式和地址字段内容形成操作数有效地址,取得操作数。
3.执行:根据操作码字段,完成指令规定功能。

当多条指令执行时,可采用以下三种方式:

  1. 顺序执行方式:传统冯诺依曼采用这种。串行执行。
  2. 一次重叠执行方式:同时进行低k条指令和k+1条指令的取指阶段。时间缩短1/3.
  3. 二次重叠执行方式:把k+1条指令取指阶段提前到第k条指令分析阶段。时间缩短2/3.

2.流水线方式

通常用时空图直观的描述流水线工作过程。

3.流水线方式的特点

1.一个任务(指令)分解为几个有联系的子任务,子任务并行执行来缩短程序执行时间。
2.流水线每个功能段部件后有一个缓冲寄存器,也称锁存器,保存本流水段的执行结果,给下一流水段用。
3.流水线中各功能段时间应尽量相等。
4.要有装入和排空时间:装入时间指第一个任务进入流水线到完成时间。排空时间是最后一个任务进入流水线到输出流水线时间。

流水线的分类

1.部件功能级,处理机级,处理机间级流水线

1.部件功能级:将复杂逻辑运算组成流水线工作方式。如浮点加法分为求阶差,对阶等。
2.处理机级流水:将一条指令解释过程分为多个过程。如取指,分析,执行。
3.处理机间级流水:每个处理机完成某一任务,各个处理机得到结果放在下一个处理机共享的存储器内。

2.单功能流水线和多功能流水线

1.单功能流水线:只能实现一种固定的专门功能的流水线。
2.多功能流水线:通过各段间的不同连接方式可同时或不同时实现多种功能的流水线。

3.动态流水线和静态流水线

1.静态流水线:同一时间内,流水线各段只能按同一种功能连接方式工作。
2.动态流水线:同一时间内,某些段实现某运算,另一段却进行另一种运算。

4.线性流水线和非线性流水线

1.线性流水线:从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
2.非线性流水线:存在反馈回路。

5.5.3 影响流水线的因素

由于多条指令在同一时刻争用同一资源形成的冲突称为资源冲突。
两种解决办法:
1.前一指令访存时,后一条指令(以及后续指令)暂停一个中周期。
2.单独设置数据存储器和指令存储器。使两操作各自在不同存储器中进行。

但主要讨论相关问题,是指相邻指令间存在某种关联,使流水线出现停顿,降低了流水线效率,主要有:

  1. 数据冲突(数据冒险):下一条指令会用到这一条指令计算的结果,称两条指令为数据冒险。

解决办法:
1.后续指令暂停一到几个周期。可分为硬件阻塞和软件插入“NOP”两种方法。
2.设置相关专用通路,即直接把上个指令执行的结果作为下个指令的输入数据。这种称为数据旁路技术。
3.通过指令编译优化,调整指令顺序解决。

  1. 控制冲突(控制冒险):一条指令要确定下个指令的位置,但中间出现了如转移指令改变了PC的值,造成断流,会引起控制冒险。

解决办法:
1.分支预测:包括简单(静态)预测和动态预测。静态预测总数预测条件不满足。动态预测根据执行历史情况进行预测。
2.预测转移成功和不成功两个控制流方向上的目标指令。

5.5.4 流水线性能指标

1.流水线的吞吐率单位时间内流水线内完成的任务数量。
2.流水线的加速比完成同一批任务,不使用流水线所用时间与使用流水线所用时间之比。
3.流水线的效率即流水线的设备利用率。时空图上,nr个任务占用的时空区有效面积 / n个任务所用时间与k个流水段所围成的时空区总面积。

5.5.5 超标量流水线的基本概念

1.超标量流水线技术每个时钟周期可并发多个独立指令,并以并行操作方式执行。
2.超流水线技术一个时钟周期内再分段,一个时钟周期内一个功能部件使用多次。
3.超长指令字将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字。

第六章 总线

计算机组成原理(笔记)_第48张图片

6.1 总线概述

6.1.1 总线的基本概念

1.总线定义

总线是一组能为多个部件分时共享的公共信息传送线路。两个特点:分时和共享。
1.分时:指同一时刻只能有一个部件向总线发送信息,若多个部件,只能分时传输。
2.共享:指总线上可以挂多个部件,各个部件交互信息都可以分时在的通过这个总线共享。同一时刻只能有一个部件向总线发送信息,多个部件接收。

2.总线设备

总线上连接的设备根据对总线有无控制功能可分为主设备和从设备。
1.主设备:指获得总线控制权的设备。
2.从设备:指总被主设备访问的设备,它只能相应从主设备发来的各种总线命令。

3.总线特性

指1.机械特性(尺寸,形状)。2.电气特性(传输方向及有效电平范围)。3.功能特性。4.时间特性。

4.总线的猝发传输方式

在一个总线周期内传输存储地址连续的多个数据字的总线传输方式,称猝发传送。

6.1.2 总线的分类

1.片内总线

是芯片内部的总线,是CPU芯片内部寄存器之间,寄存器与ALU之间的公共连接线。

2.系统总线

系统总线是计算机系统内各功能的部件(CPU,IO接口,主存)之间连接的总线。按总线传输信息内容不同又可分为三类:
1.数据总线:传输各功能部件间的数据信息。双向传输。位数与机器字长,存储字长相关。
2.地址总线:指出数据总线上源数据/目的数据的主存单元地址。单向传输线。
3.控制总线:传输控制信息,包括CPU发出的控制命令和主存返回CPU 的反馈信息。

3.通信总线

指计算机系统之间传输信息的总线,也称外部总线。

6.1.3 系统总线的结构计算机组成原理(笔记)_第49张图片

计算机组成原理(笔记)_第50张图片

包括单总线结构,双总线结构,三总线结构、

1.单总线结构

CPU,主存,IO设备(通过IO接口)都连接在一条总线上,允许IO设备之间,IO设备与CPU间直接交换信息。
并不是指只有一根信号线。系统按照传送信息的不同可细分为地址总线,数据和控制总线。计算机组成原理(笔记)_第51张图片

2.双总线结构

1.结构: 两条总线,一条是主存总线:CPU,主存和通道间传送数据。一条是IO总线:在多个外部设备与通道间传送数据。计算机组成原理(笔记)_第52张图片

3.三总线结构

1.结构:在计算机系统各部件间采用3条独立总线来构成信息通路。①主存总线:用于CPU与内存之间。②IO总线:用于CPU和各类外设之间。3.DMA总线:用于内存和高速设备之间。计算机组成原理(笔记)_第53张图片计算机组成原理(笔记)_第54张图片

6.1.4 总线的性能指标

1.总线的传输周期:即一次总线操作所需的时间(包括申请阶段,寻址阶段,结束阶段),简称总线周期。总线传输周期由若干总线时钟周期构成。
2.总线时钟周期:即机器的时钟周期。计算机有统一的时钟,控制计算机各个部件。
3.总线的工作频率:总线上各种操作的频率,为总线周期的倒数,实际上指1秒内传送几次数据。
4.总线的时钟频率:即机器的时钟频率, 为时钟周期的倒数。
5.总线带宽:单位时间内总线上可传输数据的位数,常用每秒传送信息的字节数衡量。是总线本身能达到的最高传输速率。是衡量总线性能的重要指标。
6.总线宽度:总线上能同时传输的数据位数。常指数据总线的根数。
7.总线复用:指一种信号线在不同时间传输不同的信息,可节省空间和成本。
8.信号线数:地址总线,数据总线,控制总线三种总线数的总和称为信号线数。
总线带宽 = 总线宽度 * 总线频率

6.2 总线仲裁

1.为什么仲裁?总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题。
2.总线仲裁的定义:为解决多个主设备同竞争总线控制权的问题,采用总线仲裁部件。
3.总线仲裁分类:按仲裁控制机构的设置可分为集中仲裁方式和分布仲裁方式。

6.2.1 集中仲裁方式

将所有的总线请求集中起来,利用一个特定的裁决算法进行裁决,称为集中仲裁方式。
集中仲裁方式包括 链式查询方式,计数器定时查询方式和独立请求三种。
计算机组成原理(笔记)_第55张图片

1.链式查询方式

部件离总线控制权越近,优先级越高。越远,优先级越低。
计算机组成原理(笔记)_第56张图片

2.计数器查询方式

采用一个计数器控制总线使用权,相对于链式查询方式,多了一组设备地址线,少了系统总线响应线BG。
仍公用一条总线请求线,当总线控制权收到请求信号并判断总线空闲时候,便开始计数。计数值通过设备地址线发到各个部件,若计数值与设备地址线一样,则该设备获得总线控制权。计算机组成原理(笔记)_第57张图片

3.独立请求方式

每个设备均有一对总线请求线BR总线允许线BG
当部件需要使用总线时候,向总线请求线发出请求信号,在总线控制器中排队。总线控制器按一定次序批准部件请求。计算机组成原理(笔记)_第58张图片
计算机组成原理(笔记)_第59张图片

6.2.2 分布式仲裁方式

分布式仲裁方式不需要中央仲裁器,每个潜在的主模块都有自己的仲裁号(相当于优先级)和仲裁器。
当有总线请求时,就把唯一的仲裁号发到共享的仲裁总线上,每个仲裁器得到总线上的仲裁号,与自己的对比,若自己优先级低则不响应。
计算机组成原理(笔记)_第60张图片

6.3 总线操作和定时

操作和定时指占用总线的一对设备如何进行数据传输。
总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时。
主要有同步和异步两种基本定时方式。

6.3.1 总线传输的4个阶段

1.申请分配阶段:需要使用总线的主设备提出请求,经总线仲裁机构决定授予者。
2.寻址阶段:取得使用权的主模块发出要访问的从模块的地址及相关命令。
3.传输阶段:主模块和从模块数据交互,可单向或双向。
4.结束阶段:主模块的有关信息从系统总线上撤出,让出总线控制权。

6.3.2 同步定时方式

指采用统一的时钟信号协调发送和接收双方的传送定时关系。即由统一时钟控制数据的传送。计算机组成原理(笔记)_第61张图片

6.3.3 异步定时方式

异步定时方式中没有统一的时钟,也没有固定的时间间隔,依靠双方相互制约的“握手”信号来实现定时控制。
主设备提出交换信息的“请求”信号,经接口传送到从设备;从设备接到主设备
的请求后,通过接口向主设备发出“回答”信号。

根据“请求”和“回答”信号的撤销是否互锁,分为三种类型:

1.不互锁方式:主设备发出“请求”信号后,不必等从设备的“回答”信号,过段时间自动撤销。从设备接到“请求”信号后,发出“回答”信号,过段时间自动撤销“回答”信号。不管对方是否回答信号,过段时间自动撤销。
2.半互锁方式:主设备发出“请求”信号后,必须接到从设备“回答”信号,才撤销“请求”信号。从设备收到“请求”信号后,发出回答信号,不必等主设备的“请求”信号撤销,过段时间自动 撤销“回答”信号。“请求”信号等待“回答”后才撤销,“回答”信号过段时间自动撤销。
3.全互锁方式:主设备发出“请求”信号,必须在从设备“回答”后才撤销“请求”信号。从设备发出“回答”信号后,必须在获知主设备撤销“请求”信号后,再撤销“回答”信号。

第七章 输入/输出系统

7.1 I/O系统基本概念

7.1.1 输入/输出系统

解决的主要问题是对计算机各种形式的输入输出的控制。

IO系统中的概念:

1.外部设备:包括输入输出设备及通过输入输出接口才能访问的外存储设备。
2.接口:外设与主机之间进行传输数据时进行各种协调工作的逻辑部件。
3.输入设备:向计算机输入信息的部件。
4.输出设备:将计算机系统中的信息输出到计算机外部显示。
5.外存设备:指除计算机内存及CPU缓存外的存储器。如硬磁盘。

I/O系统由I/O软件 和 I/O硬件两部分构成:

1.I/O软件:包括驱动程序,用户程序,管理程序等。通常采用IO指令 和 通道 实现CPU与IO的数据交换。
2.I/O硬件:包括外部设备,设备控制器和接口,IO总线等。通过设备控制器来控制IO设备的动作。通过IO接口与主机(总线)相连。

1.IO指令:CPU指令的一部分,是CPU用来控制输入输出操作的命令。具有通道的机器中IO指令不实现IO数据传送,主要完成启动/停止IO设备。
2.通道指令:通道能识别的指令。通道程序提前存放在主存中。是通道本身的指令,用来执行IO操作。如读写磁带。

7.1.2 I/O控制方式

1.程序查询方式:CPU通过程序不断查询I/O设备是否已做好准备。
2.程序中断方式:I/O设备准备就绪并向CPU发出中断请求时才给响应。
3.DMA方式:主存和IO设备间有一条直接数据通路,主存与IO设备交换信息时,无需调用中断服务。
4.通道方式:系统中设置通道控制部件。每个通道连接若干外设,执行IO命令时,只需启动相关通道,通道执行通道程序完成IO操作。

7.2 外部设备

7.2.1 外存储器

外存储器又称辅助存储器。目前主要使用磁表面存储器。
磁表面存储器优点:容量大,价格低,记录介质可重复用,非破坏性读出。缺点:存取速度慢。

1.磁盘存储器

  1. 磁盘设备的组成

①存储区域:一块硬盘有若干记录面,每个记录面分若干磁道,每条磁道分若干山区。扇区(也称块)是磁盘读写的最小单位。
磁头数:即记录面数,一个记录面对应一个磁头。
柱面数:即硬盘每面盘片上多少条磁道。不同记录面的磁道构成一个圆柱面。
扇区数:表明每条磁道多扇区。
②硬盘存储器的构成:1.磁盘驱动器。2.磁盘控制器(硬盘存储器和主机的接口)。3.盘片

  1. 磁记录管理:

原理:磁头和磁性记录介质相对运动,通过电磁转换完成读/写操作。

  1. 磁盘的性能指标

1.磁盘容量:一个磁盘所能存储的字节总数称磁盘容量。有非格式化和格式化之分。
2.记录密度:指盘片单位面积上记录的二进制信息量。以道密度,位密度,面密度表示。
3.平均存取时间:由寻道时间(磁头移动到目的磁道的时间),旋转延迟(定位到要读写扇区的时间),传输时间三部分构成。
4.数据传输率:磁盘在存储器单位时间内向主机传送数据的字节数。

  1. 磁盘地址:

地址结构:【驱动器号】【柱面号】【盘面号】【扇区号】

  1. 硬盘工作过程

硬盘主要操作是 寻址,读盘,写盘。硬盘读写操作是串行的,不允许同时读两组数据,不能同一时刻既读又写。

1.磁盘序列

RAID是指将多个独立的磁盘组成一个独立的逻辑盘,数据在多个物理盘上交叉存储,并行访问,有更好的存储性能。

7.3 I/O接口

I/O接口(I/O控制器)是主机和外设之间的交接界面,通过接口可实现主机和外设之间的数据交互。

I/O接口的功能:
1.实现主机和外设之间的通信联络控制。
2.进行地址译码和设备选择。
3.实现数据缓冲。
4.信号格式的转化。
5.传送控制命令和状态信息。
IO接口在主机侧通过IO总线与内存,CPU相连。通过数据总线在数据缓冲寄存器与内存/CPU的寄存器相连。
6.IO指令:对数据缓冲寄存器、状态/控制寄存器的访问操作是通过相应的指令完成的。这类指令称为IO指令。IO指令只能在操作系统内核的底层IO软件中使用,是特权指令。

7.3.3 IO接口的类型

1.从数据传送方式(外设和接口间的):并行接口(一字节或一个字的所有位同时传送)。串行接口(一位一位的传送)。接口要完成数据格式的转换。
2.从数据传送方式(主机和接口间的):数据总是并行传输。
3.按主机访问IO控制的方式:①程序查询接口。②中断接口。③DMA接口。
4.按功能选择灵活性:①可编程接口、②不可编程接口。

7.3.4 I/O端口及编制

1.I/O端口是指接口电路中可被CPU直接访问的寄存器。主要有数据端口,状态端口,控制端口。
2.若干I/O接口 + 相应的控制逻辑电路 组成 接口

I/O端口的编址方式:
1.统一编址:又称存储器映射方式。把I/O端口当做存储器的单元进行地址分配。不需要专门的IO指令,用统一的访存指令就可访问IO端口。
2.独立编址:又称I/O映射方式。IO端口的地址空间与主存地址是两个独立的地址空间。需要设置专门的IO指令访问IO端口。

7.4 I/O方式

7.4.1 程序查询方式

信息交互的控制完全由主机执行程序实现。CPU不断轮回查询IO设备是否准备就绪,CPU与IO串行工作。

7.4.2 程序中断方式

程序中断指计算机执行现行程序的过程中,出现某些紧急处理的异常情况或特殊请求,CPU暂停当前程序,转去执行其他情况。
CPU与IO并行工作。
程序中断思想:CPU在程序中安排好某个时间启动某外设,CPU转去执行原来程序,当外设完成数据传送的准备,就想CPU发出中断请求,CPU就暂停正进行的程序转去执行请求。

1.程序中断方式工作流程

  1. 中断请求:指中断源向CPU发送中断请求信号。中断源是请求CPU 的设备或事件。

1.硬件中断:通过外部硬件产生的中断。属于外中断。
2.软件中断:通过某条指令产生的中断。这种可编程实现,属于内中断。
3.非屏蔽中断:关中断情况下也会被响应。
4.屏蔽中断:关中断不会再响应中断请求。

2.中断判优:在多个中断源请求中按某种响应算法响应一个。

可用硬件实现:通过硬件排队器实现。
可用软件实现:通过查询程序实现的。

3.CPU响应中断的3个条件:

1.中断源有中断请求。
2.CPU允许中断及开中断。
3.一条指令执行完毕,且没有更紧急的任务。
CPU在统一的时刻 即 CPU响应中断的时间是在 每条指令执行阶段的结束时刻。这里仅指外中断,内中断不是这种情况。

4.中断引指令:不是CPU指令,无操作码。CPU响应中断后,经某些操作转去执行中断服务程序。这些操作是由硬件实现的,将它称为中断引指令。

中断引指令完成的操作:
1.关中断:保护中断现场,防止被新的中断打断。
2.保存断点。
3.引出中断服务程序:目的是取出中断服务程序的入口地址并传输给程序计数器PC。

5.中断向量:指向中断服务程序,即中断服务程序的入口地址。

存放中断向量的存储区称为 中断向量表。即中断服务程序入口地址表。
CPU响应中断后,中断硬件会自动量中断向量地址传送到CPU,由CPU实现程序切换,这种方法称为中断向量法,采用中断向量法的中断称为向量中断
中断向量是中断服务程序的入口地址。中断向量地址是中断服务程序的入口地址的地址。

6.中断处理过程

1.中断引指令阶段:①关中断。②保存断点。③引出中断服务程序。(两种方法寻址中断服务程序的入口地址:硬件向量法和软件查询法)。
2.中断服务程序完成的内容:④保存现场和屏蔽字。⑤执行中断服务程序。⑥恢复现场(中断返回前)和屏蔽字。⑦开中断,中断返回(由最后一条中断返回指令完成)。

7.4.3 DMA方式

DMA方式是一种完全由硬件进行成组信息传送的控制方式。它在内存与外设之间开辟一条“直接数据通路”,信息传送不再经过CPU。

你可能感兴趣的:(复试笔记,其他)