CN112000595B - 一种阵列通道控制系统、方法、控制器、存储介质及应用 - Google Patents

一种阵列通道控制系统、方法、控制器、存储介质及应用 Download PDF

Info

Publication number
CN112000595B
CN112000595B CN202010642951.4A CN202010642951A CN112000595B CN 112000595 B CN112000595 B CN 112000595B CN 202010642951 A CN202010642951 A CN 202010642951A CN 112000595 B CN112000595 B CN 112000595B
Authority
CN
China
Prior art keywords
interface
nand flash
nandflash
data
control
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
Application number
CN202010642951.4A
Other languages
English (en)
Other versions
CN112000595A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202010642951.4A priority Critical patent/CN112000595B/zh
Publication of CN112000595A publication Critical patent/CN112000595A/zh
Application granted granted Critical
Publication of CN112000595B publication Critical patent/CN112000595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明属于网络交换数据传输技术领域,公开了一种阵列通道控制系统、方法、控制器、存储介质及应用,通道控制模块用于产生NandFlash接口控制器所需要的FlashChip自定义底层命令,与NandFlash的数据交互所需要的缓存以及数据的管理机制也在其内,控制四个物理通道;NANDFLASH接口控制用于用于实现底层的NandFlash物理接口操作,实现与NandFlashChip的物理接口交互时序。本发明利用32bit存储单元并发工作,解决了NANDFLASH异步模式下数据吞吐量不足的问题,使得交换机侧NANDFLASH接口数据吞吐量达到3Gbps,完全可以满足针对的星载交换机存储数据的要求。

Description

