【复习】计算机组成原理

目录

3.1 计算机系统概述

3.1.1 计算机系统

3.1.2 计算机组成

3.1.3 总线

3.1.4 I/O接口

3.1.x 外设

3.2 数据表示和运算

3.2.1 进位计数制

3.2.1 真值和机器数

3.2.2 校验码

3.2.3 机器级运算

3.2.4 算术逻辑单元ALU(Arithmetic Logic Unit)

3.3 CPU、指令系统(程序的机器级表示、链接和异常处理)

3.3.1 指令系统

3.3.2 CPU

3.3.3 性能评价

3.3.3 指令的执行

3.3.4 五级流水

3.3.5 译码控制单元DCU

3.3.6 异常

3.4 存储器

3.4.1 存储器层次结构

3.4.2 CPU提速

3.4.3 Cache

3.4.4 虚拟存储器(见操作系统)

3.4.5 辅助存储器

3.4.6 处理器习题


真题:

计算内存存储容量大小

寄存器存放下一条指令的地址

简述堆和栈的主要功能和区别

简述链接的功能和分类

3.1 计算机系统概述

(计算机及其技术的重要发展过程)

  1. 冯诺依曼机和存储程序

存储程序:将指令以代码的形式事先输入计算机主存,然后按其在存储器中的首地址执行程序第一条指令,以后就按程序的规定顺序执行其他指令,直至程序结束。

冯诺依曼研究EDVAC机时提出“存储程序”,其特点如下:

  1. 硬件系统:运算器、存储器、控制器、输入设备和输出设备五大部件
  2. 指令和数据以同等地位存储在存储器中,可以按地址寻访
  3. 指令数据均用二进制代码表示
  4. 指令 = 操作码 +地址码;操作码是操作的性质,地址码是操作数的位置
  5. 指令在存储器顺序存放,通常顺序执行,特定条件可根据运算结果或设定的条件改变指令执行顺序
  6. 早期计算机运算器为中心,输入输出设备通过运算器和存储器传送数据;现代计算机以存储器为中心

  1. 计算机工作过程
    1. 把程序和数据装入主存
    2. 将源程序转化成可执行文件
    3. 从可执行文件的首地址开始逐条执行指令
  2. 编译和解释

翻译的两种方法:编译和解释

编译型语言的程序需要编译过程,把程序编译成机器语言文件才可以执行;解释型语言的程序在运行时翻译一句执行一句,不生产目标程序,执行一次解释一次效率低下。

C语言编译步骤:

  1. 预处理.c到.i,#include头文件拷贝、#define宏定义替换;注释删除
  2. 编译.i到.s
  3. 汇编.s到.o
  4. 链接.o到可执行文件,将翻译出来的二进制与需要用到的库进行绑定

3.1.1 计算机系统

(各部件的功能、组成、工作原理)

3.1.2 计算机组成

  1. 输入设备
  2. 输出设备
  3. 存储器*
  4. 运算器*
  5. 控制器*
  6. CPU = 运算器+控制器* + 存储器

3.1.3 总线

数据总线:传输各个部件的数据信息。双向传输

地址总线:指明数据总线上,源数据或目的数据所在的主存单元的地址。单向传输

控制总线:发送各种控制信号。单根线是单向的,但控制总线一组中有输入也有输出

系统总线:实现部件与部件之间的连接和信息传输

总线传输周期:一次总线操作需要的时间(申请阶段+寻址阶段+传输阶段+结束阶段),由若干个总线时钟周期构成

总线时钟周期:==计算机的时钟周期

总线时钟频率:一秒内有多少个总线时钟周期

总线宽度:总线同时可以传输的数据位数,通常是总线的根数,如32根称为32bits

总线带宽:单位时间总线可以传输数据的位数,通常用单位B/s来衡量

总线复用:数据线在不同时间传输不同信息,可以在较少时间内传输更多信息,节约成本

信号线数:=地址总线+数据总线+控制总线

