计算机硬件的基本组成

一、冯诺依曼结构

存储程序:
“存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
在这里插入图片描述
冯诺依曼计算机特点:
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.mzph.cn/news/148168.shtml

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

相关文章

io多路复用:select、poll和epoll

1、为什么使用多路复用: 1.1单线程BIO监听socket 多路复用一般用于网络io当中,提到网络io我们肯定能想到socket。如果我们想要一个线程单纯的用向下文的方式监听很多个socket看他是否有事件发生,那这样是不可行。 但上一个socket1没有可读事…

Codewhisperer 使用评价

最近亚⻢逊推出了一款基于机器学习的 AI 编程助手 Amazon CodeWhisperer,可以实时提供代码建议。在编写代码时,它会自动根据现有的代码和注释给出建议。Amazon CodeWhisperer 与GitHub Copilot类似,主要的功能有: 代码补全注释和文档补全代码…

Banana Pi BPI-W3之RK3588安装Qt+opencv+采集摄像头画面.

场景:在Banana Pi BPI-W3 RK3588上做qt开发工作RK3588安装Qtopencv采集摄像头画面 2. 环境介绍 硬件环境: Banana Pi BPI-W3RK3588开发板、MIPI-CSI摄像头( ArmSoM官方配件 )软件版本: OS:ArmSoM-W3 Debian11 QT:QT5…

MySQL/Oracle用逗号分割的id怎么实现in (逗号分割的id字符串)。find_in_set(`id`, ‘1,2,3‘) 函数,

1.MySQL 1.1.正确写法 select * from student where find_in_set(s_id, 1,2,3); 1.2.错误示范 select * from student where find_in_set(s_id, 1,2 ,3); -- 注意,中间不能有空格。1、3 select * from student where find_in_set(s_id, 1,2, 3); -- 注意…

在Windows系统中查找GitBash安装位置

使用注册表可以轻松获取: reg query HKEY_LOCAL_MACHINE\SOFTWARE\GitForWindows /v InstallPath | findStr InstallPath此时输出一串字符, 通过字符串切割即可获取:

「Verilog学习笔记」使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 当EI10时、U1禁止编码,其输出端Y为000,GS1、EO1均为0。同时EO1使EI00,U0也禁止编码,其输出端及GS0、EO0均为0。由电路…

软件测试/人工智能丨深入人工智能软件测试:PyTorch引领新时代

在人工智能的浪潮中,软件测试的角色变得愈发关键。本文将介绍在人工智能软件测试中的一些关键技术,以及如何借助PyTorch深度学习框架来推动测试的创新与升级。 PyTorch:深度学习的引擎 PyTorch作为一种开源的深度学习框架,为软件…

LeetCode【36】有效的数独

题目: 思路: https://blog.51cto.com/u_15072778/3788083 代码: public boolean isValidSudoku(char[][] board) {// 二维数组第一个标识 0-9行,第二个表示 0-9数字,存的内容boolean 表示第0-9行,0-9这些…

CV计算机视觉每日开源代码Paper with code速览-2023.11.15

点击CV计算机视觉,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构:CNN】PadChannel: Improving CNN Performance through Explicit Padding Encoding 论文地址:https:/…

【教3妹学编程-java基础6】详解父子类变量、代码块、构造函数执行顺序

-----------------第二天------------------------ 本文先论述父子类变量、代码块、构造函数执行顺序的结论, 然后通过举例论证,接着再扩展,彻底搞懂静态代码块、动态代码块、构造函数、父子类、类加载机制等知识体系。 温故而知新&#xff…

用户增长模型:3A3R策略模型

一、概述 A - A - A - R - R - R 增长模型,即3A3R策略模型,由海盗模型演变而来,是目前使用最多、适用范围最广的增长策略模型。原始的海盗模型由 Acquisition (获客)、 Activation (活跃)、 Re…

华夏ERP打包手册

Maven安装及环境配置 1.下载 浏览器搜索maven点击apache Maven 2.选择安装目录,注意不能有中文 3.环境变量配置 点击计算机右键属性>高级系统设置>环境变量 新建系统变量 MAVEN_HOME 变量值是安装目录 进入path点击新建点击编辑,写入% MAVEN_H…

深度学习OCR中文识别 - opencv python 计算机竞赛

文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习OCR中文识别系统 ** 该项目较为新颖,适合作为竞赛课题方向,…

Vue3--Vue Router详解--学习笔记

1. 认识vue-router Angular的ngRouter React的ReactRouter Vue的vue-router Vue Router 是Vue.js的官方路由: 它与Vue.js核心深度集成,让Vue.js构建单页应用(SPA)变得非常容易;目前Vue路由最新的版本是4.x版本。 v…

广州华锐互动:办税服务厅税务登记VR仿真体验让税务办理更加灵活高效

在数字化世界的今天,我们正在见证各种业务过程的转型,而税务办理也不例外。最近,一种全新的交互方式正在改变我们处理税务的方式:虚拟现实(VR)。 首先,用户需要戴上虚拟现实头显,然后…

VS Code如何使用服务器的Python开发环境

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

Ubuntu中apt-get update显示域名解析失败

第一步 检查主机->虚拟机能否ping成功 ping 红色框中的IPv4地址 能通,表示虚拟机ip配置成功;否则,需要先配置虚拟机ip 第二步 检查是否能ping成功百度网址 ping www.baidu.com 若不成功,可能原因 虚拟机没联网,打开火狐浏览器…

[云原生2.] Kurbernetes资源管理 ---- (陈述式资源管理方式)

文章目录 1. K8s管理资源的方法类别1.1 陈述式资源管理方式1.2 声明式资源管理方式1.3 GUI式资源管理方法 2. 陈述式资源管理方式2.1 命令行工具 ---- Kubelet2.1.1 简介2.1.2 特性2.1.3 kubelet拓展命令2.1.4 kubectl基本语法2.1.5 Kubectl工具的自动补全 2.2 k8s Service 的类…

贝锐蒲公英云AP,企业WiFi功能如何使用?

1. 功能介绍 基于WPA2-EAP安全认证技术,为企业提供了一套易用安全的企业无线网络,实现企业员工通过蒲公英客户端一键连接企业无线WiFi。自动分配一人一帐一密,无需配置证书或手动输入密码,减少沟通成本,方便快捷,提高…

Typora for Mac:打造全新文本编辑体验

Typora for Mac是一款与众不同的文本编辑器,它不仅拥有直观易用的界面,还融合了Markdown语法和富文本编辑的功能,为用户带来了前所未有的写作和编辑体验。 一、简洁明了的界面设计 Typora for Mac的界面简洁明了,让用户可以专注…