一种阵列通道控制系统、方法、控制器、存储介质及应用
技术领域
本发明属于网络交换数据传输技术领域,尤其涉及一种阵列通道控制系统、方法、控制器、存储介质及应用。
背景技术
目前,在宇宙空间中,星与星间或星与地间的网络交换数据传输将受到许多干扰因素的影响,容易出现网络断开的现象,即数据报文将在DTN(时延容忍网络)中传输,这可以通过将报文存储下来并在两个节点建立端到端路径后再发送来提高报文发送的成功率。另一方面,卫星无法每时每刻都保持在卫星观测站的观测范围内,因此需要通过馈电电路发往地面的数据很可能不能及时传输,需要暂时存储在星载交换系统内。以上问题的解决都需要星载交换机能够将数据存储在大容量的NANDFLASH中。因此需要有适用于与交换机对接的NANDFLASH控制器来将交换机需要存储的数据存入NANDFLASH中。
目前NANDFLASH控制器使用的方式一般为:一个控制器下挂载多片NANDFLASH,而一个存储系统中又有多个控制器组成多通道,通过多通道并发的方式提高NANDFLASH存储效率。对于一般NANDFLASH控制器,其工作步骤为:(1)接收自定义的NANDFLASH控制器操作命令。(2)控制器解析NANDFLASH控制器操作命令。(3)控制器将NANDFLASH控制器操作命令转换成NANDFLASH芯片接口命令时序(例如ONFI或者TOGGLE接口协议时序)。(4)控制器监测NANDFLASH芯片的命令执行状态。(5)控制器将NANDFLASH芯片完成命令的情况返回给前级控制模块。
一般来说,一个通道下有一个NANDFLASH控制器,一个NANDFLASH控制器下挂载4片NANDFLASH芯片,每片NANDFLASH芯片有4个Target对应4个CE信号,一次NANDFLASH操作仅操作1个CE对应的Target。即,一个NANDFLASH通道的一次操作仅会操作一片NANDFLASH芯片中的1个CE,其总线位宽为8bit。NANDFLASH控制器接口一般为CPU总线接口例如AXI、LocalBus,因为通常需要由CPU软件来对NANDFLASH进行控制管理。
在现有技术中,通常使用NANDFLASH的同步模式,采用上下边沿采样(DDR)以提高NANDFLASH接口传输吞吐量。然而在航天卫星系统中由于对可靠性的严格要求,需要使用异步模式,这就造成了如果继续使用8bit数据总线会使得NANDFLASH数据接口吞吐量较低。另外,在现有技术的存储操作中,一般由CPU对需要写入NANDFLASH的数据进行分配,而对于星载交换系统所需的NANDFLASH存储来说无法使用CPU来对数据进行分配以及对控制器下达命令。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有技术使用NAND FLASH的同步模式,采用上下边沿采样(DDR)以提高NANDFLASH接口传输吞吐量,在航天卫星系统中使用异步模式,造成如果继续使用8bit数据总线使得NANDFLASH数据接口吞吐量较低。
(2)在现有技术的存储操作中,对于星载交换系统所需的NAND FLASH存储来说无法使用CPU对数据进行分配以及对控制器下达命令。
解决以上问题及缺陷的难度为:异步模式吞吐量不足的问题无法再通过类似提升时钟频率的简单方式来解决,而若仅将Flash器件的异步操作周期设置为最短的20ns档位则依然无法达到满意的效果,此问题解决起来具有一定难度。无CPU配合的存储要解决到和有CPU配合一样的效果是十分困难的,因此要进行实现难度与实现效果上的折中。尽管如此,基于纯硬件的坏块管理、上电自恢复以及存储地址的分配也依然存在着相当的难度。
解决以上问题及缺陷的意义为:解决了异步模式吞吐量不足的问题后,可以较好的在高可靠性的基础上使用具有较高存储速率的存储系统,这将大幅提升星载交换系统的存储真实可用性能。实现无CPU配合的存储后,可以将其部署在各类型的交换系统中作为板载大容量非易失存储,由于其摆脱了需要CPU这一条件,因此可以更方便、更低成本的使用NAND FLASH存储。
发明内容
针对现有技术存在的问题,本发明提供了一种阵列通道控制系统、方法、控制器、存储介质及应用。
本发明是这样实现的,一种阵列通道控制器,所述阵列通道控制器包括:
通道控制模块,分别于第一NANDFLASH接口控制、第二NANDFLASH接口控制、第三NANDFLASH接口控制和第四NANDFLASH接口控制相连接;用于产生Nand Flash接口控制器所需要的Flash Chip自定义底层命令,与Nand Flash的数据交互所需要的缓存以及数据的管理机制也在其内,控制四个物理通道;
第一NANDFLASH接口控制、第二NANDFLASH接口控制、第三NANDFLASH接口控制和第四NANDFLASH接口控制,用于实现底层的Nand Flash物理接口操作,实现与Nand FlashChip的物理接口交互时序协议为ONFI2.2。
进一步,所述第一NANDFLASH接口控制用于实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND0、NAND1、NAND2、NAND3;
所述第二NANDFLASH接口控制用于实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND4、NAND5、NAND6、NAND7;
所述第三NANDFLASH接口控制用于实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND8、NAND8、NAND10、NAND11;
所述第四NANDFLASH接口控制用于实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND12、NAND13、NAND14、NAND15。
进一步,所述阵列通道控制器还包括组帧模块;
组帧模块与所述通道控制模块相连接;
所述组帧模块用于把从接口SRAM读出的帧长不定的交换机一般数据帧进行组帧,组成有利于存入NANDFLASH的定长帧;
还包括SRAM;
SRAM与所述通道控制模块相连接;
所述SRAM用于缓存从交换机接口发送缓存中读取出的交换机一般数据帧,减少FPGA片内缓存的占用;
还包括拆帧模块;
拆帧模块与所述通道控制模块相连接;
所述组拆模块用于将从NANDFlash中读出的定长帧拆解,重新恢复成交换机一般数据帧,并写入交换机接口接收缓存,使得交换机获得读取到的NANDFLASH数据。
进一步,所述阵列通道控制器的负责实现底层的NandFlash物理接口操作,实现与NandFlashChip的物理接口交互时序,协议为ONFI2.2;其内还包含ECC引擎模块用于ECC编码与校验纠错。
本发明的另一目的在于提供一种运行所述阵列通道控制器的阵列通道控制系统,所述阵列通道控制系统包括:
控制指令产生模块,用于产生Nand Flash接口控制器所需要的Flash Chip自定义底层命令。
NANDFLASH接口控制模块,用于实现底层的Nand Flash物理接口操作,实现与NandFlash Chip的物理接口交互时序。
本发明的另一目的在于提供一种运行所述阵列通道控制系统的阵列通道控制方法,所述阵列通道控制方法包括:
产生NAND FLASH接口控制所需要的FLASH自定义底层命令、将待写入的数据分发至下属的四个不同的NAND FLASH接口控制以及将下属的四个不同的NAND FLASH接口控制读取的数据收集;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND0、NAND1、NAND2、NAND3;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND4、NAND5、NAND6、NAND7;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第三NAND FLASH接口控制用于控制NAND8、NAND8、NAND10、NAND11;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第四NAND FLASH接口控制用于控制NAND12、NAND13、NAND14、NAND15。
进一步,所述阵列通道控制方法包括:
写入数据时将从接口SRAM读出的帧长不定的交换机一般数据帧进行组帧,组成有利于存入NANDFlash的定长存储帧;
将交换机接口发送缓存中的数据放置在FPGA片外SRAM中,减少片内存储资源占用;
读取数据时将定长存储帧拆帧,恢复为交换机一般数据帧,并按原存储顺序重新写入交换机接口的接收缓存中。
进一步,所述阵列通道控制方法包括:
根据自定义底层FLASH命令转换为NANDFLASH接口读写时序,驱动NANDFLASH芯片工作,写入与读取数据,检查状态。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
产生NAND FLASH接口控制所需要的FLASH自定义底层命令、将待写入的数据分发至下属的四个不同的NAND FLASH接口控制以及将下属的四个不同的NAND FLASH接口控制读取的数据收集;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND0、NAND1、NAND2、NAND3;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND4、NAND5、NAND6、NAND7;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第三NAND FLASH接口控制用于控制NAND8、NAND8、NAND10、NAND11;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第四NAND FLASH接口控制用于控制NAND12、NAND13、NAND14、NAND15。
本发明的另一目的在于提供一种星与星间或星与地间的网络交换数据传输系统,所述星与星间或星与地间的网络交换数据传输系统安装有所述阵列通道控制器。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:由于星载交换机的特殊工作环境,难以保证在同步模式下使用NAND FLASH的可靠性,因此提高异步模式的NAND FLASH存储速率就成为了需要解决的问题。本发明使用四个物理通道并发工作各操作一片NAND FLASH的方式,将NAND FLASH存储实际数据总线位宽从8bit扩展为32bit,同工作频率下数据吞吐量增加3倍。当单NAND FLASH阵列通道控制器工作在典型工作频率(100MHz)下时,NAND FLASH接口数据写入速率可达到1.5Gbps,读取速率可达到1.2Gbps。完全可以满足本发明针对的星载交换机存储数据的要求。
本发明的NAND FLASH阵列通道控制器的接口对交换机十分友好,且无需像现有技术一样需要CPU软件参与控制工作,所有操作由硬件实现。交换机可以把数据转发至相应的接口,存入其接口发送缓存FIFO,即可使用此控制器的写入功能;交换机置位读取使能,控制器即会开始读取NAND FLASH,并将恢复好的一般数据帧写入交换机的接收缓存,交换机即可转发这些一般数据帧了。因此对于交换机来说并未改变接口结构,容易进行集成。
一般单通道NAND FLASH控制器操作位宽为8bit,而本发明中将单通道位宽扩展至32bit,增加了单通道总线传输的速率。在一个物理通道下有4片NAND FLASH,对于一个物理通道来说操作位宽依然为8bit,但是本发明中每次逻辑通道的操作都会使四个物理通道并行工作,这样对于逻辑通道来说操作位宽即为32bit,将8bit成功扩展至32bit。与其他位宽扩展NAND FLASH控制器(例如CN 206557758 U)不同的是,他们采用的是一个物理通道下并行操作4片NAND FLASH,也就是将一组NAND FLASH接口信号同时给到4片NAND FLASH,这将会带来4片NAND FLASH信号间同步的问题,而本发明同时并行使用4个接口控制器各操作一片NAND FLASH,又通过通道控制器将四个物理通道的数据进行收集并缓存来完成控制器间的数据同步。
本发明使用了片外SRAM作为NAND FLASH写入的缓冲区,降低FPGA片内存储资源消耗。在将交换机接口发送缓存数据读出后,会将数据存储入SRAM,这是由于NAND FLASH页通常较大(例如8KByte),而需要片内存储缓存多页的数据则需要消耗较大的宝贵的存储资源,而本发明中使用片外SRAM来缓存多页数据可以大大的节省片内存储资源
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的阵列通道控制方法流程图。
图2是本发明实施例提供的阵列通道控制器的整体结构框图。
图3是本发明实施例提供的单NANDFLASH控制器与所挂载的4个NANDFLASH的连接关系图。
图4是本发明实施例提供的与所挂载的4个32bit存储单元的16个NANDFLASH的连接关系图。
图5是本发明实施例提供的定长存储帧的帧结构示意图。
图6是本发明实施例提供的NANDFLASH接口控制写页面操作时序示意图。
图7是本发明实施例提供的NANDFLASH接口控制读页面操作时序示意图。
图8是本发明实施例提供的示例使用时的结构框图。
图9是本发明实施例提供的交换机写入NANDFLASH操作流程图。
图10是本发明实施例提供的交换机读取NANDFLASH操作流程图。
图11是本发明实施例提供的定长存储帧独立存储示意图。
图12是本发明实施例提供的定长存储帧分散存储示意图。
图13是本发明实施例提供的为一个32bit存储单元进行写入(左列波形)、读取(右列波形)时的仿真图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种阵列通道控制系统、方法、控制器、存储介质及应用,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的阵列通道控制方法包括以下步骤:
S101:产生NANDFLASH接口控制所需要的FLASH自定义底层命令、将待写入的数据分发至下属的四个不同的NANDFLASH接口控制以及将下属的四个不同的NANDFLASH接口控制读取的数据收集;
S102:解析FLASH自定义底层命令、对数据进行ECC编码解码校验、驱动NANDFLASH接口并根据实际进行的操作提供相应的接口命令时序;
S103:定义一个逻辑通道下分为四个物理通道,每次操作在四个物理通道下个操作一个NANDFLASH芯片,进行总线位宽为32bit的数据传输,每次的32bit中4个8bit数据通道定义为一个32bit存储单元。
本发明提供的阵列通道控制方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的阵列通道控制方法仅仅是一个具体实施例而已。
本发明提供的阵列通道控制系统包括:
控制指令产生模块,用于产生Nand Flash接口控制器所需要的Flash Chip自定义底层命令。
NANDFLASH接口控制模块,用于实现底层的Nand Flash物理接口操作,实现与NandFlash Chip的物理接口交互时序(协议为ONFI2.2)。
下面结合附图对本发明的技术方案作进一步的描述。
如图2所示,本发明的大容量扩展位宽的NANDFLASH阵列通道控制器,包括通道控制模块、第一NANDFLASH接口控制、第二NANDFLASH接口控制、第三NANDFLASH接口控制和第四NANDFLASH接口控制。
通道控制模块分别于第一NANDFLASH接口控制、第二NANDFLASH接口控制、第三NANDFLASH接口控制和第四NANDFLASH接口控制相连接。
通道控制模块用于当检测到组帧模块发来的数据时,将收到的定长存储帧按顺序放入四个写数据缓存FIFO中,这四个写数据缓存FIFO对应四个NANDFLASH接口控制,也就是四个物理通道,而通道控制本身则作为一个逻辑通道,它还将向四个物理通道下达自定义底层FLASH命令,并在读取数据时将四个物理通道读取的数据分别放入各自对应的读数据缓存FIFO中并按顺序将数据读出递交给拆帧模块。
如图2所示,第一NANDFLASH接口控制用于作为第一物理通道的控制器,其下挂载了NAND0、NAND1、NAND2、NAND3这四片NANDFLASH芯片,NANDFLASH接口控制通过NANDFLASH接口总线对NANDFLASH输出ONFI2.2协议异步模式所规定的总线时序,驱动着挂载的NANDFLASH工作。
如图2所示,第二NANDFLASH接口控制用于作为第一物理通道的控制器,其下挂载了NAND4、NAND5、NAND6、NAND7这四片NANDFLASH芯片,NANDFLASH接口控制通过NANDFLASH接口总线对NANDFLASH输出ONFI2.2协议异步模式所规定的总线时序,驱动着挂载的NANDFLASH工作。
如图2所示,第三NANDFLASH接口控制用于作为第一物理通道的控制器,其下挂载了NAND8、NAND9、NAND10、NAND11这四片NANDFLASH芯片,NANDFLASH接口控制通过NANDFLASH接口总线对NANDFLASH输出ONFI2.2协议异步模式所规定的总线时序,驱动着挂载的NANDFLASH工作。
如图2所示,第四NANDFLASH接口控制用于作为第一物理通道的控制器,其下挂载了NAND12、NAND13、NAND14、NAND15这四片NANDFLASH芯片,NANDFLASH接口控制通过NANDFLASH接口总线对NANDFLASH输出ONFI2.2协议异步模式所规定的总线时序,驱动着挂载的NANDFLASH工作。
如图3所示,第一第二第三第四NANDFLASH接口控制各自挂载的四个NANDFLASH芯片共用8bit数据总线DQ、各个Target独立的16bit片选信号CE#,各个Target独立的16bit忙闲信号R/B#以及四片共用1bit命令锁存使能CLE、1bit地址锁存使能ALE、1bit写使能W#和1bit读使能R#。
如图4所示,大容量扩展位宽的NANDFLASH阵列通道控制器下的四个32bit存储单元各自有32bit数据总线DQ、各自有4bit片选CE#、各自有16bit忙闲信号R/B#、各自有4bit片选CE#、各自有4bit命令锁存使能CLE、各自有4bit地址锁存使能ALE、各自有4bit写使能W#、各自有4bit读使能R#。四个物理通道的CE#[15:0]按位与就得到了NANDFLASH阵列通道控制器输出给NANDFLASH芯片的CE#[15:0]。
大容量扩展位宽的NANDFLASH阵列通道控制器,还包括组帧模块。
组帧模块与通道控制模块相连接。
组帧模块用于检测SRAM中的数据量,并将SRAM中的数据也就是交换机一般数据帧取出后进行组帧,使多条帧组成一个定长存储帧,定长帧的帧长即为NANDFLASH一个页面的容量,并将组好的定长存储帧发送给通道控制,以供其放入写数据缓存FIFO。
如图5所示,定长存储帧帧格式中包括序号、子帧1偏移、子帧0剩余载荷、子帧1至子帧n的各子帧长度以及各子帧本体,通过序号记录子帧间的顺序关系,通过子帧1偏移确定子帧1长度字段在子帧中的位置,子帧0剩余载荷为上一定长存储帧未能完全装载的最后一个子帧的剩余部分。
大容量扩展位宽的NANDFLASH阵列通道控制器,还包括SRAM。
SRAM与通道控制模块相连接。
SRAM用于把交换机接口发送缓存中读取出的交换机一般数据帧再次缓存,此SRAM位于FPGA片外,且存储空间较FPGA片内存储空间要大许多,将交换机一般数据帧暂存在SRAM里等待组帧模块取出进行组帧。
大容量扩展位宽的NANDFLASH阵列通道控制器,还包括拆帧模块。
拆帧模块与通道控制模块相连接。
组拆模块用于根据定长存储帧的各帧字段,从定长存储帧中把各子帧即交换机一般数据帧取出恢复并排序,然后写入交换机接口接收缓存中。
本发明提供的大容量扩展位宽的NANDFLASH阵列通道控制器的方法,包括:
通道控制模块在交换机写入NANDFLASH方向上,将定长数据帧存入写缓存FIFO中,等到4个写缓存中定长数据总帧数据量达到4Pages=32KB,也就是4个写缓存各存8KByte,就可以开始进行Flash写入,四个NAND FLASH接口控制器发送自定义FLASH底层命令,其中操作码为80H。
通道控制模块在交换机读取NANDFLASH方向上,接收交换机发来的读取数据使能信号,随后向向四个NAND FLASH接口控制器发送自定义FLASH底层命令,其中操作码为00h,在收到四个物理通道读取来的数据时将数据分别放入四个读数据缓存FIFO中,等待数据读取完成后按物理通道序号顺序从读数据缓存FIFO中取出数据送往拆帧模块。
如图6所示,第一NANDFLASH接口控制、第二NANDFLASH接口控制、第三NANDFLASH接口控制、第四NANDFLASH接口控制对所挂载的NANDFLASH写操作相同:
步骤一:控制器向Flash发送命令周期1,命令码为80h。
步骤二:控制器向Flash发送5个周期操作地址,地址顺序为列地址—行地址。
步骤三:在发送完地址后,也就是从ALE恢复为低开始计算,至少经过70ns后,控制器可以开始发送数据。
步骤四:控制器向Flash发送1Page数据。
步骤五:数据发送完后,控制器向Flash发送命令周期2,命令码为10h。
步骤六:在发送完命令周期2后,从WE#的上升沿开始计算,最多经过100ns后,Flash芯片进入Busy状态。
步骤七:READ PAGE的编程时间(Busy时间)典型值为350us,之后Flash会恢复Ready状态。
步骤八:在Flash恢复Ready状态后,使用READ STATUS(70h)检查是否写入成功;
如图7所示,第一NANDFLASH接口控制、第二NANDFLASH接口控制、第三NANDFLASH接口控制、第四NANDFLASH接口控制对所挂载的NANDFLASH读操作相同:
步骤一:控制器向Flash发送命令周期1,命令码为00h。
步骤二:控制器向Flash发送5个周期操作地址,地址顺序为列地址—行地址。
步骤三:控制器向Flash发送命令周期2,命令码为30h。
步骤四:在发送完命令周期2后,从WE#的上升沿开始计算,最多经过100ns后,Flash芯片进入Busy状态。
步骤五:READ PAGE的操作时间(Busy时间)最多会持续35us,之后Flash会恢复Ready状态。
步骤六:在Flash恢复Ready状态后,至少要等待20ns,才可以拉低RE#,对Flash进行读取。
步骤七:对Flash进行读取,在数据总线DQ[7:0]上采样数据,最终得到1Page数据。
步骤八:READ PAGE命令完成。
本发明的大容量扩展位宽的NANDFLASH阵列通道控制器的方法,包括:
组帧模块当SRAM缓存的数据总位宽大于等于4page(8K*4Bytes)时,从SRAM中按位宽64bit读出数据帧,按定长存储帧帧帧格式进行组帧。在进行组帧时,需要从SRAM中读出1024个64bit数据来组成1page,其中,最后一个64bit数据的前32bit填充在本数据帧中,后32bit将在用于下一个数据帧组帧,规定SRAM中存储的数据为子帧头+子帧的格式,所以在组帧时,关键要确定上一子帧的剩余载荷量,从而就能确定子帧1偏移。在确定了帧头部以后,将从SRAM中取出的数据直接按顺序装载写入即可,通过累积偏移量计算方法,将立即得到本帧的剩余载荷量与下一帧的子帧1偏移量,即可用于下一帧帧头计算;
本发明的大容量扩展位宽的NANDFLASH阵列通道控制器的方法,还包括:
组拆模块用于拆帧模块从4个读数据缓存FIFO中按物理通道序号顺序读出数据,将每个FIFO中读出的前32位丢弃,即帧首部拆除,剩余载荷按顺序输出,每页数据按顺序进行拼接即可。
大容量扩展位宽的NANDFLASH阵列通道控制器的方法,可对NANDFLASH进行复位、擦除、读状态以及读写页操作。
示例性的,本发明的NAND FLASH阵列通道控制器单逻辑通道下可以挂载16片NANDFLASH,每片容量为256Gb,合计单通道总容量为4Tb。若使用双阵列通道控制器则可获得双逻辑通道共8Tb的存储容量,而且还可以一个通道进行写操作,一个通道进行读操作,进一步提升整体系统性能。
如图8所示,即为目前本发明在实现时使用的系统结构。采用双阵列通道控制器,即双逻辑通道,总存储容量8Tb,可以两个逻辑通道执行不同的读写任务,即可以同读同写也可以一读一写,二者相对独立工作。当NAND FLASH阵列通道控制器工作在典型工作频率(100MHz)下时,NAND FLASH接口数据吞吐量可达到3Gbps。完全可以满足本发明针对的星载交换机存储数据的要求,因为其接口速率为2.5Gbps。
如图9所示,当交换机要将一般数据帧写入NANDFLASH时有如下步骤:
步骤一:检测到交换机发送FIFO缓存为非空状态,将FIFO内数据读出,写入SRAM。
步骤二:组帧模块将SRAM中的部分数据读出,组成定长数据帧,定长帧中可以包含多条一般数据帧,或者是某一般数据帧的一部分。
步骤三:将定长数据帧存入写缓存FIFO中,等到4个写缓存中定长数据总帧数据量达到4Pages=32KB,也就是4个写缓存各存8KByte,就可以开始进行Flash写入。
步骤四:通道控制器向四个NAND FLASH接口控制器发送自定义FLASH底层命令。其中操作码为80H。
步骤五:NAND FLASH接口控制器根据自定义FLASH底层命令,首先向相应地址的NAND FLASH芯片发送写入页命令周期一80H,然后发送5字节的操作地址,再发送要写入的数据,最后发送写入页命令周期二10H。
步骤六:NAND FLASH芯片的R/B#信号电平先从高变为低,经过编程时间后重新回到高电平,代表写入页的编程操作已完成。
如图10所示,当交换机要将NANDFLASH中的数据读取出时有如下步骤:
步骤一:当交换机可以转发NAND FLASH中存储的数据时,置位NAND FLASH阵列通道控制器的读取使能。
步骤二:通道控制器向四个NAND FLASH接口控制器发送自定义FLASH底层命令。其中操作码为00h。
步骤三:NAND FLASH接口控制器根据自定义FLASH底层命令,首先向相应地址的NAND FLASH芯片发送读取页命令周期一00H,然后发送5字节的操作地址,最后发送读取页命令周期二30H。
步骤四:NAND FLASH芯片将执行读取页命令,期间R/B#将会变为低电平,并将数据输出至NAND FLASH自身的寄存器中,待输出完毕,R/B#重新回到高电平。
步骤五:NAND接口控制器检测到R/B#重新回到高电平,发起读操作,将数据从NANDFLASH的数据寄存器中读取出。并将数据写入通道控制器中对应物理通道的FIFO缓存中,每个物理通道都有一个专属的读数据FIFO缓存,大小为1Page=8Kbyte。
步骤六:拆帧模块从通道控制器中的读数据FIFO缓存中读出数据并将定长存储帧拆帧恢复成一般数据帧,写入交换机接口接收缓存中。随后交换机即可转发此一般数据帧。
如图11所示,32bit存储单元可以使用定长帧独立存储的方式来进行存储,即一个定长帧会完整的存储在于一个NANDFLASH页中。
如图12所示,32bit存储单元页可以使用定长帧分散存储的方式来进行存储,即一个定长帧会平均分配的存储在于一个32bit存储单元的4个NANDFLASH页中。
本发明中使用32bit存储单元时,每个8bit数据通道对应一条物理通道,每次并行写入4个定长存储帧各自对应一条物理通道。也就是说同一个定长存储帧会完整的存入一片NAND FLASH中的一个Page。这里的存储有两种方式:第一种称之为独立存储,第二种称之为分散存储。本发明最终采用的为独立存储方式。这是因为分散存储方式虽然可以令数据从获取到写入NAND FLASH的延时较小,但是由于将一个定长存储帧分散的存储在4片NANDFLASH中,一旦其中一片发生错误,则会造成错误扩散,损坏更多的数据。而独立存储方式需要等待4个定长存储帧均组帧完成才能真正开始写入NAND FLASH,延时较长,但是当发生错误时不会导致错误扩散,只需把出错的定长存储帧丢弃即可而不会影响到其他定长存储帧,显然可靠性更高。对于应用在DTN或是其他对可靠性要求较高的场景时,定长存储帧独立存储方式是更优的选择。
图13为一个32bit存储单元进行写入(左列波形)、读取(右列波形)时的仿真图,从上到下的四组波形对应4个NAND FLASH Target。写入操作中,每个Target写入了8KByte数据,总写入数据量为32KByte,总耗时约为170us,可计算得到写入速率为1525Mbps=1.5Gbps。读取操作中,从每个Target中读取8KByte数据,总读取数据量为32KByte,总耗时为228us,可计算得到读取速率为1212Mbps=1.2Gbps。且上图中从上往下数第二组波形的读写发起速度均要慢一些,但是并没有影响其他的3个Target的工作,这是因为没有简单的使用共用NAND Flash接口总线的原因,这样就有效的避免了Target之间工作同步的问题,在现有技术中使用的是4个Target共用NAND Flash接口总线的方法,那么各个Target就不是独立工作了,当某个Target的响应速度较慢时会拖累其他的Target工作。采用组帧为定长存储帧的方式,有利于对NAND FLASH页容量的充分利用,有利于读取时拆帧恢复一般数据帧,以及恢复一般数据帧的顺序关系
在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上;术语“上”、“下”、“左”、“右”、“内”、“外”、“前端”、“后端”、“头部”、“尾部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本发明领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

Claims (9)

1.一种阵列通道控制器,其特征在于,所述阵列通道控制器包括:
通道控制模块,分别于第一NANDFLASH接口控制、第二NANDFLASH接口控制、第三NANDFLASH接口控制和第四NANDFLASH接口控制相连接;用于产生Nand Flash接口控制器所需要的Flash Chip自定义底层命令,与Nand Flash的数据交互所需要的缓存以及数据的管理机制也在其内,控制四个物理通道;
第一NANDFLASH接口控制、第二NANDFLASH接口控制、第三NANDFLASH接口控制和第四NANDFLASH接口控制,用于实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序协议为ONFI2.2;
所述阵列通道控制器还包括组帧模块;
组帧模块与所述通道控制模块相连接;
所述组帧模块用于把从接口SRAM读出的帧长不定的交换机一般数据帧进行组帧,组成有利于存入NANDFLASH的定长帧;
还包括SRAM;
SRAM与所述通道控制模块相连接;
所述SRAM用于缓存从交换机接口发送缓存中读取出的交换机一般数据帧,减少FPGA片内缓存的占用;
还包括拆帧模块;
拆帧模块与所述通道控制模块相连接;
组拆模块用于将从NANDFlash中读出的定长帧拆解,重新恢复成交换机一般数据帧,并写入交换机接口接收缓存,使得交换机获得读取到的NANDFLASH数据。
2.如权利要求1所述的阵列通道控制器,其特征在于,所述第一NANDFLASH接口控制用于实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND0、NAND1、NAND2、NAND3;
所述第二NANDFLASH接口控制用于实现底层的Nand Flash物理接口操作,实现与NandFlash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND4、NAND5、NAND6、NAND7;
所述第三NANDFLASH接口控制用于实现底层的Nand Flash物理接口操作,实现与NandFlash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND8、NAND8、NAND10、NAND11;
所述第四NANDFLASH接口控制用于实现底层的Nand Flash物理接口操作,实现与NandFlash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND12、NAND13、NAND14、NAND15。
3.如权利要求1所述的阵列通道控制器,其特征在于,所述阵列通道控制器的负责实现底层的NandFlash物理接口操作,实现与NandFlashChip的物理接口交互时序,协议为ONFI2.2;其内还包含ECC引擎模块用于ECC编码与校验纠错。
4.一种运行权利要求1~3任意一项所述阵列通道控制器的阵列通道控制系统,其特征在于,所述阵列通道控制系统包括:
控制指令产生模块,用于产生Nand Flash接口控制器所需要的Flash Chip自定义底层命令;
NANDFLASH接口控制模块,用于实现底层的Nand Flash物理接口操作,实现与NandFlash Chip的物理接口交互时序。
5.一种运行权利要求4所述阵列通道控制系统的阵列通道控制方法,其特征在于,所述阵列通道控制方法包括:
产生NAND FLASH接口控制所需要的FLASH自定义底层命令、将待写入的数据分发至下属的四个不同的NAND FLASH接口控制以及将下属的四个不同的NAND FLASH接口控制读取的数据收集;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND0、NAND1、NAND2、NAND3;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND4、NAND5、NAND6、NAND7;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第三NAND FLASH接口控制用于控制NAND8、NAND8、NAND10、NAND11;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第四NAND FLASH接口控制用于控制NAND12、NAND13、NAND14、NAND15。
6.如权利要求5所述的阵列通道控制方法,其特征在于,所述阵列通道控制方法包括:
写入数据时将从接口SRAM读出的帧长不定的交换机一般数据帧进行组帧,组成有利于存入NANDFlash的定长存储帧;
将交换机接口发送缓存中的数据放置在FPGA片外SRAM中,减少片内存储资源占用;
读取数据时将定长存储帧拆帧,恢复为交换机一般数据帧,并按原存储顺序重新写入交换机接口的接收缓存中。
7.如权利要求6所述的阵列通道控制方法,其特征在于,所述阵列通道控制方法包括:
根据自定义底层FLASH命令转换为NANDFLASH接口读写时序,驱动NANDFLASH芯片工作,写入与读取数据,检查状态。
8.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
产生NAND FLASH接口控制所需要的FLASH自定义底层命令、将待写入的数据分发至下属的四个不同的NAND FLASH接口控制以及将下属的四个不同的NAND FLASH接口控制读取的数据收集;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND0、NAND1、NAND2、NAND3;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第一NAND FLASH接口控制用于控制NAND4、NAND5、NAND6、NAND7;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第三NAND FLASH接口控制用于控制NAND8、NAND8、NAND10、NAND11;
实现底层的Nand Flash物理接口操作,实现与Nand Flash Chip的物理接口交互时序,协议为ONFI2.2,其内还包含ECC引擎模块用于ECC编码与校验纠错,第四NAND FLASH接口控制用于控制NAND12、NAND13、NAND14、NAND15。
9.一种星与星间或星与地间的网络交换数据传输系统,其特征在于,所述星与星间或星与地间的网络交换数据传输系统安装有权利要求1~3任意一项所述阵列通道控制器。
CN202010642951.4A 2020-07-06 2020-07-06 一种阵列通道控制系统、方法、控制器、存储介质及应用 Active CN112000595B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010642951.4A CN112000595B (zh) 2020-07-06 2020-07-06 一种阵列通道控制系统、方法、控制器、存储介质及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010642951.4A CN112000595B (zh) 2020-07-06 2020-07-06 一种阵列通道控制系统、方法、控制器、存储介质及应用

