CN101611387B - 用于增强外部计算设备的性能的自适应存储设备及方法 - Google Patents
用于增强外部计算设备的性能的自适应存储设备及方法 Download PDFInfo
- Publication number
- CN101611387B CN101611387B CN200880002127XA CN200880002127A CN101611387B CN 101611387 B CN101611387 B CN 101611387B CN 200880002127X A CN200880002127X A CN 200880002127XA CN 200880002127 A CN200880002127 A CN 200880002127A CN 101611387 B CN101611387 B CN 101611387B
- Authority
- CN
- China
- Prior art keywords
- storer
- type
- memory
- data
- single controller
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 194
- 238000000034 method Methods 0.000 title claims description 18
- 230000003044 adaptive effect Effects 0.000 title abstract description 17
- 230000002708 enhancing effect Effects 0.000 title description 3
- 238000003860 storage Methods 0.000 claims abstract description 46
- 238000013500 data storage Methods 0.000 claims abstract description 15
- 230000003068 static effect Effects 0.000 claims abstract description 6
- 230000000712 assembly Effects 0.000 claims description 22
- 238000000429 assembly Methods 0.000 claims description 22
- 230000002950 deficient Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 3
- 230000006872 improvement Effects 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 description 13
- 238000010168 coupling process Methods 0.000 description 13
- 238000005859 coupling reaction Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 241001269238 Data Species 0.000 description 9
- 238000012549 training Methods 0.000 description 7
- 238000005192 partition Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241001147665 Foraminifera Species 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004793 poor memory Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40615—Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/225—Hybrid cache memory, e.g. having both volatile and non-volatile portions
-
- 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/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
Abstract
本发明提供了一种用于改进外部计算设备的性能的自适应存储系统。该自适应存储系统包括单个控制器、第一存储器类型(例如,静态随机存取存储器或SRAM)、第二存储器类型(例如,动态随机存取存储器或DRAM)、第三存储器类型(例如,闪存)、内部总线系统以及外部总线接口。该单个控制器被配置为:(i)使用该内部总线系统与全部三个存储器类型通信;(ii)使用该外部总线接口与外部计算设备通信;以及(iii)将高速缓存数据存储指派分配到第一存储器类型内的存储空间,并且在第一存储器类型内的该存储空间被确定为满的之后,将高速缓存数据存储指派分配到第二存储器类型内的存储空间。
Description
相关申请的交叉引用
本申请要求2007年1月10日提交的美国临时申请No.60/884,378的优先权。
背景技术
现代的计算设备通常具有多个且不同类型的内部存储器组件,要求这些存储器组件支持不同的终端应用。这些存储器组件以及它们相关的特征是通过其能够测量计算设备的性能的一些关键度量。现代的计算设备通常还能够和通过各种内建的信道(例如PCI总线、火线(Firewire)端口、USB端口或专门的多媒体卡(MMC)端口)添加的存储器组件一起运行。所有这些内部的和添加的存储器组件由易失性的或非易失性的存储器或者其某种组合组成。与非(Nand)闪存以及或非(Nor)闪存是常见类型的非易失性存储器。动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)是易失性存储器类型。存储器类型可以根据性能和密度来分类。高性能存储器(例如SRAM)较大,实现起来较费钱,并且消耗较多功率。较高密度的存储器(例如DRAM)较经济合算,但是通常具有较差的由单个元件的存取时间和由带宽测得的性能,或者具有较差的将存储内容传送到要求包含在存储系统中的数据或指令的处理元件的速率。
当将这些现代的存储系统实现在移动设备(例如膝上型PC、蜂窝式电话、PDA或者任何其它各种超便携的个人计算设备)中时,这些相关的权衡尤其关键。在这样的设备中,对功耗和形状因子的额外考虑使最佳地配置和利用存储器资源变得很关键。幸运的是,增大计算机产品集成的级别已经使将多个存储器类型封装到单个完整存储系统封装体中成为可能,这具有显著改进存储器数据传送和相关的处 理速度的特性。
其中这样的集成封装有用的一种特定的应用为高速缓冲存储系统。最新的计算系统具有集成的高速缓存系统,其包含1级和2级SRAM高速缓存。通常,处理器使用高速缓存来减少从存储器存取类似数据的平均时间。SRAM高速缓存是低容量的、快速存储器类型,其存储从主存储单元(memory location)频繁存取的数据的拷贝。
当处理器尝试从主存储单元读取或者写入主存储单元时,它首先检查高速缓冲存储单元来看看先前存储的类似数据的拷贝是否可用。处理器通过将数据地址存储单元与高速缓存进行比较来看看是否存在高速缓存命中(数据存在于高速缓存中)来进行检查。如果处理器未发现数据在高速缓存中,则出现高速缓存未命中并且处理器必须在慢得多的数据检索速率下运行,因为它需要从更慢的主存储单元(例如硬盘或者闪速存储器即闪存)存取数据。以某些方式增大高速缓存命中以便减少对存取最慢存储器类型来发现频繁存取数据的需要,会是有利的。
此外,最新的添加的高速缓冲存储系统包括闪速存储器和RAM存储器,其中闪存控制发生在电路外(off-circuit),在外部计算设备的处理器处。这类系统是低效的,因为必须通过将数据从添加的存储系统的闪存路由穿过外部的处理器总线到达外部计算设备处理器并且往回穿过外部的处理器总线到达添加的存储系统的RAM,来帮助闪存和RAM存储器之间的传送。
发明内容
该发明内容被提供来以简化形式引入概念的选择,将在下面的具体实施方式中进一步描述所述概念。该发明内容不意图确认所要求保护的主题的关键特征,它也不意图用于在确定所要求保护的主题的范围方面给予帮助。
鉴于与如在上面背景技术部分中所讨论的现有技术存储系统相关的低效,本申请的发明人已经发明了自适应存储设备,其使用价格 比较低廉的DRAM技术帮助高速缓存扩展,而同时允许在同一个添加的存储系统的存储器组件之间进行直接存储器传送。此外,本发明可以有利地并入专门的高速缓存算法以利用扩展的高速缓存和内部存储器存取。
根据本发明一个实施例,提供了一种用于改进外部计算设备的性能的自适应存储系统(adaptive memory system)。该自适应存储系统包括单个控制器、第一存储器类型(例如,静态随机存取存储器或SRAM)、第二存储器类型(例如,动态随机存取存储器或DRAM)、第三存储器类型(例如,闪存)、内部总线系统以及外部总线接口。该单个控制器被配置为:(i)使用该内部总线系统与全部三个存储器类型通信;(ii)使用该外部总线接口与外部计算设备通信;以及(iii)将高速缓存数据存储指派(assignment)分配到第一存储器类型内的存储空间,并且在第一存储器类型内的该存储空间被确定为满的之后,将高速缓存数据存储指派分配到第二存储器类型内的存储空间。
根据本发明的一个方面,第一和第二存储器类型是不同的易失性存储器类型(例如,SRAM和DRAM)而第三存储器类型是非易失性的类型(例如,闪存),并且该单个控制器还被配置为使第一和第二存储器类型的没有被写入的部分掉电,以使功耗最小化。
根据本发明的另一方面,该单个控制器还可以被配置为将高速缓存数据从该SRAM或者该闪速存储器传送到该DRAM。如果该高速缓存数据存在于该SRAM内,则将该高速缓存数据从该SRAM传送到该DRAM。如果该高速缓存数据不存在于该SRAM内,而存在于该闪速存储器内,则将该高速缓存数据从该闪速存储器传送到该DRAM。
根据本发明的又一方面,该单个控制器还可以被配置为根据数据先行方案将来自该闪速存储器的数据高速缓存到该SRAM和DRAM。
根据本发明的另一实施例,提供了一种用于控制自适应存储系统的方法,其中该自适应存储系统包括单个控制器、第一存储器类型、第二存储器类型、第三存储器类型、内部总线系统以及外部总线接口。该方法通常包括三个步骤:(i)使用内部总线系统与全部三个存储器 类型通信;(ii)使用该外部总线接口与外部计算设备通信;以及(iii)将高速缓存数据存储指派分配到第一存储器类型内的存储空间,并且在第一存储器类型内的存储空间被确定为满的之后,在第二存储器类型的存储空间内分配高速缓存数据存储指派。
根据本发明的又一实施例,提供了一种包括计算机可执行程序的计算机可读介质,用于控制自适应存储系统的单个控制器的操作。该自适应存储系统还包括第一存储器类型、第二存储器类型、第三存储器类型、内部总线系统以及外部总线接口。该计算机可执行程序在被执行时使得该单个控制器执行通常包括三个步骤的方法:(i)使用该内部总线系统与全部三个存储器类型通信;(ii)使用该外部总线接口与外部计算设备通信;以及(iii)将高速缓存数据存储指派分配到第一存储器类型内的存储空间,并且在第一存储器类型内的存储空间被确定为满的之后,将高速缓存数据存储指派分配到第二存储器类型内的存储空间。
根据本发明的还一实施例,提供了一种包括计算机可执行程序的计算机可读介质,用于实现自适应存储系统的单个控制器的数据先行高速缓存方案。该自适应存储系统还包括第一存储器类型、第二存储器类型、第三存储器类型、内部总线系统以及外部总线接口。该计算机可执行程序在被执行时使得该单个控制器执行通常包括四个步骤的方法:(i)从运行在外部计算设备上的应用获得扇区数据的序列;(ii)将所获得的扇区数据的序列与多个先前存储的扇区数据的序列进行比较以确定是否存在高概率匹配;(iii)如果在所获得的扇区数据的序列与该多个先前存储的扇区数据的序列之间确定了高概率匹配,则用所确定的高概率匹配来至少高速缓存第一存储器类型;以及(iv)如果在所获得的扇区数据的序列与该多个先前存储的扇区数据的序列之间没有确定高概率匹配,则确定是否能够从该多个先前存储的扇区数据的序列中选出最可能的扇区数据的序列。
根据本发明的一个方面,如果能够选出最可能的扇区数据的序列,则将所选的最可能的扇区数据的序列高速缓存到第一存储器类型 或第二存储器类型中;并且如果不能选出最可能的扇区数据的序列,则启动高速缓存数据训练序列(training sequence)。
根据本发明的另一方面,该高速缓存数据训练序列在第一存储器类型或者第二存储器类型内存储所获得的扇区数据的序列,并且在第三存储器类型中存储该序列的非易失性的拷贝。
根据本发明的再一实施例,提供了一种用于实现自适应存储系统的单个控制器的数据先行高速缓存方案的方法。该自适应存储系统包括单个控制器、第一存储器类型、第二存储器类型、第三存储器类型、内部总线系统以及外部总线接口。该方法通常包括四个步骤:(i)从运行在外部计算设备上的应用获得扇区数据的序列;(ii)将所获得的扇区数据的序列与多个先前存储的扇区数据的序列进行比较以确定是否存在高概率匹配;(iii)如果在所获得的扇区数据的序列与该多个先前存储的扇区数据的序列之间确定了高概率匹配,则将所确定的高概率匹配数据至少高速缓存到第一存储器类型;以及(iv)如果在所获得的扇区数据的序列与该多个先前存储的扇区数据的序列之间没有确定高概率匹配,则确定是否能够从该多个先前存储的扇区数据的序列中选出最可能的扇区数据的序列。
附图说明
通过参考以下结合附图的详细描述,本发明的上述方面和许多伴随的优点将变得更容易明白,并且同样变得更好理解,在附图中:
图1是根据本发明一个实施例的自适应存储系统(AMS)的框图;
图2是示出了根据现有技术的与外部计算设备接口连接的传统存储系统的框图;
图3是示出了根据本发明一个实施例的AMS文件系统分区的框图;
图4是示出了根据本发明一个实施例的、由AMS控制器帮助的、在AMS存储器组件和处理器之间的详细数据流的框图;
图5是根据本发明一个实施例的、示出了在不同操作处理级时的 数据流转移的AMS控制器的状态机图;
图6是示出了根据本发明一个实施例的、用于填充AMS SRAM和DRAM高速缓存的部分的AMS控制器高速缓存数据先行方案的流程图;
图7是示出了根据本发明一个实施例的、与AMS控制器高速缓存数据先行方案有关的训练序列的流程图;
图8是示出了根据本发明一个实施例的、与AMS控制器高速缓存数据先行方案有关的调整序列(tuning sequence)的流程图;
图9是示出了根据本发明一个实施例的、AMS控制器的数据流和相关带宽分配的框图。
具体实施方式
本发明涉及自适应存储系统(AMS),其包含易失性的和非易失性的存储器组件以及控制器组件,该控制器组件被配置为管理存储器组件之间的数据传送和存储器组件与外部计算设备之间的数据传送。存储器组件和控制器组件(在此被统称为AMS组件)被具体实现在多芯片封装集成电路(MCP)上,其能够被可配置地设计成可拆装地插入任何传统的个人计算设备(例如台式PC、膝上型PC、蜂窝式电话、PDA或者超移动PC)中。本发明还涉及由AMS控制器组件实现的数据传送控制方案,其增强与AMS和外部计算设备之间的数据传送有关的综合性能。
根据一个实施例,图1中示出的AMS 10包括多个AMS存储器组件类型,该多个AMS存储器组件类型包括:静态随机存取存储器(SRAM)14、动态随机存取存储器(DRAM)16以及闪速存储器18。应当理解,本实施例的存储器组件类型仅仅是能够在AMS内运行的存储器类型的实例,而本发明不限于本实施例中使用的确切的存储器类型。AMS控制器组件(或者简称为“控制器”)12被配置为通过内部总线系统20与SRAM、DRAM和闪速存储器组件通信并且通过外部总线接口22与外部计算设备(未示出)通信。该配置允许AMS控制器12 完全管理存储器组件之间的数据流,而与外部计算设备无关。
在如图2中所示出的包含类似的存储器组件类型的传统MCP存储设备中,对于闪速存储器数据传送的控制发生在外部计算设备。例如,当应用在外部计算设备上运行并且要求应用数据在MCP存储设备30的RAM存储器组件32、34与闪速存储器组件36之间传送时(例如,当高速缓存应用页数据时),外部计算设备40的处理器使用集成的闪存控制器42控制闪存数据的传送。在该系统中,可传送的闪存数据必须由外部计算设备的处理器40从MCP存储设备的闪速存储器组件36路由穿过闪存接口39和外部的闪存总线46、并且往回穿过RAM双倍数据率(DDR)总线48和RAM接口38到达MCP存储设备的RAM存储器组件32、34。该数据路由方案对于在非易失性存储器组件(例如,闪存)和同一MCP存储设备上的易失性存储器组件(例如,RAM)之间传送(高速缓存)数据是低效的。
例如如图1中所示出的,根据本发明各个实施例的AMS MCP技术通过帮助AMS闪存(18)和RAM(14、16)存储器组件之间的直接存储器存取(DMA)而不需要使用外部计算设备的处理器来解决该低效的问题。本发明的电路上的(on-circuit)AMS控制器12控制闪速存储器组件18和RAM存储器组件14、16之间的数据传送,使得能够通过内部总线系统20将闪存数据直接传送到期望的RAM存储器组件位置14、16。由于该DMA数据传送控制方案不需要使用外部计算设备的处理器,因此它有效地减少了外部总线带宽的使用,其中该外部总线是在AMS和外部计算设备之间的总线。根据本发明的各个实施例,以这种方式,能够优化外部总线带宽以允许外部计算设备的处理器用高得多的速率从AMS存储器组件读取数据以及将数据写到AMS存储器组件。此外,在AMS闪速存储器组件18和AMS RAM存储器组件14、16之间更短的物理DMA互连提供了与上面讨论的传统传送方案相比更低的寄生电容。已知电路中过大的寄生电容会减少带宽、提高外来干扰的可能性并且增大在正常电路操作条件期间的功耗。当在这些AMS存储器组件之间反复地传送数据时(例如,当高速缓存页数据 时),在本发明中实现的更短的导线长度数据传送提供了显著的节电量。
消除外部计算设备的处理器对AMS存储器组件数据传送控制的影响的另一个优点在于在装载之前实际的文件管理功能被嵌入在AMS内。这允许外部计算设备将AMS看作标准文件系统。标准文件系统能够由标准操作系统级驱动器来支持,由此消除了在操作系统级维持专门的依赖闪存的设备驱动器的需要。AMS的自含的(self-contained)闪存驱动器软件被包含在附图中示出的AMS文件系统分区50的嵌入式SRAM/DRAM/闪存可安装文件系统分区54内。在所示出的实施例中,其它AMS文件系统分区包括标准的FAT文件系统分区52以及包括引导(Boot)分区和闪存接口数据的设备配置分区56。嵌入式闪存驱动器软件不需要在与操作系统集成的时候进行附加的测试。该独立的存储器驱动器控制有利地允许几乎任何操作系统认出AMS,而不需要在外部计算设备上额外地安装专门的存储器驱动器软件。
AMS控制器12还可以被配置为通过选择性地选通(gate)到AMSSRAM和DRAM易失性存储器组件14、16的部分的功率流来使功耗最小化。这样的节电技术是优选的,因为如本领域中众所周知的,SRAM和DRAM易失性存储器类型都需要恒定的功率汲取(power-draw)来维持或者刷新保存在它们的各个存储区的部分内的现有数据。为了使AMS中的该功率汲取最小化,在本发明的各个示例性实施例中,控制器12监视RAM存储器组件以检测何时SRAM或者DRAM 14、16的部分没有被安排被写入并且已经不保存数据。一旦检测到RAM的不活动的部分,控制器12就使SRAM或DRAM 14、16的那些不活动的部分掉电以将功率损耗最小化。以这种方式,能够从AMS设备内部动态地调节功耗,而不需要来自外部计算设备的处理器的任何输入。
根据本发明的各个示例性实施例,AMS(例如图1中所看到的)被配置为用作高速自适应的高速缓存,其中SRAM 14的部分用作1级和2级高速缓存分区,并且DRAM 16的部分用作3级高速缓存分区。高 速的高速缓存能够与外部计算设备的已有高速缓存系统结合起来操作,以自适应地增强该组合系统的数据存储和检索。优选地将AMS集成的高速缓存用于与下面操作有关的数据传送和数据存储,该操作与引导代码镜像(Boot Code Mirror)、程序数据、程序代码和应用数据相关。根据配置设定和所需的性能度量来动态地分配用于这样功能的高速缓存的大小和级别。
引导代码镜像和程序代码
将引导代码从闪存18复制到SRAM高速缓存14以快速地初始化设备处理器。这表示SRAM高速缓存14的初始使用。附加的程序代码被识别为从闪存18请求的数据。根据所分配的高速缓存大小和可用性,可以将该附加的程序代码复制到SRAM或者DRAM高速缓存14、16。优选地,在填充DRAM高速缓存16之前填充SRAM高速缓存14,因为由于需要不断地刷新DRAM数据而导致使用DRAM高速缓存比SRAM高速缓存消耗更多的功率。
详细数据流和分区
图4示出了根据本发明一个实施例的、在AMS存储器组件和AMS控制器60之间的数据传送。在该图示中,闪存数据的分立的块被称为“页”。初始将这些数据页从闪存80传送到SRAM 62,如路径P1所示出的。然后将该页集中在一起并且经由路径P2高速缓存,以生成一块引导代码数据64,然后该引导代码数据64经由路径P3传送到控制器60。作为初始化序列或者引导的部分,控制器60将配置DRAM高速缓存72以允许包括DRAM存取的正常操作。然后控制器60使用经由路径P5从SRAM高速缓存62传送的程序代码66来工作,该程序代码66经由路径P4从SRAM数据页高速缓存,最初从闪存80经由路径P1发送该SRAM数据页。当超过了SRAM高速缓存62的有限的容量时,将要求被高速缓存的代码的附加页从SRAM高速缓存62经由路径P6传送到DRAM高速缓存72,或者如果SRAM高速缓存62被确定为满的并且附 加页已经不存在于SRAM高速缓存62中,则将它们直接从闪存80经由路径P7传送到DRAM 72。控制器60然后能够执行存储在DRAM高速缓存72中的、经由路径P12存取的程序代码74。
程序数据和应用数据
程序和应用数据从内部总线系统20(参见图1)内部填充AMS存储空间。如图4中所示出的,控制器60可以使用路径P10、P11、P14和P13存取SRAM 62或者DRAM高速缓存72中的应用数据或者程序数据的块68、70、76和78。为了将应用数据提交到闪存80中,必须首先将一页或者多页信息在SRAM 62或者DRAM高速缓存72中集合。当内容已经被确认时,控制器60指示该页或者多页要被“提交”到闪存80。这由路径P15“提交”并且由路径P16“提交”来指示。然后使用路径P1将所提交的页写到闪存80。控制器60还可以请求在SRAM和DRAM块68、76之间传送应用数据。一旦要求,就如路径P8和P9所指出的安排和执行传送。
控制器逻辑和数据流
根据本发明的各个示例性实施例,AMS控制器逻辑的算法功能被配置为执行以下:
1、动态地分配致力于高速缓存页数据的SRAM和DRAM的部分,并且基于存储在闪速存储器中的启发式的(heuristics)、预配置的设定和历史的存储器存取信息来调节这样的分配。分配请求包括来自处理器的读取和写入数据到AMS存储器组件的请求以及DMA传送请求。在图5以及相关表格(下面的表1和表2)中示出了存储器分配算法的实现方式。
2、使用图6-8中示出的数据先行方案,用从其它存储块镜象的数据填充SRAM和DRAM高速缓存的部分。该数据分配使用可调节的数据总线宽度并且以被确定为使功耗最小化的速率发生。
3、使没有被写入并且被确定没有在使用中的易失性SRAM和 DRAM高速缓存的部分掉电。起初,将这些存储器组件标记为没有被写入,并且存储器的每个部分仅仅根据高速缓存数据的需要而被上电。
图5以状态机形式示出了AMS控制器数据流的图。表1列出了对应的状态定义而表2列出了与数据流图相关的对应状态转移。
表1:AMS控制器数据流图状态定义
表2:AMS控制器数据流图状态转移
AMS控制器数据先行高速缓存方案被设计成预期什么特定的数据请求将由外部计算设备的处理器启动。能够将与所预期的数据请求有关的特定代码或者数据预载到高速存储器设备中(即,被高速缓存)以使它能够在处理器请求类似的代码或数据时被快速地检索。
图6示出了用扇区数据的序列填充AMS SRAM和DRAM高速缓存14、16的部分的该数据先行方案的运行。数据的扇区是操作系统可寻址的数据的最小的块,其通常为大约512字节。扇区数据的序列93是以其长度为特征的、扇区数据的任意有序的集合。本发明的先行高速缓存方案有利地允许1级和2级SRAM高速缓存14的部分以及3级DRAM高速缓存16的部分被用高速缓存数据的预测的序列预加载,所述预测的序列通过在下面将描述的块96、102中将历史的高速缓存数据与运行时的(run-time)应用数据进行比较来选择性地确定。
当在外部计算设备上运行应用时(如在块90、92中),将所获得的应用扇区数据的序列93与先前存储的扇区数据的序列中的每一个相比较(如在块94、96中),以在块98中确定是否能够发现高概率匹配。以下将详细描述高概率匹配的发现。如果对于每个存储的序列比 较地确定(在块98处为“是”)这样的高概率匹配,则将先前存储的序列匹配标记为高概率匹配并且在块104中根据优选的SRAM高速缓存是否已经被填满而预加载到SRAM或DRAM高速缓存中。这样的高概率匹配的确定基于高概率阈值(或者高概率匹配(HPM)值),拿该高概率阈值和在所获得的应用扇区数据的特定序列93与如块94、100中的每个先前存储的扇区数据的序列之间所确定的差值来进行比较。在一个实施例中,高概率阈值涉及在所获得的应用序列与先前存储的序列之间的匹配序列扇区的百分比值(即,90-95%)。在这样的实施例中,所确定的差值也会涉及百分比值以方便按百分比来进行比较。如果对于任何先前存储的扇区数据的序列而言所确定的差值小于高概率阈值,并且还小于任何其它先前存储的扇区数据的序列与所获得的应用扇区数据的相同序列的所确定差值(在块98处为“是”),则该先前存储的扇区数据的序列被确定为与所获得的应用扇区数据的特定序列93相关的高概率匹配。
然而,如果由于先前存储的扇区数据的序列中没有一个序列的所确定差值低于高概率阈值而不能确定高概率匹配(在块98处为“否”),则在块102中,最低的所确定差值与更低精度的最可能的序列阈值(或者最可能的序列匹配(MLSM)值)相比较。在一个实施例中,最可能的序列阈值也涉及在所获得的应用序列与先前存储的序列之间的匹配序列扇区的百分比值(即,70-75%)。在这样的实施例中,所确定的差值也会涉及百分比值以方便按百分比来进行比较。当最低的所确定差值测得为高于高概率阈值但是低于最可能的序列阈值(在块98处为“否”而在块102处为“是”)时,那么该先前存储的扇区数据的序列被确定为与所获得的应用扇区数据的特定序列相关的最可能的序列匹配。在该情况下,当最可能的序列匹配被确定时(在块102处为“是”),将相关的先前存储的序列匹配标记为最可能的序列匹配并且在块104中根据优选的SRAM高速缓存14是否已经被填满而预加载到SRAM或DRAM高速缓存中。
对于更低精度的最可能的序列匹配,还可以标记序列用于重新调 整,如下面将参考图8详细描述的。对重新调整的需要由其中序列被识别为最可能序列匹配的重复情形具体地指出,因为这些序列更可能需要调整调节(即,扇区数据的重新排序)。
如果由于先前存储的扇区数据的序列中没有一个序列的所确定差值低于最可能的序列阈值而不能确定最可能的序列匹配(在块102处为“否”),则在块106中AMS控制器12基于错误确定的可能性来确定是否应该存储应用扇区数据的特定的所获得的序列。如果在块106处为“否”,则执行再测试比较。如果在块106处为“是”,则应该通过启动高速缓存训练序列来将应用扇区数据的特定的所获得的序列预加载到高速缓存中,如下面将参考图7详细描述的。
图7示出了用扇区数据的特定序列113填充AMS SRAM和DRAM高速缓存14、16的部分的AMS控制器高速缓存数据先行训练序列的运行,该扇区数据的特定序列113从运行在外部计算设备上的应用获得,如在块110、112中。在应用扇区数据的序列完成加载、超时或者超过预定的大小限制(如块114中所示的)之后,训练序列进行到序列数据简化块118,并且随后在块120中对于先前记录的扇区数据的序列116、122将数据存储高速缓存。在到易失性的SRAM 14或DRAM 16高速缓存的序列数据存储120时,AMS控制器还将指定用于高速缓存指派的一份序列数据发送到作为备份数据存储设备的非易失性闪存。在块118中通过用由扇区数据的有序的范围(range)组成的序列取代无序的扇区数据的序列来执行数据简化(data reduction)。该简化产生更有效率的高速缓冲存储和检索机制。
图8示出了用于调整AMS SRAM和DRAM高速缓存14、16的部分的AMS控制器高速缓存数据先行调整序列的运行,使得存储的扇区数据的已有序列136与应用扇区数据的所获得的序列127相比较,如在块124、126、128和130中。随后在块132中将结果形成的扇区数据的无序序列调整到扇区数据的有序序列中,并且在块134中被存为有序序列136的范围。如果调整序列的初始运行没有有效地提炼(refine)扇区数据的全部序列的顺序,则将重复调整序列。
图9示出了根据本发明一个实施例的AMS控制器的数据流和相关带宽分配。在该实施例中,AMS控制器138包含SRAM内部存储器接口140、DRAM DDR内部存储器接口142和闪存内部存储器接口144,以及RAM外部处理器接口146和DDR外部处理器接口148。这些组合的控制器接口140、142、144、146和148具有总的总线带宽,其明显大于外部计算设备的处理器总线接口(未示出)的带宽。该过量的总线数据传送能力允许AMS控制器138在存储设备之间直接传送高速缓存数据(DMA)并且同时允许外部计算设备的处理器分别从AMS存储器组件存取数据。该交叉存取的数据传送有利地允许AMS控制器138在增大的总数据传送速率下工作。
用于每个AMS存储器组件设备类型(SRAM 14、DRAM 16和闪存18)的实际总线可以根据每个执行的存储器组件的特定大小和容量特性而被配置为具有相同的基数(base)或者相同基数的倍数。图9示出了当N=4时在内部接口组件140、142和144的内部总线宽度和外部处理器接口组件146、148的外部总线宽度之间的4∶1差值的实例,以及当L=4时用于SRAM的相同的总线配置,以及当M=4时的闪存。
当外部计算设备的处理器通过两个不同的内部数据总线B1和B2存取DRAM存储器时,能够利用AMS控制器138的过量的总线容量。该交叉存取的存取允许两个不同的内部DRAM数据总线B1、B2轮流地供应来自连续DRAM地址的高速缓存数据。该并行的DRAM数据传送允许DDR外部处理器总线在比内部总线上所需的更快的数据传送速率下工作。与该存取同时,能够使用数据总线B3和B4在闪存18和包含在SRAM或DRAM存储设备14、16中的高速缓存之间发生DMA数据传送。
应当理解,由于在实际内部和外部总线实现之间的等待时间设定和周期时间上存在差异,因此实际总线带宽差值将不同于理论的4∶1系数。内部总线支持多总线传送协议,其可能不反映(reflect)外部处理器总线使用的相同的协议。例如,DDR外部处理器协议使用的版本和设定可能基本上不同于内部总线协议使用的那些。
一种增大将数据写入非易失性存储器(例如,闪存)或者从非易失性存储器读取数据的数据传送速率(通常按兆字节/秒计量)的方式是同时读取或写入数据到多个存储器组件。利用该并行数据传送方案,能够使用多个不同的存储器组件尽可能有效率地传送大块的数据。
能够使计算设备的操作系统容易具有尽可能小的读写数据单元大小将是有利的。利用较小的最小单元大小(即,数据扇区)避免了在从存储器读取较小片信息或将较小片信息写到存储器时(例如,在用许多小片信息编码文件目录信息时)不必要地浪费存储器存储空间。此外,利用较小单元的数据还避免了可能用坏给定记录介质的不必要的写入操作。
不幸的是,实现更快的数据传送速率和更小的扇区大小这两个目标通常是矛盾的。期望一种增大数据传送速率而同时维持更小单元的数据大小的装置。另外,期望用最小的功率损耗和在MCP组件之间的最小所需互连来实现该装置。
如图9所示,AMS控制器138包括多个非易失性组件接口144(例如,闪存接口)。这些多个接口便于同时从多个非易失性组件读取和写入到多个非易失性组件,由此增大到单个非易失性设备的多个组件的读取和写入数据传送速率。不幸的是,在存储更小块的数据时这引入了固有的缺点。为了克服该缺点,本发明的独立的非易失性闪存接口144包括在单个读取或写入操作期间启用(enable)独立闪存组件中的每一个的功能部件。能够实现达到启用或禁用(disable)组件的该目标的多个技术。第一种技术是为每个非易失性组件使用独立的启用信号。该技术具有通过在给定的读取或写入操作期间禁用不用的设备来使功率损耗最小化的优点。第二种技术是修改在给定的写入操作期间使用的地址。
如本领域中众所周知的,非易失性存储设备(例如闪存)具有某些已知是有缺陷的且因此不能用于存储信息的地址位置。对于第二种技术,将不希望被写入的独立组件的地址位置设置为已知有缺陷的位 置。过量的写入操作不会破坏有效的存储信息,因为该地址位置已经被标记为有缺陷的,并且决不会从该位置检索信息。这还不需要附加的到组件的连接,因为对于正常操作已经要求地址信息被呈现于组件。因此在控制器和非易失性存储器组件之间没有连接的附加成本的情况下达到写入组件的子集的目标。
用于AMS的附加的接口
如图1中所示出的,在本发明的一个实施例中,AMS MCP集成电路被设计成包括要与附加的DRAM和闪速存储器组件耦接的扩展闪存总线26和扩展DRAM总线24。如本领域技术人员会理解的,附加的DRAM和闪速存储器组件应该被配置为和已有的驱动器软件一起运行,该已有的驱动器软件存在于已有的AMS文件系统分区50内的嵌入式SRAM/DRAM/闪存可安装文件系统54中(参见图3)。另外,增加的DRAM或闪速存储器组件将需要更新已有的AMS存储器组件驱动器,使得能够在安装时避免不可预知的错误。
此外,在本发明的一个实施例中,AMS MCP集成电路被设计成包括扩展总线接口28(在图1中示出),由此控制器能够通过扩展总线与次级(secondary)计算设备通信。仅仅为了方便和清楚起见,该扩展总线接口28被示出为与扩展DRAM总线24和扩展闪存总线26无关,然而,应当认识到能够可配置地将扩展总线接口28并入扩展DRAM总线24或者扩展闪存总线26中,以减少AMS控制器管脚数。扩展总线接口28有效地允许AMS控制器同时通信和传送所存储的数据到多个外部计算设备。
如上所述,还应当理解,本实施例的SRAM 14、DRAM 16和闪存18存储器组件(在图1中示出)仅仅是能够在AMS内运行的存储器类型的实例,而本发明不限于本实施例中使用的精确的存储器类型。存在提供与上述存储器类型类似的特征和功能的可替代技术。例如:SRAM 14的实现能够用一种伪SRAM(PSRAM)替换;DRAM16的实现能够用一种零电容器RAM(ZRAM)或者双晶体管RAM (TTRAM)替换;并且闪存18的实现能够被具体地指定为与非(NAND)或者或非(NOR)型闪存,或者能够用一种相变存储器(PCM、PRAM)来替换。显而易见,上面列出的可替代的存储器组件类型不是穷举的,并且可以进行许多其它改变,而同时还允许本发明如上所述的工作。
Claims (13)
1.一种包括在用于改进外部计算设备的性能的自适应存储设备中的单个控制器,其中所述自适应存储设备还包括:
第一类型的存储器;
第二类型的存储器;
第三类型的存储器;
内部总线系统;以及
外部总线接口;
其中所述单个控制器经由所述内部总线系统通信地耦接到所述第一类型的存储器、所述第二类型的存储器和所述第三类型的存储器;
其中所述单个控制器经由所述外部总线接口通信地耦接到外部计算设备;
并且
其中所述单个控制器包括:
用于使用所述内部总线系统与所述第一类型的存储器、所述第二类型的存储器和所述第三类型的存储器通信的装置;
用于经由所述外部总线接口作为单个存储设备而与所述外部计算设备通信的装置;
用于将高速缓存数据存储指派分配到所述第一类型的存储器内的存储空间,并且在所述第一类型的存储器内的所述存储空间被确定为满的之后,将高速缓存数据存储指派分配到所述第二类型的存储器内的存储空间的装置;以及
用于将高速缓存数据从所述第一类型的存储器或者所述第三类型的存储器传送到所述第二类型的存储器的装置;
其中如果所述高速缓存数据存在于所述第一类型的存储器内,则将所述高速缓存数据从所述第一类型的存储器传送到所述第二类型的存储器;并且
其中如果所述高速缓存数据不存在于所述第一类型的存储器内,而存在于所述第三类型的存储器内,则将所述高速缓存数据从所述第三类型的存储器传送到所述第二类型的存储器。
2.根据权利要求1的单个控制器,其中所述第一类型的存储器是静态随机存取存储器SRAM,所述第二类型的存储器是动态随机存取存储器DRAM,并且所述第三类型的存储器是闪速存储器。
3.根据权利要求1的单个控制器,其中所述第一类型的存储器和所述第二类型的存储器是不同的易失性类型的存储器,而所述第三类型的存储器是非易失性类型的存储器;并且其中所述单个控制器还包括:
用于使所述第一类型的存储器和所述第二类型的存储器的部分掉电以使功耗最小化的装置。
4.根据权利要求2的单个控制器,其中所述单个控制器还包括:
用于根据数据先行方案将来自所述闪速存储器的数据高速缓存到所述SRAM和DRAM的装置。
5.根据权利要求1的单个控制器,其中所述第一类型的存储器和所述第二类型的存储器是不同的易失性类型的存储器,而所述第三类型的存储器是非易失性类型的存储器;并且其中所述单个控制器还包括:
至少一个扩展存储器总线,用其与外部存储器通信以扩展可用存储器的容量。
6.根据权利要求1的单个控制器,其中所述第一类型的存储器和所述第二类型的存储器是不同的易失性类型的存储器,而所述第三类型的存储器是非易失性类型的存储器;并且其中所述单个控制器还包括:
至少一个扩展存储器接口,用其与次级外部计算设备通信。
7.根据权利要求1的单个控制器,其中所述第一类型的存储器和所述第二类型的存储器是不同的易失性类型的存储器,而所述第三类型的存储器是包含多个组件的非易失性类型的存储器;并且其中所述单个控制器还包括:
用于选择性地启用所述多个组件中的一个或多个的装置;以及
用于选择性地禁用所述多个组件中的一个或多个的装置。
8.根据权利要求7的单个控制器,其中所述单个控制器还包括:用于通过将启用信号发送给那些要被启用的组件来选择性地启用所述多个组件中的一个或多个的装置。
9.根据权利要求7的单个控制器,其中所述单个控制器还包括:用于通过将要被禁用的那些组件的地址位置设置为已知的有缺陷的地址位置来选择性地禁用所述多个组件中的一个或多个的装置。
10.一种用于由自适应存储设备中包括的单个控制器控制该自适应存储设备的方法,其中所述自适应存储设备还包括第一类型的存储器、第二类型的存储器、第三类型的存储器、内部总线系统以及外部总线接口,其中所述内部总线系统将所述单个控制器耦接到所述第一类型的存储器、所述第二类型的存储器和所述第三类型的存储器,所述外部总线接口将所述单个控制器耦接到外部计算设备,所述方法包含以下步骤:
使用所述内部总线系统与所述第一类型的存储器、所述第二类型的存储器和所述第三类型的存储器通信;
经由所述外部总线接口作为单个存储设备而与外部计算设备通信;
将高速缓存数据存储指派分配到所述第一类型的存储器内的存储空间,并且在所述第一类型的存储器内的所述存储空间被确定为满的之后,在所述第二类型的存储器的存储空间内分配高速缓存数据存储指派;以及
将高速缓存数据从所述第一类型的存储器或者所述第三类型的存储器传送到所述第二类型的存储器;
其中如果所述高速缓存数据存在于所述第一类型的存储器内,则将所述高速缓存数据从所述第一类型的存储器传送到所述第二类型的存储器;并且
其中如果所述高速缓存数据不存在于所述第一类型的存储器内,而存在于所述第三类型的存储器内,则将所述高速缓存数据从所述第三类型的存储器传送到所述第二类型的存储器。
11.根据权利要求10的方法,其中所述第一类型的存储器是静态随机存取存储器SRAM,所述第二类型的存储器是动态随机存取存储器DRAM,并且所述第三类型的存储器是闪速存储器。
12.根据权利要求10的方法,其中所述第一类型的存储器和所述第二类型的存储器是不同的易失性类型的存储器,而所述第三类型的存储器是非易失性类型的存储器,并且其中所述方法还包含以下步骤:
使所述第一类型的存储器和所述第二类型的存储器的没有被写入的部分掉电,以使功耗最小化。
13.根据权利要求11的方法,还包含以下步骤:
根据数据先行方案将来自所述闪速存储器的数据高速缓存到所述SRAM和DRAM。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US88437807P | 2007-01-10 | 2007-01-10 | |
US60/884,378 | 2007-01-10 | ||
PCT/US2008/050787 WO2008086488A2 (en) | 2007-01-10 | 2008-01-10 | Adaptive memory system for enhancing the performance of an external computing device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101611387A CN101611387A (zh) | 2009-12-23 |
CN101611387B true CN101611387B (zh) | 2013-03-13 |
Family
ID=39609376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880002127XA Expired - Fee Related CN101611387B (zh) | 2007-01-10 | 2008-01-10 | 用于增强外部计算设备的性能的自适应存储设备及方法 |
Country Status (7)
Country | Link |
---|---|
US (4) | US8135933B2 (zh) |
EP (1) | EP2122473B1 (zh) |
KR (1) | KR101469512B1 (zh) |
CN (1) | CN101611387B (zh) |
HK (1) | HK1140031A1 (zh) |
TW (2) | TWI463321B (zh) |
WO (1) | WO2008086488A2 (zh) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009026296A (ja) * | 2007-06-21 | 2009-02-05 | Toshiba Corp | 電子デバイス、メモリデバイス、ホスト装置 |
IL187044A0 (en) * | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Fast secure boot implementation |
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US8095811B2 (en) * | 2008-05-29 | 2012-01-10 | International Business Machines Corporation | Reducing power consumption while synchronizing a plurality of compute nodes during execution of a parallel application |
US8195967B2 (en) * | 2008-05-29 | 2012-06-05 | International Business Machines Corporation | Reducing power consumption during execution of an application on a plurality of compute nodes |
US20090300399A1 (en) * | 2008-05-29 | 2009-12-03 | International Business Machines Corporation | Profiling power consumption of a plurality of compute nodes while processing an application |
US8533504B2 (en) * | 2008-05-29 | 2013-09-10 | International Business Machines Corporation | Reducing power consumption during execution of an application on a plurality of compute nodes |
US8458722B2 (en) * | 2008-06-09 | 2013-06-04 | International Business Machines Corporation | Thread selection according to predefined power characteristics during context switching on compute nodes |
US8296590B2 (en) | 2008-06-09 | 2012-10-23 | International Business Machines Corporation | Budget-based power consumption for application execution on a plurality of compute nodes |
US8291427B2 (en) * | 2008-06-09 | 2012-10-16 | International Business Machines Corporation | Scheduling applications for execution on a plurality of compute nodes of a parallel computer to manage temperature of the nodes during execution |
US8250389B2 (en) * | 2008-07-03 | 2012-08-21 | International Business Machines Corporation | Profiling an application for power consumption during execution on a plurality of compute nodes |
US8069300B2 (en) | 2008-09-30 | 2011-11-29 | Micron Technology, Inc. | Solid state storage device controller with expansion mode |
JP2010165249A (ja) * | 2009-01-16 | 2010-07-29 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US20110128766A1 (en) * | 2009-11-30 | 2011-06-02 | Ward Parkinson | Programmable Resistance Memory |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8436720B2 (en) | 2010-04-29 | 2013-05-07 | International Business Machines Corporation | Monitoring operating parameters in a distributed computing system with active messages |
US8537618B2 (en) | 2010-08-26 | 2013-09-17 | Steven Jeffrey Grossman | RAM memory device with NAND type interface |
KR101736384B1 (ko) * | 2010-09-29 | 2017-05-16 | 삼성전자주식회사 | 비휘발성 메모리 시스템 |
KR20120079682A (ko) * | 2011-01-05 | 2012-07-13 | 삼성전자주식회사 | 디램 캐시를 포함하는 메모리 장치 및 이를 포함하는 시스템 |
US8719539B2 (en) * | 2011-06-30 | 2014-05-06 | Red Hat, Inc. | Using heuristics for field types of a structure to categorize dynamic memory allocations |
US8725978B2 (en) | 2011-06-30 | 2014-05-13 | Red Hat, Inc. | Using symbol information for categorization of dynamic memory allocations |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US10096350B2 (en) * | 2012-03-07 | 2018-10-09 | Medtronic, Inc. | Memory array with flash and random access memory and method therefor, reading data from the flash memory without storing the data in the random access memory |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
US9026808B2 (en) * | 2012-04-26 | 2015-05-05 | Freescale Semiconductor, Inc. | Memory with word level power gating |
US9317087B2 (en) | 2012-04-26 | 2016-04-19 | Ravindraraj Ramaraju | Memory column drowsy control |
CN102722444A (zh) * | 2012-05-23 | 2012-10-10 | 北京百纳威尔科技有限公司 | 扩展内部存储空间的方法、装置及终端 |
US9164804B2 (en) | 2012-06-20 | 2015-10-20 | Memory Technologies Llc | Virtual memory module |
US20130346673A1 (en) * | 2012-06-25 | 2013-12-26 | Yi-Chou Chen | Method for improving flash memory storage device access |
KR101975528B1 (ko) | 2012-07-17 | 2019-05-07 | 삼성전자주식회사 | 패스트 어레이 영역을 갖는 반도체 메모리 셀 어레이 및 그것을 포함하는 반도체 메모리 |
US9128845B2 (en) | 2012-07-30 | 2015-09-08 | Hewlett-Packard Development Company, L.P. | Dynamically partition a volatile memory for a cache and a memory partition |
US9116820B2 (en) * | 2012-08-28 | 2015-08-25 | Memory Technologies Llc | Dynamic central cache memory |
US20140156252A1 (en) * | 2012-11-30 | 2014-06-05 | International Business Machines Corporation | Hybrid platform-dependent simulation interface |
CN103019624B (zh) * | 2012-12-11 | 2015-07-15 | 清华大学 | 一种相变内存装置 |
CN103020551B (zh) * | 2012-12-21 | 2015-12-02 | 清华大学 | 一种内存架构 |
WO2014107154A1 (en) * | 2013-01-03 | 2014-07-10 | Icelero Inc. | System and method for host-processor communication over a bus |
US10042750B2 (en) * | 2013-03-15 | 2018-08-07 | Micron Technology, Inc. | Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor |
US9489204B2 (en) * | 2013-03-15 | 2016-11-08 | Qualcomm Incorporated | Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process |
GB2516435A (en) | 2013-04-05 | 2015-01-28 | Continental Automotive Systems | Embedded memory management scheme for real-time applications |
KR102070626B1 (ko) | 2013-06-26 | 2020-01-30 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US10185515B2 (en) * | 2013-09-03 | 2019-01-22 | Qualcomm Incorporated | Unified memory controller for heterogeneous memory on a multi-chip package |
WO2015089488A1 (en) | 2013-12-12 | 2015-06-18 | Memory Technologies Llc | Channel optimized storage modules |
CN104166147A (zh) * | 2014-01-08 | 2014-11-26 | 芜湖市振华戎科智能科技有限公司 | 基于北斗二和gps的双模芯片 |
US10191822B2 (en) | 2014-02-20 | 2019-01-29 | Rambus Inc. | High performance persistent memory |
US9804979B2 (en) * | 2014-12-29 | 2017-10-31 | Sandisk Technologies Llc | Ring bus architecture for use in a memory module |
USD764620S1 (en) | 2015-01-14 | 2016-08-23 | Sig Sauer, Inc. | Firearm |
JP2016167215A (ja) | 2015-03-10 | 2016-09-15 | 株式会社東芝 | メモリ装置 |
US20180218317A1 (en) * | 2015-03-25 | 2018-08-02 | Joseph Marsh Ryan, III | System and method for determining product movement using a sensor |
US9720604B2 (en) | 2015-08-06 | 2017-08-01 | Sandisk Technologies Llc | Block storage protocol to RAM bypass |
CN106383775B (zh) * | 2015-08-18 | 2019-03-08 | 上海景格科技股份有限公司 | 设备使用时间记录方法及其装置 |
TWI553478B (zh) * | 2015-09-23 | 2016-10-11 | 瑞昱半導體股份有限公司 | 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置 |
US9904636B2 (en) * | 2015-10-22 | 2018-02-27 | John Boyd | Modular ultra-wide internal bus mainframe processing units |
US10430081B2 (en) * | 2016-06-28 | 2019-10-01 | Netapp, Inc. | Methods for minimizing fragmentation in SSD within a storage system and devices thereof |
US10216685B1 (en) * | 2017-07-19 | 2019-02-26 | Agiga Tech Inc. | Memory modules with nonvolatile storage and rapid, sustained transfer rates |
KR102340446B1 (ko) * | 2017-09-08 | 2021-12-21 | 삼성전자주식회사 | 스토리지 장치 및 그것의 데이터 트레이닝 방법 |
KR102433549B1 (ko) | 2017-11-17 | 2022-08-19 | 에스케이하이닉스 주식회사 | 통합 메모리 디바이스 및 그의 동작 방법 |
KR102414047B1 (ko) | 2017-10-30 | 2022-06-29 | 에스케이하이닉스 주식회사 | 통합 메모리 디바이스 및 그의 동작 방법 |
US11544168B2 (en) | 2017-10-30 | 2023-01-03 | SK Hynix Inc. | Memory system |
KR20190085642A (ko) * | 2018-01-11 | 2019-07-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US11416395B2 (en) * | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US10831393B2 (en) | 2018-02-08 | 2020-11-10 | Micron Technology, Inc. | Partial save of memory |
US10880401B2 (en) | 2018-02-12 | 2020-12-29 | Micron Technology, Inc. | Optimization of data access and communication in memory systems |
US10877892B2 (en) | 2018-07-11 | 2020-12-29 | Micron Technology, Inc. | Predictive paging to accelerate memory access |
KR20210045506A (ko) * | 2018-09-17 | 2021-04-26 | 마이크론 테크놀로지, 인크. | 하이브리드 듀얼 인-라인 메모리 모듈에서의 캐시 작업 |
JP2020047340A (ja) * | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | 不揮発性メモリ及びメモリシステム |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
US20210097184A1 (en) * | 2019-09-27 | 2021-04-01 | Advanced Micro Devices, Inc. | Secure buffer for bootloader |
CN111767508B (zh) * | 2020-07-09 | 2024-02-23 | 地平线(上海)人工智能技术有限公司 | 计算机实现张量数据计算的方法、装置、介质和设备 |
KR20220053973A (ko) | 2020-10-23 | 2022-05-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN116955241B (zh) * | 2023-09-21 | 2024-01-05 | 杭州智灵瞳人工智能有限公司 | 兼容多类型存储介质的存储芯片 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5509132A (en) * | 1990-04-13 | 1996-04-16 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device having an SRAM as a cache memory integrated on the same chip and operating method thereof |
CN1833291A (zh) * | 2003-08-27 | 2006-09-13 | 因芬奈昂技术股份有限公司 | 具有高速缓存数据接口的高密度闪存 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459846A (en) * | 1988-12-02 | 1995-10-17 | Hyatt; Gilbert P. | Computer architecture system having an imporved memory |
EP0618535B1 (en) * | 1989-04-13 | 1999-08-25 | SanDisk Corporation | EEPROM card with defective cell substitution and cache memory |
EP0552667B1 (en) * | 1992-01-22 | 1999-04-21 | Enhanced Memory Systems, Inc. | Enhanced dram with embedded registers |
JP3904244B2 (ja) * | 1993-09-17 | 2007-04-11 | 株式会社ルネサステクノロジ | シングル・チップ・データ処理装置 |
US6029224A (en) * | 1995-06-07 | 2000-02-22 | Lucent Technologies Inc. | Self-contained memory apparatus having diverse types of memory and distributed control |
US6230235B1 (en) * | 1996-08-08 | 2001-05-08 | Apache Systems, Inc. | Address lookup DRAM aging |
GB2317722B (en) * | 1996-09-30 | 2001-07-18 | Nokia Mobile Phones Ltd | Memory device |
US6212597B1 (en) * | 1997-07-28 | 2001-04-03 | Neonet Lllc | Apparatus for and method of architecturally enhancing the performance of a multi-port internally cached (AMPIC) DRAM array and like |
US6336174B1 (en) * | 1999-08-09 | 2002-01-01 | Maxtor Corporation | Hardware assisted memory backup system and method |
US6427196B1 (en) * | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6694380B1 (en) * | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
JP3871853B2 (ja) * | 2000-05-26 | 2007-01-24 | 株式会社ルネサステクノロジ | 半導体装置及びその動作方法 |
US6836839B2 (en) * | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
JP2003006041A (ja) * | 2001-06-20 | 2003-01-10 | Hitachi Ltd | 半導体装置 |
GB0123416D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
US6986021B2 (en) * | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
TWI282513B (en) * | 2002-06-12 | 2007-06-11 | Mediatek Inc | A pre-fetch device of instruction for an embedded system |
US8276135B2 (en) * | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
US7478031B2 (en) * | 2002-11-07 | 2009-01-13 | Qst Holdings, Llc | Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information |
US7613880B2 (en) * | 2002-11-28 | 2009-11-03 | Renesas Technology Corp. | Memory module, memory system, and information device |
US20040199727A1 (en) * | 2003-04-02 | 2004-10-07 | Narad Charles E. | Cache allocation |
US7657706B2 (en) * | 2003-12-18 | 2010-02-02 | Cisco Technology, Inc. | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory |
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US20050220115A1 (en) * | 2004-04-06 | 2005-10-06 | David Romano | Method and apparatus for scheduling packets |
US20060095622A1 (en) * | 2004-10-28 | 2006-05-04 | Spansion, Llc | System and method for improved memory performance in a mobile device |
TWM286985U (en) * | 2005-08-22 | 2006-02-01 | Regulus Technologies Co Ltd | Memory module with smart-type power-saving and fault-tolerance |
US7376034B2 (en) * | 2005-12-15 | 2008-05-20 | Stec, Inc. | Parallel data storage system |
US20070143547A1 (en) * | 2005-12-20 | 2007-06-21 | Microsoft Corporation | Predictive caching and lookup |
US20070147115A1 (en) | 2005-12-28 | 2007-06-28 | Fong-Long Lin | Unified memory and controller |
US7996600B2 (en) * | 2007-08-30 | 2011-08-09 | Unity Semiconductor Corporation | Memory emulation in an electronic organizer |
US7802057B2 (en) * | 2007-12-27 | 2010-09-21 | Intel Corporation | Priority aware selective cache allocation |
US8108614B2 (en) * | 2007-12-31 | 2012-01-31 | Eric Sprangle | Mechanism for effectively caching streaming and non-streaming data patterns |
US8615499B2 (en) * | 2012-01-27 | 2013-12-24 | International Business Machines Corporation | Estimating data reduction in storage systems |
-
2008
- 2008-01-10 US US11/972,537 patent/US8135933B2/en not_active Expired - Fee Related
- 2008-01-10 WO PCT/US2008/050787 patent/WO2008086488A2/en active Application Filing
- 2008-01-10 TW TW097101051A patent/TWI463321B/zh not_active IP Right Cessation
- 2008-01-10 KR KR1020097016681A patent/KR101469512B1/ko not_active IP Right Cessation
- 2008-01-10 TW TW103133323A patent/TWI530791B/zh active
- 2008-01-10 EP EP08713711A patent/EP2122473B1/en not_active Not-in-force
- 2008-01-10 CN CN200880002127XA patent/CN101611387B/zh not_active Expired - Fee Related
-
2010
- 2010-06-21 HK HK10106121.7A patent/HK1140031A1/xx not_active IP Right Cessation
-
2012
- 2012-01-31 US US13/363,151 patent/US8504793B2/en active Active
-
2013
- 2013-07-02 US US13/934,137 patent/US8918618B2/en active Active
-
2014
- 2014-11-17 US US14/543,673 patent/US9424182B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5509132A (en) * | 1990-04-13 | 1996-04-16 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device having an SRAM as a cache memory integrated on the same chip and operating method thereof |
CN1833291A (zh) * | 2003-08-27 | 2006-09-13 | 因芬奈昂技术股份有限公司 | 具有高速缓存数据接口的高密度闪存 |
Non-Patent Citations (1)
Title |
---|
B.Marsh et al..Flash Memory File Caching for Mobile Computers.《Proceedings of the Twenty-Seventh Annual Hawaii International Conference on System Sciences》.1994, * |
Also Published As
Publication number | Publication date |
---|---|
WO2008086488A2 (en) | 2008-07-17 |
WO2008086488A3 (en) | 2008-09-04 |
WO2008086488B1 (en) | 2008-10-23 |
EP2122473B1 (en) | 2012-12-05 |
EP2122473A2 (en) | 2009-11-25 |
KR20090108707A (ko) | 2009-10-16 |
HK1140031A1 (en) | 2010-09-30 |
KR101469512B1 (ko) | 2014-12-05 |
US8918618B2 (en) | 2014-12-23 |
US20120131269A1 (en) | 2012-05-24 |
TW201523261A (zh) | 2015-06-16 |
US20150074344A1 (en) | 2015-03-12 |
TWI530791B (zh) | 2016-04-21 |
US9424182B2 (en) | 2016-08-23 |
CN101611387A (zh) | 2009-12-23 |
EP2122473A4 (en) | 2011-06-08 |
US20090024819A1 (en) | 2009-01-22 |
TWI463321B (zh) | 2014-12-01 |
US20140013039A1 (en) | 2014-01-09 |
US8504793B2 (en) | 2013-08-06 |
US8135933B2 (en) | 2012-03-13 |
TW200839519A (en) | 2008-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101611387B (zh) | 用于增强外部计算设备的性能的自适应存储设备及方法 | |
US10552055B2 (en) | Multi-tier scheme for logical storage management | |
US11467955B2 (en) | Memory system and method for controlling nonvolatile memory | |
US11151029B2 (en) | Computing system and method for controlling storage device | |
US11669269B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN107656700B (zh) | 一种flash-dram混合存储器模块 | |
US8874826B2 (en) | Programming method and device for a buffer cache in a solid-state disk system | |
US8954656B2 (en) | Method and system for reducing mapping table size in a storage device | |
CN101493796B (zh) | 存储器内、页面内目录高速缓存一致性配置 | |
US20100017556A1 (en) | Non-volatile memory storage system with two-stage controller architecture | |
US20120084489A1 (en) | Synchronized maintenance operations in a multi-bank storage system | |
WO2019040320A1 (en) | LOGICAL MAPPING TO PHYSICS | |
CN103425600A (zh) | 一种固态盘闪存转换层中的地址映射方法 | |
US20230251798A1 (en) | Memory system and method for controlling nonvolatile memory with a host memory buffer | |
US11157212B2 (en) | Virtual controller memory buffer | |
JP2019148913A (ja) | メモリシステム | |
US11494306B2 (en) | Managing data dependencies in a transfer pipeline of a hybrid dimm |
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: 1140031 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1140031 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130313 Termination date: 20180110 |
|
CF01 | Termination of patent right due to non-payment of annual fee |