计算机体系结构和计算机组成

概述

计算机系统的层次结构

  机器语言,用0、1代码表示的语言。
  汇编语言,符号式的语言,它用符号ADD、SUB、MUL、DIV分别表示加减乘除操作。从本质上看,汇编语言仍是一种面向实际机器的语言,它的每一条语句都与机器语言的某一条语句一一对应。汇编语言摆脱不了实际机器的指令系统,因此,汇编语言没有通用性,每台机器必须有一种与之相对应的汇编语言。
  高级语言对问题的描述十分接近人们的习惯,程序员完全不必再去了解实际机器的机型、指令系统。
  用高级语言编程的程序员可以把IBM PC和RS6000两种机器看成是同一种机器。用汇编语言编程的程序员IBM PC和RS6000是两种截然不同的机器。

计算机体系结构和计算机组成的概念

  计算机体系结构是确定计算机系统中软、硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件(把软件永恒地存于只读存储器中)实现的功能。
  计算机组成包含许多对程序员来说是透明的硬件细节,是计算机体系结构的逻辑实现。
  计算机体系结构是指机器语言程序员和编译软件开发者所看到的机器的属性,包括指令系统、寻址方式、寄存器定义、中断系统、I/O系统等。
  当两台机器指令系统相同时,它们具有相同的结构。这两台机器如何实现其指令的功能,是组成方式的不同。一台机器是否具备乘法指令的功能是结构问题。怎样实现乘法指令是组成问题,可以使用专门的乘法电路来实现乘法指令,也可以使用连续相加的加法电路来实现。

计算机体系结构的发展脉络

  1、ENIAC,研制氢弹、计算远程火炮射程。编程方式,插板上电缆的插拔及开关的手工扳动。1948年ENIAC得到改进,增加了通过穿孔卡片取代插板来对系统进行编程的能力,这一次改进极大提高了程序开发的速度。

  2、作为此次升级的顾问,约翰·冯·诺依曼提出了一种通用的计算机体系结构,其中包含存放程序指令和数据的存储单元、由算术逻辑单元和寄存器构成的处理组件、具有指令寄存器和程序计数器的控制单元。这种结构称为冯·诺依曼体系结构。

  冯·诺依曼计算机由控制器、运算器、存储器、输入设备、输出设备五大部件组成;以运算器为中心;指令和数据都存储在内存中;指令由操作码和地址码组成;指令在内存中按顺序存放,人们只要事先将编好的程序按顺序存入主存各单元,当运行程序时,先给出该程序在主存的首地址,然后采用程序计数器加1的方法,自动形成下一条指令所在地址,机器便可自动完成整个程序的操作。

  3、到了20世纪80年代初,一种称为精简指令集计算机结构的出现,使计算机体系结构产生了一次重大变革。这种结构简化了指令系统,把更多的硅芯片面积用于实现流水线和Cache,有效地提高了性能。

  4、Intel于2004年宣布放弃其高性能单处理器项目,转向多核的研究和开发,通过在单个芯片上实现多个处理器核心来提高性能。IBM、SUN、AMD等公司都纷纷采用了这一途径。这标志着体系结构的重大转折:从单纯依靠指令级并行转向开发线程级并行和数据级并行。


加法运算过程
M表示存储器的任一地址号,[M]表示M地址号单元中的内容。ACC和X是寄存器。
[M] --> ACC
[M] --> X
[ACC] + [X] --> ACC
[ACC] --> 存储器

指令执行过程
读取指令:程序启动后,控制器立即把程序计数器的内容(即程序首地址,即程序第一条指令的地址)送至MAR(存储器地址寄存器),并控制存储器做读操作,存储器把读出的首指令送至数据线、MDR(存储器数据寄存器),最后送到指令寄存器。
分析指令:指令寄存器中的操作码送至控制单元,经控制单元分析操作码是取数指令。
执行指令:指令寄存器中的地址码送至MAR,最终取数至MDR、ACC。


 总线

一、总线分类

1、按总线所处位置分类
  片内总线,芯片内部的总线,如在CPU芯片内部,寄存器与寄存器之间,寄存器与算逻单元之间的连线。
  片外总线(板级总线),位于主板上,连接CPU、内存、I/O接口之间的线。
  机外总线,与外围设备连接的总线,标准有有IDE、SCSI、USB、RS232等。近距离的机外总线大多使用并行传输的方式,远距离的机外总线大多使用串行传输的方式。

