计算机组成原理(1:计算机系统组成)
一:计算机系统的组成
计算机系统由硬件系统和软件系统共同构建起来
二:计算机硬件系统
1:早期的冯·诺依曼机
美籍匈牙利科学家冯·诺依曼提出“程序存储”根据这一原理制造的计算机被称为冯·诺依曼结构计算机。被称为“现代计算机之父”。
“程序存储”:指令以代码的形式事先输入到计算机的主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。即按地址访问并顺序执行指令
计算机按照此原理应具有5大功能:数据传送、数据存储、数据处理、操作控制、操作判断
- 冯诺曼体系结构特点:
- 计算机硬件系统由五大部件组成(存储器、运算器、控制器、输出设备、输入设备)
- 指令和数据以同等地位存于存储器,可按地址寻访
- 指令和数据用二进制表示
- 指令由操作码和地址码组成
- 存储程序
- 以运算器为中心
2:计算机硬件系统的五大部件
下面我们详细分解这五大部件。
1. 存储器 (Memory)
功能:存放程序和数据。
核心指标:
存储容量:能存储信息的总量,单位通常是字节(Byte)、KB、MB、GB、TB等。
存取速度:完成一次读/写操作所需的时间。
层次结构:为了解决容量、速度和成本之间的矛盾,现代计算机采用多级存储器体系。
高速缓存 (Cache):速度最快,容量最小,成本最高。直接与CPU交换数据,用于缓解CPU和主存之间的速度差异。
主存储器 (主存/Memory):常说的“内存”(如DRAM)。速度较快,容量中等,存放当前正在运行的程序和数据。CPU只能直接访问Cache和主存。
辅助存储器 (外存/Storage):如硬盘(HDD)、固态硬盘(SSD)。速度慢,容量巨大,成本低,用于长期保存数据。程序和数据必须调入主存才能被CPU执行。
工作方式:按地址进行访问。每个存储单元都有一个唯一的地址,就像大楼的每个房间都有一个房号一样。
2. 运算器 (Arithmetic Logic Unit, ALU)
功能:是计算机的“算盘”,负责进行所有的算术运算(加、减、乘、除等)和逻辑运算(与、或、非、异或等)。
组成:由算术逻辑单元(ALU)、累加器(ACC)、寄存器组等组成。运算所需的数据来自内存,运算结果则写回内存或寄存器。
3. 控制器 (Control Unit, CU)
功能:是计算机的“指挥中心”,负责协调并控制计算机各部件执行程序的指令序列。
工作流程:
取指令:从内存中取出指令。
分析指令:翻译指令,明确要完成什么操作。
执行指令:根据指令的含义,发出相应的操作命令(控制信号),指挥运算器、存储器等部件完成操作。
核心寄存器:
程序计数器 (PC):存放下一条要执行指令的地址。(PC指向哪里,CPU就执行哪里)
指令寄存器 (IR):存放当前正在执行的指令。
与运算器的关系:控制器和运算器合称为中央处理器(CPU)。CPU是计算机的“大脑”。
4. 输入设备 (Input Devices)
功能:将外部的信息(数据、程序、命令)转换成计算机能识别和处理的形式,并送入计算机内部。
例子:键盘、鼠标、扫描仪、麦克风、摄像头等。
5. 输出设备 (Output Devices)
功能:将计算机处理的结果转换为人或其他设备所能识别的形式,并输出。
例子:显示器、打印机、音响等。
输入设备和输出设备合称为I/O设备或外部设备。
3:工作流程(以执行一个程序为例)
让我们以计算 1 + 2
这个简单任务为例,看看硬件是如何协作的。
输入程序和数据:
通过输入设备(键盘)将计算程序
a = 1 + 2
和原始数据1
、2
输入计算机。这些程序和数据被存入主存储器。
取指令与分析:
控制器中的程序计数器(PC) 指向程序的第一条指令的地址。
控制器根据这个地址,从主存中取出第一条指令(例如,“将内存地址X的数取出来”),放入指令寄存器(IR)。
控制器分析这条指令,明白是要执行一个“取数”操作。
执行指令:
控制器发出控制信号,命令主存储器将地址X中的数据
1
读取出来,并送到运算器的某个寄存器(如ACC)中。PC自动加1,指向下一条指令。
继续执行:
PC取下一条指令(“将内存地址Y的数取出来,并与ACC中的数相加”)。
控制器分析后,指挥主存取出数据
2
,并命令运算器(ALU) 执行加法操作。ALU将1
和2
相加,得到结果3
,暂存在ACC中。PC再指向下一条指令。
存储结果与输出:
最后一条指令可能是“将ACC中的结果存回内存地址Z”或“输出结果”。
如果是存储,控制器指挥将结果
3
写回主存。如果是输出,控制器指挥输出设备(如显示器)将结果
3
显示出来。
整个过程,本质上就是“取指-分析-执行”的循环,周而复始,直到程序结束。
4:总线 (Bus)
上述所有部件并非独立存在,它们需要通过通道相互连接。这个公共通道就是总线。
功能:是计算机各部件之间传输信息的公共通信干线。
分类(按传输信息类型):
数据总线 (Data Bus):在部件间双向传输数据。它的宽度(位数,如64位)决定了CPU一次能处理数据的位数,是计算机字长的重要指标。
地址总线 (Address Bus):由CPU单向发出,用于指定所要访问的存储单元或I/O端口的地址。它的宽度决定了CPU的寻址能力(例如,32位地址总线可寻址 2^32 = 4GB 的内存空间)。
控制总线 (Control Bus):传输控制信号,如读/写信号、中断请求、时钟信号等。有的是CPU发出,有的是向CPU输入。
总线结构极大地简化了计算机的系统设计,使得各部件只需关注与总线的接口即可。
三:计算机软件系统
1:计算机软件的分类
计算机软件,一般分为系统软件和应用软件
系统软件包括 操作系统,数据库管理系统,语言处理系统(比如编译器),分布式软件系统,网络软件系统,标准库系统,服务性系统(比如连接程序)。
应用软件包括各种科学计算类程序,工程设计类程序,数据统计与处理程序。
注意:数据库管理系统和数据库系统是有区别的。数据库管理系统是系统软件。而数据库系统一般是由数据库,数据库管理系统,数据库管理员和应用系统构成。所以只能说它里面有系统软件,但并不能说它为系统软件。
2:三个级别的语言
机器语言。又称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言。
汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上执行。
高级语言。高级语言(如C、C++、Java等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
由高级到汇编叫做编译,由汇编到机器叫做汇编,边翻译边执行的叫做解析。