作用:

  1. 简化系统结构,便于系统设计制造
  2. 减少连线数目,便于布线,减小体积,提高系统可靠性
  3. 便于接口设计,所有和总线连接的设备均采用类似接口
  4. 便于系统扩充、更新与灵活配置,实现系统模块化
  5. 便于设备软件设计,所有接口的软件对不同的接口地址进行操作
  6. 便于诊断和维修,降低成本

3.1.4 I/O接口

IO接口位于系统总线和外围设备之间,系统总线通常是标准通用的,符合某种总线标准,不局限于特定设备。

功能:寻址;实现数据缓冲;实现数据格式变换、电平变换等预处理;实现控制逻辑;检错

组成:各类寄存器集合(控制/转改寄存器CSR、数据寄存器DR、地址寄存器ADR等)至少有数据输入缓冲寄存器IDBR和数据输出缓存寄存器ODBR;各种控制线路(设备选择、设备地址译码线路、同步或异步控制、中断控制、IO控制等);数据格式转换线路(串和并转换);主机与接口、接口与IO设备两个方向的信号连接线。

3.1.x 外设

  1. 键盘

原理:及时发现被按下的键,将其信息输入计算机。通过键盘控制电路,如发现下按键位置的键扫描电路,产生被按下键代码的编码电路,将产生代码送入计算机的接口电路等

  1. 激光打印机

过程:充电、曝光、显影、转印、分离、定影、消电和清洁

具体过程:求实资料里面有

  1. IP核

IP核即知识产权核或知识产权模块。在数字电路中,将常用的且比较复杂的功能模块设计成参数可修改的模块,让其他用户可以直接调用这些模块,这就是IP核。通俗来讲,IP核就是一个库函数,你可以直接调用里面的函数,然后自己修改参数。

  1. 显示器

两个重要指标:分辨率和灰度级

3.2 数据表示和运算

3.2.1 进位计数制

十进制<->任意进制

整数部分:整数部分 / 基数,获得低位整数

小数部分:

小数部分 * 基数,获得高位小数

3.2.1 真值和机器数

  1. 定点数

无符号数:全是数值,没有符号位

范围:0~2n-1

有符号数:

原码:最高位表示符号(0+1-)其他位表示绝对值

真值x转原码:+:x

-:符号位1 绝对值原码

反码:+:x

-:符号位不变 原码各位取反

补码:真值x转补码:+:x

-:符号位不变,原码各位取反末位+1

范围:整数−2n ≤ x ≤ 2n−1(比原码多表示一个 −2n )

小数−1 ≤ x ≤ 1−2−n (比原码多表示一个 −1 )

移码:不论正负,把补码的符号位取反;为了方便两个数比大小,移码保持了相同的大小顺序。只能表示整数

范围:−2n ≤ x ≤ 2n−1

0只有补码唯一表示,原码和反码都有两种表示

(2)浮点数

大端:字符串高位(开头)放低位(左边) 就是平常写字顺序

小端:字符串高位(开头)放高位(右边) 就是反着写

IEEE754标准:阶码8位,尾数23位,数符1位

3.2.2 校验码

  1. 奇偶校验码:增加一位校验位,让整个校验位的1的个数是奇/偶数

  1. 海明校验码:将信息分组进行偶校验,多个校验位标注出错位置

有效信息按某规律分组(不是均分,是按位号),每组一个校验位,奇偶测试,可提供多位检错信息,指出最大可能是哪位出错。实质上是一种多重校验

  1. 循环冗余校验码CRC:校验码/生成码,余数不全为0就有错

在需要传输的kbit数据后面增加n-kbit冗余位

3.2.3 机器级运算

  1. 算数移位

原码:符号位不变,仅对数值位进行移位

左移==*2;右移==/2;缺数补0;舍弃非零则右移失精,左移误差

反码:正数和原码相同;负数和原码相反:缺数补1。

补码:正数和原码相同,负数:最右边的1及其右边同原码,左边同反码(即左补1右补0)

  1. 逻辑移位

看作是对“无符号数”的算数移位,全部补0

  1. 循环移位

  1. 加减法

原码:不用在意小数还是整数,只需要关心数值

定点数:不用在意小数还是整数,只需要关心数值

