CN101359314A - 通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间 - Google Patents

通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间 Download PDF

Info

Publication number
CN101359314A
CN101359314A CNA2008101312096A CN200810131209A CN101359314A CN 101359314 A CN101359314 A CN 101359314A CN A2008101312096 A CNA2008101312096 A CN A2008101312096A CN 200810131209 A CN200810131209 A CN 200810131209A CN 101359314 A CN101359314 A CN 101359314A
Authority
CN
China
Prior art keywords
data
request
data sequence
storage unit
auxiliary storage
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.)
Pending
Application number
CNA2008101312096A
Other languages
English (en)
Inventor
姆鲁杜拉·卡努瑞
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of CN101359314A publication Critical patent/CN101359314A/zh
Pending legal-status Critical Current

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种存储控制器,其使用同一缓冲器来存储从不同的辅助存储单元检索的数据元素。在实施例中,所述控制器在数据可用于存储在目标存储器中之前检索位置描述符。每一位置描述符均指示将要存储从辅助存储装置接收的数据的存储器位置。在处理每一请求之前,仅可检索及存储一子组的所述位置描述符。由于有限数量的位置描述符的所述检索及存储,因此可减小所述存储控制器所使用的缓冲器的大小。由于提前检索所述位置描述符,因此避免了在所述存储控制器内对所述数据元素的不必要缓冲,从而减少将所述数据写入到所述主存储器中的延时,因此改进性能。

Description

