计算机组成原理

计算机组成原理学习笔记

声明:这是学习计算机组成原理时的随笔笔记,有一些部分进行简化,如果需要请参考原书(计算机组成原理(第二版).唐朔飞.pdf)

概论

首先需要介绍一下整个计算机系统,其包含硬件和软件两个部分,所谓硬件就是计算机的实体,如主机、外设等。所谓软件是由各种特殊功能的信息(程序)组成的。软件又可以细分为系统软件和应用软件。系统软件用来管理整个计算机系统,如:语言处理程序、操作系统、服务性程序、数据库管理系统等。应用软件则是按任务需要编制成的各种程序,如办公室软件、商务软件等。

现代计算机的解题过程通常由用户用高级语言编写程序(称为源程序),然后将它和数据一起送入计算机内,在由计算机将其翻译成机器能识别的机器语言程序(称为目标程序),机器自动运行该机器语言程序,并将计算结果输出。而计算机系统的层次结构大概如下图一样:

计算机系统层次图

用计算机解决一个实际问题通常包含两大步骤:上机前的各种准备和上机运行。上机前的各种准备工作大致可归纳为:建立数学模型、确定计算方法和编制解题程序。

在介绍真正介绍计算机的组成之前,还要做一个区分。计算机体系结构和计算机组成的区别。计算机体系结构指的是程序员所见到的计算机系统的属性,即概念性的结构与功能。计算机组成指的是如何实现计算机体系结构所体现的属性。简单来说,前者是有什么,后者是怎么实现。

以“存储程序”这个概念为基础的各类计算机通常称为冯·诺依曼机,它具有以下特点:

  1. 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成。
  2. 指令和数据以同等地位存放于存储器内,并可按地址寻访。
  3. 指令和数据均用二进制数表示。
  4. 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
  5. 指令在存储器内按顺序存放。
  6. 机器以运算器为中心(但是现代的计算机已转化为以存储器为中心)。

运算器用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内;存储器用来存放数据和程序;控制器用来指挥程序的运行;输入设备将信息转换成机器能识别的形式;输出设备将结果转换成人们熟悉的形式;运算器和控制器构成了CPU,存储器分为主存和辅存,与CPU共同构成主机。I/O设备(即输入设备和输出设备)和主机共同构成现代计算机的硬件框架。下面就先概要性的介绍以下各个部件:

  • 运算器最少包括3个寄存器(累加器、乘商寄存器和操作数寄存器,现代计算机内部往往设有通用寄存器组)和一个算术逻辑单元。
  • 主存储器(简称为主存或内存)包括存储体、各种逻辑部件及控制电路等。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或称存储基元、存储元),每个存储元件能寄存一位二进制代码“0”或“1”。一个存储单元可以存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。指的注意的是每个存储单元都有一个自己地址号,就如同房间号一样,而主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写入)、取(读出),这种存取方式称为按地址存取方式,即按地址访问存储器(简称访存)。为了能够实现按地址访问的方式,主存中还必须配置两个寄存器MAR和MDR,即存储器地址寄存器和存储器数据寄存器,前者用来存放欲访问的存储单元的地址(其位数对应存储单元的个数),后者则用来存放从存储体某单元去除的代码或者准备往某存储单元存入的代码(其位数与存储字长相等)。
  • 控制器由程序计数器、指令寄存器以及控制单元组成。程序计数器用来存放当前欲执行指令的地址,且具有自动加1的功能;指令寄存器用来存放当前的指令;控制单元用来分析所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。
  • I/O子系统包括各种I/O设备及其相应的接口。每一种I/O都由I/O接口与主机联系,它接受控制单元发出的各种控制命令,并完成相应的操作。

衡量一台计算机性能的优劣是根据多项技术指标综合确定的,以下是一些硬件的技术指标:

  1. 机器字长:机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。字长越长,数的表示范围越大,精度也越高。
  2. 存储容量:存储器的容量应该包括主存容量和辅存容量。主存容量是指主存中存放二进制代码的总位数。辅存容量通常用字节数来表示。
  3. 运算速度:计算机的运算速度与许多因素有关,如:机器的主频、执行什么样的操作、主存本身的速度等。现在机器的运算速度普遍采用单位时间内执行指令的平均条数来衡量。

接下来会以自定向下、由表及里的层次结构介绍计算机组成原理。首先了解计算机系统的硬件结构,包括存储器、I/O等主要部件以及连接它们的系统总线。然后重点介绍中央处理器,讲述CPU的功能和结构,并对影响CPU特性、结构和功能的算逻单元及其运算方法、指令系统、指令流水、中断系统等进行详细分析。最后是控制单元,在详细分析时序系统以及微操作命令节拍安排的基础上,分别介绍如何用组合逻辑控制及微程序控制两种方法设计和实现控制单元。

计算机

系统总线

