CN104809075B - 一种存取实时并行处理的固态记录装置及方法 - Google Patents

一种存取实时并行处理的固态记录装置及方法 Download PDF

Info

Publication number
CN104809075B
CN104809075B CN201510188733.7A CN201510188733A CN104809075B CN 104809075 B CN104809075 B CN 104809075B CN 201510188733 A CN201510188733 A CN 201510188733A CN 104809075 B CN104809075 B CN 104809075B
Authority
CN
China
Prior art keywords
lba
block
solid
read
state memory
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
Application number
CN201510188733.7A
Other languages
English (en)
Other versions
CN104809075A (zh
Inventor
孟劲松
高斌
刘群英
任文伟
田贵云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201510188733.7A priority Critical patent/CN104809075B/zh
Publication of CN104809075A publication Critical patent/CN104809075A/zh
Application granted granted Critical
Publication of CN104809075B publication Critical patent/CN104809075B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种存取实时并行处理固态记录装置及方法;存取实时并行处理固态记录装置包括存取并行处理固态记录***控制卡、多个存取并行处理固态存储卡、单板机等单元;***控制卡通过外设专用通信接口与采集、回放外设相连,通过多通道高速存取通信接口与一个以上的拥有四组独立闪存阵列及其控制器的固态存储卡相连,在采集、回放外设和固态存储卡上的任意2组闪存阵列间建立读、写二条独立数据链路,闪存阵列控制器执行多级流水线读/写操作;存取并行处理固态记录方法,记录、回放操作全硬线并行处理,采用均衡写和地址二次映射策略,加速LBA到PBA的转换;这种存取实时并行处理固态记录装置与方法达到数据记录与回放同时高速进行的目的。

Description

一种存取实时并行处理的固态记录装置及方法
技术领域
本发明涉及数据存储领域,尤其涉及固态记录仪领域,特别涉及一种存取实时并行处理的固态记录装置及方法。
背景技术
现有的数据存储技术,包括:开放式磁盘类存储技术、封闭式记录仪存储技术。
开放式磁盘类存储技术,其典型产品如固态盘、DAS/SAN/NAS磁盘阵列等,常用于计算机、服务器的文件***数据存储,一般采用单一单板机通讯接口如PCIe、SAT/SAS、FC、LAN等,采用多存储媒介并行存取具有高突发速率的特点,扩展较易实现,但不能满足连续高速实时存取的需求;且由于存储阵列为单一临界资源拓扑结构,记录与读取操作无法同时进行,从而不支持存取的并行处理。如2014年08月13日授权公告的、公告号为CN101178933B、名称为“一种闪存阵列装置”。
封闭式记录仪存储技术,除了单板机通讯接口外,一般提供一种或多种外部专用通讯接口,外设通过记录仪的外设专用通讯接口进行数据的存取,线性地址连续写入或读取,不需要文件***支持,具有连续实时高速存取的特点,但存储阵列结构仍然为单一临界资源拓扑结构,因而也不支持存取的并行处理,且由于其封闭性,速率和容量的扩展能力有限。如2008年01月30日授权公告的、公告号为CN10365599C、名称为“用于数字信号处理机实时数据记录的闪存阵列存储方法及其装置”,以及2008年06月第30卷第6期《现代雷达》发表的、名称为“可扩展的VXS总线固态记录设备”。
雷达、软件无线电、无线电技术侦查等RF低通采样或RF带通采样无线电,数据采样率可达数百MS/s或GS/s以上,数据吞吐率很高,这些高速无线电产品在开发、评估阶段,通常需要提供实时、连续、高速的激励和测试数据存储***;一些电子产品,如高清/高速图像采录设备,要求采集的同时执行非线性回放。这些种情况都需要一种支持存取实时并行处理的固态存储技术。
考虑以上情况,无线电产品在开发、评估,以及要求数据采集的同时执行非线性回放的电子产品,期望的是支持存取实时并行处理、速率和容量可以灵活配置和扩展的固态记录装置。
发明内容
本发明的目的在于克服现有存储技术的不足,提供一种存取实时并行处理的固态记录装置及方法,支持存取实时并行处理,以及灵活扩展固态记录装置的速率和容量。
本发明一种存取实时并行处理的固态记录装置,其特征在于,包括:一存取并行处理固态记录***控制卡(以下简称***控制卡)、多个存取并行处理固态存储卡(以下简称固态存储卡)、一单板机;
***控制卡通过前面板或背板的外设专用通信接口与采集、回放外设相连,通过多通道高速存取通信接口与多个固态存储卡相连;通过***控制卡,在采集、回放外设与固态存储卡之间建立读、写两条独立数据链路,且读、写操作并行处理;
单板机通过管理接口控制器与***控制卡、固态存储卡相连,并对其进行检测、配置和监控管理。
其中,所述的***控制卡,采用全硬线设计,包括外设专用通信接口、多通道高速存取通信接口、存取并行处理控制器、高速缓存,以及配置存储器;
所述外设专用通信接口包括采集外设通信接口和回放外设通信接口,分别与采集、回放外设相连,用于信源数据的存储与回放,具体采用2种形式:
(1)前面板外设专用通信接口,采用外设通信协议,通过光缆或电缆与外置式采集/回放外设相连;
(2)背板外设专用通信接口,通过背板与内置式采集、回放外设通信控制器电气性相连;
所述多通道高速存取通信接口采用多通道全双工高速串行通信接口,与多个固态存储卡相连,采用2种形式:
(1)前面板多通道高速存取通信接口,采用SFP+/Mini SAS多通道高速串行通信接口FMC模块,再通过光缆或电缆,与多个固态存储卡相连;
(2)背板多通道高速存取通信接口,采用多通道高速串行通信接口,再通过背板与多个固态存储卡电气性相连;
所述存取并行处理控制器,包括采集/回放外设通信控制器、多通道高速存取通信控制器、管理接口控制器、地址管理器、数据管理器、配置控制器,与外设专用通信接口、高速存取通信接口、高速缓存、配置存储器等相连,用于存取固态记录装置的地址、数据链路和数据帧的***管理;
其中,所述地址管理器,包括写操作LA/LBA(Logic Block Address,逻辑区块地址)生成器、写操作LBA寄存器、读偏移寄存器、读逻辑地址LA(Logic Address,逻辑地址)寄存器、固态存储卡容量寄存器组、RAID模式寄存器、地址处理控制器;用于写操作LBA生成、读逻辑地址计算、高速缓存的读指针初始化和生成控制、板级地址查找、数据的分流与聚合模式控制等;
其中,所述数据管理器,包括数据帧格式化与分流、数据聚合、采集数据缓冲器、缓存控制器,用于外设数据的帧格式化与分流、固态存储卡读取数据聚合的并行处理;
所述高速缓存,采用QDR SRAM存储媒介,存储媒介的容量分别大于等于N个逻辑区块大小,用于缓存采集外设或固态存储卡发来的数据,其中N大于等于2;
所述配置存储器,采用非易失存储器,用于记录外设专用通信接口通道数及速率、固态存储卡数量及容量、RAID模式、最新写操作LBA、高速存取通道数、高速存取速率等***参数,上电时将这些***参数从配置存储器加载到上述相应的寄存器。
所述的固态存储卡,采用全硬线设计,包括高速存取通信接口、通信与读写并行处理控制器,块映射表存、逻辑区块映射表,四个独立的闪存阵列、四个独立的闪存阵列控制器,以及配置存储器;
所述高速存取通信接口,采用全双工高速串行通信接口,与***控制卡相连,用于数据帧的收发传输,采用以下2种形式:
(1)前面板高速存取通信接口,采用SFP+、Mini SAS高速串行通信接口FMC模块,通过光缆或Mini SAS电缆与***控制卡相连;
(2)背板高速存取通信接口,采用高速串行通信接口,通过背板与***控制卡电气性相连;
所述通信与读写并行处理控制器,包括地址存储控制器、读写并行处理控制器、高速存取通信控制器、管理接口控制器,以及局部总线控制器,与高速存取通信接口、块映射表、逻辑区块映射表、四个独立闪存阵列控制器相连,用于数据通信、地址、数据链路、数据帧、闪存访问、单板机配置与监控的实时并行处理;其中,读写并行处理控制器包括读写并行处理状态机、数据帧格式化与调度器、写缓冲器、读缓冲器,以及四通道写次数寄存器组、写LBA_1、写PBA、当前读LBA_1、当前读PBA、下一次读LAB_1等寄存器;地址存储控制器,用于逻辑区块映射表、块映射表的读写控制,同时与读写并行处理控制器相连,使得固态存储卡和单板机能对块映射表和逻辑区块映射表进行管理;
所述逻辑区块映射表,采用非易失性存储器和SRAM,用于执行写操作时,快速记录闪存阵列的逻辑区块地址LBA的一次映射LBA_1,根据LBA对其快速寻址;LBA_1的最高位作为闪存编程时发生错误的标志位,“1”为错误;其中,非易失性存储器用于掉电保存,上电后加载到SRAM,以快速访问;
所述块映射表,采用SRAM,用于存储固态存储卡的所有块的重映射,使用一次映射LBA_1形成块地址BA(Block Address),对其快速寻址;单板机上的管理软件在对固态存储卡完成创建块重映射列表后,经由管理接口控制器创建或更新块映射表;当执行数据存取操作时,读写并行处理控制器对其进行读取操作;
所述四个独立的闪存阵列,构成四个独立动态临界资源,且在任何时候都至少存在二个空闲临界资源,每组闪存阵列对应一个独立闪存阵列控制器,从而构成四个独立访问通道,在任意时刻,至少有2个通道处于空闲状态;
所述四个独立的闪存阵列控制器,采用交替die(晶元)、multi-plane、cacheprogram模式对闪存阵列执行多级流水线的ECC、读/编程、状态寄存器读取等操作;
所述的配置存储器,用于记录高速存取通信接口速率、读/写缓存容量、闪存阵列的布局参数、闪存芯片的结构参数等***配置参数。
所述的闪存阵列,采用M×N晶元阵列布局,其中,N由存取带宽和I/O位宽决定,M由四通道闪存阵列读/写操作的实时连续性决定;闪存阵列控制器采用交替die(晶元)、multi-plane、cache program模式对与之相连的闪存阵列实施M级流水线读/写操作,当对某通道的M×N晶元阵列执行最后一级流水线写操作的编程操作时,第一级流水线写操作的编程已经完成处于空闲状态可以被继续用于执行读/写操作,尽管第二级N个晶元的编程可能还在进行。
其中,所述的M级流水线读/写操作,每次访问M×aN的页阵列,这M×aN页阵列为一个区块,区块中各页的编号相同,区块地址LBA={逻辑块索引,逻辑页索引,逻辑通道索引},区块大小为M×aN×P,其中,P为页大小,单位为字节;LBA对应的PBA={物理通道索引,M×aN个物理块索引,物理页索引},其中,M、N为M×N晶元阵列的布局参数,a为每个晶元中plane的个数。
进一步的,本发明还可以利用所述的多个固态记录装置可组成一个存取实时并行处理固态记录***,主***控制卡安装于计算机中,通过前面板的多通道存取通信接口,与各固态记录装置中从属***控制卡的外设专用通信接口相连,具有装置级的RAID 0、RAID1、RAID 10工作模式,实现存储速率和容量的扩展。
更进一步的,本发明还提供一种利用固态记录装置进行存取实时并行处理的方法,其特征在于,包括以下步骤:
(1)、***参数加载,寄存器初始化
上电后,单板机上的管理软件从***控制卡、固态存储卡的配置存储器获得配置参数,配置到***控制卡的相应寄存器,初始化***控制卡的LA/LBA生成器、固态存储卡的四通道写次数寄存器组,如果需要执行坏块检测与块擦除处理,执行步骤(2),如果不需要,执行步骤(4);
(2)、固态存储卡进行坏块检测处理
2.1)、管理软件对每个固态存储卡进行坏块检测,获得每个固态存储卡的坏块列表,生成坏块列表文件,如果不需要执行擦除操作,执行步骤2.3),如果需要执行擦除操作,执行步骤2.2);
2.2)、管理软件对需要擦除的固态存储卡上各晶元的块执行擦除操作,如果某块的擦除操作失败,在该块的第一页的备用区建立坏块标记,如果所有需要执行擦除操作的固态存储卡的擦除操作完成,返回执行步骤2.1);
2.3)、根据固态存储卡的坏块列表文件,获得各晶元每个plane中的有效块数,如果单个晶元中的有效块数小于最小标称有效块数(Valid Block Number,NVB),则需要更换闪存,操作结束;如果不是,确定出固态存储卡的有效块数,计算固态存储卡的容量,并写入***控制卡的固态存储卡容量寄存器组,执行步骤(3);
(3)、创建固态存储卡块映射表
3.1)、同plane的块一次重映射:采用倒序映射策略,将每个通道的闪存阵列各晶元中每个plane的坏块重新映射到同plane的物理好块,获得固态存储卡上全部晶元的块一次映射表,保存为块一次映射表文件;
3.2)、面向逻辑区块寻址的块二次映射:根据块一次映射表,将每个逻辑区块映射到包含区块内所有物理块编号的物理区块,形成块映射表,保存为文件;
(4)、加载块映射表:管理软件通过管理接口将块映射表写入固态存储卡的块映射表;
(5)、采集与回放的存取并行处理
5.1)、建立数据分流/聚合的板级链路:对于多个固态记录装置构建的固态记录***,关闭从***控制卡的LA/LBA生成器,根据采集回放速率和存储卡读写速率的倍数关系确定RAID0的分流固态存储卡个数,再根据是否需要冗余备份,设定RAID 0、RAID 1或RAID10的分流/聚合链路,如果是单一记录操作,单板机使能***控制卡、固态存储卡的数据接收通道,执行步骤5.2),如果是单一回放操作,执行步骤5.6),如果在执行记录任务的同一时刻执行回放操作,则并行执行步骤5.2)和5.6);
5.2)、采集数据接收与帧格式化:***控制卡接收采集外设发送过来的数据,每接收到一个区块的数据,执行LBA=LBA+1,根据RAID模式、固态存储卡容量,确定目标固态存储卡;***控制卡形成写操作数据帧,通过高速存取通信接口传输给目标固态存储卡;
5.3)、固态存储卡接收到***控制卡发送过来的写指令帧时,对写LBA进行二次地址映射:
5.3.1)写LBA映射为LBA_1:固态存储卡从写指令帧中分离出写LBA,得到LBA的一次映射地址LBA_1,将其记录到逻辑区块映射表,将被写通道标记为写忙,执行步骤5.3.2);
5.3.2)LBA_1映射为PBA:根据LBA一次映射地址LBA_1对块映射表进行二次寻址,获得一个逻辑区块内所有物理块的索引,得到物理区块地址PBA,进行步骤5.4);
5.4)、存储卡接收到***控制卡发送过来的写数据帧,将用户数据放入缓冲区,依次将物理区块地址PBA和用户数据发送到该通道的闪存阵列控制器,对M×N晶元阵列执行M级流水线写操作,当对最后一行晶元发出编程指令后,不论其编程是否完成,将该通道标记为空闲,执行步骤5.5),同时,闪存阵列控制器监控编程状态,编程期间如果发生错误,确认发生错误的块,以中断方式通知单板机,更新坏块列表文件,读写并行处理控制器将LBA_1的最高位作坏块标记;
5.5)、***控制卡检查最新写LBA是否已经达到记录装置的***容量,如果已经达到,结束记录处理;如果没有达到,再检查是否已接收到停止记录指令,如果没接收到停止记录指令,执行步骤5.2),如果接收到停止记录指令,将最新写LBA更新到配置存储器,结束记录处理;
5.6)、单板机预先设置读偏移地址,或***在执行写操作的过程中,单板机随机设置读逻辑地址LA,读取其长度,将读LA除以LBA的余数来初始化高速缓冲的读指针,当满足读取条件时,启动读操作,执行步骤5.7);
5.7)、检查读操作的偏移地址是否小于等于2个逻辑区块的大小:
5.7.1)、如果读操作的偏移地址小于等于2个逻辑区块的大小,***控制卡根据高速缓存读指针,读取高速缓存中的数据发送给回放外设,每读取一个逻辑区块的数据,检查是否达到读取长度或接收到停止读指令,如果不是,继续读取高速缓中的数据存进行回放,如果是,结束回放处理;
5.7.2)、如果读操作的偏移地址大于2个逻辑区块的大小,***控制卡将LBA、读取长度打包为读指令帧,检查写指令帧或写数据帧是否正在发送,如果是,等待其完成,如果不是,则发送读指令帧和数据帧到目标固态存储卡,执行步骤5.8);
5.8)、固态存储卡监听接收读指令帧,从中分离出读LBA,初始化读LBA寄存器,执行步骤5.9);
5.9)、执行读LBA到PBA的二次映射操作:
5.9.1)、使用读LBA对逻辑区块映射表进行寻址,获得一次映射LBA_1,将被读通道标记为读忙,执行步骤5.9.2);
5.9.2)、对LBA_1进行二次映射,获得一个逻辑区块内的所有物理块编号,得到PBA,并行地,进行步骤5.10)、5.11);
5.10)、使LBA+1,获取LBA+1的一次映射LBA_1,据此确定出预读通道,并将其标记为下一次读忙;
5.11)、检查被读通道是否空闲,如果被读通道处于写忙,等待,如果被读通道空闲,将PBA发送到被读通道的闪存阵列控制器,对该通道的闪存阵列执行多级流水线读操作;形成读响应帧和读数据帧,通过固态存储卡的高速存取接口发送给***控制卡;当对最后一行晶元的读操作完成后,将该通道标记为空闲,执行步骤5.12);
5.12)、固态存储卡检查是否达到读取长度或接收到停止回放指令,如果是,固态存储卡清空读操作有关的寄存器,结束读取操作,如果不是,固态存储卡将LBA+1推入读LBA寄存器,执行步骤5.9);
5.13)、***控制卡监听接收固态存储卡发送过来的读响应帧和读数据帧,如果是RAID 1或RAID 10模式,检查互为镜像的2个固态存储卡同时发来的读响应帧所标示的区块好坏,选择正确的固态存储卡数据,存入高速缓存;***控制卡读取高速缓存中的数据,并将数据发送给回放外设,执行步骤5.14);
5.14)、***控制卡检查是否接收到单板机发送过来的停止回放指令,如果没接收到停止回放命令,执行步骤5.13),如果接收到停止回放指令,则向固态存储卡发送停止回放指令,回放处理结束;;
结束处理;
其中,所述的多通道均衡写为:
在执行以逻辑区块为单位的写操作时,若没有读操作发生,则固态存储卡有四个通道处于空闲状态,如果同时有读操作发生,会有2个通道分别处于读忙、下一次读忙状态,则固态存储卡有二个通道处于空闲状态,从空闲通道选择一个写次数最少的通道,当写次数相同时,选择通道序号最小的通道,作为当前执行写操作的通道,这使得写操作是围绕四个通道轮转的,连续写入同一个通道的情况不会发生,同样,连续两次读取相同通道的情况也不会发生,使得读操作和写操作避开了对临界资源的竞争;面向多通道均衡写策略,固态记录装置的LBA定义为LBA={LB,LP,LCH},其中,LB、LP、LCH,分别为逻辑块索引、逻辑页索引、逻辑通道索引,LBA的低位为逻辑通道索引,体现多通道均衡写;
其中,所述的写LBA映射为LBA_1的一次映射为:
将一次映射定义为LBA_1={PCH,LB,PP},其中,PCH、LB、PP,分别为物理通道索引、逻辑块索引、物理页索引,{LB,PP}定义为该通道写次数NWR,根据多通道均衡写策略,当空闲通道的写次数相同时,选择通道序号最小的通道,使该通道的写次数NWR+1,得到LBA_1={物理通道索引,通道写次数}={PCH,LB’,PP’},将其存入逻辑区块映射表存储器;
其中,所述的LBA_1映射为PBA为:
对于步骤5.3.2)、5.9.2),在固态存储卡获得一次映射LBA_1={PCH,LB,PP}后,使用{PCH,LB,Row,Col}对块映射表存储器进行访问,获得通道PCH中闪存阵列的逻辑块索引LB所对应的M×N晶元阵列各物理块索引PB,最终获得物理区块地址PBA={PCH,PB(M×aN),PP},其中,Row≤M,Col≤N分别为区块中晶元的行索引和列索引,a为每个晶元中的plane个数。
本发明的目的是这样实现的:
本发明的一种存取实时并行处理固态记录装置及方法;存取实时并行处理固态记录装置包括存取并行处理固态记录***控制卡、多个存取并行处理固态存储卡、单板机等单元;***控制卡通过外设专用通信接口与采集、回放外设相连,通过多通道高速存取通信接口与一个以上的拥有四组独立闪存阵列及其控制器的固态存储卡相连,在采集、回放外设和固态存储卡上的任意2组闪存阵列间建立读、写二条独立数据链路,闪存阵列控制器执行多级流水线读/写操作;存取并行处理固态记录方法,记录、回放操作全硬线并行处理,采用均衡写和地址二次映射策略,加速LBA到PBA的转换;这种存取实时并行处理固态记录装置与方法达到数据记录与回放同时高速进行的目的。
附图说明
图1是本发明的存取实时并行处理固态记录装置的一种具体实施结构示意图;
图2(A)是本发明的存取并行处理***控制卡结构的一种实施例;
图2(B)是本发明图2(A)所述地址管理器的一种具体结构实施例;
图2(C)是本发明图2(A)所述指令帧格式的一种具体实施例;
图2(D)是本发明图2(A)所述数据帧格式的一种具体实施例;
图2(E)是本发明图2(A)所述RAID 10模式的板级数据链路配置的一种具体实施示意图;
图3(A)是本发明的存取并行处理固态存储卡的一种具体实施结构示意图;
图3(B)是本发明图3(A)所述读写并行处理控制器一种具体实施结构示意图;
图4(A)是本发明图3(A)所述闪存阵列的拓扑结构实施示意图;
图4(B)是本发明图4(A)所述的闪存阵列流水线写操作的一种具体实施例;
图5(A)是本发明的同plane块映射的一种具体实施例;
图5(B)是本发明的面向逻辑区块的块二次映射的一种具体实施例;
图5(C)是本发明的块映射表的一种具体存储方式实施例;
图6(A)是本发明的多通道均衡写策略的一种具体机制实施例;
图6(B)是本发明的逻辑区块写操作二次映射机制的一种具体实施例;
图6(C)是本发明的逻辑区块读操作二次映射机制的一种具体实施例;
图7是本发明存取实时并行处理固态记录装置的速率和容量扩展的一种实施例;
图8是本发明的存取并行处理固态存储卡的坏块检测及创建块映射表流程图。;
图9是本发明的存取并行处理固态记录装置的存取并行处理流程图;
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图1是本发明存取实时并行处理固态记录装置的一种具体实施结构示意图。
在本实施例中,如图1所示,存取实时并行处理固态记录装置10,由存取并行处理固态记录***控制卡(简称***控制卡)、多个存取并行处理固态存储卡(简称固态存储卡)、单板机等构成,安装于一机箱中,如CPCI/CPCIe/VPX/ATCA,本实施例中采用CPCIe机箱;***控制卡通过前面板的外设专用通信接口的光缆或电缆103、104与采集、回放外设相连,单板机通过背板的PCIe总线101与***控制卡、固态存储卡相连,***控制卡通过前面板的多通道高速存取通信接口的SFP+、Mini SAS电缆或光缆105与多个固态存储卡相连。***控制卡根据RAID 0、RAID 1或RAID 10的设置,在采集、回放外设与固态存储卡之间建立读、写两条独立数据链路,且读、写操作并行处理;单板机通过管理接口控制器与***控制卡、固态存储卡相连,并对其进行检测、配置和监控管理,其中,管理接口控制器可采用PCI/PCIe或RapidIO接口控制器,在本实施例中,采用PCIe控制器。
其它计算机也可通过单板机的LAN接口,经由管理接口控制器直接向存储卡写入数据或读取数据。
图2(A)是本发明的存取并行处理***控制卡结构的一种实施例。
***控制卡20包括采集外设通信接口FMC、回放外设通信接口FMC、多通道高速存取通信接口FMC、存取并行处理控制器201、高速缓存、***配置存储器202等单元;存取并行处理控制器,采用FPGA,全硬线设计,包括采集外设通信控制器、多通道高速存取通信控制器、管理接口控制器、地址管理器、数据管理器2010、缓存控制器、***配置控制器等;其中,数据管理器包括数据帧格式化与分流管理器、数据聚合管理器、采集数据缓冲器、缓存控制器等单元;管理接口控制器为PCIe控制器,与单板机相连。采集/回放外设通信接口FMC的外部接口符合采集/回放外设的电气特性,对内采用基于SerDes的高速串行通信,与存取并行处理控制器201相连;多通道高速存取通信接口FMC对外采用SFP+/Mini SAS电缆或光缆,对内采用基于SerDes的高速串行通信,与多通道高速存取通信控制器相连;高速缓存,采用QDR SRAM,在本实施例,采用CY7C1165KV18-550BZC,***配置存储器202采用串行铁电存储器FM25CL64B-G,用于记录外设专用通信接口通道数及速率、固态存储卡数量及容量、RAID模式、最新写操作LBA、高速存取通道数及速率等***参数,上电时管理软件从***配置存储器读取这些***参数,配置到相应的寄存器,根据最新写操作LBA初始化LA/LBA生成器;
如果采集回放速率为存储卡的读写速率的2N倍,其中N为非负整数,数据帧格式化与分流管理器将数据分割成2N个,形成2N个数据帧,分流到2N个固态存储卡,据此确定RAID0的配置,如果N=0,则是常规模式;再根据是否需要数据冗余备份,确定RAID 1或RAID 10模式,如果是RAID 1模式,则将数据分流到2个固态存储卡,如果是RAID 10模式,则需要将同一份数据同时发往一组2个互为镜像的固态存储卡,建立RAID 1模式,再根据RAID 0的配置,将2N个RAID 1组合成RAID 0模式,从而建立RAID 10模式;据此建立板级数据链路。
当开始记录时,***控制卡接收采集外设的数据,通过采集外设通信控制器将数据送往数据管理器2010的采集数据缓冲器,数据缓冲器将数据送往数据帧格式化与分流管理器,地址管理器的LA/LBA生成器对接收数据进行计数,将LA除以一个逻辑区块的大小,其商与初始化LBA相加作为写LBA,形成写指令帧,紧接着发送数据帧,直至LBA变化,再重新发送写指令帧。在执行记录的过程中,如果接收到停止记录指令或达到记录装置的存储容量,记录处理结束,将最新写LBA更新到配置存储器。
读操作时,单板机通过PCIe对读逻辑地址或读偏移寄存器进行设置,地址管理器得出LA,如果读偏移地址大于等于2个逻辑区块时,地址管理器则将读LA除以逻辑区块的大小,其商作为读LBA,形成读指令帧,根据RAID模式,将读指令帧发送给2N组/个固态存储卡,固态存储卡执行数据读取操作并将数据发送给***控制卡,***控制卡进行数据的聚合操作,并用读LA除以逻辑区块大小的余数初始化读指针读取高速缓存,将读取数据发送给回放外设。
图2(B)是本发明图2(A)所述地址管理器的一种具体结构实施例。地址管理器,包括写操作LA/LBA生成器、写操作LBA寄存器、读偏移寄存器、读逻辑地址寄存器、256个固态存储卡容量寄存器组、RAID模式寄存器、地址处理控制器等,用于读、写并行处理操作的地址管理。记录前,管理软件将RAID模式发送给数据管理器的数据帧格式化与分流管理器和聚合管理器,建立板级分流/聚合链路;记录时,LA/LBA生成器生成LBA,发送给数据帧格式化与分流管理器,用于生成写指令帧,回放时,地址管理器将LA除以LBA的余数初始化高速缓存的读指针,根据读取地址相对于写地址是否大于2个逻辑区块,来控制数据管理器的多路选择器,如果小于等于2个逻辑区块,则高速缓存直接缓存采集数据,如果大于2个逻辑区块,则将读LBA发送给数据帧格式化与分流管理器生成读指令帧。
图2(C)是本发明图2(A)所述指令帧格式的一种具体实施例。包括SF(Start ofFrame,帧开始)、读/写指令、LBA等。其中SF使用RocketIO的Comma字符(某K字符),它除了标志帧开始,还起到传输同步控制的作用。图2(D)是本发明图2(A)所述数据帧格式的一种具体实施例。包括SF、用户数据/指令响应等,其中,SF的使用同图2(B);数据帧的大小由高速串行通信的可靠性确定,本实施例取2048字节,在发送一个逻辑区块的第一个数据帧之前,先发送写指令帧。
图2(E)是本发明图2(A)所述RAID 10模式的板级数据链路配置的一种具体实施示意图。当外设数据速率是存储卡的4倍时,首先将存储卡240和241,存储卡242和243,存储卡244和245,存储卡246和247,两两组成互为镜像的RAID 1模式,再将这四组组合形成RAID 0模式,最后形成RAID 10模式。
图3(A)是本发明的存取并行处理固态存储卡的一种具体实施结构示意图。
在本实施例中,如图3(A)所示,本发明存取并行处理固态存储卡30包括通信与读写并行处理控制器301、四通道闪存阵列控制器302、逻辑区块映射表、块映射表、配置存储器、前面板通信接口305、背板通信接口303、PCIe接口、四通道闪存阵列等构成。
如图3(A)所示,通信与读写并行处理控制器301,用一片FPGA全硬线设计,包括地址存储控制器、读写并行处理控制器、高速存取通信控制器3011/3012、PCIe控制器3013、局部总线控制器3014等单元;通过前面板/背板高速存取通信接口305、303与***控制卡相连,前面板采用高速存取通信FMC形式,对外采用SFP+/Mini SAS电缆或光缆,对内采用基于SerDes的高速串行通信,与高速存取通信控制器3011相连,背板是采用高速存取通信控制器3012,与***控制卡电气性相连;地址存储控制器与块映射表存、逻辑区块映射表相连,还通过PCIe控制器与单板机相连;局部总线控制器3014通过局部总线307、308与四通道闪存阵列控制器302相连,其中,局部总线307采用基于SerDes的双通道全双工高速串行通信,局部总线308用于读写操作的状态检测;
如图3(A)所示,四通道闪存阵列控制器302,用2片FPGA全硬线设计,包括局部总线控制器3021、四个独立闪存阵列控制器,每个闪存阵列控制器与一组闪存阵列相连,形成四个独立的读/写访问通道。
图3(B)是本发明图3(A)所述的读写并行处理控制器一种具体实施结构示意图。包括读写并行处理状态机、写缓冲器、读缓冲器、数据帧格式化与调度器,以及四通道写次数寄存器组、写LBA_1、写PBA、当前读LBA_1、当前读PBA、下一次读LAB_1等寄存器。读写并行处理状态机监听读写指令帧和指令帧,从中分离出写LBA或读LBA。如果是写LBA,检测四通道的读写忙状态,根据多通道均衡写策略,从空闲通道中确定写通道,将被写通道标记为写忙,创建写LBA_1,发送给地址存储控制器,获得写PBA存入写PBA寄存器,数据帧格式化与调度器形成写指令帧和数据帧通过高速串行局部总线发送到相应通道的闪存阵列控制器;如果是读LBA,将LBA发送给地址存储控制器,获得读LBA_1和读PBA,存入当前读LBA_1和当前读PBA寄存器,将被读通道标记为读忙;同时将读LBA+1,获得下一次读LBA_1,将下一次读通道标记为下一次读忙;数据帧格式化与调度器形成读指令帧通过高速串行局部总线发送到相应通道的闪存阵列控制器,并将所读取的数据放入读缓冲器;
如图4(A)是本发明图3所述的闪存阵列的拓扑结构实施示意图。
在本实施例中,如图4(A)所示,闪存阵列共有四组,每组闪存阵列按M×N的die阵列布局,每个die的I/O位宽为k,将N个die进行绑定,其位数为kN,位宽的增加,相当于数据分流,有利于存取速率的提高,流水线级数的增加,有利于提高读写操作的连续性和实时性,将每列的I/O级联,一次M级流水线写访问M×aN页,这M×aN页为一个逻辑区块,其中a为一个逻辑单元LUN中的plane的个数。
级联数M由交替die、multi-plane、cache program读写模式的流水线级数需求决定:当对M×N晶元阵列执行最后一级流水线写操作的编程操作时,第一级流水线写操作的编程已经完成处于空闲状态可以被继续用于执行读/写操作,尽管第二级N个晶元的编程可能还在进行。
本实施例中,闪存芯片采用MT29F256G08AUCABH3-10IT,其内部有4个target,每个target有2个晶元(die,LUN),每个die有2个plane,每个plane有2048个块,每个块有128页,每个plane的页面大小为8K字节的数据段和448字节的备用区。在I/O组织上,单个芯片可形成4×2的8位I/O的die阵列,采用4片芯片,横向绑定为64位die,形成4×8的die阵列,以4片芯片为一组,将M组上下级联,形成4M×8的die阵列,其中,M为大于等于1的整数。
图4(B)是本发明图4(A)所述的闪存阵列流水线写操作的一种具体实施例。固态存储卡有四个通道,每个通道包含M个64位I/O绑定型die0、die1、……dieM,对于连续执行写操作的任意2个通道J、L,其中,J、L为1~4的整数,且J不等于L,M个绑定型die按序级联,每个通道形成M×8阵列。本实施例中,采用交替die(LUN)、multi-plane、cache program模式的M级流水线读/写操作,M×8阵列可以形成M级流水写操作40、41、42、……、47。每级流水线写操作包括plane 0指令/地址/数据输入操作401、plane 1指令/地址/数据输入操作402、编程403、状态读取404等操作阶段。闪存的编程操作消耗时间远远大于其它阶段,在编程操作期间不能再次编程也不能读取,而读取操作则只有命令/地址/数据、状态检测等2个阶段,相对容易实现快速读取,为满足存取实时并行处理,闪存阵列需首先保证连续写操作,在第1个die完成命令/地址/数据阶段发送编程指令进入编程阶段时,无须等待这个die的编程完成,继续访问第二个die,以此类推,在最后一级流水线发送编程指令进入编程阶段时,第1个die写操作应已完成并进入空闲状态,可用于下一次的读/写操作。当通道J最后一级流水线发送完编程指令后,将其标注为空闲通道,留待读取操作,对于写操作,基于多通道均衡写策略,切换到空闲通道L,开始新的流水线写操作,于是外设数据可以源源不断地实时写入存储卡。
流水线级数的确定,本实例中,如图4(B)所示,对每个die,采用200MHzDDR数据I/O和multi-plane写操作,主要耗时为2个plane的I/O传输,命令/地址/数据阶段的耗时为tc,编程耗时为tp,状态检测的耗时为ts,完整写操作的耗时为:tWR=2*tc+tp+ts,按照不间断写操作原则,则流水线写操作应满足:
M*2*tc+ts>tWR,M>tp/(2*tc)+1
本实施例中,tp最大为560us,tc约为50us,则应有M>6.6,M取整为8,即8级流水线写操作,当对某通道的闪存阵列执行最后一级流水线写操作的编程操作时,第一级流水线写操作的编程已经完成处于空闲状态,尽管第二级N个die的编程仍未完成,但该通道可以被继续用于执行读/写操作,因此,外部对闪存阵列的读写操作就不会出现等待现象;
本实施例中,每组闪存阵列包含2×4片闪存芯片,制作成SO-DIMM(Small OutlineDual In-line Memory Module)模块,方便维修更换,每张存储卡有四个通道,每个通道有1个SO-DIMM模块,此时,单张存储卡连续实时存储速率可达1.2GBps以上,存储容量为1TB,由于每个die中存在坏块,为避开对坏块的访问,如果按逻辑块索引=物理块索引的方法,则逻辑区块中只要存在一个物理坏块,整个逻辑区块都只能放弃不用,对于本实施例,一个die中有4096个块,NVB=4016,则每个块为好块的概率是p=0.98,而对于一个逻辑区块为好的概率的p128=0.98128=0.075,有效存储容量的利用率太低,为解决这个问题,本实施例采用块二次重映射策略。
图5(A)是本发明的同plane块映射的一种具体实施例。管理软件通过经由PCIe总线,通过块地址BA={CH[1:0],Row[2:0],Col[2:0],B[10:0],PL}对每个存储卡上各晶元进行坏块检测和擦除操作,建立存储卡的坏块列表,形成坏块列表文件,其中,CH[1:0]、Row[2:0]、Col[2:0]、B[10:0]、PL分别为通道索引、晶元行索引、晶元列索引、块索引、plane索引。如图5(A)所示,本实施例中,每个die有2个plane,每个plane有2048个块,将坏块用同一个plane中的好块来替换,具体策略是:采用倒序映射策略,将每个通道的闪存阵列各晶元中每个plane的坏块重新映射到同plane的物理好块,根据固态存储卡的坏块列表文件,对每个晶元的各plane中的块进行检索,如果是好块,则其物理块号即为其一次映射块号,如果是第一个坏块,则将其映射到同plane的编号最大的物理好块,如果是第二个坏块,则将其映射到同plane的编号第二大的物理好块,以此类推,最终获得固态存储卡上全部晶元的块一次映射表。本实施例中,如图5(A)所示,plane0有三个坏块,plane1有2个坏块,经过LBA到PBA的映射后,plane0的有效块为4088,plane1的有效块为4091,在multi-plane模式下,有效块应取plane 0和plane 1的有效块数的最小值,即为4088。依次建立图4(A)所示8×8的die阵列的块一次映射表和块的最大有效值,保存为块一次映射表文件。
图5(B)是本发明的面向逻辑区块的块二次映射的一种具体实施例。块一次映射表的各块处于分散状态,不利于逻辑区块向物理区块进行转换,因此采用块二次映射策略,具体为:根据块一次映射表,面向逻辑区块,将每个逻辑区块映射到包含M×aN个块的物理区块,形成块二次映射表,本实施例中,存储卡的每个通道共有222=2048个逻辑区块,每个逻辑区块包含M×aN=8×16个物理好块,将每个逻辑区块映射到物理区块8×16的块阵列,形成块二次映射列表。
图5(C)是本发明的块映射表的一种具体存储方式实施例。本实施例中,每张固态存储卡总计有256个die,512K个块,每个块号可用12位来表示,采用36位NoBL SRAM,则每个存储单元可以同时存储plane 0和plane 1的块编号,本实施例中,块映射表存储器采用256K×36的CY7C1354C,利用LBA_1={PCH[1:0],LB[10:0],PP[6:0]}的高位重新构成块地址BA={PCH[1:0],LB[10:0],Row[2:0],Col[2:0]}对其进行寻址,其中Row和Col为8×8晶元阵列的行号和列号,每次可写入2个plane的物理块编号,管理软件经由PCIe总线通过地址存储控制器将块二次映射表写入CY7C1354C。在进行记录、回放操作时,由读写并行处理控制器通过地址存储控制器对CY7C1354C进行读取操作。对于200MHz的NoBL SRAM,获取一个逻辑区块第一行物理地址的PB[11:0](1×16)的时间约为40ns,对于12Gbps的连续采集或回放,仅缓冲了约125个字节的数据,保证了读/写操作的实时性。
图6(A)是本发明的多通道均衡写策略的一种具体机制实施例。
本实施例中,固态存储装置的LBA定义为LBA={LB[10:0],LP[6:0],LCH[1:0]},存储卡的读写并行处理控制器根据首次写指令帧,分离出写LBA,以{LB[10:0],LP[6:0]}初始化四通道写次数寄存器,其内容为{LB[10:0],PP[6:0]},{LB[10:0],PP[6:0]}也是通道内逻辑区块编号,其中,LCH为逻辑通道索引,LB为逻辑块索引,LP为逻辑页索引;若没有读操作发生,则有四个通道处于空闲状态,如果同时有读操作发生,读操作有读操作忙和下一次读忙,占用二个通道,则有二个通道处于空闲状态,从空闲通道选择一个写次数最少的通道,当写次数相同时,选择通道序号最小的通道,使相应通道的写次数+1,得到{LB’[10:0],PP’[6:0]},设被选中的物理通道号为PCH,使用PCH去替换LBA的LCH,整理得到LBA的一次映射地址LBA_1={PCH[1:0],LB’[10:0],PP’[6:0]},将其记录到逻辑区块映射表。
图6(B)是本发明的逻辑区块写操作二次映射机制的一种具体实施例。本实施例中,每次流水线读写操作访问的一个逻辑区块,包含8×16=128个物理页,每页分属不同的块,如果完整记录每个逻辑区块的PBA,数据量巨大,本实施例中,采用逻辑区块二次映射机制,具体为:
写操作时,将写LBA映射为LBA_1。根据多通道均衡写机制,如图6(A)所示,获得LBA_1,本实施例中,每个存储卡的逻辑区块总计有4×2048×128=1M个逻辑区块,LBA_1占用三个字节,存储媒介采用QDR SRAM+NOR Flash,使用NOR Flash便于非易失性在板保存,使用QDR SRAM是便于读、写操作的并行处理,本实施例中,NOR Flash选用32Mb的N25Q032A13ESEA0F,QDR SRAM选用CY7C1165KV18-550BZC,使用LBA进行寻址;
LBA_1映射为PBA:根据获得的一次映射LBA_1={PCH[1:0],LB[10:0],PP[6:0]},使用{PCH[1:0],LB[10:0],Row[2:0],Col[2:0]}对块映射表存储器进行访问,获得通道PCH中闪存阵列的逻辑块索引LB所对应的8×16个物理块索引PB,最终获得物理区块地址PBA={PCH[1:0],PB[11:0](8×16),PP[6:0]},发送给通道PCH[1:0]的闪存阵列控制器,其中,Row[2:0],Col[2:0]分别为区块中晶元的行索引和列索引。
图6(C)是本发明的逻辑区块读操作二次映射机制的一种具体实施例。执行读操作时,存储卡从读命令帧中分离出读LBA,首先执行LBA到LBA_1的一次映射操作,使用LBA={LB[10:0],LP[6:0],LCH[1:0]}对逻辑区块映射表进行寻址,获得一次映射LBA_1={PCH[1:0],LB’[10:0],PP[6:0]}。
LBA_1映射为PBA:根据获得的一次映射LBA_1={PCH[1:0],LB[10:0],PP[6:0]},使用{PCH[1:0],LB[10:0],Row[2:0],Col[2:0]}对块映射表存储器进行访问,获得通道PCH中闪存阵列的逻辑块索引LB所对应的8×16个物理块索引PB,最终获得物理区块地址PBA={PCH[1:0],PB[11:0](8×16),PP[6:0]},发送给通道PCH[1:0]的闪存阵列控制器,其中,Row[2:0],Col[2:0]分别为区块中晶元的行索引和列索引。
图7是本发明的存取实时并行处理固态记录装置的速率和容量扩展的一种实施例。当图1所示的固态记录装置的容量不足需要扩展时,计算机70通过***控制卡701前面板的SFP+、Mini SAS接口的电缆或光缆72接入固态记录装置71、……78的***控制卡711、……781的采集外设接口,关闭记录装置71、……78的***控制卡的LA/LBA发生器。记录***中的计算机70及各记录装置71、……78的LAN/Ethernet740、……748通过交换机互联,***控制卡701根据记录模式RAID 0、RAID 1或RAID 10的设置,建立数据分流/聚合的装置级数据链路,实现存取实时并行处理固态记录***的存储速率和存储容量的扩展,其中***控制卡701称为主***控制卡,其余称为从属***控制卡,从属***控制卡可以再次进行扩展。
图8是固态存储卡的坏块检测及创建块映射表流程图。
在本实施例中,如图8所示,步骤ST211~212对应本发明内容的步骤2.1),步骤ST22~23对应本发明内容的步骤2.2)、2.3),步骤ST31对应本发明内容的步骤3.1),步骤ST321~322对应本发明内容的步骤3.2)。
需要说明的是,本实施例中,如图5(A)、5(B)、5(C)所示,逻辑块为2048、页数为128、通道数为4,从而有LBA={LB[10:0],LP[6:0],LCH[1:0]},总的逻辑区块数=4×2048×128=1048576,一个逻辑区块的物理块数=M×aN=8×16,物理区块地址PBA={PCH[1:0],PB[11:0](8×16),PP[6:0]},一个区块的实际大小M×aN×P=8×16×128=1MB,其中,M、N为M×N晶元阵列的行、列值,a为每个晶元中plane的个数,P为晶元中每个物理页的大小;
在执行坏块检测、擦除等操作时,块地址BA={PCH[1:0],Row[1:0],Col[1:0],B[10:0],PL}};标称有效块数NVB=4016,当检测出某块芯片的有效块数小于NVB时,需要更换该闪存芯片;
在执行步骤ST31时,同plane的块一次重映射,采用倒序映射策略,步骤及方法如图5(A)所示;执行步骤ST321时,面向逻辑区块寻址的二次映射,方法如图5(B)所示;执行步骤ST322时,单板机通过PCIe总线将块二次映射列表写入块映射表存储器,其存入方法如图5(C)所示。
图9是本发明的存取并行处理固态记录装置的存取并行处理流程图。
在本实施例中,如图9所示,步骤ST40对应本发明内容的步骤(4),步骤ST51对应本发明内容的步骤5.1),步骤ST521~522对应本发明内容的步骤5.2),步骤ST531~532对应本发明内容的步骤5.3),步骤ST54~ST56对应本发明内容的步骤5.4)、5.5)、5.6),步骤ST571~572对应本发明内容的步骤5.7),步骤ST58对应本发明内容的步骤5.8),步骤ST591~592对应本发明内容的步骤5.9),步骤ST5100对应本发明内容的步骤5.10),步骤ST5111~ST5113对应本发明内容的步骤5.11),步骤ST5120对应本发明内容的步骤5.12),步骤ST5131~ST5132对应本发明内容的步骤5.13),步骤ST5140对应本发明内容的步骤5.14)。
需要说明的是,本实施例中,LBA={LB[10:0],LP[6:0],LCH[1:0]},PBA={PCH[1:0],PB[11:0](8×16),PP[6:0]},对于图7所述固态记录***,除主***控制卡701外,需要关闭掉***控制卡711、……781的LA/LBA生成器。在执行步骤ST531~532时,采用四通道均衡写入策略,其具体方法如图6(A)所示,对写LBA进行二次地址映射,其具体方法如图6(B)所示,二次寻址所用块地址BA={PCH[1:0],LB[10:0],Row[2:0],Col[2:0]},其寻址单元包含同一个die中分属不同plane的2个块的索引;在执行步骤ST591~592时,对写LBA进行二次地址映射,其具体方法如图6(C)所示。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (1)

1.一种利用固态记录装置进行存取实时并行处理的方法,其特征在于,包括以下步骤:
(1)、***参数加载,寄存器初始化
上电后,单板机上的管理软件从***控制卡、固态存储卡的配置存储器获得配置参数,配置到***控制卡的相应寄存器,初始化***控制卡的LA/LBA生成器、固态存储卡的四通道写次数寄存器组,如果需要执行坏块检测与块擦除处理,执行步骤(2),如果不需要,执行步骤(4);
(2)、固态存储卡进行坏块检测处理
2.1)、管理软件对每个固态存储卡进行坏块检测,获得每个固态存储卡的坏块列表,生成坏块列表文件,如果不需要执行擦除操作,执行步骤2.3),如果需要执行擦除操作,执行步骤2.2);
2.2)、管理软件对需要擦除的固态存储卡上各晶元的块执行擦除操作,如果某块的擦除操作失败,在该块的第一页的备用区建立坏块标记,如果所有需要执行擦除操作的固态存储卡的擦除操作完成,返回执行步骤2.1);
2.3)、根据固态存储卡的坏块列表文件,获得各晶元每个plane中的有效块数,如果单个晶元中的有效块数小于最小标称有效块数Valid Block Number,NVB,则需要更换闪存,操作结束;如果不是,确定出固态存储卡的有效块数,计算固态存储卡的容量,并写入***控制卡的固态存储卡容量寄存器组,执行步骤(3);
(3)、创建固态存储卡块映射表
3.1)、同plane的块一次重映射:采用倒序映射策略,将每个通道的闪存阵列各晶元中每个plane的坏块重新映射到同plane的物理好块,获得固态存储卡上全部晶元的块一次映射表,保存为块一次映射表文件;
3.2)、面向逻辑区块寻址的块二次映射:根据块一次映射表,将每个逻辑区块映射到包含区块内所有物理块编号的物理区块,形成块映射表,保存为文件;
(4)、加载块映射表:管理软件通过管理接口将块映射表写入固态存储卡的块映射表;
(5)、采集与回放的存取并行处理
5.1)、建立数据分流/聚合的板级链路:对于多个固态记录装置构建的固态记录***,关闭从***控制卡的LA/LBA生成器,根据采集回放速率和存储卡读写速率的倍数关系确定RAID0的分流固态存储卡个数,再根据是否需要冗余备份,设定RAID 0、RAID 1或RAID 10的分流/聚合链路,如果是单一记录操作,单板机使能***控制卡、固态存储卡的数据接收通道,执行步骤5.2),如果是单一回放操作,执行步骤5.6),如果在执行记录任务的同一时刻执行回放操作,则并行执行步骤5.2)和5.6);
5.2)、采集数据接收与帧格式化:***控制卡接收采集外设发送过来的数据,每接收到一个区块的数据,执行LBA=LBA+1,根据RAID模式、固态存储卡容量,确定目标固态存储卡;***控制卡形成写操作数据帧,通过高速存取通信接口传输给目标固态存储卡;
5.3)、固态存储卡接收到***控制卡发送过来的写指令帧时,对写LBA进行二次地址映射:
5.3.1)写LBA映射为LBA_1:固态存储卡从写指令帧中分离出写LBA,并检测四通道的读写忙状态,根据多通道均衡写策略,从空闲通道中确定写通道,将被写通道标记为写忙,得到写LBA的一次映射地址LBA_1,并将其记录到逻辑区块映射表,执行步骤5.3.2);
5.3.2)LBA_1映射为PBA:根据LBA一次映射地址LBA_1对块映射表进行二次寻址,获得一个逻辑区块内所有物理块的索引,得到物理区块地址PBA,进行步骤5.4);
5.4)、存储卡接收到***控制卡发送过来的写数据帧,将用户数据放入缓冲区,依次将物理区块地址PBA和用户数据发送到该通道的闪存阵列控制器,对M×N晶元阵列执行M级流水线写操作,当对最后一行晶元发出编程指令后,不论其编程是否完成,将该通道标记为空闲,执行步骤5.5),同时,闪存阵列控制器监控编程状态,编程期间如果发生错误,确认发生错误的块,以中断方式通知单板机,更新坏块列表文件,读写并行处理控制器将LBA_1的最高位作坏块标记;
5.5)、***控制卡检查最新写LBA是否已经达到记录装置的***容量,如果已经达到,结束记录处理;如果没有达到,再检查是否已接收到停止记录指令,如果没接收到停止记录指令,执行步骤5.2),如果接收到停止记录指令,将最新写LBA更新到配置存储器,结束记录处理;
5.6)、单板机预先设置读偏移地址,或***在执行写操作的过程中,单板机随机设置读逻辑地址LA,读取其长度,将读LA除以LBA的余数来初始化高速缓冲的读指针,当满足读取条件时,启动读操作,执行步骤5.7);
5.7)、检查读操作的偏移地址是否小于等于2个逻辑区块的大小:
5.7.1)、如果读操作的偏移地址小于等于2个逻辑区块的大小,***控制卡根据高速缓存读指针,读取高速缓存中的数据发送给回放外设,每读取一个逻辑区块的数据,检查是否达到读取长度或接收到停止读指令,如果不是,继续读取高速缓中的数据存进行回放,如果是,结束回放处理;
5.7.2)、如果读操作的偏移地址大于2个逻辑区块的大小,***控制卡将LBA、读取长度打包为读指令帧,检查写指令帧或写数据帧是否正在发送,如果是,等待其完成,如果不是,则发送读指令帧和数据帧到目标固态存储卡,执行步骤5.8);
5.8)、固态存储卡监听接收读指令帧,从中分离出读LBA,初始化读LBA寄存器,执行步骤5.9);
5.9)、执行读LBA到PBA的二次映射操作:
5.9.1)、使用读LBA对逻辑区块映射表进行寻址,获得一次映射LBA_1,将被读通道标记为读忙,执行步骤5.9.2);
5.9.2)、对LBA_1进行二次映射,获得一个逻辑区块内的所有物理块编号,得到PBA,并行地,进行步骤5.10)、5.11);
5.10)、使LBA+1,获取LBA+1的一次映射LBA_1,据此确定预读通道,并将其标记为下一次读忙;
5.11)、检查被读通道是否空闲,如果被读通道处于写忙,等待,如果被读通道空闲,将PBA发送到被读通道的闪存阵列控制器,对该通道的闪存阵列执行多级流水线读操作;形成读响应帧和读数据帧,通过固态存储卡的高速存取接口发送给***控制卡;当对最后一行晶元的读操作完成后,将该通道标记为空闲,执行步骤5.12);
5.12)、固态存储卡检查是否达到读取长度或接收到停止回放指令,如果是,固态存储卡清空读操作有关的寄存器,结束读取操作,如果不是,固态存储卡将LBA+1推入读LBA寄存器,执行步骤5.9);
5.13)、***控制卡监听接收固态存储卡发送过来的读响应帧和读数据帧,如果是RAID1或RAID 10模式,检查互为镜像的2个固态存储卡同时发来的读响应帧所标示的区块好坏,选择正确的固态存储卡数据,存入高速缓存;***控制卡读取高速缓存中的数据,并将数据发送给回放外设,执行步骤5.14);
5.14)、***控制卡检查是否接收到单板机发送过来的停止回放指令,如果没接收到停止回放命令,执行步骤5.13),如果接收到停止回放指令,则向固态存储卡发送停止回放指令,回放处理结束;
结束处理;
其中,所述的多通道均衡写策略为:
在执行以逻辑区块为单位的写操作时,若没有读操作发生,则固态存储卡有四个通道处于空闲状态,如果同时有读操作发生,会有2个通道分别处于读忙、下一次读忙状态,则固态存储卡有二个通道处于空闲状态,从空闲通道选择一个写次数最少的通道,当写次数相同时,选择通道序号最小的通道,作为当前执行写操作的通道,这使得写操作是围绕四个通道轮转的,连续写入同一个通道的情况不会发生,同样,连续两次读取相同通道的情况也不会发生,使得读操作和写操作避开了对临界资源的竞争;面向多通道均衡写策略,固态记录装置的LBA定义为LBA={LB,LP,LCH},其中,LB、LP、LCH,分别为逻辑块索引、逻辑页索引、逻辑通道索引,LBA的低位为逻辑通道索引,体现多通道均衡写;
其中,所述的写LBA映射为LBA_1的一次映射为:
将一次映射定义为LBA_1={PCH,LB,PP},其中,PCH、LB、PP,分别为物理通道索引、逻辑块索引、物理页索引,{LB,PP}定义为该通道写次数NWR,根据多通道均衡写策略,当空闲通道的写次数相同时,选择通道序号最小的通道,使该通道的写次数NWR+1,得到LBA_1={物理通道索引,通道写次数}={PCH,LB’,PP’},将其存入逻辑区块映射表存储器;
其中,所述的LBA_1映射为PBA为:
对于步骤5.3.2)、5.9.2),在固态存储卡获得一次映射LBA_1={PCH,LB,PP}后,使用{PCH,LB,Row,Col}对块映射表存储器进行访问,获得通道PCH中闪存阵列的逻辑块索引LB所对应的M×N晶元阵列各物理块索引PB,最终获得物理区块地址PBA={PCH,PB(M×aN),PP},其中,Row≤M,Col≤N分别为区块中晶元的行索引和列索引,a为每个晶元中的plane个数。
CN201510188733.7A 2015-04-20 2015-04-20 一种存取实时并行处理的固态记录装置及方法 Expired - Fee Related CN104809075B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510188733.7A CN104809075B (zh) 2015-04-20 2015-04-20 一种存取实时并行处理的固态记录装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510188733.7A CN104809075B (zh) 2015-04-20 2015-04-20 一种存取实时并行处理的固态记录装置及方法

Publications (2)

Publication Number Publication Date
CN104809075A CN104809075A (zh) 2015-07-29
CN104809075B true CN104809075B (zh) 2017-09-12

Family

ID=53693915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510188733.7A Expired - Fee Related CN104809075B (zh) 2015-04-20 2015-04-20 一种存取实时并行处理的固态记录装置及方法

Country Status (1)

Country Link
CN (1) CN104809075B (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
CN105243037B (zh) * 2015-09-25 2018-07-03 中国船舶重工集团公司第七二六研究所 基于fpga的多通道数据记录与回放方法
CN106933768A (zh) * 2015-12-29 2017-07-07 北京中和卓远科技有限公司 机载以太网高速并行记录装置
KR102531741B1 (ko) * 2016-01-12 2023-05-11 삼성전자 주식회사 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법
CN106205733B (zh) * 2016-07-12 2019-09-06 北京兆易创新科技股份有限公司 一种Multi-plane结构非易失性存储器的块修复方法和装置
KR102229013B1 (ko) * 2016-09-02 2021-03-17 삼성전자주식회사 자동 스트림 검출 및 할당 알고리즘
CN107870731B (zh) * 2016-09-23 2021-07-27 伊姆西Ip控股有限责任公司 独立盘冗余阵列***的管理方法和电子设备
CN107045424B (zh) * 2016-10-31 2020-11-20 航天东方红卫星有限公司 小卫星固态存储器分时复用管理读写文件方法
CN109582215B (zh) * 2017-09-29 2020-10-09 华为技术有限公司 硬盘操作命令的执行方法、硬盘及存储介质
TWI645289B (zh) * 2017-10-31 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
CN109857330B (zh) * 2017-11-30 2022-02-15 宜鼎国际股份有限公司 数据存取效率的预估方法
CN108196849A (zh) * 2018-01-12 2018-06-22 江苏华存电子科技有限公司 一种低延迟指令调度器
CN108595110B (zh) * 2018-03-07 2021-12-14 深圳忆联信息***有限公司 一种利用Nand特性提高读性能的方法及固态硬盘
CN108733324B (zh) * 2018-05-25 2021-11-09 郑州云海信息技术有限公司 一种固态硬盘的数据读写方法、装置、设备及存储介质
CN108898036B (zh) * 2018-06-20 2021-06-29 南京沁恒微电子股份有限公司 一种数据读写控制方法
TWI668575B (zh) * 2018-07-26 2019-08-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN109344093B (zh) * 2018-09-13 2022-03-04 苏州盛科通信股份有限公司 缓存结构、读写数据的方法和装置
CN110109872B (zh) * 2019-04-29 2021-12-07 北京空间飞行器总体设计部 一种遥感卫星异构数据统一存储管理装置
CN110096235B (zh) * 2019-04-30 2020-06-30 自然资源部第一海洋研究所 一种面向自容式应用的数据存储方法及存储***
CN110457233A (zh) * 2019-08-10 2019-11-15 深圳市德名利电子有限公司 一种基于混合大小单元的闪存管理方法和装置以及设备
US11042481B1 (en) * 2019-12-19 2021-06-22 Micron Technology, Inc. Efficient processing of commands in a memory sub-system
CN111312309B (zh) * 2020-01-10 2023-05-02 电子科技大学 一种提升铁电存储器读写次数的电路结构
CN113641597B (zh) * 2020-04-27 2024-07-12 慧荣科技股份有限公司 管理数据存储的方法及装置以及计算机可读取存储介质
CN111949681A (zh) * 2020-06-22 2020-11-17 中科驭数(北京)科技有限公司 数据的聚合处理装置、方法和存储介质
TWI760884B (zh) * 2020-07-16 2022-04-11 慧榮科技股份有限公司 主機效能加速模式的資料讀取方法及裝置
US11544185B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11544186B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11429545B2 (en) 2020-07-16 2022-08-30 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
CN111813709B (zh) * 2020-07-21 2023-08-08 北京计算机技术及应用研究所 一种基于fpga存算一体架构的高速并行存储方法
CN112000296B (zh) * 2020-08-28 2024-04-09 北京计算机技术及应用研究所 一种全闪存阵列中的性能优化***
CN112491979B (zh) * 2020-11-12 2022-12-02 苏州浪潮智能科技有限公司 一种网卡数据包缓存管理方法、装置、终端及存储介质
CN112732199B (zh) * 2021-01-28 2023-07-04 群联电子股份有限公司 数据存取方法、存储器控制电路单元及存储器存储装置
CN113918502B (zh) * 2021-09-17 2024-03-15 北京控制工程研究所 一种便携式监听型数据记录仪
CN113783762B (zh) * 2021-09-30 2023-04-07 山东云海国创云计算装备产业创新中心有限公司 一种数据传输方法、***、存储介质及设备
CN113900593A (zh) * 2021-10-12 2022-01-07 天津津航计算技术研究所 一种s.m.a.r.t.信息自动预警的raid控制卡架构
CN117153831B (zh) * 2023-09-26 2024-05-31 湖南融创微电子有限公司 一种闪存芯片及控制方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2225062Y (zh) * 1994-04-11 1996-04-17 岳建华 智能多通道免维护无纸无笔模拟顺序记录仪
US6823423B1 (en) * 1999-06-08 2004-11-23 Siemens Energy & Automation, Inc. Methods for interfacing components and for writing and reading a serial data stream to and from a component associated with a parallel data stream
CN201741018U (zh) * 2010-05-28 2011-02-09 四川大学 可通过并行总线集成分布***的单板录波器
CN102722463A (zh) * 2012-05-11 2012-10-10 蔡远文 基于cPCI总线的多类型信息采集处理***
CN203673065U (zh) * 2013-12-25 2014-06-25 中国船舶重工集团公司第七0九研究所 一种多功能的雷达信号发生检测装置
CN104331282A (zh) * 2014-10-28 2015-02-04 电子科技大学 一种无线电产品可重构综合开发测试***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2225062Y (zh) * 1994-04-11 1996-04-17 岳建华 智能多通道免维护无纸无笔模拟顺序记录仪
US6823423B1 (en) * 1999-06-08 2004-11-23 Siemens Energy & Automation, Inc. Methods for interfacing components and for writing and reading a serial data stream to and from a component associated with a parallel data stream
CN201741018U (zh) * 2010-05-28 2011-02-09 四川大学 可通过并行总线集成分布***的单板录波器
CN102722463A (zh) * 2012-05-11 2012-10-10 蔡远文 基于cPCI总线的多类型信息采集处理***
CN203673065U (zh) * 2013-12-25 2014-06-25 中国船舶重工集团公司第七0九研究所 一种多功能的雷达信号发生检测装置
CN104331282A (zh) * 2014-10-28 2015-02-04 电子科技大学 一种无线电产品可重构综合开发测试***

Also Published As

Publication number Publication date
CN104809075A (zh) 2015-07-29

Similar Documents

Publication Publication Date Title
CN104809075B (zh) 一种存取实时并行处理的固态记录装置及方法
CN103635968B (zh) 包含存储器***控制器的设备和相关方法
CN104951412B (zh) 一种通过内存总线访问的存储装置
CN102622189B (zh) 存储虚拟化的装置、数据存储方法及***
CN104731717B (zh) 存储器装置及存储器管理方法
US8681552B2 (en) System and method for accessing and storing interleaved data
CN103959258B (zh) 背景重排序——具有有限开销的预防性的磨损控制机制
US8806151B2 (en) Multipage preparation commands for non-volatile memory systems
JP2012513647A (ja) 管理型不揮発性メモリのアドレスマッピングのためのアーキテクチャー
US8060696B2 (en) Positron emission tomography event stream buffering
WO2010129305A1 (en) Low latency read operation for managed non-volatile memory
CN103218270B (zh) 具有多个固态盘的计算机
CN106990921B (zh) 数据写入方法、存储器存储装置与存储器控制电路单元
CN105867840A (zh) 闪存组件及非易失性半导体存储器组件
CN105528299B (zh) 读取命令排程方法以及使用该方法的装置
CN108153482A (zh) Io命令处理方法与介质接口控制器
CN102214482A (zh) 高速大容量固态电子记录器
CN102360342A (zh) 海量影像数据快速存储显示固态硬盘
CN106681932A (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
CN106469126A (zh) 处理io请求的方法及其存储控制器
CN107066202A (zh) 具有多个固态盘的存储设备
US9245613B2 (en) Storage interface apparatus for solid state drive tester
CN107807788A (zh) 多平面闪存的数据组织方法与装置
CN107797938A (zh) 加快去分配命令处理的方法与存储设备
CN108877862A (zh) 页条带的数据组织以及向页条带写入数据的方法与装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170912

Termination date: 20200420

CF01 Termination of patent right due to non-payment of annual fee