CN114296638A - Storage and computing integrated solid-state hard disk controller, solid-state hard disk, data storage system and method - Google Patents
Storage and computing integrated solid-state hard disk controller, solid-state hard disk, data storage system and method Download PDFInfo
- Publication number
- CN114296638A CN114296638A CN202111506094.6A CN202111506094A CN114296638A CN 114296638 A CN114296638 A CN 114296638A CN 202111506094 A CN202111506094 A CN 202111506094A CN 114296638 A CN114296638 A CN 114296638A
- Authority
- CN
- China
- Prior art keywords
- storage
- computing
- data
- host
- module
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例涉及固态硬盘应用领域,公开了一种存算一体化固态硬盘控制器、固态硬盘、数据存储系统及存算系统之间的数据处理方法,该存算一体化固态硬盘控制器包括存储系统,用于进行数据存储;计算系统,用于进行数据计算;存算通路模块,连接存储系统和计算系统,用于实现存储系统和计算系统之间的数据传输处理。通过设计存算通路模块,实现存储系统和计算系统之间的数据传输,本申请能够优化固态硬盘控制器内部存算系统之间硬件通路设计,使得存储系统和计算系统能够实现内部传输标准化,从而减少软件开发量,提高固态硬盘的软件开发效率。
The embodiments of the present application relate to the application field of solid-state hard disks, and disclose a storage-computing integrated solid-state hard disk controller, a solid-state hard disk, a data storage system, and a data processing method between the storage-computing systems. The storage-computing integrated solid-state hard disk controller includes: The storage system is used for data storage; the computing system is used for data calculation; the storage and calculation path module is used to connect the storage system and the computing system, and is used to realize the data transmission processing between the storage system and the computing system. By designing a storage and calculation path module to realize data transmission between the storage system and the computing system, the present application can optimize the hardware path design between the storage and calculation systems inside the SSD controller, so that the storage system and the computing system can realize internal transmission standardization, thereby Reduce the amount of software development and improve the software development efficiency of solid-state drives.
Description
技术领域technical field
本申请涉及固态硬盘应用领域,特别是涉及一种存算一体化固态硬盘控制器、固态硬盘、数据存储系统及存算系统之间的数据处理方法。The present application relates to the application field of solid-state hard disks, and in particular, to a storage-computing integrated solid-state hard disk controller, a solid-state hard disk, a data storage system, and a data processing method between the storage and computing systems.
背景技术Background technique
固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片)。目前固态硬盘系统中有相当部分是存在动态随机存取存储器(Dynamic Random Access Memory,DRAM)的,所以SSD有较大的数据缓存空间用来缓存数据。闪存(NAND Flash)是固态硬盘的主要存储介质。A solid state drive (Solid State Drives, SSD) is a hard drive made of a solid state electronic storage chip array, and the solid state drive includes a control unit and a storage unit (FLASH memory chip or DRAM memory chip). At present, a considerable part of the solid-state hard disk system has a dynamic random access memory (Dynamic Random Access Memory, DRAM), so the SSD has a large data cache space for caching data. Flash memory (NAND Flash) is the main storage medium of solid-state drives.
固态硬盘已经成为数据存储主要器件,在大数据应用的背景下,海量的数据传输占用了各类总线,网络带宽,与此同时,固态硬盘本身含有的CPU的算力也越来越强。为了减少大数据量的传输,从而衍生出各类对存储计算一体化的需求,如边缘计算(EdgeComputing),机器学习(Machine Learning)在存储中应用需求,即在数据端固态硬盘内进行计算处理,仅传输结果和部分数据,从而减少海量数据传输,减轻总线和网络负载。Solid-state drives have become the main device for data storage. In the context of big data applications, massive data transmission occupies various buses and network bandwidth. At the same time, the computing power of the CPU itself contained in the solid-state drive is also getting stronger and stronger. In order to reduce the transmission of large amounts of data, various requirements for the integration of storage and computing are derived, such as edge computing (Edge Computing), machine learning (Machine Learning) application requirements in storage, that is, computing processing in the data-side SSD , only the result and part of the data are transmitted, thereby reducing mass data transmission and lightening the bus and network load.
目前,在存算一体化的固态硬盘里面引入了双系统架构:一个系统用于数据存储处理,称之为存储系统,另一个系统用于数据计算处理,称之为计算系统,而两个系统之间是通过核间IPC(Inter-Process Communication)机制进行通信,完成数据和信息的交互。IPC通信机制原用于核间通信,主要基于消息机制,用到存算一体系统时,需要自定义协议栈,即当前无论存储系统,还是计算系统,都需要不少软件开发,比如计算系统下作为特定设备进行驱动开发,和存储系统下继续数据通路开发。存在自定义协议栈的情况下,在通用系统下应用和推广会受到一定限制。At present, a dual-system architecture has been introduced into the storage-computing-integrated SSD: one system is used for data storage and processing, which is called a storage system, and the other system is used for data computing and processing, which is called a computing system, and the two systems are The communication between them is through the inter-core IPC (Inter-Process Communication) mechanism to complete the interaction of data and information. The IPC communication mechanism was originally used for inter-core communication. It is mainly based on the message mechanism. When the storage and computing integrated system is used, a custom protocol stack is required, that is, a lot of software development is required for both the storage system and the computing system. For example, under the computing system Drive development as a specific device, and continue data path development under the storage system. In the case of a custom protocol stack, the application and promotion in a general system will be limited to a certain extent.
申请人在实现本申请的过程中,发现目前的技术方案至少存在以下技术问题:存算一体化的固态硬盘控制器内部存算系统之间的通信机制对于软件开发不友好,导致固态硬盘的软件开发效率不足。In the process of realizing the present application, the applicant found that the current technical solution has at least the following technical problems: the communication mechanism between the internal storage and computing systems of the SSD controller integrated with storage and computing is not friendly to software development, resulting in the software development of the SSD. Development efficiency is insufficient.
发明内容SUMMARY OF THE INVENTION
本申请实施例旨在提供一种存算一体化固态硬盘控制器、固态硬盘、数据存储系统及存算系统之间的数据处理方法,其解决了现有存算一体化的固态硬盘控制器内部存算系统之间的通信机制对于软件开发不友好,导致固态硬盘的软件开发效率不足的技术问题,从而减少软件开发量,提高固态硬盘的软件开发效率。The embodiments of the present application aim to provide a storage-computing integrated solid-state hard disk controller, a solid-state hard disk, a data storage system, and a data processing method between the storage-computing systems, which solve the problem of the internal storage-computing integrated solid-state hard disk controller. The communication mechanism between the storage and computing systems is not friendly to software development, which leads to the technical problem of insufficient software development efficiency of solid-state drives, thereby reducing the amount of software development and improving the software development efficiency of solid-state drives.
为解决上述技术问题,本申请实施例提供以下技术方案:In order to solve the above-mentioned technical problems, the embodiments of the present application provide the following technical solutions:
第一方面,本申请实施例提供一种存算一体化固态硬盘控制器,用于存算一体化固态存储,包括:In a first aspect, an embodiment of the present application provides an integrated storage-computing solid-state hard disk controller, which is used for storage-computing integrated solid-state storage, including:
存储系统,用于进行数据存储;storage system for data storage;
计算系统,用于进行数据计算;存算通路模块,连接存储系统和计算系统,用于实现存储系统和计算系统之间的数据传输。The computing system is used to perform data calculation; the storage and computing path module is used to connect the storage system and the computing system, and is used to realize data transmission between the storage system and the computing system.
在一些实施例中,存算通路模块,包括:In some embodiments, the storage path module includes:
主机模块处理单元,用于模拟主机端的功能;The host module processing unit is used to simulate the function of the host side;
设备模块处理单元,用于模拟设备端的功能;The device module processing unit is used to simulate the function of the device side;
通路处理单元,连接主机模块处理单元和设备模块处理单元,用于处理主机模块处理单元和设备模块处理单元的数据需求;The access processing unit is connected to the host module processing unit and the device module processing unit, and is used for processing the data requirements of the host module processing unit and the device module processing unit;
数据通路接口,连接通路处理单元,用于处理内部数据总线的接口需求。The data path interface is connected to the path processing unit and is used to process the interface requirements of the internal data bus.
在一些实施例中,存算通路模块,还包括:In some embodiments, the storage and computing path module further includes:
第一系统接口,连接主机模块处理单元,用于与主机模块处理单元进行交互操作;The first system interface is connected to the host module processing unit, and is used for interacting with the host module processing unit;
第二系统接口,连接设备模块处理单元,用于与设备模块处理单元进行交互操作。The second system interface is connected to the device module processing unit, and is used for interacting with the device module processing unit.
在一些实施例中,存算一体化固态硬盘控制器还包括:In some embodiments, the storage-computing integrated solid-state disk controller further includes:
第一主机接口,用于对接第一主机;a first host interface, used for docking with the first host;
第二主机接口,用于对接第二主机。The second host interface is used to connect to the second host.
在一些实施例中,In some embodiments,
存储系统,包括第一处理器集群,第一处理器集群用于处理数据存储操作;a storage system, including a first processor cluster, where the first processor cluster is used to process data storage operations;
计算系统,包括第二处理器集群,第二处理器集群用于处理数据计算操作。A computing system includes a second processor cluster for processing data computing operations.
在一些实施例中,存储系统还包括:In some embodiments, the storage system further includes:
前端模块,用于处理和第一主机的通信协议以及分发第一主机发送的数据存储操作;a front-end module, used for processing the communication protocol with the first host and distributing the data storage operation sent by the first host;
数据处理模块,连接前端模块,用于数据通路的处理;The data processing module is connected to the front-end module for the processing of the data path;
映射表管理模块,连接数据处理模块,用于映射表的管理以及写入闪存数据颗粒度的管理;The mapping table management module is connected to the data processing module, which is used for the management of the mapping table and the management of the granularity of the data written to the flash memory;
后端模块,连接映射表管理模块以及闪存介质,用于闪存数据读写以及闪存命令的管理。The back-end module is connected to the mapping table management module and the flash media, and is used for flash data read and write and flash command management.
在一些实施例中,In some embodiments,
计算系统和存储系统共用一个动态随机存储器以及动态随机存储器控制器,动态随机存储器连接动态随机存储器控制器;The computing system and the storage system share a dynamic random access memory and a dynamic random access memory controller, and the dynamic random access memory is connected to the dynamic random access memory controller;
第一处理器集群连接存算通路模块,第二处理器集群连接存算通路模块,前端模块连接第一处理器集群和存算通路模块。The first processor cluster is connected to the storage and calculation path module, the second processor cluster is connected to the storage and calculation path module, and the front-end module is connected to the first processor cluster and the storage and calculation path module.
处理单元处理单元处理单元处理单元处理单元处理单元处理单元处理单元处理单元处理单元在一些实施例中,processing unit processing unit processing unit processing unit processing unit processing unit processing unit processing unit processing unit processing unit processing unit In some embodiments,
第一处理器集群包括应用处理器和/或实时处理器;the first processor cluster includes application processors and/or real-time processors;
第二处理器集群包括应用处理器和/或实时处理器。The second processor cluster includes application processors and/or real-time processors.
第二方面,本申请实施例提供一种固态硬盘,包括:In a second aspect, an embodiment of the present application provides a solid-state hard disk, including:
如第一方面的存算一体化固态硬盘控制器;Such as the storage-computing integrated solid-state hard disk controller of the first aspect;
至少一个闪存介质,与固态硬盘控制器连接。At least one flash medium, connected to the SSD controller.
第三方面,本申请实施例提供一种数据存储系统,包括:In a third aspect, an embodiment of the present application provides a data storage system, including:
如第二方面的固态硬盘;Such as the solid-state hard disk of the second aspect;
主机系统,通信连接固态硬盘,主机系统包括:The host system, which is connected to the solid-state hard disk in communication, includes:
第一主机,用于对接存储系统;the first host, used for docking with the storage system;
第二主机,用于对接计算系统。The second host is used for docking with the computing system.
第四方面,本申请实施例提供一种存算系统之间的数据处理方法,应用于第三方面的存储系统,方法包括:In a fourth aspect, an embodiment of the present application provides a data processing method between storage and computing systems, which is applied to the storage system of the third aspect, and the method includes:
接收第一主机或第二主机发送的操作任务命令,其中,操作任务命令包括至少一个操作任务的信息;receiving an operation task command sent by the first host or the second host, wherein the operation task command includes information of at least one operation task;
将至少一个操作任务转化为IO操作,由存算通路模块将IO操作转发到存储系统或直接由存储系统接收,以使存储系统处理IO操作。At least one operation task is converted into an IO operation, and the IO operation is forwarded to the storage system or directly received by the storage system by the storage-computing channel module, so that the storage system processes the IO operation.
第五方面,本申请实施例还提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使固态硬盘能够执行如第四方面的存算系统之间的数据处理方法。In a fifth aspect, the embodiments of the present application further provide a non-volatile computer-readable storage medium, where the computer-readable storage medium stores computer-executable instructions, and the computer-executable instructions are used to enable the solid-state hard disk to execute the fourth aspect. The data processing method between the storage and computing systems.
本申请实施例的有益效果是:区别于现有技术的情况下,本申请实施例提供的一种存算一体化固态硬盘控制器,应用于固态硬盘,该存算一体化固态硬盘控制器包括存储系统,用于进行数据存储;计算系统,用于进行数据计算;存算通路模块,连接存储系统和计算系统,用于实现存储系统和计算系统之间的数据传输。通过设计存算通路模块,实现存储系统和计算系统之间的数据传输,本申请能够优化固态硬盘控制器内部硬件通路设计,使得存储系统和计算系统能够实现内部传输标准化,从而减少软件开发量,提高固态硬盘的软件开发效率。The beneficial effects of the embodiments of the present application are: different from the prior art, an integrated storage-computing solid-state hard disk controller provided by the embodiments of the present application is applied to solid-state hard disks, and the storage-computation integrated solid-state hard disk controller includes: The storage system is used for data storage; the computing system is used for data calculation; the storage and calculation path module is used to connect the storage system and the computing system, and is used to realize the data transmission between the storage system and the computing system. By designing a storage and calculation path module to realize data transmission between the storage system and the computing system, the present application can optimize the internal hardware path design of the SSD controller, so that the storage system and the computing system can standardize the internal transmission, thereby reducing the amount of software development. Improve the software development efficiency of solid-state drives.
附图说明Description of drawings
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。One or more embodiments are exemplified by the pictures in the corresponding drawings, and these exemplifications do not constitute limitations of the embodiments, and elements with the same reference numerals in the drawings are denoted as similar elements, Unless otherwise stated, the figures in the accompanying drawings do not constitute a scale limitation.
图1是本申请实施例提供的一种固态硬盘硬件框架的结构示意图;FIG. 1 is a schematic structural diagram of a solid-state hard disk hardware framework provided by an embodiment of the present application;
图2是本申请实施例提供的一种固态硬盘的结构示意图;FIG. 2 is a schematic structural diagram of a solid-state hard disk provided by an embodiment of the present application;
图3是本申请实施例提供的一种固态硬盘硬件框架的结构示意图;3 is a schematic structural diagram of a solid-state hard disk hardware framework provided by an embodiment of the present application;
图4是本申请实施例提供的一种固态硬盘控制器的结构示意图;FIG. 4 is a schematic structural diagram of a solid-state hard disk controller provided by an embodiment of the present application;
图5是本申请实施例提供的一种固态硬盘控制器的硬件系统示意图;5 is a schematic diagram of a hardware system of a solid-state hard disk controller provided by an embodiment of the present application;
图6是本申请实施例提供的一种主机和存储设备的示意图;6 is a schematic diagram of a host and a storage device provided by an embodiment of the present application;
图7是本申请实施例提供的一种标准PCIe层次结构和本申请的控制器内部实现PCIe层次结构的示意图;FIG. 7 is a schematic diagram of a standard PCIe hierarchical structure provided by an embodiment of the present application and the internal implementation of the PCIe hierarchical structure in the controller of the present application;
图8是本申请实施例提供的一种存算一体化固态硬盘控制器的内部系统的示意图;8 is a schematic diagram of an internal system of a storage-computing integrated solid-state hard disk controller provided by an embodiment of the present application;
图9是本申请实施例提供的一种存算一体化固态硬盘控制器的结构示意图;FIG. 9 is a schematic structural diagram of a storage-computing integrated solid-state hard disk controller provided by an embodiment of the present application;
图10是本申请实施例提供的另一种存算一体化固态硬盘控制器的结构示意图;FIG. 10 is a schematic structural diagram of another storage-computing integrated solid-state hard disk controller provided by an embodiment of the present application;
图11是图9中的存算通路模块的结构示意图;Fig. 11 is the structural representation of the storage calculation path module in Fig. 9;
图12是本申请实施例提供的一种存算通路模块与计算系统、存储系统的连接示意图;12 is a schematic diagram of a connection between a storage and computing path module, a computing system, and a storage system provided by an embodiment of the present application;
图13是本申请实施例提供的一种存算通路模块与计算系统、存储系统的交互示意图;13 is a schematic diagram of interaction between a storage and computing path module, a computing system, and a storage system provided by an embodiment of the present application;
图14是本申请实施例提供的一种存算一体的固态硬盘的硬件系统框架的示意图;14 is a schematic diagram of a hardware system framework of an integrated storage-computing solid-state hard disk provided by an embodiment of the present application;
图15是本申请实施例提供的一种第一处理器集群的结构示意图;FIG. 15 is a schematic structural diagram of a first processor cluster provided by an embodiment of the present application;
图16是本申请实施例提供的一种第二处理器集群的结构示意图;FIG. 16 is a schematic structural diagram of a second processor cluster provided by an embodiment of the present application;
图17是本申请实施例提供的一种固态硬盘与主机的IO操作的示意图;17 is a schematic diagram of an IO operation between an SSD and a host provided by an embodiment of the present application;
图18是本申请实施例提供的一种数据存储系统的结构示意图;18 is a schematic structural diagram of a data storage system provided by an embodiment of the present application;
图19是本申请实施例提供的一种存算系统之间的数据处理方法的流程示意图。FIG. 19 is a schematic flowchart of a data processing method between storage and computing systems provided by an embodiment of the present application.
具体实施方式Detailed ways
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。In order to make the purposes, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments It is a part of the embodiments of the present application, but not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
此外,下面所描述的本申请各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。In addition, the technical features involved in the various embodiments of the present application described below can be combined with each other as long as there is no conflict with each other.
请参阅图1,图1是现有技术的固态硬盘硬件框架的结构示意图;Please refer to FIG. 1, which is a schematic structural diagram of a solid-state hard disk hardware framework in the prior art;
如图1所示,固态硬盘(Solid State Drives,SSD)通常包括固态硬盘控制器,即主控制器(SSD Controller)、连接器(Connector)、闪存阵列、缓存单元以及其他外围单元。As shown in FIG. 1, a solid state drive (Solid State Drives, SSD) generally includes a solid state drive controller, that is, a main controller (SSD Controller), a connector (Connector), a flash memory array, a cache unit, and other peripheral units.
其中,固态硬盘控制器用于作为控制运算单元,管理SSD内部系统;闪存阵列(NANDFlash),作为存储单元,用于存储数据,包括用户数据和系统数据,闪存阵列一般呈现多个通道(Channel,简写CH),一个通道独立连接一组NAND Flash,例如CH0/CH1……CHx。其中闪存(NAND Flash),其特性是写入之前,必须进行擦除,且每个闪存擦除次数有限;缓存单元,用于缓存映射表,缓存单元一般为动态随机存取存储器(Dynamic Random Access Memory,DRAM)。连接器(Connector)用于连接主机,例如:PC或者服务器,其他外围单元可以包括串口、传感器、寄存器、电源芯片等部件。Among them, the solid-state disk controller is used as a control arithmetic unit to manage the internal system of the SSD; the flash memory array (NANDFlash), as a storage unit, is used to store data, including user data and system data, and the flash memory array generally presents multiple channels (Channel, abbreviation). CH), a channel is independently connected to a group of NAND Flash, such as CH0/CH1...CHx. Among them, the flash memory (NAND Flash), whose characteristic is that it must be erased before writing, and the number of times of erasing each flash memory is limited; the cache unit is used to cache the mapping table, and the cache unit is generally a dynamic random access memory (Dynamic Random Access Memory). Memory, DRAM). A connector is used to connect a host, such as a PC or a server, and other peripheral units may include serial ports, sensors, registers, power chips, and other components.
请再参阅图2,图2是本申请实施例提供的固态硬盘的结构示意图;Please refer to FIG. 2 again. FIG. 2 is a schematic structural diagram of a solid-state hard disk provided by an embodiment of the present application;
如图2所示,固态硬盘包括闪存介质以及与闪存介质连接的固态硬盘控制器。其中,固态硬盘通过有线或无线的方式与主机通信连接,用以实现数据交互。As shown in FIG. 2 , the solid state disk includes a flash memory medium and a solid state disk controller connected to the flash memory medium. Among them, the solid state disk is connected to the host through wired or wireless communication to realize data interaction.
闪存介质,作为固态硬盘的存储介质,也称作闪存、Flash、Flash存储器或Flash颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存介质得以成为各类便携型数字设备的存储介质的基础。Flash media, as the storage medium of solid-state drives, also known as flash memory, Flash, Flash memory or Flash particles, is a type of storage device and is a non-volatile memory that can last a long time without current supply. To save data, its storage characteristics are equivalent to hard disks, making flash memory media the basis of storage media for various types of portable digital devices.
其中,闪存介质可以为Nand FLASH,Nand FLASH以单晶体管作为二进制信号的存储单元,其结构与普通的半导体晶体管非常相似,区别在于Nand FLASH的单晶体管加入了浮动栅和控制栅,浮动栅用于贮存电子,表面被一层硅氧化物绝缘体所包覆,并通过电容与控制栅相耦合,当负电子在控制栅的作用下被注入到浮动栅中,Nand FLASH的单晶体的存储状态就由“1”变成了“0”,而当负电子从浮动栅中移走后,存储状态就由“0”变成了“1”,包覆在浮动栅表面的绝缘体用于将浮动栅中的负电子困住,实现数据存储。即Nand FLASH的存储单元为浮动栅晶体管,使用浮动栅晶体管以电荷的形式存储数据。存储电荷的多少与浮动栅晶体管所被施加的电压的大小有关。Among them, the flash memory medium can be Nand FLASH. Nand FLASH uses a single transistor as a storage unit for binary signals. Its structure is very similar to that of ordinary semiconductor transistors. The difference is that the single transistor of Nand FLASH adds a floating gate and a control gate. The floating gate is used for To store electrons, the surface is covered by a layer of silicon oxide insulator, and is coupled with the control gate through a capacitor. When negative electrons are injected into the floating gate under the action of the control gate, the storage state of the single crystal of Nand FLASH is changed by " 1" becomes "0", and when the negative electrons are removed from the floating gate, the storage state changes from "0" to "1". Negative electrons are trapped, enabling data storage. That is, the storage unit of Nand FLASH is a floating gate transistor, and the floating gate transistor is used to store data in the form of charges. The amount of stored charge is related to the magnitude of the voltage applied to the floating gate transistor.
一个Nand FLASH包括至少一个Chip芯片,每一个Chip芯片由若干个Block物理块组成,每一个Block物理块包括若干个Page页。其中,Block物理块是Nand FLASH执行擦除操作的最小单位,Page页为Nand FLASH执行读写操作的最小单位,一个Nand FLASH的容量等于其Block物理块的数量*一个Block物理块包含的Page页的数量*一个Page页的容量。具体的,闪存介质200按照存储单元的电压的不同层次,可分为SLC、MLC、TLC以及QLC。A Nand FLASH includes at least one Chip chip, each Chip chip is composed of several Block physical blocks, and each Block physical block includes several Page pages. Among them, Block physical block is the smallest unit of Nand FLASH to perform erase operation, Page page is the smallest unit of Nand FLASH to perform read and write operations, and the capacity of a Nand FLASH is equal to the number of its Block physical blocks * Page pages contained in a Block physical block The number * the capacity of a Page page. Specifically, the flash memory medium 200 can be classified into SLC, MLC, TLC, and QLC according to different voltage levels of the storage cells.
固态硬盘控制器,包括数据转换器、处理器、缓存器、闪存控制器以及接口。SSD controllers, including data converters, processors, caches, flash controllers, and interfaces.
数据转换器,分别与处理器和闪存控制器连接,数据转换器用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当闪存控制器向闪存介质写入数据时,通过数据转换器将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质。当闪存控制器从闪存介质读取数据时,通过数据转换器将闪存介质中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,数据转换器可以包括二进制数据寄存器和十六进制数据寄存器。二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。The data converter is connected with the processor and the flash memory controller respectively, and the data converter is used for converting binary data to hexadecimal data and converting hexadecimal data to binary data. Specifically, when the flash memory controller writes data to the flash memory medium, the binary data to be written is converted into hexadecimal data by a data converter, and then written to the flash memory medium. When the flash memory controller reads data from the flash memory medium, it converts the hexadecimal data stored in the flash memory medium into binary data through a data converter, and then reads the converted data from the binary data page register. Wherein, the data converter may include binary data registers and hexadecimal data registers. The binary data register can be used to save the data converted from hexadecimal to binary, and the hexadecimal data register can be used to save the data converted from binary to hexadecimal.
处理器,分别与数据转换器、缓存器、闪存控制器以及接口连接,其中,处理器与数据转换器、缓存器、闪存控制器以及接口可以通过总线或者其他方式连接,处理器用于运行存储在缓存器中的非易失性软件程序、指令以及模块,从而实现本申请任一方法实施例。The processor is connected to the data converter, the buffer, the flash memory controller and the interface respectively, wherein the processor and the data converter, the buffer, the flash memory controller and the interface can be connected by a bus or other means, and the processor is used for running the storage in the The non-volatile software programs, instructions and modules in the buffer can implement any method embodiment of the present application.
缓存器,主要用于缓存主机发送的读/写指令以及根据主机发送的读/写指令从闪存介质获取的读数据或者写数据。缓存器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。缓存器可以包括存储程序区,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,缓存器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,缓存器可选包括相对于处理器远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。缓存器可以为静态随机存取存储器(Static Random Access Memory,SRAM)或者耦合内存(Tightly Coupled Memory,TCM)或者双倍速率同步动态随机存储器(DoubleDataRate Synchronous Dynamic Random Access Memory,DDR SRAM)。The buffer is mainly used to cache the read/write command sent by the host and the read data or write data obtained from the flash memory medium according to the read/write command sent by the host. As a non-volatile computer-readable storage medium, the buffer can be used to store non-volatile software programs, non-volatile computer-executable programs and modules. The buffer may include a program storage area, and the program storage area may store an operating system and an application program required by at least one function. Additionally, the cache may include high-speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other non-volatile solid-state storage device. In some embodiments, the cache may optionally include memory located remotely from the processor. Examples of such networks include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof. The register may be Static Random Access Memory (SRAM), Tightly Coupled Memory (TCM), or Double DataRate Synchronous Dynamic Random Access Memory (DDR SRAM).
闪存控制器,与闪存介质、数据转换器、处理器以及缓存器连接,用于访问后端的闪存介质,管理闪存介质的各种参数和数据I/O;或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取主机发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责FTL(Flash translation layer,闪存转换层)的核心处理。Flash controller, connected with flash media, data converters, processors and buffers, used to access back-end flash media, manage various parameters of flash media and data I/O; or, used to provide access interfaces and protocols , realize the corresponding SAS/SATA target protocol end or NVMe protocol end, obtain the I/O command issued by the host and decode and generate internal private data results to wait for execution; or, be responsible for the FTL (Flash translation layer, flash memory translation layer) core processing.
接口,连接主机以及数据转换器、处理器以及缓存器,用于接收主机发送的数据,或者,接收处理器发送的数据,实现主机与处理器之间的数据传输,接口可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。The interface is used to connect the host and the data converter, the processor and the buffer, and is used to receive the data sent by the host, or, to receive the data sent by the processor to realize the data transmission between the host and the processor. The interface can be a SATA-2 interface , SATA-3 interface, SAS interface, MSATA interface, PCI-E interface, NGFF interface, CFast interface, SFF-8639 interface and M.2NVME/SATA protocol.
请再参阅图3,图3是本申请实施例提供的一种固态硬盘硬件框架的结构示意图;Please refer to FIG. 3 again. FIG. 3 is a schematic structural diagram of a solid-state hard disk hardware framework provided by an embodiment of the present application;
相比图1中的固态硬盘硬件框架,其具有两个接口,分别为Connector0和Connector1,分别用于数据存储和数据计算,通过主机接口的分离以解决计算应用通路和数据存储通路相互竞争总线带宽的问题。Compared with the SSD hardware framework in Figure 1, it has two interfaces, Connector0 and Connector1, which are used for data storage and data computing respectively. The separation of the host interface is used to solve the competition between computing application paths and data storage paths for bus bandwidth. The problem.
请再参阅图4,图4是本申请实施例提供的一种固态硬盘控制器的结构示意图;Please refer to FIG. 4 again. FIG. 4 is a schematic structural diagram of a solid-state hard disk controller provided by an embodiment of the present application;
如图4所示,该固态硬盘控制器包含两个接口,分别为第一接口和第二接口,分别用于数据存储和数据计算。As shown in FIG. 4 , the SSD controller includes two interfaces, namely a first interface and a second interface, which are respectively used for data storage and data calculation.
目前,由于计算应用的需求,引入了在固态硬盘里面运行双系统架构:一个系统用于数据存储处理,称之为存储系统,另一个系统用于数据计算处理或者说应用处理,称之为计算系统。而两个系统之间是通过IPC(Inter-Process Communication)机制进行通信,完成数据和信息的交互。其IPC的实现包括软件FIFO,硬件FIFO,共享内存,硬件IPC逻辑电路等。At present, due to the needs of computing applications, a dual-system architecture has been introduced in SSDs: one system is used for data storage processing, called a storage system, and the other system is used for data computing processing or application processing, called computing system. The two systems communicate through the IPC (Inter-Process Communication) mechanism to complete the exchange of data and information. The realization of its IPC includes software FIFO, hardware FIFO, shared memory, hardware IPC logic circuit and so on.
请再参阅图5,图5是本申请实施例提供的一种固态硬盘控制器的硬件系统示意图;Please refer to FIG. 5 again. FIG. 5 is a schematic diagram of a hardware system of a solid-state hard disk controller according to an embodiment of the present application;
如图5所示,固态硬盘控制器的内部有硬件IPC设计,即包括IPC系统,通过IPC系统来实现第一处理器集群和第二处理器集群之间的数据处理,其中,IPC系统在软件设计上有IPC软件系统。通过硬件系统和软件系统来实现数据传输路径,例如:通过该应用IO路径来实现数据计算处理或应用处理需要的数据传输通路。As shown in Figure 5, there is a hardware IPC design inside the SSD controller, that is, it includes an IPC system, and the data processing between the first processor cluster and the second processor cluster is realized through the IPC system. The design has an IPC software system. The data transmission path is realized through the hardware system and the software system, for example, the data computing processing or the data transmission path required for application processing is realized through the application IO path.
在硬件角度,两个硬件系统,即第一处理器集群和第二处理器集群通过IPC硬件接口交互信息,大量数据通过DDR共享实现数据交互。In terms of hardware, two hardware systems, namely the first processor cluster and the second processor cluster, exchange information through the IPC hardware interface, and a large amount of data is shared through DDR to realize data exchange.
在软件角度,两个软件系统均有分层结构,那么两个软件系统之间传递的IO操作,通过IPC系统进行传递。From a software perspective, both software systems have a layered structure, so the IO operations passed between the two software systems are passed through the IPC system.
这个数据通路对计算系统的软件而言是作为特定设备存在,开发底层驱动程序(运行在SDL,Specific Drive Layer),用于派发或者读取IO操作,即把IO操作的信息写入或者读取到“FIFO/共享内存/硬件IPC逻辑电路”的接口;开发中间程序(运行在MDL,MiddleLayer),用于满足OS(Linux)对接需求。This data path exists as a specific device for the software of the computing system, and the underlying driver (running in SDL, Specific Drive Layer) is developed to dispatch or read IO operations, that is, write or read the information of IO operations. Interface to "FIFO/shared memory/hardware IPC logic circuit"; develop intermediate programs (running in MDL, MiddleLayer) to meet OS (Linux) docking requirements.
但是,由于IPC系统在软件设计上需要自定义协议栈,无论是存储系统,还是计算系统,都需要不少软件开发,比如计算系统下特定设备驱动开发,和存储系统下数据通路的开发,从而导致固态硬盘的软件开发效率不足。However, since the software design of the IPC system requires a custom protocol stack, whether it is a storage system or a computing system, a lot of software development is required, such as the development of specific device drivers under the computing system and the development of data paths under the storage system. This results in insufficient software development efficiency for solid-state drives.
有鉴于此,本申请提供一种存算一体化固态硬盘控制器、固态硬盘、存储系统及存算系统之间的数据处理方法,以提高固态硬盘的软件开发效率。In view of this, the present application provides a storage-computing integrated solid-state hard disk controller, a solid-state hard disk, a storage system, and a data processing method between the storage-computing system, so as to improve the software development efficiency of the solid-state hard disk.
下面结合说明书附图以具体阐述本申请的技术方案。The technical solutions of the present application are described in detail below with reference to the accompanying drawings.
请再参阅图6,图6是本申请实施例提供的一种主机和存储设备的示意图;Please refer to FIG. 6 again, FIG. 6 is a schematic diagram of a host and a storage device provided by an embodiment of the present application;
如图6所示,主机和存储设备通过标准PCIe总线进行通信(通过PCIe协议),其中,PCIe总线在系统中就是PCB传输线,包括插槽、转接线等。其中,传统的存算一体的固态硬盘中,两个系统存在于同一个固态硬盘控制器,没有设计两个系统之间的这种主机和设备之间的标准通路,而本申请通过在固态硬盘控制器内实现标准化数据通路,使得存储系统和计算系统能够实现内部传输标准化。As shown in FIG. 6 , the host and the storage device communicate through a standard PCIe bus (through the PCIe protocol), where the PCIe bus is a PCB transmission line in the system, including slots, patch cords, and the like. Among them, in the traditional storage-computing integrated solid-state drive, two systems exist in the same solid-state drive controller, and there is no such standard path between the host and the device between the two systems. The standardized data path is realized in the controller, so that the storage system and the computing system can realize the internal transmission standardization.
请再参阅图7,图7是本申请实施例提供的一种标准PCIe层次结构和本申请的控制器内部实现PCIe层次结构的示意图;Please refer to FIG. 7 again, FIG. 7 is a schematic diagram of a standard PCIe hierarchical structure provided by an embodiment of the present application and the internal implementation of the PCIe hierarchical structure in the controller of the present application;
如图7所示,标准PCIe层次结构包括两个PCIe设备,分别为第一PCIe设备(PCIeDeviceA)和第二PCIe设备(PCIe Device B),每一PCIe设备均包括核心层(DeviceCore)、PCIe核心硬件/软件接口(PCIe CoreHardware/SoftwareInterface)、事务层(TransactionLayer)、数据链路层(Data Link Layer)和物理层(Physical Layer)。可以理解的是,在PCIe体系结构中,数据报文首先在设备的核心层(Device Core)中产生,然后再经过该设备的事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer),最终发送出去。而接收端的数据也需要通过物理层、数据链路层和事务层,并最终到达核心层。As shown in Figure 7, the standard PCIe hierarchy includes two PCIe devices, namely a first PCIe device (PCIeDeviceA) and a second PCIe device (PCIe DeviceB), and each PCIe device includes a core layer (DeviceCore), a PCIe core Hardware/software interface (PCIe CoreHardware/SoftwareInterface), transaction layer (TransactionLayer), data link layer (Data Link Layer) and physical layer (Physical Layer). It can be understood that in the PCIe architecture, data packets are first generated in the device core layer (Device Core), and then pass through the device's transaction layer (Transaction Layer), data link layer (Data Link Layer) and Physical layer (Physical Layer), and finally sent out. The data at the receiving end also needs to pass through the physical layer, data link layer and transaction layer, and finally reach the core layer.
可以理解的是,如果在固态硬盘控制器内实现完整主机和设备模块,主要问题是成本高,在内部传输显然不适合用传输这种模式,且无需两端接口的模拟电路部分(一般称之为PHY部分),而且即使是控制电路无需完整功能。同样以PCIe层次结构为例,如图7所示,左侧是标准的层次结构,对于软件所见是应用层,并不关心具体的其他层次,故而,本申请在固态控制器内部实现两个系统(A和B)的交互,通过数据传输层替代其他层次,实现应用层所需要的数据传输。It can be understood that if the complete host and device modules are implemented in the SSD controller, the main problem is the high cost, and the internal transmission is obviously not suitable for this mode of transmission, and the analog circuit part of the interface at both ends (generally called for the PHY part), and even the control circuit does not need to be fully functional. Also take the PCIe hierarchy as an example, as shown in Figure 7, the left side is the standard hierarchy, what the software sees is the application layer, and does not care about other specific layers. Therefore, this application implements two layers inside the solid-state controller. The interaction of the system (A and B) replaces other layers through the data transmission layer to realize the data transmission required by the application layer.
简而言之,通过上述实现,将固态硬盘控制器内的两个系统,视为一个标准的主机系统和一个标准的存储设备系统,从而简化软件设计。In short, through the above implementation, the two systems in the SSD controller are regarded as a standard host system and a standard storage device system, thereby simplifying software design.
请参阅图8,图8是本申请实施例提供的一种存算一体化固态硬盘控制器的内部系统的示意图;Please refer to FIG. 8. FIG. 8 is a schematic diagram of an internal system of an integrated storage-computing solid-state hard disk controller according to an embodiment of the present application;
如图8所示,计算系统与存储系统之间通过存算通路进行通信,其中,计算系统作为标准的主机系统,从计算系统所见,存储系统作为标准的存储系统,计算系统通过具有标准协议的通路对存储系统进行读写等操作。As shown in Figure 8, the computing system and the storage system communicate through a storage and computing path, wherein the computing system is used as a standard host system. As seen from the computing system, the storage system is used as a standard storage system, and the computing system uses a standard protocol access to the storage system for read and write operations.
请参阅图9,图9是本申请实施例提供的一种存算一体化固态硬盘控制器的结构示意图;Please refer to FIG. 9. FIG. 9 is a schematic structural diagram of an integrated storage-computing solid-state hard disk controller according to an embodiment of the present application;
如图9所示,该存算一体化固态硬盘控制器100,包括:存储系统10、计算系统20以及存算通路模块30,其中,存储系统10与计算系统20之间通过存算通路模块30进行连接。As shown in FIG. 9 , the storage-computing integrated solid-state hard disk controller 100 includes: a
请再参阅图10,图10是本申请实施例提供的另一种存算一体化固态硬盘控制器的结构示意图;Please refer to FIG. 10 again. FIG. 10 is a schematic structural diagram of another solid state disk controller with integrated storage and computing provided by an embodiment of the present application;
如图10所示,该存算一体化固态硬盘控制器100,包括:第一主机接口41、第二主机接口42、存算通路模块30、缓存控制模块21、处理模块11、数据通路处理模块22以及闪存控制模块23。As shown in FIG. 10 , the storage-computing integrated solid-state disk controller 100 includes: a first host interface 41 , a
其中,第一主机接口41,用于对接第一主机,例如:用于接收主机发送的数据,或者,接收处理器发送的数据,实现主机与处理器之间的数据传输,接口可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。The first host interface 41 is used to connect to the first host, for example, used to receive data sent by the host, or receive data sent by the processor to realize data transmission between the host and the processor, and the interface may be a SATA- 2 interface, SATA-3 interface, SAS interface, MSATA interface, PCI-E interface, NGFF interface, CFast interface, SFF-8639 interface and M.2NVME/SATA protocol.
其中,第二主机接口42,用于对接第二主机,例如:用于接收主机发送的数据,或者,接收处理器发送的数据,实现主机与处理器之间的数据传输,接口可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。Wherein, the
其中,存算通路模块30,用于实现存储系统10与计算系统20之间的连接,以实现存储系统10和计算系统20之间的数据传输。The storage and
其中,缓存控制模块21,包括缓存器,主要用于缓存主机发送的读/写指令以及根据主机发送的读/写指令从闪存介质获取的读数据或者写数据。缓存器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。缓存器可以包括存储程序区,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,缓存器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,缓存器可选包括相对于处理器远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。缓存器可以为静态随机存取存储器(Static RandomAccess Memory,SRAM)或者耦合内存(Tightly Coupled Memory,TCM)或者双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic Random Access Memory,DDRSRAM)。The cache control module 21 includes a cache, which is mainly used to cache the read/write instructions sent by the host and the read data or write data obtained from the flash memory medium according to the read/write instructions sent by the host. As a non-volatile computer-readable storage medium, the buffer can be used to store non-volatile software programs, non-volatile computer-executable programs and modules. The buffer may include a program storage area, and the program storage area may store an operating system and an application program required by at least one function. Additionally, the cache may include high-speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other non-volatile solid-state storage device. In some embodiments, the cache may optionally include memory located remotely from the processor. Examples of such networks include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof. The register may be Static Random Access Memory (SRAM), Tightly Coupled Memory (TCM), or Double DataRate Synchronous Dynamic Random Access Memory (DDRSRAM).
其中,处理模块11,包括处理器,用于与数据转换器、缓存器、闪存控制器以及接口连接,其中,处理器与数据转换器、缓存器、闪存控制器以及接口可以通过总线或者其他方式连接,处理器用于运行存储在缓存器中的非易失性软件程序、指令以及模块,从而实现本申请任一方法实施例。或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取主机发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责FTL(Flash translation layer,闪存转换层)的核心处理。Wherein, the processing module 11 includes a processor, which is used for connecting with the data converter, the buffer, the flash memory controller and the interface, wherein the processor and the data converter, the buffer, the flash memory controller and the interface can be connected through a bus or other means connected, the processor is configured to run the non-volatile software programs, instructions and modules stored in the buffer, so as to implement any method embodiment of the present application. Or, it is used to provide access interfaces and protocols, implement the corresponding SAS/SATA target protocol end or NVMe protocol end, obtain I/O commands issued by the host, decode and generate internal private data results for execution; or, be responsible for FTL (Flash translation layer, flash translation layer) core processing.
其中,数据通路处理模块22,包括数据通路硬件逻辑模块,例如:Data PathProcessor,用于加速处理存储数据。The data
其中,闪存控制模块23,包括闪存控制器,与闪存介质、数据转换器、处理器以及缓存器连接,用于访问后端的闪存介质,管理闪存介质的各种参数和数据I/O。The flash control module 23 includes a flash controller and is connected to a flash medium, a data converter, a processor and a buffer, and is used to access the back-end flash medium and manage various parameters and data I/O of the flash medium.
请再参阅图11,图11是图9中的存算通路模块的结构示意图;Please refer to FIG. 11 again, FIG. 11 is a schematic structural diagram of the storage and calculation path module in FIG. 9;
如图11所示,该存算通路模块30,包括:主机模块处理单元31、设备模块处理单元32、通路处理单元33、数据通路接口34、第二系统接口35以及第一系统接口36,其中,主机模块处理单元31连接通路处理单元33,通路处理单元33连接设备模块处理单元32,数据通路接口34连接通路处理单元33,第二系统接口35连接主机模块处理单元31,第一系统接口36连接设备模块处理单元32。As shown in FIG. 11 , the storage and
可以理解的是,在固态硬盘控制器内部,对于计算系统而言,实际上是没有管理标准存储设备的主机端(Host)硬件模块,如PCIe Host设备-PCIe RC(Root Complex);对于存储系统而言,实际上也是没有用于内部计算系统主机的设备端(Device)硬件模块,比如PCIe EP设备,故而存算通路模块需要实现两个设备的模拟功能,以及数据传输通路的处理功能。It can be understood that, inside the SSD controller, for the computing system, there is actually no Host hardware module that manages standard storage devices, such as PCIe Host device-PCIe RC (Root Complex); for the storage system In fact, there is actually no Device hardware module for the host of the internal computing system, such as PCIe EP device, so the storage and computing channel module needs to implement the simulation function of the two devices and the processing function of the data transmission channel.
具体的,该主机模块处理单元31,用于模拟主机端的功能,例如:主机端的通信功能,比如:PCIe RC功能,即根复合体(Root Complex,RC),也即PCIe系统中的根节点(Root)的功能,其中,PCIe RC功能指的是与计算机系统其它部分通信的功能,例如:CPU通过根复合体(Root Complex)访问内存,或者,通过根复合体(Root Complex)访问PCIe系统中的PCIe设备。其中,主机端的功能属于标准协议的一部分,按照标准协议定义实现。在本申请实施例中,该主机模块处理单元31包括模拟器。Specifically, the host module processing unit 31 is used to simulate the function of the host, such as the communication function of the host, such as the PCIe RC function, that is, the root complex (Root Complex, RC), that is, the root node ( Root) function, wherein the PCIe RC function refers to the function of communicating with other parts of the computer system, for example: the CPU accesses the memory through the root complex (Root Complex), or accesses the PCIe system through the root complex (Root Complex) PCIe device. Among them, the function of the host side belongs to a part of the standard protocol, and is implemented according to the standard protocol definition. In this embodiment of the present application, the host module processing unit 31 includes an emulator.
可以理解的是,外设部件互连高速(peripheral component interconnectexpress,PCIe)是一种高速短距离通信接口,广泛应用在计算机、测试仪器等设备中。PCIe系统的主要组成单元有根节点(Root)、交换节点(Switch)和端节点(Endpoint)。It can be understood that peripheral component interconnect express (PCIe) is a high-speed short-distance communication interface, which is widely used in computers, test instruments and other devices. The main components of a PCIe system are a root node (Root), a switch node (Switch) and an end node (Endpoint).
其中,Root负责管理PCIe系统中所有总线和节点,是中央处理单元(centralprocessing unit,CPU)和PCIe系统中Endpoint通信的桥梁;Switch作为数据转发节点,连接Switch和Endpoint;Endpoint为端设备,如外设(Peripheral)。PCIe系统中Endpoint与Endpoint之间不能直接通信,必须经过Root。Among them, Root is responsible for managing all buses and nodes in the PCIe system, and is the bridge between the central processing unit (CPU) and the Endpoint in the PCIe system; Switch acts as a data forwarding node, connecting Switch and Endpoint; Endpoint is an end device, such as external Set (Peripheral). In the PCIe system, the Endpoint and the Endpoint cannot communicate directly, and must go through the Root.
具体的,该设备模块处理单元32,用于模拟设备端的功能,例如:PCIe EP功能(PCIe Endpoint),即PCIe系统的端节点(Endpoint)的功能。其中,设备端的功能属于标准协议的一部分,按照标准协议定义实现。在本申请实施例中,该设备模块处理单元32包括模拟器。Specifically, the device module processing unit 32 is used to simulate the function of the device side, for example, the PCIe EP function (PCIe Endpoint), that is, the function of the end node (Endpoint) of the PCIe system. Among them, the function of the device end belongs to a part of the standard protocol, and is implemented according to the standard protocol definition. In this embodiment of the present application, the device module processing unit 32 includes a simulator.
需要说明的是,主机模块处理单元31和设备模块处理单元32只需要模拟部分功能,这是由于数据传输在内部数据总线,无模拟电路/接口的需求。例如:主机模块处理单元31和设备模块处理单元32用于模拟数据传输功能,如图7所示,在固态硬盘控制器内部实现第一PCIe设备(PCIe DeviceA)和第二PCIe设备(PCIe Device B)的交互,通过数据传输层代替其他层次,实现应用层所需要的数据传输,相当于主机模块处理单元和设备模块处理单元用于实现数据传输层的功能。It should be noted that the host module processing unit 31 and the device module processing unit 32 only need to simulate part of the functions, because the data is transmitted on the internal data bus, and there is no need for analog circuits/interfaces. For example, the host module processing unit 31 and the device module processing unit 32 are used to simulate the data transmission function. As shown in FIG. 7 , the first PCIe device (PCIe Device A) and the second PCIe device (PCIe Device B) are implemented inside the SSD controller. ) interaction, the data transmission layer replaces other layers to realize the data transmission required by the application layer, which is equivalent to the function of the host module processing unit and the device module processing unit used to realize the function of the data transmission layer.
具体的,该通路处理单元33,连接主机模块处理单元31和设备模块处理单元32,用于处理主机模块处理单元31和设备模块处理单元32的数据需求,例如:用于处理数据的转发,格式变化等需求。Specifically, the path processing unit 33 is connected to the host module processing unit 31 and the device module processing unit 32, and is used to process the data requirements of the host module processing unit 31 and the device module processing unit 32, for example: for processing data forwarding, format changes, etc.
具体的,该数据通路接口34,连接通路处理单元33,用于处理内部数据总线的接口需求。Specifically, the data path interface 34 is connected to the path processing unit 33 for processing the interface requirements of the internal data bus.
具体的,第一系统接口36,连接设备模块处理单元32,用于与设备模块处理单元32进行交互操作,以及,用于存储系统和存算通路模块的通信。Specifically, the first system interface 36 is connected to the device module processing unit 32, and is used for interactive operation with the device module processing unit 32, and is used for the communication between the storage system and the storage and computing path module.
具体的,第二系统接口35,连接主机模块处理单元31,用于与主机模块处理单元31进行交互操作,以及,用于计算系统和存算通路模块的通信。Specifically, the second system interface 35 is connected to the host module processing unit 31, and is used for interactive operation with the host module processing unit 31, and is used for communication between the computing system and the storage-computation path module.
处理单元处理单元请再参阅图12,图12是本申请实施例提供的一种存算通路模块与计算系统、存储系统的连接示意图;Processing unit Please refer to FIG. 12 again for the processing unit. FIG. 12 is a schematic diagram of a connection between a storage and computing path module, a computing system, and a storage system provided by an embodiment of the present application;
如图12所示,存储系统包括第一处理器集群、DDR通路以及NVMe通路,计算系统包括第二处理器集群和DDR通路,其中,第一系统接口连接存储系统的第一处理器集群,第一处理器集群连接DDR通路,数据通路接口连接DDR通路以及NVMe通路,第二系统接口连接存储系统的第二处理器集群,第二处理器集群连接DDR通路。其中,DDR通路用于对接DDR存储器,即双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic RandomAccess Memory,DDR);NVMe通路用于对接NVMe控制器。As shown in FIG. 12 , the storage system includes a first processor cluster, a DDR channel and an NVMe channel, and the computing system includes a second processor cluster and a DDR channel, wherein the first system interface is connected to the first processor cluster of the storage system, and the first system interface is connected to the first processor cluster of the storage system. A processor cluster is connected to the DDR channel, the data channel interface is connected to the DDR channel and the NVMe channel, the second system interface is connected to the second processor cluster of the storage system, and the second processor cluster is connected to the DDR channel. Among them, the DDR channel is used to connect to the DDR memory, that is, double-rate synchronous dynamic random access memory (Double Data Rate Synchronous Dynamic Random Access Memory, DDR); the NVMe channel is used to connect to the NVMe controller.
请再参阅图13,图13是本申请实施例提供的一种数据通路模块与计算系统、存储系统的交互示意图;Please refer to FIG. 13 again. FIG. 13 is a schematic diagram of interaction between a data path module and a computing system and a storage system provided by an embodiment of the present application;
如图13所示,处理单元处理单元处理单元计算系统的第二处理器集群通过存算通路模块的第二系统接口,经过主机模块处理单元、通路处理单元、数据通路接口,由存储系统的NVMe通路,向存储系统的第一处理器集群发送操作命令。As shown in Figure 13, the second processor cluster of the processing unit processing unit processing unit computing system passes through the second system interface of the storage and computing channel module, through the host module processing unit, the channel processing unit, and the data channel interface, from the NVMe of the storage system. The channel is used to send an operation command to the first processor cluster of the storage system.
存储系统的第一处理器集群通过存算通路模块的第一系统接口,经过设备模块处理单元、通路处理单元、主机模块处理单元,由第二系统接口向计算系统的第二处理器集群发送响应。The first processor cluster of the storage system sends a response from the second system interface to the second processor cluster of the computing system through the first system interface of the storage and computing channel module, through the device module processing unit, the channel processing unit, and the host module processing unit. .
数据块由后端模块从闪存介质中获取,后端模块获取的数据块经过NVMe通路、DDR通路到达第二处理器集群,由第二处理器集群进行计算处理。The data block is obtained from the flash memory medium by the back-end module, and the data block obtained by the back-end module reaches the second processor cluster through the NVMe channel and the DDR channel, and is calculated and processed by the second processor cluster.
请再参阅图14,图14是本申请实施例提供的一种存算一体的固态硬盘的硬件系统框架的示意图;Please refer to FIG. 14 again. FIG. 14 is a schematic diagram of a hardware system framework of an integrated storage-computing solid-state hard disk provided by an embodiment of the present application;
如图14所示,其中,Host1为第一主机,Host2为第二主机,Host1IF为第一主机接口,Host2 IF为第二主机接口,CPU Cluster1为第一处理器集群,CPU Cluster2为第二处理器集群,iHost2Device Channel为存算通路模块,FEModule为前端模块,BE Module为后端模块,NANDFlashArray为闪存介质,DDR为DDR存储器,DDRController/PHY为DDR控制器,用于控制和处理DRAM的接口需求,其中,该DDR控制器包括DDR接口。As shown in Figure 14, where Host1 is the first host, Host2 is the second host, Host1IF is the first host interface, Host2 IF is the second host interface, CPU Cluster1 is the first processor cluster, and CPU Cluster2 is the second processor iHost2Device Channel is the storage and computing channel module, FEModule is the front-end module, BE Module is the back-end module, NANDFlashArray is the flash memory medium, DDR is the DDR memory, DDRController/PHY is the DDR controller, which is used to control and process the interface requirements of DRAM , wherein the DDR controller includes a DDR interface.
其中,第一处理器集群(CPU Cluster 1)包括数据存储处理系统,第二处理器集群(CPU Cluster 2)包括数据计算应用系统,数据存储处理系统系统以及数据计算应用系统均有分层结构,数据存储处理系统和数据计算应用系统之间传递的IO操作通过存算通路模块(iHost2Device Channel)进行传递。具体的,通过标准协议下的数据处理单元完成传递,数据处理单元包括数据,操作命令等。可以理解的是,对应驱动而言,派发或者读取IO操作是把IO操作的信息写入或者读取到存算通路模块的第一系统接口或第二系统接口。The first processor cluster (CPU Cluster 1) includes a data storage and processing system, the second processor cluster (CPU Cluster 2) includes a data computing application system, and both the data storage processing system and the data computing application system have a hierarchical structure. The IO operations transmitted between the data storage processing system and the data computing application system are transmitted through the storage and computing channel module (iHost2Device Channel). Specifically, the transmission is completed through a data processing unit under a standard protocol, and the data processing unit includes data, operation commands, and the like. It can be understood that, for a driver, dispatching or reading an IO operation is to write or read the information of the IO operation to the first system interface or the second system interface of the storage path module.
具体的,第一主机(Host1)经由第一主机接口(Host1 IF)、前端模块(FE Module)、后端模块(BE Module)与闪存介质(NAND Flash Array)进行交互;Specifically, the first host (Host1) interacts with the flash medium (NAND Flash Array) via the first host interface (Host1 IF), the front-end module (FE Module), and the back-end module (BE Module);
第二主机(Host2)经由第二主机接口(Host2 IF)、第二处理器集群(CPUCluster2)、DDR存储器(DDR)、DDR控制器(DDR Controller/PHY)、存算通路模块(iHost2Device Channel)、前端模块(FE Module)、后端模块(BE Module)与闪存介质(NANDFlash Array)进行交互。The second host (Host2) via the second host interface (Host2 IF), the second processor cluster (CPUCluster2), the DDR memory (DDR), the DDR controller (DDR Controller/PHY), the memory computing channel module (iHost2Device Channel), The front-end module (FE Module) and the back-end module (BE Module) interact with the flash medium (NANDFlash Array).
请再参阅图15,图15是本申请实施例提供的一种第一处理器集群的结构示意图;Please refer to FIG. 15 again. FIG. 15 is a schematic structural diagram of a first processor cluster provided by an embodiment of the present application;
如图15所示,该第一处理器集群11包括数据存储处理系统110,用于进行数据存储操作,该数据存储处理系统110,包括:As shown in FIG. 15 , the first processor cluster 11 includes a data storage and processing system 110 for performing data storage operations. The data storage and processing system 110 includes:
前端模块111,即(Front End,FE),连接数据存储接口,用于处理和主机系统的通信协议以及分发主机系统发送的数据存储操作;The front-
数据处理模块112,即(Data Process,DP),连接前端模块111,用于数据通路的处理,具体的,用于负责命令级数据处理,比如缓存数据等;The
映射表管理模块113,即(Flash Translation Layer,FTL),连接数据处理模块112,用于映射表的管理以及写入闪存数据颗粒度的管理;The mapping
后端模块114,即(Back End,BE),连接映射表管理模块113以及闪存介质,用于闪存数据读写以及闪存命令的管理。The back-
在本申请实施例中,第一处理器集群包括应用处理器和/或实时处理器。In this embodiment of the present application, the first processor cluster includes an application processor and/or a real-time processor.
请再参阅图16,图16是本申请实施例提供的一种第二处理器集群的结构示意图;Please refer to FIG. 16 again. FIG. 16 is a schematic structural diagram of a second processor cluster provided by an embodiment of the present application;
如图16所示,第二处理器集群21包括数据计算应用系统210,其中,用于进行数据计算操作,其中,数据计算应用系统210,包括:操作系统模块211、数据计算应用模块212、NVMe设备模块213以及PCIe设备模块214。As shown in FIG. 16 , the second processor cluster 21 includes a data computing application system 210 for performing data computing operations, wherein the data computing application system 210 includes: an
具体的,操作系统模块211,用于进行操作系统的底层操作,操作系统模块211为操作系统层(OS Kernel),即操作系统内核,用于进行操作系统的底层操作,包括命令解析、代码编译等底层操作;Specifically, the
具体的,数据计算应用模块212,连接操作系统模块211,用于进行和主机发送的数据计算任务相关的应用处理,在本申请实施例中,数据计算应用模块212为数据计算应用层,用于进行和主机任务相关应用处理。由于基于操作系统(Operation System,OS),应用层的开发具有非常高的通用性,可以脱离相关硬件特性,应用包括搜索引擎的求列表交集(List Intersection),MySQL的检索等,其中,该数据计算应用模块包括应用层(ApplicationLayer,APL)。Specifically, the data computing
具体的,NVMe设备模块213,连接操作系统模块211、数据计算应用模块212以及PCIe设备模块214,用于将数据计算任务转化成IO操作,并对NVMe存储器发送对应的IO操作。在本申请实施例中,NVMe设备模块213包括NVMe设备层(NVMeDeviceLayer)。Specifically, the
具体的,PCIe设备模块214,连接NVMe设备模块213、操作系统模块211以及第一处理器集群的前端模块,用于向第一处理器集群的前端模块发送IO操作。在本申请实施例中,PCIe设备模块214包括PCIe设备层(PCIe Device Layer)。Specifically, the
在本申请实施例中,数据计算应用系统210还包括接口模块215,接口模块215连接数据计算应用模块212以及PCIe设备模块214,接口模块215用于发送IO操作,或者,接口模块215通信连接主机接口,用于接收主机发送的主机命令。In this embodiment of the present application, the data computing application system 210 further includes an
在本申请实施例中,第二处理器集群21包括应用处理器和/或实时处理器。In this embodiment of the present application, the second processor cluster 21 includes an application processor and/or a real-time processor.
在本申请实施例中,数据存储处理系统和数据计算应用系统独立并行运行。通过在第一处理器集群上运行数据存储处理系统,用于专门处理存储事务,在第二处理器集群上运行数据计算应用系统,用于专门处理计算应用事务,本申请能够提高第一处理器集群和第二处理器集群的处理效率。In this embodiment of the present application, the data storage processing system and the data computing application system run independently and in parallel. By running the data storage and processing system on the first processor cluster for special processing of storage transactions, and running the data computing application system on the second processor cluster for special processing of computing application transactions, the present application can improve the first processor Processing efficiency of the cluster and the second processor cluster.
请再参阅图17,图17是本申请实施例提供的一种固态硬盘与主机的IO操作的示意图;Please refer to FIG. 17 again. FIG. 17 is a schematic diagram of an IO operation between an SSD and a host provided by an embodiment of the present application;
如图17所示,第二处理器集群(CPUCluster 2)在固态硬盘控制器的功能上作为内部的主机(InternalHost),第一处理器集群(CPU Cluster 1)在固态硬盘控制器的功能上作为内部的设备(InternalDevice),经由内部的虚拟的主机与设备连接(VirtualHost2DeviceConnect)来实现标准的存储设备通路。As shown in FIG. 17 , the second processor cluster (CPUCluster 2) functions as an internal host (InternalHost) in the function of the SSD controller, and the first processor cluster (CPU Cluster 1) functions as the SSD controller. The internal device (InternalDevice) implements the standard storage device path through the internal virtual host and device connection (VirtualHost2DeviceConnect).
可以看出,计算系统无需特定设备通路,用标准的存储设备通路,典型地,如PCIe设备层(PCIe Device Layer)、NVMe设备层(NVMe Device Layer)的通路,即可完成与存储系统的信息或数据交互,使得计算系统能够通过标准的通路对存储系统进行读写等操作。例如:由存储系统的后端模块(BE)经过映射表管理模块(FTL),再经过数据通路模块(DP),到达前端模块(FE),由前端模块(FE)与计算系统的PCIe设备层(PCIe Device Layer)、NVMe设备层(NVMe Device Layer)、应用层(Application Layer,APL),从而实现计算系统与存储系统的交互。It can be seen that the computing system does not need specific device paths, and can use standard storage device paths, typically, such as PCIe Device Layer and NVMe Device Layer paths, to complete the information with the storage system. Or data interaction, so that the computing system can read and write operations to the storage system through standard channels. For example: the back-end module (BE) of the storage system passes through the mapping table management module (FTL), and then passes through the data path module (DP) to the front-end module (FE), and the front-end module (FE) communicates with the PCIe device layer of the computing system. (PCIe Device Layer), NVMe Device Layer (NVMe Device Layer), and Application Layer (Application Layer, APL), so as to realize the interaction between the computing system and the storage system.
请再参阅图18,图18是本申请实施例提供的一种数据存储系统的结构示意图;Please refer to FIG. 18 again. FIG. 18 is a schematic structural diagram of a data storage system provided by an embodiment of the present application;
如图18所示,该数据存储系统400,包括:固态硬盘200以及主机系统300,固态硬盘200通信连接主机系统300,其中,固态硬盘200包括存算一体化固态硬盘控制器100以及闪存介质220,存算一体化固态硬盘控制器100连接闪存介质220。As shown in FIG. 18 , the data storage system 400 includes: a solid-state drive 200 and a host system 300 , and the solid-state drive 200 is communicatively connected to the host system 300 , wherein the solid-state drive 200 includes a storage-computing integrated solid-state drive controller 100 and a
具体的,存算一体化固态硬盘控制器100包括:存储系统10、计算系统20、存算通路模块30、第一主机接口41以及第二主机接口42,其中,第一主机接口41连接存储系统10,第二主机接口42连接计算系统20,存算通路模块30分别连接存储系统10以及计算系统20,以实现存储系统10以及计算系统20之间的数据和信息的交互。Specifically, the storage-computing integrated solid-state disk controller 100 includes: a
在本申请实施例中,存储系统10连接闪存介质220,以进行闪存介质的IO操作。In this embodiment of the present application, the
具体的,主机系统300包括第一主机310和第二主机320,第一主机310通过第一主机接口41通信连接存储系统10,第一主机310通过第一主机接口41向存储系统10发送数据存储操作,以使存储系统10处理数据存储操作,第二主机320通过第二主机接口42通信连接计算系统20,第二主机320通过第二主机接口42向计算系统20发送数据计算操作,以使计算系统20处理数据计算操作。Specifically, the host system 300 includes a
可以理解的是,第一主机和第二主机可以是同一主机,也可以不同主机,例如:第一主机是本地主机,第二主机是云端服务器。同时第一,第二没有强制顺序关系,仅仅是描述用语。It can be understood that the first host and the second host may be the same host or different hosts, for example, the first host is a local host, and the second host is a cloud server. At the same time, the first and the second have no mandatory order relationship, they are only descriptive terms.
在本申请实施例中,通过提供的一种存算一体化固态硬盘控制器,应用于存算一体化固态硬盘,该存算一体化固态硬盘控制器包括存储系统,用于进行数据存储;计算系统,用于进行数据计算;存算通路模块,连接存储系统和计算系统,用于实现存储系统和计算系统之间的数据传输。通过设计存算通路模块,实现存储系统和计算系统之间的数据传输,本申请能够优化固态硬盘控制器内部硬件通路设计,使得存储系统和计算系统能够实现内部IO传输标准化,从而减少软件开发量,提高固态硬盘的软件开发效率。In the embodiments of the present application, a storage-computing integrated solid-state hard disk controller is provided, which is applied to a storage-computing integrated solid-state hard disk, and the storage-computing integrated solid-state hard disk controller includes a storage system for data storage; computing The system is used to perform data calculation; the storage and calculation path module is used to connect the storage system and the computing system, and is used to realize data transmission between the storage system and the computing system. By designing a storage and computing path module to realize data transmission between the storage system and the computing system, the present application can optimize the internal hardware path design of the SSD controller, so that the storage system and the computing system can standardize the internal IO transmission, thereby reducing the amount of software development , to improve the software development efficiency of solid-state drives.
请再参阅图19,图19是本申请实施例提供的一种存算系统之间的数据处理方法的流程示意图;Please refer to FIG. 19 again. FIG. 19 is a schematic flowchart of a data processing method between storage and computing systems provided by an embodiment of the present application;
其中,该存算系统之间的数据处理方法,应用于上述实施例中提及的数据存储系统,该数据存储系统包括固态硬盘、主机系统,具体的,该存算系统之间的数据处理方法应用于上述实施例的固态硬盘中的存算一体化固态硬盘控制器,其中,该存算一体化固态硬盘控制器包括存储系统、计算系统以及存算通路模块。Wherein, the data processing method between the storage and computing systems is applied to the data storage system mentioned in the above-mentioned embodiment, and the data storage system includes a solid-state hard disk and a host system. Specifically, the data processing method between the storage and computing systems The storage-computation-integrated solid-state hard disk controller applied to the solid-state hard disk of the above embodiment, wherein the storage-computation integrated solid-state hard disk controller includes a storage system, a computing system, and a storage-computation path module.
如图19所示,该数据处理方法,包括:As shown in Figure 19, the data processing method includes:
步骤S10:接收第一主机或第二主机发送的操作任务命令,其中,操作任务命令包括至少一个操作任务的信息;Step S10: Receive an operation task command sent by the first host or the second host, wherein the operation task command includes information of at least one operation task;
具体的,存算一体化固态硬盘控制器接收主机系统发送的操作任务命令,具体的,通过第一主机接口接收第一主机发送的操作任务命令,或者,通过第二主机接口接收第二主机发送的操作任务命令,其中,操作任务命令包括至少一个操作任务的信息。Specifically, the storage-computing integrated solid-state hard disk controller receives the operation task command sent by the host system, specifically, receives the operation task command sent by the first host through the first host interface, or receives the second host through the second host interface. The operation task command, wherein the operation task command includes the information of at least one operation task.
步骤S20:将至少一个操作任务转化为IO操作,由存算通路模块将IO操作转发到存储系统或直接由存储系统接收,以使存储系统处理IO操作。Step S20: Convert at least one operation task into an IO operation, and the storage and computation path module forwards the IO operation to the storage system or directly receives the IO operation, so that the storage system processes the IO operation.
其中,该操作任务包括计算任务,若第一主机接口在接收到第一主机发送的操作任务命令,则由存储系统将操作任务命令对应的至少一个操作任务转化为IO操作,向存算通路模块发送该IO操作,由存算通路模块将该IO操作转发到计算系统,以使计算系统处理该IO操作。The operation task includes a computing task, and if the first host interface receives an operation task command sent by the first host, the storage system converts at least one operation task corresponding to the operation task command into an IO operation, and sends the operation task to the storage computing path module. The IO operation is sent, and the storage and computation path module forwards the IO operation to the computing system, so that the computing system processes the IO operation.
具体的,存储系统的第一处理器集群在接收到第一主机发送的操作任务命令,将该操作任务命令对应的操作任务转化为IO操作,经过存算通路模块的第一系统接口、设备模块处理单元、通路处理单元、主机模块处理单元,再到第二系统接口,由第二系统接口将该IO操作发送到计算系统的第二处理器集群,以使计算系统的第二处理器集群处理该IO操作,以得到IO操作结果,例如:数据的计算结果。Specifically, after receiving the operation task command sent by the first host, the first processor cluster of the storage system converts the operation task corresponding to the operation task command into an IO operation, and passes through the first system interface of the storage and calculation path module, the device module The processing unit, the channel processing unit, the host module processing unit, and then to the second system interface, the second system interface sends the IO operation to the second processor cluster of the computing system, so that the second processor cluster of the computing system processes The IO operation is to obtain the result of the IO operation, such as the calculation result of the data.
其中,该操作任务包括读写任务,若第二主机接口在接收到第二主机发送的操作任务命令,则由计算系统将操作任务命令对应的至少一个操作任务转化为IO操作,向存算通路模块发送该IO操作,由存算通路模块将该IO操作转发到存储系统,以使存储系统处理该IO操作。The operation task includes a read and write task. If the second host interface receives an operation task command sent by the second host, the computing system converts at least one operation task corresponding to the operation task command into an IO operation, and sends the operation task to the storage computing path. The module sends the IO operation, and the storage and computation path module forwards the IO operation to the storage system, so that the storage system processes the IO operation.
具体的,计算系统的第二处理器集群在接收到第二主机发送的操作任务命令,将该操作任务命令对应的操作任务转化为IO操作,经过存算通路模块的第二系统接口、主机模块处理单元、通路处理单元、数据通路接口,将该IO操作发送到存储系统的NVMe通路,由NVMe通路将该IO操作发送到存储系统的第一处理器集群,以使存储系统的第一处理器集群处理该IO操作,以得到IO操作结果,例如:获取到查询的数据。Specifically, after receiving the operation task command sent by the second host, the second processor cluster of the computing system converts the operation task corresponding to the operation task command into an IO operation, and passes through the second system interface of the storage computing channel module and the host module. The processing unit, the channel processing unit, and the data channel interface send the IO operation to the NVMe channel of the storage system, and the NVMe channel sends the IO operation to the first processor cluster of the storage system, so that the first processor of the storage system The cluster processes the IO operation to obtain the result of the IO operation, such as obtaining the queried data.
在本申请实施例中,通过提供一种存算系统之间的数据处理方法,应用于数据存储系统,方法包括:接收第一主机或第二主机发送的操作任务命令,其中,操作任务命令包括至少一个操作任务的信息;将至少一个操作任务转化为IO操作,由存算通路模块将IO操作转发到存储系统或直接由存储系统接收,以使存储系统处理IO操作。通过接收第一主机或第二主机发送的操作任务命令,由存算通路模块将操作任务命令对应的IO操作转发到存储系统或直接由存储系统接收,以使存储系统处理IO操作,本申请能够实现内部传输标准化,从而减少软件开发量,提高固态硬盘的软件开发效率。In the embodiment of the present application, a data processing method between storage and computing systems is provided, which is applied to a data storage system. The method includes: receiving an operation task command sent by a first host or a second host, wherein the operation task command includes Information of at least one operation task; convert the at least one operation task into an IO operation, and the storage and computation path module forwards the IO operation to the storage system or directly receives the IO operation from the storage system, so that the storage system processes the IO operation. By receiving the operation task command sent by the first host or the second host, the storage and computing channel module forwards the IO operation corresponding to the operation task command to the storage system or directly receives it by the storage system, so that the storage system can process the IO operation, the present application can Realize the standardization of internal transmission, thereby reducing the amount of software development and improving the software development efficiency of solid-state drives.
本申请实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,可使得上述一个或多个处理器可执行上述任意方法实施例中的存算系统之间的数据处理方法,例如,执行上述任意方法实施例中的存算系统之间的数据处理方法,例如,执行以上描述的图19所示的各个步骤。Embodiments of the present application also provide a non-volatile computer storage medium, where the computer storage medium stores computer-executable instructions, and the computer-executable instructions are executed by one or more processors, so that the one or more processors described above can be executed. The data processing method between storage and computing systems in any of the above method embodiments can be executed, for example, the data processing method between storage and computing systems in any of the above method embodiments can be executed, for example, the above-described method shown in FIG. 19 can be executed. each step.
以上所描述的装置或设备实施例仅仅是示意性的,其中作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。The apparatus or device embodiments described above are only illustrative, wherein the unit modules described as separate components may or may not be physically separated, and the components shown as module units may or may not be physical units, that is, It can be located in one place, or it can be distributed over multiple network module units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。From the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus a general hardware platform, and certainly can also be implemented by hardware. Based on this understanding, the above-mentioned technical solutions can be embodied in the form of software products in essence, or the parts that make contributions to related technologies, and the computer software products can be stored in computer-readable storage media, such as ROM/RAM, magnetic disks , CD-ROM, etc., including several instructions until a computer device (which may be a personal computer, server, or network device, etc.) executes the method of various embodiments or portions of embodiments.
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, but not to limit them; under the thinking of the present application, the technical features in the above embodiments or different embodiments can also be combined, The steps may be carried out in any order, and there are many other variations of the various aspects of the present application as described above, which are not provided in detail for the sake of brevity; although the present application has been It should be understood that: it is still possible to modify the technical solutions recorded in the foregoing embodiments, or to perform equivalent replacements to some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the technology of each embodiment of the application scope of the programme.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111506094.6A CN114296638B (en) | 2021-12-10 | 2021-12-10 | Storage and calculation integrated solid state disk controller and related device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111506094.6A CN114296638B (en) | 2021-12-10 | 2021-12-10 | Storage and calculation integrated solid state disk controller and related device and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114296638A true CN114296638A (en) | 2022-04-08 |
CN114296638B CN114296638B (en) | 2024-02-20 |
Family
ID=80968117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111506094.6A Active CN114296638B (en) | 2021-12-10 | 2021-12-10 | Storage and calculation integrated solid state disk controller and related device and method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114296638B (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168083A (en) * | 2021-12-10 | 2022-03-11 | 四川爱联科技股份有限公司 | Data storage system and method and electronic equipment |
CN117033267A (en) * | 2023-10-07 | 2023-11-10 | 深圳大普微电子股份有限公司 | Hybrid memory master controller and hybrid memory |
CN117971134A (en) * | 2024-03-28 | 2024-05-03 | 深圳市铨兴科技有限公司 | Control method, system and medium of storage and calculation integrated solid state disk |
US12271322B2 (en) | 2019-06-24 | 2025-04-08 | Samsung Electronics Co., Ltd. | Multi-function flexible computational storage device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073459A (en) * | 2010-11-02 | 2011-05-25 | 记忆科技(深圳)有限公司 | Computer system based on solid state drive and solid state drive |
EP3502911A1 (en) * | 2017-12-22 | 2019-06-26 | Nagravision S.A. | Securing digital data transmission in a communication link |
CN111796771A (en) * | 2020-06-30 | 2020-10-20 | 深圳大普微电子科技有限公司 | Flash memory controller, solid state disk and controller thereof, and flash memory command management method |
CN112035381A (en) * | 2020-09-29 | 2020-12-04 | 深圳大普微电子科技有限公司 | Storage system and storage data processing method |
CN112181293A (en) * | 2020-09-17 | 2021-01-05 | 深圳大普微电子科技有限公司 | Solid-state disk controller, solid-state disk, storage system and data processing method |
CN112558883A (en) * | 2020-12-23 | 2021-03-26 | 深圳大普微电子科技有限公司 | Data storage management method, solid state disk controller and solid state disk |
-
2021
- 2021-12-10 CN CN202111506094.6A patent/CN114296638B/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073459A (en) * | 2010-11-02 | 2011-05-25 | 记忆科技(深圳)有限公司 | Computer system based on solid state drive and solid state drive |
EP3502911A1 (en) * | 2017-12-22 | 2019-06-26 | Nagravision S.A. | Securing digital data transmission in a communication link |
CN111796771A (en) * | 2020-06-30 | 2020-10-20 | 深圳大普微电子科技有限公司 | Flash memory controller, solid state disk and controller thereof, and flash memory command management method |
CN112181293A (en) * | 2020-09-17 | 2021-01-05 | 深圳大普微电子科技有限公司 | Solid-state disk controller, solid-state disk, storage system and data processing method |
CN112035381A (en) * | 2020-09-29 | 2020-12-04 | 深圳大普微电子科技有限公司 | Storage system and storage data processing method |
CN112558883A (en) * | 2020-12-23 | 2021-03-26 | 深圳大普微电子科技有限公司 | Data storage management method, solid state disk controller and solid state disk |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12271322B2 (en) | 2019-06-24 | 2025-04-08 | Samsung Electronics Co., Ltd. | Multi-function flexible computational storage device |
CN114168083A (en) * | 2021-12-10 | 2022-03-11 | 四川爱联科技股份有限公司 | Data storage system and method and electronic equipment |
CN117033267A (en) * | 2023-10-07 | 2023-11-10 | 深圳大普微电子股份有限公司 | Hybrid memory master controller and hybrid memory |
CN117033267B (en) * | 2023-10-07 | 2024-01-26 | 深圳大普微电子股份有限公司 | Hybrid memory master controller and hybrid memory |
CN117971134A (en) * | 2024-03-28 | 2024-05-03 | 深圳市铨兴科技有限公司 | Control method, system and medium of storage and calculation integrated solid state disk |
CN117971134B (en) * | 2024-03-28 | 2024-05-31 | 深圳市铨兴科技有限公司 | Control method, system and medium of storage and calculation integrated solid state disk |
Also Published As
Publication number | Publication date |
---|---|
CN114296638B (en) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114296638B (en) | Storage and calculation integrated solid state disk controller and related device and method | |
US11741034B2 (en) | Memory device including direct memory access engine, system including the memory device, and method of operating the memory device | |
CN115495389B (en) | Memory controller, calculation memory device, and operation method of calculation memory device | |
WO2020001459A1 (en) | Data processing method, remote direct memory access network card, and device | |
CN112035381B (en) | Storage system and storage data processing method | |
US20220004488A1 (en) | Software drive dynamic memory allocation and address mapping for disaggregated memory pool | |
US20160259568A1 (en) | Method and apparatus for storing data | |
US20100318718A1 (en) | Memory device for a hierarchical memory architecture | |
CN102609215B (en) | Data processing method and device | |
CN112115068B (en) | Multi-namespace data access method and computer-readable storage medium | |
CN107111452B (en) | Data migration method and device applied to computer system and computer system | |
CN112181293B (en) | Solid state disk controller, solid state disk, storage system and data processing method | |
CN115033188B (en) | Storage hardware acceleration module system based on ZNS solid state disk | |
CN114816254A (en) | Hard disk data access method, device, equipment and medium | |
US20210056029A1 (en) | Hybrid Memory Systems with Cache Management | |
EP4202704A1 (en) | Interleaving of heterogeneous memory targets | |
CN118363914B (en) | Data processing method, solid state disk device and host | |
JP2023001076A (en) | Storage controller, computational storage device and method of operation of computational storage device | |
US10853255B2 (en) | Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover | |
CN114490023A (en) | A High-Energy Physical Computable Storage Device Based on ARM and FPGA | |
KR102815744B1 (en) | Computing system for transmitting completion early between serially connected electronic devices | |
CN116541317A (en) | Computable memory, computable memory system, and data processing method | |
WO2024139010A1 (en) | Solid-state drive controller, control method therefor, solid-state drive and solid-state drive system | |
CN106293491A (en) | The processing method of write request and Memory Controller Hub | |
WO2021139733A1 (en) | Memory allocation method and device, and computer readable storage medium |
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 | ||
CP03 | Change of name, title or address |
Address after: 518000 3501, venture capital building, No. 9, Tengfei Road, huanggekeng community, Longcheng street, Longgang District, Shenzhen, Guangdong Province Patentee after: Shenzhen Dapu Microelectronics Co.,Ltd. Country or region after: China Address before: 518000 room 3501, venture capital building, No. 9, Tengfei Road, Longgang District, Shenzhen, Guangdong Province Patentee before: SHENZHEN DAPU MICROELECTRONICS Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |