Linux把物理内存划分为了三个管理区, 分别为0-16MB的ZONE_DMA, 16-896MB的ZONE_NORMAL和高于896MB的ZONE_HIGHMEM也就是高端内存.
至于为什么这么划分, ZONE_DMA好理解, 因为ISA总线只能对前16MB进行DMA寻址, 这块要分出来不能乱用. 而ZONE_NORMAL和ZONE_HIGHMEM为什么从896MB区分呢? 这还得从物理地址和...
分类:
其他好文 时间:
2014-07-06 10:34:04
阅读次数:
195
DSP SRIO协议的逻辑层定义了操作协议和相应的包格式。DSP上SRIO支持的逻辑层业务(数据发送方法)主要是直接IO/DMA(Direct
IO/ Direct Memory Access)和消息传递(Message Passing)。
?直接IO/DMA模式是最简单实用的传输方式,其前提是主设备知道被访问端的存储器映射。在这种模式下,主设备可以直接读写从设备的存储器。可以硬件直接实现。...
分类:
其他好文 时间:
2014-06-30 16:23:41
阅读次数:
739
如果是计算机专业出身的同学,都听过一个概念,中断比轮询要好、DMA比中断要好。
中断比轮询要好,是容易理解的:
在轮询中,CPU是死循环执行对IO端口的检测,这种模式,大量的浪费了CPU(因为CPU除了处理外设之外,更多的时间应该用于对内存的操作,如计算等)。
而中断方式,则没有死循环的浪费,CPU可以正常做别的事情,等到外部设备数据来了,就会主动由设备控制器发出中断(设备控制器预先需要注册...
分类:
其他好文 时间:
2014-06-30 09:58:50
阅读次数:
185
/* $Id: dma.c,v 1.5 1992/11/18 02:49:05 root Exp root $* linux/kernel/dma.c: A DMA channel allocator. Inspired by linux/kernel/irq.c.* Written by Henn...
分类:
其他好文 时间:
2014-06-28 21:27:02
阅读次数:
280
DMA控制器依赖于平台硬件,这里只对i386的8237 DMA控制器做简单的说明,它有两个控制器,8个通道,具体说明如下:控制器1: 通道0-3,字节操作, 端口为 00-1F控制器2: 通道 4-7, 字操作, 端口咪 C0-DF- 所有寄存器是8 bit,与传输大小无关。- 通道 4 被用来将控...
分类:
其他好文 时间:
2014-06-20 22:01:24
阅读次数:
243
/* $Id: dma.h,v 1.7 1992/12/14 00:29:34 root Exp root $* linux/include/asm/dma.h: Defines for using and allocating dma channels.* Written by Hennus Be...
分类:
其他好文 时间:
2014-06-20 21:27:59
阅读次数:
194
BACKGROUNDAs processing resources have increased, demands to run multiple software programs and operating systems on a single microprocessor have also...
分类:
其他好文 时间:
2014-06-16 23:25:53
阅读次数:
345
最近在实际的项目中碰到这样的问题:
嵌入式系统DDR (RBC row, bank, columne), 每块1Gbit816, 两块由片选决定读写其中的一块.
Memory controller通过AXI连接在SOC中.
1.
在I-CACHE没有使能的情况下, 通过MC访问DDR有三路TRAFFIC, 分别是取指令, CPU刷/写FRAME BUFFER, DMA取/读FRAM...
分类:
其他好文 时间:
2014-06-08 08:58:15
阅读次数:
242
The master DMA arbitration control register (MDMAARBU) controls the priority levels of MDMA requests going out of CorePac. It controls the priority levels used by the L2 memory
controller when sendi...
分类:
其他好文 时间:
2014-06-03 02:39:09
阅读次数:
311
当我们在应用程序中编写write系统调用,向磁盘中写入数据时,写入请求会先调用底层写函数,将请求先写入内存中的页高速缓存(page cache)中,写入成功则立刻返回,真正的写入磁盘操作会延迟执行。Page cache是硬盘在内存中的一个缓存,是linux内核所使用的主要磁盘高速缓存,在绝大多数情况下,内核在读写磁盘时都引用page cache(极少数应用会绕过页高速缓存,如数据库软件)。...
分类:
其他好文 时间:
2014-06-02 22:38:57
阅读次数:
311