补码:把符号位看作数字一起相加便可(减法转为加法算)

溢出判断:仅当 符号相同相加 / 符号相反相减可能产生溢出

一位符号位:V=xys_ +x_y_s v==1溢出

双符号位(模4补码):两个符号位不同溢出,真实符号位为最高符号位

一位符号位根据数据位进位判断:符号位的进位和最高数位进位C1不同则溢出

  1. 符号扩展

  1. 乘法:由累加和位移组成

原码一位乘:符号位-异或;数值部分-部分积=每一位的乘法结果X*Yi累加

补码一位乘:用相加相减操作计算补码乘积(王道p42)

这两个机器级乘法规则好复杂

  1. 除法:

原码不恢复余数除法(加减交替法):符号和值分开进行

符号:两符号异或

值:

原码恢复余数除法:符号单独处理:符号位 = Xs⊕Ys;数值位取绝对值进行除法计算

补码除法:加减交替法

  1. 浮点数加减法

步骤:对齐;尾数运算(加减法运算);格式化处理;舍入处理;溢出处理

3.2.4 算术逻辑单元ALU(Arithmetic Logic Unit)

运算器 = 运算逻辑单元ALU(+ - * / & | ! 异或)、累加器、状态寄存器、通用寄存器

机器字长就是ALU输入输出接多少线,一次能处理多少,其他寄存器要和ALU保持一致。

  1. 一位全加器

Xi、Yi:同位的二进制数 Ci-1:上一位进位 Ci:本位进位 Si:本位结果

  1. 串行加法器:

特点:速度慢。可以同时输入各位的数据(算是并行了,提高速度了),但是要实现运算需要等待上一位的进位。

  1. 并行进位:全先行进位加法器

原理:相加数有两个1:必定进位

相加数有一个1:低位的进位传到高位;

根据数学逻辑推导公式,每一个输出Si仅和X、Y、C0有关

  1. 多级先行进位方法

16位的加法器:4个4位先行进位加法器组成,块内并行,块间串行

  1. 运算器ALU逻辑运算单位Arithmetic Logic Unit

功能较强的组合逻辑电路,可以进行多种算术运算和逻辑运算

组成:运算逻辑单元ALU(+ - * / & | ! 异或)、累加器、状态寄存器、通用寄存器

3.3 CPU、指令系统(程序的机器级表示、链接和异常处理)

(机器级表示)

3.3.1 指令系统

  1. 指令组成

机器指令 = 操作码OP + 地址码A

扩展操作码(不定长操作码):使操作码的长度随地址的变短而增加,从而在满足需要的前提下,有效缩短指令字长。

存储指令、加载指令、分支指令、整数运算指令+移位指令=整数ALU指令、乘法指令

RISC精简指令及计算机 & CISC复杂指令及计算机

  1. 寻址方式

计算有效地址:

立即寻址方式:地址码字段是操作数本身

直接寻址方式:地址码字段是操作数在主存中的地址

间接寻址方式:地址码字段的存储单元中存储的是操作数的地址

寄存器寻址方式:地址码字段是寄存器的编码

相对寻址方式:程序计数器PC + 指令格式中的形式地址

基址寻址:基址寄存器内容 + 指令格式中的形式地址

变址寻址:变址寄存器内容 + 指令格式中的形式地址

  1. 时序机制

时序控制

同步控制方式:以最复杂的指令进行时序设计,每个周期产生统一数目的节拍电位和时标工作脉冲。

优点:设计简单,操作控制容易实现

缺点:大量时间浪费,影响和降低指令执行速度

异步控制方式:每条指令完成后发送回答信号,控制器收到信号再进行下一条指令的执行。

优点:节拍时间不浪费,指令执行效率高

缺点:控制线路复杂

同异步联合控制方式:功能部件内部同步,功能部件之间异步;硬件允许尽量多异步

三级时序:周期、节拍、工作脉冲

主频和时钟周期:大多数计算机都建立在固定周期的时钟周期上,即CPU的主频

lbu 把加载的数做零扩展

lb 把加载的数做符号扩展

3.3.2 CPU

CPU = 运算器+控制器*

