从存储装置中检索信息的方法和系统的制作方法

文档序号:6411204阅读:262来源:国知局
专利名称:从存储装置中检索信息的方法和系统的制作方法
背景技术
可以将各种存储装置用于计算系统来存储信息。确定从存储装置中检索信息的合适的方法和装置可能会有问题。因为在运行期间,计算机系统可以对存储装置进行多个访问,存储装置的类型和用于从这些存储装置检索信息的算法可以影响系统性能。
因此,不断需要备选的方法来从计算系统的存储器中检索信息。
附图简要说明在说明书的结论部分中特别指出并清楚地要求保护作为本发明的主题事项。然而,要求保护的主题事项的组织和操作方法以及其目的、特征和优点可以通过参照结合附图阅读的以下详细说明得以最好地理解。


图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的功耗,且总线可以自由地处理其它信息传送。
虽然这里示出和描述了本发明的某些特征,本领域的技术人员会想到许多修改、替换、变化和等效物。因此,应理解所附的权利要求旨在覆盖所有那些落入本发明的真实精神内的修改和变化。
权利要求
1.一种方法,其特征在于,包括启用在闪存中预取;和如果预取被启用,则标识在闪存中的未请求的信息。
2.如权利要求1所述的方法,其特征在于,所述启用在闪存中预取包括将一个预取信号传送至闪存。
3.如权利要求1所述的方法,其特征在于,还包括从闪存传送请求的信息,其中请求的信息位于闪存的第一区域中;和其中所述标识还包括基于请求的信息的位置在闪存的第二区域中标识未请求信息。
4.如权利要求3所述的方法,其特征在于,所述标识还包括标识与闪存的第一区域相邻的未请求的信息,且所述第二区域与第一区域相邻。
5.如权利要求1所述的方法,其特征在于,还包括从闪存传送请求的信息;和其中所述标识还包括基于请求的信息的特征标识位于闪存内的未请求信息。
6.如权利要求5所述的方法,其特征在于,还包括确定请求的信息是否包括跳转指令和跳转地址;且其中所述标识未请求的信息还包括基于跳转地址标识未请求的信息。
7.如权利要求1所述的方法,其特征在于,其中所述预取包括将未请求的信息传送至闪存中的缓冲器。
8.如权利要求1所述的方法,其特征在于,其中所述预取包括将未请求的信息从闪存传送至访问时间比闪存的访问时间少的存储装置中。
9.如权利要求8所述的方法,其特征在于,所述预取还包括基于未请求的信息在闪存中的位置生成预取地址;接收一个请求地址;将请求的地址与预取地址相比较;以及其中如果预取地址等于请求地址,所述传送包括将未请求信息从闪存传送至访问时间比闪存的访问时间少的存储装置。
10.一种物品,其特征在于,包括在其上存储有指令的存储媒体,当由计算平台执行所述指令时,引起启用在闪存中预取;和如果启用预取,标识在闪存中的未请求信息。
11.如权利要求10所述的物品,其特征在于,当执行所述指令时,还引起从闪存传送请求的信息,其中所述请求的信息位于闪存的第一区域中;和其中所述标识还包括基于请求的信息在闪存的第二区域中标识未请求的信息。
12.一种包含存储电荷用的浮动栅的非易失性存储装置,其特征在于,包括在预取信号发出后响应于预取启用信号从非易失性存储装置预取未请求的信息的预取控制器。
13.如权利要求12所述的非易失性存储装置,其特征在于,还包括用于存储未请求的信息的缓冲器,其中在发出预取信号期间或之后,所述未请求的信息被从非易失性存储装置中的位置传送至缓冲器。
14.一种系统,其特征在于,包括适用于发出预取启用信号的处理器;和在处理器外部且被耦合以用于接收预取启用信号的闪存,其中所述闪存包括在预取信号发出时适用于在闪存中预取未请求信息的预取控制器;和耦合至闪存的非易失性存储器。
15.如权利要求14所述的系统,其特征在于,其中所述闪存还包括存储未请求的信息的缓冲器,其中在预取信号发出期间或之后,所述未请求的信息被从非易失性存储装置传送至缓冲器。
16.如权利要求14所述的系统,其特征在于,所述预取控制器适用于将来自处理器的请求地址与闪存中的未请求信息的地址相比较。
17.如权利要求16所述的系统,其特征在于,其中当请求地址等于未请求信息的地址时所述预取控制器启用从闪存向处理器传送未请求的信息。
全文摘要
简要地,提供一种根据本发明的实施从闪存检索信息的方法,其中所述方法包括启用在闪存内预取,并在预取启用后标识在闪存中的未请求信息。
文档编号G06F12/08GK1659527SQ03813680
公开日2005年8月24日 申请日期2003年4月25日 优先权日2002年4月29日
发明者L·多弗, 马伟强, B·米尔斯, S·凯尔特 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1