计算机组成原理容易出错,容易忘点总结
- 正负数算数移位总结:
机器数形式 | 空位补数 | |
---|---|---|
正数 | 原,补,反 | 0 |
原码 | 0 | |
负数 | 补码 | 左0右1(左邻邻居) |
反码 | 1 |
对于1.0000(补),真值为-1,左移0移失,补码值不变为-1,而不是-2
-
循环移位
-
各种符号的简写 CF:进位标志位
-
定点加减法运算 原码:符号位和值位需要分开处理 补码:符号位和数值位直接参与操作,溢出位丢失。 大于机器数能表示的称为上溢:
第三章.存储器
- CPU不直接与外存交换信息
- 存储器按存取方式分类:RAM,ROM,串行访问存储器(磁盘、磁带、光盘)
- 存储器的组成:
cache | 主存 | 辅存 |
---|---|---|
SRAM | DRAM ROM(存储主板厂家信息) | ROM |
-
测量存储器的速度 数据传输率=数据宽度/存储周期 存取时间:启动存储器~完成操作(类比) 存取周期:启动存储器~下次启动存储器 存取时间<=存取周期
-
主存带宽=数据传输率
-
MROM:出厂后内容无法改变 PROM:出厂后可编程一次 EPROM:可擦除,可修改多次(写入次数有限,写入慢,不能代替RAM) E 2 P R O M E^2PROM E2PROM:电可以擦除可编程 Flash(闪存):信息的长期保存可以快速删除编写(u盘) SSD固态硬盘:由Flash芯片阵列制成,保留Flash的特性 !!! CDROM不是ROM!!!是一种光盘
-
ROM也可读可写。RAM写入和读出的速度可会有所不同
-
SRAM特点: 1.双稳态触发器 2.非破坏性读出 3.存取速度快(无需刷新),集成度低(6)mos管),功耗大
-
DRAM特点: 1.电容器原理 2.破坏性读出 3.存取速度慢,集成度高(1)mos管),功耗小 4.地址重用,地址线变为1/2,行列分开传输
-
DRAM刷新(刷新周期2ms):(类比吃) 1.集中刷新:在刷新周期内,集中一段时间刷新所有行。刷新期间不能访问存储(死区);读写操作不受刷新影响,访问速度高。 2.分散刷新:线刷新与工作周期相结合。工作周期刷新一行;延长系统工作周期,降低速度;没有死区。(相当于每次操作后刷新一行) 3.异步刷新:结合1.2.充分利用最大刷新间隔,t=2ms/行数,每T刷新一行,减少刷新次数(2缺点),减少死区(1缺点)
-
ROM和RAM的区别: ROM掉电不丢失信息,RAM断电丢失信息。≠破坏性读出) 只读->结构简单->高位密度(大容量存储器)->RAM位密度低
-
最小引脚数=地址线 数据线 读写控制线(默认为1) 片选线
-
cache分类: cache可分为L1cache和L2cache,L1cache主要集成在CPU内部,L2cache集成在主板或CPU上。L1cahce分为指令和数据cache
-
局部性原理 时间局部性最近可能会被采访。循环;堆栈 局部空间:相邻空间地址 局部顺序:除转移指令外,均为顺序。顺序执行,数组连续存储
-
cache基本工作原理图
-
cache与主存的映射 cache行=主存块 :命中率低,cache低空间利用率 tag-cache行号-块内地址 直接映射流程图: :命中率高,cache空间利用率高,线路复杂,成本高,速度慢 tag-块内地址 :res=adr%组号;组间直接映射,组内全相联映射。硬件简单,速度快,命中率高 tag-组号-块内地址
18.cahce替换算法 随机替换 先进先出:不按局部原则,可能导致命中率低 :堆栈算法,局部原理,每个cache设置计数器(值越大,使用时间越长) :堆栈算法,每一个cache设置计数器表示近期使用情况(值越小,使用次数越少),注意和LRU区别
-
cache写策略 命中: 1.全写:写命中时,写入cache和内存;写不命中,直接修改内存(无脏位) 相当于每次无论如何都要访问存存->慢->在cpu在与内存之间添加一个写作缓冲 2.写回法:设置脏位,更换后修改内存 不命中: 1.写分配法:将内存块加载至cache,并更新cache 2.非写分配法:只写入主存,不转入cache 全写-非全写(只修改)cache) 写回法-写分配法 L1-cache(指令/数据cache)采用写分配法&写回法
-
虚拟内存(结合OS)
-
虚存=主存+外存
-
虚存容量=min(地址结构,磁盘容量)
-
虚存对应用程序员透明
-
虚存逻辑容量=外存+内存
-
三种虚存: 页式虚存: 页面长度固定,对用户透明 存在内部碎片 地址转换:虚页号-页内地址->(页表)->物理页号-页内地址 页表结构:虚页号-有效位-脏位-引用位-物理页号 段式虚存: 存在外部碎片 地址转换:段号-段内地址->(段表)->段首地址-段内地址 页表结构:段号-段首址-有效位-段长 段页式虚存: 先按逻辑分段,再按段分页 一个程序一个段表,一个段一个页表 地址转换:段号-页号-页内地址->物理页号-页内地址
-
段页式便于多道程序的共享
-
快表(TLB): 存在于cache中;用于页式虚存减少访存次数;全相联或组相联;存储虚页号和实页号的映射关系;TLB项=Tag-有效位-物理页号
-
TLB和页表和cache的关系
TLB | 页表 | cache | 结论 |
---|---|---|---|
命中 | 命中 | 命中 | TLB命中,页表一定命中,主存一定有,cache可能命中 |
命中 | 命中 | 不命中 | TLB命中,页表一定命中,主存一定有,cache可能不命中 |
不命中 | 命中 | 命中 | 页表命中,TLB不一定命中,主存一定有,cache可能命中 |
不命中 | 命中 | 不命中 | 页表命中,TLB不一定命中,主存一定有,cache不一定有 |
不命中 | 不命中 | 不命中 | 页表不命中,主存没有,cache和TLB必然不命中 |
TLB命中与否与cache命中与否没有关系 主存没有,cache和TLB必然没有 TLB是页表的子集;cache是内存的子集
-
cache纯硬件实现,对所有程序猿透明;虚存由操作系统和硬件共同实现,对应用程序员透明,系统程序员可见(需要修改调度替换策略)
-
AB=MAR位数,AB位数决定了最大可寻址空间
-
DB=MDR位数
-
CB 控制读写操作及
-
为了节省页表本身占用的主存空间,一些系统把页表存储在虚存中,因而页表本身也要进行分页。当一个进程运行时,其页表中一部分在主存中,另一部分则在辅存中保存。
-
系统采用二级页表结构。每个进程有一个页目录表,其中的每个表 项指向一个页表。
-
MAR 可以接收由程序计数器(PC)的指令地址或来自运算器的操作数的地址
-
一个字=16B
-
透明 虚拟存储器中,数据调动对应用程序员透明
-
主存=存储体+外围电路
-
外围电路包括:地址译码器,数据寄存器,读写控制电路
-
长: 存储字长:一个存储单元的二进制位数 数据字长(字长):计算机一次能处理的位数 存储字长和字长不一定相等
-
寄存器内的符号简写 DS:段寄存器
-
主流处理器采用小端存放,如Intelx86,Risc-V处理器,也有大小端同时使用的,如MIPS处理器。除处理器外,数据传输等也存在数据选择的问题。
-
驱动器:一条选择线带很多存储位时负载过大
-
DRAM的动态刷新行地址由刷新地址寄存器产生,而不是由CPU产生,。
-
分散刷新由于刷新过于频繁,影响系统速度,不适合高速存储器
-
双端口的速度不可能提高两倍:存在读写冲突
-
单体多字存储器=位扩展;多体交叉=字扩展
-
计算机中的内存插槽插入一个或者多个内存条都可以工作,就是典型的顺序编址方式。
-
低位交叉编码中每个存储体有独立的地址寄存器,数据寄存器,读写控制电路。
-
低位交叉存储器适合突发的顺序访问模式
-
相联存储器:与一般的按的地址访问的存储器不同,相联存储器CAM是一种按内容极限访问的存储器,用于存放查找表,存储的基本数据单元是键值对。
-
CAM中每个存储单元都对应一个独立的比较器。
-
直接相联查找表不放在相联存储器中,各cache行只需要放在一块就行了。直接相联只需要一个共享的比较器即可。
-
直接相联无需使用复杂替换算法。
-
k-路组相联:每组k行
-
全相联并发比较
-
L1-cache:Cache和处理器集成在同一芯片内。
-
磁盘缓存buffer cache:软件方式优化磁盘访问性能。
-
磁盘页面包括:交换分区和数据分区。交换分区存放主存页面换出的动态修改数据。数据分区用于存放存储用的用户数据和程序。
-
每个进程都有独立的虚拟地址空间,因此每个进程都有一张页表,页表属于进程控制信息,存放在进程地址空间的内核中。
-
页表在内存中首地址记录在页表基址寄存器中,进程切换只需要简单切换页表基址寄存器的值即可。
-
一次完整的刷新需要占用一个访存周期