计组部分第一次笔记
机器字长:计算机一次整数运算所能处理的二进制位数
计算机系统:硬件+软件
软件:系统软件(操作系统,数据库管理系统等等),应用软件
摩尔定律:年份和继承电路上晶体管的数目成正比;存储器储存的容量也大致符合摩尔定律
发展时代:
电子管时代,晶体管时代,中小规模集成电路时代,大规模,超大规模集成电路时代。
机器语言和汇编语言都是基础的低级语言。
目前的发展趋势:更微型,多用途,更巨型,超高速
早期的冯诺依曼机
存储程序 的概念是指将指令以二进制编码的形式事先输入计算机的主存储器。然后按其在存储器中的首地址执行程序的第一条指令。以后
就按照该程序的规定顺序执行其他指令,直至程序执行结束。
冯诺依曼机组成(五大部件)
输入设备:将信息转化成机器能够识别的形式
存储器:存放数据的程序
运算器:算数运算,逻辑运算
控制器:指挥程序运行
输出设备:将结果转换成人们熟悉的形式
在计算机系统中,软件和硬件在逻辑上是等效的
对于乘法运算,可以设计一个专门的硬件电路实现乘法运算,也可以用软件的方式,执行多次加法运算来实现
冯诺依曼机的特点
1.计算机由五大部件组成
2.指令和数据以同等地位存于存储器,可按照地址寻访
3.指令和数据用二进制表示
4.指令由操作码(具体操作)和地址码(数据位置)组成
5.存储程序
6.以运算器为中心(输入/输出设备与存储器之间的数据传送通过运算器完成)
(计算机,数据加工厂)
冯诺依曼机是以运算器为中心
现在计算机是以存储器为中心
存储器:主存,辅存
主存:所谓内存
辅存:所谓硬盘空间
主存储器的基本组成
主存储器:存储体,MAR(存储地址寄存器),MDR(存储数据寄存器)
雷同于菜鸟驿站的:货架,店员,柜台。
存储体
每一个存储体里面会有一系列的存储单元
存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合。
存储字长:存储单元中二进制代码的位数。
存储元:即存储二进制的电子原件,每个存储元可以存1bit。
MAR位数反映存储单元的个数
数据在存储体内按地址存储
MDR位数 == 存储字长
例:
MAR=4位 -> 总共有2^4个存储单元
MDR=16位 -> 每个存储单元可存放16bit,1个字(word) = 16bit。
易混淆:1个字节(Byte)=8bit
1B=1个字节,1b=1个bit
现在的计算机通常把MAR和MDR集成在CPU里面
运算器的基本组成
运算器:用于实现算数运算(如:加减乘除)、逻辑运算(与或非)
-
ACC:累加器,用于存放操作数,或运算结果。
-
MQ:乘商寄存器,在乘,除运算时,用于存放操作数或运算结果。
-
X:通用的操作数寄存器,用于存放操作数。
-
ALU:算数逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算
控制器的基本组成
-
CU:控制单元,分析指令,给出控制信号
-
IR:指令寄存器,存放当前执行的指令
-
PC:程序计数器,存放下一条指令地址,有自动加一的功能
完成一条指令:取指令PC,分析指令IR,执行指令CU
计算机系统的多级层次结构
(硬件)下层
微程序机器M0(微指令系统):由硬件直接执行微指令
传统机器M1(用机器语言的机器):执行二进制机器指令
(软件)上层
虚拟机器M2(操作系统机器):相上提供“广义指令”(系统调用)
虚拟机器M3(汇编语言机器):用汇编程序翻译成机器语言程序,每条汇编语言指令和机器语言指令一一对应。
虚拟机器M4(高级语言机器):用编译程序翻译成汇编语言程序
下层是上层的基础,上层是下层的扩展
三种级别的语言
高级语言:C,C++,Java
经过编译程序(编译器)
汇编语言:助记符
经过汇编程序(汇编器)
机器语言(二进制代码)
有部分语言的代码是提供编译器或解释器直接转换成二进制文件
编译程序(直接翻译):将高级语言编写的源程序全部语句执行一次全部翻译成机器语言程序,而后在执行机器语言程序
解释程序(同声传译):将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。紧接着再翻译下一句(每次执行都要翻译)
计算机体系结构和计算机组成原理的区别
计算机体系结构:机器语言程序员所见到的计算机系统的属性概念性的结构与功能特性
(指令系统、数据类型、寻址技术,I\O机理)如何设计硬件和软件之间的接口(处理硬件设计师留下的烂摊子)
计算机组成原理:实现计算机体系结构所体现的属性,对程序员“透明”
(具体指令的实现)如何用硬件实现所定义的接口 (如何优化硬件)
计算机的性能指标
存储器的性能指标:总容量 = 存储单元个数*存储字长 bit
=存储单元个数*存储字长/8 Byte
1Byte = 8bit
MAR位数反映存储单元的个数(最多支持多少个)
MDR位数=存储字长=每个存储单元的大小
cpu的性能指标:
CPU的时钟周期,单位:纳秒
CPU的主频:单位,赫兹,时钟周期分之一,CPU内数字脉冲信号振荡的频率(执行汇编步骤的频率)
CPI:执行一条指令所需要的时钟周期数。(不同的指令,CPI不同,甚至相同的指令,CPI也不同)
执行一条指令的耗时 = CPI * CPU时钟周期
CPU执行时间(整个程序的耗时) = CPU时钟周期数/主频 = (指令条数*CPI)/主频;
IPS:每秒执行多少条指令;IPS = 主频 / 平均CPI
FLOPS: 每秒执行多少次浮点运算
系统整体的性能指标:
数据通路带宽:数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)
吞吐量:指系统在单位时间内处理请求的数量,这里的请求可以看作是一条指令,也可以看作是一个程序的运行
吞吐量取决于信息能多块的输入内存,CPU能多快地取指令,数据能多快地从内存中取出或存入,以及所得结果能多快地从内存送给一台外部设备。这些步骤中的每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期
相应时间:指用户向计算机发送一个请求,到系统对该用户请求做出响应并获得他所需要的结果的等待时间。
影响响应时间的因素通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问,存储器访问,I/O操作,操作系统开销等时间)
基准程序:是用来测量计算机处理速度的一种实用程序,以便于被测量的计算机性能可以与相同程序的其他计算机性能比较。(所谓跑分软件)