计算机组成原理》⾃总(1)
前⾔
本⽂为本⼈⾃学《计算机组成原理》(唐朔飞编著/第2版)第⼀章内容的总结,全⽂描述约90%皆基于个⼈对书本内容的理解,对于⼤部分术语的概念解释并不完全照搬书本,只为梳理⾃我对该专业的认知(当然以后或许还会优化修改),不建议作为以考试为⽬的的参考资料。
计算机系统、软硬件概念
软件系统组成。
硬件系统和软件系统
计算机系统由硬件系统
实体部分,例如CPU、存储器、键盘、⿏标、显⽰器等。
硬件:
硬件:组成计算机系统的实体部分
软件:存在于计算机系统的程序和数据
程序和数据,⼀般存放于计算机的主存和辅存中。
软件:
应⽤软件。
软件可分为系统软件
系统软件和应⽤软件
系统软件:⽤以管理计算机系统资源,控制任务执⾏,监视服务,⽬的是让计算机系统⾼效运作。
系统软件:
应⽤软件:⽤户为实现各种需求所编制的程序,如浏览器、通讯APP等。
应⽤软件:
软件需要有硬件⽀撑才能运⾏,⽽没有软件的硬件也相当于⼀件普通固体,软硬件之间相互依赖,具有同样的重要性。
计算机系统的层级
现代多层次结构
多层次结构的计算机系统的层级⾃顶向下普遍是:
应⽤语⾔虚拟机级:⾼级语⾔机器以上的层级,该层级主要是为了满⾜各种应⽤软件的设计需要,⽤以解释应⽤语⾔。
应⽤语⾔虚拟机级:
⾼级语⾔虚拟机级:将⾼级语⾔翻译成汇编语⾔,或者直接翻译成机器语⾔
⾼级语⾔虚拟机级:
汇编语⾔虚拟机级:
汇编语⾔虚拟机级:将汇编语⾔翻译成机器语⾔
操作系统虚拟机级:⽤以⽀持将⾼级语⾔和汇编语⾔翻译成机器语⾔,同时也管理计算机系统的软硬件资源,控制作业执⾏,为⽤户提供各种服操作系统虚拟机级:
传统机器级:
传统机器级:微程序会将该层级中的每⼀条指令翻译成⼀组微指令
微程序机器级:由硬件执⾏微指令
微程序机器级:
多层级计算机系统结构图
计算机体系结构和计算机组成
计算机组成是两种不同的概念。
计算机体系结构和计算机组成
计算机体系结构
功能特性,能被对应层级的程序员所见。
计算机体系结构是构成计算机系统的属性,是概念性结构
概念性结构和功能特性
具体组成,其包含了对程序员透明的各种软硬件细节。
计算机组成是计算机系统属性的具体组成
例如,指令集是计算机系统的属性之⼀,属于计算机体系结构,⽽组成指令集的⽅式如取指令、分析指令、取操作数、运算、送结果等,则是指令集的具体组成,属于计算机组成。
计算机硬件框图
典型的冯·诺依曼计算机结构硬件框图有以下特征:
1.计算机系统有五⼤部件构成,分别是运算器、控制器、存储器、输⼊设备、输出设备。
2.指令和数据都保存在存储器中,具有同等地位。
3.指令和数据都⽤⼆进制数表⽰。
4.指令由操作码和地址码组成,操作码表⽰具体操作,地址码则表⽰了操作对象所对应存储器中的具体位置。
5.指令按顺序依次保存在存储器中,通常被按顺序执⾏,特定条件下,可根据运算结果或设定的条件来改变执⾏次序。
6.机器以运算器为中⼼,存储器与输⼊输出设备之间的数据传输需要经过运算器。
计算机软件的组成
典型的冯·诺依曼计算机结构框图
五⼤部件的功能如下
运算器:⽤以进⾏算术运算和逻辑运算,并将运算结果保存在运算器中。
运算器:
控制器:⽤以控制、指挥程序和数据的输⼊、运算和处理结果。
控制器:
存储器:⽤以存放程序和数据。
存储器:
输⼊设备:将⽤户能识别的信息转化成机器能识别的信息。
输⼊设备:
输出设备:将机器信息转化成⽤户能识别的信息并输出。
输出设备:
由于输⼊输出设备和存储器之间的数据传送都需要通过运算器来完成,每次数据经过运算器,都使运算器停⽌运算,降低了系统⼯作效率,后来出现了以存储器为中⼼的计算机结构。
以存储器为中⼼的计算机结构框图
⽽由于运算器和控制器的电路结构关联紧密,⼈们后来将这两个部件集成在同⼀芯⽚中,该芯⽚被称
作中央处理器(CPU),因此,现代计算机CPU、主存、I/O设备(输⼊输出设备)。
系统硬件结构主要分为三⼤部分:CPU、主存、I/O设备(输⼊输出设备)
主机。
其中CPU和主存合起来被称为主机
现代计算机组成框图
计算机⼯作步骤
上机运⾏。
计算机系统处理⼯作分为两⼤步,第⼀步是上机前准备
上机前准备,第⼆步是上机运⾏
建⽴数学模型、确定计算⽅法、编写解题程序三步。
上机前准备分为建⽴数学模型、确定计算⽅法、编写解题程序
建⽴数学模型:
建⽴数学模型:将要处理的⼯作建⽴成⼀个可⾏的数学模型。
确定计算⽅法:将数学模型中的运算⽅程简化为计算机能执⾏的四则运算(加、减、乘、除)⽅程。
确定计算⽅法:
编写解题程序:对应四则运算⽅程来分步编写能让机器执⾏的指令。
编写解题程序:
完成上机前的准备后,就能进⾏上机运⾏操作。
计算机各部件概述
主存储器:
主存储器简要结构框图
主存,由存储体、各种逻辑部件和控制电路
存储体、各种逻辑部件和控制电路组成。
主存储器⼜称主存
⼀位⼆进制数。
存储基元(或称存储元件、存储元)组成,⼀个存储基元可以包含⼀位⼆进制数存储单元,每个存储单元由多个存储基元(或称存储元件、存储元)
存储体内有多个存储单元
存储字长就是⼆进制代码的位数,通常有8位、16位、32位等。⼀个存储单元包含⼀个存储字
存储字,⼀个存储字由⼀串⼆进制代码组成,其存储字长
(可以这么粗略理解:1个存储体 = 多个存储单元;1个存储单元 = 1个存储字 = N个存储基元 = N个⼆进制代码,其存储字长为N位。)
地址号,主存的⼯作⽅式是 根据这些地址号对相应存储单元的⼆进制位进⾏写⼊或读出,从⽽实现存取操存储体中的每个存储单元都配有相应的地址号
访存。
按地址访问存储器,简称为访存
作,这种根据地址来访问存储数据的⽅式称为按地址访问存储器
(早期计算机的机器指令字长和数据字长往往要与存储字长相等,执⾏⼀次访存就能完成⼀个指令或数据的存取操作,随着计算机的⼴泛应⽤以及解题精度的提⾼,指令字长和数据字长往往被要求是可变的,因⽽它们的字长不再以存储字长为主,⽽是以字节(Byte)为单位,8位称作1字节,⽽字长必须是字节的整倍数,例如可以是1字节、4字节等。)
寄存器,分别是MAR和MDR。
为了实现访存,主存内还配备了两个寄存器
MAR(Memory Address Register,存储地址寄存器)
MAR(Memory Address Register,存储地址寄存器)⽤以寄存将要访问的存储单元的地址号,系统进⾏访存时,会根据MAR内寄存的地址号来到存储体中对应地址的存储单元。
MAR位数是对应存储体内的存储单元个数的,它的位数必须要概括存储体内所有存储单元的地址号,假设存储体⼤⼩有1K,即拥有1024个(2¹⁰个)存储单元,那么对应的MAR的位数就是10位,它概括了编号为 00 0000 0000 ~ 11 1111 1111 共计1024个地址号。
同理,若知道MAR的位数,可以算出它对应的存储体的⼤⼩。
MDR(Memory Data Register,存储数据寄存器)⽤以取出对应地址的存储单元内的数据,或存放要保存在相应地址的存储单元内的数MDR(Memory Data Register,存储数据寄存器)
据。
MDR位数是存储单元的存储字长。假设⼀个存储体内每个存储单元的字长为8位,⽽对应MDR是⽤来寄存某个存储单元的,那么MDR的位数⾃然也是存储体内存储单元的位数,也是8位。
(由于要完成完整的存取操作仅凭主存是不⾏的,还得依赖CPU,⽽随着超⼤规模集成电路的发展,现代计算机往往是将MAR和MDR集成到了CPU中,⽽⾮主存⾥。)
运算器:
运算器简要结构框图
3种寄存器(ACC、MQ、X)和⼀个算术逻辑单元(ALU)
⼀个算术逻辑单元(ALU)。
上图中的运算器包含了3种寄存器(ACC、MQ、X)
ACC(Accumulator)为累加寄存器,⽤以存放被加数及和、被减数及差、积⾼位、被除数及余数。
ACC(Accumulator)为累加寄存器
MQ(Multiplier-Quotient Register)为乘商寄存器,⽤以存放乘数及积低位、商。
MQ(Multiplier-Quotient Register)为乘商寄存器
X为操作数寄存器,⽤以存放加数、减数、被乘数、除数。
X为操作数寄存器
CPU的核⼼部件之⼀。
ALU(Arithmetic Logic Unit)为算术逻辑单元
ALU(Arithmetic Logic Unit)为算术逻辑单元,⽤以处理算术逻辑运算,是CPU的核⼼部件之⼀