带自检机制的直接存储器存取控制器及全域时钟门控方法

文档序号:6564751阅读:171来源:国知局
专利名称:带自检机制的直接存储器存取控制器及全域时钟门控方法
技术领域
本发明有关于一种计算机系统的功率管理,特别是有关于一种具有备用自我检测机制的先进直接存储器存取(direct memory access,DMA)控制器。
背景技术
传统计算机系统包括中央处理单元(central processing unit,CPU),其耦接至一或多个周边装置,例如磁盘驱动器或存储器。中央处理单元通过一直接存储器存取(direct memory access,DMA)控制器来监视并控制周边装置。直接存储器存取装置是一种包含直接存储器存取控制器的装置,因此能藉由直接存储器存取控制器来将数据直接由磁盘传输至主要储存器。
不同的周边装置可能在不同的时钟频率下运作,且其频率远低于中央处理单元。当操作频率增加时,功率消耗也倾向于增加,但只有少数程序或处理在一特定的时间间隔内需要占用处理器频宽的整个范围。计算机系统在运作期间所消耗的功率取决于指令与装置的性质,因此,大多数的处理器利用一时钟门控(clock gating)机制,在装置未被使用时中断提供至该装置的时钟源。时钟门控技术降低了系统的功率消耗,但也引起提供至处理器或装置的电流的快速改变,或导致额外的噪声。
在硬件设计上节省功率消耗的常用方法是使用时钟门控技术。此技术一般用来“时钟门控”邻近于时钟门控单元(或称为区域时钟门控)的一些寄存器元件。然而,假使硬件设计包含大量寄存器元件时,使用扇形且散开成大量时钟门控单元的时钟树(clock tree)仍会散失可观的功率。为使直接存储器存取控制器的传输效能可提升,其设计常包含大量的寄存器元件。当系统内的直接存储器传输流量较低时,将会消耗不必要的功率。因此,发展一种先进的直接存储器存取控制器架构,使其可进一步降低相较于传统直接存储器存取控制器的功率消耗确实是待解决的课题。

发明内容
本发明提供一种直接存储器存取(direct memory access,DMA)控制器的备用自我检测机制,其可藉由动态地控制输入至直接存储器存取控制器的大部分元件的时钟树的开/关状态,以减少功率消耗。
本发明提供一种备用自我检测单元,适用于直接存储器存取控制器。此备用自我检测单元包括一检测元件以及一时钟输出单元。该检测元件检测与一直接存储器存取控制器相关的内部状态信号是否使能,以执行一直接存储器存取,该内部状态信号来自该直接存储器存取控制器的部分元件。该时钟输出单元根据该检测元件的检测结果,驱动一使能信号以选择性开启或关闭一全域门控时钟信号,该全域门控时钟信号输入至该直接存储器存取控制器的部分元件。当直接存储器存取控制器当前未使能以执行任何直接存储器存取时,则此全域门控时钟信号被关闭;当直接存储器存取控制器被使能以执行直接存储器存取时,则此全域门控时钟信号在执行此直接存储器存取期间保持开启。
本发明还提供一种直接存储器存取控制器,其包括总线接口以及直接存储器存取控制核心。该直接存储器存取控制器可根据当前是否有直接存储器存取正在执行,选择性地关闭或开启输入至直接存储器存取控制器的时钟。
本发明提供一种数据处理装置,其包括一数据处理单元、一直接存储器存取控制器、以及全域时钟门控电路。该直接存储器存取控制器可依据当前是否有直接存储器存取正在处理中,传送一信号至全域时钟门控电路,以选择性地关闭或开启输入至直接存储器存取控制器的时钟信号。
本发明还提供一种备用自我检测方法,适用于直接存储器存取控制器。首先,检测直接存储器存取控制器是否被使能以执行一直接存储器存取,接着动态地控制输入至该直接存储器存取控制器的一时钟信号的开/关状态。
为使本发明的上述目的、特征和优点能更明显易懂,下文描述一较佳实施例,并配合附图,作详细说明如下。


