CPU(Central Processing Unit,中央处理单元)是计算机系统的核心部件,它负责执行程序中的指令、处理数据,并控制计算机内部各部件的协调工作。关于CPU的指令系统和存储系统,以下是对这两者的详细阐述:
一、CPU的指令系统
指令系统是计算机硬件的语言系统,也叫机器语言,它是软件和硬件的主要界面,从应用角度看,它是用户软件与硬件之间的桥梁。依据指令长度的不同,指令系统可分为以下三种:
复杂指令系统(CISC):CISC中的指令长度可变,兼容性强,指令繁多。早期的CPU,如IBM的System360、Intel的8080和8086系列、Motorola的68000系列等,都采用CISC结构。这种设计简化了软件和编译器的设计,但也显著提高了硬件的复杂性。当硬件复杂度逐渐提高时,CISC结构出现了一系列问题,例如大量复杂指令在实际中很少用到,典型程序所使用的80%的指令只占指令集总指令数的20%,消耗大量精力的复杂设计只有很少的回报。
精简指令系统(RISC):RISC中的指令长度比较固定,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)。RISC指令系统的最本质特征是通过load/store结构简化了指令间关系,即所有运算指令都是对寄存器运算,所有访存都通过专用的访存指令(load/store)进行。这样,CPU只要通过寄存器号的比较就能判断运算指令之间以及运算指令和访存指令之间有没有数据相关性,而较复杂的访存指令相关判断(需要对访存的物理地址进行比较)则只在执行load/store指令的访存部件上进行,从而大大简化了指令间相关性判断的复杂度,有利于CPU采用指令流水线、多发射、乱序执行等提高性能。
超长指令字(VLIW):VLIW本质上来讲是多条同时执行的指令的组合,其“同时执行”的特征由编译器指定,无须硬件进行判断。VLIW结构的最初思想是最大限度利用指令级并行(Instruction Level Parallelism,ILP),VLIW的一个超长指令字由多个互相不存在相关性(控制相关、数据相关等)的指令组成,可并行进行处理。VLIW可显著简化硬件实现,但增加了编译器的设计难度。
二、CPU的存储系统
存储系统是计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的系统。在计算机系统的层次结构中,存储系统处于整个存储层次结构的较低层次,负责数据的存储和读取。CPU的存储系统主要包括以下几个部分:
寄存器:寄存器是CPU内部的高速存储单元,用于暂存数据和指令。寄存器的访问速度非常快,几乎与CPU的运行速度相匹配。寄存器组可分为专用寄存器和通用寄存器,通用寄存器用途广泛并可由程序员规定其用途。寄存器是数据存储体系的最内层,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。
高速缓存(Cache):Cache是位于CPU和主存之间的高速存储器,用于存储当前最活跃的程序和数据。Cache的速度远高于主存,因此可以显著提高CPU的数据访问速度。Cache的内容是主存的副本拷贝,对于程序员来说是透明的。当CPU需要访问数据时,会首先尝试从Cache中读取,如果命中(即数据在Cache中),则直接返回数据;如果未命中,则从主存中读取数据并放入Cache中。
主存(内存):主存是计算机中用于存储数据和程序的临时存储设备,特别是随机存取存储器(RAM)。内存为CPU提供高速的数据和指令存储,确保CPU能够迅速获取所需信息。计算机中所有程序的运行都是在内存中进行的,内存的大小和速度直接影响计算机的运行速度。不过,内存中的数据是暂时存储的,断电后数据会丢失,因此需要定期将数据保存到外部存储设备中。
外部存储:外部存储包括硬盘驱动器、固态驱动器(SSD)、光盘驱动器等,用于长期保存数据和程序。外部存储的容量通常很大,可以存储大量的数据和文件。与内存相比,外部存储的访问速度较慢,但具有更高的可靠性和持久性。
综上所述,CPU的指令系统和存储系统是计算机系统中两个至关重要的组成部分。指令系统决定了CPU能够执行的操作和指令的类型,而存储系统则负责数据的存储和读取。这两者的协同工作使得计算机能够高效地执行各种任务。