计算机组成原理01

存储程序的概念:将程序和数据一起存放在存储器中,使编程更加方便。

计算机组成原理:
1、计算机解题的过程:用户编写的高级程序语言(源程序)——翻译成机器语言——运行——结果;计算机只能识别机器机器语言,也就是用二进制代码(0/1)来编写程序(即机器语言程序)。这就要求程序员对他们所使用的计算机硬件及其指令系统十分熟悉,编写程序难度很大,操作过程也极容易出错。但用户编写的机器语言程序可以直接在机器上执行。/2
2、具有两级层次结构的计算机系统:虚拟机器M2(汇编语言机器,将汇编语言程序先翻译成机器语言,再在M1上执行)——实际机器M1(机器语言机器,机器语言直接在M1上执行)
3、具有三级层次结构计算机系统:虚拟机器M3(高级语言机器,将高级语言翻译成汇编语言,再在M2、M1(或者直接到M1执行)执行)——虚拟机器M2(汇编语言机器,将汇编语言程序先翻译成机器语言,再在M1执行)——实际机器M1(机器语言机器,机器语言直接在M1上执行)
将高级语言程序翻译成机器语言的软件称为翻译程序。翻译程序分为两种:一种是编译程序,一种为解释程序。编译程序是将用户编写的高级语言程序(源程序)的全部语句一次全部翻译成机器语言程序,而后在执行语言程序。解释程序是将源程序的一条语句翻译成对应于机器语言的一条语句,并且立即执行这条语句,接着翻译源程序的下一条,并执行这条语句,如此重复直至完成源程序的全部翻译任务。
4、具有四级层次结构的计算机系统:虚拟机机器M3(高级语言机器)——虚拟机器M2(汇编语言机器)——传统机器M1(机器语言机器,用微程序解释机器指令)——微程序机器M0(微指令系统,由硬件直接执行微指令)
注:M1和M2之间还有一级虚拟机系统,它是由操作系统软件构成的。操作系统提供了在汇编语言和高级语言的使用和实现过程中所需的某些疾病操作,还起到控制并管理计算机系统全部硬件和软件资源的作用。操作系统的功能是通过其控制语言来实现的。
硬件研究的主要对象归结为传统机器M1和微程序机器M0。软件的研究对象主要是操作系统级以上的各级虚拟机。
5、多层次结构的计算机系统:虚拟机器M4(高级语言机器)——虚拟机器M3(汇编语言机器)——虚拟机器M2(操作系统机器,用机器语言解释操作系统)——传统机器M1(机器语言机器)——微程序机器M0(微指令系统,由硬件直接执行微指令)
注:计算机体系结构和计算机组成:指令系统体现了机器的属性,这是属于计算机结构的问题。但指令的实现,即如何取指令、分析指令、取操作数、运算、送结果等,这些都属于计算机组成问题。例如:一台机器是否具备乘法指令的功能,这是一个结构问题,实现乘法指令采用什么方式,则是一个组成问题。相当于有乘法这个功能,但按哪种方式执行这个乘法,这是组成的事。
-----------
用户编写的java源程序,通过编译成Class文件(二进制结构),java虚拟机会加载这个Class文件(将数据加载到内存中,java虚拟机会根据class文件中产生的指令,组成java虚拟机可运行的语言程序),校验、解析、初始化
----------
冯诺依曼计算机的特点
1945年,数学家冯诺依曼在研究EDVAC机时提出了存储程序的概念。以此概念为基础的各类计算机通称为冯诺依曼机。它的特点可归结:
1、计算机由运算器、存储器、控制器、输入和输出设备五大部件组成。
2、指令和数据以同等地位存放于存储器内,并可按地址寻访。
3、指令和数据均用二进制表示。
4、指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
5、指令在存储器内按顺序存放。
6、机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。
---------
现代计算机是以存储器为中心。
1、运算器用来完成算术运算和逻辑元素,并将运算的中间结果暂存在运算器内。
2、存储器用来存放数据和程序。
3、控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果。
4、输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。
5、输出设备可将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等。
-------------
运算器与控制器往往集成在同一芯片上,通常将它们合起来统称为中央处理器(CPU)。把输入设备与输出设备简称为I/O设备。
现代计算机可认为三大部分组成CPU、I/O设备及主存储器。
CPU和主存储器合起来又可称为主机。也就是平常说的CPU、内存。
---------
计算机的工作步骤:
计算sinx值(计算机内部没有直接完成三角函数的运算部件)要将变成适合计算机运算的加、减、乘、除四则运算。
sinx=x-x3/3!+x5/5!-x7/7!+x8/9!-......。
编制解题程序:
程序是适合于机器运算的全部步骤,编制解题程序就是将运算步骤用一一对应的机器指令描述
例如:ax2+bx+c
1)将x取至运算器中
2)乘以x,得x2,存于运算器中。
3)再乘以a,得ax2,存于运算器中。
4)将ax2送至存储器中。
5)取b至运算器中。
6)乘以x,得bx,存于运算器中。
7)将ax2从存储器中取出与bx相加,得ax2+bx,存于运算器中。
8)再取c与ax2+bx相加,得ax2+bx+c,存于运算器中。
若将上式改写成(ax+b)x+c:则其步骤可简化为以下5步:
1)将x取至运算器中。
2)乘以a,得ax存于运算器中。
3)加b,得ax+b,存于运算器中。
4)乘以x,得(ax+b)x,存于运算器中。
5)加c,得(ax+b)x+c,存于运算器中。
将上述运算步骤写成某计算机一一对应的机器指令,就完成了运算程序的编写。
---------
设某机器指令长为16位,其中操作码占6位,地址码占10位。
操作码表示机器所执行的各种操作,如取数、存数、加、减、乘、除、停机、打印等。地址码表示参加运算的数在存储器内的位置。机器指令的操作码和地址码都采用0、1代码的组合来表示。
操作码与操作性质对应表
操作码 操作性质
000001 取数
000010 存数
000011 加
000100 乘
000101 打印
000110 停机
此例所用到的数a、b、c、x,事先需存入存储器的相应的单元内。
注:可以结合<<深入理解java虚拟机>>class文件结构的,理解。
----------
主存储器:包括存储体M、各种逻辑部件及控制电路等。存储体由许多存储单元组成,每个存储单元又包好若干个存储元件,每个存储元件能寄存一位二进制代码"0"和"1"。一个存储单元可存储一串二进制代码,陈这串二进制代码为一个存储字,这二进制代码的位数为存储字长。存储字长可以为8位、16位或32位等。一个存储字可代表一个二进制数,也可代表一串字符,如存储字符001101110011111101,即可表示为由十六进制字符组成的367DH,又可代表16位二进制数,此值对应的十进制数为13949。每个存储单元都有一个编号,称为存储单元的地址号。
主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写入)、取(读出)。这种存取方式称为按地址存取方式,即按地址访问存储器。
为了能实现地址访问的方式,主存中还必须配置两个寄存器MAR和MDR;MAR是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数与应存储单元的个数。MDR是存储器数据寄存器,用来存放从存储体某单元取出的代码或者准备往某存储单元存入的代码,其位数与存储字长相等。
----------
运算器:最少包括3个寄存器和一个逻辑单元(ALU)。其中ACC为累加器,MQ为乘商寄存器,X为操作数寄存器。【P27】
ACC寄存器:存放(被加数及和、被减数及差、乘积高位、被除数及余数)
MQ:存放(被乘数及乘积低位、商)
X:存放(加数、减数、乘数、除数)
加法操作过程为
[M]——>X
[ACC]+[X]->ACC
将[ACC]看做被加数,先从主存中取一个存放在M地址单元的加数[M],送至运算器的X寄存器中,然后被加数[ACC]与加数[X]相加,结果(和)保留在ACC中。
减法操作过程:
[M]->X
[ACC]-[X]->ACC
将[ACC]看做被减数,先取出存放在[M]地址号单元的减数[M]并送入X,然后[ACC]-[X],结果(差)保留在ACC中。
乘法操作过程:
[M]->MQ
[ACC]->X
0->ACC
[X]*[MQ]->ACC//MQ
将[ACC]看做被乘数,先取出存放在主存M号地址单元中的乘数[M]并送入乘商寄存器MQ,再把被乘数送入X寄存器,并将ACC清"0",然后[X]和[MQ]和相乘,结果(积)的高位保留在ACC中,地位保留在MQ中。(什么是乘积高位:在进行乘法操作时,结果位数会加倍,把前面几位称为高位放在累加器acc中,后低位放于乘商寄存器mq中。)
除法操作过程为
[M]->X
[ACC]/[X]->MQ
余数R在ACC中
[ACC]看做被除数,先取出存放在主存M号地址单元内的除数[M]并送至X寄存器,然后[ACC]除以[X],结果(商)暂留于MQ,[ACC]为余数R。若需要将商保留在ACC中,只需做一步[MQ]->acc即可
-------
控制器:
是计算机的神经中枢,由它指挥各部件自动、协调地工作。是由程序计数器PC、指令寄存器IR、以及控制单元CU。
-----------
计算机硬件的主要技术指标
1、机器字长
是指CPU一次能处理数据的位数,通常与CPU的寄存器数有关。字长越长,数的表示范围越大,精度也越高。机器的字长也会影响机器的运算速度。若CPU字长较短,又要运算位数较多的数据,那么需要经过两次或多次的运算才能完成,这样势必机器的运算速度。
2、存储容量(现在计算机常以字节数描述容量的大小)
存储器的容量应该包括主存容量和辅存容量。
主存容量是主存中存放二进制代码的总位数。
存储容量=存储单元个数*存储字长
辅存容量通常用字节数来表示,例如某机辅存(如硬盘)容量为80GB(1G=1024M=2^10*2^20=2^30)
3、运算速度
计算机的运算速度与许多因素有关,如机器的主频、执行什么样的操作、主存的速度等都有关(主存速度快、取指、取数就快)。
现在机器的运算速度普遍采用单位时间内执行指令的平均条数来衡量,并用MIPS(百万条指令每秒)作为计量单位。
-------------
存储程序的概念:将程序和数据一起存放在存储器中,使编程更加方便。

转载于:https://www.cnblogs.com/lazyli/p/10780418.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值