计算机的产生与发展
- 第一代电子管计算机
1943 年宾夕法尼亚大学 John Mauchly 教授和 John Presper Eckert 工程师建造了第一台电子管计算机 ENIAC(Electronic Numerical Integrator And Computer),1946 年交付使用,1955 年退役。
- 第二代晶体管计算机
1947 年贝尔实验室用半导体硅做芯片,制成了晶体管。
- 第三代集成电路计算机
利用光刻技术,把晶体管、电阻、电容等器件制成在极小的硅片上。
- 大规模和超大规模集成电路计算机
摩尔定律
集成电路芯片中所能集成的晶体管数量每 18 个月翻一番,性能也随之提升一倍。
计算机分类
按用途分:通用计算机、专用计算机。
按速度分:巨型机、大型机、小型机、微型机、工作站。
按领域分:高性能计算机、微型计算机、工作站、服务器、嵌入式计算机。
硬件和软件
计算机由硬件和软件组成。硬件指各种看得见摸得着的电子元器件设备。软件则由具有特定功能的信息组成,通常保存在内存或硬盘之中。软件性能的发挥需要硬件的支持。
软件通常又可分为系统软件和应用软件。系统软件用来管理整个计算机系统,调度系统资源,包括标准程序库、操作系统等。应用软件又称为应用程序,由用户根据任务所需编制的各种程序。
层次结构
用户编写的高级语言程序与数据一起送入计算机,被翻译程序转为机器语言(目标程序),再运行得到结果。
翻译程序分为编译程序和解释程序。编译程序将源程序全部一次性转为机器语言,再执行得到结果。解释程序每次仅翻译源程序中的一条语句翻译为机器语言,并立即执行,再接着翻译下一条语句再执行,直到源程序全部翻译完成。也即翻译一次,执行一次。
应用层面向一般用户。高级语言层由各种高级语言组成。汇编语言层包括各种类型的汇编语言。操作系统层提供了在汇编语言和高级语言的实现过程中需要的基本操作,还起到管理资源的作用。机器层面向计算机体系结构设计者。微程序机器层核心是计算机硬件控制单元。硬件逻辑层包含各种逻辑电路。
下层为上层服务或执行上层所要求的功能,上层通过使用下层提供的服务完成一定的功能。
冯·诺依曼体系结构
计算机由运算器、存储器、控制器、输入设备和输出设备组成。指令和设备以同等地位存放在存储器内。这些设备通过总线连接起来。
冯·诺依曼体系以运算器为中心,如下图,实线为数据线,虚线为控制线和反馈线。
CPU 和存储器的速率通常不同,两者间有不可调和的矛盾。现代计算机转为以存储器为中心,如下图,实线为控制线,虚线为反馈线,双线为数据线。
运算器用来完成算术运算和逻辑运算,并暂存中间结果。
存储器用来存放数据和程序。
控制器用来控制指挥程序和数据的输入运行和处理结果。控制着这五大部件的运行。
输入设备用来输入信息。
输出设备用来打印信息。
运算器和控制器往往在同一芯片上,统称为中央处理器(Central Process Unit,CPU),输入输出设备统称为 I/O 设备(Input/Output equipment)。CPU 和 I/O 设备合起来称主机,I/O 设备叫做外设。
运算器
完成各种运算的部件。其核心部件为算术逻辑单元(Arithmetic Logic Unit,ALU),完成各种算术运算和逻辑运算。
运算器中还包括累加器(Accumulator,ACC),**乘商寄存器(Multiplier-Quotient Register)**和
主存储器
主存储器也称为主存或内存,包括存储体、逻辑部件和控制电路等。一个存储单元可以存储一串二进制代码,称为存储字,一个存储字也可以代表一个指令。每个存储单元都有一个地址,主存就是通过地址实现读写。因此,主存中配置了**存储器地址寄存器(Memory Address Register,MAR)来存放要访问的存储单元地址,以及存储器数据寄存器(Memory Data Register,MDR)**来存放要取出或者写入的代码。
控制器
控制器是计算机神经中枢、指挥中心。根据指令要求,向各个部件发出控制信号,使计算机中各个部件有条不紊地工作。包括以下这些部件。
程序计数器(Program Counter,PC):用来存放当前欲执行指令的地址,它与主存 MAR 有一条直接通路。还有自动加 1 的功能,找到下一条指令的地址。
指令寄存器(Instruction Register,IR):用于存放由 PC 指向的从存储器中取出的指令代码,其中的内容来自主存 MDR。
指令译码器(Instruction Decoder,ID):用于对指令寄存器中的操作字段进行译码,并将结果输出给控制信号产生部件控制单元(Control Unit,CU) 用来分析指令。
地址生成器(Address Generator,AG):主要用于生成操作数在存储期中的单元地址,从而为取该操作数做好准备。
地址寄存器(Address Register,AR):用于存放由地址生成器按寻址方式进行计算得到的操作数在存储期中的地址;存放由当前转移或转子指令产生的要转向的指令的地址。
指标
机器字长
机器字长一般指 CPU 一次能处理数据的位数,通常与 CPU 的寄存器位数有关。字长越长,能表示的范围越大,精度也就越高。
存储容量
存储容量一般用字节表示。
吞吐量
吞吐量:在一定时期内,计算机系统完成的所有工作负载。
响应时间
响应时间:用户输入一个作业(或事务)至输出开始之间的时间间隔。
主频和时钟周期
CPU 主频:CPU 内核工作的时钟频率,一般以 MHz 或 GHz 为单位。表示在 CPU 内数字脉冲信号振荡的速度,与实际运算能力没有太大关系,但与实际运算速度存在一定的正比关系。
CPU 时钟周期:CPU 中最小的时间元素,一般以微秒或纳秒为单位。每个操作至少需要一个时钟周期。
主频与时钟周期互为倒数。
CPU 周期(又称机器周期):由多个 CPU 时钟周期组成。
CPI
CPU 指令时钟数(Cycle Per Instruction,CPI):每条指令执行需要的时钟周期数。
CPU 执行时间
CPU 执行时间:CPU 全速工作时完成某进程所花费的时间。
CPU 执行时间 = CPU 时钟周期数 / 时钟频率。
MIPS 和 MFLOPS
每秒执行多少百万条指令(Million Instructions Per Second,MIPS)。
每秒执行多少百万次浮点运算(Million Floating-point Operations Per Second,MFLOPS),此外还有 GFLOPS、TFLOPS、PFLOPS。
参考资料
- 《计算机组成原理》唐朔飞。