计算机组成原理(烟草备考笔记)

本文详细介绍了冯诺依曼计算机的基本构成,包括五大部件的功能,以及数据表示、运算过程中的数制转换、原码、反码、补码和移码。此外,还涵盖了CPU的指令系统、寻址方式、性能指标计算,以及存储子系统的结构、扩展方法、主存与Cache的地址映射以及替换算法。
摘要由CSDN通过智能技术生成

1 基础知识

知识点
存取速度寄存器(CPU内部) > Cache > 内存;
计算机语言机器语言:计算机唯一可以直接识别和执行的语言;
汇编语言:由汇编程序(系统软件)翻译为机器语言后,再执行;
高级语言:如C,C++,Java;
高级语言可分为两类:1. 层层翻译得到机器语言,再执行:高级语言->汇编语言->机器语言;另一种边翻译边执行:高级语言->机器语言;
翻译程序汇编程序(汇编器):汇编语言->机器语言;
解释程序(解释器):边翻译边执行;
编译程序(编译器):高级语言->汇编语言->机器语言;
存储元存储二进制的电子元件,每个存储元可以存1bit;
存储单元每个存储单元存放一串二进制代码;
由多个存储元组成,通常可存储1byte
存储字存储单元中二进制代码的组合;
存储字长存储单元中二进制代码的位数;
机器字长计算机能一次处理的二进制代码长度;
可通过寄存器的位数判断机器字长;
指令字长指令的二进制长度;
数据字长数据总线一次能并行传送消息的次数;
转换一字节(byte) = 8位(比特),即1B = 8bit

在这里插入图片描述

2 冯诺依曼

在这里插入图片描述
冯诺依曼机的特点

  • 计算机由五大部件组成 —— 输入设备、输出设备、存储器、运算器、控制器;
  • 指令和数据以同等地位存储在存储器中,并按地址寻问;
  • 指令和数据均以二进制代码表示,CPU区分指令和数据的依据是指令周期的不同阶段;
  • 指令 = 操作码 + 地址码操作码:表示操作的性质;地址码:表示操作数在存储器中的位置;
  • 指令在存储器内按顺序存放,通常,指令是顺序执行的;

计算机性能指标

性能指标相关定义
字长机器字长:计算机进行一次整数运算所能处理的二进制的位数,一般与字长长度有关;
数据通路带宽外部数据总线一次能并行传送信息的位数,非CPU内部数据总线宽度;
主存容量主存储器所能存储信息的最大容量,通常以字节来衡量,也可以用字数 * 字长表示;
MAR为16位, 2 1 6 2^16 216 = 65536,及存储体内有65536个存储单元(可称作64K,1K = 1024)
吞吐量系统在单位时间内处理请求的数量;
响应时间用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间;
主频机器内部主时钟的频率,代表每秒执行多少个时钟周期数;
值越大代表一个操作所需时间越少,CPU运行速度越快;
CPU时钟周期通常为节拍脉冲或T周期,即主频的倒数;
CPI执行一条指令所需的时钟周期数,与时钟频率无关;CPI = 时钟周期数量 指令数量 \frac{时钟周期数量}{指令数量} 指令数量时钟周期数量
CPU执行时间运行一个程序所花费的时间;执行时间 = 时钟周期数量 * 时钟周期 = 时钟周期数量 主频 \frac{时钟周期数量}{主频} 主频时钟周期数量 = 指令条数 ∗ C P I 主频 \frac{指令条数 * CPI}{主频} 主频指令条数CPI
MIPSMIPS:每秒执行多少百万条指令;MIPS=指令条数/(执行时间× 1 0 6 10^6 106)=主频/(CPI× 1 0 6 10^6 106 );
MFLOPS:每秒执行多少百万次浮点运算;MFLOPS = 浮点操作数次数/(执行时间 * 1 0 6 10^6 106);
GFLOPS:每秒执行多少十亿次浮点运算;GFLOPS = 浮点操作数次数/(执行时间 * 1 0 9 10^9 109);
TFLOPS:每秒执行多少万亿次浮点运算;TFLOPS = 浮点操作数次数/(执行时间 * 1 0 12 10^{12} 1012);

3 数据表示和运算

3.1 数制转换

在这里插入图片描述

3.2 原码、反码、补码、移码

3.2.1 表示范围

n位无符号数的范围:0 ~ 2 n − 1 2^n - 1 2n1

无符号数

