CN1514973A - 用于多个读取请求的存储器控制 - Google Patents

用于多个读取请求的存储器控制 Download PDF

Info

Publication number
CN1514973A
CN1514973A CNA02811809XA CN02811809A CN1514973A CN 1514973 A CN1514973 A CN 1514973A CN A02811809X A CNA02811809X A CN A02811809XA CN 02811809 A CN02811809 A CN 02811809A CN 1514973 A CN1514973 A CN 1514973A
Authority
CN
China
Prior art keywords
request
reading
memory controller
memory device
priority
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
CNA02811809XA
Other languages
English (en)
Other versions
CN1278249C (zh
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.)
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 CN1514973A publication Critical patent/CN1514973A/zh
Application granted granted Critical
Publication of CN1278249C publication Critical patent/CN1278249C/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
    • 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/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

确定多个读取请求的优先级。确定了优先级的读取请求中的第一读取请求被发送到存储设备。从存储设备接收对于第一读取请求的位。在发送第一读取请求后,在从存储设备接收对于第一读取请求的位的同时或者之前,确定了优先级的读取请求中的第二读取请求被发送到存储设备。

Description

用于多个读取请求的存储器控制
技术领域
本发明一般地涉及计算机***的领域。更具体地,本发明涉及用于计算机***的存储器控制的领域。
背景技术
举例来说,同步快闪存储器设备已经被设计来用数据突发块(databurst)响应来自处理器的外部读取请求。当快闪存储器设备接收到读取请求时,该快闪存储器设备检测(sense)快闪存储器的含有被请求数据的部分。在此初始的查找等待时间之后,快闪存储器设备不但输出被请求数据,而且输出任何通过预测处理器可能将来请求此数据而被附加检测的其它数据。在每个时钟周期此数据突发块都持续,直至所有的被检测数据都已被输出到处理器。然后快闪存储器设备可以接收另一个读取请求。
通过检测比被请求数据更多的数据,就是说通过检测宽度,快闪存储器设备更充分地利用可使用的总线带宽,并且提供预测机制以帮助减少将来的读取请求的等待时间。如一个例子那样,处理器可以请求长度为16位的单个数据字。如果被请求的数据字没有被存储在处理器的高速缓存存储器中,则处理器将发送从快闪存储器设备读取该数据字的读取请求。随后快闪存储器设备可以检测四个连续的数据字,其中的一个是被请求数据字,并且举例来说,在四个时钟周期中每次输出16位将所有四个数据字输出到处理器。处理器然后可以在其高速缓存存储器中存储所有四个数据字。如果处理器以后请求该三个非被请求数据字中的任何一个,则处理器可以从其高速缓存存储器中获得所请求的数据,而不用通过快闪存储器设备进行另一次查找。
但是如果非被请求数据后来没有被请求或者使用,则快闪存储器设备已经在检测和输出附加数据中浪费了能量。而且,由于输出非被请求数据所需的附加时间,快闪存储器设备可能已经不必要地延迟了其它读取请求的执行。
附图说明
本发明通过附图的诸图中的实例被说明,并且不限于此,其中同样的标记指示类似的元件,其中:
图1说明了用于多个读取请求的存储器控制的一个实施例的流程图;
图2说明了一个具有存储控制器的示例性计算机***,所述存储控制器为多个主机控制由存储设备执行的多个读取请求;
图3说明了一个实施例的多个读取请求流水化作业的时序图;以及
图4说明了另一个具有存储控制器的示例性计算机***,所述存储控制器为多个主机控制由存储设备执行的多个读取请求。
具体实施方式
根据本发明,即用于多个读取请求的存储器控制,下面的具体实施方式阐明了一个实施例或者多个实施例。在下面的详细描述中阐述了很多诸如示例性时序图、数据大小、计算机***等的细节,以便于充分理解本发明。但是,很明显没有这些细节也可以实施本发明。在另外一些例子里,没有对公知的计算机部件等进行详细的描述,以避免喧宾夺主、淡化了本发明的主要内容。
图1说明了用于多个读取请求的存储器控制的一个实施例的流程图100。根据流程图100,可以使用任何合适的计算机***来进行用于多个读取请求的存储器控制。
示例性计算机***
图2说明一个示例性计算机***200以根据图1中的流程图100进行对于多个读取请求的存储器控制。
对一个实施例,计算机***200包括多个处理器202、204和206,一个存储控制器220,以及一个存储设备240。
对一个实施例,举例来说,每个处理器202、204和206分别包括高速缓存存储器203、205和207中的一个以存储已经或者可能将分别被处理器202、204和206使用的程序代码和/或数据。虽然如所示出的,处理器202、204和206各自具有其自己的片上高速缓存存储器203、205和207,但每个处理器202、204和206可以具有一个或者多个相应的高速缓存存储器,所述高速缓存存储器中的每一个可以是片上的或者外部耦合到其相应的处理器202、204或206。一个或者多个这样的高速缓存存储器可以由一个以上的处理器202、204或206可选择地共享并因此具有一个以上的相应的处理器202、204或206。对另外的实施例,计算机***200可以包括一个、两个或四个或者更多处理器。
每个处理器202、204和206通过处理器总线210耦合到存储控制器220。处理器总线210可以具有任何合适的总线线数。对其它的实施例,每个处理器202、204和206可以通过单独的、各自的总线耦合到存储控制器220。
如图2所示,对一个实施例,存储控制器220包括请求控制电路222和响应控制电路226。请求控制电路222包括请求队列224,响应控制电路226包括响应队列228。请求控制电路222、请求队列224、响应控制电路226和响应队列228可以各自包括任何合适的电路。
存储控制器220通过控制总线232、地址总线234和数据总线236耦合到存储设备240。控制总线232、地址总线234和数据总线236可以各自包括任何合适的总线线数。
如图2所示,对一个实施例,存储设备240包括访问电路242、存储器246和输出电路248。访问电路242和输出电路248各自被耦合到存储器246。访问电路242、存储器246和输出电路248可以各自包括任何合适的电路。对一个实施例,访问电路242包括地址缓冲区243。对一个实施例,输出电路248包括输出缓冲区249。举例来说,存储器246可以包括任何合适大小的任何合适类型的存储器以存储用于处理器202、204和/或206的任何合适的程序代码和/或数据。举例来说,存储器246可以用来存储例如由处理器202、204和/或206执行的操作***软件之类的任何合适的固件。对一个实施例,存储器246包括快闪存储器。对于其它实施例,举例来说,存储器246可以包括只读存储器(ROM)、静态随机访问存储器(SRAM)或者伪静态随机访问存储器(PSRAM)。
对一个实施例,存储控制器220和存储设备240被各自制造在单独的芯片上。对另一个实施例,存储控制器220与存储设备240集成在同一芯片上。对其中计算机***200只包括一个诸如处理器202的处理器的一个实施例,存储控制器220可以与处理器202集成在同一芯片上。存储设备240然后可以与处理器202以及存储控制器220集成,或者可以制造在单独的芯片上。
对其它实施例,计算机***200可以包括任何合适部件的任何其它合适的组合。
用于多个读取请求的存储器控制
如图1中的方框102,举例来说,处理器202、204和/或206发送一个或者多个读取请求到存储控制器220以从存储设备240请求程序代码和/或数据。对一个实施例,举例来说,一个或者多个读取请求各自分别是为处理器202、204或206获取程序代码和/或数据的高速缓存线填充请求,其中所述的程序代码和/或数据目前没有被存储在高速缓存存储器203、205或207中。对一个实施例,处理器202、204和/或206可以各自具有预取和/或分支预测能力,因此举例来说,发出多个读取请求以请求处理器202、204或206预测其将使用的程序代码。处理器202、204和/或206可以以任何合适的顺序并根据任何合适的通信协议发送读取请求到存储控制器220。
每个读取请求可以具有任何合适的格式。对一个实施例,每个读取请求指定一个虚拟的或者真实的地址,在此地址处被请求的程序代码和/或数据将被从存储设备240读取。对一个实施例,每个读取请求还可以标识发出该读取请求的处理器202、204或206。
在方框104,存储控制器220接收多个读取请求。对一个实施例,请求控制电路222接收每个读取请求。虽然如所示出的,存储控制器220从处理器202、204和/或206接收多个读取请求,但存储控制器220可以被耦合以从任何合适的一个或者多个主机接收多个读取请求。作为一个例子,对一个实施例,存储控制器220可以被耦合到一个或者多个连接单元或者接口单元,其中这些单元具有预测机制以预取程序代码。
在方框106,存储控制器220确定所接受的读取请求发送到存储设备240的次序的优先级。对一个实施例,请求控制电路222确定所接收的读取请求的优先级,并且以所确定的优先级的顺序将它们存储到请求队列224中。请求控制电路222可以根据任何合适的优先方案确定每个所接收的读取请求的优先级。举例来说,请求控制电路222可以基于处理器202、204或206中的哪一个发出读取请求而确定每个所接收的读取请求的优先级。对一个实施例,当请求控制电路222接收到任何新的读取请求时,请求控制电路222可以重新确定存储在请求队列224中的读取请求的优先级。
在方框108,存储控制器220发送确定了优先级的读取请求中的一个到存储设备240。存储控制器220可以根据任何合适的通信协议发送确定了优先级的读取请求中的每一个到存储设备240。对一个实施例,请求控制电路222发送请求队列224中的每个确定了优先级的读取请求到存储设备240。对一个实施例,请求控制电路222通过经由控制总线232发送一个或者多个控制信号并且通过经由地址总线234发送该读取请求的地址信号而发送每个读取请求。对一个实施例,请求控制电路222可以经由控制总线232发送REQUEST(请求)信号以发送每个读取请求到存储设备240。
对其中处理器202、204或206发送具有虚拟地址的读取请求的一个实施例,存储控制器220的请求控制电路222可以在发送每个确定了优先级的读取请求到存储设备240之前或期间将任何虚拟地址转换成真实地址。
在方框110,存储设备240接收发送出的读取请求。对一个实施例,访问电路242接收每个发送出的读取请求并且在地址缓冲区243中存储该读取请求地址。
地址缓冲区243可以具有任何合适的大小。对一个实施例,地址缓冲区243的大小被设为只存储一个地址。对另一个实施例,地址缓冲区243的大小被设为存储一个以上的地址。
在方框112,存储设备240访问接收到的读取请求所请求的程序代码和/或数据的位。对一个实施例,访问电路242在存储器246中的被存储在地址缓冲区243中的所接收到的读取请求地址处,访问被请求的位。对其中存储器246包括快闪存储器的一个实施例,举例来说,访问电路242检测被请求的位以访问它们。
对一个实施例,存储设备240在存储器246中的被存储在地址缓冲区243中的所接收到的读取请求地址处,访问预定数目的位。对一个实施例,该预定的位的数目等于在高速缓存存储器203、205和207中的高速缓存线的位数。对一个实施例,高速缓存线的大小是256位。
在方框114,存储设备240将对于所接收的读取请求的被访问位输出至存储控制器220。存储设备240可以按照任何合适的通信协议将所访问的位输出至存储控制器220。
对一个实施例,输出电路248在输出缓冲区249中存储对于所接收的读取请求的被访问位。输出缓冲区249可以具有任何合适的大小。对一个实施例,输出缓冲区249的大小被设为可存储一高速缓存线。
对一个实施例,输出电路248经由数据总线236将被存储在输出缓冲区249中的位输出到存储控制器220。对一个实施例,通过在每个时钟周期只输出所存储的位中的一部分,输出电路248经过多个时钟周期输出所存储的位。对一个实施例,输出电路248在每个时钟周期输出预定数目的被存储位。任何合适的预定位数都可以被采用。对一个实施例,该预定的位数等于数据总线236的宽度。对其中对于所接收的读取请求访问256位的一个实施例,输出电路248的一个实施例经过八个时钟周期输出请求的程序代码和/或数据的若干具有32位的部分。
对一个实施例,存储设备240只访问和输出由每个读取请求所请求的程序代码和/或数据,而不访问和输出任何基于任何预测机制的非被请求的程序代码和/或数据。对一个实施例,存储设备240只访问和输出由每个高速缓存填充线读取请求所请求的高速缓存线。通过只访问和输出被请求的程序代码和/或数据,有助于存储设备240以相对更有效的方式使用能量,因为没有能量被浪费在访问和输出在以后没有被请求或使用的非被请求的程序代码和/或数据上。并且,读取请求的执行将不会由于输出非被请求的程序代码和/或数据所需要的附加时间而被不必要地延迟。
在方框116,存储控制器220接收对于读取请求的从存储设备240所输出的位,并且在接收到输出位的同时或之前发送另一个确定了优先级的读取请求至存储设备240。存储控制器220可以按照任何合适的通信协议发送另一个确定了优先级的读取请求至存储设备240。
对一个实施例,响应控制电路226从存储设备240接收对于每个读取请求的位输出,并且在响应队列228中存储所接收的位。对一个实施例,请求控制电路222发送请求队列224中的下一个确定了优先级的读取请求至存储设备240。对一个实施例,请求控制电路222通过经由控制总线232发送一个或者多个控制信号以及通过经由地址总线234发送另一个确定了优先级的读取请求的地址信号来发送另一个确定了优先级的读取请求。对一个实施例,请求控制电路222可以经由控制总线232发送REQUEST信号以发送另一个确定了优先级的读取请求至存储设备240。
对一个实施例,存储控制器220可以在相对于从存储设备240接收到输出位的一个预定时刻发送另一个确定了优先级的读取请求。对一个实施例,当对于在先的读取请求的输出位首次接收到时,响应控制电路226可以向请求控制电路222发信号。请求控制电路222随后可以在接收到这样的信号时或者相对于接收到这样的信号的时间发送另一个确定了优先级的读取请求。
对另一个实施例,存储控制器220通过预测存储设备240将在于发送各读取请求之后的预定数量的时钟周期后访问并开始输出对于恰好在先的读取请求的位,可以在于发送恰好在先的读取请求之后的预定数量的时钟周期后发送另一个优先读取请求。存储控制器220可以在于发送恰好在先的读取请求之后的任何合适的预定数量的时钟周期后,发送另一个优先读取请求。对一个实施例,存储控制器220在与输出恰好在先的读取请求所请求的程序代码和/或数据所用的相同数量的时钟周期之后,发送另一个确定了优先级的读取请求。
对其中处理器202、204或206发送具有虚拟地址的另一个读取请求的一个实施例,在发送另一个读取请求到存储设备240之前或者期间,存储控制器220的请求控制电路222可以将虚拟地址转换成真实地址。
在方框118,存储设备240接收另一个读取请求。对一个实施例,访问电路242接收另一个读取请求并且在地址缓冲区243中存储所述另一个读取请求地址。
对其中地址缓冲区243的大小被设为存储一个以上的地址的一个实施例,当在当前被存储在地址缓冲区243中的地址处访问被请求程序代码和/或数据的位的同时,访问电路242可以接收另一个读取请求,并且在地址缓冲区243中存储所述另一个读取请求地址。
在方框120,当输出对于在先的读取请求的位的同时,存储设备240访问由另一个读取请求所请求的程序代码和/或数据的位。对一个实施例,访问电路242在存储器246中的存储在地址缓冲区243中的另一个读取请求地址处,访问被请求的位。对其中存储器246包括快闪存储器的一个实施例,举例来说,访问电路242检测被请求的位以访问它们。
对其中地址缓冲区243的大小被设为存储一个以上的地址的一个实施例,在访问了对于在先读取请求的位之后,访问电路242可以访问由另一个读取请求所请求的程序代码和/或数据的位。对一个实施例,访问电路242在地址缓冲区242中将读取请求地址按收到的顺序排队,并按照它们的排队顺序控制在每个地址对程序代码和/或数据的位的访问。
对一个实施例,存储设备240在存储器246的存储在地址缓冲区243中的另一个读取请求地址处,访问预定数目的位。对一个实施例,该预定的位的数目在数值上等于高速缓存存储器203、205和207中的高速缓存线的位数。
在方框122,存储设备240将对于另一个读取请求的被访问位输出至存储控制器220。存储设备240可以根据任何合适的通信协议输出该被访问的位至存储控制器220。
对一个实施例,输出电路248在输出缓冲区249中存储对于另一个读取请求的被访问位。对一个实施例,当在先读取请求的所有位都已经被输出后,输出电路248在输出缓冲区249中存储对于另一个读取请求的被访问位。对另一个实施例,在输出缓冲区249输出对于在先读取请求的位的同时,输出电路248可以在输出缓冲区249中存储对于另一个读取请求的被访问位。例如,输出电路248可以将此被访问的位存储在输出缓冲区249中的对于在先读取请求的已输出的位上。对其中输出缓冲区249的大小被设为存储对于多个读取请求的被访问位的一个实施例,输出电路248可以在输出缓冲区249中的不同于在先读取请求的位的位置存储对于另一个读取请求的被访问位。
对一个实施例,输出电路248经由数据总线236将存储在输出缓冲区249中的位输出到存储控制器220。对一个实施例,通过在每个时钟周期只输出所存储的位中的一部分,输出电路248经过多个时钟周期输出所存储的位。对一个实施例,每一个时钟周期输出电路248输出预定数目的被存储位。可以使用任何合适的预定的位数。对一个实施例,预定的位数等于数据总线236的宽度。对其中对于另一个读取请求访问256位的一个实施例,输出电路248的一个实施例经过八个时钟周期输出被请求的程序代码和/或数据的若干具有32位的部分。
对一个实施例,存储设备240只访问和输出由每个读取请求所请求的程序代码和/或数据,而不访问和输出任何基于任何预测机制的非被请求的程序代码和/或数据。对一个实施例,存储设备240只访问和输出由每个高速缓存填充线读取请求所请求的高速缓存线。通过只访问和输出被请求的程序代码和/或数据,有助于存储设备240以相对更有效的方式使用能量,因为没有能量被浪费在访问和输出在以后没有被请求或使用的非被请求的程序代码和/或数据上。并且,读取请求的执行将不会由于输出非被请求的程序代码和/或数据所需要的附加时间而被不必要地延迟。
通过在存储设备240输出对于在先读取请求的位的同时或之前发送另一个读取请求到存储设备240,以及通过在输出对于在先读取请求的位的同时访问由另一个读取请求所请求的程序代码和/或数据的位,流水化多个读取请求的执行。第一次读取请求的后续的每个读取请求的访问等待时间可以部分或者全部地被隐藏,因为在对于在先读取请求的被请求位输出之后,存储设备240可以相对较快地输出对于每个读取请求的所请求的位。因此存储设备240可以以相对增大的数据吞吐量执行多个读取请求。对一个实施例,只要用于访问对于每个读取请求的位的时间短于输出对于恰好在先的读取请求的位的时间,以及只要每个读取请求被发送以致可以在输出对于恰好在先的读取请求的所有位之前访问对于读取请求的位,存储设备240就可以作为不中断的输出流输出对于多个随机读取请求的被请求的程序代码和/或数据。这就可以不管对于多个读取请求的被请求的程序代码和/或数据是否被顺次地存储在存储器246中。
对一个实施例,图3示出了一个实施例的多个读取请求流水化作业的时序图300。时序图300包括CLOCK(时钟)信号、REQUEST信号、ADDRESS(地址)信号和DATA(数据)信号的时序线。对一个实施例,存储控制器220经由控制总线232发送CLOCK和REQUEST信号。ADDRESS信号对应于由存储控制器220经由地址总线234发送到存储设备240的信号。DATA信号对应于由存储设备240经由数据总线236发送到存储控制器220的信号。REQUEST、ADDRESS和DATA信号可以各自在CLOCK信号的上升沿或者下降沿上产生。如图3所示,对一个实施例,REQUEST信号是低电平有效信号。对另一个实施例,REQUEST信号可以是高电平有效信号。
如图3所示,在时钟周期0,存储控制器220将第一次读取请求的有效REQUEST信号302和地址信号304输出到存储设备240。存储设备240在时钟周期1-5中于由地址信号304指定的地址访问预定数目的位,并且在时钟周期6-13分别输出被访问的位作为数据信号组306、307、308、309、310、311、312和313。对一个实施例,时钟周期6-13的每一个周期中的数据信号组306-313的大小各自分别为32位。因此,所请求的程序代码和/或数据大小是256位。
在时钟周期8,当存储设备240正在输出第一次读取请求的数据信号组306-313时,存储控制器220输出另一个有效的REQUEST信号322和地址信号324至存储设备240。在时钟周期9-13中,存储设备240在由地址信号324指定的地址访问预定数目的位,并且在时钟周期14-21分别输出被访问的位作为数据信号组326、327、328、329、330、331、332和333。因为比在数据信号组306-313输出之后的第一个时钟周期早六个周期发送另一个读取请求,以及因为另一个读取请求的访问等待时间是六个时钟周期,所以由于在数据信号组306-313的输出之后存储设备240立即输出数据信号组326-333,因而另一个读取请求的访问等待时间被隐藏。
对一个实施例,举例来说,通过将读取请求限制至诸如用于高速缓存线填充的仅仅一个预定大小的程序代码和/或数据,以及通过限制对如何以及何时将被请求的程序代码和/或数据从存储设备240输出到存储控制器220的控制,可以使存储控制器220和存储设备240最优化以便以相对更高的时钟频率执行读取请求。
在图1中的方框124,存储控制器220将从存储设备240所接收的对于任何在先读取请求的位输出到请求处理器202、204或206。对一个实施例,基于在每个读取请求中所指明的发送处理器202、204或206的身份,存储控制器220识别请求处理器202、204或206。存储控制器220可以以任何合适的顺序并根据任何合适的通信协议将对于每个读取请求的被请求的位输出到请求处理器202、204或206。
对一个实施例,响应控制电路226从响应队列228输出对于每个读取请求的被请求的位。对一个实施例,响应控制电路226可以与请求控制电路222通信以识别从存储设备240接收到的任何被请求的程序代码和/或数据的请求处理器202、204或206。对一个实施例,响应控制电路226以与每个读取请求被发送到存储设备240的顺序相同的顺序输出对于读取请求的被请求的位。例如,如果因为请求处理器202、204或206忙,所以存储控制器220不能输出处理器202、204或206所请求的位,则对于一个实施例,存储控制器220可以尝试输出由处理器202、204或206中的另一个所请求的位,并且稍后再次尝试输出忙的处理器202、204或206所请求的位。
在方框126,存储控制器220确定是否还有读取请求将被发送到存储设备240。对一个实施例,请求控制电路222确定请求队列224是否正在存储任何将发送到存储设备240的读取请求。
如果存储控制器220确定另一个读取请求将被发送到存储设备240,则在方框116,在接收到在方框122从存储设备240所输出的位的同时或者之前,存储控制器220发送另一个确定了优先级的读取请求至存储设备240。参照图3的时序图300,对一个实施例,存储控制器220在时钟周期16将另一个读取请求的地址信号344和有效REQUEST信号342输出到存储设备240。
在方框118存储设备240接收当前所发送的读取请求,在方框120在输出对于恰好在先的读取请求的位时,访问对于当前读取请求的被请求的位,并且在方框122输出对于当前读取请求的被访问的位。在方框124存储控制器220将从存储设备240所接收的对于任何在先读取请求的位输出到请求处理器202、204或206,并在方框126确定是否还有读取请求将被发送到存储设备240。根据方框116、118、120、122、124和126,存储控制器220和存储设备240连续运行,直至存储控制器220在方框126确定将没有其它的读取请求被发送到存储设备240为止。
如果存储控制器220在方框126确定将没有其它的读取请求被发送到存储设备240,则在方框128存储控制器220接收在方框122从存储设备240所输出的位,并且将对于当前读取请求的所接收的输出位输出到请求处理器202、204或206。
根据任何方框102-128,在相对于处理器202、204和/或206、存储控制器220和/或存储设备240在任何其它方框102-128的运行的任何合适的时间,处理器202、204和/或206、存储控制器220和/或存储设备240可以运行。如一个例子,处理器202、204和/或206可以发送读取请求到存储控制器220,并且存储控制器220可以在任何合适的时间接收任何被发送的读取请求。如另一个例子,存储控制器220可以在任何合适的时间将对于任何读取请求的位输出到请求处理器202、204或206。
其它示例性计算机***
图4说明了一个示例性计算机***400,该计算机***400包括控制处理器402、数字信号处理器(DSP)404、存储控制器420、包括快闪存储器446的存储设备440、输入设备452、显示器454、音频编码器/解码器(codec)456、易失性存储设备458和射频(RF)接口460。计算机***400可以被用于任何合适的掌中设备和/或无线设备,诸如手机或个人数字助理(PDA)。对其它实施例,计算机***400可以包括任何合适部件的任何其它合适的组合。
输入设备452、显示器454和音频编码器/解码器456被各自耦合到控制处理器402。举例来说,输入设备452可以包括任何合适的输入设备,诸如键盘、声音识别设备和/或笔型输入板(pen tablet)。举例来说,音频编码器/解码器456可以被用来将麦克风、扬声器和/或耳机耦合到例如控制处理器402。易失性存储设备458通过总线410被耦合到控制处理器402和DSP 404,并且作为控制处理器402和/或DSP 404的工作存储器。DSP 404通过总线410被耦合到控制处理器402并被耦合到RF接口460。RF接口460传送和接收用于计算机***400的RF信号。DSP 404对由RF接口460接收到的信号以及对将经RF接口460传送的信号执行适当的数字信号处理。
存储控制器420通过总线410被耦合到控制处理器402以及DSP404。举例来说,控制处理器402和DSP 404各自经由总线410可以发送读取请求至存储控制器420以检索被存储在存储设备440的快闪存储器446中的程序代码和/或数据。举例来说,快闪存储器446可以被用于存储用于计算机***400的任何合适的程序代码和/或数据。举例来说,快闪存储器446可以被用来存储由控制处理器402和/或DSP 404执行的任何合适的固件,例如操作***软件。举例来说,快闪存储器446也可以被用于存储用于计算机***400的数据,例如电话目录信息。尽管如所示出的,存储设备440包含快闪存储器446,但存储设备440可以包括任何合适类型的存储器。
类似于图2的存储控制器220控制存储设备240的读取请求的执行,存储控制器420控制存储设备440的读取请求的执行。类似于图2的存储设备240,存储设备440访问和输出对于读取请求的位。对其中计算机***400利用电池供电的一个实施例,举例来说,存储控制器420和存储设备440的使用有助于延长电池寿命,因为存储控制器420和存储设备440在访问和输出对于多个读取请求的被请求程序代码和/或数据中以相对更有效的方式使用能量。
在前述的说明中,参照其具体的示例性实施例已经描述了本发明。然而,在不脱离在权利要求书中所限定的本发明的更宽的范围或精神的情况下,显然可以做各种修改和变化。因此,应该理解说明书和附图是示例性而非限制性的。

Claims (35)

1.一种方法,包括:
确定多个读取请求的优先级;
发送所述确定了优先级的读取请求中的第一读取请求至存储设备;
从所述存储设备接收对于所述第一读取请求的位;以及
在发送所述第一读取请求后,在从所述存储设备接收对于所述第一读取请求的位的同时或者之前,发送所述确定了优先级的读取请求中的第二读取请求至所述存储设备。
2.如权利要求1所述的方法,其中所述的第一读取请求请求预定数目的位。
3.如权利要求1所述的方法,其中所述的第一读取请求是高速缓存线填充读取请求。
4.如权利要求1所述的方法,包括在从所述存储设备输出对于所述的第一读取请求的位的同时,在存储器中访问对于所述第二读取请求的位。
5.如权利要求1所述的方法,包括在从所述存储设备输出对于所述的第一读取请求的位的同时,在快闪存储器中检测对于所述第二读取请求的位。
6.如权利要求1所述的方法,包括从一个或者多个主机向用于确定优先级的存储控制器发送多个读取请求。
7.如权利要求6所述的方法,包括将从所述存储设备接收到的对于所述第一读取请求的位输出到发送了所述第一读取请求的主机。
8.如权利要求1所述的方法,包括对于所述第一读取请求在存储器中只访问所述第一读取请求所请求的位。
9.一种装置,包括:
存储控制器,用于:确定多个读取请求的发送次序的优先级,将确定了优先级的读取请求发送到存储设备,以及从所述存储设备接收对于被发送的读取请求的位;在接收到对于所述确定了优先级的读取请求中的第二读取请求的位的同时或之前,所述存储控制器发送所述确定了优先级的读取请求中的第一读取请求。
10.如权利要求9所述的装置,其中所述的第一读取请求请求预定数目的位。
11.如权利要求9所述的装置,其中所述的第一读取请求是高速缓存线填充读取请求。
12.如权利要求9所述的装置,其中所述的存储控制器包括请求控制电路,所述请求控制电路包括一个请求队列,所述请求控制电路确定多个读取请求的优先级,将确定了优先级的读取请求存储在所述请求队列中,并发送确定了优先级的读取请求。
13.如权利要求9所述的装置,所述存储控制器将从所述存储设备接收到的对于所述第二读取请求的位输出到发出了所述第二读取请求的主机。
14.如权利要求13所述的装置,其中所述存储控制器包括响应控制电路,所述响应控制电路包括一个响应队列,所述响应控制电路将从所述存储设备接收到的对于所述第二读取请求的位存储在所述响应队列中,并且将对于所述第二读取请求的所存储的位输出到发出了所述第二读取请求的所述主机。
15.如权利要求27所述的装置,其中所述存储设备包括:
(i)存储器,
(ii)访问电路,用于接收由所述存储控制器发送的读取请求并在所述存储器中访问对于所接收到的读取请求的位,以及
(iii)输出电路,用于将对于所接收到的读取请求的被访问的位输出到所述存储控制器。
16.如权利要求27所述的装置,其中所述的存储设备包括快闪存储器,以存储对于读取请求将被访问的位。
17.如权利要求27所述的装置,对于所述第一读取请求所述存储设备仅仅访问所述第一读取请求所请求的位。
18.一种计算机***,包括:
(a)一个或者多个处理器,用于发送多个读取请求;
(b)存储控制器,用于:从一个或多个处理器接收多个读取请求,确定多个读取请求的发送次序的优先级,发送确定了优先级的读取请求,接收对于所发送的读取请求的位,以及将对于所发送的读取请求的接收到的位输出到一个或多个处理器;在接收到对于所述确定了优先级的读取请求中的第二读取请求的位的同时或之前,所述存储控制器发送所述确定了优先级的读取请求中的第一读取请求;以及
(c)存储设备,用于:接收由所述存储控制器所发送的读取请求,访问对于所接收到的读取请求的位,以及将对于所述接收到的读取请求的被访问的位输出到所述存储控制器;在将对于所述第二读取请求的被访问的位输出到所述存储控制器的同时,所述存储设备访问对于所述第一读取请求的位。
19.如权利要求18所述的计算机***,其中所述的第一读取请求请求预定数目的位。
20.如权利要求18所述的计算机***,其中发出所述第一读取请求的处理器具有高速缓存存储器,并且所述第一读取请求是高速缓存线填充读取请求。
21.如权利要求18所述的计算机***,其中所述的存储控制器包括请求控制电路,所述请求控制电路包括一个请求队列,所述请求控制电路确定多个读取请求的优先级,将确定了优先级的读取请求存储在所述请求队列中,并发送确定了优先级的读取请求。
22.如权利要求18所述的计算机***,其中所述存储控制器包括响应控制电路,所述响应控制电路包括一个响应队列,所述响应控制电路将从所述存储设备接收到的对于所述第二读取请求的位存储在所述响应队列中,并且将对于所述第二读取请求的所存储的位输出到发出了所述第二读取请求的处理器。
23.如权利要求18所述的计算机***,其中所述的存储设备包括:
(i)存储器,
(ii)访问电路,用于接收由所述存储控制器发送的读取请求并在所述存储器中访问对于所接收到的读取请求的位,以及
(iii)输出电路,用于将对于所接收到的读取请求的被访问的位输出到所述存储控制器。
24.如权利要求18所述的计算机***,其中所述的存储设备包括一个快闪存储器,以存储对于读取请求的将被访问的位。
25.如权利要求18所述的计算机***,其中所述的一个或者多个处理器包括控制处理器和/或数字信号处理器。
26.如权利要求18所述的计算机***,对于所述第一读取请求所述存储设备仅仅访问由所述第一读取请求所请求的位。
27.如权利要求9所述的装置,包括存储设备,所述存储设备接收由所述存储控制器所发送的读取请求,访问对于所接收到的读取请求的位,并将对于所述接收到的读取请求的被访问的位输出到所述存储控制器,在将对于所述第二读取请求的被访问的位输出到所述存储控制器的同时,所述存储设备访问对于所述第一读取请求的位。
28.一个***,包括:
(a)射频接口;
(b)数字信号处理器;
(c)控制处理器;
(d)存储控制器,用于:从所述数字信号处理器和/或所控制处理器接收多个读取请求,确定多个读取请求的发送次序的优先级,发送确定了优先级的读取请求,接收对于所发送的读取请求的位,以及将对于所发送的读取请求的接收到的位输出到所述数字信号处理器和/或所述控制处理器;在接收到对于所述确定了优先级的读取请求中的第二读取请求的位的同时或之前,所述存储控制器发送所述确定了优先级的读取请求中的第一读取请求;以及
(e)存储设备,用于:接收由所述存储控制器所发送的读取请求;访问对于所接收到的读取请求的位,以及将对于所述接收到的读取请求的被访问的位输出到所述存储控制器;在将对于所述第二读取请求的被访问的位输出到所述存储控制器的同时,所述存储设备访问对于所述第一读取请求的位。
29.如权利要求28所述的***,其中所述的第一读取请求请求预定数目的位。
30.如权利要求28所述的***,其中发出所述第一个读取请求的处理器具有高速缓存存储器,并且所述第一读取请求是高速缓存线填充读取请求。
31.如权利要求28所述的***,其中所述的存储控制器包括请求控制电路,所述请求控制电路包括一个请求队列,所述请求控制电路确定多个读取请求的优先级,将确定了优先级的读取请求存储在所述请求队列中,并发送确定了优先级的读取请求。
32.如权利要求28所述的***,其中所述存储控制器包括响应控制电路,所述响应控制电路包括一个响应队列,所述响应控制电路将从所述存储设备接收到的对于所述第二读取请求的位存储在所述响应队列中,并且将对于所述第二读取请求的所存储的位输出到发出了所述第二读取请求的处理器。
33.如权利要求28所述的***,其中所述的存储设备包括:
(i)存储器,
(ii)访问电路,用于接收由所述存储控制器发送的读取请求并在所述存储器中访问对于所接收到的读取请求的位,以及
(iii)输出电路,用于将对于所接收到的读取请求的被访问的位输出到所述存储控制器。
34.如权利要求28所述的***,其中所述的存储设备包括快闪存储器,以存储对于读取请求的将被访问的位。
35.如权利要求28所述的***,对于所述第一读取请求所述存储设备仅仅访问由所述第一读取请求所请求的位。
CNB02811809XA 2001-06-29 2002-06-28 用于多个读取请求的存储器控制 Expired - Fee Related CN1278249C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/895,928 US7076627B2 (en) 2001-06-29 2001-06-29 Memory control for multiple read requests
US09/895,928 2001-06-29

Publications (2)

Publication Number Publication Date
CN1514973A true CN1514973A (zh) 2004-07-21
CN1278249C CN1278249C (zh) 2006-10-04

Family

ID=25405310

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB02811809XA Expired - Fee Related CN1278249C (zh) 2001-06-29 2002-06-28 用于多个读取请求的存储器控制

Country Status (5)

Country Link
US (1) US7076627B2 (zh)
CN (1) CN1278249C (zh)
HK (1) HK1066615A1 (zh)
TW (1) TWI223153B (zh)
WO (1) WO2003003228A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100462950C (zh) * 2004-12-13 2009-02-18 索尼株式会社 数据处理***、访问控制方法和访问控制设备
CN102333210A (zh) * 2011-10-28 2012-01-25 杭州华三通信技术有限公司 一种视频数据存储方法及其设备
CN104063275A (zh) * 2014-06-30 2014-09-24 曙光信息产业(北京)有限公司 一种sata指令的处理方法及装置
CN104298617A (zh) * 2014-08-20 2015-01-21 深圳大学 一种numa平台中非核部件数据流缓冲管理的优化方法及***
CN104050115B (zh) * 2014-06-30 2017-02-08 曙光信息产业(北京)有限公司 一种存储控制器及其使用方法
CN112306918A (zh) * 2019-07-31 2021-02-02 北京百度网讯科技有限公司 数据访问方法、装置、电子设备和计算机存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076627B2 (en) 2001-06-29 2006-07-11 Intel Corporation Memory control for multiple read requests
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7120758B2 (en) * 2003-02-12 2006-10-10 Hewlett-Packard Development Company, L.P. Technique for improving processor performance
TW200947217A (en) * 2008-05-09 2009-11-16 Asustek Comp Inc Computer system and method for processing data signal of memory interface thereof
US8463932B2 (en) 2008-08-28 2013-06-11 Red Hat, Inc. Fast HTTP seeking
US20150286529A1 (en) * 2014-04-08 2015-10-08 Micron Technology, Inc. Memory device having controller with local memory
US11892955B2 (en) * 2021-06-01 2024-02-06 Microchip Technology Inc. System and method for bypass memory read request detection

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3931613A (en) 1974-09-25 1976-01-06 Data General Corporation Data processing system
GB2035632B (en) 1978-12-01 1983-01-19 Gen Automation Inc Multiprocessor system
US5202973A (en) 1990-06-29 1993-04-13 Digital Equipment Corporation Method of controlling a shared memory bus in a multiprocessor system for preventing bus collisions and for ensuring a full bus
US5440505A (en) 1994-01-21 1995-08-08 Intel Corporation Method and circuitry for storing discrete amounts of charge in a single memory element
WO1995024678A2 (en) 1994-03-01 1995-09-14 Intel Corporation Highly pipelined bus architecture
US6212611B1 (en) * 1998-11-03 2001-04-03 Intel Corporation Method and apparatus for providing a pipelined memory controller
US6564284B2 (en) * 1998-12-23 2003-05-13 Micron Technology, Inc. Apparatus for controlling a multibank memory device
US6266750B1 (en) * 1999-01-15 2001-07-24 Advanced Memory International, Inc. Variable length pipeline with parallel functional units
US6697907B1 (en) * 2000-06-30 2004-02-24 Micron Technology, Inc. Hardware initialization of a synchronous memory
US7076627B2 (en) 2001-06-29 2006-07-11 Intel Corporation Memory control for multiple read requests

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100462950C (zh) * 2004-12-13 2009-02-18 索尼株式会社 数据处理***、访问控制方法和访问控制设备
CN102333210A (zh) * 2011-10-28 2012-01-25 杭州华三通信技术有限公司 一种视频数据存储方法及其设备
CN102333210B (zh) * 2011-10-28 2014-03-26 杭州华三通信技术有限公司 一种视频数据存储方法及其设备
CN104063275A (zh) * 2014-06-30 2014-09-24 曙光信息产业(北京)有限公司 一种sata指令的处理方法及装置
CN104050115B (zh) * 2014-06-30 2017-02-08 曙光信息产业(北京)有限公司 一种存储控制器及其使用方法
CN104298617A (zh) * 2014-08-20 2015-01-21 深圳大学 一种numa平台中非核部件数据流缓冲管理的优化方法及***
CN104298617B (zh) * 2014-08-20 2017-12-08 深圳大学 一种numa平台中非核部件数据流缓冲管理的优化方法及***
CN112306918A (zh) * 2019-07-31 2021-02-02 北京百度网讯科技有限公司 数据访问方法、装置、电子设备和计算机存储介质
CN112306918B (zh) * 2019-07-31 2024-06-14 北京百度网讯科技有限公司 数据访问方法、装置、电子设备和计算机存储介质

