本文所属《数据库系统原理》分类专栏,相关文章导航请点击《数据库系统原理》目录汇总贴

【计组原理】第1章 计算机系统概论
了解计算机内部的工作过程:I/O→存储器→CPU→存储器→I/O,即实际上指的是指令流和数据流。同时还要了解到尽管当今计算机发展到千变万化的程度,但其最根本的组成原理还是基于冯•诺依曼结构。


计算机系统简介

  • 计算机系统由“硬件”和“软件”两大部分组成。
  • 所谓硬件,是指计算机的实体部分,由看得见摸得着的各种电子元器件,各类光、电、机设备的实体部分物组成。如主机、外部设备等。
  • 所谓软件,是指看不见摸不着,由人们事先编制的具有各类特殊功能的程序组成。通常将其寄存于各类媒体,并存放在计算机的主存或辅存内。
  • 软件的作用和地位已经成为评价计算机系统性能好坏的重要标志,但软件的性能也必须依托硬件的支撑。因此,概括而言,计算机性能的好坏取决于“软”“硬”件功能的总和

(更多请见下方课后题1~4题)

计算机的基本组成

冯·诺依曼计算机的特点:

  1. 计算机有运算器、存储器、控制器、输入设备和输出设备五大部件组成
  2. 指令和数据以同等地位存放于存储器内。并可按地址访问。
  3. 指令和数据均可用二进制表示。
  4. 指令由操作码和地址吗组成。操作码表示操作的性质、地址码表示操作数在存储器中的位置。
  5. 指令在存储器中按顺序存放。通常,指令时顺序执行的。在特殊情况下,可根据运算结果或指定的条件来改变运算顺序。
  6. 机器以运算器为中心,输入输出设备和存储器之间的数据传送通过运算器完成。

