基于专用时隙分配的存储器资源仲裁装置的制作方法

文档序号:6641633阅读:112来源:国知局
专利名称:基于专用时隙分配的存储器资源仲裁装置的制作方法
技术领域
本发明一般涉及计算机系统,特别涉及这样的计算机系统,它在传输流式数据时使用一种方法,为使中央处理单元(CPU)的存储器时延(memory latency)最小。
背景技术
使用CPU的计算机系统常常使用存储器控制器和图形控制器。存储器控制器控制CPU和其他代理对系统存储器的访问。图形控制器使用帧缓冲器控制由CPU提供给显示器屏幕例如阴极射线管(CRT)的数据的显示。系统存储器和帧缓冲器通常都使用动态随机存取存储器(DRAM)的阵列实现。在一些计算机系统中,帧缓冲器和系统存储器统一到单一共享存储器,称为统一存储器结构(UMA)。
诸如这样的计算机系统传统上作为异步请求处理所有对存储器的访问请求,它们包括涉及图形数据的请求。异步请求通常以不确定速率进行(例如随机地)。产生异步请求的例子是从输入/输出设备来的动作,诸如鼠标点击或击键,引起的中断。响应这一中断,CPU进行一次或者多次对存储器访问的异步请求,以便存储它的当前操作和确定与服务该中断关联的指令。
与访问存储器、从存储器检索请求的数据、和使检索的数据为请求代理可用而关联的时间有时称为“时延(latency)”。异步请求通常是时延敏感的。也就是说,随着访问存储器和处理该请求的时间的长度增加,服务质量下降。例如,计算机用户不希望在他们点击鼠标产生动作前等待异常的时间数量。因此,常规计算机系统试图通过给从CPU来的异步请求授予比其它存储器请求更高的优先级而尽可能减少时延。
近年来等时存储器请求已经变得日益普通。等时事务处理的例子包括向或从I/O设备传输音频、视频、或其它实时数据,它使用“流式”技术,使得数据作为稳定的和连续的流处理。流式技术普遍用于因特网,例如,在流式数据被下载时播放音频和视频,这与一些计算机系统相反,在这些系统中,在播放前必须完全下载整个文件。
与异步请求相反,等时请求是确定的。也就是说,在一个给定的时间期间中所需要的信息量或在一个给定的时间期间中传输的信息率一般是已知的。例如,当从帧缓冲器写视频图像到显示器屏幕上时,已知以每秒30帧的速率给显示器屏幕发送视频帧,所以每秒的线、每线的位、每象素的字节的数目已知。等时请求通常更能容忍特定的时延值,但是对时延的过度偏离非常敏感,即使这些极端情况非常少。一旦一个等时流开始,则连续数据传输就变得十分重要,并且必须保持。因此,等时数据传输中的质量测量由可以被丢失但不明显影响音频或视频质量的数据量定义。丢失的数据直接与极端时延变化相关。极端的时延可以引起数据丢失。如果数据不能被及时访问,则该数据不再有用。
常规计算机系统依赖各种形式的基于优先级的存储器仲裁,包括优先级、循环法排序、时间片限制、高水印等,来决定以什么顺序服务对于存储器的代理请求访问。尽管这些类型的仲裁方案确实能够起到减少CPU存储器时延的作用,然而,音频、视频、和其它流式I/O存储器通信量通常给于较低的优先级,因此可以引起流式代理“挨饿”,或者足够推迟存储器的访问,从而导致丢失数据。给流式I/O存储器通信量分配较高的优先级会引起流式数据时延的改善,但是这样做的代价是增加CPU存储器的时延。因此,需要改善异步和等时存储器请求的混合的调度和处理。

发明内容
本发明的一个实施例提供一个仲裁器,它具有一个第一计数器,用于减量与第一类存储器请求关联的服务时期,和一个第二计数器,用于减量与第二类存储器请求关联的服务时期。该存储器仲裁器还有一个调度逻辑电路,它耦合到第一和第二计数器的输出。第一和第二计数器的输出是为第一和第二类存储器请求的相应服务时期中剩余时间的指示。调度逻辑电路具有接收第一和第二类存储器请求的输入,并在第二计数器的输出指示在与第二类存储器请求关联的服务时期中剩余有时间时产生一个授权信号,以服务接收到的第二类存储器请求。


在下面的附图中说明本发明的非限制、非穷举的实施例,除非另外说明,附图中相似的参考号码在各个视图中都指示相似的部件。
图1是可以按照本发明的一个实施例使用的计算机系统的方框图。
图2是一张表,说明根据本发明的一个实施例存储器调度时期的分配。
图3是一个流程图,说明可以用于图1的计算机系统仲裁存储器请求的方法的一个实施例。
图4是一个仲裁器的实施例的方框图,该仲裁器可以使用在图2和3中表示的方法和存储器调度时期。
具体实施例方式
在此详细说明在传输流式数据时使CPU存储器时延最小的方法的实施例。在下面的说明中,提供大量的特定细节,诸如图1中的各种计算机系统部件的描述,以提供对本发明的实施例的彻底理解。然而,熟悉相关技术的人会看出,本发明可以不要某个或者多个这样的特定细节实现,或以其它方法、部件等实现。在另外的场合,不详细表示或说明公知的结构或操作以避免模糊本发明的各个实施例的方面。另外,这里互换或结合使用术语“等时”和“流式”,意在表示多多少少的类似。
首先参考图1,总体用10表示的是一个计算机系统,它可以使用本发明的一个实施例。计算机系统10作为其主要部件有CPU 12和系统存储器14,后者由多行动态随机存取存储器(DRAM)16构成。CPU12由主总线18(有时称为“前侧总线”)耦合到主I/O桥20(有时称为“北桥”)。主I/O桥20由存储器总线21依次耦合到系统存储器14。
主I/O桥20由外设部件互联(PCI)总线22耦合到PCI到ISA桥24(有时称为“南桥”)。一个ISA或PCI总线26耦合一个或多个异步I/O芯片组28和一个或多个等时I/O芯片组30到PCI到ISA桥24。异步I/O芯片组28支持例如从磁盘驱动器、鼠标、键盘、和打印机来的异步数据传输。等时I/O芯片组30支持音频、视频、调制解调器、网络、或其它流式I/O。
主I/O桥20耦合到图形控制器32。图形控制器32访问本地帧缓冲器34为存储和检索其中存储的图形数据,并最终在监视器36上显示。监视器36可以是CRT、液晶显示器、或其它显示设备。对于使用UMA配置的系统,通过分割系统存储器14的一部分建立帧缓冲器36来代替本地帧缓冲器34,产生共享存储器39。
从图1所示计算机系统10的方框图可明显看出,许多不同的代理(例如CPU 12,图形控制器32,连接到异步I/O芯片组28的异步设备,连接到等时I/O芯片组30的流式设备)可以请求访问共享存储器39。因为对共享存储器39的请求需要通过存储器总线21,所以,如果这些代理对访问共享存储器39具有并发请求的话,则时延或丢失数据可能变得相当明显。因此,主I/O桥20包括一个存储器控制器40和一个存储器仲裁器42来控制对共享存储器14的访问。下面对存储器仲裁器42进一步详细说明。
虽然在图1的计算机系统10中存储器仲裁器42表示驻留在主I/O桥20中,但是应该理解,存储器仲裁器42可以驻留在计算机系统10的其它部件中。例如,存储器仲裁器42可以位于PCI到ISA桥24中。另外,在计算机系统10中还可以包括多于一个的存储器仲裁器42。因此,本发明不由存储器仲裁器42的数目或由它们的特定位置限制。
根据本发明的一个实施例,存储器仲裁器42执行仲裁方案,该方案支持流式I/O设备的实时性质,同时为CPU12和其它异步I/O设备保持存储器服务的低时延方面。为流式I/O设备的调度的存储器服务得到保证,从而提供优于现有技术计算机系统的优点,在现有技术计算机系统中给CPU12的优先级可以使流式I/O设备和其它等时存储器通信量挨饿。此外,保证实现了等时请求服务,同时使在为异步存储器请求的平均时延中的可能增加最小。
根据本发明的仲裁方案的一个实施例的一个方面,由一个或者多个代理(例如耦合到图1的等时芯片组30的CPU 12或视频设备)对共享存储器39的访问时间由存储器调度时期的序列定义。基于计算机系统10的各种设计参数,每一调度时期的持续时间是预定的或固定的。例如,如果计算机系统10的系统时钟频率是100MHz,则根据本发明的一个实施例,每一调度时期可以跨128个时钟周期,或大约1.28微秒。
图2是一张表50,表示为一个持续128个时钟周期的一个调度时期52的时间分配的例子。调度时期52中的时间在几个资源块53中间分配。也就是说,给每一资源块在调度时期52内的一个“服务时期”。每一调度时期52包括一个服务时期序列,每一服务时期只是为服务等时或异步请求的时间的预分配。如果没有等时或异步请求未处理,则服务时期在空闲时间发生,或者本发明的实施例的优化方案可以分配空闲时间给未处理的存储器请求。
服务时期X、Y、Z分配给维护块54。具有服务时期X的刷新维护操作与刷新共享存储器39中的DRAMs 16相关。具有服务时期Y的Ical维护操作与DRAMs 16的电流校准关联,而具有服务时期Z的Tcal维护操作与DRAMs 16的温度校准关联。
为完成服务时期X、Y、Z所需要的时钟周期的数目可以根据所用DRAMs 16的类型对不同计算机系统10不同。此外,不需要对每一调度时期52都包括所有三个服务时期X、Y、Z。例如,可以有一个或者多个调度时期52,其中没有信号指示服务时期X、Y、Z,或者可能有其它调度时期52,其中有信号指示这三个服务时期X、Y、Z的任何数目。
根据本发明的一个实施例,并如在下面的进一步详细说明,服务时期X、Y、Z,如果它们已由信号指示,它们没有由异步或等时请求预先清空。同样,如果服务时期X、Y、Z中的任何一个未在一个给定的调度时期52中有信号指示,则可用服务时间在该调度时期52中可以分配给服务从CPU12或其它I/O设备来的异步请求。
在图2的表50中,Tcal维护操作分配给Z=36个时钟周期的服务时期,而其它维护操作在该特别调度时期52中未标志,尽管它们可以在后继的调度时期中标志。显示块56,与等时视频分解关联并为图形控制器32和监视器36刷新数据事务处理,被分配48个时钟周期的服务时期。与等时通信量诸如音频关联的一个等时集线器连接(hublink)(ISO_HL),通过PCI到ISA桥24,被分配有14个时钟周期的服务时期。类似地,有4个时钟周期的服务时期分配给等时视频捕获块60。这些分配留下调度时期52中128个时钟周期中的30个时钟周期来服务从CPU 12或从I/O设备(例如CPU_IO块62)来的异步请求。
在本发明的一个实施例中,调度时期52对所有调度时期是固定的,例如固定在128个时钟周期上。可以在制造阶段预先设定调度时期52的长度。还可以提供本发明的其它实施例,这里一个或者多个调度时期52的长度在启动计算机系统10的期间设定,当计算机系统10对在启动时耦合到它上面的可能的流式代理的数目进行初始判定时。另外还可以提供这样的实施例,其中,当识别到代理产生等时通信量时,一个或者多个调度时期52的长度在计算机系统10运行时动态改变。
相似地,在一个或者多个调度时期52中,用于维护块54的服务时期X、Y、Z的最大长度或为显示、ISO_HL、视频捕获和CPU_I/O块56-62的服务时期的最大长度也可以预先设定或者动态改变。如果为在图2的表50中所示的显示、ISO_HL和视频捕获块56-62的服务时期的长度预先设定的话,则可以根据对这些类型的等时通信量的已知需要计算这些预设定的服务时期长度。用各种等时块56-60的服务时期的长度可以在启动时动态设定,例如,如果计算机系统10判定没有视频捕获块60(例如,没有视频捕获代理,诸如摄录一体机)耦合到计算机系统10,则相应增加其它等时块56和58或CPU_I/O块62的服务时期的长度。因此,应该理解,本发明不由调度时期或服务时期的特定长度、或该长度是固定还是可变的所限制。
根据本发明的一个实施例,在每一调度时期52开始时已经知道等时流式请求的数目。当存储器控制器40、存储器仲裁器42、或总线主控器(未示出)检查耦合在共享存储器39上的缓冲器(未示出)中存在的队列,并判断在该缓冲器中是否存在等时请求时,这一点被实现。可以为每一请求访问共享存储器39的代理使用一个缓冲器,并当一个请求被服务时,清空它的相应的缓冲器。然后该缓冲器用后继的存储器请求填充,如果有的话。因此,通过轮询每一缓冲器,例如可以在每一调度时期52的开始时决定等时请求的数目,于是存储器仲裁器42可以决定在调度时期52中是否有适当的时间来服务未处理的等时请求和在调度时期52的后来期间接收到的任何异步请求。另外,通过在调度时期52开始前知道等时请求的数目,存储器仲裁器42可以事先知道是否有未使用的等时服务时期,它们可以转移用于服务异步请求。特别是,如果存储器仲裁器42在调度时期52开始时决定存在一个或者多个未使用的等时服务时期,则它可以立即转移这些未使用的时间给异步服务时期,以便如所希望地尽可能早地服务异步请求。
在本发明的另一个实施例中,不需要在调度时期52开始之前知道等时请求的数目,因为每一等时资源块56-60已经预先分配了服务时间。于是,等时资源块56-60已经保证了服务时间,不管它们是使用所有服务时间,其中一部分,或者完全不使用。任何产生的未使用的等时服务时间可以转移给服务异步请求。另外,下面将进一步详细说明,存储器仲裁器42可以服务异步请求,如果在异步服务时期中还剩余时间的话。这一决定独立于未处理的等时请求的数目。
根据本发明的另一个实施例,为完成存储器请求所需要的最大时间在处理该请求之前决定。特别对于流式请求,为完成一个给定的调度时期52的流式请求所需要的时间在该调度时期52开始之前已知。如前所述,因为等时通信量是确定的,所以可以使用各种已知的实现技术来决定这些时间需求。通过知道为完成一个等时或异步存储器请求所需要的最大时间,存储器仲裁器42可以判定,一个单一存储器请求是否需要在单个或者多重调度时期52中完成,并因此也可以推迟一个异步请求的服务,以便保证服务未处理的等时请求的时间。另外,在用于本发明的一个实施例的优化方案中,如果为完成一个流式存储器请求所需要的已知时间(例如,从显示块56来的流式存储器请求)小于在调度时期52中为该流式请求分配的服务时期,则可以把未使用的服务时期的剩余时间转移到CPU_I/O块62的服务时期。因此,共享存储器39在等时服务时期的未使用部分不需要保持空闲,而是可以把该服务时间转移到需要该时间的异步请求。
本发明的一个实施例还基于异步存储器请求可以与等时请求区分这一特征。可以使用已知的技术来区分这两类请求。
图3是一个流程图70,说明由存储器仲裁器42为单一调度时期52仲裁异步和等时请求的方式。为说明简单起见,在流程图70中假定,在调度时期52开始之前,为CPU_I/O块62的初始服务时期被设定或预分配,虽然这不是必需的。如上所述,为CPU_I/O块62的初始服务时期基于在为等时请求在该调度时期52中所需要的时间被预分配后的剩余时间的数量。另外,为CPU_I/O块62的服务时期基于是否有用于该调度时期52发出信号指示的一个或者多个维护操作(例如刷新、Ical、Tcal)。如果没有信号指示维护操作,则为CPU_I/O块62的服务时期预先设定为最大。然而,为CPU_I/O块62的这一预先设定的服务时期相应减少为服务一个或者多个维护操作所需要的时间量,如果有的话,这些维护操作为该调度时期52有信号指示。例如,刷新维护操作可以每4个调度时期发生,而Ical可以每2048个调度时期发生。因此,为CPU_I/O块62的预设定服务时期在这些调度时期开始时的持续时间内相应减少,以便维护操作可以给优先级,并由存储器仲裁器42服务。
在维护操作,如果有的话,在调度时期52的第一部分期间完成后,存储器仲裁器42根据后继的优先级服务图2的剩余资源块53,例如显示块56、ISO_HL块58、视频捕获块60和CPU_I/O块62。可以实现其它的优先顺序,因此,本发明不受其中单个等时资源块被服务的特定顺序的限制。
根据图3的流程图70,如果计算机系统10在等时服务时期之一中并且在步骤72发生一个异步请求,则存储器仲裁器42在步骤74作两个判断,以便决定是否服务该异步请求。存储器仲裁器42决定在CPU_I/O块62的服务时期中是否仍剩余时间,或者是否没有等时请求未处理。如果存储器仲裁器42确定为异步操作还剩余时间,则当前等时服务时期的计数器暂停,而在步骤76处理异步请求,伴随以相应减量异步服务时期计数器。
类似地,如果没有等时请求未处理,则在步骤76服务异步请求。只要没有等时请求未处理,则在步骤76服务异步请求,而不管在CPU_I/O块62的服务时期中剩余的时间量(即使它是零)。如果异步请求在这一条件下被服务,则等时服务时期计数器(不是异步服务时期计数器,它可以是零或其它低值)相应减量,同时服务异步请求,从而保证调度时期52维护同样的时间持续时期,以及后继调度时期以规律的间隔开始(例如每1.28微秒)。如果没有未处理的等时请求的话服务异步请求的这一优化特征能帮助减少或消除空闲存储器时间。否则,异步请求可能被推迟,直到一个后继的调度时期,同时存储器仲裁器42等待剩余未使用的等时服务时期到期。
在完成该异步请求的服务后,允许用于被暂停的等时服务时期(如果有的话)的计数器继续。之后,存储器仲裁器在步骤78检查是否已经到达调度时期52的末尾。如果是,则在步骤80开始下一调度时期,仲裁器方案为该下一调度时期重复,这里执行维护操作,如果有信号指示的话,接着服务等时请求并且如果接收到异步请求的话暂停等时请求的服务。
如果在步骤74,存储器仲裁器42决定在异步服务时期中没有剩余时间并且有未处理的等时请求的话,则该异步请求必须等待服务,直到下一调度时期。在这种情形,在步骤82和84服务等时请求,之后,和上面一样,存储器仲裁器42在步骤78检查是否已到达调度时期52的末尾。在这一分析下为推迟服务异步请求的基本原理是,为最大化服务质量,等时服务不应该无理由推迟,特别是如果异步请求已经用完给它们分配的服务时期的话。
根据本发明的实施例可以有多种变体。例如,在一个实施例中,如果在步骤72接收到一个异步请求,并且在异步服务时期中剩余的时间量不足以完成该异步请求的服务,则推迟整个异步请求的服务,直到一个后继的调度时期。在另一个实施例中,可以在一个调度时期内服务该异步请求的一部分,然后可以在一个后继的调度时期内完成该服务。在这两种情形下,在该后继调度时期中的时间专门为完成该异步请求(从而可能减少在该后继调度时期期间服务等时请求的时间量)以便保证该异步请求的服务不被无理由地推迟到再一个后继调度时期。
如果在步骤78,在完成步骤76的异步请求后尚未到达调度时期52的末尾,则在步骤84完成一个等时请求后,或在一个等时服务时期已经结束后,发生下面顺序的等时服务时期。在这些后继等时服务时期期间,在步骤72可能再次接收到一个或者多个异步请求,上述仲裁方案重复。
在另一种情形下,如果在步骤72没有异步请求,则存储器仲裁器42在步骤82检查等时请求是否未处理。如果存在未处理的等时请求,则在步骤84服务该请求,直到在步骤78到达调度时期52的末端。如果在步骤82没有未处理的等时请求,则仍然允许发生它们相应的等时服务时期(例如,等时服务时期计数器继续),尽管共享存储器39在这些等时服务时期期间基本空闲,如在步骤86所示。再一次,为优化操作,这一空闲时间可以代之以授予在该特定调度时期52期间为未处理的异步请求。
应该注意这里说明的仲裁方案的实施例的几个特征。第一,方案中下面一点是固有的,即每当服务一个异步或等时请求时,调度时期52中剩余的总时间减少。第二,每当接收一个异步或等时请求时,在该请求被服务时,在相应服务时期中的剩余时间减少。第三,在一个调度时期52内异步和等时存储器请求都可以在任何时间到达。然而,在一个调度时期52中到达的等时请求可以在下一个调度时期服务或者在它们到达的调度时期内服务,如果剩余有时间的话。相应地,可以区分用于一个调度时期52的等时请求与为另一个调度时期的等时请求。
图4是可以使用上述仲裁方案的存储器仲裁器42的一个说明性实施例的方框图。也可以使用除在图4所示的存储器仲裁器42的其它实施例。仲裁器42的3个部件包括事件时期向下计数逻辑块90、维护事件决定逻辑块92和授权产生逻辑块94。
事件时期向下计数逻辑块90包括计数器96-104,分别相应于维护块54(例如Tcal、Ical和刷新维护操作)、显示块56、ISO_HL块58、视频捕获块60、和CPU_I/O块62。计数器96-104的输出分别耦合到或门108-116,后者的输出依次为与门118的反向输入。反转与门118的输出以产生ISO_cnt_en#信号。
每一计数器96-104由时钟信号Clk提供时钟。ISO_cnt_en#信号在每一调度时期52的末尾之后,当所有计数器96-104已经达到零时预加载或初始化计数器96-104中的寄存器。每一计数器96-104具有允许线,诸如用于显示块56的计数器98的Display_cnt_en#,它初始化用于该特别计数器向下计数的服务时期。在运行时,当一个计数器的服务时期到期时,下一计数器的服务时期开始,其由在它的*en#线上的信号允许。当所有服务时期结束时,产生Iso_cnt_en#信号,为下一调度时期复位计数器96-104。
事件时期向下计数块90另外包括耦合在维护块54和计数器96之间的多路转换器106。多路转换器106包括一条选择控制线Maint_Slct[10]以选择Tcal、Ical、和刷新维护操作和它们相应的服务时期计数器设定之一。例如,可以把二进制信号11、10、01分别分配给Tcal、Ical、和刷新维护操作,而可以在没有请求维护操作时使用二进制信号00,从而停止计数器96运行。
维护事件决定逻辑块92包括一个调度时期计数器120和一个维护事件逻辑块122。调度时期计数器120由Clk时钟信号供给时钟和计数调度时期52的数目,使用Iso_cnt_en#信号来区分每一调度时期的开始。根据形成维护事件逻辑块122的输入的调度时期计数器120的输出,维护事件逻辑块122决定什么时间发生Tcal、Ical和刷新维护操作,和给这些操作排定优先级。例如,可以设定每4个调度时期发生一次刷新维护操作,于是维护事件逻辑块122每4个调度时期在Maint_Slct[10]线上产生01二进制信号,该Maint_Slct[10]线上的01二进制信号依次用于控制在事件时期向下计数逻辑块90中的多路转换器106。
计数器96-104的输出126,诸如从显示计数器98输出的Dsply_cnt和从维护事件逻辑块122来的Maint_Select[10]线形成对授权产生逻辑块94的调度逻辑块124的输入。请求线128,诸如显示请求线Dis_Req,给调度逻辑块124发送等时和异步请求。
授权产生逻辑块94使用计数器输出126和基于Maint_Select[10]线上的信号的维护操作优先化信息在输出线130上发布授权(*_gnt#)和允许(*_en#)信号。发布低的*_en#信号,诸如Display_cnt_en#信号,以允许相应计数器96-104开始它们的向下计数。高的*_en#信号引起相应的96-104暂停它们的向下计数。*_gnt#信号,诸如Display_gnt#信号,为请求访问的代理授权对共享存储器39的访问。
图4所示仲裁器42可以以按照图3的流程图70中表示并在前面说明的仲裁方案的方式操作。例如,如果在Async_Req线上接收到一个异步请求(位于对调度逻辑块94的输入128),同时显示计数器98正在向下计数它的服务时期,则显示计数器98通过禁止它的Display_cnt_en#线暂停。然后通过允许异步计数器104的Async_cnt_en#线和从调度逻辑块94产生ASYNC_gnt#信号服务异步请求,只要在异步计数器104中留有时间或者没有未处理的等时请求。如果该异步请求不能被服务,则显示ASYNC_gnt#信号,直到下一调度时期,在Iso_cnt_en#信号产生以复位计数器96-104后。
如果从维护块54发出维护操作的信号,则维护计数器96和异步计数器104都向下计数,而不管有没有未处理的异步请求。如果没有维护操作信号指示,则当服务一个未处理的异步请求时只有异步计数器104向下计数。以这种方式,使服务一个异步请求的时间量依赖于是否安排了一个维护操作而可变。
对存储器仲裁器42或对仲裁方案可以进行各种修改,熟悉相关技术的人根据这里的说明会认识到这一点。例如,有可能提供这样的实施例,其中来自一个或者多个等时计数器98-102的时间可以分配给任何其它的等时计数器或分配给异步计数器104,如果等时服务时期之一没有未处理的等时请求的话。这通过减少由向下计数一个未使用的等时服务时期引起的空闲存储器时间而优化仲裁方案。另外,虽然上述实施例在每一调度时期52的开始执行维护操作,但是应该理解,维护操作可以在一个给定的调度时期期间的任何时间执行。
总之,本发明的实施例围绕异步请求调度等时请求,尽可能在适当的调度时期内服务等时请求。异步请求不推迟,除非它们太大以致不能在单个调度时期52中服务(例如为异步请求分配的服务时期没有剩余时间)。与常规基于优先级的仲裁技术比较,按照本发明的实施例安排时间的等时请求比较容易跟踪,前者与存储器系统的几个地方相互反应而引起延迟。被调度的存储器的被划分的本质给设计者一个紧的、但是足够范围大小的等时先进先出(FIFO)缓冲器以避免丢失数据。紧密限定的缓冲器空间进一步减少存储器控制器的费用。
本发明例示实施例的上述说明不打算穷举或限制本发明到一个精确的公开形式。虽然这里为说明的目的描述了本发明的特定实施例和例子,但是在本发明的范围内各种等价的修改是可能的,熟悉相关技术的人会理解这一点。
可以根据上面详细的说明对本发明进行修改。在下面的权利要求中使用的术语不应该理解为限制本发明在说明书和权利要求中公开的特定实施例。相反,本发明的范围完全由下面的权利要求决定,它们可以根据权利要求解释的条文来解释。
权利要求
1.一种存储器仲裁器,包括第一计数器,用于减量与第一类存储器请求关联的服务时期;第二计数器,用于减量与第二类存储器请求关联的服务时期;以及耦合到第一和第二计数器的输出的调度逻辑电路,第一和第二计数器的输出指示为第一和第二类存储器请求的相应服务时期内剩余的时间,调度逻辑电路具有接收第一和第二类存储器请求的输入,如果第二计数器的输出指示在与第二类存储器请求关联的服务时期中有剩余时间的话,则调度逻辑电路产生一个授权信号,来服务接收到的第二类存储器请求。
2.权利要求1所述存储器仲裁器,其中,第一类存储器请求包括等时请求,第二类存储器请求包括异步请求。
3.权利要求1所述存储器仲裁器,另外包括多个与相应多个等时源相关的另外的第一计数器,每一这样的第一计数器具有与服务时期关联的预分配时间,以服务等时请求。
4.权利要求1所述存储器仲裁器,进一步包括一个维护事件逻辑电路,它的输出耦合到调度逻辑电路,如果安排一个维护事件发生,则维护逻辑电路在其输出上产生一个维护事件信号,如果产生了维护事件信号,则第二计数器使其时间减少相应于执行该维护事件的时间的一个量,如果未安排维护事件发生,则第二计数器使其时间增加。
5.权利要求1所述存储器仲裁器,进一步包括一个维护事件逻辑电路,它的输出耦合到调度逻辑电路,如果安排一个维护事件发生,则维护逻辑电路在其输出上产生一个维护事件信号,如果接收到该维护事件信号,则调度逻辑电路暂停第一计数器,如果接收到该维护事件信号,则第二计数器使其时间减少相应于执行该维护事件的时间的一个量。
6.权利要求1所述存储器仲裁器,其中,调度时期包括一个总的服务时期,所述存储器仲裁器另外包括一个耦合到第一和第二计数器的输出的调度时期计数器,该调度时期计数器根据第一和第二计数器的输出计数逝去的调度时期的数目;和一个耦合到调度时期计数器的一个输出的维护事件逻辑电路,它根据逝去的调度时期的数目调度维护事件的发生,如果安排维护事件发生,则调度逻辑电路暂停第一和第二计数器。
7.权利要求1所述存储器仲裁器,另外包括一个多路转换器,具有耦合到多个维护事件源的输入端子,耦合到一个维护事件逻辑电路的控制端子和一个输出端子;和一个第三计数器,它的一个输入耦合到多路转换器的输出端子上,该维护事件逻辑电路给控制端子提供一个选择信号,选择多个维护事件源中的一个,如果维护事件逻辑电路给控制端子提供选择信号,则调度逻辑块暂停第一和第二计数器,当执行与选择信号关联的一个维护事件时,第三计数器减量它的时间。
8.权利要求1所述存储器仲裁器,另外包括多个与相应多个第一类存储器请求源相关的另外的第一计数器,每一这样的第一计数器具有与服务时期关联的预分配时间,以服务第一类存储器请求,当一个先前的第一计数器完成它的预分配时间时,第一计数器连续减量它们的预分配时间,其中,如果当第一计数器之一减量它的预分配时间时接收到第二类存储器请求,和如果在第二计数器中剩余时间,则调度逻辑电路暂停第一计数器之一并产生授权信号,以服务接收到的第二类存储器请求。
9.权利要求1所述存储器仲裁器,其中,动态决定服务时期,第一和第二计数器具有时间配额,该配额随着动态决定服务时期相应改变。
10.一种存储器仲裁器,包括多个第一计数器,用于减量与等时存储器请求关联的服务时期,第一多个计数器中的计数器在前一服务时期结束后减量它们相应的服务时期;第二计数器,用于减量与异步存储器请求关联的服务时期,用于第一和第二存储器请求的服务时期一起构成一个调度时期;和耦合到多个第一计数器和第二计数器的输出的调度逻辑电路,调度逻辑电路具有接收等时和异步存储器请求的输入,如果第二计数器中有剩余时间的话,则调度逻辑电路产生一个授权信号,在该调度时期期间服务接收到的异步请求。
11.权利要求10所述存储器仲裁器,其中,如果为异步存储器请求产生授权信号的话,调度逻辑电路暂停一个与一个等时请求关联的未处理的服务时期。
12.权利要求10所述存储器仲裁器,其中,如果在第二计数器中没有剩余时间的话,则调度逻辑电路暂停产生给后继调度时期的授权信号。
13.权利要求10所述存储器仲裁器,其中,如果在第二计数器中没有剩余时间或在第一多个计数器中没有足够的剩余时间来服务未处理的等时请求的话,则调度逻辑电路暂停产生给后继调度时期的授权信号。
14.权利要求10所述存储器仲裁器,其中,调度逻辑电路给每一计数器发送一个允许信号以开始减量它们各自的服务时期。
15.权利要求10所述存储器仲裁器,另外包括在每一个计数器中的一个复位输入,用于在每一调度时期开始时复位计数器的服务时期。
16.一种计算机系统,包括一个中央处理器(CPU),用以产生异步存储器请求;一个耦合到CPU的存储器;一个耦合到存储器的桥,用以传递等时和异步存储器请求;和耦合到所述桥的存储器仲裁器,用于控制异步和等时存储器请求的服务,存储器仲裁器包括多个第一计数器,用于减量与等时存储器请求关联的服务时期,第一多个计数器中的计数器在前一服务时期结束后减量它们相应的服务时期;第二计数器,用于减量与异步存储器请求关联的服务时期,用于第一和第二存储器请求的服务时期一起组成一个调度时期;和耦合到多个第一计数器和第二计数器的输出的调度逻辑电路,调度逻辑电路具有接收等时和异步存储器请求的输入,如果第二计数器中有剩余时间的话,则调度逻辑电路产生一个授权信号,在该调度时期期间服务接收到的异步请求。
17.权利要求16所述计算机系统,其中,如果没有足够时间剩余来服务一个异步请求的话,则存储器仲裁器推迟授权服务该异步请求。
18.权利要求16所述计算机系统,其中,与异步和等时请求关联的计数器每一个具有分配的时间,其随着相应异步或等时请求被服务而减量。
19.一种方法,包括预分配多个指定服务等时和异步存储器请求的时隙;连续减量指定服务等时请求的每一时隙;如果接收到一个异步请求的话,暂停减量指定服务它的等时请求的一个时隙;如果在它预分配的时隙中有剩余时间的话,在它的预分配的时隙期间服务该异步请求;和在服务该异步请求后恢复减量暂停的时隙。
20.权利要求19所述方法,另外包括,如果在它的预分配的时隙内没有足够时间剩余来服务接收到的异步请求的话,则推迟对该接收到的异步请求的服务。
全文摘要
由一个存储器仲裁器仲裁对存储器的访问。存储器仲裁器中的多个第一计数器减量与等时存储器请求关联的服务时期,一个第二计数器减量与异步存储器请求关联的服务时期,第一和第二存储器请求的服务时期一起组成调度时期。调度逻辑电路接收等时和异步存储器请求,并且如果在第二计数器中剩余有时间的话,产生一个授权信号以服务在该调度时期期间接收到的异步请求。如果有信号指示有任何维护事件的话,则在执行该维护事件期间,存储器仲裁器可以相应减少用于该异步请求的服务时期。
文档编号G06F13/16GK1434943SQ00819054
公开日2003年8月6日 申请日期2000年10月19日 优先权日1999年12月16日
发明者S·S·帕沃夫斯基, B·S·巴克斯特 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1