暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

漫游计算机系统

海人为记 2021-10-13
644

计算机系统是由硬件和系统软件互相交织的集合体,它们必须共同协作以达到运行应用程序的最终目的。硬件指的是物理设备,是实际物理装置的总称;软件是指在硬件上运行的程序和相关的数据及文档。

计算机系统性能的好坏,很大程度上由软件的效率和作用来表征的,而软件性能的发挥又离不开硬件的支持。对某一功能来说,其既可以用软件实现,又可以用硬件实现,则称为软硬件在逻辑上是等效的。在设计计算机系统时,要进行软/硬件的功能分配。通常来说,一个功能若使用较为频繁且用硬件实现的成本较为理想的话,使用硬件解决可以提高效率。而用软件实现可以提高灵活性,但效率往往不如硬件实现高。

计算机硬件

冯·诺依曼研究 EDVAC
机时提出了 存储程序
的概念,以此概念为基础的各类计算机统称为冯·诺依曼机,其结构如下图所示。其特点如下:

  • 计算机硬件由运算器、存储器、控制器、输入设备和输出设备五大部件组成。
  • 指令和数据以同等地位存储在存储器中,并可按地址寻访。
  • 指令和数据均用二进制代码表示。
  • 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
  • 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。
  • 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。

存储地址
是指将指令以代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。

现代的计算机已转化为以存储器为中心,使 I/O 操作尽可能地绕过 CPU
,直接在 I/O 设备和存储器之间完成,以提高系统的整体运行效率,其结构如下图所示。

图中各部件的功能如下所示。

  • 运算器用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内。
  • 存储器用来存放数据和程序。
  • 控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果。
  • 输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。
  • 输出设备可将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等。

计算机的五大部件在控制器的统一指挥下,有条不絮地自动工作。

冯·诺依曼机与现代计算机结构虽略有不同,但功能部件是一致的,包括以下几种。

  • 输入设备。将程序和数据以机器所能识别和接受的信息形式输入计算机,如鼠标、扫描仪等。
  • 输出设备。将计算机处理的结果以用户所能接受的形式或其他系统所要求的信息形式输出,如显示器、打印机等。
  • 存储器。计算机的存储部件,用来存放程序和数据。存储器分为主存储器和辅助存储器。CPU
    能直接访问主存储器;辅助存储器用来帮助主存储器记忆更多信息,必须调入主存后,才能被 CPU
    访问。
  • 运算器。计算机的执行部件,用于对数据进行加工处理,完成算术运算和逻辑运算。核心是算术逻辑单元 ALU
    ;还有程序状态寄存器 PSW
    ,保留各类运算指令或测试指令的结果的各类状态信息,以表征系统运行状态。
  • 控制器。计算机的控制中心,由其指挥各部件自动协调地进行工作。由程序计数器 PC
    、指令寄存器 IR
    和控制单元 CU
    组成。

一个典型的硬件组织如下图所示。

  • 总线。贯穿整个系统的是一组电子管道,称作总线,它携带信息字节并负责在各个部件间传递。
  • I/O 设备。系统与外界的联系通道,输入设备与输出设备的简称。每个 I/O 设备都通过一个控制器或适配器与 I/O 总线相连。
  • 主存储器。主存储器是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。
  • 处理器。中央处理单元 CPU
    ,简称处理器,是解释或执行存储在主存中指令的引擎。处理器中有寄存器,称为程序计数器 PC
    ,用来存放当前预执行指令的地址,可以自动加 1 以形成下一条指令的地址;算术逻辑单元 ALU
    ,用来完成算术逻辑运算;控制单元 CU
    ,用来解释存储器中的指令,并发出各种操作命令来执行指令。

计算机软件

计算机软件分为系统软件和应用软件。系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用,如操作系统、语言处理程序等;应用软件是指用户为解决某个应用领域中的各类问题而编辑的程序,如科学计算类程序、工程设计类程序等。

计算机中的语言又分为三个级别,如下所示。

  1. 机器语言。又称二进制代码语言,需要编程人员记忆每条指令的二进制编码,机器语言是计算机唯一可以直接识别和执行的语言。
  2. 汇编语言。用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上执行。
  3. 高级语言。高级语言是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。

计算机工作过程

计算机的工作过程分为以下几个步骤:

  1. 把程序和数据装入主存储器。
  2. 从程序的起始地址运行程序。
  3. 用程序的首地址从存储器中取出第一条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成这条指令功能,并计算下一条指令的地址。
  4. 用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止;每条指令都是在取指、译码和执行的循环过程中完成的。

下面以取数指令为例进行说明,其信息流程如下:

取指令:PC->MAR->M->MDR->IR
分析指令:OP(IR)->CU
执行指令:Ad(IR)->MAR->M->MDR->ACC

此外,每取完一条指令,还须为取下一条指令做准备,形成下一条指令的地址,即 (PC)+1->PC

(PC)
指程序计数器 PC
中存放的内容。PC->MAR
理解为 (PC)->MAR
,即程序计数器中的值经过数据通路送到 MAR
,也即表示数据通路时括号可省略,但运算时括号不能省略,即 (PC)+1->PC
不能写为 PC+1->PC

多级层次结构

