【计算机组成原理笔记】第1章:计算机系统概述

第1章 计算机系统概述

1.1 计算机发展历程

1.1.1 计算机硬件的发展

一、计算机的四代变化

第一代计算机:电子管

第二代计算机:晶体管

第三代计算机:中小规模集成电路

第四代计算机:超大规模集成电路

二、计算机元件的更新换代

1、摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月增加一倍,性能也将提升一倍。

2、半导体存储器的发展。

3、微处理器的发展。

1.1.2 计算机软件的发展

1、计算机语言的发展:机器语言->汇编语言->高级语言。

其中高级语言的发展:FORTRAN->PASCAL->C+±>Java。

2、系统软件的发展:特别是操作系统,如Windows、UNIX、Linux等。

1.1.3 计算机的分类与发展方向

1、计算机的分类
在这里插入图片描述

2、计算机的发展方向:计算机的发展趋势向着两极分化

(1)更微型化、网络化、高性能、多用途

(2)更巨型化、超高速、并行处理、智能化

1.2 计算机系统层次结构

1.2.1 计算机系统的组成

计算机系统 = 硬件 + 软件

1、软硬件的逻辑等效:对某一功能来说,其既可以用软件实现,又可以用硬件实现。例如对于乘法运算,可以设计一个专门的硬件电路实现,也可以用软件的方式,执行多次加法运算来实现。

2、硬件与软件的功能分配:使用较频繁且用硬件实现的成本较理想,则使用硬件可以提高效率使用软件可以提高灵活性,效率一般不及硬件。

1.2.2 计算机硬件的基本组成

一、早期的冯·诺依曼机

存储程序”思想:将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直到程序执行结束。

在这里插入图片描述
早期冯·诺依曼机的特点:

1、计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。

2、指令和数据同等地位存储在存储器中,并可按地址寻访

3、指令和数据均用二进制代码表示

4、指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。

5、指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。

6、以运算器为中心,输入、输出设备与存储器的数据传送要通过运算器完成

二、现代计算机的组织结构

现代计算机已发展为以存储器为中心,使I/O操作尽可能绕过CPU,直接在I/O设备和存储器之间完成,以提高系统的整体运行效率。目前绝大多数现代计算机仍遵循冯·诺依曼的存储程序的设计思想。

在这里插入图片描述

在这里插入图片描述

三、计算机功能部件的工作原理

计算机的功能部件有:运算器、存储器、控制器、输入设备和输出设备。

(一)存储器

1、存储器的分类:

(1)主存储器:也称内存储器,简称主存/内存CPU能直接访问主存储器

(2)辅助存储器:也称外存储器,简称辅存/外存辅助存储器用于帮助主存储器存储更多的信息,辅存中的信息必须调入主存后,才能被CPU访问

2、主存储器的基本组成:存储体、地址寄存器、数据寄存器、时序控制逻辑

(1)存储体:存储二进制信息。存储体由许多存储单元组成,每个存储单元包含若干存储元件,每个存储元件存储一位二进制代码0或1。因此存储单元可存储一串二进制代码,称这串代码为存储字,称这串代码的位数为存储字长,存储字长可以是1Byte(8bit)或是1Byte的偶数倍。
在这里插入图片描述

(2)地址寄存器(MAR: Memory Address Register):存放访存地址,经过地址译码后找到所选的存储单元MAR的位数对应存储单元的个数,如MAR为10位,则有210=1024个存储单元,即1K(1K=1024,无单位,不是1KB)。MAR的长度与PC(程序计数器)的长度相等

(3)数据寄存器(MDR: Memory Data Register):用于暂存要从存储器中读或写的信息MDR的位数与存储字长相等,一般为字节的2次幂的整数倍
在这里插入图片描述
(4)时序控制逻辑:用于产生存储器操作所需的各种时序信号

MAR和MDR虽然是存储器的一部分,但在现代计算机中存在于CPU中

3、主存储器的工作方式:按地址进行存取
在这里插入图片描述

(二)运算器

1、运算器的作用:运算器是计算机的执行部件,用于进行算术运算逻辑运算

2、运算器的核心:算术逻辑单元(ALU)

3、运算器中的寄存器:

(1)通用寄存器(用于暂存操作数和中间结果): 累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)等,其中前3个寄存器是必须具备的。

(2)程序状态寄存器(PSW):又称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息,如结果是否溢出、有无产生进位或错位、结果是否为负等。

4、运算器的组成图:
在这里插入图片描述

5、执行加减乘除运算时运算器的寄存器存储的内容:
在这里插入图片描述

(三)控制器

一般将运算器控制器集成到同一个芯片上,称为中央处理器(CPU)。CPU和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称为外部设备,简称外设

1、控制器的地位:计算机的指挥中心

2、控制器的组成:程序计数器(PC)、指令寄存器(IR)、控制单元(CU)
在这里插入图片描述

(1)PC:存放当前欲执行指令的地址,具有自动+1的功能(“1”指一条指令的长度),可以形成下一条指令的地址,与主存的地址寄存器(MAR)之间有一条直接通路。

(2)IR:存放当前的指令,其内容来自主存的数据寄存器(MDR)。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;而地址码Ad(IR)送往MAR,用以取操作数。
在这里插入图片描述

1.2.3 计算机软件的分类

计算机软件分为系统软件应用软件

1、系统软件:操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等。

2、应用软件。

1.2.4 计算机的工作过程

计算机的工作过程分为以下三个步骤:

(1)把程序和数据装入主存储器;

(2)将源程序转换成可执行文件;

(3)从可执行文件的首地址开始逐条执行指令。

以执行下图左侧的高级语言的工作过程为例:
在这里插入图片描述

注:PC在每次取指后自增。

指令1:取数
在这里插入图片描述

指令2:乘法
在这里插入图片描述

指令3:加法
在这里插入图片描述

指令4:存数
在这里插入图片描述

指令5:停机
在这里插入图片描述

总结:
在这里插入图片描述
在这里插入图片描述

1.2.5 计算机系统的多级层级结构

在这里插入图片描述

一、五层级划分

第1级:微程序机器层

是一个实在的硬件层,由机器硬件直接执行微指令。

第2级:传统机器语言层

是一个实在的机器层,由微程序解释机器指令系统。

第3级:操作系统层

由操作系统程序实现。操作系统程序是由机器指令广义指令组成的,这些广义指令是为了扩展机器功能而设置的,是由操作系统定义和解释的软件指令,所以这一层也称混合层

第4级:汇编语言层

第5级:高级语言层

1、通常把没有配备软件的纯硬件系统称为“裸机“。第3层~第5层称为虚拟机,简单来说就是软件实现的机器

2、计算机组成原理课程主要讨论传统机器M1微程序机器M0的组成原理及设计思想。

二、三种级别的语言

三种级别的语言为:机器语言、汇编语言、高级语言。

在这里插入图片描述

1、编译、汇编、解释程序统称为“翻译程序”

2、编译程序:将高级语言编写的源程序全部语句一次全部翻译称机器语言程序,而后再执行机器语言程序(只需翻译一次)。

3、解释程序:将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。紧接着再翻译下一句(每次执行都要翻译)。

4、汇编程序:将汇编语言翻译成机器语言

5、机器语言和汇编语言与机器指令对应,而高级语言不与指令直接对应,具有较好的可移植性。

三、计算机组成原理与计算机体系结构的区别

在这里插入图片描述

此处的“透明”:看不见;

某事“公开透明”:看得见。

透明性: 在计算机领域中,站在某类用户的角度,若感觉不到某个事物或属性的存在,即“看”不到某个事物或属性,则称“对该用户而言,某个事物或属性是透明的“。与日常生活中”透明”的含义(公开、看得见)正好相反。在CPU中,IR、MAR和MDR对各类程序员都是透明的。

1.3 计算机的性能指标

1.3.1 字长

字、字长(机器字长)、指令字长、存储字长都必须是字节的整数倍,指令字长一般取存储字长的整数倍。

1、机器字长字长

字长又称机器字长,指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关。机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节(8位)的整数倍。

2、

字用来表示被处理信息的单位,用来度量数据类型的宽度。如x86机器中将一个字定义为16位。

3、指令字长

指一个指令字中包含的二进制代码的位数。

4、存储字长

指一个存储单元存储的二进制代码的位数。

1.3.2 存储容量

在这里插入图片描述

1、主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可以用字数×字长(如512K×16bit)来表示存储容量。

2、MAR的位数反映了存储单元的个数,MDR的位数反映了存储单元的字长。 例如,MAR为16位,表示216=65536,即此存储体内有65536个存储单元(可称为64K,1K=1024,无单位),若MDR为32位,表示存储容量为64K×32bit。

1.3.3 运算速度

1、主频(CPU时钟频率)

机器内部主时钟的频率。对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。

2、CPU时钟周期

CPU时钟周期 = 1 / 主频

是主频的倒数,是CPU中最小的时间单位,执行指令的每个动作至少需要1个时钟周期。

3、CPI

Cycle Per Instruction,即执行一条指令所需的时钟周期数。

不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,其CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,此时CPI是一个平均值。

执行一条指令的耗时 = CPI * CPU时钟周期

4、CPU执行时间

指运行一个程序所花费的时间。

CPU执行时间 = CPU时钟周期数 / 主频 = (指令条数 * CPI) / 主频

主频、CPI和指令条数是相互制约的。例如,更改指令集可以减少程序所含指令的条数,但同时可能引起CPU结构的调整,从而可能增加时钟周期的宽度(降低主频)。

5、IPS

Instructions Per Second,指每秒执行多少条指令。

IPS = 主频 / 平均CPI

MIPS:Million Instructions Per Second,即每秒执行多少百万条指令。

MIPS = 指令条数 / (执行时间 * 10^6) = 主频 / (CPI * 10^6)

MIPS对不同机器进行性能比较是有缺陷的,因为不同机器的指令集不同,指令的功能也就不同,比如在机器M1上某条指令的功能也许在M2上要用多条指令来完成;不同机器的CPI和时钟周期也不同,因而同一条指令在不同机器上所用的时间也不同。

6、FLOPS

Floating-point Operations Per Second,即每秒执行多少次浮点运算。

常用MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS和ZFLOPS。

在描述存储容量、文件大小等时,K、M、G、T通常用2的幂次表示,如1KB=210B;在描述速率、频率等时,k、M、G、T通常用10的幂次表示,如1kb/s=103b/s。前者通常用大写K,后者通常用小写k,但其他前缀均为大写。

1.3.4 系统整体性能指标

1、数据通路带宽

数据总线一次所能并行传送信息的位数。这里指外部数据总线的宽度,与CPU内部的数据总线宽度(内部寄存器大小)有可能不同。

2、吞吐量

系统在单位时间内处理请求的数量(一条指令、一个程序都可视为一个请求)。它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。几乎每步都关系到主存,因此系统吞吐量主要取决于主存的存取周期。

3、响应时间

从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等的时间)。

1.3.5 基准程序

基准程序是专门用来进行性能评价的一组程序(如跑分软件),能够很好地反映机器在运行实际负载时的性能,可以通过在不同机器上运行相同的基准程序来比较在不同机器上的运行时间,从而评测其性能。对于不同的应用场合,应该选择不同的基准程序。

基准程序执行得越快说明机器的性能越好吗?

一般情况下,基准测试程序能够反映机器性能的好坏。但是,由于基准程序中的语句存在频度的差异,因此运行结果并不能完全说明问题。


【参考资料:王道考研】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值