Also Published As

Publication number Publication date
WO2003003228A1 (en) 2003-01-09
TWI223153B (en) 2004-11-01
US7076627B2 (en) 2006-07-11
US20030005242A1 (en) 2003-01-02
CN1278249C (zh) 2006-10-04
HK1066615A1 (en) 2005-04-22

Similar Documents

Publication Publication Date Title
CN1278249C (zh) 用于多个读取请求的存储器控制
US9280474B2 (en) Adaptive data prefetching
CN100337205C (zh) 便利共享存储器环境中的通信的方法和***
US20150143045A1 (en) Cache control apparatus and method
US20010032295A1 (en) Peripheral device interface chip cache and data synchronization method
WO2021036370A1 (zh) 预读取文件页的方法、装置和终端设备
CN1399743A (zh) 高速缓存***和数字信号处理器结构
CN110291510A (zh) 流转换后备缓冲器
US20120331187A1 (en) Bandwidth control for a direct memory access unit within a data processing system
CN1700196A (zh) 通过直接存储器访问控制器传输数据的***及方法
US10007464B1 (en) Method and apparatus for integration of non-volatile memory
CN114153754B (zh) 用于计算集群的数据传输方法、装置及存储介质
KR101789190B1 (ko) 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서
CN102446087B (zh) 指令预取方法与预取装置
CN108228498A (zh) 一种dma控制装置和图像处理器
US20180349057A1 (en) Method and apparatus for integration of non-volatile memory
CN1732446A (zh) 存储器控制器和用于对存储器写入的方法
CN115964319A (zh) 远程直接内存访问的数据处理方法及相关产品
CN1650259A (zh) 具有非易失性存储器的集成电路以及用于从所述存储器中取数据的方法
CN116680214A (zh) 一种数据访问方法、可读存储介质及电子设备
EP2524314B1 (en) System and method to access a portion of a level two memory and a level one memory
CN110658980B (zh) 数据处理方法及装置、存储***
CN1679006A (zh) 处理器预取以匹配存储器总线协议特性
WO2014206229A1 (zh) 一种加速器以及数据处理方法
CN113485643A (zh) 用于数据存取的方法及数据写入的控制器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1066615

Country of ref document: HK

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

Termination date: 20190628