计算机系统层次结构
计算机是系统由计算机硬件系统和软件系统。硬件是指有形的物理设备,是计算机系统中的实际物理装置的总成。软件是指在硬件上运行的程序和相关的数据及文档。
计算机硬件
冯诺依曼机基本思想
冯诺依曼提出了“存储程序”的概念,为现代计算机的基本结构奠定了基础。
“存储程序”的基本思想是:将实现编制好的程序和原始数据送入主存后才能执行,一旦程序被启动执行,就无需人员的干预,计算机会自动逐条执行指令,知道程序结束。
"冯诺依曼机"的特点:
- 采用存储程序的工作方式
- 计算机硬件系统由运算器、存储器、控制器、输入设备、输出设备5大部件组成
- 指令和数据以同等地位存储在存储器中
- 指令和数据均用二进制表示。指令由操作码和地址码组成,操作码指出操作类型,地址码指出操作数地址。
“冯诺伊曼机的基本工作方式是控制流驱动程序。
计算机各部件的基本功能
输入设备
输入设备的主要功能是将程序和数据以机器所能识别和接受的信息形式输入计算机。例如:键盘,鼠标,扫描仪、摄像机等
输出设备
输出设备的主要功能是将计算机处理的结果以人们所能接受的形式或者其他系统所要求的信息形式输出。例如:显示器,打印机。
存储器
存储器分为主存储器(内存储器)和辅助存储器(外存储器)。CPU能够直接访问的存储器是主存储器。辅助存储器是用于帮助存储器记忆更多的信息,辅助存储器必须调入主存才能被CPU访问。
主存储器的工作方式是按存储单元的地址存取,这种存取方式被称为按地址存取方式。
主存储器的最基本的组成如下图所示。存储体存放的是二进制的信息,地址寄存器(MAR)存储存放的地址,经过地址译码后找到所选的存储单元。数据寄存器(MDR)是用于暂存从存储器中读或者写的信息,时序控制逻辑用于产生存储器操作所需要的各种时序信号。
存储体是由许多存储单元构成的,每个存储单元包含若干个存储元件,每个存储单元存储一位二进制代码“0”或“1”。因此存储单元可存储一串二进制代码,这串代码就被称为存储字。这串代码的位数就叫做存储字长,一般是一个字节(8位)或者是字节的偶数倍数。
例:设MAR=4位,MDR=8位,则存储单元的个数为16个,这个是和MAR的位数有关系,存储字长等于MDR的位数为8位。
MAR用于寻址,其位数对应着存储单元的个数,如MAR为10位,那么就会有1024(2的10次方)个存储单元,MAR的长度与PC的长度相等。
MDR的位数和存储字长相等,一般为字节的2次幂的整数倍。
注意:MAR和MDR在现代计算器中是位于CPU中的,Cache(高速缓存寄存器)也位于CPU中
运算器
运算器是计算机内部的执行部件,用于进行算术运算和逻辑运算。算术运算规划进行的运算,如加、减、乘、除;逻辑运算包括与、或、非、异或、比较、移位等运算。
运算器的核心是算数逻辑单元(ALU)。运算器还有多个通用寄存器,用于暂存操作数和中间结果,如累加器(ACC),乘商寄存器(MQ)、操作数寄存器(X),变址寄存器(IX)、基址寄存器(BR)等。
运算器内还有程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或者处理机的状态信息,如结果是否溢出、有无产生进位或者借位、结果是否为负等。
控制器
控制寄存器由程序计数器(PC)、指令寄存器(IR)、控制单元(CU)组成。
PC用来存放当前欲执行的指令的地址,具体自动加1的功能。
IR用来存放当前的指令,其内容主要来自主存的MDR。
CPU包含ALU、通用寄存器组GPRs、标志寄存器、控制器、指令寄存器IR、程序计数器PC、存储器MAR和存储器数据寄存器MDR。
CPU和主存之间通过一组总线相连,总线中有地址、控制和数据三组信号线。
冯·诺依曼计算机硬件框图
以存储器为中心的计算机硬件框图
现代计算机硬件框图
计算机软件
软件的分类
三个级别的语言
机器语言
汇编语言
高级语言
软件和硬件的逻辑功能等价性
对于某一功能来说,既可以用硬件实现,又可以用软件实现,从用户的角度来看,它们在功能上是等价的。这一等价特性被称为软件和硬件逻辑功能的等价性。
计算机系统的层次结构
计算机系统的工作原理
从源程序到可执行文件
- 预处理阶段:预处理器(CPP)对源程序中以字符#开头的命令进行处理。输出结果是一个以.i为扩展名的源文件hello.i。
- 编译阶段:编译器(ccl)对预处理后的源程序进行编译,生成一个汇编语言程序hello.s。
- 汇编阶段:汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成为一个称为可重定位目标文件的hello.o。
- 链接阶段:链接器(ld)将多个可重定位目标文件和标准库函数合并为一个可执行目标文件。本例中将hello.o和标准库函数printf所在的可重定位目标模块printf.o合并,生成可执行文件hello。最终生成的可执行文件将会保存在磁盘上。
指令执行的过程的描述
取数指令的过程
- 取指令
PC–>MAR–>M–>MDR–>IR - 分析指令
OP(IR)–>CU - 执行指令
Ad(IR)–>MAR–>M–>MDR–>ACC