异构存储系统及其使用的高速缓存优化方法

文档序号:6772718阅读:219来源:国知局
专利名称:异构存储系统及其使用的高速缓存优化方法
技术领域
本发明涉及一种存储系统,具体涉及一种异构存储系统及其使用的高速缓存优化 方法。
背景技术
目前最常用于SSM的半导体存储介质是DRAM (Dynamic Random Access Memory)和 NAND Flash。其中,DRAM的存储密度相对较低,且具有易失性,需有定期刷新机制以维持数 据信息,因此以DRAM为介质的固态存储器的容量极为有限,在新型存储设备中应用较少。 而NAND Flash是基于与非门的闪存芯片,存储密度较高,同时其数据在断电后依然能够保 持,应用非常广泛。但它的控制逻辑比较复杂,直接访问速度较低,如何根据NAND Flash的 特征实现存储阵列的高速访问是目前学术界和工业界亟待解决的问题。从容量和读写速度的角度看,现有的SSM解决方案主要包括例如SAMSUNG、 Toshiba,SANDISK等厂商推出的基于NAND Flash的256GB的大容量固态存储器,其读写速 度最高可达200-220MB/S,但其对于大规模的存储密集型应用来说还是不够的。目前针对 SSM的研究主要集中在通过并行技术即通过增加总线宽度的方法来提高存取速度。但是目 前的技术大都受到总线宽度的限制,无法满足更大规模数据的同时写入、直接读取的要求。缓存技术是提高SSM吞吐率的另外一个研究热点。网络处理器及其应用的研究以 及多媒体存储系统,经常采用高速缓存Cache作为高速访问的媒介。同时在海量数据存取 中缓存技术也是经常采用的优化策略。目前的这些缓存技术的主要缺点是需要对缓存进行 信息读取来构建索引,从而会引入额外的读事务而增大系统的开销。另外一些系统虽然利 用FPGA(Field Programming Gate Array)或者Flash自带的部分缓存来加速读写,但对整 个系统来说缓存资源太少,无法进行整体调度,会导致缓冲的频繁失效而增大系统的响应 时间。总的来说,目前的固态存储器优化技术可扩展性较差,无法适用于可变应用的大 容量存储系统中。因此我们提出了基于交叉循环缓冲的缓存机制,该机制在缓存的基础上 支持并行读写,有很强的扩展性。

发明内容
为了克服背景技术中存在的不足,本发明的一个目的在于提供一种异构存储系 统,本发明的另一个目的在于提供所述异构存储系统使用的高速缓存优化方法,本发明可 通过在读写时对数据进行高速缓冲和并行读写来提高访问的吞吐率。为解决上述技术方案,实现上述技术目的,本发明通过以下技术方案来实现一种异构存储系统其包括一 PCI接口,所述PCI接口可与外部访问源相互通讯,其 还包括至少一组Flash阵列、至少一个静态SRAM缓冲块、至少一组交叉矩阵以及用来进行 交叉矩阵连接的总线和对应的控制逻辑,所述Flash阵列、SRAM缓冲块的数据地址线和所 述外部访问源都直接与所述交叉矩阵相连以实现不同的工作方式。
进一步的,为了提高所述异构存储系统对所述Flash阵列中的Flash芯片的访问 速率并使得所述外部访问源对所述静态SRAM缓冲块的访问以及所述静态SRAM缓冲块与所 述Flash芯片的数据交换两者之间实现并行,所述Flash阵列的逻辑被分为奇偶两个个体, 所述奇个体和偶个体各有独立的数据和地址总线,可以直接进行读写操作,所述异构存储 系统采用双总线架构,即对外提供两条总线来提高读写Flash芯片的并行度。进一步的,所述SRAM缓冲块的SRAM芯片与所述Flash阵列中Flash芯片的页大 小相同作为读写操作的统一缓冲。进一步的,所有外部接口与所述Flash阵列通信都通过所述SRAM缓冲块作为中间 媒介。进一步的,系统对多组SRAM缓冲块进行循环使用。进一步的,所述交叉矩阵负责进行连接方式的配置。外部访问源、Flash阵列和 SRAM缓冲块的数据地址线都直接与交叉矩阵相连以实现不同的工作方式。本发明的异构存储系统使用的高速缓存优化方法,其包括下步骤(1)在数据读取时,所述异构存储系统首先接收外部的读信号,然后判断在当前 SRAM缓冲块中是否存在数据命中;若命中,则直接配置所述交叉矩阵使所述SRAM缓冲块与 所述外部访问源相连,读取数据,同时查看预取标志位,若需要预取,则同时配置所述交叉 矩阵,将所述Flash芯片中的下一组数据预取到下一组SRAM缓冲块中;若不命中,则需要配 置所述交叉矩阵,先将数据从所述Flash芯片中读取到所述SRAM缓冲块中,然后再配置所 述交叉矩阵从所述SRAM缓冲块中读取。(2)在数据写入时,所述异构存储系统首先接收外部的写请求,然后通过所述 SRAM缓冲块的调度模块获得当前要写入的缓冲组编号,之后配置所述交叉矩阵使所述 SRAM缓冲块与所述外部访问源相连;在所述外部访问源将数据写满第一组SRAM缓冲块之 后,所述缓冲调度模块获得下一组缓冲编号,并重新配置所述交叉矩阵使所述外部访问源 将数据写入,与此同时,已写满的SRAM缓冲块通过所述交叉矩阵配置与所述Flash阵列相 连,同时进行从SRAM缓冲块到所述Flash芯片的数据传输。与现有技术相比,本发明具有以下显著的优点1、本发明采用双总线架构,把存储阵列从逻辑上分为奇偶两个体,奇偶两个个体 可同时并行工作。每个个体中又采取位扩展的策略,使用同一个控制器对他们进行命令控 制,但是传输从PCI端来的不同字节的数据。这样,我们即能达到多片并行,又能减少控制 器逻辑。2、本发明采用高速静态SRAM作为数据缓存。由于SRAM的读写速度比Flash要快 的多,因此在本发明读写之前对数据进行缓冲,并掩盖了 Flash的内部编程时间,可以大大 提高系统的吞吐率。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。 本发明的具体实施方式
由以下实施例及其附图详细给出。


