【计算机组成原理】计算机系统概述:从发展历程到工作原理
目录
一、引言
二、计算机发展历程:硬件演进与元件革命
1. 硬件的四代演进
2. 计算机元件的更新换代
三、计算机系统的组成:硬件与软件的协同
四、计算机硬件结构:冯・诺依曼体系的基石
功能部件详解
五、计算机软件体系:从系统支撑到应用落地
三级语言与翻译程序
六、计算机系统的层次结构
七、计算机系统的工作原理
“存储程序” 工作方式
从源程序到可执行文件
指令执行过程(以 “取数指令送入累加器 ACC” 为例)
八、总结
一、引言
计算机作为现代信息技术的核心载体,其系统架构的演进与工作原理的创新,持续推动着数字时代的发展。本文将从发展历程、系统组成、硬件结构、软件体系、层次结构及工作原理六个维度,全面解析计算机系统的核心逻辑。
二、计算机发展历程:硬件演进与元件革命
自 1946 年世界上第一台电子数字计算机(ENIAC)问世以来,计算机硬件与元件的发展历经数次变革,深刻重塑了信息技术的形态。
1. 硬件的四代演进
计算机硬件的发展可划分为四代,每一代都以逻辑元件的革新为标志:
- 第一代(1946—1957 年):电子管时代逻辑元件采用电子管,以机器语言编程;主存储器依赖延迟线或磁鼓,容量极小;设备体积庞大、成本高昂,运算速度仅为几千到几万次每秒。
- 第二代(1958—1964 年):晶体管时代逻辑元件升级为晶体管,运算速度提升至几万到几十万次每秒;主存储器采用磁芯存储器;软件生态开始发展,高级语言及其编译程序出现,操作系统雏形诞生。
- 第三代(1965—1971 年):中小规模集成电路时代逻辑元件采用中小规模集成电路,半导体存储器逐步取代磁芯存储器;高级语言与分时操作系统快速发展,计算机的易用性与多任务能力显著提升。
- 第四代(1972 年至今):超大规模集成电路时代大规模与超大规模集成电路催生了微处理器,并行技术、流水线、高速缓存与虚拟存储器等技术广泛应用,计算机性能实现质的飞跃,为现代互联网、人工智能等应用奠定了硬件基础。
2. 计算机元件的更新换代
元件技术的突破是计算机性能提升的核心驱动力:
- 摩尔定律:当价格不变时,集成电路的晶体管密度约每 18 个月翻倍,性能同步提升。这一规律揭示了信息技术 “性能翻倍、成本递减” 的发展节奏。
- 半导体存储器发展:从 1970 年仙童半导体的首款大容量半导体存储器开始,存储容量从单芯片 1KB 逐步发展至如今的 1TB,为海量数据存储与高速处理提供了支撑。
- 微处理器演进:从 1971 年 Intel 4004 到如今的 Core i7 系列,微处理器的机器字长(计算机一次整数运算可处理的二进制数据位数)从 8 位发展至 64 位(如 Pentium、Core 系列),直接决定了运算能力的上限。
三、计算机系统的组成:硬件与软件的协同
计算机系统由硬件系统(有形物理设备的总称,如 CPU、存储器、I/O 设备)和软件系统(硬件上运行的程序及相关数据文档,如操作系统、应用程序)共同构成。系统性能的优劣,既依赖硬件的效率,也取决于软件的优化程度,二者相辅相成。
其中,软 / 硬件逻辑功能等价性是系统设计的关键思想:对于某一功能,若既可用硬件实现,又可用软件实现,则从用户视角看二者功能等价。例如浮点数运算可通过专用浮点运算器(硬件)实现,也可通过子程序(软件)实现 —— 硬件实现性能更优但成本高,软件实现更灵活但性能稍弱。在系统设计中,需结合功能的使用频率与成本,合理分配软 / 硬件职责。
四、计算机硬件结构:冯・诺依曼体系的基石
冯・诺依曼在研究 EDVAC 时提出的 “存储程序” 概念,奠定了现代计算机的基本结构,基于此的计算机统称为冯・诺依曼机,其核心特点包括:
- 采用 “存储程序” 工作方式:程序与数据需先送入主存储器,执行过程无需人工干预,计算机自动逐条执行指令;
- 硬件由运算器、存储器、控制器、输入设备、输出设备五大部件组成;
- 指令与数据以二进制代码形式同等存储于存储器,计算机需能区分二者;
- 指令由操作码(指出操作类型)和地址码(指出操作数地址)组成。
功能部件详解
- 输入 / 输出设备:是计算机与外界交互的桥梁。输入设备(如键盘、鼠标、扫描仪)将外部信息转换为计算机可识别的形式送入系统;输出设备(如显示器、打印机)将处理结果以人类可感知的形式输出。
- 存储器:分为主存(CPU 可直接访问)和外存(需调入主存才能被 CPU 访问,如硬盘、U 盘)。主存采用 “按地址存取” 方式,由存储体(存放二进制信息)、存储器地址寄存器(MAR)(存放访存地址,位数决定可寻址单元数,如 10 位 MAR 对应 2¹⁰=1K 单元)、存储器数据寄存器(MDR)(暂存读写数据,位数通常等于存储字长)及时序控制逻辑组成。
- 运算器:是执行算术与逻辑运算的核心,以算术逻辑单元(ALU)为核心,包含累加器(ACC)、乘商寄存器(MQ)等通用寄存器,以及程序状态寄存器(PSW)(记录运算状态,如溢出、进位)。
- 控制器:是系统的 “指挥中心”,由程序计数器(PC)(存放当前指令地址,具有自动加 1 功能)、指令寄存器(IR)(存放当前指令)和控制单元(CU)组成。运算器与控制器集成后构成中央处理器(CPU),CPU 与主存共同构成 “主机”,外存、I/O 设备等则属于 “外设”。
五、计算机软件体系:从系统支撑到应用落地
软件按功能可分为系统软件和应用软件:
- 系统软件:是保障计算机高效、正确运行的基础软件,如操作系统(Windows、Linux)、数据库管理系统(DBMS)、语言处理程序(编译器、解释器)等,通常作为系统资源向用户提供。
- 应用软件:是为解决特定领域问题而编制的程序,如科学计算程序、工程设计软件、数据统计工具等。
三级语言与翻译程序
计算机语言的发展经历了机器语言、汇编语言、高级语言三个阶段:
- 机器语言:是二进制代码序列,是计算机唯一可直接识别和执行的语言,但需编程人员记忆指令编码,开发效率极低。
- 汇编语言:用英文符号(如助记符)替代二进制指令,可读性显著提升,但仍需经汇编程序翻译为机器语言才能执行。
- 高级语言(如 C、C++、Java):更贴近人类思维,可直接描述解决问题的逻辑,但需经编译程序(将高级语言编译为机器语言或汇编语言)或解释程序(逐条翻译并立即执行)转换为机器可执行的形式。
六、计算机系统的层次结构
计算机系统是一个多级层次综合体,不同视角(设计者、使用者)对系统的认知存在差异。典型的层次结构包括:
- 微程序机器层:是实在的硬件层,由机器硬件直接执行微指令;
- 传统机器语言层:也是实际的机器层,由微程序解释机器指令系统;
- 操作系统层:由操作系统程序实现,包含 “广义指令”(操作系统定义的软件指令),因此也称为 “混合层”;
- 汇编语言层:由汇编程序支持,可编写汇编语言源程序;
- 高级语言层:面向用户,由高级语言编译程序支持,方便用户编写应用程序;
- 应用程序层:由解决具体问题的处理程序(如文字处理、多媒体软件)组成。
其中,第 3~5 层属于虚拟机器(由软件实现的机器),仅对该层的 “观察者” 可见。层次间遵循 “下层是上层的基础,上层是下层的扩展” 的逻辑,而软件与硬件的界面是指令集体系结构(ISA)—— 它定义了计算机可执行的指令集合,以及操作数的地址空间和类型,是软件 “可见” 的硬件边界。
七、计算机系统的工作原理
“存储程序” 工作方式
程序执行需遵循 “存储程序” 逻辑:程序与数据需先送入主存储器,执行时计算机自动逐条取出并执行指令,过程包括 “取指令→译码→计算下条指令地址→取操作数并执行→结果送回存储器”,周而复始直至程序结束。
从源程序到可执行文件
以 C 语言程序(如hello.c)为例,需经历以下四个阶段转换为可执行文件:
- 预处理:预处理器(如
cpp)处理以#开头的命令(如#include),将头文件内容插入程序,生成.i文件(如hello.i); - 编译:编译器(如
cc1)将预处理后的文件编译为汇编语言源程序(如hello.s); - 汇编:汇编器(如
as)将汇编程序翻译为可重定位目标代码文件(如hello.o),该文件为二进制格式,无法直接用文本编辑器阅读; - 链接:链接器(如
ld)将多个目标文件(如hello.o)与标准库函数(如printf所在的printf.o)合并,生成可执行目标文件(如hello),最终存储于磁盘。
指令执行过程(以 “取数指令送入累加器 ACC” 为例)
指令执行是计算机工作的原子过程,以取数指令为例,其信息流程为:
- 取指令:
PC→MAR→M→MDR→IR。PC 的内容送入 MAR,主存储器根据 MAR 中的地址读出指令,经数据线送入 MDR,再传送到 IR 中; - 分析指令:
OP(IR)→CU。控制单元(CU)根据 IR 中指令的操作码,生成相应的控制信号,送至各执行部件; - 执行指令:
Ad(IR)→MAR→M→MDR→ACC。指令的地址码送入 MAR,主存储器读出操作数,经数据线送至 MDR,再传送到累加器 ACC 中。
执行完一条指令后,需计算下条指令地址((PC) + 1→PC),为取下条指令做准备。需注意,(PC)表示程序计数器的当前内容,运算时括号不可省略(如(PC)+1→PC不能写为PC+1→PC),但描述数据通路时可简化。
八、总结
本文系统阐述了计算机系统的发展历程、组成结构和工作原理。硬件发展经历了电子管、晶体管、中小规模集成电路和超大规模集成电路四代演进,遵循摩尔定律持续提升性能。计算机系统采用冯·诺依曼架构,由硬件和软件协同工作,通过"存储程序"方式执行指令。软件体系包括系统软件和应用软件,语言发展经历了机器语言、汇编语言到高级语言三个阶段。计算机采用多级层次结构,从底层硬件到上层应用构建成完整系统。程序执行经历预处理、编译、汇编和链接四个阶段,指令执行遵循"取指-译码-执行"的循环过程。