控制器 = 程序计数器PC + 指令寄存器IR + 指令译码器 + 时序产生器 + 操作控制器

控制器的功能:“决策机构”,完成协调和指挥整个计算机系统的操作

运算器的功能:对数据进行加工

指令寄存器(Instruction Register,IR)用来保存当前正在执行的一条指令。

程序计数器(Program Counter,PC)用来指出下一条指令在主存储器中的地址。

CPU主要功能

指令控制:取指令、分析指令、执行指令的操作,程序的顺序控制

操作控制:管理并产生由内存取出的每条指令的操作信号,并送往相应部件,控制部件按相应的指令行动

时间控制:对各种操作加以时间控制。为每条指令按时间顺序提供相应的控制信号

数据加工:对数据进行算数和逻辑运算

中断处理:对异常情况和特殊请求进行处理

多核CPU:n核CPU的功耗和能耗是单核CPU的1/N^2

CPU中央处理器和GPU图形处理器:

设计目标:CPU强通用性,逻辑判断、分支跳转、中断。GPU面对类型高度统一、相互无依赖的大规模数据和不需要被打断的纯净计算环境。

组成:GPU众多计算单元和超长流水线+简单控制逻辑。CPU大量Cache空间和复杂控制逻辑和诸多优化电路+小部分计算能力。

CPU基于低延时设计,有强大ALU。GPU基于大吞吐量设计

3.3.3 性能评价

每条指令的时钟周期数CPI = 总周期数/总指令数

指令数目IC:被CPU执行的指令数目,非静态程序大小

时钟周期CT:一个时钟周期多长时间

每秒(几)百万条指令MIPS = 时钟周期总数 / CPI 【有陷阱】

CPU时间 = IC * CPI * CT = 总指令数 / (MIPS)

加速比 = 优化前的执行时间/优化后的执行时间

SPEC = 参考时间/执行时间

阿姆达尔定律:新的执行时间 = 原来的执行时间 * ((1-增强比例)+增强比例/增强加速比)

加速比 = 新的执行时间/3原来的执行时间

功耗:

静态功耗 P = C * V = 1/2 * C * f * V2

(加载、链接、执行的原理)

3.3.3 指令的执行

  1. 指令执行分解过程:
    1. 取指令微程序,从主存取一条指令->IR(指令寄存器,存放当前正在执行的指令);同时准备好下一条指令地址
    2. 分析指令,根据操作码,经PLA(可编程逻辑数组)产生本机器指令对应的微程序入口地址,把控制信号送到不用的执行部件
    3. 执行该指令对应的微程序
  2. 硬布线控制器

根据指令要求、当前时序和内外部的状态,按时间顺序发送一系列微操作控制信号,由复杂的组合逻辑门电路和一些触发器构成,成为组合逻辑控制器。

优点:控制器速度取决于电路延迟所以很快;

缺点:把控制部件看作专门产生固定时序控制信号的逻辑电路,以使用最少零件和取得最高速度为目标,不可以修改、添加额外功能

  1. 微程序控制器

存储逻辑。每一条机器指令->微程序->微指令->微操作命令。将这些存到一个控制存储器里,用寻址用户程序机器指令的方法寻址到每个微指令。

优点:规整性、可维护性、灵活性等;

缺点:使用存储程序原理,每条微指令都需要存取操作降慢速度。

  1. 机器指令和微指令

一条机器指令完成的操作划分成若干微指令来完成。

指令、程序、地址与内存储器有关,微指令、微程序、微地址与控制存储器有关;分别也有相关的硬件。

每个CPU周期对应一个微指令。

微指令的编码方式:

直接编码方式:无法译码,对应微指令位置1;简单直观速度快,并行性好;控制存储器容量极大;

字段直接编码方式:把微指令拆分成小段编排;缩短微指令字长;需要先经过译码电路再通过微指令

字段间接编码方式:一个字段的某些微命令需要其他字段的微命令解释;可进一步缩短字长;但并行性下降

常数源字段E的设置:如同立即数一样(赋初值, 修改量, 配合形成转移微地址)

后继微地址的产生方式:

