【计算机组成原理】计算机硬件的基础组成、认识各个硬件部件
计算机组成原理(一)
计算机内部是通过电信号传递数据
电信号:分为高电平和低电平,分别代表1/0
-
数字、文字、图像如何用二进制表示?
-
CPU如何对二进制数进行加减乘除?
-
如何存储这些二进制数的?
-
如何从内存中取出想要的数据?
-
CPU如何识别和执行我们写的程序?
这些问题我们在下面会得到解释,请往下看
计算机系统的概述
计算机系统=硬件+软件
软件分为系统软件和应用软件
系统软件:用来管理整个计算机系统。eg:操作系统
应用软件:按任务需求编制成的各种程序.eg:抖音,王者荣耀
硬件的发展:
第一代计算机:
逻辑元件是电子管,因此被称为电子管时代
体积超大、耗电量超大
第二代计算机:
逻辑元件:晶体管,被称为晶体管时代
体积和功耗降低了,出现了面对过程的编程语言
并且fortran的操作系统
第三代计算机:
逻辑元件:中小规模集成电路,因此被称为中小规模集成电路时代
第四代:
超大规模集成电路时代
机械字长:
计算机一次整数运算所能处理的二进制位数
计算机硬件的基础组成
存储系统:
将指令以二进制代码的形式事先输入计算机的主存储器。
然后将其在存储器中的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直到程序执行结束。
冯诺依曼机结构:
黑色的线是数据线
蓝色的线是控制器接受和指挥各个部件的控制线or反馈线
CPU=运算器+控制器
现代计算机以存储器为中心
存储器分为主存储器和辅助存储器
冯.诺依曼计算机的特点:
- 1.计算机由五大部件组成,
- 2.指令和数据以同等地位存于存储器,可按地址寻访
- 3.指令和数据用二进制表示
- 4.指令由操作码和地址码组成
- 5.存储程序
- 6.以运算器为中心
CPU+主存储器=主机
辅助存储器、输入输出设备为I/O设备
而I/O设备+主机=硬件
认识各个硬件部件
主存储器:
主存储器:存储体+MAR(地址寄存器)+MDR(数据寄存器)
数据在存储体内按地址存储
存储体分为一个一个存储单元
存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数,,一般是8个bit的整数倍
数据在存储体内按地址存储
MAR:反映存储单元的个数
MDR:存储字长
MAR=4位(4个比特位),对应2的四次方个存储单元(因为四个比特位,对应4的全排列种可能)
MDR=16位,一个字(存储字长)=16bit
运算器:
运算器:用来实现算术运算、逻辑运算
ACC:累加器,用于存放操作数or运算结果
MQ:乘商寄存器,在乘、除运算时,用来存放操作数or运算结果
X:通用的操作数寄存器,用于存放操作数
ALU:算术逻辑单元,通过内部复杂的登录实现算术运算、逻辑运算
ACC、MQ都可以用来存放操作数or运算结果
但X只能用来存放操作数
控制器:
CU:控制单元,分析指令,给出控制信号
IR:指令寄存器,存放当前的指令
PC:程序计数器,存放下一条指令的地址,有自动加1功能
完成一条指令的顺序:
PC——IR——CU
计算机的工作过程:
- 下列这个代码在计算机的工作过程是怎么样的呢?
#include<iostream>
int main()
{int a = 2, b = 3, c = 1, y = 0;y = a * b + c;return 0;
}
代码(高级语言)先编译装入主存储器
MAR带个(),寄存器打个括号,指的是寄存器里面的内容
M代表主存储器
第一过程:
PC先指向主存储器地址为0的地址,PC通过控制线路传给MAR,MAR指向主存地址为0的地址
存储体将MAR的地址取来,再将主存地址为0的内容反馈给MDR。MDR=000001 0000000101
将MDR的内容(操作码+地址码)传给IR(指令寄存器)
IR将其中的操作码000001传给CU(控制单元,给出控制信号),CU分析后,得知是"“取数”"指令
IR的地址码0000000101传给MAR,导致MAR=5
主存储器中的MAR地址的数据传给MDR,MDR=0000000000000010=2
MDR将数据传给ACC,并存放在ACC中,导致ACC=0000000000000010=2
第二过程:
PC+1,PC=1后,ACC此时为2
PC通过数据线传给MAR,MAR=1
存储体通过MAR传来的地址传其数据给MDR=000100 000000110
MDR传给IR,IR=000100 000000110
IR将其操作码000100传给CU,CU分析后得知这是乘法指令
IR的地址码000000110传给MAR,MAR=6
MAR将其地址传给存储体,存储体传给MDR,MDR=0000000000000011=3
MDR将其数据传给MQ,MQ=0000000000000011=3
ACC=2,将ACC的数值传给X,X=2
MQ*X的数值传给ACC寄存起来,再通过ALU实现乘法运算,导致ACC=6(如果乘积太大,就需要MQ辅助存储)
PC+1=2
PC+1=3
PC=4
计算机系统的层次结构
相关文章:

【计算机组成原理】计算机硬件的基础组成、认识各个硬件部件
计算机组成原理(一) 计算机内部是通过电信号传递数据 电信号:分为高电平和低电平,分别代表1/0 数字、文字、图像如何用二进制表示? CPU如何对二进制数进行加减乘除? 如何存储这些二进制数的? 如何从内存中取出想要的数…...

使用ChIPSeeker进行ChIP-seq, ATAC-seq,cuttag等富集峰的基因组注释
二代测序产生的数据类型 常规的下一代高通量测序(next generation sequencing, NGS)实验通常产生大量短片段(reads),通常我们需要将这些reads比对到参考基因组/转录组上,即将它们置于生物学上有意义的基因背景下,才能…...

