文章目录
[1. 冯诺依曼模型](#1. 冯诺依曼模型)
[1.1 四个子系统](#1.1 四个子系统)
[1.2 存储程序概念](#1.2 存储程序概念)
[1.3 指令的顺序执行](#1.3 指令的顺序执行)
[2. 计算机组成部件](#2. 计算机组成部件)
[3. 中央处理单元CPU](#3. 中央处理单元CPU)
[4. 内存](#4. 内存)
[5. 输入/输出(I/O)系统](#5. 输入/输出(I/O)系统)
[6. 程序的执行](#6. 程序的执行)
[6.1 机器周期](#6.1 机器周期)
[6.2 输入/输出操作](#6.2 输入/输出操作)
[7. 体系结构](#7. 体系结构)
[7.1 CISC(复杂指令集计算机)](#7.1 CISC(复杂指令集计算机))
[72 RISC(精简指令集计算机)](#72 RISC(精简指令集计算机))
[7.3 流水线技术](#7.3 流水线技术)
1. 冯诺依曼模型
冯诺依曼模型由科学家约翰·冯·诺依曼提出,是现代计算机体系结构的基础。基于冯诺依曼模型建造的计算机在存储器(内存和寄存器)中存储数据和程序。由于程序和数据在逻辑上是相同的,因此程序也能存储在计算机的存储器中。
1.1 四个子系统
存储器:
- 功能:存储器用于保存计算机运行时需要的数据和指令。内存中的数据可以随时被处理器访问和修改。
- 类型:包括主存(RAM)、只读存储器(ROM)和寄存器。
- 重要性:存储器是计算机的核心组件,所有数据和指令都在这里存储和读取。
- 操作:CPU通过地址总线指定存储位置,通过数据总线读取或写入数据。
算数逻辑单元(ALU):
- 功能:ALU执行所有的算术和逻辑操作,如加减乘除、逻辑与或非、移位等。
- 类型:包括加法器、乘法器、逻辑门等。
- 重要性:ALU是计算机的计算核心,负责执行各种数据处理任务。
- 操作:CPU将操作数送入ALU,通过控制单元发出相应指令,ALU进行计算并将结果存回寄存器或内存。
控制单元:
- 功能:控制单元解码和执行指令,协调存储器、ALU和I/O单元的工作。
- 组成:包括程序计数器(PC)、指令寄存器(IR)、控制逻辑电路等。
- 重要性:控制单元通过从存储器读取指令并解释执行,确保计算机按照预定的程序运行。
- 操作:通过控制信号,控制单元决定各个部件的工作状态和操作顺序。
输入/输出单元(I/O):
- 功能:I/O单元允许计算机与外部环境进行数据交换。
- 组成:输入设备(键盘、鼠标等)和输出设备(显示器、打印机等)。
- 重要性:I/O单元是计算机与外界交互的桥梁,负责接收外部数据和输出处理结果。
- 操作:输入设备将外部数据送入计算机,输出设备将计算结果输出到外部。
1.2 存储程序概念
冯诺依曼模型的一个重要特征是"存储程序"概念,即程序也必须存储在存储器(内存)中。现代计算机的存储单元用于存储程序和数据,这意味着程序和数据应具有相同的格式。实际上,它们都是以位模式(0和1)存储在内存中。
-
计算机启动过程:
- 当计算机启动时,首先从只读存储器(ROM)中读取启动程序(BIOS/UEFI),这个程序初始化硬件并加载操作系统。
- 操作系统被加载到内存中,控制计算机的资源和提供应用程序的运行环境。
-
程序执行过程:
- 应用程序的代码被加载到内存中。
- CPU通过程序计数器(PC)获取指令地址,从内存中读取指令并执行。
- 指令可能涉及数据操作,这些数据也存储在内存中,CPU通过地址总线访问这些数据进行计算。
1.3 指令的顺序执行
冯诺依曼模型中的程序由一组数量有限的指令组成,控制单元从内存中提取指令,解释指令,并逐条顺序执行。这意味着指令的执行是按程序中预定的顺序进行的,除非程序包含跳转或分支指令。
-
指令顺序执行:
- 控制单元从内存中逐条提取指令,按序执行。
- 每条指令包含操作码和操作数,控制单元负责解释这些指令,并协调其他组件执行相应的操作。
-
内存结构:
- 内存分为两个部分:程序(包含一系列指令,如
1+2
,-3
,*4
,/5
等。)和数据(包含若干数据值,如10, 40, 20, 3, 9)。 - 程序部分存储要执行的指令,数据部分存储指令执行过程中需要操作的数据。
- 内存分为两个部分:程序(包含一系列指令,如
-
程序执行过程:
- 取指令(Fetch):控制单元从内存的程序部分读取下一条要执行的指令,通常由程序计数器(PC)提供指令地址。
- 解释指令(Decode):控制单元对读取到的指令进行解释,确定要执行的操作和操作数。
- 执行指令(Execute):ALU或其他执行单元执行指令规定的操作,可能涉及从内存读取或写入数据。
- 存储结果(Store):将指令执行的结果存储到内存或寄存器中。
示例分析:
假设有如下程序和数据:
- 程序
|---|-------|
| 1 | 1 + 2 |
| 2 | -3 |
| 3 | *4 |
| 4 | /5 |
- 数据
|---|----|
| 1 | 10 |
| 2 | 40 |
| 3 | 20 |
| 4 | 3 |
| 5 | 9 |
执行过程
- 取指令 :控制单元读取第一条指令
1 + 2
。 - 解释指令:控制单元解释指令,确定执行加法操作。
- 执行指令 :ALU执行
1 + 2
,结果为3。 - 存储结果:将结果3存储在数据部分或寄存器中。
接着执行下一条指令:
- 取指令 :控制单元读取第二条指令
-3
。 - 解释指令:确定执行减法操作。
- 执行指令:从上一步结果中减去3,得到结果0。
- 存储结果:将结果0存储。
继续依次执行* 4
和/ 5
指令,最终结果为(10 + 40 - 20) * 3 / 9
2. 计算机组成部件
计算机的组成部件可以分为三个大类:中央处理单元(CPU),主存储器(内存),输入/输出子系统(I/O)。
中央处理单元(CPU)
- 功能:CPU是计算机的核心部件,负责执行指令、处理数据和控制其他部件的操作。
- 组成:
- 算数逻辑单元(ALU):负责执行算术和逻辑运算。
- 寄存器:用于临时存储数据和指令。
- 控制单元:负责从内存中提取指令,解释并执行指令,协调计算机各部件的工作。
- 现代CPU:随着技术的发展,现代CPU集成了越来越多的功能,提高了计算机的性能和效率。例如,苹果的M1芯片不仅集成了CPU和GPU,还将内存集成其中,使得数据传输更加高效。集成度的提高使得计算机性能更强,功耗更低,适用于多种应用场景。
主存储器(内存)
- 功能:内存用于存储正在执行的程序和数据。内存中的数据可以快速读取和写入,保证CPU能够高效地处理数据。
- 类型:主要包括随机存取存储器(RAM)和只读存储器(ROM)。
- 结构:内存通过数据总线、地址总线和控制总线与CPU进行通信。
输入/输出子系统(I/O)
- 功能:I/O子系统负责计算机与外部环境的交互,包括数据的输入和输出。
- 组成:
- 输入设备:如键盘、鼠标等,用于接收用户输入。
- 输出设备:如显示器、打印机等,用于将计算结果输出给用户。
- 控制器:每个I/O设备通过控制器与CPU和内存进行通信。
总线结构
总线是计算机内部各部件之间传输数据的通道,主要包括:
- 数据总线:用于传输数据。
- 地址总线:用于传输内存地址,确定数据的存储位置。
- 控制总线:用于传输控制信号,协调各部件的操作。
3. 中央处理单元CPU
CPU是计算机的核心组件,负责执行数据运算和指令处理。它主要包括三个部分:算数逻辑单元(ALU)、控制单元和寄存器组。
3.1 CPU中的算数逻辑单元(ALU)
算数逻辑单元(ALU)是CPU中负责执行所有算术和逻辑运算的部分。ALU对输入的数据进行计算和逻辑操作,并将结果输出。
主要运算类型
算术运算:
- 整数运算:包括加法、减法、乘法和除法。
- 浮点数运算:处理浮点数的加减运算。
位移运算:
- 逻辑移位:包括左移和右移,移位时空位用0填充。
- 算术移位:保留符号位不变,左移或右移时符号位保持不变。
逻辑运算:
- 非(NOT):将二进制数据的每一位取反。
- 与(AND):将两个二进制数据对应位同时为1时,结果为1,否则为0。
- 或(OR):将两个二进制数据对应位有一个为1时,结果为1。
- 异或(XOR):将两个二进制数据对应位不同,则结果为1,相同则为0。
3.2 CPU中的寄存器
寄存器是CPU内部用于临时存储数据的高速存储单元。它们具有非常快的读写速度,用于存储中间运算结果、当前指令和地址等。
主要类型
- 数据存储寄存器:
- 保存运算的中间结果和数据。
- 指令存储器(IR):
- CPU从内存中逐条取出指令,并存储在指令存储器中,解释并执行指令。
- 程序计数器(PC):
- 保存当前正在执行的指令地址。当前指令执行完成后,计数器自动加1,指向下一条指令的内存地址。
3.3 CPU控制单元
控制单元负责控制和协调CPU内各个子系统的操作。它通过生成控制信号来管理数据流和指令执行过程,确保各个部分协同工作。
主要职责
- 指令解码:解释从内存中取出的指令,并生成相应的控制信号。
- 执行控制:控制ALU执行指定的算术和逻辑运算。
- 数据流管理:管理寄存器和内存之间的数据传输。
- 系统协调:协调CPU内部各部分以及CPU与其他硬件组件之间的工作。
4. 内存
内存是存储单元的集合,每个存储单元都有唯一的标识,称为地址。数据以"字"的形式在内存中传入传出,字可以是8位、16位、32位、64位等。如果字是8位,一般称为一个字节。
4.1 内存类型
主要有两种类型:随机存取存储器(RAM)和只读存储器(ROM)。
随机存取存储器(RAM):
- 特点:系统断电后,信息(程序或数据)丢失。
- 用途:用于存储计算机运行过程中需要处理的数据和程序。
- 示例:在计算机运行时,操作系统和应用程序的数据会存储在RAM中,以便CPU快速访问和处理。
只读存储器(ROM):
- 特点:系统断电数据不会丢失。ROM中的数据由制造商预先写入,用户只能读不能写。
- 用途:常用于存储开机时运行的程序,例如系统引导程序。
- 示例:计算机的BIOS/UEFI固件通常存储在ROM中,以便在系统启动时加载和运行。
固态硬盘(SSD):
- 现代固态硬盘也可以写入数据,但系统盘通常不可以写入。固态硬盘常用来存储操作系统和应用程序,以提供快速读取和写入性能。
4.2 存储器的层次
存储器通常分为多个层次,从速度和容量上形成金字塔结构,从上到下,存储速度逐渐降低,容量逐渐增大:
- 寄存器(CPU中使用):最快速、最昂贵,容量最小。
- 高速缓冲存储器(Cache):存储数据的速度比内存快,比寄存器慢。容量较小,位于CPU和主存储器(内存)之间。
- 主存储器(内存):速度较慢,容量较大,用于存储程序和数据。
4.3 高速缓冲存储器
高速缓冲存储器(Cache)存储数据的速度比内存快,比寄存器慢。通常容量较小,位于CPU和主存储器(内存)之间。Cache用于临时存储经常访问的数据,以提高系统性能。
4.4 CPU和存储器的连接
CPU与主存储器之间通常通过总线进行连接,总线包括三组线路:数据总线、地址总线和控制总线。
数据总线:
- 功能:传输数据。由多根线组成,每根线每次传送1个位的数据。
- 示例:如果计算机的字是32位,那么需要32根线的数据总线,以便同一时刻传送32位的数据。
地址总线:
- 功能:传输地址信息,用于访问存储器中的特定位置。
- 示例:如果存储器的容量为2的n次方个字,那么地址总线需要n根线来传送n位的地址数据。
控制总线:
- 功能:传输控制信号,协调各部件的操作。
- 示例:如果计算机有2的m次方条控制命令,那么控制总线就需要有m根线来传送这些控制信号。
5. 输入/输出(I/O)系统
输入/输出设备使计算机能够与外界进行通信,并在断电情况下存储程序和数据。I/O设备分为两大类:非存储设备和存储设备。
1. 非存储设备
- 键盘 ,鼠标 ,显示器 ,打印机
2. 存储设备(辅助存储设备)
- 特点:数据存储便宜,断电后数据不丢失。
- 种类:
- 磁介质:如硬盘、磁带等。
- 光介质:如CD、DVD、蓝光光盘等。
3. I/O设备的连接
-
输入/输出设备不能直接与CPU和内存的总线相连接
- 原因:输入/输出设备与CPU和内存的本质不同,输入/输出设备是磁性或光学设备,而CPU和内存是电子设备。
- 速度差异:输入/输出设备的数据读取速度远慢于CPU和内存,因此需要一个中介来处理这种差异,这个中介就是输入/输出控制器。
-
输入/输出控制器
- 功能:连接输入/输出设备到总线上,每一个输入/输出设备都有一个特定的控制器。
- 作用:处理输入/输出设备与CPU和内存之间的数据传输和速度差异。
-
I/O设备的连接控制器
- 功能:控制器清除了输入/输出设备与CPU及内存在本质上的障碍,确保数据的有效传输。
- 类型:
- 串行控制器:只有一根数据线连接到设备上,数据按位顺序传输。
- 并行控制器:有多根数据线连接到设备上,可以同时传输多个位的数据。
-
常用控制器
- SCSI(小型计算机系统接口):用于连接和传输数据到和来自外围设备。
- 火线(FireWire):用于高速数据传输,常用于连接摄像机和外部硬盘。
- USB(通用串行总线):广泛用于连接各种外围设备,如键盘、鼠标、存储设备等。
- HDMI(高清多媒体接口):用于传输高清视频和音频信号,常用于连接显示器和电视。
I/O设备通过控制器连接到计算机总线,实现与CPU和内存的数据传输。控制器处理I/O设备与CPU和内存之间的本质差异,确保数据有效传输。串行控制器和并行控制器分别用于不同的数据传输需求,常用的控制器包括SCSI、火线、USB和HDMI。通过理解这些连接机制,可以更好地理解计算机系统与外部设备的交互原理。
**6.**程序的执行
通用计算机使用程序的一系列指令来处理数据,通过执行程序,将输入数据转换为输出数据。程序和数据都放在内存中。
6.1 机器周期
CPU利用重复的机器周期来执行程序中的指令,一步一条,从开始到结束。一个机器周期包括三个步骤:取指令、译码和执行。
-
取指令:
- 步骤:CPU的控制单元命令系统将下一条将要执行的指令复制到CPU的指令寄存器中。
- 细节:被复制的指令地址保存到程序计数器(PC)中,复制完成后,程序计数器自动加1,指向内存中的下一条指令。
-
译码:
- 步骤:当指令置于指令寄存器(IR)后,该指令将由控制单元负责译码。
- 细节:指令译码的结果是产生一系列系统可执行的二进制代码。
-
执行:
- 步骤:指令译码完毕后,控制单元发送任务命令到CPU的某个部件。
- 细节:例如,控制单元告知系统从内存中读取数据,或者进行算术运算。这就是执行阶段。
6.2 输入/输出操作
输入/输出操作是计算机与外部环境进行数据交换的过程。
-
输入操作:
- 功能:将外部数据输入到计算机内存中。
- 过程:例如,用户通过键盘输入数据,数据通过键盘控制器传送到内存。
-
输出操作:
- 功能:将计算结果或其他数据输出到外部设备。
- 过程:例如,计算机将处理结果通过显示器输出,显示器控制器负责将数据传输到显示器进行显示。
程序的执行是通过机器周期的重复操作来完成的,每个机器周期包括取指令、译码和执行三个步骤。通过控制单元协调,各个步骤顺序执行,使得计算机能够自动化处理数据并产生输出。输入/输出操作确保了计算机能够与外部环境进行有效的数据交换。理解这一流程,有助于深入了解计算机的工作原理和程序执行机制。
7. 体系结构
7.1 CISC(复杂指令集计算机)
设计策略:使用大量的指令,包括复杂指令。并且每个复杂任务对应一条指令,简化了程序设计。
优点:
- 程序设计更容易,因为复杂任务可以通过单一指令完成。
- 程序员不需要编写大量的简单指令来实现复杂操作。
缺点:
- 指令集的复杂性导致CPU和控制单元的电路设计非常复杂。
优化方案:
- 程序在两个层面上运行,CPU不直接执行机器语言指令,而是执行被称为微操作的简单操作。
- 复杂指令被转化为一系列简单操作后由CPU执行,这种使用微操作的程序设计被称为微程序设计。
应用:典型的CISC处理器是英特尔开发的奔腾系列CPU。
72 RISC(精简指令集计算机)
设计策略:使用少量的指令,完成最少的简单操作。强调指令集的简洁性和高效性。
优点:
- 指令集简洁,CPU和控制单元的设计更简单。
- 通过减少指令集的复杂性,提高了指令执行的速度。
缺点:
- 程序设计相对困难,因为复杂操作需要由多条简单指令组合实现。
应用:
- RISC处理器在嵌入式系统、移动设备和服务器中广泛应用,例如ARM处理器。
7.3 流水线技术
概念:流水线技术通过将指令执行分为多个阶段(如取指令、译码和执行),实现多个指令的并行处理,提高了CPU的吞吐量。
工作原理:
- 早期计算机每条指令的三个阶段需要串行完成,即一条指令执行完毕后才开始下一条指令。
- 现代计算机使用流水线技术,允许下一条指令在前一条指令完成前开始执行。例如,指令1的取指令阶段完成后,指令2可以开始其取指令阶段,而指令1进入译码阶段。
优势:
- 流水线技术显著提高了指令执行的效率和CPU的整体性能。
- 通过并行处理多个指令的不同阶段,提高了CPU的吞吐量。
- 无流水线:指令1执行完毕后,指令2才开始,依次类推,执行效率较低。
- 有流水线:指令1的各阶段与指令2和指令3的各阶段交错进行,实现了指令的并行处理,提高了执行效率。
CISC和RISC是两种不同的计算机体系结构,各有优缺点。CISC通过复杂指令集简化程序设计,但导致CPU设计复杂;RISC通过简化指令集提高执行速度,但程序设计相对困难。流水线技术通过并行处理指令的不同阶段,显著提高了计算机的执行效率和性能。