计算机组成原理第一章

计算机概述

计算机发展历程

知识总览
在这里插入图片描述

什么是计算机系统

计算机系统=硬件+软件
硬件:计算机的实体(就像台式电脑的主机、鼠标等),决定的计算机的性能天花板

软件:电脑上的应用程序(打的游戏、用的ps等),决定了计算机的性能利用率

软件有系统软件和应用软件

系统软件:操作系统、数据库管理系统(DBMS)、标准程序库(我们打代码的时候可以引入的标准库)、网络软件(TCP/IP协议的执行软件)、语言处理程序(我们打代码完成后进行编译的编译器)、服务程序

应用软件:迅雷、LOL、百度网盘、QQ(都给我们平时在用的)

硬件的发展历程

在这里插入图片描述
第二代时开始出现操作系统

第三代时开始出现分时操作系统

第四代时开始进入日常生活,出现成熟的操作系统

下面这个虽然没啥用,但是我想记录!!!

在这里插入图片描述
这玩意儿就是当今最牛逼两家芯片公司的由来

目前的发展趋势

两级分化!!!
(1)微型计算机向更加微型化、网络化、高性能、多用途方向发展

(2)巨型机向更加巨型化、超高速、并行处理、智能化方向发展(神威太湖之光,每秒9.3亿亿次的浮点运算)

计算机硬件的基本组成

冯诺依曼结构

冯·诺依曼创建了第一台计算机ENIAC,这电脑是计算很快,但是需要程序员手动接线来控制计算,这就严重的限制了计算效率

因此这老哥就又提出了存储程序

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

结构图:
在这里插入图片描述
(1)首先用输入设备把数据输入
(2)然后经过运算器把数据和程序存入存储器
(3)运算器读取程序,解析程序,指挥运算器根据程序对数据进行运算
(4)运算完以后将结果放到输出设备里面去

注:在计算机系统中,软件和硬件在逻辑上是等效的!!!(就是软件上简便但是耗时,硬件快但是要要钱)

特点:
(1)计算机由五大部件组成
(2)指令和数据以同等地位存于存储器,可按地址寻访
(3)指令和数据用二进制表示
(4)指令由操作码和地址码组成
(5)存储程序
(6)以运算器为中心

现代计算机的结构
在这里插入图片描述
由于运算器和控制器关系非常紧密,因此现在就把他集成为CPU(运算器+控制器)

改变一下形象
在这里插入图片描述
注意:在计算机组成里面主机和我们现在生活中讲的电脑主机不一样

知识点回顾和重要考点

在这里插入图片描述

硬件的工作原理

知识总览

在这里插入图片描述

主存储器的基本组成

在这里插入图片描述
可以在左边这张图很清楚的看出来主存储器由三个部件组成:存储体、MAR和MDR

存储体:说白了就是存东西的,不管你是啥,能放进来,我就放着

MAR:存储地址寄存器,说白了找数据的,根据你给的地址去存储体里面把数据拿出来,放到隔壁去

MDR:存储数据寄存器,其实就是输出台,他不可能让你去存储体里面找,而是拿到数据寄存器让你去取

这个模式和菜鸟驿站非常相似,应该很好理解

在这里插入图片描述
存储体内的具体结构

存储单元:每个存储单元放一串二进制代码

存储字:存储单元中二进制代码的组合

存储字长:存储单元中二进制代码的位数

存储元:即存储二进制的电子元件,每个存储元可以存1b

解释的字面意思都挺好理解,就不加感悟力(PS:主要还是自己也有点糊涂,这个存储单元不应该是固定标准的大小吗)

MDR由于要输出,因此它的位数要和存储字长相等

现代计算机中,MAR、MDR通常被集成到CPU中

运算器的基本组成


运算器作用:
用于实现算术运算(加减乘除)、逻辑运算(与或非)

ACC:累加器,用来存放操作数,或者运算结果

MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果

X:通用的操作数寄存器,用于存放操作数

ALU:算数逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算

简单的来说运算操作都在ALU里面进行,而上面三个都是存储操作数或者运算结果的,当然一般在运算器里面会有很多个X,这里只画了一个

在这里插入图片描述
这这表是在运算时,每个寄存器的作用

控制器的基本组成

在这里插入图片描述
CU:控制单元,分析指令,给出控制信号

IR:指令寄存器,存放当前执行的指令

PC:程序计数器,存放下一条指令地址,有自动+1功能

完成一条指令:
(1)取指令—PC
(2)分析指令—IR
(3)执行指令—CU

这边可能有点奇怪,上面介绍说CU分析指令,但是下面又说执行指令,下面的工作过程可以加深理解

