计算机的组成(组成原理需要掌握的知识)

一.计算机的总线与IO设备

1.1 计算机的总线

总线是连接计算机不同设备的数据线。
常见的总线有:USB、PCI总线、ISA总线、Thunderbolt总线……

1.1.1总线的概述

有什么用?
解决不同设备之间的通信问题。
以USB为例:

  • 提供了对外连接的接口
  • 不同设备可以通过USB(通用串行总线)接口进行连接
  • 连接的标准,促使外围设备接口的统一

总线的分类: 片内总线、系统总线

1. 片内总线:高集成度芯片内部的信息传输线。

以CPU内总线为例:

  • 芯片内部的总线
  • 连接在寄存器与寄存器之间
  • 寄存器与控制器、运算器之间
  • ……

2. 系统总线:CPU、主存、IO设备、各组件之间的信息传输线。有数据总线、地址总线、控制总线 三类。

  • 数据总线:双向传输各个部件的数据信息。数据总线的位数(总线宽度)是数据总线的重要参数,一般与CPU位数相同(32位、64位)。如果总线是32位的,那么一次就可以传输32位(4字节)的数据。
  • 地址总线:用于数据寻址,指定源数据或目的数据在内存中的地址,地址总线的位数与存储单元有关。地址总线位数=n,则寻址范围:0~2n
  • 控制总线:控制总线是用来发出各种控制信号的传输线;控制信号经由控制总线从一个组件发给另外一个组件;控制总线可以监视不同组件之间的状态(就绪/未就绪)。

1.1.2 总线的仲裁

目的:为了解决不同设备使用总线优先顺序
仲裁方法:链式查询、计时器定时查询、独立请求

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

1.2 计算机的输入/输出设备

1.2.1 输入输出接口的通用设计

  • 数据线:是I/O设备与主机之间进行数据交换的传送线;有单/双向传输数据线两种。
  • 状态线:I/O设备状态向主机报告的信号线;查询设备是否已经正常连接并就绪;查询设备是否已经正常连接并就绪;查询设备是否已经正常连接并就绪。
  • 命令线:CPU向I/O 设备发送命令的信号线;发送读写信号;发送启动停止信号。
  • 设备选择线:主机选择I/O设备进行操作的信号线;对连在总线上的设备进行选择。

1.2.2 CPU与IO设备的通信

为了解决CPU速度与I/O设备速度不一致,提出两种通信方法:程序中断、DMA(直接存储器访问)。

  1. 程序中断:当外围I/O设备就绪时,向CPU发出中断信号,CPU专门的电路响应中断信号后会停止当前工作,去处理I/O设备的工作。提供低速设备通知CPU的一种异步的方式、CPU可以高速运转同时兼顾低俗设备的响应。但是,经常中断CPU会降低CPU的效率。
  2. DMA:DMA直接连接主存与I/O设备,DMA工作时不需要CPU的参与。当主存与I/O设备交换信息时,不需要中断CPU,可以提高CPU的效率。在硬盘与显卡中都有DMA。

二.计算机的存储器

2.1 计算机的存储器概览

2.1.1 存储器的分类

存储器可以按照存储介质分类,也可以按照存取方式分类。
按存储介质分类:

  • 半导体存储器:内存、U盘、固态硬盘
  • 磁存储器:磁带、磁盘

按存取方式分类

  • 随机存储器(RAM):随机存取,与位置无关
  • 串行存储器:与位置有关、按顺序查找
  • 只读存储器(ROM):只读不写

2.1.2 存储器的层次结构

位价:每比特位价格

以下三个层次位价由低到高:
缓存(CPU寄存器、高速缓存):速度快、容量小、价格高
主存(内存):速度快、容量适中、价格高
辅存(磁盘、U盘、移动硬盘):速度慢、容量大、价格低
在这里插入图片描述
缓存-主存层次:

  • 原理:局部性原理(CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中,该区域就是程序经常访问的内存,只需要把这段内存置换至缓存即可)。
  • 实现:在CPU与主存之间增加一层速度快(容量小)的Cache(高速缓存)
  • 目的:解决主存速度不足的问题,让CPU尽可能访问Cache而不是主存

主存-辅存层次:

  • 原理:局部性原理
  • 实现:主存之外增加辅助存储器(磁盘、SD卡、U盘等)
  • 目的:解决主存容量不足的问题

2.2 计算机的主存与辅存

问题引入:为什么计算机断电,内存数据丢失,磁盘数据不会丢失?

2.2.1 主存储器——内存

主存就是RAM(随机存取存储器),RAM通过电容存储数据,必须隔一段时间刷新一次,而刷新需要电的存在,如果段电,那么一段时间后将丢失所有数据。
32位系统最高支持232=4*230=4GB内存;64位系统最高支持264=234*230=234GB内存。

主存储器由存储体和3.2节中介绍的MAR、MDR协同工作。
其中存储体由许多的存储单元组成,每个存储单元里面又包含若干个存储元件,每个存储元件可以存储一位二进制数0/1。
存储单元表示存储二进制代码的容器,一个存储单元可以存储一连串的二进制代码,这串二进制代码被称为一个存储字,代码的位数为存储字长。
在存储体中,存储单元是有编号的,这些编号称为存储单元的地址号。而存储单元地址的分配有两种方式,分别是大端、大尾方式和小端、小尾方式。
存储单元是按地址寻访的,这些地址同样都是二进制的形式。

要掌握以下几个定义
存储字:存放在一个存储单元中的二进制代码组合,可以是数据、指令、字符串等。是存储单元最小的单位。
存储字长:计算机字长是指CPU一次能并行处理的二进制位数,字长总是8的整数倍,通常PC机的字长为16位(早期),32位,64位。 计算机在存储、传送或操作时,作为一个单元的一组二进制码称为字,一个字中的二进制位的位数称为字长。
字块:存储在连续的存储单元中而被看作是一个单元的一组字。

例:假设一个字有32位,一个字块共B个字,主存共M个字块。则主存总字数=B×M、贮存总容量=B×M×32.

字的地址:分为两个部分,前m位是字块的地址,后b位是字在字块中的地址

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

内存与CPU的连接方式:
在这里插入图片描述

2.2.2 辅助存储器——磁盘

磁盘调度算法:

  • 先来先服务算法
  • 最短寻道时间优先
  • 扫描算法(电梯算法)
  • 循环扫描算法

2.3 计算机的高速存储器

为了解决CPU与主存的速度不匹配

2.3.1 高速缓存的工作原理

缓存也有字、字块、字的地址三个概念。
缓存容量(字块数)远小于主存容量(字块数),缓存存储的数据实际上是主存的一个复制。
CPU访问高速缓存时会有两种情况:

  • CPU需要的数据在缓存里
  • CPU需要的数据不在缓存里,则CPU需要去主存取

命中率:CPU从高速缓存取数据的几率。是衡量缓存的重要性能指标。
命中率=访问Cache的次数 / (访问主存的次数+访问Cache的次数)
访问效率:也是衡量缓存的性能指标。
在这里插入图片描述

2.3.2 高速缓存的替换策略

高速缓存的替换时机:当CPU需要的数据不在高速缓存时,高速缓存需要从贮存在如所需数据。
四种替换策略:

  • 随机算法:每一次需要发生替换的时候,随机选取一个高速缓存的位置替换相关内容。
  • 先进先出算法(FIFO):把高速缓存看作是一个先进先出的队列,优先替换最先进入队列的字块。
  • 最不经常使用算法(LFU):优先淘汰最不经常使用的字块,需要额外的空间记录字块的使用频率。
  • 最近最少使用算法(LRU):优先淘汰一段时间内没有使用的字块。可以使用双向链表实现,把最近访问的的结点放在链表头部,淘汰尾部结点。

三.计算机的CPU

3.1 计算机的指令系统