整数表示范围小数表示范围0的表示形式正负数的表示
原码- ( 2 n − 1 ) (2^n - 1) (2n1) ~ 2 n − 1 2^n - 1 2n1- ( 1 − 2 − n ) (1 - 2^{-n}) (12n) ~ 1 − 2 − n 1 - 2^{-n} 12n两种最高位为符号位(0正1负),其余数值位取原值不变;
反码- ( 2 n − 1 ) (2^n - 1) (2n1) ~ 2 n − 1 2^n - 1 2n1- ( 1 − 2 − n ) (1 - 2^{-n}) (12n) ~ 1 − 2 − n 1 - 2^{-n} 12n两种 [ X 正数 ] 反 [X_{正数}]_反 [X正数] = 原码;
[ X 负数 ] 反 [X_{负数}]_反 [X负数]:符号位为1,尾数由原码尾数逐位变反;
补码- 2 n 2^n 2n ~ 2 n − 1 2^n - 1 2n1-1 ~ 1 − 2 − n 1 - 2^{-n} 12n一种在这里插入图片描述
移码- 2 n 2^n 2n ~ 2 n − 1 2^n - 1 2n1-----一种 [ X 整数 ] 移 = 2 n + X , − 2 n ≤ X ≤ 2 n [X_{整数}]_移 = 2^n + X,-2^n \leq X \leq 2^n [X整数]=2n+X2nX2n
X为阶码真值,n为移码数值部分的位数

在这里插入图片描述

3.2.2码之间的转换

具体操作负数示例
原码 -> 反码正数原码 = 正数反码;
负数符号位不变,数值位全部取反;
原码:1000 1100;
反码:1111 0011;
反码 -> 补码正数反码 = 正数补码;
负数:反码末尾 +1;
反码:1101 1010;
补码:1101 1011;
补码 ->反码正数补码 = 正数反码;
负数:补码末尾 -1;
补码:1100 1110;
反码:1100 1101;
原码 -> 补码正数原码 = 正数补码;
负数:原码 -> 反码 -> 补码;
原码:1010 0101;
反码:1101 1010;
补码:1101 1011;
补码 -> 原码正数补码 = 正数原码;
负数:补码取反,末尾 +1
补码:1110 1011;
取反:1001 0100;
原码:1001 0101;
原码 -> 移码补码符号位取反原码:1010 0101;
移码:0101 1011;

3.2.3 IEEE754

32位浮点数格式:S + E + M

S:符号位,0表示正数,1表示负数;
E:阶码,8位,移码表示正负指数;
M:尾数,23位,原码表示;

64位浮点数格式:S + E + M

S:符号位,0表示正数,1表示负数;
E:阶码,11位,移码表示正负指数;
M:尾数,52位,原码表示;

在这里插入图片描述

4 CPU

在这里插入图片描述

作用
通用寄存器组R提供操作数,存放运算结果,提供地址指针、基址、变址、计数器等;
暂存器C\D用来暂存生产的中间过程数据,避免破坏通用寄存器的内容;
C:暂存来自主存的源地址或原数据;
D:暂存来自主存的目的地址或目的数;
IR(指令寄存器)存放当前正在执行的指令;
PC(程序计数器)存放下一条指令的地址,并跟踪下一条要执行指令的地址;
PSW(程序状态寄存器)记录现行程序的运行状态和指示程序的工作方式;
MAR(地址寄存器)存放内存地址,用于寻址,位数 = 存储单元的个数 / 地址码的长度;
MDR(数据寄存器)暂存与MAR相关的数据,位数 = 存储字长;
ALU(算术逻辑单元)运算器的核心;
CU(控制单元)分析指令,给出控制信号;

CPU控制信息传递的方式

  • 程序输入输出方式;
  • 中断方式;
  • DMA方式;
  • 通道方式;

5.1 指令系统

5.1.1 指令格式

操作码(一个) + 地址码(一个或多个)

指令格式功能
四地址结构指令---(D1) OP (D2) --> D3;
(D4) 下条指令;
三地址结构指令---(D1) OP (D2) --> D3;
(PC) +1 --> PC;
二地址结构指令---(D1) OP (D2) --> D2 / D1;
(PC) +1 --> PC;
一地址结构指令---双操作数:(D1) OP (A) --> A ;(PC) +1 --> PC;
单操作数:OP(D1) --> D1;(PC) + 1 --> PC
零地址结构指令在这里插入图片描述用于堆栈或特殊指令操作;

5.1.2 寻址方式

寻址方式格式具体操作符号表示
立即寻址操作码OP + 立即数S指令直接给出操作数;I
主存直接寻址操作码OP + 有效地址D根据 地址码中的地址在主存中找到操作数;S = (D)
寄存器直接寻址操作码OP + 寄存器号R根据地址码中的寄存器编号直接找到操作数 ;S = ®
主存间接寻址操作码OP + 间接地址D通过地址码中的间接地址在主存中找到操作
数的有效地址,再通过直接地址在主存中找到操作数;
S = ((D))
寄存器间接寻址操作码OP + 寄存器号R通过地址码中的寄存器号找到有效地址,
再根据有效地址在主存中找到操作数;
S = (®)
堆栈间接寻址操作码OP + 堆栈指针SP根据地址码中的堆栈指针取出有效地址,
再根据有效地址在主存中找到操作数;
注:先取址,然后SP再自动+1,重新指回新的栈顶
S = ((SP))
变址寻址操作码OP + 变址寄存器号 R x R_x Rx + 形式地址D根据变址寄存器内的地址在内存中取出
一个偏移量,然后将偏移量和形式地址相加求得有
效地址,再根据有效地址在主存中找到操作数;
S = (( R x R_x Rx) + D)
基址寻址操作码OP + 基址寄存器号 R B R_B RB + 位移量D根据基准寄存器内的地址在内存中取出
基准地址,然后将基准地址和位移量相加求得
有效地址,再根据有效地址在主存中找到操作数;
S = (( R B R_B RB) +D)
基址 + 变址寻址操作码OP + 基址寄存器号 R B R_B RB + 变址寄存器号 R x R_x Rx + 位移量D先基址,再变址S = (( R B R_B RB) + ( R x R_x Rx) + D)
相对寻址操作码OP + PC+/- 位移量D根据PC在内存中找到取出一个地址,
然后将地址与位移量D求和或求差得到有效
地址,再根据有效地址在主存中找到操作数;
S = ((PC) +/- D)
变址与基址的区别:
变址:指令提供不变的形式地址,变址寄存器提供可变的偏移量;适用于处理一维数组;
基址:指令提供可变的位移量,基址寄存器提供不变的基准地址;用于扩大有限字长指令的访存空间;

5.1.3 传指流程

  1. 取指周期(FT):从M取出指令并移码,修改PC;
  2. 源周期(ST):按寻址方式形成源地址,从M取出源操作数,暂存于C;
  3. 目的周期(DT):按寻址方式形成目的地址,从M取出目的操作数,暂存与D;
  4. 执行周期(ET):按操作码完成相应操作,后续指令地址送入MAR;
  5. 中断周期(IT):CPU响应中断请求后,到执行中断服务流程前。关中断、保存断点和PSW,转服务程序入口;
  6. DMA周期(DMAT):CPU响应DMA请求后,到完成一次数据传送的时间;

单操作数示例:

  1. MOV R1,R0:
    FT0:M --> IR,PC + 1 --> PC
    ET0:R0 --> R1
    ET1:PC --> MAR
  2. MOV (R1),(R2):
    FT0:M --> IR,PC + 1 --> PC
    ST0:R0 --> MAR
    ST1:M --> MDR --> C
    DT0:R1 --> MAR
    ET0:C --> MDR
    ET1:MDR --> M
    ET2:PC --> MAR

6 存储子系统

主存:主要存放CPU当前使用的指令和数据;
辅存:存放大量的后备程序和数据;
高速缓冲存储器(Cache):存放CPU在当前一小段时间内多次使用的程序和数据,以缓解CPU和主存的速度差异;

种类例子特点
随机存取存储器RAM主存可读可写
只读存储器ROM微程序控制器中的控制存储器CM只读不写
顺序存取存储器SAM磁带机、录音机读/写部件按顺序查找目标地址;
直接存取存储器DAM磁盘读/写部件先直接指向一个小区域,再在该区域顺序查找;

6.1 存储器扩展方式

种类扩展什么怎么扩展
位扩展加大字长A: m k × a mk \times a mk×a;B: m k × b mk \times b mk×b;b>a,A组成B
需要 b a \dfrac{b}{a} ab片A
字扩展增加存储器中的字的数量A: a k × n ak \times n ak×n;B: b k × n bk \times n bk×n;b>a,A组成B
需要 b a \dfrac{b}{a} ab片A
字位同时扩展位扩展 + 字扩展A: a k × b ak \times b ak×b;B: c k × d ck \times d ck×d;c > a,d > b,A组成B
需要 c a × d b \dfrac{c}{a} \times \dfrac{d}{b} ac×bd 片A

6.2 主存与Cache的地址映射

种类定义图示
直接映射主存中每一个页只能映射到某一固定的Cache页中在这里插入图片描述
全相联映射主存中任意一块可以映射到Cache中的任意一块位置上;---
组相联映射直接映射 + 全相联映射;
主存和Cache都分组,主存中组内页数与Cache的分组数相同;
---

6.3 替换算法

方法定义
随机替换简单的根据一个随机数,选取Cache中的一块替换
先进先出(FIFO)按调入Cache的先后决定淘汰的顺序,先淘汰先进入的内容;
最近最少使用(LRU)选择近期最少访问的块作为被替换的块;
最优算法(OPT)以将来使用最少作为替换目标。理想算法,未实现;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值