2、按总线传输内容分类
  数据总线,地址总线,控制总线。

3、按总线在系统中连接部件的不同,分为:
  存储总线,连接存储器。
  DMA总线,连接DMA控制器。
  系统总线,连接I/O总线和其它总线。

二、总线标准

  • 提高总线的时钟频率,并行总线会出现越来越严重的串扰和同步问题,所以采用串行技术的总线标准反而传输速率更快。
  • 总线桥,不同总线间的连接器件,起速度缓冲、电平转换、协议转换等作用。
  • 内存连接在存储总线上,最快;声卡、显卡、网卡等连接在PCI-E总线上,次之;IO总线可以通过总线桥连接到PCI-E总线上。

1、ATA总线
  IDE(集成驱动电路,把控制器和盘体集成在一起),也称ATA。
  IDE接口主要用来连接硬盘和光驱。

2、SATA总线
  IDE接口已淘汰,被SATA接口代替。

3、SCSI总线
  SCSI总线上的设备没有主次之分,双方平等。
  SCSI接口用来连接磁盘、光驱、打印机、扫描仪等。
  SCSI主要用在服务器。

4、SAS总线
  串行SCSI,并且向下兼容SATA。

5、RS232总线
6、USB总线

7、PCI总线
  PCI接口已淘汰,被PCI-E接口代替。

8、AGP总线,为适应视频处理而设计。
  AGP接口已淘汰,被PCI-E接口代替。

9、PCI-E总线是一种完全不同于PCI总线的一种总线规范。
  用于连接声卡、显卡、网卡、USB拓展
三、总线结构  

1、单总线结构(只有一条系统总线)

  访问存储器和访问外设指令相同,由地址来区分存储器和外设。
  理论上总线上的任意设备都可以作为主设备

2、双总线结构(存储总线,系统总线)

  由于内存和外设位于不同的总线,需要增加IO指令。

3、多总线结构

四、控制总线

  典型的总线事务包括:总线请求、总线仲裁、地址传输、数据传输、总线释放。

  总线事务具体过程:主设备通过控制线向总线控制部件提出占用总线的请求,最终主设备获得总线使用权;主设备把从设备地址放到地址线上选中从设备;数据通过主设备和从设备间的数据总线传输;释放对总线的使用。

  主设备,只有主设备能够向总线控制器申请占用总线的请求,主设备包括CPU、DMA控制器等。
  从设备,只能被动配合主设备。

  同一时刻,只能有一个主设备占用总线。当计算机系统中只有一个主设备的时候,不存在总线仲裁的问题。当有两个以上的主设备时,多个主设备同时提出总线申请,需要总线仲裁。

1、仲裁逻辑

  链式查询
  申请线、同意线、忙线
  如果两个主设备同时提出总线申请,同意线上的主设备是串联的,同意信号到达第一个总线请求的主设备后不再往下传递。

2、通信控制
  通信控制规定主设备和从设备双方如何协调工作。
  a、同步通信:
    总线中包含时钟线,通信双方在规定的时间完成规定的工作。

  b、异步通信:
    不需要时钟信号,而是采用应答方式(或称握手方式),需要增添应答线,。
    不需要在规定的节拍内必须完成某些工作。总线上每一个事件的发生取决于前一个事件的发生,一个事件接着一个事件,直到结束。
    速度慢。
    举例:TCP经过三次握手后,再通信,最后关闭通信。

  c、分离式通信:
    在准备数据的过程中不占用总线。
    基本思想是将一个总线周期分解为两个子周期。第一个周期,主设备在获得总线使用权后将命令、地址以及其他相关信息发送给从设备,然后放弃总线使用权。第二个周期,从设备译码接收到的命令、准备数据。接着从设备申请总线使用权,一旦获准,把数据传送给主设备。

   注意:上面的同步和异步最核心的区别是,是不是在规定的时间内完成规定的工作。


存储器——半导体存储器

