内存地址是否指向一个字节的信息?

2024-05-07

以下是 DTS 文件的摘录。 linux/arch/powerpc/boot/dts/[板名].dts

memory {
    device_type = "memory";
    reg = <0x00000000 0x40000000>;  // 1GB at 0
};

嵌入式设备具有 1 GB 内存。

0x40000000=1073741824(十进制)。

我获得 1 GB 的唯一方法是当我将 1073741824 计算为字节时。

这意味着 1073741824 字节 = 1GB。

那么这是否意味着0x00000000指向RAM中的一个字节数据呢? 换句话说,RAM 中的每个字节都有一个地址。

为什么会这样?我们读取 8 位块的内容是什么?为什么不说一句话?


TL;DR:RAM 访问不是字节大小的块,即使每个字节在 RAM 中都是独立可寻址的(具有其自己的地址)。


第一个真正成功的微处理器,将“数字革命”带入主流,是8bit http://en.wikipedia.org/wiki/8-bit#Important_8-bit_CPUs因此,8 位基本数据块的传统一直延续到今天。在具有 8 位 CPU 的第一代微处理器中,RAM 中的每个字节都是单独读取/写入的。

下一代是使用大于 8 位的内部 CPU 寄存器开发的。它们通常是 8 位 (16/32/64) 的倍数,因为这允许它们一次从 RAM 读取多个完整字节。任何从 RAM 读取地址 X 的尝试都会导致获取 2/4/8 字节(在 16/32/64 位 CPU 上),即word在包含地址 X 的 RAM 中,仅保留适当的字节并根据需要将其存储到内部 CPU 寄存器中。

接下来,随着 CPU 缓存的出现,RAM 开始以块的形式读取(和写入)缓存行尺寸。这些甚至比寄存器的大小还要大。这将减少由于数据局部性而从 RAM 读取数据的延迟。

