编程基础必学知识之计算机组成原理详解
软件:具有各类特殊功能的信息(程序)组成
软件类型 | 定义 | 举例 |
---|---|---|
系统软件 | 用来管理整个计算机系统 | 标准程序库,语言处理程序,操作系统,数据库管理系统,网络软件 |
应用软件 | 按任务需要编制成的各种程序 | 科学计算程序,数据处理程序,过程控制程序,事务管理程序 |
计算机系统的层次结构
计算机系统的体系结构
分类 | 区别 | 定义 |
---|---|---|
计算机体系结构 | 有无乘法指令 | 程序员见到的计算机系统的属性,即概念性的结构和功能特性(指令系统,数据类型,寻址技术,I/O机理) |
计算机组成 | 如何实现乘法指令 | 实现计算机体系结构所体现的属性(具体指令的实现) |
冯.诺依曼计算机的特点
1.计算机由运算器,存储器,控制器,输入设备和输出设备五大部分组成
2.指令和数据以同等地位存放与存储器内,并可按地址寻访
3.指令和数据用二进制表示
4.指令由操作码和地址码组成
5.存储程序
6.以运算器为中心
冯.诺依曼计算机硬件框图
现代计算机硬件框图
设某机的指令字长为16位,其中操作码占6位,地址码占10位。
操作码 | 操作性质 | 具体内容 |
---|---|---|
000001 | 取数 | 将指令地址码指示的存储单元中的操作数取到运算器的累加器ACC中 |
000010 | 存数 | 将ACC中的数存至指令地址码指示的存储单元中 |
000011 | 加 | 将ACC中的数与指令地址码指示的存储单元中的数相加,结果存于ACC中 |
000100 | 乘 | 将ACC中的数与指令地址码指示的存储单元中的数相乘,结果存于ACC中 |
000101 | 打印 | 将指令地址码指示的存储单元中操作数打印输出 |
存储器的基本组成
组成 | 解释 |
---|---|
存储单元 | 存放一串二进制代码 |
存储字 | 存储单元中二进制代码的组合 |
存储字长 | 存储单元中二进制代码的位数每个存储单元赋予一个地址号 |
MAR | 存储器地址寄存器,反映存储单元的个数 2**n |
MDR | 存储器数据寄存器,反映存储字长 n |
运算器基本组成
寄存器,操作数,运算 | 加法 | 减法 | 乘法 | 除法 |
---|---|---|---|---|
ACC | 被加数及和 | 被减数及差 | 乘积高位 | 被除数及余数 |
MQ | 乘数及乘积低位 | 商 | ||
X | 加数 | 减数 | 被乘数 | 除数 |
控制器的基本组成
简称 | 意义 | 作用 | 解释 |
---|---|---|---|
PC | 取指令 | 取指,访存 | 存放当前欲执行指令的地址,具有计数功能(PC)+1->pc |
IR | 分析指令 | 取指,访存 | 存放当前欲执行的指令 |
CU | 执行指令 | 执行,访存 | 控制单元 |
以取数指令为例
程序首地址PC
取指令:PC->MAR->存储体M-MDR->IR
分析指令:IR->CU
执行指令:IR->MAR->M->MDR->ACC
计算机硬件的主要技术指标
机器字长:CPU一次能处理数据的位数,与CPU中的寄存器位数有关。
运算速度:主频,吉普森法(每条指令的执行的时间以及他们在全部操作中所占的百分比),MIPS(百万条指令每秒),CPI(执行一条指令所需时钟周期数),FLOPS(每秒浮点运算次数)
存储容量(存放二进制信息的总位数)
分类 | 组成 |
---|---|
主存容量 | 存储单元×字节数 |
主存容量 | 字节数 |
辅存容量 | 字节数 |
指令和数据都存于存储器中,计算机如何区分它们?
1.通过不同的时间段,在取指令阶段取出的为指令,在执行指令阶段取出为数据
2.通过地址源:由PC提供存储单元地址的取出的是指令,由指令地址码提供存储单元地址取出的是操作数。
第二章 计算机的发展及应用
Moore定律:微芯上集成的晶体管数目每三年翻两番
计算机的应用
一、科学计算和数据处理
二、工业控制和实时控制
三、网络技术
1.电子商务
2.网络教育
3.敏捷制造
四、虚拟现实
五、办公自动化和管理信息系统
六、CAD/CAM/CIMS
七、多媒体技术
八、人工智能
芯片集成度的提高受以下三方面的限制
芯片集成度受物理极限的制约
按几何级数递增的制作成本
芯片的功耗、散热、线延迟
计算机 | 代替部分 |
---|---|
光计算机 | 利用光子取代电子进行运算和存储 |
DNA生物计算机 | 通过控制DNA分子间的生化反应 |
量子计算机 | 利用原子所具有的量子特性 |
第三章 系统总线
计算机系统五大部件之间的互连的方式有两种
1.分散连接:各部件之间使用单独的连线
2.总线连接:将各部件连到一组公共信息传输线上
总线:连接各个部件的信息传输线,是各个部件共享的传输介质
总线传输特点:某一时刻只能有一路信息在总线上传输,即分时使用。为了减轻总线负载,总线上的部件应通过三态驱动缓冲电路与总线相连
总线上信息的传输:
串行:每条线可一位一位的传输二进制代码,一串二进制代码可在一段时间内逐一传输完成
并行:若干条传输线同时传输若干条二进制代码
面向 CPU 的双总线结构框图
单总线结构框图
以存储器为中心的双总线结构框图
总线分类 | 解释 |
---|---|
片内总线 | 芯片内部的总线,如寄存器与寄存器之间,寄存器与算逻单元ALU之间。 |
系统总线 | 计算机各部件之间的信息传输线(CPU,主存,I/O设备等) |
系统总线-数据总线 | 双向传输,其位数与机器字长,存储字长有关 |
系统总线-地址总线 | 单向,与存储地址,I/O地址有关 |
系统总线-控制总线 | 单向,发出各种控制信号。有出(存储器读、存储器写总线允许、中断确认),有入(中断请求、总线请求) |
通信总线 | 用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。分为串行通信和并行通信 |
总线物理实现
总线特性
总线特性 | |
---|---|
机械特性 | 指总线在机械连接方式上的一些性能,尺寸,形状,引脚的个数以及排列的顺序,接头处的可靠接触 |
电气特性 | 总线的每一根传输线上信号的传输方向和有效的电平范围 |
功能特性 | 每根传输线的功能。地址总线用来指出地址码;数据总线传递数据;控制总线发出控制信号 |
时间特性 | 信号的时序关系 |
总线性能指标
性能 | 指标 |
---|---|
总线宽度 | 数据线分根数,用bit |
总线带宽 | 每秒传输的最大字节数(MBps) |
时钟同步/异步 | 同步,异步 |
总线复用 | 地址线与数据线复用 |
信号线数 | 地址线,数据线和控制线的总和 |
总线控制方式 | 突发,自动,仲裁,逻辑,计数 |
其他指标 | 负载能力(驱动能力),电源电压,总线宽度能否扩展等 |
总线标准
总线标准:系统与各模块,模块与模块之间的一个互连的标准界面
为什么要设立总线标准:为了使设计简化,模块生产批量化,确保其性能稳定,质量可靠,实现可移化,便于维护。
总线标准 | 数据线 | 地址线 | 总线时钟 | 带宽 | 特性 |
---|---|---|---|---|---|
ISA | 16 | 24 | 8MHz(独立) | 16MBps | |
EISA | 32 | 32 | 8MHz(独立) | 33MBps | |
VESA(VL-BUS) | 32 | 33MHz(CPU) | 133MBps | ||
PCI | 32 64 | 33MHz(独立)66MHz(独立) | 132MBps528MBps | 良好的兼容性,即插即用,支持多主设备,具有与处理器和存储器子系统完全并行操作的能力,提供数据和地址奇偶校验,可扩充,软件兼容性好,支持两种电压标准5V、3.3V,采用多路复用 | |
AGP | 32 | 66.7MHz(独立)133MHz(独立) | 266MBps533MBps | ||
RS-232C | 串行通信总线标准 | 数据终端设备(计算机)和数据通信设备(调制解调器)之间的标准接口 | |||
USB | 串行接口总线标准 | 普通无屏蔽双绞线带屏蔽双绞线最高 | 1.5 Mbps(USB1.0)12Mbps(USB1.0)480Mbps(USB2.0) | 具有真正的即插即用,很强的连接能力,数据传输率,标准统一 |
总线结构
单总线结构
双总线结构
三总线结构
三总线结构又一
四总线结构
总线判优控制
为什么要设置总线判优控制:总线上所连接的各类设备,按其对总线有无控制功能分为主设备(模块)和从设备(模块)。主设备对总线有控制权,从设备只能响应从主设备发来的总线命令,对总线没有控制权。总线上的信息是又主设备启动的,若多个主设备同时要使用总线时,就由总线控制器的优判,仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线。
总线优判控制分为集中式和分布式两种
集中式种类 | 特点 |
---|---|
链式查询 | 连线简单,易于扩充,对电路故障最敏感 |
计数器定时查询 | 优先级设置较灵活,对故障不敏感,连线及控制过程较复杂 |
独立请求 | 响应速度快,优先级次序控制灵活,但连线多,总线控制复杂 |
总线通信
通信方式 | 特点 | 适用场合 |
---|---|---|
同步通信 | 指由统一时钟控制的通信,控制方式简单,灵活性差,当系统中各部件工作速度差异较大时,总线工作效率明显下降 | 一般用于总线长度较短,各部件存取时间比较一致的场合 |
异步通信 | 指没有统一时钟控制的通信,部件采用应答方式进行联系,控制方式较同步复杂,灵活性高,当系统中各部件工作速度差异较大时,有利于提高总线工作效率 | 又分为不互锁,半互锁,全互锁 |
半同步通信 | 既可以像同步通信一样由统一时钟控制,又可以像异步通信一样允许传输时间不一致,工作效率介于两者之间 | |
分离式通信 | 1.各模块欲占用总线使用权必须提出申请2.在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式,不再等待对方回答信号3.各模块在准备数据的过程中都不占用总线,使总线可以接受其他模块的请求4.总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分的利用了总线的有效占用,从而实现了总线在多个主,从模块间进行交叉重叠并行传送。 | 大型计算机系统 |
同步式数据输入传输
同步式数据输出传输
第四章 存储器
存储器分类
存储器速度容量和价位的关系
缓存主存层次和主存辅存层次
缓存主存--解决CPU和主存速度不匹配的问题
主存辅存--解决存储系统的容量问题
主存的主要技术指标
存储容量
指主存能存放二进制代码的总位数
存储容量=存储单元个数*存储字长
存储容量=存储单元个数*存储字长/8
存储速度
由存取时间和存取周期来表示,存取时间指存储器的访时间,存取周期指存储器进行两次独立的存储器操作所需的最小时间间隔
存储器带宽
单位时间内存储器存取的信息量,单位可以用字/秒或字节/秒或位/秒。提高存储器带宽可以1.缩短存取周期2.增加存储字长,使每个存取周期可读/写更多的二进制位数3.增加存储体
静态RAM
动态RAM
动态RAM通过电容来存储电荷的原理来存储信息,电容上有足够多的电荷表示存1,无电荷表示存0,电容上电荷一般只能维持1——2ms,因此,必须在2ms内对其所存储单元恢复一次原状态,这个过程称为再生或刷新。
动态RAM时序图
先由将行地址送入行地址缓存器,再由将列地址送入列地址缓存器,因此滞后于的时间必须要超过其规定值
和正、负电平的宽度要大于规定值,以保证芯片内部正常工作
行地址对的下降沿以及列地址对的下降沿应有足够的地址建立时间和地址保持时间,已确定行、列地址均能准确写入芯片。
动态RAM读时序
行地`有效
写允许有效(高)
列地址有效
数据有效
动态RAM写时序
行地址有效
写允许有效(低)
数据有
列地址有效
动态RAM刷新
刷新实质是将原信息读出,在由刷新放大器形成原信息并重新写入的再生过程
集中刷新--在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。之后剩余的时间进行读写操作或维持信息。因此存在“死时间”或访存“死区”。
分散刷新--对每行存储单元的刷新分散到每个存取周期内完成。其中把机器的周期分成两段,前半段用来读写或维持信息,后半段用来刷新,不存在死时间,但存取周期长
异步刷新--异步刷新为前两种的结合,既可以缩短死时间,又可以充分利用2ms的特点
动态RAM和静态RAM的比较
在同样大小的芯片中,动态RAM的集成度远高于静态RAM。
动态RAM行、列地址按先后顺序输送,减少了芯片的引脚,封装尺寸也减少
动态RAM的功耗比静态RAM小
动态RAM的价格比静态RAM的价格便宜
由于使用动态元件(电容),因此它的速度比静态RAM低
动态RAM需要再生,故需要配置再生电路,也需要消耗一部分功率。通常,容量不大的高速缓存器大多用静态RAM实现
存储器与CPU的连接
存储容量的扩展
位扩展--增加存储字长
字扩展--增加存储器字的数量
字、位扩展--既增加存储字的数量,又增加存储字长
存储器与CPU连接
地址线的连接--CPU的地址线往往比存储芯片的地址线数多,通常总是将CPU地址线的低位与存储器的芯片的地址线相连,CPU地址线的高位或在存储芯片的扩充时用,或作其他用途。
数据线的连接--CPU的数据线与存储器的也不等,因此必须对存储芯片扩位使其相等
片选线的连接--是CPU与存储芯片正确工作的关键
合理选择存储芯片--指存储芯片类型(RAM或ROM)和数量的选择。通常用ROM存放程序,标准子程序和各类常数等。RAM为用户编程设计。此外,尽量选择连线简单方便。
提高访存速度的措施
单体多字系统--在一个存取周期内,从同一地址取出4条指令,然后在逐条送至CPU执行。增大存储器带宽,提高存储器工作速度。前提是,指令和数据在主存内必须是连续存放。
多体并行系统--采用多提模块组成的存储器,每个模块具有相同的容量和存取速度,各自具有独立的寄存器(MAR),数据寄存器(MDR),地址译码,驱动电路和读写电路。
高位交叉编址的多体存储器
低位交叉编址的多体存储器
高速缓冲存储器
Cache的基本结构
地址映射变换机构--将CPU送来的主存地址转换为Cache地址。
Cache--主存地址映射
直接映射
优点:实现简单,只需要利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中
缺点:不够灵活,每个主存快只能固定的对应某个缓存块,即使缓存内还空着许多位置也不能被占用,使缓存的空间得不到充分的利用。此外,如果程序恰好重复访问对应同一缓存位置不同的主存块,就要不停的进行替换,降低命中率。
全相联映射--允许主存中每一字块映射到Cache中的任何一块位置上。
优点:灵活,命中率高,缩小了快冲突率。
缺点:所需的逻辑电路甚多,成本较高。
组相联映射
第五章 输入输出系统
输入输出系统发展的四个阶段
1.早期阶段
分散连接 CPU和I/O设备 串行工作 程序查询方式
2.接口模块和DMA阶段
总线连接 CPU和I/O设备并行工作
3.具有通道结构的阶段
4.具有I/O处理机的阶段
输入输出系统的组成
1.I/O软件
I/O指令 CPU指令的一部分
操作码 | 命令码 | 设备码 |
---|
通道指令:通道自身的指令 指明数组的首地址、传送字数、操作命令。
I/O硬件
设备 I/O接口
设备 设备控制器 通道
I/O设备与主机的联系方式
1.I/O设备编址方式
统一编址 用取数存数指令
不统一编址 有专门的I/O指令
2.设备寻址
用设备选择电路识别是否被选中
3.传送方式
串行 并行
4.联络方式
立即响应方式
异步方式采用应答信号
同步工作采用同步时标联络
5.I/O设备
辐射式连接
总线式连接
I/O设备与主机信息传送的控制方式
1.程序查询方式
2.程序中断方式
倘若CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后才予以响应。
3.DMA方式(直接存储器存取)
主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时,无须调用中断服务程序。若出现DMA和CPU同时访问主存,CPU总是将总线占有权让给DMA,通常把DMA这种占有称为窃取或挪用。窃取的时间一般为一个周期,故又把DMA占用的存取周期窃取周期或挪用周期。
I/O接口
为什么设置I/O接口
实现设备的选择
实现数据缓冲达到速度匹配
实现数据串--并格式转换
实现电平转换
实现电平转换
传送控制命令
反映设备的状态("忙","就绪","中断请求")
端口和接口的关系
端口是指接口电路中的一些寄存器,这些寄存器用来存放数据信息,控制信息和状态信息,相应的端口被分别称为数据端口,控制端口,和状态端口。若干个端口加上相应的控制逻辑才能组成接口。
接口的功能和组成
总线连接方式的I/O接口电路
设备选择线,数据线,命令线,状态线
接口的功能和组成
接口功能 | 接口组成 |
---|---|
选址功能 | 设备选择电路 |
传送命令的功能 | 命令寄存器,命令译码器 |
传送数据的功能 | 数据缓冲寄存器 |
反映设备状态的功能 | 设备标记状态 |