计数器方式(增量方式或顺序执行-转移方式):由微地址的下地址控制字段设置转移微地址

断定方式:根据机器状态决定下一条微指令地址,下一条微指令地址包含在当前微指令的代码中

3.3.4 五级流水

流水线:流水线技术是一种显著提高指令执行速度与效率的技术。方法是:指令取指完成后,不等指令执行完毕即可取下一条指令。

  1. 取指阶段IF:根据当前pc从指令存储器取回指令;形成下一条指令的地址
  2. 译码阶段ID:确定操作类型、操作数来源、去处等
  3. 执行阶段EXE:运算。load/store还需计算目的地址
  4. 访存阶段MEM:存取指令需要在此阶段访问存储区;否则只需把执行阶段的结果传下去
  5. 写回阶段WB:将运算结果写入目的寄存器

流水线性能:

结构相关:多条指令争用同一资源

解决:暂停一个周期;单独设置数据存储器和指令存储器

数据相关:流水线重叠执行时,后继指令需要前驱指令的执行结果

解决:暂停一个周期;数据旁路:把迁移至零的ALU计算结果直接输入下一条指令

控制相关:流水线遇到分支指令和其他改变PC值的指令

解决:延迟转移技术:将转移指令与其前面的无关指令对换,使预取的指令不作废;转移预测技术

3.3.5 译码控制单元DCU

控制信号:

3.3.6 异常

异常的来源:

指令执行中的错误;

数据完整性问题;

地址转换异常;

系统调用和trap

外部事件(中断):中断来自外部,异常来自内部,两者流程几乎一样,所以被统称为异常

处理的流程:

异常处理准备:精确异常。即异常指令之前的指令必须执行完,之后的都清空

确定异常来源:处理器将不同的异常编号,便于处理异常程序的区分和跳转

保存现场。通用寄存器和状态寄存器

中断服务程序

恢复现场并返回

中断:计算机运行过程中,出现某些意外情况需要主机干预时,机器自动停止正在运行的程序转入处理新情况的程序,处理完成后自动返回原来被迫中断的程序。

向量中断:CPU响应中断后,中断机构自动将向量地址通知处理机,由向量地址指明中断向量位置并实现向量切换,不必经过处理程序来查询中断源的中断功能,称为向量中断。

中断服务程序的程序段:

保护现场:保存程序的断点;保存通用寄存器和状态寄存器的内容

中断服务(设备服务)

恢复现场:退出服务程序前,将源程序中断时的“现场”恢复到原来寄存器中,返回断点处继续执行

缺页中断:访问的页不存在,需要操作系统将其调入驻村后在进行访问,在这个时候,被内存映射的文件实际上成了一个分页交换文件。

普通中断和缺页中断:

范围不同:一般中断只需要保护现场即可跳转处理;缺页中断除了保护现场还要判断内存中是否有足够的空间存储所需的页再调进页

结果不同:一般中断返回时执行下一条;缺页中断返回时执行产生中断的指令

次数不同:一般中断只产生一次;缺页中断的产生和处理在指令执行期间,一条指令执行期间可能产生多次缺页中断

DMA(直接内存访问):将数据从一个地址空间复制到另一个地址空间,由DMA控制器完成,例如移动一个外部内存的区块到芯片内部更快的内存区。实现DMA时由DMA控制器直接掌管总线,因此,村子一个总线控制权转移的问题。CPU->DMA->CPU

过程:DMA请求:CPU对DMA控制器初始化,向IO接口发出操作命令。IO接口提出DMA请求

DMA响应:DMA控制器对请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU完成总线周期即释放控制权,总线裁决逻辑应答,DMA响应,通过DMA控制器通知IO接口开始DMA传输

DMA传输:DMA控制器拿到总线控制权后CPU立即挂起或只执行内部操作,DMA控制器输出读写命令直接控制RAM和IO接口进行DMA传输。......

DMA结束:......

