计算机组成原理重点总结(学习笔记)含计算公式

一、计算机系统概述

计算机系统的多层次结构

微程序设计级、一般机器级、操作系统级、汇编语言级、高级语言级。
硬件
第1级:微程序机器层M0(微指令系统),由硬件直接执行微指令
第2级:传统机器M1(机器语言机器),用微程序解释机器指令
软件
第3级:虚拟机器M2(操作系统机器),用机器语言解释操作系统
第4级:汇编语言M3(汇编语言机器),用汇编程序翻译成机器语言程序
第5级:虚拟机器M4(高级语言机器),用编译程序翻译成汇编语言程序

冯·诺依曼机

基本工作方式:控制流驱动方式;
最根本的特征:采用“存储程序”原理,即按地址访问并顺序执行指令;
指令和数据均以二进制形式存放在存储器中;
CPU区分依据是:指令周期的不同阶段。
冯·诺依曼计算机:以运算器为中心
现代的计算器:以存储器为中心
5大部件:存储器、运算器、控制器、输入设备、输出设备(适配器)
三大部分:CPU(运算器、控制器)、I/O设备(输入设备、输出设备)、主存储器

哈佛结构

将指令和数据放在两个独立的存储器,允许在一个机器周期内同时获得指令和操作数,提高了执行速度。

计算机性能指标

机器字长
1、CPU一次能处理数据的位数。
通常与CPU的寄存器位数有关。字长越长,精度越高。
2、机器的字长也会影响机器的运算速度。
字长较短,运算位数多,可能需要多次运算才能完成。
3、对硬件造价有影响。
直接影响ALU、数据总线以及存储字长的位数。

存储容量
主存容量、辅存容量

运算速度
吞吐量和响应时间
主频和CPU时钟周期
CPI:执行一条指令所需的时钟周期数。
CPU执行时间:指运行一个程序所花费的时间。取决于:1、主频;2、CPI;3、指令条数
MIPS:每秒执行多少百万条指令。
MFLOPS:每秒执行多少百万次浮点运算。(标志系统性能最有用参数)
GFLOPS:每秒执行多少十亿次浮点运算。
TFLOPS:每秒执行多少万亿次浮点运算。

二、数据的表示和运算

汉字的编码

①输入码(外码):区位码、国际码、拼音码、电报码、表形码等
②内码:0、1(机器码)
③输出码:汉字字形码
汉字编码包括汉字的输入编码、汉字内码、汉字字形。用两个字节表示一个汉字,每个字节用七位码。区位码是4位十进制数,前2位是区码,后2位是位码。
国标码是将十进制的区位码转换为十六进制后,再在每个字节上加上20H。为了方便计算机区分中文字符和英文字符,将国标码两个字节的最高位都改为“1”,这就是汉字内码(十六进制)。

字符串的存放

小端模式:按先存储低位字节、后存储高位字节的顺序存放字符串的内容。
大端模式:按先存储高位字节、后存储低位字节的顺序存放字符串的内容。

校验码

奇偶校验码:只能检出一位错误,不能确定出错的位置;只能检验处奇数位错误,不能检测出偶数位错误。
奇校验码:整个校验码中“1”的个数为奇数。
偶校验码:整个校验码中“1”的个数为偶数。
海明(汉明)检验码:可检出错位位置
循环冗余校验(CRC)码:可检出错误位置(通过除法运算)

原码、反码、补码、移码

1、原码、补码、反码三种机器数的最高位均是符号位。
2、当真值为时,原码、补码、反码的表示形式均相同,即符号位用“0”表示,数值部分与真值相同。
当真值为时,原码、补码、反码的表示形式不同,但其符号位都用“1”表示,而数值部分补码是原码的“求反加1”,反码是原码的“每位求反”
3、同一个真值的移码和补码仅差一个符号位
4、不同机器数表示±0时,其形式不同。
[+0]原≠[-0]原, [+0]反≠[-0]反,[+0]补=[-0]补,[+0]移=[-0]移
5、当机器字长确定后,补码比原码、反码能多表示一个负数。
6、移码只能表示整数,用它表示浮点数的阶码时,能方便地判断阶码的大小。

补码定点数的加/减运算