计算机系统的五大部件之间的互连方式有两种,一种是各部件之间使用单独的连线,称为分散连接;另一种是将各部件连到一组公共信息传输线上,称为总线连接。前者较后者,灵活性差一些。所谓的总线就是连接多个部件的信息传输线,是各部件共享的转输介质。

总线从不同角度可以有不同的分类方法。按数据传送方式分为并行传输总线和串行传输总线。若按总线的使用范围划分,则又有计算机(包括外设)总线、测控总线、网络通信总线等。这里主要介绍按连接部件不同的三类总线:

  1. 片内总线:是指芯片内部的总线。如:在CPU芯片内部,寄存器与寄存器之间、寄存器与算逻单元之间都由片内总线连接。
  2. 系统总线:是指CPU、主存、I/O设备各大部件之间的信息传输线。又称板级总线或板间总线。按系统总线传输信息的不同,又可分为三类:数据总线、地址总线和控制总线。数据总线用来传输各总能部件之间的数据信息,是双向传输总线。地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址,是单向传输总线。控制总线用来发出各种控制信号的传输线,传输时单向的。
  3. 通信总线:这类总线用于计算机系统之间或计算机系统与其它系统之间的通信。按照传输方式可分为串行通信和并行通信。

从物理角度来看,总线由许多导线直接印制在电路板上,延伸到各个部件。总线具备着机械特性、电气特性、功能特性和时间特性。衡量总线性能的指标有:总线宽度、总线带宽、时钟同步/异步、总线复用、信号线数、总线控制方式和其他指标。目前流行的总线标准有:ISA总线、EISA总线、VESA(VL-BUS)总线、PCI总线、AGP总线、RS-232C总线、USB总线。

总线结构通常可分为单总线结构和多总线结构两种。单总线结构是将CPU、主存、I/O设备(通过I/O接口)都挂在一组总线上。双总线结构的特点是将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。当然多总线结构并不只是只有双总线结构,还有三总线结构、四总线结构等。

总线控制主要包括判优控制(或称仲裁逻辑)和通信控制。总线上连接的各类设备,按期对总线有无控制功能可分为主设备(模块)和从设备(模块)。所谓的判优控制就是当多个主设备同时要使用总线时,由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线。总线判优控制可分集中式和分布式两种,前者将控制逻辑集中在一处,后者将控制逻辑分散在与总线连接的各个部件或设备上。常见的几种控制优先权仲裁方式有链式查询、计数器定时查询、独立请求方式。另外再说总线通信控制,其主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调、如何配合。通常用四种方式:同步通信、异步通信、半同步通信和分离式通信。

存储器

存储器是计算机系统中的记忆设备,用来存放程序和数据。按存储介质可分为:半导体存储器、磁表面存储器、磁芯存储器、光盘存储器。按照存取方式可分为:随机存储器、只读存储器、串行访问存储器。按在计算机系统中的作用不同,存储器主要分为:主存储器(简称主存)、辅助存储器(简称辅存)、缓冲存储器(简称缓存)。

存储器有3个主要性能指标:速度、容量和每位价格(简称位价)。一般来说,速度越高,位价就越高;容量越大,位价就越低,而且容量越大,速度必越低。三者很难同时优秀。

存储系统层次结构主要体现在缓存-主存和主存-辅存这两个存储层次上,如图所示:

存储系统层次图

主存储器除了前文介绍的,这里还要说一下,主存的主要技术指标是存储容量和存储速度,同时还有存储器带宽。由于单片存储芯片的容量总是有限的,很难满足实际的需求,因此,必须将若干存储芯片连接在一起组成足够容量的存储器,称为存储容量的扩展,通常有位扩展和字扩展,前者是指增加存储字长,后者是指增加存储器字的数量,当然也有字、位扩展,即既增加存储字的数量,又增加存储字长。这里就不介绍具体的一些相关的连接方式了,具体可以参考原书(计算机组成原理(第二版).唐朔飞)。存储器还会使用汉明码来纠错。为了提高访存速度,我们可以采取采用高速器件、采用层次结构、调整主存结构等措施。

主存和CPU是存在速度差异的,会导致CPU“空等”现象,为了避免这种现象,我们利用程序访问的局部性原理,在主存与CPU之间添加一层缓存(即高速缓冲存储器)。其工作原理就是将主存和缓存都分成等大的块,任何时刻都有一些主存块处在缓存块中。CPU欲读取主存某字时,有两种可能:一种时所需要的字已在缓存中,即可直接访问缓存;另一种是所需的字不在缓存内,此时需将该字所在的主存整个字块一次调入缓存中。这两种可能,前者为CPU访问缓存命中,后者则为CPU访问缓存不命中。缓存的容量与块长是影响缓存效率的重要因素,通常用“命中率”来衡量缓存的效率。

缓存主要由缓存存储体、地址映射变换机构、缓存替换机构几大模块组成。缓存存储体以块为单位与主存交换信息。地址映射变换机构是将CPU送来的主存地址装换为缓存地址,映射的方式很多,由直接映射、全相联映射、组相联映射。替换机构则是在缓存内容已满,无法接受来自主存块的信息时,按一定的替换算法来确定应从缓存内移除哪个块返回主存,而把新的主存块调入缓存,常用的替换策略由先进先出算法、近期最少使用算法、随机法。

辅助存储器又称为外存储器(简称外存),其特点就是不直接CPU交换信息。外存通常是磁性介质或光盘,能长期保存信息,并且不依赖于电来保存信息。

输入输出系统

输入输出系统由I/O软件和I/O硬件两部分组成。I/O软件会涉及到I/O指令和通道指令。I/O硬件一般包括接口模块及I/O设备两大部分。外部设备大致分三类:人机交互设备、计算机信息驻留设备、机-机通信设备。I/O接口通常是指主机与I/O设备之间设置的一个硬件电路及其相应的软件控制。

I/O设备与主机的联系方式有:I/O设备编址方式(统一编址或不统一编址)、设备寻址、传送方式、联络方式(串行传送或并行传送)。I/O设备与主机信息传送的控制方式有:程序查询方式、程序中断方式、DMA方式。

中央处理器

计算机的运算方法

在计算机中参与运算的数有两大类:无符号数和有符号数。所谓无符号数,即没有符号的数,在寄存器中的每一位均可用来存放数值。而有符号数则需留出位置存放符号,通常用“0”表示“正”,用“1”表示负,这样符号也被数字化了。把符号“数字化”的数成为机器数,而把带有正负号的数称为真值。一般有原码、补码和反码三种表示方式。对于正数,原码=补码=反码;对于负数,原码是本身,反码是原码除符号位外每位取反,补码是反码末位加1。移码就是在真值上加一个常数2^n。在计算机中,小数点不用专门的器件表示,而是按约定的方式标出,共有两种方法表示小数点的存在,即定点表示和浮点表示,定点表示的数称为定点数,浮点表示的数称为浮点数。小数点固定在某一位置的数称为定点数,当小数点位于数符和第一数值之间时,机器内的数称为纯小数;当小数点位于数值位之后时,机器内二点数称为纯整数。浮点数有阶码和尾数两部分组成。

定点运算包括移位、加、减、乘、除几种。具运算的实现和方法请参考原书。针对每一种算术运算,都必须有一个相对应的基本硬件配置,其核心部件是加法器和寄存器。当需要完成逻辑运算时,势必需要配置相应的逻辑电路,而算术逻辑单元电路是既能完成算术运算又能完成逻辑运算的部件。

指令系统

指令是由操作码和地址码两部分组成的。操作码用来指明该指令所要完成的操作,长度可以是固定的,也可以是变化的。地址码用来指出该指令的源操作数的地址、结果的地址以及下一条指令的地址,地址的数量也可以是不确定的。指令字长取决于操作码的长度、操作数地址的长度和操作数地址的个数。机器中常见的操作数的类型有地址、数字、字符、逻辑数据等。操作类型几乎都有这些通用的操作:数据传送、算术逻辑操作、移位、转移、陷阱与陷阱指令、输入输出等。

寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,分为指令寻址和数据寻址两大类。指令寻址分为顺序寻址和跳跃寻址两种。数据寻址方式种类较多,有:立即寻址、直接寻址、隐含寻址、间接寻址、寄存器寻址、寄存器间接寻址、基址寻址、变址寻址、相对寻址、堆栈寻址。

设计指令格式时需要考略指令系统的兼容性(向上兼容),还有操作类型、数据类型、指令格式、寻址方式、寄存器个数等其他因素。

RISC即精简指令系统计算机,与其对应的是CISC,即复杂指令系统计算机。

CPU

CPU可由算术逻辑单元、寄存器、控制单元、中断系统四大部分组成。CPU中的寄存器大致可以分两类:用户可见寄存器和控制和状态寄存器。

CPU每取出并执行一条指令所需的时间称为指令周期,一般会有4个工作周期:取指周期、间址周期、执行周期、中断周期,具体如下图所示:

指令周期

可以通过提高访存速度、提高I/O和主机之间的传送速度、提高运算器速度、提高整机处理能力来提高机器的速度。这里将重点说一下提高整机处理能力,一方面我们可以采用高速器件,另一方面我们可以改进系统,可发系统的并行性。指令流水就是把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成指令流水。中断装置和中断处理程序统称为中断系统,是专门为了处理各种中断。

控制单元

控制单元具有发出各种微操作命令(即控制信号)序列的功能,概括地说,计算机的功能就是执行程序,在执行程序的过程中,控制单元要发出各种为操作命令,而且不同的指令对应不同的命令。控制单元大体可以分为两类:微程序式和硬件型控制单元。其设计的方法有组合逻辑设计和微程序设计。

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值