CN117033267B - 混合存储主控制器及混合存储器 - Google Patents
混合存储主控制器及混合存储器 Download PDFInfo
- Publication number
- CN117033267B CN117033267B CN202311278065.8A CN202311278065A CN117033267B CN 117033267 B CN117033267 B CN 117033267B CN 202311278065 A CN202311278065 A CN 202311278065A CN 117033267 B CN117033267 B CN 117033267B
- Authority
- CN
- China
- Prior art keywords
- storage medium
- protocol
- module
- controller
- medium
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 claims description 40
- 238000000034 method Methods 0.000 claims description 29
- 230000003993 interaction Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 5
- 239000007787 solid Substances 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 28
- 239000002245 particle Substances 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 239000012212 insulator Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 108091093126 WHP Posttrascriptional Response Element Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010397 one-hybrid screening Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请实施例涉及固态硬盘应用领域,公开了一种混合存储主控制器及混合存储器,该混合存储主控制器包括存储介质控制器,存储介质控制器对应一个通道,通道对应至少两种存储介质;其中,存储介质控制器通过对应的通道来控制至少两种存储介质的数据访问。通过设置同一个通道下对应至少两种存储介质,使得一个存储介质控制器能够控制至少两种存储介质的数据访问,本申请能够提高存储介质控制器的扩展性和兼容性。
Description
技术领域
本申请涉及固态硬盘应用领域,特别是涉及一种混合存储主控制器及混合存储器。
背景技术
固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(Flash存储芯片或DRAM存储芯片)。闪存(NANDFlash)是固态硬盘的主要存储介质。
目前,混合存储包括闪存介质颗粒和SCM介质颗粒的混合结构,但是,这种混合结构通常会设计两种独立的介质控制器,分别为闪存介质控制器和SCM介质控制器,但是,由于闪存介质控制器、SCM介质控制器两者独立存在,导致同一通道下只有一种介质颗粒,考虑到容量问题,需要扩展很多通道,导致硬件设计资源的浪费。
发明内容
本申请实施例旨在提供一种混合存储主控制器及混合存储器,其解决了目前同一通道对应一种介质颗粒导致的扩展性不足的问题,提高存储介质控制器的扩展性和兼容性。
为解决上述技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种混合存储主控制器,混合存储主控制器,包括:
存储介质控制器,存储介质控制器对应一个通道,通道对应至少两种存储介质;
其中,存储介质控制器通过对应的通道来控制至少两种存储介质的数据访问。
在一些实施例中,混合存储主控制器,包括:
至少两个存储介质控制器,每一个存储介质控制器一一对应一个通道,每一个通道对应至少两种存储介质;
其中,每一个存储介质控制器通过对应的通道来控制至少两种存储介质的数据访问。
在一些实施例中,
存储介质控制器,包括:
命令通路模块,用于存储介质控制器与混合存储器的硬件模块的命令交互;
数据通路模块,用于存储介质控制器与混合存储器的硬件模块的数据交互;
存储介质控制器逻辑层,连接命令通路模块以及数据通路模块,用于处理至少两种介质协议栈的逻辑层处理,每一种介质协议栈一一对应一种存储介质;
存储介质控制器物理层,连接存储介质控制器逻辑层,用于处理介质时序操作的物理层处理;
存储介质控制器IO功能模块,连接存储介质控制器物理层,用于处理IO信号。
在一些实施例中,
存储介质控制器逻辑层,包括:
命令接口模块,用于解析命令通路模块生成的外部命令,以生成介质控制内部命令,并将介质控制内部命令分解成介质协议命令;
数据接口模块,用于解析数据通路模块生成的外部数据,以生成介质控制内部数据,并将介质控制内部数据分解成介质协议数据;
逻辑层控制模块,连接命令接口模块以及数据接口模块,用于接收命令接口模块发送的介质协议命令,以及,用于接收数据接口模块发送的介质协议数据;
至少两个协议栈逻辑模块,其中,每一个协议栈逻辑模块一一对应一个存储介质,每一个协议栈逻辑模块用于生成与其对应的存储介质的介质协议对应的操作序列。
在一些实施例中,
逻辑层控制模块,包括:
至少两个协议栈寄存器组,其中,每一个协议栈寄存器组一一对应一个介质协议,每一个协议栈寄存器组用于存储与其对应的介质协议的控制配置参数;
协议栈控制状态机,用于控制不同介质协议操作序列的处理过程;
逻辑层协议栈操作控制模块,用于进行介质协议的协议逻辑操作。
在一些实施例中,
存储介质控制器物理层,包括:
至少两个时序产生模块,每一个时序产生模块一一对应一个介质协议,每一个时序产生模块用于生成与其对应的协议介质的时序控制信号;
物理层控制模块,连接每一个时序产生模块,用于至少两种协议时序的切换管理。
在一些实施例中,
至少两个时序产生模块包括第一时序产生模块和第二时序产生模块,其中,第一时序产生模块和第二时序产生模块均连接存储介质控制器IO功能模块,第一时序产生模块和第二时序产生模块用于向存储介质控制器IO功能模块发送时序控制信号。
在一些实施例中,
物理层控制模块,包括:
至少两个DLL寄存器组,每一个DLL寄存器组一一对应一种协议时序,每一个DLL寄存器组用于存储与其对应的协议时序的控制配置参数;
DLL控制状态机,用于控制不同协议时序的处理过程;
物理层时序操作控制模块,用于进行协议时序的时序操作。
在一些实施例中,
存储介质控制器逻辑层和存储介质控制器物理层之间通过DFI接口模块进行通信;
其中,
存储介质控制器逻辑层包括第一DFI接口模块,存储介质控制器物理层包括第二DFI接口模块,存储介质控制器逻辑层通过第一DFI接口模块向第二DFI接口模块发送操作序列。
在一些实施例中,
混合存储主控制器,还包括:
NVMe控制器,用于处理混合存储器与主机的NVMe协议;
动态随机存储器控制器,用于控制动态随机存储器;
数据传输模块,用于NVMe控制器和存储介质控制器之间的数据传输。
第二方面,本申请实施例提供一种混合存储器,包括:
如第一方面的混合存储主控制器;
至少两个主机端口,其中,每一个主机端口用于构建主机与存储介质控制器之间的独立访问通路。
在一些实施例中,
至少两个主机端口包括第一主机端口和第二主机端口,
至少两种存储介质包括SSD存储介质和SCM存储介质;
其中,
第一主机端口,用于构建主机与存储介质控制器的SSD访问通路;
第二主机端口,用于构建主机与存储介质控制器的SCM访问通路。
本申请实施例的有益效果是:区别于现有技术的情况下,本申请实施例提供的一种混合存储主控制器及混合存储器,该混合存储主控制器包括存储介质控制器,存储介质控制器对应一个通道,通道对应至少两种存储介质;其中,存储介质控制器通过对应的通道来控制至少两种存储介质的数据访问。通过设置同一个通道下对应至少两种存储介质,使得一个存储介质控制器能够控制至少两种存储介质的数据访问,本申请能够提高存储介质控制器的扩展性和兼容性。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请实施例提供的一种固态硬盘硬件框架的结构示意图;
图2是本申请实施例提供的一种固态硬盘的结构示意图;
图3是本申请实施例提供的一种主机与存储器的架构示意图;
图4是本申请实施例提供的一种存储器硬件框架的结构示意图;
图5是本申请实施例提供的一种混合存储器的结构示意图;
图6是本申请实施例提供的第一种混合存储主控制器与通道的示意图;
图7是本申请实施例提供的第二种混合存储主控制器与通道的示意图;
图8是本申请实施例提供的第三种混合存储主控制器与通道的示意图;
图9是本申请实施例提供的一种存储介质控制器的结构示意图;
图10是本申请实施例提供的一种存储介质控制器逻辑层与存储介质控制器物理层的结构示意图;
图11是本申请实施例提供的一种逻辑层控制模块的结构示意图;
图12是本申请实施例提供的一种物理层控制模块的结构示意图;
图13是本申请实施例提供的一种协议时序与协议栈序列的示意图;
图14是本申请实施例提供的一种切换时序中时钟切换的示意图;
图15是本申请实施例提供的一种协议操作切换控制方法的流程示意图;
图16是本申请实施例提供的一种协议操作切换控制方法的整体流程示意图。
附图标号说明:
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,下面所描述的本申请各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
请参阅图1,图1是本申请实施例提供的一种固态硬盘硬件框架的结构示意图;
如图1所示,固态硬盘(Solid State Drives,SSD)通常包括固态硬盘控制器,即SSD主控(SSD Controller)、连接器(Connector)、闪存阵列、缓存单元以及其他外围单元。
其中,固态硬盘控制器用于作为控制运算单元,管理SSD内部系统;
其中,闪存阵列(NAND Flash Array),作为存储单元,用于存储数据,包括用户数据和系统数据,闪存阵列一般呈现多个通道(Channel, CH),一个通道独立连接一组闪存阵列,例如:通道0、通道1,……,通道x分别独立连接一组闪存阵列。可以理解的是,闪存(NANDFlash)的特性是在写入之前,必须进行擦除,且每个闪存擦除次数有限。
其中,缓存单元,用于缓存映射表,缓存单元包括动态随机存取存储器(DynamicRandom Access Memory,DRAM)。
其中,连接器(Connector),用于连接主机,例如:PC或者服务器。
其中,其他外围单元包括串口(Serial Peripheral Interface,SPI)、传感器(Sensor)、寄存器、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)、电源芯片、其他接口,例如:JTAG接口等部件。
请再参阅图2,图2是本申请实施例提供的一种固态硬盘的结构示意图;
如图2所示,固态硬盘包括闪存介质以及与闪存介质连接的固态硬盘控制器。其中,固态硬盘通过有线或无线的方式与主机通信连接,用以实现数据交互。
闪存介质,作为固态硬盘的存储介质,也称作闪存、Flash、Flash存储器或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。
固态硬盘控制器,即主控,包括数据转换器、处理器、缓存器、闪存控制器以及接口。
数据转换器,分别与处理器和闪存控制器连接,数据转换器用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当闪存控制器向闪存介质写入数据时,通过数据转换器将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质。当闪存控制器从闪存介质读取数据时,通过数据转换器将闪存介质中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,数据转换器可以包括二进制数据寄存器和十六进制数据寄存器。二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
处理器,分别与数据转换器、缓存器、闪存控制器以及接口连接,其中,处理器与数据转换器、缓存器、闪存控制器以及接口可以通过总线或者其他方式连接,处理器用于运行存储在缓存器中的非易失性软件程序、指令以及模块,或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取主机发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责闪存转换层(Flash translation layer,FTL)的核心处理,从而实现本申请任一方法实施例。
缓存器,主要用于缓存主机发送的读/写指令以及根据主机发送的读/写指令从闪存介质获取的读数据或者写数据。缓存器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。缓存器可以包括存储程序区,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,缓存器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,缓存器可选包括相对于处理器远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。缓存器可以为静态随机存取存储器(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指令并解码和生成内部私有数据结果等待执行;或者,用于负责闪存转换层(Flash translation layer,FTL)的核心处理。
接口,连接主机以及数据转换器、处理器以及缓存器,用于接收主机发送的数据,或者,接收处理器发送的数据,实现主机与处理器之间的数据传输,接口可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCIe接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。
请再参阅图3,图3是本申请实施例提供的一种主机与存储器的架构示意图;
如图3所示,主机包括处理器、内存控制器(Memory Controller)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、存储级内存(Storage Class Memory,SCM)以及IO控制器(IO Controller)。
其中,在主机内部,SCM作为DRAM的缓存,此时,内存控制器连接DRAM,DRAM连接SCM;或者,SCM直接作为内存,此时,内存控制器直接连接SCM。
其中,存储器包括存储器控制器、SAS SSD、NVMe SSD、SCM或者HDD。此时,SCM作为存储器的一部分,即,SCM与SAS SSD、NVMe SSD或者HDD并列。
请再参阅图4,图4是本申请实施例提供的一种存储器硬件框架的结构示意图;
如图4所示,该存储器硬件框架通过将SCM介质、闪存介质分别通过对应的通道与主控制器连接,例如:SCM介质通过SCM介质通道与主控制器连接,闪存介质通过闪存通道与主控制器连接,而主控制器通常设计两种独立的介质控制器,分别为SCM介质控制器和闪存介质控制器,其中,SCM介质控制器通过SCM介质通道来控制SCM介质的数据访问,闪存介质控制器通过闪存通道来控制闪存介质的数据访问。
但是,这种设置方式由于SCM介质控制器和闪存介质控制器两者独立存在,导致同一通道下只有一种介质颗粒,考虑到存储器的容量问题,若存储器的容量较大,则此时需要扩展更多的通道,从而导致硬件设计资源的浪费。
有鉴于此,本申请实施例提供一种混合介质主控制器,通过设置同一个通道下对应至少两种存储介质,使得一个存储介质控制器能够控制至少两种存储介质的数据访问,以提高存储介质控制器的扩展性和兼容性。
具体的,请参阅图5,图5是本申请实施例提供的一种混合存储器的结构示意图;
如图5所示,该混合存储器100包括混合存储主控制器10、混合存储介质20、动态随机存储器30以及第一主机端口401、第二主机端口402。
其中,混合存储主控制器10,用于通过对应的通道对该混合存储介质20进行访问。
其中,混合存储介质20,连接混合存储主控制器10,该混合存储介质20用于存储数据,其中,每一个混合存储介质20包括至少两种存储介质,例如:SCM介质和闪存介质。
其中,动态随机存储器30,即动态随机存取存储器(Dynamic Random AccessMemory,DRAM),该动态随机存储器30作为缓存器,用于缓存主机发送的读/写指令以及根据主机发送的读/写指令从混合存储介质20获取的读数据或者写数据。
其中,第一主机端口401,用于与主机进行底层协议的通信,其中,第一主机端口401与主机通过第一通信协议进行通信,例如:第一通信协议为PCIe接口协议。
在本申请实施例中,该第一主机端口401,包括:
PCIe模块,包括PCIe控制器(PCIe Controller),该PCIe控制器作为一个端口与主机对接,用于接收主机发送的数据,实现主机与混合存储器100之间的数据传输。可以理解的是,该PCIe控制器包括PCIe接口。
具体的,该第一主机端口401用于处理PCIe协议的相关操作,例如:基于PCIe协议的读写操作。可以理解的是,外设部件互连高速(peripheral component interconnectexpress,PCIe)是一种高速短距离通信接口,广泛应用在计算机、测试仪器等设备中。PCIe系统的主要组成单元有根节点(Root)、交换节点(Switch)和端节点(Endpoint)。
其中,Root负责管理PCIe系统中所有总线和节点,是中央处理单元(centralprocessing unit,CPU)和PCIe系统中Endpoint通信的桥梁;Switch作为数据转发节点,连接Switch和Endpoint;Endpoint为端设备,如外设(Peripheral)。PCIe系统中Endpoint与Endpoint之间不能直接通信,必须经过Root。
该第一主机端口401还包括物理层(PHY)。
该第一主机端口401还包括NVMe模块,该NVMe模块包括NVMe控制器,用于处理NVMe协议的相关操作,例如:NVMe通路的访问。
在本申请实施例中,该第二主机端口402与第一主机端口401相似,该第二主机端口402也包括PCIe控制器、物理层以及NVMe控制器,其中,第一主机端口401与第二主机端口402共用该NVMe控制器,即,NVMe 支持两个主机接口。
在本申请实施例中,第一主机端口401和第二主机端口402分别用于实现两个存储介质的独立访问通路,例如:混合存储介质包括第一存储介质和第二存储介质,第一主机端口401用于实现第一存储介质的访问通路,第二主机端口402用于实现第二存储介质的访问通路。
请再参阅图6,图6是本申请实施例提供的第一种混合存储主控制器与通道的示意图;
如图6所示,该混合存储主控制器10包括存储介质控制器80,其中,该存储介质控制器80对应一个通道,该通道对应一个混合存储介质20,该混合存储介质包括至少两种存储介质,例如:该混合存储介质20包括第一存储介质21和第二存储介质22。
其中,该存储介质控制器80通过该通道与混合存储介质20连接,使得该存储介质控制器80与至少两种存储介质对接,从而使得存储介质控制器80能够控制混合存储介质20中的至少两种存储介质的数据访问,即,存储介质控制器80能够控制混合存储介质20中每一个存储介质的数据访问。
可以理解的是,混合存储介质20中的第一存储介质21、第二存储介质22的数量根据具体需要进行设置,例如:第一存储介质21设置为两个,第二存储介质22设置为两个。可以理解的是,每一个存储介质即为介质颗粒。
在本申请实施例中,通过设置一个通道下对应至少两种存储介质,使得一个存储介质控制器能够控制至少两种存储介质的数据访问,从而提高了存储介质控制器的扩展性和兼容性。
进一步地,该混合存储主控制器,包括:
至少两个存储介质控制器,每一个存储介质控制器一一对应一个通道,每一个通道对应至少两种存储介质;
其中,每一个存储介质控制器通过对应的通道来控制至少两种存储介质的数据访问。
具体的,请再参阅图7,图7是本申请实施例提供的第二种混合存储主控制器与通道的示意图;
如图7所示,该混合存储主控制器10包括第一存储介质控制器11、第二存储介质控制器12,第一存储介质控制器11、第二存储介质控制器12分别对应第一通道、第二通道。
其中,第一存储介质控制器11通过第一通道与混合存储介质20连接,其中,混合存储介质20包括第一存储介质21和第二存储介质22,其中,同一个混合存储介质中的第一存储介质21、第二存储介质22的数量根据具体需要进行设置,例如:第一存储介质21设置为两个,第二存储介质22设置为两个。可以理解的是,每一个存储介质即为介质颗粒。
同理,第二存储介质控制器12通过第二通道与对应的混合存储介质连接,其中,第二存储介质控制器12对应的混合存储介质也包括第一存储介质和第二存储介质,其中,同一个混合存储介质中的第一存储介质、第二存储介质的数量根据具体需要进行设置,例如:第一存储介质设置为两个,第二存储介质设置为两个。
进一步地,请再参阅图8,图8是本申请实施例提供的第三种混合存储主控制器与通道的示意图;
如图8所示,混合存储主控制器包括多个存储介质控制器,每一个存储介质控制器一一对应一个通道,每一个通道对应至少两种存储介质,每种存储介质的数量根据具体需要进行设置,例如:第一存储介质控制器对应第一通道,第一通道对应第一存储介质和第二存储介质;第二存储介质控制器对应第二通道,第二通道对应第一存储介质和第二存储介质;第三存储介质控制器对应第三通道,第三通道对应第一存储介质和第二存储介质。
需要说明的是,本申请实施例中的同一通道可以对应多种存储介质,例如:第一存储介质控制器对应第一通道,第一通道对应三种存储介质,分别为第一存储介质、第二存储介质以及第三存储介质;或者,第一通道对应三种以上的存储介质,在此不再举例说明。
在本申请实施例中,通过设置多个存储介质控制器,每一个存储介质控制器一一对应一个通道,使得多个通道能够并行访问混合存储介质,有利于提高混合存储器的读写性能。
具体的,请再参阅图9,图9是本申请实施例提供的一种存储介质控制器的结构示意图;
如图9所示,该存储介质控制器80,包括:
命令通路模块81,用于存储介质控制器与混合存储器的硬件模块的命令交互;
具体的,该命令通路模块81用于负责该存储介质控制器80与混合存储器的外部模块之间的命令交互通路,例如:负责存储介质控制器80与处理器或者其他硬件模块的命令消息交互,比如:接收和发送命令消息,并负责命令的解析和反馈的信息。在本申请实施例中,其他硬件模块包括数据通路硬件逻辑模块(Data Path Processor),该数据通路硬件逻辑模块用于在进行数据交互时,通过传输消息来控制数据块的传输。
数据通路模块82,用于存储介质控制器与混合存储器的硬件模块的数据交互;
具体的,该数据通路模块82用于负责该存储介质控制器80和混合存储器的外部模块之间的数据交互通路,例如:该混合存储器的外部模块包括双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic Random Access Memory,DDR SRAM)以及其他硬件模块,该数据通路模块82用于负责存储介质控制器80和外部模块之间的数据交互,包括:接收和发送数据,并负责数据包的拆分和组合。
在本申请实施例中,命令通路模块81和数据通路模块82用于构建至少两个独立的存储介质访问通路,其中,每一个独立的存储介质访问通路用于主机访问对应的存储介质,例如:混合存储介质包括第一存储介质和第二存储介质,其中,第一存储介质为SCM存储介质,第二存储介质为SSD存储介质,即闪存介质,则每一个存储介质控制器80的命令通路模块81和数据通路模块82基于对应的通道构建独立的SCM访问通路和SSD访问通路,其中,该SCM访问通路和SSD访问通路分别用于主机访问该SCM存储介质和该SSD存储介质,即闪存介质,例如:第一存储介质控制器通过其命令通路模块和数据通路模块以及第一通道来构建SCM访问通路和SSD访问通路。可以理解的是,SCM访问通路和SSD访问通路均包括命令通路和数据通路,以实现与存储介质之间的命令交互和/或数据交互。
存储介质控制器逻辑层83,用于处理至少两种介质协议栈的逻辑层处理,每一种介质协议栈一一对应一种存储介质;
具体的,该存储介质控制器逻辑层83兼容至少两种介质协议栈,并处理至少两种介质协议栈的逻辑层处理,其中,每一种介质协议栈一一对应一种存储介质。
存储介质控制器物理层84,用于处理介质时序操作的物理层处理,以及,用于处理至少两种介质时序的物理层处理,其中,每一种介质时序一一对应一种存储介质;
具体的,该存储介质控制器物理层84兼容至少两种介质协议时序,用于负责介质时序操作的物理层处理,即,处理至少两种介质协议栈的介质时序操作的物理层处理,以及,处理至少两种介质时序的物理层处理,其中,每一种介质时序操作对应一种介质协议栈,每一种介质时序一一对应一种存储介质。
可以理解的是,协议栈是操作命令级别的,比如:一个写操作命令包括命令码、地址码以及数据,其中,命令码、地址码、数据以先后顺序进行发送。其中,协议栈切换包括不同命令集的切换,例如:有些协议地址码是5个Bytes,有些是6个Bytes。
可以理解的是,协议时序是信号波形级别的,比如:协议时序包括信号波形级别的时钟频率或信号之间的延时规则。其中,协议时序切换包括时钟频率的切换,或者,信号之间延时规则的切换。
具体的,请再参阅图10,图10是本申请实施例提供的一种存储介质控制器逻辑层与存储介质控制器物理层的结构示意图;
如图10所示,该存储介质控制器逻辑层83,包括:
命令接口模块831,连接该命令通路模块以及逻辑层控制模块,用于解析命令通路模块生成的外部命令,以生成介质控制内部命令,并将介质控制内部命令分解成介质协议命令。
具体的,该命令接口模块831用于负责上层的命令通路模块进行解析和转义的外部命令信息形成介质控制内部命令后,进一步分解成介质协议层级的命令。例如:内部一个闪存读命令,会被分解成闪存命令码“00”和“30”,以传递给逻辑层控制模块。
数据接口模块832,连接该数据通路模块以及逻辑层控制模块,用于解析数据通路模块生成的外部数据,以生成介质控制内部数据,并将介质控制内部数据分解成介质协议数据。
具体的,该数据接口模块832,用于负责上层的数据通路模块进行解析和转义的外部数据组成格式形成介质控制内部数据组成格式后,进一步分解成介质协议层级的数据组成。例如:内部一个闪存写命令,被分解为三个页的数据组成部分,以传递给逻辑层控制模块。
逻辑层控制模块833,连接命令接口模块831以及数据接口模块832,用于接收命令接口模块发送的介质协议命令,以及,用于接收数据接口模块发送的介质协议数据。
具体的,该逻辑层控制模块833用于负责至少两种协议栈的切换管理,具体的,通过协议栈的状态机控制切换实现协议栈的切换管理。
其中,该存储介质控制器逻辑层83,包括至少两个协议栈逻辑模块包括第一协议栈逻辑模块以及第二协议栈逻辑模块,其中,第一协议栈逻辑模块对应第一存储介质,第一协议栈逻辑模块用于生成第一存储介质的介质协议对应的操作序列;第二协议栈逻辑模块对应第二存储介质,第二协议栈逻辑模块用于生成第二存储介质的介质协议对应的操作序列,例如:至少两个协议栈逻辑模块分别为:
第一协议栈逻辑模块834,连接逻辑层控制模块833以及第一DFI接口模块836,用于生成第一存储介质的介质协议对应的操作序列。
第二协议栈逻辑模块835,连接逻辑层控制模块833以及第一DFI接口模块836,用于生成第二存储介质的介质协议对应的操作序列。
在本申请实施例中,存储介质控制器逻辑层83包括至少两个协议栈逻辑模块,其中,每一个协议栈逻辑模块一一对应一个存储介质,每一个协议栈逻辑模块用于生成与其对应的存储介质的介质协议对应的操作序列,例如:存储介质控制器逻辑层83包括两个协议栈逻辑模块,分别为第一协议栈逻辑模块834以及第二协议栈逻辑模块835,其中,第一协议栈逻辑模块834对应第一存储介质,第二协议栈逻辑模块835对应第二存储介质,第一协议栈逻辑模块834、第二协议栈逻辑模块835分别用于生成第一存储介质、第二存储介质的介质协议对应的操作序列。
可以理解的是,存储介质控制器逻辑层83还可以包括三个以上的协议栈逻辑模块,具体不再赘述。
第一DFI接口模块836,连接第一协议栈逻辑模块834以及第二协议栈逻辑模块835,该第一DFI接口模块836用于对接存储介质控制器物理层,具体的,该第一DFI接口模块836连接存储介质控制器物理层的第二DFI接口模块,用于向第二DFI接口模块发送操作序列。
需要说明的是,本申请实施例中的DFI接口模块作为标准的逻辑层和物理层之间的接口处理模块,无论协议栈逻辑模块有多少个,本申请实施例中的第一DFI接口模块836连接每一个协议栈逻辑模块,以实现向存储介质控制器物理层发送操作序列,其中,该操作序列为符合协议要求的操作序列。
在本申请实施例中,通过不同的存储介质控制器对应不同的通道,从而支持混合存储介质的独立访问,从而优化混合存储主控制器的结构以兼容至少两种混合存储介质,并且,同一通道下能够支持不同介质运行速率和时序的存储介质,有利于提高存储介质控制器的通道的扩展性。
请再参阅图11,图11是本申请实施例提供的一种逻辑层控制模块的结构示意图;
如图11所示,该逻辑层控制模块833,包括:
第一协议栈寄存器组8331,连接协议栈控制状态机8333以及逻辑层协议栈操作控制模块8334,用于存储第一介质协议的控制配置参数。
第二协议栈寄存器组8332,连接协议栈控制状态机8333以及逻辑层协议栈操作控制模块8334,用于存储第二介质协议的控制配置参数。
在本申请实施例中,该逻辑层控制模块833,包括至少两个协议栈寄存器组,每一个协议栈寄存器组均连接协议栈控制状态机8333以及逻辑层协议栈操作控制模块8334,其中,每一个协议栈寄存器组一一对应一个介质协议,每一个协议栈寄存器组用于存储与其对应的介质协议的控制配置参数。
协议栈控制状态机8333,连接第一协议栈寄存器组8331、第二协议栈寄存器组8332以及逻辑层协议栈操作控制模块8334,用于控制不同介质协议操作序列的处理过程。
具体的,该协议栈控制状态机8333用于控制不同介质协议序列操作的处理过程,例如:不同协议操作序列的切换。
请再一并参阅图13,图13是本申请实施例提供的一种协议时序与协议栈序列的示意图;
如图13所示,不同的协议对应不同的协议操作序列,其中,协议栈序列中包括不同的协议栈操作序列组合。逻辑层协议栈操作控制模块8334,连接第一协议栈寄存器组8331、第二协议栈寄存器组8332以及协议栈控制状态机8333,用于进行介质协议的协议逻辑操作。
其中,如图13所示,CEn表示芯片使能信号(CHIP ENABLE,CE),其中,n是指低电平有效。
CLE表示命令锁存使能信号(COMMAND LATCH ENABLE,CLE),是指该信号使能之后,表示数据总线上的数据代表命令码。
ALE表示地址锁存使能信号(ADDRESS LATCH ENABLE,ALE),是指该信号使能之后,表示数据总线上的数据代表地址码。
WEn表示写操作使能信号(WRITE ENABLE,WE),是指该信号使能之后,数据总线上的数据会可以被闪存锁存,其中,n是指低电平有效。
REn/RE均表示读操作使能信号(READ ENABLE,RE),是指该信号使能之后,数据总线上的数据会可以被闪存驱动正常,其中,REn和RE两者是差分信号对,n是指低电平有效。
DQS/DQSn均表示数据选通信号(DATA STROBE),该信号作为读写数据的采样信号,其中,DQS和DQSn两者是差分信号对,n是指低电平有效。
I/O表示数据总线。
R/Bn表示总线可用/忙(Ready/Busy),其中n指低电平有效。
tADL表示收到地址到数据装载的时间(Address to Data Loading Time)。
tCALS表示CLE和ALE信号的建立时间(CLE/ALE Setup Time)。
tCDQSS表示DQS基于数据输入模式开始下的建立时间(DQS Setup Time for datainput mode start)。
tWPRE表示写入前导码的周期时间(Write Preamble)。
tWPST表示写入后导码的周期时间(Write Postamble)。
tWPSTH表示写入后导码的保持时间(Write Postamble Hold Time)。
O1h表示操作低页的命令码。
8Oh表示写(编程)操作命令对的一个命令码或操作码。
Col addr1/ Col addr2分别表示列地址1(Column Address 1)、列地址2(ColumnAddress 2),其中,由于整个列地址寻址超过8bit,而一次传输是8位位宽,所以分为列地址1,2。
Row addr1/ Row addr2/ Row addr3分别表示行地址1(row Address 1)、行地址2(row Address 2)、行地址3(row Address 3),其中,由于整个行地址寻址超过8bit,而一次传输是8位位宽,所以分为行地址1,2,3。
DO/D1/Dn分别表示Data0/1/2,即传输的数据0、传输的数据1、传输的数据n,其中,每次数据位宽是8比特位。
1Ah表示写(编程)操作命令对的一个命令码。
O2h表示操作中页的命令码。
Lower page表示低页。
tWB表示写操作使能信号变高到忙的时间(WE High to Busy)。
tDCBSYW2表示在写缓存模式下,数据到缓存的忙的时间(Data Cache Busy Time inWrite Cache)。
具体的,该逻辑层协议栈操作控制模块8334用于在当前协议状态下,进行符合介质协议要求的协议逻辑操作。
具体的,该存储介质控制器物理层84,包括:
第二DFI接口模块841,连接第一DFI接口模块以及物理层控制模块842,用于接收第一DFI接口模块发送的操作序列。
可以理解的是,第一DFI接口模块和第二DFI接口模块均用于定义控制器和物理层(PHY)之间的相关信号和时序参数以及可配置功能参数,那么控制器和物理层(PHY)各自独立设计,因此,在控制器的逻辑层有接口,在物理层(PHY)也有接口。
需要说明的是,第一DFI接口模块和第二DFI接口模块分别包括第一DFI接口和第二DFI接口,DFI接口作为连接DDR控制器和DDR物理层(DDR PHY)的接口标准,其接口协议包括存储器对应的操作命令,例如:读命令、写命令。该接口协议包括DFI标准协议。
物理层控制模块842,连接第二DFI接口模块841以及每一个时序产生模块,例如:分别连接第一时序产生模块843以及第二时序产生模块844,用于至少两种协议时序的切换管理。其中,该物理层控制模块842通过DLL控制状态机来控制至少两种协议时序的切换管理。
请再参阅图12,图12是本申请实施例提供的一种物理层控制模块的结构示意图;
如图12所示,该物理层控制模块842,包括:
第一DLL寄存器组8421,连接DLL控制状态机以及物理层时序操作控制模块,用于存储第一协议时序的控制配置参数;
第二DLL寄存器组8422,连接DLL控制状态机以及物理层时序操作控制模块,用于存储第二协议时序的控制配置参数。
在本申请实施例中,该物理层控制模块842,包括至少两个DLL寄存器组,其中,每一个DLL寄存器组一一对应一种协议时序,每一个DLL寄存器组用于存储与其对应的协议时序的控制配置参数。
DLL控制状态机8423,连接每一个DLL寄存器组以及物理层时序操作控制模块,用于控制不同协议时序的处理过程。
具体的,该DLL控制状态机用于控制不同协议时序的切换,该协议时序的切换包括:时钟频率的切换、信号之间延时规则的切换等。可以理解的是,DLL指的是延迟锁相环(Delay—locked Loop,DLL),该延迟锁相环可以通过时钟频率测量法(CFM,ClockFrequency Measurement)或者时钟比较法(CC,Clock Comparator)来实现。
物理层时序操作控制模块8424,连接每一个DLL寄存器组以及DLL控制状态机8423,用于进行协议时序的时序操作。
具体的,该物理层时序操作控制模块8424用于在当前时序状态下,生成满足协议介质要求的时序操作。
在本申请实施例中,至少两个时序产生模块包括:
第一时序产生模块843,连接物理层控制模块842,用于生成第一协议介质的时序控制信号。
第二时序产生模块844,连接物理层控制模块842,用于生成第二协议介质的时序控制信号。
在本申请实施例中,第一时序产生模块843包括第一时序控制电路,第二时序产生模块844包括第二时序控制电路。其中,第一时序控制电路和第二时序控制电路均包括时序产生电路,其中,时序产生电路被配置为产生时序控制信号。
其中,第一时序产生模块843和第二时序产生模块844均连接存储介质控制器IO功能模块,第一时序产生模块和第二时序产生模块用于向存储介质控制器IO功能模块发送时序控制信号。
可以理解的是,时序控制信号的作用在于信号之间的相关关系控制,例如:CE信号和时钟信号之间的关系控制,比如:CE变为使能有效的判断,具体的,需要在时钟上升沿的若干时间之前,CE变低,才能判断CE使能有效。其中,时序控制信号输入到存储介质控制器IO功能模块,以使该存储介质控制器IO功能模块基于该时序控制信号,生成对应的IO信号。可以理解的是,该存储介质控制器IO功能模块存储有详细信号变低变高的时间点的说明。
在本申请实施例中,该存储介质控制器物理层包括至少两个时序产生模块,每一个时序产生模块一一对应一个介质协议,每一个时序产生模块用于生成与其对应的协议介质的时序控制信号,其中,该时序控制信号为符合介质协议要求的时序控制信号,从而能够控制不同存储介质的时序。
请参阅图14,图14是本申请实施例提供的一种切换时序中时钟切换的示意图;
如图14所示,通过DLL控制状态机可以实现切换不同时序。
存储介质控制器IO功能模块85,用于处理IO信号。
具体的,该存储介质控制器IO功能模块85,连接存储介质控制器物理层84,用于负责处理IO信号的生成、接收或判断。
在本申请实施例中,通过提供一种混合存储主控制器,该混合存储主控制器包括存储介质控制器,存储介质控制器对应一个通道,通道对应至少两种存储介质;其中,存储介质控制器通过对应的通道来控制至少两种存储介质的数据访问。通过设置同一个通道下对应至少两种存储介质,使得一个存储介质控制器能够控制至少两种存储介质的数据访问,本申请能够提高存储介质控制器的扩展性和兼容性。
请再参阅图15,图15是本申请实施例提供的一种协议操作切换控制方法的流程示意图;
其中,该方法应用于上述实施例中的混合存储介质控制器,该混合存储介质控制器包括命令通路模块,数据通路模块,存储介质控制器逻辑层,存储介质控制器物理层,存储介质控制器IO功能模块。
如图15所示,该协议操作切换控制方法,包括:
步骤S1501:获取协议级操作指令,其中,协议级操作指令对应一操作请求;
具体的,存储介质控制器逻辑层的逻辑层控制模块获取上层模块,例如:命令接口模块,发送的协议级操作指令,其中,该协议级操作指令对应一操作请求,该操作请求包括写操作或读操作。
在本申请实施例中,该协议级操作指令对应一个介质协议,例如:SCM介质协议、SSD介质协议。其中,每一个介质协议一一对应一个协议编号。
步骤S1502:根据协议级操作指令,将操作请求加入状态机的处理队列。
具体的,根据该协议级操作指令对应的介质协议的协议编号,结合当前运行的状态机对应的协议编号,判断是否需要切换状态机,并将操作请求加入状态机的处理队列。
可以理解的是,状态机指的是有限状态机(Finite State Machine,FSM),由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。
具体的,根据协议级操作指令,将操作请求加入状态机的处理队列,包括:
解析协议级操作指令,得到协议级操作指令对应的第一协议编号,其中,第一协议编号对应一个目标协议状态机;
查询当前运行的状态机的第二协议编号;
若第一协议编号与第二协议编号相同,则将操作请求加入目标协议状态机的处理队列。
在一些实施例中,
方法还包括:
若第一协议编号与第二协议编号不同,则进一步判断当前运行的状态机是否处于可切换状态;
若当前运行的状态机处于可切换状态,则保存当前运行的状态机的上下文,并将当前运行的状态机切换到第一协议编号对应的目标协议状态机,并将操作请求加入目标协议状态机的处理队列。
具体的,请再参阅图16,图16是本申请实施例提供的一种协议操作切换控制方法的整体流程示意图;
如图16所示,该协议操作切换控制方法的整体流程,包括:
步骤S1601:获取命令接口模块下发的协议级操作指令;
具体的,存储介质控制器逻辑层获取命令接口模块下发的协议级操作指令,其中,该协议级操作指令对应一操作请求,该操作请求包括写操作或读操作。其中,该协议级操作指令对应一个介质协议,例如:SCM介质协议、SSD介质协议。
步骤S1602:解析协议级操作指令中的协议编号;
具体的,解析该协议级操作指令,得到该协议级操作指令对应的介质协议的协议编号。
步骤S1603:查询当前运行的状态机的协议编号;
具体的,确定当前运行的状态机,并查询该当前运行的状态机的协议编号。
步骤S1604:协议级操作指令的协议编号与当前运行的状态机的协议编号是否一致;
具体的,假设协议级操作指令的协议编号为第一协议编号,当前运行的状态机的协议编号为第二协议编号,则判断第一协议编号与第二协议编号是否一致。
若第一协议编号与第二协议编号一致,则进入步骤S1608;
若第一协议编号与第二协议编号不一致,则进入步骤S1605。
步骤S1605:当前运行的状态机是否处于可切换状态;
具体的,判断当前运行的状态机是否处于可切换状态,若当前运行的状态机满足预设条件,则确定该状态机处于可切换状态,此时可触发逻辑层协议栈操作控制模块切换到另一个状态机进行运行。
步骤S1606:保存当前运行的状态机的上下文;
具体的,若协议级操作指令的协议编号与当前运行的状态机的协议编号不同,并且,当前运行的状态机处于可切换状态,则保存当前运行的状态机的上下文。
步骤S1607:切换到目标协议编号对应的状态机;
具体的,在将当前运行的状态机的上下文保存到动态随机存储器之后,切换到目标协议编号对应的状态机,其中,目标协议编号对应目标协议状态机,目标协议编号指的是协议级操作指令的协议编号,即第一协议编号。
步骤S1608:将当前操作请求加入目标协议编号对应的状态机的处理队列。
具体的,在切换到第一协议编号对应的状态机,即目标协议状态机之后,将当前操作请求加入目标协议编号对应的目标协议状态机的处理队列,使得目标协议状态机后续可以处理该操作请求。
在本申请实施例中,通过提供一种协议操作切换控制方法,应用于上述实施例的混合存储器,该协议操作切换控制方法包括:获取协议级操作指令,其中,协议级操作指令对应一操作请求;根据协议级操作指令,将操作请求加入状态机的处理队列。
通过将协议级操作指令对应的操作请求加入到状态机的处理队列,本申请能够更好地处理该协议级操作指令。
本申请实施例还提供了一种非易失性计算机存储介质,非易失性计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,可使得上述一个或多个处理器可执行上述任意方法实施例中的协议操作切换控制方法,例如,执行上述任意方法实施例中的协议操作切换控制方法。
在本申请实施例中,该非易失性计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,该非易失性计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非易失性计算机可读存储介质不包括电载波信号和电信信号。
以上所描述的装置或设备实施例仅仅是示意性的,其中作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (7)
1.一种混合存储主控制器,其特征在于,所述混合存储主控制器,包括:
存储介质控制器,所述存储介质控制器对应一个通道,所述通道对应至少两种存储介质;
其中,所述存储介质控制器通过对应的通道来控制至少两种存储介质的数据访问;
所述存储介质控制器,包括:
命令通路模块,用于所述存储介质控制器与混合存储器的硬件模块的命令交互;
数据通路模块,用于所述存储介质控制器与所述混合存储器的硬件模块的数据交互;
存储介质控制器逻辑层,连接所述命令通路模块以及所述数据通路模块,用于处理至少两种介质协议栈的逻辑层处理,每一种介质协议栈一一对应一种存储介质;
存储介质控制器物理层,连接所述存储介质控制器逻辑层,用于处理介质时序操作的物理层处理;
存储介质控制器IO功能模块,连接所述存储介质控制器物理层,用于处理IO信号;
所述存储介质控制器逻辑层,包括:
命令接口模块,用于解析所述命令通路模块生成的外部命令,以生成介质控制内部命令,并将所述介质控制内部命令分解成介质协议命令;
数据接口模块,用于解析所述数据通路模块生成的外部数据,以生成介质控制内部数据,并将所述介质控制内部数据分解成介质协议数据;
逻辑层控制模块,连接所述命令接口模块以及所述数据接口模块,用于接收所述命令接口模块发送的介质协议命令,以及,用于接收所述数据接口模块发送的介质协议数据;
至少两个协议栈逻辑模块,其中,每一个协议栈逻辑模块一一对应一个存储介质,每一个协议栈逻辑模块用于生成与其对应的存储介质的介质协议对应的操作序列;
所述逻辑层控制模块,包括:
至少两个协议栈寄存器组,其中,每一个协议栈寄存器组一一对应一个介质协议,每一个协议栈寄存器组用于存储与其对应的介质协议的控制配置参数;
协议栈控制状态机,用于控制不同介质协议操作序列的处理过程;
逻辑层协议栈操作控制模块,用于进行介质协议的协议逻辑操作。
2.根据权利要求1所述的混合存储主控制器,其特征在于,
所述存储介质控制器物理层,包括:
至少两个时序产生模块,每一个时序产生模块一一对应一个介质协议,每一个时序产生模块用于生成与其对应的协议介质的时序控制信号;
物理层控制模块,连接每一个所述时序产生模块,用于至少两种协议时序的切换管理。
3.根据权利要求2所述的混合存储主控制器,其特征在于,
至少两个时序产生模块包括第一时序产生模块和第二时序产生模块,其中,所述第一时序产生模块和所述第二时序产生模块均连接所述存储介质控制器IO功能模块,所述第一时序产生模块和所述第二时序产生模块用于向所述存储介质控制器IO功能模块发送所述时序控制信号。
4.根据权利要求2或3所述的混合存储主控制器,其特征在于,
所述物理层控制模块,包括:
至少两个DLL寄存器组,每一个DLL寄存器组一一对应一种协议时序,每一个DLL寄存器组用于存储与其对应的协议时序的控制配置参数;
DLL控制状态机,用于控制不同协议时序的处理过程;
物理层时序操作控制模块,用于进行协议时序的时序操作。
5.根据权利要求1所述的混合存储主控制器,其特征在于,
所述存储介质控制器逻辑层和所述存储介质控制器物理层之间通过DFI接口模块进行通信;
其中,
所述存储介质控制器逻辑层包括第一DFI接口模块,所述存储介质控制器物理层包括第二DFI接口模块,所述存储介质控制器逻辑层通过所述第一DFI接口模块向所述第二DFI接口模块发送操作序列。
6.一种混合存储器,其特征在于,包括:
如权利要求1-5任一项所述的混合存储主控制器;
至少两个主机端口,其中,每一个主机端口用于构建主机与存储介质控制器之间的独立访问通路。
7.根据权利要求6所述的混合存储器,其特征在于,
至少两个主机端口包括第一主机端口和第二主机端口;
至少两种存储介质包括SSD存储介质和SCM存储介质;
其中,
所述第一主机端口,用于构建主机与存储介质控制器的SSD访问通路;
所述第二主机端口,用于构建主机与存储介质控制器的SCM访问通路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311278065.8A CN117033267B (zh) | 2023-10-07 | 2023-10-07 | 混合存储主控制器及混合存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311278065.8A CN117033267B (zh) | 2023-10-07 | 2023-10-07 | 混合存储主控制器及混合存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117033267A CN117033267A (zh) | 2023-11-10 |
CN117033267B true CN117033267B (zh) | 2024-01-26 |
Family
ID=88630232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311278065.8A Active CN117033267B (zh) | 2023-10-07 | 2023-10-07 | 混合存储主控制器及混合存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117033267B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196856A (zh) * | 2008-01-04 | 2008-06-11 | 太原理工大学 | 双端口访问单一动态存储器的接口 |
CN103455283A (zh) * | 2013-08-19 | 2013-12-18 | 华中科技大学 | 一种混合存储系统 |
CN107656700A (zh) * | 2011-07-28 | 2018-02-02 | 奈特力斯公司 | 一种flash‑dram混合存储器模块 |
CN107797944A (zh) * | 2017-10-24 | 2018-03-13 | 郑州云海信息技术有限公司 | 一种层次式异构混合内存系统 |
CN109842440A (zh) * | 2017-11-27 | 2019-06-04 | 华为技术有限公司 | 一种通信方法、通信节点和系统 |
CN112567329A (zh) * | 2018-05-24 | 2021-03-26 | 复合光子美国公司 | 用于驱动显示器的系统和方法 |
CN114296638A (zh) * | 2021-12-10 | 2022-04-08 | 深圳大普微电子科技有限公司 | 存算一体化固态硬盘控制器、固态硬盘、数据存储系统及方法 |
CN116472523A (zh) * | 2020-11-16 | 2023-07-21 | 英特尔公司 | 器件互连中的源排序 |
-
2023
- 2023-10-07 CN CN202311278065.8A patent/CN117033267B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196856A (zh) * | 2008-01-04 | 2008-06-11 | 太原理工大学 | 双端口访问单一动态存储器的接口 |
CN107656700A (zh) * | 2011-07-28 | 2018-02-02 | 奈特力斯公司 | 一种flash‑dram混合存储器模块 |
CN103455283A (zh) * | 2013-08-19 | 2013-12-18 | 华中科技大学 | 一种混合存储系统 |
CN107797944A (zh) * | 2017-10-24 | 2018-03-13 | 郑州云海信息技术有限公司 | 一种层次式异构混合内存系统 |
CN109842440A (zh) * | 2017-11-27 | 2019-06-04 | 华为技术有限公司 | 一种通信方法、通信节点和系统 |
CN112567329A (zh) * | 2018-05-24 | 2021-03-26 | 复合光子美国公司 | 用于驱动显示器的系统和方法 |
CN116472523A (zh) * | 2020-11-16 | 2023-07-21 | 英特尔公司 | 器件互连中的源排序 |
CN114296638A (zh) * | 2021-12-10 | 2022-04-08 | 深圳大普微电子科技有限公司 | 存算一体化固态硬盘控制器、固态硬盘、数据存储系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117033267A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035381B (zh) | 一种存储系统及存储数据处理方法 | |
US6434660B1 (en) | Emulating one tape protocol of flash memory to a different type protocol of flash memory | |
US7411859B2 (en) | Multi-port memory device for buffering between hosts | |
KR20070110264A (ko) | 메모리 시스템에서 데이터의 재배치 | |
US11657011B2 (en) | Avalon-to-Axi4 bus conversion method | |
CN114296638B (zh) | 存算一体化固态硬盘控制器及相关装置、方法 | |
US20100185811A1 (en) | Data processing system and method | |
US6523755B2 (en) | Semiconductor memory device | |
CN101236776B (zh) | 一种串行接口快闪存储器及其设计方法 | |
US12008270B2 (en) | System, device, and method for memory interface including reconfigurable channel | |
KR20140006344A (ko) | 메모리 시스템 및 그것에 포함된 메모리 장치의 동작 방법 | |
JP2021149729A (ja) | 半導体装置 | |
US11481157B2 (en) | Electronic apparatus and transfer method | |
CN117033267B (zh) | 混合存储主控制器及混合存储器 | |
WO2018039855A1 (zh) | 内存装置、内存控制器、数据缓存装置及计算机系统 | |
CN116541317A (zh) | 可计算存储器、可计算存储系统及数据处理方法 | |
CN115103032B (zh) | 通信协议控制电路和芯片 | |
US20240377946A1 (en) | Memory controller, bridge device and method for transferring command and data between memory controllers | |
US20240378162A1 (en) | Bridge device and method for transferring command and data between a host device and a data storage device | |
CN114664336B (zh) | 堆叠存储器件、存储芯片及其控制方法 | |
US20240320167A1 (en) | Combining read requests having spatial locality | |
US20230326495A1 (en) | Semiconductor apparatus and semiconductor system having independent data input/output period, and operating method of the semiconductor system | |
WO2024017073A1 (zh) | 一种存储器件共享的方法、装置及系统 | |
US20230326498A1 (en) | Semiconductor apparatus and semiconductor system having independent data input/output period, and operating method of the semiconductor system | |
KR102242957B1 (ko) | 고속 낸드 메모리 시스템과 고속 낸드 메모리 패키지 디바이스 |
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 |