基本公式:(将符号位和数值部分一起参加运算,并且将符号位产生的进位自然丢掉即可)
加法:[A]补+[B]补=[A+B]补
减法:[A-B]补=[A]补+[-B]补([-B]补由[B]补连同符号位在内,每位取反,末尾加1

溢出判断:
①用一位符号判断溢出:实际参加操作的两个数符号相同,结果又与原操作数的符号不同,即为溢出。
②用两位符号位判断溢出:当2位符号位不同时,表示溢出,否则,无溢出。不论是否发生溢出,高位(第1位)符号永远代表真正的符号。(变形补码,运算时多一位)
01正溢出(上溢);10负溢出(下溢)
③采用一位符号位根据数据位的进位情况判断溢出。如果符号位的进位与最高数位的进位不同,则表示结果溢出。

浮点数的加/减运算

(1)对阶:两个数的小数点位置对齐(使阶码相等),两个数的阶码相减求阶差,使小阶的尾数向右移位,每右移一位,阶码加1。

(2)尾数求和:将对阶后的两个尾数按定点加(减)运算规则进行运算。

(3)规格化:补码规格化形式为[S]补 00.1××××;[S]补 11.0××××。
左规:尾数出现00.0××××或11.1××××时,需左规。尾数左移一位,阶码减1。
右规:尾数出现01.××××或10.××××时,表示尾数溢出,但在浮点运算中不算溢出,可通过右规处理。尾数右移一位,阶码加1。

(4)舍入:在对阶和右规的过程中,可能会将尾数的低位丢失,引起误差,影响精度,用舍入法来提高尾数的精度。
①“0舍1入”法:被移去的最高位数值位为0,则舍去;被移去的最高数值位为1,则在尾数的末位加1。又溢出时,再右规……
②“恒置1”法:不论丢掉的最高数位是“1”还是“0”,都使尾数末位恒置“1”。
两种方法同样都有使尾数变大和变小两种可能。

(5)溢出判断(是否溢出由阶码的符号决定)
上溢:阶码[j]补=01,×××,作溢出处理
下溢:阶码[j]补=10,×××,按机器零处理

浮点数的表示范围

在这里插入图片描述
上溢:当浮点数阶码大于最大阶码时,上溢,机器停止运算,进行中断溢出处理。
下溢:当浮点数阶码小于最小阶码时,下溢,溢出的数绝对值很小,通常将位数各位强制为0,按机器零处理,机器可以继续运行

8位二进制整数范围

原码、反码:-127—+127
补码、移码:-128—+127

标准IEEE 754标准

现代计算机中,浮点数一般采用IEEE制定的国际标准:
在这里插入图片描述
常用的浮点数有三种:在这里插入图片描述
阶码用移码表示,短实数、长实数、临时实数的偏移量用十六进制数表示分别为7FH(127)、3FFH、3FFFH

尾数部分通常是用原码、规格化表示,即非“0”的有效位最高位总是“1”,但在IEEE标准中,有效位呈如下形式:1▲ff…ffff,其中▲表示假想的二进制小数点。在实际表示中,对短实数和长实数,这个整数位的1省略,称隐藏位;对于临时实数不采用隐藏位方案。

规格化的短浮点数真值: ( − 1 ) S × 1. m × 2 E − 127 (-1)^{S}×1.m×2^{E-127} (1)S×1.m×2E127

三、存储器层次结构

存储器的层次化结构

存储器主要性能指标:速度、容量、每位价格(位价)
一般来说,速度越高,位价越高;容量越大,位价越低;容量越大,速度越低。

在这里插入图片描述
层次结构主要体现在缓存-主存和主存-辅存这两个层次上。

缓存-主存:主要解决CPU和主存速度不匹配问题
(由硬件自动完成)数据调动对任何程序员透明。

主存-辅存:主要解决存储系统的容量问题
(由硬件和操作系统共同完成)数据调动对应用程序员透明。

动态RAM的刷新

一般取2ms,对动态RAM的全部基本单元电路必作一次刷新,称为刷新周期,又称再生周期。刷新的单位是行,仅需要行地址。

集中刷新:在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作,称“死时间”或“死区”。(全部一起刷)

分散刷新:对每行存储单元的刷新分到每个存取周期内完成。优点:没有死区。缺点:存取周期加长,整个系统速度降低。(一个个刷)

异步刷新:是前两种方式的结合,既缩短“死时间”,又充分利用最大刷新时间间隔为2ms的特点。(一行行刷)

一行行刷的平均刷新时间:
行数 = 芯片容量 / 每行存储单元个数
平均刷新时间 = 间隔最长 / 行数

动态RAM与静态RAM的比较

在这里插入图片描述

存储容量的扩展

(1)位扩展
增加存储字长。例如:2片1K4位的存储芯片可组成1K8位的存储器。
注意:其中一片的数据线作为高4位D7-D4,另一片的数据线作为低4位D3-D0。

(2)字扩展
增加存储器字的数量。例如:2片1K8位的存储芯片可组成一个2K8位的存储器。
注意:两片都连地址线A0-A9。(从低位连起)

(3)字、位扩展
既增加存储字的数量又增加存储字长。

双口RAM和多模块存储器

为了提高CPU访问存储器的速度,可以采用双端口存储器(空间并行)、多模块存储器(时间并行)等技术,都属于并行技术。

多模块存储器

为了提高访存速度。(CPU速度比存储器快,同时从存储器中取出n条指令,可以充分利用CPU资源,提高运行速度)
(1)单体多字系统
在一个存取周期内,从同一地址取出n条指令,然后逐条将指令送至CPU执行,即每隔1/n存取周期,主存向CPU送一条指令,增大了存储器的带宽,提高了存储器的工作速度。
例如:从同一地址取出4条指令,为单体四字结构,每字W位。按地址在一个存取周期内可读出4*W位的指令或数据,使主存带宽提高到4倍。
缺点:指令和数据在主存内必须是连续存放的,一旦遇到转移指令,或者操作数不能连续存放,这种方法的效果就不明显。

(2)多体并行系统
采用多提模块组成的存储器。每个模块可以并行工作,也可以交叉工作。
低位交叉编址
程序连续存放在相邻体中(交叉存储)。低位地址表示体号,高位地址表示体内地址。
地址的低n为片选。
优点:相邻地址单元的数据放在不同组,各组可以并行工作,能较好提高存储器的带宽。
缺点:某一组出现故障,会影响整个存储器的正常工作。
高位交叉编址
按体内地址顺序存放(顺序存储)。高位地址表示体号,低位地址表示体内地址。
地址的高n位片选。
优点: 某一组的故障不影响其他组,且容易通过添加模块来扩充容量。
缺点:相邻地址单元的数据放在同一组存储单元,各组间串行工作,不利于提升存储器的带宽。
在这里插入图片描述

Cache计算

(h越接近1越好,ta越接近tc越好)
在这里插入图片描述

Cache中主存块之间的映射方式

由主存地址映射到Cache地址称为地址映射。

(1)直接映射
主存数据只能装入Cache中的唯一位置。若这个位置已有内容,则产生块冲突,原来的块将无条件地被替换出去(无需使用替换算法)。
映射关系 i = j m o d      2 c i=j \mod\ 2^{c} i=jmod 2c
地址结构

主存字块标记Cache字块地址字块内地址

优点:实现简单,只需利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中。
缺点:不够灵活,降低命中率。

(2)全相联映射
允许主存中每一字块映射到Cache中的任何一块位置上。可以从已被占满的Cache中替换出任一旧字块。
通常采用昂贵的“按内容寻址”的相联存储器来完成。
地址结构

主存字块标记字块内地址

优点:灵活,命中率高,缩小了块冲突率,空间利用率高。
缺点:地址变换速度慢,实现成本高

(3)组相联映射(上述两种映射的折中)
将Cache空间分成大小相同的组,主存的一个数据块可以装入到一组内的任何一个位置(组间采取直接映射,组内采取全相联映射)。
映射关系:i=j mod Q (i是缓存的组号,j是主存的块号,Q是Cache的组数)Q=1是变为全相联映射
地址结构

主存字块标记组地址字块内地址

Cache中主存块的替换算法

(1)先进先出(First-In-First-Out,FIFO)算法
(2)近期最少使用(Least Recently Used,LRU)算法
(3)随机法

磁盘存储器

磁盘寻址的最小单位是扇区
道密度:沿磁盘半径方向单位长度的磁道数。
位密度:单位长度磁道上记录二进制的位数。
平均寻道时间:从一个磁道转移到另一个磁道的平均时间。(全部寻道时间的一半)
平均等待时间:旋转等待的平均时间。(转一周时间的一半)
一扇区的传送时间:T=1 / (转速×扇区数)
存取一个扇区的时间:T=每个扇区位数 / (转速×扇区数)
平均存取时间=平均寻道时间 + 平均等待时间 + 传输时间
每个记录面的磁道数:K=[(外直径-内直径)/2]*磁道密度
盘组格式化容量:C = 记录面数 * K * 每个扇区字节数 * 扇区数
盘组非格式化容量:CN = 记录面数 * K * 最内圈磁道周长 * 内层位密度

其他

WE 为写允许信号:低电平0为写,高电平1为读
CS为片选信号:低电平0有效
借位/进位C:1=结果的最高位发生了进位,0=结果的最高位未发生进位
溢出标志位V:1=溢出,0=没有溢出

四、指令系统

指令的寻址方式

寻址方式有效地址访存次数(不计取指令)优点缺点
立即寻址A是操作数0获取操作数最快的方式,不必访问存储器。A的位数限制了立即数的范围。
直接寻址EA=A1寻找操作数比较简单,指令执行阶段对主存只访问一次A的位数限制了操作数的寻址范围;修改A的值才能修改操作数的地址。
隐含寻址程序指定0有利于缩短指令字长。需增加存储操作数或隐含地址的硬件。
间接寻址(一次)EA=(A)2与直接寻址相比,扩大了操作数的寻址范围;便于编制程序(方便地完成子程序返回)。指令的执行阶段需要访存两次(一次间接寻址)或多次(多次间接寻址),致使指令执行时间延长。
寄存器寻址EA=Ri0无须访存,减少了执行时间(第二快);指令字较短,节省存储空间。寄存器价格昂贵,计算机中寄存器个数有限。
寄存器间接寻址(一次)EA=(Ri)1比间接寻址少访存一次,速度更快。指令的执行阶段还需要访问主存。
基址寻址EA=A+(BR)1扩大操作数的寻址范围。在多道程序中极为有用。可用于编制浮动程序偏移量(形式地址A)的位数较短。
变址寻址EA=A+(IX)1扩大操作数的寻址范围。主要用于处理数组问题,适合编制循环程序。**偏移量(变址寄存器IX)**的位数足以表示整个存储空间。
相对寻址EA=A+(PC)1转移地址不固定,随PC值的变化而变化,有利于编写浮动程序
堆栈寻址

在这里插入图片描述

CISC和RISE

序号复杂指令系统计算机(CISC)精简指令系统计算机(RISC)
1指令系统复杂庞大,指令数目一般为200条以上。选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现。
2指令的长度不固定,指令格式多,寻址方式多指令长度固定,指令格式种类少寻址方式种类少
3可以访存的指令不受限制只有取数/存数(Load/Store)指令访问存储器,其余指令的操作都在寄存器内完成。
4各种指令使用频度相差很大CPU中有多个通用寄存器。
5各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期。
6控制器大多数采用微程序控制控制器采用组合逻辑控制,不用微程序控制。
7难以用优化编译生成高效的目标代码程序。采用优化的编译程序

二地址指令操作数物理位置的三种形式

寄存器——寄存器型(RR型);
寄存器——存储器型指令(RS型);
存储器——存储器型(SS型)。

五、中央处理器CPU

CPU基本结构

在这里插入图片描述

指令执行方案

(1)单指令周期
对所有指令都选用相同的执行时间来完成。
下一条指令只能在前一条指令执行结束之后才能启动。(串行)
指令周期取决于执行时间最长的指令的执行时间。

(2)多指令周期
对不同类型的指令选用不同的执行步骤来完成。
下一条指令只能在前一条指令执行结束之后才能启动。(串行)
可选用不同个数的时钟周期来完成不同指令的执行过程。

(3)流水线方案
指令之间可以并行执行的方案。
追求的目标是力争在每个时钟脉冲周期完成一条指令的执行过程。
通过在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。

时钟周期:计算机操作的最小单位,由计算机主频确定,是主频的倒数。
工作脉冲:控制器的最小时间单位,起定时出发作用,一个时钟周期有一个工作脉冲。
机器周期:即CPU周期,包含若干个时钟周期。
指令周期:可由多个CPU周期组成。
存取周期:存储器进行两次独立的存取器操作(连续两次读或写操作)所需最小间隔时间。

存储字长:存放在一个存储单元中的二进制代码位数
机器字长:CPU一次能处理数据的位数。
指令字长:一般去存储字长的整数倍。

微指令格式

(1)水平型微指令:直接编码、字段直接编码、字段间接编码和混合编都是。
特点:一条水平型微指令定义并执行几种并行的基本操作。
在这里插入图片描述
(2)垂直型微指令:采用类似机器指令操作码的方式,设置操作码字段μOP
特点:一条垂直型微指令只能定义并执行一种基本操作。
在这里插入图片描述
(3)混合型微指令:在垂直型的基础上增加一些不太复杂的并行操作。指令较短,仍便于编写;微程序也不长,执行速度加快。

优缺点水平型微指令垂直型微指令
优点微程序短,执行速度快微指令短、简单、规整,便于编写微程序
缺点为指令长,编写微程序较麻烦微程序长,执行速度慢,工作效率低

比较:

比较水平型微指令垂直型微指令
并行操作能力
效率
灵活性
执行速度
微指令字长
微程序
掌握难易难以掌握容易掌握(因为与指令类似)

硬布线控制器、微程序控制器

比较硬布线控制器(组合逻辑控制器)微程序控制器
工作原理微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即使产生微操作控制信号以微程序的形式存放在控制存储器中,执行指令时读出即可
执行速度慢(访问控制存储器)
规整性烦琐、不规整较规整
应用场合RISC CPUCISC CPU
易扩充性困难(不能修改)易扩充修改

微指令基本组成

控制存储器CM:是微程序控制器的核心部件,用于存放微程序,可用ROM构成。

微指令寄存器CMDR:用于存放从CM中取出的微指令,位数同指令字长相等。

微地址形成部件:产生初始微地址和后继微地址,以保证微指令的连续执行。

微地址寄存器CMAR:接受微地址形成部件送来的微地址,为在CM中读取指令作准备

地址转移逻辑:在有分支转移时形成新的后继地址。

机器指令与微指令的关系

每条机器指令编写成一个微程序;
每一个微程序包含若干条微指令;
每一条微指令对应一个或几个微操作命令。

影响流水线性能的因素

三种:结构相关、数据相关、控制相关
数据相关:写后读(RAW)、读后写(WAR)、写后写(WAW)
若发生数据相关冲突:如果在硬件设计上采用向前传送技术加以改进,则可不延迟。

流水线性能(吞吐率、加速比、效率)

在这里插入图片描述

六、总线

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

集中仲裁方式

(总线仲裁还有另一种方式:分布仲裁方式)
(1)链式查询
有3根控制总线用于总线控制(BS总线忙、BR总线请求、BG总线同意
总线同意信号BG是串行地从一个I/O接口送到下一个I/O接口。(离总线控制部件最近的设备具有最高的优先级)

(2)计数器定时查询
比链式查询多了一组设备地址线,少了一根总线同意先BG。
特点:
①计数从“0”开始,一旦设备的优先次序被固定,设备的优先级就按0、1、2、…的顺序降序排列,固定不变
②计数从上一次计数的终止点开始,即使一种循环方法,此时设备使用总线的优先级相等
③初始值可由程序设置,优先次序可以改变

(3)独立请求方式
每一台设备均有一对总线请求先BRi和总线同一线BGi。
总线控制部件中有个排队电路,可根据优先次序确定哪一台设备的请求。
在这里插入图片描述

总线操作和定时

1、同步定时方式
通信双方由统一时标控制数据传送称为同步通信。
优点:规定明确、统一,模块间的配合简单一致。
缺点:主、从模块都用同一时限,造成对各不相同速度的部件而言,必须按最慢的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。
适用于:总线长度较短、各部件存取时间比较一致的场合。
特点:总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率。

2、异步定时方式
允许各模块速度不一致,没有公共的时钟标准,不要求所有部件严格的统一操作时间,采用应答方式(又称握手方式)
应答方式可分为三种类型:不互锁、半互锁、全互锁
(1)不互锁方式(如:CPU向主存写信息)
(2)半互锁方式(如:多机系统中,某个CPU需访问共享存储器)
(3)全互锁方式(如:网络通信中,通信双方)

总线标准

1、PCI总线(外部设备互连总线)
高性能的32位或64位总线,专为高度集成的外围部件、扩充插板和处理器/存储器系统而设计的互联机制。目前常用的PCI适配器有显卡、声卡、网卡等。
2、USB总线(通用串行总线)
是一种连接外部设备I/O总线标准,属于设备总线。具有即插即用、热插拔等优点,有很强的连接能力

总线带宽(单位时间内总线上传输数据的位数)

总线宽度:一个总线周期中并行传输的字节
总线带宽 = 总线宽度 * 总线时钟频率

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论 5

打赏作者

aching_

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值