知识点:
计算机的组成与分类
掌握计算机的基本组成和Flynn分类。
计算机主要有6种部件:
(1)控制器:分析和执行指令的部件。所依据的是机器指令。包括程序计数器、指令寄存器、指令译码器、时序部件、微操作控制信号部件和中断机构。
(2)运算器:(Arithmetic and Logic Unit,ALU)算术逻辑单元,对数据进程算数运算和逻辑运算。由ALU、通用寄存器、多路转换器、数据总线组成。
(3)内存储器(内存、主存):存储机器指令和数据。
(4)外存储器(外存、辅存):存储持久化信息。
(5)输入设备
(6)输出设备
注意:现在控制器和运算器统称中央处理器(Central Processing Unit,CPU)
计算机分类
Flynn根据不同的指令流-数据流组织形式,把计算机分成4类:
多级存储器体系
(1)为什么要采用多级存储器体系?
为了确保能够获得尽可能高的存储速率,同时保持较低的成本。
(2)常见的存储器有哪些?
寄存器,Cache(高速缓存),主存储器,磁盘存储器,光盘存储器,磁带等。
数据存取方式:
主存储器
也叫主存或内存,根据工艺和技术不同,可分为以下几种:
辅存
容量大、可靠性高、价格低。
(1)磁带
顺序存取设备,存取时间长,便宜,容量大,便于携带。
(2)磁盘
磁盘的数据存放于磁道。磁道是磁盘上的一组同心圆,宽度与磁头的宽度相同。
沿磁盘半径方向,每英寸长度内磁道的数目称为道密度(道/英寸,TPI),最外层为0道。
沿磁道方向,单位长度内存储二进制信息的个数称为位密度。
每个磁道存储的位数都是相同的,其位密度由外向内而增加。
磁盘上的数据以块为形式进行存放,称为扇区(sector)。
所有盘面上相同位置的磁道组称为一个柱面(每个柱面有n个磁道),若每个磁盘有m个磁道,则该组磁盘有m个柱面。
磁盘存储容量=n*t*s*b
其中:n为保存数据总盘面数,t为每面磁道数,s为每道扇区数,b为每个扇区存储字节数。
磁盘的存取时间包括寻道时间和等待时间。
寻道时间为磁头移动到目标磁道所需时间(半径方向上)。
等待时间为等待读写的扇区旋转到磁头下方所用时间,一般选用旋转半周所用时间为平均等待时间(磁道方向上)。
磁盘的数据传输速率:磁头找到地址后,单位时间内写入或读出的字节数。
R=TB/T
其中:TB为一个磁道上记录的字节数,T为旋转一周所用时间,R为数据传输速率。
(3)RAID存储器
廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks,RAID)。
(4)光盘
CD(Compact Disk,压缩盘),CD-ROM(Copmact Disk Read-Only Memory),CD-I(CD-Interactive),DVD(Digital Video Disc),EOD(Erasable Optical Disk)
优点:便宜、容量大、可靠性高、便于携带、制作简单
缺点:只读,存取时间长
Cache
提高CPU数据输入输出速率。容量小、速度快、价格高。
(1)Cache基本原理
依据程序的局部性原理。
h表示对Cache的访问命中率。1-h表示失效率(未命中率)。
命中率提高一小步,系统平均存储周期将会缩短。
未使用Cache时,某操作的存取时间为 m,m为内存读写时间
使用了Cache时,该操作的存取时间为m*(1-h) + h * n,h为Cache命中率,n为Cache读取时间
例如:某计算机主存读写时间为100ns,有一个指令和数据合一的Cache,已知该Cache读写时间的10ns,取指令命中率为98%,取数命中率为95%。在执行某类程序时,约有1/5指令需要存取一个操作数,则每条指令的平均访存时间为:
(1-98%)*100ns + 98%*10ns + 1/5 * ((1-95%)*100ns + 95%*10ns) = 14.7ns
(2)映射机制
当CPU发出访存请求后,存储器地址先被送到Cache控制器以确定所需数据是否已在Cache中,若命中则直接对Cache进行访问。这个过程被称为Cache的地址映射(映像)。常见的映射有直接映射、全相联映射和组相联映射。
a)直接映射
使用随机存储器作为Cache存储器。
多对一的映射关系,一个主存块只能复制到Cache的一个特定位置上去。
优点是实现简单,缺点是不够灵活,Cache的存储空间可能得不到充分利用。
b)全相联映射
使用相联存储器组成Cache存储器。主存的每一页都可以映射到Cache的任一页。
优点是方式灵活,缺点是速度慢,电路难以实现。
c)组相联映射
直接映射和全相联映射的折中方案。
将Cache中的块再分组,通过直接映射决定组号,通过全相联映射决定Cache中的块号。
主存内一组内的块数与Cache的分组数相同。
(3)淘汰算法
当Cache产生一次访问未命中之后,相应的数据同时读入CPU和Cache。当Cache已存满数据后,新数据必须淘汰Cache中的某些旧数据。最常用的淘汰算法有随即淘汰法、先进先出法(First In and First Out,FIFO)和最近最少使用淘汰法(Least Recently Used,LRU)。平均命中率最高的是LRU算法。
(4)写操作
需要保证缓存在Cache中的数据域内存中内容一致。
a)写直达(write through)。写Cache时,数据同时写回内存。
b)写回(write back)。CPU修改Cache的某一行后,相应的数据并不立即写入内存单元,而是当该行从Cache中被淘汰时,才把数据写回内存中。
c)标记法。
输入输出接口
(1)输入输出方式
a)程序控制方式
CPU直接利用I/O指令编程,实现数据的输入输出。
b)程序中断方式
CPU利用中断方式完成数据的输入/输出,当I/O系统与外设交换数据时,CPU无需等待也不必查询I/O状态,当I/O系统完成数据传输后以中断信号通知CPU。
c)DMA方式
使用DMA控制器(Direct Memory Access Controler,DMAC)来控制和管理数据传输。
d)通道方式
通过一种通过执行通道程序管理I/O操作的控制器。
e)输入输出处理机
也叫外围处理机,具有丰富的指令系统和完善的中断系统。
(2)总线和接口
总线是一组互连和传输信息(指令、数据和地址)的信号线是连接计算机系统各个部件之间的桥梁。
a)总线分类
按相对于CPU或其他芯片的位置可分为内部总线(CPU或其他芯片内部)和外部总线。总线速度是制约计算机整体性能的最大因素。
按总线功能可分为地址总线、数据总线和控制总线3类。
按总线在微机中的位置分为机内总线或机外总线(外设标准)。
按功用分为局部总线、系统总线和通信总线。
(3)接口分类
根据外设与I/O模块交换数据的方式,系统接口分为串行接口和并行接口。串行接口一次只能传送1位信息,并行接口一次可传送多位信息。
串行通信又可分为异步通信方式和同步通信方式。
(4)常见接口
a)ESDI(Enhanced Small Drive Interface,加强型小型设备接口),5~10Mbps。
b)IDE磁盘接口,分为普通IDE(1.5Mbps)和增强型IDE(EIDE)接口(150Mbps)。
c)SCSI,大容量存储设备、音频设备和CD-ROM驱动器的一种标准。最大传输速率为5Gbps(640MB/s)。
d)PCMCIA(Personal Computer Memory Card International Assocation,个人计算机内存卡)。广泛应用于计算机的接口标准。又叫PC Card接口。
e)IEEE-1394,又叫i.Link或FireWire。初始数据传输速率为200Mbps,现在有800Mbps。
f)USB。通用串行总线接口。支持热拔插,最多可支持127个设备。USB1.0速率为12Mbps,USB2.0速率为480Mbps,USB3.0为4.8Mbps。
各种体系结构
(1)精简指令系统计算机
复杂指令系统计算机(Complex Instruction Set Compuer,CISC)主要特点:
精简指令系统计算机(Reduced Instruction Set Computer,RISC),简化指令,减少指令执行周期数。
主要特点:
采用RISC技术的CPU硬件具有如下特点:寄存器数量多;采用流水线组织;控制器的实现采用硬布线控制逻辑电路。
CISC | RISC | |
指令条数 | 多 | 只选取最常见的指令 |
指令复杂度 | 高 | 低 |
指令长度 | 变化 | 短、固定 |
指令执行周期 | 随指令变化 | 大多在几个机器同期完成 |
指令格式 | 复杂 | 简单 |
寻址方式 | 多 | 极少 |
设计访问主存指令 | 多 | 只有Load和Store |
通用寄存器数量 | 一般 | 大量 |
译码方式 | 微程序控制 | 硬件电路 |
对编译系统要求 | 低 | 高 |
(2)流水线技术
通过并行硬件来提高系统性能的常用方法。将一件任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来复杂执行,而这些执行机构可以同时并行工作。
a)参数计算
假设有某种类型的任务,共可分成n个子任务,每个子任务所需时间t,则完成该任务所需时间为nt。以传统方式,完成k个任务所需时间为knt;使用流水线技术执行,则花费时间为nt + (k-1)*t。除了第一个任务需要完整的时间外,其他都通过并行,节省了大量的时间。
如果每个子任务所需时间不同,则其速度取决于执行顺序中最慢的那个,
例如:指令流水线把一条指令分为取指、分析和执行3部分,且3部分的时间分别为2ns,3ns,1ns,那么最长的是3ns,在设计流水线周期时,以执行时间最长的那个为标准,100条指令全部取完的时间为:(2+3+1)+(100-1)*3 = 303ns。
流水线的吞吐率(ThroughPut rate,TP)是指单位时间内流水线锁完成的任务数量或输出的结果数量。
流水线的加速比(speedup rate)指完成同一批任务,不适用流水线所用的时间与使用流水线所用的时间之比。
在上述例子中,303ns的时间内完成了100条指令,从指令角度上看,该流水线的吞吐率为10^9/3.03 = 3.3*10^8/s,加速比为600/3.03 = 2。
b)影响流水线的主要因素
c)非线性流水线
单流水线方式:nt+(k-1)*t
多流水线方式:nt + (k/m-1)*t
(3)并行处理
a)超级标量处理机,配置了多个功能部件和指令译码电路,采取了多条流水线,可以同时执行多个操作。
b)超级流水线处理机。
c)超长指令字处理机,单指令流多操作码多数据的系统结构。
d)向量处理机。
e)多处理机系统
f)大规模并行处理机,也叫阵列处理机,使用按地址访问的随即存储器,以SIMD方式工作,主要用于要求大量高速进行向量矩阵运算的应用领域。MPP是由众多微处理器组成的大规模并行系统,基于RISC微处理器,被用作开发万亿次甚至更高速的并行系统。
g)对称多处理机,SMP也基于RISC微处理器,与MPP最大的差别就是存储系统。SMP有一个统一共享主存空间,而MPP则是每个微处理器都拥有自己的本地存储器。
按多处理机之间连接的紧密程度,又可分为紧耦合系统和松耦合系统。
紧耦合系统又称为直接耦合系统,是指各处理机之间通过互联网络共享内存。用于并行作业中的多任务,一般处理机是同构的,SMP属于紧耦合系统。
松耦合系统又称为间接耦合系统,是指各处理机间通过共享I/O子系统、通道或通信线路实现机间通信,不共享内存。适合粗粒度的并行计算,MPP属于松耦合系统。
(4)互联网络(ICN)
连接一个计算机系统各个处理单元、存储模块以及各种外部设备,在系统软件控制下,使各个处理单元或各个部件相互通信的硬件网络结构。
并行处理机互联方法:
a)恒等置换:相同编号的输入端与输出端一一对应。左右一样。
b)交换置换:实现二进制地址编号中第0位位值不同的输入端和输出端之间的连接。第0位不一样,其他都一样。
c)方体置换:第k位不一样
d)均匀洗牌置换(Shuffle):循环左移,最高位放置在最低位上。
e)蝶式置换:最低位和最高位换位置。
f)位序颠倒置换:全部反向。