Publications (2)

Publication Number Publication Date
CN112000595A CN112000595A (zh) 2020-11-27
CN112000595B true CN112000595B (zh) 2022-02-01

Family

ID=73466931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010642951.4A Active CN112000595B (zh) 2020-07-06 2020-07-06 一种阵列通道控制系统、方法、控制器、存储介质及应用

Country Status (1)

Country Link
CN (1) CN112000595B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117251117B (zh) * 2023-11-15 2024-01-26 中国科学院国家空间科学中心 一种基于串行总线轮询管理的星载固态存储系统
CN117891759A (zh) * 2024-03-14 2024-04-16 中国海洋大学三亚海洋研究院 一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541678A (zh) * 2011-12-30 2012-07-04 中国人民解放军国防科学技术大学 多通道与非型快闪并行存储控制器
CN103885909A (zh) * 2014-03-26 2014-06-25 国电南瑞科技股份有限公司 基于原生PCIe接口的SSD控制器及其控制方法
CN106776391A (zh) * 2016-12-13 2017-05-31 成都信息工程大学 一种NAND Flash控制器的控制方法和装置
WO2019227619A1 (zh) * 2018-05-29 2019-12-05 深圳市华星光电技术有限公司 一种Nand设备的硬件控制器、控制方法及液晶显示器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541678A (zh) * 2011-12-30 2012-07-04 中国人民解放军国防科学技术大学 多通道与非型快闪并行存储控制器
CN103885909A (zh) * 2014-03-26 2014-06-25 国电南瑞科技股份有限公司 基于原生PCIe接口的SSD控制器及其控制方法
CN106776391A (zh) * 2016-12-13 2017-05-31 成都信息工程大学 一种NAND Flash控制器的控制方法和装置
WO2019227619A1 (zh) * 2018-05-29 2019-12-05 深圳市华星光电技术有限公司 一种Nand设备的硬件控制器、控制方法及液晶显示器

Also Published As

Publication number Publication date
CN112000595A (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
CN112000595B (zh) 一种阵列通道控制系统、方法、控制器、存储介质及应用
US8352663B2 (en) Data storage apparatus and method of data transfer
US8346998B2 (en) System and method for transmitting data packets in a computer system having a memory hub architecture
JP6077125B2 (ja) データ処理方法及び装置
CN109656851B (zh) 一种时间确定的包括多路高速总线通道及共享接口的系统
EP1709543A2 (en) A multiple address two channel bus structure
CN111221759B (zh) 一种基于dma的数据处理系统及方法
US20050033875A1 (en) System and method for selectively affecting data flow to or from a memory device
CN116431079A (zh) 数据读取、写入方法及装置、带宽转换装置和电子设备
CN207008602U (zh) 一种基于NandFlash存储器多通道的存储阵列控制装置
WO2022095439A1 (zh) 一种用于数据处理的硬件加速系统及芯片
CN117093157B (zh) 一种用于单向光传输的ddr高速读写方法及系统
GB2377138A (en) Ring Bus Structure For System On Chip Integrated Circuits
CN116303221B (zh) 一种多核处理器片上网络系统的数据传输方法
US20120159093A1 (en) Method and apparatus for data transfer
CN113986792B (zh) 一种数据位宽转换方法及通信设备
CN207884628U (zh) 一种用于航天器的多模复接存储装置及系统
CN111694777B (zh) 基于PCIe接口的DMA传输方法
CN111860821A (zh) 数据流架构神经网络芯片的数据传输的控制方法及系统
CN204272167U (zh) 一种基于存储器的数据直通式转发电路
CN115833920B (zh) 一种解调数据的传输方法和装置
CN113821457B (zh) 一种高性能读写链表缓存的装置及方法
CN113849455B (zh) 一种基于混合式存储器的mcu及缓存数据的方法
CN217157329U (zh) 一种基于zynq的无线电设备数据传输存储装置
CN112667541B (zh) 一种ip动态配置电路和fpga

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant