CN1855026A - 用于选择命令发送到存储器的方法、存储器控制器和系统 - Google Patents

用于选择命令发送到存储器的方法、存储器控制器和系统 Download PDF

Info

Publication number
CN1855026A
CN1855026A CNA2006100577207A CN200610057720A CN1855026A CN 1855026 A CN1855026 A CN 1855026A CN A2006100577207 A CNA2006100577207 A CN A2006100577207A CN 200610057720 A CN200610057720 A CN 200610057720A CN 1855026 A CN1855026 A CN 1855026A
Authority
CN
China
Prior art keywords
formation
conflict
order
memory controller
storer
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
CNA2006100577207A
Other languages
English (en)
Other versions
CN100440124C (zh
Inventor
赫尔曼·李·布莱克蒙
菲利普·罗杰斯·希利尔三世
约瑟夫·艾伦·基尔希特
布赖恩·T·范德普尔
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 CN1855026A publication Critical patent/CN1855026A/zh
Application granted granted Critical
Publication of CN100440124C publication Critical patent/CN100440124C/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • 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/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Abstract

一种方法、设备、系统和信号承载介质,在实施例中选择命令以发送到存储器。在实施例中,如果如下情况中的一些或全部为真,则将写队列中不与冲突队列相冲突的最旧的命令发送到存储器和添加到冲突队列:读队列中的所有命令与冲突队列相冲突,来自处理器的任何读命令不与写队列相冲突,写队列中的命令数目大于第一阈值,以及冲突队列中的所有命令已经出现小于第二阈值。在实施例中,如果命令不与队列中的命令访问存储器中的同一高速缓存线,则该命令不与该队列相冲突。以此方式,在实施例中,写命令在减小了对于读命令性能的影响的时刻发送到存储器。

Description

用于选择命令发送到存储器的方法、存储器控制器和系统
技术领域
本发明一般涉及计算机系统,更具体地涉及发送命令到存储器的存储器控制器。
背景技术
常常将1948年的EDVAC计算机系统的开发称为计算机时代的开始。从那时起,计算机系统已经发展成在许多不同环境下可以找到的极为复杂的装置。计算机系统典型地包括硬件(例如半导体、电路板等)和软件(例如计算机程序)的组合。随着半导体处理和计算机体系结构的发展将计算机硬件的性能向更高水平推动,更为复杂的计算机软件已经得到了发展,以利用硬件的更高性能,带来了比仅仅数年前强大得多的当今计算机系统。
对计算机系统的性能可以具有巨大影响的计算机系统的一个组件是存储器子系统。计算机系统典型地包括经由处理器总线连接到存储器子系统的一个或多个处理器。存储器子系统典型地包括经由存储器数据总线和相关联的控制信号连接到一个或多个同步动态随机访问存储器(SDRAM)的存储器控制器。存储器控制器负责接受来自处理器的存储器读和写(加载和存储)命令或请求、与SDRAM相联系以执行读或写命令、以及将与读操作相关联的任何数据从SDRAM返回到处理器。存储器控制器还具有管理存储器存储体(bank)定时、最大化存储器数据总线的利用、以及优化存储器访问,比如在可能时使得读优先于写,的任务。
优化存储器访问对于计算机系统性能的提高已经是一个基本的问题。存储器控制器努力解决的一个存储器访问问题是读命令与写命令的选择。一般地,读命令对于系统性能是限制性因素,因为处理器必须等待读取数据,以便继续执行指令,或者处理器预取读取数据、然后试图隐藏存储器时延。写命令一般不是严重的问题,因为一旦处理器将写数据发送到存储器控制器,处理器认为它们就完成了。然而,存储器控制器具有固定数目的缓冲器(或队列)用以保持写命令和数据。一旦缓冲区近乎充满,由于存储器控制器中的写队列可能溢出,存储器控制器就需要发信号通知处理器不能接受新的命令了,这就拖延了总线。该拖延可能造成所有处理器命令的额外延迟;于是,对于读命令写命令可能成为一个性能问题。
于是,需要一种选择适当的时间以将写命令发送到存储器的更佳方式,以便允许提高性能。
发明内容
提供了一种方法、设备、存储器控制器、系统和信号承载介质,在实施例中,选择命令以发送到存储器。在实施例中,如果如下情况中的一些或全部为真,则将写队列中不与冲突队列相冲突的最旧的命令发送到存储器和添加到冲突队列:读队列中的所有命令与冲突队列相冲突,来自处理器的任何读命令不与写队列相冲突,写队列中的命令数目大于第一阈值,以及冲突队列中的所有命令已经出现小于第二阈值。在实施例中,如果命令不与队列中的命令访问存储器中的同一高速缓存线,则该命令不与该队列相冲突。以此方式,在实施例中,写命令在减小了对于读命令性能的影响的时刻发送到存储器。
附图说明
下文结合附图来描述本发明的各种实施例:
图1描绘了用于实现本发明实施例的示例系统的高层次框图。
图2描绘了按照本发明实施例的示例存储器控制器的框图。
图3描绘了按照本发明实施例的存储器控制器的示例处理流程图。
图4描绘了按照本发明实施例的存储器控制器的另一示例处理流程图。
图5描绘了按照本发明实施例的存储器控制器的另一示例处理流程图。
然而,注意的是,附图仅图示了本发明的示例实施例,因此不应认为限制其范围,因为本发明可允许其他同等有效的实施例。
具体实施方式
参见附图,其中相似的编号表示贯穿这几幅附图的相似部分。图1描绘了按照本发明实施例的计算机系统100的高层次框图表示,该计算机系统经由网络130连接到服务器计算机系统132。仅为了方便而使用了名称“计算机系统”和“服务器”,并且在实施例中,对于一个计算机工作为客户机的计算机可对于另一计算机工作为服务器,反之亦然,而且可使用任何适当的电子装置。在实施例中,计算机系统100的硬件组件可由IBM eServer iSeries或者pSeries计算机系统来实现。然而,本领域的技术人员将理解,本发明实施例的机制和设备同等地应用于任何适当的计算系统。
计算机系统100的主要组件包括一个或多个处理器101、主存储器102、存储器控制器106、终端接口111、存储装置接口112、I/O(输入/输出)装置接口113和通信/网络接口114,所有组件经由存储器总线103、I/O总线104和I/O总线接口单元105相连接用于组件间的通信。
计算机系统100包含一个或多个可编程的中央处理单元(CPU)101A、101B、101C和101D,这里整体上称为处理器101。处理器101可包括通用处理器、专用处理器和/或状态机,并且可经由总线103与存储器控制器106连接,以发出命令比如加载和存储(读和写)命令以便访问存储器102。在实施例中,计算机系统100包含相对大型的系统典型具有的多个处理器;然而,在另一实施例中,作为代替,计算机系统100是单个CPU系统。每个处理器101执行在主存储器102中存储的指令,并且可包括一级或多级板上高速缓存。
主存储器102是用于存储数据和程序的随机访问半导体存储器。在另一实施例中,主存储器102代表计算机系统100的整个虚拟存储器,并且还可包括连接到计算机系统100或者经由网络130连接的其他计算机系统的虚拟存储器。主存储器102在概念上是单个的单片实体,但是在其他实施例中主存储器102是更复杂的配置,比如高速缓存和其他存储器装置的分等级体系。例如,存储器可以以多级高速缓存存在,并且这些高速缓存可进一步通过功能来划分,从而一个高速缓存保持指令,而另一个保持非指令数据,其由处理器使用。可将不同的CPU或CPU集进一步分配给存储器并与之相关联,正如在任何各种所谓的非一致性存储器访问(NUMA)计算机体系结构中所知的那样。在各种实施例中,存储器102可以是任何级别的高速缓存或者主存储器。在一种实施例中,将存储器102实现为DRAM(动态随机访问存储器),但是在其他实施例中可使用任何适当的存储器技术。
存储器控制器106与存储器102之间的接口一般包括命令信号,比如由存储器控制器106驱动的经由具有数据线和数据选通的双向数据总线到存储器的读地址选通(RAS)和列地址选通(CAS)。由存储器控制器106驱动的每个命令信号典型地包含多个时延周期。另外,在例如存储器范围的存储体上执行这些命令之后,在该存储体能够进行另一操作之前,该存储体通常需要额外的周期来恢复。例如,为了实现读或加载,存储器控制器106打开该存储体,发出读命令,等待用于CAS时延的必要周期,并且接收来自存储器的数据突发。在该数据突发到存储器控制器之后,该存储体要求多个周期以预充电关联于该加载的内部总线的行。
在实施例中,存储器控制器106包括处理器(类似于处理器101)和能够在其处理器上执行的指令或者能够由在其处理器上执行的指令解释的声明,以执行如以下参照图3、4和5进一步描述的功能。在另一实施例中,存储器控制器106可以以微码或固件实现。在另一实施例中,存储器控制器106可以借助于逻辑门和/或其他适当的硬件技术以硬件实现。下面参照图2进一步描述了存储器控制器106。
存储器总线103提供了用于在处理器101、存储器控制器106和I/O总线接口单元105之间传送数据的数据通信路径。I/O总线接口单元105进一步连接到用于传送数据到各种I/O单元和传送来自各种I/O单元的数据的系统I/O总线104。I/O总线接口单元105通过系统I/O总线104与多个I/O接口单元111、112、113和114通信,I/O接口单元也称为I/O处理器(IOP)或I/O适配器(IOA)。系统I/O总线104可以例如是工业标准PCI总线或任何其他适当的总线技术。
I/O接口单元支持与多种存储装置和I/O装置的通信。例如,终端接口单元111支持一个或多个用户终端121、122、123和124的配属。存储装置接口单元112支持一个或多个直接访问存储装置(DASD)125、126和127(它们一般是旋转磁盘驱动器存储装置,不过作为代替,它们可以是其他装置,包括配置为对于主机表现为单个大型存储装置的盘驱动器阵列)的配属。主存储器102的内容可存储到直接访问存储装置125、126和127中以及从其取回。
I/O和其他装置接口113为任何各种其他输入/偷出装置或其他类型的装置提供了接口。两个这样的装置,打印机128和传真机129,在图1的示例性实施例中示出,但是在其他实施例中可存在许多其他这样的装置,它们可以是不同类型的。网络接口114提供从计算机系统100到其他数字装置和计算机系统的一个或多个通信路径;这样的路径可包括例如一个或多个网络130。
尽管存储器总线103在图1中表示为相对简单的单个总线结构,其在处理器101、存储器控制器106和I/O总线接口105之间提供直接的通信路径,但是事实上存储器总线103可包括多个不同的总线或通信路径,其可以以各种形式的任一种来配置,比如分等级的、星形或网状配置中的点对点链路、多个分等级的总线、并行和冗余的路径、或者任何其他适当的配置类型。而且,尽管I/O总线接口105和I/O总线104表示为单个的各个单元,但是计算机系统100事实上可包含多个I/O总线接口单元105和/或多个I/O总线104。尽管示出了多个I/O接口单元,它们将系统I/O总线104与通向各种I/O装置的各种通信路径相隔离,但是在其他实施例中,一些或全部I/O装置直接地连接到一个或多个系统I/O总线。
图1中所示的计算机系统100具有多个配属的终端121、122、123和124,比如可以是典型的多用户“大型机”计算机系统。一般地,在这样的情况下,配属的装置的实际数目大于图1中所示的,尽管本发明不限于任何特定大小的系统。作为替代,计算机系统100可以是单用户的系统,一般仅包含单个用户显示器和键盘输入,或者可以是几乎没有或根本没有直接的用户接口但是从其他计算机系统(客户机)接收请求的服务器或类似装置。在其他实施例中,计算机系统100可实现为个人计算机、便携式计算机、膝上或笔记本计算机、PDA(个人数字助理)、平板式计算机(Tablet Computer)、口袋计算机、电话机、寻呼机、汽车、远程会议系统、用具或任何其他适当类型的电子装置。
网络130可以是任何适当的网络或网络组合,可支持适于向计算机系统100和服务器132传送数据/或代码、或者传送来自计算机系统100和服务器132的数据/或代码的任何适当协议。在各种实施例中,网络130可代表存储装置或存储装置的组合,其直接地或间接地连接到计算机系统100。在实施例中,网络130可支持无限带宽(Infiniband)。在另一实施例中,网络130可支持无线通信。在另一实施例中,网络可支持硬有线通信,比如电话线或线缆。在另一实施例中,网络130可支持以太网IEEE(电气和电子工程师协会)802.3x规范。在另一实施例中,网络130可以是互联网并且可支持IP(互联网协议)。
在另一实施例中,网络130可以是局域网(LAN)或广域网(WAN)。在另一实施例中,网络130可以是热点服务提供者网络。在另一实施例中,网络130可以是内联网。在另一实施例中,网络130可以是GPRS(通用分组无线服务)网络。在另一实施例中,网络130可以是FRS(家庭无线服务)网络。在另一实施例中,网络130可以是任何适当的蜂窝数据网络或基于蜂窝的无线网络技术。在另一实施例中,网络130可以是IEEE 802.11B无线网络。在又一实施例中,网络130可以是任何适当的网络或网络组合。尽管示出了一个网络130,但是在其他实施例中可存在任何数目(包括零)的网络(相同或不同类型)。
图1旨于在高层次描绘计算机系统100的代表性的主要组件、网络130和服务器132;各个组件可比图1中表示的更为复杂;可存在图1中所示以外的或附加的组件;这些组件的数目、类型和配置可变化。这里公开了这些附加的复杂性或附加的变化的若干特定示例;应当理解,它们仅仅是作为示例,并且不必仅仅是这样的变化。
图1中所示的以及实现本发明各种实施例的各种软件组件可以以许多方式实现,包括使用各种计算机软件应用、例行程序、组件、程序、对象、模块、数据结构等,下文称为“计算机程序”或简称为“程序”。计算机程序一般包括一个或多个指令,这些指令在各个时刻驻留于计算机系统100中的各种存储器和存储装置中,并且在由计算机系统100中的一个或多个处理器101读取和执行时,使得计算机100执行用以执行包括本发明实施例各方面的步骤或元素所必需的步骤。
而且,尽管在完全功能计算机系统的环境中已经描述了并且下文将描述本发明的实施例,本发明的各种实施例能够以多种形式作为程序产品来发布,并且本发明可等同地加以应用,而不管用以实际地实现该发布的信号承载介质的特定类型如何。定义该实施例的功能的程序可经由各种信号承载媒体交付给计算机系统100,其包括但不限于:
(1)永久地存储于不可改写的存储介质上的信息,该存储介质例如配属于计算机系统或计算机系统内的只读存储器装置,比如CD-ROM、DVD-R或DVD+R;
(2)存储于可改写的存储介质上的可更改信息,该存储介质例如硬盘驱动器(例如DASD 125、126或127)、CD-RW、DVD-RW、DVD+RW、DVD-RAM或磁盘;或者
(3)由通信介质传送的信息,例如通过计算机或电话网络,比如网络130,包括无线通信。
这样的信号承载媒体在承载用以指示本发明的这些功能的机器可读指令时代表了本发明的实施例。
本发明的实施例还可作为与客户公司、非盈利组织、政府实体、内部组织结构等等的服务承诺的一部分来交付。这些实施例的方面可包括将计算机系统配置为执行这里所述方法的一部分或全部以及部署实现这里所述方法的一部分或全部的web服务和软件系统。这些实施例的方面还可包括分析客户公司、根据该分析来形成推荐、生成用以实现该推荐的各部分的软件、将该软件集成到现有的处理和基础设施中、度量这里所述方法和系统的使用、向用户分配费用以及向用户针对这些方法和系统的使用进行计费。
此外,下面所述的各种程序可根据它们在本发明的具体实施例中实现时所针对的应用来识别。但是,仅为了方便而使用了随后的任何特定程序命名,因此本发明的实施例不应当限制为仅在由这样的命名所识别的和/或暗示的任何具体应用中使用。
图1中所示的示例性环境并不旨在限制本发明。实际上,可使用其他替代的硬件和/或软件环境,而不会脱离本发明的范围。
图2描绘了按照本发明实施例的示例存储器控制器106的框图。存储器控制器106包括读队列205、写队列210、冲突队列215、滴流式(trickle)写要求寄存器220、滴流式写周期寄存器225和滴流式写周期要求寄存器230。滴流式写要求寄存器220、滴流式写周期寄存器225和/或滴流式写周期要求寄存器230中的值可由存储器控制器106的设计者设置,或者存储器控制器106可从计算机100的用户或系统管理员、从计算机100的任何适当硬件和/或软件、或者经由网络130来接收它们。
读队列205存储从处理器101接收的、存储器控制器106尚未发送到存储器102的读命令。写队列210存储从处理器101接收的、存储器控制器106尚未发送到存储器102的写命令。冲突队列215存储存储器控制器106先前已经发送到存储器102的读和写命令二者,但是仅存储那些自从发送该命令时起、阈值时间量尚未届满的命令。冲突队列215进一步包括能够在处理器上执行的指令或逻辑,以执行如下面参照图3、4和5进一步所描述的功能。
滴流式写要求寄存器220存储处理器周期、时钟的周期数目或时间量阈值,冲突队列215将其与写队列210中的命令数目做比较。如果写队列210中的命令数目超过滴流式写要求寄存器220的值,则冲突队列215是在滴流式写要求模式,如下面参照图4进一步所描述的那样。
滴流式写周期寄存器225存储处理器周期、时钟的周期数目或时间量阈值,冲突队列215将其与命令在冲突队列215中已经出现的处理器周期、时钟周期数目或时间量做比较。如果滴流式写周期寄存器225中的值超过该命令在冲突队列215中已经出现的周期数目或时间量,则冲突队列215将写队列210中最旧的不与冲突队列215相冲突的写命令发送到存储器102,如下面参照图4进一步所描述的那样。如果命令和队列中的至少一个命令访问存储器102中的同一高速缓存线,则该命令与该队列相冲突。如果命令所访问的存储器102中的高速缓存线与队列中的所有命令所访问的存储器102中的高速缓存线均不相同,则该命令不与该队列相冲突。
滴流式写周期要求寄存器230存储处理器周期、时钟的周期数目或时间量阈值,冲突队列215将其与命令在冲突队列215中已经出现的处理器周期、时钟周期数目或时间量做比较。如果滴流式写周期要求寄存器230中的值超过该命令在冲突队列215中已经出现的周期数目或时间量,则冲突队列215将与冲突队列215不相冲突的写队列210中最旧的写命令发送到存储器102,如下面参照图5进一步所描述的那样。
在各种其他实施例中,滴流式写要求寄存器220、滴流式写周期寄存器225和/或滴流式写周期要求寄存器230可实现为存储器控制器106中的存储器位置。
图3描绘了按照本发明实施例的存储器控制器106的示例处理流程图。图3中所示的示例逻辑是在存储器控制器106的每个处理器周期或每个时钟周期执行的。控制始于方框300。控制然后继续到方框305,在其中冲突队列215确定写队列210中的写数目是否超过写队列阈值。如果方框305处的确定为真,则写队列210中的写数目超过写队列阈值,因此控制继续到方框310,在其中冲突队列215将最旧的写命令从写队列210发送到存储器102,并且将该写命令添加到冲突队列215。控制然后继续到方框398,在其中图3的逻辑返回。
如果方框305处的确定为假,则写队列210中的写数目未超过写队列阈值,因此控制从方框305继续到方框315,在其中冲突队列215确定来自处理器101的输入读命令是否与写队列210中的任一命令相冲突。如果输入读命令与写队列210中的命令想要访问存储器102中的同一高速缓存线,则两个命令相冲突。
如果方框315处的确定为真,则输入读命令与写队列210相冲突,因此控制继续到方框320,在其中冲突队列215将与输入读命令相冲突的写命令从写队列210发送到存储器102,并且将该写命令添加到冲突队列215。控制然后继续到方框398,在其中图3的逻辑返回。
如果方框315处的确定为假,则输入读命令不与写队列210中的写命令相冲突,因此控制从方框315继续到方框325,其中冲突队列215确定读队列205中是否存在不与冲突队列215中的命令相冲突的读命令。
如果方框325处的确定为真,则读队列205中存在不与冲突队列215相冲突的读命令,因此控制继续到方框330,在其中冲突队列215将读队列205中与写队列210中的所有写命令不相冲突的最旧的读命令发送到存储器102,并且将该读命令添加到冲突队列215。控制然后继续到方框399,在其中图3的逻辑返回。
如果方框325处的确定为假,则读队列205中的所有读命令与冲突队列215中的至少一个命令相冲突,因此控制继续到方框335,在其中执行图4的逻辑,其如下面进一步所述。控制然后继续到方框399,在其中图3的逻辑返回。
图4描绘了按照本发明实施例的存储器控制器106的又一示例处理流程图。控制始于方框400。控制然后继续到方框405,在其中冲突队列215确定写队列210中的命令数目是否大于滴流式写要求寄存器220中的值。如果方框405处的确定为真,则写队列210中的命令数目大于滴流式写要求寄存器220中的值,因此控制继续到方框410,在其中执行图5的逻辑,其如下面进一步所述。控制然后继续到方框499,在其中图4的逻辑返回。
如果方框405处的确定为假,则写队列210中的命令数目不大于滴流式写要求寄存器220中的值,因此控制从方框405继续到方框415,在其中冲突队列215对于冲突队列215中的所有命令来确定滴流式写周期寄存器225中的值是否大于所有命令在冲突队列215中已经出现的处理器周期、时钟周期数目或时间量的定时器值。在实施例中,冲突队列215中存储的所有命令具有不同的关联定时器,该定时器对该命令在冲突队列215中已经出现的时间量或周期数目保持跟踪。
如果方框415处的确定为真,则滴流式写周期寄存器225中的值大于所有命令在冲突队列215中已经出现的周期数目或时间量,因此控制继续到方框420,在其中冲突队列215将写队列210中不与冲突队列215相冲突的最旧的写命令(已经出现最久的写命令)发送到存储器102,并且将该写命令添加到冲突队列215。控制然后继续到方框499,在其中图4的逻辑返回。
如果方框415处的确定为假,则滴流式写周期寄存器225中的值不大于所有命令在冲突队列215中已经出现的周期数目或时间量,因此控制从方框415继续到方框499,在其中图4的逻辑返回。
图5描绘了按照本发明实施例的存储器控制器106的又一示例处理流程图。控制始于方框500。控制然后继续到方框505,在其中冲突队列215对于冲突队列215中的所有命令来确定滴流式写周期要求寄存器230中的值是否超过该命令在冲突队列215中已经出现的处理器周期、时钟周期数目或时间量的定时器值。
如果方框505处的确定为真,则滴流式写周期要求寄存器230中的值超过所有命令在冲突队列215中已经出现的周期数目,因此控制继续到方框510,在其中冲突队列215将写队列210中不与冲突队列215相冲突的最旧的写命令发送到存储器102,并且将该写命令添加到冲突队列215。控制然后继续到方框599,在其中图5的逻辑返回。
如果方框505处的确定为假,则滴流式写周期要求寄存器230中的值不超过所有命令在冲突队列215中已经出现的周期数目,因此控制继续到方框599,在其中图5的逻辑返回。
以此方式,写命令对于读命令的性能的影响得以减小,在实施例中,如果写队列210几乎充满,写命令才从写队列210发送到存储器102,并且如果不采取动作,则可能发生总线103的拖延。
在本发明示范实施例的先前详细描述中,参考了形成本说明书一部分的附图(其中相似的编号代表相似的元素),在附图中作为例子示出了可实施本发明的具体示例性实施例。充分详细地描述了这些实施例,以使得本领域的技术人员能够实施本发明,但是不脱离本发明的范围,可利用其他实施例,以及可进行逻辑上的、机械上的、电气上的和其他方面的变化。在本说明书中使用的措辞“实施例”的不同实例不必指代同一实施例,但是它们可以指代同一个实施例。因此,先前的详细描述不能以限制性的意义来理解,本发明的范围仅由所附权利要求书来限定。
在先前的描述中,给出了大量具体的细节,以提供本发明实施例的透彻理解。但是本发明可在没有这些具体细节时实施。在其他实例中,没有具体地示出公知的电路、结构和技术,以免使得本发明难以理解。

Claims (15)

1.一种方法,包括:
确定写队列中的命令数目是否大于第一阈值;
如果该确定为真,则判断冲突队列中的所有命令在该冲突队列中是否已经出现小于第二阈值周期数目;以及
如果该判断为真,则选择该写队列中不与该冲突队列中的任何命令相冲突的最旧的命令。
2.权利要求1的方法,进一步包括:
将不与该冲突队列中的任何命令相冲突的最旧的命令从该写队列发送到存储器。
3.权利要求2的方法,进一步包括:
将不与该冲突队列中的任何命令相冲突的最旧的命令添加到该冲突队列。
4.权利要求1的方法,其中该选择进一步包括:
确定该写队列中的该最旧的命令与该冲突队列中的任何命令是否要访问存储器中的同一个高速缓存线。
5.权利要求1的方法,其中该冲突队列包括先前发送到存储器的命令。
6.权利要求1的方法,其中该确定进一步包括:
确定读队列中的所有命令是否与该冲突队列相冲突。
7.权利要求1的方法,其中该确定进一步包括:
确定来自处理器的任何读命令是否不与该写队列相冲突。
8.一种存储器控制器,包括:
写队列;以及
冲突队列,如果该写队列中的命令数目大于第一阈值,并且该冲突队列中的所有命令在该冲突队列中已经出现小于第二阈值周期数目,则该冲突队列将该写队列中不与该冲突队列中的任何命令相冲突的最旧的命令发送到存储器。
9.权利要求8的存储器控制器,其中如果该冲突队列将最旧的命令发送到该存储器,则该冲突队列进一步将该最旧的命令添加到该冲突队列。
10.权利要求8的存储器控制器,其中该冲突队列进一步确定该写队列中的不与该冲突队列中的任何命令相冲突的最旧的命令,不与该冲突队列中的任何命令访问该存储器中的同一个高速缓存线。
11.权利要求8的存储器控制器,其中该冲突队列包括先前发送到该存储器的命令。
12.权利要求8的存储器控制器,其中该冲突队列基于如果读队列中的所有命令与该冲突队列相冲突,进一步将该写队列中不与该冲突队列中的任何命令相冲突的最旧的命令发送到存储器。
13.权利要求8的存储器控制器,其中该冲突队列基于如果来自处理器的任何读命令不与该写队列相冲突,将该写队列中不与该冲突队列中的任何命令相冲突的最旧的命令发送到存储器。
14.一种计算机系统,包括:
处理器;
存储器;以及
如权利要求8至13的任一项中限定的从处理器接收命令的存储器控制器。
15.权利要求14的计算机系统,其中该存储器控制器进一步包括第一寄存器和第二寄存器,以及其中该存储器控制器进一步将第一阈值存储于该第一寄存器中和将第二阈值存储于该第二寄存器中。
CNB2006100577207A 2005-04-28 2006-02-23 用于选择命令发送到存储器的方法、存储器控制器和系统 Expired - Fee Related CN100440124C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/116,626 2005-04-28
US11/116,626 US8082396B2 (en) 2005-04-28 2005-04-28 Selecting a command to send to memory

Publications (2)

Publication Number Publication Date
CN1855026A true CN1855026A (zh) 2006-11-01
CN100440124C CN100440124C (zh) 2008-12-03

Family

ID=37195225

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100577207A Expired - Fee Related CN100440124C (zh) 2005-04-28 2006-02-23 用于选择命令发送到存储器的方法、存储器控制器和系统

Country Status (4)

Country Link
US (1) US8082396B2 (zh)
JP (1) JP4866646B2 (zh)
CN (1) CN100440124C (zh)
TW (1) TWI377472B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459627B (zh) * 2008-04-07 2012-09-05 中兴通讯股份有限公司 消息管理方法
CN102929562A (zh) * 2012-10-09 2013-02-13 无锡江南计算技术研究所 基于识别标识的可扩展重排序方法
CN110347329A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 I/o数据读写并发冲突的处理方法、系统及相关装置
CN110447009A (zh) * 2017-03-24 2019-11-12 西部数据技术公司 用于自适应命令获取聚合的系统和方法
CN112585570A (zh) * 2018-08-08 2021-03-30 美光科技公司 存储器系统中用于提高命令总线利用率的控制器命令调度

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
US7873953B1 (en) 2006-01-20 2011-01-18 Altera Corporation High-level language code sequence optimization for implementing programmable chip designs
US20090196144A1 (en) * 2008-02-06 2009-08-06 Nils Haustein Method and System for Command-Ordering and Command-Execution Within a Command Group for a Disk-to-Disk-to-Holographic Data Storage System
US20090196143A1 (en) * 2008-02-06 2009-08-06 Nils Haustein Method and System for Command-Ordering for a Disk-to-Disk-to-Holographic Data Storage System
CN101694610B (zh) * 2009-10-16 2011-11-09 成都市华为赛门铁克科技有限公司 命令处理方法、装置和存储设备
US8866826B2 (en) * 2011-02-10 2014-10-21 Qualcomm Innovation Center, Inc. Method and apparatus for dispatching graphics operations to multiple processing resources
US9361103B2 (en) * 2012-11-02 2016-06-07 Advanced Micro Devices, Inc. Store replay policy
US9021228B2 (en) 2013-02-01 2015-04-28 International Business Machines Corporation Managing out-of-order memory command execution from multiple queues while maintaining data coherency
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US10532751B2 (en) * 2015-01-13 2020-01-14 Mitsubishi Electric Corporation Air-conditioning device for vehicle
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
CN112840309B (zh) * 2018-10-15 2023-08-22 华为技术有限公司 命令调度方法、装置及存储介质
US11048437B2 (en) 2019-02-28 2021-06-29 Micron Technology, Inc. Double threshold controlled scheduling of memory access commands

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027270A (en) * 1988-10-11 1991-06-25 Mips Computer Systems, Inc. Processor controlled interface with instruction streaming
US5835945A (en) * 1990-08-06 1998-11-10 Ncr Corporation Memory system with write buffer, prefetch and internal caches
JP2695558B2 (ja) 1992-01-08 1997-12-24 富士通株式会社 主記憶制御装置のメモリアクセス制御方式
US5933860A (en) * 1995-02-10 1999-08-03 Digital Equipment Corporation Multiprobe instruction cache with instruction-based probe hint generation and training whereby the cache bank or way to be accessed next is predicted
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
US5842038A (en) * 1996-10-10 1998-11-24 Unisys Corporation Optimized input/output memory access request system and method
US6216178B1 (en) * 1998-11-16 2001-04-10 Infineon Technologies Ag Methods and apparatus for detecting the collision of data on a data bus in case of out-of-order memory accesses of different times of memory access execution
US6453370B1 (en) * 1998-11-16 2002-09-17 Infineion Technologies Ag Using of bank tag registers to avoid a background operation collision in memory systems
US6295586B1 (en) * 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller
US6256713B1 (en) * 1999-04-29 2001-07-03 International Business Machines Corporation Bus optimization with read/write coherence including ordering responsive to collisions
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6615319B2 (en) * 2000-12-29 2003-09-02 Intel Corporation Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US6877077B2 (en) * 2001-12-07 2005-04-05 Sun Microsystems, Inc. Memory controller and method using read and write queues and an ordering queue for dispatching read and write memory requests out of order to reduce memory latency
GB2391337B (en) * 2002-04-26 2005-06-15 Motorola Inc Instruction cache and method for reducing memory conflicts
US7093059B2 (en) * 2002-12-31 2006-08-15 Intel Corporation Read-write switching method for a memory controller
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7237043B2 (en) * 2003-11-21 2007-06-26 Lsi Corporation System for improving PCI write performance

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459627B (zh) * 2008-04-07 2012-09-05 中兴通讯股份有限公司 消息管理方法
CN102929562A (zh) * 2012-10-09 2013-02-13 无锡江南计算技术研究所 基于识别标识的可扩展重排序方法
CN102929562B (zh) * 2012-10-09 2015-05-06 无锡江南计算技术研究所 基于识别标识的可扩展重排序方法
CN110447009A (zh) * 2017-03-24 2019-11-12 西部数据技术公司 用于自适应命令获取聚合的系统和方法
US11635898B2 (en) 2017-03-24 2023-04-25 Western Digital Technologies, Inc. System and method for adaptive command fetch aggregation
CN110447009B (zh) * 2017-03-24 2024-03-12 西部数据技术公司 用于自适应命令获取聚合的系统和方法
CN110347329A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 I/o数据读写并发冲突的处理方法、系统及相关装置
CN112585570A (zh) * 2018-08-08 2021-03-30 美光科技公司 存储器系统中用于提高命令总线利用率的控制器命令调度

Also Published As

Publication number Publication date
TW200643725A (en) 2006-12-16
CN100440124C (zh) 2008-12-03
JP4866646B2 (ja) 2012-02-01
US8082396B2 (en) 2011-12-20
US20060248275A1 (en) 2006-11-02
TWI377472B (en) 2012-11-21
JP2006309757A (ja) 2006-11-09

Similar Documents

Publication Publication Date Title
CN1855026A (zh) 用于选择命令发送到存储器的方法、存储器控制器和系统
US8225048B2 (en) Systems and methods for resource access
CN1160631C (zh) 改进虚拟存储器系统中存储器访问的技术
CN107590099B (zh) 一种多主机访问从机的方法、扩展装置及存储介质
CN101036129A (zh) 用于存储器系统性能监视的存储器集线器和方法
CN1977336A (zh) 改善支持多存储器访问延迟的计算机存储器系统的性能的系统和方法
CN1489067A (zh) 数据传送方法及系统
JP5576030B2 (ja) データ応答を順序変更するためのシステム
CN1732536A (zh) 动态存储器的刷新端口
CN101055555A (zh) 用于多处理器的非易失性内存共享系统及其内存共享方法
CN1841331A (zh) 为被先占的虚拟处理器分配应得处理器周期的方法和系统
CN1776596A (zh) 用于备选锁定设施连接路径的装置、系统和方法
AU2017203845B2 (en) Localized data affinity system and hybrid method
CN1866230A (zh) 具等待机制的存储器仲裁器
CN1287361A (zh) 闪速存储器的实时处理方法
CN114371813A (zh) 写入流优先级的识别和分类
CN1752916A (zh) 磁盘阵列的控制器及其工作方法
CN112948293A (zh) 一种多用户接口的ddr仲裁器及ddr控制器芯片
CN1702767A (zh) 更新一存储模块的方法和电路
US20040030849A1 (en) Independent sequencers in a DRAM control structure
CN101421705A (zh) 具有高储存容量的多媒体卡
US7761460B1 (en) Systems and methods that utilize a standard database interface to access data within an industrial device
CN1155891C (zh) 用于处理直接存取存储设备的存取请求的方法
CN1255732C (zh) 使用预取缓冲器进行存储器功率管理的系统和方法
US20060026214A1 (en) Switching from synchronous to asynchronous processing

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081203

Termination date: 20190223