跳转至

计算机系统层次结构#

一.计算机系统的基本组成#

计算机的硬件系统和软件系统共同构成了一个完整的计算机系统

二.计算机硬件的基本结构#

计算机硬件主要由 存储器,运算器,控制器,输入输出设备组成

冯诺依曼计算机的特点:

  • 计算机硬件系统由运算器,存储器,控制器,输入输出设备组成

  • 指令和数据以同等地位存储在存储器中,而且可以按地址寻访

  • 指令和数据均使用二进制代码表示

  • 指令由操作码和地址码组成,操作码指出具体的数据操作方式,比如加法减法,地址吗则是支持要被操作的数据操作数的地址

  • 指令在存储器内按顺序存放。通常存储的指令是按顺序执行的,在特定条件下能根据运算结果或者根据设定的条件改变执行顺序

  • 早期的冯诺依曼机以运算器为中心,输出输出设备通过运算器和存储器传送数据

现代计算机是以存储器为核心,使得IO操作尽可能地直接在IO设备和存储器之间完成,提高系统的整体运行效率

目前绝大多数现代计算机仍遵循冯·诺依曼的存储程序的设计思想

输入设备#

就是键盘或者鼠标之类的硬件设备

存储器#

主存:主存储器,内存储器→ CPU能直接访问

辅存:外存储器 --->信息必须先调入主存后,才能被CPU访问

主存储器的工作方式: 按存储单元的地址进行存取,每个地址对应一个存储单元,这种存取方式叫做按地址存取方式

存储体存放二进制信息,地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元。数据寄存器(MDR)用于暂存要从存储器中读或写的信息。

存储体由很多存储单元组成,每个存储单元都包含多个存储元,每个存储元件存储一位二进制代码“0”或者“1”。

一个存储单元可以存储一串二进制代码,这串代码成为存储字,这串代码的位数叫做存储字长,存储字长可以是一个字节1B,或者是字节的偶数倍

相关概念:
存储元: 可称为存储元件和存储基元,用来存放一位二进制信息

存储单元: 多个存储元组成,可以存放多位二进制信息,存储单元的数量等于2的MAR位数的次方。MAR是地址寄存器,如果MAR为10位,那么存储单元的数量就是2的十次方,也就是1024个,记为1K

存储体:许多存储单元组成存储体

存储字:每个存储单元中二进制代码的组合就是存储字,它可以代表数值,指令,地址等信息

存储字长: 每个存储单元中二进制代码的位数就是存储字长,MDR的位数表示存储字长。MDR为数据寄存器,如果MDR为10位,那么存储字长就是10,也表示一个字为10bit

字(word):一个字的大小取决于机器,应区别于字节;

字节(Byte):一个字节等于 8 个 bit。

运算器#

运算器用于进行算术运算和逻辑运算,是计算机的执行部件,核心是算数逻辑单元(ALU)

控制器#

控制器是计算机的指挥中心,它来“指挥”各部件自动协调地进行工作。

控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。PC 用来存放当前预执行指令的地址,可以自动加 1 来形成下一条指令的地址,它与主存的 MAR 之间一条直接通路。IR 用来存放当前的指令,其内容来自主存的 MDR。指令中的操作码 OP(IR)送至 CU,用以分析指令并发出各种微操作命令序列;而指令中的地址码字段 Ad(IR)送往MAR 用以取操作数

CPU 和主存之间通过一组总线相连,总线中有地址、控制和数据 3 组信号线。MAR 中的

地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元;控制线中有读/写信

号线,指出数据是从 CPU 写入主存还是从主存读出到 CPU,根据是读操作还是写操作来控

制将 MDR 中的数据是直接送到数据线上还是将数据线上的数据接收到 MDR 中。

输出设备#

输出设备的任务是将计算机处理的结果用人们可以接受或识别的形式或其他系统所要

求的信息形式输出。最常用、最基本的输出设备是显示器、打印机

三.计算机软件#

计算机的软件按照功能通常分为两大类,系统软件和应用软件。

系统软件#

系统软件又称为系统程序,是保证计算机高效正确运行的基础软件,主要用来管理整

个计算机系统,使系统资源得到合理的调度,高效运行,例如操作系统、编译程序、文件

系统、分布式软件系统、网络软件系统及标准库程序、服务性程序等都是系统软件

应用软件#

应用软件又称为应用程序,它是用户为解决某个应用领域中的各类问题所编写的各种

程序,如微信或各类工业软件等都是应用软件

计算机语言#

计算机的编程语言可以分为三个级别,机器语言、汇编语言和高级语言

四.计算机系统多层次机构#

计算机通常由 5 个不同的层次组成,在每一层上都能够进行程序设计

五.计算机系统的工作过程#

计算机的工作过程其实就是不断地从存储器中逐条取出指令,然后送至控制器,经分

析后由 CPU 发出各种操作命令,指挥各部件完成各种操作,直至程序中全部指令执行结束。

存储程序#

程序执行前,需要将程序所含的指令和数据送入主存,一旦程序被启动执行,就无须操作人员的干预,自动逐条完成指令的取出和执行任务

每条指令的执行过程包括:从主存取指令、对指令进行译码、计算下条指令地址、取操作数并执行、将结果送回存储器。

程序执行前,第一条指令的地址事先存放在 PC 中,取指令时,将 PC 的内容作为地址

访问主存。在每条指令执行过程中,都需要计算下条将执行指令的地址,并存储在 PC。在

此条指令执行完后,再根据 PC 存储的值从主存中取出下条要执行的指令,计算机工作方式

就是循环往复的自动获取并执行顺序的指令集

软件的工作方式#

为 4 个阶段:

  • 预处理阶段

  • 编译阶段

  • 汇编阶段

  • 链接阶段

详情见CompileC - 计算机学习指南