教材 P3
计算机系统:由计算机硬件系统和软件系统组成的综合体。
计算机硬件:指计算机中的电子线路和物理装置。
计算机软件:计算机运行所需的程序及相关资料。
硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。
计算机系统的层次结构,是由硬件和软件两大部分所构成,按功细分为7个层次。
第零层: 硬件逻辑层,可以直接完成每一条微指令的功能,这一层是计算机的计算内核,是实现计算机各种基本操作的实体。由门,触发器 等逻辑电路组成。
第一层: 微代码层,这级的机器语言是微指令集,程序员用微指令编写的微程序,一般是直接由硬件执行的。常用微程序设计技术。
第二层: 指令集架构层,这级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。
第三层: 操作系统,它提供了机器语言级所没有的,但在汇编语言和高级语言的实现中所需要的某些基本操作。它由机器指令和广义指令组成,机器指令由微程序直接解释,广义指令由操作系统来定义和解释。
第四层: 汇编语言,这级的机器语言是汇编语言,完成汇编语言翻译的程序叫做汇编程序。
第五层: 高级语言,这级的机器语言就是各种高级语言,如C++、Java等,通常用编译程序来完成高级语言翻译的工作。
第六层: 应用程序,这一级是为了使计算机满足某种用途而专门设计的,因此这一级语言就是各种面向问题的应用语言。
其中指令集架构层为软硬件的分界线;值得我们注意的是不同用户处于不同层次,不同层次具有不同的属性,使用不同工具,且不同层次的代码效率也不同,越往高层代码效率越低。
计算机执行的二进制命令,都是0和1表示的
本质上是由“0”和“1”组成的二进制数。计算机发明之初,人们只能计算机的语言去命令计算机干这干那。向计算机每发出一条指令,就要写出一串串由“0”和“1”组成的指令序列。
因此,使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,需要进行大量重复繁琐的工作。
但在当时,由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。
用助记符代替机器指令的操作码(如:ADD表示加法)
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串。比如,用“ADD”代表加法。这样我们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。
更简单,符合人们的习惯,也更容易理解和修改。高级语言经过编译器编译之后可以得到目标程序。(如:C++、JAVA)
从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,1954年,第一个完全脱离机器硬件的高级语言—FORTRAN问世了,40多年来,共有几百种高级语言出现,有重要意义的有几十种。其中就包括C++、java等。
依次接近人类自然语言的表达方式、代码效率依次变低、语言越来越高级
高级语言要通过编译程序翻译成汇编代码,汇编语言要通过汇编得到机器语言,计算机才能执行。
计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。主要分为五个部分:控制器,运算器,存储器,输入设备,输出设备。计算机体系结构(ComputerArchitecture)是程序员所看到的计算机的属性,即概念性结构与功能特性。按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。
一般来说,低级机器的属性对于高层机器程序员基本是透明的,通常所说的计算机体系结构主要指机器语言级机器的系统结构。经典的关于"计算机体系结构"的定义是1964年C.M.Amdahl在介绍IBM360系统时提出的,其具体描述为"计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性" 。
计算机体系结构是指那些对程序员可见的系统属性,还包括设计思想与体系结构。计算机组成的任务是在指令集系统结构确定分配给硬件系统的功能和概念结构之后,研究各组成部分的内部构造和相互联系,以实现机器指令集的各种功能和特性。这种联系包括各功能部件的内部和相互作用。
冯•诺依曼计算机的特点是:教材 P8
主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、
机器字长、指令字长。
教材 P9-10
CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS
全面的回答应分英文全称、中文名、功能三部分。
主机框图 教材P13 图 1.11 所示。
(1)STA M 指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,
OP(IR) →CU,Ad(IR) →MAR,ACC→MDR,MAR→MM,WR
(2)ADD M 指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,
OP(IR) →CU,Ad(IR) →MAR,RD,MM→MDR,MDR→X,ADD,ALU→ACC,
ACC→MDR,WR
假设主存容量 256M*32 位,在指令字长、存储字长、机器字长相等的条件下,ACC、X、IR、
MDR 寄存器均为 32 位,PC 和 MAR 寄存器均为 28 位。
计算机区分指令和数据有以下 2 种方法:
1、计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。
2、通常一条指令包括两方面的内容:操作码和操作数,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。
3、计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。
指令: 指令是指计算机执行某种操作的命令,它由一串二进制数码组成。计算机执行了一指令序列,便可完成预定的任务,这一指令序列就称为程序;
程序: 程序是计算机所以指令的集合,称为该计算机的指令系统;
指令的执行过程分为四步: 1、取指令;2、分析指令;3、执行指令;4、完成上述操作后,指令计数器加1,为执行下一条指令做准备。