通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间
技术领域
本发明大体来说涉及存储器技术,且更具体来说涉及将检索的数据直接写入存储器的存储控制器对缓冲器空间的最佳使用。
背景技术
存储控制器涉及控制对非易失性存储媒体的读取及写入请求的组件(或单元)。所述请求一般是从中央处理器(例如,中央处理单元CPU)接收,且存储控制器与非易失性存储媒体连接以处理每一请求。在读取请求的情况下,存储控制器从非易失性存储媒体检索数据。
一般要求存储控制器将检索的数据写入存储器中。例如,CPU可指示将包含于文件中的数据检索及存储于操作为主存储器(以与控制存储器区分,下文提及)的随机存取存储器(RAM)中。
可进一步请求存储控制器直接写入存储器中。“直接”一般暗示存储控制器将数据存储在RAM中而不针对每一存储操作中断CPU。作为图解说明,在直接存储器存取(DMA)操作中,存储控制器仅在完成存储整个数据之后中断CPU。
缓冲器空间通常提供于存储控制器中(或与其相关联)以支持各种读取/写入请求。缓冲器空间提供用于临时存储,且允许即使在速度不匹配及资源不可用(例如,总线)的情况下仍依序转移数据以将数据存储在目标主存储器中。缓冲器空间通常实施为RAM,且称作控制器存储器。
一般需要最佳使用缓冲器空间以使得可以有效支持各种操作(更好的通过量、减少的延时等中的一者或一者以上),即使具有较小的缓冲器/存储器大小。
发明内容
本发明的一个实施例涉及存储控制器,其控制对多个辅助存储单元的存取请求,所述存储控制器包括缓冲器、及用以接收指定来自第一辅助存储单元的第一数据序列的第一读取请求及指定来自第二辅助存储单元的第二数据序列的第二读取请求的控制单元,所述控制单元分别响应于所述第一读取请求及第二读取请求来检索来自第一辅助存储单元的第一数据序列及来自第二辅助存储单元的第二数据序列,并将所述第一数据序列及第二数据序列二者存储在所述缓冲器中。
本发明的另一实施例涉及一***,其包括:存储器;多个辅助存储单元;处理单元,其发出指定来自第一辅助存储单元的第一数据序列的第一读取请求及指定来自第二辅助存储单元的第二数据序列的第二读取请求,其中该第一辅助存储单元及第二辅助存储单元包含于所述多个辅助存储单元中;存储控制器,其处理所述第一读取请求及第二读取请求,所述存储控制器包括缓冲器及用以接收所述第一读取请求及第二读取请求的控制单元,所述控制单元分别响应于第一读取请求及第二读取请求来检索来自第一辅助存储单元的第一数据序列及来自第二存储单元的第二数据序列,并将所述第一数据序列及第二数据序列二者存储在缓冲器中。
附图说明
本文将参照下列附图来描述实例性实施例,所述附图简要地描述如下。
图1是图解说明其中可实施本发明的数个特征的实例性***的图示。
图2是图解说明实施例中的存储控制器细节的框图。
图3A及3B是显示其中在一个实施例中由请求数据的处理器指定位置描述符的方式的图示。
图4是图解说明其中在本发明实施例中可减小由存储控制器使用的缓冲器的大小的方式的流程图。
图5A是图解说明实施例中的存储控制器中的缓冲器细节的图示。
图5B是图解说明其中在实施例中指定存储控制器中缓冲器中的数据的控制信息的方式的图示。
图6是用于图解说明在一个实施例中在数据从辅助存储器转移到目标存储器期间的事件顺序的序列图。
在图示中,相同参考编号一般指示相同的、功能类似、及/或结构类似的元件。元件首先出现的图示由对应参考数字中的最左数位指示。
具体实施方式
1.总述
根据本发明一方面提供的存储控制器使用单个缓冲器来存储从多个辅助存储单元检索的数据。在实施例中,提供于存储控制器中的控制单元设计有将从任一辅助存储单元检索的数据元素存储在缓冲器中的一组(一个或一个以上)存储器位置中的每一者内的灵活性。缓冲器空间可最佳使用,且因此可降低缓冲器大小需求。
本发明的一方面提供用于通过在可能需求对应信息之前预检索位置描述符(其指示目标存储器的位置,其中最后将检索的数据元素存储于目标存储器中)来进行进一步最佳使用。在实施例中,存储控制器向非易失性存储器发出命令以提供在读取请求中请求的数据元素,并检索仅一子组位置描述符。所述子组中的元件数量经选择以在对应数据元素可用于存储之后立即确保位置描述符的可用性。检索的位置描述符还可以存储在缓冲器中。
由于仅一子组位置描述符的检索及存储,可降低缓冲器大小需求。这种需求当技术(例如,NCQ)准许辅助存储单元在发送关于较早请求的数据元素之前发送关于较晚请求的数据元素时可能是重要的,且需要存储控制器检索所有未决请求的位置描述符。
由于提前检索位置描述符,则将数据缓存在存储控制器中的持续时间可减少,从而除了以较低延时完成数据转移之外进一步降低缓冲器大小需求,而不被存储描述符的即时不可用性妨碍。位置描述符的这种及时可用性在使用单个缓冲器存储从不同的辅助存储单元检索的数据时可能是重要的,因为共享缓冲器可能经设计以具有较小大小,且释放位置以用于存储关于其它请求的数据可能是必要的。
下文参照实例来描述本发明的数个方面以供图解说明。应了解,本文列举各种具体细节、关系及方法以提供对本发明的完全理解。然而,所属技术领域的技术人员将易于了解,本发明可在不具有所述一个或一个以上具体细节的前提下来实施,或使用其它方法等来实施。在其它示例中,不详细展示熟知结构或操作以避免混淆本发明的特征。此外,所述特征/方面可按各种组合来实行,尽管本文为简明起见仅描述某些组合。
2.实例性***
图1是图解说明其中可实施本发明的数个特征的实例性***的图示。图中显示所述图示含有中央处理单元(CPU 110)、存储控制器120、主存储器130、及辅助存储单元140A-140N。必须了解,典型的环境可含有各种其它组件(在类型及数量两方面),其并未显示为与所述特征的理解相关。类似地,某些其它***可含有较少组件。图1的每一组件均详细描述如下。
主存储器130可实施为随机存取存储器(RAM,例如动态RAM-DRAM),并存储各种指令及数据。根据本发明的某些方面,由CPU 110执行的某些指令(例如,代表用户应用程序)使得从辅助存储单元检索数据。代表操作***的某些其它指令可分配主存储器130中的指定位置以存储检索的数据。某些其它指令的执行使得提供下文描述的其它特征。类似地,主存储器130可存储位置描述符(描述于下文的部分中)以及存储检索的数据元素,如下文的部分中描述。
辅助存储单元140A-140N中的每一者均含有非易失性存储媒体,且可实施为(例如)硬盘、CD-ROM等。辅助存储单元140A-140N一般在其中含有控制器单元以协调包含数据的各选项(例如,读取、写入、数据转移到存储控制器120),且可以与所属技术中熟知的对应协议/标准(例如,SATA,串行先进技术连接)一起实施。
在串行技术的情形中,可在路径124A上发送对字节序列的请求,且可针对所述请求依序接收所请求字节(数据元素)。在一个实施例中,对于每一辅助存储装置仅一个请求可以是待决的。然而,如果存在针对每一辅助存储装置而待决的多个请求的支持(例如,使用NCQ、本地命令排队),则关于每一请求的数据可继续以相同次序接收,如数据(以逻辑方式)存储在辅助存储装置中的次序。
CPU 110可以代表一个或一个以上处理器单元,所述处理器单元执行软件指令(例如,从主存储器130检索)。某些指令可发出请求以从辅助存储单元检索数据。在实施例中,CPU 110仅发出请求以转移数据元素序列,且存储控制器120产生对所请求数据的转移完成的信号中断。应了解,数个请求可在短的持续时间内发出,以使得许多请求由存储控制器120处理。正被处理的请求可称为待决请求。
存储控制器120从CPU 110(经由路径112)接收请求以读取来自辅助存储单元140A-140N的数据元素序列,并向辅助存储单元140A-140N发出对应命令以提供所请求数据元素。一旦从辅助存储单元检索数据,则存储控制器120将所述数据转移到由从CPU接收的请求指定的相应目标存储器。
在从辅助存储单元接收数据与其后转移到存储器130之间,存储控制器120需要暂时存储所述数据。
在一个现有实施例中,存储控制器120针对在每一物理接口(链路)124A-124N上接收的数据分别含有一个缓冲器。这种方法导致更高聚合度的芯片上存储器(在所有缓冲器中),其可能由于诸如增加成本及晶片区域需求等原因而不合需要。
根据本发明一方面提供的存储控制器克服某些这种缺点,如下文进一步详细描述。
3.存储控制器
图2是图解说明在本发明实施例中存储控制器的细节的框图。存储控制器120显示为含有缓冲器210、控制器单元220、FIFO 240A-240N及总线主控250。存储控制器120可以含有图示中未显示的与以下说明不相关的各种其它组件/块。假设接收指示将从辅助存储单元140A检索数据元素且将检索的数据元素存储在主存储器130中的读取请求,来提供所述说明。然而,可指定不同的存储单元及目标存储器而不背离本发明各方面的范围及精神。图2的每一组件均详细描述如下。
FIFO 240A-240N的每一者均提供用于在控制单元220将数据(经由路径224A-224N从对应的FIFO)移动到缓冲器210之前经由路径124A-124N从对应的辅助存储单元140A-140N接收的数据的暂时存储。另外,每一FIFO可存储从辅助存储单元接收的任何状态/控制信息,并向控制单元220提供相同信息。在以SATA协议为背景提供的实施例中,如相关技术领域中熟知,每一FIFO均用于流控制目的以满足协议规范。例如,SATA要求存储控制器在路径124A上起动接收流控制之后能够接收至少21个D字。此确保任一端口上的数据决不会由于获得共享缓冲器210时的可能仲裁延时而被丢弃。
控制单元220执行各种操作以在路径112与124A/124N之间协调数据转移。确切地说,控制单元220可在路径112上接收请求以检索存储在连接到任一路径124A-124N的存储单元上的字节序列。所述字节序列可根据任一预指定惯例(例如,根据所属技术领域的技术人员熟知的高级主机控制器接口(AHCI)标准)来指定,且一般由COU 110执行的装置驱动器软件提供。所述请求还指定目标存储器及所述数据将要存储在所述目标存储器中的位置,例如如下文各部分所述。
控制单元220在路径124A-124N上向存储单元发出对应命令(例如,根据SATA标准)以将所请求数据检索到对应FIFO。然后,控制单元230将每一FIFO中的数据转移到缓冲器210。控制单元220可存储控制信息以及所述数据来协助将数据存储在目标存储器/位置中,如下文借助各实例在各部分中描述。
缓冲器210代表在将从路径124A-124N接收的数据存储在主存储器120之前将其暂时存储的随机存取存储器。在实施例中,实施为SRAM的单个存储器单元(具有存储器单元及存取电路的矩阵)用于存储在所有路径124A-124N上接收的数据。所述SRAM与存储控制器的其它组件一起实施为单个集成电路,且缓冲器210因此在这种情形中被称为“芯片上”。然而,替代实施例可使用支持单个缓冲器的多个存储器单元。
根据本发明的一方面,存储器空间经共享以使得所述存储器位置的至少某些可用于存储在任一路径124A-124N上检索的数据。缓冲器空间可由于这种共享而被有效利用。由于缓冲器空间的有效使用,这种共享可被认为是可能的,同时避免性能瓶颈和数据丢弃(溢流)。
总线主控250将缓冲器210中的数据转移到主存储器130。在实施例中,总线主控250对存取总线112进行仲裁,且然后使用DMA技术将缓冲器210的数据存储在存储器130中。当存储完最后一数据元素后,总线主控250可以首先向CPU 110发送中断(指示数据转移已完成)并放开对总线112的控制。
在实施例中,从辅助存储单元检索的数据存储在目标存储器/位置中,如与从CPU 110接收的命令相关联的位置描述符所指定,并相应地参照位置描述符来继续所述描述。
4.位置描述符
图3A及3B分别代表控制单元220中的主存储器及寄存器的一部分,且用于结合图1及2来图解说明在实施例中由CPU 210将位置描述符上的信息提供给控制单元220的方式。如上文提及,每一位置描述符均指示一目标存储器及其中的位置,其中将数据元素的对应块写入所述位置。
在实施例中,CPU 110将命令写入控制单元220中的寄存器310中。在AHCI标准中,位置描述符称为物理区域描述符(PRD)且因此存储器130用PRD表350来显示。在这种情况下,目标存储器可能多于一个存储器单元,位置描述符也可以指定存储器单元中的指定一者(根据指定惯例)。
PRD 350A-350N可位于PRD表350内的邻近位置处。或者,PRD表本身可实施为链接表,其中每一PRD(除了最后一个)均含有链接表中的下一PRD的地址。
在实施例中,每一PRD(350A-350N)经设计以包含存储器单元130中的存储器块的开始地址,以及所述块的大小(存储器位置数量),其中所述块是存储器中存储待读取的一对应子组字节序列的位置。在装置驱动器将读取请求发送到存储控制器120之前,所述块中的每一者可由执行于图1所示***中的操作***分配。
另外,CPU 110可设定一包含于控制单元220中的旗标(未显示),指示已做出请求。作为响应,控制单元220读取字段310的内容,并在主存储器130中检索对应的命令报头(字段320)。在支持NCQ技术的实施例中,可提供对应于32个可能的未决命令中的每一者的多达32个命令报头。命令报头320又含有命令表330的地址(在此实例中是PRD表350)。
因此,所有PRD一起指定目标存储器及存储器位置,以存储设法从辅助存储单元检索的数据元素。应了解,对于最小化缓冲于存储控制器中的数据元素的持续时间并因此降低缓冲器空间需求,位置描述符的及时可用性可能是重要的。
在一个实施例中,控制单元可以检索所有待决读取请求的所有位置描述符。然而,这种方法可能需要足量的缓冲器空间。所述缓冲器空间需求是在上文提及的诸如NCQ等技术的情况下混合而成的。
本发明的一方面确保位置描述符的及时可用性,同时减小所需求的缓冲器大小,如下文进一步详细描述。
5.检索位置描述符
图4是图解说明其中根据本发明一方面来检索及使用位置描述符的方式的流程图。仅出于图解说明的目的,参照图1且关于存储控制器120来描述所述流程图。然而,各种特征可在其它环境中(例如,具有或不具有上文参照图3所述的共享缓冲器)且以其它组件来实施。
此外,以仅用于图解说明的指定序列来描述所述步骤。在其它环境中、使用其它组件及不同步骤序列的替代实施例也可以在不背离本发明若干方面的范围及精神的前提下来实施,如相关技术领域的技术人员将通过阅读本文提供的揭示内容而显而易见。所述流程图开始于步骤401处,其中控制转到步骤410。
在步骤410中,存储控制器120接收请求以将所需的数据元素序列从存储装置转移到主存储器,其中所述请求指定位置描述符位于何处。如上文提及,位置描述符识别将所述数据存储于何处(指定存储器单元及其中的位置)。为借助实例进行说明,存储控制器120可接收请求以将存储于辅助存储单元140A中的文件转移到主存储器130。
任一预指定的惯例均可用于所述请求的格式(包含识别指定的辅助存储单元、其上的数据元素序列的位置/识别符)以及用于指定位置描述符的位置。通过阅读本文提供的揭示内容,用于这种惯例的若干方法将对相关技术领域的技术人员显而易见。然而,在一个实施例中,根据上文提及的AHCI标准来指定设法检索的数据元素,且如上文所述参照图3A及3B来指定位置描述符。然后,控制转到步骤420。
在步骤420中,存储控制器120向存储装置发出命令以提供(也就是发送回)数据元素序列。在上文提及的实例中,存储控制器120向辅助存储单元140A发出命令以在指定位置处提供数据,例如根据相关领域中众所周知的SATA协议。所述命令可与对应协议/标准一起发出。然后,控制转到步骤440。
在步骤440中,存储控制器120在完成数据元素接收之前检索一子组描述符,其中所述数据元素将使用所述子组中各描述符的第一者来存储。在上文提及的串行技术的情况下,假设花费大量时间检索对应于位置描述符的数据元素,则可能需要仅单个位置描述符。可检索更多位置描述符,但检索所有位置描述符(针对所述请求)可能出于上文提及的愿意而不合需要。
检索描述符子组的行为可在步骤420的发出命令之前。然而,为降低缓冲器需求,检索位置描述符的行为可开始于步骤420的发出命令之后,但在完成接收对应于所述子组中的第一描述符的数据之前。所述指定行为相依于从中检索描述符的单元。
例如,假设指定位置描述符指示将字节编号1024-2047存储于主存储器130的存储器位置4048到5071中,则存储控制器120可确保位置描述符至少在从辅助存储单元接收字节5071(最后一字节)之前对控制单元220可用。额外的位置描述符可减少出于从主存储器130检索位置描述符的目的而需要存取总线112的次数。然后,控制转到步骤445。
在步骤445中,存储控制器120将检索的描述符存储在缓冲器(例如,210)中。由于在步骤440中仅检索一子组的位置描述符,则可降低缓冲器大小需求。然后,控制转到步骤450。
在步骤450中,存储控制器120将所接收数据存储在由描述符中的第一者指示的存储器位置处。然后,控制转到步骤460。
在步骤460中,存储控制器120取得所述子组之后的下一描述符并将所述下一描述符添加到所述子组中。为图解说明,假设在步骤440中检索的所述子组描述含有两个描述符,则存储控制器120在接收到对应于第一描述符的数据(并在步骤450中接续存储在主存储器中的对应位置处)时检索第三描述符,且因此具有存储对应于第二及第三描述符的数据的位置信息。然后,控制转到步骤480。
在步骤480中,如果存储控制器120确定正接收更多来自所述文件的数据,则控制转到步骤450,或者控制转到步骤499,其中所述流程图结束。
由于检索仅一子组位置描述符,则可降低缓冲器大小需求。另外,由于所需求的位置描述的现成可用性,需要对数据(从辅助存储单元接收)进行缓冲的次数也可被减少,从而降低缓冲器大小需求。
缓冲器210可使用各种方法来实施,同时支持上文描述的所需特征。所述说明是参照一个实施例中的缓冲器210的细节来提供的。
6.缓冲器
图5A是图解说明一个实施例中的缓冲器210的细节的框图。缓冲器210显示为含有数据缓冲器510和控制缓冲器520,其还参照图5B进一步详细描述如下。图5B图解说明在一个实施例中存储于控制缓冲器520中的数据的特性。
控制单元220将对应于每一位置描述符的数据块(由单个读取请求设法从CPU110检索的数据元素序列的子组)存储于数据缓冲器510中,并将所述块的状态信息存储于控制缓冲器520中。图5B图解说明在本发明一实施例中含有对应数据块的状态信息的各字段。
在典型情景中,数个文件请求可能未完成(尚未完成或待决),且控制单元220可将从辅助存储单元140A-140N中的每一者接收的文件部分存储在数据缓冲器510中。由于使用单个缓冲器210来存储对应于不同链接的数据(从不同的辅助存储单元接收的数据),且在主存储器中具有不同的目标地址,则每一数据块可能需要存储有对应的状态信息,如下文借助实例所述。
状态条目590显示为含有字段550、560、570和580。在实例中,假设状态条目590对应于从辅助存储单元140A接收的数据,且将被写入到主存储器位置360,也就是对应于PRD 350A的数据,显示于图3A中。
字段550指定接收所述数据的端口(对应于辅助存储单元的链路)。在所述实例中,所述条目将对应指定数据是从辅助存储单元140A接收的编号。
字段560指定状态条目590对应的数据块(在数据缓冲器510中)的长度/大小。
字段570和580一起指定主存储器130中将写入数据缓冲器510中的数据块开始的地址。主存储器130中的地址由PRD的内容指定,所述PRD的地址又由字段570(上PRD地址(例如,较高阶32位))及字段580(下PRD地址(例如,较低阶32位))指定。两个字段570和580中显示的上PRD地址及下PRD地址均反映主存储器中的地址空间由64位地址指定,且所述字段中的每一者在一个实施例中仅含有32个位。在所图解说明的实例中,字段570和580的值是从PRD 350A检索的。
因此,位置描述符的相关信息可与缓冲器210中的数据的每一块相关联地存储,且总线主控250可使用所述信息来确定存储每一数据元素的目标位置/存储器。
所述说明继续图解说明实例性序列图,其图解说明包含在实施例中的数据元素序列的读取操作中的操作序列。
7.序列图
图6是用于图解说明在本发明实施例中的文件读取操作期间包含的CPU 110、存储控制器120和辅助存储单元140A中的每一者中的操作序列的实例性序列图。
事件610代表CPU 110对存储控制器120的请求,以将数据元素序列(对应于文件)从辅助存储单元140A转移到主存储器130。事件615代表其中存储控制器120读取由CPU 110发出的请求610的操作。
事件620代表存储控制器120向辅助存储单元140A发出的提供文件中的数据的命令。在同一事件中,存储控制器120可起始所述子组的位置描述符的检索(通过发出到主存储器130的适合存取命令),如上文描述。
在所述实例中,假设存储控制器120在事件620期间检索两个位置描述符,即使单个位置描述符可能足以确保在多数示例中对应信息的及时可用性(假设从辅助存储单元检索数据块会花费比从主存储器检索位置描述符更多的时间)。然而,在小块(特别是最后一块)的情形中,检索所述额外位置描述符会确保必要信息的及时可用性而无需等待位置描述符。
在时间示例t1处,辅助存储单元140A开始将文件中的数据提供给存储控制器120。所述数据可存储在缓冲器210中(图2)。到t2时,由第一位置描述符指定的数据被认为在缓冲器210中可用。文件描述符被认为已在t2之前被检索/接收,并也存储在缓冲器210中(由控制单元220)。所述组文件描述符的所有剩余者(两个,在上文事件620中提及)也被认为已接收。
因此,事件640代表将数据690A从数据缓冲器510转移到主存储器130。因此,总线主控250可起始将对应部分DMA转移到主存储器130,只要所述部分(或在DMA转移中允许转移的至少最小部分)可用。在实施例中,DMA转移最少转移64个字节。因此,当文件的对应部分的至少64个字节已被接收并存储在缓冲器210中时,总线主控250可起始对主存储器130的转移。
数据的接收继续进行,如对应于第二位置描述符的数据690B的接收的开始所代表。
在时间示例t3处,存储控制器120可在在时间示例t4处完全接收对应于第二描述符的数据之前检索下一描述符(所述实例中的第三位置描述符)。显示为立即开始于t4之后的事件660代表将数据690B转移到主存储器130。接收对应于第三描述符的数据690C(在时间示例t3处检索)开始于时间示例t4处。
检索后续位置描述符、将数据部分写入主存储器130、及从辅助存储单元140A接收数据以类似方式继续,直到在读取请求中所请求的所有数据元素均转移到主存储器130。
尽管上述说明是仅用于图解说明而参照单个读取请求来提供,但应了解,可与上文说明相一致地并行处理多个读取请求。
8.总结
尽管上文已描述本发明的各实施例,但应了解,其应仅以举例方式提供而非限定。因此,本发明的宽度及范围不应由任一上述实例性实施例限制,而应仅由下列权利要求及其等价物界定。

Claims (10)

1、一种控制对多个辅助存储单元的存取请求的存储控制器,所述存储控制器包括:
缓冲器;及
控制单元,其用以接收第一读取请求和第二读取请求,所述第一读取请求指定来自第一辅助存储单元的第一数据序列,及所述第二读取请求指定来自第二辅助存储单元的第二数据序列,
所述控制单元分别响应于所述第一读取请求及所述第二读取请求而检索来自所述第一辅助存储单元的所述第一数据序列及来自所述第二辅助存储单元的所述第二数据序列,并将所述第一数据序列及所述第二数据序列二者均存储于所述缓冲器中。
2、如权利要求1所述的存储控制器,其进一步包括主控单元,所述主控单元将所述第一数据序列及所述第二数据序列转移到主存储器。
3、如权利要求2所述的存储控制器,其中所述缓冲器包括控制缓冲器及数据缓冲器,其中所述控制单元将所述第一数据序列及所述第二数据序列存储在所述数据缓冲器中,所述控制单元进一步存储指示其中将要存储所述第一数据序列及所述第二数据序列的存储器的位置的数据。
4、如权利要求3所述的存储控制器,其中所述第一请求进一步指定多个位置描述符,其中第一位置描述符指示所述存储器及其中将一对应子组的所述第一数据序列存储在所述存储器中的对应位置,其中所述控制单元在完成检索所述对应子组之前预取所述第一位置描述符。
5、如权利要求4所述的存储控制器,其中所述控制单元在从所述第一辅助存储单元接收所述对应子组时预取第二位置描述符,其中所述第二位置识别符识别第二子组的数据,根据所述序列次序所述第二子组的数据在所述对应子组之后。
6、一种***,其包括:
存储器;
多个辅助存储单元;
处理单元,其发出指定来自第一辅助存储单元的第一数据序列的第一读取请求及指定来自第二辅助存储单元的第二数据序列的第二读取请求,其中所述第一辅助存储单元及所述第二辅助存储单元包含于所述多个辅助存储单元中;
存储控制器,其处理所述第一读取请求及所述第二读取请求,所述存储控制器包括:
缓冲器;及
控制单元,其用以接收所述第一读取请求及所述第二读取请求,所述控制单元分别响应于所述第一读取请求及所述第二读取请求而检索来自所述第一辅助存储单元的所述第一数据序列及来自所述第二辅助存储单元的所述第二数据序列,并将所述第一数据序列及所述第二数据序列二者存储在所述缓冲器中。
7、如权利要求6所述的***,其进一步包括主控单元,所述主控单元将所述第一数据序列及所述第二数据序列转移到主存储器。
8、如权利要求7所述的***,其中所述缓冲器包括控制缓冲器及数据缓冲器,其中所述控制单元将所述第一数据序列及所述第二数据序列存储在所述数据缓冲器中,所述控制单元进一步存储指示其中将要存储所述第一数据序列及所述第二数据序列的存储器的位置的数据。
9、如权利要求8所述的***,其中所述第一请求进一步指定多个位置描述符,其中第一位置描述符指示所述存储器及其中将对应子组的所述第一数据序列存储在所述存储器中的对应位置,其中所述控制单元在完成检索所述对应子组之前预取所述第一位置描述符。
10、如权利要求9所述的***,其中所述控制单元在从所述第一辅助存储单元接收所述对应子组时预取第二位置描述符,其中所述第二位置识别符识别第二子组的数据,根据所述序列次序所述第二子组的数据在所述对应子组之后。
CNA2008101312096A 2007-07-30 2008-07-30 通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间 Pending CN101359314A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/829,983 US8683126B2 (en) 2007-07-30 2007-07-30 Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US11/829,983 2007-07-30

Publications (1)

Publication Number Publication Date
CN101359314A true CN101359314A (zh) 2009-02-04

Family

ID=40331767

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101312096A Pending CN101359314A (zh) 2007-07-30 2008-07-30 通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间

Country Status (5)

Country Link
US (1) US8683126B2 (zh)
JP (1) JP4748610B2 (zh)
KR (2) KR101051815B1 (zh)
CN (1) CN101359314A (zh)
TW (1) TWI365375B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102460405A (zh) * 2009-06-03 2012-05-16 美光科技公司 用于通过存储器装置来控制主机存储器存取的方法及***
CN104036815A (zh) * 2013-03-04 2014-09-10 三星电子株式会社 用于降低访问延时的非易失性存储装置和相关方法
CN104272629A (zh) * 2012-05-15 2015-01-07 瑞典爱立信有限公司 用于消除电信网络中pdcch检测误差的***和方法
CN107678681A (zh) * 2016-08-02 2018-02-09 佳能株式会社 信息处理***、信息处理***中的方法以及存储介质
CN109213439A (zh) * 2017-06-29 2019-01-15 是德科技股份有限公司 用于减少写入延时的***和方法
CN109614148A (zh) * 2018-12-11 2019-04-12 中科驭数(北京)科技有限公司 数据逻辑运算方法、监测方法及装置

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011119151A1 (en) * 2010-03-24 2011-09-29 Hewlett-Packard Development Company, L.P. Communication between a computer and a data storage device
KR101993187B1 (ko) * 2012-11-26 2019-06-27 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
KR20140067739A (ko) * 2012-11-27 2014-06-05 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
KR102330389B1 (ko) 2014-07-24 2021-11-24 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
US9740646B2 (en) 2014-12-20 2017-08-22 Intel Corporation Early identification in transactional buffered memory
US20170147517A1 (en) * 2015-11-23 2017-05-25 Mediatek Inc. Direct memory access system using available descriptor mechanism and/or pre-fetch mechanism and associated direct memory access method
JP6407946B2 (ja) * 2016-12-12 2018-10-17 ファナック株式会社 機器情報及び位置情報の管理装置及び管理システム
JP2020154493A (ja) 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステム
CN112347026B (zh) * 2019-08-09 2023-03-31 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品
KR102653852B1 (ko) * 2019-05-07 2024-04-02 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
US11199992B2 (en) * 2019-07-15 2021-12-14 Western Digital Technologies, Inc. Automatic host buffer pointer pattern detection
KR20220005804A (ko) 2020-07-07 2022-01-14 김순식 이발기의 커터날 에칭부분 보강구조
US11500581B2 (en) 2020-09-25 2022-11-15 Western Digital Technologies, Inc. Efficient TLP fragmentations in extended LBA environment
US11537524B2 (en) 2020-11-20 2022-12-27 Western Digital Technologies, Inc. Effective PCIe utilization by PCIe TLP coalescing
US11853218B2 (en) 2020-11-20 2023-12-26 Western Digital Technologies, Inc. Semi and cached TLP coalescing

Family Cites Families (225)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3091657A (en) * 1962-11-14 1963-05-28 Flexiflor Electrical Systems I Wiring ducts
US3614740A (en) * 1970-03-23 1971-10-19 Digital Equipment Corp Data processing system with circuits for transferring between operating routines, interruption routines and subroutines
US3987291A (en) * 1975-05-01 1976-10-19 International Business Machines Corporation Parallel digital arithmetic device having a variable number of independent arithmetic zones of variable width and location
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
US4541046A (en) * 1981-03-25 1985-09-10 Hitachi, Ltd. Data processing system including scalar data processor and vector data processor
US4566005A (en) * 1983-03-07 1986-01-21 International Business Machines Corporation Data management for plasma display
US4748585A (en) * 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
US4965751A (en) * 1987-08-18 1990-10-23 Hewlett-Packard Company Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size
US4985848A (en) * 1987-09-14 1991-01-15 Visual Information Technologies, Inc. High speed image processing system using separate data processor and address generator
US5047975A (en) * 1987-11-16 1991-09-10 Intel Corporation Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode
US4965716A (en) * 1988-03-11 1990-10-23 International Business Machines Corporation Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor
US4897717A (en) * 1988-03-30 1990-01-30 Starsignal, Inc. Computer-based video compression system
US4958303A (en) * 1988-05-12 1990-09-18 Digital Equipment Corporation Apparatus for exchanging pixel data among pixel processors
US5210834A (en) * 1988-06-01 1993-05-11 Digital Equipment Corporation High speed transfer of instructions from a master to a slave processor
US5040109A (en) * 1988-07-20 1991-08-13 Digital Equipment Corporation Efficient protocol for communicating between asychronous devices
US4991169A (en) * 1988-08-02 1991-02-05 International Business Machines Corporation Real-time digital signal processing relative to multiple digital communication channels
US5175828A (en) * 1989-02-13 1992-12-29 Hewlett-Packard Company Method and apparatus for dynamically linking subprogram to main program using tabled procedure name comparison
JPH0795766B2 (ja) * 1989-06-30 1995-10-11 株式会社日立製作所 デジタル・データ通信装置及びそれに使用するデータ通信アダプタ
US5179530A (en) * 1989-11-03 1993-01-12 Zoran Corporation Architecture for integrated concurrent vector signal processor
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
JP3218567B2 (ja) * 1990-09-28 2001-10-15 クロームアロイ・ガス・タービン・コーポレイション 高強力ニッケル基超合金類の溶接
JPH0799508B2 (ja) * 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US5263136A (en) * 1991-04-30 1993-11-16 Optigraphics Corporation System for managing tiled images using multiple resolutions
US5522080A (en) * 1991-10-24 1996-05-28 Intel Corporation Centralized control SIMD processor having different priority levels set for each data transfer request type and successively repeating the servicing of data transfer request in a predetermined order
US5418973A (en) * 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
JPH0612190A (ja) * 1992-06-25 1994-01-21 Hitachi Ltd 磁気ディスク制御方式
US6735685B1 (en) * 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5430841A (en) * 1992-10-29 1995-07-04 International Business Machines Corporation Context management in a graphics system
US5388206A (en) * 1992-11-13 1995-02-07 The University Of North Carolina Architecture and apparatus for image generation
US5375223A (en) * 1993-01-07 1994-12-20 International Business Machines Corporation Single register arbiter circuit
US5682554A (en) * 1993-01-15 1997-10-28 Silicon Graphics, Inc. Apparatus and method for handling data transfer between a general purpose computer and a cooperating processor
EP0607988B1 (en) * 1993-01-22 1999-10-13 Matsushita Electric Industrial Co., Ltd. Program controlled processor
US5327369A (en) * 1993-03-31 1994-07-05 Intel Corporation Digital adder and method for adding 64-bit, 16-bit and 8-bit words
US5388245A (en) * 1993-06-01 1995-02-07 Intel Corporation Memory arbitration method and apparatus for multiple-cycle memory coprocessors employing a data cache unit and stack RAM
JP3248992B2 (ja) * 1993-07-13 2002-01-21 富士通株式会社 マルチプロセッサ
US6073158A (en) * 1993-07-29 2000-06-06 Cirrus Logic, Inc. System and method for processing multiple received signal sources
US5574944A (en) * 1993-12-15 1996-11-12 Convex Computer Corporation System for accessing distributed memory by breaking each accepted access request into series of instructions by using sets of parameters defined as logical channel context
US5802574A (en) * 1993-12-28 1998-09-01 Intel Corporation Method and apparatus for quickly modifying cache state
US5761476A (en) * 1993-12-30 1998-06-02 Intel Corporation Non-clocked early read for back-to-back scheduling of instructions
US5809524A (en) * 1994-01-04 1998-09-15 Intel Corporation Method and apparatus for cache memory replacement line identification
US5560030A (en) * 1994-03-08 1996-09-24 Texas Instruments Incorporated Transfer processor with transparency
US5706478A (en) * 1994-05-23 1998-01-06 Cirrus Logic, Inc. Display list processor for operating in processor and coprocessor modes
US5784590A (en) * 1994-06-29 1998-07-21 Exponential Technology, Inc. Slave cache having sub-line valid bits updated by a master cache
JPH0877002A (ja) * 1994-08-31 1996-03-22 Sony Corp 並列プロセッサ装置
US6009454A (en) * 1994-09-30 1999-12-28 Allen-Bradley Company, Llc Multi-tasking operation system for industrial controller
GB2293668B (en) * 1994-09-30 1999-09-29 Advanced Risc Mach Ltd Accessing data memories
US5920352A (en) * 1994-10-28 1999-07-06 Matsushita Electric Industrial Co., Ltd. Image memory storage system and method for a block oriented image processing system
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
JPH08153032A (ja) 1994-11-29 1996-06-11 Matsushita Electric Ind Co Ltd ネットワーク経由データ先読みバッファ方法
US5649173A (en) * 1995-03-06 1997-07-15 Seiko Epson Corporation Hardware architecture for image generation and manipulation
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
DE69614291T2 (de) * 1995-03-17 2001-12-06 Lsi Logic Corp (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
US5764243A (en) * 1995-03-24 1998-06-09 3Dlabs Inc. Ltd. Rendering architecture with selectable processing of multi-pixel spans
EP0735487B1 (en) * 1995-03-31 2001-10-31 Sun Microsystems, Inc. A fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system
US5751295A (en) * 1995-04-27 1998-05-12 Control Systems, Inc. Graphics accelerator chip and method
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US5754191A (en) * 1995-06-23 1998-05-19 Cirrus Logic, Inc. Method and apparatus for optimizing pixel data write operations to a tile based frame buffer
US5987561A (en) * 1995-08-31 1999-11-16 Advanced Micro Devices, Inc. Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle
US5805905A (en) * 1995-09-06 1998-09-08 Opti Inc. Method and apparatus for arbitrating requests at two or more levels of priority using a single request line
US6016474A (en) * 1995-09-11 2000-01-18 Compaq Computer Corporation Tool and method for diagnosing and correcting errors in a computer program
US5781799A (en) * 1995-09-29 1998-07-14 Cirrus Logic, Inc. DMA controller arrangement having plurality of DMA controllers and buffer pool having plurality of buffers accessible to each of the channels of the controllers
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US6331856B1 (en) 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US20020116595A1 (en) 1996-01-11 2002-08-22 Morton Steven G. Digital signal processor integrated circuit
US6317819B1 (en) 1996-01-11 2001-11-13 Steven G. Morton Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
US5859980A (en) * 1996-02-08 1999-01-12 Advanced Micro Devices, Inc. Network interface having adaptive transmit start point for each packet to avoid transmit underflow
US6236674B1 (en) 1996-02-23 2001-05-22 Teletransactions, Inc. Transceiver control with sleep mode operation
US6049672A (en) * 1996-03-08 2000-04-11 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure
US5950012A (en) * 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5784640A (en) * 1996-03-18 1998-07-21 Advanced Micro Devices, Inc. CPU with DSP function preprocessor having look-up table for translating instruction sequences intended to perform DSP function into DSP macros
DE29606102U1 (de) 1996-04-02 1996-06-05 Hermann Kleinhuis GmbH & Co KG, 58507 Lüdenscheid Kabelkanal
US6092094A (en) * 1996-04-17 2000-07-18 Advanced Micro Devices, Inc. Execute unit configured to selectably interpret an operand as multiple operands or as a single operand
US6131152A (en) * 1996-05-15 2000-10-10 Philips Electronics North America Corporation Planar cache layout and instruction stream therefor
US5848254A (en) * 1996-07-01 1998-12-08 Sun Microsystems, Inc. Multiprocessing system using an access to a second memory space to initiate software controlled data prefetch into a first address space
JP3442225B2 (ja) * 1996-07-11 2003-09-02 株式会社日立製作所 演算処理装置
US6222552B1 (en) * 1996-07-26 2001-04-24 International Business Machines Corporation Systems and methods for caching depth information of three-dimensional images
KR100262453B1 (ko) 1996-08-19 2000-08-01 윤종용 비디오데이터처리방법및장치
US6192073B1 (en) * 1996-08-19 2001-02-20 Samsung Electronics Co., Ltd. Methods and apparatus for processing video data
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5835788A (en) * 1996-09-18 1998-11-10 Electronics For Imaging System for transferring input/output data independently through an input/output bus interface in response to programmable instructions stored in a program memory
US5812147A (en) * 1996-09-20 1998-09-22 Silicon Graphics, Inc. Instruction methods for performing data formatting while moving data between memory and a vector register file
US5949410A (en) * 1996-10-18 1999-09-07 Samsung Electronics Company, Ltd. Apparatus and method for synchronizing audio and video frames in an MPEG presentation system
US5925124A (en) * 1997-02-27 1999-07-20 International Business Machines Corporation Dynamic conversion between different instruction codes by recombination of instruction elements
US6141740A (en) * 1997-03-03 2000-10-31 Advanced Micro Devices, Inc. Apparatus and method for microcode patching for generating a next address
JPH10293656A (ja) * 1997-04-21 1998-11-04 Toshiba Corp ディスク記憶システム及び同システムに適用する2重化方法
US5940090A (en) * 1997-05-07 1999-08-17 Cirrus Logic, Inc. Method and apparatus for internally caching the minimum and maximum XY pixel address values in a graphics subsystem
US5940858A (en) * 1997-05-30 1999-08-17 National Semiconductor Corporation Cache circuit with programmable sizing and method of operation
JP2912299B2 (ja) * 1997-06-10 1999-06-28 四国日本電気ソフトウェア株式会社 ディスクアレイ制御装置
US6658447B2 (en) 1997-07-08 2003-12-02 Intel Corporation Priority based simultaneous multi-threading
KR100243100B1 (ko) * 1997-08-12 2000-02-01 정선종 다수의 주프로세서 및 보조 프로세서를 갖는 프로세서의구조 및 보조 프로세서 공유 방법
US6044419A (en) * 1997-09-30 2000-03-28 Intel Corporation Memory handling system that backfills dual-port buffer from overflow buffer when dual-port buffer is no longer full
US5999199A (en) * 1997-11-12 1999-12-07 Cirrus Logic, Inc. Non-sequential fetch and store of XY pixel data in a graphics processor
US6301600B1 (en) 1997-11-18 2001-10-09 Intrinsity, Inc. Method and apparatus for dynamic partitionable saturating adder/subtractor
US6247094B1 (en) * 1997-12-22 2001-06-12 Intel Corporation Cache memory architecture with on-chip tag array and off-chip data array
US6480927B1 (en) 1997-12-31 2002-11-12 Unisys Corporation High-performance modular memory system with crossbar connections
JPH11355717A (ja) * 1998-06-04 1999-12-24 Matsushita Electric Ind Co Ltd Avデータ出力装置及びavデータ入出力装置
US6314493B1 (en) 1998-02-03 2001-11-06 International Business Machines Corporation Branch history cache
US6192458B1 (en) * 1998-03-23 2001-02-20 International Business Machines Corporation High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US6631423B1 (en) 1998-03-31 2003-10-07 Hewlett-Packard Development Company, L.P. System and method for assessing performance optimizations in a graphics system
US6144392A (en) * 1998-04-30 2000-11-07 Ati Technologies, Inc. Method and apparatus for formatting a texture in a frame buffer
US6150610A (en) * 1998-05-26 2000-11-21 The Wiremold Company Tamper-resistant surface mounted raceway cover
US6252610B1 (en) * 1998-05-29 2001-06-26 Silicon Graphics, Inc. Method and apparatus for efficiently switching state in a graphics pipeline
US6208361B1 (en) * 1998-06-15 2001-03-27 Silicon Graphics, Inc. Method and system for efficient context switching in a computer graphics system
US6611272B1 (en) 1998-07-02 2003-08-26 Microsoft Corporation Method and apparatus for rasterizing in a hierarchical tile order
US6490654B2 (en) 1998-07-31 2002-12-03 Hewlett-Packard Company Method and apparatus for replacing cache lines in a cache memory
AU5686199A (en) 1998-08-20 2000-03-14 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6292886B1 (en) 1998-10-12 2001-09-18 Intel Corporation Scalar hardware for performing SIMD operations
US6636222B1 (en) 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
JP3983394B2 (ja) 1998-11-09 2007-09-26 株式会社ルネサステクノロジ 幾何学処理プロセッサ
US6798420B1 (en) 1998-11-09 2004-09-28 Broadcom Corporation Video and graphics system with a single-port RAM
US6700588B1 (en) 1998-11-09 2004-03-02 Broadcom Corporation Apparatus and method for blending graphics and video surfaces
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6601161B2 (en) 1998-12-30 2003-07-29 Intel Corporation Method and system for branch target prediction using path information
US6496902B1 (en) 1998-12-31 2002-12-17 Cray Inc. Vector and scalar data cache for a vector multiprocessor
US6437789B1 (en) 1999-02-19 2002-08-20 Evans & Sutherland Computer Corporation Multi-level cache controller
US6209078B1 (en) * 1999-03-25 2001-03-27 Lsi Logic Corporation Accelerated multimedia processor
US7031330B1 (en) 1999-04-15 2006-04-18 Marconi Intellectual Property (Ringfence), Inc. Very wide memory TDM switching system
US6351808B1 (en) 1999-05-11 2002-02-26 Sun Microsystems, Inc. Vertically and horizontally threaded processor with multidimensional storage for storing thread data
EP1059587B1 (en) * 1999-06-09 2007-04-18 Texas Instruments Incorporated Host access to shared memory with a high priority mode
JP3639464B2 (ja) 1999-07-05 2005-04-20 株式会社ルネサステクノロジ 情報処理システム
US6915385B1 (en) 1999-07-30 2005-07-05 International Business Machines Corporation Apparatus for unaligned cache reads and methods therefor
US6529201B1 (en) 1999-08-19 2003-03-04 International Business Machines Corporation Method and apparatus for storing and accessing texture maps
US6657635B1 (en) 1999-09-03 2003-12-02 Nvidia Corporation Binning flush in graphics data processing
US6825848B1 (en) 1999-09-17 2004-11-30 S3 Graphics Co., Ltd. Synchronized two-level graphics processing cache
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
US6631463B1 (en) 1999-11-08 2003-10-07 International Business Machines Corporation Method and apparatus for patching problematic instructions in a microprocessor using software interrupts
US6975324B1 (en) 1999-11-09 2005-12-13 Broadcom Corporation Video and graphics system with a video transport processor
US6597357B1 (en) 1999-12-20 2003-07-22 Microsoft Corporation Method and system for efficiently implementing two sided vertex lighting in hardware
US6499090B1 (en) 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
US6978457B1 (en) 2000-01-31 2005-12-20 Agilent Technologies, Inc. Method and system increasing performance substituting finite state machine control with hardware-implemented data structure manipulation
US6715035B1 (en) 2000-02-17 2004-03-30 International Business Machines Corporation Cache for processing data in a memory controller and a method of use thereof to reduce first transfer latency
JP3474173B2 (ja) 2000-02-25 2003-12-08 株式会社ソニー・コンピュータエンタテインメント 画像出力装置に応じた画像データを作成する情報処理装置およびそのための記録媒体
US6370617B1 (en) 2000-04-10 2002-04-09 Silicon Integrated Systems Corp. Non-stalling pipeline tag controller
US6624818B1 (en) 2000-04-21 2003-09-23 Ati International, Srl Method and apparatus for shared microcode in a multi-thread computation engine
US6742064B2 (en) * 2000-05-15 2004-05-25 Goodrich Corp. Programmable throttle circuit for each control device of a processing system
US6674841B1 (en) 2000-09-14 2004-01-06 International Business Machines Corporation Method and apparatus in a data processing system for an asynchronous context switching mechanism
US6560685B1 (en) 2000-09-27 2003-05-06 Sony Corporation System and method to improve speed and reduce memory allocation for set top box boot-up
US6629188B1 (en) * 2000-11-13 2003-09-30 Nvidia Corporation Circuit and method for prefetching data for a texture cache
US6788303B2 (en) 2001-02-27 2004-09-07 3Dlabs Inc., Ltd Vector instruction set
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US6940503B2 (en) 2001-05-10 2005-09-06 Ati International Srl Method and apparatus for processing non-planar video graphics primitives
US7191281B2 (en) 2001-06-13 2007-03-13 Intel Corporation Mobile computer system having a navigation mode to optimize system performance and power management for mobile applications
KR100395756B1 (ko) 2001-06-16 2003-08-21 삼성전자주식회사 캐쉬 메모리 및 이를 이용하는 마이크로 프로세서
JP3835207B2 (ja) 2001-06-27 2006-10-18 ソニー株式会社 試着画像提供システム及び試着画像提供方法、試着画像生成装置及び試着画像生成方法
US6885374B2 (en) 2001-06-29 2005-04-26 Intel Corporation Apparatus, method and system with a graphics-rendering engine having a time allocator
US6965982B2 (en) 2001-06-29 2005-11-15 International Business Machines Corporation Multithreaded processor efficiency by pre-fetching instructions for a scheduled thread
US6922716B2 (en) 2001-07-13 2005-07-26 Motorola, Inc. Method and apparatus for vector processing
US7564460B2 (en) 2001-07-16 2009-07-21 Microsoft Corporation Systems and methods for providing intermediate targets in a graphics system
US7016418B2 (en) 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof
JP2003153219A (ja) * 2001-11-19 2003-05-23 Matsushita Electric Ind Co Ltd データ伝送方法、受信装置、受信方法及び受信プログラム
US7080169B2 (en) * 2001-12-11 2006-07-18 Emulex Design & Manufacturing Corporation Receiving data from interleaved multiple concurrent transactions in a FIFO memory having programmable buffer zones
JP3840966B2 (ja) 2001-12-12 2006-11-01 ソニー株式会社 画像処理装置およびその方法
US7305540B1 (en) 2001-12-31 2007-12-04 Apple Inc. Method and apparatus for data processing
US20040073773A1 (en) 2002-02-06 2004-04-15 Victor Demjanenko Vector processor architecture and methods performed therein
US7159212B2 (en) 2002-03-08 2007-01-02 Electronic Arts Inc. Systems and methods for implementing shader-driven compilation of rendering assets
US6983408B2 (en) 2002-03-08 2006-01-03 Microsoft Corporation Managing error/status information generated during video processing
US6812929B2 (en) 2002-03-11 2004-11-02 Sun Microsystems, Inc. System and method for prefetching data from a frame buffer
AU2003213650A1 (en) * 2002-03-13 2003-09-29 Advanced Micro Devices, Inc. Usb host controller
US7015909B1 (en) 2002-03-19 2006-03-21 Aechelon Technology, Inc. Efficient use of user-defined shaders to implement graphics operations
US6732242B2 (en) 2002-03-28 2004-05-04 Intel Corporation External bus transaction scheduling system
US7146468B2 (en) 2002-04-24 2006-12-05 Ip-First, Llc. Cache memory and method for handling effects of external snoops colliding with in-flight operations internally to the cache
US6785772B2 (en) 2002-04-26 2004-08-31 Freescale Semiconductor, Inc. Data prefetching apparatus in a data processing system and method therefor
US6891543B2 (en) 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
US7043667B2 (en) * 2002-05-14 2006-05-09 Intel Corporation Debug information provided through tag space
US7035979B2 (en) 2002-05-22 2006-04-25 International Business Machines Corporation Method and apparatus for optimizing cache hit ratio in non L1 caches
US7027059B2 (en) 2002-05-30 2006-04-11 Intel Corporation Dynamically constructed rasterizers
US6925531B2 (en) * 2002-07-11 2005-08-02 Storage Technology Corporation Multi-element storage array
US6952214B2 (en) 2002-07-12 2005-10-04 Sun Microsystems, Inc. Method for context switching a graphics accelerator comprising multiple rendering pipelines
US6809732B2 (en) 2002-07-18 2004-10-26 Nvidia Corporation Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions
US6825843B2 (en) 2002-07-18 2004-11-30 Nvidia Corporation Method and apparatus for loop and branch instructions in a programmable graphics pipeline
KR100702746B1 (ko) 2002-08-20 2007-04-03 엘지전자 주식회사 컴퓨터 시스템에서의 무선 랜 모듈 전원 관리방법 및 그장치
US6944744B2 (en) 2002-08-27 2005-09-13 Advanced Micro Devices, Inc. Apparatus and method for independently schedulable functional units with issue lock mechanism in a processor
US6957317B2 (en) 2002-10-10 2005-10-18 Intel Corporation Apparatus and method for facilitating memory data access with generic read/write patterns
JP3986950B2 (ja) 2002-11-22 2007-10-03 シャープ株式会社 Cpuおよびこれを備えた情報処理装置、cpuの制御方法
US6981106B1 (en) 2002-11-26 2005-12-27 Unisys Corporation System and method for accelerating ownership within a directory-based memory system
JP2004220070A (ja) 2003-01-09 2004-08-05 Japan Science & Technology Agency コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体
US6839062B2 (en) 2003-02-24 2005-01-04 Microsoft Corporation Usage semantics
US6976126B2 (en) 2003-03-11 2005-12-13 Arm Limited Accessing data values in a cache
US20040205326A1 (en) 2003-03-12 2004-10-14 Sindagi Vijay K.G. Early predicate evaluation to reduce power in very long instruction word processors employing predicate execution
US20040193837A1 (en) 2003-03-31 2004-09-30 Patrick Devaney CPU datapaths and local memory that executes either vector or superscalar instructions
US7148888B2 (en) 2003-04-04 2006-12-12 Via Technologies, Inc. Head/data request in 3D graphics
US7032097B2 (en) 2003-04-24 2006-04-18 International Business Machines Corporation Zero cycle penalty in selecting instructions in prefetch buffer in the event of a miss in the instruction cache
US6993628B2 (en) 2003-04-28 2006-01-31 International Business Machines Corporation Cache allocation mechanism for saving elected unworthy member via substitute victimization and imputed worthiness of substitute victim member
US20040221117A1 (en) 2003-05-02 2004-11-04 Shelor Charles F. Logic and method for reading data from cache
US7151544B2 (en) 2003-05-16 2006-12-19 Sun Microsystems, Inc. Method for improving texture cache access by removing redundant requests
US6862027B2 (en) 2003-06-30 2005-03-01 Microsoft Corp. System and method for parallel execution of data generation tasks
US7260677B1 (en) 2003-07-16 2007-08-21 Unisys Corporation Programmable system and method for accessing a shared memory
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7369815B2 (en) 2003-09-19 2008-05-06 Qualcomm Incorporated Power collapse for a wireless terminal
GB2406404C (en) 2003-09-26 2011-11-02 Advanced Risc Mach Ltd Data processing apparatus and method for handling corrupted data values
US7202872B2 (en) 2003-10-29 2007-04-10 Via Technologies, Inc. Apparatus for compressing data in a bit stream or bit pattern
US20080074428A1 (en) 2003-11-19 2008-03-27 Reuven Bakalash Method of rendering pixel-composited images for a graphics-based application running on a computing system embodying a multi-mode parallel graphics rendering system
US6897871B1 (en) 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US7406698B2 (en) 2003-12-30 2008-07-29 Microsoft Corporation Driver framework component for synchronizing interactions between a multi-threaded environment and a driver operating in a less-threaded software environment
US6985151B1 (en) 2004-01-06 2006-01-10 Nvidia Corporation Shader pixel storage in a graphics memory
KR20050076274A (ko) * 2004-01-20 2005-07-26 삼성전자주식회사 디스크립터 dma콘트롤러를 채용한 더블 버퍼링 dma데이터전송장치
US7154500B2 (en) 2004-04-20 2006-12-26 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer
US20050239518A1 (en) 2004-04-21 2005-10-27 D Agostino Anthony Systems and methods that provide enhanced state machine power management
US7724263B2 (en) 2004-05-14 2010-05-25 Nvidia Corporation System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories
US7091982B2 (en) 2004-05-14 2006-08-15 Nvidia Corporation Low power programmable processor
US7185178B1 (en) 2004-06-30 2007-02-27 Sun Microsystems, Inc. Fetch speculation in a multithreaded processor
US7328359B2 (en) 2004-07-21 2008-02-05 Intel Corporation Technique to create link determinism
JP4520790B2 (ja) 2004-07-30 2010-08-11 富士通株式会社 情報処理装置およびソフトウェアプリフェッチ制御方法
US7669009B2 (en) 2004-09-23 2010-02-23 Intel Corporation Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US20060064517A1 (en) 2004-09-23 2006-03-23 Honeywell International Inc. Event-driven DMA controller
US7352885B2 (en) 2004-09-30 2008-04-01 General Electric Company Method and system for multi-energy tomosynthesis
US7852341B1 (en) 2004-10-05 2010-12-14 Nvidia Corporation Method and system for patching instructions in a shader for a 3-D graphics pipeline
US8493396B2 (en) 2004-11-15 2013-07-23 Nvidia Corporation Multidimensional datapath processing in a video processor
US7869835B1 (en) 2005-03-02 2011-01-11 Nvidia Corporation Method and system for pre-loading and executing computer instructions within the cache memory
US7486290B1 (en) 2005-06-10 2009-02-03 Nvidia Corporation Graphical shader by using delay
US7450131B2 (en) 2005-09-30 2008-11-11 Intel Corporation Memory layout for re-ordering instructions using pointers
US7451293B2 (en) 2005-10-21 2008-11-11 Brightscale Inc. Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing
US7412570B2 (en) 2005-11-15 2008-08-12 Sun Microsystems, Inc. Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state
US7545381B2 (en) 2005-11-10 2009-06-09 Via Technologies, Inc. Interruptible GPU and method for context saving and restoring
KR100814904B1 (ko) 2005-12-06 2008-03-19 한국전자통신연구원 칩 내부 회로 간의 데이터 전송을 위한 통신 시스템
US7725687B2 (en) 2006-06-27 2010-05-25 Texas Instruments Incorporated Register file bypass with optional results storage and separate predication register file in a VLIW processor
US7493452B2 (en) 2006-08-18 2009-02-17 International Business Machines Corporation Method to efficiently prefetch and batch compiler-assisted software cache accesses
US7750913B1 (en) 2006-10-24 2010-07-06 Adobe Systems Incorporated System and method for implementing graphics processing unit shader programs using snippets
US8269782B2 (en) 2006-11-10 2012-09-18 Sony Computer Entertainment Inc. Graphics processing apparatus
US7650459B2 (en) * 2006-12-21 2010-01-19 Intel Corporation High speed interface for non-volatile memory
US7620749B2 (en) * 2007-01-10 2009-11-17 International Business Machines Corporation Descriptor prefetch mechanism for high latency and out of order DMA device
JP2008305093A (ja) * 2007-06-06 2008-12-18 Canon Inc メモリ制御装置、メモリ制御装置の制御方法、プログラム及び記憶媒体
US8621137B2 (en) * 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
US8990543B2 (en) 2008-03-11 2015-03-24 Qualcomm Incorporated System and method for generating and using predicates within a single instruction packet
CA2716464A1 (en) 2009-12-24 2011-06-24 Mcmaster University Bit-width allocation for scientific computations

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102460405A (zh) * 2009-06-03 2012-05-16 美光科技公司 用于通过存储器装置来控制主机存储器存取的方法及***
CN102460405B (zh) * 2009-06-03 2015-11-25 美光科技公司 用于通过存储器装置来控制主机存储器存取的方法及***
CN104272629A (zh) * 2012-05-15 2015-01-07 瑞典爱立信有限公司 用于消除电信网络中pdcch检测误差的***和方法
CN104036815A (zh) * 2013-03-04 2014-09-10 三星电子株式会社 用于降低访问延时的非易失性存储装置和相关方法
CN107678681A (zh) * 2016-08-02 2018-02-09 佳能株式会社 信息处理***、信息处理***中的方法以及存储介质
CN107678681B (zh) * 2016-08-02 2021-06-29 佳能株式会社 信息处理***、信息处理***中的方法以及存储介质
CN109213439A (zh) * 2017-06-29 2019-01-15 是德科技股份有限公司 用于减少写入延时的***和方法
CN109213439B (zh) * 2017-06-29 2023-06-09 是德科技股份有限公司 用于减少写入延时的***和方法
CN109614148A (zh) * 2018-12-11 2019-04-12 中科驭数(北京)科技有限公司 数据逻辑运算方法、监测方法及装置
CN109614148B (zh) * 2018-12-11 2020-10-02 中科驭数(北京)科技有限公司 数据逻辑运算方法、监测方法及装置

Also Published As

Publication number Publication date
JP4748610B2 (ja) 2011-08-17
JP2009032243A (ja) 2009-02-12
KR101051815B1 (ko) 2011-07-25
KR20100106262A (ko) 2010-10-01
US20090037689A1 (en) 2009-02-05
US8683126B2 (en) 2014-03-25
KR20090013085A (ko) 2009-02-04
TW200921387A (en) 2009-05-16
TWI365375B (en) 2012-06-01

Similar Documents

Publication Publication Date Title
CN101359314A (zh) 通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间
JP5657641B2 (ja) データストレージデバイスのコマンド及び割り込みのグループ化
CN108572933A (zh) 用于直接存储器存取的数据缓冲器指针找取
US20160291866A1 (en) Command load balancing for nvme dual port operations
US6996659B2 (en) Generic bridge core
US10540096B2 (en) Method and design for dynamic management of descriptors for SGL operation
US7707384B1 (en) System and method for re-ordering memory references for access to memory
US10049035B1 (en) Stream memory management unit (SMMU)
US11520520B2 (en) Memory system and method of controlling nonvolatile memory
US20060047874A1 (en) Resource management apparatus
US7313670B2 (en) Data processing system and slave device
US6546439B1 (en) Method and system for improved data access
CN102402422A (zh) 处理器组件及该组件内存共享的方法
JP2004508634A (ja) 分割トランザクション相互接続のスループットを改善するための中間バッファ制御
JP2011232917A (ja) 半導体集積回路、及びリクエスト制御方法
CN100514362C (zh) 具有独立输出的交换开关***及其方法
US9804959B2 (en) In-flight packet processing
US6735677B1 (en) Parameterizable queued memory access system
US20080209085A1 (en) Semiconductor device and dma transfer method
CN115344515B (zh) 实现访问控制的方法、片上计算***及芯片
TWI760715B (zh) 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統
CN113448899A (zh) 借助于交易辨识码的属性来控制数据响应的方法以及***
CN1957341A (zh) 用于usb缓冲描述符表的可配置乒乓缓冲
US20070130411A1 (en) Data buffering method
JP2006119962A (ja) データキュー制御回路、方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20090204