CN103034476A - 用于在总线上发送存储器预取命令的方法和设备 - Google Patents

用于在总线上发送存储器预取命令的方法和设备 Download PDF

Info

Publication number
CN103034476A
CN103034476A CN201210536627XA CN201210536627A CN103034476A CN 103034476 A CN103034476 A CN 103034476A CN 201210536627X A CN201210536627X A CN 201210536627XA CN 201210536627 A CN201210536627 A CN 201210536627A CN 103034476 A CN103034476 A CN 103034476A
Authority
CN
China
Prior art keywords
data
memory controller
processor
response
receives
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
CN201210536627XA
Other languages
English (en)
Other versions
CN103034476B (zh
Inventor
R.G.霍夫曼
M.M.谢弗
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103034476A publication Critical patent/CN103034476A/zh
Application granted granted Critical
Publication of CN103034476B publication Critical patent/CN103034476B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter

Landscapes

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

Abstract

本发明是用于在总线上发送存储器预取命令的方法和设备,公开了一种处理系统和方法,其中处理器可配置成:预测将被需要的数据所来自的存储器地址,向存储器控制器发送对处于预测的存储器地址处的数据的预取命令,如果处于预测的存储器地址处的数据被需要,则向存储器控制器发送对该数据的读取请求。

Description

用于在总线上发送存储器预取命令的方法和设备
本案是申请号为200580037154.7,申请日为2005年8月26日,题目为“用于在总线上发送存储器预取命令的方法和设备”的申请的分案。
技术领域
本公开一般涉及数字系统,更具体而言,涉及用于在处理系统中通过总线发送存储器预取命令的方法和设备。
背景技术
集成电路通过使采用分立装置很难或不可能实现的新应用能够得到实现,而彻底变革了电子工业。集成能使含有数百万个电子元件的复杂电路封装到半导体材料的单个芯片中。结果,诸如计算机、蜂窝式电话、个人数字助理(PDA)等这样的功能强大的计算装置可以缩小成手持式装置。
当今,集成电路被广泛用来实现复杂的电路,诸如通用和专用的处理器。典型的集成处理器包括中央处理单元(CPU)和系统存储器。高带宽系统总线可用来支持这二者之间的通信。总线典型是集成电路上的各元件之间的共享通道或路径。此外,还可以存在外部总线,其可以用来在片上存储器控制器的控制下对低延迟的片外存储器进行存取。
片外存储器通常被格式化成多个页。一页一般与一行存储器相关联。在大多数情况下,存储器控制器能够一次仅仅打开有限数目个页。“打开页”指的是存储器正指向一行存储器并且仅需要来自存储器控制器的列存取命令来读取数据。为了存取存储器的未打开页,存储器控制器必须在提供列存取命令以读取数据之前为存储器提供行存取命令以移动指针。结果,在关闭存储器中的页和打开新页时会有延迟代价。
许多CPU的具体实现包括预取机制,以便对片外存储器装置所经常遇到的高延迟进行补偿。这些CPU可配置成对指令流进行评估,并向将来可能被需要的片外存储器装置请求页,以便减小延迟并提高CPU性能。然而,由于指令流的分支以及CPU的中断,这些预取请求可能经常是不正确的。此外,一旦总线上接受了预取请求,则即使不再需要数据,数据也将从片外存储器中被读出并在总线上传递回CPU。这经常会由于推测性数据在总线上被传递给CPU,而导致总线上的较低带宽,从而延误CPU从片外存储器装置存取后续数据。
许多年前,利用预取命令来将CPU连接于片外存储器装置的方法就已经提供了一种可行的解决方案。然而,随着CPU的操作速度持续按照指数规律增加,越来越需要减小典型地与片外存储器装置相关的延迟。
发明内容
在本发明的一个方面中,提供了一种从存储器中取回数据的方法,该方法包括:预测将被需要的数据所来自的存储器地址,向存储器控制器发送对处于预测的存储器地址处的数据的预取命令,向存储器控制器发送对处于预测的存储器地址处的数据的读取请求,以及响应于该读取请求而对处于预测的存储器地址处的数据进行接收。
在本发明的另一方面中,提供了一种从存储器中取回数据的方法,该方法包括:预测将被需要的数据所来自的存储器的未打开页中的地址,向存储器控制器发送对处于预测的存储器地址处的数据的预取命令,将预测地址处的数据读入预取缓冲器中,以及从预取缓冲器中丢弃数据。
在本发明的又一方面中,提供了一种处理系统,其包括:存储器、存储器控制器和处理器。该处理器配置成预测将被需要的数据所来自的存储器地址,向存储器控制器发送对处于预测的存储器地址处的数据的预取命令,如果预测的存储器地址处的数据被需要则向存储器控制器发送对该数据的读取请求,其中存储器控制器进一步配置成响应于读取请求而将预测的存储器地址处的数据传递给处理器。
在本发明的又一方面中,提供了一种处理系统,其包括:存储器,存储器控制器,用于对将被需要的数据所来自的存储器地址进行预测的装置,用于向存储器控制器发送对处于预测的存储器地址处的数据的预取命令的装置,用于在处于预测的存储器地址处的数据被需要时向存储器控制器发送对该数据的读取请求的装置,以及用于接收数据的接收装置,其中存储器控制器进一步配置成响应于读取请求而将处于预测的存储器地址处的数据传递给接收装置。
应能理解,对于本领域技术人员来说,通过以下详细说明,本发明的其它实施例将变得显而易见,其中通过例证的形式示出及说明本发明的不同实施例。如将认识到的那样,在不脱离本发明的精神和范围的情况下,本发明可有其它不同的实施例,并且其一些细节能在其它不同的方面中进行修改。因此,附图和详细说明实际上应被看作是说明性的而非限制性的。
附图说明
在附图中,以举例的方式而非限制的方式示出了本发明的各方面,在附图中:
图1是示出带有片外存储器的集成电路的实例的概念性框图;
图2是示出带有片外存储器的集成电路的另一个实例的概念性框图;
图3是示出用预取命令来减小对SDRAM进行读取操作时的延迟的时序图;
图4是示出用预取命令来减小对NAND闪存进行读取操作时的延迟的时序图。
具体实施方式
以下结合附图所做的详细描述是用于说明本发明的不同实施例的,而不打算仅代表可实现本发明的唯一几个实施例。详细描述包括了用于透彻理解本发明的具体细节。然而,对本领域技术人员而言很明显的是,没有这些具体细节本发明也可以实施。在一些例子中,为了避免模糊本发明的概念,以框图形式显示公知的结构和组件。
将描述带有片外存储器的集成电路的几个实施例,以说明不同的发明性概念。在此描述的至少一个实施例中,集成在芯片上的CPU可以以趋向于减小这样的配置会典型遇到的延迟的方式,来通过存储器控制器与片外存储器相接。本领域技术人员还将很容易理解,这些发明性概念并不限于这样的配置,而可以应用于总线主控装置与存储器通信的任何处理系统上。举例来说,CPU可以使用本公开通篇描述的不同发明性概念来与片上存储器通信。可选地,分立处理器或其它总线主控装置,也可以用来与分立存储器通信。
图1是示出带有片外存储器的集成电路102的概念性框图。片外存储器可以采用具有多页格式的任意存储装置(包括例如存储器、寄存器、网桥或能够取回和存储信息的任何其它装置)来实现。在图1所示的实施例中,片外存储器可包括同步动态随机存取存储器(SDRAM)104和NAND闪存106。CPU 108可通过SDRAM存储器控制器110来存取SDRAM 104,并通过NAND快闪控制器(flashcontroller)112来存取NAND闪存106。CPU 108可以是任何处理元件,包括例如微处理器、数字信号处理器(DSP)、可编程逻辑元件、门或晶体管逻辑的组合、或任何其它处理元件。
集成电路102可包括系统总线114,以将CPU 108连接于SDRAM控制器110和NAND快闪控制器112。系统总线114还可以用于在为了避免模糊不同发明性概念而被省略的其它不同集成元件之间提供通信。系统总线114可以取决于具体应用情况和总体的设计约束而以多种方式来配置。举例来说,系统总线114可被实现为共享总线或点对点的切换连接。
在处理系统的一个实施例中,总线主控装置可用于生成预取命令来存取存储器中的未打开页。举例来说,图1中所示的CPU 108可以通过系统总线114将预取命令发送给SDRAM存储器控制器110。预取命令可包括,通过预计CPU 108在将来对数据的请求而得出的可能由SDRAM存储器控制器110用来存取SDRAM 104中的存储器页的地址。SDRAM存储器控制器110可简单地打开SDRAM 104中的存储器的页,或者可选地,从该页中将一部分或全部数据读入预取缓冲器中。在最简单的配置中,SDRAM存储器控制器110简单地打开SDRAM 104中的存储器的页,并且由于页已经被打开的事实,CPU 108可得到较低延迟的好处,因此,CPU 108不需要来自SDRAM存储器控制器110的行存取命令。在可选配置中,SDRAM存储器控制器110可实现预取缓冲器,其中SDRAM存储器控制器110将从页中读取数据并将读取的数据存入其预取缓冲器中。从页中读取的数据的量可以是预定的,或者可选地,可以用预取命令来广播该数据量。当CPU 108准备读取数据时,它简单地从预取缓冲器中读取数据,其延迟比从SDRAM 104中读取的延迟低得多。如果CPU 108不需要该数据,那么该数据可由SDRAM存储器控制器110丢弃,而不会经过CPU发送到SDRAM总线114上。SDRAM存储器控制器110可利用任意数目的算法来确定CPU 108不需要数据。举例来说,SDRAM存储器控制器110可在它没在预定时间内接收到来自CPU 108的读取请求或者没有接收到预定数目个对不同页的读取请求的情况下丢弃数据。可选地,如果在SDRAM存储器控制器110接收到对预取缓冲器中的数据的读取请求以前,其接收到后续的预取命令,则SDRAM存储器控制器110可丢弃数据。
图1所示的CPU 108可以以类似的方式,通过将预取命令经系统总线114发送到NAND快闪控制器112,来存取NAND闪存106。预取命令可包括可能由NAND快闪控制器112用来存取NAND闪存106中的存储器的未打开页的地址。NAND快闪控制器112可简单地缓存NAND闪存106中的存储器的页,以给CPU 108带来后续读取请求的延迟较低的好处。可选地,通过预计CPU 108在将来对数据的请求,NAND快闪控制器112能将数据从NAND闪存页缓冲器中读入到预取缓冲器中。如果CPU 108不需要数据,那么数据可由NAND快闪控制器112丢弃。NAND快闪控制器112以与前面关于SDRAM控制器而给出的描述相同的方式,或者通过任何其它方法,来确定CPU 108不需要数据。
在到此为止所描述的实施例中,存储器控制器,无论它是SDRAM存储器控制器110、NAND快闪控制器112,还是任意其它的存储器控制器,都不用响应于预取命令而向总线主控装置发送数据。仅仅响应于总线主控装置对包含在预取命令中的相同地址的后续的读取请求,而通过系统总线发送数据。此外,不需要存储器控制器响应于预取命令而将数据读入到预取缓冲器中或者甚至打开存储器中的页。在某些实施例中,预取命令可仅仅提供来自总线主控装置的通知,即,某个地址在将来会被请求的通知,以及如果存储器控制器能做些什么来最小化传输延迟,则它应该这样做,但不要求这样做的通知。
在集成电路102的一个实施例中,系统总线114可采用地址通道、写通道和读通道来实现。地址通道可被CPU 108用来通过适当的存储器控制器来存取片外存储器中的特定位置。边带信令可用来支持预取命令,以及尤其指示CPU 108正在请求读操作还是写操作的其它控制信号。写通道可以用来通过适当的存储器控制器将数据写到片外存储器中,而读通道可以用来通过适当的存储器控制器将数据从片外存储器中读出。这样的总线结构在本领域内是众所周知的。
在集成电路102的可替代实施例中,总线结构可配置成能将地址通道除去。图2示出了这种概念。可通过将写通道重新定义为“发送通道”202来除去地址通道。发送通道202可以用作在CPU 108和适当的存储器控制器之间以时分复用方式发送信息的一般介质。该信息可包括地址信息、控制信号和要被写到片外存储器上的数据。控制信号的一个实例是指示在一次读或写操作中要从片外存储器中读取或要写到片外存储器上的字节数目的信号。控制信号的另一个实例是指示将利用发送通道的哪些字节通路(byte lane)来发送要写到片外存储器上的数据的信号。举例而言,在32比特发送通道202上发送2字节的数据将需要4条字节通路中的2条。该控制信号可用来向适当的存储器控制器指示,发送通道202上的2条字节通路中的哪一条将被用来发送数据。
联系图2描述的各种概念可使用任意数目的协议来实现。在以下的详细说明中,将提出总线协议的一个实例。提出该总线协议是为了说明处理系统的各发明性方面,并为了理解这些发明性方面可用任意适当的协议来实现。下面的表1中显示出了用于发送通道的基本信令协议。在对此处描述的总线结构的实际应用中,本领域技术人员将能很容易地为这种协议改变和/或添加信号。
表1
Figure BDA00002573718800061
Figure BDA00002573718800071
同样的信令协议可用于以下表2显示的接收通道。
表2
Figure BDA00002573718800072
表3中显示了这种信令协议中使用的类型字段的定义。
表3
  类型值   定义
  000   保留
  001   有效的写地址
  010   有效的写控制信号
  011   有效的写数据
  100   有效的读预取命令
  101   有效的读地址
  110   有效的读控制信号
  111   有效的读数据
表4中显示了该信令协议中的有效和传输确认信号的定义。
表4
Figure BDA00002573718800081
图3是说明如何用预取命令来减小对SDRAM的读取操作的延迟的一个实例的时序图。为了避免模糊本发明的概念,图3中示出的实例仅限于读取操作。此外,将不示出用于这些读取操作的控制信号。本领域的技术人员将能理解,对于任意给定读取操作,简单地通过增加总线宽度和提供用于识别运载控制信号的字节通路的信令,控制信号就能与地址信息平行地在发送通道上发送。
在此实例中,从SDRAM中的未打开页中存取数据的延迟为七个时钟周期,而从SDRAM中的相同打开页中存取数据的延迟为四个时钟周期。此实例中的前两次读取操作是对SDRAM中的相同页进行的,而第三次读取操作是对SDRAM中的不同页进行的。通过利用预取命令,第三次读取操作的延迟可从七个时钟周期减小到四个时钟周期。
系统时钟302可用来同步CPU和SDRAM之间的通信。系统时钟302被显示为带有二十一个时钟周期,并且为了便于解释将每个周期按顺序进行编号。
在第一时钟周期301期间,对存储器关闭页中的地址进行的第一次读取操作可由CPU启动。这可以通过断言(assert)有效信号301,适当地设置类型字段306和在发送通道308上将第一次读取操作所用的地址A0发送到SDRAM控制器来完成。类型字段306可被SDRAM控制器用来确定CPU正在向SDRAM请求对地址A0处的读取操作。在第一时钟周期301结尾,CPU检测由SDRAM控制器对传输确认信号310进行的断言,并确定该传输已被接收和接受。
响应于第一读取操作请求,SDRAM控制器可打开SDRAM中的适当页并开始从地址A0读取数据。由于SDRAM的延迟,在数据可用之前可能经历七个时钟周期时延。一旦数据是可用的,SDRAM控制器就可断言有效信号312并设置类型字段314以在接收通道316上发送数据传输的信号。此实例中的数据传输需要4个时钟周期以容纳CPU请求的数据量和接收通道316的宽度。随后,可在第八、第九、第十和第十一时钟周期315、317、319和321期间通过接收通道316来将数据从SDRAM控制器发送至CPU。在这些时钟周期中的每个的结尾,SDRAM控制器检测由CPU对传输确认信号318进行的断言,并确定该数据传输已被接收和接受。
在第八个时钟周期315期间,CPU可请求对包含第一读取操作所用的地址A0的SDRAM中的相同页进行第二次读取操作。这可以通过断言有效信号304、适当地设置类型字段306和在发送通道308上将第二次读取操作所用的地址A1发送给SDRAM控制器来完成。类型字段306可被SDRAM控制器用来确定CPU正在向SDRAM请求对地址A1处的读取操作。在第八时钟周期315的结尾,CPU检测SDRAM控制器对传输确认信号310进行的断言,并确定该传输已被接收和接受。
由于SDRAM中的页已被打开,所以SDRAM的延迟减小至四个周期,变得对第十二时钟周期323开头的传输可用。一旦数据可用,SDRAM控制器就可断言有效信号312和设置类型字段314,以在接收通道316上发送数据传输的信号。因为被请求的数据的量和接收通道316的宽度,此实例中的数据发送也需要4个时钟周期,因此,本次数据发送可在第十二、十三、十四和十五时钟周期323、325、327和329期间通过接收通道316来发送。在这些时钟周期中的每个的结尾,SDRAM控制器检测由CPU对传输确认信号318进行的断言,并确定该数据传输已被接收和接受。
在第八时钟周期315期间,CPU还预测它将需要来自SDRAM中的不同页中的地址A2的数据,结果,可在第九时钟周期319通过发送通道308发送预取命令。这可以通过断言有效信号304、设置类型字段306以指示预取命令和在发送通道308上将地址A2发送给SDRAM控制器来完成。响应于该预取命令,SDRAM控制器可开始打开SDRAM中的存储器的新的页,并平行地为第一次读取操作通过接收通道316来向CPU传输数据。在第九时钟周期317的结尾,CPU检测由SDRAM控制器对传输确认信号310进行的断言,并确定预取命令已被接收和接受。
在第十四时钟周期327期间,CPU确定它明确地需要来自SDRAM中的地址A2处的数据,因此发送对该数据的读取请求。这可以通过断言有效信号304、适当地设置类型字段306和在发送通道308上将第三次读取操作所用的地址A2发送给SDRAM控制器来完成。类型字段306可被SDRAM控制器用来确定CPU正在向SDRAM请求对地址A2处的读取操作。在第十四时钟周期327的结尾,CPU检测SDRAM控制器对传输确认信号310进行的断言,并确定本发送已被接收和接受。
由于SDRAM控制器已经打开含地址A2的SDRAM中的存储器的页,所以SDRAM的延迟可减小至四个周期,并且数据变成对第八时钟周期335开头的发送可用。一旦数据可用,SDRAM控制器就可断言有效信号312并设置类型字段314,以在接收通道316上发送数据传输的信号。因为被请求的数据的量和接收通道316的宽度,本实例中的数据发送需要4个时钟周期,因此,可在第十八、第十九、第二十、和第二十一时钟周期335、337、339和341期间通过接收通道316来发送该次数据发送。在这些时钟周期中的每个的结尾,SDRAM控制器检测CPU对传输确认信号318进行的断言,并确定数据发送已被接收和接受。
图4是时序图,其示出了如何可以利用预取命令来减小对NAND闪存进行读取操作时的延迟的实例。以与用来描述关于SDRAM的预取命令的方式相类似的方式,图4中示出的实例仅限于读取操作,并且用于那些读取操作的控制信号并未示出。本领域的技术人员将会理解,简单地通过增加总线宽度并提供用于识别运载控制信号的字节通路的信令,就能通过发送通道与任意给定读取操作所用的地址信息并行地发送控制信号。
在此实例中,CPU将从NAND闪存读取数据,该NAND闪存具有n个周期的延迟。该延迟等于将全页数据(典型为512字节)从NAND闪存读入包含在NAND快闪控制器内的较大读取缓冲器中所需的时间。大多数情况下的初始延迟可能是数百个时钟周期。如果CPU只是简单地向NAND快闪控制器请求对关闭页的数据进行读取操作,CPU可停止工作,同时其等待新页的数据加载到NAND快闪控制器中。通过发布预取命令,NAND快闪控制器能够将数据读入到读取缓冲器中同时CPU可继续执行其它指令。此外,接收通道还可用来为其它读操作向CPU发送数据。这倾向于显著地提高接收通道的利用率。
在第一时钟周期301期间,CPU预测它将需要NAND闪存中的地址A0的数据,因此,CPU可通过发送通道308发送预取命令。这可以通过断言有效信号304、设置类型字段306以指示预取命令和在发送通道308上将预取命令所用的地址A0发送给NAND快闪控制器来完成。响应于预取命令,NAND快闪控制器可开始将存储器的新页从NAND闪存中加载到NAND快闪控制器中的读取缓冲器中。在第一时钟周期301的结尾,CPU检测到由NAND快闪控制器对传输确认信号310进行的断言,并确定该预取命令已被接收和接受。
在大多数情况下,将新页从NAND闪存加载到NAND快闪控制器中的处理需要许多周期来完成。在这段时间期间,CPU可在等待NAND闪存将存储器的新页加载到NAND快闪控制器中的同时,继续从其外部高速缓冲存储器或外部存储器中取指令和执行指令。在时钟周期n401,其中n大于或等于加载NAND快闪控制器中的读取缓冲器所需的时间,CPU可通过断言有效信号304、适当地设置类型字段306和在发送通道308上将地址A0发送给NAND快闪控制器来请求对地址A0的读操作。在n时钟周期401的结尾,CPU检测由NAND快闪控制器对传输确认信号310进行的断言,并确定该发送已被接收和接受。
由于NAND闪存中的读取缓冲器已经加载了来自NAND快闪控制器的存储器的页,所以延迟可减小成CPU通过接收通道读取NAND快闪控制器中的缓冲器所必需的时间。在此实例中,读延迟被减小成四个时钟周期。结果,在CPU请求读操作之后再过四个时钟周期,数据可变成可用。一旦数据可用,NAND快闪控制器就可断言有效信号312并设置类型字段314以在接收通道316上发送数据传输的信号。此实例中的数据发送是在四个时钟周期内通过接收通道316发送的。在这些时钟周期中的每个的结尾,NAND快闪控制器检测由CPU对传输确认信号318进行的断言,并确定该次数据发送已经被接收和接受。
结合本文中所公开的实施例描述的多种示例的逻辑块、模块、电路、元件和/或组件可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件部件、或设计成执行本文所述功能的以上的任意组合来实现或执行。通用处理器可以是微处理器,但是可替换地,处理器也可以是任何常规的处理器、控制器、微控制器、或状态机。处理器也可以被实现为计算器件的组合,例如,DSP和微处理器的组合、多个微处理器的组合、一个或多个微处理器与一个DSP核心的组合、或任意其它此类配置。
结合本文中所公开的实施例描述的方法或算法可以直接用硬件、处理器执行的软件模块、或二者的结合来实施。软件模块可置于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的其它形式的存储介质中。可将存储介质连接到处理器,以便处理器可从存储介质读取信息并向存储介质写入信息。可替换地,存储介质可以被集成在处理器中。
对所公开的实施例的上述说明,是为了使本领域的专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与权利要求相一致的最宽的范围,其中除非特别指出,否则对单一元件的标记并不是指“一个和仅仅一个”,而是指“一个或多个”。此公开中描述的各种实施例的元件的所有结构上和功能上的等效体,无论其对于本领域普通技术人员来说是已知的还是将在以后变成已知的,都在此通过引用将其特意结合到本文中,并且这些等效体应包含在各权利要求中。此外,在此公开的任何内容都不是贡献给公众的,不管此公开内容是否明确地在权利要求中被引用。除了明确地用短语“用于做什么的装置”或者在方法权利要求的情况下用短语“用于做什么的步骤”来陈述的元件外,该权利要求中的元件都不应基于35U.S.C.§112第六条来解释。

Claims (9)

1.一种系统,包括:
处理器;和
用于存储数据的装置,该数据是响应于在所述用于存储数据的装置处从所述处理器接收的预取命令而从存储器取回的,其中所述用于存储数据的装置:
是所述处理器经由系统总线可访问的;
配置成响应于在接收到对所述数据的读取命令之前接收到后续预取命令,丢弃所述数据;以及
配置成与接收的输入读取请求无关地保留所述数据,该输入读取请求用于存取没有与所述数据相对应的存储器页。
2.一种系统,包括:
处理器;和
用于存储数据的装置,该数据是响应于在所述用于存储数据的装置处从所述处理器接收的预取命令而从存储器取回的,其中所述用于存储数据的装置:
是所述处理器经由系统总线可访问的;
配置成响应于在接收到对所述数据的读取命令之前接收到后续预取命令,丢弃所述数据;以及
包括存储器控制器,该存储器控制器配置成接收边带信号,该边带信号包括类型代码并配置成使用所述类型代码来区分所述预取命令和所述读取命令。
3.如权利要求2所述的系统,其中所述存储器控制器进一步配置成响应于接收到来自所述处理器的识别所述系统总线的一个或多个字节通路的控制信号,经由所述一个或多个字节通路从所述处理器接收数据。
4.一种系统,包括:
存储器控制器,其包括缓冲器,其中所述存储器控制器配置成:
响应于接收到来自处理器的对数据的预取请求,将数据从存储器的页存储到所述缓冲器;
响应于对所述数据的读取请求,将存储在所述缓冲器的所述数据发送到所述处理器;
响应于在所述存储器控制器接收到对所述缓冲器中存储的所述数据的读取请求之前所述存储器控制器接收到后续预取请求,丢弃所述缓冲器中存储的所述数据;以及
响应于接收到预定数目个对第二数据页的读取请求并且没有接收到对所述缓冲器中存储的所述数据的读取请求,丢弃所述缓冲器中存储的所述数据。
5.如权利要求4所述的系统,其中所述存储器控制器进一步配置成,响应于接收到预定数目个对第二数据页的读取请求并且没有接收到对所述缓冲器中存储的所述数据的读取请求,丢弃所述缓冲器中存储的所述数据。
6.如权利要求4所述的系统,进一步包括时分复用传输通道,其配置成在所述处理器与所述存储器控制器之间传送指令和所述数据,其中所述时分复用传输通道包括多个字节通路,并且所述存储器控制器配置成接收控制信号,该控制信号识别将用于发送要被写到片外存储器的数据的所述多个字节通路中的一个或多个。
7.如权利要求4所述的系统,其中所述存储器控制器进一步配置成,使用在所述存储器控制器处经由边带信号接收到的类型代码识别从所述处理器接收到的指令的类型,并且所述类型代码指示所述指令是预取指令还是读取指令。
8.如权利要求4所述的系统,其中所述总线包括时分复用传输通道,其配置成将第一数据和指令从所述处理器发送到所述存储器控制器,并且进一步包括接收通道,该接收通道配置成将第二数据和指令从所述存储器控制器发送到所述处理器。
9.一种方法,包括:
在存储器控制器处接收边带信号,其中所述边带信号包括类型代码;
使用所述类型代码来区分预取命令和读取命令;
将数据存储在所述存储器控制器,其中所述数据是响应于所述预取命令从存储器取回的;以及
响应于在接收到对所述数据的读取命令之前接收到后续预取命令,而从所述存储器控制器丢弃所述数据。
CN201210536627.XA 2004-08-27 2005-08-26 用于在总线上发送存储器预取命令的方法和设备 Expired - Fee Related CN103034476B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/929,127 2004-08-27
US10/929,127 US8028143B2 (en) 2004-08-27 2004-08-27 Method and apparatus for transmitting memory pre-fetch commands on a bus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2005800371547A Division CN101048762B (zh) 2004-08-27 2005-08-26 用于在总线上发送存储器预取命令的方法和设备

Publications (2)

Publication Number Publication Date
CN103034476A true CN103034476A (zh) 2013-04-10
CN103034476B CN103034476B (zh) 2016-07-06

Family

ID=35517148

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201210536627.XA Expired - Fee Related CN103034476B (zh) 2004-08-27 2005-08-26 用于在总线上发送存储器预取命令的方法和设备
CN2005800371547A Expired - Fee Related CN101048762B (zh) 2004-08-27 2005-08-26 用于在总线上发送存储器预取命令的方法和设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2005800371547A Expired - Fee Related CN101048762B (zh) 2004-08-27 2005-08-26 用于在总线上发送存储器预取命令的方法和设备

Country Status (9)

Country Link
US (1) US8028143B2 (zh)
EP (1) EP1784731A1 (zh)
JP (2) JP2008511925A (zh)
KR (1) KR100913279B1 (zh)
CN (2) CN103034476B (zh)
IL (1) IL181615A0 (zh)
MX (1) MX2007002367A (zh)
TW (1) TWI391819B (zh)
WO (1) WO2006026428A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383926A (zh) * 2016-08-29 2017-02-08 北京中电华大电子设计有限责任公司 一种基于Cortex‑M系列处理器的指令预取方法及电路
CN111459857A (zh) * 2020-03-31 2020-07-28 西安微电子技术研究所 一种tcm控制器及数据缓存读取方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209998B2 (en) * 2004-02-04 2007-04-24 Qualcomm Incorporated Scalable bus structure
US7912994B2 (en) * 2006-01-27 2011-03-22 Apple Inc. Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host
JP2008009702A (ja) * 2006-06-29 2008-01-17 Matsushita Electric Ind Co Ltd 演算処理システム
US7730268B2 (en) * 2006-08-18 2010-06-01 Cypress Semiconductor Corporation Multiprocessor system having an input/output (I/O) bridge circuit for transferring data between volatile and non-volatile memory
CN101636778B (zh) * 2007-03-15 2011-12-28 日本电气株式会社 半导体集成电路装置
US8275946B1 (en) * 2007-04-19 2012-09-25 Marvell International Ltd. Channel tags in memory components for optimizing logical to physical address translations
KR101228934B1 (ko) * 2007-08-28 2013-02-01 삼성전자주식회사 컴퓨터 시스템, 그 제어 방법 및 데이터 처리 장치
JP4643667B2 (ja) * 2008-03-01 2011-03-02 株式会社東芝 メモリシステム
CN101464845B (zh) * 2009-01-09 2012-09-05 威盛电子股份有限公司 用于总线系统的预取装置、预取系统及预取数据方法
US9720859B1 (en) * 2010-04-30 2017-08-01 Mentor Graphics Corporation System, method, and computer program product for conditionally eliminating a memory read request
CN102207916B (zh) * 2011-05-30 2013-10-30 西安电子科技大学 一种基于指令预取的多核共享存储器控制设备
KR101480420B1 (ko) * 2013-02-15 2015-01-13 연세대학교 산학협력단 메모리-디스크 통합 시스템
CN105264501B (zh) * 2013-06-19 2018-06-08 英派尔科技开发有限公司 定位多核处理器中的被高速缓存的数据的方法和装置
US9563551B2 (en) * 2013-06-20 2017-02-07 Silicon Motion, Inc. Data storage device and data fetching method for flash memory
KR101985157B1 (ko) * 2013-12-26 2019-05-31 인텔 코포레이션 멀티칩 패키지 링크
KR102507219B1 (ko) * 2016-02-02 2023-03-09 에스케이하이닉스 주식회사 시스템 및 시스템의 동작 방법
US10394706B2 (en) * 2017-11-02 2019-08-27 Western Digital Technologies, Inc. Non-volatile storage with adaptive command prediction
US10642502B2 (en) 2018-06-29 2020-05-05 Western Digital Technologies, Inc. System and method for prediction of read commands to non-sequential data
US10649776B2 (en) 2018-06-29 2020-05-12 Western Digital Technologies, Inc. System and method for prediction of multiple read commands directed to non-sequential data
US10846226B2 (en) 2019-01-28 2020-11-24 Western Digital Technologies, Inc. System and method for prediction of random read commands in virtualized multi-queue memory systems
US10896131B2 (en) 2019-01-28 2021-01-19 Western Digital Technologies, Inc. System and method for configuring a storage device based on prediction of host source
US10719445B1 (en) 2019-02-28 2020-07-21 Western Digital Technologies, Inc. System and method for scaling a historical pattern matching data structure in a memory device
US10725781B1 (en) 2019-02-28 2020-07-28 Western Digital Technologies, Inc. System and method for chain prediction of multiple read commands
US11010299B2 (en) 2019-05-20 2021-05-18 Western Digital Technologies, Inc. System and method for performing discriminative predictive read
US11416263B1 (en) 2021-02-12 2022-08-16 Western Digital Technologies, Inc. Boosted boot procedure by background re-arrangement of read patterns

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020056027A1 (en) * 1998-10-29 2002-05-09 Hiroki Kanai Information processing system
US20040096220A1 (en) * 1998-05-20 2004-05-20 Fujitsu Limited Optical transmisssion system and optical transmission device
CN1499380A (zh) * 2002-10-29 2004-05-26 �Ҵ���˾ 产生预测地址值的电路和方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430634B1 (en) * 1997-02-07 2002-08-06 Mitsubishi Denki Kabushiki Kaisha Bus controller and bus control system
US5848025A (en) 1997-06-30 1998-12-08 Motorola, Inc. Method and apparatus for controlling a memory device in a page mode
US6389514B1 (en) * 1999-03-25 2002-05-14 Hewlett-Packard Company Method and computer system for speculatively closing pages in memory
KR100342004B1 (ko) 1999-08-06 2002-07-02 다니구찌 이찌로오, 기타오카 다카시 버스제어장치 및 버스제어시스템
US6636927B1 (en) * 1999-09-24 2003-10-21 Adaptec, Inc. Bridge device for transferring data using master-specific prefetch sizes
US6292402B1 (en) * 1999-12-08 2001-09-18 International Business Machines Corporation Prefetch write driver for a random access memory
US6560693B1 (en) * 1999-12-10 2003-05-06 International Business Machines Corporation Branch history guided instruction/data prefetching
US6515672B1 (en) * 1999-12-23 2003-02-04 Intel Corporation Managing prefetching from a data buffer
US6601167B1 (en) * 2000-01-14 2003-07-29 Advanced Micro Devices, Inc. Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program
JP3789722B2 (ja) * 2000-03-31 2006-06-28 三菱電機株式会社 Dramコントロール装置及びdramコントロール方法
JP3873589B2 (ja) 2000-07-12 2007-01-24 株式会社日立製作所 プロセッサシステム
US6988161B2 (en) * 2001-12-20 2006-01-17 Intel Corporation Multiple port allocation and configurations for different port operation modes on a host
US6938146B2 (en) * 2002-12-19 2005-08-30 International Business Machines Corporation Memory power management using prefetch buffers
US7020762B2 (en) * 2002-12-24 2006-03-28 Intel Corporation Method and apparatus for determining a dynamic random access memory page management implementation
JP2005275735A (ja) * 2004-03-24 2005-10-06 Advanet Inc Cpuと記憶装置の間に配置される制御装置及びチップセット

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040096220A1 (en) * 1998-05-20 2004-05-20 Fujitsu Limited Optical transmisssion system and optical transmission device
US20020056027A1 (en) * 1998-10-29 2002-05-09 Hiroki Kanai Information processing system
CN1499380A (zh) * 2002-10-29 2004-05-26 �Ҵ���˾ 产生预测地址值的电路和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383926A (zh) * 2016-08-29 2017-02-08 北京中电华大电子设计有限责任公司 一种基于Cortex‑M系列处理器的指令预取方法及电路
CN111459857A (zh) * 2020-03-31 2020-07-28 西安微电子技术研究所 一种tcm控制器及数据缓存读取方法

Also Published As

Publication number Publication date
MX2007002367A (es) 2007-05-11
JP2008511925A (ja) 2008-04-17
JP2012009048A (ja) 2012-01-12
EP1784731A1 (en) 2007-05-16
TWI391819B (zh) 2013-04-01
CN101048762A (zh) 2007-10-03
JP5231612B2 (ja) 2013-07-10
US8028143B2 (en) 2011-09-27
CN103034476B (zh) 2016-07-06
KR20070049676A (ko) 2007-05-11
CN101048762B (zh) 2012-12-26
IL181615A0 (en) 2007-07-04
US20060047914A1 (en) 2006-03-02
WO2006026428A1 (en) 2006-03-09
KR100913279B1 (ko) 2009-08-21
TW200629064A (en) 2006-08-16

Similar Documents

Publication Publication Date Title
CN103034476A (zh) 用于在总线上发送存储器预取命令的方法和设备
US6799257B2 (en) Method and apparatus to control memory accesses
EP2290549B1 (en) Protocol for communication with dynamic memory
US7536530B2 (en) Method and apparatus for determining a dynamic random access memory page management implementation
US6874044B1 (en) Flash drive/reader with serial-port controller and flash-memory controller mastering a second RAM-buffer bus parallel to a CPU bus
US6704817B1 (en) Computer architecture and system for efficient management of bi-directional bus
US6591353B1 (en) Protocol for communication with dynamic memory
US20080043546A1 (en) Method of Controlling A Memory Device Having a Memory Core
US8356143B1 (en) Prefetch mechanism for bus master memory access
US5175826A (en) Delayed cache write enable circuit for a dual bus microcomputer system with an 80386 and 82385
US6842831B2 (en) Low latency buffer control system and method
US11762768B2 (en) Accessing circuit of memory device and operation method about reading data from memory device
US7249223B2 (en) Prefetching in a data processing system
US9135157B2 (en) Integrated circuit device, signal processing system and method for prefetching lines of data therefor
US6076170A (en) Method and apparatus for selectively programming access time in a data processor
JP2001229074A (ja) メモリ制御装置と情報処理装置及びメモリ制御チップ
JP2000090003A (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
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: 20160706

Termination date: 20180826

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