高功能环形缓冲缓存系统及其控制方法

文档序号:6357245阅读:296来源:国知局
专利名称:高功能环形缓冲缓存系统及其控制方法
技术领域
本发明涉及一种用于高速传输领域的缓存技术,具体涉及一种高功能环形缓冲缓存系统及其控制方法。
背景技术
USB3. 0是下一代超高速USB传输技术,传输速率大约是5(ibpS,理论上的最高速率是4. SGbps,是现有USB2. 0传输速率的10倍。用于USB2. 0控制器中的DMA引擎一般是采用流量控制,根据USB2. 0交易转移器的要求用流量控制的方法来尝试或重试。对调度到 USB交易转换器的定期交通流量而言,派遣时刻表是根据一组规则事先确定的,而不是根据实时运行。对于比现有技术的USB2. 0技术快10倍的USB3. 0控制器来说,这种办法就不能满足USB3.0带宽的要求。

发明内容
本发明公开一种高功能环形缓冲缓存系统及其控制方法,适用于USB3. 0技术,并提高分散及收集式直接内存访问DMA引擎的功能。为实现上述目的,本发明提供一种高功能环形缓冲缓存系统,其特点是,该系统包含传递管理模块,以及分别与该传递管理模块双向电路连接的内容关联管理模块和内容存储器;
上述的传递管理模块还双向电路连接外接的DMA引擎模块和主机控制接口。上述的传递管理模块包含
内部内容关联控制器;该内部内容关联控制器与上述的内容关联管理模块和内容存储器双向电路连接;以及,
分别与上述的内部内容关联控制器双向电路连接的传递引擎模块和完成引擎模块。一种高功能环形缓冲缓存系统的传递控制方法,其特点是,该方法包含以下步骤
步骤1 DMA引擎模块向完成引擎模块发送重试=1的信号; 步骤2完成引擎模块执行读修改写指令;
步骤2. 1完成引擎模块接收到DMA引擎模块发送的一个完成事件; 步骤2. 2完成引擎模块向内部内容关联控制器发送读修改写指令; 步骤2. 3内部内容关联控制器判断该读修改写指令是否与传递引擎模块冲突,若是则不执行该指令,若否,则开始执行该指令,并跳转到步骤2. 4 ;
步骤2. 4内部内容关联控制器读重试状态标识为端点任务设置为0 ;
步骤2. 5内部内容关联控制器更新重试状态,写为1 ;
步骤3传递引擎模块通过执行读修改写指令来独立访问内容存储器;
步骤3. 1传递引擎模块发送读修改写指令至内部内容关联控制器;
步骤3. 2内部内容关联控制器判断该读修改写指令是否与完成引擎模块冲突,若是,
3若是则不执行该指令,若否,则开始执行该指令,并跳转到步骤3. 3 ;
步骤3. 3内部内容关联控制器读重试状态标识为端点任务设置为1 ; 步骤3. 4内部内容关联控制器更新重试状态,写为0; 步骤4传递引擎模块执行重试处理。本发明一种高功能环形缓冲缓存系统及其控制方法和现有技术中采用流量控制的控制技术相比,其优点在于,本发明设有内容关联管理模块以及电路连接的内部内容关联控制器,实现TRB的比特信息被紧凑的缓存在局部缓冲区,这个局部缓冲区包含了有关 TRB的必要信息,以便DMA引擎将不再需要去主内存去获得每个即将移动的数据包的TRB, 当TRB被获取,其信息就被存储在引擎中使得DMA数据开始被初始化直到TRB完全被直接内存访问,由于芯片可直接进行内存访问,只需要更短的周期来获取DMA需要的信息以支持PCIe和USB3的速率,提高满足了对USB3. 0带宽的要求,又不会大量增加门电路,体积小而紧凑,不仅降低功耗减少芯片面积更有利于芯片后端电路布线。


图1为本发明一种高功能环形缓冲缓存系统的结构模块图2为本发明高功能环形缓冲缓存系统的传递控制方法的方法流程图; 图3为本发明一种高功能环形缓冲缓存系统的传输数据流的实施例的示意图。
具体实施例方式以下结合

本发明的具体实施方式
。本发明公开了一种环形缓冲缓存系统及其控制方法主要应用于USB3.0的主端控制器。该USB3.0主控器可以是独立的芯片配置在计算机或数字电视机的主机板上提供USB3. 0的主机端口或集成在各种需要USB3. 0主端口的系统芯片,外面可接各种不同的 USB3. 0应用,如U盘、外接硬盘等,当USB3. 0的端口不足时,可通过外接集线器来拓展多个 USB3.0端口。该缓存机制主要是用于提高分散及收集式直接内存访问DMA(Direct Memory Access,直接内存存取)引擎的功能。TRB (Transmit Ring Buffer)特指发送端环形缓冲, 它描述了在获取或在主记忆器内存放的USB交易的数据块,主记忆器指USB3. 0的主控制器芯片内带的记忆器,用于缓存数据块。该TRB的缓存能力可以让DMA引擎永远不会耗尽数据流,换句话说,TRB可以填满DMA管道,实现对PCI Express或USB3. 0连接的最大效能。上述的缓存机制是建立在每个端点内的缓存,这样每个USB3. 0的主控制器可以处理高达256x32多个外设端点(EP)。但是如果把每一个16字节的TRB都缓存起来,由于其门电路急剧扩张,集成电路的实现将是非常昂贵且不现实的。本发明环形缓冲缓存系统及其控制方法使得我们仅需存储必要的TRB内容关联信息而不是整个TRB来维持DMA的数据移动。如图1所示,本发明说明一种环形缓冲缓存系统,该系统包含传递管理模块1、内容关联管理模块2、内容存储器3。该传递管理模块1分别与内容关联管理模块2和内容存储器3双向电路连接。传递管理模块1还与外接的DMA引擎模块4和主机控制接口 5双向电路连接,该主机控制接口 5指计算机主机桥芯片,或中央处理器,或所有需带USB3.0主端口的接口。
传递管理模块1包含内部内容关联控制器13,以及分别与该内部内容关联控制器 13电路连接的传递引擎模块11和完成引擎模块12。内部内容关联控制器13分别与内容关联管理模块2和内容存储器3双向电路连接。传递引擎模块11用于解析传递环,并向DMA 引擎模块4产生请求。完成引擎模块12用于处理所有接收到的完成交易。内部内容关联控制器13用于仲裁传递引擎模块11和完成引擎模块12对内容存储器3的访问。传递引擎模块11用于来决定传递的数据量。传递引擎模块11全面执行或部分执行了交易之后,传递引擎模块11便会更新存储在内部控制内存行中的一个或多个状态领域,其反映了交易的状态。当一个响应从下游的集线器接收到后,完成引擎模块12用于刷新存储在一个或多个状态领域的数据来反映交易的状态。内容关联管理模块2与上述的DMA引擎模块4电路连接。该内容关联管理模块 2中设有局部缓冲区,TRB缓存在局部缓冲区中,该局部缓冲区内存储了有关TRB的必要信息,以便DMA引擎模块4将不再需要去计算机的主内存去获得每个即将移动的数据包的 TRB。该内容关联管理模块2便是主机DMA引擎性能增强的关键,一旦TRB被获取,其信息就被存储在DMA引擎模块4中使得DMA数据开始被初始化直到TRB完全被计算机的主内存访问。由于芯片可直接进行内存访问,因此只需要更短的周期来获取TRB被获取,其信息就被存储在DMA引擎模块4需要的信息以支持PCIe和USB3的速率。以下结合图2说明本发明环形缓冲缓存系统的传递管理控制方法。图2中说明了传递引擎模块11和完成引擎模块12协调变更内容存储器3中的重试标识。传递引擎模块11和完成引擎模块12是独立运行的,传递引擎模块11处理调度器请求的端点(endpoint,USB标准里的术语)任务,而完成引擎模块12处理按顺序接到的完成(Completion是USB的术语,指数据传送完成后的一个指令叫完成)。传递引擎模块11和完成引擎模块12利用内容数据来相互间传递状态信息。为了协调端点内容数据的修正,传递引擎模块11和完成引擎模块12施行控制内存的读修改写指令。一种环形缓冲缓存系统的传递控制方法,该方法包含以下步骤
步骤1 DMA引擎模块4向完成引擎模块12发送一个完成事件,该完成事件包含不成功交易必须重试的信号,该信号为重试=1。步骤2完成引擎模块12执行读修改写(计算机里的术语,read modified write) 指令。步骤2. 1完成引擎模块12接收到DMA引擎模块4发送的一个完成事件。步骤2. 2完成引擎模块12向内部内容关联控制器13发送读修改写指令。步骤2. 3内部内容关联控制器13判断该读修改写指令是否与传递引擎模块11冲突,即完成引擎模块12和传递引擎模块11是否同时想进入内容记忆器3,若是则不执行该指令,若否,则开始执行该指令,并跳转到步骤2. 4。步骤2. 4内部内容关联控制器13读重试状态标识为端点任务设置为0。步骤2. 5内部内容关联控制器13更新重试状态,写为1,修改了断端点内容。步骤3传递引擎模块11通过执行一个读修改写指令来独立访问内容存储器。步骤3. 1传递引擎模块11发送读修改写指令至内部内容关联控制器13。步骤3. 2内部内容关联控制器13判断该读修改写指令是否与完成引擎模块12冲突,即完成引擎模块12和传递引擎模块11是否同时想进入内容记忆器3,若是,若是则不执
5行该指令,若否,则开始执行该指令,并跳转到步骤3. 3。步骤3. 3内部内容关联控制器13读重试状态标识为端点任务设置在1。步骤3.4内部内容关联控制器13更新重试状态,写为0,修改了断端点内容。步骤4传递引擎模块11执行重试处理,重新进行DMA引擎模块4所发送的不成功交易。以下结合图3说明本发明环形缓冲缓存系统中传输数据流的一种实施例。局部TRB缓存读写指针形成了该循环局部TRB缓存的头指针和尾指针,局部TRB 缓存1210含有四组数据,该四组数据或也可应于4个TRBs的缓存位置。每一组数据含有特定于单一 TRB数据,比如第1180行到1188行。当一个新的TRB从传递环内读出时,TRB 的长度偏移是1180,IOC是1182,ISP是1184,TRB类型是1186,链的偏移是1188。数据缓存在有TRB缓存写指针1190指向的局部TRB缓存1210位置,以及其它可适用的TRB数据缓存在1110到1162行。传递引擎模块11于是采用局部TRB缓存1210的内容关联数据来处理新的TRB。处理完成后,局部TRB缓存写指针1190移动到下一个可行的缓存位置,另一个TRB进入缓存,第1110至1162行被刷新来反映新缓存的TRB。同时,当完成事件收到,局部TRB读指针1192指向以前的缓存位置来刷新TRB长度偏移1180。当TRB长度偏移1180 达到0,或收到短数据包或一个错误情况被检测到,局部TRB缓存读指针1192发生改变,以前的缓存位置被腾空出来,局部TRB缓存写指针1190可以用为新的TRB。尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述才内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
权利要求
1.一种高功能环形缓冲缓存系统,其特征在于,该系统包含传递管理模块(1),以及分别与所述的传递管理模块(1)双向电路连接的内容关联管理模块(2 )和内容存储器(3 );所述的传递管理模块(1)还双向电路连接外接的DMA引擎模块(4)和主机控制接口(5)。
2.如权利要求1所述的高功能环形缓冲缓存系统,其特征在于,所述的传递管理模块(1)包含内部内容关联控制器(13);该内部内容关联控制器(13)与所述的内容关联管理模块(2)和内容存储器(3)双向电路连接;以及,分别与所述的内部内容关联控制器(13)双向电路连接的传递引擎模块(11)和完成引擎模块(12)。
3.一种高功能环形缓冲缓存系统的传递控制方法,其特征在于,该方法包含以下步骤步骤1 DMA引擎模块(4)向完成引擎模块(12)发送重试=1的信号; 步骤2完成引擎模块(12)执行读修改写指令;步骤3传递引擎模块(11)通过执行读修改写指令来独立访问内容存储器(3); 步骤4传递引擎模块(11)执行重试处理。
4.如权利要求1所述的高功能环形缓冲缓存系统的传递控制方法,其特征在于,所述的步骤2包含还包含以下步骤步骤2. 1完成引擎模块(12)接收到DMA引擎模块(4)发送的一个完成事件; 步骤2. 2完成引擎模块(12 )向内部内容关联控制器(13)发送读修改写指令; 步骤2. 3内部内容关联控制器(13)判断该读修改写指令是否与传递弓I擎模块(11)冲突,若是则不执行该指令,若否,则开始执行该指令,并跳转到步骤2. 4 ;步骤2. 4内部内容关联控制器(13)读重试状态标识为端点任务设置为0 ; 步骤2.5内部内容关联控制器(13)更新重试状态,写为1。
5.如权利要求1所述的高功能环形缓冲缓存系统的传递控制方法,其特征在于,所述的步骤3包含还包含以下步骤步骤3. 1传递引擎模块(11)发送读修改写指令至内部内容关联控制器(13); 步骤3. 2内部内容关联控制器(13)判断该读修改写指令是否与完成引擎模块(12)冲突,若是,若是则不执行该指令,若否,则开始执行该指令,并跳转到步骤3. 3 ; 步骤3. 3内部内容关联控制器(13)读重试状态标识为端点任务设置为1 ; 步骤3. 4内部内容关联控制器(13)更新重试状态,写为0。
全文摘要
本发明提供一种高功能环形缓冲缓存系统及其控制方法,该系统包含传递管理模块,以及分别与该传递管理模块双向电路连接的内容关联管理模块和内容存储器;上述的传递管理模块还双向电路连接外接的DMA引擎模块和主机控制接口。本发明实现TRB的比特信息被紧凑的缓存在局部缓冲区,DMA引擎将不再需要去主内存去获得每个即将移动的数据包的TRB,本芯片可直接进行内存访问,只需要更短的周期来获取DMA需要的信息,提高满足了对USB3.0带宽的要求,体积小而紧凑,不仅降低功耗减少芯片面积更有利于芯片后端电路布线。
文档编号G06F13/28GK102184150SQ201110080690
公开日2011年9月14日 申请日期2011年4月1日 优先权日2011年4月1日
发明者倪洁, 张劲帆 申请人:昆山酷威微电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1