CN112181293A - 固态硬盘控制器、固态硬盘、存储系统及数据处理方法 - Google Patents
固态硬盘控制器、固态硬盘、存储系统及数据处理方法 Download PDFInfo
- Publication number
- CN112181293A CN112181293A CN202010982528.9A CN202010982528A CN112181293A CN 112181293 A CN112181293 A CN 112181293A CN 202010982528 A CN202010982528 A CN 202010982528A CN 112181293 A CN112181293 A CN 112181293A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- solid state
- host
- processor cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及固态硬盘应用领域,公开了一种固态硬盘控制器、固态硬盘、存储系统及数据处理方法,该固态硬盘控制器包括至少一个第一处理器集群以及至少一个第二处理器集群,所述第一处理器集群用于处理数据存储操作,所述第二处理器集群用于处理数据计算操作,通过设置第一处理器集群和第二处理器集群分别用于处理数据存储操作和数据计算操作,并通过内部通信模块实现第一处理器集群和第二处理器集群的数据和信息的交互,本发明能够提高固态硬盘的存储计算一体化的处理能力。
Description
技术领域
本发明涉及固态硬盘应用领域,特别是涉及一种固态硬盘控制器、固态硬盘、存储系统及数据处理方法。
背景技术
固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片)。目前固态硬盘系统中有相当部分是存在动态随机存取存储器(Dynamic Random Access Memory,DRAM)的,所以SSD有较大的数据缓存空间用来缓存数据。闪存(NAND Flash)是固态硬盘的主要存储介质。
固态硬盘已经成为数据存储主要器件,在大数据应用的背景下,海量的数据传输占用了各类总线,网络带宽,与此同时,固态硬盘本身含有的CPU的算力也越来越强。为了减少大数据量的传输,从而衍生出各类对存储计算一体化的需求,如边缘计算(EdgeComputing),机器学习(Machine Learning)在存储中应用需求,即在数据端固态硬盘内进行计算处理,仅传输结果和部分数据,从而减少海量数据传输,减轻总线和网络负载。
在传统的固态硬盘中,一般都是偏重实时处理数据,都是采用不带操作系统(裸系统,BareMetal)的固件(FW,Firmware),虽然有的设计也带有RTOS,但都是仅仅作为简单调度使用或者简单的文件系统使用。这种设计没有考虑相关计算应用需求,故而应用型处理能力很弱,无法满足存储计算的需求,如边缘计算,机器学习在存储中应用需求,一般需要应用操作系统支持。
发明人在实现本发明的过程中,发现目前的技术方案至少存在以下技术问题:固态硬盘的数据计算的处理能力不足。
发明内容
本发明实施例旨在提供一种固态硬盘控制器、固态硬盘、存储系统及数据处理方法,其解决了现有固态硬盘的数据计算的处理能力不足的技术问题,提高固态硬盘的存储计算一体化的处理能力。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种固态硬盘控制器,应用于固态硬盘,所述固态硬盘与主机系统通信连接,所述固态硬盘包括至少一个闪存介质,所述固态硬盘控制器包括:
至少一个第一处理器集群以及至少一个第二处理器集群,所述第一处理器集群用于处理数据存储操作,所述第二处理器集群用于处理数据计算操作;
内部通信模块,连接所述至少一个第一处理器集群以及至少一个第二处理器集群,用于对接所述第一处理器集群以及第二处理器集群,以实现第一处理器集群和第二处理器集群的数据和信息的交互;
至少一个数据存储接口,连接所述主机系统以及每一所述第一处理器集群,用于接收主机系统发送的数据存储操作,并向所述第一处理器集群转发主机系统发送的数据存储操作;
至少一个数据计算接口,连接所述主机系统以及每一所述第二处理器集群,用于接收主机系统发送的数据计算操作,并向第二处理器集群转发主机系统发送的数据计算操作。
在一些实施例中,所述主机系统包括第一主机和第二主机,所述数据存储接口连接所述第一主机,用于接收所述第一主机发送的数据存储操作,所述数据计算接口连接所述第二主机,用于接收所述第二主机发送的数据计算操作。
在一些实施例中,所述第一处理器集群包括数据存储处理系统,用于进行数据存储操作;
所述第二处理器集群包括数据计算应用系统,用于进行数据计算操作,其中,所述数据存储处理系统和所述数据计算应用系统独立并行运行。
在一些实施例中,所述数据存储处理系统,包括:
前端模块,连接所述数据存储接口,用于处理和主机系统的通信协议以及分发主机系统发送的数据存储操作;
数据处理模块,连接所述前端模块,用于数据通路的处理;
映射表管理模块,连接所述数据处理模块,用于映射表的管理以及写入闪存数据颗粒度的管理;
后端模块,连接所述映射表管理模块以及闪存介质,用于闪存数据读写以及闪存命令的管理。
在一些实施例中,所述数据计算应用系统,包括:
操作系统模块,用于进行操作系统的底层操作;
数据计算应用模块,用于进行和主机发送的数据计算任务相关的应用处理;
数据计算中间模块,连接所述操作系统模块和所述数据计算应用模块,用于将所述数据计算任务转化成IO操作;
驱动模块,连接所述数据计算中间模块、数据计算接口以及内部通信模块,用于通过所述数据计算接口向所述内部通信模块发送IO操作,或者,通过所述数据计算接口接收所述内部通信模块发送的IO操作。
在一些实施例中,所述内部通信模块包括内部通信系统,所述内部通信系统包括:
队列模块,用于对IO操作进行排序;
共享内存模块,用于对IO操作对应的IO数据进行缓存;
逻辑电路模块,用于管理所述IO操作的发送端与接收端。
在一些实施例中,所述第一处理器集群以及第二处理器集群均包括至少一个处理单元,所述处理单元包括应用处理器和/或实时处理器,所述内部通信模块包括进程间通信模块。
第二方面,本发明实施例提供一种固态硬盘,包括:
如上所述的固态硬盘控制器;
至少一个闪存介质,与所述固态硬盘控制器通信连接。
第三方面,本发明实施例提供一种存储系统,包括:
如上所述的固态硬盘;
主机系统,所述主机系统包括:
存储管理系统,用于对接所述第一处理器集群;
计算管理系统,用于对接所述第二处理器集群。
第四方面,本发明实施例提供一种数据处理方法,应用于如上所述的固态硬盘,所述固态硬盘通信连接主机系统,所述固态硬盘包括数据存储处理系统、数据计算应用系统以及内部通信系统,所述方法包括:
接收主机系统发送的操作任务命令,其中,所述操作任务命令包括至少一个操作任务的信息;
将所述至少一个操作任务转化为IO操作,并向所述内部通信系统发送所述IO操作,以使所述内部通信系统将所述IO操作转发到所述数据存储处理系统;
获取所述数据存储处理系统发送的IO数据,对所述IO数据进行数据计算,生成数据计算结果,并向所述主机系统发送所述数据计算结果。
第五方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使固态硬盘能够执行如上所述的数据管理方法。
本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种固态硬盘控制器,应用于固态硬盘,所述固态硬盘与主机系统通信连接,所述固态硬盘包括至少一个闪存介质,所述固态硬盘控制器包括:至少一个第一处理器集群以及至少一个第二处理器集群,所述第一处理器集群用于处理数据存储操作,所述第二处理器集群用于处理数据计算操作;内部通信模块,连接所述至少一个第一处理器集群以及至少一个第二处理器集群,用于对接所述第一处理器集群以及第二处理器集群,以实现第一处理器集群和第二处理器集群的数据和信息的交互;至少一个数据存储接口,连接所述主机系统以及每一所述第一处理器集群,用于接收主机系统发送的数据存储操作,并向所述第一处理器集群转发主机系统发送的数据存储操作;至少一个数据计算接口,连接所述主机系统以及每一所述第二处理器集群,用于接收主机系统发送的数据计算操作,并向第二处理器集群转发主机系统发送的数据计算操作。一方面,通过设置第一处理器集群和第二处理器集群分别用于处理数据存储操作和数据计算操作,并通过内部通信模块实现第一处理器集群和第二处理器集群的数据和信息的交互,本发明能够提高固态硬盘的存储计算一体化的处理能力,另一方面,通过设置数据存储接口和数据计算接口,本发明能够解决计算应用通路和数据存储通路相互竞争带宽的问题,从而提高响应速度。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是现有技术的固态硬盘硬件框架的结构示意图;
图2是现有技术的固态硬盘的结构示意图;
图3是本发明实施例提供的一种固态硬盘硬件框架的结构示意图;
图4是本发明实施例提供的一种固态硬盘控制器的结构示意图;
图5是图4中的第一处理器集群的结构示意图;
图6是图4中的第二处理器集群的结构示意图;
图7是本发明实施例提供的一种固态硬盘控制器的内部系统的示意图;
图8是图4中的内部通信模块的结构示意图;
图9是本发明实施例提供的主机与固态硬盘的连接关系的示意图;
图10是本发明实施例提供的另一种固态硬盘控制器的结构示意图;
图11是本发明实施例提供的一种固态硬盘的结构示意图;
图12是本发明实施例提供的一种存储系统的结构示意图;
图13是本发明实施例提供的一种存储系统的底层结构示意图;
图14是本发明实施例提供的一种IO操作的示意图;
图15是本发明实施例提供的一种数据处理方法的流程示意图;
图16是本发明实施例提供的一种数据处理方法的整体流程示意图;
图17是本发明实施例提供的一种数据处理方法的计算应用实例的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
请参阅图1,图1是现有技术的固态硬盘硬件框架的结构示意图;
如图1所示,固态硬盘(Solid State Drives,SSD)通常包括固态硬盘控制器,即主控制器(SSD Controller)、连接器(Connector)、闪存阵列、缓存单元以及其他外围单元。
其中,固态硬盘控制器用于作为控制运算单元,管理SSD内部系统;闪存阵列(NANDFlash),作为存储单元,用于存储数据,包括用户数据和系统数据,闪存阵列一般呈现多个通道(Channel,简写CH),一个通道独立连接一组NAND Flash,例如CH0/CH1……CHx。其中闪存(NAND Flash),其特性是写入之前,必须进行擦除,且每个闪存擦除次数有限;缓存单元,用于缓存映射表,所述缓存单元一般为动态随机存取存储器(Dynamic Random AccessMemory,DRAM)。连接器(Connector)用于连接主机,例如:PC或者服务器,其他外围单元可以包括串口、传感器、寄存器、电源芯片等部件。
请再参阅图2,图2是现有技术的固态硬盘的结构示意图;
如图2所示,所述固态硬盘包括闪存介质以及与所述闪存介质连接的固态硬盘控制器。其中,所述固态硬盘通过有线或无线的方式与所述主机通信连接,用以实现数据交互。
闪存介质,作为所述固态硬盘的存储介质,也称作闪存、Flash、Flash存储器或Flash颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存介质得以成为各类便携型数字设备的存储介质的基础。
其中,闪存介质可以为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页的容量。具体的,闪存介质200按照存储单元的电压的不同层次,可分为SLC、MLC、TLC以及QLC。
固态硬盘控制器,包括数据转换器、处理器、缓存器、闪存控制器以及接口。
数据转换器,分别与处理器和闪存控制器连接,所述数据转换器用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当所述闪存控制器向所述闪存介质写入数据时,通过所述数据转换器将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质。当所述闪存控制器从所述闪存介质读取数据时,通过所述数据转换器将闪存介质中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,所述数据转换器可以包括二进制数据寄存器和十六进制数据寄存器。所述二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,所述十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
处理器,分别与数据转换器、缓存器、闪存控制器以及接口连接,其中,处理器与数据转换器、缓存器、闪存控制器以及接口可以通过总线或者其他方式连接,所述处理器用于运行存储在缓存器中的非易失性软件程序、指令以及模块,从而实现本发明任一方法实施例。
缓存器,主要用于缓存主机发送的读/写指令以及根据主机发送的读/写指令从闪存介质获取的读数据或者写数据。缓存器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。缓存器可以包括存储程序区,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,缓存器103可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,缓存器可选包括相对于处理器远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述缓存器可以为静态随机存取存储器(Static Random Access Memory,SRAM)或者耦合内存(Tightly Coupled Memory,TCM)或者双倍速率同步动态随机存储器(DoubleDataRate 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协议。
在现有技术的固态硬盘中,一般都是偏重实时处理数据,都是采用不带操作系统(裸系统,BareMetal)的固件(FW,Firmware),此类系统只能偏重于应用硬件支持的数据计算,软件只能承接简单的计算,导致固态硬盘的数据计算的处理能力不足,并且,由于现有技术的固态硬盘一般采用一个接口,数据存储和数据计算都是通过同一个接口进行数据传输,导致总线带宽受到影响,从而降低响应速度。
有鉴于此,本发明提供一种固态硬盘控制器、固态硬盘、存储系统及数据处理方法,以提高固态硬盘的存储计算一体化的处理能力。
下面结合说明书附图阐述本发明的技术方案。
请参阅图3,图3是本发明实施例提供的一种固态硬盘硬件框架的结构示意图;
相比图1中的现有技术的固态硬盘硬件框架,本发明实施例提出通过两个接口,分别为Connector0和Connector1,分别用于数据存储和数据计算,通过主机接口的分离以解决计算应用通路和数据存储通路相互竞争总线带宽的问题。
请再参阅图4,图4是本发明实施例提供的一种固态硬盘控制器的结构示意图;
如图4所示,该固态硬盘控制器100包括:第一处理器集群10、第二处理器集群20、内部通信模块30、数据存储接口40以及数据计算接口50,其中,所述数据存储接口40连接所述第一处理器集群10,所述数据计算接口50连接所述第二处理器集群20,所述内部通信模块20分别连接所述第一处理器集群10以及第二处理器集群20。
在本发明实施例中,所述固态硬盘控制器100包括:主控模块(图未示),所述第一处理器集群10、第二处理器集群20均集成于所述主控模块,即所述主控模块包括所述第一处理器集群10以及所述第二处理器集群20,其中,所述主控模块为主控芯片。
具体的,所述第一处理器集群10,包括至少一个处理单元,所述处理单元包括应用处理器和/或实时处理器,所述处理单元,包括数据存储处理系统,用于进行数据存储处理。
请再参阅图5,图5是图4中的第一处理器集群的结构示意图;
如图5所示,该第一处理器集群10包括数据存储处理系统11,用于进行数据存储操作,该数据存储处理系统11,包括:
前端模块111,即(Front End,FE),连接所述数据存储接口,用于处理和主机系统的通信协议以及分发主机系统发送的数据存储操作;
数据处理模块112,即(Data Process,DP),连接所述前端模块111,用于数据通路的处理,具体的,用于负责命令级数据处理,比如缓存数据等;
映射表管理模块113,即(Flash Translation Layer,FTL),连接所述数据处理模块112,用于映射表的管理以及写入闪存数据颗粒度的管理;
后端模块114,即(Back End,BE),连接所述映射表管理模块113以及闪存介质,用于闪存数据读写以及闪存命令的管理。
具体的,所述第二处理器集群20,包括至少一个处理单元,所述处理单元包括应用处理器和/或实时处理器,所述处理单元,包括数据计算应用系统,用于进行数据计算处理。
请再参阅图6,图6是图4中的第二处理器集群的结构示意图;
如图6所示,该第二处理器集群20,包括数据计算应用系统21,用于进行数据计算操作,其中,所述数据计算应用系统21,包括:操作系统模块211、数据计算应用模块212、数据计算中间模块213以及驱动模块214。
具体的,所述操作系统模块211,用于进行操作系统的底层操作,所述操作系统模块211为操作系统内核(OS Kernel),用于进行操作系统的底层操作,包括命令解析、代码编译等底层操作;
具体的,数据计算应用模块212,连接所述操作系统模块211,用于进行和主机发送的数据计算任务相关的应用处理,在本发明实施例中,所述数据计算应用模块212为数据计算应用层,用于进行和主机任务相关应用处理。由于基于操作系统(Operation System,OS),应用层的开发具有非常高的通用性,可以脱离相关硬件特性,应用包括搜索引擎的求列表交集(List Intersection),MySQL的检索等;
具体的,数据计算中间模块213,连接所述操作系统模块211、所述数据计算应用模块212以及驱动模块214,用于将所述数据计算任务转化成IO操作,例如:处理底层驱动和应用层的衔接事务。如将数据计算任务转化成特定的IO操作。
具体的,所述驱动模块214,连接所述数据计算中间模块213、数据计算接口以及内部通信模块,用于通过所述数据计算接口向所述内部通信模块发送IO操作,或者,通过所述数据计算接口接收所述内部通信模块发送的IO操作。在本发明实施例中,所述驱动模块214为专用驱动层,主要处理和硬件特性相关驱动处理,如IPC相关接口出来,同时负责发送或者接收特定的IO操作。
在本发明实施例中,所述数据计算应用系统21还包括接口模块215,所述接口模块215连接所述数据计算应用模块212以及所述驱动模块214,所述接口模块215用于通信连接所述数据计算接口50,以向所述驱动模块214或数据计算应用模块212发送IO操作,或者,所述接口模块215通信连接所述主机接口,用于接收主机发送的主机命令。
在本发明实施例中,所述数据存储处理系统和所述数据计算应用系统独立并行运行。通过在第一处理器集群上运行数据存储处理系统,用于专门处理存储事务,在第二处理器集群上运行数据计算应用系统,用于专门处理计算应用事务,本发明能够提高第一处理器集群和第二处理器集群的处理效率。
请再参阅图7,图7是本发明实施例提供的一种固态硬盘控制器的内部系统的示意图;
如图7所示,第一处理器集群(第一CPU Cluster)和第二处理器集群(第二CPUCluster)通过内部通信模块(Inter-Process Communication,IPC)进行通信连接,由于需要同时满足存储和计算两种不同的需求,所述第一处理器集群运行数据存储处理系统,所述第二处理器集群运行数据计算应用系统,其中,所述数据存储处理系统和所述数据计算应用系统的架构不同,其中第一CPU Cluster上运行实时处理系统,一般只用RTOS或者固件(BareMetal Firmware),用于数据存储相关的处理;第二CPU Cluster上运行计算应用系统,一般是应用操作系统,如Linux,用于数据计算相关的处理。为了隔离软件系统的不同特性,软件系统之间,通过进程间通信机制(Inter-Process Communication,IPC)进行通信,完成数据和信息的交互,即通过IPC传递IO操作。
具体的,请再参阅图8,图8是图4中的内部通信模块的结构示意图;
如图8所示,所述内部通信模块30,包括内部通信系统31,所述内部通信系统31包括:队列模块311、共享内存模块312以及逻辑电路模块313,其中,所述队列模块311连接所述共享内存模块312以及所述逻辑电路模块313,,所述共享内存模块312连接所述队列模块311以及逻辑电路模块313,所述逻辑电路模块313连接所述队列模块311以及所述共享内存模块312,相当于所述队列模块311、共享内存模块312以及所述逻辑电路模块313。
具体的,所述队列模块311,连接所述共享内存模块312以及所述逻辑电路模块313,用于对IO操作进行排序,具体的,用于对所述逻辑电路模块313接收到的IO操作进行排序,其中,所述队列模块311包括一先进先出队列(First Input First Output,FIFO),所述先进先出队列用于对所述队列模块311中的IO操作进行排序,例如:所述队列模块根据所述逻辑电路模块313接收到的第一处理器集群和/或第二处理器集群的IO操作根据接收时间进行排序;
具体的,所述共享内存模块312,用于对IO操作对应的IO数据进行缓存,具体的,所述共享内存模块312连接所述队列模块311以及所述逻辑电路模块313,用于对所述IO操作对应的IO数据进行缓存,例如缓存所述逻辑电路模块接收到的所述第一处理器集群的IO数据,或者,缓存所述逻辑电路模块接收到的所述第二处理器集群的IO数据;
具体的,所述逻辑电路模块313,用于管理所述IO操作的发送端与接收端,具体的,所述逻辑电路模块313连接所述第一处理器集群和第二处理器集群,其中,所述逻辑电路模块313连接所述第一处理器集群的数据处理模块,以及,所述逻辑电路模块313连接所述第二处理器集群的驱动模块,用于第一处理器集群和第二处理器集群之间的IO操作的转发,例如:所述第一处理器集群通过所述逻辑电路模块向所述第二处理器集群发送IO操作,或者,所述第二处理器集群通过所述逻辑电路模块向所述第一处理器集群发送IO操作。在本发明实施例中,所述逻辑电路模块包括硬件IPC逻辑电路。
具体的,所述数据存储接口40,连接所述主机系统以及每一所述第一处理器集群10,用于接收主机系统发送的数据存储操作,并向所述第一处理器集群10转发所述主机系统发送的数据存储操作,例如:所述主机系统包括第一主机,所述数据存储接口40通信连接所述第一主机,用于接收所述第一主机发送的数据存储操作,所述数据存储接口将第一主机发送的数据存储操作转发到所述第一处理器集群,以使所述第一处理器集群对所述数据存储操作进行处理。
具体的,所述数据计算接口50,连接所述主机系统以及每一所述第二处理器集群20,用于接收主机系统发送的数据计算操作,并向所述第二处理器集群转发主机系统发送的数据计算操作,例如:所述主机系统包括第二主机,所述数据计算接口50通信连接所述第二主机,用于接收所述第二主机发送的数据计算操作,所述数据计算接口将所述第二主机发送的数据计算操作转发到所述第二处理器集群,以使所述第二处理器集群对所述数据存储操作进行处理。
在本发明实施例中,所述主机系统包括第一主机和第二主机,所述第一主机和第二主机分别通过数据存储接口和数据计算接口与第一处理器集群和第二处理器集群进行对接,以实现数据存储和数据计算的分离,从而提高固态硬盘的存储计算一体化的处理能力。可以理解的是,所述第一主机和第二主机可以为同一主机,同一主机通过数据存储接口和数据计算接口来对接第一处理器集群以及第二处理器集群,从而实现数据存储和数据计算,所述第一主机和第二主机也可以为不同主机,不同主机分别通过数据存储接口和数据计算接口,以分别对接第一处理器集群和第二处理器集群,从而实现数据存储和数据计算。
请再参阅图9,图9是本发明实施例提供的主机与固态硬盘的连接关系的示意图;
如图9所示,通过总线(Bus,包括PCIe/SATA/PATA/USB等)和第一主机通信,接收数据存储相关操作;通过总线(Bus,包括PCIe/SATA/PATA/USB等)或者网络(Ethernet/Fibre/WIFI/5G/FC等)与第二主机通信,接收相关数据计算的相关操作,从而实现多主机多接口。可以理解的是,所述第一主机和第二主机可以是同一主机,也可以不同主机,例如:第一主机是本地主机,第二主机是云端服务器。
请再参阅图10,图10是本发明实施例提供的另一种固态硬盘控制器的结构示意图;
如图10所示,该固态硬盘控制器100包括多个数据存储接口40、多个第一处理器集群10、多个第二处理器集群20以及内部通信模块30,其中,每一数据存储接口40对应一个第一处理器集群10,每一数据计算接口50对应一个第二处理器集群20,每一第一处理器集群10以及每一第二处理器集群20均连接所述内部通信模块30,以使所述每一第一处理器集群10以及每一第二处理器集群20的数据和信息通过所述内部通信模块30进行交互,可以理解的是,每一所述数据存储接口40均用于对接主机,每一所述数据计算接口50均用于对接主机,多个数据存储接口40可以对接同一主机,或者,每一数据存储接口40一一对接一个主机,多个数据计算接口50可以对接同一主机,或者,每一数据计算接口50一一对接一个主机,其中,多个数据存储接口40以及多个数据计算接口50可以对接同一主机。
在本发明实施例中,通过提供一种固态硬盘控制器,应用于固态硬盘,所述固态硬盘与主机系统通信连接,所述固态硬盘包括至少一个闪存介质,所述固态硬盘控制器包括主控模块,其中,所述主控模块包括:至少一个第一处理器集群以及至少一个第二处理器集群,所述第一处理器集群用于处理数据存储操作,所述第二处理器集群用于处理数据计算操作;内部通信模块,连接所述至少一个第一处理器集群以及至少一个第二处理器集群,用于对接所述第一处理器集群以及第二处理器集群,以实现第一处理器集群和第二处理器集群的数据和信息的交互;至少一个数据存储接口,连接所述主机系统以及每一所述第一处理器集群,用于接收主机系统发送的数据存储操作,并向所述第一处理器集群转发主机系统发送的数据存储操作;至少一个数据计算接口,连接所述主机系统以及每一所述第二处理器集群,用于接收主机系统发送的数据计算操作,并向第二处理器集群转发主机系统发送的数据计算操作。一方面,通过设置第一处理器集群和第二处理器集群分别用于处理数据存储操作和数据计算操作,并通过内部通信模块实现第一处理器集群和第二处理器集群的数据和信息的交互,本发明能够提高固态硬盘的存储计算一体化的处理能力,另一方面,通过设置数据存储接口和数据计算接口,本发明能够解决计算应用通路和数据存储通路相互竞争带宽的问题,从而提高响应速度。
请再参阅图11,图11是本发明实施例提供的一种固态硬盘的结构示意图;
如图11所示,该固态硬盘200包括:固态硬盘控制器100以及至少两个闪存介质210,其中,所述固态硬盘控制器100通信连接所述至少两个闪存介质210。
具体的,所述固态硬盘控制器100包括:第一处理器集群10、第二处理器集群20、内部通信模块30、数据存储接口40以及数据计算接口50,其中,所述数据存储接口40连接所述第一处理器集群10,所述数据计算接口50连接所述第二处理器集群20,所述内部通信模块20分别连接所述第一处理器集群10以及第二处理器集群20,以实现第一处理器集群10和第二处理器集群20的数据和信息的交互。
在本发明实施例中,所述第一处理器集群10和第二处理器集群20通信连接多个闪存介质210,以进行多个闪存介质的IO操作。
具体的,所述闪存介质210,可以为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。
请再参阅图12,图12是本发明实施例提供的一种存储系统的结构示意图;
如图12所示,该存储系统400,包括:固态硬盘200以及主机系统300,所述固态硬盘200通信连接所述主机系统300,其中,所述固态硬盘200包括固态硬盘控制器100以及至少两个闪存介质210,所述固态硬盘控制器100连接所述闪存介质210。
具体的,所述固态硬盘控制器100包括:第一处理器集群10、第二处理器集群20、内部通信模块30、数据存储接口40以及数据计算接口50,其中,所述数据存储接口40连接所述第一处理器集群10,所述数据计算接口50连接所述第二处理器集群20,所述内部通信模块20分别连接所述第一处理器集群10以及第二处理器集群20,以实现第一处理器集群10和第二处理器集群20的数据和信息的交互。
在本发明实施例中,所述第一处理器集群10和第二处理器集群20通信连接多个闪存介质210,以进行多个闪存介质的IO操作。
具体的,所述主机系统300包括第一主机310和第二主机320,所述第一主机310通过所述数据存储接口40通信连接所述第一处理器集群10,所述第一主机310通过所述数据存储接口40向所述第一处理器集群10发送数据存储操作,以使所述第一处理器集群10处理所述数据存储操作,所述第二主机320通过所述数据计算接口50通信连接所述第二处理器集群20,所述第二主机320通过所述数据计算接口50向所述第二处理器集群20发送数据计算操作,以使所述第二处理器集群20处理所述数据计算操作。
可以理解的是,所述第一主机和第二主机可以是同一主机,也可以不同主机,例如:第一主机是本地主机,第二主机是云端服务器。
请再参阅图13,图13是本发明实施例提供的一种存储系统的底层结构示意图;
如图13所示,该存储系统包括主机系统和存储器系统,所述主机系统通信连接所述存储器系统。
具体的,所述主机系统包括第一主机、第二主机以及第一存算应用程序系统,其中,所述第一主机包括第一操作系统内核、存储管理系统以及第一设备驱动系统,所述第二主机包括第二操作系统内核、计算管理系统以及第二设备驱动系统,可以理解的是,所述第一操作系统内核和所述第二操作系统内核可以相同,也可以不同,所述第一设备驱动系统可以相同,也可以不同。
具体的,所述存储器系统属于固态硬盘,即所述固态硬盘包括所述存储器系统,所述存储器系统包括主机接口层、数据管理层、存储算法管理层、存储管理层以及设备驱动层;
其中,所述存储器系统还包括主机接口管理系统、第二存算应用程序系统、文件系统、存算专用驱动以及操作系统内核;
在本发明实施例中,所述第二存算应用程序系统包括数据存储处理系统以及数据计算应用系统,所述第一存算应用程序系统通信连接所述第二存算应用程序系统,其中,所述第一存算应用程序系统用于处理数据存储操作和/或数据计算操作,所述第二存算应用程序系统也用于处理数据存储操作和/或数据计算操作,具体的,所述数据存储处理系统用于处理数据存储操作,所述数据计算应用系统用于处理数据计算操作,所述第一主机通信连接所述数据存储处理系统,所述第二主机通信连接所述数据计算应用系统,所述第一主机用于向所述数据存储处理系统发送数据存储操作,以及所述第二主机用于向所述数据计算应用系统发送数据计算操作,以使所述数据存储处理系统处理所述数据存储操作,所述数据计算应用系统处理所述数据计算操作。
请再参阅图14,图14是本发明实施例提供的一种IO操作的示意图;
如图14所示,其中,Host0为第一主机,Host1为第二主机,IF Module为接口模块,CPU Cluster0为第一处理器集群,CPU Cluster1为第二处理器集群,APL(ApplicationLayer)为应用层,MDL(Middle Layer)为中间层,SDL(Specific Drive Layer)为专用驱动层,OS Kernel为操作系统层,IPC System为IPC系统,即内部通信系统,FE(Front End)为前端模块,DP(Data Process)为数据处理模块,FTL(Flash Translation Layer)为算法模块,BE(Back End)为后端模块,NAND Flash为闪存介质,其中,前端模块(FE)负责主机通信协议栈,命令数据分发处理。数据处理模块(DP)负责数据通路的处理,如写缓存的管理。算法模块(FTL)负责映射表的管理,写入闪存数据颗粒度的管理等。后端模块(BE)负责闪存数据读写和相关闪存命令的管理。
其中,第一处理器集群(CPU Cluster 0)包括数据存储处理系统,所述第二处理器集群(CPU Cluster 1)包括数据计算应用系统,所述数据存储处理系统系统以及所述数据计算应用系统均有分层结构,所述数据存储处理系统和所述数据计算应用系统之间传递的IO操作通过IPC系统进行传递。具体的,通过在底层设定特定的数据处理单元,所述数据处理单元包括数据,操作信息等。可以理解的是,对应驱动而言,派发或者读取IO操作是把IO操作的信息写入或者读取到所述IPC系统的接口,从而较好的隔离所述数据存储处理系统和所述数据计算应用系统。
请再参阅图15,图15是本发明实施例提供的一种数据处理方法的流程示意图;
其中,该数据处理方法,应用于上述实施例中的固态硬盘,具体的,应用于上述实施例的固态硬盘中的固态硬盘控制器,所述固态硬盘控制器包括:
至少一个第一处理器集群以及至少一个第二处理器集群,所述第一处理器集群用于处理数据存储操作,所述第二处理器集群用于处理数据计算操作;
内部通信模块,连接所述至少一个第一处理器集群以及至少一个第二处理器集群,用于对接所述第一处理器集群以及第二处理器集群,以实现第一处理器集群和第二处理器集群的数据和信息的交互;
至少一个数据存储接口,连接所述主机系统以及每一所述第一处理器集群,用于接收主机系统发送的数据存储操作,并向所述第一处理器集群转发主机系统发送的数据存储操作;
至少一个数据计算接口,连接所述主机系统以及每一所述第二处理器集群,用于接收主机系统发送的数据计算操作,并向第二处理器集群转发主机系统发送的数据计算操作。
如图15所示,该数据处理方法,包括:
步骤S10:接收主机系统发送的操作任务命令,其中,所述操作任务命令包括至少一个操作任务的信息;
具体的,固态硬盘通信连接所述主机系统,所述固态硬盘的固态硬盘控制器接收主机系统发送的操作任务命令,例如:所述主机系统包括第一主机和第二主机,所述第一主机用于发送存储操作命令,所述第二主机用于发送计算操作命令,所述存储操作命令包括存储操作任务,所述计算操作命令包括计算操作任务。
步骤S20:将所述至少一个操作任务转化为IO操作,并向所述内部通信系统发送所述IO操作,以使所述内部通信系统将所述IO操作转发到所述数据存储处理系统;
具体的,所述固态硬盘控制器在接收到所述主机系统发送的操作任务命令之后,确定所述操作任务命令包括的至少一个操作任务,并将所述至少一个操作任务转化为IO操作,以将所述IO操作发送到所述内部通信系统,以使所述内部通信系统将所述IO操作转发到所述数据存储处理系统。
步骤S30:获取所述数据存储处理系统发送的IO数据,对所述IO数据进行数据计算,生成数据计算结果,并向所述主机系统发送所述数据计算结果。
具体的,所述数据存储处理系统在接收到所述IO操作之后,将向闪存介质获取所述IO操作对应的IO数据,并向所述内部通信系统发送所述IO数据,以使所述内部通信系统将所述IO数据转发到所述数据计算应用系统,所述数据计算应用系统获取到所述数据存储处理系统发送的IO数据之后,对所述IO数据进行数据计算,生成数据计算结果,并向所述主机系统发送所述数据计算结果,其中,所述数据存储处理系统与主机系统通过数据存储接口进行信息与数据交互,所述数据计算应用系统与主机系统通过数据计算接口进行信息与数据交互。
在本发明实施例中,所述方法还包括:
根据所述操作任务命令,确定每一操作任务的任务类型,其中,所述任务类型包括读写任务、计算任务;
通过所述数据计算应用系统将每一操作任务转化为IO操作;
根据每一操作任务的任务类型,向所述数据存储处理系统或数据计算应用系统发送对应的IO操作;
向所述内部通信系统发送所述IO操作,以使所述内部通信系统将所述IO操作转发到所述数据存储处理系统。
具体的,请再参阅图16,图16是本发明实施例提供的一种数据处理方法的整体流程示意图;
如图16所示,该数据处理方法,包括:
步骤S161:接收主机命令;
具体的,第二处理器集群(CPU Cluster1)接收主机发送的操作任务命令。
步骤S162:根据命令确定任务类型;
具体的,所述操作任务命令包括多个操作任务,所述第二处理器集群根据所述操作任务命令,确定每一操作任务的任务类型,其中,所述任务类型包括读写任务、计算任务,例如:所述操作任务包括任务0、任务1、任务2、任务3;
步骤S163:转化成IO操作;
具体的,所述第二处理器集群将所述操作任务命令转化为IO操作,例如:所述操作任务命令对应多个操作任务,所述第二处理器集群将每一操作任务转化为一一对应的IO操作;
步骤S164:驱动派发IO操作给IPC;
具体的,所述第二处理器集群将所述IO操作发送到所述内部通信系统,即IPC系统,其中,所述第二处理器集群中的驱动模块将所述IO操作发送到所述内部通信系统;
步骤S165:DP从IPC获得收到IO操作,解析和转义IO操作,并发给FTL;
具体的,所述第二处理器集群的数据处理模块(DP)从内部通信模块(IPC)获取所述IO操作,并对所述内部通信模块发送的IO操作进行解析和转义,生成数据处理模块解析和转义之后的IO操作,并将数据处理模块解析和转义之后的IO操作发送到映射表管理模块(FTL)。
步骤S166:FTL收到IO操作,解析和转义IO操作,并发给BE;
具体的,所述映射表管理模块接收到所述数据处理模块发送的IO操作之后,对所述数据处理模块发送的IO操作进行解析和转义,生成映射表管理模块解析和转义之后的IO操作,并将所述映射表管理模块解析和转义之后的IO操作发送到后端模块(BE)。
步骤S167:BE收到IO操作,解析和转义成Flash操作,并发给Flash;
具体的,所述后端模块接收到所述映射表管理模块发送的映射表管理模块解析和转义之后的IO操作之后,将所述映射表管理模块解析和转义之后的IO操作进行解析和转义,以生成Flash操作,并将所述Flash操作发送到闪存介质(Flash),以使所述闪存介质对所述Flash操作进行执行,生成Flash操作结果。
步骤S168:BE收到Flash操作结果,关联到IO操作回报给FTL;
具体的,当所述闪存介质对所述Flash操作进行执行,生成Flash操作结果之后,所述闪存介质向所述后端模块(BE)返回所述Flash操作结果,所述后端模块接收到所述Flash操作结果之后,将所述Flash操作结果与所述IO操作进行关联,生成IO操作回报数据,并将所述IO操作回报数据发送到映射表管理模块。
步骤S169:FTL处理IO操作回报数据;
具体的,所述映射表管理模块对所述IO操作回报数据进行处理,例如解析和转义;
步骤S1610:DP处理IO操作回报数据;
具体的,所述映射表管理模块对所述IO操作回报数据进行处理之后,生成映射表管理模块处理之后的IO操作回报数据,并将所述映射表管理模块处理之后的IO操作回报数据发送到所述数据处理模块(DP),以使所述数据处理模块基于映射表管理模块处理之后的IO操作回报数据进行处理,例如解析和转义,生成数据处理模块处理之后的IO操作回报数据。
步骤S1611:DP将IO操作回报数据发送给IPC;
具体的,所述数据处理模块将所述数据处理模块处理之后的IO操作回报数据发送到所述内部通信模块(IPC)。
步骤S1612:驱动查询IPC获得CPU Cluster0传递的IO数据;
具体的,所述第二处理器集群(CPU Cluster1)的驱动模块查询所述内部通信模块(IPC)中的共享内存模块,获取所述共享内存模块中的第一处理器集群(CPU Cluster0)传递的IO数据;
步骤S1613:处理IO数据,包括PIS硬件/软件处理;
具体的,所述第二处理器集群(CPU Cluster1)对所述共享内存模块中的第一处理器集群(CPU Cluster0)传递的IO数据进行处理,处理方式包括PIS硬件处理和软件处理。
步骤S1614:更新对应的任务信息;
具体的,所述第二处理器集群对所述IO数据处理之后,更新所述主机系统发送的操作任务命令中的操作任务对应的任务信息,例如:所述操作任务命令中包括多个操作任务,比如:任务0、任务1、任务2等,所述第二处理器集群将更新每一所述操作任务的任务信息,所述任务信息包括任务类型、任务完成情况等信息,并基于所述任务信息,生成任务结果;
步骤S1615:将任务结果回报给主机;
具体的,所述第二处理器集群通过数据计算接口向所述主机系统返回所述任务结果。
具体的,请再参阅图17,图17是本发明实施例提供的一种数据处理方法的计算应用实例的流程示意图;
如图17所示,该计算应用实例是一种典型的搜索应用,该计算应用实例包括:
步骤S171:搜索;
具体的,主机系统对数据进行搜索,获取文档等数据;
步骤S172:解析查询;
具体的,主机系统对搜索到的文档等数据进行解析查询;
步骤S173:获得元数据;
具体的,主机系统对搜索到的数据进行解析查询之后,获取元数据;其中,所述主机系统可以通过所述存储器系统获取元数据;
步骤S174:获得倒排序列表;
具体的,主机系统根据所述元数据,获取倒排序列表;其中,所述主机系统可以向所述存储器系统下发操作任务命令,以使所述根据所述主机系统下发的操作任务命令,对所述文档等数据进行处理,以获得倒排序列表;
步骤S175:计算列表操作;
具体的,所述主机系统对所述倒排序列表进行计算列表操作,所述计算列表操作包括求合集、交集、并集等;其中,所述主机系统可以通过所述存储器系统进行计算列表操作,具体的,通过所述存储器系统的第二处理器集群进行计算列表操作;
步骤S176:计算相似度和排序;
具体的,所述主机系统对所述合集、交集、并集进行计算,确定相似度,并对所述列表中的数据进行排序;其中,所述主机系统可以通过所述存储器系统进行计算相似度和排序操作,具体的,通过所述存储器系统的第二处理器集群进行计算相似度和排序;
步骤S177:确定结果;
具体的,所述主机系统根据所述计算相似度的相似度结果,以及排序的排序结果,确定计算结果,所述计算结果包括相似度结果以及排序结果。其中,所述存储器系统中的第二处理器集群在进行计算相似度和排序操作之后,将获取计算相似度的相似度结果以及排序的排序结果,从而确定计算结果,并向所述主机系统返回所述计算结果。
从图17中可以看出,传统的所有步骤都是在主机计算完成。在引入存算一体化存储器之后,可以把部分计算移入到存取器内。获得倒排序表、计算列表操作等,存储器系统完成后仅返回结果。本发明采用计算应用独立系统之后,对于哪些步骤移入存储器内,可以更灵活:可以把对应步骤的程序移植到存储器内的OS上,而不是通过更新固件的方式迁入。比如获得元数据和计算相似度和排序,可以根据存储器内的CPU算力,或者存取器内系统负载程度,来决定来是否有存储器内进行承接计算。
在本发明实施例中,通过提供一种数据处理方法,应用于上述的固态硬盘,所述固态硬盘通信连接主机系统,所述固态硬盘包括数据存储处理系统、数据计算应用系统以及内部通信系统,所述方法包括:接收主机系统发送的操作任务命令,其中,所述操作任务命令包括至少一个操作任务的信息;将所述至少一个操作任务转化为IO操作,并向所述内部通信系统发送所述IO操作,以使所述内部通信系统将所述IO操作转发到所述数据存储处理系统;获取所述数据存储处理系统发送的IO数据,对所述IO数据进行数据计算,生成数据计算结果,并向所述主机系统发送所述数据计算结果。通过内部通信系统进行数据存储处理系统和数据计算应用系统之间的相关数据交互,本发明能够提高固态硬盘的存储计算一体化的处理能力。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,可使得上述一个或多个处理器可执行上述任意方法实施例中的闪存命令管理方法,例如,执行上述任意方法实施例中的数据处理方法,例如,执行以上描述的图15所示的各个步骤。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种固态硬盘控制器,应用于固态硬盘,所述固态硬盘与主机系统通信连接,所述固态硬盘包括至少一个闪存介质,其特征在于,所述固态硬盘控制器包括:
至少一个第一处理器集群以及至少一个第二处理器集群,所述第一处理器集群用于处理数据存储操作,所述第二处理器集群用于处理数据计算操作;
内部通信模块,连接所述至少一个第一处理器集群以及至少一个第二处理器集群,用于对接所述第一处理器集群以及第二处理器集群,以实现第一处理器集群和第二处理器集群的数据和信息的交互;
至少一个数据存储接口,连接所述主机系统以及每一所述第一处理器集群,用于接收主机系统发送的数据存储操作,并向所述第一处理器集群转发主机系统发送的数据存储操作;
至少一个数据计算接口,连接所述主机系统以及每一所述第二处理器集群,用于接收主机系统发送的数据计算操作,并向第二处理器集群转发主机系统发送的数据计算操作。
2.根据权利要求1所述的固态硬盘控制器,其特征在于,所述主机系统包括第一主机和第二主机,所述数据存储接口连接所述第一主机,用于接收所述第一主机发送的数据存储操作,所述数据计算接口连接所述第二主机,用于接收所述第二主机发送的数据计算操作。
3.根据权利要求1所述的固态硬盘控制器,其特征在于,
所述第一处理器集群包括数据存储处理系统,用于进行数据存储操作;
所述第二处理器集群包括数据计算应用系统,用于进行数据计算操作,其中,所述数据存储处理系统和所述数据计算应用系统独立并行运行。
4.根据权利要求3所述的固态硬盘控制器,其特征在于,所述数据存储处理系统,包括:
前端模块,连接所述数据存储接口,用于处理和主机系统的通信协议以及分发主机系统发送的数据存储操作;
数据处理模块,连接所述前端模块,用于数据通路的处理;
映射表管理模块,连接所述数据处理模块,用于映射表的管理以及写入闪存数据颗粒度的管理;
后端模块,连接所述映射表管理模块以及闪存介质,用于闪存数据读写以及闪存命令的管理。
5.根据权利要求3所述的固态硬盘控制器,其特征在于,所述数据计算应用系统,包括:
操作系统模块,用于进行操作系统的底层操作;
数据计算应用模块,用于进行和主机发送的数据计算任务相关的应用处理;
数据计算中间模块,连接所述操作系统模块和所述数据计算应用模块,用于将所述数据计算任务转化成IO操作;
驱动模块,连接所述数据计算中间模块、数据计算接口以及内部通信模块,用于通过所述数据计算接口向所述内部通信模块发送IO操作,或者,通过所述数据计算接口接收所述内部通信模块发送的IO操作。
6.根据权利要求1所述的方法,其特征在于,所述内部通信模块包括内部通信系统,所述内部通信系统包括:
队列模块,用于对IO操作进行排序;
共享内存模块,用于对IO操作对应的IO数据进行缓存;
逻辑电路模块,用于管理所述IO操作的发送端与接收端。
7.根据权利要求1-6任一项所述的固态硬盘控制器,其特征在于,所述第一处理器集群以及第二处理器集群均包括至少一个处理单元,所述处理单元包括应用处理器和/或实时处理器,所述内部通信模块包括进程间通信模块。
8.一种固态硬盘,其特征在于,包括:
如权利要求1-7任一项所述的固态硬盘控制器;
至少一个闪存介质,与所述固态硬盘控制器通信连接。
9.一种存储系统,其特征在于,包括:
如权利要求8所述的固态硬盘;
主机系统,所述主机系统包括:
存储管理系统,用于对接所述第一处理器集群;
计算管理系统,用于对接所述第二处理器集群。
10.一种数据处理方法,其特征在于,应用于如权利要求8所述的固态硬盘,所述固态硬盘通信连接主机系统,所述固态硬盘包括数据存储处理系统、数据计算应用系统以及内部通信系统,所述方法包括:
接收主机系统发送的操作任务命令,其中,所述操作任务命令包括至少一个操作任务的信息;
将所述至少一个操作任务转化为IO操作,并向所述内部通信系统发送所述IO操作,以使所述内部通信系统将所述IO操作转发到所述数据存储处理系统;
获取所述数据存储处理系统发送的IO数据,对所述IO数据进行数据计算,生成数据计算结果,并向所述主机系统发送所述数据计算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010982528.9A CN112181293B (zh) | 2020-09-17 | 2020-09-17 | 固态硬盘控制器、固态硬盘、存储系统及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010982528.9A CN112181293B (zh) | 2020-09-17 | 2020-09-17 | 固态硬盘控制器、固态硬盘、存储系统及数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181293A true CN112181293A (zh) | 2021-01-05 |
CN112181293B CN112181293B (zh) | 2023-08-22 |
Family
ID=73920150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010982528.9A Active CN112181293B (zh) | 2020-09-17 | 2020-09-17 | 固态硬盘控制器、固态硬盘、存储系统及数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181293B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948300A (zh) * | 2021-01-19 | 2021-06-11 | 浙江大华技术股份有限公司 | 服务器、存算一体设备以及服务器系统 |
CN113205848A (zh) * | 2021-04-27 | 2021-08-03 | 山东华芯半导体有限公司 | 基于忆阻器的存算一体固态硬盘及存算实现方法 |
CN114296638A (zh) * | 2021-12-10 | 2022-04-08 | 深圳大普微电子科技有限公司 | 存算一体化固态硬盘控制器、固态硬盘、数据存储系统及方法 |
CN114647380A (zh) * | 2022-03-23 | 2022-06-21 | 苏州科美信息技术有限公司 | 一种数据存算一体固态硬盘模组及系统 |
CN113205848B (zh) * | 2021-04-27 | 2024-05-31 | 山东华芯半导体有限公司 | 基于忆阻器的存算一体固态硬盘及存算实现方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7913025B1 (en) * | 2007-07-23 | 2011-03-22 | Augmentix Corporation | Method and system for a storage device |
US20150242128A1 (en) * | 2013-12-09 | 2015-08-27 | Empire Technology Development Llc | Hardware interconnect based communication between solid state drive controllers |
CN109298839A (zh) * | 2018-10-26 | 2019-02-01 | 深圳大普微电子科技有限公司 | 基于pis的存储装置控制器、存储装置、系统及方法 |
CN109445686A (zh) * | 2018-09-28 | 2019-03-08 | 方信息科技(上海)有限公司 | 一种存储磁盘以及存取数据的方法 |
CN210466215U (zh) * | 2019-11-18 | 2020-05-05 | 北京博通创鑫科技有限公司 | 用于天基信息港试验床的存算一体装置、主机及系统 |
CN111128279A (zh) * | 2020-02-25 | 2020-05-08 | 杭州知存智能科技有限公司 | 基于NAND Flash的存内计算芯片及其控制方法 |
-
2020
- 2020-09-17 CN CN202010982528.9A patent/CN112181293B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7913025B1 (en) * | 2007-07-23 | 2011-03-22 | Augmentix Corporation | Method and system for a storage device |
US20150242128A1 (en) * | 2013-12-09 | 2015-08-27 | Empire Technology Development Llc | Hardware interconnect based communication between solid state drive controllers |
CN109445686A (zh) * | 2018-09-28 | 2019-03-08 | 方信息科技(上海)有限公司 | 一种存储磁盘以及存取数据的方法 |
CN109298839A (zh) * | 2018-10-26 | 2019-02-01 | 深圳大普微电子科技有限公司 | 基于pis的存储装置控制器、存储装置、系统及方法 |
CN210466215U (zh) * | 2019-11-18 | 2020-05-05 | 北京博通创鑫科技有限公司 | 用于天基信息港试验床的存算一体装置、主机及系统 |
CN111128279A (zh) * | 2020-02-25 | 2020-05-08 | 杭州知存智能科技有限公司 | 基于NAND Flash的存内计算芯片及其控制方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948300A (zh) * | 2021-01-19 | 2021-06-11 | 浙江大华技术股份有限公司 | 服务器、存算一体设备以及服务器系统 |
CN113205848A (zh) * | 2021-04-27 | 2021-08-03 | 山东华芯半导体有限公司 | 基于忆阻器的存算一体固态硬盘及存算实现方法 |
CN113205848B (zh) * | 2021-04-27 | 2024-05-31 | 山东华芯半导体有限公司 | 基于忆阻器的存算一体固态硬盘及存算实现方法 |
CN114296638A (zh) * | 2021-12-10 | 2022-04-08 | 深圳大普微电子科技有限公司 | 存算一体化固态硬盘控制器、固态硬盘、数据存储系统及方法 |
CN114296638B (zh) * | 2021-12-10 | 2024-02-20 | 深圳大普微电子科技有限公司 | 存算一体化固态硬盘控制器及相关装置、方法 |
CN114647380A (zh) * | 2022-03-23 | 2022-06-21 | 苏州科美信息技术有限公司 | 一种数据存算一体固态硬盘模组及系统 |
CN114647380B (zh) * | 2022-03-23 | 2023-11-07 | 苏州科美信息技术有限公司 | 一种数据存算一体固态硬盘模组及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112181293B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112181293B (zh) | 固态硬盘控制器、固态硬盘、存储系统及数据处理方法 | |
US20190227720A1 (en) | Multi-tier scheme for logical storage management | |
CN112035381B (zh) | 一种存储系统及存储数据处理方法 | |
KR102381343B1 (ko) | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 | |
CN103999060A (zh) | 固态存储管理 | |
KR20200025184A (ko) | 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 | |
CN111399750B (zh) | 闪存数据写入方法及计算机可读取存储介质 | |
CN111796759A (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
KR20210083448A (ko) | 비지도 학습 기법을 사용하는 스토리지 장치 및 그것의 메모리 관리 방법 | |
CN114296638B (zh) | 存算一体化固态硬盘控制器及相关装置、方法 | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102544162B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20210144249A (ko) | 저장 장치 및 이의 동작 방법 | |
CN114490023A (zh) | 一种基于arm和fpga的高能物理可计算存储设备 | |
CN113918505A (zh) | 一种星上超高速存储系统及方法 | |
US20240061782A1 (en) | Method and device for data caching | |
CN114153649B (zh) | 一种数据存储设备及其控制方法与电子设备 | |
EP4020220A1 (en) | Utilizing nand buffer for dram-less multilevel cell programming | |
US11494113B2 (en) | Computer program product and method and apparatus for scheduling execution of host commands | |
US11397676B2 (en) | Computer program product and method and apparatus for managing garbage collection process | |
KR20220105285A (ko) | 컨트롤러 및 컨트롤러의 동작 방법 | |
CN114625307A (zh) | 计算机可读存储介质、闪存芯片的数据读取方法及装置 | |
TWI810876B (zh) | 因應主機丟棄命令的資料存取方法及產品電腦程式及裝置 | |
TWI758745B (zh) | 排程主機命令執行的電腦程式產品及方法及裝置 | |
CN110968537B (zh) | 一种基于pcie ssd的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 |