408计算机组成原理学习笔记——计算机系统概述

简介: 408计算机组成原理学习笔记——计算机系统概述

1.计算机硬件的基本组成

1.1.计算机硬件组成部分

1.存储程序:将指令以二进制代码的形式存入计算机的主存储器,顺序执行

2.输入设备:将程序和数据以机器所能识别的方式输入计算机(信息转化)

存储器:存放程序和数据

运算器:执行算数运算和逻辑运算

输入设备:将计算机运算结果转换为人类所熟悉的方式(信息转化)

控制器:指挥程序运行

①控制器从存储器中取指令(加减乘除)

②对运算器进行控制进行该指令

③将结果放回存储器

3.软件和硬件在逻辑上是等效,但是软件效率低,价格低,硬件效率高,价格高(乘法)

1.2.冯诺依曼计算机的特点

1.计算机由五大部件组成:运算器、控制器、存储器、输入设备、输出设备

2.指令和数据以同等地位存入存储器,按照地址寻址

3.指令和数据用二进制表示

4.指令由操作码和地址码存放组成

操作码:指明该指令进行的具体操作。加减乘除

地址吗:该指令的操作数存放在存储器中的具体地址,对其进行访存操作

5.存储程序

6.以运算器为中心:输入和输出的数据都需要经过运算器(现代计算机以存储器为中心)

4021193e8be24266a8efdfbdead25994.png

1.3.现代计算机的特点

187e46bf72ce48f9b11cbe81b1c36372.png

1.以存储器为中心(提升效率,输入和输出数据无须再必须经过运算器)

2.运算器和控制器集合成CPU

3.控制器控制运算器进行操作(加减乘除),控制主存储器的读写和控制I/O设备启动/停止

4.主存储器和CPU进行数据交换(指令),指令送往控制器,运行期对操作数进行相应操作

5.I/O设备和主存储器直接进行数据交换

6.存储器分为主存(主存储器,算为主机)和辅存(硬盘,算为I/O设备)

2.主存储器的基本组成

2.1.MAR和MDR0b3b7d40818e408c922ec5b8293f4d2c.png

1.MAR(Memory Address Register):存储地址寄存器(存地址)

2.MDR(Memory Data Register):存储数据寄存器(存数据)

3.取:①将数据的地址存入MAR中

②控制器发出取指令

③根据MAR存放的地址,取出数据放到MDR中

4.存:①将数据想要存放的地址放在MAR中,数据放在MDR

②控制器发出指令,是存操作

③把MDR中的数据存入MAR相应地址

2.2.存储单元、存储字长和存储字

028e8e69adff45f98958070275667a89.png

1.存储体会被分为若干个存储单元,每个地址对应一个存储单元,若MAR想要地址为1的存储单元的数据,存入MAR的地址为1(二进制存储,具体位数根据情况)

2.存储单元:每个存储单元存放一串二进制代码(外部看)

3.存储字:存储单元存放的二进制代码的组合(内部看)

4.存储字长:存储单元中二进制代码的位数(8bit的整数倍)

5.存储元:存储二进制的电子元件,每个存储元可存1bit,多个存储元构成一个存储单元

6.MAR位数反映存储单元的个数(位数即次方数),MDR位数 = 存储字长(存储单元内的数据取出后需要存放在MDR内,因此大小相同)

eg:MAR为4位→共有2 ^ 4个存储单元(4位最多能表示2 ^ 4个数字)

MDR为16位→每个存储单元可以存放16bit,即一个存储字为16bit,存储字长为16bit

2.3.运算器的基本组成fd936ec7145f4e5aab6b04b4a5d2615d.png

1.运算器作用:实现逻辑运算(与或非)和算数运算(加减乘除)

2.组成部分:

ACC(Accumulator):累加器,用于存放操作数或者运行结果

MQ(Multiple-Quotient):乘商寄存器,在乘、除运算时,用于存放操作数或者运行结果

ALUArithmetic and Logic Unit):算数逻辑单元,通过电路实现算术运算和逻辑运算

X:通用寄存器,用于存放操作数(可能会有多个)

2.4.控制器的基本组成

013c921e24014654a716a6e39bbbb422.png

1.组成部分:

CU(Control Unit):控制单元,分析指令,给出控制信号(控制其他部件)

IR(Instruction Register):指令寄存器,存放当前执行的指令

PC(Program Counter):程序计数器,存放下一条指令的地址,有自动加“1”的功能

2.完成一条指令的过程:取指令(PC)→分析指令(区分操作码和地址码)(IR)→执行指令(分析操作码,确定具体操作)(CU)

前两个阶段为取指令,第三个阶段为执行

2.5.计算机工作过程

CPU区分指令和数据的依据:指令周期的不同阶段(取指令→分析指令→执行指令)

0da18957175d44608a081b07760c09d9.png

①初始情况:

1.主存地址为存储单元的编号

2.地址0-4存储机器指令,分为操作码和地址码,共16bit