一、分类

  1、半导体存储器按其材料不同,分为双极型(TTL)半导体存储器和MOS半导体存储器两种。TTL半导体存储器速度快,一般用作高速缓存。MOS半导体存储器集成度高,成本低廉。

  2、按存取方式分类,可分为随机存储器和只读存储器等。

二、只读存储器——ROM
  半导体ROM的基本器件有两种,MOS型和TTL型。
  断电也不会丢失信息。
  它可以与随机存储器一起组成主存,构成统一的主存地址域。
  应用:BIOS
  分类:只读存储器有掩模型ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电擦除可编程ROM(EEPROM)。
  1、掩模型ROM,行选择线和列选择线交叉处既可有MOS管元件,也可没有,以此来区分1和0。
  2、可编程ROM,行选择线和列选择线交叉处的TTL基本器件中的熔丝可以熔断,可以不熔断
  3、可擦除可编程ROM,对其所存信息可以任意次改写。

三、随机存储器——RAM

  随机存储器RAM,可读可写。任何一个存储单元的内容都可以随机存取,并且存取时间与存储单元的物理位置无关
  静态随机存储器,触发器。速度快。可做高速缓存
  动态随机存储器,电容充放电。集成度高。广泛应用于主存储器

四、存储体系

  1、主存可以和CPU直接交换信息,辅存不能和CPU直接交换信息,辅存只能和主存交换信息。
  2、寄存器、缓存、主存这三类存储器是由速度不同、价位不同的半导体材料制成的。
  3、主存和缓存之间的数据调动是由硬件自动完成的,对程序员是透明的。
  4、主存和辅存之间的数据调动是由硬件和操作系统共同完成的。
  5、虚拟存储器。程序员编程的地址范围与虚拟存储器的地址空间相对应,虚拟存储器存储单元的个数比主存的实际存储单元个数要多得多。逻辑地址、物理地址。逻辑地址和物理地址的转换是由硬件和操作系统自动完成的,对程序员是透明的。当逻辑地址的内容在主存时,机器便可直接使用;若逻辑地址的内容不在主存,则必须先将此逻辑地址的内容传递到主存的合适单元后再为机器使用。

 五、主存内部结构

  1、ASCII码共收录128个字符。为了满足字符处理的需要,常用8位二进制数表示一个字节,因此存储字长都取8的倍数。

  下图:地址线可以使用异或运算选中目标

  2、主存结构

    a、译码器、驱动器、读/写控制电路、片选线、读/写电路——这些部件都被集成在主存储器内部。
    b、译码器能把地址线送来的信号转换成选择线上的信号。
    c、控制线主要有读/写控制线、片选线。
    d、片选信号,由于半导体存储器是由许多芯片组成的,为此需用片选信号来确定哪组芯片被选中。
    e、读/写电路包括读出放大器和写入电路。

  3、静态RAM
    用6个MOS管可构成一个基于触发器的基本单元电路,此基本单元电路可用来寄存一位信息。
    由于静态RAM是用触发器工作原理存储信息的,因此即使信息读出后,它仍保持其原状态,不需要再生。
    Intel 2114芯片是静态RAM,基本单元电路由6个MOS管组成。
    Intel 2114芯片读时序:在整个读周期中,读控制线信号始终有效;地址有效;片选有效;数据输出。
    Intel 2114芯片写时序:地址有效;片选有效、写控制信号有效;数据有效;写入数据。

  4、动态RAM
    有三管式和单管式两种。由三个MOS管可以组成一个动态RAM基本单元电路(可用来存储一位信息);为了提高集成度,可以将三管电路进一步简化,得到单管式RAM。
    电容上有电荷表示存1,电容上无电荷表示存0。
    电容上的电荷一般只能维持1到2毫秒,因此即使电源不断电,信息也会自动消失。为此,必须在2毫秒内对其所有存储单元恢复一次原状态,称为刷新或再生。

  5、静态RAM和动态RAM比较——一个基本单元电路,静态RAM需要6个MOS管,动态RAM只需1个MOS管。
    a、同样大小的芯片中,动态RAM集成度高。
    b、动态RAM的电路简单,功耗低。
    c、动态RAM的电路简单,价格便宜
