1.计算机系统概述

发布于 2024-07-07  152 次阅读


1.计算机系统概述

1.1计算机发展历程*(大纲已删除)

1.2计算机系统层次结构

1.2.1计算机系统的组成

  • 硬件:有形的物理设备,计算机系统中实际物理装置的统称。
  • 软件:在硬件上运行的程序和相关的数据和文档。

1.2.2计算机硬件

冯诺依曼计算机

基本工作方式是:控制流驱动方式。

  1. 采用“存储程序”^1的工作方式。
  2. 计算机硬件系统由运算器、存储器、控制器、输入和输出设备5大部件组成。
  3. 指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机能够区分它们。
  4. 指令和数据均由二进制表示。
  5. 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。

计算机的功能部件

  1. 输入设备:将程序和数据以机器所能识别和接受的信息形式输入计算机。例如:键盘、鼠标、扫描仪、摄像机等。

  2. 输出设备:将计算机所处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出。例如:显示器、辅助存储器、I/O设备。

  3. 存储器:又分为主存储器(也称为内存储器或主存)和辅助存储器(也称为外存储器或外存)。CPU能够直接访问的是主存储器。辅助存储器的内容必须调入主存后才能被CPU所访问。主存储器的工作方式是按存储单元进行存储。这种存取方式被称为按地址存取方式

    存储体:由若干个存储单元组成,每个存储单元包含若干个存储元件,每个存储元件存储一个二进制代码0或1。因此存储单元可存储一串二进制代码,称这串代码为存储字。这串代码的位数为存储字长存储字长可以是1B(8bit)或者可以是字节的偶数倍。

    MAR(memory address register):主存地址寄存器,MAR用来保存数据被传输到的位置的地址或者数据来源位置的地址。用于寻址,其位数反映最多可寻址的存储单元的个数,MAR为十位,则最多有$$2^{10}=1024$$​个存储单元,记为1K。MAR的长度与PC的长度相等。

    MDR(memory data register):主存数据寄存器,MDR用来保存要被写入地址单元或者从地址单元读入的数据MDR的位数通常等于存储字长,一般为字节的2次幂的整数倍。

  4. 运算器:计算机的执行部件,用于进行算数运算^2逻辑运算^3。包含若干通用寄存器,用于暂存操作数和中间结果,ACC(累加器accumulator)、MQ(乘商寄存器multiplier quotient)、X(操作数寄存器)、IX(变址寄存器)、BR(基址寄存器)等。ALU(Arithmetic and logic unit):算数逻辑单元,运算器的核心。前三个为必备寄存器。还有程序状态寄存器PSW用来判断结果是否有溢出、有无进位产生、是否借位、结果是否为负等。

  5. 控制器:计算机的指挥中心,由PC(程序计数器program counter)、IR(指令寄存器instruction register)、CU(控制单元control unit)组成。

    PC:用来存放当前欲执行指令的地址,具有自动加一^4的功能,即可自动形成下一条指令的地址,它与主存储器MAR之间有一条直接通路。

    IR:用来存放当前的指令,其内容主要来自MDR,指令中的操作码OP送至控制单元CU,用来分析指令并发出各种微操作命令序列,地址码送往MAR用来获取操作数。

1.2.3计算机软件

系统软件和应用软件

软件按照功能分类可分为系统软件应用软件

  • 系统软件:保证计算机系统高效、正确运行的基础软件。主要有操作系统(OS)数据库管理系统(DBMS)语言处理程序等。
  • 应用软件:用户为解决某个应用领域中的各类问题而编制的程序。

三个级别的语言

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

三大类翻译程序

  1. 汇编程序:将汇编语言程序翻译成机器语言程序。
  2. 解释程序:将源程序中的语句按照执行的顺序翻译成机器指令并立即执行。
  3. 编译程序:将高级语言翻译成汇编语言机器语言程序。

软件和硬件的逻辑功能等价性

对于某一个功能来说,既可以用软件实现,又可以用硬件实现。在用户的角度看,它们在功能上是等价的。这被称为软/硬件逻辑功能的等价性,例如^5

1.2.4计算机系统的层次结构

  1. 第一级为微程序机器层:一个硬件层,由机器硬件直接执行微指令。
  2. 第二级为传统机器语言层:一个机器层,由微程序解释机器指令系统。
  3. 第三级为操作系统层:也称作混合层,由操作系统程序^6实现。
  4. 第四级为汇编语言层:由汇编程序支持和执行,可编写汇编语言源程序。
  5. 第五级为高级语言层:面向用户,为方便用户编写程序而设计,由各种高级语言编译程序支持和执行。

