CN105205020B - 对直接存储器存取通道请求进行判优 - Google Patents

对直接存储器存取通道请求进行判优 Download PDF

Info

Publication number
CN105205020B
CN105205020B CN201510050355.6A CN201510050355A CN105205020B CN 105205020 B CN105205020 B CN 105205020B CN 201510050355 A CN201510050355 A CN 201510050355A CN 105205020 B CN105205020 B CN 105205020B
Authority
CN
China
Prior art keywords
request
time slot
arbitration
priority
priority weighting
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
Application number
CN201510050355.6A
Other languages
English (en)
Other versions
CN105205020A (zh
Inventor
T·E·利奇
P·朱克
W·G·德宾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Laboratories Inc
Original Assignee
Silicon Laboratories Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Laboratories Inc filed Critical Silicon Laboratories Inc
Publication of CN105205020A publication Critical patent/CN105205020A/zh
Application granted granted Critical
Publication of CN105205020B publication Critical patent/CN105205020B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明涉及对直接存储器存取通道请求进行判优。具体地,本发明公开一种方法,该方法包含接收对相关联DMA通道进行存取的多个请求,并且对所述请求进行判优。该判优包含至少部分基于该请求的相关联的固定优先级以及该请求的相关联的优先级权重来选择性地准许多个请求中的给定请求。优先级权重管理在给定时刻考虑多个请求中的哪个请求或哪些请求。

Description

对直接存储器存取通道请求进行判优
背景技术
在***存储器与计算机***的***组件之间传达数据的一种方式是使中央处理单元(CPU)充当用于通信的媒介。例如,为了将数据从***存储器传送到***组件,CPU可以通过启动适当的读取操作以从***存储器检索数据以及启动适当的写入操作以将检索到的数据存储在***组件的存储器中来执行该传送。出于减少CPU开销的目的,计算机***可以采用直接存储器存取(DMA),其中***组件的DMA引擎直接对***存储器进行存取以传送数据。
发明内容
在示例性实施例中,一种方法包含接收对相关联的DMA通道执行存取的多个请求,以及对请求进行判优。该判优包含至少部分基于请求的相关联的固定优先级以及请求的相关联的优先级权重来选择性地准许所述多个请求中的给定请求。所述优先级权重管理(regulate)在给定时刻考虑所述多个请求中的哪个请求或哪些请求。
在另一示例实施例中,一种设备包含判优器以及与直接存储器存取(DMA)通道相关联的多个DMA引擎。每个DMA通道与固定优先级以及优先级权重相关联。判优器对来自DMA引擎的对相关联DMA通道执行DMA存取的请求进行判优。判优器适合于至少部分基于优先级权重将所考虑的请求布置在判优时隙的序列中,并且遍历在考虑每个判优时隙中的请求的判优周期中的判优时隙的序列,以至少部分基于与请求相关联的固定优先级来选择性地准许所述请求。
在又一示例实施例中,一种设备包含集成电路(IC),所述集成电路包含直接存储器存取(DMA)通道以及DMA通道判优器。判优器适合于接收使用DMA通道的请求。每个请求与优先级权重以及优先级相关联;至少部分基于相关联的优先级权重将请求布置在判优时隙中;遍历判优时隙的序列;以及响应于包含多个请求的给定时隙,基于多个请求的优先级选择判优获胜者。
优点以及其它所需特征将通过以下附图、说明以及权利要求书而变得显而易见。
附图说明
图1是根据示例实施例的基于微控制器单元(MCU)的***的示意图。
图2是根据示例实施例的图1的***的MCU的示意图。
图3A是由根据示例实施例的由图2的MCU的判优器使用的判优方案的图示。
图3B是根据示例实施例的判优时隙的图示。
图4A、4B以及4C是描绘了根据示例实施例对直接存储器存取(DMA)通道请求进行判优的技术的流程图。
图5A图示了根据示例实施例的DMA通道配置寄存器。
图5B图示了根据示例实施例的MCU的配置寄存器。
图6是根据示例实施例的基于MCU的***的示意图。
具体实施方式
给定计算机***可以包含多个直接存储器存取(DMA)通道,该通道由***的DMA引擎用来将数据传送(经由相关联的“DMA传送”)到***存储器以及从***存储器传送数据。为了进行DMA传送,DMA引擎可以假设DMA请求线以对应地向计算机***的判优控制器或判优器提交针对DMA通道进行存取的请求(本文中称为“DMA通道请求”);并且在判优器通过断定(asserting)用于所请求的通道的DMA准许线来准许该请求之后,DMA引擎被允许针对***总线进行存取并且进行DMA传送。***总线可以是计算机***的共享资源并且可以支持在给定时刻的单一DMA传送(作为一个示例)。因为,在任何给定时刻,多个DMA通道请求可以是未决的(pending),判优器可以出于选择准许哪一个未决请求的目的来应用判优策略。
判优器可以应用固定优先级判优策略来从多个未决请求中选择未决DMA通道请求。固定优先级判优依赖于分配有不同优先级等级的DMA通道,并且判优器准许具有最高固定优先级的未决请求,即,与具有最高固定优先级的DMA通道相关联的未决请求。固定优先级判优策略的特定优点是相对较低延时的DMA通道(即,具有相对较高固定优先级的DMA通道)可以比相对较高延时的DMA通道(即,具有相对较低固定优先级的DMA通道)更频繁地得到服务。
轮循判优策略是另一种类型的判优,其中判优器循环通过判优时隙的循环序列中的未决DMA通道请求,其中每个时隙被分配给不同DMA通道。当判优器从一个考虑的判优时隙到下一者循环通过序列时,如果给定未决请求与分配给当前考虑的判优时隙的DMA通道相关联,那么判优器准许所述请求。轮循优先级判优策略的特定优点是相对较高延时的DMA通道的请求者不会由于较低延时的请求者而被“击败(starved out)”,所述相对较高延时的DMA通道在固定优先级判优方案中可能以其他方式具有相对较低固定优先级。
本文中公开了示例***以及技术,该示例***以及技术采用具有基于固定优先级的判优以及基于轮循的判优两者的方面的判优策略。更确切地说,根据此判优策略,DMA通道被分配有固定优先级以及优先级权重:没有两个DMA通道共享相同的固定优先级,但多个DMA通道可以具有相同的优先级权重。DMA请求基于优先级权重被分组或布置在判优时隙的循环序列的判优时隙(例如,判优时隙的轮循序列)中。以此方式,根据示例实施例,分配给给定DMA通道的优先级权重控制(多个)判优时隙的数目,针对DMA通道的请求可以出现在该数目的判优时隙中。判优器循环通过判优时隙的循环序列,从而在给定时刻考虑一个判优时隙;并且针对给定判优时隙,判优器为该时隙选择具有最高固定优先级的未决请求。
根据示例实施例,对应于相似固定优先级DMA通道的请求被分组在一起,使得与较低固定优先级相关联的DMA通道请求不被与较高固定优先级相关联的DMA通道请求支配或被击败。此外,与较高固定优先级相关联的DMA通道请求被分配给更多判优时隙,使得这些请求可以得到充分的服务。因此,在示例实施例中,针对与相对较高延时以及相对较低固定优先级相关联的DMA通道的请求可以被一起分组在相同判优时隙中,但这些请求出现在相对较少的判优时隙中;并且针对与相对较低延时以及相对较高固定优先级相关联的DMA通道的请求也被一起分组在相同判优时隙中以彼此竞争,但这些请求出现在更多判优时隙中。在判优策略的可能的优点之中,其中的优点是相对较不频繁、低延时的请求者被分派有DMA传送的某些份额(share),而相对较频繁、高延时的请求者在整个判优周期上的间隔处可以抢先于低延时请求者。
作为更加具体的示例,图1描绘了在示例***10中的MCU 24。对于此示例,MCU 24响应于与(多个)组件70通信的一个或多个控制组件70的各种方面。作为示例,根据特定应用,组件70可以包含以下中的一个或多个:电动机、家用电器、库存控制终端、计算机、平板电脑、智能功率计、无线接口、蜂窝接口、交互式触摸屏用户界面、流量传感器等。MCU 24的组件的全部或一部分可以是半导体封装30的一部分。
如图1中所描绘,根据示例实施例,MCU 24包含基于硬件的DMA引擎152,该基于硬件的DMA引擎可以是MCU 24的***组件的存储器接口(网络接口、无线接口、通用输入/输出(GPIO)接口)。给定DMA引擎152可以在MCU 24内进行各种DMA传送。给定DMA传送可以是(作为示例)从包含DMA引擎152的***组件的存储器到MCU 24的***存储器的传送;从***存储器到***组件的存储器的传送;在***存储器位置之间的即时写入操作;或***到***的传送。判优器154执行上述DMA请求的判优。
根据示例实施例,MCU 24包含***存储器120。***存储器120与MCU 24的主存储器相关联,并且可以存储例如DMA描述符、分组数据、程序变量、数据结构、图像等。MCU 24还可以包含I/O存储器,该I/O存储器一般来说指MCU 24的***设备的存储空间(寄存器地址)。
参考图2,根据一些实施例,MCU 24的组件的全部或一部分可以是集成电路(IC)200的一部分。作为示例,MCU 24的组件的全部或一部分可以被制造在单个芯片或多个芯片上。集成电路200可被封装以形成半导体封装30(见图1)。
在MCU 24的组件当中,MCU 24包含处理核心150、DMA引擎152以及判优器154。根据特定实施例,除处理核心150和判优器154以及DMA引擎152之外,MCU 24可以不包含图2中所描绘的任何组件;除处理核心150和DMA引擎152以及判优器154之外,MCU 24可以包含图2中所描绘的组件中的一个或多个;MCU 24可以包含除图2中所描绘的组件之外的其它和/或附加组件等等。因此,许多实施例被涵盖在随附权利要求的范围内。
为了接收以及选择性地准许DMA通道请求的目的,判优器154耦合到DMA通道请求线以及DMA通道准许线,DMA通道请求线以及DMA通道准许线与MCU 24的***总线230相关联。根据特定实施例,判优器154可以是状态机,并且可以使用硬接线电路、执行指令的处理核心、处理核心以及硬接线电路的组合等来构造判优器154。
作为一个示例,处理核心150可以是32位核心,例如执行精简指令集计算机(RISC)指令集的高级RISC机器(ARM)处理核心。一般来说,处理核心150通过***总线230与MCU 24的各种其它***组件(例如存储器控制器或管理器260)进行通信。一般来说,存储器管理器260控制对MCU 24的各种存储器组件的存取,这些存储器组件例如高速缓存272、非易失性存储器268(例如闪速存储器)以及易失性存储器264(例如静态随机存取存储器(SRAM))。如图2中所描绘,易失性存储器264以及非易失性存储器268可以形成MCU 24的***存储器120。换句话说,易失性存储器264以及非易失性存储器268具有是MCU 24的***存储器地址空间的一部分的存储器位置。
应注意,图2描绘了根据其它示例性实施例的MCU架构的框图表示,其中MCU 24可以具有许多其它组件、桥接器、总线等。例如,根据一些实施例,MCU 24可以具有总线矩阵模块,该总线矩阵模块实施从设备(slave side)判优且用于管理对MCU 24的存储装置的存取。
根据一些实施例,MCU 24包含模拟组件和数字组件290,模拟组件和数字组件290利用I/O终端291传达模拟以及数字信号。MCU 24可以进一步含有多路复用器294,该多路复用器允许将这些信号可编程分配到MCU 24的输入端/输出端(I/O)。模拟组件可以包含接收模拟信号的各种组件(例如模/数转换器(ADC)以及比较器);并且MCU24可以含有提供模拟信号的模拟组件(例如电流驱动器)。MCU 24的数字组件可以包含例如通用串行总线(USB)接口、通用异步收/发器(UART)、***管理总线接口(SMB)、串行***接口(SPI)、时钟发生器模块、可编程定时器等。
根据示例实施例,判优器154出于对DMA通道请求进行判优的目的采用基于轮循以及固定优先级判优的判优方案。图3A描绘了此判优的图示300。结合图2参考图3A,判优器154将未决DMA通道请求330布置在对应的判优时隙320中,判优器154出于评估以及选择性地准许未决请求330的目的以循环序列(如由方向310所描绘)考虑这些未决DMA通道请求。每个DMA通道具有已分配的固定优先级以及已分配的优先级权重。因此,针对给定DMA通道的DMA请求330具有相关联的固定优先级以及相关联的优先级权重。
根据示例实施例,判优器154基于与请求330相关联的优先级权重将请求330填充或布置在判优时隙320中。一般来说,多个请求330可以与相同的优先级权重相关联,使得将与相似固定优先级相关联的请求330被分组在一起。优先级权重进一步控制判优时隙320的数目,在这些判优时隙320中,针对给定DMA通道的请求可以出现在周期中。
作为更加具体的示例,根据示例实施例,优先级权重如下:8、4、2或1。如果给定DMA通道被分配有优先级权重“8”,那么DMA通道被分配给判优周期的八个判优时隙。以类似方式,如果给定DMA通道被分配有优先级权重“4”、“2”、或“1”,那么DMA通道分别被分配判优周期的四个判优时隙、两个判优时隙或一个判优时隙320。
对于图3A的示例实施例,最高固定优先级DMA通道每个均被分配有优先级权重“8”,并且最低固定优先级DMA通道每个均被分配有优先级权重“1”。以此方式,如图3A中所描绘,优先级权重(在图3A中称为“PW”)“8”意味着将针对具有优先级权重“8”的DMA通道的请求330考虑在八个判优时隙320-1、320-2、320-4、320-5、320-8、320-9、320-11以及320-12中。优先级权重“4”意味着针对具有此权重的DMA通道的请求330出现在四个判优时隙320中;以及诸如此类。
对于此具体示例,判优周期含有十五个判优时隙320,即,8+4+2+1。然而,应注意,根据更进一步的示例实施例,已分配的优先级权重可以不必具有与已分配判优时隙320的数目的一一对应关系。
因此,判优器154基于与请求330相关联的优先级权重将未决DMA通道请求330分组到判优时隙320中;并且判优器154出于为每个时隙320选择未决请求330(如果存在)的目的以循环次序或循环序列遍历判优时隙320。
出于为给定判优时隙320从多个未决请求330中选择未决请求330的目的,判优器154考虑请求330的固定优先级。以此方式,根据示例实施例,每个请求330具有基于相关联DMA通道分配的固定优先级。例如,根据一些实施例,使用对应于DMA通道编号的一组固定优先级。对于八个DMA通道,最高固定优先级(固定优先级“0”)被分配给针对DMA通道0的未决请求330,并且将最低固定优先级(固定优先级“7”)分配给针对DMA通道7的未决请求330。根据其它示例实施例,固定优先级可以共享相对于DMA通道编号的相反排序或一些其它排序。
对于给定判优时隙320,具有不同固定优先级的多个未决请求330可以由判优器154出于选择以及准许请求330中的一者的目的进行考虑。作为更加具体的示例,图3B描绘了示例判优时隙320-8的多个未决请求330:与DMA通道3相关联的未决请求330-1;与DMA通道5相关联的未决请求330-2;以及与DMA通道6相关联的未决请求330-3。对于此示例,判优器154选择最高固定优先级或未决请求330-1(假设最低相关联DMA通道具有最高固定优先级)。
因此,为了开始图3A的判优周期,判优器154首先评估与判优时隙320-1相关联的未决请求330,该判优时隙与优先级权重“8”相关联。根据方向310,判优器154准许在判优时隙320-1中评估的最高优先级请求330,并且前进以在下一个判优时隙320-2中评估具有优先级权重8的请求330。应注意,除了已经移除的已准许的请求330外,在判优时隙320-2中评估的请求330是在判优时隙320-1中评估的相同请求330。在准许判优时隙320-2中未决的最高优先级未决请求330之后,判优器154接着考虑下一个判优时隙320-3中的未决请求330。
如图3A中示出,判优时隙320-3具有相关联优先级权重“4”。因此,判优器154在判优时隙320-3中评估具有优先级权重“4”的所有未决请求330以准许具有最高优先级的未决请求330。已准许的请求330随后被移除,使得当判优器154接着考虑判优时隙320-6中的四个请求330的优先级权重时,不考虑来自判优时隙320-3的先前已准许的请求330。
随着判优器154从一个判优时隙320到下一个考虑(多个)请求330,上述判优周期继续。在考虑判优时隙320-15中的任何(多个)未决请求330之后,判优周期重复,并且判优器154考虑判优时隙320-1中的任何未决请求。根据特定实施例,判优器154可以或可以不允许更新未决请求,直到给定周期结束。以此方式,根据特定实施例,判优器154可以更新含有未决DMA通道请求的队列一次、多次,或每当接收未决请求时进行更新。
应注意,给定判优时隙320可以不与任何未决DMA通道请求330相关联。例如,对于图3A的与优先级权重“8”相关联的判优时隙320-11,判优器154考虑一个请求330。判优器154因此选择请求330,由此对于此示例,不留下针对下一个判优时隙320-12也与优先级权重“8”相关联的请求。
因此,一般来说,判优器154可以执行图4A中所描绘的技术400。结合图2参考图4A,依据技术400,判优器154接收(框404)对相关联DMA通道执行存储器直接访问(DMA)的请求。判优器154对该请求进行判优(框408),包含至少部分基于该请求的相关联的优先级以及该请求的相关联的权重来选择性地准许给定请求,该请求的相关联的权重管理在给定时刻考虑哪个请求。
如上文所描述,根据一些实施例,判优可以是至少部分基于轮循判优的判优方案。因此,判优器154可以执行图4B中所描绘的技术420。结合图2参考图4B,根据示例实施例,判优器154接收(框424)对相关联DMA通道执行DMA传送的请求,并且至少部分基于这些请求的优先级权重来将所考虑的这些请求布置(框428)在判优时隙的序列中。依据框432,判优器154以轮循判优遍历判优时隙的序列,考虑每个判优时隙中的(多个)请求,以至少部分基于与所述请求相关联的固定优先级来选择性地准许所述请求。
作为更加具体的示例,判优器154可以遍历判优时隙的轮循队列来执行图4C中所描绘的技术450。结合图2参考图4C,依据技术450,判优器154确定(判定框454)是否开始另一轮循周期。如果否,那么根据示例实施例,依据框458,判优器154获取当前未决请求的快照并且初始化轮循队列以及初始化队列指针以指向轮循队列的第一判优时隙。如上文所提到,根据更进一步的示例实施例,每当接收新请求时判优器154可以根据更进一步的示例实施例允许更新轮循队列。如果判优器154确定(判定框454)判优器154尚未遍历当前轮循周期中的轮循队列,那么判优器154使队列指针前进(框462)到下一个判优时隙以继续当前轮循周期。
判优器154如下处理与给定判优时隙相关联的(多个)请求。如果判优器154确定(判定框466)有多个请求在相关联的相同判优时隙中,那么判优器154准许(框474)判优时隙中具有最高固定优先级的未决请求,并且更新(框478)轮循队列以移除所准许的请求。或者,如果判优器154确定(判定框466)在相关联的判优时隙中有单一请求,那么依据框470,判优器154准许所述请求。如上文所描述,出于初始化另一轮循周期或处理给定轮循周期中的下一个判优时隙的目的,控制随后返回到判定框454。
结合图2参考图5A,根据示例实施例,MCU 24含有DMA通道配置寄存器295。每个寄存器295与特定DMA通道相关联且包含位字段(field)504,该位字段504包含表示相关联的DMA通道的优先级权重的数据。如上文所提到,根据示例实施例,DMA通道的固定优先级可以是DMA通道编号的函数。更确切地说,如图5A中所描绘,DMA通道配置寄存器295可以含有用于N个相应的DMA通道的N个寄存器295,并且每个寄存器295的位字段504可以指定相关联的优先级权重是1、2、4还是8(作为示例)。
结合图2参考图5B,根据示例实施例,MCU 24的配置寄存器297可以包含位字段510,该位字段指定由判优器154用于对DMA通道请求进行判优的判优类型。作为示例,根据一些实施例,位字段510可以含有特定数据值(例如“0”位)以禁用上述基于固定优先级以及轮循的判优策略,并且替代地建立用于判优器154的固定优先级判优方案;并且可以含有另一值(例如,“1”位)以使能基于固定优先级以及轮循的判优策略。
参考图6,根据一些实施例,MCU 24可以是用以控制电机674的***600的一部分。以此方式,MCU 24可以产生/接收与电机接口670的控制相关的输入以及输出信号(I/O信号),电机接口670产生以及接收与操作电机674相关的信号。例如,MCU 24可以为了与电机接口670的驱动器、传感器等进行通信而在其I/O终端250-1处产生信号;并且MCU 24为了与此通信相关的目的而在其I/O终端250-1处产生信号;并且I/O终端250-1可以传送波形(例如脉宽调制(PWM)信号);接收已感测的电流以及电压;经由一或多个串行总线传送数据等。MCU24的其它I/O终端250-2可以出于例如以下目的产生/接收信号以与用户控制接口676进行通信:传送电机674以及电机接口670的状态;传达检测到的故障条件;接收用户定向的命令以及信号等。
尽管本文中已经揭示了有限数目的实施例,但从本发明获益的所属领域的技术人员将认识到通过本发明进行许多修改以及变化。随附权利要求书旨在覆盖所有此类修改以及变化。

Claims (19)

1.一种用于对直接存储器存取通道请求进行判优的方法,其包括:
接收对相关联的直接存储器存取通道即DMA通道执行存取的多个请求,每个请求与固定优先级相关联并且每个请求与优先级权重相关联,其中至少相关联的优先级权重中的第一优先级权重与所述优先级权重中的第二优先级权重不同;以及
对所述请求进行判优,所述判优包括针对所述多个请求中的给定请求:
至少部分基于分配给所述给定请求的优先级权重标识判优周期中的判优时隙的数目;
将所述判优周期中的至少一个判优时隙分配给所述给定请求,使得标识数目的判优时隙分配给所述给定请求;
至少部分基于所述优先级权重将所考虑的请求布置在判优时隙的序列中,其中所述判优时隙包括同时既分配给所述给定请求并且又分配给所述多个请求中的另一个请求的判优时隙;以及
遍历在考虑每个判优时隙中的一个或多个请求的判优周期中的判优时隙的序列,其中遍历所述序列包括,针对同时既分配给所述给定请求并且又分配给所述另一个请求的判优时隙,至少部分基于所述给定请求的相关联的固定优先级和所述另一个请求的相关联的固定优先级来选择性地准许所述给定请求。
2.根据权利要求1所述的方法,其中对所述请求进行判优包括:
选择优先级权重;以及
从具有所述相关联的优先级权重的所述多个请求中的至少一个请求中选择所述给定请求。
3.根据权利要求2所述的方法,其中一组至少两个所述请求中的每个都具有已选择的相关联的优先级权重,该组中的请求具有不同的相关联的固定优先级,并且选择已准许的请求包括选择具有较高相关联的固定优先级的组中的请求。
4.根据权利要求1所述的方法,其中所述固定优先级由针对所述相关联的DMA通道的优先级分配来设定。
5.根据权利要求1所述的方法,其中所述判优包括至少部分基于与所述优先级权重相关联的判优时隙进行判优。
6.一种用于对直接存储器存取通道请求进行判优的设备,其包括:
与直接存储器存取通道即DMA通道相关联的多个DMA引擎,每个DMA通道与固定优先级以及优先级权重相关联,其中至少相关联的优先级权重中的第一优先级权重与所述优先级权重中的第二优先级权重不同;以及
判优器,所述判优器用于对来自所述DMA引擎的针对所述相关联的DMA通道执行DMA存取的请求进行判优,其中:
所述判优器适于至少部分基于所述优先级权重将考虑的所述请求布置在判优时隙的序列中,其中所述判优时隙包括同时既分配给给定请求并且又分配给所述多个请求中的另一个请求的判优时隙;以及
遍历考虑每个判优时隙中的一个或多个请求的判优周期中的所述判优时隙的序列,其中遍历所述序列包括,针对同时既分配给所述给定请求并且又分配给所述另一个请求的判优时隙,至少部分基于所述给定请求的相关联的固定优先级和所述另一个请求的相关联的固定优先级来选择性地准许所述给定请求。
7.根据权利要求6所述的设备,其中所述判优器适于循环通过所述判优时隙的序列并且将更新所述序列限制为每周期发生一次。
8.根据权利要求6所述的设备,其中所述判优器适于循环通过所述判优时隙的序列并且允许每周期超过一次更新所述序列。
9.根据权利要求6所述的设备,其进一步包括:
至少一个寄存器,所述寄存器用于存储所述DMA通道的所述优先级权重。
10.根据权利要求6所述的设备,其中所述优先级权重包括与时隙的第一数目相关联的第一优先级权重以及与所述时隙的第二数目相关联的第二优先级权重,所述时隙的所述第二数目不同于所述时隙的所述第一数目。
11.根据权利要求6所述的设备,其中所述判优周期包括轮循判优周期。
12.根据权利要求6所述的设备,其中每个优先级权重标识在所述判优周期中由所述判优器处理的判优时隙的数目。
13.根据权利要求6所述的设备,其中所有所述固定优先级是彼此不同的。
14.根据权利要求6所述的设备,其中基于DMA通道编号来分配所述固定优先级。
15.一种集成电路设备,其包括:
直接存储器存取通道即DMA通道以及DMA通道判优器,其中所述判优器适于:
接收使用所述DMA通道的请求,每个请求与优先级权重以及优先级相关联,其中至少相关联的优先级权重中的第一优先级权重与所述优先级权重中的第二优先级权重不同;
至少部分基于相关联的优先级权重来将所述请求布置在判优时隙中,其中所述判优时隙包括同时既分配给给定请求并且又分配给所述多个请求中的另一个请求的判优时隙;
遍历所述判优时隙的序列,其中遍历所述序列包括,针对同时既分配给所述给定请求并且又分配给所述另一个请求的判优时隙,至少部分基于所述给定请求的相关联的固定优先级和所述另一个请求的相关联的固定优先级来选择性地准许所述给定请求;以及
响应于包含多个请求的给定时隙,基于所述多个请求的优先级来选择判优获胜者。
16.根据权利要求15所述的集成电路设备,其中所述优先级权重包括与所述时隙的第一数目相关联的第一优先级权重以及与所述时隙的第二数目相关联的第二优先级权重,所述时隙的所述第二数目不同于所述时隙的所述第一数目。
17.根据权利要求15所述的集成电路设备,其中每个优先级权重标识已分配的判优时隙的数目。
18.根据权利要求15所述的集成电路设备,其中所述判优器适于基于所述相关联的优先级权重来考虑所述判优时隙中的所述请求,使得所述判优器适于考虑具有相同优先级权重的多个未决请求。
19.根据权利要求15所述的集成电路设备,其中所述判优器适于遍历循环序列中的所述判优时隙。
CN201510050355.6A 2014-01-31 2015-01-30 对直接存储器存取通道请求进行判优 Active CN105205020B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/169,527 2014-01-31
US14/169,527 US10169256B2 (en) 2014-01-31 2014-01-31 Arbitrating direct memory access channel requests

Publications (2)

Publication Number Publication Date
CN105205020A CN105205020A (zh) 2015-12-30
CN105205020B true CN105205020B (zh) 2019-06-28

Family

ID=53754942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510050355.6A Active CN105205020B (zh) 2014-01-31 2015-01-30 对直接存储器存取通道请求进行判优

Country Status (2)

Country Link
US (1) US10169256B2 (zh)
CN (1) CN105205020B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016203307A1 (de) * 2016-03-01 2017-09-07 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung für eine einen Arbeitsspeicher aufweisende Recheneinheit
US10396554B2 (en) * 2017-02-13 2019-08-27 The Boeing Company Power distribution control within a modular converter system using efficiency calculations
US10861504B2 (en) 2017-10-05 2020-12-08 Advanced Micro Devices, Inc. Dynamic control of multi-region fabric
US10558591B2 (en) * 2017-10-09 2020-02-11 Advanced Micro Devices, Inc. Method and apparatus for in-band priority adjustment forwarding in a communication fabric
US11196657B2 (en) 2017-12-21 2021-12-07 Advanced Micro Devices, Inc. Self identifying interconnect topology
CN112399112B (zh) * 2019-08-12 2023-04-07 天津大学青岛海洋技术研究院 一种轮权与权重相结合的仲裁模式
US11507522B2 (en) 2019-12-06 2022-11-22 Advanced Micro Devices, Inc. Memory request priority assignment techniques for parallel processors
US11223575B2 (en) 2019-12-23 2022-01-11 Advanced Micro Devices, Inc. Re-purposing byte enables as clock enables for power savings
US11443479B1 (en) * 2021-05-19 2022-09-13 Apple Inc. Snapshot arbitration techniques for memory requests
US12001357B2 (en) * 2022-03-04 2024-06-04 Infineon Technologies Ag Direct memory access circuit, microcontroller, and method of controlling a direct memory access

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1335562A (zh) * 2000-07-27 2002-02-13 三星电子株式会社 判优器及其总线***
US6651119B2 (en) * 1998-11-16 2003-11-18 Lsi Logic Corporation Method for allocating priorities to plurality of DMA engines for processing data packets based on bus phase and transactions status
US7574547B1 (en) * 2007-07-17 2009-08-11 Sun Microsystems, Inc. Ring counter based starvation free weighted priority encoded arbiter

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881313A (en) * 1994-11-07 1999-03-09 Digital Equipment Corporation Arbitration system based on requester class and relative priority including transmit descriptor valid bit for a shared resource having multiple requesters
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651119B2 (en) * 1998-11-16 2003-11-18 Lsi Logic Corporation Method for allocating priorities to plurality of DMA engines for processing data packets based on bus phase and transactions status
CN1335562A (zh) * 2000-07-27 2002-02-13 三星电子株式会社 判优器及其总线***
US7574547B1 (en) * 2007-07-17 2009-08-11 Sun Microsystems, Inc. Ring counter based starvation free weighted priority encoded arbiter

Also Published As

Publication number Publication date
US10169256B2 (en) 2019-01-01
CN105205020A (zh) 2015-12-30
US20150220460A1 (en) 2015-08-06

Similar Documents

Publication Publication Date Title
CN105205020B (zh) 对直接存储器存取通道请求进行判优
Elliott et al. GPUSync: A framework for real-time GPU management
US9798686B2 (en) Slave side bus arbitration
US11080220B2 (en) System on chip having semaphore function and method for implementing semaphore function
US7769936B2 (en) Data processing apparatus and method for arbitrating between messages routed over a communication channel
US10261926B2 (en) Semaphore for multi-core processor
EP1253518B1 (en) Memory access arbitration guaranteeing a desired data transfer rate
JP2005258867A (ja) リソース管理装置
TWI258081B (en) Arbitrating method and arbiter for bus grant
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
US20060277349A1 (en) Method of accessing information and system therefor
US7065595B2 (en) Method and apparatus for bus access allocation
US8954632B2 (en) System method for regulating an input/output interface by sampling during a time duration associated with I/O states
US20190057047A1 (en) Data storage device and a method for controlling access to a memory device of a data storage device
Liu et al. An active scheduling policy for automotive cyber-physical systems
CN103853135B (zh) 调节对从设备的访问的方法和装置
KR100486247B1 (ko) 버스의 사용 빈도를 제어할 수 있는 방법 및 장치
KR20020010334A (ko) 글로벌 버스의 버스 사용권 예약 중재방법
KR20080074545A (ko) 버스 시스템 및 그 제어 방법
JP4666143B2 (ja) データ転送処理装置
KR20170024876A (ko) 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법
CN111466106A (zh) 通过龄值和流量类进行的请求仲裁
JP5677007B2 (ja) バス調停装置、バス調停方法
CN105743713B (zh) 一种网络管理***及方法
CN103620568B (zh) 用于可变长度仲裁的方法、装置和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant