WO2022068185A1 - 一种存储系统及存储数据处理方法 - Google Patents
一种存储系统及存储数据处理方法 Download PDFInfo
- Publication number
- WO2022068185A1 WO2022068185A1 PCT/CN2021/089372 CN2021089372W WO2022068185A1 WO 2022068185 A1 WO2022068185 A1 WO 2022068185A1 CN 2021089372 W CN2021089372 W CN 2021089372W WO 2022068185 A1 WO2022068185 A1 WO 2022068185A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- module
- controller
- slave
- master
- flash memory
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000013500 data storage Methods 0.000 claims abstract description 6
- 238000013507 mapping Methods 0.000 claims description 74
- 238000012545 processing Methods 0.000 claims description 48
- 238000007726 management method Methods 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 41
- 238000004891 communication Methods 0.000 claims description 19
- 230000007246 mechanism Effects 0.000 claims description 9
- 238000003491 array Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 20
- 238000013519 translation Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 10
- 238000007667 floating Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 239000002245 particle Substances 0.000 description 4
- 230000037361 pathway Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种存储系统(300)及存储数据处理方法,涉及数据存储技术领域,所述存储系统(300)包括硬件系统(100)和固件系统(200),硬件系统(100)包括主控制器(10)、至少一个从控制器(20)、连接模块(30)、动态随机存储器(50)以及主机接口(40),主控制器(10)以及每一从控制器(20)均一一对应连接一个闪存阵列(310),主控制器(10)通过连接模块(30)通信连接每一从控制器(20);固件系统(200)包括运行于主控制器(10)上的主固件(210)和运行于从控制器(20)上的至少一个从固件(220),主固件(210)包括前端模块(211)、算法模块(213)、主通路模块(215)和主后端模块(214)。所述存储系统(300)能够解决现有闪存接口带宽无法扩展、闪存接口速度不足的技术问题,实现在扩展闪存介质的数量的同时,提高闪存接口速度。
Description
本申请要求于2020年09月29日提交中国专利局,申请号为202011049920.4,发明名称为“一种存储系统及存储数据处理方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请实施例涉及数据存储技术领域,特别是涉及一种存储系统及存储数据处理方法。
固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片)。目前固态硬盘系统中有相当部分是存在动态随机存取存储器(Dynamic Random Access Memory,DRAM)的,所以SSD有较大的数据缓存空间用来缓存数据。
闪存(NAND Flash)是固态硬盘的主要存储介质。随着固态硬盘(SSD)的普及,对固态硬盘的容量需求越来越大,单盘容量受限于其主控所支持的闪存(NAND Flash)数量。当有对单盘超大容量需求时,现有技术往往是在现有主控的闪存接口进行串行连接,如外加译码器和连接装置,实现容量上的扩展。这种串行连接仅仅是闪存容量上的扩展,其最大的问题是闪存接口带宽无法扩展,即受限于其主控闪存接口总带宽。同时,串行连接导致闪存接口负载增加,从而导致其速率无法满足高速信号的要求。
申请人在实现本申请的过程中,发现现有技术至少存在以下技术问题:闪存接口带宽无法扩展、闪存接口速度不足。
申请内容
本申请实施例旨在提供一种存储系统及存储数据处理方法,其解决了现有闪存接口带宽无法扩展、闪存接口速度不足的技术问题,实现在扩展闪存介质 的数量的同时,提高闪存接口速度。
为解决上述技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种存储系统,包括闪存阵列,所述存储系统还包括硬件系统和固件系统,所述硬件系统包括主控制器、至少一个从控制器、连接模块、动态随机存储器以及主机接口,其中,所述主控制器以及每一所述从控制器均一一对应连接一个闪存阵列,所述主控制器通过所述连接模块通信连接每一所述从控制器,所述主控制器连接所述动态随机存储器以及所述主机接口;
所述固件系统包括运行于所述主控制器上的主固件和运行于所述从控制器上的至少一个从固件,所述主固件包括前端模块、算法模块、主通路模块和主后端模块,所述算法模块管理数据的地址映射;所述从固件包括从通路模块和从后端模块;所述前端模块和所述算法模块之间、所述算法模块和所述主通路模块之间、所述算法模块和所述主后端模块之间、所述主通路模块和所述从通路模块之间、以及所述从通路模块和所述从后端模块之间通过消息机制交互。
在一些实施例中,所述连接模块包括:
级联控制模块,连接所述主控制器以及至少一个从控制器,用于收发数据;
转发管理模块,连接所述级联控制模块,用于管理从控制器的地址、ID以及转发规则;
缓存管理模块,连接所述级联控制模块,用于存储所述级联控制模块接收到的数据。
在一些实施例中,所述主控制器为所述至少一个从控制器的上一级控制器,所述至少一个从控制器为所述主控制器的下一级控制器,所述从控制器通过所述连接模块与所述从控制器的至少一个下一级控制器通信连接,以形成逐级拓扑结构,其中,所述从控制器之后的每一级控制器均包括连接模块。
在一些实施例中,所述连接模块包括总线,所述主控制器通过所述总线并行或串行连接每一所述从控制器。
在一些实施例中,所述前端模块,用于处理和主机的通信协议以及分发主机系统发送的数据存储操作;
所述主通路模块,用于主控制器和从控制器之间的数据收发管理;
所述主后端模块,连接所述算法模块以及主控制器对应的闪存阵列,用于 闪存数据读写以及闪存命令的管理。
在一些实施例中,所述从通路模块,用于主控制器和从控制器之间的数据收发管理;
所述从后端模块,连接所述从通路模块以及该从控制器对应的闪存阵列,用于闪存数据读写以及闪存命令的管理。
在一些实施例中,所述地址映射包括主机的逻辑块地址、固件算法的逻辑映射地址与闪存阵列的物理映射地址的映射关系,其中,所述闪存阵列的物理映射地址包括标识码和物理地址。
第二方面,本申请实施例提供一种存储数据处理方法,应用于如上所述的存储系统,所述方法包括:
接收主机发送的主机命令,生成与所述主机命令对应的IO操作;
对所述IO操作进行映射处理,确定所述IO操作对应的闪存阵列;
向所述闪存阵列对应的主控制器和/或从控制器发送所述IO操作,以使所述主控制器和/或从控制器向对应的闪存阵列执行所述IO操作,并返回IO操作结果。
在一些实施例中,所述向所述闪存阵列对应的从控制器发送所述IO操作,包括:
所述主通路模块接收所述算法模块发送的IO操作,并将所述IO操作转发到所述从通路模块。
在一些实施例中,在接收主机发送的主机命令之前,所述方法还包括:
对所述主控制器和至少一个从控制器的所有闪存阵列进行编址,确定地址映射关系,其中,所述地址映射关系包括主机的逻辑块地址、固件算法的逻辑映射地址与闪存阵列的物理映射地址的映射关系,其中,所述闪存阵列的物理映射地址包括标识码和物理地址。
第三方面,本申请实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使存储系统能够执行如上所述的存储数据处理方法。
本申请实施例的有益效果是:区别于现有技术的情况下,本申请实施例提供的一种存储系统,包括闪存阵列,所述存储系统还包括硬件系统和固件系统,所述硬件系统包括主控制器、至少一个从控制器、连接模块、动态随机存储器 以及主机接口,其中,所述主控制器以及每一所述从控制器均一一对应连接一个闪存阵列,所述主控制器通过所述连接模块通信连接每一所述从控制器,所述主控制器连接所述动态随机存储器以及所述主机接口;所述固件系统包括运行于所述主控制器上的主固件和运行于所述从控制器上的至少一个从固件,所述主固件包括前端模块、算法模块、主通路模块和主后端模块,所述算法模块管理数据的地址映射;所述从固件包括从通路模块和从后端模块;所述前端模块和所述算法模块之间、所述算法模块和所述主通路模块之间、所述算法模块和所述主后端模块之间、所述主通路模块和所述从通路模块之间、以及所述从通路模块和所述从后端模块之间通过消息机制交互。通过设置连接模块实现主控制器与至少一个从控制器之间通信连接,本申请能够解决现有闪存接口带宽无法扩展、闪存接口速度不足的技术问题,实现在扩展闪存介质的数量的同时,提高闪存接口速度。并且,由于只有由于只有主控制器连接动态随机存储器,而从控制器不连接所述动态随机存储器,通过这种异构化设计可以减少多个动态随机存储器连接,从而减少硬件设计难度,如PCB层数,走线难度,信号完整性问题,为固件异构化设计提供硬件基础,并且,由于只有主固件具有所有模块,而从固件只有通路模块和后端模块,能够减少开发周期,加快产品化周期,同时,由于采用固件异构化设计,能够进行统一映射管理,有利于所有闪存阵列的磨损均衡控制。
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是现有技术的固态硬盘的结构示意图;
图2是现有技术的级联固态硬盘的硬件架构示意图;
图3是本申请实施例提供的一种存储系统的结构示意图;
图4是图3中的连接模块30的结构示意图;
图5是本申请实施例提供的一种主控级联固态硬盘的硬件架构示意图;
图6是本申请实施例提供的一种主控制器与从控制器的连接关系的示意图;
图7是本申请实施例提供的一种主固件的结构示意图;
图8是本申请实施例提供的一种从固件的结构示意图;
图9是本申请实施例提供的一种固件系统的具体结构示意图;
图10是本申请实施例提供的一种固态硬盘控制器的结构示意图;
图11是本申请实施例提供的存储系统的IO流的示意图;
图12是本申请实施例提供的地址映射关系的示意图;
图13是本申请实施例提供的另一种地址映射关系的示意图;
图14是本申请实施例提供的一种存储数据处理方法的流程示意图;
图15是本申请实施例提供的一种存储数据处理方法的整体流程示意图。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,下面所描述的本申请各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
请参阅图1,图1是现有技术的固态硬盘的结构示意图;
如图1所示,固态硬盘(Solid State Drives,SSD)通常包括固态硬盘控制器,即主控制器(SSD Controller)、连接器(Connector)、闪存阵列、缓存单元以及其他外围单元。
其中,固态硬盘控制器用于作为控制运算单元,管理SSD内部系统;闪存阵列(NAND Flash),作为存储单元,用于存储数据,包括用户数据和系统数据,闪存阵列一般呈现多个通道(Channel,简写CH),一个通道独立连接一组NAND Flash,例如CH0/CH1……CHx。其中闪存(NAND Flash),其特性是写入之前,必须进行擦除,且每个闪存擦除次数有限;缓存单元,用于缓存映射表,所述缓存单元一般为动态随机存取存储器(Dynamic Random Access Memory,DRAM)。连接器(Connector)用于连接主机,例如:PC或者服务器,其他外围单元可以包括串口、传感器、寄存器、电源芯片等部件。
随着固态硬盘的普及,对固态硬盘的容量需求越来越大,单盘容量受限于 其主控所支持的闪存(NAND Flash)数量。当有对单盘超大容量需求时,现有技术往往是在现有主控的闪存接口进行串行连接,如外加译码器和连接装置,实现容量上的扩展。这种串行连接仅仅是闪存容量上的扩展,其最大的问题是闪存接口带宽无法扩展,即受限于其主控闪存接口总带宽。同时,串行连接导致闪存接口负载增加,从而导致其速率无法满足高速信号的要求。
请再参阅图2,图2是现有技术的级联固态硬盘的硬件架构示意图;
如图2所示,现有技术的系统硬件设计技术往往是在现有主控的闪存接口上外加译码器和连接装置,实现容量上的扩展。这种串行连接仅仅是闪存容量上的扩展,其最大的问题是闪存接口带宽无法扩展,即受限于其主控闪存接口总带宽。同时,串行连接导致闪存接口负载增加,从而导致其速率无法满足高速信号的要求。
可以发现其系统硬件架构:在原有闪存通道(CH0-CHn)上,每个通道(CHx)上添加连接装置。该装置一般用译码器作为控制器可以实现通道(CH0_x)扩展,同时可以再次连接下一级连接装置,从而再次实现通道扩展(CH0_0_x)。这种扩展方式对闪存通道的串行连接扩展,大大增加闪存通道的信号驱动能负载,往往无法实现高速信号设计,特别是现在闪存接口速度已经达到1.2Gbps以上,其无法满足速度要求。
另外一种现有技术,就是对整个固态硬盘之间进行简单连接,比如通过RAID卡或者类似RAID卡的功能集成到主控芯片内进行连接。这种连接方式需要额外的RAID卡,或者其固件设计是没有统一管理,是各自管理其存储映射。而这种主控连接的方法,一般也仅是整个存储装置的连接,类似RAID方案,仅仅是节省RAID控制器,其没有系统角度去设计,导致硬件设计太多冗余,比如每个存储装置均有DRAM器件,导致硬件布线复杂。且尚无对应的系统固件架构技术申请,其固件都是独立相同的设计,这样导致没有进行统一管理闪存颗粒,导致其闪存磨损不平衡。
有鉴于此,本申请提供一种存储系统及存储数据处理方法,以解决现有闪存接口带宽无法扩展、闪存接口速度不足的技术问题,实现在扩展闪存介质的数量的同时,提高闪存接口速度。
下面结合说明书附图阐述本申请的技术方案。
请参阅图3,图3是本申请实施例提供的一种存储系统的结构示意图。
如图3所示,该存储系统300,包括:硬件系统100、固件系统200以及闪存阵列310,其中,每一闪存阵列310对应一控制器,即所述主控制器以及每一从控制器一一对应连接一个闪存阵列310。
其中,所述硬件系统100,包括:主控制器10、至少一个从控制器20、连接模块30、主机接口40以及动态随机存储器50,其中,所述主控制器10以及每一所述从控制器20均一一对应连接一个闪存阵列310,所述主控制器10通过所述连接模块30通信连接每一所述从控制器20,所述主控制器10连接所述动态随机存储器50以及主机接口40,其中,所述硬件系统100通过主机接口40通信连接主机,所述主机接口40用于接收主机发送的主机命令,并将所述主机命令转发到所述主控制器10,以使所述主控制器10通过所述主机接口接收主机发送的主机命令,并根据所述主机命令,生成与所述主机命令对应的IO操作,以通过所述主控制器对应的闪存阵列和/或至少一个从控制器对应的闪存阵列处理所述IO操作。
所述主控制器10包括算法模块,所述算法模块存储主控制器以及每一从控制器的地址映射关系,所述主控制器10通过所述地址映射关系,确定所述IO操作对应的闪存阵列,通过所述主控制器10执行所述IO操作,并向主机返回IO操作结果,或者,向所述闪存阵列对应的从控制器20发送所述IO操作,以使所述从控制器20执行所述IO操作,并返回IO操作结果到所述主控制器10。
在本申请实施例中,由于只有主控制器连接动态随机存储器,而从控制器不连接所述动态随机存储器,因此,可以减少多个动态随机存储器连接,从而减少硬件设计难度,如PCB层数,走线难度,信号完整性问题等。
请再参阅图4,图4是图3中的连接模块30的结构示意图;
其中,该连接模块30,用于主控制器与从控制器之间的通信。
如图4所示,该连接模块30,包括:级联控制模块31、转发管理模块32以及缓存管理模块33,所述级联控制模块31、转发管理模块32以及缓存管理模块33之间两两通信连接。
级联控制模块31,连接所述转发管理模块32以及缓存管理模块33,以及连接所述主控制器以及至少一个从控制器,用于收发数据以及和外部设备数据通信的硬件协议,其中,所述数据包括用户数据和通信消息数据,所述外部设备包括至少一个从控制器,所述级联控制模块31,在本申请实施例中,所述级 联控制模块31包括双模串并收发器(Serdes),即具有主控制器和从控制器的转换的功能,所述主控制器可以通过所述级联控制模块31实现将其转换为从控制器,所述从控制器可以通过所述级联控制模块31实现将其转换为主控制器,从而实现主控制器和从控制器之间的转换。
转发管理模块32,连接所述级联控制模块31以及缓存管理模块33,用于负责从控制器的地址、ID以及转发规则等相关管理工作。
缓存管理模块33,连接所述级联控制模块31以及转发管理模块32,所述缓存管理模块33是连接模块30收发数据的存储管理模块,用于存储所述级联控制模块31接收到的数据,所述级联控制模块31可以接收主控制器10发送的数据,也可以接收从控制器20发送的数据,其中,所述数据包括用户数据和通信消息数据。同时,所述缓存管理模块33还用于硬件系统内部的其他模块的数据收发管理,所述其他模块包括:NVMe控制器、闪存控制器等。
在本申请实施例中,所述连接模块包括总线,所述主控制器并行或串行连接每一所述从控制器。
具体的,所述闪存阵列210包括闪存介质,所述闪存介质作为所述固态硬盘的存储介质,也称作闪存、Flash、Flash存储器或Flash颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存介质310得以成为各类便携型数字设备的存储介质的基础。
其中,闪存介质可以为Nand FLASH,Nand FLASH以单晶体管作为二进制信号的存储单元,其结构与普通的半导体晶体管非常相似,区别在于Nand FLASH的单晶体管加入了浮动栅和控制栅,浮动栅用于贮存电子,表面被一层硅氧化物绝缘体所包覆,并通过电容与控制栅相耦合,当负电子在控制栅的作用下被注入到浮动栅中,Nand FLASH的单晶体的存储状态就由“1”变成了“0”,而当负电子从浮动栅中移走后,存储状态就由“0”变成了“1”,包覆在浮动栅表面的绝缘体用于将浮动栅中的负电子困住,实现数据存储。即Nand FLASH的存储单元为浮动栅晶体管,使用浮动栅晶体管以电荷的形式存储数据。存储电荷的多少与浮动栅晶体管所被施加的电压的大小有关。
一个Nand FLASH包括至少一个Chip芯片,每一个Chip芯片由若干个Block物理块组成,每一个Block物理块包括若干个Page页。其中,Block物理块是 Nand FLASH执行擦除操作的最小单位,Page页为Nand FLASH执行读写操作的最小单位,一个Nand FLASH的容量等于其Block物理块的数量*一个Block物理块包含的Page页的数量*一个Page页的容量。具体的,闪存介质按照存储单元的电压的不同层次,可分为SLC、MLC、TLC以及QLC。
请再参阅图5,图5是本申请实施例提供的一种主控级联固态硬盘的硬件架构示意图;
如图5所示,系统硬件上有多个SSD控制器,其中,所述SSD控制器之间通过主控芯片自带接口进行连接。其中,所述多个SSD控制器包括一个主控制器以及至少一个从控制器,其中,只有主控制器(Master Controller,MC)连接完整的固态硬盘所需要的外设,比如动态随机存储器、闪存阵列和主机接口,图5中以SSD Controller 0为主控制器,该主控制器连接动态随机存储器(Dynamic Random Access Memory,DRAM),其他从控制器(Slave Controller,SC)不连接动态随机存储器,仅连接闪存阵列。其中,每个主控制器连接的闪存阵列不再进行串行扩展,以保证满足闪存接口的速率要求。
在本申请实施例中,所述主控制器与从控制器之间的连接,可以进行并行或者串行连接,其取决主控制器以及从控制器的主控芯片支持的连接类型。
请再参阅图6,图6是本申请实施例提供的一种主控制器与从控制器的连接关系的示意图;
如图6所示,主控制器通过总线与多个从控制器进行通信,其中,总线拓扑结构为逐级拓扑结构,即上一级控制器作为主设备和下一级控制器进行通信连接,以形成逐级主-从形式的控制器的连接模式。具体的,所述主控制器为所述至少一个从控制器的上一级控制器,所述至少一个从控制器为所述主控制器的下一级控制器,所述从控制器通过所述连接模块与所述从控制器的至少一个下一级控制器通信连接,以形成逐级拓扑结构,其中,所述从控制器之后的每一级控制器均包括通路模块以及后端模块。
请再参阅图7,图7是本申请实施例提供的一种主固件的结构示意图;
如图7所示,该主固件210,包括:前端模块211、数据处理模块212、算法模块213、主后端模块214以及主通路模块215,其中,所述前端模块211连接所述数据处理模块212,所述数据处理模块212连接所述算法模块213,所述算法模块213分别连接所述数据处理模块212、主后端模块214以及主通路模块 215,所述主后端模块214连接所述算法模块213,所述主通路模块215连接所述算法模块213。
具体的,所述前端模块211,用于处理和主机的通信协议以及分发主机系统发送的数据存储操作,其中,所述前端模块211,即(Front End,FE),用于负责与主机Host的通信协议,以及主机命令的解析等。
具体的,所述数据处理模块212,连接所述算法模块213以及所述前端模块211,所述数据处理模块212,即(Data Process,DP),用于数据处理,包括写缓存的处理。
具体的,所述算法模块213,又称为映射表管理模块(Flash Translation Layer,FTL),连接所述数据处理模块212、主后端模块214以及主通路模块215,用于存储主控制器以及每一从控制器的地址映射关系,即用于负责映射表的管理,还用于写入闪存数据颗粒度的管理等。
具体的,所述主后端模块214,即(Back End,BE),连接所述算法模块213以及主控制器对应的闪存阵列,用于闪存数据读写以及闪存命令的管理,即完成数据到主控制器对应的闪存阵列的操作处理。
具体的,所述主通路模块215,即(Link Path,LP),连接所述算法模块213,用于主控制器和从控制器之间的数据收发管理。其中,所述主固件的主通路模块215与每一所述从固件的从通路模块通信连接,以实现主控制器与每一从控制器的数据收发管理。
请再参阅图8,图8是本申请实施例提供的一种从固件的结构示意图;
如图8所示,该从固件220,包括:从通路模块221以及从后端模块222,所述从通路模块221连接所述从后端模块222。
具体的,所述从通路模块221,连接所述从后端模块222,用于主控制器和从控制器之间的数据收发管理,其中,所述从通路模块221与所述主固件的主通路模块进行通信连接,以实现主控制器与从控制器之间的数据收发管理;
具体的,所述从后端模块222,连接所述从通路模块221以及该从控制器对应的闪存阵列,用于闪存数据读写以及闪存命令的管理,即完成数据到与所述从后端模块222对应的从控制器的闪存阵列的操作处理。
在本申请实施例中,由于只有主固件具有前端模块(Front End,FE),数据处理模块(Data Process,DP),算法模块(Flash Translation Layer,FTL), 后端模块(Back End,BE)和通路模块(Link Path,LP),而从固件只有后端模块(Back End,BE)和通路模块(Link Path,LP),而主固件运行于主控制器,从固件运行于从控制器,并且在闪存管理上,采用统一映射管理,因此具有可复用性,有利于减少开发周期。
请再参阅图9,图9是本申请实施例提供的一种固件系统的具体结构示意图;
如图9所示,该固件系统200,包括:主固件210以及至少一个从固件220,其中,所述从固件220的数量与从控制器的数量相同,即每一从固件一一对应唯一的一个从控制器,所述从固件运行于与其对应的从控制器上。
具体的,所述主固件210包括:前端模块211、数据处理模块212、算法模块213、主后端模块214以及主通路模块215,其中,所述前端模块211连接所述数据处理模块212,所述数据处理模块212连接所述算法模块213,所述算法模块213分别连接所述数据处理模块212、主后端模块214以及主通路模块215,所述主后端模块214连接所述算法模块213,所述主通路模块215连接所述算法模块213。
具体的,所述从固件220包括:从通路模块221以及从后端模块222,所述从通路模块221连接所述从后端模块222。
其中,所述主固件210的主通路模块215与每一所述从固件220的从通路模块221通信连接,以实现主固件210对每一从固件220的数据处理,从而实现主控制器与从控制器之间的数据收发管理。
在本申请实施例中,所述前端模块和所述算法模块之间、所述算法模块和所述主通路模块之间、所述算法模块和所述主后端模块之间、所述主通路模块和所述从通路模块之间、以及所述从通路模块和所述从后端模块之间通过消息机制交互。具体的,所述主固件和从固件的各个模块之间通过消息机制进行通信,即Message机制,以完成各个模块之间的数据和信息的交互,例如:通过消息机制传递IO操作,其中,所述消息机制通过队列模块以及共享内存模块实现,其中,所述队列模块包括软件队列模块和硬件队列模块,所述软件队列模块和硬件队列模块均包括一先进先出队列(First Input First Output,FIFO),所述先进先出队列用于对IO操作进行排序,所述共享内存模块用于对IO操作对应的IO数据进行缓存。
请再参阅图10,图10是本申请实施例提供的一种固态硬盘控制器的结构示 意图;其中,该固态硬盘控制器属于上述的存储系统。
如图10所示,该固态硬盘控制器,包括:PCIe接口控制器、DDR控制器、NVMe接口控制器、处理器、外设模块、数据通路模块以及闪存控制器。
具体的,所述PCIe接口控制器用于PCIe通信协议的控制,所述DDR控制器,用于动态随机存储器的控制,所述NVMe接口控制器用于NVMe通信协议的控制,所述外设模块用于其他相关通信协议的控制,所述数据通路模块用于数据通路的控制,例如:写缓存的管理,所述闪存控制器用于闪存的数据处理。
其中,该固态硬盘控制器,还包括数据转换器、缓存器、接口等。
具体的,所述数据转换器,分别与处理器和闪存控制器连接,所述数据转换器用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当所述闪存控制器向所述闪存介质写入数据时,通过所述数据转换器将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质。当所述闪存控制器从所述闪存介质读取数据时,通过所述数据转换器将闪存介质中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,所述数据转换器可以包括二进制数据寄存器和十六进制数据寄存器。所述二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,所述十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
具体的,所述处理器,分别与数据转换器、缓存器、闪存控制器以及接口连接,其中,处理器与数据转换器、缓存器、闪存控制器以及接口可以通过总线或者其他方式连接,所述处理器用于运行存储在缓存器中的非易失性软件程序、指令以及模块,从而实现本申请任一方法实施例。
具体的,所述缓存器,主要用于缓存主机发送的读/写指令以及根据主机发送的读/写指令从闪存介质获取的读数据或者写数据。缓存器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。缓存器可以包括存储程序区,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,缓存器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,缓存器可选包括相对于处理器远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、 移动通信网及其组合。所述缓存器可以为静态随机存取存储器(Static Random Access Memory,SRAM)或者耦合内存(Tightly Coupled Memory,TCM)或者双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic Random Access Memory,DDR SRAM)。
具体的,所述闪存控制器,与闪存介质、数据转换器、处理器以及缓存器连接,用于访问后端的闪存介质,管理闪存介质的各种参数和数据I/O;或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取主机发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责FTL(Flash translation layer,闪存转换层)的核心处理。
具体的,所述接口,连接主机以及数据转换器、处理器以及缓存器,用于接收主机发送的数据,或者,接收所述处理器发送的数据,实现主机与处理器之间的数据传输,所述接口可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。
请再参阅图11,图11是本申请实施例提供的存储系统的IO流的示意图;
如图11所示,主控制器的前端模块(Front End,FE)获取到主机命令后,进行处理以产生IO操作,并依次通过数据处理模块(Data Process,DP)、算法模块(Flash Translation Layer,FTL)以及主通路模块(Link Path,LP),主通路模块(Link Path,LP)写入或读取对应的从控制器,其中,从控制器中的从通路模块接收主通路模块发送的IO操作,从控制器中的从通路模块将IO操作发送到从后端模块,以执行所述IO操作,进行闪存数据读写。
可以理解的是,在主控制器与多个从控制器中,需要确定IO操作写入或读取的闪存。在本申请实施例中,所述主控制器包括算法模块,所述算法模块存储主控制器以及每一从控制器的地址映射关系。
请一并参阅图12和图13,图12是本申请实施例提供的地址映射关系的示意图,图13是本申请实施例提供的另一种地址映射关系的示意图;
如图12和图13所示,主控制器的算法模块中对所有的闪存进行编址,包括主控制器对应的闪存以及至少一个从控制器对应的闪存,通过加入标识码来确定每一闪存阵列,具体的,所述地址映射关系包括主机的逻辑块地址(Logic block Address,LBA)、固件算法的逻辑映射地址(Logic Mapping Address, LMA)与闪存阵列的物理映射地址(Physical Mapping Address,PMA)的映射关系,其中,所述闪存阵列的物理映射地址包括标识码和物理地址。其中,LBA是主机域的逻辑地址,LMA是SSD固件算法的逻辑映射地址,PMA是指向闪存颗粒具体Page的地址。
在本申请实施例中,通过建立地址映射关系,所述地址映射关系包括主机的逻辑块地址、固件算法的逻辑映射地址与闪存阵列的物理映射地址的映射关系,其中,所述闪存阵列的物理映射地址包括标识码和物理地址,本申请能够实现主控制器和从控制器所有连接的闪存颗粒的地址映射管理,及全局统一逻辑地址到硬件物理地址的映射关系。通过统一地址映射管理,可以实现所有闪存阵列进行磨损均衡化管理。
在本申请实施例中,通过提供一种存储系统,包括闪存阵列,所述存储系统还包括硬件系统和固件系统,所述硬件系统包括主控制器、至少一个从控制器、连接模块、动态随机存储器以及主机接口,其中,所述主控制器以及每一所述从控制器均一一对应连接一个闪存阵列,所述主控制器通过所述连接模块通信连接每一所述从控制器,所述主控制器连接所述动态随机存储器以及所述主机接口;所述固件系统包括运行于所述主控制器上的主固件和运行于所述从控制器上的至少一个从固件,所述主固件包括前端模块、算法模块、主通路模块和主后端模块,所述算法模块管理数据的地址映射;所述从固件包括从通路模块和从后端模块;所述前端模块和所述算法模块之间、所述算法模块和所述主通路模块之间、所述算法模块和所述主后端模块之间、所述主通路模块和所述从通路模块之间、以及所述从通路模块和所述从后端模块之间通过消息机制交互。通过设置连接模块实现主控制器与至少一个从控制器之间通信连接,本申请能够解决现有闪存接口带宽无法扩展、闪存接口速度不足的技术问题,实现在扩展闪存介质的数量的同时,提高闪存接口速度。
请再参阅图14,图14是本申请实施例提供的一种存储数据处理方法的流程示意图;
其中,该存储数据处理方法,应用于上述的存储系统。
如图14所示,该存储数据处理方法,包括:
步骤S10:接收主机发送的主机命令,生成与所述主机命令对应的IO操作;
具体的,主控制器通过主机接口接收主机发送的主机命令,所述主控制器 的前端模块(FE模块)根据接收到的主机命令,处理与所述主机命令对应的IO操作。
步骤S20:对所述IO操作进行映射处理,确定所述IO操作对应的闪存阵列;
具体的,所述前端模块(FE模块)向所述主控制器的数据处理模块(DP模块)发送所述IO操作,所述主控制器的数据处理模块(DP模块)对IO操作进行处理,并下发处理后的IO操作到所述主控制器的算法模块(FTL模块),所述算法模块(FTL模块)对所述IO操作进行映射处理,以确定下发的闪存阵列。
步骤S30:向所述闪存阵列对应的主控制器和/或从控制器发送所述IO操作,以使所述主控制器和/或从控制器向对应的闪存阵列执行所述IO操作,并返回IO操作结果。
具体的,若所述算法模块(FTL模块)对所述IO操作进行映射处理,确定下发的闪存阵列为主控制器对应的闪存阵列,则所述算法模块(FTL模块)向所述主控制器的主后端模块发送所述IO操作,以使所述主后端模块基于所述IO操作进行闪存数据读写,并返回IO操作结果;
具体的,若所述算法模块(FTL模块)对所述IO操作进行映射处理,确定下发的闪存阵列为从控制器对应的闪存阵列,则所述算法模块(FTL模块)将所述IO操作发送到所述主控制器的主通路模块,以使所述主通路模块将所述IO操作发送到与所述IO操作对应的从控制器的从通路模块,以使所述从控制器的从通路模块基于所述IO操作进行闪存数据读写,并返回IO操作结果;
具体的,若所述算法模块(FTL模块)对所述IO操作进行映射处理,确定下发的闪存阵列为主控制器对应的闪存阵列和从控制器对应的闪存阵列,则所述所述算法模块(FTL模块)向所述主控制器的主后端模块发送所述IO操作,以使所述主后端模块基于所述IO操作进行闪存数据读写,以返回所述IO操作结果,并且,所述算法模块(FTL模块)将所述IO操作发送到所述主控制器的主通路模块,以使所述主通路模块将所述IO操作发送到与所述IO操作对应的从控制器的从通路模块,以使所述从控制器的从通路模块基于所述IO操作进行闪存数据读写,以返回所述IO操作结果。
在本申请实施例中,在接收主机发送的主机命令之前,所述方法还包括:
对所述主控制器和至少一个从控制器的所有闪存阵列进行编址,确定地址映射关系,其中,所述地址映射关系包括主机的逻辑块地址、固件算法的逻辑 映射地址与闪存阵列的物理映射地址的映射关系,其中,所述闪存阵列的物理映射地址包括标识码和物理地址。
请再参阅图15,图15是本申请实施例提供的一种存储数据处理方法的整体流程示意图;
如图15所示,该存储数据处理方法,包括:
步骤S151:主控制器的FE模块将收到主机命令处理成内部IO,并下发给DP模块;
具体的,主控制器的前端模块(Front End,FE)接受主机命令,并将所述主机命令处理成内部IO操作,将所述IO操作发送到数据处理模块(Data Process,DP)。
步骤S152:主控制器的DP模块对收到FE下发的IO操作进行进一步处理,下发给FTL模块;
具体的,所述主控制器的数据处理模块(Data Process,DP)接收所述前端模块(Front End,FE)发送的IO操作,并对所述IO操作进行进一步处理,例如:进行解析和转义,并将解析和转义之后的IO操作发送到所述主控制器的算法模块(Flash Translation Layer,FTL)。
步骤S153:主控制器的FTL模块对收到DP下发的IO操作进行映射处理,以便确定下发的闪存;
具体的,所述主控制器的算法模块(Flash Translation Layer,FTL)在接收到所述数据处理模块(Data Process,DP)发送的IO操作之后,对所述IO操作进行映射处理,确定所述IO操作对应的闪存阵列或闪存介质;
步骤S154:该IO操作是否需要下发到从控制器?
具体的,判断该IO操作是否需要下发到主控制器的下级控制器,即从控制器,若是,则进入步骤S155;若否,则进入步骤S1514;
步骤S155:主控制器的LP模块收到FTL模块下发的IO操作,转发给下级控制器的LP模块;
具体的,所述主控制器的主通路模块(Link Path,LP)接收所述算法模块(Flash Translation Layer,FTL)发送的IO操作,并将所述IO操作转发到下级控制器的通路模块(Link Path,LP),即下发到从控制器的从通路模块(Link Path,LP)。
步骤S156:本级控制器的LP模块收到上级控制器下发的IO操作;
具体的,本级控制器的通路模块(Link Path,LP)接收上级控制器下发的IO操作,即从控制器接收主控制器下发的IO操作;
步骤S157:判断是否为发给本级控制器的IO操作?
具体的,判断该IO操作是否为发送给本级控制器,即主控制器的IO操作,若是,则进入步骤S158,若否,则进入步骤S159;
步骤S158:本级控制器的LP模块转发IO操作给BE模块;
具体的,本级控制器的通路模块(Link Path,LP)在接收到上级控制器发送的IO操作之后,将所述IO操作发送到本级控制器的后端模块(Back End,BE);
步骤S159:本级控制器的LP模块转发IO操作给下级控制器;
具体的,本级控制器的通路模块(Link Path,LP)转发IO操作给下级控制器,即主控制器的LP模块转发IO操作给本级控制器对应的下级控制器,即从控制器。
步骤S1510:本级控制器的BE模块收到上级下发的IO操作,进行对应闪存的操作;
具体的,本级控制器的后端模块(Back End,BE)接收上级控制器发送的IO操作,对本级控制器对应的闪存介质或闪存阵列进行操作,其中,所述对应闪存的操作包括读写操作。
步骤S1511:本级控制器的LP模块收到下一级控制器的BE模块发的IO操作结果,转发给上级控制器的LP模块;
具体的,下一级控制器的后端模块(Back End,BE)进行对应闪存的操作之后,确定IO操作结果,并将所述IO操作结果发送到其上一级控制器的通路模块(Link Path,LP),即本级控制器的通路模块(Link Path,LP)接收下一级控制器的后端模块(Back End,BE)发送的IO操作结果,并讲过所述IO操作结果转发给本级控制器的上一级控制器的通路模块(Link Path,LP)。
步骤S1512:本级控制器的LP模块收到从下级主控LP发的IO操作结果,转发给上级控制器;
具体的,本级控制器的通路模块(Link Path,LP)接收下一级控制器的通路模块(Link Path,LP)发送的IO操作结果,并将所述IO操作结果转发给本 级控制器的上一级控制器;
步骤S1513:主控制器的LP模块收到从下级控制器的LP模块发的IO操作结果,转发给主控制器的FTL模块;
具体的,本级控制器的通路模块(Link Path,LP)接收下一级控制器的通路模块(Link Path,LP)发送的IO操作结果,并将所述IO操作结果转发给本级控制器的算法模块(Flash Translation Layer,FTL);
步骤S1514:主控制器的BE模块收到FTL下发的IO操作,进行对应闪存的操作;
具体的,当所述IO操作不需要下发到从控制器时,即所述IO操作为主控制器的IO操作时,则所述主控制器的算法模块(Flash Translation Layer,FTL)向所述主控制器的后端模块(Back End,BE)发送所述IO操作,以使所述主控制器的后端模块(Back End,BE)接收所述算法模块(Flash Translation Layer,FTL)发送的IO操作,并根据所述IO操作,对所述主控制器对应的闪存阵列或闪存介质进行操作,所述操作包括读操作或写操作;
步骤S1515:主控制器的FTL模块收到下级控制器上传的IO操作结果,进行处理后转发上级控制器的DP模块;
具体的,所述主控制器的算法模块(Flash Translation Layer,FTL)接收下级控制器上传的IO操作结果,并对所述IO操作结果进行处理之后,转发给上一级控制器的数据处理模块(Data Process,DP);
步骤S1516:主控制器的DP模块收到下级控制器上传的IO操作结果,进行处理后转发到上级控制器的FE模块;
具体的,所述主控制器的数据处理模块(Data Process,DP)在接收到下一级控制器上传的IO操作结果之后,进行处理之后转发到上一级控制器的前端模块(Front End,FE);
步骤S1517:主控制器的FE模块收到下级控制器上传的IO操作结果,处理与之匹配的主机命令,返回命令结果给主机。
具体的,所述主控制器的前端模块(Front End,FE)在接收到下级控制器上传的IO操作结果之后,对所述IO操作结果进行整合,生成主机命令对应的主机命令结果,并向所述主机发送所述主机命令结果。
在本申请实施例中,通过提供一种存储数据处理方法,应用于上述的存储 系统,所述方法包括:接收主机发送的主机命令,生成与所述主机命令对应的IO操作;对所述IO操作进行映射处理,确定所述IO操作对应的闪存阵列;向所述闪存阵列对应的主控制器和/或从控制器发送所述IO操作,以使所述主控制器和/或从控制器向对应的闪存阵列执行所述IO操作,并返回IO操作结果。通过对主机命令进行处理生成IO操作,并对所述IO操作进行映射处理,确定所述IO操作对应的闪存阵列,使得所述主控制器和/或从控制器向对应的闪存阵列执行所述IO操作,并返回IO操作结果,本申请实施例能够提高主机命令的处理速度。
本申请实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,可使得上述一个或多个处理器可执行上述任意方法实施例中的闪存命令管理方法,例如,执行上述任意方法实施例中的存储数据处理方法,例如,执行以上描述的各个步骤。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述 各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
- 一种存储系统,包括闪存阵列,其特征在于,所述存储系统还包括硬件系统和固件系统,所述硬件系统包括主控制器、至少一个从控制器、连接模块、动态随机存储器以及主机接口,其中,所述主控制器以及每一所述从控制器均一一对应连接一个闪存阵列,所述主控制器通过所述连接模块通信连接每一所述从控制器,所述主控制器连接所述动态随机存储器以及所述主机接口;所述固件系统包括运行于所述主控制器上的主固件和运行于所述从控制器上的至少一个从固件,所述主固件包括前端模块、算法模块、主通路模块和主后端模块,所述算法模块管理数据的地址映射;所述从固件包括从通路模块和从后端模块;所述前端模块和所述算法模块之间、所述算法模块和所述主通路模块之间、所述算法模块和所述主后端模块之间、所述主通路模块和所述从通路模块之间、以及所述从通路模块和所述从后端模块之间通过消息机制交互。
- 根据权利要求1所述的存储系统,其特征在于,所述连接模块包括:级联控制模块,连接所述主控制器以及至少一个从控制器,用于收发数据;转发管理模块,连接所述级联控制模块,用于管理从控制器的地址、ID以及转发规则;缓存管理模块,连接所述级联控制模块,用于存储所述级联控制模块接收到的数据。
- 根据权利要求1所述的存储系统,其特征在于,所述主控制器为所述至少一个从控制器的上一级控制器,所述至少一个从控制器为所述主控制器的下一级控制器,所述从控制器通过所述连接模块与所述从控制器的至少一个下一级控制器通信连接,以形成逐级拓扑结构,其中,所述从控制器之后的每一级控制器均包括连接模块。
- 根据权利要求1-3任一项所述的存储系统,其特征在于,所述连接模块包括总线,所述主控制器通过所述总线并行或串行连接每一所述从控制器。
- 根据权利要求1所述的存储系统,其特征在于,所述前端模块,用于处理和主机的通信协议以及分发主机系统发送的数据存储操作;所述主通路模块,用于主控制器和从控制器之间的数据收发管理;所述主后端模块,连接所述算法模块以及主控制器对应的闪存阵列,用于闪存数据读写以及闪存命令的管理。
- 根据权利要求1所述的存储系统,其特征在于,所述从通路模块,用于主控制器和从控制器之间的数据收发管理;所述从后端模块,连接所述从通路模块以及该从控制器对应的闪存阵列,用于闪存数据读写以及闪存命令的管理。
- 根据权利要求1-3、5-6任一项所述的存储系统,其特征在于,所述地址映射包括主机的逻辑块地址、固件算法的逻辑映射地址与闪存阵列的物理映射地址的映射关系,其中,所述闪存阵列的物理映射地址包括标识码和物理地址。
- 一种存储数据处理方法,其特征在于,应用于如权利要求1-7任一项所述的存储系统,所述方法包括:接收主机发送的主机命令,生成与所述主机命令对应的IO操作;对所述IO操作进行映射处理,确定所述IO操作对应的闪存阵列;向所述闪存阵列对应的主控制器和/或从控制器发送所述IO操作,以使所述主控制器和/或从控制器向对应的闪存阵列执行所述IO操作,并返回IO操作结果。
- 根据权利要求8所述的方法,其特征在于,所述向所述闪存阵列对应的从控制器发送所述IO操作,包括:所述主通路模块接收所述算法模块发送的IO操作,并将所述IO操作转发到所述从通路模块。
- 根据权利要求8或9所述的方法,其特征在于,在接收主机发送的主机命令之前,所述方法还包括:对所述主控制器和至少一个从控制器的所有闪存阵列进行编址,确定地址映射关系,其中,所述地址映射关系包括主机的逻辑块地址、固件算法的逻辑映射地址与闪存阵列的物理映射地址的映射关系,其中,所述闪存阵列的物理映射地址包括标识码和物理地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011049920.4 | 2020-09-29 | ||
CN202011049920.4A CN112035381B (zh) | 2020-09-29 | 2020-09-29 | 一种存储系统及存储数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022068185A1 true WO2022068185A1 (zh) | 2022-04-07 |
Family
ID=73572935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/089372 WO2022068185A1 (zh) | 2020-09-29 | 2021-04-23 | 一种存储系统及存储数据处理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112035381B (zh) |
WO (1) | WO2022068185A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116301667A (zh) * | 2023-05-24 | 2023-06-23 | 山东浪潮科学研究院有限公司 | 一种数据库系统,数据访问方法、装置、设备及存储介质 |
CN116418624A (zh) * | 2023-02-24 | 2023-07-11 | 埃尔利德(广东)智能科技有限公司 | 基于主从控制的工业设备通信系统及通信方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035381B (zh) * | 2020-09-29 | 2023-10-27 | 深圳大普微电子科技有限公司 | 一种存储系统及存储数据处理方法 |
CN113377288B (zh) * | 2021-04-30 | 2024-03-12 | 深圳大普微电子科技有限公司 | 硬件队列管理系统、方法、固态硬盘控制器及固态硬盘 |
CN114296638B (zh) * | 2021-12-10 | 2024-02-20 | 深圳大普微电子科技有限公司 | 存算一体化固态硬盘控制器及相关装置、方法 |
CN114296639B (zh) * | 2021-12-10 | 2024-02-20 | 深圳大普微电子科技有限公司 | 命令处理方法及闪存设备 |
CN114296656A (zh) * | 2021-12-31 | 2022-04-08 | 深圳大普微电子科技有限公司 | 平面编程方法及其闪存设备 |
CN115410641B (zh) * | 2022-11-02 | 2023-03-14 | 合肥康芯威存储技术有限公司 | 一种存储系统及其测试方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324867A (zh) * | 2007-06-16 | 2008-12-17 | 深圳市硅格半导体有限公司 | 基于半导体存储介质的数据管理装置及管理方法 |
CN102165532A (zh) * | 2008-09-30 | 2011-08-24 | 美光科技公司 | 具有并行操作模式的固态存储装置控制器 |
US20140108705A1 (en) * | 2012-10-12 | 2014-04-17 | Sandisk Technologies Inc. | Use of High Endurance Non-Volatile Memory for Read Acceleration |
CN105045525A (zh) * | 2014-04-21 | 2015-11-11 | 三星电子株式会社 | 存储控制器、存储系统及操作存储控制器的方法 |
CN112035381A (zh) * | 2020-09-29 | 2020-12-04 | 深圳大普微电子科技有限公司 | 一种存储系统及存储数据处理方法 |
-
2020
- 2020-09-29 CN CN202011049920.4A patent/CN112035381B/zh active Active
-
2021
- 2021-04-23 WO PCT/CN2021/089372 patent/WO2022068185A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324867A (zh) * | 2007-06-16 | 2008-12-17 | 深圳市硅格半导体有限公司 | 基于半导体存储介质的数据管理装置及管理方法 |
CN102165532A (zh) * | 2008-09-30 | 2011-08-24 | 美光科技公司 | 具有并行操作模式的固态存储装置控制器 |
US20140108705A1 (en) * | 2012-10-12 | 2014-04-17 | Sandisk Technologies Inc. | Use of High Endurance Non-Volatile Memory for Read Acceleration |
CN105045525A (zh) * | 2014-04-21 | 2015-11-11 | 三星电子株式会社 | 存储控制器、存储系统及操作存储控制器的方法 |
CN112035381A (zh) * | 2020-09-29 | 2020-12-04 | 深圳大普微电子科技有限公司 | 一种存储系统及存储数据处理方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116418624A (zh) * | 2023-02-24 | 2023-07-11 | 埃尔利德(广东)智能科技有限公司 | 基于主从控制的工业设备通信系统及通信方法 |
CN116418624B (zh) * | 2023-02-24 | 2023-11-03 | 埃尔利德(广东)智能科技有限公司 | 基于主从控制的工业设备通信系统及通信方法 |
CN116301667A (zh) * | 2023-05-24 | 2023-06-23 | 山东浪潮科学研究院有限公司 | 一种数据库系统,数据访问方法、装置、设备及存储介质 |
CN116301667B (zh) * | 2023-05-24 | 2023-09-01 | 山东浪潮科学研究院有限公司 | 一种数据库系统,数据访问方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112035381B (zh) | 2023-10-27 |
CN112035381A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022068185A1 (zh) | 一种存储系统及存储数据处理方法 | |
US10725956B2 (en) | Memory device for a hierarchical memory architecture | |
US9887008B2 (en) | DDR4-SSD dual-port DIMM device | |
TW201716980A (zh) | 資料儲存設備及其操作方法 | |
US10949120B2 (en) | Host defined bandwidth allocation for SSD tasks | |
TW201032053A (en) | A bridging device having a virtual page buffer | |
KR20120001771A (ko) | 구성 가능한 대역폭 메모리 장치들 및 방법들 | |
US9996280B2 (en) | Data register copying for non-volatile storage array operations | |
US20180129440A1 (en) | Self-virtualizing flash memory for solid state drive | |
US20210286551A1 (en) | Data access ordering for writing-to or reading-from memory devices | |
CN114296638B (zh) | 存算一体化固态硬盘控制器及相关装置、方法 | |
US20230092562A1 (en) | System, device, and method for memory interface including reconfigurable channel | |
US11029847B2 (en) | Method and system for shared direct access storage | |
CN110554833B (zh) | 存储设备中并行处理io命令 | |
KR20200011136A (ko) | 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법 | |
US11901032B2 (en) | Memory device and memory system capable of using redundancy memory cells | |
KR20220091362A (ko) | Dram-리스 멀티레벨 셀 프로그래밍을 위한 nand 버퍼의 이용 | |
WO2015018332A1 (zh) | 数据存储装置和flash存储装置的块删除块写入方法 | |
CN117033267B (zh) | 混合存储主控制器及混合存储器 | |
WO2023169142A1 (zh) | 一种存储装置及相关数据分区管理方法 | |
US20240069738A1 (en) | Accessing memory devices via switchable channels | |
WO2021041004A1 (en) | Managing attributes of memory components | |
CN115757210A (zh) | 地址访问方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21873849 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21873849 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 04.10.2023) |