CN101221540A - 用于减少存储器访问时延的方法和设备以及数据处理系统 - Google Patents

用于减少存储器访问时延的方法和设备以及数据处理系统 Download PDF

Info

Publication number
CN101221540A
CN101221540A CNA2008100017717A CN200810001771A CN101221540A CN 101221540 A CN101221540 A CN 101221540A CN A2008100017717 A CNA2008100017717 A CN A2008100017717A CN 200810001771 A CN200810001771 A CN 200810001771A CN 101221540 A CN101221540 A CN 101221540A
Authority
CN
China
Prior art keywords
request
high priority
memory
address
priority requests
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.)
Granted
Application number
CNA2008100017717A
Other languages
English (en)
Other versions
CN101221540B (zh
Inventor
R·莱格哈文
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101221540A publication Critical patent/CN101221540A/zh
Application granted granted Critical
Publication of CN101221540B publication Critical patent/CN101221540B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了一种用于减少存储器访问时延的计算机实现的方法、数据处理系统,以及计算机可用程序代码。存储控制器接收存储器访问请求并且确定与所述存储器访问请求关联的地址是否落在多个成对的存储器地址范围寄存器的地址范围之内。响应于所述地址落在所述地址范围之一内,所述存储控制器确定与所述地址范围关联的使能位是否被设置成1。响应于所述使能位被设置成1,所述存储控制器将所述存储器访问请求标记为高优先级请求并且将所述高优先级请求置于请求队列上。调度器接收对于存储体空闲的指示。所述调度器确定高优先级请求是否出现在所述请求队列中,并且如果出现的话,则向所述空闲存储体发送最早的高优先级请求。

Description

用于减少存储器访问时延的方法和设备以及数据处理系统
技术领域
本申请一般涉及存储器访问。更具体而言,本申请一般涉及一种计算机实现的方法、数据处理系统和计算机可用程序代码,用于为管理体(hypervisor)或监管器(supervisor)发起的存储器访问请求减少存储器访问时延。
背景技术
日益增大的对称多处理器数据处理系统并没有被用作单个的大型数据处理系统。相反,这些类型的数据处理系统正在被分区并且被当作较小的系统来使用。这些系统也被称为逻辑分区(LPAR)数据处理系统。数据处理系统内的逻辑分区功能性允许单个操作系统的多个副本或多个异构操作系统在单个数据处理系统平台上同时运行。在其内运行操作系统映像的分区被分派了平台资源的非重叠子集。这些平台可分配资源包括一个或多个结构不同的处理器,及其中断管理区、系统存储器的区域以及输入/输出(I/O)适配器总线槽。这些分区的资源是由操作系统映像的平台固件来表示的。
每个不同的操作系统,或者运行在平台内的操作系统的映像,彼此间都受到保护,从而使得在一个逻辑分区上的软件错误不能影响任何其它分区的正确操作。该保护是通过以下方式来提供的,即通过分配不相交的平台资源集来由每个操作系统映像直接管理,以及通过提供用于确保各种映像不能控制还未被分配给该映像的任何资源的机制。此外,防止在控制操作映像的被分配资源中的软件错误影响任何其它映像的资源。因而,操作系统的每个映像或每个不同的操作系统直接控制平台内可分配资源的不同集合。
关于逻辑分区数据处理系统中的硬件资源,在各种分区之间不相交地共享这些资源。这些资源可以包括,例如,输入/输出(I/O)适配器、存储器双列直插式存储器模块(DIMMs)、非易失性随机访问存储器(NVRAM),以及硬盘驱动器。可以反复引导和关闭LPAR数据处理系统内的每个分区,而不需要对整个数据处理系统重开电源(power-cycle)。
当具有多个处理器的系统访问共享存储器时,通过来自若干处理器的并行访问而可能不时地使该存储器忙碌。在这样的忙碌情况下,由处于监管器或管理体状态下的处理器所发起的对共享存储器的读或写访问可能排在处于队列前面的其它应用请求之后。任何读或写请求所经历的排队时延均将取决于存储系统队列中在读或写请求前面的请求数。由于管理体或监管器根据用户指定的规则最大效率地一起管理系统资源,它们对存储器的读请求通常对实现最优系统性能是至关重要的。因此,需要一种有用的方法,通过该方法可以减少对于管理体或监管器发起的读或写请求的存储器时延。
发明内容
不同的说明性实施例提供了一种用于减少存储器访问时延的计算机实现的方法、数据处理系统,以及计算机可用程序代码。说明性实施例在存储控制器处接收包括了地址的存储器访问请求。说明性实施例确定所述地址是否落在多个成对的存储器地址范围寄存器的地址范围之内。响应于所述地址落在所述多个成对的存储器地址范围寄存器的地址范围之一内,说明性实施例确定使能位(enable bit)是否被设置为1,其中所述使能位与所述地址所落入的地址范围相关联。响应于所述使能位被设置为1,说明性实施例将所述存储器访问请求标记为高优先级请求并且将所述高优先级请求置于请求队列上。
附图说明
在所附权利要求中阐述了被认为是说明性实施例的特色的新颖性特征。然而,当结合附图阅读时,参照下面对说明性实施例的详细描述将最好地理解说明性实施例本身以及优选的使用模式、其进一步的目的和优点,在附图中:
图1是可以在其中实现说明性实施例的数据处理系统的框图;
图2是可以在其中实现说明性实施例的示例性逻辑分区平台的框图;
图3依照说明性实施例描绘了存储控制器的功能框图;
图4依照说明性实施例描绘了用于确定高优先级请求的操作的流程图;
图5依照说明性实施例描绘了用于调度高优先级请求的操作的流程图;以及
图6依照说明性实施例描绘了随调度高优先级请求而使用的倒计数间隔计时器的操作的流程图。
具体实施方式
说明性实施例提供用于为管理体或监管器发起的存储器访问请求减少存储器访问时延。现参照附图,并且特别参照图1,其描绘了可以在其中实现说明性实施例的数据处理系统的框图。数据处理系统100可以是包括多个处理器/高速缓存101、102、103和104的对称多处理器(SMP)系统,其连接至系统总线106。举例来说,数据处理系统100可以是在网络内实现为服务器的IBM eServer(其是纽约Armonk的国际商业机器公司的产品)。可选地,可以采用单处理器系统。还连接至系统总线106的是存储控制器108,其提供到多个局部存储器160-163的接口。I/O总线桥110连接至系统总线106并且提供到I/O总线112的接口。可以如所描绘的那样集成存储控制器108和I/O总线桥110。
数据处理系统100是逻辑分区(LPAR)数据处理系统。因而,数据处理系统100可以使多个异构操作系统(或单个操作系统的多个实例)同时运行。这多个操作系统中的每一个均具有在其内执行的任意数目的软件程序。数据处理系统100是逻辑分区的,从而使得不同的PCI I/O适配器120-121、128-129和136、图形适配器148,以及硬盘适配器149可以被分派给不同的逻辑分区。在这种情况下,图形适配器148连接用于显示设备(未示出),而硬盘适配器149连接至并且控制硬盘150。
因而,举例来说,假设将数据处理系统100分成三个逻辑分区P1、P2和P3。PCI I/O适配器120-121、128-129、136中的每一个、图形适配器148、硬盘适配器149,主处理器/高速缓存101-104中的每一个,以及来自局部存储器160-163的存储器均被分派给这三个分区之一。在这些例子中,存储器160-163可以采用双列直插式存储器模块(DIMMs)的形式。通常并不基于每DIMM而将DIMMs分派给分区。相反,一分区将得到平台所看到的整个存储器的一部分。例如,可以将处理器/高速缓存101、来自局部存储器160-163的存储器的某部分,以及I/O适配器120、128和129分派给逻辑分区P1;可以将处理器102-103、来自局部存储器160-163的存储器的某一其它部分,以及PCI I/O适配器121和136分派给分区P2;以及可以将处理器104、来自局部存储器160-163的存储器的另一部分、图形适配器148,以及硬盘适配器149分派给逻辑分区P3。
将数据处理系统100内执行的每个操作系统分派给不同的逻辑分区。因而,在数据处理系统100内执行的每个操作系统仅可以访问在其逻辑分区内的那些I/O单元。因而,举例来说,高级交互执行(AIX)操作系统的一个实例可以在分区P1内执行,AIX操作系统的第二实例(映像)可以在分区P2内执行,并且Linux或OS/400操作系统可以在逻辑分区P3内操作。
连接至I/O总线112的外设部件互连(PCI)主桥114提供了到PCI局部总线115的接口。多个PCI输入/输出适配器120-121通过PCI到PCI桥116、PCI总线118、PCI总线119、I/O槽170以及I/O槽171连接至PCI总线115。PCI到PCI桥116提供了到PCI总线118和PCI总线119的接口。PCI I/O适配器120和121被分别置于I/O槽170和171中。典型的PCI总线实现支持在四个与八个I/O适配器(即,内插连接器的扩展槽)之间。每个PCI I/O适配器120-121在数据处理系统100与输入/输出设备(举例来说,诸如作为数据处理系统100的客户机的其它网络计算机)之间提供了接口。
附加的PCI主桥122提供了用于附加的PCI总线123的接口。PCI总线123连接至多个PCI I/O适配器128-129。PCI I/O适配器128-129通过PCI到PCI桥124、PCI总线126、PCI总线127、I/O槽172以及I/O槽173连接至PCI总线123。PCI到PCI桥124提供了到PCI总线126和PCI总线127的接口。PCI I/O适配器128和129被分别置于I/O槽172和173中。以这样的方式,举例来说,可以通过每个PCI I/O适配器128-129支持诸如调制解调器或网络适配器的附加的I/O设备。因此,数据处理系统100允许到多个网络计算机的连接。
存储变换图形适配器148被插入到I/O槽174中并且通过PCI总线144、PCI到PCI桥142、PCI总线141和PCI主桥140连接至I/O总线112。硬盘适配器149可以置于I/O槽175中,其连接至PCI总线145。而该总线又连接至PCI到PCI桥142,其中PCI到PCI桥142通过PCI总线141连接至PCI主桥140。
PCI主桥130提供了用于PCI总线131的接口以连接至I/O总线112。PCI I/O适配器136连接至I/O槽176,其中I/O槽176通过PCI总线133连接至PCI到PCI桥132。PCI到PCI桥132连接至PCI总线131。该PCI总线还将PCI主桥130连接至服务处理器邮箱接口和ISA总线访问通过逻辑(ISA bus access pass-through logic)194以及PCI到PCI桥132。服务处理器邮箱接口和ISA总线访问通过逻辑194转发指定到PCI/ISA桥193的PCI访问。NVRAM存储器192连接至ISA总线196。服务处理器135通过其局部PCI总线195连接至服务处理器邮箱接口和ISA总线访问通过逻辑194。服务处理器135还通过多个JTAG/I2C总线134连接至处理器/高速缓存101-104。JTAG/I2C总线134是JTAG/scan(扫描)总线(参见IEEE 1149.1)和Phillips I2C总线的组合。然而,可选地,可以单独由Phillips I2C总线或单独由JTAG/scan总线来替换JTAG/I2C总线134。主处理器/高速缓存101、102、103和104的所有SP-ATTN信号一起连接至服务处理器135的中断输入信号。服务处理器135具有其自己的局部存储器191,并且具有对硬件OP-panel(面板)190的访问。
当最初对数据处理系统100加电的时候,服务处理器135使用JTAG/I2C总线134来询问系统(主)处理器/高速缓存101-104、存储控制器108以及I/O桥110。在完成该步骤时,服务处理器135便了解了数据处理系统100的库存和拓扑。服务处理器135还在通过询问主处理器/高速缓存101-104、存储控制器108以及I/O桥110所发现的所有元件上执行机内自测(BISTs)、基本保证测试(BATs)以及存储测试。由服务处理器135收集和报告在BISTs、BATs和存储测试期间所检测到的对于失效的任何错误信息。
如果去掉在BISTs、BATs和存储测试期间发现有故障的元件之后,系统资源的配置仍然可能有意义或有效,那么允许数据处理系统100继续将可执行代码加载到局部(主)存储器160-163中。服务处理器135然后释放主处理器/高速缓存101-104用于执行加载到局部存储器160-163中的代码。当主处理器/高速缓存101-104正在执行来自数据处理系统100内相应的操作系统的代码时,服务处理器135输入监控和报告错误的模式。由服务处理器135监控的项目的类型包括,例如,冷却风扇速度和操作、热传感器、电源调节器,以及由处理器/高速缓存101-104、局部存储器160-163和I/O桥110报告的可恢复和不可恢复的错误。
服务处理器135保存和报告与数据处理系统100中所有被监控的项目有关的错误信息。服务处理器135还基于错误的类型和定义的阈值采取措施。例如,服务处理器135可以注意到处理器的高速缓冲存储器上的过甚的可恢复错误,并且判定这是硬件失效的前兆。基于该确定,服务处理器135可以标记资源用于在当前运行的会话期间的取消配置以及将来的初始程序加载(IPLs,Initial Program Loads)。IPLs有时也被称为“引导(boot)”或“自举(bootstrap)”。
可以使用各种市售的计算机系统来实现数据处理系统100。例如,可以使用可从国际商业机器公司获得的IBM eServer iSeries Model 840系统来实现数据处理系统100。这样的系统可以使用OS/400操作系统(其也可从国际商业机器公司获得)来支持逻辑分区。
本领域的普通技术人员将理解,图1中所描绘的硬件可以变化。例如,除了所描绘的硬件之外或者替代所描绘的硬件,还可以使用诸如光盘驱动器等的其它外围设备。所描绘的例子并不意味着暗示关于说明性实施例的体系结构限制。
现参照图2,其描绘了可以在其中实现说明性实施例的示例性逻辑分区平台的框图。举例来说,可以将逻辑分区平台200中的硬件实现为图1中的数据处理系统100。逻辑分区平台200包括分区硬件230、操作系统202、204、206、208,以及分区管理固件210。操作系统202、204、206和208可以是在逻辑分区平台200上同时运行的多个异构操作系统或单个操作系统的多个副本。可以使用OS/400来实现这些操作系统,其被设计成与诸如可从国际商业机器公司获得的管理体这样的分区管理固件连接。仅使用OS/400作为这些说明性实施例中的例子。当然,取决于特定的实现,可以使用诸如AIX和Linux的其它类型的操作系统。操作系统202、204、206和208位于分区203、205、207和209中。管理体软件是可以用于实现分区管理固件210的软件的例子,并且可以从国际商业机器公司获得。固件是存储在无需电源便保存其内容的存储器芯片(举例来说,诸如只读存储器(ROM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM),以及非易失性随机访问存储器(非易失性RAM))中的“软件”。
另外,这些分区还包括分区固件211、213、215和217。可以使用初始自举代码、IEEE-1275标准开放式固件(Standard Open Firmware),以及可从国际商业机器公司获得的运行时抽取软件(runtime abstractionsoftware,RTAS)来实现分区固件211、213、215和217。当实例化(instantiate)分区203、205、207和209的时候,通过平台固件210将自举代码的副本加载到分区203、205、207和209上。由此,将控制传递至自举代码,且自举代码然后加载开放式固件和RTAS。然后将与分区关联的或分派给分区的处理器调度到分区的存储器以执行分区固件。
分区硬件230包括多个处理器232-238、多个系统存储单元240-246、多个输入/输出(I/O)适配器248-262,以及存储器单元270。可以将处理器232-238、存储单元240-246、NVRAM存储器298和I/O适配器248-262中的每一个分派给逻辑分区平台200内的多个分区之一,其每一个对应于操作系统202、204、206和208之一。
分区管理固件210为分区203、205、207和209实现多种功能和服务,以便创建和推行对逻辑分区平台200的分区。分区管理固件210是与基础硬件一致的、固件实现的虚拟机。因而,分区管理固件210允许通过虚拟化逻辑分区平台200的所有硬件资源来同时执行独立的OS映像202、204、206和208。
服务处理器290可以用于提供各种服务,例如处理分区中的平台错误。这些服务还可以充当服务代理来向诸如国际商业机器公司这样的供应商报告回错误。可以通过诸如硬件管理控制台280这样的硬件管理控制台来控制不同分区的操作。硬件管理控制台280是分离的数据处理系统,系统管理员可以根据其来实现包括向不同分区重新分配资源在内的各种功能。
说明性实施例提供了一种服务器系统,其中该服务器系统中的每个存储控制器均具有一种机制,存储控制器通过该机制来标识来自处于监管器或管理体状态下的处理器的新的输入请求。可以在单处理器系统、同类多处理器系统、异构多处理器系统、单分区系统或多分区系统中实现存储控制器。存储控制器将这样的请求标记为高优先级,其帮助存储控制器中的调度器给予这些请求超过其它请求的更高的优先级。标识高优先级请求有助于减少读或写请求的时延,并且提供了改进的整体系统性能。
图3依照说明性实施例描绘了存储控制器的功能框图。存储控制器302,其是诸如图1中的存储控制器108的存储控制器,包括成对的存储器地址范围寄存器304、存储器地址检验器306、请求队列308,以及调度器310。存储控制器302使用成对的存储器地址范围寄存器304来指定管理体或监管器应当被允许以高优先级访问的存储器地址范围。由运行管理体或监管器的操作系统预先定义地址范围。存储器地址范围寄存器304是成对寄存器,每对含有一个上端(upper-end)地址寄存器312和一个下端(lower-end)地址寄存器314。每对存储器地址范围寄存器304还含有使能位316。使能位316由管理体或监管器来设置。当使能位316被设置成值“1”时,那么由上端地址寄存器312和下端地址寄存器314所指定的地址范围是有效的。当使能位316被设置成“0”时,那么由上端地址寄存器312和下端地址寄存器314所指定的地址范围是无效的,并且应当被存储系统忽略。
诸如读或写请求318这样的新的存储器访问请求无论何时被存储控制器302接收,存储器地址检验器306都检查读或写请求318所使用的地址是否落在如存储器地址范围寄存器304所指定的预定义地址范围之一内。如果存储器地址检验器306检验出读或写请求318所使用的地址落在预定义地址范围之一内,那么在将读或写请求318输入到请求队列308之前,存储控制器302利用单比特优先级标志来标记该读或写请求318。存储器请求队列中的每个请求在其是高优先级请求的情况下将具有设置成值“1”的该比特,或者在其是低优先级请求的情况下将具有设置成值“0”的该比特。因为由于读-写和写-读依赖关系所导致的潜在延迟,所以为读和写请求都适当地设置了优先级标志。
当调度器310被通知存储体(memory bank)320内的存储体空闲时,调度器310扫描请求队列308中的请求以调度到存储体320中的空闲存储体。存储体320可以是一组存储体,其中在该组存储体中可以存在一个存储体。存储体320中的每个存储体跨越系统中整个存储范围的一部分。为了被调度到存储体320中的空闲存储体,读或写请求318应当访问存储体320中的空闲存储体所跨越的存储范围。对于优先级标志被设置成“1”的请求,调度器310给予了比优先级标志被设置成“0”的任何请求都要高的优先级,与此同时保持了请求之间的任何依赖关系。调度器310然后将最早的高优先级请求调度到存储体320中的空闲存储体。如果在请求队列中没有发现这样的高优先级请求,则调度器310将从队列中的低优先级请求中进行选择(如果有的话)。调度器310然后将最早的低优先级请求调度到存储体320中的空闲存储体。
为了防止高优先级请求始终阻碍请求队列中任何的低优先级请求被调度,存储控制器302包括高优先级调度计数器322和倒计数间隔计时器324。高优先级调度计数器322对给定时间间隔期间的高优先级调度的数目进行计数。调度器310将高优先级调度计数器322的值与最大高优先级调度计数器寄存器326中所设置的值进行比较,以便查看是否已经达到了最大数目的高优先级请求调度。因而,调度器310使用高优先级调度计数器322的计数来限制在指定时间间隔中可以调度多少这样的高优先级请求。倒计数间隔计时器324是当调度器310调度第一高优先级请求时开始从预定时间倒计数的计时器。当倒计数间隔计时器324达到零时,倒计数间隔计时器324重置成存储在倒计数间隔计时器初始值寄存器328中的预定时间值。
如果调度器310在时间间隔内调度了预定的最大数目的高优先级请求,那么调度器310将停止调度高优先级请求并将其视为等同于低优先级请求,并且开始以请求在请求队列308中出现的顺序来发出请求。高优先级调度计数器322对高优先级请求的数目进行计数,并且在这些例子中通过倒计数间隔计时器324跟踪时间间隔。调度器310继续以请求出现的顺序发出请求,直到计时器间隔结束或不再出现待发出的请求,此时,将高优先级调度计数器322重置回最大值,并且重新启动倒计数间隔计时器324,允许高优先级请求再次获得高优先级。
图4依照说明性实施例描绘了用于确定高优先级请求的操作的流程图。该操作是由诸如图3中的存储控制器302这样的存储控制器的组件来进行的。
当操作开始时,存储控制器接收新的读或写请求,其是存储器访问请求(步骤402)。在存储控制器内的存储器地址检验器(例如图3中的存储器地址检验器306)将比较新的读或写请求所使用的地址与存储器地址范围寄存器对所指定的预定义地址范围(步骤404)。然后,存储器地址检验器确定新的读或写请求的地址是否落在指定范围之一内(步骤406)。
如果新的读或写请求的地址落在指定范围之一内,那么存储器地址检验器确定是否启用了用于该新的读或写请求的地址所落入的存储器地址范围寄存器的使能位(步骤408)。如果启用了用于该存储器地址范围寄存器的使能位,则存储控制器将该新的读或写请求标记为高优先级(步骤410)。然后,存储控制器将该高优先级请求置于请求队列上(步骤412),且此后该操作终止。
返回步骤406,如果新的读或写请求的地址没有落入指定范围之一内,那么存储控制器将该新的读或写请求标记为低优先级(步骤414)。然后,存储控制器将该低优先级请求置于请求队列上(步骤412),且此后该操作终止。
返回步骤408,如果新的读或写请求的地址落入了指定范围之一内,但却禁用了用于存储器地址范围寄存器的使能位,那么存储控制器将该新的读或写请求标记为低优先级(步骤414)。然后,存储控制器将该低优先级请求置于请求队列上(步骤412),且此后该操作终止。
图5依照说明性实施例描绘了用于调度高优先级请求的操作的流程图。在这些例子中,操作是由诸如图3中的存储控制器302这样的存储控制器的组件来进行的。
当操作开始时,在存储控制器内的调度器(例如图3中的调度器310)接收到存储体空闲的通知(步骤502)。接下来,调度器确定请求队列中是否有可以被调度到存储体中的空闲存储体的高优先级请求(步骤504)。调度器对高优先级标志的请求给予比任何未标志的请求都要高的优先级,与此同时保持了请求之间的任何依赖关系。
如果在步骤504,请求队列中存在高优先级请求,则调度器确定是否已经发出了最大数目的高优先级请求(步骤506)。调度器将高优先级调度计数器的值与最大高优先级调度计数器寄存器(例如图3的最大高优先级调度计数器寄存器326)中所设置的值进行比较,以便查看是否已经达到了最大数目的高优先级请求调度。因而,调度器使用高优先级调度计数器的计数来限制在指定时间间隔中可以调度多少这样的高优先级请求。
如果在步骤506,还未发出最大数目的高优先级请求,则调度器将最早的高优先级请求发送至空闲存储体(步骤508)。然后,调度器增加高优先级调度计数器(步骤510),且此后操作返回步骤502。返回步骤504,如果仅有低优先级请求出现在请求队列中,则调度器将请求队列中的第一请求发至空闲存储体(步骤512),且此后操作返回步骤502。返回步骤506,如果已经发出了最大数目的高优先级请求,则调度器将请求队列中的第一请求发至空闲存储体(步骤512),且此后操作返回步骤502。
图6依照说明性实施例描绘了随调度高优先级请求而使用的倒计数间隔计时器的操作的流程图。当操作开始时,诸如图3的倒计数间隔计时器324这样的倒计数间隔计时器加载由监管器或管理体所指定的值(步骤602)。该值存储在倒计数间隔计时器初始值寄存器(例如图3的倒计数间隔计时器初始值寄存器328)中。然后,调度器将高优先级调度计数器重置成零值(步骤604)。调度器启动倒计数间隔计时器(步骤606),并且每时钟递减倒计数间隔计时器(步骤608)。调度器确定倒计数间隔计时器是否已达到零(步骤610)。如果在步骤610,计时器还未达到零,那么该操作返回步骤608。如果在步骤610,计时器已经达到零,则倒计数间隔计时器停止计数(步骤612),且此后操作返回步骤602。
因而,说明性实施例提供用来减少存储器访问时延。在存储控制器处接收包括地址的存储器访问请求。存储控制器确定该地址是否落在多个成对的存储器地址范围寄存器的地址范围之内。响应于该地址落在多个成对的存储器地址范围寄存器的地址范围之一内,存储控制器确定使能位是否被设置成1。该使能位与该地址所落入的地址范围相关联。响应于使能位被设置成1,存储控制器将存储器访问请求标记为高优先级请求并且将该高优先级请求置于请求队列上。
说明性实施例可以采取全硬件实施例、全软件实施例或者既含有硬件元素又含有软件元素的实施例的形式。以软件实现说明性实施例,其包括但不限于固件、常驻软件、微码等。
此外,说明性实施例可以采取可访问于计算机可用或计算机可读介质的计算机程序产品的形式,该计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用的或者与计算机或任何指令执行系统结合使用的程序代码。对于本说明书来说,计算机可用或计算机可读介质可以是能够容纳、存储、通信、传播或传送由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的任何有形装置。
介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)或者传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可装卸计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前的例子包括只读光盘存储器(CD-ROM)、读/写光盘(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统可以包括通过系统总线直接地或间接地耦合于存储元件的至少一个处理器。存储元件可以包括在程序代码的实际执行期间所使用的局部存储器、大容量存储器,以及为了减少在执行期间必须从大容量存储器检索代码的次数而提供对至少一些程序代码的临时存储的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接地或者通过插入I/O控制器耦合于系统。
网络适配器也可以耦合于系统,从而使得数据处理系统能够适于通过介入专用或公用网络耦合于其它的数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡正是几种当前可用类型的网络适配器。
已经出于说明和描述的目的给出了对说明性实施例的描述,其并不旨在穷举或将说明性实施例限制于所公开的形式。对本领域的普通技术人员来说,很多修改和变形将是显而易见的。所选择和描述的实施例是为了最好地解释说明性实施例的原理、实际应用,以及使本领域的普通技术人员能够针对适于预期的特定用途的各种实施例以及各种修改来理解说明性实施例。

Claims (20)

1.一种用于减少存储器访问时延的计算机实现的方法,所述方法包括:
在存储控制器处接收存储器访问请求,其中所述存储器访问请求包括地址;
确定所述地址是否落在多个成对的存储器地址范围寄存器的地址范围之内;
响应于所述地址落在所述多个成对的存储器地址范围寄存器的地址范围之一内,确定使能位是否被设置成1,其中所述使能位与所述地址所落入的地址范围相关联;
响应于所述使能位被设置成1,将所述存储器访问请求标记为高优先级请求;以及
将所述高优先级请求置于请求队列上。
2.根据权利要求1的方法,其进一步包括:
响应于所述地址落在所述多个成对的存储器地址范围寄存器的所有地址范围之外,将所述存储器访问请求标记为低优先级请求;以及
将所述低优先级请求置于所述请求队列上。
3.根据权利要求1的方法,其进一步包括:
响应于所述使能位被设置成0,将所述存储器访问请求标记为低优先级请求;以及
将所述低优先级请求置于所述请求队列上。
4.根据权利要求1的方法,其进一步包括:
在所述存储控制器中的调度器处接收对于一组存储体中的存储体空闲而形成空闲存储体的指示;
确定一组高优先级请求是否出现在所述请求队列中;以及
响应于存在所述一组高优先级请求,向所述空闲存储体发送来自所述一组高优先级请求的最早的高优先级请求。
5.根据权利要求4的方法,其进一步包括:
对于预定的时间间隔,启动倒计数间隔计时器;以及
每次调度所述一组高优先级请求时,增加高优先级调度计数器。
6.根据权利要求5的方法,其进一步包括:
确定在所述预定的时间间隔中是否已经调度了由所述高优先级调度计数器所指示的最大数目的高优先级请求;
响应于在所述预定的时间间隔中正在调度所述最大数目的高优先级请求,优先向所述空闲存储体发送所述一组高优先级请求中的任何更多的高优先级请求;以及
向所述空闲存储体发送所述请求队列中第一出现的请求。
7.根据权利要求6的方法,其进一步包括:
响应于所述预定的时间间隔到期,重置所述倒计数间隔计时器。
8.根据权利要求1的方法,其中所述存储控制器处于以下中的至少一个中:单处理器系统、同类多处理器系统、异构多处理器系统、单分区系统,或者多分区系统。
9.一种数据处理系统,其包括:
总线系统;
连接至所述总线系统的通信系统;
连接至所述总线系统的存储器,其中所述存储器包括一组指令;以及
连接至所述总线系统的存储控制器,其中所述存储控制器执行所述一组指令,以便接收存储器访问请求,其中所述存储器访问请求包括地址;确定所述地址是否落在多个成对的存储器地址范围寄存器的地址范围之内;响应于所述地址落在所述多个成对的存储器地址范围寄存器的地址范围之一内,确定使能位是否被设置成1,其中所述使能位与所述地址所落入的地址范围相关联;响应于所述使能位被设置成1,将所述存储器访问请求标记为高优先级请求;以及将所述高优先级请求置于请求队列上。
10.根据权利要求9的数据处理系统,其中所述存储控制器执行所述一组指令,以便响应于所述地址落在所述多个成对的存储器地址范围寄存器的所有地址范围之外,将所述存储器访问请求标记为低优先级请求;以及将所述低优先级请求置于所述请求队列上。
11.根据权利要求9的数据处理系统,其中所述存储控制器执行所述一组指令,以便响应于所述使能位被设置成0,将所述存储器访问请求标记为低优先级请求;以及将所述低优先级请求置于所述请求队列上。
12.根据权利要求9的数据处理系统,其中所述存储控制器执行所述一组指令,以便在所述存储控制器中的调度器处接收对于一组存储体中的存储体空闲而形成空闲存储体的指示;确定一组高优先级请求是否出现在所述请求队列中;以及响应于存在所述一组高优先级请求,向所述空闲存储体发送来自所述一组高优先级请求的最早的高优先级请求。
13.根据权利要求12的数据处理系统,其中所述存储控制器执行所述一组指令,以便对于预定的时间间隔启动倒计数间隔计时器;以及每次调度所述一组高优先级请求时,增加高优先级调度计数器。
14.根据权利要求13的数据处理系统,其中所述存储控制器执行所述一组指令,以便确定在所述预定的时间间隔中是否已经调度了由所述高优先级调度计数器所指示的最大数目的高优先级请求;响应于在所述预定的时间间隔中正在调度所述最大数目的高优先级请求,优先向所述空闲存储体发送所述一组高优先级请求中的任何更多的高优先级请求;向所述空闲存储体发送所述请求队列中第一出现的请求;以及响应于所述预定的时间间隔到期,重置所述倒计数间隔计时器。
15.一种用于减少存储器访问时延的设备,其包括:
用于接收存储器访问请求的装置,其中所述存储器访问请求包括地址;
用于确定所述地址是否落在多个成对的存储器地址范围寄存器的地址范围之内的装置;
响应于所述地址落在所述多个成对的存储器地址范围寄存器的地址范围之一内,用于确定使能位是否被设置成1的装置,其中所述使能位与所述地址所落入的地址范围相关联;
响应于所述使能位被设置成1,用于将所述存储器访问请求标记为高优先级请求的装置;以及
用于将所述高优先级请求置于请求队列上的装置。
16.根据权利要求15的设备,其进一步包括:
响应于所述地址落在所述多个成对的存储器地址范围寄存器的所有地址范围之外,用于将所述存储器访问请求标记为低优先级请求的装置;以及
用于将所述低优先级请求置于所述请求队列上的装置。
17.根据权利要求15的设备,其进一步包括:
响应于所述使能位被设置成0,用于将所述存储器访问请求标记为低优先级请求的装置;以及
用于将所述低优先级请求置于所述请求队列上的装置。
18.根据权利要求15的设备,其进一步包括:
用于接收对于一组存储体中的存储体空闲而形成空闲存储体的指示的装置;
用于确定一组高优先级请求是否出现在所述请求队列中的装置;以及
响应于存在所述一组高优先级请求,用于向所述空闲存储体发送来自所述一组高优先级请求的最早的高优先级请求的装置。
19.根据权利要求18的设备,其进一步包括:
用于对于预定的时间间隔启动倒计数间隔计时器的装置;以及
用于每次调度所述一组高优先级请求时增加高优先级调度计数器的装置。
20.根据权利要求19的设备,其进一步包括:
用于确定在所述预定的时间间隔中是否已经调度了由所述高优先级调度计数器所指示的最大数目的高优先级请求的装置;
响应于在所述预定的时间间隔中正在调度所述最大数目的高优先级请求,用于优先向所述空闲存储体发送所述一组高优先级请求中的任何更多的高优先级请求的装置;
用于向所述空闲存储体发送所述请求队列中第一出现的请求的装置;以及
响应于所述预定的时间间隔到期,用于重置所述倒计数间隔计时器的装置。
CN2008100017717A 2007-01-09 2008-01-08 用于减少存储器访问时延的方法和设备以及数据处理系统 Expired - Fee Related CN101221540B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/621,189 2007-01-09
US11/621,189 US7774563B2 (en) 2007-01-09 2007-01-09 Reducing memory access latency for hypervisor- or supervisor-initiated memory access requests

Publications (2)

Publication Number Publication Date
CN101221540A true CN101221540A (zh) 2008-07-16
CN101221540B CN101221540B (zh) 2012-01-25

Family

ID=39595265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100017717A Expired - Fee Related CN101221540B (zh) 2007-01-09 2008-01-08 用于减少存储器访问时延的方法和设备以及数据处理系统

Country Status (2)

Country Link
US (1) US7774563B2 (zh)
CN (1) CN101221540B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015021919A1 (zh) * 2013-08-13 2015-02-19 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置
CN104866238A (zh) * 2015-05-25 2015-08-26 华为技术有限公司 访问请求调度方法及装置
CN112513809A (zh) * 2019-12-27 2021-03-16 深圳市大疆创新科技有限公司 处理器、任务响应方法、可移动平台、及相机
WO2021164032A1 (zh) * 2020-02-21 2021-08-26 华为技术有限公司 读/写数据的方法、存储器、存储装置和终端

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019296B2 (en) * 2007-05-31 2018-07-10 Red Hat, Inc. Addressable dispatchers in distributed computing
JP5173713B2 (ja) 2008-09-30 2013-04-03 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法
US20100161844A1 (en) * 2008-12-23 2010-06-24 Phoenix Technologies Ltd DMA compliance by remapping in virtualization
US11275509B1 (en) * 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US9729337B2 (en) * 2010-10-29 2017-08-08 Aruba Networks, Inc. Delivering and managing multicast traffic over wireless LANs
US20120106425A1 (en) * 2010-10-29 2012-05-03 Ramsundar Janakiraman Managing Multicast Membership in Wireless LANS
US9043562B2 (en) 2011-04-20 2015-05-26 Microsoft Technology Licensing, Llc Virtual machine trigger
KR20150093004A (ko) * 2014-02-06 2015-08-17 삼성전자주식회사 불휘발성 저장 장치의 동작 방법 및 불휘발성 저장 장치를 액세스하는 컴퓨팅 장치의 동작 방법
WO2016041156A1 (zh) * 2014-09-17 2016-03-24 华为技术有限公司 Cpu调度的方法和装置
CN105912270B (zh) * 2016-04-12 2019-01-18 上海交通大学 一种面向pm的访存请求解析装置与方法
US10776268B2 (en) 2018-04-19 2020-09-15 Western Digital Technologies, Inc. Priority addresses for storage cache management
US11237902B2 (en) * 2019-03-15 2022-02-01 Innogrit Technologies Co., Ltd. Systems and methods for an ECC architecture with memory mapping

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557578A (en) * 1995-05-01 1996-09-17 Apple Computer, Inc. Dynamic memory refresh controller and method
US6192461B1 (en) * 1998-01-30 2001-02-20 International Business Machines Corporation Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
US7113516B1 (en) * 2000-11-28 2006-09-26 Texas Instruments Incorporated Transmit buffer with dynamic size queues
US7103735B2 (en) * 2003-11-26 2006-09-05 Intel Corporation Methods and apparatus to process cache allocation requests based on priority

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015021919A1 (zh) * 2013-08-13 2015-02-19 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置
CN104866238A (zh) * 2015-05-25 2015-08-26 华为技术有限公司 访问请求调度方法及装置
CN104866238B (zh) * 2015-05-25 2018-12-14 华为技术有限公司 访问请求调度方法及装置
US10209924B2 (en) 2015-05-25 2019-02-19 Huawei Technologies Co., Ltd. Access request scheduling method and apparatus
CN112513809A (zh) * 2019-12-27 2021-03-16 深圳市大疆创新科技有限公司 处理器、任务响应方法、可移动平台、及相机
WO2021164032A1 (zh) * 2020-02-21 2021-08-26 华为技术有限公司 读/写数据的方法、存储器、存储装置和终端

Also Published As

Publication number Publication date
US20080168241A1 (en) 2008-07-10
CN101221540B (zh) 2012-01-25
US7774563B2 (en) 2010-08-10

Similar Documents

Publication Publication Date Title
CN101221540B (zh) 用于减少存储器访问时延的方法和设备以及数据处理系统
JP4181554B2 (ja) 論理区画化データ処理システムでの電力消費を削減する方法」と補正する。
CN101410813B (zh) 在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品
CN101946235B (zh) 用于在共享处理器分区环境中移动线程的方法及装置
US7480911B2 (en) Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
US8359449B2 (en) Prioritizing virtual real memory paging based on disk capabilities
US7370331B2 (en) Time slicing in a shared partition
US8302102B2 (en) System utilization through dedicated uncapped partitions
US8949659B2 (en) Scheduling workloads based on detected hardware errors
US8799908B2 (en) Hardware-enabled lock mediation for controlling access to a contested resource
CN101290595B (zh) 在异步环境下探查系统管理程序任务的系统和方法
US20080082710A1 (en) System and method for managing system management interrupts in a multiprocessor computer system
US7734905B2 (en) System and method for preventing an operating-system scheduler crash
US8346975B2 (en) Serialized access to an I/O adapter through atomic operation
US8139595B2 (en) Packet transfer in a virtual partitioned environment
WO2011147884A1 (en) Fast remote communication and computation between processors
US20100083269A1 (en) Algorithm for fast list allocation and free
US7370240B2 (en) Method and apparatus for preserving trace data in a logical partitioned data processing system
US20140122850A1 (en) Non-interrupting performance tuning using runtime reset
US20120124298A1 (en) Local synchronization in a memory hierarchy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120125

Termination date: 20190108

CF01 Termination of patent right due to non-payment of annual fee