计算机系统的硬件结构
计算机硬件部分由运算器、控制器、存储器、输入设备和输出设备五部分组成。
系统总线
计算机系统的五大部件之间的联系方式包括分散连接和总线连接。
总线概念
总线分类
-
片内总线。指芯片内部的总线,寄存器与寄存器之间、寄存器与逻辑部件之间互连的总线
-
系统总线。指 CPU、主存、I/O 设备各大部件之间的信息传输线,按系统总线传输信息的不同,分为数据总线、地址总线和控制总线
-
数据总线:用于传输各部件之间的数据信息,它是双向传输总线,其位数称为数据总线宽度,与机器字长、存储字长有关,一般为 8 位、16 位或 32 位。
- 地址总线:用于指出数据总线上的源数据或目的数据在主存单元的地址或 I/O设备的地址,也就是说地址总线上的代码用来指明 CPU 欲访问的存储单元或I/O 端口的地址,由 CPU 输出,单向传输。地址总线的位数与存储单元的个数有关,如地址线为 20 根,则对应的存储单元个数为 2^20^个。
- 控制总线:用于发出各种控制信号,通常对任一控制线而言,它的传输是单向的,如存储器读/写命令都是由 CPU 发出的,但对控制总线总体而言,又可认为是双向的,如当某设备准备就绪时,便可通过控制总线向 CPU 发送中断请、求。常用的控制信号有:时钟、复位、总线请求、总线允许、中断请求、中断响应、主存读/写、I/O 读写和传输响应等。
-
-
通信总线。用于计算机系统之间或计算机系统与其他系统之间的通信。通信总线按数据传输方式可分为串行通信和并行通信。
- 串行通信:指数据在单条 1 位宽的传输线上,一位一位地按顺序分时传送,如 1 字节数据在串行传送中要通过一条传输线分 8 次由低位到高位按顺序逐位传送。
- 并行通信:指数据在多条并行 1 位宽的传输线上,同时由源地址传送到目的地址,如 1 字节的数据在并行传送中要通过 8 条并行传输线同时由源地址传送到目的地址。
总线指标
-
总线宽度:是指数据总线的根数,用 bit(位)表示,如 8 位(8 根)、16 位(16根)、32 位(32 根)
- 32/64位操作系统指的是计算机地址总线宽度为32/64,32/64根地址总线,处理器指数据总线
-
总线带宽:总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用 MB/s(兆字节每秒)表示,总线带宽=总线工作频率×(总线宽度/8) Byte/s
-
总线工作频率:总线工作频率=1/总线周期,指一秒钟内传输几次数据
-
总线周期:指一次总线操作所需的时间(包括申请阶段、寻址阶段、传送阶段和结束阶段),若干个总线时钟周期构成
-
总线时钟频率:指机器的时钟频率,总线时钟频率=1/总线时钟周期
单总线结构
-
CPU、主存、I/O 设备(通过 I/O 接口)挂到一组总线上
-
单总线结构中设备的寻址采用统一编址的方法,即所有的主存单元以及 I/O 设备接口寄存器的地址一起构成一个统一的地址空间
-
小型机和微型机采用。
双总线结构
-
面向CPU的双总线,一条是主存总线,用于CPU、主存和通道之间进行数据传送;另一条是 I/O 总线,用于多个 I/O 设备与通道之间进行数据传送。
-
在双总线系统中采用单独编址的方法,CPU 对内存总线和系统总线必须有不同的指令系统,内存地址和 I/O 设备的地址是分开的,当访问内存时,由存储读、存储写两条控制线来控制;当访问 I/O 设备时,由 I/O 读、I/O写两条控制线来控制。
-
将速度较低的 I/O 设备从单总线上分离出来,形成存储器总线和 I/O 总线分开的结构。适合大、中型计算机。
通道是一种具有特殊功能的处理器,CPU可以将原来的一部分功能(和I/O设备之间的通信功能)下放给通道,提高效率
三总线结构
- 三总线结构是在计算机系统各部件之间采用三条各自独立的总线来构成信息通路。这三条总线是:主存总线、I/O 总线和直接内存访问(DMA)总线
- 主存总线用于 CPU 和内存之间传送地址、数据和控制信息,是 CPU、内存和通道进行数据传送的公共通路;I/O 总线用于 CPU 和各类外设之间通信,是多个外部设备与通道之间进行数据传送的公共通路;DMA 总线用于内存和高速外设之间直接传送数据,DMA 方式中 I/O设备与存储器直接交换数据而不经过 CPU(在三总线结构中,任意时刻只能使用一种线)
- 三总线系统通常用于中、大型计算机,
三总线第二种,处理器和cache之间的局部总线将CPU和cache或其他局部设备连接,I/O设备与主存的传输不通过CPU,同时cache连接到系统总线和主存传输信息,系统总线又通过扩展总线接口连接到扩展总线之间与各类I/O设备直接传递信息。
四总线结构
- 增加了一条与计算机系统紧密相连的高速总线。在高速总线上挂接了一些高速I/O设备
PCI总线
- PCI总线通过PCI桥(PCI控制器和PCI加速器)与系统总线相连,使得PCI总线和CPU系统总线隔离,具有更高的灵活性,告诉I/O设备直接连接在PCI总线,标准总线控制器连接ISA和EISA总线连接低速I/O。
- 现代计算机总线结构,PCI总线和设备树是X86硬件体系内重要的组成部分
- PCI结构比较复杂,Intel在2004开始提出PCIe总线体系,现在已经到了PCIe5.0
更详细的PCI架构:
PCI 总线主要被分成三部分:
-
PCI 设备。符合 PCI 总线标准的设备就被称为 PCI 设备,PCI 总线架构中可以包含多个 PCI 设备。PCI 设备同时也分为主设备和目标设备两种,主设备是一次访问操作的发起者,而目标设备则是被访问者。
-
PCI 总线。PCI 总线在系统中可以有多条,类似于树状结构进行扩展,每条 PCI 总线都可以连接多个 PCI 设备/桥。可以有多条PCI总线
-
PCI 桥。当一条 PCI 总线的承载量不够时,可以用新的 PCI 总线进行扩展,而 PCI 桥则是连接 PCI 总线之间的纽带。
PCIe
PCI是总线结构,而PCIe是点对点结构
总线控制
总线判优控制
-
链式查询
用3条控制线进行控制:BS(总线忙); BR(总线讲求); BG(总线允许).
BG总线允许信号串行的从第一个IO开始传递直到有接口有总线请求,给设备获得总线使用权,并建立总线忙BS信号表示占用总线。离控制部件越近优先级越高
-
计数器定时查询
总线上的任一设备要求使用总线时,通过BR线发出总线请求.中央仲裁器接到请求信号以后,在BS线为”0”(未被使用)、的情况下让计数器开始计数,计数值通过一组地址线发向各设备.每个设备接口都有一个设备地址判别电路,当地址线上的计数值与请求总线的设备地址相一致时,该设备 置”1”BS线,获得了总线使用权,此时中止计数查询
多一组地址线,少一根BG线
-
独立请求方式
每个设备有一堆总线请求先BR和允许线BG,在总线控制部件内决定使用权
总线通信控制
完成一次总线操作(总线周期)的分四个阶段:
- 申请分配阶段:主模块申请占用总线的请求,总线运用判优控制仲裁决定
- 寻址阶段:主模块向从模块给出地址和命令
- 传数阶段:主模块和从模块交换数据
- 结束阶段:主模块撤销有关消息
同步通信
统一时标控制数据传送 clk
异步通信
不要统一工作时间,采用应答方式(握手),主模块发送请求信号等等返回响应信号才开始通信。
不互锁、半互锁、全互锁
0 1 0 就是低电压 010
不互锁:
主设备发出请求信号,从设备发出应答信号,经过一定的延时,主设备不管有没有收到从设备的应答信号都会撤销请求信号,从设备也如此,不管主设备有没有收到应答信号,经过一定的延时以后,会自动撤销应答信号。
半互锁:
主设备发出请求信号以后,从设备接受到请求信号,发出应答信号,主设备唯有接受到从设备发出的应答信号后才会撤销请求信号,但是从设备不管主设备有没有接受到应答信号,经过一定的延时,都会撤销应答信号,这就可能造成主设备一直没有接受到应答信号导致主设备发出的请求信号一直处于高电平状态。
全互锁:
全互锁解决了半互锁存在的问题,当主设备向从设备发出请求信号以后,从设备接收到请求信号之后将发出应答信号直到主设备接收到来自从设备的应答信号才撤销请求信号,主设备撤销请求应答信号之后,从设备才会撤销应答信号,这就避免了可能导致主设备发出的请求信号一直处于高电平的状态。
半同步通信
保留同步通信的所有地址、命令、数据信号的发出时间参照系统的时钟信号的某个前沿,而接收方按照同一系统时钟信号的后沿来进行判断识别,同时允许不同速度的模块和谐工作,增设wait响应信号线,通过插入时钟周期来协调通信双方的配合
- 分离式通信–其基本思想是将一个传输周期(或总线周期)分解为两个子周期。在第一个子周期中,主模块 A 在获得总线使用权后将命令、地址以及其他有关信息,包括主模块编号(当有多个主模块时,此编号尤为重要)发到系统总线上,经过总线传输后,由有关的从模块 B 接收下来。主模块 A 向系统总线发布这些信息只占用总线很短的时间,一旦发送完成,立即放弃总线使用权,以便其他模块使用。在第二个子周期中,当 B 模块接收到 A 模块发来的有关命令信号后,经过选择、译码、读取等一系列内部操作,将 A 模块所需的数据准备好,便由 B 模块申请总线使用权,一旦获准,B 模块便将 A 模块的编号、B 模块的地址、A 模块所需的数据等一系列信息送到总线上,供 A 模块接收。很显然,上述两个子周期都只有单方向的信息流,每个模块都变成了主模块。
存储器
存储器是计算机系统中的记忆设备,用来存放程序和数据。
存储器的分类
-
按存储介质分类
存储介质是指能寄存“0”、“1”两种代码并能区别两种状态的物质或元器件。存储介质主要有半导体器件、磁性材料和光盘等。
(1)半导体存储器 存储元件由半导体组成的存储器称为半导体存储器,断电信息丢失的易失性存储器 半导体存储器又可按材料的不同分为两类
- 双极型(TTL)半导体存储器
- MOS半导体存储器
- CPU内的寄存器
(2)磁表面存储器 磁表面存储器是在金属或塑料基体的表面上涂一层磁性材料作为记录介质,工作时磁层随载磁铁高速运转,用磁头在磁层上进行读/写操作,故称为磁表面存储器。按载磁体形状的不同,可分为磁盘、磁带和磁鼓。 这类存储器具有非易失性的特点
(3)磁芯存储器 磁芯是由硬磁材料做成的环状元件,在磁芯中穿有驱动线和读出线,这样便可进行读写操作。它是不易失的永久记忆存储器。 (4)光盘存储器 应用激光在记录介质(磁光材料)上进行读/写的存储器,具有非易失性的特点。
- 按存取方式分类 (1)随机存储器(Random Access Memory, RAM) RAM是一种可读/写存储器,其特点是存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存储单元的物理位置无关。计算机系统中的主存都采用这种随机存储器。由于存储信息原理的不同,RAM又可分为静态SRAM(以触发器原理寄存信息)和动态DRAM(以电容充放电原理寄存信息) (2)只读存储器(Read Only Memory, ROM) 只读存储器是能对其存储的内容读出,而不能对器重新写入的存储器。这种存储器一旦存入了原始信息后,在程序执行过程中,只能将内部信息读出,而不能随意重新写入新的信息去改变原始信息。 (3)串行访问存储器 如果对存储单元进行读/写操作时,需按其物理位置的先后顺序寻找地址,则这种存储器称为串行访问存储器
- 按在计算机中的作用分类 (1)主存储器:在计算机内,最大的储存数据的存储器 (2)辅助存储器:主存储器的后援存储器,用来存放当前暂时不用的程序和数据。 (3)缓冲存储器:可以和CPU直接交换信息,连接CPU和主存
主存
主存包括存储体M、逻辑单元和控制电路
-
MAR寄存器是储存器地址寄存器,存放欲访问的储存单元的地址
-
MDR储存器数据寄存器,存放从储存器取出的数据代码或需要存入储存单元的代码。
根据MAR中的地址访问某个存储单元时,需要经过地址译码、驱动,到访问单元。驱动器、译码器、读写电路制作在存储芯片,MAR和MDR在CPU芯片。
MIPS mips的 lw $s0,8($0) 命令。
存储芯片
寄存器
Flip-Flop
D触发器
当Enable输入为0状态存储,1时修改
Latch
锁存器
S R同时为0时存储,0 1 reset,1 0 写入
ROM
DRAM
DRAM通常以一个电容和一个晶体管为一个单元排成二维矩阵。基本的操作机制分为读(Read)和写(Write),读的时候先让Bitline(BL)先充电到操作电压的一半,然后在把晶体管打开让BL和电容产生电荷共享的现象,若内部存储的值为1,则BL的电压会被电荷共享抬高到高于操作电压的一半,反之,若内部存储的值为0,则会把BL的电压拉低到低于操作电压的一半,得到了BL的电压后,在经过放大器来判别出内部的值为0和1。
SRAM
SRAM的速度相对照较快。并且省电。
存储矩阵
IO
计算机的输入输出系统与IO软件和硬件组成,IO软件主要任务是将用户编制的程序或数据输入主机、返回运算结果到用户、协调输入输出系统与CPU工作的协调,一般通过指令系统的IO指令和系统软件的管理程序协调。
IO软件
控制IO硬件,IO软件的指令包括分成I/O指令和通道指令
-
I/O指令: I/O指令实际上是CPU指令的一部分,基本格式是这样的:【操作码 命令码 设备码】。操作码是一种控制指令,如访存、算数逻辑运算等,命令码是执行具体的指令,比如说算数逻辑运算中的加减乘除,而设备码就是外围设备在I/O系统中的编号。通过I/O指令,就能够实现对I/O设备的基本控制。 - 通道指令: IO设备太多会给CPU带来负担于是就有了通道作为借口连接在IO总线和IO设备之间起桥梁的作用,可以缓冲数据和处理中断使得设备可以分时占用CPU。通道指令是在通道内用于执行IO指令的指令,比如控制磁盘、控制IO的工作状态等等
I/O硬件
I/O硬件基本包括接口和I/O设备两个部分
I/O系统与主机的信息传输方式
主要有五种,轮询‘程序控制、中断、DMA直接内存存取、通道。
-
轮询
- 早期的传输方式,不断询问IO设备有无处理要求
-
通道
- 输入/输出通道控制是专门管理IO的处理机,独立于CPU,是一种以内存为中心,实现设备和内存直接交换数据的控制方式。在通道方式中,数据的传送方向、存放数据的内存起始地址以及传送的数据块长度等都由通道来进行控制。
-
程序查询方式
-
程序控制方式是指在程序控制下进行信息传送的方式。如果能够确信一个IO设备已经准备就绪,那就不必查询设备的状态而可直接进行信息传输。在条件传送方式下,程序会判断IO设备是否准备就绪, CPU通过执行程序不断读取并检查设备的状态,如果设备处于准备好状态或者空闲状态,则CPU执行输入/输出指令与外设交换信息
-
通常使用三条指令,测试指令:查询IO设备是否准备好,传送指令:IO设备准备就绪时只需传送指令,转移指令:未准备就绪就执行转移指令,转移到测试指令继续测试
-
-
中断方式
-
处理器的高速和输入输出设备的低速是一对矛盾。中断方式下的IO设备之间的数据的传输步骤:
- 在某个进程需要数据时,发出指令启动输入输出设备准备数据
- 在进程发出指令启动设备之后,该进程放弃处理器,等待相关I/O操作完成。此时,进程调度程序会调度其他就绪进程使用处理器。
- 当I/O操作完成时,输入输出设备控制器通过中断请求线向处理器发出中断信号,处理器收到中断信号之后,转向预先设计好的中断处理程序,对数据传送工作进行相应的处理。
- 得到了数据的进程,转入就绪状态。在随后的某个时刻,进程调度程序会选中该进程继续工作。
-
-
DMA直接内存存取
- 直接内存存取技术是指,数据在内存与I/O设备间直接进行成块传输。
- 直接传送:内存与IO设备间传送一个数据块的过程中,不需要CPU的任何中间干涉,只需要CPU开始时发出传送数据的指令,之后的操作通过中断来控制,通过中断来得知过程是否结束和下次操作是否准备就绪
- DMA工作过程
- 当进程要求设备输入数据时,CPU把准备存放输入数据的内存起始地址以及要传送的字节数分别送入DMA控制器中的内存地址寄存器和传送字节计数器。
- 发出数据传输要求,内存进入等待状态。此时正在执行的CPU指令被暂时挂起。进程调度程序调度其他进程占据CPU。
- 输入设备不断地窃取CPU工作周期,将数据缓冲寄存器中的数据源源不断地写入内存,直到所要求的字节全部传送完毕。
- DMA控制器在传送完所有字节时,通过中断请求线发出中断信号。CPU在接收到中断信号后,转入中断处理程序进行后续处理。
- 中断处理结束后,CPU返回到被中断的进程中,或切换到新的进程上下文环境中,继续执行。