CPU访问内存

article/2025/10/13 17:57:06

首先我们需要一个引子,引子如下:

作为一个计算机领域的工程师,这里有一个问题:有一个10米深的水池需要测量其水深,并在计算机(或者微机)上显示测量结果,保留小数点后一位。请概要的设计这个系统。

分析如下:

10米深的水池,需要保留一位小数,所以测量精度应该是0.1米,如下图所示: 


采样的方法,我们采用最简单的水漂,即随水深上下浮动,带动滑线变阻器。

水漂上下浮动,那么接通的电阻值就不一样,电阻不一样,那么产生的电压就不一样,电压不一样,就可以通过模拟信号到数字信号的转换器进行转换,由于我们有100个刻度需要标示,需要需要一个8位的A/D转换器才可以达到我们的精度,设计概要图如下:

从上面来看,基本原理就出来了,然后是数据的处理,采样数据设计如下:


所以通过上面的值数值对照表我们就可以计算出水的深度了。那么说了这么多,到底想表达什么意思呢?

其实我就是想通过一个栗子来表述模拟电路和数字电路之间的区别和转换,计算机处理的都是经过转换的数据也就是0和1。相信各位对于这个问题已经很明白了或者之前就很明白。

知道了这些个原理对于一个搞技术的,在看待某些问题时就会更彻底。比如如果要提高测量精度,那么我们就需要使用更好的A/D转换器等等。某些情况下知道这些原理,相信对于各位把妹子也很有裨益的:)

说完了模拟信号的世界,还是回到我们0和1的世界,来说说CPU和内存之间是怎么访问的,尤其是字节对齐方面是怎么考虑的?相信经过这次讨论,以后如果再有人敢和你讨论这个字节对齐的问题,那就是显示你逼格的时刻了!!!哈哈哈哈哈。。。。。那么请全神贯注,我们开始了。

1. CPU总线周期

总线周期,包含若干个时钟周期,计算机是在时钟脉冲下一个节拍一个节拍的工作。看下面这张图,我们可以很好的理解为什么要时钟了:


这个图我们可以认为是一个基本的读内存数据的总线周期:

  1. 在T1时钟周期期间,CPU往总线上发地址信息,以指出要寻址的存储单元;

  2. 在T2时钟周期间,撤销地址,总线低16位置为高阻状态,为传递数据做准备;

  3. 在T3时钟周期间,CPU将数据读至数据总线上;

  4. 在T4时钟周期间,结束这个总线周期;

以上过程略去了某些步骤,不过用于理解这些原理是足够的。从以上过程看,我们就可以理解了我们CPU干活是按时间来的,如T1时钟周期CPU放地址到总线上,然后T2就去准备接收数据。在T1周期内并没有一个其他的标记告诉CPU T1时间放至的地址信息已经被处理请执行下一个动作。没有!!整个过程中,时间本身就是标记!时间到了就去做下一个动作吧!这就是时钟周期的重要性。

所以我们电脑的主频频率还是很重要的,主频频率越高,那么时钟周期就越短,时钟周期越短,那么一个如上面的读内存数据的操作耗时就越少,给你的感觉就是,这个电脑的性能真不赖:)给妹子选电脑时是不是又多了一个绝技!哈哈。。。。这个部分暂且到此按下不提。

2. 存储体

我们都知道CPU读物理内存中数据,是先在地址线上给出地址,然后从数据线上将数据取走,如下图所示:


地址从地址线上给出,然后数据从16位数据线(DB)上取走,注意:16根数据线一次取走的就是2个字节的数据!!!所以这个存储体称为16位存储体。在这种存储体中,最小的单位就是取两个字节。有时我们真的只需要取一个字节就好。那该怎么办?给CPU配置8位的存储体,配置8位的存储体后,那我想按字节读取数据又该如何呢?

天才的科学家总能找到办法,我直接看奔腾32位CPU连接存储是如何设计的,请看下图:


