CN1259214A - 重排序命令和按原先的命令顺序恢复数据的方法和装置 - Google Patents

重排序命令和按原先的命令顺序恢复数据的方法和装置 Download PDF

Info

Publication number
CN1259214A
CN1259214A CN98805712.3A CN98805712A CN1259214A CN 1259214 A CN1259214 A CN 1259214A CN 98805712 A CN98805712 A CN 98805712A CN 1259214 A CN1259214 A CN 1259214A
Authority
CN
China
Prior art keywords
order
resource
command
logic
criterion
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
CN98805712.3A
Other languages
English (en)
Other versions
CN1244046C (zh
Inventor
D·J·哈里曼
B·K·朗根多夫
R·J·里森曼
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1259214A publication Critical patent/CN1259214A/zh
Application granted granted Critical
Publication of CN1244046C publication Critical patent/CN1244046C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

提供一种用于提高由资源处理从起始设备发给该资源的命令的效率的系统和方法。系统包括命令排队,多个与命令排队相耦联的命令重排序槽,以及与资源和命令重排序槽相结的命令选择逻辑。为处理准备的命令被装入命令重排序槽,命令选择逻辑将效率准则应用于所装入的命令。满足效率准则的命令被传送给资源处理,系统还可以包括响应重排序逻辑,它与命令重排序逻辑相耦联,响应重排序逻辑将在响应重排序读命令时所提供的数据返回到原先的命令顺序。

Description

重排序命令和按原先的命令顺序 恢复数据的方法和装置
                       发明背景
技术领域
本发明涉及处理对资源的命令的领域,特别是对资源的命令的处理顺序的重新排列的系统和方法。
涉及的技术
现代计算机系统包括许多的设备,这些设备为了访问在计算机系统中的各种资源而通过一个或多个总线被连接。例如,计算机系统可能包括中央处理器(CPU),图形系统,和若干外围设备,其中每一种都可以访问一种资源,例如主存储器。为了使等待时间最少,来自设备的起始对资源的访问的命令必须尽可能高效率地被传递和完成。命令在资源和起始设备之间被传递的速度主要受制于介入的总线和在计算机系统中所采用的判优方案。在资源上命令被执行的速度则取决于该资源的性质以及,在许多情况中,取决于资源执行来自起始设备的命令的顺序。资源将命令执行得越快,设备就能愈迅速地继续它的操作并且资源就能够更快地可被其它设备使用。
资源效率对于命令顺序的依赖性可以参照存储资源来理解,诸如随机存取存储器(“RAM”),硬盘和软盘、光盘(CD)只读存储器,数字视盘(DVD)以及类似器件。这些存储资源的每一种都是可寻址数据存储单元的二维阵列、每个单元由两个参数来指定,例如行/列,磁道/扇区,页/列,等等。传送每个参数至存储设备并且激活相关的行、列、道、区、页等等,贡献一个时间延迟或开销给该存取。达到不更新两个参数就能访问存储单元的范围,以致对该资源的存取时间能够被减少并且能使资源操作更为有效。分页存储器和其它存储器的结构正是为作到这一点而设计的。例如以分页方式操作的存储器能够访问相同页打开上的诸地址(列)的范围而不招致与更新页参数相联系的延迟。
某些存储资源例如DRAM,还用一个循环时间来表征,该循环时间表示为在存取之间对资源预充电所需的时间。循环时间限制了能够对DRAM进行连续存取的速率,交叉存储器被组成为DRAM组或存储体以使循环时间引起的开销最小化。相连的数据的块被映射到不同的存储体(交错的),并且通过对不同存储体的重叠访问数据块被检索。这减小了每个DRAM循环时间对数据存取时间的影响并使得资源操作更有效率。
通过以适当的寻址方案存储数据块,分页交叉,以及其它策略允许目标命中数据块的命令被以减小的等待时间完成。然而,只有在相继的对资源的命令碰巧存取那些符合由存储器结构所规定的顺序的数据时,这些益处才越过命令的限制。事实上,分页,交叉,以及类似的策略增加了关于由给定命令所目标命中的数据的有效的资源操作,但是没有提供任何将这些有效性扩展至多命令的机制。这种机制需要按资源的状态重排序发给该资源的命令。
命令重排序已经在几种特殊情况中被实现。例如,有的处理器能重排指令以消除数据相关性和避免可归因于无法利用的资源和流水线停机,然而,这种重排序发生在处理器内部且不牵涉利用在处理器之外的资源的效率。某些芯片增补了“缓写”,即在完成一个对相同地址的写之前,等待一个对地址的读命中。但是,这是一个被动的方法,它没有主动地重排序在命令流中的命令。
因此,需要一种系统,能以许可资源更有效地工作并减少完成对资源的命令的等待时间的方式重排序对资源的命令。
                         发明概述
本发明是用于为提高资源利用效率而重排序对资源命令的系统和方法。本发明适用于具有由完成资源操作的顺序部份地决定的等待时间的资源。
按照本发明,起始设备发送命令给由效率准则表征的资源,效率准则被施加于命令,满足该准则的命令被传送给与处理有关的资源。
在本发明的一个实施例中,通过重排序逻辑将命令由起始设备连接至资源。重排逻辑包括两个或更多个重排序槽,它们是通过命令选择逻辑被连接到资源。由起始设备发送的命令被装入重排序槽,命令选择逻辑监测反映该资源的有效操作的参数并根据所监测的参数选择发布给资源的命令。例如,在资源是分页存储器的场合,参数可以是当前打开的页而准则可以是所选的命令命中在打开页上的资源地址。
                      附图的简要说明
本发明可以参照随后的详细说明和在这里所简要说明的附图来理解。
图1是一个包含有按照本发明的命令重排序逻辑的计算机系统的方块图。
图2A是图1中的命令重排序逻辑的一个实施例的方块图。
图2B是图2A的命令逻辑选择逻辑的方块图。
图2C是图1的命令重排序逻辑的实施例的方块图,在此例中一子集命令被重排序。
图2D是图1的命令重排序逻辑的实施例的方块图,适合于重排序写命令。
图3表示一个按照本发明的用于重排序对资源的命令的方法。
图4A为表示用于重排序读命令的图3的方法的实施例的详细流程图。
图4B为表示用于重排序写命令的图3的方法的实施例的详细流程图。
图5A和5B是关于按照原先的命令顺序返还在响应重排读命令时所提供的数据的方法的流程图。
                      发明的详细说明
本发明是关于重排序由起始设备发送给资源的命令的系统和方法。命令被重排的方式是使得资源被利用的效率为最高。本发明可以利用重排序逻辑在起始设备和资源之间耦合数据来实现,且适用于那些满足某种准则的资源和起始设备,具体讲,合适的起始设备是那些流水线式输送命令给资源的设备并且至少有一类的命令能够在传输给资源之前被重排序。
合适的资源是那些能够通过命令重排序更有效地进行操作的资源,例如DRAM,闪速存储器,CDROM,DVD,硬盘和软盘这样的资源,它们可以通过重排序命令得以减少存储器存取时间或消除在相继命令之间的存储器循环时间延迟从而更有效地操作。合适的效率准则可能包括目标地址的空间位置,命令的暂时位置或者目标地址的交错位置。
空间位置准则的一个实施例通过选择分页存储器的当前打开页(行)上的目标位置即命令,例如资源的当前打开的地址范围中的一个地址,来减小存储器存取的开销。暂时位置准则的实施例减少存储器存取开销是通过以群集的方式发布瞄向存储器的一个局部的区域的命令,例如页,行,或道。这允许命令群集能在页、行、道缓冲区被刷新之前对相同的页、行、道被处理。交错位置准则的实施例选择预测存储体的交替的命令,这种交替发生在交叉存储器中。这减少了可归因于任何一个存储体的循环时间的开销。
这些效率准则倾向于是说明性的而非穷举性的,本质上,任何以减小资源的访问或操作开销的方式选择有关处理命令的准则都适合在本发明中的使用。在存储器资源的情况下,命令目标命中那些能以减小的开销被存取的地址是适合的准则。
在所揭示的实施例中,起始设备是一个图形系统而资源是一个具有分页存储结构的存储设备。在本讨论中,“分页存储结构”意思是存储器被设计成在一给定时间一些可得到的存储子集可以以低于存储的其余部分的等待时间被访问。典型上,存储器被分成为相等大小的页,其中一页(或者偶尔多页)可以在任意给定时间被打开,剩余的页是“关闭的”,访问在这些页上的地址要耗费附加的开销。为方便起见,下面的讨论提到打开页应理解为本发明还包括这些可以同时打开一页以上的资源,此外,举例讲,在分页存储器的当前打开页内的,在交叉存储器中被访问的下一个存储体中的,或者能够以减小的开销被访问的相类似的资源特征中的资源地址被当作是打开地址。
注意,提供用作说明的是开放式分页存储器资源。例如,该资源可以是任意能够通过命令重排序减少数据存取时间的存储器件或者具有命令顺序有关的等待时间的任意其它资源。
图形系统有能力向存储器设备以流水线方式传送读和写请求,这些命令类型的任何一种都可以在指定的条件下被重排序。在本发明的一个实施例中,读命令被考虑重排序,并且重排序试验由存储设备的分页结构提供。正如上面所指出的,分页存储器在相继的读命令目标命中同一页上的地址时有较少的等待时间。因此可以按照它们命中的地址和在存储中当前打开的页来重排命令。
首先参考图1,画出是包含本发明的重排序逻辑的计算机系统100的一个实施例的方框级图。计算机系统100包括处理器110,存储设备120,图形系统130,以及包括重排序逻辑150的桥接器140。处理器110,存储器设备120以及图形系统130分别通过处理器总线112,存储器总线122,以及互连线180被连接至桥接器140,图1还画出总线170(任选),用来将外围设备(没画出)连接到计算机系统100。计算机系统100的配置只提供用作说明,不是为实现本发明所要求的。
在本发明的一个实施例中,互连接180是一个加速图形端口(“A.G.P”)且I/Q总线170是一个辅助元件互连(“PCI”)总线,A.G.P被说明于,例如,由英特公司于1996年7月31日发表的加速图形端口接口说明书(Accelerated Graphics Port InterfaceSpecification)修订版1.0中。PCI被说明于,例如,由Shanley和Anderson所著的书<PCI System Architecture,Addison Wesley ReadingMassachusetts(1995)。
桥接器在处理器110,存储设备120,图形系统130,以及任意在总线170上的辅助设备之间发送数据和命令。在桥接器140中的重排序逻辑150接收从图形系统130发往存储设备120的命令并重排序这些命令以提高它们被存储设备120处理的效率。对于读命令,重排逻辑150还接收存储设备在响应重排序的读命令时所提供的数据并将所接收的数据发送给图形系统130。在一个本发明的实施例中,重排序逻辑150返还响应数据给图形系统130,其顺序是由图形系统130初起始送相应命令的顺序(初始命令顺序或者OCO)。
现在参考图2A,该图画的是重排序逻辑150的方框图,适用于重排序读命令以及,在需要处,重存在响应重排序过的命令时所提供的OCO数据,重排序逻辑150包括命令重排序逻辑210和响应重排序逻辑260。命令重排序逻辑210重排序由图形系统130发送给存储器120的命令,根据是效率准则。在一个本发明的实施例中,准则是基于由命令所命中的存储器地址和存储器120的当前打开页。在此实施例中,命令重排序逻辑210根据存储器120中存取的最新页的指示挑选出命令以减小由于对存储器120的访问而产生的分页数。例如,重排序逻辑210可以选择一个用作发布的命令,其指定的存储器地址与由存储器120提供的打开页指示相匹配,或者它可以选择瞄向与发给存储器120的最近的命令所命中的页相同的页的命令。在后一种情况下,命令重排序逻辑210不需要来自存储器120的输入。由重排序逻辑为提高资源操作的效率而产生的命令顺序此后被称为资源顺序(RO)。
响应重排序逻辑260被引入的场合是起始设备必须以相同于起始设备发布相应的读命令的顺序接收读响应数据。例如,在互连接180为A.G.P互连的场合,响应被期望返还给起始设备,其顺序和起始设备发出的命令的顺序相同。因此,响应重排序逻辑260重排序由存储器120在响应从RO到OCO的重排序读命令时所提供数据。
仍然参照图2A,命令重排序逻辑210包括一个命令队列220,它被通过重排序槽230和命令选择逻辑240耦合至存储器120。选通逻辑250被耦合至命令列220并与读数据返回缓冲器(“RDRB”)270连接。从图形系统130接收的命令被送进命令队列220并且按照选通逻辑250所作的决定被转送至重排序槽。在一个实施例中,命令被以先进先出的顺序(FIFO)通过命令队列移动到重排序槽。当命令到达命令队列220的首部时,选通逻辑250决定条件是否允许继续进一步地处理命令。并且在条件适合时转送命令至重排槽230。例如,选通逻辑250可以为了寄存响应数据而阻止一个命令直到在RDRB270中有可用空间。对于写命令重排序,选通逻辑250可以阻止一个写命令直到待写的数据在一个单独的写数据缓冲器(没有画出)中被接收。
为了避免死锁,选通逻辑250检验在RDRB270中的存储桶的可用性以提供在响应读命令时所提供的数据。此处,“存储桶”指的是存储数据用的单元,而“存储槽”指的是用来存储命令的单元。选通逻辑250确定读命令在请求的数据规模并且将请求的数据规模与在RDRB270中可用的存储桶272相比较。当着在RDRB270中充足的存储桶270可用时,读命令被转送至重排槽230以提供在读命令中所请求的数据规模。
许多起始设备要求读响应数据以相同于该设备发出对应的读命令的顺序,即OCO,返还,对于这些设备,在RDRB270中以OCO顺序保留了用于读响应数据的空间,保留单元以循环方式围绕RDRB270卷缠。读响应数据占据RDRB270的一个或多个存储桶,取决于读命令所请求的数据块的规模。每个存储桶272的可用性通过一个相关的有效数据位274被跟踪。例如,当数据被装进相关的槽272′中时有效数据位274′被置位而在数据从相关存储槽272′卸载时则有效数据位274′被复位。选通逻辑250必须以允许命令重排序无死锁地进行的方式分配存储桶272。
在一个实施例中,选通逻辑250利用有效位274来决定为提供读命令所请求的数据规模是否有足够的连续的存储桶272是可用的。在此实施例中,选通逻辑250保持指针对着第一个可用存储桶272′,确定为提供所请求数据规模必需的存储桶272的数目N,并且确定跟随在首个存储桶272′后的N-1个存储桶272是否是可用的,也即相关的有效位274是否已经复位。如果是,命令连同存储桶272已经为了读响应被保留的指示一起被转送至重排槽230。如果不,命令被留在命令队列220中直到足够的存储桶272可用于响应数据。
选通逻辑的另外一个实施例使用一个计数器电路来跟踪在系统中当前未处理的数据的量以及,从而,在RDRB270中可用的存储桶272的数目。指针跟踪首个可用的存储桶272。读命令所请求的数据规模与可利用的存储桶272的数目相比较,以及读命令是转送至重排序槽230还是被阻止,取决于在RDRB270中是否有足够的可用作响应的空间。
一旦选通逻辑250确定命令的转送进程可以继续,也即在RDRB270中用于如读命令所请求数据的空间是可利用的,命令被转送至重排序槽230中之一。重排序槽230通过命令选择逻辑240连接至存储器120。命令选择逻辑240监视存储器120最新被访问的区域的标记。命令选择逻辑240还监测重排序槽230以确定哪些存储地址被这些存储槽中的读命令所命中。按照一个效率准则,命令选择逻辑240从重排序槽230中选择一个命令,该命令瞄向存储器120中的具有减少了的存取等待时间的地址,也即命令命中在分页存储器中的打开页。
正如上面所指出的,当着此被命中的地址是在存储器120中当前打开页上时分页存储器120能够更迅速地访问一个命中的存储器地址。访问不同的页产生分页,这要花费更长的服务。命令选择逻辑240的一个实施例检验存储器120中当前打开页的标记并确定在重排存储槽230中是否有任何命令命中该页。这个标记可以用各种各样的方式提供。例如,命令选择逻辑240可以从存储器120接收一个关于它的当前打开页的暗示。这种方法具有跟踪起因于发自其他设备的命令的页更换的优点,另一方面,命令选择逻辑240可以跟踪在它所发出的最新命令中所指定的存储单元。当着这种方法不计及由来自其它的设备的访问所引起的页更换时,实现比较简单,另外一种可供选择的方法是当在存储器120中探测到分页时,使得从命令选择逻辑240所选择的最新的命令所得到的标记无效。
当瞄向当前页的命令出现在重排序槽230中时,命令选择逻辑选择此命令来发给存储器120。如果多于一个的命令瞄向当前页,命令选择逻辑240可以应用第二准则在这些命令中作判别。在本发明的一个实施例中,命令选择逻辑240选择那个已在重排序槽中最长久的命令并将其送往存储器120。其余的用来在指向打开的页的命令之间进行选择的可能的准则包括选择与最大的或最小的数据块相关联的命令或者随机地选择一个命令。
如果在重排存储槽230中无一个是瞄向存储器120中的当前打开页,命令选择逻辑240可以根据第二准则或者再另一个准则选择一个命令。
第二准则即选择在重排序槽中最长久的命令可以用多种不同的方法来实现。在一个实施例中,存储槽230的单元可以被用来指示在存储槽230中所保留的命令的相对寿命。例如,重排序槽可以从顶到底被排序,并且命令在重排序槽230中呆得越长,它在重排序槽230中占据的位置越高。按照这种安排,如果在重排序槽230中没有一个命令瞄向存储器120的当前页,命令选择逻辑240将存储槽中最顶上的命令送往存储器120。槽230中的其余的命令被向上移并从命令队列220输送一个新的命令。
另一种方法,每个命令可以在它被装载进入重排序槽230的时候,被标上时间。当在重排序槽230中没有一个命令是瞄向存储器中的当前页时,命令选择逻辑240检验命令的时间标记并且选择具有最老时间标记的命令。这种处理需要识别最老命令的附加逻辑,但它消除了每次向存储器120发送命令时移动在重排存储槽中的命令的需求。
现在参看图2B,该图显示一个按照本发明的命令选择逻辑240的实施例。尽管在图2B的实施例被画成带有四个重排序槽230,本发明不限制于这个数。命令选择逻辑240包括缓冲器242,比较模块244(a)-244(d),以及选择逻辑246。缓冲器242存储在存储器120中被访问的最新页的标记。正如上面所指出的,该标记可以从存储器120得到或者从由命令选择逻辑240选作发出的最新命令得出。
比较模块244(a)-244(d)各自与一个重排序槽230以及与缓冲器242和选择逻辑246相连接。比较模块244(a)-244(d)比较由存储在它们相关的重排序槽230中的命令所指定的目标地址与在缓冲器242中指示的当前打开页。根据一组准则,选择逻辑246发往存储器120的命令位于重排序槽230最顶部(第二准则),目标瞄向在缓冲器242中所指定的相同的页(效率准则)。如果比较模块244(a)-244(d)无一指示肯定的比较,选择逻辑246按照缺省准则发出一个命令。一个此类准则发出在重排序槽230最顶上的命令,即在重排序槽230中最长久的命令。
当着存储器120中的当前打开页的标记是由重排逻辑210所发出最新命令的目标地址所提供的时候,此信息被存储在缓冲器242中。当其它设备在来自图形系统130的命令之间访问存储器120的不同页上的地址时,缓冲器242中的页标记将不是精确的。在另一个命令选择逻辑240的实施例中,缓冲器242可以被连接至存储器120,使得如果此类插入访问发生存储器缓冲器242的存储信息可以被作废。在命令选择逻辑246的又一个实施例中,缓冲器242可以接收在此类插入访问中的目标页的标记并且相应地更新它的内容。一般讲,打开页标记可以以内部存储的数据或者以从外部源例如资源控制器所接收的数据为基础,并且在两种情况中,外部作用因素可以提供一个附加的“暗示”例如通过在缓冲器242中使页标记作废。
再次参考图2A,命令选择逻辑240在图中被连接至资源顺序(RO)缓冲器294。当命令选择逻辑240发出一个命令给存储器120时,它也提供一个指定接收相应读响应数据的存储桶272的标记。这允许将按资源顺序(RO)发出给存储器120的命令通过装载逻辑280按OCO装进RDRB270中。这个过程在下面还要非常详细地讨论。
正如上面指出的,并非所有的命令可适于重排序。为支持某些命令的重排序而需要的校验逻辑要证明效率增进可能是太昂贵和复杂了。另一方面,命令可以由起始设备按照不同的准则进行排序,重排序这些命令可能扰乱由起始设备所完成的排序方案。
现在参看图2C,图中显示命令重排序逻辑210(210′)的实施例的方框图,此实施例适应不同类型的命令。例如,所揭示的命令重排逻辑210′的实施例适用于产生高和低优先级读和写命令的起始设备。必须以低等待时间发出的命令被作为高优先权命令发出,且一般不适合用作重排序,在此情况下,命令重排逻辑210′分出用作重排序的低优先权命令并将高优先权命令送往高优先权命令队列。
在低优先权写以及高优先权读和写按OCO处理给存储器120的同时考虑命令重排序逻辑210′重排序低优先权读的情况,在这个命令重排序逻辑210′的实施例中,关于低优先权读的命令队列本质上如在图2A中所指出的那样。但是,低优先权写队列222和高优先权读/写队列224也包括在重排序逻辑210′中。此外,命令译码器214被引入在图形系统130以及命令队列220,222,224之间,以便将命令译码并将它们发送给适当的队列。
重排序逻辑210′还包括一个命令判优器248用来从队列220,222,224接收命令并且有选择地将其转送给存储器120。在这个重排序逻辑210′的实施例中,低优选权的读命令被重排序以便页错误最小化,就像在上面所说明的,高优先权的读和写通过命令判优器按照不同的优先权方案被发给存储器120。典型地,高优先权读和写将先于低优先权的读和写被发送。由于高优先读还必须返还数据。命令队列224将具有相关的选通逻辑(没画出)用于确保返还缓冲空间对于响应数据是可用的。选通逻辑可被并入列命令判优器248中以便监测在专用的高优先权读数据返还缓冲器中槽口可用性。(没画出)。选通逻辑可以与队列220共同RDRB270,在这种情况下,高优先权读命令必须分别在OCO和RO缓冲器290和294中被跟踪,以确保读响应数据与槽口272正确地相关联。
一般讲,命令判优器248提供一个附加的命令选择级,以确保高优先权命令不被低优先权的读和写延误。在重排逻辑21O′的一个实施例中,命令判优器248可以被与命令选择逻辑240的缓冲器242耦联以反映由插入的低优先写或高优先读/写所命中的页。
再次参见图2A,响应重排序逻辑260将由存储器120在响应重排序的读命令时所提供的数据恢复到OCO。正如前面讨论的。命令重排序逻辑210(210′)将命令从OCO向RO作重排序,并且存储器120处理这些读命令以产生在RO中的读响应数据。响应重排序逻辑260被包括,在必要的场合,以便返还响应数据至OCO。
响应重排序逻辑260包括装入逻辑280,转存逻辑284,RDRB270,初始命令顺序缓冲器290和资源顺序(RO)缓冲器294。RDRB270通过装入逻辑280连接至存储器120并通过转存逻辑284连接至图形系统130。OCO缓冲器290被连接是为了监测由图形系统130发给重排序逻辑150的命令和将这些命令上的信息提供给转存逻辑284,用来从RDRB270检索数据。OCO缓冲器290监测在OCO中的数据请求的规模。
RD缓冲器294被连接在命令选择逻辑240和转存逻辑280之间。RO缓冲器294记录发给存储器120的读命令的顺序,即RO,以及在RDRB270中为相应的响应数据而保留的单元,装入逻辑280利用这个信息将读响应数据装入到RDRB中适当的存储桶272。如上面所指出的,存储桶272是由选通逻辑250按OCO指配的。在图2C的命令重排序逻辑210′的实施例中,关于存储桶272分配的信息可以由命令选择逻辑240或者由命令判优器248提供给RO缓冲器294。
转存逻辑284将读响应数据按OCO从RDRB270传输到图形系统130。为此目的,OCO缓冲器290将在OCO中的下一个读命令所期望的数据响应的规模提供给转存逻辑。转存逻辑284利用这个信息来决定存储桶272中的哪一个保存对应于OCO中下一个读的响应数据以及何时装进了这些存储桶中的数据适用于传送给图形系统130。
转存逻辑284以下面的方式检索按OCO的响应数据。转存逻辑284保持一个读指针(RPTR),该指针指向的存储桶紧随最新的从RPRB270读的数据响应。在初始化时RPTR指向RDRB270中的另一存储桶。转存逻辑248利用在OCO缓冲器290中为下一个读命令规定的数据容量来决定指向最近的存储桶的指针(VPTR)。该存储桶应由在响应这个读命令时所提供的数据所占据。例如,如果每个存储桶保存Q字的响应数据并且在OCO缓冲器290的头部所请求的数据长度L个Q字是:
VPTR=RPTR+L-1
在此实施例中,转存逻辑248监视在由VPTR所指示的存储桶上的有效位,当着在响应读命令时所提供的最新的Q字已经被装进了RDRB270中时这个有效位被置位,所以全部与该读命令有关的数据都被准备用来传送给图形系统130。转存逻辑284转存L个Q字,将它们传送给图形系统130,将在L槽口上的有效位清Q,并重置RPTR为VPTR+1。
重排序逻辑210的另一个实施例利用标记来跟踪命令顺序。在此实施例中,例如与选通逻辑250或命令队列220相关联的标记逻辑标记命令以反映它被接收时的顺序(OCO),已标记的命令通过重排序槽230和命令选择逻辑240被转送给资源,就如前面那样。在读命令的情况,例如,转存逻辑280利用命令标记将命令响应装入RDRB270中适当的存储桶。这种方法的一个优点除了由重排序逻辑210所进行的命令重排序之外是它允许资源,例如存储器120,进行它自己的命令重排序,由于OCO数据随同命令一起送给资源,任何由资源作的命令重排序不影响附加的OCO信息。
虽然前面的说明集中在重排序读命令上,写命令也可以被重排序以改善存储器120的工作效率,在所揭示的发明的实施例中,写命令和它写的数据分别被耦合至重排序逻辑150。因此,重排序逻辑210将包括一个写数据缓冲区(WDB,图2D)以存储被接收的数据,也即在OCO中。
现在参考图2D,图中显示一个适用于重排序写命令的命令重排逻辑210的实施例。在所揭示的实施例中,选通逻辑250被连接至WDB254以监测写数据的到达。在此配置下,选通逻辑250能够将写命令阻止在命令队列220中直到它的相应的写数据已经被接收进入WDB254。一旦数据被接收,写命令能够被处理,选通逻辑250将把写命令转送至重排序槽230。
在所揭示的实施例中,写数据被接收OCO存入WDB254,由于写命令是按RO发送给存储器120的,命令重排序逻辑210必须识别在WDB254中哪个存储桶256对应于正被发送给存储器120的写命令。这个转换可以通过,例如,标记写命令以指示它们的OCO,并且当写命令发出时读此标记以决定哪个存储桶256保存相关的数据。其它的方法,包括上面描述过的用于读命令在OCO和RO之间转换的各种方法,可以被用来将WDB254中的数据与由命令选择逻辑240所发出的重排序写命令关联起来。
在命令被重排序时可能发生某些风险,当着命中存储器120中的相同单元的若干写命令被重排序时出现一个此类风险,因为一个对该单元的后继读可能恢复失效数据。为此理由,本发明的优选实施例不允许对存储器120中相同单元的写被重排序。读和写命令的重排序也可能产生冒险。为了与上面给出的相似的理由,本发明的优选实施例不许可对存储器120中的相同单元的写命令前面的读命令被重排序。反之,本发明可以重排序在读命令前面的对于相同的存储器120中的单元的写命令,因为这样提供给读命令的是最新的可用数据,其他的风险可以根据它们对数据的精确处理所造成的危险被识别和处理。
现在参考图3,图中显示的流程图提供一个关于按照本发明重排序对资源的命令的一般方法300的概要。从起始方,例如图形系统130,接收来的命令被排队310,以及任何关于命令的转送处理的前提条件被检验320。在读命令的情况下,在读响应缓冲器,例如RDRB270中的空间的可用性被检验。在这样的写命令的情况中,读/写命令重排序被完成以使得处理器停机最少,前提条件可能是所有的未决的读已被发送给资源。对于其它的命令类型,唯一的前提条件可能是命令到达命令队列的前端。
当任何所需的前提条件被满足320时,命令被加到330其它的用于向资源发出的候选命令的集合中。效率准则被应用到340这个集合的候选命令,例如目标为存储器当前打开页的地址的命令。满足准则340的命令在它满足发送准则时被转送350给资源进行处理。
现在参看图4A,图中显示一个用于为减少分页的方式重排序发给存储设备的读命令的方法的更详细的流程图。所揭示的实施例从高和低优先权的读和写命令中间识别低优先权读(LPRs)并且重排序LPRs以减少分页。
一开始,命令被译码410并且命令类型被确定420。如果命令已被确定为低优先权读(LPR),也即用于重排序的候选者,所请求数据的长度被记录430,并且命令被加到440 LRP命令队列中。其他的命令,例如,低优先权写,高优先权读和写,被传送424给它们各自的命令队列。当着LPR命令到达LPR队列的首部,例如,队列中在它前面的LPR命令已经被处理之后,确定读响应缓冲区是否有足够容量接纳那些在响应LPR命令时所返还的数据。如果容量是得不到的,命令被阻止直到容量变成可得到的。如果容量是可得到的,命令被加(460)到有资格向存储器发出的LPR集合,也即重排序集合中。
一旦进入重排序集合,命令和其余有资格的LPR一起对照效率准则被进行分析470。在本发明的一个实施例中,效率准则识别重排序集合中那个目标为存储器中当前打开页地址的LPR命令。如果在该集合中无一LPR命令满足此准则或者多个命令满足,第二准则,即在集合中最长久的LPR命令被应用。由各种准则所识别的命令被记录(480)和发给(490)存储进行处理。
现在参看图4B,图中显示用于按减少存取等待时间的方式重排序发给存储资源的写命令的方法400′的更为详细的流程图。方法400′的步骤类似于方法400的步骤,故用相同的标号数标志。主要的差别是步骤420′识别LP写,步骤440传送写命令到LPW队列,步骤450′检验对应的写数据已经到达,以及步骤480′在写命令被选作发出时检索写数据。
现在参考图5A和5B那里展示的是流程图500,502,表示按原先的命令顺序返还读响应数据给起始设备的方法。方法500和502本质上对应于由图2A的装入逻辑280和转存逻辑284所分别完成的功能。
首先参看图5A,来自资源,例如存储器120,如数据被检测,这些数据是在响应LPR时所提供的,并且为这些数据分配的存储桶是被识别的520。数据被装入被识别的存储桶530并且与这些存储桶相联系的有效位被置位540以指示数据可用于转存。
现在参考图5B,在响应按照OCO的下一个LPR命令时所提供的数据的存储单元被确认550以及RDRB被检验以确定数据是否已经是可得到的。当数据是可得到的时候,例如在DRDB中被指定的存储桶的有效位被置位时,它被传送给请求设备(570)且有效位被清零(580)。
于是,已经提供了按照有助于更有效地利用资源的准则重排序对资源的命令的系统和方法。已经又提供一种按原先的命令顺序返还在响应重排序过的命令时所提供的数据给请求设备的系统和方法。命令重排序可以对诸如存储设备这样的资源便利地完成。在这种情况下,重排序将那些存取在相对局部的地址范围内的数据的命令聚集在一起,以消除与更为随机的存取方法相关联的开销。

Claims (30)

1.一种利用许多重排序槽重排序对资源的命令的方法,该方法包括的步骤有:
接收来自起始设备的命令;
传送命令至许多个重排序槽中的一个;
对命令使用效率准则;以及
在效率准则被满足时发送命令给资源。
2.权利要求1的方法,其中传送步骤包括的子步骤有:
将转送进程准则用于命令以决定命令是否能继续进行;
当转送进程准则被满足时将命令传送给许多个重排序槽中的一个。
3.权利要求2的方法,其中接收命令的步骤包括接收读命令。
4.权利要求3的方法,其中应用转送进程准则的步骤包括确定命令的处理是否会引起死锁。
5.权利要求1的方法,其中应用效率准则的步骤包括比较在命令中指定的资源目标地址与资源的当前打开地址范围。
6.权利要求5的方法,其中发出步骤包括在指定的资源地址落在有关资源的当前打开地址范围内并且命令满足第二准则时发出命令。
7.权利要求6的方法,其中第二准则是从一组准则选择的,这些准则包括命令是最老的命令,命令请求最大的数据块,和命令请求最小的数据块。
8.权利要求2的方法,其中接收命令的步骤包括接收写命令。
9.权利要求8的方法,其中应用转送进程准则包括确定与写命令有关的数据是否可得到。
10.权利要求1的方法,包括附加的监测所发命令,以确定命令被发给资源的顺序的步骤。
11.权利要求1的方法,包括监测所接收的命令以确定由起始设备发出的命令的顺序的一个附加步骤。
12.权利要求11的方法,包括一个按照命令被起始设备发送时的顺序返还一个对命令的响应给起始设备的附加步骤。
13.重排序由起始设备发给资源的命令的方法,方法包括的步骤有:
应用效率准则选择由起始设备发出的命令;以及
在命令满足效率准则时传送一个所选择的命令给资源。
14.权利要求13的方法,其中传送步骤包括的子步骤有:
识别所选择的满足效率准则的命令;
在所选的命令中只有一个满足资源效率准则时,传送这一个命令给资源;
在有许多个所选命令满足效率准则时,根据第二准则将所选的许多个命令中的一个进行传送;以及
当无一所选命令满足资源效率准则时,根据第三准则传送所选命令中的一个。
15.权利要求14的方法,其中第一和第三准则是相同的准则。
16.权利要求13的方法,其中应用步骤包括比较由每个所选命令指定的资源地址与打开资源地址范围。
17.权利要求13的方法,包括为提供关于资源处理命令的顺序的标记而跟踪传送给资源的命令的附加步骤。
18.重排序由起始设备发给资源的命令的线路,该线路包括:
用于接收来自起始设备的命令的命令排队;
耦联接收来自命令排队的命令的多个重排序槽;以及
与多个重排序槽和资源耦联的命令重排序逻辑,用来确定与资源有关的效率参数和根据命令参数和效率参数之间的比较结果从多个命令重排序槽选择用于传送给资源的命令。
19.权利要求18的线路,进一步包括:
与命令排队耦联的命令顺序排队,用于存储由命令排队所接收的命令的标记以便跟踪起始设备发送命令给资源的顺序;以及
资源顺序排队,耦联命令重排序逻辑,用于存储传送给资源的命令的标记以跟踪资源处理命令的顺序。
20.权利要求18的线路,进一步包括:
读数据返还缓冲区(RDRB)具有许多个用于存储在响应读命令时由资源所提供的数据的存储桶;以及选通逻辑,与命令排队和RDRB相耦联,用于识别读命令所请求的数据规模,确定RDRB是否有足够的容量接纳所请求的数据规模,以及在RDRB有足够的容量时分配RDRB存储桶给读命令。
21.权利要求20的线路,进一步包括装入逻辑,耦联于资源、资源顺序排队、和RDRB,用于将响应读命令时所提供的数据按规定路线发送给为该数据分配的RDRB存储桶。
22.权利要求20的线路,还包括转存逻辑,耦联于命令顺序排队和RDRB,用于使用来自命令顺序排队的信息将来自RDRB的读响应数据传送至起始设备。
23.权利要求18的线路,其中资源效率参数提供一个可以以减少了的开销被访问的资源地址的标记而命令参数则是一个指定的资源地址。
24.权利要求23的线路,其中的标记是由资源提供的。
25.权利要求23的线路,其中的标记是由先前的命令所指定的资源地址所提供。
26.权利要求18的线路,还包括标记逻辑,用于以命令接收的顺序的标记来标记命令。
27.权利要求26的线路,还包括转存逻辑,与资源相耦联,用于按照接收命令的顺序传送在响应命令时所提供的数据给起始设备。
28.计算机系统,包括:
产生待处理命令的起始设备;
以由效率参数表征的速率处理起始设备所产生的命令的资源;
耦联起始设备和资源的桥逻辑,用来将命令从起始设备传送给资源。桥逻辑包括命令重排序逻辑,用来监测由起始设备产生的命令,比较所监测的命令和效率参数,以及按比较所提供的顺序将命令送至资源。
29.权利要求28的计算机系统,还包括命令顺序逻辑,此桥逻辑相耦联,用于确定命令从起始设备被接收的原始的顺序以及命令被传送给资源的资源顺序。
30.权利要求29的线路还包括响应重排序逻辑,此命令顺序逻辑,资源和起始设备相耦联,用于按资源顺序接收来自资源的响应数据并按照原先的命令顺序将该数据提供给起始设备。
CN98805712.3A 1997-04-07 1998-01-28 重排序命令和按原先的命令顺序恢复数据的方法和装置 Expired - Fee Related CN1244046C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/835,388 1997-04-07
US08/835,388 US6112265A (en) 1997-04-07 1997-04-07 System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command

Publications (2)

Publication Number Publication Date
CN1259214A true CN1259214A (zh) 2000-07-05
CN1244046C CN1244046C (zh) 2006-03-01

Family

ID=25269391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98805712.3A Expired - Fee Related CN1244046C (zh) 1997-04-07 1998-01-28 重排序命令和按原先的命令顺序恢复数据的方法和装置

Country Status (8)

Country Link
US (1) US6112265A (zh)
EP (1) EP0978044B1 (zh)
CN (1) CN1244046C (zh)
AU (1) AU6046298A (zh)
DE (1) DE69834026T2 (zh)
HK (1) HK1026752A1 (zh)
TW (1) TW455770B (zh)
WO (1) WO1998045780A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100573489C (zh) * 2004-07-29 2009-12-23 索尼计算机娱乐公司 经由流动id方法的dmac发布机制
CN109783025A (zh) * 2019-01-10 2019-05-21 深圳忆联信息系统有限公司 顺序数据页颗粒度离散分布的读方法和装置
CN110568991A (zh) * 2018-06-06 2019-12-13 北京忆恒创源科技有限公司 降低锁引起的io命令冲突的方法与存储设备
CN113126902A (zh) * 2019-12-30 2021-07-16 美光科技公司 寻址到逻辑块的命令的执行

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311256B2 (en) * 1997-06-30 2001-10-30 Emc Corporation Command insertion and reordering at the same storage controller
JP4086345B2 (ja) * 1997-09-09 2008-05-14 キヤノン株式会社 通信制御方法及び装置及び通信システム
US6816934B2 (en) * 2000-12-22 2004-11-09 Hewlett-Packard Development Company, L.P. Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol
US6202101B1 (en) * 1998-09-30 2001-03-13 Compaq Computer Corporation System and method for concurrently requesting input/output and memory address space while maintaining order of data sent and returned therefrom
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
US6374323B1 (en) * 1998-11-16 2002-04-16 Infineon Technologies Ag Computer memory conflict avoidance using page registers
US6526484B1 (en) * 1998-11-16 2003-02-25 Infineon Technologies Ag Methods and apparatus for reordering of the memory requests to achieve higher average utilization of the command and data bus
US6546439B1 (en) * 1998-12-09 2003-04-08 Advanced Micro Devices, Inc. Method and system for improved data access
US6601151B1 (en) * 1999-02-08 2003-07-29 Sun Microsystems, Inc. Apparatus and method for handling memory access requests in a data processing system
JP3382176B2 (ja) 1999-03-26 2003-03-04 株式会社東芝 要求処理方法および要求処理装置
US6272565B1 (en) * 1999-03-31 2001-08-07 International Business Machines Corporation Method, system, and program for reordering a queue of input/output (I/O) commands into buckets defining ranges of consecutive sector numbers in a storage medium and performing iterations of a selection routine to select and I/O command to execute
US6559852B1 (en) * 1999-07-31 2003-05-06 Hewlett Packard Development Company, L.P. Z test and conditional merger of colliding pixels during batch building
US6633298B2 (en) * 1999-07-31 2003-10-14 Hewlett-Packard Development Company, L.P. Creating column coherency for burst building in a memory access command stream
US6628292B1 (en) * 1999-07-31 2003-09-30 Hewlett-Packard Development Company, Lp. Creating page coherency and improved bank sequencing in a memory access command stream
US7039047B1 (en) 1999-11-03 2006-05-02 Intel Corporation Virtual wire signaling
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US7127573B1 (en) * 2000-05-04 2006-10-24 Advanced Micro Devices, Inc. Memory controller providing multiple power modes for accessing memory devices by reordering memory transactions
US6581111B1 (en) * 2000-06-02 2003-06-17 Advanced Micro Devices, Inc. Out-of-order probing in an in-order system
US6865652B1 (en) * 2000-06-02 2005-03-08 Advanced Micro Devices, Inc. FIFO with undo-push capability
US6826650B1 (en) * 2000-08-22 2004-11-30 Qlogic Corporation Disk controller configured to perform out of order execution of write operations
US6784889B1 (en) * 2000-12-13 2004-08-31 Micron Technology, Inc. Memory system and method for improved utilization of read and write bandwidth of a graphics processing system
US6851011B2 (en) * 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
US6741253B2 (en) 2001-10-09 2004-05-25 Micron Technology, Inc. Embedded memory system and method including data error correction
US6925539B2 (en) * 2002-02-06 2005-08-02 Seagate Technology Llc Data transfer performance through resource allocation
US6829689B1 (en) * 2002-02-12 2004-12-07 Nvidia Corporation Method and system for memory access arbitration for minimizing read/write turnaround penalties
US20030163639A1 (en) * 2002-02-25 2003-08-28 Seagate Technology Llc Sequential command processing mode in a disc drive using command queuing
DE10234934A1 (de) * 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Antwortreihenwiederherstellungsmechanismus
DE10234933A1 (de) * 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Pufferung von Non-Posted-Lesebefehlen und Antworten
DE10255937B4 (de) * 2002-11-29 2005-03-17 Advanced Micro Devices, Inc., Sunnyvale Ordnungsregelgesteuerte Befehlsspeicherung
US20040199786A1 (en) 2002-12-02 2004-10-07 Walmsley Simon Robert Randomisation of the location of secret information on each of a series of integrated circuits
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
KR100533682B1 (ko) * 2003-12-26 2005-12-05 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
US8081182B2 (en) * 2004-03-03 2011-12-20 Qualcomm Incorporated Depth buffer for rasterization pipeline
US7272692B2 (en) * 2004-11-12 2007-09-18 International Business Machines Corporation Arbitration scheme for memory command selectors
US7353311B2 (en) * 2005-06-01 2008-04-01 Freescale Semiconductor, Inc. Method of accessing information and system therefor
US7281086B1 (en) * 2005-06-02 2007-10-09 Emc Corporation Disk queue management for quality of service
JP4804175B2 (ja) * 2006-03-02 2011-11-02 株式会社日立製作所 I/oコマンドをキューイングするストレージシステム及びその制御方法
US7996599B2 (en) * 2007-04-25 2011-08-09 Apple Inc. Command resequencing in memory operations
US20090055234A1 (en) * 2007-08-22 2009-02-26 International Business Machines Corporation System and methods for scheduling meetings by matching a meeting profile with virtual resources
US8046559B2 (en) 2008-03-27 2011-10-25 Intel Corporation Memory rank burst scheduling
CN101561542A (zh) * 2008-04-18 2009-10-21 鸿富锦精密工业(深圳)有限公司 点胶装置和点胶方法
JP2010198209A (ja) * 2009-02-24 2010-09-09 Toshiba Corp 半導体記憶装置
US8281984B2 (en) * 2009-10-18 2012-10-09 Research In Motion Limited Constructing a combined tracking address
US9069489B1 (en) * 2010-03-29 2015-06-30 Marvell Israel (M.I.S.L) Ltd. Dynamic random access memory front end
US20110228674A1 (en) * 2010-03-18 2011-09-22 Alon Pais Packet processing optimization
IL211490A (en) * 2010-03-02 2016-09-29 Marvell Israel(M I S L ) Ltd Early next packets of information
US8327047B2 (en) 2010-03-18 2012-12-04 Marvell World Trade Ltd. Buffer manager and methods for managing memory
JP5296041B2 (ja) * 2010-12-15 2013-09-25 株式会社東芝 メモリシステムおよびメモリシステムの制御方法
US9098203B1 (en) 2011-03-01 2015-08-04 Marvell Israel (M.I.S.L) Ltd. Multi-input memory command prioritization
US9236064B2 (en) 2012-02-15 2016-01-12 Microsoft Technology Licensing, Llc Sample rate converter with automatic anti-aliasing filter
US9053064B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
US9811453B1 (en) * 2013-07-31 2017-11-07 Juniper Networks, Inc. Methods and apparatus for a scheduler for memory access
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US11204871B2 (en) * 2015-06-30 2021-12-21 Advanced Micro Devices, Inc. System performance management using prioritized compute units
US10592107B2 (en) * 2016-03-30 2020-03-17 EMC IP Holding Company LLC Virtual machine storage management queue
US10379748B2 (en) 2016-12-19 2019-08-13 International Business Machines Corporation Predictive scheduler for memory rank switching
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
US10929356B2 (en) * 2018-06-04 2021-02-23 International Business Machines Corporation Detection of hidden data co-occurrence relationships
US10545701B1 (en) * 2018-08-17 2020-01-28 Apple Inc. Memory arbitration techniques based on latency tolerance
WO2020236272A1 (en) 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating fine-grain flow control in a network interface controller (nic)
KR20210016227A (ko) * 2019-08-02 2021-02-15 삼성전자주식회사 빠른 쓰기 및 빠른 읽기를 지원하기 위한 복수의 버퍼 영역들을 포함하는 메모리 장치 및 이를 포함하는 스토리지 장치
CN112395011B (zh) 2020-11-24 2022-11-29 海宁奕斯伟集成电路设计有限公司 命令响应信息的返回方法、返回控制装置和电子设备
US11775467B2 (en) * 2021-01-14 2023-10-03 Nxp Usa, Inc. System and method for ordering transactions in system-on-chips
US11966631B2 (en) 2021-04-16 2024-04-23 Western Digital Technologies, Inc. Command queue order adjustment in a data storage device
US11507321B1 (en) * 2021-06-04 2022-11-22 Western Digital Technologies, Inc. Managing queue limit overflow for data storage device arrays
US11567883B2 (en) 2021-06-04 2023-01-31 Western Digital Technologies, Inc. Connection virtualization for data storage device arrays
US11656797B2 (en) * 2021-07-28 2023-05-23 Western Digital Technologies, Inc. Data storage device executing runt write commands as free commands
US11604609B1 (en) * 2021-10-08 2023-03-14 Micron Technology, Inc. Techniques for command sequence adjustment
TWI822386B (zh) * 2022-10-11 2023-11-11 慧榮科技股份有限公司 橋接控制晶片與相關的訊號處理方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3350694A (en) * 1964-07-27 1967-10-31 Ibm Data storage system
US4521851A (en) * 1982-10-13 1985-06-04 Honeywell Information Systems Inc. Central processor
JPS61233849A (ja) * 1985-04-08 1986-10-18 Hitachi Ltd デ−タベ−ス排他制御方法
US4809217A (en) * 1985-10-31 1989-02-28 Allen-Bradley Company, Inc. Remote I/O port for transfer of I/O data in a programmable controller
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US5008808A (en) * 1988-06-23 1991-04-16 Storage Technology Corporation Consolidation of commands in a buffered input/output device
US5140683A (en) * 1989-03-01 1992-08-18 International Business Machines Corporation Method for dispatching work requests in a data storage hierarchy
US5583134A (en) * 1992-09-30 1996-12-10 Sanofi 1-azoniabicyclo[2.2.2] octanes and pharmaceutical compositions in which they are present
US5732236A (en) * 1993-05-28 1998-03-24 Texas Instruments Incorporated Circuit and method for controlling access to paged DRAM banks with request prioritization and improved precharge schedule
JPH07200386A (ja) * 1993-12-28 1995-08-04 Toshiba Corp 共有メモリのアクセス制御装置および画像形成装置
US5603063A (en) * 1994-06-27 1997-02-11 Quantum Corporation Disk drive command queuing method using two memory devices for storing two types of commands separately first before queuing commands in the second memory device
US5666551A (en) * 1994-06-30 1997-09-09 Digital Equipment Corporation Distributed data bus sequencing for a system bus with separate address and data bus protocols
US5812799A (en) * 1995-06-07 1998-09-22 Microunity Systems Engineering, Inc. Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing
US5613155A (en) * 1995-06-07 1997-03-18 International Business Machines Corporation Bundling client write requests in a server
US5787298A (en) * 1995-08-18 1998-07-28 General Magic, Inc. Bus interface circuit for an intelligent low power serial bus
US5796413A (en) * 1995-12-06 1998-08-18 Compaq Computer Corporation Graphics controller utilizing video memory to provide macro command capability and enhanched command buffering
US5822772A (en) * 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
US6272600B1 (en) * 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100573489C (zh) * 2004-07-29 2009-12-23 索尼计算机娱乐公司 经由流动id方法的dmac发布机制
CN110568991A (zh) * 2018-06-06 2019-12-13 北京忆恒创源科技有限公司 降低锁引起的io命令冲突的方法与存储设备
CN109783025A (zh) * 2019-01-10 2019-05-21 深圳忆联信息系统有限公司 顺序数据页颗粒度离散分布的读方法和装置
CN109783025B (zh) * 2019-01-10 2022-03-29 深圳忆联信息系统有限公司 顺序数据页颗粒度离散分布的读方法和装置
CN113126902A (zh) * 2019-12-30 2021-07-16 美光科技公司 寻址到逻辑块的命令的执行

Also Published As

Publication number Publication date
US6112265A (en) 2000-08-29
WO1998045780A3 (en) 1999-01-07
HK1026752A1 (en) 2000-12-22
DE69834026D1 (de) 2006-05-18
WO1998045780A2 (en) 1998-10-15
CN1244046C (zh) 2006-03-01
EP0978044B1 (en) 2006-03-29
DE69834026T2 (de) 2006-08-24
AU6046298A (en) 1998-10-30
EP0978044A2 (en) 2000-02-09
EP0978044A4 (en) 2001-07-18
TW455770B (en) 2001-09-21

Similar Documents

Publication Publication Date Title
CN1244046C (zh) 重排序命令和按原先的命令顺序恢复数据的方法和装置
US5634099A (en) Direct memory access unit for transferring data between processor memories in multiprocessing systems
US6976135B1 (en) Memory request reordering in a data processing system
US6449671B1 (en) Method and apparatus for busing data elements
US5809560A (en) Adaptive read-ahead disk cache
US6742085B2 (en) Prefetch queue
US6088772A (en) Method and apparatus for improving system performance when reordering commands
US6173369B1 (en) Computer system for processing multiple requests and out of order returns using a request queue
US8332608B2 (en) Method of enhancing command executing performance of disc drive
US6842801B2 (en) System and method of implementing a buffer memory and hard disk drive write controller
US5964859A (en) Allocatable post and prefetch buffers for bus bridges
CN101840374B (zh) 处理装置、信息查找系统及信息查找方法
US6115793A (en) Mapping logical cache indexes to physical cache indexes to reduce thrashing and increase cache size
JPH06110772A (ja) コンピュータのデータを記憶させるための直接アクセス記憶装置の割振り方法及び装置
US20040073719A1 (en) Method and apparatus for efficient command queuing within a serial ATA environment
JPH1063578A (ja) 情報記録再生装置
US20040049628A1 (en) Multi-tasking non-volatile memory subsystem
US6442648B1 (en) Method of and system for the dynamic scheduling of requests to access a storage system
CN101303685B (zh) 可提升通用序列总线储存设备的读写数据速率的方法
EP2438513B1 (en) Scheduling realtime information storage system access requests
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
US6836831B2 (en) Independent sequencers in a DRAM control structure
SE519920C2 (sv) Förfarande och anordning för genomförande av busstransaktioner i ett datorsystem
CN1299098A (zh) 用于直接存取存储设备的公平电梯调度算法
EP0522728B1 (en) Method for efficient access of data stored in a nexus table

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: 20060301

Termination date: 20160128

EXPY Termination of patent right or utility model