考点:
1.冯诺依曼计算机中指令和数据都以二进制的形式存放在存储器中,CPU区分它们的依据是:指令周期的不同阶段
2.衡量标量机的性能:MIPS每秒执行多少百万条指令。描述数运算速度的是MFLOPS每秒执行多百万浮点数运算
3.MIPS=主频/CPI
4.PFLOPS:每秒一千万亿次浮点运算
5.机器字长是CPU内部用于整数运算的数据通路的宽度,所以CPU内部进行数据运算,存储和传送的部件,这些部件的宽度基本上要一致才能互相匹配,所以位数一定和机器字长相同的是:ALU,通用寄存器
1.发展历程:电子管-》晶体管-》中小规模集成电路-》超大规模集成电路
2.系统组成:控制器,运算器,存储器,输入设备,输出设备
3.性能指标(常考部分):
机器字长:计算机一次整数运算所能处理的二进制数据的位数
数据通路带宽:数据总线一次并行所能传递信息的位数
主存容量:计算机主存所能存储信息的最大容量
以下为运算速度的性能指标:
吞吐量:系统在单位时间处理的请求的数量
响应时间:从用户提交请求到系统首次产生响应并且获得其所需要结果需要的时间
时钟周期:节拍脉冲或者T周期,是CPU最小的时间单位
主频:计算机内部主时钟的频率,时钟周期的倒数
CPI:执行一条指令需要的时钟周期
执行时间:运行一个程序需要花费的时间
MIPS:每秒执行多少百万条指令
FLOPS:每秒执行多少次浮点运算(MFLOPS:每秒百万浮点操作 GFLOPS:每秒10亿次浮点运算,1GFLOPS=1000MFLOPS)
CPU执行时间:执行一段程序所占用的CPU时间,CPU执行时间=CPU时钟周期数×CPU时钟周期长
4.计算机系统=硬件+软件
5.摩尔定律:集成电路上的晶体管每18个月就会翻一番
6.按照指令流和数据流可以分为四种类型的系统:其中多指令流单数据流的系统(MISD),实际上不存在
1.冯诺依曼机:原理:程序存储:按照地址访问并顺序执行指令
指令和数据(以二进制的方式)以同等地位存储在存储器中,按地址寻访;其中指令由操作码和地址码组成,按道理,软件可以完成的任务,硬件都可以完成
早期冯诺依曼机以运算器为中心,现在计算机以存储器为中心
2.计算机硬件系统五大组成部分
一:输入设备:将外部信息以计算机能读懂的方式输入进来:鼠标,键盘等
二:输出设备:将计算机处理的信息以人可以接受的方式输出:屏幕,打印机
三:存储器:存储器分为主存储器(内部存储器,CPU可以直接访问)和辅存储器(外部存储器,CPU不能直接访问,需要导入信息到主存才能被CPU访问)
主存:存储体,MAR(地址寄存器),MDR(数据寄存器)
这里解释CPU(中央处理器):CPU包含运算器和控制器以及寄存器,寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。
**主存-cache-寄存器结构**:
1.主存包含的范围非常广,一般分为只读存储器(ROM)、随机存储器RAM))。
2.寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。
3.Cache :即高速缓冲存储器,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。***所以cache容量大小不影响高速缓存系统的容量,因为不管多大都只是主存的副本,只能由主存决定***。**总结:大致来说数据是通过主存-Cache-寄存器,Cache缓存则是为了弥补CPU与内存之间运算速度的差异而设置的的部件。**
四:运算器(实现算术运算:加减乘除,逻辑运算:与或非)
核心ALU算术逻辑单元
ACC:累加器,存放运算结果或操作数—》加减乘除都可
MQ:乘商寄存器,在乘除运算时存放操作数或运算结果
X:通用操作数寄存器:用于存放操作数
五:控制器:协调各部件工作
IR:指令寄存器:存放当前要执行的指令
PC:程序计数器:存放下一条要执行的指令的地址,自动加一功能
CU:控制单元:分析指令,并且给出控制信号
过程:从主存中取出指令存放到IR,PC自动加一,CU分析指令并且给出控制信号指挥其他部件执行指令
CPU中至少六类寄存器:
指令寄存器IR,程序计数器PC,累加器AC,地址寄存器AR,数据寄存器DR,程序状态字寄存器PSW
DR:数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也将它们暂时存放在数据寄存器中
AR:保存CPU当前所访问的主存单元的地址(单向)。
PSW:程序状态字寄存器用来保存由算术/逻辑指令运行或测试的结果所建立起来的各种条件码内容,如运算结果进/借位标志(CF)、运算结果溢出标志(OF)、运算结果为零标志(ZF)、运算结果为正负标志(SF)等,这些标志位通常用1位触发器来保存。
ALU:取决于具体的cpu架构,有的架构中ALU具有完整结构,包含寄存器且挂在内部总线上,应认为属于寄存器,而有些架构的ALU指单纯的组合逻辑,应认为不属于寄存器
主机:CPU+主存
外设:除了主机外的其他硬件装置(外存和IO设备等)统称外部设备,简称外设。
CPU和主存连接使用三大总线:
1.地址总线(Address Bus):地址总线用于传输CPU发送到主存的内存地址。它确定了CPU要读取或写入的内存单元的位置。地址总线的宽度决定了CPU可以寻址的内存空间大小。
2.数据总线(Data Bus):数据总线用于在CPU和主存之间传输数据。它传递读取或写入的数据。数据总线的宽度决定了CPU可以一次传输的数据量。
3.控制总线(Control Bus):控制总线用于传输控制信号,以控制数据和地址的传输。它包括各种控制信号,如读写信号、时钟信号、中断信号等。
这些总线共同工作,使得CPU能够与主存进行数据的读取和写入操作。

一:机器语言:也叫二进制代码语言,是计算机唯一可以直接识别和执行的语言
二:汇编语言:
三:高级语言:
高级语言—》汇编语言:过程叫编译
汇编语言—》机器语言:过程叫汇编
编译是高级语言转换为可执行程序的时候,需要先对完整的源程序做词法分析、语法分析等一系列检测,所有语法都没有问题后,一次性把所有源代码翻译,这要求源程序中不能有任何语法错误,否则将不会生成可执行程序,直到所有语法错误都改正,这种转换的方式称为编译,C、C++等语言就是采用了编译方式。
解释程序:一边翻译一边执行,直接将高级语言翻译到机器语言,与编译器(Compiler)相比,高级语言解释程序在执行时不需要生成可执行文件,而是直接将源代码转换成机器语言并立即执行。
编译可以将高级语言翻译成为汇编语言或机器语言,汇编只能是汇编语言到机器语言。
翻译程序包括编译程序和解释程序,编译程序会产生目标程序,解释程序不会生成目标程序
4.四大字长
机器字长:计算机进行一次整数运算所能够处理的二进制的位数,机器字长一般等于内部寄存器的大小,代表了计算机计算的精度。
存储字长:一个存储单元存储二进制代码的长度,等于MDR的的位数,必须是字节的整数倍
指令字长:一个指令的大小,一般是存储字长的整数倍
数据字长:数据总线一次传输数据的位数,可以不等于MDR,等于数据通路带宽
考点:
1.冯诺依曼使用二进制 编码的主要原因:二进制运算规则简单,制造两个稳态的物理器件比较容易,便于用逻辑门电路实现算术运算
2.机器数:把正负号数字化,存到机器中;数据 在内存中以补码的形式存在
3.不管正负的真值进行加法运算,都可转换为补码的形式采用加法的格式得出结果
4.计算时候:小范围转大范围:比如int 和short进行运算时,int32位,short16位,计算时,short转成32位进行计算;符号位为1,前面填充1,符号位为0,前面填充0
5.补码的范围-128到127
6.将一个负数的补码unsigned化,由signed类型转化为unsigned类型,符号位成为数据的一部分,即负数转化为无符号数;若unsigned转化成为signed,此时无符号数又变成有符号数,最高位成为符号位,数的大小又改变了
7.计算机字长32位:按字节编址,一个存储位置可以放两位十六进制的数,十六进制一位数,由4位二进制表示
8.小端存储:一个字中的高位字节存放在内存中这个字区域的低地址处;就是反着来
9.逻辑位移:对象是无符号数:左移右移动空位都补0,,算术位移:对象是有符号数补码,正数的都是补0,负数的补码符号位不变,右移空位补符号位,左移空位补0,负数原码补0,反码补1
10.x补-y补=x补+(-y)补;-y的补码是连同符号位取反加一;最终减法变成加法;补码最高位进位和符号位值不相同产生溢出,OF=1;借位标志:CF,R1和R2相减时,R1大于R2,借位标志为0,没有产生借位
11.按边界对齐,不足补空,存储一个数必须用掉一个计算机字长
12.IEEE754标准中,偏置值是127
13.因为原码规格化---->消除尾数无效0,左规多次,使得尾数最高位为1;
补码规格化:因为溢出(双标志位01或者10)----->右规一次,使得符号位和最高位一定相反
14.原码尾数规格化后,尾数最高位一定是1,补码尾数规格化后,尾数最高位和符号位一定相反
16.两个浮点数相加,必须阶码对齐,小阶码对大阶码,尾数右移动
15.双符号位判断溢出;如果双符号位不同则溢出,01为正溢出,10为负溢出;浮点数,阶码有双符号位,尾数也有双符号位,尾数溢出有一次右归的机会避免溢出,此时阶码加一,判断溢出通过右归之后阶码的双符号位

16.浮点数加减运算:对阶操作不会引起阶码的上溢出或下溢出;右规和尾数舍入都可以引起阶码上溢;左规时可能引起阶码下溢出;尾数溢出时结果不一定溢出
17.最小规格化正数:1.0*2的负126次;移码的取值范围1到254;偏置值是127;取1的时候,得到阶码值是1-127=-126
18.IEEE754一共32位;数符位1;阶码8;尾数23位;可以表示的最大整数:数符取0;阶码取最大值127;尾数部分隐藏了整数部分1;23位尾数全取1时尾数最大,为2-2的负23次,此时浮点数的大小为(2-2的负23)*2的127次=2的128次-2的104次
19.机器数若为浮点数或者int型;若是浮点型数符为1表示负数,尾数隐藏最高位为1,阶码8位

1.真值和机器数:真值是日常生活中的数,实际带正负号的数字;机器数:把正负号数字化,存到机器中
2.十进制转化为其他进制
整数部分:除积取余,取的是整数的低位部分,剩下的整数一直继续除,直到除成小数,一般就是1/2
小数部分:乘积取整,取的是小数的高位部分,剩下的小数部分继续乘,直到乘成1
3.其他进制转化为十进制:等于各个数码位和对应权位的乘积之和1
4.二进制,八进制,十六进制之间的相互转化
8进制对应3位2进制,16进制对应4位2进制,若八进制与十六进制之间转化,可以以二进制为中间项进行转化
5.各进制的常见书写方式
二进制:后缀:B 八进制:下标一个8 十六进制:后缀H 前缀OX 十进制:后缀D
6.三种码:8421码,余三码,2421码
以上三种都属于BCD码,以四个二进制表示一位十进制中0-9,使得二进制十进制快速转换。
8421码:8,4.2,1,对应着相应的权值,超过0-9的,加0110进行修正(强制向高位进一)
余三码:8421码加0011。
2421码:2,4,2,1对应着每一位的权值,0-4时最高位为0,5-9时最高位为1.
8421,2421都是有权码,余三码是无权码
7.字符和字符串
英文字符(有26个)在计算机中ASCII表中的存储:
大写字母:65-90 小写字母:97-122;其中以8位二进制的形式进行存储
比如a在存储单元中的内容:0110 0001
字符串:
总体上:从低地址到高地址逐个字符存储,以’/0’结尾,'/0’的存储形式是00H,所以字符串存储很多情况以00H作为结尾标志,按字节编址(存储单位是1B=8bit=8个二进制)
在内部的有效字段上分为大端存储和小端存储
大端存储:有效最高字节存储在低地址
小端存储:有效最高字节存储在高地址
比如1234H存储 :大端 12H 34H 小端:34H 12H
区分地址的低地址,高地址和二进制的低位和高位:地址从左到右是低到高,二进制是从左到右是高到低
8.校验码

一:奇偶校验码,增加一个奇偶校验为使得码距为2,可以检查1位错误
奇校验码:整个校验码中1的个数为奇数个,如果有效信息位里面1为偶数个,则校验位为1,如果有效位为奇数个,则校验位为0,保持总体校验码中1的个数为奇数
偶校验码:整个校验码中1的个数为偶数个,与上面一致
通过异或进行判断是否出错:如果整个校验码异或结果为1,则出错

二:海明校验码

1.算数逻辑单元和电路基本知识以及基本逻辑运算和全加器
一:算术逻辑单元
**功能:**算术运算,逻辑运算,辅助功能(移位,求补)

控制信号K:由控制单元发出(CU);控制单元负责解析指令,比如这个运算是什么类型
上面是抽象图,下面是具体图像


上面分别是与或非三种门电路

二:一位全加器
一位全加器:是最基本的加法单元
本位:指的是当前运算的那一位
本位的和:包括本位对应的两个数的和以及来自低位向本位的进位

屏蔽内部实现细节后:

2.补码加减运算器和标志位的生成
一:补码加减运算器
反码,补码和源码:正数的反码、补码和其源码相同,负数的反码是其源码,除符号位外其他位取反;负数的补码是取其反码后加1。

总结:减一个整数的补码就是加他负数时的补码
二:标志位的生成

对有符号数的标志位: OF(溢出标志位),SF(符号标志位,结果为负数为1),ZF(零标志位)
对于无符号数的标志位:CF(进位/借位标志,表示无符号数的溢出,溢出为1),ZF(零标志位)
3.定点数的移位运算
一:算术移位
算数移位:算术移位的对象是有符号数,在移位的过程中符号位保持不变

二:逻辑移位
逻辑移位:逻辑移位可以看作是对无符号数的算数位移
逻辑右移:高位补零,低位舍弃
逻辑左移:低位补零,高位舍弃

三:循环移位
循环移位分为两种:带CF标志位(大循环)和不带标志位的(小循环)
循环移位的特点:移出的数位又被移入到数据中,是否有进位要看有没有将进位标志加入循环位移,循环位移十分适合将数据 的低字节和高字节进行互换。

4.定点数的乘法
一:原码一位乘法
当前参与运算的乘数的这一位是1,则ACC加上被乘数;如果当前位是0,则ACC加上0

进行下一位运算时候,让ACC和MQ中的数据统一逻辑右移一位

手算模拟:

二:补码一位乘法(booth算法,考察重点)
因为机器做加减法时采用的是补码,所以做乘法不如直接用补码计算。
规则:





5:强制类进程转换和边界对齐存储
长整数变为短整数:会丢失精度,高位截断,保留低位
短整数变为长整数:负数会在原符号i为和原有的数值上添加1,正数直接填0


二:边界对齐存储
对于机器字长为32位的计算机,对于边界对齐的 存储,半字地址一定是2的整数倍,字地址一定是4的整数倍数,这样以空间换时间,无论所取数据是字节还是半字还是字,都可以一次取出,当存储的数据不满足上述要求时,通常填充空白字节使其符合要求

字节<半字<字:半字就是机器字长二进制长度的一半
定点数:小数点不变的数,一般只有整数部分或只有小数部分的用定点数表示,称为定点整数,定点小数,浮点数:小数点可以变动的数,一般,既有整数部分又有小数部分,选择用浮点数表示。
一:浮点数的表示格式

尾数通过数符指明正负性,同时阶码指明了小数点要向前(阶码为负数)还是向后(阶码为正)移动几位
阶符指出阶码的正负性,数符指出尾数的正负性
二:浮点数的规格化
为了提高运算的精度,需要充分利用尾数的有效位数,通常采用浮点数规格化的形式,即规定尾数的最高位必须是一个有效值(不能是无效的0)。
**左规:**将尾数算术左移一位,阶码就减一,左规可能要进行多次

右规:当浮点数的运算结果出现溢出(双符号位为01或10),将尾数算术右移以为,阶码加一的方法称为右规,右规只需要进行一次。
采用双符号位检测溢出的方法:在运算时,两个符号位同时参加运算,结果中如果两个符号位不同,则表示产生了溢出.若符号为01,则表示运算结果大于允许取值范围的最大正数,称为正溢出;若符号位为10,则表示运算结果是负数,其值小于允许取值范围的最小负数,称为负溢出.两个符号位的最高位仍为正确的符号.


总结:因为原码规格化---->消除尾数无效0,左规多次,使得尾数最高位为1;
补码规格化:因为溢出(双标志位01或者10)----->右规一次,使得符号位和最高位一定相反
三:IEEE754标准
移码:是在补码的基础上将符号位取反得到的
移码=真值+偏置值

这个标准的偏置值为127
该标准下:全0和全1是有特俗意义的,所以阶码表示真值的范围应该是-126到127
尾数:尾数部分看起来是23位,实际上是24位,1.M暗含一个1


四:浮点数的加减运算



1.十六进制相加

2.8421码的计算(不能直接算,会有溢出)

3.ASCII码最左边为0

考点:
1.采用随机存取方式:EPROM,DRAM,SRAM
2.DRAM是电容存储,必须隔一段时间就刷新一次,若存储单元未被刷新,则存储的信息就会丢失,SDRAM表示同步动态随机存储器
3.RAM和ROM都采用随机存取方式进行信息访问,RAM是易失性存储器,需要刷新,ROM是非易失性存储器,不需要刷新,一般Cache采用高速的SRAM制作,比ROM速度快很多
4.闪存是EPROM,可读可写,使用的是MOS管的浮栅上有无电荷来存储信息,闪存依旧是ROM的一种,写入时必须先擦除原有数据,写速度比读速度慢不少,是一种非易失性存储器,采用的是随机访问方式,可替代计算机外部存储器
5.DRAM采用地址复用技术,如果是4M8,按道理是22根地址线,但是复用了,所以是11根地址线
6.交叉存储编址会产生访存冲突:模块序号=访存地址%存储器交叉模块数 比如四体交叉编址存储器:那么存储器交叉模块数就是4
7.主存容量的扩展:1.位扩展法:CPU数据线数和存储芯片的数据位数不一样,必须对存储芯片扩位,多个存储器对字长进行扩充,增加存储字长,使其数据位数和CPU数据线数相等;连接方式是将多个存储芯片的地址端,片选端和读写控制端相应并联,数据端分别引出
2.字扩展法:增加存储器中字的数量,而位数不变,字扩展将芯片的地址线,数据线,读写控制线相应并联,由片选信号来区分各芯片的地址范围
8.**串行访问存储器:**对物理位置先后顺序寻址,包括顺序存取存储器(磁带),直接存取存储器(磁盘)
9.cacahe-主存:解决CPU和主存之间速度不匹配的问题
主存和辅存:解决存储系统容量的问题
10.动态DRAM主要用于内存
静态SRAM主要用于cache
11.MAR的位数决定了主存地址空间的大小,MAR能保证能访问到整个主存地址空间,和主存容量没有关系,比如主存储器32B,主存地址空间大小64MB,那么跟着主存地址空间大小64MB判断MAR的位数
12.4000H-5FFFH表示的地址空间大小:5FFF-4000+1=2000H=216的三次方 =2的13次
13.DRAM地址复用技术是在存储阵列的行和列相等的情况下,地址引脚是原来的一半,不然的话地址引脚=log2(max(行,列));DRAM刷新是行刷新,所以当行和列的值接近的时候,减少刷新开销,又是行刷新,所以行列接近,但是行要小一点
14.磁盘存取时间:寻道时间(一般会给出)+延迟时间(磁盘转半圈的时间)+传输时间(要访问的数据量/磁盘传输率);具体情况具体分析,一般根据题目给的各种时间加上+磁盘转半圈的时间+传输时间(五花八门的各种传输情况)
15.RAID0方案是无冗余和无校验的磁盘阵列,而RAID1到RAID5方案均是加入了冗余(镜像)或校验的磁盘阵列,因此,能够提高RAID可靠性的措施主要是对磁盘进行镜像处理和奇偶校验
16.磁盘的最小读写单位是扇区,不是一字节,磁盘按块存取
17.指令Cache和数据Cache分离的主要目的:取值和取数分别在不同的Cache中寻找,指令流水线中取值 部分和取数部分就可以很好避免冲突,减少了指令流水线的冲突
18.访问数组cache缺失率的问题:访问数组时,cache为空,那么cache会调入相应的块,那么相邻的数据就不会cache缺失,比如int类型4B,对应cache16B,那么4个相邻的int只有第一个缺失,如果还有写操作,那么读写共八次就第一次读缺失,那么缺失率就是12.5%
19.时间局部性:一条指令在不久的将来很快又会被执行:for循环指令本身具有时间局部性, 空间局部性:一个存储单元被访问,它附近的存储单元也很快会被访问到;for循环指令时间局部性和空间局部性皆有
20.组相联映射:一共8组,那么就是模8运算,主存块号进行模8运算,例如:129号主存单元,一个主存有32B,按字节存储,此时该单元的对应的主存块号是4(主存块号从0号开始),cache块 号也是从0开始的,,此时对4进行模8运算,那么对应的映射cache块号为4
21.直写法,回写法cache行的位数是多少:首先公共位数:数据位(主存块的位数(数据cache的位数))+tag位(主存块位数减去-cache一共有多少块+物理地址中的偏移量(组内地址32B就有5位)) 回写法有脏位1位+有效位1位 直写法有一位有效位
Cache总容量的位数:(tag的位数+回写法的两位或者直写法的1位脏位)*一共多少cache块+cache块数乘以主存块的大小
22. TLB 和缓存的关系在于它们都是用来提高内存访问效率的机制。TLB 通过保存地址映射信息,避免了每次访问内存都要进行页表的查询;而缓存通过临时保存频繁访问的数据,避免了直接访问内存,从而减少了访问延迟。在大多数的计算机系统中,TLB 和缓存都被设计为多级结构,以逐级增加容量和提高访问速度。同时,它们也有各自的工作原理、替换策略和访问控制机制。
23. 不可能发生的是:TLB命中,Cache命中,Page未命中
24. 缺页处理后回到缺页的指令继续执行,不是执行发生缺页指令的下一条执行
25. Cache由SRAM组成,TLB通常由组相联存储器组成,也可以由SRAM组成,DRAM需要不断刷新,主要用于内存,性能偏低,不适合组成TLB和Cache;TLB和Cache命中率都与程序局部性有关,缺失后都需要访问主存,缺失处理都可以由硬件实现
26. Cache直写法:数据写入主存的同时也写入Cache 写回法:只写入Cache,不立即写入主存,只有当此行换出时才写回主存
一:存储器的分类
1.按照在计算机中的作用
主存储器:又称为内存,容量小,存储速度快,造价高,CPU可以直接对其进行访问
辅助存储器:又称为外存,是主存的后援存储器,存放暂时不用的程序和数据,以及一些需要永久性保存的信息,它不能和CPU直接交换信息,容量大,存储速度慢,造价低
**高速缓冲存储器:**简称cache,位于主存和CPU之间,用来存放正在执行的程序段和数据,以便CPU能够高速使用它们,cache的读取速度可以和CPU匹配,存储容量小价格高,目前会被集成在CPU中
2.按照存储介质分类
**磁表面存储器:**磁盘,磁带等
**光存储器:**光盘
磁心存储器半导体存储器:MOS型存储器,双极型存储器
3.按照存储方式分类
随机存储器(RAM):存储器中任何一个存储单元的内容都可以随机存取,而且存取时间和存储单元的物理位置无关;优点是读写方便,使用灵活,主要作为主存和高速缓冲存储器;分为静态RAM(触发器作为原理),和动态RAM(电容充电原理寄存信息)
只读存储器(ROM):只能随机读出而不能写入,信息一旦写入存储器就固定不变,即使断电内容也不会丢失。可以和随机存储器共同作为主存的一部分,统一构成主存的地址域

**串行访问存储器:**对物理位置先后顺序寻址,包括顺序存取存储器(磁带),直接存取存储器(磁盘)

4.按照信息的可保存性分类
易失性存储器:断电后,存储的信息会消失,RAM
非易失去性存储器:断电后,存储的信息仍然会保存,ROM

二:多级存储系统
多级存储系统:为了缓解存储系统容量,速度和成本三者之间的矛盾

cacahe-主存:解决CPU和主存之间速度不匹配的问题
主存和辅存:解决存储系统容量的问题

注意:CPU可以和主存直接交换信息的,不过是速度不匹配

三:存储器的性能指标
三个指标:存储容量,单位成本,存储速度
1.存储容量:存储字数(存储器的地址空间大小)*字长(表示一次存取操作的数据量)
**2.单位成本:**总成本/总容量
**3.存储速度:**数据传输率=数据的带宽/存储周期

一:主存储器基本构成,基本的半导体元件和存储器芯片的原理
1.基本半导体元件及其原理





二:存储器芯片的基本原理

选通:mos管打开,电容中的电荷可以导通,有电荷为1,无电荷为0,



区别字选线和片选线:
字选线:选择某一存储单元
片选线:一个内存条中由很多存储芯片组成,片选线为了操作指定的存储芯片
三:寻址


四:DRAM(动态RAM)和SRAM(静态RAM)
动态DRAM主要用于内存
静态SRAM主要用于cache








DRAM才有使用地址复用技术,SRAM没有使用,同时送行列地址


二:DRAM的刷新
1.行列地址分开(减少选通线)


2.分散刷新,集中刷新,异步刷新
DRAM才要刷新,SRAM不用刷新;


电容间时间:就是给刷新的总共时间;存储周期就是刷新一行存储单元需要的时间




三:DRAM的地址线复用技术(减少地址线)
不但使用行列地址减少选通线,而且行列地址分两次送,使得地址线更少,芯片引脚更少

一:主存储器和CPU连接

1.单块存储芯片和CPU的连接

2.多块存储芯片和CPU的连接

一:位扩展
8k*1:有8K个存储单元(13个地址总线),每个存储单元只有1bit(对应一个数据线)

上述CPU是可以一次读8位的数据的,但是由于存储芯片字长的限制,所以一次只能进行一位,导致数据总线没有充分被利用
现在进行充分利用:此时CPU连接了8块芯片,CPU发出的A0-A12这13位的地址信息会同时送给8片存储芯片

2.字扩展
A:线选法(利用片选信号CS)
此时选用8K*8的存储芯片:所以此时的数据总线得到充分利用,而地址总线没有得到充分利用




B:译码片选法(不需要两个地址线,只需要一个地址线和一个非门)




3.字位同时扩展

位扩展不改变地址线的数量,改变的是数据线的数量,同理字扩展只改变地址线的数目,不改变数据线的数目;告诉地址空间是不含片内地址的;



问芯片数量就是需求的大小除以一个该芯片的大小




CS是低电平工作,全为1就是不选择所有芯片

3.4外部存储器(辅助存储器)
一:磁盘存储器

(1)磁盘设备组成
A:存储区域:一块硬盘有若干个记录面,每个记录面划分为多个磁道(所有磁道记录的数信息量是相等的),每条磁道又划分为若干个扇区,扇区(也称之为块)是磁盘读写的最小单位,也就是磁盘是按块存取

B:磁盘存储器的构成
磁盘存储器的构成:磁盘驱动器,磁盘控制器和盘片组成


(2)磁盘的性能指标



(3)平均存取时间


(4)磁盘地址

(5)磁盘工作过程

二:磁盘阵列



三:光存储器

四:固态硬盘
1.固态硬盘SSD概述



2.固态硬盘组成
一:闪存翻译层:翻译逻辑块号,找到对应页
二:存储介质

3.固态硬盘的读写(以页为单位读写,块为单位擦除)

4.磨损均衡技术

1.Cache基本原理

空间局部性好:未来访问的元素就在现在访问元素在存储空间是邻近的

二:主存块
前几位表示块号,后几位表示块内地址



三:命中率和缺失率

2.cache和主存的映射方式





一:全相联映射(主存块号作为标记进行对比)


二:直接映射(主存块号-cache块数占的位数作为标记去对比)



三:组相联映射(主存块号-cache组占的位数作为标记进行对比)



3.Cache替换算法
替换算法:命中就不用替换,没有命中就要替换

一:随机算法RAND
若是cache已经满了,而且没有命中,随机选择一块进行替换
该算法十分简单,但是没有考虑局部性原理,命中率很低,实际效果很不稳定

二:先进先出算法(FIFO)
需要替换时,替换最先被调入的Cache块
容易产生抖动现象:该算法没有考虑局部性原理,因为最先被调入Cache块也有可能会频繁访问到,因此算法容易发生抖动现象**(刚刚换上去的就被立马换下来)**

三:近期最少使用算法(LRU)----效率最高
考虑了局部性原理:被访问了计数器清零


四:最不经常使用算法(LFU)


总结:近期最少使用(LRU)最好遵循了局部性的原理,最优选。
区别:近期最少使用(LRU)和最不经常使用(LFU),近期最少使用命中清零,其余加一,选择最大的替换;最不经常使用命中加一,选择最小的替换。
4.Cache写策略
Cache写策略分写命中和写不命中两种情况
写命中:有全写法和写回法
写不命中:有写分配法和非写分配法两种
一:写命中
写命中时,主存被调入 Cache中,有两种方法:写回法和全写法
(1)写回法
CPU命中时候,只修改Cache中的内容,而不立即写入主存,只有当此块被换出时才写回主存(脏位为1时表示修改)。
优点:减少访存次数
缺点:存在数据不一致的隐患