六、并行存储器

  为了提高访问存储器的带宽,在存储体系结构方面努力,出现了并行存储结构。
  1、双端口存储器
    传统的存储器只有一个读写端口,要么进行写,要么进行读,读写不能同时进行。
    双端口存储器每个芯片有两组数据总线、地址总线和控制总线,形成两个访问端口,只要不是同时访问同一个存储单元,就允许两个端口并行地进行独立的读写,而不互相干扰。如果两个端口同时访问同一个存储单元,就由片内仲裁逻辑决定由哪个端口访问。
    在多处理机系统中,可以让两个CPU同时访问主存储器
  2、单体多字系统
    根据程序访问的局部性,要连续使用的信息(数据,尤其是指令)大多是连续存放的。以此为前提,可以用同一地址码,在一个读周期内,取出多个字。
    如果遇到转移指令或随机分布的数据时,会大大降低实际的带宽。
  3、多体存储系统
    多体存储系统的各存储体都有自己的一套MAR、MDR、地址译码器、驱动电路和读/写电路。
    低位交叉编址(交叉编址),非常容易实现各存储体的分时流水工作,大大提高了存储体的带宽。这是目前多体存储器的主流。
    高位交叉编址(顺序编址),只要合理调动,使不同的请求源同时访问不同的体,可实现并行工作。

七、相联存储器

  既可按地址寻址,又可按内容寻址。
  相联存储器的每个单元不仅能存储,还要能进行逻辑运算,需增加很多逻辑电路。
  随着大规模集成电路集成度的提高,商品化相联存储芯片的容量已经得到提高。
  可应用于数据库服务器的内存。


存储器——缓存

一、缓存基础原理
  通过大量典型程序的分析,指令和数据在主存内都是连续存放的。

二、缓存的实现
  为了将主存与缓存映射起来,将主存与缓存都分成若干块,每个块内又包含若干个字,并使它们的块大小相同(即块内的字数相同)。
  块长的最优值是很难确定的,一般每块取4到8个可编址单位(字或字节)较好,也可取一个主存周期所能调出主存的信息长度。例如,CRAY-1的主存是16体交叉编址,每个体为单字宽,其存放指令的缓存块块长为16个字。
  为加速缓存和主存之间的调动,主存大多采用多体结构

三、缓存由硬件自动完成
  主存块调入缓存的工作全由机器硬件自动完成,缓存对用户是透明的,即用户编程时所用到的地址是主存地址,用主根本不知道这些主存块是否已调入缓存内。

四、修改数据
  1、写直达法  2、写回法

五、多级缓存和分立缓存
  一级缓存可以集成在CPU内部,称为片内缓存。由于片内缓存容量不可能很大,可以在CPU外部添加二级缓存,称为片外缓存。并使用一个独立的数据路径把片外缓存和CPU连接。
  统一缓存/分立缓存。分立缓存是指把指令和数据分别存放在两个缓存中。指令级并行的系统为了避免出现执行指令中的取数操作和并行的取指操作对统一缓存的争用,一般使用分立缓存。

六、缓存替换策略
  先进先出、近期最少使用、随机


存储器——硬盘

一、硬盘格式化

  刚生产出的硬盘不能直接使用,必须经过低级格式化、分区、高级格式化。

  1、低级格式化,将空白的磁盘划分出柱面和磁道,再将磁道划分为若干个扇区。

  2、分区,安装操作系统和软件之前,还要将硬盘分为几个不同的存储区域。
    分区后,硬盘空间分为两部分,主引导扇区和1-4个分区(主分区、扩展分区、逻辑分区)。
    主引导扇区,也叫主引导记录,位于硬盘的0磁道0柱面0扇区,即0扇区,它只占一个扇区,具有固定的512B。主引导扇区主要包括分区表和主引导程序。分区表保存着分区的相关信息,如该分区起始磁头号,该分区起始扇区号,该分区类型等。

  3、高级格式化,生成操作系统引导扇区、文件分配表、目录区、数据区。


 I/O系统

一、基本概念

  I/O指令是机器指令的一类,一般格式为:操作码、命令码、设备码。其中操作码可做为I/O指令与其他指令(如访存指令、算逻指令等)的判别代码;命令码体现I/O设备的具体操作;设备码是设备地址码。命令码的具体作用有,将数据从I/O设备输入主机;将数据从主机输出到I/O设备;查询I/O设备的状态;找磁道、读扇区等。

  I/O接口是主机与I/O设备之间设置的一个硬件电路。端口是接口电路中的一些寄存器。

