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

article/2025/10/14 11:01:32

目录

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

1.1.计算机硬件组成部分

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

1.3.现代计算机的特点

2.主存储器的基本组成

2.1.MAR和MDR

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

2.3.运算器的基本组成

2.4.控制器的基本组成

2.5.计算机工作过程

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

4.计算机的性能指标

4.1.存储器的性能指标

4.2.CPU的性能指标


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

1.1.计算机硬件组成部分

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

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

存储器:存放程序和数据

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

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

控制器:指挥程序运行

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

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

③将结果放回存储器

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

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

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

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

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

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

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

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

5.存储程序

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

1.3.现代计算机的特点

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

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

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

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

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

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

2.主存储器的基本组成

2.1.MAR和MDR

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

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

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

②控制器发出取指令

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

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

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

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

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

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.运算器的基本组成

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

2.组成部分:

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

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

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

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

2.4.控制器的基本组成

1.组成部分:

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

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

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

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

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

2.5.计算机工作过程

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

①初始情况:

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

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

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

②执行过程

()为寄存器内的内容,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.响应时间:用户发出请求,到系统对其做出反应并得到结果的时间


http://chatgpt.dhexx.cn/article/amWFNNnf.shtml

相关文章

终于把所有的Python库,都整理出来啦!

今天给大家总结整理了1000常用Python库,主要分为以下几个部分👇 另外,除了像上图一样按目录查看,也可以直接搜索关键词!如果你是在手机查看,可以点击右上角的“”,再选择搜索页面内容即可&#…

100个相见恨晚的Python库(建议收藏)

大家好,我是一行 在python程序员成为大神之前,都不可避免的都要做一段时间的调包侠 那就算是调包侠也都会有自己调包秘籍,拿出来能让他人感叹“相见恨晚”的那种 Awesome Python awesome-python.com/ 在Github上有个awesome-python这么个项目…

100个相见恨晚的Python库

大家好,我是一行 在python程序员成为大神之前,都不可避免的都要做一段时间的调包侠 那就算是调包侠也都会有自己调包秘籍,拿出来能让他人感叹“相见恨晚”的那种 Awesome Python awesome-python.com/ 在Github上有个awesome-python这么个项…

终于把所有的Python库,都整理出来啦

花了一点时间收集了 Python 中 1000 的库,包括内置库、第三方库,总体可以分为 14 大类,对于每个库的用途,我都作了下简单的说明,大家可以点赞,收藏起来,有需要的时候,使用 CtrlF 来…

【推荐收藏】1000+ Python第三方库大合集

awesome-python 是 vinta 发起维护的 Python 资源大全,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。本文内容较多,喜欢记得收藏、点赞、关注…

所有的Python库,我都整理在这里了

加班加点整理出来的Python库,希望看到此篇文章的各位小伙伴,都可以学好Python~ 一、数据处理 python-nameparser # 解析人名,分解为单独的成分;pyparsing # 通用解析器生成框架tablib # 表格数据格式,包括&…

加班熬夜一个月,终于把所有Python库整理齐了,祝你早日学成

最近天天熬夜,头发都掉完了,就为了把Python所有的库完全整理一遍,希望对大家有所帮助! 一、数据处理 Chardet # 字符编码探测器,可以自动检测文本、网页、xml的编码;colorama # 主要用来给文本添加各种…

【Python】函数Д

🚩write in front🚩 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5~2…

1000+常用Python库一览

‍ ‍ 来源:法纳斯特 这次给大家总结整理了1000常用Python库,主要分为以下部分???? 文本处理、文件处理、图像处理、游戏和多媒体、大数据和科学计算、人工智能和机器学习、系统与命令行、数据库、网络、web框架、安全、封装、代码调试 文本处理 Cha…

mongoDB——GridFS存储机制

mongoDB的文档以BSON格式存储,支持二进制数据类型,所以,可以把文件的二进制格式的数据直接保存到MongoDB的文档中,但是每个文档的长度是有限制的,而我们一般上传的图片、视频等文件又比较大。针对这种情况,…

MongoDB入门学习(二)GridFS、GridFS整合SpringBoot

文章目录 GridFSGridFS简介GridFS存储原理 GridFS整合SpringBoot新增store()查询与下载find()、findOne()删除delete() Demo案例 GridFS GridFS简介 GridFS是MongoDB的一个用来存储/获取大型数据(图像、音频、视频等类型的文件)的规范。相当于一个存储…

MongoDB之GridFS

【MongoDB是什么?】 MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它…

Python操作mongo--GridFS

业务场景: 通过python查询mongo数据库中所存储的图片 条件: 查询上传日期大于等于2022-03-04的图片并保存到本地 度娘了好多文章,发现除了疯狂的套娃有用的信息很少,于是有了此文章,,理解不了的可以结合截…

Mongodb操作GridFS案例

文章目录 准备环境Navicat中查看GridFS存储桶登录连接查看 准备环境 开启服务 mongod -f /opt/servers/mongodb_demo/mongodb/conf/mongod.conf 关闭防火墙 systemctl stop firewalld.service 查看防火墙的状态 systemctl status firewalld.service 进入mongo shell mongo …

MongoDB中的GridFs是什么

本文来介绍下MongoDB的GridFsTemplate如何使用 文章目录 什么是GridFS为什么要使用GridFSGridFS的两个集合本文小结 什么是GridFS GridFS是一种将大型文件存储在MongoDB的文件规范。所有官方支持的驱动均实现了GridFS规范。GridFS是MongoDB中的一个内置功能,可以用…

GridFS文件存储

GridFS文件存储 使用命令行操作GridFS 提前创建好文件 1.上传文件 现在我们使用 GridFS 的 put 命令来存储 GridFS存储.ppt文件。 调用 MongoDB 安装目录下bin的mongofiles.exe工具。 打开命令提示符,进入到MongoDB的安装目录的bin目录中,找到mongof…

GridFs的初步了解

前言 刚刚接触到了MongoDB的分布式文件存储系统GridFs,以前没了解过,这里记录一下它的简单使用。 1、GridFs介绍 GridFS是一种将大型文件存储在MongoDB的文件规范。所有官方支持的驱动均实现了GridFS规范。 GridFS 用于存储和恢复那些超过16M&#x…

2023 mongodb GridFS整合SpringBoot

接了个,为了节约成本以及提高开发效率,文件存储和数据存储都用的是mongodb,网上找了一大堆gridfs的案例,发现都不好用,嗯,,,自己动手写吧,仅供参考。 核心pom配置 ser…

GridFS文件操作

1. GridFS介绍 GridFS是MongoDB提供的用于持久化存储文件的模块,CMS使用MongoDB存储数据,使用GridFS可以快速集成 开发。 它的工作原理是: 在GridFS存储文件是将文件分块存储,文件会按照256KB的大小分割成多个块进行存储&#xf…