CN1306418C - 从存储装置中检索信息的方法和系统 - Google Patents
从存储装置中检索信息的方法和系统 Download PDFInfo
- Publication number
- CN1306418C CN1306418C CNB038136805A CN03813680A CN1306418C CN 1306418 C CN1306418 C CN 1306418C CN B038136805 A CNB038136805 A CN B038136805A CN 03813680 A CN03813680 A CN 03813680A CN 1306418 C CN1306418 C CN 1306418C
- Authority
- CN
- China
- Prior art keywords
- information
- flash memory
- processor
- request
- requested
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及检索信息的方法和系统,更具体地,涉及从诸如闪存之类的存储装置中检索信息的方法和系统。
背景技术
可以将各种存储装置用于计算系统来存储信息。确定从存储装置中检索信息的合适的方法和装置可能会有问题。因为在运行期间,计算机系统可以对存储装置进行多个访问,存储装置的类型和用于从这些存储装置检索信息的算法可以影响系统性能。
因此,不断需要备选的方法来从计算系统的存储器中检索信息。
发明内容
为了解决上述技术问题,本发明是通过以下技术方案实现的:提供一种方法,包括接收来自处理器的对于闪存中信息的请求,其中处理器适用于执行软件,确定处理器是否启用闪存中信息的预取,如果预取被启用,则根据所述请求从闪存传送该请求所请求的信息并在闪存中标识未被请求的信息,如果预取未被启用,则根据所述请求从闪存传送该请求所请求的信息。
本发明的另一方面是提供一种非易失性存储设备,其包括存储器,以及预取控制器,适用于确定适用于执行软件的处理器是否发出预取启用信号,所述预取控制器适用于如果发出了所述预取启用信号,则根据来自处理器的请求从所述非易失性存储设备的存储器中预取未被请求的信息,如果未发出所述预取启用信号,则不根据该请求预取未被请求的信息。
本发明的又一方面是提供一种系统,其包括适用于执行软件、请求信息、以及发出预取启用信号的处理器,和在处理器外部的闪存,其中所述闪存包括存储器单元阵列以及适用于确定预取启用信号是否已发出的预取控制器,所述预取控制器适用于如果发出了所述预取启用信号,则根据来自处理器的请求从所述闪存的存储器单元阵列中预取未被请求的信息,如果未发出所述预取启用信号,则不根据该请求预取未被请求的信息,以及耦合至闪存的易失性存储器。
与现有技术相比,本发明的有益效果是增强了信息检索的性能,并提高了系统的灵活性。
附图说明
在说明书的结论部分中特别指出并清楚地要求保护作为本发明的主题事项。然而,要求保护的主题事项的组织和操作方法以及其目的、特征和优点可以通过参照结合附图阅读的以下详细说明得以最好地理解。
图1为示出根据要求保护的主题事项的一个实施例的计算系统的方框图;和
图2为示出根据要求保护的主题事项的一个实施例的存储检索信息的方法的流程图。
应理解,为了简化和清楚,在图中所示的元件不必需按比例绘制。例如:为了清楚,将一些元件的尺寸相对其它元件放大了。另外,在认为合适的地方,在附图中重复标号指示相应或类似的元件。
具体实施方式
在以下的详细说明中,为了便于全面地理解要求保护的主题事项,列出了许多特定的细节。然而,本领域的技术人员应理解不用这些特定的细节也可以实施要求保护的主题事项。在另一些实例中,为了不混淆要求保护的主题事项,没有对已知的方法、过程、部件和电路进行详细描述。
要求保护的主题事项的实施例可包括一个用于执行这里的操作的装置。可以为希望的目的特别构造该装置,或者它可以包括一个由存储在设备中的程序选择性地启动或重新配置的通用计算设备。该程序可以存储在存储器媒体上,例如,但不限于,任何类型的盘,包括软盘、光盘、CD-ROM、磁-光盘、电机盘、只读存储器(ROM)、随机存储器(RAM)、电可编程只读存储器(EPORM)、电可擦写可编程只读存储器(EEPROM)、闪存、磁或光卡、或其它任何类型的适用于存储电指令和数据的媒体。
要求保护的主题事项的实施例的说明不是相对于任何特定的编程语言。应理解可以将各种编程语言用于实施这里所述的要求保护的主题事项的原理。例如:可以将高层过程上的,面向对象的汇编或机器编程语言用于实施要求保护的主题事项。
在以下说明书和权利要求中,会将术语“耦合的”和“连接的”与它们的派生词一起使用。应理解这些术语不应是彼此作为同义词。在特定实施例中,可以将“连接的”用于指直接物理接触或电接触的两个或多个元件。“耦合的”可以指直接物理接触或电接触的两个或多个元件。然而,“耦合的”还可以指相互不直接接触但仍彼此合作或互动的两个或多个元件。
图1示出计算系统100的一个实施例。可以将计算系统100用于各种应用,例如:个人数字助理(PDA)、双向寻呼机、蜂窝电话、便携式计算机、台式计算机、工作站或服务器。然而应指出要求保护的主题事项的范围和应用决不是限于这些实例。
在该实施例中,计算系统100可包括通过总线140相互耦合的处理器110、高速缓冲存储器120和闪存130。总线140可以是数据通路,包括,例如:一组将数据从计算系统100的一部分传送到另一部分的数据线。
虽然要求保护的主题事项的范围不限于此方面,处理器110可包括,例如:一个或多个微处理器、数字信号处理器、微控制器等等。处理器110可以执行诸如软件程序或操作系统之类的软件过程,其中软件过程可以使用诸如数据和/或指令之类的数字信息。
可以将高速缓冲存储器120和闪存130称为存储装置并将其用于存储信息(例如:由操作系统使用的指令或数据,或可以由处理器110执行的软件程序)。处理器110可以控制高速缓冲存储器120和闪存130。例如,处理器110可以控制计算系统中信息的传送(例如:在处理器110、高速缓冲存储器120和闪存130之间)。处理器110可以与高速缓冲存储器120和闪存130集成(在芯片上)。在另选的实施例中,处理器110可以是离散的部件或专用的芯片,其中处理器110在高速缓冲存储器120和闪存130的外部(芯片外)。类似地,高速缓冲存储器120和快闪存储器130可以是互相在外部的和在处理器外部的离散组件。在其它实施例中,处理器110可以合并一存储器控制器(未示出),以控制计算系统100中信息的传送。在另选实施例中,可以在处理器110中实施存储器控制器(未示出)的部分功能性,例如,软件应用程序、模块或例行程序。
高速缓冲存储器120和闪存130可以具有不同的物理特性,例如:不同的访问时间、存储器容量、功耗、和易失性特性。
访问时间可以指将信息存储到存储装置或从存储装置读取信息所花的时间量。例如,高速缓冲存储器120可以是比闪存139相对更快的存储装置,即,高速缓冲存储器120的访问时间可以比闪存130的访问时间少,虽然要求保护的主题事项的范围不限于此方面。在一个实施例中,高速缓冲存储器120可以具有小于20毫微秒的访问时间,例如约10毫微秒。闪存130可以比具有至少20毫微秒的高速缓冲存储器120较慢的访问时间,例如,50毫微秒。在另选的实施例中,虽然要求保护的主题事项的范围不限于此方面,高速缓冲存储器120可以具有小于10毫微秒的访问时间,例如,约1毫微秒。闪存130可以具有比至少10毫微秒的高速缓冲存储器120相对较慢的访问时间,例如,约20毫微秒。
虽然要求保护的主题事项的范围不限于此方面,高速缓冲存储器120可以是比闪存130相对更小的存储装置,例如,高速缓冲存储器120的存储器容量可以小于闪存130的存储容量。例如,高速缓冲存储器120可以具有小于32兆的存储容量,例如,约16兆。闪存130可以比具有至少32兆的高速缓冲存储器120相对较大的存储容量,例如,约256兆。
如上述一些实施例中所示,高速缓冲存储器120可以是比闪存130相对更小和更快的存储装置类型。高速缓冲存储器120可以在计算系统100的运行期间经常高速缓存从闪存130访问到的信息,虽然要求保护的主题事项的范围不限于此方面。因为经常被访问的信息是从闪存130请求的,它可以在高速缓冲存储器120中可供使用,从而避免了在闪存130中较长时间的搜索和读取。因此,通过在高速缓冲存储器120中高速缓存信息来提高整个系统的性能。
在一些实施例中,高速缓冲存储器120可以是易失性存储器,例如,静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM),虽然要求保护的主题事项的范围不限于此方面。在另选的实施例中,高速缓冲存储器120可以是非易失性存储器。高速缓冲存储器120还可以是具有备用电池的易失性存储器,因为电池可以防止存储器在主电源关闭时丢失其内容。
在该实施例中,闪存是电可编程和电可擦写非易失性存储器,还可以是NAND或NOR型闪存。闪存130可能会存储每个单元的多个位。闪存130可以包括一个存储单元阵列150,它可以包括多个存储单元(未示出)。每个存储单元可包括一存储电荷(例如:电子或空穴)的浮动栅。存储器的状态可以由在浮动栅上的电子或空穴的缺失或存在来确定。
闪存130还可以包括彼此耦合的缓冲器170和预取控制器180、存储单元阵列150和总线140。缓冲器170可以是在闪存130中用于临时存储信息的寄存器或存储区域。预取控制器180可以控制存储在存储单元阵列150中的信息的预取。可以将预取的信息传送至缓冲器170和/或高速缓冲存储器120。在此实施例中,预取控制器180在闪存130的内部。在另选的实施例中,预取控制器180可以在闪存130的外部。例如:预取控制器180可以与处理器110集成,或预取控制器180的部分功能可以在处理器110中作为,例如,软件应用程序、模块或例行程序实施。在其它实施例中,预取控制器180可以在闪存130的外部并在物理上或结构上比处理器110更接近闪存130。另外,在此实施例中示出的缓冲器170在闪存130内部。在另选的实施例中,缓冲器170还可以在闪存的外部并可以在物理上或结构上比处理器110更接近闪存130。另选地,缓冲器170可以会在闪存130的外部并可以在物理上或结构上比闪存130更接近处理器110。
在读取操作期间,在处理器110中执行的软件过程可以请求存储在闪存130中的信息。此请求的信息可以从存储单元阵列150的存储器位置传送至处理器110进行处理。在存储单元阵列150中的存储器位置可以具有用于访问存储单元阵列150中的信息的对应的地址。可以将请求的信息传送至高速缓冲存储器120。因此,在接下来的读取操作中,可以首先在高速缓冲存储器120中找到请求的信息。
为了在读取操作期间请求信息,可以将标识在存储单元阵列150中的请求的信息位置的地址从处理器110传送至闪存130,并且可以检索到在存储单元阵列150中的请求的地址处的请求的信息。可以将请求的信息传送到缓冲器170。例如,虽然要求保护的主题事项的范围不限于此方面,请求的信息可以是大小为256比特,且将256比特的信息从存储单元阵列150传送至缓冲器170的操作需要约三个时钟周期。在此实例中,总线140可以是64比特总线,因此,将256比特的信息从缓冲器170传送至高速缓冲存储器120或处理器110会需要约四个时钟周期。因此,在此例中,将信息从存储单元阵列150传送至高速缓冲存储器120或处理器110会需要约七个时钟周期,虽然要求保护的主题事项的范围不限于此方面。
预取操作或预取可包括通过在处理器110中执行的软件过程在请求信息之前从存储单元阵列150检索信息。预取可以是猜测操作,而且可以从不请求未请求的信息。可以将未请求的信息传送至缓冲器170和/或高速缓冲存储器120。可以将由预取操作标识的未请求的信息称为预取信息。
信息的预取可以改善系统性能。例如,在传送256比特信息的上述实施例中,在读取256比特请求的信息期间或之后,可以预取未请求信息并将其放入缓冲器170中。如果预取的信息是在接下来的存储器访问期间被请求的,且如果可以在缓冲器170中而不是存储单元阵列150中得到该信息,则可以在总共四个时钟周期内而不是七个时钟周期内将预取的信息传送至处理器110或高速缓冲存储器120。在此例中,从闪存130存取信息的时间量减少了,从而提高了计算系统100的整个处理速度。
为了识别或确定预取哪个信息,可以采用许多预取算法。例如,可以基于请求的信息在闪存130中的位置来识别未请求信息。在此例中,可以预取靠近或紧靠(例如:相邻的或连续的)请求的信息的未请求信息。
在其它实施例中,可以基于请求的信息的属性或特征来识别未请求的信息。例如:可以将处理器110或预取控制器180用于检验请求的信息并确定,例如,该请求的信息是否包括跳转指令或跳转地址。如果请求的信息为跳转指令,则可以将在该跳转地址的未请求信息从存储单元阵列150预取至缓冲器170。又例如:如果请求的信息是一条包括条件转移的指令,则可以预取来自转移地址的数据。在另一实例中,如果请求的信息是不包括绝对地址的转移或跳转指令,则预取控制器180可以操作该地址(例如:加一个偏移量或屏蔽某些位)来确定未请求的数据的绝对地址。因为不同种类的处理器的跳转指令可以不同,可以将预取控制器180用于解释不同系列处理器的跳转指令。
在一些实施例中,可以启用或不启用从存储单元阵列150预取信息。例如:处理器110可以将预取启用信号传送至预取控制器180以启用在闪存130中预取。在此例中,预取控制器180响应于由处理器110发出启用在闪存130中预取的预取启用信号。不启用预取计算系统100中的资源可以减少计算系统100的功耗。
图2示出根据要求保护的主题事项的的一个实施例检索信息的方法200。可以参照计算系统100说明该方法(图1)。在一些实施例中,预取控制器180和/或处理器110可包括电路、软件、或电路和软件的组合,以实施图2所述的方法。虽然将方法200的单个动作示出和描述成分开的动作,可以同时执行一个或多个单个的动作,且要求保护的主题事项的范围不限于按所示的次序执行。
此实施例可以从确定是否启用从闪存130的存储单元阵列150预取信息(块210)开始。可以根据存储器访问的预定知识来作出该确定。例如:系统设计员或软件程序员会知道一组存储器访问是相关,例如,系统设计员会知道数据块依次地存储在存储单元阵列150中。因此,在此例中,系统设计员可以选择启用预取紧靠请求的信息的未请求的信息。
图2所示的方法可包括由处理器110中执行的软件过程执行的读取操作。该读取操作可包括通过将请求地址传送给闪存130从闪存130请求信息,其中请求地址对应于存储单元阵列150中的请求的信息的存储位置。该读取操作还可包括先将请求的信息传送至缓冲器170,然后将请求的信息从缓冲器170传送至处理器110和/或高速缓冲存储器120。
如启用了预取,预取可包括标识存储单元阵列150中的未请求的信息(框230)。在一些实施例中,标识未请求的信息可包括基于请求的信息的位置标识位于存储单元阵列150中的区域中的未请求信息。例如:预取可包括标识与请求的信息相邻的未请求的信息。在另选的实施例中,标识未请求的信息可包括基于请求的信息的特征标识位于存储单元阵列150的区域中的未请求的信息。在标识预取信息期间或之后,可以存储在存储单元阵列150中的预取信息的地址,该地址可以称为预取地址。
可以将未请求的信息从存储单元阵列150传送至缓冲器170(240)。可以在预取操作之后进行读取操作,该读取操作可包括将请求地址传送至闪存130。预取控制器180可以将请求地址与预取地址相比较。在请求从闪存检索信息期间(例如:在读取操作期间),如果请求的地址和预取地址相匹配(例如:等于或约等于),可以称之为“预取命中”。相反地,如果请求地址和预取地址不匹配,可以称之为“预取未命中”。
如果请求地址与预取地址相匹配,则预取控制器180可以启用将先前的未请求的或预取信息从缓冲器170传送至处理器110(框250)。在一些实施例中,还可以将预取信息传送至高速缓冲存储器120。如果请求的地址与预取地址不匹配,则预取控制器180会防止将未请求的信息从缓冲器170传送至处理器110。如果有预取未命中,可以从缓冲器170移去未请求的信息。
如果有预取命中,可以通过仅传送来自缓冲器170的预取信息来提高计算系统100的效率。例如:可以节省用于将预取信息从缓冲器170传送至处理器110或高速缓冲存储器120的能量和资源。因此,如果预取命中,通过仅仅传送来自缓冲器170的预取信息,可以减少计算系统100的功耗,且总线可以自由地处理其它信息传送。
虽然这里示出和描述了本发明的某些特征,本领域的技术人员会想到许多修改、替换、变化和等效物。因此,应理解所附的权利要求旨在覆盖所有那些落入本发明的真实精神内的修改和变化。
Claims (18)
1.一种方法,其特征在于,包括:
接收来自处理器的对于闪存中信息的请求,其中处理器适用于执行软件;
确定处理器是否启用闪存中信息的预取;
如果预取被启用,则根据所述请求从闪存传送该请求所请求的信息并在闪存中标识未被请求的信息;
如果预取未被启用,则根据所述请求从闪存传送该请求所请求的信息。
2.如权利要求1所述的方法,其特征在于,所述确定处理器是否启用预取包括确定处理器是否发出预取启用信号。
3.如权利要求1所述的方法,其特征在于,被请求的信息位于闪存的第一区域中;并且
其中所述标识未被请求的信息包括基于请求的信息的位置在闪存的第二区域中标识未请求信息。
4.如权利要求3所述的方法,其特征在于,所述第二区域与第一区域相邻。
5.如权利要求1所述的方法,其特征在于
所述标识未被请求的信息包括基于请求的信息的特征来标识位于闪存内的未请求信息。
6.如权利要求5所述的方法,其特征在于,还包括:
确定请求的信息是否包括跳转指令或跳转地址;且
其中所述标识未请求的信息还包括基于该地址来标识未请求的信息。
7.如权利要求1所述的方法,其特征在于,包括将未请求的信息传送至闪存中的缓冲器。
8.如权利要求1所述的方法,其特征在于,包括将未请求的信息传送至访问时间比闪存的访问时间少的存储装置中。
9.如权利要求1所述的方法,其特征在于,还包括:
接收对信息的另一个请求的请求地址;
将请求的地址与所标识的未请求信息的预取地址相比较;以及
如果预取地址等于请求地址,则传送所标识的未请求信息。
10.一种非易失性存储设备,包括:
存储器;以及
预取控制器,适用于确定适用于执行软件的处理器是否发出预取启用信号,所述预取控制器适用于如果发出了所述预取启用信号,则根据来自处理器的请求从所述非易失性存储设备的存储器中预取未被请求的信息,如果未发出所述预取启用信号,则不根据该请求预取未被请求的信息。
11.如权利要求10所述的非易失性存储设备,其特征在于,包括用于存储未请求信息的缓冲器,并且
在发出所述预取启用信号的过程中或之后,所述预取控制器适用于将非易失性存储设备中的未请求信息传送至所述缓冲器。
12.如权利要求11所述的非易失性存储设备,其特征在于,所述缓冲器是寄存器。
13.如权利要求10所述的非易失性存储设备,其特征在于,所述预取控制器适用于将来自处理器的请求地址与非易失性存储设备的未请求信息的地址相比较。
14.一种系统,其特征在于,包括:
适用于执行软件、请求信息、以及发出预取启用信号的处理器;和
在处理器外部的闪存,其中所述闪存包括存储器单元阵列以及适用于确定预取启用信号是否已发出的预取控制器,所述预取控制器适用于如果发出了所述预取启用信号,则根据来自处理器的请求从所述闪存的存储器单元阵列中预取未被请求的信息,如果未发出所述预取启用信号,则不根据该请求预取未被请求的信息;和
耦合至闪存的易失性存储器。
15.如权利要求14所述的系统,其特征在于,所述闪存还包括存储未请求的信息的缓冲器,并且其中在预取信号发出期间或之后,所述未请求的信息被从所述闪存的存储器单元阵列传送至缓冲器。
16.如权利要求14所述的系统,其特征在于,所述预取控制器适用于将来自处理器的请求地址与闪存中的未请求信息的地址相比较。
17.如权利要求16所述的系统,其特征在于,如果当请求地址等于未请求信息的地址时,所述预取控制器启用向处理器传送未请求的信息。
18.如权利要求15所述的系统,其特征在于,所述缓冲器是寄存器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/136,018 US20030204675A1 (en) | 2002-04-29 | 2002-04-29 | Method and system to retrieve information from a storage device |
US10/136,018 | 2002-04-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1659527A CN1659527A (zh) | 2005-08-24 |
CN1306418C true CN1306418C (zh) | 2007-03-21 |
Family
ID=29249595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038136805A Expired - Fee Related CN1306418C (zh) | 2002-04-29 | 2003-04-25 | 从存储装置中检索信息的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20030204675A1 (zh) |
EP (1) | EP1504348A2 (zh) |
CN (1) | CN1306418C (zh) |
AU (1) | AU2003228713A1 (zh) |
WO (1) | WO2003094004A2 (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957300B2 (en) * | 2001-11-30 | 2005-10-18 | Seagate Technology Llc | Reducing delay of command completion due to overlap condition |
WO2004021191A1 (ja) * | 2002-08-29 | 2004-03-11 | Matsushita Electric Industrial Co., Ltd. | 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 |
US7340566B2 (en) * | 2002-10-21 | 2008-03-04 | Microsoft Corporation | System and method for initializing a memory device from block oriented NAND flash |
TWI227499B (en) * | 2003-12-11 | 2005-02-01 | Carry Computer Eng Co Ltd | Non-volatile storage device and controller and data transaction method thereof |
US7877566B2 (en) * | 2005-01-25 | 2011-01-25 | Atmel Corporation | Simultaneous pipelined read with multiple level cache for improved system performance using flash technology |
KR101257848B1 (ko) * | 2005-07-13 | 2013-04-24 | 삼성전자주식회사 | 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법 |
US7743202B2 (en) * | 2006-03-09 | 2010-06-22 | Mediatek Inc. | Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system |
US8996784B2 (en) * | 2006-03-09 | 2015-03-31 | Mediatek Inc. | Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system |
JP2008046964A (ja) * | 2006-08-18 | 2008-02-28 | Toshiba Corp | 情報記録装置及びその制御方法 |
KR101300657B1 (ko) | 2007-07-06 | 2013-08-27 | 삼성전자주식회사 | 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법 |
US8959307B1 (en) * | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US9135190B1 (en) | 2009-09-04 | 2015-09-15 | Bitmicro Networks, Inc. | Multi-profile memory controller for computing devices |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) * | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
JP5520747B2 (ja) * | 2010-08-25 | 2014-06-11 | 株式会社日立製作所 | キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体 |
CN102087634B (zh) * | 2011-01-27 | 2012-10-03 | 凌阳科技股份有限公司 | 用于提高缓存命中率的装置及方法 |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
US9164676B2 (en) * | 2011-11-30 | 2015-10-20 | International Business Machines Corporation | Storing multi-stream non-linear access patterns in a flash based file-system |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
CN104520808A (zh) * | 2012-07-12 | 2015-04-15 | 惠普发展公司,有限责任合伙企业 | 提供待检索的数据 |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9858084B2 (en) | 2013-03-15 | 2018-01-02 | Bitmicro Networks, Inc. | Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US9563551B2 (en) * | 2013-06-20 | 2017-02-07 | Silicon Motion, Inc. | Data storage device and data fetching method for flash memory |
TWI584117B (zh) * | 2013-06-20 | 2017-05-21 | 慧榮科技股份有限公司 | 資料儲存裝置及用於快閃記憶體之資料讀取方法 |
US9582204B2 (en) * | 2014-01-07 | 2017-02-28 | Apple Inc. | Speculative prefetching of data stored in flash memory |
JP6250447B2 (ja) * | 2014-03-20 | 2017-12-20 | 株式会社メガチップス | 半導体装置及び命令読み出し制御方法 |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
US11106390B1 (en) * | 2020-04-24 | 2021-08-31 | Seagate Technology Llc | Combining in-process reads to reduce die collisions |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918246A (en) * | 1997-01-23 | 1999-06-29 | International Business Machines Corporation | Apparatus and method for prefetching data based on information contained in a compiler generated program map |
CN1300006A (zh) * | 1999-12-10 | 2001-06-20 | 国际商业机器公司 | 利用从分支预测得出的未来分支路径信息进行预取 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06266596A (ja) * | 1993-03-11 | 1994-09-22 | Hitachi Ltd | フラッシュメモリファイル記憶装置および情報処理装置 |
US5822512A (en) * | 1995-05-19 | 1998-10-13 | Compaq Computer Corporartion | Switching control in a fault tolerant system |
US6065679A (en) * | 1996-09-06 | 2000-05-23 | Ivi Checkmate Inc. | Modular transaction terminal |
US5915104A (en) * | 1997-01-09 | 1999-06-22 | Silicon Graphics, Inc. | High bandwidth PCI to packet switched router bridge having minimized memory latency |
US6567894B1 (en) * | 1999-12-08 | 2003-05-20 | International Business Machines Corporation | Method and apparatus to prefetch sequential pages in a multi-stream environment |
US6542982B2 (en) * | 2000-02-24 | 2003-04-01 | Hitachi, Ltd. | Data processer and data processing system |
US6442076B1 (en) * | 2000-06-30 | 2002-08-27 | Micron Technology, Inc. | Flash memory with multiple status reading capability |
US6728798B1 (en) * | 2000-07-28 | 2004-04-27 | Micron Technology, Inc. | Synchronous flash memory with status burst output |
US6766441B2 (en) * | 2001-01-19 | 2004-07-20 | International Business Machines Corporation | Prefetching instructions in mis-predicted path for low confidence branches |
US7000077B2 (en) * | 2002-03-14 | 2006-02-14 | Intel Corporation | Device/host coordinated prefetching storage system |
-
2002
- 2002-04-29 US US10/136,018 patent/US20030204675A1/en not_active Abandoned
-
2003
- 2003-04-25 CN CNB038136805A patent/CN1306418C/zh not_active Expired - Fee Related
- 2003-04-25 AU AU2003228713A patent/AU2003228713A1/en not_active Abandoned
- 2003-04-25 EP EP03726479A patent/EP1504348A2/en not_active Ceased
- 2003-04-25 WO PCT/US2003/012974 patent/WO2003094004A2/en not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918246A (en) * | 1997-01-23 | 1999-06-29 | International Business Machines Corporation | Apparatus and method for prefetching data based on information contained in a compiler generated program map |
CN1300006A (zh) * | 1999-12-10 | 2001-06-20 | 国际商业机器公司 | 利用从分支预测得出的未来分支路径信息进行预取 |
Also Published As
Publication number | Publication date |
---|---|
US20030204675A1 (en) | 2003-10-30 |
WO2003094004A3 (en) | 2004-08-12 |
WO2003094004A2 (en) | 2003-11-13 |
CN1659527A (zh) | 2005-08-24 |
AU2003228713A1 (en) | 2003-11-17 |
EP1504348A2 (en) | 2005-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1306418C (zh) | 从存储装置中检索信息的方法和系统 | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
Kroft | Lockup-free instruction fetch/prefetch cache organization | |
US5737750A (en) | Partitioned single array cache memory having first and second storage regions for storing non-branch and branch instructions | |
CN1991793B (zh) | 用于在多核系统中进行邻近高速缓存的方法及系统 | |
US6584549B2 (en) | System and method for prefetching data into a cache based on miss distance | |
US5235697A (en) | Set prediction cache memory system using bits of the main memory address | |
KR100282751B1 (ko) | 완전 연관 다-방향 캐쉬 메모리에서의 최소 최근 사용 교체 메카니즘 및 무효화 주소 처리용 방법 및 회로 | |
US8595463B2 (en) | Memory architecture with policy based data storage | |
US7783837B2 (en) | System and storage medium for memory management | |
US5233702A (en) | Cache miss facility with stored sequences for data fetching | |
US4991088A (en) | Method for optimizing utilization of a cache memory | |
US20060112233A1 (en) | Enabling and disabling cache bypass using predicted cache line usage | |
US8825718B2 (en) | Methods and apparatus for marking objects for garbage collection in an object-based memory system | |
US20030200400A1 (en) | Method and system to store information | |
US6668307B1 (en) | System and method for a software controlled cache | |
US9418011B2 (en) | Region based technique for accurately predicting memory accesses | |
US20120151149A1 (en) | Method and Apparatus for Caching Prefetched Data | |
US5737751A (en) | Cache memory management system having reduced reloads to a second level cache for enhanced memory performance in a data processing system | |
CN103198026A (zh) | 指令高速缓存功耗降低 | |
EP0652521A1 (en) | Rapid data retrieval from a physically addressed data storage structure using memory page crossing predictive annotations | |
US10613984B2 (en) | Prefetch tag for eviction promotion | |
CN114175001A (zh) | 存储器感知预取和高速缓存旁路系统和方法 | |
US8661169B2 (en) | Copying data to a cache using direct memory access | |
US7103724B2 (en) | Method and apparatus to generate cache data |
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 | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |