CN107667357B - 用于分离突发带宽仲裁的方法及设备 - Google Patents
用于分离突发带宽仲裁的方法及设备 Download PDFInfo
- Publication number
- CN107667357B CN107667357B CN201680029623.9A CN201680029623A CN107667357B CN 107667357 B CN107667357 B CN 107667357B CN 201680029623 A CN201680029623 A CN 201680029623A CN 107667357 B CN107667357 B CN 107667357B
- Authority
- CN
- China
- Prior art keywords
- channel
- data transfer
- scheme
- embedded system
- separate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/37—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Abstract
本发明揭示一种嵌入式系统及用于控制此嵌入式系统的方法。所述嵌入式系统包含包括多个通道的直接存储器控制器,其中多个通道仲裁方案可编程,其中DMA控制器可编程以将指定通道上的块数据传送分离成多个单独数据传送,其中可在所述数据传送的单独数据传送之间,中断指定通道上的数据传送。
Description
相关申请案的交叉参考
本申请案主张2015年6月1日提交的共同拥有的第62/169,354号美国临时专利申请案的优先权,所述专利申请案特此出于所有目的而以引用的方式并入本文中。
技术领域
本发明涉及一种用于特定地说直接存储器存取(DMA)控制器中的分离突发带宽仲裁的方法及设备。
背景技术
许多嵌入式系统(例如微控制器)包括DMA控制器,所述DMA控制器允许通过微控制器的内部系统总线的有效且快速数据传送。总线(特定地说,嵌入式系统中的系统总线)通常允许嵌入式系统的各种组件进行通信。DMA控制器通常提供所谓的突发操作,所述突发操作提供高速大数据传送。然而,此类突发操作可阻塞整个总线,且需要存取的其它组件将无法存取总线,直到已完成突发传送为止。因此,需要记录挂起事务的请求与状态的额外措施。
发明内容
需要防止低优先权代理器在突发操作期间占据总线达延长的时间段。通过将突发操作分离成事务,可在其它模块中共享总线带宽。
揭示一种嵌入式系统及用于控制此嵌入式系统的方法。所述嵌入式系统包含包括多个通道的直接存储器控制器,其中多个通道仲裁方案可编程,其中DMA控制器可编程以将指定通道上的块数据传送分离成多个单独数据传送,其中可在数据传送的单独数据传送之间,中断指定通道上的数据传送。
根据各种实施例,揭示一种嵌入式系统。所述嵌入式系统可包含包括多个通道的直接存储器控制器,其中多个通道仲裁方案可编程,其中DMA控制器可编程以将指定通道上的块数据传送分离成多个单独数据传送,其中可在数据传送的单独数据传送之间,中断指定通道上的数据传送。
在某些实施例中,仲裁方案包含轮转法方案及固定优先权方案。在其它实施例中,仲裁方案包含轮转法方案及可指派优先权方案。在某些实施例中,块数据传送可在在控制寄存器中设置位之后被分离成多个单独数据传送。
在某些实施例中,单独数据传送可包含可编程最大值的数据字节。在此类实施例中,可编程最大值是存储于控制寄存器中的值。
在某些实施例中,单独数据传送可包含固定数目的数据字节。在此类实施例中,固定数目的数据字节可为一个字节。
在各种实施例中,揭示一种用于操作嵌入式系统的方法。所述方法可包含:操作包括多个通道的直接存储器控制器,其中多个通道仲裁方案可编程;及对DMA控制器进行编程以将指定通道上的块数据传送分离成多个单独数据传送,其中可在数据传送的单独数据传送之间,中断指定通道上的数据传送。
在所述方法的某些实施例中,仲裁方案可包含轮转法方案及固定优先权方案。在其它实施例中,仲裁方案可包含轮转法方案及可指派优先权方案。
在所述方法的某些实施例中,块数据传送可在在控制寄存器中设置位之后被分离成多个单独数据传送。在相同或替代实施例中,单独数据传送可包含可编程最大值的数据字节。在此类实施例中,可编程最大值是存储于控制寄存器中的值。
在所述方法的某些实施例中,单独数据传送可包含固定数目的数据字节。在此类实施例中,固定数目的数据字节可为一个字节。
附图说明
图1展示根据本发明的特定实施例的典型嵌入式系统,例如包含与内部系统总线耦合的中央处理单元的微控制器,所述内部系统总线连接微控制器的各种外围装置;
图2说明根据本发明的特定实施例的根据此方案的三个通道的实例典型数据传送;且
图3展示根据本发明的特定实施例的其中用于通道1的传送被分解成许多子事务的实例。
具体实施方式
需要防止低优先权代理器在突发操作期间占据总线达延长的时间段。通过将突发操作分离成事务,可在其它模块中共享总线带宽。
图1展示根据本发明的特定实施例的典型嵌入式系统100,例如包含与内部系统总线耦合的中央处理单元(CPU)110的微控制器,所述内部系统总线连接微控制器的各种外围装置130到150。所述外围装置中的一者可为直接存储器存取控制器(“DMA”或“控制器”)150,其允许在外围装置130、140等等与存储器160之间或存储器160内的数据传送。嵌入式DMA控制器150提供多个传输通道,例如,16个通道,其中每一通道可具有可指派或固定通道优先权,或控制器150可使用轮转法指派。可通过相应信号来触发每一通道操作。如果多个经选择触发同时出现在多个通道中,那么DMA宏经设计以基于轮转法或固定优先权方案来选择下一通道用于服务。注意两个方案共享根据某些实施例的下列共同特性。
在某些实施例中,对于每一触发来说,必须完成所有相关联事务。对于“一次性”传送模式来说,可在当前通道正等待下一触发时服务下一通道。对于“连续”模式来说,下一通道将仅在当前通道的计数器(例如,“CNT[15:0]”)递减到零时获得服务。在相同或替代实施例中,必须在服务另一通道之前完成读取及写入事务组合两者以避免数据排序问题。
在某些实施例中,针对每一指令周期评估授予确定。过程以基于经设置方案确定当前具有最高优先权的请求通道开始。接着,仅在判赢的DMA通道的总线带宽可用时给定授予。如果由判赢的DMA通道请求的特定总线的带宽不可用,那么在下一指令周期中重复过程。
在某些实施例中,可使用“轮转法”优先权方案。在此方案中,可(例如)至少在在控制寄存器中设置优先权位时使用优先权。例如,当相应控制寄存器中的DMACON.PRIORITY位被设置为低时,轮转法优先权方案被用于选择下一DMA通道以供服务。例如,如果方案以通道0开始,那么待选择下一通道是具有下一轮的最低通道编号的通道。例如,如果同时触发通道0、1及2,那么通道0将首先被调度用于服务,接着分别服务通道1及通道2。下文表1说明此实例默认设置。图2说明根据本发明的特定实施例的根据此方案的三个通道的实例典型数据传送。
表1
然而,在某些配置中,如果在之后的任何时间再次触发通道0,那么将仅在下一轮的开始处首先服务所述通道0。即使在第二次触发通道0之前已被服务之后再次触发通道1,仍将在第二轮在通道0之后服务通道1。
在某些实施例中,可使用“固定”优先权方案。在此方案中,可(例如)至少在在控制寄存器中设置优先权位时使用优先权。例如,当DMACON.PRIORITY位在相应控制寄存器中设置为高时,基于通道编号固定优先权方案。例如,以通道0开始,与之前已发生的内容无关,待选择下一通道是具有最低通道优先权的通道。例如,如果同时触发通道0、1及2,那么通道0将首先被调度用于服务,接着分别是通道1及通道2。如果再次触发通道0,那么一旦完成当前反复(由一或多个事务组成),通道0即将被调度用于服务。下文表2说明用于此方案的实例设置。
表2
CH0 req | CH1 req | CH2 req | CH3 req | CH授予 |
- | - | - | - | 无 |
- | 是 | - | - | CH1 |
是 | 是 | 是 | - | CH0 |
是 | 是 | - | - | CH0 |
- | 是 | - | - | CH1 |
- | 是 | - | 是 | CH1 |
- | - | - | 是 | CH3 |
在许多系统中,发现多个DMA通道。特定仲裁方案通常使用固定优先权且总线存取可通常被授予无法如图2中展示那样中断的完整传送。这些类型的方案允许长期运行低优先权传送以显著延迟高优先权请求的服务。
根据各种实施例,维持通道状态,其使传送可中断且使传送可恢复。此外,传送被分解成许多子事务(例如,处于字节级),其可允许尽可能多的仲裁机会。图3展示根据本发明的特定实施例的其中用于通道1的传送被分解成许多子事务210a、210b、210c、210d及210e的实例。类似地,通道0上的传送被分解成子事务200a、200b及200c。通道2上的传送被分解成子事务220a及220b。可实施各种仲裁方案,且其可按每一事务而非每一传送被应用,此可允许低优先权突发传送通过较高优先权传送的分离。图3中的实例说明类似于上文参考图2描述的方案的固定优先权方案中的参考子事务。假定通道1及通道2在第一时间t1请求传送,归因于较高优先权,通道1的传送首先开始。然而,传送可被分解成可中断子事务210a到210e。因此,当通道0在时间t2请求传送时,通道0传送将被中断且将在时间t3恢复。在时间t4,通道2请求传送,由于无较高优先权传送挂起,所以所述传送将被授予。
各种实施例提供下列优点:嵌入式系统具有不同于其它计算机的使用规范。在嵌入式系统中,延时是更可能的关键系统特性而非处理量。系统将能够比当前可行方案更好地满足最小反应时间数量级。这增大可使用8位微控制器进行服务的问题域。
Claims (16)
1.一种嵌入式系统,其包括具有多个通道的直接存储器控制器,其中多个通道仲裁方案是能够编程的,其中DMA控制器能够编程以将指定通道上的块数据传送分离成多个单独数据传送,其中经选定的通道仲裁方案应用于每一单独数据传送,其中在所述数据传送的单独数据传送之间,指定通道上的数据传送能够被中断,其中
在控制寄存器中设置位之后,块数据传送被分离成所述多个单独数据传送,且其中每一单独数据传送包括能够编程的最大值的数据字节。
2.根据权利要求1所述的嵌入式系统,其中所述多个通道仲裁方案包括轮转法方案。
3.根据权利要求1所述的嵌入式系统,其中所述多个通道仲裁方案包括固定优先权方案。
4.根据权利要求1所述的嵌入式系统,其中所述多个通道仲裁方案包括能够指派的优先权方案。
5.根据权利要求1所述的嵌入式系统,其中所述能够编程的最大值是存储在控制寄存器中的值。
6.根据权利要求1所述的嵌入式系统,其中每一单独数据传送包括固定数目的数据字节。
7.根据权利要求6所述的嵌入式系统,其中所述固定数目的数据字节是一个字节。
8.根据权利要求1、5-7中任一权利要求所述的嵌入式系统,其中所述多个通道仲裁方案中的至少一者选自群组,所述群组由轮转法方案、固定优先权方案及能够指派的优先权方案组成。
9.一种用于操作嵌入式系统的方法,所述方法包括:
操作包括多个通道的直接存储器控制器,其中多个通道仲裁方案是能够编程的;
对DMA控制器进行编程以将指定通道上的块数据传送分离成多个单独数据传送,其中在所述数据传送的单独数据传送之间,指定通道上的数据传送能够被中断,其中经选定的通道仲裁方案应用于每一单独数据传送,
其中
在控制寄存器中设置位,使得块数据传送被分离成所述多个单独数据传送,且
其中每一单独数据传送包括能够编程的最大值的数据字节。
10.根据权利要求9所述的方法,其中所述多个通道仲裁方案包括轮转法方案。
11.根据权利要求9所述的方法,其中所述多个通道仲裁方案包括固定优先权方案。
12.根据权利要求9所述的方法,其中所述多个通道仲裁方案包括能够指派的优先权方案。
13.根据权利要求9所述的方法,其中所述能够编程的最大值是存储在控制寄存器中的值。
14.根据权利要求9所述的方法,其中每一单独数据传送包括固定数目的数据字节。
15.根据权利要求14所述的方法,其中所述固定数目的数据字节是一个字节。
16.根据前述权利要求9和13-15中任一权利要求所述的方法,其中所述多个通道仲裁方案中的至少一者选自群组,所述群组由轮转法方案、固定优先权方案及能够指派的优先权方案组成。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562169354P | 2015-06-01 | 2015-06-01 | |
US62/169,354 | 2015-06-01 | ||
US15/169,352 US10318457B2 (en) | 2015-06-01 | 2016-05-31 | Method and apparatus for split burst bandwidth arbitration |
US15/169,352 | 2016-05-31 | ||
PCT/US2016/035156 WO2016196549A1 (en) | 2015-06-01 | 2016-06-01 | Method and apparatus for split burst bandwidth arbitration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107667357A CN107667357A (zh) | 2018-02-06 |
CN107667357B true CN107667357B (zh) | 2021-05-25 |
Family
ID=57397562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680029623.9A Active CN107667357B (zh) | 2015-06-01 | 2016-06-01 | 用于分离突发带宽仲裁的方法及设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10318457B2 (zh) |
EP (1) | EP3304327B1 (zh) |
JP (1) | JP2018516406A (zh) |
KR (1) | KR20180014689A (zh) |
CN (1) | CN107667357B (zh) |
TW (1) | TW201701161A (zh) |
WO (1) | WO2016196549A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294233B (zh) * | 2015-06-29 | 2019-05-03 | 华为技术有限公司 | 一种直接内存访问的传输控制方法及装置 |
US10838896B2 (en) * | 2018-10-15 | 2020-11-17 | Texas Instruments Incorporated | Split direct memory access (DMA) |
CN110138553B (zh) * | 2019-05-10 | 2022-08-19 | 郑州信大捷安信息技术股份有限公司 | 一种IPSec VPN网关数据包处理装置及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002048891A2 (en) * | 2000-12-14 | 2002-06-20 | Filanet Corporation | Arbitration and crossbar device and method |
JP2002366507A (ja) * | 2001-06-12 | 2002-12-20 | Fujitsu Ltd | 複数チャネルdmaコントローラおよびプロセッサシステム |
CN101150486A (zh) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | 一种零拷贝缓冲区队列网络数据接收的管理方法 |
JP2009505169A (ja) * | 2005-06-30 | 2009-02-05 | フリースケール セミコンダクター インコーポレイテッド | ダイレクトメモリアクセスタスク要求のアービトレーションを行うためのデバイスおよび方法 |
US7877524B1 (en) * | 2007-11-23 | 2011-01-25 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
US8812898B1 (en) * | 2012-09-27 | 2014-08-19 | Cadence Design Systems, Inc. | System and method for transfer of data between memory with dynamic error recovery |
US8880756B1 (en) * | 2013-07-01 | 2014-11-04 | Atmel Corporation | Direct memory access controller |
CN104536921A (zh) * | 2015-01-19 | 2015-04-22 | 浪潮电子信息产业股份有限公司 | 一种edma控制器分离式并行数据通道的设计方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371517A (en) * | 1991-11-08 | 1994-12-06 | Texas Instruments Incorporated | Video interface palette, systems and method |
JP4470183B2 (ja) * | 2006-08-28 | 2010-06-02 | エルピーダメモリ株式会社 | 半導体記憶装置 |
JP2010054989A (ja) * | 2008-08-29 | 2010-03-11 | Mitsubishi Electric Corp | 階調制御方法および表示装置 |
-
2016
- 2016-05-31 US US15/169,352 patent/US10318457B2/en active Active
- 2016-06-01 WO PCT/US2016/035156 patent/WO2016196549A1/en active Application Filing
- 2016-06-01 TW TW105117243A patent/TW201701161A/zh unknown
- 2016-06-01 KR KR1020177031595A patent/KR20180014689A/ko unknown
- 2016-06-01 JP JP2017561329A patent/JP2018516406A/ja active Pending
- 2016-06-01 EP EP16728540.2A patent/EP3304327B1/en active Active
- 2016-06-01 CN CN201680029623.9A patent/CN107667357B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002048891A2 (en) * | 2000-12-14 | 2002-06-20 | Filanet Corporation | Arbitration and crossbar device and method |
JP2002366507A (ja) * | 2001-06-12 | 2002-12-20 | Fujitsu Ltd | 複数チャネルdmaコントローラおよびプロセッサシステム |
JP2009505169A (ja) * | 2005-06-30 | 2009-02-05 | フリースケール セミコンダクター インコーポレイテッド | ダイレクトメモリアクセスタスク要求のアービトレーションを行うためのデバイスおよび方法 |
CN101150486A (zh) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | 一种零拷贝缓冲区队列网络数据接收的管理方法 |
US7877524B1 (en) * | 2007-11-23 | 2011-01-25 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
US8812898B1 (en) * | 2012-09-27 | 2014-08-19 | Cadence Design Systems, Inc. | System and method for transfer of data between memory with dynamic error recovery |
US8880756B1 (en) * | 2013-07-01 | 2014-11-04 | Atmel Corporation | Direct memory access controller |
CN104536921A (zh) * | 2015-01-19 | 2015-04-22 | 浪潮电子信息产业股份有限公司 | 一种edma控制器分离式并行数据通道的设计方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201701161A (zh) | 2017-01-01 |
US20160350246A1 (en) | 2016-12-01 |
KR20180014689A (ko) | 2018-02-09 |
WO2016196549A1 (en) | 2016-12-08 |
EP3304327B1 (en) | 2020-01-08 |
JP2018516406A (ja) | 2018-06-21 |
US10318457B2 (en) | 2019-06-11 |
CN107667357A (zh) | 2018-02-06 |
EP3304327A1 (en) | 2018-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5621897A (en) | Method and apparatus for arbitrating for a bus to enable split transaction bus protocols | |
US20120042105A1 (en) | Bus arbitration apparatus | |
EP1861787B1 (en) | Bus access arbitration scheme | |
US6467002B1 (en) | Single cycle modified round-robin arbitration with embedded priority | |
US6016528A (en) | Priority arbitration system providing low latency and guaranteed access for devices | |
US7684431B1 (en) | System and method for arbitration in a packet switch | |
US5996037A (en) | System and method for arbitrating multi-function access to a system bus | |
US6178475B1 (en) | Multimedia system employing timers to properly allocate bus access | |
JP2009508247A (ja) | バス調停に関する方法及びシステム | |
US10169256B2 (en) | Arbitrating direct memory access channel requests | |
CN107667357B (zh) | 用于分离突发带宽仲裁的方法及设备 | |
US8213461B2 (en) | Method of designating slots in a transmission frame for controlling transmission of data over an interconnect coupling a plurality of master units with a plurality of slave units | |
US20030088722A1 (en) | System and method for managing priorities in a PCI bus system | |
US20030105899A1 (en) | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms | |
US7065594B2 (en) | Method and apparatus of allocating minimum and maximum bandwidths on a bus-based communication system | |
US20120089759A1 (en) | Arbitrating Stream Transactions Based on Information Related to the Stream Transaction(s) | |
US7080174B1 (en) | System and method for managing input/output requests using a fairness throttle | |
US6748505B1 (en) | Efficient system bus architecture for memory and register transfers | |
KR101832997B1 (ko) | Usb 데이터 전달들을 관리하기 위한 시스템들 및 방법들 | |
US6826644B1 (en) | Peripheral component interconnect arbiter implementation with dynamic priority scheme | |
US7836235B2 (en) | Resource management device | |
KR100973419B1 (ko) | 버스 중재 방법 및 장치 | |
EP1704487B1 (en) | Dmac issue mechanism via streaming id method | |
KR100215572B1 (ko) | 인터페이스 버퍼 제어 방법 및 장치 | |
US7085865B2 (en) | I/O throughput by pre-termination arbitration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |