计算机硬件的基本组成

一、冯诺依曼结构

存储程序:
“存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
在这里插入图片描述
冯诺依曼计算机特点:
1、计算机由5大部件组成
2、指令和数据以同等地位存于存储器,可按地址寻访
3、指令和数据用二进制表示
4、指令由操作码和地址码组成
5、存储程序
6、以运算器为中心(输入/输出设备与存储器之间的数据传送通过运算器完成)

二、现代计算机结构

在这里插入图片描述
在这里插入图片描述

2.1、主存储器

在这里插入图片描述
在这里插入图片描述
存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数
存储元:即存储二进制的电子元件,每个存储元可存1bit

MAR(memory address register):位数反应存储单元的个数
MDR(memery data register):位数=存储字长

例如:MAR=4位->共有24个存储单元
MDR=16位->每个存储单元可放16bit 1个字=16bit
字的决定是由计算机硬件决定的

1个字节(byte)=8bit

2.2、运算器的基本组成

在这里插入图片描述
运算器:用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)

ACC(Accumulator):累加器,用于存放操作数,或运算结果
MQ(Multiple-Quotient Register):乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
X:通用的操作数寄存器,用于存放操作数
ALU:算术逻辑单元,通过内部复杂的电路实现算数运算逻辑运算

2.3、控制器的基本组成

在这里插入图片描述

CU(control unit):控制单元,分析指令,给出控制信号
IR(instruction register):指令寄存器,存放当前执行的指令
PC(program counter):程序计数器,存放下一条指令地址,有自动加1功能

在这里插入图片描述

2.4、跑一个code

高级语言:

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

机器语言:
在这里插入图片描述

第一条指令

在这里插入图片描述
初:(PC)=0,指向第一条指令的存储地址
#1:(PC)→MAR,导致(MAR)=0
#3:M(MAR)→MDR,导致(MDR)=0000010000000101
#4:(MDR)→IR,导致(IR)=0000010000000101
#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

取指令(#1~ #4)分析指令(#5)执行取数指令(#6~#9)

第二条指令

在这里插入图片描述

上一条指令取指后PC自动+1,(PC)=1;执行后,(ACC)=2
#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)=0000000110=6
#8:M(MAR)->MDR,导致(MDR)=0000000000000011=3
#9:(MDR)->MQ,导致(MQ)=0000000000000011=3
#10:(ACC)->X,导致(X)=2
#11:(MQ)*X->ACC,导致(ACC)=6,由ALU实现乘法运算,如果乘积太大,需要MQ辅助存储

取指令(#1~#4)分析指令(#5)执行乘法指令(#6~#11)

同样的方式分析后面的指令

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

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

相关文章

Linux进程间通信之匿名管道

文章目录 为什么要有进程间通信pipe函数共享管道原理管道特点管道的应用场景(进程池)ProcessPool.ccTask.hpp 为什么要有进程间通信 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通…

FlinkCDC数据实时同步Mysql到ES

考大家一个问题,如果想要把数据库的数据同步到别的地方,比如es,mongodb,大家会采用哪些方案呢? ::: 定时扫描同步? 实时日志同步? 定时同步是一个很好的方案,比较简单,但是如果对实时要求比较高的话,定…

JAVAEE---计算机是如何组成的

计算机软件硬件 硬件是冯诺依曼体系结构,这个结构的精髓在于将存储和执行分开。 这里存储器内存外存(硬盘,u盘,光碟等) cpu是计算机的大脑,是计算机最核心的地方。 cpu中央处理:进行算术运算…

ESP32 Arduino实战协议篇-搭建独立的 Web 服务器

在此项目中,您将创建一个带有 ESP32 的独立 Web 服务器,该服务器使用 Arduino IDE 编程环境控制输出(两个 LED)。Web 服务器是移动响应的,可以使用本地网络上的任何浏览器设备进行访问。我们将向您展示如何创建 Web 服务器以及代码如何逐步工作。 项目概况 在直接进入项目…

03. Python中的语句

1、前言 在《Python基础数据类型》一文中,我们了解了Python中的基础数据类型,今天我们继续了解下Python中的语句和函数。 2、语句 在Python中常用的语句可以大致分为两类:条件语句、循环语句。 2.1、条件语句 条件语句就是我们编码时常见…

Redis篇---第八篇

系列文章目录 文章目录 系列文章目录前言一、说说 Redis 哈希槽的概念?二、Redis 常见性能问题和解决方案有哪些?三、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?前言 前些天发现了一个巨牛的人工智能学习网站…

基于世界杯算法优化概率神经网络PNN的分类预测 - 附代码

基于世界杯算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于世界杯算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于世界杯优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络…

Linux基础全整理 从入门到放弃,一些想说的话

阅读目录 断更后一些想说的话用户useraddpasswdpasswd文件详解 chageusermoduserdelshadow 文件格式切换用户 用户组groupaddgroup文件格式groupmodgroupdel登陆远程机器 磁盘RAIDraid0(安装系统)raid1(存放数据)raid 5&#xff0…

Prompt 编程的优化技巧

大家好,我是木川 一、为什么要优化 一)上下文限制 目前 GPT-3.5 以及 GPT-4最大支持 16K 上下文,比如你输入超过 16k 的长文本,ChatGPT 会提示文本过大,为了避免 GPT 无法回复,需要限制 上下文在16k 以内 上…

【数据结构算法(一)】递归篇(常见实例讲解)

🌈键盘敲烂,年薪30万🌈 ⭐本篇讲解实例: 斐波那契、兔子问题、猴子吃桃问题、跳台阶问题、汉诺塔、杨辉三角 ⭐用到的递归思想: 无记忆递归、记忆递归(重点掌握) 目录 一、斐波那契: ①无记忆多路递归&am…

重生奇迹mu转职任务详解

重生奇迹mu神骑士怎么转 神骑士是一种转职类型,需要你的角色达到一定等级以及完成相应任务方可转职。以下是神骑士转职的具体步骤: 1.等级要求:首先,你的角色需要达到150级才能进行神骑士转职任务。 2.神骑士转职任务&#xff…

十七、Linux的组管理

1、Linux组基本介绍 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件所有者、所在组、其它组的概念 1.所有者 2.所在组 3.其他组 4.改变用户所在的组 2、文件/目录 所有者 一般为文件的创建者,谁创建了该文件,就自…

卷积、卷积图像操作和卷积神经网络

好多内容直接看书确实很难坚持,就比如这个卷积,书上的一大堆公式和图表直接把人劝退,我觉得一般的学习流程应该是自顶向下,先整体后局部,先把握大概再推敲细节的,上来就事无巨细地展示对初学者来说很痛苦。…

【机器学习12】集成学习

1 集成学习分类 1.1 Boosting 训练基分类器时采用串行的方式, 各个基分类器之间有依赖。每一层在训练的时候, 对前一层基分类器分错的样本, 给予更高的权重。 测试时, 根据各层分类器的结果的加权得到最终结果。 1.2 Bagging …

Linux | 信号

目录 前言 一、信号基础概念 1、生活中的信号 2、Linux中的信号 二、信号的产生 1、接口介绍 2、信号产生的方式 (1)终端按键的方式产生信号 (2)系统调用接口 a、kill b、raise c、abort (3&#xff09…

【LeetCode刷题-滑动窗口】--992.K个不同整数的子数组

992.K个不同整数的子数组 思路: class Solution {public int subarraysWithKDistinct(int[] nums, int k) {return atMostKDistinct(nums,k) - atMostKDistinct(nums,k-1);}//最多包含K个不同整数的子区间个数private int atMostKDistinct(int[] a,int k){int len …

【MATLAB源码-第83期】基于matlab的MIMO中V-BALST结构ZF和MMSE检测算法性能误码率对比。

操作环境: MATLAB 2022a 1、算法描述 在多输入多输出(MIMO)通信系统中,V-BLAST(垂直波束形成层间空间时间编码技术)是一种流行的技术,用于提高无线通信的数据传输速率和容量。它通过在不同的…

PS 颜色取样器标尺工具 基本使用讲解

上文 PS 吸管工具基本使用方法 我们讲完了 吸管工具 那么 我们继续 打开ps先 接着 我们选择这个 颜色取样器工具 选择之后 我们鼠标在图像上随便点一下 就会出现一个标记 然后 我们可以点多几个地方 边上的信息面板就会输出 点1 和 点2 甚至 多个 点3 点4 的 颜色 RGB代码 …

Python学习(一)基础语法

文章目录 1. 入门1.1 解释器的作用1.2 下载1.3 基础语法输入输出语法与引号注释:变量: 数据类型与四则运算数据类型四则运算数据类型的查看type()数据类型的转换int()、int()、float() 流程控制格式化输出循环与遍历逻辑运算符list遍历字典dict遍历 跳出…
最新文章