现代计算机是一个硬件和软件组成的综合体。由于面对的应用范围越来越广,因此必须有复杂的系统软件和硬件的支持。由于软/硬件的设计者和使用者都从不同的角度并用不同的语言来对待同一个计算机系统,因此他们各自看到的计算机系统的属性及对计算机系统提出的要求也就不同。

计算机系统的多级层次结构的作用,就是针对上述情况,根据从各种角度所看到的机器之间的有机联系,来分清彼此之间的界面,明确各自的功能,以便构成合理、高效的计算机系统。

关于计算机系统的层次结构的分层方式,目前尚无统一的标准,这里采用如下图所示的层次结构。

  • 第 1 级是微程序机器层,这是一个实在的硬件层,它由机器硬件直接执行微指令。
  • 第 2 级是传统机器语言层,它也是一个实际的机器层,由微程序解释机器指令系统。
  • 第 3 级是操作系统层,它由操作系统程序实现。操作系统程序是由机器指令和广义指令组成的,这些广义指令是为了扩展机器功能而设置的,是由操作系统定义和解释的软件指令,所以这一层也称混合层。
  • 第 4 级是汇编语言层,它为用户提供一种符号化的语言,借此可编写汇编语言源程序。这一层由汇编程序支持和执行。
  • 第 5 级是高级语言层,它是面向用户的,是为方便用户编写应用程序而设置的。该层由各种高级语言编译程序支持和执行。

在高级语言层之上,还可以有应用层,它由解决实际问题和应用问题的处理程序组成,如文字处理软件、数据库软件、多媒体处理软件和办公自动化软件等。

通常把没有配备软件的纯硬件系统称为裸机
。第 3 层~第 5 层称为虚拟机,简单来说就是软件实现的机器。虚拟机只对该层的观察者存在,这里的分层和计算机网络的分层类似,对于某层来说,只能通过该层次的语言来了解和使用计算机,而不必关心下层是如何工作的。

层次之间的关系紧密,下层是上层的基础,上层是下层的扩展。随着超大规模集成电路技术的不断发展,部分软件功能将由硬件来实现,因而软/硬件交界面的划分也不是绝对的。

系统之间通信

计算机系统是一个孤立的硬件和软件的集合体,而现代系统通过网络和其他系统连接到一起。从一个单独的系统来看,网络可视为一个 I/O 设备,如下图所示。

当系统从主存复制一串字节到网络适配器时,数据流经过网络到达另一台机器,而不是比如说到达本地磁盘驱动器。相似地,系统可以读取从其他机器发送来的数据,并把数据复制到自己的主存。

随着 Internet 这样的全球网络的出现,从一台主机复制信息到另外一台主机已经成为计算机系统最重要的用途之一,如电子邮件、即时通信、万维网等应用都是基于网络复制信息的功能。

硬件性能指标

衡量一台计算机性能的优劣是根据多项技术指标综合确定的。其中,既包含硬件的各种性能指标,又包括软件的各种功能。

机器字长

机器字长是指计算机进行一次整数运算所能处理的二进制数据的位数,通常与 CPU 的寄存器位数、加法器有关。因此,机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节的整数倍,通常是 2、4、8 倍。1 字节 = 8 位。

数据通路带宽

数据通路带宽是指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指外部数据总线的宽度,它与 CPU 内部的数据总线宽度(内部寄存器的大小)有可能不同。

各个子系统通过数据总线连接形成的数据传送路径称为数据通路。

主存容量

主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用 字数 × 字长
来表示存储容量,如 512K × 16位。其中,MAR
的位数反映存储单元的个数,MAR
的位数反映可寻址范围的最大值,而不一定是实际存储器的存储容量。

例如,MAR 为 16 位,表示 ,即此存储体内有 65536 个存储单元(可称作 64K  内存,1K=1024),若 MDR 为 32 位,表示存储容量为 64K × 32位。

吞吐量

吞吐量。指系统在单位时间内处理请求的数量。它取决于信息能多快地输入内存,CPU
能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。这些步骤中的每步都关系到主存,因此系统吞吐量主要取决于主存的存取周期。

响应时间

响应时间。指从用户向计算机发送一个请求。到系统对该请求做出响应并获得所需结果的等待时间。通常包括:

  1. CPU 时间。运行一个程序所花费的时间。
  2. 等待时间。用于磁盘访问、存储器访问、I/O 操作、操作系统开销等的时间。

主频

主频,即CPU时钟频率,为机器内部主时钟的频率,是衡量机器速度的重要参数。主频的倒数是 CPU 时钟周期。对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。

时钟周期

CPU 时钟周期。通常为节拍脉冲或 T 周期,即主频的倒数,它是 CPU 中最小的时间单位,每个动作至少需要 1 个时钟周期。

CPI
全称 Clock cycle Per Instruction
,指执行一条指令所需的时钟周期数。

CPU 时钟周期=1/主频,主频通常以 MHz(兆赫兹)为单位,1Hz 表示每秒 1 次。

CPU执行时间

CPU 执行时间,指运行一个程序所花费的时间。获得 CPU 执行时间的公式如下所示。

上式表明,CPU性能,即 CPU 执行时间取决于三个要素:

  1. 主频,即时钟频率。
  2. 每条指令执行所用的时钟周期数 CPI
  3. 指令条数。








文章转载自海人为记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论