计算机组成原理 第一章
第一章:计算机系统概论
1.1 计算机分类和发展简史
分类
计算机的定义:
计算机是一种以
电子器件
为基础的不需要人的干预
,能对各种数字化信息
进行算术和逻辑运算
的快速
工具。
电子计算机(按照输入输出信号的形式)分两种:
- 电子数字计算机:由
逻辑电子器件
构成,变量为离散量
- 电子模拟计算机:由
模拟运算器件
构成,变量为连续量
电子数字计算机与电子模拟计算机的主要区别:
数字计算机进一步又可分为专用计算机和通用计算机
专用计算机:
安装、固定和嵌入在交通工具、仪器仪表、控制系统、通信设备、家用电器等部件中的模块化数据处理机中。
以嵌入式系统的形式隐藏在各种设备、产品和系统中。
通用计算机:
具有标准形式的计算机,通过装配不同的应用程序,配合软件,以相同的外观和应用于社会的各个方面。
通用计算机可分为六类:
- 超级计算机
- 大型机
- 服务器
- PC机
- 单片机
- 多核机
发展及硬件
计算机发展趋势:
微型化、网络化、巨型化、智能化
计算机经历了五代变化:
第一代:
1946~1957,电子管计算机。体积庞大,成本很高,可靠性较低。在此期间,形成了计算机的基本体系,确定了程序设计的基本方法,数据处理机开始得到应用。
第二代:
1958~1964,晶体管计算机。可靠性提高,体积缩小,成本降低。在此期间,工业控制机开始得到应用。
第三代:
1965~1971年,中小规模集成电路计算机。再次期间形成机种多样化,生产系列化,使用系统化,小型计算机开始使用。
第四代:
1972~1990,大规模和超大规模集成电路计算机,由几片大规模集成电路组成的微型计算机开水出现。
第五代:
1991年至今,巨大规模集成电路计算机出现,由一片巨大规模集成电路实现的单片计算机开始出现。
指令集授权方式:
- IP内核授权
- 指令集架构授权
- 授权+ 自主研制指令集
常见指令集:
x86 ARM,RIS-V
1.2 计算机性能指标
$n$:程序中指令类型的个数
$CPI_i$(cycles per instruction):一条指令在执行第I类指令时所需的时钟周期数
$I_i$:第I类指令的个数
$I_n$:程序中指令总数
$CPI=\Sigma$(程序中各种指令的CPI×程序中该类指令所占的比例)
指令周期数(Instruction Cycle,简称IC)
例题:
1.3 计算机的硬件组成
冯·诺依曼机的特点
- 由运算器、存储器、控制器、输入设备和输出设备五个部分组成;
- 存储器以二进制形式存储指令和数据;
- 指令由操作码和地址码组成;
- 存储程序并按地址顺序执行;
- 冯·诺依曼机的核心设计思想,机器自动化工作的关键;
- 以运算器为中心。
运算器
又称算术/逻辑运算单元ALU (arithtical / logical unit)。
信息处理组件,完成数据的算术和逻辑运算,以及移位操作等。
运算器的字长:运算符每次可完成多少位二进制运算。
- 一般为8位、16位、32位或64位(比特bit,一般用小写字母b表示)。
- 运算符的位数越多,精度越高,但对电子器件的消耗也越多、成本就越高。
存储器
存储控制计算机操作的命令信息(指令)和被处理(加工)的信息(数据),还存储处理的中间结果和最终结果
- 命令:可被计算机执行,指挥计算机系统工作,完成所要求的任务
- 数据:是被处理的对象或者结果
一个半导体触发器有0和1两个状态,可以记忆一位二进制代码。
这些半导体存储单元很少被单独读取或者编写,而是按照固定大小的组进行处理,这个组称为字。
每个字的位数称为字长,典型的字长范围是从16位到64位。
若按找16位计算机:
在存储器中把保存一个数的16个触发器称为一个存储单元。
每个存储单元都有编号,称为地址。
存储器所有存储单元的总数称为存储容量。
所有的数据和指令都以二进制数的形式存储在内存中。
为了解决容量、成本和速度之间的矛盾:内存分为内存储器和外存储器。
- 内存储器:由半导体存储器构成
- 主存+缓冲存储器(cache)
- 外部存储器:多由磁盘、磁带、光盘等组成
内存容量:内存可保存二进制信息的个数。 - 存储单元数/单元数,例如:1M 8bit = 8Mb
- 8位的二进制序列称为一个字节(Byte)
摩尔定律:
每18个月,集成电路的性能就会提升一倍,价格将会降低一倍。
控制器
从存储器中取出指令进行分析,然后发送控制信号执行一定的操作。
每个指令都可以完成一次算术或逻辑操作,或是存取数据等操作。
程序:能完成某种功能的一串指令的序列
控制器根据程序指挥系统工作,以完成程序所规定的功能
指令有两部分:
操作码 | 地址码
- 操作码: 指示指令执行的操作类型,如加、减、乘、除、与、或、非、保存、取数、移位、转移等。
- 地址码: 表示数据应该被取到哪个内存中,或者结果应该存储在哪个内存中。一条指令可以有一个、两个、三个或没有地址代码。
- 操作码和地址码均用二进制数表示
控制器的基本任务:
按照指令顺序,首先从存储器中取出一条指令进入控制器
由指令译码器对指令的操作代码进行分析
根据指令性质,将相应的控制信号传给计算机各个部分,有序地控制各部件完成规定操作
从存储器中取出下一条指令,再执行,如此类推
每去除一条指令,控制器中的程序计数器就加1,为下一条指令做准备
我们把取指令的一段时间叫做取指周期
执行指令的一段时间叫做执行周期
一个位bit
为最小计算单位
一个字节由8位构成
一个字由n个字构成,n为字长,常见的有8位、16位
计算机中,字既可以表示指令,也可以表示数据:
取值周期中从内存读出的信息流是指令流,它流向控制器。
执行周期中从内存中国读出或流入的数据为数据流,它流向存储器或者运算器
输入输出设备
输入/输出设备(I/O设备),又称外围设备
作用:进行信息形式的转换,即将外界的语言、声音、机械动作等信息形式转换为计算机所识别的电信号表示的二进制数的形式,或进行相反方向的转换。
适配器(I/O接口):
- 由于种类繁多和速度各异,外设不直接与高速工作的主机相连,而是通过适配器组件与主机相连
- 作用:相当于一个转换器,保证外设以计算机所需的形式发送或接收信息
总线
计算机部件间信息传输的公共通路
各部件分时复用总线,用于保证数据、地址、指令和控制信息在各部件间的传输
基本总线:
- 数据总线DB(Data Bus)
- 地址总线AB(Address Bus)
- 控制(命令)总线CB(Command/Control总线)
1.4 电子计算机设计思想
存储程序+程序控制
冯诺依曼计算机:
存储程序并按地址执行
计算机由运算器、控制器、存储器、输入设备和输出设备五部分组成
- 存储器(内存):不仅可以存储数据,还可以存储指令
- 控制器:可以自动执行指令
- 操作员:可以进行算术和逻辑运算和附加运算
- 输入/输出设备:保证人与计算机的通信
冯诺依曼计算机基本思想:
- 采用二进制形式表示数据和指令,指令由操作码和地址码组成。
- 将程序和数据存放在存储器中,即“存储程序”和“程序控制”。
- 指令的执行是顺序的。
- 由存储器、运算器、控制器、输入和输出设备五大组件构成。
适配器
I/O设备通常称为外围设备
适配器(I/O接口): 相当于一个转换器,它可以保证外围设备用计算系统特性要求的形式发送或接收数据。
计算机 = 硬件系统 + 软件系统
软件是指硬件上运动的程序和相关的数据及文档。
1.5 计算机系统的层次结构
Level 0 ~ 2:物理机(裸机)
Level 3:虚拟机
1.高级语言机器 M4
(软件)
用编译程序翻译成汇编语言程序
2.汇编语言机器 M3(软件)
用汇编程序翻译成机器语言程序
3.操作系统机器 M2(软件)
向上提供“广义指令”(系统调用)
4.用机器语言的机器 M1(硬件)
执行二进制机器指令
5.微程序机器 M0(硬件)
由硬件直接执行微指令
软件与硬件的逻辑等价性
计算机系统和数字系统的区别:计算机系统理论上有软件
从理论上说,任何软件算法都可以通过硬件来实现,反之亦然
对于特定的功能,硬件方案还是软件方案,取决于设备的价格、速度、可靠性、变更周期等因素
成本 | 速度 | 变更周期 | |
---|---|---|---|
硬件 | 高 | 快 | 长 |
软件 | 低 | 慢 | 短 |
发展趋势
以前通常由软件实现功能,现在更多的是可以直接由硬件来实现
实体硬件机的功能范围不断扩大
固件(firmware, 韧件):形态类似于硬件,但功能类似于软件,可以编程和修改
软件:“固化”、“硬化”,将程序烧写到芯片上去,使软件设计最后转化成硬件来实现
计算机系统的软硬件界限已经变得模糊