计算机的工作过程

在这里插入图片描述

int a=2,b=3,c=1,y=0;
void main(){
	y=a*b+c;
}

接下来会实现一遍这个计算的过程
首先代码的编译器会把代码变成机器语言,并且放入存储器
在这里插入图片描述
(X)—取X地址的值
步骤:
(1)
PC=0,指向第一条指令的存储地址
#1:(PC)->MAR,导致(MAR)=0
#3:M(MAR)->MDR,导致(MDR)=000001 0000000101
#4:(MDR)->IR,导致IR=000001 0000000101
#5:OP(IR)->CU,指令的操作码送到CU,CU分析后得知,这是“取数”指令
#6:AD(IR)->MAR,指令的地址码送到MAR,导致(MAR)=5
#8:M(MAR)->MDR,导致(MDR)=0000000000000010=2
#9:(MDR)->ACC,导致ACC=0000000000000010=2
(2)
PC++,(PC)=1,执行后,(ACC)=1
#1:(PC)->MAR,导致(MAR)=1
#3:M(MAR)->MDR,导致(MDR)=000100 0000000110
#4:(MDR)->IR,导致(IR)=000100 0000000110
#5:OP(IR)->CU,指令的操作码送到CU,CU分析后得知,这是“乘法”指令
#6:Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=6
#8:M(MAR)->MDR,导致(MDR)=0000000000000011=3
#9:(MDR)->MQ,导致(MQ)=0000000000000011=3
#10:(ACC)->x,导致(x)=2
#11:(MQ)*(x)->ACC,由ALU实现乘法运算,导致(ACC)=6,如果乘积太大,则需要MQ辅助存储
(3)
PC++,(PC)=2,执行后,(ACC)=6
#1:(PC)->MAR,导致(MAR)=2
#3:M(MAR)->MDR,导致(MDR)=000011 0000000111
#4:(MDR)->IR,导致(IR)=000011 0000000111
#5:OP(IR)->CU,指令的操作码送到CU,CU分析后得知,这是“加法指令”
#6:Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=7
#8:M(MAR)->MDR,导致(MDR)=0000000000000001=1
#9:(MAR)->x,导致(x)=0000000000000001=1
#10:(ACC)+(x)->ACC,导致(ACC)=7,有ALU实现加速运算
(4)
PC++,(PC)=3,执行后,(ACC)=7
#1:(PC)->MAR,导致(MAR)=3
#3:M(MAR)->MDR,导致(MDR)=000010 0000001000
#4:(MDR)->IR,导致(IR)=000010 0000001000
#5:OP(IR)->CU,指令的操作码送到CU,CU分析后得知,这是“存数”指令
#6:Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=8
#7:(ACC)->MDR,导致(MDR)=7
#9:(MDR)->地址为8的存储单元,导致y=7

根据这四步可以理解,其实就是PC负责准备好下一条指令,IR存储当前指令,CU负责分析IR中的操作码,MAR获取地址码,然后利用ALU进行操作

知识回顾与重要考点

在这里插入图片描述

计算机系统的层次结构

在这里插入图片描述
可以清晰的看出机器的软硬件层次,首先是传统机器(用机器语言的机器),这是建立在微程序机器(微指令系统)上的,传统机器执行二进制机器指令,然后硬件直接执行

但是上面都是硬件的底层,我们平时用到的其实都是虚拟机器M4(高级语言机器),高级语言经过编译程序编译后,变成汇编语言程序,然后汇编语言程序通过自己所在的操作系统的指令来执行机器语言(实质上汇编语言程序和机器语言程序是很相似的,汇编语言知识为了我们可以更方便的阅读才出现的)

语言的进化步骤

在这里插入图片描述
之前用的都是二进制代码(汇编语言其实就是更容易看的二进制代码,把操作指令变成了英文)

现在的很多都使用高级语言,但是高级语言也需要变成二进制代码进行工作

高级语言通过解释程序/编译程序编程机器语言

解释程序:这其实就是我们常说的脚本程序,他并不是一个可执行文件,而是逐条编译代码进行,每次使用都需要编译

编译程序:这就是我们常用的应用,他被编译完一次以后会生成文件,保存下来,可供重复使用

知识点回顾与重要考点

在这里插入图片描述

计算机性能指标

存储器的性能指标

在这里插入图片描述
MAR的位数可以反映出存储体的地址长度(有多少个存储单位)

MDR位数存储字长,表示一个存储单元里面可以存多少

总容量= 2 M A R 位 数 ∗ M D R 位 数 2^{MAR位数}*MDR位数 2MARMDR(当然,在实际中可能容量会小很多)

常见单位: 2 10 B = 1 K 2 20 B = 1 M 2 30 B = 1 G 2 40 B = 1 T 2^{10}B=1K \qquad 2^{20}B=1M \qquad 2^{30}B=1G \qquad 2^{40}B=1T 210B=1K220B=1M230B=1G240B=1T

CPU的性能指标

在这里插入图片描述
我们在买电脑查看配置的时候,CPU的标号后面往往会标出编号和CPU主频以及核心数和线程数

CPU主频就是主要指标之一

解释:CPU内数字脉冲信号振荡的频率
在这里插入图片描述
CPU的主频(时钟频率)= 1 C P U 时 钟 周 期 \frac{1}{CPU时钟周期} CPU1
CPI:执行一条指令所需的时钟周期数

解释:
CPU主频—我们的指令执行是伴随着CPU的时钟周期进行的,周期短,指令执行就快,周期长,指令执行就慢

CPI—我们一条指令其实是由许许多多的二进制代码去做的,正如上面的y=a*b+c那样,4条指令里面可能二进制代码数量并不相同,因此一条指令的时钟周期数也不相同

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

IPS:每秒执行多少条指令

I P S = 主 频 平 均 C P I IPS=\frac{主频}{平均CPI} IPS=CPI

FLOPS:每秒执行多少次浮点运算

例题:
在这里插入图片描述
时间=CPICPU时钟周期数=CPI 1 C P U 主 频 = 100 ∗ 3 ∗ 1 1000 = 0.3 s \frac{1}{CPU主频}=100*3*\frac{1}{1000}=0.3s CPU1=100310001=0.3s

这里经常用KIPS、MIPS/KFLOPS、MFLOPS、GFLOPS、TFOPS来表示,这里的K= 1 0 3 10^{3} 103、M= 1 0 6 10^{6} 106G= 1 0 9 10^{9} 109、T= 1 0 12 10^{12} 1012

系统整体的性能指标

数据通路带宽:数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)

吞吐量:指系统在单位时间内处理请求的数量(就像是食堂一秒打多少份饭,淘宝一秒处理多少订单啥的)

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

动态测试

基准程序是用来测量计算机处理速度的一种使用程序,以便于被测量的计算机性能可以与运行相同程序的其他计算机性能进行比较

说白了就是用程序去测试,就像我们平时用的鲁大师,驱动精灵啥的

知识回顾与重要考点

在这里插入图片描述

下面这块是哈工大的!!!,不知道有啥用,但是学校课程是计算机结构与组成,而考研课上的是组成,希望下面的内容也有一定的用处

计算机的概念和类型

1.1.2主要模块

输入设备

键盘、鼠标、触摸屏等都是外部输入设备

存储器

直接在CPU当中的cash,缓存,磁盘,光盘等

输出设备

显示器、打印机、投影仪等

运算器

执行基本的算数运算和逻辑运算

控制器

产生控制信号,去控制计算机信号完成更加复杂的运算

这几个模块不是相互独立的,而是通过数据通路和信号通路,相互连接,形成一个有机整体
逻辑模块关系如下图所示:
在这里插入图片描述
数据信息是通过输入设备进入存储器,在运算器进行运算之后回到存储器存储,最后在输出设备输出

但是数据信息的处理不会自动运行,需要控制器控制,控制器从存储器获取指令信息,并且获取四个模块的状态信息,然后根据状态信息发布控制信号

目前,运算器和控制器已经集成在CPU中!

1.1.2计算机的主要特点

信息数字化表示的优点

  1. 物理上已实现信息的表示与存储
  2. 抗干扰能力强,可靠性高
  3. 数值的表示范围大,精度高
  4. 可表示的信息类型广泛
  5. 能用数字逻辑技术进行处理

因此,计算机采用二进制表示信息

计算机的工作流程

在这里插入图片描述

1.1.3计算机的分类

总体分类

模拟计算机

有模拟运算器件过构成,处理在时间和数值上连续的模拟量(如:电压、电流等)

数字计算机

有数字逻辑器件构成,处理离散的数字量

又可以分为以下两类

专用计算机

以快速、经济和高集成度为主要指标的特殊计算机,专门针对特殊任务设计,适用性差(如:工控机、ATM)

通用计算机

适用性高,但是效率、速度和经济性较差

系统规模和计算能力分类

以下类型系统规模和计算能力依次递减

随着超大规模集成电路技术的不断发展,类型的划分会动态变化
巨型机(超级计算机)
大型机
小型机(专用的服务器)
微型机(个人电脑)

