【计算机组成原理 - 第一章】计算机系统概论(完结)

news/2024/5/7 8:29:58/文章来源:https://blog.csdn.net/weixin_61639349/article/details/129238213

本章参考王道考研相关课程:

【2021版】1.2.1_计算机硬件的基本组成_哔哩哔哩_bilibili

【2021版】1.2.2_认识各个硬件部件_哔哩哔哩_bilibili

【2021版】1.2.3_计算机系统的层次结构_哔哩哔哩_bilibili

【2021版】1.3_计算机的性能指标_哔哩哔哩_bilibili

目录

一、计算机软硬件概念

二、计算机系统层次结构

1、三个级别的语言

2、翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?

三、计算机的基本组成

1、冯诺依曼计算机特点

2、计算机硬件框图

(1)主存储器(cpu可以直接访问)、辅助存储

(2)运算器

(3)控制器

四、计算机工作过程

1、取数指令 ​

2、乘法指令

 3、加法指令

4、存数指令

5、计算机工作过程总结

1、取指阶段(必经阶段)

2、分析阶段(必经阶段)

3、执行阶段(根据不同指令步骤不同)

五、计算机性能指标 

1、机器字长

2、存储器的性能指标

3、CPU的性能指标

4、系统整体性能指标

5、主频高的CPU一定比主频低的CPU快吗?为什么?


一、计算机软硬件概念

279dc12d04f24bd1a21efb79884ff0c2.jpg

  • 系统软件:标准程序库、语言处理程序、操作系统、服务程序、数据库管理系统、网络软件等
  • 应用软件:科学计算类程序,工程设计类程序,数据统计与处理程序

二、计算机系统层次结构

8bc55da0348547cb851e1e0055568b40.jpg

1、三个级别的语言

  • 机器语言:二进制代码,计算机唯一可以直接识别和执行的语言
  • 汇编语言:用英文单词或其缩写代替二进制指令,必须经过一个称为汇编程序的系统软件翻译,将其转换为机器语言,才能在计算机的硬件系统上执行
  • 高级语言:为方便程序员处理问题,经过编译程序编译成汇编语言,然后通过汇编程序转换成机器语言,或直接由高级语言程序翻译成机器语言

  • 高级语言 ——编译——> 汇编语言 ——汇编——> 机器语言
  • 边翻译边执行叫做解析

2、翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?

翻译程序:包括编译程序解释程序

  • 编译程序:将高级语言一次全部翻译成目标程序
  • 解释程序:翻译一句执行一句,并且不会生成目标程序

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

三、计算机的基本组成

1、冯诺依曼计算机特点

  • 计算机由运算器存储器控制器输入设备输出设备组成
  • 指令和数据以同等地位存放于存储器内,并按地址寻访
  • 数据和指令均用二进制数表示
  • 指令由操作码地址码组成
  • 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成
  • 早期冯诺依曼机最根本特征是【程序存储】,即按照地址访问并顺序执行指令
  • 计算机五大功能:数据传送功能、数据存储功能、数据处理功能、操作控制功能、操作判断功能

2、计算机硬件框图

8a605fc6cf654ed59599217a457e0011.jpg

(1)主存储器(cpu可以直接访问)、辅助存储

存储体含有许多存储单元,每个存储单元包含若干个存储元,每个存储元可以0或1

  • 存储字:一个存储单元存储一串二进制代码
  • 存储字长:这串二进制代码的位数

为了实现按地址存取,主存配置两个寄存器:

  • 地址寄存器MAR:指明要读/写哪个存储单元。位数=存储单元的个数
  • 数据寄存器MDR:暂存要读/写的数据。位数=存储字长

e6a361e30993479e9e1bd68aed8a94ae.jpg

(2)运算器

  • 运算器最少包括3个寄存器和一个算数逻辑单元ALU
  • 寄存器:ACC累加器、MQ乘商寄存器、X操作数寄存器

 

(3)控制器

  • 完成一条指令操作:取指阶段PC、分析阶段IR、执行阶段CU
  • 控制器由PC程序计数器、IR指令寄存器、CU控制单元组成

  • (Program Counter)PC程序计数器:存放下一条指令的地址,将指令传给MAR,有自动+1功能
  • (Instruction Register)IR指令寄存器:存放当前执行的指令,拆分出操作码传给CU,拆分出地址码传给MAR,MAR在主存储体中取出数据传给MDR
  • (Control Unit)CU控制单元:分析指令,给出控制信号

 

四、计算机工作过程

【2021版】1.2.2_认识各个硬件部件_哔哩哔哩_bilibili(16min开始)

高级语言的一段代码

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

1、取数指令 

2、乘法指令

 3、加法指令

4、存数指令

5、计算机工作过程总结

 CPU区分指令和数据的依据:指令周期的不同阶段

1、取指阶段(必经阶段)

  • PC存放下一条指令的地址 ——> MAR(存放欲访问的存储单元地址)
  • MAR在存储体内找到存储指令的地址 ——> MDR(存放从主存储体取来的数据)
  • MDR将指令 ——> IR(存放当前执行的指令)
  • 取数阶段结束 PC++