(2)全写法
CPU命中时,必须把数据同时写入主存(写缓冲解决速度不匹配的问题)和cache,当某一块替换时,不必把这一块写回主存,新调入的块直接覆盖就行。
优点:实现简单,保持数据的一致性
缺点:增加了访存次数,降低了Cache的效率

二:写不命中
写不命中时被修改的单元不在Cache中,此时有写分配法和非写分配法
1.写分配法:写不命中时把主存的块加载到Cache中,然后更新Cache块,通常结合写回法
2.非写分配法:CPU直接对主存的块就行修改,不调入Cache中(注意只有读操作才将主存块调入Cache中),通常结合全写法使用

1.页式存储器,页表及快表
一:页式存储器

二:逻辑地址和物理地址
逻辑地址:程序员视角中的地址
物理地址:数据 在主存中真实的地址




三:页表和地址变换过程
(1)页表



(2)快表


结合之前的Cache,整个访存操作流程如下:

四:页式虚拟存储器


五:段式虚拟存储器(页式每一页都一样大,段式长度因为程序而异)


六:段页式虚拟存储器

七虚拟存储器和Cache对比

虚拟存储器;部分的程序调入主存,其余留在辅存;Cache:经常用的调入cache
3.7习题




题目:
1.指令中,操作码的位数是该地址位数下能够表示的指令种类
2.地址长度为n,上一层留出M种状态,下一层可以扩展出m2^n种状态;例子:计算机按字节编址,指令字长固定且 只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段6位,则指令字长至少应该是:24位;这种情况29条,所以最少是5位,按照5位计算留出3位,那么可以扩充364=192条,大于107条,所以可行,所以至少是5+3*6=23,按字节编制,指令字长最少是24位
3.偏移寻址有三种:都是通过ALU转化为EA,相对寻址,基址寻址,变址寻址,相对寻址:转移指令 基址寻址:有利于多道程序的设计,编写浮动程序 变址寻址:编制循环程序 (数组问题)

相对寻址类问题:转移指令采用相对寻址,由2字节组成,第一字节为操作码字段,第二字节为相对位移量字段,假定取指令时,每取一字节PC自动加一。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功后的目标地址是:取了两个字所以PC+2=2002H,PC会自动更新,所以最后成功后目标地址为2002H+06H=2008H
4.偏移寻址中偏移量的位:指令长-操作码长-寄存器个数所需要的二进制位数表示
5.计算机采用16位定长指令格式,指令系统有48条指令,支持4种寻址方式,直接寻址方式的可寻址范围:48条指令需要6位操作码,4种寻址方式需要2位寻址特征位还有16-6-2=8位作为地址码
6.RISC采用硬布线控制器,指令条数少,指令长度固定,指令格式和寻址种类少,内部寄存器多,尽量减少访存次数,选取使用频率最高的一些简单指令,大多在一个时钟周期内完成
7.RISC有利于简化流水线的复杂度,指令长度一致,按边界对齐存放,仅Load/Store指令访存
8.主存地址空间的范围不能是负数
一:指令,指令格式和指令分类
指令:指计算机执行某种操作的指令,是计算机运行的最小功能单位
**指令:**一组二进制码,包括操作码和地址码


指令字长的长度会影响取指令 的时间:


二:指令的分类(二地址指令的运算结果送到前一个地址码地址中)
按照操作数地址码的数目分类:
1.零地址指令 2.一地址指令 3.二,三地址指令 4。四地址指令




三:扩展操作码(增加指令的数目)


三:扩展操作码的方法(以上面三地址码一操作码为例子)
全一 的操作码作为扩展操作码的首操作码



注意点:
1.不允许短码是长码的前缀
2.各指令操作码不能重复
3.对于频率较高的指令,分配较短的操作码,对于使用频率较低的指令则分配较长的操作码

地址长度为n,上一层留出M种状态,下一层可以扩展出m*2^n种状态
1.指令寻址和数据寻址的区别

2:什么是指令寻址

3;两类指令寻址




总结;顺序寻址:pc自动加一;跳跃寻址,通过指令给出下一条指令的地址传给PC
4.第一类数据寻址(将形式地址按照某种规则解释)
什么是数据寻址:


数据寻址分类:


用4位比特来确寻址方式是十种的哪一种
以下介绍第一类数据寻址(将形式地址按照某种规则解释)










5.第二类数据寻址(将形式地址视为偏移量)

**总结:**基址寻址:适合多道程序并发执行 变址寻址:适合循环语句 相对寻址:适合转移指令
一:基址寻址




二:变址寻址




三:相对寻址


总结:

1.汇编语言基础






2.常用的X86指令


三:其他类型指令








总结;实现循环:条件语句或者loop语句





按字节编址,指令字长固定,指令字长必定为B的倍数


主存按照字节编址:




这里偏移量指的是:基址
考点:
1.汇编语言程序员可见的是PC(程序计数器),状态/标志寄存器,基址寄存器,通用寄存器;IR,MAR,MDR是CPU的内部工作寄存器
2.指令寄存器的位数等于指令字长,PC程序计数器的位数等于主存地址块数,1G块,说明有30位
3.即使是空指令操作,PC也会自动加1
4.单总线处理器将所有寄存器的输入输出端都连在一条公共通道上,一个时钟内只允许一次操作,无法完成指令的所有操作,就是连一个完整的指令都完成不了
5.微程序控制器采用了存储程序的原理,每条机器指令对应一个微程序,因此修改容易和扩充容易,灵活性好,每条指令的执行都要访问控制存储器,速度慢,硬布线控制器由专门的逻辑电路实现,速度取决于逻辑电路的延迟,速度快,但是修改和扩展困难,灵活性差
6.主存按地址访问,控制存储器按照微指令的地址访问
7.只有在理想情况下流水线CPU,才可能实现每个时钟周期开始执行一条新指令,所以处理器不是总在每来一个时钟脉冲信号就开始执行一条新指令
8.指令译码阶段,取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。所以取数和执行过程中需要用到指令译码器
9.内部异常中只有故障才会返回到发生异常的指令继续执行;内部异常有三种:故障,陷阱,和终止

自陷也是一种内部异常,自陷处理完成后返回到陷阱指令的下一条指令执行
10.中断:来自CPU执行指令以外的事件,如设备发出的I/O结束中断,表示设备输入/输出完成,希望处理机能够向设备发出下一个输入/输出请求,同时让完成输入/输出后的程序继续运行,DMA传送结束属于中断
11.引起流水线阻塞的是:数据相关,资源冲突 条件转移:控制相关
12.数据冒险即是数据相关,指在一个程序中存在必须等前一条指令执行完才能执行后一条指令,这两条指令即为数据相关
13.超标量流水线技术:指CPU有一条以上的流水线,并且每个时钟周期内可以完成一条以上的指令,实质是用空间换时间,不影响流水线功能段的处理时间
14.数据在功能部件之间传送的路径被称为数据通路,包括数据通路上流经的部件,数据通路由控制部件控制,控制部件根据每条指令功能的不同生成对数据通路的控制信号,因此数据通路不包括控制部件。
15.指令流水线每个流水段的时间单位为时钟周期,所以CPU最少的时钟周期=最长的流水段部件时间+寄存器时延
16.CPI为1的是:单周期CPU,基本流水线CPU
1.CPU的功能





一:指令周期


二:指令周期流程


1.取指的数据流向过程:
第三个流向:MAR中的信息通过地址总线送给主存,读出相应的数据后,指令会通过数据总线送到MDR中

2.间址数据流向过程:

3.执行:根据IR中的指令字的操作码和操作数通过ALU产生执行结果,由于不同指令的执行周期操作不同,所以没有统一的数据流向
4.中断的数据流向







总结:单/多指令:串行 流水线:并行




2.CPU专用数据通路



1.硬布线基本不考,以后再学
** 2:微程序控制器基本原理**







3.微指令的设计




执行速度:水平型>混合微指令>垂直型






4.微程序控制单元设计












1.指令流水线(定义和表示方法及性能指标)





5个步骤的时候就是:(4+n)t








2.指令流水线影响因素和分类及多发技术












3.五段式指令流水线






1.多处理器的基本概念




2.硬件多线程的基本概念




考点:
1.USB是串行总线,不能同时传输两位数据
2.总线猝发传送(突发传送)可以传送连续地址的数据:所以传送数据的最少需要时间是:传送地址(一个时钟周期)+传送数据花的时间
3.USB是一种连接外部设备的I/O总线标准,属于设备总线,是设备和设备控制器之间的接口
3.同步通信方式,系统采用一个 统一的时钟信号,不可以由各设备提供,无法实现统一时钟
4.时钟频率低的情况,并行总线比串行总线传输速率快,时钟频率高,并行总线之间的相互干扰严重,反而串行总线传输快
5.PCI-Express总线都采用串行数据包传输数据,靠近CPU的总线速度较快,各总线之间通过桥接器相连
6.采用地址/数据线复用技术,减少了线的数量,节省了成本,并不能提高传输率,所以数据线/地址线复用,其中地址线/数据线有32根,那么一次就是可以传输32/8=4B的数据
7.异步通信采用握手的方式进行通信,每次握手完成一次通信,一次通信会交换多为=位而非一位数据






















考点:
1.控制总线传输的内容:数据缓冲寄存器和命令/状态寄存器
2.地址总线:传送与CPU交换数据的端口地址
3.控制线:给I/O端口发送读/写信号
4.采用统一编址:CPU访存和访问I/O端口用的是一样的指令,访存指令可以访问I/O端口
5.响应外部中断:中断隐指令完成的操作:1.关中断 2.保护断点 3.引出中断服务程序
6.中断请求是cpu执行指令外的操作,所以和当前指令无关,在一条指令执行结束后响应中断,中断在保护现场时关中断,执行中断处理程序时开中断
7.中断优先级高的表示可被中断优先级低的中断
8.DMA控制器的总线使用权优先级比CPU高
9.
1.I/O系统的基本概念和I/O控制方式





2.外部设备









1.I/O方式之程序查询方式



2.I/O方式之程序中断方式