3.地址5-8分别存储变量a、b、c、y的数据(二进制)


65594464871c4ce388de80113182c19b.png

②执行过程

()为寄存器内的内容,M为主存储器

初始化:(PC)= 0,指向第一条指令的存储位置

1.(PC)→MAR,导致(MAR) = 0:PC的内容通过地址总线存放到MAR

2.控制器向主存储器表明接下来访问地址为0的数据,并且通过控制总线告诉主存储为读操作

3.M(MAR)→MDR,导致(MDR) = 000001 0000000101:主存储器根据MAR存放的地址从存储体中取出相应数据,并放到MDR中

4.(MDR)→IR,导致(IR)=000001 0000000101 :MDR通过数据总线将MDR存放的内容存放到IR中

5.OP(IR)→CU,指令的操作码送到CU,CU分析后得知这是“取数”命令

6.Ad(IR)→MAR,指令的地址码送到MAR,导致(MAR)= 5

7.M(MAR)→MDR,导致(MDR)= 0000 0000 0000 0010 = 2

8.(MDR)→ACC,导致(ACC)= 0000 0000 0000 0010 = 2

1-4为取指令,5为分析指令,6-8为执行指令(取指令完成后,PC自动加1,指向下一条指令

此时,(PC)= 1,(ACC) = 2

1.(PC)→MAR,导致(MAR) = 1

2.M(MAR)→MDR,导致(MDR) = 000100 0000000110

3.(MDR)→IR,导致(IR)= 000100 0000000110(取指令完成,PC + 1)

4.OP(IR)→CU,指令的操作码送到CU,CU分析后得知,这是乘法指令(分析指令完成)

5.Ad(IR)→MAR,指令的地址码送到MAR,导致(MAR)= 6

6.M(MAR)→MDR,导致MDR = 0000 0000 0000 0011 = 3

7.(MDR)→MQ,导致MQ = 0000 0000 0000 0011 = 3

8.(ACC)→X,导致(X) = 2:执行乘法操作时,将操作数放到X寄存器中

9.(MQ)*(X)→(ACC),导致(ACC)= 6:通过CU控制ALU实现(执行指令完成

此时,(PC) = 2,(ACC) = 6

1.(PC)→MAR,导致(MAR)= 2

2.M(MAR)→MDR,导致(MDR)= 000011 0000000111

3.(MDR)→IR,导致(IR)= 000011 0000000111(取指令完成,PC+1

4.OP(IR)→CU,指令的操作码送到CU,CU分析后得知,这是加法指令(分析指令完成)

5.AD(IR)→MAR,指令的地址码送到MAR,导致(MAR) = 7(指明C存放的地址)

6.M(MAR)→MDR,导致(MDR)= 0000 0000 0000 0001

7.(MDR)→X,导致(X)= 0000 0000 0000 0001

8.(ACC)+(X)→ACC,导致(ACC)= 7,由ALU实现加法运算(执行指令完成

此时,(PC)= 3,(ACC)= 7

1.(PC)→MAR,导致(MAR)= 3

2.M(MAR)→MDR,导致(MDR)= 000010 0000001000

3.(MDR)→IR,导致(IR)= 000010 0000001000(取指令完成,PC+1

4.OP(IR)→CU,指令的操作码送到CU,CU分析后得知,这是存数指令(分析指令完成)

5.AD(IR)→MAR,指令的地址码送到MAR,导致(MAR) = 8

6.(ACC)→MDR,导致(MDR)= 7

7.(MDR)→地址为8的存储单元,导致 y = 7(执行指令完成)

此时,(PC)= 4

1.(PC)→MAR,导致(MAR)= 4

2.M(MAR)→MDR,导致(MDR)= 000110 000000-000

3.(MDR)→IR,导致(IR)= 000110 0000000000(取指令完成,PC+1

4.OP(IR)→CU,指令的操作码送到CU,CU分析后得知,这是停机指令(分析指令完成)

5.操作系统进行后续操作

3.计算机系统的层次结构

1.高级语言:面向用户。C/C++

2.汇编语言:高级语言通过编译程序翻译成汇编语言

3.机器指令:通过汇编程序将汇编语言翻译成机器指令

4.微指令:机器指令进一步分解为微指令,硬件直接执行微指令

5.汇编语言和机器指令一一对应

6.若需要调库,则需要链接,即将文件和库文件结合

7.预处理→编译→汇编→链接

8.编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序(.exe文件)(只需翻译一次

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

4.计算机的性能指标

4.1.存储器的性能指标

1.总容量 = 存储单元个数 * 存储字长 bit = 存储单元个数 * 存储字长 / 8 Byte

2.可以通过MAR和MDR计算总容量

MAR代表存储单元个数(最多),MDR代表存储字长

eg:MAR为32位,MDR为8位→总容量 = 2 ^ 32 * 8 = 4GB

4.2.CPU的性能指标

1.主频(HZ):数字脉冲信号振荡的频率

时钟周期(微妙,纳秒):主频的倒数,执行指令的每个动作至少需要1个时钟周期

2.CPIClock cycle Per Instruction):每条指令的执行需要几个时钟周期(可能会变化),通常取平均值

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

4.IPS(Instruction Per Second):每秒执行多少个指令。IPS = 主频 / CPI(MIPS)

5.FLQPS(Floating-point Operations Per Second):每秒执行多少次浮点运算

K:10 ^ 3→M:10 ^ 6→G:10 ^ 9→T:10 ^ 12→P:10 ^ 15→E:10 ^ 18→Z:10 ^ 21

6.数据通路带宽:数据总线一次所能并行传送数据的位数

7.吞吐量:单位时间内处理请求的数量

8.响应时间:用户发出请求,到系统对其做出反应并得到结果的时间

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
小程序 前端开发 程序员
不得不说,这19个程序员兼职平台让我1年收入60w
关于程序员接私活,社会各界说法不一。
2121 1
|
存储
计算机的工作原理
计算机的工作原理可以分为以下几个主要步骤: 1. 输入:用户通过输入设备(如键盘、鼠标)将数据输入到计算机系统中。 2. 处理:计算机系统接收到输入的数据后,使用中央处理器(CPU)进行处理。CPU包括算术逻辑单元(ALU)和控制单元(CU),ALU执行算术和逻辑运算,而CU控制和协调整个计算机系统的操作。 3. 存储:计算机系统使用内存存储数据和指令。内存分为主存储器(RAM)和辅助存储器(如硬盘、固态硬盘)。RAM用于临时存储正在处理的数据和程序,而辅助存储器用于永久存储数据和程序。 4. 输出:计算机系统将处理后的数据通过输出设备(如显示器、打印机)展示给用户。 5. 控制:计算机系统使
267 0
|
存储
计算机系统的基本组成
计算机系统是由多个组件和层次结构组成的复杂系统,用于执行各种计算任务。它包括硬件和软件两个主要部分。下面将详细介绍计算机系统的基本组成。 1. 中央处理器(CPU):中央处理器是计算机系统的核心部件,负责执行指令和控制计算机的操作。它包括算术逻辑单元(ALU)和控制单元(CU),ALU执行算术和逻辑运算,而CU负责控制指令的执行顺序和数据的传输。 2. 存储器:存储器用于存储数据和程序。计算机系统通常包括多种类型的存储器,如主存储器(RAM)和辅助存储器(硬盘、固态硬盘等)。主存储器用于存储当前运行的程序和数据,而辅助存储器用于长期存储和备份数据。 3. 输入设备:输入设备用于将外部数据
748 0
|
6月前
|
机器学习/深度学习 人工智能 API
基于昇腾适配Meta AI在Science正刊发表的蛋白质结构预测模型ESMFold
ESMFold是由Meta AI团队开发的一种基于深度学习的高效蛋白质结构预测模型,其核心目标是利用大规模蛋白质语言模型(ESM)直接从氨基酸序列快速推断蛋白质的三维结构。ESMFold通过预训练的语言模型捕捉序列中的进化与结构关联性,结合几何优化模块生成高精度原子坐标,显著降低了传统方法对多重序列比对(MSA)和模板依赖的计算成本。该模型在蛋白质从头预测(de novo prediction)、功能位点解析、突变效应模拟等领域具有重要价值,以高效的推理性能,推动结构预测技术的普惠化应用。
|
存储 数据安全/隐私保护 索引
设计一个完美的用户角色权限表
设计一个完美的用户角色权限表
1227 1
|
Kubernetes 应用服务中间件 nginx
史上最全干货!Kubernetes 原理+实战总结(全文6万字,90张图,100个知识点)(上)
史上最全干货!Kubernetes 原理+实战总结(全文6万字,90张图,100个知识点)
52550 30
|
测试技术 项目管理 uml
「软件项目管理」软件项目范围计划——需求管理与任务分解
该文章详细介绍了软件项目范围计划中的需求管理与任务分解技术,包括需求获取、分析、编写、验证、变更管理的过程,以及任务分解的方法和实践,旨在帮助项目管理者有效地控制项目范围和推进项目进展。
「软件项目管理」软件项目范围计划——需求管理与任务分解
|
安全 持续交付 开发工具
什么是版本管理?如何促进团队协作并提高代码安全性?
在现代软件开发中,版本管理是每个开发团队不可或缺的工具。本文深入探讨了版本管理的基本概念、如何促进团队协作以及提高代码安全性。通过跟踪文件更改、分支管理、代码审查和权限控制等功能,版本管理系统确保了开发项目的有序进行和安全性。结合持续集成和自动化工具,版本管理进一步提升了团队的协作效率和代码质量。
662 4
|
算法 Linux iOS开发
Zipline 3.0 中文文档(一)(2)
Zipline 3.0 中文文档(一)
552 7
|
前端开发
CSS中如何实现鼠标悬停效果?
CSS中如何实现鼠标悬停效果?
218 0