中断和DMA的区别:

  1. 中断方式是CPU执行中断程序,切换程序过程破坏原程序状态,需要额外开销保护就现场和恢复旧现场;DMA只挪用一个存储周期,此时CPU涉及主存则冻结、热启动、继续执行;不涉及则不影响,DMA只在开始和结束需要CPU执行一段程序,期间不占用CPU
  2. 中断只可以在一条指令结束后CPU响应中断请求;DMA可以在指令周期中任何一个周期结束时响应DMA请求
  3. CPU和DMA并行性高于中断
  4. DMA优先权高于中断;中断可以处理复杂情况,DMA只用于数据传送控制
  5. DMA适用微型机,只对少量同类设备控制;系统较大时外围设备多,多个DMA会冲突,降低整个系统效率

(从系统的角度全面认识理解计算机工作过程,进而对实际问题进行计算和分析)

3.4 存储器

3.4.1 存储器层次结构

按存储介质分:磁存储器、光存储器、半导体存储器

按存取方式分:RAM(随机)、SAM(顺序)、DAM(直接)、ROM(只读)

按信息保存时间分类:易失性存储器,非易失性存储器

按性能(速度/容量)进行分类:寄存器存储器,Cache(高速缓存),主存储器,外存(辅助存储器)

存储层次结构:

SRAM:静态随机存取存储器。用双稳态触发器来记忆信息,非破坏性读出所以,存取快,集成性低,功耗大。

寄存器(高速SRAM):存放处理器的工作数据。

Cache缓存(SRAM):快速缓冲存储器。缓存常用数据,类比地址簿。Cache系统和计算机的地址总线和数据总线项链,监听CPU与存储器间的事务

主存(DRAM):动态随机访问存储器,用存储元电路中栅极电容上的电荷存储信息。存放工作数据

刷新:为了人眼看到稳定图像,要在图像消失之前使电子束不断重复扫描整个屏幕。

方式:集中式:一段固定时间依次对存储器所有行逐一刷新

分散式:把对每一行的刷新分散到各个工作周期

异步式:把对每一行刷新分散到一整个刷新周期去

硬盘(SSD):保存程序和数据

ROM只读存储器:RAM和ROM都支持随机存储,但RAM都易失性,但ROM有信息就不会轻易改变。

特点:结构简单,密度比可读存储器高;不易丢失数据,可靠性高

分类:MROM:生产过程中写入,无法更改

PROM:用户用专门设备写入,写入后无法更改

EPROM:用户写入,程序员可多次更改

Flash:不加点时仍可长期保存信息并能快速擦除重写

3.4.2 CPU提速

并行技术

  1. 双端口存储器(空间并行)

  1. 多模块存储器(时间并行)

由多体模块组成。每个模块有相同的容量和存取速度,独立的读写控制电路、地址寄存器和数据寄存器,既能并行又能交叉。多体并行存储器分为高位交叉编址(顺序方式)和地位交叉编址(交叉方式)两种。

3.4.3 Cache

工作原理: cache中存放一个主存块的对应单位为行(line)或槽(slot)或项或块,每个块包括有效位,块地址标记标记(Tag),索引值,Data。

块的大小决定了块偏移,主存中块的数量(组内)决定了Tag,对于直接映射和组向量映射来说,组号决定了索引值的位数。

  1. 块数量 = cache有效容量/块大小
  2. Tag:根据index和offset,去掉它们的位数剩下的就是tag
  3. 索引index:(快数量/相联度)的位数
  4. 块偏移offset:块大小的位数
  5. AMTM (平均存储器访问时间)= 命中时间+缺失率×缺失代价

= L1 命中时间 + 缺失率L1 *(L2命中时间 + 缺失率L2*缺失代价 )

address

Tag

index

offset

  1. 映射

映射关系:CPU在访存时,将主存地址变成Cache地址的过程

映射方式:

直接映射:主存的一个块能通过一个式子的映射能放在Cache中的一个特定行里

全相联映射:主存数据块可以装入Cache任何位置。块内地址->Cache的行内地址,块号->Cache的标记位

组相连映射:Cache分为若干组,主存数据块可以装入一组内任何位置。n路组相连表示cache的8行分为n行一组。内存地址块号/总组数......第几组。组内全相连,组间直接映射

  1. 替换算法

随机算法RAND

先入先出算法FIFO

近期最少使用LRU*

2路1位计数位,4路2位计数位......

命中时,命中行变0;比其低的计数器+1;其余不变

未命中有空闲行时,新装入0,其余全+1;

未命中有空闲行时,计数值为计数位最大值的删除,新装入0,其余全+1(已到最大就不加了);

当集中访问的存储区>组大小,会发生抖动,命中率可能很低

最不经常使用LFU:

每行也设定计数器,新建立行从0开始,被访问+1;需要替换时替换最小的计数值

  1. 写策略:对Cache更新的时候需要写策略来保证Cache和主存一致

写直通WT:写命中时,同时修改Cache和主存;当写不命中需要替换块的时候,被替换的原数据不需要写回,可直接覆盖。

优点:保持主存的正确性 缺点:增加访存次数,降低Cache效率

写缓冲:在Cache和主存之间的 FIFO队列,可以解决速度不匹配的问题。

写回WB:写命中时只写入Cache不立即写入主存,当Cache行被替换时才写回主存。

优点:减少缓存次数 缺点:有不一致隐患;

脏位:1,替换时原数据写回主存;0,替换时原数据无需写回主存。

写分配WA:写不命中时加载主存中的块到Cache,然后更新这个Cache块

非写分配NWA:写不命中时只写入主存,不调块到Cache

一般写分配+写回;非写分配+写直通

多级Cache:......

堆排序对Cache不友好:因为Cache的设置一般考虑了空间局部性和时间局部性,堆排序需要比较前一半和后一半数据的大小,当堆数据较长,会导致频繁的Cache替换写入

  1. 参数调整

Cache容量:一定程度越大越好

相连度:高相连度降低冲突缺失;相连度超过8带来缺失率收益微小

块大小:块越大利用更多空间局部性;超过512B可能导致更高的冲突缺失

3.4.4 虚拟存储器(见操作系统)

虚拟存储器指拥有请求调入和置换功能,能从逻辑上对内存容量加以扩存的一种存储器系统。

步骤:

  1. 中央处理器访问主存的逻辑地址分解成组号a和组内地址b,对a地址变换,将a作为索引查地址变换表,确定该组信息是否存放在主存内。
  2. 存在,见d步;不在,检查主存是否有空闲区,没有则调出不用的主存去辅存,空出位置。
  3. 从辅存读出所要 的组到主存,将空闲物理组号a和逻辑组号a登录在地址变换表中。
  4. 从地址变换表中读出与逻辑组号对应的物理组号。
  5. 从物理组号a和组内地址b得到物理地址。
  6. 根据物理地址从主存中存取必要的信息

字符发生器:虚拟字符发生器,是一个功能强大的数字信号发生器,输出的字长达到16bits,用于检测或检查数字电路的逻辑功能

  1. 页式虚拟存储

分固定大小的页,可装入主存不同的实际页面位置。

逻辑地址 = 页号 + 偏置(页内地址);实际地址 = 块号 + 偏置(页内地址)

页表:包括页号和每页在主存中的起始位置,装入位等。

  1. 段式虚拟存储

按程序逻辑分块,段长可任意设定。

段表:段号 + 段起点 + 装入位 + 段长等

  1. 段页式虚拟存储

存储空间按逻辑分段,段内分页,段长必须是页长的整数倍,段起点必须是某页的起点。

  1. 快表TLB

3.4.5 辅助存储器

性能指标:

存储密度

存储容量:磁盘存储容量 = 可记录盘面数 * 每盘面磁道数 * 每磁道扇区数 * 每扇区字节数

存取时间

数据传输率:一秒内写入或读出的二进制信息位的个数,用波特率表示

3.4.6 处理器习题

初次访问:强制缺失; 连续访问:命中;

冲突缺失:(非连续访问,但块映射在cache里面)许多块竞争同一组导致的缺失

容量缺失:全相联也不能容纳所有请求的块所导致的缺失

victim cache:受害缓存,当块被替换出去,会被存在victim cache里面,访问victim缓存会命中,不需要请求读L2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值