没有配备软件系统的计算机被称为裸机,3~5层被称为虚拟机。

1.2.5计算机系统的工作原理

“存储程序”工作方式

​ 程序执行前,将程序所含的指令和数据送入主存储器内,无需干预,一条一条地往下执行指令。每条指令的执行过程包括:从主存储器中读取指令、对指令进行译码、计算下条指令地址、取操作数并执行、将结果送回存储器。PC来进行自动寻找下一条指令。

从源程序到可执行文件

以UNIX系统中的GCC编译器程序为例。

  1. 预处理阶段:对源程序中以字符#开头的命令进行处理。
  2. 编译阶段:对预处理后的源程序进行编译。
  3. 汇编阶段:将2中的结果翻译成机器语言指令,并将这些指令打包成一个称为可重定位目标文件^7
  4. 链接阶段:将多个可重定位目标文件和标准库函数合并为一个可执行目标文件。最终生成的可执行文件保存在磁盘上。

指令执行过程的描述

  1. 取指令:PC->MAR->M->MDR->IR,根据PC取指令到IR,将PC的内容送到MAR,再送往地址线,同时控制器将读信号送读/写信号线,主存根据地址线上的地址和读信号,从指定的存储单元读出指令,送到数据线上,MDR从数据线接受指令信息,并传送到IR中。
  2. 分析指令:OP(IR)->CU,指令译码并送出控制信号控制器根据IR中指令的操作码,生成相应的控制信号,送到不同的执行部件。
  3. 执行指令:取数操作将IR 中指令的地址码送到MAR,MAR中的内容送地址线,同时控制器将读信号送读/写信号线,从主存中读出操作数,通过数据线传到MDR,再传送到ACC中。每取完一条指令(PC)=PC+1。

1.3计算机的主要性能指标

1.3.1计算机的主要性能指标

机器字长

“某16位或32位机器“其中的16和32就指的是机器字长,简称字长。指的是计算机进行一次整数计算所能够处理的二进制数据的位数,一般与CPU的寄存器位数、ALU有关。一般等于寄存器的位数或者ALU的宽度。字长越长,数的表示范围越大,计算的精度越高。计算机字长一般为字节(8位)的整数倍。

数据通路带宽

数据通路^8带宽指的是数据总线一次所能并行传送信息的位数。

主存容量

主存容量指的是主存储器所能存储信息的最大容量。一般用字节来衡量,也可用字数x字长来表示,例如512K x 16位。其中MAR的位数反映了存储单元的个数,MDR的位数反应了存储单元的字长。例如,MAR有16位,则此存储体内有$$2^{16}=65536$$的个存储单元,称为64K内存,若MDR为32位,则表示存储容量为64K X

32位

运算速度

  1. 吞吐量和响应时间

    吞吐量:单位时间内处理请求的数量,取决于主存储器的存储周期。

    响应时间:从用户向计算机发出请求到计算机回应请求并返回结果的等待时间。通常包括CPU时间^9和等待时间^10

  2. 主频和CPU时钟周期

    CPU时钟周期:机器内部主时钟脉冲信号的宽度,他是CPU工作的最小时间单位。CPU时钟周期=1/主频。

    主频(CPU时钟频率):机器内部主时钟的频率,时钟周期的倒数,是衡量机器速度的重要参数。对于计算机,主频越高,执行指令的速度越快。对主频最主观的理解就是每秒有多少个时钟周期。通常以Hz为单位,10Hz表示每秒10次。

  3. CPI(Cycle Per Instruction):执行一条指令需要的时钟周期数。不同指令所需的时钟周期不同,因此它是一个平均值。

  4. IPC(Instruction Per Cycle):一个时钟周期执行多少条指令,与CPI相反,为CPI的倒数。

  5. IPS(Instruction per second):1秒钟执行的指令数,用主频/CPI,主频为一秒钟有多少个时钟周期,CPI为一个指令所需要的时钟周期。

  6. MIPS(Millon Instruction Per Second):每秒钟执行多少百万条指令。

  7. FLOPS(Floating-point Operation Per Second):每秒执行多少次浮点运算。

基准程序

基准程序(Benchmarks):专门用来进行性能评测的一组程序,能够反映机器在运行实际负载时的性能。不同场合选择不同的基准程序。

1.3.2 几个专业术语

  1. 系列机:有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个系列的产品。
  2. 兼容:软件或硬件的通用性,在某个计算机上可以运行的软件或硬件在其他计算机也可以在另一个计算机中运行,这称这两台计算机在硬件或软件上存在兼容性。这些计算机为同一系列不同型号
  3. 固件:固化在ROM中组成的部件。执行速度比软件快,灵活性比硬件好。