当前位置首页 > 教育资讯

15显存映射和DMA(上)

更新时间:2023-11-03 文章作者:佚名 信息来源:网络整理 阅读次数:

15显存映射和DMA(上)AXc物理好资源网(原物理ok网)

1linux显存管理1.1地址类型AXc物理好资源网(原物理ok网)

linux是一个虚拟显存系统逻辑地址和物理地址的转换,这意味着用户程序所使用的地址与硬件使用的数学地址是不等同的。AXc物理好资源网(原物理ok网)

image.pngAXc物理好资源网(原物理ok网)

1.1.1虚拟地址AXc物理好资源网(原物理ok网)

用户空间程序所能见到的常规地址。AXc物理好资源网(原物理ok网)

每位进程都有自己的虚拟地址。用户地址或为32位或为64位,取决于硬件的体系构架。AXc物理好资源网(原物理ok网)

1.1.2化学地址AXc物理好资源网(原物理ok网)

该地址在处理器和系统显存之间使用。AXc物理好资源网(原物理ok网)

逻辑地址和物理地址的转换_逻辑地址转换物理地址公式_逻辑地址转化物理地址AXc物理好资源网(原物理ok网)

化学地址也是32位或则64位长的。在个别情况下甚至32位系统也能使用64位的数学显存。AXc物理好资源网(原物理ok网)

1.1.3总线地址AXc物理好资源网(原物理ok网)

该地址在外围总线和显存之间使用。一般它们与处理器使用的数学地址相同。AXc物理好资源网(原物理ok网)

但如此做并不是必须的。一些计算机体系构架提供了I/O显存管理单元(IOMMU)。它实现总线和主显存之间的重新映射。IOMMU可以用好多种方法让事情显得简单(例如使显存中的分散缓冲区对设备来说是连续的)。并且当设置DMA操作时,编撰IOMMU相关的代码是一个必须的额外步骤。其实总线地址是与体系构架密切相关的AXc物理好资源网(原物理ok网)

1.1.4内核逻辑地址AXc物理好资源网(原物理ok网)

内核逻辑地址组成了内核的常规地址空间。该地址映射了部份(或则全部)显存,并时常被视为数学地址。AXc物理好资源网(原物理ok网)

在大多数体系构架中,逻辑地址与其相关联的数学地址的不同,仅仅是在它们之间存在一个固定的偏斜量AXc物理好资源网(原物理ok网)

逻辑地址使用硬件内建的表针大小,因而在安装了大量的32位系统中,它未能轮询全部的数学地址。AXc物理好资源网(原物理ok网)

逻辑地址一般保存在long或则void*这样类型的变量中,()返回的显存就是内核逻辑地址。AXc物理好资源网(原物理ok网)

1.1.5内核虚拟地址AXc物理好资源网(原物理ok网)

逻辑地址和物理地址的转换_逻辑地址转化物理地址_逻辑地址转换物理地址公式AXc物理好资源网(原物理ok网)

内核虚拟地址和逻辑地址的相同之处在于,它们都将内核空间的地址映射到化学地址上。内核虚拟地址与化学地址的映射毋须都是线性的和一对一的。而这是逻辑地址空间的特征。AXc物理好资源网(原物理ok网)

所有的逻辑地址都是内核虚拟地址。并且许多虚拟内核地址不是逻辑地址。AXc物理好资源网(原物理ok网)

示例:()分配的显存具有一个虚拟地址(但并不存在直接的化学映射),kmap()也返回一个虚拟地址。虚拟地址一般保存在表针变量中。AXc物理好资源网(原物理ok网)

1.1.6地址映射的宏AXc物理好资源网(原物理ok网)

__pa():按照逻辑地址,返回其对应的数学地址AXc物理好资源网(原物理ok网)

__va():将数学地址逆向映射到逻辑地址。但只对高端显存页有效AXc物理好资源网(原物理ok网)

1.2页AXc物理好资源网(原物理ok网)

页:化学地址被分成离散的单元,称之为页。每位页的大小随体系构架的不同而不同,通常为4096(1mm。AXc物理好资源网(原物理ok网)

多个进程可以共享显存管理结构逻辑地址和物理地址的转换,linux用这些技巧实现线程。AXc物理好资源网(原物理ok网)

©专著权归作者所有,转载或内容合作请联系作者AXc物理好资源网(原物理ok网)

发表评论

统计代码放这里