3.1.1 机器指令的形式

机器指令主要由两个部分组成:操作码、地址码。
操作码:指明指令所要完成的操作。操作码的位数反映了机器的操作种类,比如8位操作码有28=256种操作。
地址码:地址码直接给出操作数或者操作数的地址,分为三地址指令(地址码有三个地址)、二地址指令(地址码有两个地址)和一地址指令(地址码有一个地址)。

  • 三地址指令:(addr1)OP(addr2)->(addr3)
  • 二地址指令:(addr1)OP(addr2)->(addr1)或(addr1)OP(addr2)->(addr2)
  • 一地址指令:(addr1)OP->(addr1)或(addr1)OP(ACC)->(addr1)

机器指令也可以没有地址码称为零地址指令,主要做空操作、停机操作、中断返回操作。

3.1.2 机器指令的操作类型

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

3.1.3 机器指令的寻址方式

有指令寻址和数据寻址两种方式。
指令寻址:

  • 顺序寻址:默认
  • 跳跃寻址:遇见JMP就跳跃寻址
    数据寻址:
  • 立即寻址:指令直接获得(包含)操作数,无需访问存储器。优点:速度快,缺点:地址码位数限制操作数表示范围。
  • 直接寻址:直接给出操作数在主存中的地址,寻找操作数简单,无需计算数据地址。优点:寻找操作数简单,缺点:地址码位数限制操作数表示范围。
  • 间接寻址:指令地址码给出的是操作数地址的地址,需要访问一次或多次主存来获取操作数。优点:操作数寻址范围大,缺点:速度较慢。

3.2 计算机的控制器

控制器是协调和控制计算机运行的。
控制器的组成:

  • 程序计数器:用来存储下一条指令的地址,当CPU工作时,CPU会循环从程序计数器中拿出指令,当指令被拿出时,程序计数器会指向下一条指令。
  • 时序发生器:用于发送时序脉冲,CPU依据不同的时序脉冲有节奏的进行工作。就像CPU的节拍器。
  • 指令译码器:翻译操作码对应的操作以及控制传输地址码对应的数据。
  • 指令寄存器:从缓存或高速缓存取计算机指令(机器指令)。
  • 主存地址寄存器(MAR):保存当前CPU正要访问的内存单元的地址。
  • 主存数据寄存器(MDR):保存当前CPU正要读或写的主存数据。
  • 通用寄存器:暂时存放和传送数据或指令;可保存ALU(算术逻辑单元)的运算中间结果;容量比一般专用寄存器大。

3.3 计算机的运算器

运算器是用来进行数据运算加工的。
运算器的组成:

  • 数据缓存器:分为输入缓冲和输出缓冲,输入缓冲暂时存放外设送过来的数据,输出缓冲暂时存放外送往外设的数据。
  • 算数逻辑单元(ALU):常见的位运算(左右移、与、非等),算术运算(加减乘除等)。
  • 状态字寄存器:存放运算状态(条件码、进位、溢出、结果正负等);存放运算控制信息(调试跟踪标记位,允许中断位等)。
  • 通用寄存器:与控制器的通用寄存器类似。用于暂时存放和传送数据或指令;可保存ALU(算术逻辑单元)的运算中间结果;容量比一般专用寄存器大。

3.4 指令执行的过程

3.4.1 指令执行的过程

三个步骤:

  1. 取指令:从缓存取指令送到指令寄存器。
  2. 分析指令:指令译码器译码,发出控制信号;同时程序计数器+1。
  3. 执行指令:装载数据到寄存器,ALU处理数据,如果需要记录状态,则状态字寄存器记录运算状态,最后送出运算结果。
    指令执行过程

3.4.2 CPU流水线设计

因为取指令和分析指令时是控制器在工作,执行指令运算器在工作,两者不能同时工作,所以CPU的综合利用率并不高。因此提出CPU流水线设计。
流水线执行效率将近是串行执行的3倍。
CPU流水线执行

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值