欢迎光临散文网 会员登陆 & 注册

计算机组成原理(一)——概论

2023-01-10 20:30 作者:UCLmsc  | 我要投稿

1 序言

1.1 主要内容:运算器、控制器、存储器的结构、工作原理、设计方法和互连构成整机的有关技术。

1.2 学习目标:如何设计功能部件:基本编码、解码器、运算器、控制器、存储器;如何设计计算机系统。

1.3 实践:仿真软件Logisim设计硬件功能部件或系统;在FPGA开发板上基于EDA软件实现所设计的部件或系统。

2 冯诺依曼计算机

2.1 工作原理

(存储系统构建与快速访问)存储程序——将程序存放在计算机的存储器中;(指令系统和控制器设计等)程序控制——按指令地址访问存储器并取出指令,经译码依次产生指令执行所需的控制信号,实现对计算的控制,完成指令的功能。

2.2 组成

总体由主机(cpu(运算器+控制器)+内存 、 外设(IO、外存) 、总线(地址总线、数据总线、控制总线));互连方式:分散连接和总线连接,地址线用来传输地址信息,数据先用来传递数据信息,数据线的根数和存储器最大位宽有关,地址线的根数和地址的个数有关系。

总线(Bus): 一组实际存在的物理传输线路,能为多个部件分时共享公共信息  (是实实在在存在的物理线路,与通路不同);通路 : 数据的传输路径 (逻辑层面上)。共享  :  总线上可以连接多个部件;分时  :  同一时刻只允许一个部件向总线发送信息。

系统总线是计算机系统内部各个功能部件(cpu、主存、I/O接口)之间相互连接的总线,按系统总线传输信息内容不同,可以分为数据总线、地址总线和控制总线。数据总线:传输各功能部件之间的数据信息,包括指令和操作数。其位数(根数)与机器字长、存储字长有关;地址总线:传输地址信息,包括指令和操作数,其位数(根数)与主存地址空间大小及设备数量有关;控制总线:一根控制总线传输一个信号,出CPU传送的控制命令 和 主存或外设入CPU的反馈信号。


单总线结构: 一组总线  (不是一根总线),缺点:CPU和IO设备速度不匹配

双总线结构:  引入通道,对I/O设备进行统一管理,缺点:不能通过IO接口访问主存

三总线结构:  DMA直接连接了部分高速外设和主存 ((DMA:Direct Memory Access 直接内存访问))  

四总线结构: 引入桥接器,用于连接不同的总线   

总线传输的四个阶段:1.申请分配阶段(由需要使用总线的主设备提出申请,经总线仲裁机构决定将下一代传输周期的总线使用授权给予某一申请者,也可将此阶段细分为传输请求和总线仲裁两个阶段);2.寻址阶段(获得使用权的主设备通过总线发出本次要访问的从设备的地址及有关命令);3.传输阶段(主设备和从设备进行数据交换,可单向或双向进行数据传送);4.结束阶段(主设备的有关信息均从系统总线上撤除,让出总线使用权)

*总线仲裁:多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁,分为集中仲裁方式、分布仲裁方式、链式查询方式。

*总线定时:总线在双方交换数据过程中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议或者规则。

· 同步通信(同步定时方式) 由统一时钟控制数据传送

· 异步通信(异步定时方式) 采用应答方式,没有公共时钟标准

· 半同步通信 同步异步结合

· 分离式通信 充分挖掘系统总线每瞬间的潜力

2.2.1 硬件系统

①运算器:算术运算、逻辑运算,基本结构:算术逻辑单元(Arithmetic Logical Unit, ALU)[ALU以全加速器为核心,具有多种运算功能]、寄存器、累加器、连接通路,其结构与指令、数据类型、性能要求相关。

运算器最主要的部件:ACC、MQ、X、ALU。ACC是个累加(寄存)器,用于存放操作数或运算结果;MQ是乘商寄存器,在乘除运算时,用于存放操作数或运算结果;X是通用的操作数寄存器,用于存放操作数;ALU是算数逻辑单元,通过内部复杂电路实现算术运算、逻辑运算。

②控制器:(基本功能)产生指令执行过程所需要的所有控制信号(微命令),控制相关功能部件执行相应操作。(控制信号的形式)电平、脉冲;(产生控制信号的依据)指令(指令寄存器)、状态(状态触发器)、时序(时序电路);(控制信号的产生方式)微程序、硬布线。(基本组成)微命令序列、微命令发生器、指令信息、状态信息、时序信号。

控制器最主要的部件:CU、IR、PC。CU是控制单元,可以分析指令、给出控制信号;IR是指令寄存器,存放当前执行的指令;PC是程序计数器,存放下一条指令地址,有自动加一功能。完成一条指令的流程是:PC取指令→IR分析指令→CU执行指令。

