复习要点

本章是组成原理的概述,考察时易针对有关概念或性能指标出选择题,也可能综合后续章节的内容出有关性能分析的综合题。重点在各个性能指标的计算,这部分考频很高。

  • 计算机由哪几部分组成?以哪部分为中心?
  • 主频高的CPU一定比主频低的CPU快吗?为什么?
  • 翻译程序、汇编程序、编译程序、解释程序有什么区别?各自的特性是什么?
  • 不同级别的语言编写的程序有什么区别?哪种语言编写的程序能被硬件直接执行?

第一章 计算机系统概述

三极管:高低电平控制导不导通,作为开关,表示计算机的0个1实现基本操作,实现与门、或门、异或门等
可以用来实现加法操作加减乘除都行

计算机发展历程

计算机硬件的发展

  1. ENIAC:1946第一台电子数字计算机,电子管时代(1946-1957)
    特点:
  • 逻辑元件采用电子管
  • 使用机器语言进行编程
  • 主存用延迟线或磁鼓存储信息,容量极小
  • 体积庞大
  • 运算速度较低,一般只有几千次到几万次每秒
  1. 第二代计算机:1958-1964,晶体管时代
    特点:
  • 逻辑元件采用晶体管
  • 运算速度提高到几万次到几十万次

计算机软件的发展

比较次要,考的比较少

计算机系统层次结构

直接执行机器语言的机器成为实际机器M1:机器语言程序直接在M1上执行
具有将汇编语言程序翻译成机器语言程序的功能的机器M2:人们编写汇编语言程序向M2输入,而M2暗地里将汇编语言程序转换成机器语言程序交给M1去执行,所以M2实际上是一种程序,不是一种实际存在的机器,称为虚拟机
实际上汇编的每一条指令还是对应了一条机器语言语句,只是把奇奇怪怪的01串儿换成了人们好记住的英文单词add等,人们还是要熟悉机器语言的语句的作用跟这些语言是如何执行的,还是比较麻烦
所以20世纪60年代有了面向问题的高级语言,这种语言就不用去了解机器语言语句的作用了,程序员就只要理解一种高级语言的语法语义就完事儿了昂,用高级语言编写程序,然后有专门的编译程序给你整成汇编语言程序,然后由M2整成机器语言程序给M1,多了一层编译程序,但是方便了很多。这个编译程序给他起个名儿就叫高级语言机器M3,在这里根据高级语言的不同,这个机器可以是编译程序或者是解释程序。
编译程序:将一整个源程序全部编译优化成机器语言程序,然后再执行
解释程序:一句一句翻译成机器语言程序一句一句执行,搞一句就执行一句
机器语言机器M1还可以细分成微程序机器M0,把每一条机器语言指令换成一系列的微指令,然后每执行一条机器指令,就由M1指挥M0去执行相应的微程序,也就是说其实M0就跟M1没什么区别,就是将M1执行的指令换成微程序了。

  • 计组这门课主要讲M1跟M0,软件实现的就叫虚拟机,还有应用软件层在M3上面哈
  • 在M1和M2之间存在着操作系统区分软件跟硬件,也就是操作系统当做桥梁架在软件(汇编程序)跟硬件(机器语言)之间。

区分计算机组成和计算机体系结构

计算机体系结构就是那些能被程序员见到的计算机系统的属性,比如说指令集,数据类型,寻址技术,不同结构的计算机这些东西都是不同的,因为底层硬件就不一样。但是计算机组成就是在指令集的基础上讨论如何实现一种功能,比如说一台机器是否具备乘法指令,这就是结构方面的问题,但是如何实现乘法指令,这是一个组成问题,在一台硬件已经确定了的机器上如何发挥它的最大性能,这就是计算机组成所要解决的问题,采用不同的组成方式也就是不同的实现方式,可能会大幅度影响一台计算机的性能

计算机软件和硬件的关系:

  • 硬件和软件互相依存
    硬件是软件工作的物质基础,软件的正常工作是硬件发挥作用的唯一途径
  • 硬件和软件无严格界线
    在许多情况下,计算机的某些功能既可以由硬件实现,也可以由软件来实现。因此,硬件与软件在一定意义上说没有严格的界线
  • 硬件和软件协同发展
    计算机软件随硬件技术的发展而发展,而软件的不断发展与完善又促进硬件的更新,两者交织发展,缺一不可

计算机的基本组成

计算机硬件的基本组成

冯诺依曼计算机是以运算器为中心的,而现代的计算机是以存储器为中心的。

计算机的功能部件

  • 运算器
  • 存储器
  • 控制器
  • 输入设备
  • 输出设备

冯诺依曼计算机结构:

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

计算机系统的构成

存储器的工作方式是按存储单元的地址存取
MDR的长度等于存储单元的长度,称之为存储字长(字),即存储单元中存储基元的个数
存储字长可以是8位、16位、32位等,字节的二次幂的整数倍
每8个存储基元称之为一个字节,存储字长为字节的整数倍
位bit
字节byte
字word
MQ乘商寄存器
ACC累加器
ALU算术逻辑单元
X操作数寄存器
CU控制单元
IR指令寄存器:存放当前的指令
PC程序计数器:存放当前想要执行的指令的地址

计算机的工作过程

  • 把程序和数据装入主存储器
  • 将源程序转换为可执行文件
  • 从可执行文件的首地址开始逐条执行指令
  1. 源程序到可执行文件
    1)预处理:将#开头的命令处理了,比如说包含的头文件,加入到文件中,#define等等,输出一个.i文件就是包含所有需要执行的代码的程序
    2)编译:将.i文件处理成汇编语言程序,输出.s文件
    3)汇编:将.s翻译成机器语言程序,输出hello.o
    4)链接:将多个可重定位目标文件和标准库函数合并为一个可执行目标文件。最终生成的可执行文件被保存在磁盘上。