直接存储访问控制器的利记博彩app

文档序号:6651471阅读:232来源:国知局
专利名称:直接存储访问控制器的利记博彩app
技术领域
本发明涉及一种控制器,尤其涉及一种直接存储访问控制器(DirectMemory Access Controller,DMAC)。
背景技术
直接存储访问(Direct Memory Access,DMA)通道,是指在没有主处理器干预的设备间直接交换数据的通道。对DMA通道的控制,一般由DMA控制器完成。
目前,对DMA通道的控制,一般需要主处理器对每个连续的地址重新配置一次,而且不同的DMA通道之间的直接切换,需要CPU来参与,这对于CPU资源有限、多个DMA通道任务间频繁切换,且每个DMA通道所要传输的地址不连续的设备而言,是很难实现的。因此,能否提出一种DMA控制器,只需占用少量的CPU资源就可以实现多个DMA通道任务间的频繁切换,已经成为业界亟待解决的问题。

发明内容
本发明所要解决的技术问题在于提供一种直接存储访问控制器,只需占用少量的CPU资源就可以实现多个DMA通道任务间的频繁切换。
为解决上述问题,本发明提供一种直接存储访问控制器,在CPU对节点设备提出的直接存储访问通道中断请求进行初始化配置后,控制节点设备与非易失型存储器之间直接交换数据,该直接存储访问控制器包括中断控制器、分割单元、寄存器组、逻辑地址暂存器接口、节点设备接口、主控制器,其中,主控制器,用于控制和协调各模块的工作,并在直接存储访问通道结束传输后发出传输结束信号给CPU;寄存器组,用于提供一个与CPU通信的接口,存储有处理器发出的命令以及配置的参数,包括通道中断请求的优先级;节点设备接口,用于提供与节点设备之间的通信协议,包括接收来自节点设备的直接存储访问通道中断请求,在主控制器的控制下给出该直接存储访问通道被服务的信号,并从该节点设备读出或写入数据;中断控制器,与主控制器、寄存器组、节点设备相连,用于根据节点设备发出的直接存储访问通道的中断请求优先级参数,与自身的中断响应策略来确定向主控制器提出中断请求的时间;分割单元,与主控制器、节点设备接口、逻辑地址暂存器接口、非易失型存储器接口相连,用于在主控制器的控制下,根据所述寄存器组中存储的参数,将长的直接存储访问传输分割成多个短的直接存储访问传输,分割的原则是非易失型存储器接口每次访问非易失型存储器时,地址空间必须连续、块对齐且最大的块数在预设的最大允许传输块数之内,分割后获得本次传输的首逻辑块地址和传输块数参数;逻辑地址暂存器接口,用于在分割模块的控制下,从逻辑地址暂存器中读出本次直接存储访问通道传输的数据存储在非易失型存储器中的簇链结构信息;非易失型存储器接口,用于提供与非易失型存储器通信的协议,在主控制器的控制下,根据分割单元获得的本次传输的参数,从非易失型存储器中读出或写入数据。
利用本发明所述的DMA控制器,多个DMA通道任务间的切换工作可以自主完成,仅需少量的CPU资源,可以将长的不连续的传输地址自动切割为连续的,因此允许每个DMA通道所要传输的地址不连续。同时,DMA通道初始化配置简单,只需要配置通道优先级、簇链结构起始地址、首字节相对第一簇的偏移量、传输长度和传输方向等基本参数即可。而且,DMA通道传输的是基于块的方式,块的长度是可配置的。本发明还支持自动长度分割功能,将一个长文件传输分割成多个短的DMA通道传输。同时,本发明支持以多通道按块时分复用的方式共享总线带宽,支持多种带宽分配方案,支持多块传输。


图1为根据本发明实施例所述的DMA控制器应用系统示意图;图2为根据本发明实施例所述的DMA控制器结构示意图;图3为根据本发明实施例所述的DMA控制器中的主控制器的状态机示意图。
具体实施例方式
如图1所示,应用本发明的系统可以由处理器16,A类节点设备20、22,B类节点设备24、26,逻辑地址暂存器14、包括非易失型存储器接口的DMAC控制器10、非易失型存储器12构成。
处理器16的主要功能是对每次DMA传输进行初始化配置和过程中的异常进行处理。
节点分为两类,A类节点和B类节点。A类节点是指节点本身需要提供访问非易失型存储器的逻辑地址及传输长度,对该类节点的每次DMA传输,其数据存储在非易失型存储器上必须是逻辑地址连续的一段数据。B类节点是指节点本身不直接提供非易失型存储器的逻辑地址,其逻辑地址存储在逻辑地址暂存器中,B类节点每次进行DMAC传输时,处理器通知DMAC控制器该节点准备访问的逻辑地址存储在地址暂存器中的位置。在多音频处理器中,FAT加速器属于A类节点,其它设备,例如各种音频播放器都属于B类节点。若节点需要进行DMA传输,该节点提出DMA请求给主处理器或DMAC控制器。
逻辑地址暂存器14,给每个将要进行DMA传输的B类节点分配一个连续的空间,用于存储其访问非易失型存储器的逻辑地址簇链结构。
DMAC控制器10的主要功能是控制节点与非易失型存储设备12之间交换数据。
其中,非易失型存储器接口的主要功能是将DMAC控制器10的DMA传输控制命令转化为访问非易失型存储器的具体的时序。
图2所示为根据本发明实施例所述的DMAC控制器的结构框图,由主控制器108、中断控制器106、寄存器组112、A类型节点接口102、B类型节点接口100、分割单元110、逻辑地址暂存器接口104和非易失型存储器接口114构成。
其中,中断控制器106的主要功能是根据通道提出的带优先级的传输中断请求和中断响应策略来确定哪个通道被服务,并决定何时向主控制器提出中断请求。其中断策略是1)不同优先级同时请求高优先级先服务;2)同一优先级的中断请求采用轮询的方法复用,轮询的方法分为两种,一种是每一块传输结束开始服务下一个同优先级的DMA通道传输,另一种是DMA通道传输任务结束后,服务下一个同优先级的DMA通道传输。
3)低优先级的服务被高优先级的服务中断。
其中各中断的优先级由主处理器在在该DMA传输初始化时配置。中断源可以是来之于节点的硬中断,也可以是来之于主处理器的软中断。每个DMA的中断是否允许响应既该各中断的使能信号也是在DMA传输初始化时配置。
分割单元110的主要功能是将长的DMA传输分割成多个短DMA传输。分割的原则是非易失型存储器接口每次访问非易失型存储器时地址空间必须连续、块对齐且最大的块数受限制。
每次分割由以下条件决定该DMA通道需要传输的长度、每次传输的最大允许的块数、分割后的每次DMA传输的逻辑地址必须连续。每个DMA通道最大允许的传输块数可以在该DMA传输初始化时配置。
对于A类节点的DMA传输分割方法如下如果A类节点提出要求传输的数据跨过的块数大于最大允许传输块数,则将这次的DMA传输长度设为最大允许传输块数。
如果A类节点提出要求传输的数据跨过的块数不大于最大允许传输块数,则将这次的DMA传输长度设为数据跨过的块数。
对于B类节点的DMA传输分割方法如下主控制器给出该DMA通道的这次DMA传输的传输长度、逻辑地址暂存器的地址以及这次DMA传输的首逻辑块地址相对于该地址暂存器的地址的内容的偏移量。
该分割后得到两个参数,一个是这次DMA传输的首逻辑块地址和传输块数。
首逻辑块地址按以下原则得到1)根据地址暂存器的地址从地址暂存器中将对应项(“项”是指簇链结构中储存连续的段)读出,该项包括首逻辑块地址以及数据存储连续长度。
2)若数据存储的连续长度大于偏移量,则首逻辑块地址就是首地址所在的逻辑块的地址。若数据存储的连续长度小于偏移量,则将地址偏移量减去连续长度,地址暂存器地址跳到下一项重复。
其中,本发明实施例中所述偏移量的概念,是因为在实际的应用中,如MP3播放,可能需要从某一个字节开始到另一个以字节为单位的地址结束。因此,有时需要引入第一个簇的偏移量和传输长度的参数。例如地址指示缓冲区内的数据表示为,起始扇区2,结束扇区为3,如果按照512字节/扇区的计算,那么就是1024个字节。但是所需的数据位于2和3扇区之间的第500-700字节,那么就需要在第一簇的偏移量设置为500,传输长度为200,获得这之间的数据,而非扇区2和3的全部数据。
当找到首逻辑块地址后,按以下原则确定传输块数1)如果DMA要求传输的数据跨过的块数大于最大传输块数,且最大传输块的地址在当前项的所表示的地址空间内,则传输块数就是当前DMA的最大传输块数。
2)如果DMA要求传输的数据跨过的块数大于最大传输块数,且最大传输块的地址超出当前项的所表示的地址空间内,则传输块数就是首逻辑块当前项的所表示的地址空间内最大的块所跨越的块数。
3)如果DMA要求传输的数据跨过的块数不大于最大传输块数,且最大传输块的地址在当前项的所表示的地址空间内,则传输块数就是当前DMA要求传输的数据跨过的块数。
4)如果DMA要求传输的数据跨过的块数不大于最大传输块数,且最大传输块的地址超出当前项的所表示的地址空间内,则传输块数就是首逻辑块当前项的所表示的地址空间内最大的块所跨越的块数。
寄存器组112的主要功能是提供一个与主处理器通信的软件接口。寄存器组可以分为命令寄存器、状态寄存器、参数寄存器。命令寄存器的主要功能是存储住处理器发出的命令。状态寄存器的主要是存储一些状态变量,主处理器通过读出这些变量可以知道DMA控制状态。参数寄存器主要存储DMA通道一些参数,如地址暂存器中起始地址、首字节偏移量、传输长度和传输方向等。
逻辑地址暂存器接口104的主要功能是在分割单元110的控制下从逻辑地址暂存器中读出该DMA通道的簇链结构。
A类节点接口102的主要功能是处理与A类节点间通信的协议,包括接收某一节点的DMA通道请求、逻辑地址和传输长度。在主控制器的控制下给出该DMA通道被服务信号,并从该设备读出或向该设备写入数据。
B类节点接口100的主要功能是处理与B类节点间通信的协议,包括接收某一节点的DMA通道请求,在主控制器的控制下给出该DMA通道被服务信号,并从该设备读出或向该设备写入数据。
非易失型存储器接口114的主要功能是处理与非易失型存储器进行通信的协议,包括向非易失型存储器发出读或写请求,并从非易失型存储器读出或向非易失型存储器接口写入数据。
主控制器108的主要功能是控制和协调各模块工作,并产生中断或指示信号。
其中,主控制108的状态机如图3所示,由IDLE、LOAD、Pr_RD、RD、RD_J、RD_WT、RD_E、Pr_WR、WR1、WR2、WR_J、WR_WT和WR_E状态构成IDLE该状态表示处于空闲状态。当从中断控制器接收一个中断时,进行LOAD状态。
LOAD在LOAD状态,对给DMA进行分割,在分割的过程中可能修改偏移量。如果是读,下一状态是Pr_RD,如果是写,则下一个状态是Pr WR。
Pr_RD向非易失型存储器接口提出读请求。当非易失型存储器接口给出读请求响应信号是进入RD。
RD主要的功能从控制非易失型存储器接口向节点设备接口传输数据。但该块传输结束,进入RD_J。
RD_J主要功能是判断下一个这次DMA请求是否结束。如果是,则进入RD_E,否则进入RD_WT。
RD_WT主要功能是等待非易失型存储器接口数据有效信号和节点设备缓冲区有效信号。当这两各设备同时有效时,进入RD。
RD_E完成一些结束操作,如更新状态寄存器。
Pr_WR.向非易失型存储器接口提出写请求。当非易失型存储器接口给出写请求响应信号是进入WR1。
WR1主要的功能控制非易失型存储器接口接收节点设备接口传输来的数据。但该块传输结束,进入WR2。
WR2在该状态时非易失型存储器接口将刚接收的数据写入存储介质,当数据写完时,进行WR_J。
WR_J主要功能是判断下一个这次DMA请求是否结束。如果是,则进入WR_E,否则进入WR_WT。
WR_WT主要功能是等待非易失型存储器接口缓冲区有效信号和节点设备数据有效信号。当这两各设备同时有效时,进入WR1。
WR_E完成一些结束操作,如更新状态寄存器其中,关于中断响应的时序为对较高优先级的中断,需立即执行的,当状态机处于读操作的任意一个状态时,则下一状态是RD_E,当状态机处于写操作的任意一个状态时,则下一状态是WR_E。
对与同优先级的中断,需按块时分共享总线带宽时,当状态机处于读操作,当RD_J时,下一状态是RD_E,当状态机处于写操作,当WR_J时,下一状态是WR_E。
对于低优先级的中断,只能在IDLE状态下仲裁决定。
在利用本发明的DMAC控制器控制进行数据交换时,可以执行如下步骤步骤1主处理器对DMA通道进行初始化,初始化的参数包括DMAC控制器向非易失型存储器接口提出传输请求时每次最大传输块数、中断优先级和传输方向(即是读请求还是写请求),对于B类节点的DMA,还需配置逻辑地址暂存器地址、偏移量和传输长度。
步骤2DMAC控制器接收到该DMA通道中断请求,该中断可以是来自于节点的硬中断,也可以是来之与处理器的软中断。
步骤3中断控制器根据中断响应策略决定何时响应该中断。当DMAC控制器决定为该DMA通道服务时,进入步骤4。
步骤4首先按分割原则对该DMA通道传输进行分割,确定分割后的DMA传输的传输长度,然后完成这次DMA数据传输。当这次短的DMA传输结束后,判断该节点的DMA通道传输是否结束,如果结束给出DMA传输结束中断或指示信号给主处理器,如果没有结束,则由DMAC更新这次该节点DMA通道的参数,如逻辑地址暂存器地址和偏移量,再次传输。
下面结合图3中的状态机翻转示意,说明DMAC控制非易失性存储器与节点播放器间数据传输的流程,包括了读、写两类操作。
其中读操作的流程包括以下步骤(请同时参照图4的状态变化)步骤100,DMAC在空闲状态(IDEL),等待命令输入;步骤110,DMAC接收到读取指令和相关参数后,转入初始化(LOAD)状态,获取此次操作的源、目标设备和扇区形式表示的读写地址,并且可以将其中一部分参数写入到参数寄存器,如地址与长度参数;
步骤120,DMAC判断是读操作指令还是写操作指令,如果是读操作指令,转为“准备读数据”(Pr_RD)状态,执行步骤130,否则,转为“准备写数据”(Pr_WR)状态,执行步骤180;步骤130,DMAC向作为源设备的非易失性存储器的存储器控制器提出读请求,指示当前要读取的扇区号,该存储器控制器将指定扇区的数据读入内部RAM,向DMAC返回响应信号,若目标播放器准备好接收数据的信号同时有效,转入“读数据”(RD)状态;步骤140,在DMAC控制下,所述存储器控制器将内部RAM中的数据通过DMA总线直接传输到目标播放器的FIFO缓存器中,在一个扇区数据传输完成后,DMAC转入“读数据结束”(RD_J)状态;在一次传输过程中,可以由DMAC做一个发起,由这两个设备自动完成数据在DMA总线上的传输,播放器会从FIFO缓存器中不断读出数据,并给出缓存器是否可写入数据的有效信号。也可以由DMAC控制器来统一协调两个设备间数据的传输。
步骤150,DMAC判断此次操作要读取的数据是否均已传输完毕,如果没有,执行步骤160,否则,执行步骤170;步骤160,DMAC转入读数据-等待状态回应(RD_WT)状态,取出下一要读取的扇区号并通知所述存储器控制器,等待存储器控制器完成当前扇区数据读出的响应信号和播放器准备好接收数据的信号,如这两个信号同时有效,转入“读数据”(RD)状态,返回步骤140;步骤170,DMAC转入“读数据更新“(RD_E)状态,更新状态寄存器组中的状态变量并在参数寄存器组中写入需要返回的参数,向主处理器发出中断信号,完成一次从非易失性存储器读取数据传送到播放器的操作,返回步骤110;步骤180,DMAC先向目标非易失性存储器的存储器控制器提出写请求,指示当前数据要写入的扇区号,存储器控制器准备好后,给出响应信号,如播放器也已给出数据已准备好的指示信号,则转入“写数据1”(WR1)状态;
步骤190,在DMAC的控制下,将作为源设备的播放器缓存器中的数据读出,经DMA总线写入到存储器控制器的内部RAM,内部RAM已写满或数据已传输完成后,转为“写数据2”(WR2)状态;步骤200,存储器控制器将内部RAM中的数据写入非易失性存储器当前指定的扇区,数据写完后转为“写数据结束”(WR_J)状态;步骤210,DMAC判断此次操作要写入的数据是否已写完,如果没有,执行步骤220,否则,执行步骤230;步骤220,DMAC转入写数据-等待状态回应(WR_WT)状态,取出下一要写入的扇区号并通知所述存储器控制器,等待存储器控制器和播放器已准备好的信号,如这个信号同时有效,返回步骤190;步骤230,DMAC转为“写数据更新”(WR_E)状态,更新状态寄存器组中的状态变量并在参数寄存器写入需要返回的参数,向主处理器发出中断信号,完成一次从播放器读取数据传送到非易失性存储器的操作,返回步骤110。
权利要求
1.一种直接存储访问控制器,在处理器对节点设备提出的直接存储访问通道中断请求进行初始化配置后,控制节点设备与非易失型存储器之间直接交换数据,其特征在于,包括中断控制器、分割单元、寄存器组、逻辑地址暂存器接口、节点设备接口、主控制器,其中,主控制器,用于控制和协调各模块的工作,并在直接存储访问通道结束传输后发出传输结束信号给处理器;寄存器组,用于提供一个与处理器通信的接口,存储有处理器发出的命令以及配置的参数,包括每次最大传输块数、通道中断请求的优先级;节点设备接口,用于提供与节点设备之间的通信协议,包括接收来自节点设备的直接存储访问通道中断请求,在主控制器的控制下给出该直接存储访问通道被服务的信号,并从该节点设备读出或写入数据;中断控制器,与主控制器、寄存器组、节点设备相连,用于根据节点设备发出的直接存储访问通道的中断请求优先级参数,与自身的中断响应策略来确定向主控制器提出中断请求的时间;分割单元,与主控制器、节点设备接口、逻辑地址暂存器接口、非易失型存储器接口相连,用于在主控制器的控制下,根据所述寄存器组中存储的参数,将长的直接存储访问传输分割成多个短的直接存储访问传输,分割的原则是非易失型存储器接口每次访问非易失型存储器时,地址空间必须连续、块对齐且最大的块数在预设的最大允许传输块数之内,分割后获得本次传输的首逻辑块地址和传输块数参数;逻辑地址暂存器接口,用于在分割模块的控制下,从逻辑地址暂存器中读出本次直接存储访问通道传输的数据存储在非易失型存储器中的簇链结构信息;非易失型存储器接口,用于提供与非易失型存储器通信的协议,在主控制器的控制下,根据分割单元获得的本次传输的参数,从非易失型存储器中读出或写入数据。
2.如权利要求1所述的控制器,其特征在于,所述的主控制器在直接存储访问通道结束传输后发出的传输结束信号,为中断信号。
3.如权利要求1所述的控制器,其特征在于,所述的主控制器在直接存储访问通道结束传输后发出的传输结束信号,为指示信号。
4.如权利要求1所述的控制器,其特征在于,所述的寄存器组包括命令寄存器,用于存储处理器发出的命令;状态寄存器,用于存储状态变量,处理器通过读取这些变量获知直接存储访问控制状态;参数寄存器,用于存储处理器对传输中断请求初始化配置的参数,包括每次最大传输块数、中断请求优先级、传输方向、逻辑地址暂存器中的起始地址、首字节偏移量、传输长度。
5.如权利要求1所述的控制器,其特征在于,所述节点设备接口为A类节点设备接口,其中,A类节点设备是指节点本身需要提供访问非易失型存储器的逻辑地址及传输长度。
6.如权利要求1所述的控制器,其特征在于,所述节点设备接口为B类节点设备接口,其中,B类节点设备是指节点本身不直接提供非易失型存储器的逻辑地址,其逻辑地址存储在逻辑地址暂存器中,B类节点设备每次进行直接存储访问传输时,由处理器指示该节点准备访问的逻辑地址存储在逻辑地址暂存器中的位置。
7.如权利要求1所述的控制器,其特征在于,所述中断控制器的中断策略包括1)不同优先级同时请求时,高优先级的中断先服务;2)同一优先级的中断请求采用轮询的方式复用;3)低优先级的服务被高优先级的服务中断。
全文摘要
本发明公开了一种直接存储访问控制器,由中断控制器、分割单元、寄存器组、逻辑地址暂存器接口、节点设备接口、主控制器组成,其中,中断控制器根据中断响应策略决定何时向主控制器发送该DMA通道传输请求中断,当DMAC控制器决定为该DMA通道服务时,首先对该DMA通道传输进行分割,确定分割后的DMA传输的传输长度,然后完成这次DMA数据传输。当这次短的DMA传输结束后,判断该节点的DMA通道传输是否结束,如果结束给出DMA传输结束中断或指示信号给主处理器,如果没有结束,则更新这次该节点DMA通道的参数,再次传输。本发明仅占用少量的CPU资源即实现了多个DMA通道任务间频繁切换的问题。
文档编号G06F13/20GK1804823SQ20051013222
公开日2006年7月19日 申请日期2005年12月22日 优先权日2005年12月22日
发明者王军, 金传恩 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1