1.2.1计算机系统的组成
硬件系统和软件系统共同构成了一个完整的计算机系统,软件和硬件在逻辑上是等效的。
硬件实现具有更高的执行速度,软件实现具有更好的灵活性。执行频繁、硬件实现代价不是很高的功能通常由硬件实现
1.2.2 计算机硬件的基本组成
“存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按程序的规定顺序执行其他指令,直至程序执行结束。
计算机按此原理应当具有5大功能:数据传送功能、数据存储功能、数据处理功能、操作控制功能、操作判断功能。
冯诺依曼计算机特点:
早期以运算器为中心,且时单处理机。最根本的特征是采用“存储程序”原理,基本工作方式是控制流驱动方式
现代计算机以存储器为中心 CPU=运算器+控制器
计算机的功能部件
输入设备:将程序和数据以机器所能识别和接受的信息形式输入计算机
输出设备:将计算机处理结果以人们所能接受的形式或其他系统所要求的信息形式输出
存储器
存储器是计算机的存储部件,用来存放程序和数据
计算机只能从主存中取指令和操作数,不能直接与外存交换数据
MAR用来存放欲访问的存储单元地址,MDR存放从存储单元取来的数据,地址译码器是主存的构成部分,不属于CPU。地址寄存器虽然一般属于主存,但现代计算机中绝大多数CPU内集成了地址寄存器
MAR用来存放欲访问的存储单元地址,MDR存放从存储单元取来的数据,地址译码器是主存的构成部分,不属于CPU。地址寄存器虽然一般属于主存,但现代计算机中绝大多数CPU内集成了地址寄存器
存储器工作流程类似于菜鸟驿站
MAR用于寻址,位数对应存储单元个数。MDR的位数和存储字长相等,一般是字节的二次幂的整数倍
列:MAR=4位→总有个存储单元
MDR=16位→每个存储单元可存放16bit,
一个字(word)=16bit
存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数
存储元(件):存储二进制的电子元件,每个存储元可存1bit
注:存储字长可以是1B(8bit)或字节的偶数倍,MAR和MDR虽然是存储器的一部分,但在现代CPU中是存在于CPU的,高速缓存(Cache)也存在于CPU中
寄存器在CPU内部,速度最快。cache采用高速的SRAM制作,而内存常用DRAM制作,其速度较cache慢。
IR存放当前欲执行指令,PC存放下一条指令的地址
如图:
指令和数据都以二进制的形式存放在存储器中,但CPU可以根据指令周期的不同阶段来区分是指令还是数据,通常在取指阶段取出的是指令,在执行阶段取出的是数据。CPU只有在确定取出的是指令后,才会将其操作码送去译码,因此不可能依据译码的结果来区分指令和数据
1.2.3计算机软件的分类
1.系统软件和应用软件
软件按功能分类为:系统软件和应用软件
注:数据库管理程序(DBMS)和数据库系统(DBS)是有区别的。DBMS是位于用户和操作系统之间的一层数据管理软件,是系统软件;而DBS是指计算机系统中引入数据库后的系统,一般由数据库、数据管理系统、数据库管理员(DBA)和应用系统构成。
2.三个级别的语言
1.2.4计算机的工作过程
计算机的工作过程分为以下三个步骤
1)把程序和数据装入主存储器
2)将源程序转换为可执行文件
3)从可执行文件的首地址开始逐条执行命令
1)预处理阶段:预处理器(cpp)对源程序中以字符#开头的命令进行处理
2)编译阶段:编译器(ccl)对预处理后的源程序进行编译,生成一个汇编语言源程序hello.s
3)汇编阶段:汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成一个称为可重定向目标文件的hello.o的二进制文件
4)链接阶段:链接器(ld)将多个可重定位目标文件和标准库函数合并为一个可执行目标文件,简称可执行文件
1.2.5计算机系统的多级层次结构
第1级是微程序机器层,这是实在的硬件层
第2级是传统机器语言层,是实在的机器层
第3级是操作系统层,由操作系统程序实现。操作系统程序是由机器指令和广义指令组成的,这些广义指令为了扩展功能而设置的,是由操作系统定义和解释的软件指令,这一层也称混合层。
第4级是汇编语言层,由用户提供一种符号化的语言,可编写汇编语言程序
第5级是高级语言层,是面向用户的。
下层是上层的基础,上层是下层的扩展。
1.2.6 计算机体系结构 vs 计算机组成原理
计算机体系结构——机器语言程序员所见到的计算机系统的属性概念性的结构与功能特性 (指令系统、数据类型、寻址技术、I/O机理
计算机组成原理——实现计算机体系结构所体现的属性,对程序员“透明” (具体指令的实现 )
1.2.7添加内容
操作系统属于大型系统软件:编译程序属于语言处理程序;连接程序属于服务性程序
寄存器的设置对汇编语言不透明,汇编程序员要对寄存器进行直接操作。全面代表计算机性能的实际软件的运行情况。
向后兼容指的是时间上向后兼容,即机器兼容使用以前机器的指令系统
CPU由运算器与控制器两个部件组成,它们都含有寄存器
相联存储器既可以按地址寻址又可以按内容(通常是某些字段)寻址,为与传统存储器区分又称按内容寻址的存储器
硬件能直接执行的只能是机器语言(二进制编码)