第九届蓝桥杯省赛——7缩位求和
题目:在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。比如:248 * 15 3720把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得2 4 8 14 > 1 4 5;1 5 65…...

【c++】STL常用容器5—list容器
文章目录list基本概念list构造函数list赋值和交换list大小操作list插入和删除list数据存取list反转和排序list基本概念 功能:将数据进行链式存储。 链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链…...

【牛客刷题专栏】0x0D:JZ5 替换空格(C语言编程题)
前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录前言问题…...

聚观早报 | 苹果2024年放弃高通;腾讯回应进军类 ChatGPT
今日要闻:苹果2024年放弃高通;腾讯回应进军类 ChatGPT;小米发布无线AR眼镜探索版;50%的美国企业已在使用ChatGPT;Snap推出ChatGPT驱动的聊天机器人 苹果2024年放弃高通 高通公司 CEO 兼总裁克里斯蒂亚诺・安蒙…...

Elasticsearch:如何正确处理 Elasticsearch 摄取管道故障
在我之前的文章 “Elastic:开发者上手指南” 中的 “Ingest pipeline” 章节中个,我有很多文章是关于 ingest pipeline 的。在今天的文章中,我将重点介绍如何处理在摄取管道中的错误。在我之前的文章 “Elasticsearch:如何处理 in…...

指标体系—北极星指标体系
北极星指标体系 每个产品都有很多指标,每个指标都反映了对应业务的经营情况。但是在实际业务经营中,却要求我们在不同的产品阶段寻找到合适的指标,让这个指标可以代表当前产品阶段的方向和目标,让这个指标不仅对业务经营团队,而且对产品的用户、对产品的价值都能有很好的…...

【操作系统】内存管理
虚拟内存 虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。…...

家庭消耗品跟踪管理软件HomeLists
什么是 HomeLists ? HomeLists 是一款自托管耗材统计软件,能通过提醒等帮助您跟踪家庭消耗品。 安装 在群晖上以 Docker 方式安装。 在注册表中搜索 homelists ,选择第一个 aceberg/homelists,版本选择 latest。 本文写作时&…...
django模型简要(1)
1. AbstractUser(内置用户模型类)的使用 ### 需要在settings.py中添加如下: AUTH_USER_MODEL app.MyUser 说明:这是为了覆盖django默认的User model;app即模型所属app,MyUser即AbstractUser实现类。 2.on_delete选项 从django3.…...

【shell 编程大全】sed详解
sed详解1. 概述 今天单独拉出一章来讲述下sed命令。因为sed命令确实内容太多,不过也是比较灵活的,好了不废话了。我们开始吧 1.2 原理解析 shell脚本虽然功能很多,但是它最常用的功能还是处理文本文件,尤其是在正常的业务操作流程…...

关于sudo配置
前言这里做一个小补充,主要讲一下关于利用sudo对指令提权以及普通用户无法使用sudo指令的问题。在前面的文章【Linux】一文掌握Linux权限中,我们讲到了关于权限的一些问题。我们知道root身份下,一切畅通无阻,而权限只是用来限制我…...

EEGLAB处理运动想象脑电数据
最近在看论文时,经常看到作者处理数据的过程,之前都是一代而过,知道怎么处理就可以了,一直没有实践,最近需要一些特殊的数据,需要自己处理出来,这里尝试着自己用MATLAB处理数据,记录…...
span标签的使用场景
目录 前言 一、span标签是什么? 二、span常用 1.可以嵌套a标签。 2.直接使用 3.加样式使用 4.加按钮使用 5.加a标签的综合使用 6.跟table结合使用 总结 前言 本篇章主要记录一下开发日常中,所常遇见的使用span标签的场景。 一、span标签是什么…...

Kafka面试问题总结
kafka架构2.基础概念Producer(生产者) : 产生消息的一方。Consumer(消费者) : 消费消息的一方。Broker(代理) : 可以看作是一个独立的 Kafka 实例。多个 Kafka Broker 组成一个 Kafka Cluster。同时&#x…...

FPGA案例开发手册——基于全志T3+Logos FPGA核心板
前 言 本文档主要提供评估板FPGA端案例测试方法,适用的开发环境为Windows 7 64bit和Windows 10 64bit。 本文案例基于创龙科技的全志T3+Logos FPGA核心板,它是一款基于全志科技T3四核ARM Cortex-A7处理器 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核全国产工业核心板…...

或许你想要的画图工具在这里
之前文章发布后,有小伙伴问下面的画怎么画的(偷偷告诉你,其实我是用铅笔水彩笔画的),哈哈,开玩笑了。其实这些图都是用Excalidraw 画出来的。 我们平常不管是工作中,还是在日常写文章&#x…...

2023年功能测试还值得入行吗?
前言 鉴于笔者从13年入行IT行业,经历了只有开发没有测试的阶段,经历了14年只要会基本的功能测试在一线就能薪资过万的阶段,经历了17年只要会一点自动化,会一点性能就能蒙骗过面试官的阶段,更经历了19年所有面试官对于…...
2022-2023山东大学机器学习期末回忆及复习建议
2023年第一次闭卷考试,让我们准备时都很无力,不知道试题究竟是什么难度,是否要掌握手推公式还有一些晦涩的知识点之类的,看到试题才发现其实闭卷也有好处,与往年题相比难度下降了不少。 一、名词解释 1、测试集 2、Boo…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...