CN101887753A - 异构存储系统及其使用的高速缓存优化方法 - Google Patents
异构存储系统及其使用的高速缓存优化方法 Download PDFInfo
- Publication number
- CN101887753A CN101887753A CN2010102237189A CN201010223718A CN101887753A CN 101887753 A CN101887753 A CN 101887753A CN 2010102237189 A CN2010102237189 A CN 2010102237189A CN 201010223718 A CN201010223718 A CN 201010223718A CN 101887753 A CN101887753 A CN 101887753A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer stopper
- sram buffer
- write
- cross matrix
- 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.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种异构存储系统及其使用的高速缓存优化方法,其系统包括一PCI接口,所述PCI接口可与外部访问源相互通讯,还包括括至少一组Flash阵列、至少一个静态SRAM缓冲块、至少一组交叉矩阵以及用来进行交叉矩阵连接的总线和对应的控制逻辑,所述Flash阵列、SRAM缓冲块的数据地址线和所述外部访问源都直接与所述交叉矩阵相连。本发明的系统及其高速缓存优化方法在大容量的前提下极大的扩展了访问速度和系统吞吐量,同时降低了系统的反应时间。
Description
技术领域
本发明涉及一种存储系统,具体涉及一种异构存储系统及其使用的高速缓存优化方法。
背景技术
目前最常用于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在不同的读写阶段可以通过配置实现不同的功能。具体的模块如下:
1)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芯片中。
Claims (4)
1.一种异构存储系统,其包括一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芯片的数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010223718 CN101887753B (zh) | 2010-07-09 | 2010-07-09 | 异构存储系统及其使用的高速缓存优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010223718 CN101887753B (zh) | 2010-07-09 | 2010-07-09 | 异构存储系统及其使用的高速缓存优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101887753A true CN101887753A (zh) | 2010-11-17 |
CN101887753B CN101887753B (zh) | 2013-08-28 |
Family
ID=43073620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010223718 Expired - Fee Related CN101887753B (zh) | 2010-07-09 | 2010-07-09 | 异构存储系统及其使用的高速缓存优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101887753B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360273A (zh) * | 2011-09-26 | 2012-02-22 | 北京邦诺存储科技有限公司 | 控制存储器与非易失性缓存装置协同存储的设备和方法 |
CN103067519A (zh) * | 2013-01-04 | 2013-04-24 | 深圳市广道高新技术有限公司 | 一种异构平台下数据分布存储的方法及装置 |
CN105653208A (zh) * | 2015-12-31 | 2016-06-08 | 无锡华润矽科微电子有限公司 | 数据存储系统及基于该系统的数据读写方法 |
CN106250661A (zh) * | 2016-09-06 | 2016-12-21 | 北京深维科技有限公司 | 一种实现存储器扩展的逻辑电路设计方法 |
CN112098770A (zh) * | 2020-08-20 | 2020-12-18 | 深圳市宏旺微电子有限公司 | 针对动态耦合故障模拟极端环境下的测试方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5673417A (en) * | 1995-07-20 | 1997-09-30 | Inventec Corporation | Electronic organizer with a flash memory and associated data archiving |
CN201039201Y (zh) * | 2007-03-29 | 2008-03-19 | 王忠伟 | 一种基于以太网的嵌入式终端控制器 |
CN101145873A (zh) * | 2007-03-21 | 2008-03-19 | 中兴通讯股份有限公司 | 一种提高sdh业务交叉容量的方法及其系统 |
-
2010
- 2010-07-09 CN CN 201010223718 patent/CN101887753B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5673417A (en) * | 1995-07-20 | 1997-09-30 | Inventec Corporation | Electronic organizer with a flash memory and associated data archiving |
CN101145873A (zh) * | 2007-03-21 | 2008-03-19 | 中兴通讯股份有限公司 | 一种提高sdh业务交叉容量的方法及其系统 |
CN201039201Y (zh) * | 2007-03-29 | 2008-03-19 | 王忠伟 | 一种基于以太网的嵌入式终端控制器 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360273A (zh) * | 2011-09-26 | 2012-02-22 | 北京邦诺存储科技有限公司 | 控制存储器与非易失性缓存装置协同存储的设备和方法 |
CN103067519A (zh) * | 2013-01-04 | 2013-04-24 | 深圳市广道高新技术有限公司 | 一种异构平台下数据分布存储的方法及装置 |
CN103067519B (zh) * | 2013-01-04 | 2016-08-24 | 深圳市广道高新技术有限公司 | 一种异构平台下数据分布存储的方法及装置 |
CN105653208A (zh) * | 2015-12-31 | 2016-06-08 | 无锡华润矽科微电子有限公司 | 数据存储系统及基于该系统的数据读写方法 |
CN105653208B (zh) * | 2015-12-31 | 2018-09-14 | 无锡华润矽科微电子有限公司 | 数据存储系统及基于该系统的数据读写方法 |
CN106250661A (zh) * | 2016-09-06 | 2016-12-21 | 北京深维科技有限公司 | 一种实现存储器扩展的逻辑电路设计方法 |
CN106250661B (zh) * | 2016-09-06 | 2019-05-21 | 京微齐力(北京)科技有限公司 | 一种实现存储器扩展的逻辑电路设计方法 |
CN112098770A (zh) * | 2020-08-20 | 2020-12-18 | 深圳市宏旺微电子有限公司 | 针对动态耦合故障模拟极端环境下的测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101887753B (zh) | 2013-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1146790C (zh) | 利用硬件自动擦除存储器中的纠错码差错的方法和装置 | |
CN104407997B (zh) | 带有指令动态调度功能的与非型闪存单通道同步控制器 | |
US9343180B2 (en) | Switched interface for stacked-die memory architecture with redundancy for substituting defective memory cells | |
CN101498994B (zh) | 一种固态硬盘控制器 | |
CN101887753B (zh) | 异构存储系统及其使用的高速缓存优化方法 | |
US20050055493A1 (en) | [method for accessing large block flash memory] | |
CN101446924B (zh) | 一种数据存储及获取方法、系统 | |
CN206557758U (zh) | 一种基于fpga可扩展的nand flash存储芯片阵列控制器 | |
CN105138470A (zh) | 一种多通道nand flash控制器 | |
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
CN111158633A (zh) | 一种基于fpga的ddr3多通道读写控制器及控制方法 | |
CN113641603A (zh) | 一种基于axi协议的ddr仲裁与调度方法及系统 | |
CN106802870A (zh) | 一种高效的嵌入式系统芯片Nor‑Flash控制器及控制方法 | |
CN106909516A (zh) | 存储系统及其操作方法 | |
CN110442321A (zh) | 一种预取fifo电路及方法 | |
CN101515221A (zh) | 一种读数据的方法、装置和系统 | |
CN106201902A (zh) | 一种sram位元与非易失性存储位元组成的复合阵列模块及其读写控制方法 | |
CN101369251B (zh) | 快闪式内存及操作一快闪式内存的方法 | |
CN110537172B (zh) | 混合存储器模块 | |
CN207008602U (zh) | 一种基于NandFlash存储器多通道的存储阵列控制装置 | |
JP2013149091A (ja) | メモリ制御装置及び制御方法並びに情報処理装置 | |
CN102411543B (zh) | 缓存地址的处理方法和装置 | |
CN103226977B (zh) | 基于fpga的快速nand flash控制器及其控制方法 | |
CN102362263A (zh) | Ssd控制器与ssd控制器的操作方法 | |
CN103092771A (zh) | 固态储存装置及其高速缓存的控制方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130828 Termination date: 20180709 |