③存储器:(基本功能)存储原程序、元数据、运算中间结果;(工作模式)读/写;(工作原理)按地址访问、读/写数据。容量和地址线数量的对应关系——存储单元的个数=2^地址线的条数,32根地址线可以访问2^32的字节级4GB;(存储单元)在存储器中保存一个n位二进制数的n个存储电路,组成一个存储单元。(地址)存储器由许多存储单元组成,每个存储单元的编号,称为地址。

主存储器包括存储体、存储地址寄存器(MAR,Memory Address Register)和存储数据寄存器(MDR,Memory Data Register)。数据在存储体内按地址存储,每条地址对应一个存储单元,每个存储单元存放一串二进制代码,存储单元中二进制代码的组合称为存储字(word),存储单元中二进制代码的位数称为存储字长。(存储二进制的电子元件称为存储元,每个存储元可存1bit)。MAR位数反应存储单元的个数,而MDR位数=存储字长。[一个字(word) = 16bit]  [MAR\MDR逻辑上应属于主存,现在的计算机通常把MAR\MDR集成在CPU内]

④硬件系统-I/O

2.2.2 软件系统

2.3 计算机的层次结构

硬件逻辑层—微代码层—指令集架构层(e.g., MIPS)—操作系统—汇编语言(e.g., MIPS)—高级语言(e.g., C)—应用程序。

软硬件分界线在指令集架构层,是软硬件的接口,是指令操作硬件的的接口。指令格式及指令的设计与硬件关联。

3 计算机系统性能评价

3.1 非时间指标

3.1.1 机器字长(基本字长):机器一次能处理的 二进制位数

由加法器、寄存器的位数决定;与内部寄存器的位数相等(字长),字长越长,表示数据范围越大、精确度越高;常见的有32位和64位字长。(字长一般与运算器的数据位相同,常用字长是8位、16位、32位和64位)

3.1.2 主存容量与存储带宽

内存(主存)容量 = 可编址的存储单元个数(取决于地址码7位数) ×存储单元的位宽(取决于编址单位);带宽 = 位宽×工作频率/8,是单位时间内数据的传输量。[1B(字节)=8b(位宽)]

(内存储器就是主存)主存容量是指一台计算机主存所包含的存储单元总数;存储带宽是指单位时间内与主存交换的二进制信息量,常用单位B/s(字节/秒)(影响存储带宽的指标包括数据位宽和数据传输速率)

3.1.3 总线宽度:数据总线一次能并行传送的最大信息位数

也被称为数据通路带宽,一般指运算器与存储器之间的数据总线位数;有些计算机内部和外部数据总线宽度不一致;8086\80286\80386内外数据总线等宽;8088\80386SX外部总线宽度8位内部总线宽度16位;Pentium外总线64位,内总线32位(两条32位流水线)。常用总线宽度位32位和64位。

3.1.4 总线频率

指总线信号的时钟频率(工作频率),常以兆赫兹(MHz)为单位,时钟频率越高,工作速度越快。 总线工作频率 = 1/总线时钟周期。[也称为总线的时钟,即机器的时钟频率,为时钟周期的倒数。实际上指一秒内有多少个时钟周期.]

3.1.5 总线带宽

指单位时间传输的数据量,也称为总线传输速率或吞吐率(Bus Throughput),常以每秒兆字节(MB/s),每秒兆位(Mb/s),每秒位(b/s或bps)为单位。总线带宽 = 总线工作频率 × 总线宽(bit/s) = 总线工作频率×(总线宽度/8)(B/S);总线的传输速率 = 总线的带宽 =(总线位宽/8位)(1/存取周期)=(总线位宽/8位)(总线工作频率/总线周期时钟数)

3.1.6 总线时钟周期/CPU时钟周期/机器时钟周期

即机器的时钟周期。计算机有一个统一的时钟周期,以控制整个计算机的各个部件总线也要受此时钟周期的控制。

3.1.7 总线的传输周期(总线周期)

一次总线操作所需要的时间(包括申请阶段,寻址阶段,传输阶段和结束阶段),通常由若干个总线时钟周期构成。

3.2 时间指标

3.2.1 主频f/时钟周期T,外频、倍频

主频f指cpu内核工作的时钟频率,即cpu内数字脉冲信号震荡的速率,与cpu实际的运算能力之间不是唯一的、直接关系;1/f就是时钟周期T(主频表示每秒的时钟周期数),也称节拍周期,是计算机中最基本的、最小的时间单位,是两个功能部件之间传递信息所需要的最短时间。在一个时钟周期内,CPU仅完成一个最基本的动作。(f=100MHz时,T=10ns,f=1GHz时,T=1ns)。主频是cpu的工作频率。

外频(也叫基频,通常为系统总线的工作频率(系统时钟频率))是cpu(内存)与主板之间同步的时钟频率,倍频是cpu主频与外频之间的倍数。主频=外频×倍频(如Pentium 4 2.4G 2400M = 133M × 18),超频就是调节倍频系数。

3.2.2 CPI(Clock cycles Per Instruction/Clock-cycle Per Instruction)

是指执行每条指令(平均)需要的时钟周期数(即T周期的个数)。分为单条指令的CPI、一段程序中所有指令的CPI、指令系统CPI等。CPU时钟周期数= Σ(程序中各类指令的cpi × 程序中该类指令的的比例) = Σ(CPI_i × C_i);CPI = CPU时钟周期数/指令数 = t/T = 指令执行时间/时钟周期时间T;执行一条指令的耗时 = CPI × CPU时钟周期;频率×时间= 时钟周期总数;各CPU的IPS×运行时间=执行的总指令条数。[整个程序的耗时也称为CPU执行时间]

与CPI相关的指标是IPC(Instruction per Clock)每个时钟周期要执行多少条指令.

3.2.3 IPS(Instructions Per Second) 和 MIPS(Million Instructions Per Second)

每秒钟CPU能执行的指令总条数(百万条/秒),MIPS = 指令条数/执行时间×10^6 = 指令条数/(所有指令CPU时钟周期数之和/f)/10^6 = f/CPI/10^6。[K M G T是数量单位]

3.2.4 CPU时间

cpu时间 = 程序中所有指令的时钟周期数之和 × T = 程序中所有指令的时钟周期数之和 / f = 总指令数×CPI×T = 指令数量/MIPS*10^6。

执行一段程序所需的时间 = cpu时间 + I/O时间 + 存储访问时间 + 各类排队时延。

3.2.5 FLOPS,每秒执行浮点运算的次数

MFLOPS:megaFLOPS,每秒10^6次浮点运算

GFLOPS:gigaFLOPS,每秒10^9次浮点运算

TFLOPS:teraFLOPS,每秒10^12次浮点运算

FLOPS:petaFLOPS,每秒10^15次浮点运算

EFLOPS:exaFLOPS,每秒10^18次浮点运算

3.2.6 CPU功耗

动态功耗:P = C × U^2 × f (C负载电容 U工作电压 f工作频率)

静态功耗:半导体电路自身损耗

3.2.7 其他性能指标

吞吐量:指系统在单位时间内处理请求的数量,区域绝信息能多块的输入内存,CPU能多快的取指令,数据能多快地从内存中取出或存入,系统吞吐量主要取决于主存的存取周期。

响应时间:指从用户向计算机发送一个请求,到系统对该请求做出相应并获得他所需的结果的等待时间。

3.2.8 时间指标的应用思考

算法、编程语言、编译程序都影响CPI\MIPS\CPU时间(影响程序数量和指令类型);指令集体系结构全面影响,包括f/T、CPI\MIPS\CPU时间。

4 计算机系统性能测试

4.1 目的:全面了解计算机性能、实时掌握计算机工作状态、为对比、评估、维护提供依据。

4.2 原理:因为计算器配置了大量的传感器和寄存器,系统运行的的相关参数保存在对应的寄存器中,测试程序通过读取相应寄存器的值得到系统运行的状况,通过图形/数据方式显示获取的状态数值。

4.3 常见测试工具:CPUmark(综合cpu测试,包括系统存储、浮点运算和逻辑运算)、SysID(测试CPU电压、运行频率、L1/L2缓存以及各项技术资料)、Hot CPU Tester(测试超频后稳定性,检测cpu详细性能指标并给叔量化分数值,包括复杂矩阵、排序算法、FFT、cpu cache、内存、硬盘及指令集,CPU/Mem Burn-in可以烤机)、3DMark\N-Bench2\FurMark、Hard Disk Speed、Disk Benchmark、iometer、HDD Temperatue Pro、CTSPD)

5 习题

多机指多处理机,是由多个处理器构成,根据处理器之间连接的紧密程度,可分为紧密耦合型多机系统和松散耦合型多机系统。紧密耦合型多机系统有多个CPU和局部存储器构成的组,通过系统总线构成多机系统,并且有可以共享的全局主存储器;松散耦合型多机系统有多个计算节点,由通信系统连接成多机系统,没有全局的主存储器。
指令系统指的是计算机执行的机器指令的集合。注意微指令是微程序级命令,属于硬件范畴;伪指令是由若干机器指令组成的指令序列,属于软件范畴。机器指令介于两者之间,处于软硬件的交界面,机器指令集称为指令系统。
机器字长: CPU一次运算处理的二进制位数。
指令字长: 计算机指令字的位数。
数据字长: 计算机数据存储所占用的位数。
存储字长: 存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。
主频高的CPU不一定比主频低的快——考虑平均CPI的影响。而即便二者平均CPI一样,也要看指令系统(如一个不支持乘法指令,只能用多次加法实现乘法,而另一个支持乘法指令)





计算机组成原理(一)——概论的评论 (共 条)

分享到微博请遵守国家法律