2、分析阶段(必经阶段)

  • IR拆分出操作码 ——> CU   
  • 分析阶段结束

3、执行阶段(根据不同指令步骤不同)

  • IR拆分出地址码 ——> MAR
  • MAR在存储体内找到存储的数据的地址 ——> MDR
  • MDR ——> ACC
  • 执行阶段结束

五、计算机性能指标 

1、机器字长

CPU一次能处理数据的位数,一般等于内部寄存器的大小,决定了计算机的运算精度

2、存储器的性能指标

  • MAR:位数反映存储单元的数量
  • MDR:位数反映存储字长(存储字长=存储单元二进制码的位数)

总容量 = 存储单元个数×存储字长 bit(b)

            = 存储单元个数×存储字长÷8 byte(B)

1 byte = 8 bit

eg:MAR为32位,MDR为8位

总容量 = 2^{32}\times 8 \ bit=4GB

描述存储容量、文件大小时:

K—2^{10}        M—2^{20}        G—2^{30}        T—2^{40}

3、CPU的性能指标

1、时钟周期:CPU中最小时间单位(单位:微秒、纳秒)

2、CPU主频(时钟频率):CPU内数字脉冲信号振荡频率,主频越高的CPU不一定比主频低的CPU快

CPU主频=1/时钟周期 (单位:Hz)

3、CPI:执行一条指令所需的时钟周期数,不同指令CPI不同,相同指令CPI也可能变化

4、CPU执行时间(运行一个程序花费的时间) =(指令条数×CPI)÷主频

eg:某CPU主频为1000Hz,某程序包含100条指令,平均来看指令的CPI=3,问该程序走该CPU上执行需要多久?

100×3÷1000=0.3s

5、IPS:每秒执行多少条指令 IPS=主频÷平均CPI

KIPS、MIPS——比如:2MIPS,即每秒能执行 2\times 10^{6} 条指令

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

KFLOPS、MFLOPS、GFLOPS、TFLOPS

描述频率、速度时: 

K=10^{3}      M=10^{6}     G=10^{9}      T=10^{12}

4、系统整体性能指标

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

2、吞吐量:指系统在单位时间内处理请求的数量,主要取决于主存的存储周期

3、响应时间

4、基准程序(动态测试):像鲁大师这种跑分软件,一般情况下,基准测试程序能够反映机器性能的好坏。但由于基准程序中的语句存在频度的差异,因此运行结果并不能完全说明问题

5、主频高的CPU一定比主频低的CPU快吗?为什么?

衡量CPU运算速度的指标有很多,不能以单独的某个指标来判断CPU的好坏

CPU的主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(架构、缓存、指令集、CPU的位数、 Cache大小等)。由于主频并不直接代表运算速度,因此在一定情况下很可能会出现主频较高的CPU实际运算速度较低的现象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_75842.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【记录问题】RuntimeError:working outside of application context. Flask使用SQLAlchemy数据库

前提:Flask使用SQLAlchemy数据库 本质:依赖包版本不匹配 问题1:报错RuntimeError:working outside of application context. 运行程序报错,如下错误: 原因:flask-sqlalchemy 版本过高导致&am…

手牵手教Docker部署Springboot+vue ,全过程十分详细,轻松完成项目部署(简单,高效,通用)

手把手教Docker部署Springbootvue ,详细全过程,轻松完成项目部署(简单,高效) 上线前准备 腾讯云的服务器,服务器安装好docker 和docker-compose 最好事先了解技术 nginxdocker-compose 整体编排 后端部…

CCNP350-401学习笔记(易错题合集)

CCNP350-401学习笔记(1-50题)_殊彦_sy的博客-CSDN博客CCNP350-401学习笔记(2023.2.17)https://blog.csdn.net/shuyan1115/article/details/129088574?spm1001.2014.3001.5502CCNP350-401学习笔记(51-100题&#xff09…

SAP 详解ST02

问:在st02中看到,Program和Export/Import的Swap出现红的了,这个是什么原因啊,是不是对系统的性能有影响啊,是否应该调整一些参数啊。要怎么调整呢? 复1:双击红色的部分就可以看到相应的参数修改…

Linux字符设备驱动模型之设备号

从上文中可知,在Linux用户空间中,如若需要操作硬件设备,均通过/dev目录下的设备文件节点进行操作,基本上每一种设备都会存在一个或者多个的设备节点。 并且在Linux内核中,其表示字符设备的结构成员也提供了相应的设备号…

在数字优先的世界中打击知识产权盗窃

在当今数据驱动的世界中,全球许多组织所面临的期望和需求正在达到前所未有的水平。 为了迎接挑战,数据驱动的方法是必要的,需要有效的数字化转型来提高运营效率、简化流程并从遗留技术中获得更多收益。 但是,虽然数字优先方法可…

css3的重点内容

css3的重点内容 浮动 父级边框塌陷问题 浮动的清除 clear:left; //清除左侧浮动 clear:right; //清除右侧浮动 clear:both; //清除两侧浮动解决方案 增加父级元素的高度增加一个空的div,之后清除浮动通过overflow来进行相关元素的修剪给父类添加相应的伪类元素…

