大家熟悉的计算机系统是由软件和硬件组合而成,可以按照功能换分为多级层次结构。
硬件通常指一切可以看得见,摸的着的设备实体。原始的冯诺依曼(VonNeumann)计算机在结构上是以运算器为中心,现今转向以存储为中心了。如下图最基本的计算机结构图:
计算机各个部件之间的合作关系
控制器:是分析和执行指令的部件,也是统一指挥并控制计算机各个部件协调工作的中心部件,所依据的是机器指令。控制器组成包含如下:
程序计数器PC:存储下一条要执行指令的地址;
指令寄存器IR:存储即将执行的指令;
指令译码器ID:对指令中的操作码字段进行分析解释;
时序部件:提供时序控制信号。
运算器:也称为算数逻辑单元,主要功能是在控制器的控制下完成各种算数运算和逻辑运算。运算器的组成如下:
算数逻辑单元ALU:数据的算数运算和逻辑运算;
累加寄存器AC:通用寄存器,为ALU提供一个工作区,用于暂存数据;
数据缓冲寄存器DR:写内存时,暂存指令或数据;
状态条件寄存器PSW:存状态标志和控制标志。
主存储器:也称内存存储,用于存储现场操作的信息与中间结果,包括机器指令和数据。
辅助存储器:也称为外存储器。用于存储需要长时间保存的各种信息。
输入设备:把人们编好的程序和原始数据送到计算机中去,并且将它们转换为计算机内部能够识别和接受的信息方式。按输入信息的形态可以分为字符输入、图形输入、图像输入和语音输入等。目前,常见的输入设备有鼠标、键盘、扫描仪等。
输出设备:将计算机的处理结果以人或者其他设备所能接受的形式送出计算机。目前,最常见的输出设备有显示器和打印机。有些设备既可以是输入设备,也可以是输出设备,如自动控制、辅助存储器和检测系统中使用的数模转换装置等。
复杂指令集系统CISC和精简指令集系统RISC
在计算机系统结构发展过程中,指令系统的优化设计有着两个截然相反的反向,一个是(Complex Instruction Set Computer,CISC)增强指令功能,设置一些功能复杂的指令,把一些由软件实现的、常用的功能改用硬件的指令系统来实现;另一个是(Reduced Instruction Set Computer,RISS)尽量简化指令功能,只保留那些功能简单,能在一个节拍内完成的指令,较复杂的功能用一段子程序来实现。
CISC指令系统特点:
指令数量众多,指令系统拥有大量指令,通常100~250条;
指令的使用频率相差悬殊。最常使用的指令是一些比较简单的指令,仅占指令总数的20%,但在程序中使用的频率是80%,而大部分复杂的指令却很少使用;
支持多种寻址方式,支持的寻址方式通常有5~20种;
变长的指令,指令的长度不固定,变长的指令增加指令译码电路的复杂性;
指令可以对主存单元中的数据进行处理,其执行速度较慢;
以微程序控制为主,CISC的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电路实现控制器,通常采用微程序控制。
RISC指令系统特点:
指令数量少。优先选用使用频率最高的一些简单指令和一些常用指令。避免使用复杂指令。只提供了从存储器中读数(LOAD)和把数据写入存储器(STORE)两条指令对存储器进行操作,其余所有操作都在CPU的寄存器之间进行;
指令的寻址方式少。通常只支持寄存器寻址、立即数寻址和相对寻址方式;、
指令长度固定,指令格式种类少;
以硬布线逻辑控制为主。提高操作的执行速度;
单周期指令执行,采用流水线技术;
CPU中的通用寄存器数量多,一般32个以上,有的上千个。
大多数RISC采用Cache方案,使用Cache来提高读取指令的速度。
总线
是一组能为多个部件分时共享的公共信息传送线路。共享是指总线上可以接挂多个部件,各个部件之间相互交换信息都可以通过这组公共线路传送;分时是指同一时刻只允许有一个部件向总线发送信息,如果出现两个或两个以上部件同时向总线发送信息,就会导致信号冲突。当然,允许多个部件同时从总线上接受相同的信息。
按总线功能划分:地址总线,数据总线,控制总线三类。
地址总线:用来传输地址信息;
数据总线:用来传输数据信息;
控制总线:用来控制传送各种控制信号。