二、I/O过程控制
1、程序查询
  外部设备要求计算机必须根据它的状态进行控制才能正常工作。例如,要向打印机传送数据,而打印机没有准备好——没有通电或数据传输线没有连接好。
  当现行程序需要和外设交换信息时,CPU启动I/O设备,接着查询I/O设备的状态。若I/O设备未准备就绪,就继续查询;若I/O设备准备就绪,就将数据经CPU送往主存或外设。这样一个字一个字的传送,直到这个数据块的数据全部传送结束,CPU又重新回到原现行程序。
  CPU和I/O设备处于串行工作状态
  占用CPU的寄存器

2、程序中断
  CPU在启动I/O设备后,继续执行现行程序;当I/O设备准备就绪后,向CPU发送中断请求;CPU在每条指令结束前向接口查询中断请求并响应——执行中断服务程序———把一个字经CPU送至内存或外设。如果这批数据尚未传送结束,CPU再次启动设备……周而复始,直到一批数据传送完毕。
  I/O设备准备数据不占用CPU的时间
  CPU和I/O接口需要增加相应的电路

  慢速外设:键盘、鼠标、打印机。

3、直接存储器访问(DMA)

  CPU执行几条指令,对DMA接口进行初始化,初始化主存首地址(读取或存入内存的地址)、数据块长度等。
  由DMA接口电路控制,使用主存和I/O设备之间的一条数据通路,完成数据传输;结束后,DMA接口申请中断。
  CPU执行中断服务程序,做一些DMA的结束工作,如检验数据是否正确等。

  若出现高速I/O和CPU同时访问主存,CPU将总线占有权让给接口使用,DMA接口挪用一两个内存周期。

  数据传输过程,也不需要CPU介入
  不占用CPU的寄存器
  也需要增加相应的电路

  高速外设:磁盘、磁带

4、比较

  程序中断靠程序传送,DMA靠硬件传送。

5、中断的应用
  1、异常处理,例如,当计算机正在运行中突然掉电,可使用中断技术在瞬间启动另一个备份电源,并将有用信息送至不受电源影响的存储系统内,待电源恢复后接着使用。
  2、实时控制,使CPU能即时响应外来信号的请求。


 指令系统 

一、基本概念

  指令系统由硬件电路来实现

二、指令格式
  指令由操作码和地址码组成,按照地址的数量有三地址指令、二地址指令、一地址指令、0地址指令。

三、寻址方式
  立即寻址,操作数由指令直接给出
  寄存器寻址,操作数由指令中的寄存器代号给出(计算的中间结果往往不必要都送到主存中去,而是暂存在寄存器中)
  存储器直接寻址,把操作数内存地址作为指令的地址码
  存储器间接寻址,把操作数内存地址的指针作为指令的地址码
  存储器变址寻址、基址寻址,通过计算最终得到操作数的地址,如,通过指令给出基准地址、在寄存器中存放偏移量。
  堆栈寻址,要求计算机中设有堆栈,堆栈既可用寄存器组来实现,也可利用主存的一部分空间作堆栈。

四、复杂指令系统
  (一)复杂指令系统的形成
    1、系列机
    2、缩小与高级语言语义的差异
  (二)复杂指令系统和精简指令系统
    1、复杂指令系统计算机的控制器多采用微程序控制,其控制存储器在CPU芯片内所占面积为50%以上;精简指令系统计算机的控制器多采用组合逻辑控制,其硬布线逻辑只占CPU芯片面积的10%左右。
    2、精简指令系统计算机更适合流水线工作

五、流水线技术

  流水线的多发技术:超标量、超流水线、超长指令字


控制单元

控制单元可以用组合逻辑电路或微程序实现。

组合逻辑电路使用硬布线的方式,一旦制成,很难改变。

微程序相当于把控制信号存储到ROM中,这个ROM称为控制存储器。便于扩展和修改。

 

posted @ 2018-03-13 00:06  zhuangrunwei  阅读(422)  评论(0编辑  收藏  举报