植物大战 二叉搜索树——C++

这里是目录标题二叉排序树的概念模拟二叉搜索树定义节点类insert非递归Finderase(重点)析构函数拷贝构造(深拷贝)赋值构造递归FindRInsertR二叉搜索树的应用k模型KV模型二叉排序树的概念 单纯的二叉树存储数据没有太大的作用。 搜索二叉树作用很大。 搜索二叉树的一般都是用…

JavaEE进阶第六课:SpringBoot配置文件

上篇文章介绍了SpringBoot的创建和使用,这篇文章我们将会介绍SpringBoot配置文件 目录1.配置文件的作用2.配置文件的格式2.1 .properties语法2.1.1.properties的缺点2.2 .yml语法2.2.1优点分析2.2.2配置与读取对象2.2.3配置与读取集合2.2.4补充说明3.设置不同环境的…

时间API在更新,传奇已经谢幕,但技术永远不死

(Bill Joy(左一),Vinod Khosla(左二),Andy Bechtolsheim(右二),Scott McNealy(右一) ) CSDN 博文征集活动(和日期相关的代码和bug):点击这里 各位 “big guys”,这篇博文…

Java | IO 模式之 JavaBIO 应用

文章目录IO模型Java BIOJava NIOJava AIO(NIO.2)BIO、NIO、AIO的使用场景BIO1 BIO 基本介绍2 BIO 的工作机制3 BIO 传统通信实现3.1 业务需求3.2 实现思路3.3 代码实现4 BIO 模式下的多发和多收消息4.1 业务需求4.2 实现思路4.3 代码实现5 BIO 模式下接收…

单目标应用:蜣螂优化算法DBO优化RBF神经网络实现数据预测(提供MATLAB代码)

一、RBF神经网络 1988年,Broomhead和Lowc根据生物神经元具有局部响应这一特点,将RBF引入神经网络设计中,产生了RBF(Radical Basis Function)。1989年,Jackson论证了RBF神经网络对非线性连续函数的一致逼近性能。 RBF的基本思想是…

Mybatis二级缓存

目录 二级缓存的定义 二级缓存扩展性需求 二级缓存的结构 SynchronizedCache线程同步缓存区 LoggingCache统计命中率以及打印日志 ScheduledCache过期清理缓存区 LruCache(最近最少使用)防溢出缓存区 FifoCache(先进先出)防溢出缓存区 二级缓存的使用(命中条件) 二级…

使用netlify实现自动化部署前端项目(无服务器版本)

介绍 本文以 github仓库进行介绍关联netlify的无服务前端自动化部署。用途:个人网站设计、小游戏等当然这只是让你入门~具体细节等待你自己去探索 实现 打开官方网站 如果没有注册过的账户,你需要使用 github 去进行登录。注册完成后会自动给你提示填…

866363-70-4,N3-C5-NHS ester,叠氮-C5-NHS 主要物理性质分享

●外观以及性质:Azido-Aca-NHS淡黄色或无色油状,叠氮化物可以与炔烃、DBCO和BCN进行铜催化的点击化学反应。NHS酯可以与胺基反应,形成稳定的酰胺键。●中文名:叠氮-C5-NHS ester,6-叠氮己酸活性酯●英文名:…

阶乘后的零[挖掘规律+动态规划]

挖掘规律 动态规划前言一、阶乘后的零二、挖掘规律1、动态规划2、直接寻找5的个数总结参考资料前言 想要计算阶乘后的0有多少,可以直接算出阶乘值,再不断对10取余。但是如果n比较大,这种方法是根本行不通的,只能挖掘规律。 一、…

数据挖掘1/13

文章目录教材,考核,软件现在数据是ZB时代数据挖掘公司3类数据挖掘数据挖掘技术(5个)分类:找因变量y无监督聚类数据分析 数据挖掘教材,考核,软件 教材 考核 软件:jupyter 和spss mod…

十四、MyBatis的逆向工程

逆向工程: 根据数据库表逆向生成Java的pojo类,SqlMapper.xml文件,以及Mapper接口类等。 借助别人写好的逆向工程插件。 使用这个插件的话,需要给这个插件配置哪些信息? pojo类名、包名以及生成位置。SqlMapper.xml文…

EPICS motor模块

一、概要 1) 在EPICS motor模块中的是什么并且它为了什么? 2) 支持的电机控制器和模型 3)电机记录特性 4)配置示例 5)反馈 6) 重试 7) 回程差矫正 8)发行 二、术…

webrtc拥塞控制算法对比-GCC vs BBR vs PCC

1.前言现有集成在webrtc中的拥塞控制算法有三种, 分别是: 谷歌自研发的gcc, 谷歌自研发的BBR算法, 斯坦福大学提出的基于机器学习凸优化的PCC算法. 本文将探讨一下三个算法的区别和优缺点。2.背景迈聆会议从17年到现在, 一直使用的是基于谷歌的gcc算法自研的Omcc算法(optimizat…