有关详细信息,请查看此综合关于CPU和内存的文章 http://www.akkadia.org/drepper/cpumemory.pdf作者:乌尔里希·德雷珀。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内存地址是否指向一个字节的信息? 的相关文章

  • 弱变量中间为零

    弱变量什么时候变为零 weak var backgroundNode SKSpriteNode texture SKTexture image initialBackgroundImage backgroundNode position C
  • C++中const对象位于哪个内存区域? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 嵌入式Linux poll()不断返回

    我有一个特别的问题 当我知道没有什么可读时 民意调查不断返回 因此设置如下 我有 2 个文件描述符 它们构成fd设置民意调查监视 一种用于引脚从高到低的变化 GPIO 另一个用于代理输入 代理输入出现问题 处理的顺序是 启动main函数 然
  • 什么时候通过引用传递不是一个好主意?

    这是一个我从未真正理解的内存分配问题 void unleashMonkeyFish MonkeyFish monkey fish new MonkeyFish std string localname Wanda monkey fish g
  • C++ new int[0]——它会分配内存吗?

    一个简单的测试应用程序 cout lt lt new int 0 lt lt endl outputs 0x876c0b8 所以看起来确实有效 标准对此有何规定 分配 空内存块总是合法的吗 从5 3 4 7 当直接新声明符中的表达式的值为零
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • C free() 是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 malloc 和 free 如何工作 https stackoverflow com questions 1119134 how malloc and free work include
  • 如何合并非常大的 numpy 数组?

    我会有很多Numpy https docs scipy org doc numpy 1 14 0 reference arrays https docs scipy org doc numpy 1 14 0 reference arrays
  • iOS设备和iPhone模拟器内存​​组织的差异

    我正在尝试使用 Xcode 4 3 3 和 iPhone 5 1 模拟器开发一个应用程序 当我在模拟器上运行这个应用程序时 我没有收到任何警告 并且它运行得很好 但是 当我尝试在 iOS 设备上执行此操作时 我收到一条警告消息 收到内存警告
  • 无法在 BeagleBone Green Wireless 上配置 SPI0

    注 所选答案为解决该问题的原始答案 更多详细信息请参阅下面的补充答案 我无法在 BeagleBone Green Wireless BBGW 上配置 SPI0 我试图在不使用覆盖层的情况下实现这一目标 仅使用纯 DeviceTree dev
  • 如何删除以前的 ViewController

    我是一名学生 对编程还很陌生 我正在尝试在业余时间学习 Objective C Swift 我使用 spriteKit 和 swift 制作了一个游戏 有多个菜单 场景 我正在尝试从一个视图控制器转换到另一个视图控制器 为此 我使用了以下代
  • dlopen 或 dlclose 未调用信号处理程序

    我在随机时间内收到分段错误 我注册了信号 但发生分段错误时未调用信号处理程序 include
  • 读取文件而不从操作系统页面缓存中逐出

    这主要适用于 Linux 或者理想情况下适用于任何 POSIX 系统 当我阅读以下页面时 我正在寻找一种读取大量文件 其中任何一个文件本身可能高达 1GB 的方法 具有以下特征 如果相关磁盘页面已在文件系统缓存中 则使用该页面 如果相关页面
  • Xcode Instruments:模拟器中运行的 iPhone 应用程序的峰值 RAM?

    活动监视器 又名内存监视器 是 Xcode Instruments 中唯一可以测量在模拟器中运行的 iPhone 应用程序的总应用程序 RAM 使用情况的工具吗 只是显示瞬时有线 RAM 的那条线 与 iPhone 硬件相比 尤其是 OSX
  • .ko 文件是如何构建的

    我正在尝试将我自己的驱动程序移植到Beagle 板 xm arm cortex A8 在移植时我试图弄清楚如何 ko文件实际构建 在我们的Makefile我们只有一个命令来构建 o file 怎样是一个 ko文件已建立 使用Linux 2
  • iOS 低内存崩溃,但内存使用率非常低

    这已经困扰我很长时间了 我的应用程序运行占用大约 2 74MB 内存 没关系 但当它创建 UIWebView 时 它会增加到大约 5 87MB 并继续崩溃 这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值 我找不到崩溃日志
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • Lua表在内存中是如何处理的?

    lua如何处理表的增长 是否相当于ArrayList在Java中 IE 需要连续的内存空间 并且当它变得大于已经分配的空间时 内部数组被复制到另一个内存空间 有什么聪明的方法来引导吗 我的问题是 表是如何存储在内存中的 我不是问如何在 Lu
  • 如何在C程序中直接改变显存映射来绘制像素(无需库函数)

    是否可以通过使用 C 程序更改 RAM 中屏幕 视频即监视器 内存映射中的值来显示黑点 我不想使用任何库函数 因为我的主要目标是学习如何开发简单的操作系统 我尝试访问起始屏幕内存映射 即 0xA0000 在 C 中 我尝试运行该程序 但由于
  • 需要 gem 是否会加载所有内容,包括我不使用的东西?

    Assume x是一颗宝石 包含两者Hello and Goodbye类 如果我写一个程序require x 但仅使用Hello班级 是个Goodbye类也加载了吗 您包含脚本或文件 而不是 gem With require x 你加载文件