图1是示意本发明一实施例的直接存储器存取控制器的架构图。
图2是示意根据本发明一实施例的时钟门控元件的架构图。
图3是示意根据本发明一实施例的备用自我检测单元的架构图。
图4是示意根据本发明一实施例的全域时钟门控元件400的架构图。
图5是示意本发明一实施例的备用自我检测方法的流程图。
主要元件符号说明100~直接存储器存取控制器;110~中央处理单元总线接口单元;112~全域组态寄存器;114~通道组态寄存器;116~备用自我检测单元;130~控制核心;132~调度器;134~脱离队列装置;150~外部总线接口;210~时钟门控元件;300~备用自我检测单元;312~或门;314~正反器;400~全域时钟门控元件;402~时钟门控元件;404~正反器;具体实施方式
本发明公开一种适用于直接存储器存取(direct memory access,DMA)控制器的备用自我检测机制,其藉由控制输入至直接存储器存取控制器逻辑的部分元件的时钟树(clock tree)的开/关状态,以减少功率消耗。在接下来的说明中,将详尽阐述本发明的细节以期达到完整解释。对本发明所属技术领域中具有通常知识者而言,这些技术细节的其它变化是可预见的,也可以达到本发明的结果。在其它情况下,为了避免不必要地混淆本发明,已知的背景将不详细叙述。
参阅图1,其示意本发明一实施例的直接存储器存取控制器的架构图。直接存储器存取控制器100包括中央处理单元总线接口110、控制核心130、以及外部总线接口150。在一实施例中,中央处理单元总线接口110包括多个全域组态寄存器(global configuration register)112、与N个通道相关的通道组态寄存器(channel configuration register)114、以及备用自我检测单元116。控制核心130包括一数据封包调度器132、一直接存储器存取请求脱离队列(Dequeue)装置(以下简称脱离队列装置)134、与多个处于等待的直接存储器请求相关的请求队列(request queue,reqQ)136、写入(TX)数据封包及相关控制队列(以下简称写入与命令队列)138、以及读取(RX)数据封包及相关控制队列(以下简称读取与控制队列)140。
直接存储器存取控制器提供数个直接存储器存取通道配置于中央处理单元总线。在本实施例的直接存储器存取控制器中,直接存储器存取通道可通过外部总线在第一机构与第二机构间传输数据。在本发明一实施例中,第一机构是本地存储器或相同类型的元件,而第二机构是系统存储器或可通过系统总线存取的周边装置。通道组态寄存器114可发送多个软件请求及通道使能信号(sw_req、ch_en)至备用自我检测单元116,以指示何条直接存储器存取通道被使能,又与哪个软件请求(存储器对存储器的直接存储器存取)相关。
在内部运作中,直接存储器存取控制器100需管理数个队列。根据每一列入调度的数据封包传输,直接存储器控制器100将相关的控制信息存放于写入与命令队列138,其内容描述该封包应如何通过系统总线传输。以写入数据封包为例,直接存储器存取控制器自一区域存储器读取数据,且将这些数据与控制指令一起存放在写入与命令队列138中。同样地,当该项传输为一读取数据封包传输时,通过外部总线所接收的数据封包放至在读取与控制队列140。与直接存储器存取写入与读取传输相关的状态信息系放置在响应队列(response queue,respQ)(未显示)。所有目前处于等待(已列入调度但尚未执行)的直接存储器存取请求皆列入请求队列(reqQ)136。请求队列(reqQ)136的每一项目(entry)包括多个描述符号(descriptor),其用来描述在直接存储器存取控制器的内部队列中目前处于等待的直接存储器存取要求的特征。请求队列(reqQ)136最上端的项目数据将与来自响应队列(respQ)的响应信号相互比对,当与一直接存储器存取要求相关的所有响应已被处理时,对应的项目则被弹出请求队列(reqQ)136,且相关的直接存储器存取通道组态系数(Ch系数)也被更新。
调度器132用以仲裁所有已使能的通道中所有的现有直接存储器请求,包括通道组态寄存器的软件请求与系统周边装置的硬件请求,此外调度器还负责调度这些请求的其中之一来传输。若被列入调度的请求为区域存储器至系统总线的直接存储器传输,则该请求将被暂缓,同时相关的数据封包先从区域存储器中读取至写入与命令队列138,并发送一暂缓请求信号pending_req至备用自我检测单元116。当整个封包被读取完毕时,调度器接着产生一个描述传输指令至写入与命令队列138以及一个等待请求项目至请求队列136。若该已列入调度的请求为系统总线至区域存储器的直接存储器存取时,则调度器132产生一描述传输命令至写入与命令队列138以及一等待请求项目至请求队列136。对于请求队列136中每一个目前处于等待的请求项目,请求队列136将产生一等待请求有效信号至备用自我检测单元116。接着将请求队列136中所有的项目与响应队列中的响应信号做比对,并且将读取与控制队列138中相关的数据封包传输至区域存储器。请求队列136最上端的项目将保持处于等待状态,直到上述与相关响应信号的比对全部完成为止。在比对完成后,该请求队列136的最上端项目被弹出,并且相关的数据传输也已完成。
调度器132、区域存储器的读取/写入接口、内部队列以及相关的队列管理逻辑、以及脱离队列(De-queue)装置134仅在与一已使能的直接存储器存取通道相关的直接存储器存取请求被使能时,或者直接存储器存取控制器内有至少一个请求仍然处于等待时,才需要被使能。在许多系统中,当需要大量的直接存储器存取数据流量(DMA traffic)时,直接存储器存取控制器的内部控制信号及数据队列的大小对整体直接存储器存取效能有显著的影响。另一方面,在直接存储器存取数据流量较低时,直接存储器存取请求可能只是偶尔被使能。因此当直接存储器存取数据流量负载较低时,仍有大量的直接存储器存取控制器100的硬件保持时钟开启但无运作,造成直接存储器存取控制器100的时钟树不必要的功率消耗。
当系统中不需要其运作时,直接存储器存取控制器100有时可以完全失能(disabled)来避免功率消耗,例如关闭输入至直接存储器存取控制器的所有时钟信号。当传送至直接存储器存取控制器100的时钟信号被全域使能时,采用区域时钟门控技术来设计直接存储器存取控制器100,这仍可能减少功率消耗。然而当直接存储器存取控制器100的时钟信号被全域使能,但直接存储器存取控制器100并未执行任何有效的直接存储器存取传输时,时钟树仍消耗了不必要的功率。在此例子中,假使输入至直接存储器存取控制器100的时钟树的全域时钟门控可动态地被控制,则功率消耗可进一步地减少。因此,本发明提出一种备用自我检测单元来达成此目的。
备用自我检测单元116的功用是用来检测直接存储器存取传输是否有效。在直接存储器存取控制器100中,一个直接存储器存取传输自检测到一有效的直接存储器存取请求,直到直接存储器存取控制器100完成此请求为止都有效。在本发明的一实施例中,所使用的队列都是先进先出(first-in-first-out,FIFO)队列。备用自我检测单元116驱动一全域时钟使能g_clk_en信号至一全域时钟门控单元,以动态地控制输入至直接存储器存取控制器100的部份元件的全域时钟。当直接存储器存取控制器100并未执行任何有效的直接存储器存取传输时,此全域时钟可被关闭。
参阅图2,其示意本发明一实施例的时钟门控元件210的示意图。当时钟门控元件210作为时钟树的全域时钟门控单元时,若其EN或BP输入端被使能(asserted),则其驱动一来源时钟信号以输入时钟树。若其EN或BP输入端被失能,则时钟树将驱动一固定的逻辑0信号。BP输入端通常用于控制芯片测试操作,而EN输入端则用于在一般操作期间控制来源时钟信号于时钟树内的传递使能与否。在本实施例的图示中,此时钟门控元件210的时钟输入是由时钟树所驱动的对应叶梢时钟(leaf clock)的早先形式,且输出一门控时钟信号(gated clock)。
参阅图3,其示意根据本发明一实施例的备用自我检测单元300的架构图。在本实施例中,备用自我检测单元300可支持N个直接存储器存取通道以及M个项目深度的先进先出请求队列。当或门(OR gate)312的多个输入端的任一个被使能时,备用自我检测单元300的正反器314将驱动全域时钟使能信号g_clk_en使能,藉此使能来自全域时钟门控元件的时钟信号。当直接存储器存取控制器的全域门控时钟信号为使能时,调度器即开始处理现有请求。在此非常重要的一点在于,自调度器开始调度下一个请求至处于等待的请求被弹出请求队列的期间,全域时钟使能信号g_clk_en将一直保持使能。这表示调度器必须在调度一现有请求时,使能其暂缓请求信号PENDING_REQ,否则其必须立刻产生一项目至请求队列。
参阅图4,其示意根据本发明一实施例的全域时钟门控单元400的示意图。本实施例的时钟电路用于直接存储器存取控制器具有两个异步的时钟信号(一般时钟信号clk与总线时钟信号bus_clk)的情况。一般时钟信号clk输入至直接存储器存取控制器内部必须通过此一般时钟信号clk驱动的第一类逻辑电路。其经门控后的门控一般时钟信号g_clk输入至当直接存储器存取传输使能时才需要被使能的第一类逻辑电路。同样地,总线时钟信号bus_clk输入至直接存储器存取控制器内部必须通过此总线时钟信号驱动的第二类逻辑电路。其经门控后的门控总线时钟信号g_bus_clk输入至当直接存储器存取传输使能时才需要被使能的第二类逻辑电路。全域时钟门控单元400的每一时钟信号如先前所述图2的时钟门控元件(clock-gating element,CGE)402的输出。与非门控时钟树相关的时钟门控元件,如上述的一般时钟信号树与总线时钟信号树,仅为部份范例,以简化同步时钟的时钟树间的解偏差。如门控时钟使能信号g_clk_en(其在一般时钟信号clk的时域生成)进入另一异步时域的同步化可藉由一额外的正反器403来实现,以提供与一般时钟信号clk异步的时域进行同步化。
在本发明的另一实施例中,时钟电路可分成以下两类与直接存储器存取的读取操作相关的时钟电路,以及与直接存储器存取的写入操作相关的时钟电路。在此实施例中,门控时钟电路仅在执行读取或写入操作时才使能。同样地,备用自我检测单元将在一读取或写入请求被使能,该请求被列入调度且在请求队列中处于等待,直到该请求被弹出请求队列时,检测该读取或写入操作。
接着参阅图5,其示意本发明一实施例的备用自我检测方法的流程图。首先在步骤S01,从一通道组态寄存器或一外部硬件装置发送一直接存储器存取请求。在步骤S02,备用自我检测单元检测与该直接存储器存取请求相关的内部状态。如果该请求由该通道组态寄存器所发送,则该通道组态寄存器将发送一通道使能与软件请求信号至备用自我检测单元。当调度器将该请求列入调度时,调度器则发送一暂缓信号至备用自我检测单元。当该请求被暂缓以等待处理时,请求队列也发送一请求有效信号至备用自我检测单元。依此方式,即可藉由备用自我检测单元监控该请求的每一流程,若这些内部状态信号的其中任一个为使能时,在步骤S03备用自我检测单元将发送一使能信号以驱动一全域门控时钟单元。全域门控时钟单元被耦接至直接存储器存取控制器中具有同步时钟的部分元件。若该使能信号被驱动至该全域门控时钟单元,则在步骤S04中该部分元件将被使能。相反地,若备用自我检测单元并未检测到任何使能的内部状态信号,则使能信号将会关闭全域门控时钟单元,如步骤S05所示。接着在步骤S06中,该全域时钟门控单元将不会输出任何时钟信号,使该直接存储器存取单元的部分元件被关闭,达到减少功率消耗的目的。
依此方法,即可实现本发明的备用自我检测机制,以动态控制供应至直接存储器存取控制器大部分元件的时钟树的开/关状态,来减少功率消耗。
虽然本发明已藉由上述的各实施例详细说明,但其它形式或变化亦适用于本发明。举例来说,除了本发明所公开的实施例以外,备用自我检测单元也可配置在直接存储器存取控制器的其它区域。此外,虽然本发明使用先进先出队列作为各类队列的实施例,但其也可以相似的方式来实现,例如以缓冲器或其它类似者来取代。
本发明虽以较佳实施例公开如上,但其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,可做某些更动与润饰,因此本发明的保护范围应该由权利要求所限定。
权利要求
1.一种自我检测单元,适用于一直接存储器存取(direct memory access,DMA)控制器,包括一检测元件,用以检测该直接存储器存取控制器中与一直接存储器存取传输相关的多个内部状态信号是否被使能;以及一时钟输出单元,用以依据该检测元件的检测结果驱动一使能信号,以选择性地开启或关闭一个提供至该直接存储器存取控制器的部分元件的全域门控时钟信号;其中该检测元件检测得知所述内部状态信号其中之一为使能时,该使能信号驱动该全域门控时钟信号;该检测元件检测得知所述内部状态信号为失能时,该使能信号关闭该全域门控时钟信号。
2.如权利要求1所述的自我检测单元,其中该检测元件是一或门,该或门的输入为该内部状态信号。
3.如权利要求1所述的自我检测单元,其中该全域门控时钟信号耦接至一全域时钟门控单元。
4.如权利要求3所述的自我检测单元,其中该全域门控时钟信号输入至该直接存储器存取控制器中与下列操作相关的部分元件的组合一系统总线接口操作;一读取传输操作;以及一写入传输操作。
5.如权利要求1所述的自我检测单元,其中所述内部状态信号包含下列项目的组合多个通道使能及请求信号,用以表示该直接存储器存取传输已使能;多个请求有效信号,用以表示该直接存储器存取传输已列入调度;以及一暂缓请求信号,用以表示该直接存储器存取传输正处于等待。
6.一种具有自我检测机制的直接存储器存取装置,包含一中央处理单元总线接口,用以根据与一现有请求相关的一内部状态信号,产生一使能信号以选择性驱动一全域门控时钟信号;以及一核心单元,用以接收该全域门控时钟信号,且在该全域门控时钟信号被驱动时启动运作。
7.如权利要求6所述的直接存储器存取装置,其中该核心单元包含至少一个直接存储器存取通道,用以执行该直接存储器存取,该中央处理单元总线接口包含至少一组与所述通道的其中之一相关的通道组态寄存器。
8.如权利要求7所述的直接存储器存取装置,其中该内部状态信号包含一通道使能与请求信号,用以表示该现有请求由所述通道组态寄存器所使能。
9.如权利要求7所述的直接存储器存取装置,其中该中央处理单元总线接口还包含一自我检测单元,用以产生该使能信号。
10.如权利要求9所述的直接存储器存取装置,其中该自我检测单元包含一检测元件,用以检测该内部状态信号是否被使能;以及一时钟输出单元,用以依据该检测元件的检测结果驱动该使能信号,以选择性地开启或关闭该全域门控时钟信号。
11.如权利要求6所述的直接存储器存取装置,其中该核心单元包含一调度器与至少一个请求队列,所述请求队列用以保存与已列入调度且正处于等待的直接存储器请求相关的项目。
12.如权利要求11所述的直接存储器存取装置,其中所述内部状态信号为下列信号的组合一暂缓请求信号,用以表示该现有请求已被调度器列入调度;以及一请求有效信号,用以表示该现有请求在该请求队列中处于等待。
13.如权利要求11所述的直接存储器存取装置,其中该请求队列是一先进先出架构。
14.一种自我检测方法,适用于一直接存储器存取控制器,包含接收和处理一直接存储器存取请求;在处理该直接存储器存取请求时,检测一内部状态信号是否被使能;以及根据该检测步骤的结果,选择性地驱动一输入至该直接存储器存取装置的部分元件的全域门控时钟信号。
15.如权利要求14所述的电源管理方法,其中该检测的步骤由一自我检测单元所执行。
16.如权利要求14所述的电源管理方法,其中该内部状态是从一通道组态寄存器发送的一通道使能与请求信号,用以表示该直接存储器存取请求已被一直接存储器通道处理,该直接存储器通道为该直接存储器存取控制器的部分元件。
17.如权利要求14所述的电源管理方法,其中该内部状态为一调度器发送的一暂缓信号,用以表示该直接存储器请求已被该调度器列入调度,该调度器为该直接存储器存取控制器的部份元件。
18.如权利要求14所述的电源管理方法,其中该内部状态为一请求队列发送的一有效信号,用以表示该直接存储器存取请求在该请求队列内处于等待中,该请求队列为该直接存储器控制器的部分元件。
19.如权利要求14所述的电源管理方法,还包含当该内部状态为失能时,关闭该全域门控时钟信号。
20.如权利要求14所述的电源管理方法,其中该全域门控时钟信号输入至该直接存储器存取控制器中与下列操作的其中之一相关的部分元件一系统总线操作;一读取操作;以及一写入操作。
全文摘要
一种具有自我检测机制的直接存储器存取控制器,其可藉由动态地控制输入至直接存储器存取控制器的部分元件,且由一全域时钟门控电路驱动的至少一时钟树的开/关状态,以减少功率消耗。此直接存储器存取控制器包括一备用自我检测单元、一调度器、至少与一通道相关的通道组态寄存器组、以及一内部请求队列用以保存已列入调度且当前处于等待的直接存储器存取请求。备用自我检测单元可传送一使能信号至全域时钟门控元件,并依据直接存储器存取控制器正在执行一直接存储器传输与否,选择性地开启或关闭至少一时钟树。
文档编号G06F13/28GK1983121SQ200610171739
公开日2007年6月20日 申请日期2006年12月19日 优先权日2005年12月19日
发明者伊沃·图西克 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1