图1是本发明的异构存储系统一实施例的基于交叉矩阵的缓存架构示意图。
图2是本发明的异构存储系统一实施例的缓存机制的主要读写流程示意图,其 中,a为数据写入流程示意图;b为数据读出流程示意图。图3是本发明的异构存储系统一实施例的读写缓冲调度方法示意图,其中,a为数 据写时的缓冲调度方法示意图;b为数据读时的缓冲调度方法示意图。
具体实施例方式下面结合附图对本发明的具体实施作进一步描述如图1所示,显示了基于交叉矩阵4的缓存机制的组织架构,包含了多个Flash阵 列2、多组SRAM缓冲块5、多个交叉矩阵4、以及用来进行交叉矩阵连接的总线3和对应的控 制逻辑,一外部访问源通过一 PCI接口 1在读写Flash阵列2时传输的数据都需要在SRAM 缓冲块5中进行缓冲以达到加速的目的,中间的交叉矩阵4在不同的读写阶段可以通过配 置实现不同的功能。具体的模块如下l)Flash 阵列Flash阵列2是构成本发明中存储子系统的重要组成部分。为了提高系统对Flash 芯片的访问速率并使得外部访问源对缓存的访问以及缓存与Flash芯片的数据交换两者 之间实现并行,Flash阵列2的逻辑被分为奇偶两个个体,两组个体各有独立的数据和地 址总线,可以直接进行读写操作,系统采用双总线架构,即对外提供两条总线来提高读写 Flash芯片的并行度。通常Flash芯片的地址总线宽度为8位,而通用存储系统地址总线宽度为32位, 因此本发明采用总线扩展技术,每条总线可以同时对4块Flash芯片进行并行访问。综合 以上两点,系统的两条总线总共可以同时对8块Flash芯片(每条总线同时访问4块芯片) 进行同时读写的并行访问。2) SRAM 缓冲块图1采用多组SRAM缓冲块5用作Flash阵列2的循环缓冲。由于Flash芯片的 存储以页为最小单位,这意味着按页编程的效率较高。因此系统中使用多组与Flash页大 小相同的SRAM芯片作为读写操作的统一缓冲。所有外部接口与Flash阵列2的通信都需 要通过SRAM缓冲块5作为中间媒介,对多组SRAM缓冲块5进行循环使用。此外,考虑到Flash编程会因坏块而导致错误,系统中使用一块独立的SRAM缓冲 块5用来存放出错时的缓冲数据,并提供错误数据重写机制,以便在发生错误时,能够不中 断正常的读写访问操作。3)交叉矩阵外部访问源、Flash阵列2和SRAM缓冲块5的数据地址线都直接与交叉矩阵4相 连以实现不同的工作方式。例如,在数据写入流程中,先通过交叉矩阵4使缓冲与外部访问 源连接,将数据写入到缓冲中;随后再配置交叉矩阵4使之与Flash阵列相连,将缓冲中的 数据转移到Flash芯片中。数据读取流程与写入正好相反,先通过交叉矩阵4与Flash阵 列2相连,将数据读取到缓冲中,再通知外部访问源从缓冲中将数据取出。4)控制逻辑图1中Flash阵列2、交叉矩阵4、SRAM缓冲块5等均为系统抽象模型,为了保证 系统流程的正常运行,还需要提供专门逻辑对整个系统中各个模型的流程和状态转移时序进行控制。该控制逻辑负责外部访问源的读写操作、交叉矩阵4配置和连接、SRAM缓冲块5 的管理以及缓冲与Flash阵列2的各个状态更新等。进一步来看,图2是本发明实施例的缓存机制的主要读写流程示意图;在缓存进 行读写之前,均需针对访问类型进行交叉矩阵的配置,其中写入过程还涉及到循环缓冲的调度。在数据写入时,如图2(a)所示,系统首先接收外部的写请求,然后通过缓冲调度 模块获得当前要写入的缓冲组编号,之后配置交叉矩阵4使SRAM缓冲块5与外部访问源相 连。在访问源将数据写满第一组SRAM缓冲块5之后,缓冲调度模块获得下一组缓冲编号, 并重新配置交叉矩阵4使外部访问源将数据写入。与此同时,已写满的SRAM缓冲块5通过 交叉矩阵4配置与Flash阵列2相连,同时进行从缓冲到Flash芯片的数据传输。在数据读取时,如图2(b)所示,系统首先接收外部的读信号,然后判断在当前缓 冲中是否存在数据命中。若命中,则直接配置交叉矩阵4使SRAM缓冲块5与外部访问源相 连,读取数据,同时查看预取标志位,若需要预取,则同时配置交叉矩阵4,将Flash芯片中 的下一组数据预取到下一组SRAM缓冲块5中;若不命中,则需要配置交叉矩阵4,先将数据 从Flash芯片中读取到缓冲中,然后再配置交叉矩阵4从SRAM缓冲块5中读取。更进一步的,为提高Flash阵列2的访问速率,将Flash阵列2在逻辑上分为奇偶 两个体以提高并行度。整个Flash阵列2对外提供两套总线,分别拥有各自独立的控制信 号,在个体内以分列的方式对Flash阵列2进行控制。其中每列8块芯片,不同列的4块芯 片进行位扩展为一套总线。Flash芯片的存储以页为单位,因此按整页编程的效率比按字节编程的效率高。设 计中使用多组(每组两片)和Flash芯片页大小相同的SRAM芯片作为缓冲。在写入时, 外部接口直接将数据写入缓冲。当该组缓冲写满后,外部接口换到下一组缓冲进行数据写 入,同时将刚刚写满的数据写入Flash芯片。在读过程中,对于未命中的情况首先将数据从 Flash阵列2读到SRAM缓冲块5,然后从SRAM缓冲块5中读出。考虑到缓冲的组数太多会导致系统的硬件开销会比较大,若太少则无法进行操作 的流水化,因此本发明在读写过程中,使用3组SRAM缓冲块5作为典型值。调度中使用写 标志寄存器WReg和读标志寄存器RReg来判断系统是否空闲。另外有3个地址寄存器存放 3组SRAM缓冲块5中各自数据的起始地址,用来判断读操作是否命中。缓冲调度过程如图3所示。如图3(a)所示,在系统接收到写请求之后,首先比较 读写标志寄存器是否相等,若相等,则表明当前全部缓冲中的数据尚未写入Flash芯片中, 系统处于繁忙状态;若不等,则更新写标记寄存器,标记有新的数据进入缓冲,在将数据写 入缓冲之后,更新读寄存器,标记有新的数据需要进行从缓冲到Flash芯片的转移。同理,如图3(b)所示,在接收到读请求之后,通过比较地址寄存器来判断读请求 是否命中若命中,则可以直接从缓冲中读取数据,同时判断是否要进行数据的预取以提高 效率(若命中的缓冲为刚刚写入的数据,则不进行预取,理由是刚写入的数据被读出,则很 有可能是对数据写入正确性的验证),若需要预取,则将Flash芯片中下一块地址的数据从 Flash阵列2取到下一组SRAM缓冲块5中;若请求未命中,则需要一定的响应时间使数据 先从Flash阵列2中转移到SRAM缓冲块5中,然后从缓冲中传送给外部访问源的同时预取 下一块数据。
由于Flash存储介质存在坏块,因此向Flash进行编程有可能失败,为了在失败 时不中断写入,系统在错误反馈的同时将该页的数据从工作缓冲转移到错误缓冲进行存 储。为了保证错误记录和处理顺序的一致性,错误管理采用先来先服务(First Come First Serve)的原则,从缓冲向Flash写入的时候出现错误时,此时读写访问仍在继续,则需要将 发生错误的数据保存,同时将错误编号及出错地址作为反馈给文件系统,等Flash写入结 束后再将数据由工作缓冲转移到错误缓冲。当接收到文件系统的处理错误命令时,再将错 误的数据从错误缓冲写入到Flash芯片中。
权利要求
一种异构存储系统,其包括一PCI接口,所述PCI接口可与外部访问源相互通讯,其特征在于还包括至少一组F1ash阵列、至少一个静态SRAM缓冲块、至少一组交叉矩阵以及用来进行交叉矩阵连接的总线和对应的控制逻辑,所述Flash阵列、SRAM缓冲块的数据地址线和所述外部访问源都直接与所述交叉矩阵相连。
2.根据权利要求1所述的异构存储系统,其特征在于所述Flash阵列的逻辑被分为 奇偶两个个体,所述奇个体和偶个体各有独立的数据和地址总线。
3.根据权利要求1所述的异构存储系统,其特征在于所述SRAM缓冲块的SRAM芯片 与所述Flash阵列中Flash芯片的页大小相同。
4.一种根据权利要求1或2或3所述异构存储系统使用的高速缓存优化方法,其特征 在于包括以下步骤,(1)在数据读取时,所述异构存储系统首先接收外部的读信号,然后判断在当前SRAM 缓冲块中是否存在数据命中;若命中,则直接配置所述交叉矩阵使所述SRAM缓冲块与所述 外部访问源相连,读取数据,同时查看预取标志位,若需要预取,则同时配置所述交叉矩阵, 将所述Flash芯片中的下一组数据预取到下一组SRAM缓冲块中;若不命中,则需要配置所 述交叉矩阵,先将数据从所述Flash芯片中读取到所述SRAM缓冲块中,然后再配置所述交 叉矩阵从所述SRAM缓冲块中读取。(2)在数据写入时,所述异构存储系统首先接收外部的写请求,然后通过所述SRAM缓 冲块的调度模块获得当前要写入的缓冲组编号,之后配置所述交叉矩阵使所述SRAM缓冲 块与所述外部访问源相连;在所述外部访问源将数据写满第一组SRAM缓冲块之后,所述缓 冲调度模块获得下一组缓冲编号,并重新配置所述交叉矩阵使外部访问源将数据写入,与 此同时,已写满的SRAM缓冲块通过所述交叉矩阵配置与所述Flash阵列相连,同时进行从 SRAM缓冲块到所述Flash芯片的数据传输。
全文摘要
本发明公开了一种异构存储系统及其使用的高速缓存优化方法,其系统包括一PCI接口,所述PCI接口可与外部访问源相互通讯,还包括括至少一组Flash阵列、至少一个静态SRAM缓冲块、至少一组交叉矩阵以及用来进行交叉矩阵连接的总线和对应的控制逻辑,所述Flash阵列、SRAM缓冲块的数据地址线和所述外部访问源都直接与所述交叉矩阵相连。本发明的系统及其高速缓存优化方法在大容量的前提下极大的扩展了访问速度和系统吞吐量,同时降低了系统的反应时间。
文档编号G11C16/06GK101887753SQ201010223718
公开日2010年11月17日 申请日期2010年7月9日 优先权日2010年7月9日
发明者周学海, 张惠臻, 李曦, 王超, 纪金松, 陈香兰 申请人:中国科学技术大学苏州研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1