随机推荐

  • Pygame:细胞物理学

    我正在制作一个简化版本agar io http agar io 目前 单元格被放置在网格背景上 就像游戏中一样 细胞吃食物 但只有圆圈内较小的正方形部分实际上吃食物 在我的程序中 当你足够大时 这一点是显而易见的 此外 当您按空格键时 它会
  • Bigquery:如何声明数组变量并使用 select 语句设置数据?

    我试图在 BigQuery 上声明一个数组变量 但无法在变量中放入 SQL 语句 我找不到任何与此相关的主题 我想将表的所有列名放入变量中 所以我尝试了以下方法 DECLARE my array ARRAY
  • 请推荐一个用于将 IPTC 数据写入图像的 Node 模块?

    我有一个 Node js 服务器 其工作是下载 JPEG 图像 将某些数据写入几个 IPTC 字段 例如Iptc Application2 Caption 并将图像传递给另一个服务 理想情况下 我想将 IPTC 数据写入内存缓冲区 而不将图
  • 通过内联样式动态设置背景 Div 图像时不显示 | Next.Js

    我试图通过使用地图和外部 js 文件将图像存储为对象来从组件渲染图像 然后通过它们设置循环 将其设置为创建的每个 div 的不同背景图像 如果有意义的话 我将提供代码来更清楚地说明我想要完成的任务 在地图过程中 我试图定位对象方法 但我相信
  • 将自定义处理程序添加到特定 API wso2 API-Manager

    我需要将自定义处理程序和 APIAuthenticationHandler 添加到特定 API 并且需要将其添加到以下 处理程序类 org wso2 carbon apimgt gateway handlers security APIAu
  • 使用 Matplotlib 和系数绘制多项式

    我的代码是 import numpy as np import matplotlib as plt polyCoeffiecients 1 2 3 4 5 plt plot PolyCoeffiecients plt show 其结果是描述
  • OpenCV:视频结束后如何重新启动?

    我正在播放视频文件 但播放完毕后如何再次播放 Javier 如果您想一遍又一遍地重新启动视频 也称为循环播放 可以通过在帧数达到时使用 if 语句来实现cap get cv2 cv CV CAP PROP FRAME COUNT 然后重置帧
  • 带 % 的 Flask URL 参数未正确处理

    EDIT2 对于缺乏清晰度 我深表歉意 我将提供几个值 第一个是我使用前端应用程序调用的 URL 第二个是调用前的值urllib unquote 第三个是调用后的值urlib unquote 前端 console log http loca
  • SLF4J 日志记录到文件 vs. DB vs. Solr

    我需要一些关于 SLF4J 日志记录的建议 目前 我们正在为 Java Web 应用程序使用 SLF4J 日志记录 log4j 绑定 该应用程序使用简单的 ConsoleAppender 我们的下一步是研究可以保存日志的地方 我们的应用程序
  • JavascriptError:javascript 错误:等待结果时文档已卸载

    在使用 Protractor e2e 测试运行测试角度应用程序时 我目前面临一个问题 这是一个间歇性的问题 我收到 JavascriptError javascript错误 等待结果时已卸载文档 以下是日志 Failures 18 51 4
  • 我如何更改EditText光标旋钮颜色android(不是旋钮光标颜色)

    I am trying to change my EditText cursor knob but failing to see it on a device attached is my XML for this layout
  • 不同计算机上的 Android 设备之间的通信

    是否可以使 Eclipse 上的两个 Android 模拟器从通过快速以太网链路连接的两台不同机器进行通信 感谢您的回复 是的 传出端可以正常工作 但传入端 无论哪一个正在接收连接 都有点复杂 您可以设置模拟器或 adb 端口转发 但这只会
  • 重用 Java 方法的最佳方法

    我正在学习 Java 和 OOP 并且一直在做问题欧拉计划 http projecteuler net index php section problems用于练习 顺便说一句 很棒的网站 我发现自己一遍又一遍地做许多相同的事情 例如 检查
  • 电子在没有任何信息的情况下死亡,现在怎么办?

    我正在构建的应用程序 当我编译它以使用电子构建器打包它进行分发时 时不时地会死掉 显示空白屏幕和断开连接的开发工具 有什么想法或者如何开始弄清楚这里发生了什么吗 听听uncaughtException事件并记录您收到的任何错误 这将使您深入
  • Msil 以动态类型发出静态数组

    我正在尝试使用 Reflection Emit 在 c 中 创建一个新类型 我想要创建的代码类似于 public class public static int A new int 1 2 3 我首先尝试定义一个字段 然后设置它的值 var
  • 在 CSS 中指定后备字体大小?

    有没有办法指定不同的字体sizesCSS 中的后备字体 我想做这样的事情 这显然不起作用 div font family Arial Narrow Arial Helvetica sans serif font size 20px 18px
  • BigInteger 的困难

    我正在尝试使用递归和 BigInteger 进行阶乘 但 eclipse 抱怨 BigInteger 我知道这个程序应该很简单 但它让我头疼 这是代码 import java util Scanner import java math Bi
  • 使用 spring-java-config 创建“决策步骤循环”

    我正在尝试将 spring batch 作业 在 xml 中定义 移植到基于 java config 的作业 这是我的作业配置文件的片段
  • 在哪里可以找到并提交有关 Google Chrome 浏览器的错误报告?

    对于想要为 chrome 浏览器进行开发的开发人员来说 能够审查现有的错误 以避免太多的麻烦 并添加新的错误 以改进 是很重要的 但我似乎找不到该项目的错误跟踪 它is开源 对吗 谷歌正在称呼它Chromium http code goog
  • 内存地址是否指向一个字节的信息?

    以下是 DTS 文件的摘录 linux arch powerpc boot dts 板名 dts memory device type memory reg lt 0x00000000 0x40000000 gt 1GB at 0 嵌入式设