上述电脑类型对比图:
在这里插入图片描述

1.3计算机系统的组织

硬件—是指构成计算机系统的实体和装置之类的有形设备,是组成计算机系统的物质基础(各种设备,键盘、鼠标、显示屏、CPU等)
软件—是指由硬件所表达的各种内在信息,包括数据与控制程序。因为它们是无形的东西,所以称为软件或软设备(各种软件,应用)

1.3.1计算机的硬件系统组成

硬件系统的基本组成模型

在这里插入图片描述

主要功能部件
  1. CPU
    (1)运算器:完成两类(算数和逻辑)运算
    组成特点:
    主要有ALU构成,执行算数、逻辑运算以及移位循环等操作
    ALU以全加器为核心,具有多种运算功能
    运算的位数越多,计算精度就越高,担器件也越复杂
    运算器的数据宽度一般是8位、16位、32位或64位
    (2)控制器:产生控制命令(微命令),控制全机操作
    基本组成:
    在这里插入图片描述

  2. 存储器:存储数据和数字化之后的程序
    存储器涉及的几个基本概念:
    存储单元:在存储器中保存一个n为二进制数的n个存储电路,组成一个存储单元
    地址:存储器由许多存储单元组成,每个存储单元的编号称为地址
    存储容量:存储器所有存储单元的总数
    内存储器:即主存,是一种用来存放直接为CPU提供服务的程序和数据存储器(简称内存)
    外存储器:即辅存,为计算机配备的存储容量很大的辅助存储器

  3. 输入/输出设备:执行输入/输出信息的转换
    输入时:原始信息->二进制代码,送入主机
    输出时:处理结果->用户 能够直接感知的形式(字符、图像、声音)并输出给用户

  4. 总线:能为多个部件分时共享的一组信息传送通路
    根据传送的信息不同,分为三类:
    (1)数据总线:传送各种数据
    (2)地址总线:传送各种地址信息
    (3)控制总线:传送各种控制信号

  5. 接口
    外设的种类、数量多变,为了将总线和各类外设链接,需在两者之间设置一些部件,具有缓冲、转换、连接等功能,这些部件解释接口(这些应该是物理接口,像USB、HDMI等)

计算机硬件的典型架构

微信计算机(个人电脑)
在这里插入图片描述
小型计算机:多处理器架构(E5-2620是一种CPU)
在这里插入图片描述
超级计算机:集群式架构
在这里插入图片描述

多处理机系统结构

特点:用多处理器CPU构成
根据处理器之间连接的紧密程度,又分为:
(1)紧密偶合型多机系统
特点:多个CPU+LM组(多个CPU和内存)通过系统总线构成多机系统,并且有共享的全局主存储器
在这里插入图片描述
(2)松散偶合型多机系统
特点:多个计算节点,由通信系统连接成的多机系统,无全局的主存储器
在这里插入图片描述

软硬件层次与逻辑等价性
软件系统

软件类别:系统程序和应用程序
系统程序:负责系统调度管理,提供运行和开发环境、各种服务,确保系统运行良好(类似于操作系统win10、linux等)
应用程序:利用计算机来解决应用问题所编制的程序(各种软件,游戏等)

硬、软件系统层次结构

基本结构如下图所示
在这里插入图片描述

软硬件特点

软件特点:易于实现各种逻辑和运算功能,但是常受到速度指标和软件容量的制约
硬件特点:可以告诉实现逻辑和运算功能,但是难以实现复杂功能或计算,受到控制复杂性指标的制约
注:软硬件相互的功能都可以通过另一种方法实现,计算机中的软件,理论上都可以“固化”或“硬化”成硬件,以提高执行速度

计算机系统的性能评价指标

基本字长

一次数据操作的基本位数
它会影响计算的精度、指令的功能
(一般是4位、8位、16位、32位、64位,现在一般都是64位)

外频

外部频率或基频,也叫系统时钟频率
在这里插入图片描述

常用的CPU性能指标

(1)CPU的主频=外频 ∗ * 倍频系数
(2)IPS,每秒执行指令数
(3)CPI,每个指令执行过程中需要的时钟周期的数量(时钟周期:)
(4)FLOPS,每秒执行浮点运算的次数
(5)CPU的功耗(动态功耗:运算时消耗;静态功耗:泄露消耗)

数据传输率

带 宽 = 位 宽 ∗ 工 作 频 率 8 ( B / S ) 带宽=\frac{位宽*工作频率}{8}(B/S) =8(B/S)
物理含义:单位时间内数据的传输量
注:计算PCI-E总线的带宽时,一般还要考虑编码方式、单双工模式和通道路数等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值