用于增强外部计算设备的性能的自适应存储系统的制作方法

文档序号:6476261阅读:155来源:国知局
专利名称:用于增强外部计算设备的性能的自适应存储系统的制作方法
用于增强外部计算设备的性能的自适应存储系统 相关申请的交叉引用
本申请要求2007年1月lO日提交的美国临时申请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存储器之间的传送。

发明内容
该发明内容被提供来以简化形式引入概念的选择,将在下面的具 体实施方式中进一步描述所述概念。该发明内容不意图确认所要求保 护的主题的关键特征,它也不意图用于在确定所要求保护的主题的范 围方面给予帮助。
鉴于与如在上面背景技术部分中所讨论的现有技术存储系统相 关的低效,本申请的发明人已经发明了自适应存储设备,其使用价格
10比较低廉的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)使用该外部总线接 口与外部计算设备通信;以及(Hi)将高速緩存数据存储指派分配到
第一存储器类型内的存储空间,并且在第一存储器类型内的存储空间 被确定为满的之后,将高速緩存数据存储指派分配到第二存储器类型 内的存储空间。
根据本发明的还一实施例,提供了 一种包括计算机可执行程序的 计算机可读介质,用于实现自适应存储系统的单个控制器的数据先行 高速緩存方案。该自适应存储系统还包括第一存储器类型、第二存储 器类型、第三存储器类型、内部总线系统以及外部总线接口。该计算 机可执行程序在被执行时使得该单个控制器执行通常包括四个步骤 的方法(i)从运行在外部计算设备上的应用获得扇区数据的序列;
(ii)将所获得的扇区数据的序列与多个先前存储的扇区数据的序列 进行比较以确定是否存在高概率匹配;(iii)如果在所获得的扇区数 据的序列与该多个先前存储的扇区数据的序列之间确定了高概率匹 配,则用所确定的高概率匹配来至少高速緩存第一存储器类型;以及
(iv)如果在所获得的扇区数据的序列与该多个先前存储的扇区数据 的序列之间没有确定高概率匹配,则确定是否能够从该多个先前存储 的扇区数据的序列中选出最可能的扇区数据的序列。
根据本发明的一个方面,如果能够选出最可能的扇区数据的序 列,则将所选的最可能的扇区数据的序列高速緩存到第一存储器类型或第二存储器类型中;并且如果不能选出最可能的扇区数据的序列, 则启动高速緩存数据训练序列(training sequence )。
根据本发明的另 一方面,该高速緩存数据训练序列在第 一存储器 类型或者第二存储器类型内存储所获得的扇区数据的序列,并且在第 三存储器类型中存储该序列的非易失性的拷贝。
根据本发明的再一 实施例,提供了 一种用于实现自适应存储系统 的单个控制器的数据先行高速緩存方案的方法。该自适应存储系统包 括单个控制器、第一存储器类型、第二存储器类型、第三存储器类型、 内部总线系统以及外部总线接口。该方法通常包括四个步骤(i)从 运行在外部计算设备上的应用获得扇区数据的序列;(ii)将所获得 的扇区数据的序列与多个先前存储的扇区数据的序列进行比较以确 定是否存在高概率匹配;(iii)如果在所获得的扇区数据的序列与该 多个先前存储的扇区数据的序列之间确定了高概率匹配,则将所确定 的高概率匹配数据至少高速緩存到第一存储器类型;以及(iv)如果 在所获得的扇区数据的序列与该多个先前存储的扇区数据的序列之 间没有确定高概率匹配,则确定是否能够从该多个先前存储的扇区数 据的序列中选出最可能的扇区数据的序列。


通过参考以下结合附图的详细描述,本发明的上述方面和许多伴 随的优点将变得更容易明白,并且同样变得更好理解,在附图中 图l是根据本发明一个实施例的自适应存储系统(AMS )的框图; 图2是示出了根据现有技术的与外部计算设备接口连接的传统存 储系统的框图3是示出了根据本发明 一个实施例的AMS文件系统分区的框
图4是示出了根据本发明一个实施例的、由AMS控制器帮助的、 在AMS存储器组件和处理器之间的详细数据流的框图5是根据本发明一个实施例的、示出了在不同操作处理级时的
13数据流转移的AMS控制器的状态机图6是示出了根据本发明一个实施例的、用于填充AMSSRAM和 DRAM高速緩存的部分的AMS控制器高速緩存数据先行方案的流程 图7是示出了根据本发明一个实施例的、与AMS控制器高速緩存 数据先行方案有关的训练序列的流程图8是示出了根据本发明一个实施例的、与AMS控制器高速緩存 数据先行方案有关的调整序列(timing sequence )的流程图9是示出了根据本发明一个实施例的、AMS控制器的数据流和 相关带宽分配的框图。
具体实施例方式
本发明涉及自适应存储系统(AMS),其包含易失性的和非易 失性的存储器组件以及控制器组件,该控制器组件被配置为管理存储 器组件之间的数据传送和存储器组件与外部计算设备之间的数据传 送。存储器组件和控制器组件(在此被统称为AMS组件)被具体实现 在多芯片封装集成电路(MCP)上,其能够被可配置地设计成可拆装 地插入任何传统的个人计算设备(例如台式PC、膝上型PC、蜂窝式 电话、PDA或者超移动PC)中。本发明还涉及由AMS控制器组件实 现的数据传送控制方案,其增强与AMS和外部计算设备之间的数据传 送有关的综合性能。
根椐一个实施例,图1中示出的AMS IO包括多个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)之 间传送(高速緩存)数据是低效的。
例如如图l中所示出的,根据本发明各个实施例的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和AMSRAM存储器组件14、 16之间更短的物理DMA互连提供了与上面讨论的传统传送方案相比 更低的寄生电容。已知电路中过大的寄生电容会减少带宽、提高外来 干扰的可能性并且增大在正常电路操作条件期间的功耗。当在这些 AMS存储器组件之间反复地传送数据时(例如,当高速緩存页数据时),在本发明中实现的更短的导线长度数据传送提供了显著的节电 量。
消除外部计算设备的处理器对AMS存储器组件数据传送控制的 影响的另一个优点在于在装载之前实际的文件管理功能被嵌入在 AMS内。这允许外部计算设备将AMS看作标准文件系统。标准文件系 统能够由标准操作系统级驱动器来支持,由此消除了在操作系统级维 持专门的依赖闪存的设备驱动器的需要。AMS的自含的 (self-contained )闪存驱动器软件被包含在附图中示出的AMS文件系 统分区50的嵌入式SRAM/DRAM/闪存可安装文件系统分区54内。在 所示出的实施例中,其它AMS文件系统分区包括标准的FAT文件系统 分区52以及包括引导(Boot)分区和闪存接口数据的设备配置分区56。 嵌入式闪存驱动器软件不需要在与操作系统集成的时候进行附加的 测试。该独立的存储器驱动器控制有利地允许几乎任何操作系统认出 AMS,而不需要在外部计算设备上额外地安装专门的存储器驱动器软 件。
AMS控制器12还可以被配置为通过选择性地选通(gate )到AMS SRAM和DRAM易失性存储器组件14、 16的部分的功率流来使功耗最 小化。这样的节电技术是优选的,因为如本领域中众所周知的,SRAM 和DRAM易失性存储器类型都需要恒定的功率汲取(power-draw )来 维持或者刷新保存在它们的各个存储区的部分内的现有数据。为了使 AMS中的该功率汲取最小化,在本发明的各个示例性实施例中,控制 器12监视RAM存储器组件以检测何时SRAM或者DRAM 14、 16的部 分没有被安排被写入并且已经不保存数据。一旦检测到RAM的不活动 的部分,控制器12就使SRAM或DRAM14、 16的那些不活动的部分掉 电以将功率损耗最小化。以这种方式,能够从AMS设备内部动态地调 节功耗,而不需要来自外部计算设备的处理器的任何输入。
根据本发明的各个示例性实施例,AMS (例如图l中所看到的) 被配置为用作高速自适应的高速緩存,其中SRAM 14的部分用作1级 和2级高速緩存分区,并且DRAM16的部分用作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传送到SRAM62,如路径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 (参见图l)内部填充AMS存 储空间。如图4中所示出的,控制器60可以使用路径P10、 Pll、 P14 和P13存取SRAM 62或者DRAM高速緩存72中的应用数据或者程序数 据的块68、 70、 76和78。为了将应用数据提交到闪存80中,必须首先 将一页或者多页信息在SRAM62或者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列出了与数据流图相关的对应状态转移。
表l: AMS控制器数据流图状态定义
NO.名称描述DMA操作DRAM电力SRAM电力
1 引导处理器启动。将引导代码断开为引导所需
没有配置从闪存复制的组件接
DRAM高速到SRAM,处通,其它断
緩存。理 器 从开
SRAM引导。
2 程序处理器运行将闪存页复接通接通
初始应用,5殳制到SRAM、
有数据被写DRAM高速
入。緩存。执行
DMA请求。
3 计算处理器运行将闪存页复接通接通
带有数据处制到SRAM、
理的应用。DRAM高速
緩存。将
SRAM高速
緩存溢出传
送到DRAM。
执行DMA请 求。功使来自处理SRAM备份接通 接通 , 器侧的总线到DRAM并 线空闲。 且提交到闪
闲 存。执行DMA
__^_
5 待机使来自处理 接通 断开
器侧的总线 空闲。等待激 活或者掉电。
6掉电处理器请求低功率待机
低功率状态。
表2: AMS控制器数据流图状态转移转移起始状态到达状态标准
I上电1引导系统复位有效
II1引导2程序内部引导初始化序列完成
m2程序3计算系统复位无效;系统掉电无效;写
周期的数目超过阈值
IV2程序1引导系统复位有效
V2程序6掉电系统掉电有效
VI3计算4低功率,在持续时间超时1内没有总线存取
总线空闲请求
VII3计算6掉电系统掉电有效
VIII3计算1引导系统复位有效
低率总空
4IX4低功率5待机系统掉电无效;在持续时间超时2
内没有总线存取请求
X4低功率6掉电系统掉电有效
XI4低功率3计算系统掉电无效;检测到系统总线存
取请求
XII5待机6掉电系统掉电有效
XIII5待机2程序系统掉电无效;检测到系统总线存
取请求
XIV6掉电2程序检测到系统总线存取请求
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中确定是否能够发现高概率匹 配。以下将详细描述高概率匹配的发现。如果对于每个存储的序列比
21较地确定(在块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从运行在外部计算设备上的应用获得, 如在块IIO、 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存储器组件设备类型(SRAM14、 DRAM16和闪 存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的附加的接口
如图l中所示出的,在本发明的一个实施例中,AMS MCP集成 电路被设计成包括要与附加的DRAM和闪速存储器组件耦接的扩展 闪存总线26和扩展DRAM总线24。如本领域技术人员会理解的,附加 的DRAM和闪速存储器组件应该被配置为和已有的驱动器软件一起 运行,该已有的驱动器软件存在于已有的AMS文件系统分区50内的嵌 入式SRAM/DRAM/闪存可安装文件系统54中(参见图3)。另外,增 加的DRAM或闪速存储器组件将需要更新已有的AMS存储器组件驱 动器,使得能够在安装时避免不可预知的错误。
此外,在本发明的一个实施例中,AMSMCP集成电路^/没计成 包括扩展总线接口28 (在图l中示出),由此控制器能够通过扩展总 线与次级(secondary)计算设备通信。仅仅为了方便和清楚起见,该 扩展总线接口28被示出为与扩展DRAM总线24和扩展闪存总线26无 关,然而,应当认识到能够可配置地将扩展总线接口28并入扩展 DRAM总线24或者扩展闪存总线26中,以减少AMS控制器管脚数。扩 展总线接口 28有效地允许AMS控制器同时通信和传送所存储的数据 到多个外部计算设备。
如上所述,还应当理解,本实施例的SRAM14、 DRAM 16和闪 存18存储器组件(在图1中示出)仅仅是能够在AMS内运行的存储 器类型的实例,而本发明不限于本实施例中使用的精确的存储器类 型。存在提供与上述存储器类型类似的特征和功能的可替代技术。例 如SRAM 14的实现能够用 一种伪SRAM ( PSRAM)替换;DRAM 16的实现能够用一种零电容器RAM (ZRAM)或者双晶体管RAM(TTRAM)替换;并且闪存18的实现能够被具体地指定为与非 (NAND)或者或非(NOR)型闪存,或者能够用一种相变存储器 (PCM、 PRAM)来替换。显而易见,上面列出的可替代的存储器组
件类型不是穷举的,并且可以进行许多其它改变,而同时还允许本发
明如上所述的工作。
权利要求
1、一种用于改进外部计算设备的性能的自适应存储系统,其中所述自适应存储系统包括单个控制器、第一存储器类型、第二存储器类型、第三存储器类型、内部总线系统以及外部总线接口,所述单个控制器被配置为使用所述内部总线系统与全部三个存储器类型通信;使用所述外部总线接口与所述外部计算设备通信;以及将高速缓存数据存储指派分配到第一存储器类型内的存储空间,并且在第一存储器类型内的所述存储空间被确定为满的之后,将高速缓存数据存储指派分配到第二存储器类型内的存储空间。
2、 根据权利要求l的自适应存储系统,其中笫一存储器类型是静 态随机存取存储器(SRAM),第二存储器类型是动态随机存取存储 器(DRAM),并且第三存储器类型是闪速存储器。
3、 根据权利要求l的自适应存储系统,其中第一存储器类型和第 二存储器类型是不同的易失性存储器类型而第三存储器类型是非易 失性存储器类型;并且其中所述单个控制器还被配置为使第一和第二存储器类型的没有被写入的部分掉电,以使功耗最小化。
4、 根据权利要求2的自适应存储系统,其中所述单个控制器还被 配置为将高速緩存数据从所述SRAM或者所述闪速存储器传送到所述 DRAM;其中如果所述高速緩存数据存在于所述SRAM内,则将所述高速 緩存数据从所述SRAM传送到所述DRAM;以及其中如果所述高速緩存数据不存在于所述SRAM内,而存在于所述闪速存储器内,则将所述高速緩存数据从所述闪速存储器传送到所述DRAM。
5、 根据权利要求2的自适应存储系统,其中所述单个控制器还被 配置为根据数据先行方案将来自所述闪速存储器的数据高速緩存到所 述SRAM和DRAM。
6、 一种用于控制自适应存储系统的方法,其中所述自适应存储 系统包括单个控制器、第一存储器类型、第二存储器类型、第三存储 器类型、内部总线系统以及外部总线接口,所述方法包含以下步骤使用所述内部总线系统与全部三个存储器类型通信; 使用所述外部总线接口与外部计算设备通信;以及 将高速緩存数据存储指派分配到第一存储器类型内的存储空间, 并且在第一存储器类型内的所述存储空间被确定为满的之后,在第二存储器类型的存储空间内分配高速緩存数据存储指派。
7、 根据权利要求6的方法,其中第一存储器类型是静态随机存取 存储器(SRAM ),第二存储器类型是动态随机存取存储器(DRAM ), 并且第三存储器类型是闪速存储器。
8、 根据权利要求6的方法,其中第一存储器类型和第二存储器类 型是不同的易失性存储器类型而第三存储器类型是非易失性存储器 类型,并且其中所述方法还包含以下步骤使第一和第二存储器类型的没有被写入的部分掉电,以使功耗最小化。
9、 根据权利要求7的方法,其中所述方法还包含以下步骤 将高速緩存数据从所述SRAM或者所述闪速存储器传送到所述DRAM;其中如果所述高速緩存数据存在于所述SRAM内,则将所述高速 緩存数据从所述SRAM传送到所述DRAM;以及其中如果所述高速緩存数据不存在于所述SRAM内,而存在于所 述闪速存储器内,则将所述高速緩存数据从所述闪速存储器传送到所 述DRAM。
10、 根据权利要求7的方法,还包含以下步骤 根据数据先行方案将来自所述闪速存储器的数据高速緩存到所述SRAM和DRAM。
11、 一种计算机可读介质,包括用于控制自适应存储系统的单个 控制器的操作的计算机可执行程序,所述自适应存储系统还包括第一 存储器类型、第二存储器类型、第三存储器类型、内部总线系统以及 外部总线接口 ,所述计算机可执行程序在被执行时使得所述单个控制 器执行包括下列步骤的方法使用所述内部总线系统与全部三个存储器类型通信; 使用所述外部总线接口与外部计算设备通信;以及 将高速緩存数据存储指派分配到第一存储器类型内的存储空间, 并且在第一存储器类型内的所述存储空间被确定为满的之后,将高速 緩存数据存储指派分配到第二存储器类型内的存储空间。
12、 根据权利要求il的计算机可读介质,其中第一存储器类型是静态随机存取存储器(SRAM),第二存储器类型是动态随机存取存 储器(DRAM),并且第三存储器类型是闪速存储器。
13、 根据权利要求ll的计算机可读介质,其中第一存储器类型和 第二存储器类型是不同的易失性存储器类型而第三存储器类型是非易失性存储器类型,并且其中由所述计算机可执行程序执行的所述方法还包含以下步骤使第一和第二存储器类型的没有被写入的部分掉电,以使功耗最小化。
14、 根据权利要求12的计算机可读介质,其中由所述计算机可执 行程序执行的所述方法还包含以下步骤将数据从所述SRAM或者所述闪速存储器高速緩存到所述 DRAM;其中如果所述高速緩存数据存在于所述SRAM内,则将所述高速 緩存数据从所述SRAM传送到所述DRAM;以及其中如果所述高速緩存数据不存在于所述SRAM内,而存在于所 述闪速存储器内,则将所述高速緩存数据从所述闪速存储器传送到所 述DRAM。
15、 根据权利要求12的计算机可读介质,其中由所述计算机可执 行程序执行的所述方法还包含以下步骤根据数椐先行方案将来自所述闪速存储器的高速緩存数据传送 到所述SRAM和DRAM。
16、 一种计算机可读介质,包括用于实现自适应存储系统的单个 控制器的数据先行高速緩存方案的计算机可执行程序,所述自适应存 储系统还包括第一存储器类型、第二存储器类型、第三存储器类型、 内部总线系统以及外部总线接口 ,所述计算机可执行程序在被执行时 使得所述单个控制器执行包括下列步骤的方法从运行在外部计算设备上的应用获得扇区数据的序列; 将所获得的扇区数据的序列与多个先前存储的扇区数据的序列进行比较以确定是否存在高概率匹配;其中如果在所获得的扇区数据的序列与所述多个先前存储的扇区数据的序列之间确定了高概率匹配,则用所确定的高概率匹配来至少高速緩存第一存储器类型;以及其中如果在所获得的扇区数据的序列与所述多个先前存储的扇 区数据的序列之间没有确定高概率匹配,则确定是否能够从所述多个 先前存储的扇区数据的序列中选出最可能的扇区数据的序列。
17、 根据权利要求16的计算机可读介质,其中第一存储器类型是 静态随机存取存储器(SRAM),第二存储器类型是动态随机存取存 储器(DRAM),并且第三存储器类型是闪速存储器。
18、 根据权利要求16的计算机可读介质,其中,如果能够选出最 可能的扇区数据的序列,则将所选的最可能的扇区数据的序列高速緩 存到第一存储器类型或者第二存储器类型中;以及如果不能选出最可能的扇区数据的序列,则启动高速緩存数据训 练序列。
19、 根据权利要求18的计算机可读介质,其中所述高速緩存数据 训练序列在第一存储器类型或者第二存储器类型内存储所获得的扇 区数据的序列,并且在第三存储器类型中存储所述序列的非易失性的 拷贝。
20、 根据权利要求19的计算机可读介质,其中第一存储器类型是 静态随机存取存储器(SRAM),第二存储器类型是动态随机存取存 储器(DRAM),并且第三存储器类型是闪速存储器。
21、 一种用于实现自适应存储系统的单个控制器的数据先行高速 緩存方案的方法,其中所述自适应存储系统包括单个控制器、第一存 储器类型、第二存储器类型、第三存储器类型、内部总线系统以及外 部总线接口,所述方法包含以下步骤从运行在外部计算设备上的应用获得扇区数据的序列;将所获得的扇区数据的序列与多个先前存储的扇区数据的序列进行比较以确定是否存在高概率匹配;其中如果在所荻得的扇区数据的序列与所述多个先前存储的扇 区数据的序列之间确定了高概率匹配,则将所确定的高概率匹配数据 至少高速緩存到第一存储器类型;以及其中如果在所获得的扇区数据的序列与所述多个先前存储的扇区数据的序列之间没有确定高概率匹配,则确定是否能够从所述多个 先前存储的扇区数据的序列中选出最可能的扇区数据的序列。
22、 根据权利要求21的方法,其中第一存储器类型是静态随机存 取存储器(SRAM),第二存储器类型是动态随机存取存储器(DRAM),并且第三存储器类型是闪速存储器。
23、 根据权利要求21的方法,其中如果能够选出最可能的扇区数 据的序列,则将所选的最可能的扇区数据的序列高速緩存到第一存储 器类型或第二存储器类型中;以及如果不能选出最可能的扇区数据的序列,则启动高速緩存数据训 练序列。
24、 根据权利要求23的方法,其中所述高速緩存数据训练序列在 笫一存储器类型或者第二存储器类型内存储所获得的扇区数据的序 列,并且在第三存储器类型中存储所述序列的非易失性的拷贝。
25、 根据权利要求24的方法,其中第一存储器类型是静态随机存 取存储器(SRAM),第二存储器类型是动态随机存取存储器(DRAM),并且第三存储器类型是闪速存储器。
26、 根据权利要求l的自适应存储系统,其中第一存储器类型和 第二存储器类型是不同的易失性存储器类型而第三存储器类型是非易失性存储器类型;并且其中所述单个控制器还被配置为包括至少一个扩展存储器总线,用其与外部存储器通信以扩展可用存 储器的容量。
27、 根据权利要求l的自适应存储系统,其中第一存储器类型和 第二存储器类型是不同的易失性存储器类型而第三存储器类型是非易失性存储器类型;并且其中所述单个控制器还被配置为包括 至少一个扩展存储器接口,用其与次级外部计算设备通信。
28、 根据权利要求l的自适应存储系统,其中笫一存储器类型和 第二存储器类型是不同的易失性存储器类型而第三存储器类型是包含多个组件的非易失性存储器类型;并且其中所述单个控制器还被配置为选择性地启用所述多个组件中的一个或多个;以及 选择性地禁用所述多个组件中的 一个或多个。
29、 根据权利要求28的自适应存储系统,其中所述单个控制器通 过将启用信号发送给那些要被启用的组件来选择性地启用所述多个组件中的一个或多个。
30、 根据权利要求28的自适应存储系统,其中所述单个控制器通 过将要被禁用的那些组件的地址位置设置为已知的有缺陷的地址位 置来选择性地禁用所述多个组件中的一个或多个。
全文摘要
本发明提供了一种用于改进外部计算设备的性能的自适应存储系统。该自适应存储系统包括单个控制器、第一存储器类型(例如,静态随机存取存储器或SRAM)、第二存储器类型(例如,动态随机存取存储器或DRAM)、第三存储器类型(例如,闪存)、内部总线系统以及外部总线接口。该单个控制器被配置为(i)使用该内部总线系统与全部三个存储器类型通信;(ii)使用该外部总线接口与外部计算设备通信;以及(iii)将高速缓存数据存储指派分配到第一存储器类型内的存储空间,并且在第一存储器类型内的该存储空间被确定为满的之后,将高速缓存数据存储指派分配到第二存储器类型内的存储空间。
文档编号G06F13/16GK101611387SQ200880002127
公开日2009年12月23日 申请日期2008年1月10日 优先权日2007年1月10日
发明者L·C·费舍尔, M·S·艾哈迈德尼亚, S·V·R·黑尔里格尔 申请人:移动半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1