美文网首页
计算机组成原理之组成篇

计算机组成原理之组成篇

作者: 六寸光阴丶 | 来源:发表于2020-11-04 23:01 被阅读0次

    一 、章节导学

    1. 冯诺依曼机

    • 输入设备
    • 输出设备
    • 存储器
    • 运算器
    • 控制器

    2. 计算机硬件

    • CPU:存储器,运算器,控制器
    • 内存:存储器
    • 硬盘:存储器
    • 鼠标:输入设备
    • 键盘:输入设备
    • 显示器:输出设备
    • 电源
    • 主板
    • 显卡、声卡
    • 网卡

    3. 主要内容

    • 计算机总线与IO设备:计算机的总线,计算机的输入、设备
    • 计算机的存储器:计算机的存储概览,计算机的主存储器与辅助存储器,计算机的高速存储器
    • 计算机的CPU:计算机的指令系统,计算机的运算器,计算机的控制器,指令执行过程

    二、 计算机的总线

    1. 总线的概述

    1.1 总线的概述(是什么、什么用)
    • 提供了对外连接的接口
    • 不同设备可以通过USB接口进行连接
    • 连接的标准,促使外围设备接口的统一
    image.png
    • USB
    • PCI总线
    • ISA总线
    • Thunderbolt总线
    image.png

    解决不同设备之间的通信问题

    image.png
    1.2 总线的分类
    片内总线:高集成度芯片内部的信息传输线
    • 芯片内部的总线
    • 寄存器与寄存器之间
    • 寄存器与控制器、运算器之间
    片内总线
    系统总线
    • 数据总线:一般与CPU位数相同(32位、64位)

      • 双向传输各个部件的数据信息
      • 数据总线的位数(总线宽度)是数据总线的重要参数
    • 地址总线:地址总线位数=n,寻址范围:0~2^n

      • 指定源数据或目的数据在内存中的地址
      • 地址总线的位数与存储单元有关
    • 控制总线

      • 控制总线是用来发出各种控制信号的传输线
      • 控制信号经由控制总线从一个组件发给另外一个组件
      • 控制总线可以监视不同组件之间的状态(就绪/未就绪)
    image.png

    2. 总线的仲裁

    2.1 为什么需要总线的仲裁

    解决不同设备使用总线优先顺序的一个设备

    image.png
    2.2 总线仲裁的方法(为了解决总线使用权的冲突问题)
    链式查询
    • 好处:电路复杂度低,仲裁方式简单
    • 坏处:优先级低的设备难以获得总线使用权
    • 坏处:对电路故障敏感
    链式查询
    计时器定时查询
    • 仲裁控制器对设备编号并使用计数器累计计数
    • 接收到仲裁信号后,往所有设备发出计数值
    • 计数值与设备编号一致则获得总线使用权
    image.png
    独立请求
    • 每个设备均有总线独立连接仲裁器
    • 设备可单独向仲裁器发送请求和接收请求
    • 当同时收到多个请求信号,仲裁器有权按优先级分配使用权
    image.png
    • 好处:响应速度快,优先顺序可动态改变
    • 设备连线多,总线控制复杂

    三、计算机的输入输出设备

    1. 常见的输入输出设备

    1.1 字符输入设备

    键盘:薄膜键盘,机械键盘,电容键盘

    1.2 图像输入设备

    鼠标
    数位板
    扫描仪

    1.3 图像输出设备

    显示器
    打印机
    投影仪

    2. 输入输出接口的通用设计

    2.1 要考虑的内容
    • 读取数据
    • 向设备发送数据
    • 设备是否已经连接
    • 设备有没有被占用
    • 设备是否已经启动
    2.2 设计
    数据线
    • 是I/O设备与主机之间进行数据交换的传送线
    • 单向传输数据线
    • 双向传输数据线
    状态线
    • IO设备状态向主机报告的信号线
    • 查询设备是否已经正常连接并就绪
    • 查询设备是否已经被占用
    命令线
    • CPU向设备发送命令的信号线
    • 发送读写信号
    • 发送启动停止信号
    设备选择线
    • 主机选择I/O设备进行操作的信号线
    • 对连在总线上的设备进行选择

    3. CPU与IO设备的通信(CPU速度与IO设备速度不一致)

    3.1 程序中断
    • 当外围IO设备就绪时,向CPU发出中断信号
    • CPU有专门的电路响应中断信号
    程序中断
    • 提供低速设备通知CPU的一种异步的方式
    • CPU可以高速运转同时兼顾低速设备的响应
    3.2 DMA(直接存储器访问)
    • DMA直接连接主存与IO设备
    • DMA工作时不需要CPU的参与
    DMA
    • 当主存与IO设备交换信息时,不需要中断CPU
    • 可以提高CPU的效率
    应用
    • 硬盘
    • 外置显卡

    四、计算机存储器的概览

    1. 存储器的分类

    1.1 按存储介质分类
    半导体存储器
    • 内存
    • U盘
    • 固态硬盘
    磁存储器
    • 磁带
    • 磁盘
    1.2 按存取方式分类
    随机存储器(RAM)
    • 随机读取
    • 与位置无关
    串行存储器
    • 与位置有关
    • 按按照顺序查找
    只读存储器(ROM)
    • 只读不写

    2. 存取器器的层次结构

    2.1 需要考虑的因素
    • 读写速度
    • 存储容量
    • 价格
    2.2 希望的结果
    • 读写速度(高)
    • 存储容量(大)
    • 价格(低)

    容量+价格 => 位价:每比特价格

    2.3 层次结构
    • 缓存:速度快,价格高
    • 主存:速度适中,价格适中
    • 辅存:速度慢,价格低
    存储器的层次结构 存储器的层次结构
    原理:局部性原理

    局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。

    局部性原理
    • 实现:在CPU与主存之间增加一层速度快(容量小)的Cache
    • 目的:解决主存速度不足的问题

    五、计算机的主存储器与辅助存储器

    1. 主存储器——内存

    • RAM(随机存取存储器:Random Access Memory)
    • RAM通过电容存储数据,必须隔一段时间刷新一次
    • 如果掉电,那么一段时间后将丢失所有数据
    image.png image.png image.png

    2. 辅助存储器——磁盘

    2.1 磁盘
    • 表面是可磁化的硬磁特性材料
    • 移动磁头径向运动读取磁道信息
    image.png image.png
    2.2 磁盘调度算法
    • 先来先服务算法
    • 最短寻道时间优先
    • 扫描算法(电梯算法)
    • 循环扫描算法
    image.png
    先来先服务算法

    1=>4=>2=>3=>1=>5

    最短寻道时间优先
    • 与磁头当前位置有关
    • 优先访问离磁头最近的磁道

    4=>5=>3=>2=>1=>1

    扫描算法(电梯算法)
    • 每次只往一个方向移动
    • 到达一个方向需要服务的尽头再反方向移动
      4=>3=>2=>1>1=>5
    循环扫描算法
    • 只能往一个方向读取
      4=>5=>1=>1=>2=>3

    六、计算机的高速缓存

    CPU与主存的速度不匹配

    缓存-主存层次

    1. 高速缓存的工作原理

    1.1 字与字块

    : 是指存放在一个存储单元中的二进制代码组合
    字块:存储在连续的存储单元中而被看作是一个单元的一组字

    image.png image.png image.png

    例子:假设主存用户空间容量为4G,字块大小为4M,字长为32位,则对于字地址中的块地址m和块内地址b的位数,至少应该是多少?

    4G=4096M
    字块数:4096 ÷ 4 = 1024
    字块地址m:\log_21024 = 10
    块内字数: 4M \div 32bit = 1048576
    块内地址b: log_21048576 = 20
    𝑚 ≥ 10,b ≥ 20

    1.2 缓存
    • 存储的逻辑结构类似
    • 缓存的容量较小
    • 缓存的速度更快
    高速缓存 高速缓存
    1.3 缓存的使用
    • CPU需要的数据在缓存里
    • CPU需要的数据不在缓存里
    • 不在缓存的数据需要去主存拿
    1.4 命中率
    • 命中率是衡量缓存的重要性能指标
    • 理论上CPU每次都能从高速缓存取数据的时候,命中率为1

    访问主存次数:N_m
    访问Cache次数:N_c
    h=\frac{N_c}{N_c+N_m}

    1.5 访问效率

    访问效率: e
    访问主存时间:t_m 访问缓存时间:t_c
    访问Cache-主存系统平均时间:t_a=ht_c+(1-h)t_m
    e=\frac{t_c}{t_a}=\frac{t_c}{ht_c+(1-h)t_m}

    例子:假设CPU在执行某段程序时,共访问了Cache命中2000次,访问主存50次,已知Cache的存取时间为50ns,主存的存取时间为200ns,求Cache-主存系统的命中率、访问效率和平均访问时间。

    命中率:h=\frac{N_c}{N_c+N_m}=\frac{2000}{2000+50}=0.97
    访问效率:e=\frac{t_c}{t_a}=\frac{t_c}{ht_c+(1-h)h_m}=\frac{50}{0.97*50+(1-0.97)*200}=0.917=91.7\%
    平均访问时间:0.97*50+(1-0.97)*200=54.5ns

    2. 高速缓存的替换策略

    2.1 高速缓存替换的时机
    image.png
    2.2 随机算法
    2.3 先进先出算法(FIFO)
    • 把高速缓存看做是一个先进先出的队列
    • 优先替换最先进入队列的字块
    FIFO
    2.4 最不经常使用算法(LFU)
    • 优先淘汰最不经常使用的字块
    • 需要额外的空间记录字块的使用频率
    image.png image.png
    2.5 最近最少使用算法(LRU)
    • 优先淘汰一段时间内没有使用的字块
    • 有多种实现方法,一般使用双向链表
    • 把当前访问节点置于链表前面(保证链表头部节点是最近使用的)
    LRU

    七、计算机的指令系统

    1. 机器指令的形式

    1.1 机器指令
    • 机器指令主要由两部分组成:操作码、地址码
    机器指令
    • 操作码指明指令所要完成的操作
    • 操作码的位数反映了机器的操作种类
    • 地址码直接给出操作数或者操作数的地址
    • 分三地址指令、二地址指令和一地址指令
    三地址指令 二地址指令 一地址指令
    1.2 零地址指令
    • 在机器指令中无地址码
    • 空操作、停机操作、中断返回操作等

    2. 机器指令的操作类型

    2.1 数据传输
    • 寄存器之间、寄存器与存储单元、存储单元之间传送
    • 数据读写、交换地址数据、清零置一等操作
    2.2 算术逻辑操作
    • 操作数之间的加减乘除运算
    • 操作数的与或非等逻辑位运算
    2.3 机器指令的操作类型
    • 数据左移(乘2)、数据右移(除2)
    • 完成数据在算术逻辑单元的必要操作
    2.4 控制指令
    • 等待指令、停机指令、空操作指令、中断指令等

    3. 机器指令的寻址方式

    3.1 指令寻址
    • 顺序寻址
    • 跳跃寻址
    跳跃寻址
    3.2 数据寻址
    立即寻址
    • 指令直接获得操作数
    • 无需访问存储器
    立即寻址
    直接寻址
    • 直接给出操作数在主存的地址
    • 寻找操作数简单,无需计算数据地址
    直接寻址
    间接寻址
    • 指令地址码给出的是操作数地址的地址
    • 需要访问一次或多次主存来获取操作数
    间接寻址
    寻址方式 优点 缺点
    立即寻址 速度快 地址码位数限制操作数寻址范围
    直接寻址 寻找操作数简单 地址码位数限制操作数寻址范围
    间接寻址 操作数寻址范围大 速度较慢

    八、计算机的控制器

    控制器是协调和控制计算机运行的

    控制器

    1. 程序计数器

    • 程序计数器用来存储下一条指令的地址
    • 循环从程序计数器中拿出指令
    • 当指令被拿出时,指向下一条指令

    2. 时序发生器

    • 电气工程领域,用于发送时序脉冲
    • CPU依据不同的时序脉冲有节奏的进行工作

    3. 指令译码器

    • 指令译码器是控制器的主要部件之一
    • 计算机指令由操作码和地址码组成
    • 翻译操作码对应的操作以及控制传输地址码对应的数据

    4. 指令寄存器

    • 指令寄存器也是控制器的主要部件之一
    • 从主存或高速缓存取计算机指令

    5. 主存地址寄存器

    • 保存当前CPU正要访问的内存单元的地址

    6. 主存数据寄存器

    • 保存当前CPU正要读或写的主存数据

    7. 通用寄存器

    • 用于暂时存放或传送数据或指令
    • 可保存ALU的运算中间结果
    • 容量比一般专用寄存器要大

    八、计算机的运算器

    运算器是用来进行数据运算加工的

    运算器

    1. 数据缓冲器

    • 分为输入缓冲和输出缓冲
    • 输入缓冲暂时存放外设送过来的数据
    • 输出缓冲暂时存放送往外设的数据

    2. ALU

    • ALU:算术逻辑单元,是运算器的主要组成
    • 常见的位运算(左右移、与或非等)
    • 算术运算(加减乘除等)
    ALU

    3. 状态字寄存器

    • 存放运算状态(条件码、进位、溢出、结果正负等)
    • 存放运算控制信息(调试跟踪标记位、允许中断位等)

    4. 通用寄存器

    • 用于暂时存放或传送数据或指令
    • 可保存ALU的运算中间结果
    • 容量比一般专用寄存器要大

    十、计算机指令执行的过程

    1. 指令执行过程

    指令执行过程 指令执行过程 指令执行过程

    2. CPU的流水线设计

    2.1 指令执行过程的问题
    image.png
    2.2 CPU的流水线设计
    • 类似工厂的装配线
    • 工厂的装配线使得多个产品可以同时被加工
    • 在同一个时刻,不同产品均位于不同的加工阶段
    流水线设计 流水线设计

    串行执行m条指令: T_1=3t \times m
    流水线执行m条指令: T_2=t \times (m+2)
    H=\frac{T_2}{T_1}=\frac{t \times (m+2)}{3t \times m} = \frac{1}{3} + \frac{1}{3m}

    十一、习题

    1.计算机的总线就像是计算机的“高速公路”,你是否可以说出总线主要的功能和分类?

    总线可以分为:片内总线、系统总线,其中系统总线可以分为数据总线、地址总线、控制总线。

    2.什么是总线标准,为什么需要总线标准,现在有哪些常见的总线标准?

    总线标准是系统与各模块、模块与模块之间的一个互连的标准界面。总线标准有利于各模块高效使用总线。USB、PCIe等。

    3.常说的“IO设备”,“I”、“O”分别是什么的缩写?

    Input、Output,输入设备、输出设备。

    4.常见的输入设备可以分为什么种类?

    字符输入设备(键盘等)、图像输入设备(鼠标、数位板、扫描仪)。

    5.常见的输出设备可以分为什么种类?

    主要是图像输出设备(显示器),但在计算机远未普及的时候,显示器属于字符输出设备。

    6.日常常见的计算机外设(显示器、键盘、鼠标、打印机),分别属于什么设备?

    显示器、打印机属于输出设备,键盘、鼠标属于输入设备。

    7.输入输出接口一般需要完成什么工作,可以把接口的线路分为什么线路?

    数据线、状态线、命令线、地址线。

    8.DMA的全称是什么?

    DMA:Direct Memory Access,直接内存存取。

    9.程序中断和DMA相比,有什么优劣?

    程序中断和DMA都是计算机IO和低速设备的交互方式,程序中断方式实现简单,DMA方式效率更高。

    10.你是否可以清晰的表述计算机存储器的层次结构?存储器的层次结构是为了解决什么问题的?

    存储器的层次结构可以简单划分为:缓存-主存-辅存三个层次,缓存-主存主要是为了解决主存速度不够的问题;主存-辅存主要是为了解决主存容量不足的问题。

    11.么是局部性原理,局部性原理对计算机存储系统的设计产生了什么影响?

    局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。

    12.计算机存储系统的每一个层次分别有什么特点?

    缓存:速度快、位价高;主存:速度适中、位价适中;辅存:速度慢、位价低。

    13.计算机的辅助存储器一般是指计算机硬盘,你了解计算机磁盘的物理结构吗?

    14.磁盘的调度算法有哪些?分别有什么特点?

    先来先服务算法、最短寻道时间优先算法、扫描算法、循环扫描算法。

    15.计算机的主存一般是指计算机内存,内存有什么特点?

    主存容量比缓存大、比辅存小,访问速度比缓存慢,比辅存快,主存需要持续通电使用,停电时主存数据将会丢失。

    16.请解释概念:主存、辅存、Cache、RAM、ROM?

    主存:主存储器,即常说的计算机内存条,辅存:辅助存储器,即常说的磁盘、U盘、光盘、磁带等,Cache:高速缓存,即常说的L1、L2、L3缓存,CPU寄存器等,RAM:随机存取存储器(英语:Random Access Memory,缩写:RAM),ROM:只读存储器(Read Only Memory,缩写:ROM)。

    17.什么是字?什么是字块?

    字是指存放在一个存储单元中的二进制代码组合;字块是指存储在连续的存储单元中而被看作是一个单元的一组字。

    18.计算机的高速缓存一般是指Cache,Cache一般位于计算机的什么硬件设备上?

    在CPU上。

    19.一般使用什么指标去评估主存-高速缓存的性能?

    命中率。

    20.命中率是怎么定义的?

    访问主存次数:N_m
    访问Cache次数:N_c
    h=\frac{N_c}{N_c+N_m}

    21.访问效率是怎么定义的?
    访问效率: e
    访问主存时间:t_m 访问缓存时间:t_c
    访问Cache-主存系统平均时间:t_a=ht_c+(1-h)t_m
    e=\frac{t_c}{t_a}=\frac{t_c}{ht_c+(1-h)t_m}

    22.假设CPU执行某段程序共计访问Cache命中4800次,访问主存200次,已知Cache的存取周期是30ns,主存的存取周期是150ns,求Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少?

    平均访问时间:(480030+150200)/5000=34.8ns,命中率:4800/5000100%=96%,访问效率e:30/34.8100%=86.2%,性能提升:(150-34.8)/150*100%=76.8%。

    23.请描述LFU、LRU、FIFO缓存置换算法的过程。

    24.计算机的指令一般由操作码和地址码组成,那么计算机指令可以分类为几种类型?

    移位操作指令、数据传输指令、控制指令、算术逻辑操作指令。

    25.对计算机指令数据的寻址有哪几种方式?

    立即寻址、直接寻址、间接寻址。

    26.计算机的运算器主要由什么组成?控制器呢?

    控制器主要由:程序计数器、时序发生器、指令译码器、寄存器、总线组成。运算器主要由:数据缓冲器、ALU、寄存器、状态字寄存器、总线组成。

    27.请简述计算机指令的执行过程。

    相关文章

      网友评论

          本文标题:计算机组成原理之组成篇

          本文链接:https://www.haomeiwen.com/subject/wyjnvktx.html