其中, D0~D31是连接到CPU对应的32根数据线上,我们这个图中,总共有4块内存接到CPU,每块内存为1GB,所以总共是4GB大小。每块存储都是8位的存储体,BEx为选通信号,也就是BE0,BE1,BE2,BE3分别对应的数据线地址为D7~D0,D15~D8,D23~D16,D31~D24。

3. 访问存储

通过上面的接法,CPU可以按照双字,字,字节访问存储。

3.1 按双字访问

按照双字访问存储时,以CPU的A31~A2地址去寻址双字存储空间,而A1,A0通过CPU内进行译码以控制BE0,BE1,BE2,BE3同时选择这四块存储进行数据的读取。而且,从双字地址(A31~A2)的角度看,地址是连续的。而每次读取到的都是双字,真是很巧妙的设计。

3.2 按字访问

按字访问时,以CPU的A31~A2地址去寻址字的存储空间,A1,A0经过CPU译码后,控制BE0,BE1,BE2,BE3,中只同时选中两块相邻的内存。

3.3 按字节访问

按字节访就是每次只控制BE0,BE1,BE2,BE3,使得只有一个存储被选中,那么就只读取了一个字节。

对于非对齐的字或者双字需要两个周期才能够取得,看下表,可以自己举个例子对照上面的接线图看看:


4、学了就要应用

编程过程中#pragma pack(n),可以设置编译器对齐字节数,那么CPU后端是怎么实现的,通过本篇文章应该有更深入的了解了。

另外,我们看一个真实世界里的内存:


图里标示为4GB的内存条,看见木有,有4块物理内存块!!!就是我们上面说的单个1GB的8位存储体。

有的企业级服务器可以插很多条内存,但是没有插满时对内存条的插入的插槽位置是有要求的,通过本文是不是可以可以理解大概是什么原因了呢???

另外还有网上总是说的选择对齐的一个原因:不同各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。16位存储体就只能从偶数地址开始读取。



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

相关文章

计算机cpu、寄存器、内存区别

1、寄存器是中央处理器内的组成部分。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的…

CPU、内存、磁盘性能监控

CPU监控 网络由设备、服务器、路由器、交换机和其他网络组件组成。CPU 是网络中所有硬件设备的组成部分。它负责设备的稳定性和性能。企业严重依赖网络,企业硬件的处理能力决定了网络的容量。随着 CPU 功能和硬件的快速发展,组织必须规划其容量并监控其…

内存、CPU、硬盘

目录 内存虚拟内存 硬盘扩充内存和硬盘CPUCPU 频率CPU 高速缓存CPU三级缓存缓存行 CPU-内存的工作原理 内存 内存是外存与CPU进⾏沟通的桥梁,计算机中所有程序的运⾏都在内存中进行。 内存(Memory)也称内存储器和主存储器,它用于暂时存放CPU中的运算数据…

内存、CPU、显存、GPU

底盘中经常会出现资源、算力等词语,对于里面的CPU、内存、GPU、显存,究竟是什么,这里主要对此进行一个基础认识。 一、内存 内存(Memory)也被称为内存储器,主要用来暂时存放CPU中的运算数据及与硬盘等外部存储器交换的数据。只要…

CPU 与 内存

CPU 与 内存 CPU控制器控制单元指令译码器指令寄存器 运算器ALU算数运算器逻辑运算器 寄存器L1,L2数据寄存器,程序计数器,段寄存器,通用寄存器,标志寄存器 内存 CPU 控制器 控制单元 时序控制,指令控制 …

cpu与内存的工作原理

计算机最核心的俩大部分:cpu和内存。哪它们之间有什么联系呢? 程序是在内存里运行的,程序要运行语句需要cpu发出指令给程序,程序收到指令后就会找到main方法,把执行语句的指令和需要的数据分别给cpu里的pc和registers…

cpu和内存

CPU ( Central Processing Unit )是一块超大规模的集成电路板,是计算机的核心部件,承载着计算机的主要运算和控制功能,是计算机指令的最终解释模块和执行模块。硬件包括基板、核心、针脚,基板用来固定核心和针脚&#…

CPU、内存、缓存的关系

术语解释 (1)CPU(Central Processing Unit) 中央处理器 (2)内存 内存用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,内存的运行决定…

操作系统系列——CPU和内存

操作系统作为所有程序运行的载体,了解其基本组成和运行的逻辑也是十分重要的。虽然要弄明白它的方方面面需要花很长的时间,但作为底层码弄,弄清楚与平常程序打交到的CPU、内存、磁盘等工作原理也十分重要。因此这里我将学习的过程和知识点做一…

【IC卡】终极版复卡器操作方法 ID卡读取方法

终极版复卡器操作方法 ID卡读取方法: http://rfid.polinktech.com/RFID-Toolkit/RFID%E8%AF%BB%E5%8D%A1%E5%99%A8%E6%93%8D%E4%BD%9C%E8%AF%B4%E6%98%8E.pdf 1. 放上ID卡,,显示如图界面,点击读取卡号。 2. 读取卡号后,放上新的…

NFC手机模拟加密门禁卡

CSDN仅用于增加百度收录权重,排版未优化,日常不维护。请访问:www.hceng.cn 查看、评论。 本博文对应地址:https://hceng.cn/2019/07/12/NFC手机模拟加密门禁卡/#more 记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。 0. 缘…

Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号

RFID简介:射频识别即RFID(Radio Frequency IDentification)技术,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。常用的有低频(125k~134.2K)、高频(13.56Mhz)、超高频,微波等技术。…

UID卡修改UID锁死修复

原文地址::http://www.hackdig.com/?10/hack-15044.htm 相关文章 1、论如何优雅地蹭饭:克隆篡改公司饭卡(M1卡)----http://www.freebuf.com/articles/wireless/50123.html 2、什么是UID卡,它与普通卡有什么不同?---…

UID卡读取与写入

1、电脑连接PN532 NFC模块,将NFC卡放置模块上。 2、打开MifareOneTool,选择“高级操作模式”,选择“手动扫描”,卡查看当前卡片的属性。 3、已加密卡可选择采用“MFOC读”来读取当前卡片的信息,读取完成后将数据保存至…

UID卡_ID卡

1、基本信息 M1卡:全称Mifare classic 1K,普通IC卡,0扇区不可修改,其他扇区可以反复擦写。通常我们使用的门禁卡、电梯卡都是M1卡。 M1卡是NXP(恩智浦半导体)公司研发的IC卡,执行标准是ISO/IE…

北京内推 | 华为CloudAI机器视觉产品部招聘计算机视觉见习研究员

合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 华为 华为云机器视觉产品部是华为云当前的核心部门。在这里,你将直接接触到最前…

2021 马克拉伯大视觉奖:探索、创造机器视觉的价值

引言:马克拉伯是集软件、硬件、人才为一体的视觉开放社区,致力于帮助工业用户以最低 门槛、成本部署机器视觉,目前社区拥有6000多位分别来自系统集成商、终端企业及院校科研机构的工程师们,他们在探索、创造机器视觉价值的过程中,运用社区开放的机器视觉软SGVision已部署…

辰视将携3D视觉技术及各领域解决方案参加华南工博会国际机器视觉展

新一轮工业革命方兴未艾,全球工业数字化转型迈向纵深。在素有“世界工业发展晴雨表”之称的汉诺威工业博览会,有关数字工业、智能制造的设想和愿景越来越多地变为现实应用。 创办于1947年的汉诺威工博会是全球最大的工业展,也是德国“工业4.…

【十大视觉传感器厂家排名】

我们今天先不从视觉检测解决方案的角度出发,而是从ccd视觉传感器检测产品的角度来评选出机器视觉龙头企业。众所周知,整个视觉系统我们所用到的软硬件产品有:光源、镜头、工业相机、视觉软件等,那么在这些领域哪些公司做的比较好呢…

机器视觉与图像处理研究必备

机器视觉和图像处理的研究工作,做到以下两点非常重要: 1、把握国际最前沿的内容 2、所做的工作具备很高的实用性 上述两点的解决方法分别为:找到这个方向公认成就最高的几个超级专家;找到实际应用的项目,边做边写文章…