ARM架构下IO与内存的统一编址与X86架构下的独立编址
1 内存访问
(1)内存通过CPU的地址总线来寻址定位,然后通过CPU数据总线来读写。
(2)CPU的地址总线的位数是CPU设计时确定的,因此一款CPU所能寻址的范围是一定的,而内存是需要占用CPU的寻址空间的。
(3)内存与CPU的这种总线式连接方式是一种直接连接,优点是效率高访问快,缺点是资源有限,扩展性差。
2 IO与内存不同架构下的编址
2.1 IO与内存统一编址、独立编址
2.1.1 对于ARM架构的处理器,是哈佛结构的,都是IO与内存统一编址
(1)类似于访问内存的方式,即把外设的寄存器当作一个内存地址来读写,从而以访问内存相同的方式来操作外设,叫IO与内存统一编址方式
(2)例如ARM架构下,我们写的代码要适应ARM架构的IO与内存统一编址的情况,所有我们访问IO的时候,也就是读写寄存器,读写硬件就是在进行IO,IO和内存一样也有个地址(内核统一编址机制已经做好代码定义),被统一化了。
2.1.2 对于x86独立编址
(1)使用专用的CPU指令来访问某种特定外设,叫IO与内存独立编址(比如x86)。
3 内核提供的读写方式兼容可以跨架构
3.1 按照我们自己的方式,就像裸机代码,没有内核,在ARM架构下我们自己使用函数指针方式去访问
IO、内存,X86架构我们使用专门指令访问IO并用指针访问内存,代码就不具跨平台兼容
3.2 使用内核提供的读写函数去读写内存和IO,已经兼容的统一编址与独立编址,内核架构已经做好了封
装。
(1)内核提供的寄存器读写接口
writel和readl
iowrite32和ioread32
from: https://blog.csdn.net/qq_40334837/article/details/78148697
分类:
linux mm
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2018-11-04 C/C++中的预编译指令
2017-11-04 C build error fix