计算机硬件的性能指标

  1. 机器字长
    是指计算机CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。机器字长越长,数的表示范围越大,计算精度也越高。
  2. 存储容量
    • 主存容量:是指主存中存放二进制代码的总位数。
      即:储存容量 = 储存单元个数 x 储存字长
      例:216 x 32 = 221 = 2M位 (1M = 220
    • 辅存容量:通常用字节数来表示。
      例:某机辅存(如硬盘)容量为80GB
      (1G = 1024M = 210 x 220 = 230
  3. 运算速度
    现代机器的运算速度采用单位时间内执行指令的平均条数来衡量。
    • 主频
    • 辛普森法:综合考虑每条指令的执行时间以及他们在全部操作中的所占的百分比;
    • MIPS:单位时间内执行指令的平均条数
    • CPI:单位时间内执行指令的平均条数
    • FLOPS:浮点运算次数每秒。

【思考题与习题】

  1. 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?

    解答:
    [1]硬件系统和软件系统共同构成了一个完整的计算机系统。
    [2]计算机硬件是指有形的物理设备,是计算机系统中实际物理装置的总称。
    [3]软件是指在硬件上运行的程序和相关的数据及文档。
    [4]都重要!软件和硬件相互依存,缺一不可。

  2. 如何理解计算机系统的层次结构?

    解答:
    抽象的来说可以分9层;但是现在我们大多数时候说的都是五层结构;即:
    [1] 虚拟机器M4(高级语言机器)
    (用编译程序翻译成汇编语言程序),
    [2] 虚拟机器M3(汇编语言机器)
    (用汇编语言翻译成机器语言程序),
    [3] 虚拟机器M2(操作系统机器)
    (用机器语言解释操作系统),
    [4] 传统机器M1(机器语言机器)
    (用微程序解释机器指令),
    [5] 微程序机器M0(微指令系统)
    (由硬件直接执行命令)。

  3. 说明高级语言,汇编语言和机器语言的差别及联系。

    解答:
    [1]机器语言:即计算机唯一可以识别并直接执行的语言。由二进制的0/1代码组成。
    [2]汇编语言:用英文单词或其他缩写代替二进制的指令代码,相比机器语言更容易记忆,使用汇编语言编写的程序必须经过汇编程序翻译,将其转化为机器语言,然后再由机器执行。
    [3]高级语言:如C、C++、JAVA、Python,是为了方便程序设计人员而发明的,通常需要经过编译程序编译成汇编语言程序,然后在经过汇编操作转化为机器语言程序,然后再由机器执行。

  4. 如何理解计算机组成和计算机体系结构?
    (课本P7~8)

    解答:
    1、计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等,主要分为五个部分;
    2、计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性。
    如何理解计算机组成和计算机体系结构?-php中文网

  5. 冯诺依曼计算机的特点是什么。
    (课本P8)

    解答:
    [1]计算机由五大部件组成:存储器,运算器,控制器,输入设备,输出设备。
    [2]指令和数据以同等地位存于存储器,可按地址顺序访问。
    [3]指令和数据用二进制表示。
    [4]指令由操作码和地址码组成。
    [5]存储程序,程序在计算机中顺序存放。
    [6]以运算器为中心。(不合理:花大量的时间进行数据传输,降低了运算器数据运算的效率)

  6. 画出计算机硬件组成框图,说明各部件的作用及计算机硬件的主要技术指标。

    解答:
    现代计算机硬件组成框图:
    图1-1 现代计算机硬件组成框图.png
    [1]CU(控制器) 控制整个计算机系统,以及资源的分配和调度。
    [2]ALU(运算器) 进行算数运算和逻辑运算,用来处理数据信息。
    [3]存储器 是计算机的存储部件,用来存储程序和数据。分为主存和辅存。cpu直接访问主存。
    [4]输入设备 将程序和数据以计算机能识别和接受的信息形式输入计算机。
    [5]输出设备 将计算机处理得到的结果以人所能接受的形式或其他系统所要求的信息形式输出。与输入设备统称为IO,是计算机与外界的桥梁。

    硬件的主要技术指标:
    [1]机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数,通常与CPU的寄存器位数,加法器有关,机器字长越长,数的表示范围越大,计算精度越高。
    [2]数据通路带宽:是指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指外部数据总线的宽度。(刚开始学习的新同学不用纠结这个问题。)
    [3]主存容量:主存储器所能存储信息的最大容量,通常以字节来衡量,也可以用字数X字长来表示存储容量。MDR反映存储字的字长,MAR反映存储单元的个数。
    [4]运算速度

    • 1.吞吐量和响应时间。 前者指单位时间内处理请求的数量。后者为从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。通常包括CPU时间与等待时间。
    • 2.主频和CPU时钟周期:前者为计算机内部的注视中的频率,对于同一个型号的计算机,主频越高,运行速度越快。后者为主频的倒数,主频通常以HZ为单位。
    • 3.CPI与MIPS:前者指执行一次所需要的时间,是一个平均值。后者为每秒执行多少百万条指令。二者的转化公式为:MIPS=指令条数/(执行时间x10^6)=主频/(执行时间x10的6次方)。
    • 4.CPU执行时间指运行一个程序所花费的时间,CPU执行时间=CPU时钟周期/主频=(指令条数xCPI)/主频。
    • 5.MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS

    [5]基准程序:是专门评价性能的一组程序。

  7. 解释概念。(手动标星号!!!)

    主机:是计算机硬件的组成部分,由cpu和主存储构成。
    CPU中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的 CPU 内除含有运算器和控制器外还集成了 CACHE )。
    主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,按地址存取;由存储体、各种逻辑部件及控制电路组成。
    存储单元:可存放一个机器字并具有特定存储地址的存储单位。
    存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。
    存储基元:就是存储元件
    存储元:就是存储元件
    存储字长:存储字中这串二进制代码的位数
    存储容量:存储器中可存二进制代码的总量;
    机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。
    指令字长:机器指令中二进制代码的总位数。

  8. 解释英文代号(!同样重要)

    • CPU:同上一个题。
    • PC:程序计数器,
    • IR:指令寄存器,其功能是存放当前正在执行的指令。
    • CU:控制单元(部件),为控制器的核心部件,其功能是解释存储器中的指令,产生微操作命令序列
    • ALU:算术逻辑运算单元,为运算器的核心部件,其功能是进行算术、逻辑运算。
    • ACC:累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器。
    • MQ:商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。
    • X:表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数;
    • MAR:存储器地址寄存器,在主存中用来存放欲访问的存储单元的地址。
    • MDR存储器数据缓冲寄存器,在主存中用来存放从某单元读出、或要写入某存储单元的数据。
    • I/O输入 / 输出设备,为输入设备和输出设备的总称
    • MIPS每秒执行百万条指令数,
    • CPI指执行一次所需要的时间,是一个平均值。
    • FLOPS 浮点运算次数每秒
  9. 画出主机框图,分别以存数指令“STA M”和加法指令“ADD M”(M均为主存地址)为例,在图中按序完成该指令(包括取指阶段)的信息流程(如—>①)。假设主存容量为265Mx32位,在指令字长、存储字长、机器字长相等的条件下,指出图中各寄存器的位数。

    图片请见第一章课件P20~27
    (1) STA M指令:PC->MAR ;MAR->M(主存储);M->MDR;MDR->IR;OP(IR)->CU;Ad(IR)->MAR;MAR->M;ACC->MDR;MDR->M;
    (2) ADD M指令:PC->MAR;MAR->M;M->MDR;MDR->IR;OP(IR)->CU;Ad(IR)->MAR;MAR->M;M->MDR;MDR->X;ADD;ALU->ACC;ACC->MDR;
    (3) 寄存器的位数:题中给出主存容量,ACC、X、IR、MDR寄存器的位数等于32位,即所说的存储子长,PC、MR均为28位

  10. 根据迭代公式 √x = 1/2(yn+x/yn),设初态y0=1,要求精度为是e,试编制求根号下x的解题程序(指令系统自定),并结合缩编程序简述计算机的解题过程。

    答案不唯一

  11. 指令和数据都存于存储器中,计算机如何区分它们?

    解答:
    通过地址来源区分,由 PC 提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。(000011 0000001010)后面的12位即为指令地址码。
    除此之外,在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。

  12. 什么是指令,什么是程序?

    解答:
    简单的说,程序比指令更大,执行程序就是执行多个指令。
    指令是CPU操作的基本单位,指令系统决定了计算机能做什么不能做什么,
    程序是由指令构成的。

本章习题答案参考