原创 关于DMA

2008-5-7 10:17 2362 11 12 分类: 消费电子

关于DMA——以前总有一个错误的认识——PCI卡的DMA操作是由主板上的DMA控制器8237控制,但是想利用8237控制器进行DMA操作,需要首先发DMA申请,然后8237会在空闲的时候发DMA允许信号。然而,通过查看PCI规范发现,PCI根本就没有相应的信号连线。后来查看了9054手册之后才知道,原来DMA控制器是嵌在了9054芯片内部,这样就不难想象DMA操作的全流程了:首先在需要传输数据的时候,通过9054和PCI向主机发中断,然后由主机通过读取中断向量来判断是何种中断,如果是需要DMA方式传输数据,则在DMA控制器的一些寄存器(源端起始地址、数据块大小、目的端起始地址寄存器等)写数据,同时会通过对9054的本地配置寄存器的操作配置DMA的操作方式等。待DMA控制器配置完毕后,DMA控制器通过LHOLD#、LHOLDA和REQ#、GNT#分别来申请占用本地总线和系统,之后进行DMA操作。


       9054提供两个DMA通道,每个通道都支持Gather/Scatter(分散/集中) DMA和Block(块) DMA两种模式。这两种模式的区别在于后者要求源端和目的端的数据块都是连续存储的,否则就需要进行多次DMA操作;而前者则可以只用一次DMA操作传输非连续存储的多个数据块,但是主机或者本地处理器需要首先建立描述块(Descriptor Block: composed of PCI and Local addresses, transfer count, transfer direction, and address of next descriptor block),然后设置DMA的方式,并(用描述块的地址)初始化9054内部的DMA描述指针寄存器(Descriptor Pointer Register),最后设置DMACSR0或者DMACSR1来启动DMA操作。DMA启动之后9054首先从描述块中读出第一个描述块,然后开始DMA传输。


注:至于该描述块(Descriptor Block)如何建立还需要进一步查看9054的数据手册,可能该描述块的建立需要由驱动程序或主机程序完成。


       关于中断——9054内部包含很多的中断源,都可以通过寄存器来配置是否发中断,向主机还是本地总线发中断。如果向主机发中断,则主机检测到中断之后,从9054寄存器中读取中断向量(INTCSR)来判断来进行何种中断操作;同样,如果向本地总线发中断,则由本地的处理器用同样方式来处理中断。


       关于基地址寄存器——基地址寄存器是用于将本地的存储空间映射到系统得内存(或I/O)空间中,这样主机可以很方便的操作本地的存储器。在指纹比对加速卡系统中,可以采用一个基地址寄存器来映射所有的存储空间(包括库指纹缓冲、平方根表存储器、th_grade表存储器、现场指纹相关的表存储器等),然后本地接口模块检测到属于该基地址内存空间的地址时,可以通过译码来判断该地址属于哪个表数据。


       基地址寄存器是一个32bit的寄存器,分为两个部分,后n个bit为只读(表示映射空间的大小),前32-n个为可读可写(表示该映射空间在内存空间中的基偏移地址)。PCI规范规定,主机初始化时,首先向该寄存器写全’1’,然后读该寄存器,通过该寄存器返回值来判断所映射空间的大小以及映射类型(内存或者I/O,最后一位为‘0’表示内存空间映射,否则市I/O空间映射),之后系统给该映射空间分配一个基偏移量。

文章评论1条评论)

登录后参与讨论

用户377235 2012-9-11 18:40

我想买一个

用户407487 2008-5-11 00:19

内容不错~~
相关推荐阅读
用户992653 2011-10-11 11:02
【冒泡】:将近18个月没有登录EDN了,不知道各位老朋友是否都还在EDN...
RT ,上来纪念下,不知道各位是否还在这里呢? ...
用户992653 2010-05-13 07:23
2010年3G时代让您的手机真正实现3G视频监控功能=为您房产购买保险
2010年<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3G时代让您的手...
用户992653 2010-03-09 10:01
【推荐】:郎咸平精彩语录
  【推荐】:郎咸平精彩语录找了好久才找到这个的,很不错的资料哦。给大家看看,记得顶哦~!...
用户992653 2010-03-08 18:19
請教問題:請問針對IC,BGA量測其本身的對地保護二極體是否正確?
請教一個問題:請問針對IC,BGA量測其本身的對地保護二極體是否正確?此方法是否具有科學性合理性? 請大家幫幫~PS :我上次跟我一個IC原廠座SALES的朋友聊天,他提到其實IC量測本身的保護二極體...
用户992653 2008-12-08 17:32
主板知识-PDF版本
主板知识-PDF版本 :summary:1.主板上的英文字母都代表什么2. 计算机开机原理3. 主板时钟电路工作原理4. 逻辑代数的基本运算PS:應某人要求將附件拿下了,需要的朋友可以給我發EMAIL...
用户992653 2008-12-05 10:24
EDNCHINA之霸王条款,需要注册才能下载个人BLOG里的附件.是否为不妥行为?(
议题:EDNCHINA之霸王条款,需要注册才能下载个人BLOG里的附件.是否为不妥行为?(我个人强烈抗议,建议共享)今早未登陆我的EDN-BLOG浏览文章,发现如果我非EDN注册用户根本无法下载附件....
我要评论
1
11
关闭 站长推荐上一条 /2 下一条