CN103150129B - PXIe接口Nand Flash数据流盘存取加速方法 - Google Patents
PXIe接口Nand Flash数据流盘存取加速方法 Download PDFInfo
- Publication number
- CN103150129B CN103150129B CN201310112830.9A CN201310112830A CN103150129B CN 103150129 B CN103150129 B CN 103150129B CN 201310112830 A CN201310112830 A CN 201310112830A CN 103150129 B CN103150129 B CN 103150129B
- Authority
- CN
- China
- Prior art keywords
- nand flash
- data
- control module
- minimum control
- programming
- 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.)
- Active
Links
Landscapes
- Read Only Memory (AREA)
Abstract
PXIe接口Nand Flash数据流盘存取加速方法,本发明具体涉及PXIe接口Nand Flash数据流盘存取加速方法。它为了解决高速数据流盘对I/O速率要求很高,无法最大限度提高Nand Flash阵列的存取速度,Nand Flash存取速率与PXI Express高速接口速率不匹配的问题。该方法为:采用三级加速编程的方式对Nand Flash编程,在每个最小控制单元的编程序列中加入一级预编程操作,使得每个最小控制单元的第n+1次编程操作都能够滞后于第n次编程操作;从4片Nand Flash芯片中读取数据的过程,实现数据读取的流水线加速。本发明适用于测试领域。
Description
技术领域
本发明涉及一种数据流盘存取加速方法,具体涉及PXIe接口Nand Flash数据流盘存取加速方法。
背景技术
在测试领域中,面向海量数据存储记录的应用大量涌现,包括军事侦察、卫星通信、视频测试、频谱监测、连续波形发生、碰撞试验等测试应用中,都需要长时间对海量数据进行流盘,即将采集的原始数据实时存储,以便日后分析。
以往数据流盘一般采用传统台式仪器或专用的定制硬件来完成。对于台式仪器,其板载存储容量有限,数据采集完毕后传回计算机的往往只是原始数据的分析结果,如果要传递原始测试数据则要花费大量时间;而专用定制的数据记录器硬件开发成本高,并且开发周期较长,因此,无论使用传统台式仪器还是自定义硬件,用户想获取采集的原始数据进行算法分析,必须付出昂贵的代价和时间成本。
而目前采用标准化的PXI Express测试总线接口和Nand Flash存储阵列的通用PXIe接口固态数据记录器,解决了用户在数据流盘时所要面对的时间和成本的双重问题。通过在背板中使用PCI Express技术,PXI Express能够将带宽整整提高7倍,由原来PXI的132MB/s提高到1GB/s;而通过使用Nand Flash固态存储器,可以充分利用其存储密度高、体积较小的特点,能够达到海量的数据存储空间,并且其抗震性好,可以满足不同使用环境下高速数据流实时、长时间的存储记录需求。
在高速数据流盘应用中,数据流与基于文件系统的数据流是不同的,数据流盘数据存取完全是顺序存取,不具有任何的随机性,因此,对于Nnad Flash的管理相对简化,只需要有坏块管理和简单的损耗均衡管理即可。但是,高速数据流盘对I/O速率要求很高,如何最大限度提高Nand Flash阵列的存取速度,达到Nand Flash存取速率与PXI Express高速接口速率匹配是一个需要解决的问题。
PXIe接口Nand Flash阵列硬件结构如图2所示,包括FPGA、高速数据缓存单元、参数记录单元和Nand Flash存储阵列。
FPGA是整个模块的控制核心,其内置PCIe硬核,利用该硬核可以实现PXIe接口的高速数据传输;同时还要协调参数记录单元、高速数据缓存单元和Nand Flash存储阵列协调工作。PXIe接口数据传输的峰值速率可以达到1GB/s,远远高于Nand Flash阵列的读写速率,因此需要数据缓存单元对接口的高速数据进行缓存。高速数据缓冲单元由SRAM组成,通过乒乓操作可以达到较高的总线速率,能够满足高速数据缓存需求。存储阵列由Micron公司的MT29F系列Nand Flash组成,可以达到1TB的存储空间,满足海量数据的存储要求。参数记录单元采用并行E2PROM,用于记录Nand Flash的坏块标识和整个模块的参数。
发明内容
本发明为了解决高速数据流盘对I/O速率要求很高,无法最大限度提高Nand Flash阵列的存取速度,Nand Flash存取速率与PXI Express高速接口速率不匹配的问题,从而提出了PXIe接口Nand Flash数据流盘存取加速方法。
PXIe接口Nand Flash数据流盘存取加速方法是基于将4片Nand Flash芯片并联组成4个最小控制单元实现的,4个最小控制单元涉及4片Nand Flash芯片,每个最小控制单元均可控制4片Nand Flash芯片,每个Nand Flash芯片的控制线共用,I/O线并联,每个Nand Flash芯片包括Nand Flash芯片内部的寄存器和存储阵列,该方法它包括下述步骤:
步骤一、Nand Flash编程:采用三级加速编程的方式对Nand Flash编程,在每个最小控制单元的编程序列中加入一级预编程操作,使得每个最小控制单元的第n+1次编程操作都能够滞后于第n次编程操作,
其中,n为整数;
步骤二、Nand Flash读取:从4片Nand Flash芯片中读取数据的过程为:在最小控制单元1的读寄存器操作期间最小控制单元2进行读阵列操作,最小控制单元2读寄存器操作期间最小控制单元3进行读阵列操作,最小控制单元3读寄存器操作期间最小控制单元4进行读阵列操作,实现数据读取的流水线加速。
本发明通过采用最小控制单元的方法,每次对存储阵列读写的最小单元是4片NandFlash,因此每次读写的数据量只要满足是4页的整数倍即可,降低了对读写缓存的要求;4片Nand Flash并联后其总线位宽变为32位,与PXIe接口的位宽匹配,节省了串并/并串转换逻辑消耗的FPGA逻辑资源;将更多Nand Flash存储芯片级联组成更大规模的存储阵列,达到存储容量更大,存取速率更高的目的。
附图说明
图1为本发明的所述的PXIe接口Nand Flash数据流盘存取加速方法的流程图;
图2为PXIe接口Nand Flash阵列硬件结构图;
图3为三级加速编程操作流程图;
图4为二级读取加速流程图;
图5为16片Nand Flash芯片并联原理图;
图6为一片Nand Flash编程流程图;
图7为一片Nand Flash数据读取流程图;
图8为二级加速连续编程示意图。
具体实施方式
具体实施方式一、结合图1具体说明本实施方式,本实施方式所述的PXIe接口NandFlash数据流盘存取加速方法是基于将4片Nand Flash芯片并联组成4个最小控制单元实现的,每个Nand Flash芯片的控制线共用、I/O线并联,每个Nand Flash芯片包括Nand Flash芯片内部的寄存器和存储阵列,该方法它包括下述步骤:
步骤一、Nand Flash编程:采用三级加速编程的方式对Nand Flash编程,在每个最小控制单元的编程序列中加入一级预编程操作,使得每个最小控制单元的第n+1次编程操作都能够滞后于第n次编程操作,如图3所示,
其中,n为整数;所述的预编程为时间较短的编程,
步骤二、Nand Flash读取:从4片Nand Flash芯片中读取数据的过程为:在最小控制单元1的读寄存器操作期间、最小控制单元2进行读阵列操作,最小控制单元2读寄存器操作期间、最小控制单元3进行读阵列操作,最小控制单元3读寄存器操作期间、最小控制单元4进行读阵列操作,实现了数据读取的流水线加速,如图4所示。
本实施方式通过采用最小控制单元的方法,每次对存储阵列读写的最小单元是4片Nand Flash,因此每次读写的数据量只要满足是4页的整数倍即可,降低了对读写缓存的要求;4片Nand Flash并联后其总线位宽变为32位,与PXIe接口的位宽匹配,节省了串并/并串转换逻辑消耗的FPGA逻辑资源;将更多Nand Flash存储芯片级联组成更大规模的存储阵列,达到存储容量更大,存取速率更高的目的。
采用一片Nand Flash芯片的编程速率和读取速率可以分别达到25MB/s和38MB/s,由于Nand Flash在编程过程中需要较长的自动编程时间,因此其编程速率较慢,如图6。将16片Nand Flash芯片并联,即每个芯片的控制线共用、I/O线并联,如图5所示,整个存储阵列的编程和读取速率可以立即达到400MB/s和600MB/s。
将多片Nand Flash芯片并联后,16片Nand Flash当做单片存储芯片来控制,它们的读写操作是统一的,因此会带来三个问题:
由于Nand Flash的读写最小单元是页,因此16片Nand Flash并联之后,其读写的最小单元为16个页,所以整个存储阵列每次读写的数据量要满足16页的整数倍,对读写缓存的容量要求较高;
16片Nand Flash芯片并联后,其总线位宽变为128位,而PXIe接口的总线位宽是32位的,因此需要设计额外的串并/并串转换逻辑实现PXIe接口和存储阵列总线位宽的匹配;
由于Nand Flash中存在坏块,如果某片Nand Flash的第n块为坏块,那么默认所有16片Nand Flash的第n块都为坏块。设计中采用的MT29F系列Nand Flash每片具有4096个块,在其使用周期中出现的最大坏块数为80块,考虑最坏情况,如果每片Nand Flash的坏块位置都不相同,那么每片Nand Flash在并联后其使用周期内产生的最大坏块数为1280块,占总存储容量的31.25%,即损失320GB的存储空间,这与海量数据存储记录的设计初衷是相悖的。
本实施方式减少了上述三个问题的影响,本实施方式采用将4片Nand Flash并联组成最小控制单元的方法,4个最小控制单元即可等效成16片Nand Flash并联的效果。
由于4片Nand Flash并联后降低了全部芯片的耦合度,损失的存储容量是全部16片Nand Flash并联的1/4,而在实际使用过程中,坏块的数目约为理论值的10%,即8GB,这在海量存储设备中是允许的。
此外,由于采用4片Nand Flash芯片并联形成最小控制单元的工作模式,仅有4片Nand Flash的控制和状态信号共用1个FPGA引脚,这大大降低了对FPGA I/O引脚驱动能力的要求,保证了Flash控制信号的质量。
具体实施方式二、本实施方式与具体实施方式一所述的PXIe接口Nand Flash数据流盘存取加速方法的区别在于,步骤一所述的每片Nand Flash编程包括数据加载和自动编程两个过程:
数据加载是从外部的Nand Flash控制器将数据写入到Nand Flash芯片内部的寄存器中,典型时间为204.8μs。
自动编程是数据从Nand Flash芯片内部的寄存器编程到存储阵列中,在自动编程过程中,典型时间为300μs,在自动编程过程中不能对Nand Flash芯片进行数据加载操作。
具体实施方式三、本实施方式与具体实施方式一所述的PXIe接口Nand Flash数据流盘存取加速方法的区别在于,步骤二所述的Nand Flash读取包括读阵列操作和读寄存器操作两个过程:
读阵列操作是将Nand Flash存储阵列中的数据读到Nand Flash芯片内部的寄存器中,典型时间为50μs,在读阵列过程中不能对该Nand Flash芯片进行其它操作;
读寄存器操作是将数据从该Nand Flash芯片内部的寄存器读到芯片外部,典型时间为254.8μs,如图7所示。
由于编程数据都来自于高速数据缓冲区,因此编程数据必须按顺序读出后才能依次对每个最小控制单元进行数据加载操作。最小控制单元2、3和4的数据加载时间总和大于最小控制单元1的自动编程时间,所以只有最小控制单元4数据加载完毕后才能对最小控制单元1进行数据加载操作,导致最小控制单元1的编程过程是不连续的,即自动编程之后需要等待314.4μs后才能再次进行数据加载操作,如图8所示。
利用每个最小控制单元编程时额外的314.4μs等待时间,可以将第一、二次编程操作连接起来,如图3所示。
将每个最小控制单元的第一、二次编程操作连接起来后,最小控制单元1的第二次编程的数据加载操作超前于最小控制单元4的第一次编程的数据加载操作109.6μs。由于编程数据都来自于高速数据缓冲区,因此各个最小控制单元第二次编程的数据加载操作都要在第一次编程数据加载操作之后执行,故直接将两次编程操作连接起来并不能实现。产生上述问题的根本原因是编程时数据加载操作时间过长,使得两次数据加载时间之和大于一次自动编程时间,从而使最小控制单元4第一次编程的数据加载操作滞后于最小控制单元1第二次编程的数据加载操作。
本实施方式采用三级加速编程的方式,即在每个最小控制单元的编程序列中加入一级时间较短的预编程操作,使得每个最小控制单元的第二次编程操作都能够滞后于第一次编程操作,如图3所示。预编程的实现原理是在FPGA内部开辟一个预编程缓冲区,其内部时钟工作在200MHz,因此一次预编程的时间为41μs。仍以对每个最小控制单元编程2次为例,采用三级加速编程的方式需要的编程时间为:
预编程时间×4+(数据加载时间+自动编程时间)×2=1173.6μs (1)
如果连续进行多次编程,则初始的4个预编程时间可以忽略不计,上述编程时间变为1009.6μs,与顺序编程方式相比,整个存储阵列的编程速率提高了300%,可以达到400MB/s的连续编程。
以对每个最小控制单元进行两次读取操作为例,采用顺序读取操作所用的时间为:
(读阵列时间+读寄存器时间)×8=2438.4μs (2)
采用二级加速读取的方式所用的时间为:
读阵列时间×3+(读阵列时间+读寄存器时间)×2=759.6μs (3)
如果连续进行多次读取操作,则最小控制单元1、2和3的第一次读阵列时间可以忽略不计,上述读取时间变为609.6μs,是顺序读取操作所消耗时间的1/4,因此与顺序读取操作相比,采用二级加速读取的方式整个存储阵列的读取速率可以提高300%,可以达到连续读取速率600MB/s。
Claims (3)
1.PXIe接口Nand Flash数据流盘存取加速方法,其特征在于:所述的PXIe接口NandFlash数据流盘存取加速方法是基于将4片Nand Flash芯片并联组成4个最小控制单元实现的,4个最小控制单元涉及4片Nand Flash芯片,每个最小控制单元均可控制4片NandFlash芯片,每个Nand Flash芯片的控制线共用,I/O线并联,每个Nand Flash芯片包括NandFlash芯片内部的寄存器和存储阵列,该方法它包括下述步骤:
步骤一、Nand Flash编程:采用三级加速编程的方式对Nand Flash编程,在每个最小控制单元的编程序列中加入一级预编程操作,使得每个最小控制单元的第n+1次编程操作都能够滞后于第n次编程操作,
其中,n为整数;
步骤二、Nand Flash读取:从4片Nand Flash芯片中读取数据的过程为:在最小控制单元1的读寄存器操作期间最小控制单元2进行读阵列操作,最小控制单元2读寄存器操作期间最小控制单元3进行读阵列操作,最小控制单元3读寄存器操作期间最小控制单元4进行读阵列操作,实现数据读取的流水线加速。
2.根据权利要求1所述的PXIe接口Nand Flash数据流盘存取加速方法,其特征在于:步骤一所述的Nand Flash编程包括数据加载和自动编程两个过程,
数据加载是从外部的Nand Flash控制器将数据写入到Nand Flash芯片内部的寄存器中;
自动编程是数据从Nand Flash芯片内部的寄存器编程到存储阵列中,在自动编程过程中,不能对Nand Flash芯片进行数据加载操作。
3.根据权利要求1所述的PXIe接口Nand Flash数据流盘存取加速方法,其特征在于:步骤二所述的Nand Flash读取包括读阵列操作和读寄存器操作两个过程,
读阵列操作是将Nand Flash存储阵列中的数据读到Nand Flash芯片内部的寄存器中,在读阵列过程中不能对该Nand Flash芯片进行其它操作;
读寄存器操作是将数据从该Nand Flash芯片内部的寄存器读到芯片外部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310112830.9A CN103150129B (zh) | 2013-04-02 | 2013-04-02 | PXIe接口Nand Flash数据流盘存取加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310112830.9A CN103150129B (zh) | 2013-04-02 | 2013-04-02 | PXIe接口Nand Flash数据流盘存取加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103150129A CN103150129A (zh) | 2013-06-12 |
CN103150129B true CN103150129B (zh) | 2015-09-16 |
Family
ID=48548237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310112830.9A Active CN103150129B (zh) | 2013-04-02 | 2013-04-02 | PXIe接口Nand Flash数据流盘存取加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103150129B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045752B (zh) * | 2015-07-02 | 2018-04-24 | 中国电子科技集团公司第四十一研究所 | 一种基于宽口sram存储的高速ad数据pxi总线传输解析方法 |
CN109582224A (zh) * | 2018-11-12 | 2019-04-05 | 哈尔滨工业大学 | 一种基于自恢复效应的NAND Flash存储可靠性优化方法 |
CN115857805B (zh) * | 2022-11-30 | 2023-06-27 | 合肥腾芯微电子有限公司 | 人工智能可计算存储系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833424A (zh) * | 2010-03-26 | 2010-09-15 | 中国科学院光电技术研究所 | 基于fpga的高速存储与传输装置 |
CN102012791A (zh) * | 2010-10-15 | 2011-04-13 | 中国人民解放军国防科学技术大学 | 基于Flash的数据存储PCIE板卡 |
CN102521182A (zh) * | 2011-11-23 | 2012-06-27 | 华南师范大学 | 一种可扩展多通道并行实时数据采集装置和方法 |
CN102591823A (zh) * | 2011-01-17 | 2012-07-18 | 上海华虹集成电路有限责任公司 | 一种具有指令队列功能的Nandflash控制器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225019B2 (en) * | 2008-09-22 | 2012-07-17 | Micron Technology, Inc. | SATA mass storage device emulation on a PCIe interface |
US20120054420A1 (en) * | 2010-08-31 | 2012-03-01 | Jeonguk Kang | Storage device and stream filtering method thereof |
-
2013
- 2013-04-02 CN CN201310112830.9A patent/CN103150129B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833424A (zh) * | 2010-03-26 | 2010-09-15 | 中国科学院光电技术研究所 | 基于fpga的高速存储与传输装置 |
CN102012791A (zh) * | 2010-10-15 | 2011-04-13 | 中国人民解放军国防科学技术大学 | 基于Flash的数据存储PCIE板卡 |
CN102591823A (zh) * | 2011-01-17 | 2012-07-18 | 上海华虹集成电路有限责任公司 | 一种具有指令队列功能的Nandflash控制器 |
CN102521182A (zh) * | 2011-11-23 | 2012-06-27 | 华南师范大学 | 一种可扩展多通道并行实时数据采集装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103150129A (zh) | 2013-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN206557767U (zh) | 一种基于乒乓操作结构控制数据缓存的缓存系统 | |
CN101833424B (zh) | 基于fpga的高速存储与传输装置 | |
CN103117797B (zh) | 高速载荷数据模拟源 | |
CN101740102B (zh) | 一种多通道闪存芯片阵列结构及其写入和读出方法 | |
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
CN112035381B (zh) | 一种存储系统及存储数据处理方法 | |
CN103336745A (zh) | 一种基于ssd缓存的fc hba及其设计方法 | |
CN116841932B (zh) | 一种可灵活连接的便携式高速数据存取设备及其工作方法 | |
CN102111600A (zh) | 一种用于CameraLink相机的高速图像记录仪 | |
CN110515879B (zh) | 一种异步传输装置及其传输方法 | |
CN209842608U (zh) | 一种基于fpga fifo模块的ddr3存储器控制 | |
CN107491267B (zh) | 一种基于lvds接口的高速图像数据存储装置 | |
CN103092119B (zh) | 一种基于fpga的总线状态监视方法 | |
CN103150129B (zh) | PXIe接口Nand Flash数据流盘存取加速方法 | |
CN102520892A (zh) | 多功能固态数据存储回放仪 | |
CN101236774A (zh) | 单端口存储器实现多端口存储功能的装置和方法 | |
CN103517085B (zh) | 一种基于视频解码设计实现远程服务器管理的方法 | |
KR101254646B1 (ko) | 솔리드 스테이트 드라이브 테스터에서 스토리지 인터페이스장치 | |
CN216014252U (zh) | 基于hp接口的多通道数据采集存储回放卡及系统 | |
CN204347812U (zh) | 一种基于fpga的服务器存储电路 | |
CN201673402U (zh) | 一种分散控制系统的控制器 | |
CN109376049B (zh) | 一种fpga嵌入式块存储器的性能测试方法 | |
CN102819418B (zh) | 超细粒度门控时钟的fifo数据存储方法及装置 | |
CN102789424B (zh) | 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器 | |
CN202444561U (zh) | 一种用于CameraLink相机的高速数字图像记录仪 |
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 |