存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或存储基元,存储元),每个存储元件能寄存一位二进制代码“0”或1”。咱们说的“位”。
一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。存储字长可以是8位,16位,32位等。 咱们说的“字节”;赋予每个存储单元一个编号 ,称为存储单元的地址号。
一个存储字(一个存储单元的二进制代码)可以代表很多意思,不仅仅是16个二进制数本身,具体代表什么,按照输出的格式。如存储字为0011011001111101 既可表示为由十六进制字符组成的367DH,又可代表16位的二进制数,此值对应十进制数为13949,还可代表两个ASCII 码:“{"和“6”一个存储字还可代表一条指令.
主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写人)、取(读出)。
这种存取方式称为按地址存取方式,即按地址访问存储器(简称访存)。
为了能实现按地址访问的方式,主存中还必须配置两个寄存器MAR和MDR。
MAR(Memory Address Register) 是存储器地址寄存器,用来存放欲访问的 存储单元的地址,其位数对应存储单元的个数 (如 MAR为10位,则有2^10=1024个存储单元,记为1 K)。
MDR(Memory Data Reg-ister)是存储器数据寄存器。用来存放从存储体某单元取出的代码或者准备在某存储单元存入的代码,其位数与存储字长相等。(一个储存单元的储存字长)
运算器:
运算器最少包括3个寄存器(现代计算机内部往设有通用寄存器组)和一个算术逻辑单元(ALU)。其中ACC(accumulator)为累加器,MQ( Multiplier-Quotient Register) 为乘商寄存器,X为操作数寄存器 。这3个寄存器在完成不同运算时所存放的操作数类别也各不相同。列出了寄存器存放不同类别操作数的情况。
下面简单用图片说明运算器是如何进行四则运算的操作过程:
先假设
M:表示存储器的任一地址号码;[M]表示对应M地址号单元中的内容;
X:表示X寄存器;[X]:表示X寄存器的内容;
ACC表示累加器,[ACC]表示累加器的内容;
MQ表示乘商寄存器,[MQ] 表示乘商寄存器的内容;
控制器:
控制器是计算机的神经中枢,由它指挥各部件自动、协调地工作。具体面言.
它首先要命令存储器读出一条指令, 称为取指过程(也称取指阶段)。
接着,它要对这条指令进行分析.指出该指令要完成什么样的操作,并按寻址特征指明操作数的地址,称为分析过程(也称分析阶段)。
最后根据操作数所在的地址以及指令的操作码完成某种操作,称为执行过程(也称执行阶段)。
以上就是通常所说的完成一条指令操作的取指、分析和执行3个阶段。
控制器由程序计数器( Program Counter, PC)、指令寄存器( Instruction Register, IR)以及控制单元(CU)组成。PC用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自动加1的功能,即可自动形成下一条指令的地址。
IR用来存放当前的指令,IR的内容来自主存的MDR。IR中的操作码(OP(IR))送至CU,记作OP(IR)→CU,用来分析指令;其地址码(Ad(IR))作为操作数的地址送至存储器的MAR,记作Ad(IR)→MAR。
CU用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。
I/O:
I/O子系统包括各种I/O设备及其相应的接口。每一种I/O设备都由I/O接口与主机联系,它接受CU发出的各种控制命令,并完成相应的操作。
计算机工作的全过程:
(以前面ax^2+bx+c为例子)
首先按程序清单所列的有序指令和数据,通过键盘输人到主存第0号至第12号单元中,并置PC的初值为0(令程序的首地址为0)。启动机器后,计算机便自动按存储器中所存放的指令顺序有序地逐条完成取指令、分析指令和执行指令,直至执行到程序的最后一条指令为止。
例如,启动机器后,控制器立即将PC的内容送至主存的MAR(记作PC→MAR),并命令存储器做读操作,此刻主存“0”号单元的内容“0000000001000”(程序清单所列程序的第一条指令)便被送人MDR内。然后由MDR送至控制器的IR(记作MDR-→IR),完成了一条指令的取指过程。经CU分析(记作OP(IR)- CU),操作码“000001”为取数指令,于是CU又将IR中的地址码0000001000”送至MAR(记作Ad(IR)-→MAR),并命令存储器做读操作,将该地址单元中的操作数x送至MDR.再由MDR送至运算器的ACC(记作MDR→ACC),完成此指令的执行过程。此刻,也即完成了第一条取数指令的全过程,即将操作数x送至运算器ACC中。与此同时,PC完成自动加1的操作,形成下一条指令的地址“1”号。
同上所述,由PC将第二条指令的地址送至MAR.命令存储器做读操作,将00000001001”送入MDR,又由MDR送至IR。接着CU分析操作码000100”为乘法指令,故CU向存储器发出读命令,取出对应地址为0000001001”单元中的操作数a,经MDR送至运算器MQ,CU再向运算器发送乘法操作命令,完成ax的运算,并把运算结果ax存放在ACC中。同时PC又完成一次(PC)+1→PC,形成下一条指令的地址“2”号。依次类推,逐条取指、分析执行,直至打印出结果。最后执行完停机指令后,机器便自动停机。
存数的时候和前面差不多,到第6步都是一样的,第7步是告诉存储体由这样一个地址的数要存进来,然后第8是把数存到MDR,然后存到存储体相应的地址中去。
1.3 计算机硬件的主要技术指标
1.3.1 机器字长
机器字长是指CPU一次能处理数据的位数,通常与 CPU的寄存器位数有关。字长越长.数的表示范围越大,精度也越高。机器的字长也会影响机器的运算速度。倘若CPU字长较短,又要运算位数较多的数据,那么需要经过两次或多次的运算才能完成,这样势必影响机器的运算速度。
机器字长对硬件的造价也有较大的影响。它将直接影响加法器(或ALU)、数据总线以及存储字长的位数。所以机器字长的确定不能单从精度和数的表示范围来考虑。
1.3.2 存储容量
存储器的容量应该包括主存容量和辅存容量。
主存容量是指主存中存放二进制代码的总位数。即
存储容量=存储单元个数x存储字长
bit(位)
Btye(字节)
1B=8b
2^10=1K=1024
2^20=1M
2^30=1G
主存既可以用位表示,也可以用字节表示容量。辅存太大,一般用字节表示。
1.3.3 运算速度
现在一般采用MIPS:单位时间内执行指令的平均条数来衡量。(单位:百万条指令每秒)。除此之外还有CPI,FLOPS…
1.4 本书结构
本书主要讲解的是计算机的硬件。计算机内部一些关键硬件主要如下表所示,本书按照下面的结构进行叙述
本书介绍计算机组成原理,其内容安排如下:
第1篇:概论,介绍计算机系统的基本组成、应用与发展。
chapter 1:计算机系统概论
chapter 2:计算机的发展和应用
第2篇:计算机系统的硬件结构,引导读者自顶向下了解计算机系统的硬件结构,包括中央处理器、存储器、I/O等主要部件以及连接它们的系统总线。其中,除中央处理器比较复杂放在第3篇单独讲述外,其他各部件均在此篇介绍。
chapter 3:系统总线
chapter 4:存储器
chapter 5:输入输出系统
第3篇:中央处理器(CPU),本篇讲述CPU的功能和结构,并对影响CPU特性、结构和功能的算逻单元及其运算方法、指令系统、指令流水、中断系统等进行详细分析。有关控制单元(CU)在第4篇单独介绍。
chapter 6:计算机的运算方法
chapter 7:指令系统
chapter 8:cpu的结构和功能
第4篇:控制单元(CU),本篇在详细分析时序系统以及微操作命令节拍安排的基础上,分别介绍如何用组合逻辑控制及微程序控制两种方法设计和实现控制单元。
chapter 9:控制单元的功能
chapter 10:控制单元的设计
总之,全书按自顶向下、由表及里的层次结构,向读者展示计算机的组成及其工作原理,目的是使读者能先从整体上对计算机有一个粗略的认识,然后,,逐步深人到机器内核,从而更容易形成计算机的整体概念。图1.12形象地描述了上述各章节之间的联系。