CN117009278A - 计算系统及操作其的方法 - Google Patents
计算系统及操作其的方法 Download PDFInfo
- Publication number
- CN117009278A CN117009278A CN202310308179.6A CN202310308179A CN117009278A CN 117009278 A CN117009278 A CN 117009278A CN 202310308179 A CN202310308179 A CN 202310308179A CN 117009278 A CN117009278 A CN 117009278A
- Authority
- CN
- China
- Prior art keywords
- cxl
- memory
- storage device
- mapping
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013507 mapping Methods 0.000 claims abstract description 261
- 230000015654 memory Effects 0.000 claims description 546
- 230000004044 response Effects 0.000 claims description 71
- 238000004891 communication Methods 0.000 claims description 12
- 230000003936 working memory Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 26
- 238000007726 management method Methods 0.000 description 11
- 230000000630 rising effect Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 6
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 101150101057 PBA1 gene Proteins 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供计算系统及操作其的方法。所述计算系统包括多个存储装置、存储器装置和交换机。所述方法包括:由所述多个存储装置中的第一存储装置通过交换机将包括与第一用户数据对应的第一元数据的第一映射请求提供给存储器装置;由存储器装置基于第一映射请求识别与第一元数据对应的第一标准;以及由存储器装置基于第一标准生成指示第一用户数据的第一物理块地址与第一逻辑块地址之间的关系的第一映射数据。
Description
本申请要求于2022年5月6日在韩国知识产权局提交的第10-2022-0056024号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
本公开涉及一种存储装置,并且更具体地,涉及一种生成映射数据的计算系统及操作其的方法。
背景技术
存储器装置可响应于写入请求而存储数据,并且响应于读取请求而输出存储在其中的数据。例如,存储器装置可被分类为易失性存储器装置或非易失性存储器装置,易失性存储器装置(诸如,动态随机存取存储器(DRAM)装置、静态RAM(SRAM)装置)在电源被中断时丢失存储在其中的数据,非易失性存储器装置(诸如,闪存装置、相变RAM(PRAM)、磁性RAM(MRAM)或电阻式RAM(RRAM))即使在电源被中断时也保留存储在其中的数据。非易失性存储装置可被用作存储大量数据的存储装置。
逻辑块地址可被用于与存储装置通信的主机中,并且物理块地址可被用于存储装置的存储器单元。逻辑块地址和物理块地址彼此不同。存储装置可通过使用映射数据来仲裁逻辑块地址与物理块地址之间的关系。
随着存储装置的容量持续增大,映射数据的大小也增大。因此,存在对一种用于有效地管理大量映射数据的技术的需求。
发明内容
示例实施例提供生成映射数据的计算系统及操作其的方法。
根据示例实施例的一个方面,提供一种操作计算系统的方法,所述计算系统包括多个存储装置、存储器装置和交换机。所述方法包括:由所述多个存储装置中的第一存储装置通过交换机将包括与第一用户数据对应的第一元数据的第一映射请求提供给存储器装置;由存储器装置基于第一映射请求识别与第一元数据对应的第一标准;以及由存储器装置基于第一标准生成指示第一用户数据的第一物理块地址与第一逻辑块地址之间的关系的第一映射数据。
根据示例实施例的一个方面,提供一种操作计算系统的方法,所述计算系统包括多个存储装置、存储器装置和交换机。所述方法包括:由所述多个存储装置中的目标存储装置通过交换机将许可请求提供给存储器装置;由存储器装置基于许可请求向目标存储装置授权使用存储器装置;由目标存储装置基于目标存储装置被授权,通过交换机将包括与用户数据对应的元数据的映射请求提供给存储器装置;由存储器装置基于映射请求识别与元数据对应的标准;以及由存储器装置基于所述标准生成指示用户数据的逻辑地址与物理地址之间的关系的映射数据。
根据示例实施例的一个方面,一种计算系统,包括:多个存储装置,包括存储第一用户数据的第一存储装置;存储器装置,包括存储器控制器和缓冲存储器;以及交换机,被配置为在所述多个存储装置与存储器装置之间提供接口。存储器控制器被配置为:通过交换机从第一存储装置接收包括与第一用户数据对应的第一元数据的第一映射请求;基于第一映射请求识别与第一元数据对应的第一标准;以及基于第一标准生成指示第一用户数据的第一物理块地址与第一逻辑块地址之间的映射关系的第一映射数据。
附图说明
从下面结合附图的示例实施例的描述,将更清楚理解本公开的以上和其他的方面和特征,其中:
图1是包括存储装置的计算系统的框图;
图2是根据示例实施例的应用存储装置的计算系统的框图;
图3是根据示例实施例的详细示出图2的计算系统的框图;
图4是根据示例实施例的示出图3的计算系统的初始化操作或上电操作的流程图;
图5是描述根据示例实施例的计算系统存储映射数据的操作的示图;
图6和图7是描述根据示例实施例的映射数据被存储在CXL存储器中的操作的示图;
图8是示出根据示例实施例的CXL存储设备的读取操作的流程图;
图9是示出根据示例实施例的CXL存储设备的写入操作的流程图;
图10是示出根据示例实施例的计算系统的断电操作的流程图;
图11是根据示例实施例的计算系统的框图;
图12是根据示例实施例的计算系统的框图;
图13是根据示例实施例的计算系统的框图;
图14是根据示例实施例的计算系统的框图;
图15是根据示例实施例的计算系统的框图;
图16是示出应用根据示例实施例的计算系统的数据中心的框图;
图17是根据示例实施例的计算系统的框图;
图18是描述根据示例实施例的操作计算系统的方法的框图;以及
图19是描述根据示例实施例的操作计算系统的方法的流程图。
具体实施方式
以下,将参照附图描述示例实施例。
图1是包括存储装置的计算系统的框图。参照图1,计算系统10可包括主机11、多个存储器装置12a和12b、以及存储装置13。主机11可控制计算系统10的整体操作。多个存储器装置12a和12b可被用作主机11的工作存储器或系统存储器。
存储装置13可包括存储控制器13a、缓冲存储器13b和非易失性存储器13c。在主机11的控制下,存储控制器13a可将数据存储在非易失性存储器13c中,或者可将存储在非易失性存储器13c中的数据发送到主机11。
缓冲存储器13b可存储存储装置13操作所需的各种信息。例如,存储控制器13a可通过使用映射数据来管理存储在非易失性存储器13c中的数据。映射数据可包括关于由主机11管理的逻辑块地址与非易失性存储器13c的物理块地址之间的关系的信息。
在一个示例实施例中,缓冲存储器13b可以是高速存储器(诸如,DRAM)。随着非易失性存储器13c的容量增大,需要的映射数据的大小可增大。然而,因为包括在单个存储装置13中的缓冲存储器13b的容量有限,所以缓冲存储器13b可不能够存储由于非易失性存储器13c的容量的增大而需要的增大的映射数据。
图2是根据示例实施例的应用存储装置的计算系统的框图。参照图2,计算系统100可包括主机101、多个存储器装置102a和102b、计算快速链路(CXL)存储设备(或,存储装置)110、以及CXL存储器(或,存储器装置)120。在一个示例实施例中,计算系统100可被包括在用户装置(诸如,个人计算机、膝上型计算机、服务器、媒体播放器和数码相机)或汽车装置(诸如,导航系统、黑匣子和汽车电子装置/部件)中。可选地,计算系统100可以是移动系统(诸如,移动电话、智能电话、平板个人计算机(PC)、可穿戴装置、健康护理装置或物联网(IoT)装置)。
主机101可控制计算系统100的整体操作。在一个示例实施例中,主机101可以是各种处理器(诸如,中央处理器(CPU)、图形处理器(GPU)、神经处理器(NPU)和数据处理器(DPU))中的一个。在一个示例实施例中,主机101可包括单核处理器或多核处理器。
多个存储器装置102a和102b可被用作计算系统100的主存储器或系统存储器。在一个示例实施例中,多个存储器装置102a和102b中的每个可以是动态随机存取存储器(DRAM)装置,并且可具有双列直插式存储器模块(DIMM)的形状因子(form factor)。然而,示例实施例不限于此。例如,多个存储器装置102a和102b可包括非易失性存储器(诸如,闪存、相变RAM(PRAM)、电阻式RAM(RRAM)或磁性RAM(MRAM))。
多个存储器装置102a和102b可各自包括用于与主机101直接通信的接口(诸如,双倍数据速率(DDR)接口)。在一个示例实施例中,主机101可包括被配置为控制多个存储器装置102a和102b的存储器控制器。然而,示例实施例不限于此。例如,多个存储器装置102a和102b可通过各种接口与主机101通信。
CXL存储设备110可包括CXL存储控制器111和非易失性存储器NVM。在主机101的控制下,CXL存储控制器111可将数据存储在非易失性存储器NVM中,或者可将存储在非易失性存储器NVM中的数据发送到主机101。在一个示例实施例中,非易失性存储器NVM可以是NAND闪存,但是示例实施例不限于此。
CXL存储器120可包括CXL存储器控制器121和缓冲存储器BFM。在主机101的控制下,CXL存储器控制器121可将数据存储在缓冲存储器BFM中,或者可将存储在缓冲存储器BFM中的数据发送到主机101。在一个示例实施例中,缓冲存储器BFM可以是DRAM,但是示例实施例不限于此。
在一个示例实施例中,主机101、CXL存储设备110和CXL存储器120可被配置为共享同一接口。例如,主机101、CXL存储设备110和CXL存储器120可通过CXL接口IF_CXL彼此通信。在一个示例实施例中,CXL接口IF_CXL可指示支持一致性、存储器访问以及输入和输出协议的动态协议复用使得加速器、存储器装置或各种电子装置之间的各种连接可行的低延迟和高带宽链路。
在一个示例实施例中,与图1的存储装置13不同,CXL存储设备110可不包括用于存储或管理映射数据的单独的缓冲存储器。在这种情况下,CXL存储设备110可需要用于存储或管理映射数据的缓冲存储器。在一个示例实施例中,CXL存储器120的至少部分区域可被用作CXL存储设备110的缓冲存储器。在这种情况下,由CXL存储设备110的CXL存储控制器111管理的映射表可被存储在CXL存储器120中。例如,CXL存储器120的至少部分区域可被主机101分配用于CXL存储设备110的缓冲存储器(即,用于专用于CXL存储设备110的区域)。
在一个示例实施例中,CXL存储设备110可通过CXL接口IF_CXL来访问CXL存储器120。例如,CXL存储设备110可将映射表存储在CXL存储器120的分配区域中,或者可从CXL存储器120的分配区域读取映射表。在CXL存储设备110的控制下,CXL存储器120可将数据(例如,映射数据)存储在缓冲存储器BFM中,或者可将存储在缓冲存储器BFM中的数据(例如,映射数据)发送到CXL存储设备110。
如参照图1所述,现有的存储装置13通过使用包括在其中的缓冲存储器13b来存储和管理映射数据。随着存储装置13的容量增大,映射数据的大小增大,这需要包括在存储装置13中的缓冲存储器13b的容量的增大。然而,由于包括在存储装置13中的缓冲存储器13b的结构和物理特性,对容量的增大存在限制。
相比之下,根据一个示例实施例,CXL存储设备110可使用布置在CXL存储设备110外部的CXL存储器120的至少部分区域作为缓冲存储器。在这种情况下,因为CXL存储器120独立于CXL存储设备110来实现,所以CXL存储器120可用高容量存储器来实现。这样,即使映射数据的大小由于CXL存储设备110的容量的增大而增大,映射数据也可由CXL存储器120正常地管理。
此外,现有的存储装置13的存储控制器13a通过主机接口(诸如,外围组件互连快速(PCIe)或NVM快速(NVMe))与主机11通信,并且通过存储器接口(诸如,DDR接口或低功率双数据速率(LPDDR)接口)与缓冲存储器13b通信。也就是说,现有的存储装置13的存储控制器13a通过不同的接口(即,异构接口)与主机11和包括在其中的缓冲存储器13b通信。
相比之下,根据一个示例实施例,CXL存储设备110的CXL存储控制器111可通过CXL接口IF_CXL与主机101和CXL存储器120(即,缓冲存储器)两者通信。在这方面,CXL存储设备110的CXL存储控制器111可通过同构接口或公共接口与主机101和CXL存储器120通信,并且可使用CXL存储器120的部分区域作为缓冲存储器。
以下,为了便于描述,假设主机101、CXL存储设备110和CXL存储器120通过CXL接口IF_CXL彼此通信。然而,示例实施例不限于此。例如,主机101、CXL存储设备110和CXL存储器120可基于符合以下协议的各种计算接口彼此通信:GEN-Z协议、NVLink协议、用于加速器的高速缓存一致性互连(CCIX)协议和开放一致性加速器处理器接口(CAPI)协议。
图3是根据示例实施例的详细示出图2的计算系统的框图。参照图2和图3,计算系统100可包括CXL交换机SW_CXL、主机101、CXL存储设备110和CXL存储器120。
CXL交换机SW_CXL可以是包括在CXL接口IF_CXL中的组件。CXL交换机SW_CXL可被配置为仲裁主机101、CXL存储设备110与CXL存储器120之间的通信。例如,当主机101和CXL存储设备110彼此通信时,CXL交换机SW_CXL可被配置为将从主机101或CXL存储设备110提供的信息(诸如,请求、数据、响应或信号)发送到CXL存储设备110或主机101。当主机101和CXL存储器120彼此通信时,CXL交换机SW_CXL可被配置为将从主机101或CXL存储器120提供的信息(诸如,请求、数据、响应或信号)发送到CXL存储器120或主机101。当CXL存储设备110和CXL存储器120彼此通信时,CXL交换机SW_CXL可被配置为将从CXL存储设备110或CXL存储器120提供的信息(诸如,请求、数据、响应或信号)发送到CXL存储器120或CXL存储设备110。
主机101可包括CXL主机接口(CXL_H I/F)电路101a。CXL主机接口电路101a可通过CXL交换机SW_CXL与CXL存储设备110或CXL存储器120通信。
在一个示例实施例中,CXL存储设备110的配置可与现有的存储设备的配置不同。例如,现有的存储装置(例如,包括DRAM缓冲器的SSD)存储和管理包括在现有的存储装置中的DRAM缓冲器中的映射数据。在这种情况下,用于存储映射数据的高容量DRAM缓冲器可被包括在现有的存储装置中。可选地,另一种类型的现有的存储装置(例如,无DRAM SSD或无DRAM存储卡)可将全部映射数据存储在包括在现有的存储装置中的非易失性存储器(例如,NAND闪存)中,并且现有的存储装置可将映射数据的一部分加载到SRAM缓冲器上。在这种情况下,为了加载映射数据,具有比DRAM缓冲器的操作速度低的操作速度的非易失性存储器被频繁地访问,从而降低操作的性能。
相比之下,根据示例实施例的CXL存储设备110可不包括被配置为存储映射数据的单独的DRAM缓冲器。在这种情况下,可在布置在CXL存储设备110外部的CXL存储器120中存储和管理映射数据MD。如以下将描述的,因为CXL存储器120支持快速操作速度,所以CXL存储设备110可具有与现有的存储装置(例如,包括DRAM的存储装置)相同的性能。此外,因为CXL存储器120布置在CXL存储设备110外部,所以CXL存储设备110的大量映射数据可被管理。
CXL存储设备110可包括CXL存储控制器111和非易失性存储器NVM。CXL存储控制器111可包括CXL存储设备接口(CXL_S I/F)电路111a、处理器111b、RAM 111c、闪存转换层(FTL)111d、纠错码(ECC)引擎111e和NAND接口(I/F)电路111f。
CXL存储设备接口电路111a可与CXL交换机SW_CXL连接。CXL存储设备接口电路111a可通过CXL交换机SW_CXL与主机101或CXL存储器120通信。
处理器111b可被配置为控制CXL存储控制器111的整体操作。RAM 111c可被用作CXL存储控制器111的工作存储器或缓冲存储器。在一个示例实施例中,RAM 111c可以是SRAM,并且可被用作CXL存储设备110的读取缓冲器和写入缓冲器。在一个示例实施例中,如以下将描述的,RAM 111c可被配置为临时存储从CXL存储器120读取的映射数据MD或映射数据MD的一部分。
FTL 111d可执行用于有效地使用非易失性存储器NVM的各种管理操作。例如,FTL111d可基于映射数据(或映射表)在由主机101管理的逻辑块地址与在非易失性存储器NVM中使用的物理块地址之间执行地址转换。FTL 111d可对非易失性存储器NVM执行坏块管理操作(bad block management operation)。FTL 111d可对非易失性存储器NVM执行损耗均衡操作。FTL 111d可对非易失性存储器NVM执行垃圾收集操作。
在一个示例实施例中,FTL 111d可以以硬件、固件或软件的形式或以其组合的形式来实现。在FTL 111d以固件或软件的形式实现的情况下,与FTL 111d相关联的程序代码可被存储在RAM 111c中并且可被处理器111b驱动。在FTL 111d通过硬件实现的情况下,被配置为执行以上的管理操作的硬件组件可在CXL存储控制器111中实现。
ECC引擎111e可对从非易失性存储器NVM读取的数据执行错误检测和纠正。例如,ECC引擎111e可生成将要存储在非易失性存储器NVM中的用户数据UD的奇偶校验位,并且由此生成的奇偶校验位可与用户数据UD一起被存储在非易失性存储器NVM中。当从非易失性存储器NVM读取用户数据UD时,ECC引擎111e可通过使用与用户数据UD一起从非易失性存储器NVM读取的奇偶校验位来对用户数据UD的错误进行检测和纠正。
NAND接口电路111f可控制非易失性存储器NVM,使得数据被存储在非易失性存储器NVM中或者数据从非易失性存储器NVM被读取。在一个示例实施例中,NAND接口电路111f可被实现为符合标准协议(诸如,切换(toggle)接口或开放NAND闪存接口(ONFI)。例如,非易失性存储器NVM可包括多个NAND闪存装置;在基于切换接口来实现NAND接口电路111f的情况下,NAND接口电路111f可通过多个通道与多个NAND闪存装置通信。多个NAND闪存装置可通过多通道、多路结构与多个通道连接。
NAND接口电路111f可通过多个通道将芯片使能信号/CE、命令锁存使能信号CLE、地址锁存使能信号ALE、读取使能信号/RE和写入使能信号/WE发送到多个NAND闪存装置。NAND接口电路111f和每个NAND闪存装置可通过每个通道交换数据信号DQ和数据选通信号DQS。
[表1]
/CE | CLE | ALE | /WE | /RE | DQS | DQx | 模式 |
L | H | L | ↑ | H | X | CMD | 命令输入 |
L | L | H | ↑ | H | X | ADDR | 地址输入 |
L | L | L | H | H | ↑↓ | DATA_in | 数据输入 |
L | L | L | H | ↑↓ | ↑↓ | DATA_out | 数据输出 |
表1示出根据每个信号的状态的NAND闪存装置的操作模式。参照表1,当NAND闪存装置接收到命令CMD或地址ADDR,或者接收到/输出数据“DATA”(DATA_in或DATA_out)时,芯片使能信号/CE保持低状态“L”。在命令输入模式期间,NAND接口电路111f可控制信号线,使得命令锁存使能信号CLE具有高电平“H”,地址锁存使能信号ALE具有低电平“L”,写入使能信号/WE在高电平“H”与低电平“L”之间切换,并且读取使能信号/RE具有高电平“H”。在命令输入模式期间,NAND接口电路111f可与写入使能信号/WE的上升沿↑同步地通过数据信号DQx将命令CMD发送到NAND闪存装置。NAND闪存装置可响应于写入使能信号/WE的上升沿↑而从数据信号DQx识别命令CMD。在地址输入模式期间,NAND接口电路111f可控制信号线,使得命令锁存使能信号CLE具有低电平“L”,地址锁存使能信号ALE具有高电平“H”,写入使能信号/WE在高电平“H”与低电平“L”之间切换,并且读取使能信号/RE具有高电平“H”。在地址输入模式期间,NAND接口电路111f可与写入使能信号/WE的上升沿↑同步地通过数据信号DQx将地址ADDR发送到NAND闪存装置。NAND闪存装置可响应于写入使能信号/WE的上升沿↑而从数据信号DQx识别地址ADDR。在一个示例实施例中,地址ADDR可以是与NAND闪存装置的物理块地址对应的值。
在数据输入模式期间,NAND接口电路111f可控制信号线,使得命令锁存使能信号CLE具有低电平“L”,地址锁存使能信号ALE具有低电平“L”,写入使能信号/WE具有高电平“H”,读取使能信号/RE具有高电平“H”,并且数据选通信号DQS在高电平“H”与低电平“L”之间切换。在数据输入模式期间,NAND接口电路111f可与数据选通信号DQS的上升沿↑和下降沿↓同步地通过数据信号DQx将数据“DATA”(DATA_in)发送到NAND闪存装置。NAND闪存装置可响应于数据选通信号DQS的上升沿↑和下降沿↓而从数据信号DQx识别数据“DATA”(DATA_in)。
在数据输出模式期间,NAND接口电路111f可控制信号线,使得命令锁存使能信号CLE具有低电平“L”,地址锁存使能信号ALE具有低电平“L”,写入使能信号/WE具有高电平“H”,并且读取使能信号/RE在高电平“H”与低电平“L”之间切换。在数据输出模式期间,NAND闪存装置可响应于读取使能信号/RE而生成在高电平“H”与低电平“L”之间切换的数据选通信号DQS。NAND闪存装置可与数据选通信号DQS的上升沿↑和下降沿↓同步地通过数据信号DQx将数据“DATA”(DATA_out)发送到NAND接口电路111f。NAND接口电路111f可响应于数据选通信号DQS的上升沿↑和下降沿↓而从数据信号DQx识别数据“DATA”(DATA_out)。
以上描述的切换接口是示例,并且示例实施例不限于此。
非易失性存储器NVM可在CXL存储控制器111的控制下存储或输出用户数据UD。非易失性存储器NVM可在CXL存储控制器111的控制下存储或输出映射数据MD。在一个示例实施例中,存储在非易失性存储器NVM中的映射数据MD可包括与存储在非易失性存储器NVM中的全部用户数据UD对应的映射信息。存储在非易失性存储器NVM中的映射数据MD可在CXL存储设备110的初始化操作中被存储在CXL存储器120中。
CXL存储器120可包括CXL存储器控制器121和缓冲存储器BFM。CXL存储器控制器121可包括CXL存储器接口(CXL_M I/F)电路121a、处理器121b、存储器管理器121c和缓冲存储器接口(I/F)电路121d。
CXL存储器接口电路121a可与CXL交换机SW_CXL连接。CXL存储器接口电路121a可通过CXL交换机SW_CXL与主机101或CXL存储设备110通信。
处理器121b可被配置为控制CXL存储器控制器121的整体操作。存储器管理器121c可被配置为管理缓冲存储器BFM。例如,存储器管理器121c可被配置为将来自主机101或CXL存储设备110的存储器地址(例如,逻辑地址或虚拟地址)转换为缓冲存储器BFM的物理地址。在一个示例实施例中,作为用于管理CXL存储器120的存储区域的地址的存储器地址可以是由主机101指定和管理的逻辑地址或虚拟地址。
缓冲存储器接口电路121d可控制缓冲存储器BFM,使得数据被存储在缓冲存储器BFM中或者数据从缓冲存储器BFM被读取。在一个示例实施例中,缓冲存储器接口电路121d可被实现为符合标准协议(诸如,DDR接口或LPDDR接口)。
在CXL存储器控制器121的控制下,缓冲存储器BFM可存储数据或者可输出存储的数据。在一个示例实施例中,缓冲存储器BFM可被配置为存储在CXL存储设备110中使用的映射数据MD。当计算系统100被初始化或CXL存储设备110被初始化时,映射数据MD可从CXL存储设备110被传送到CXL存储器120。
如上所述,根据示例实施例的CXL存储设备110可将管理非易失性存储器NVM所需的映射数据MD存储在通过CXL交换机SW_CXL(或CXL接口IF_CXL)连接的CXL存储器120中。之后,当CXL存储设备110根据主机101的请求执行读取操作时,CXL存储设备110可通过CXL交换机SW_CXL(或CXL接口IF_CXL)从CXL存储器120读取映射数据MD的至少一部分,并且可基于由此读取的映射数据MD来执行读取操作。可选地,当CXL存储设备110根据主机101的请求执行写入操作时,CXL存储设备110可对非易失性存储器NVM执行写入操作,并且可更新映射数据MD。在这种情况下,更新后的映射数据MD可首先被存储在CXL存储控制器111的RAM111c中,并且存储在RAM 111c中的映射数据MD可通过CXL交换机SW_CXL(或CXL接口IF_CXL)被传送到CXL存储器120的缓冲存储器BFM,以便在缓冲存储器BFM中被更新。
在一个示例实施例中,CXL存储器120的缓冲存储器BFM的至少部分区域可被分配用于CXL存储设备110的专用区域,并且剩余区域可被用作能够被主机101访问的区域。
在一个示例实施例中,主机101和CXL存储设备110可通过使用输入/输出协议(诸如,CXL.io)来彼此通信。CXL.io可以是基于PCIe的非一致性输入/输出协议。主机101和CXL存储设备110可通过使用CXL.io来彼此交换用户数据或各种信息。
在一个示例实施例中,CXL存储设备110和CXL存储器120可通过使用存储器访问协议(诸如,CXL.mem)来彼此通信。CXL.mem可以是支持存储器访问的存储器访问协议。CXL存储设备110可通过使用CXL.mem来访问CXL存储器120的部分区域(例如,存储映射数据MD的区域或CXL存储设备专用区域)。
在一个示例实施例中,主机101和CXL存储器120可通过使用CXL.mem来彼此通信。主机101可通过使用CXL.mem来访问CXL存储器120的作为系统存储器的剩余区域(例如,除了存储映射数据MD的区域之外的剩余区域或除了CXL存储设备专用区域之外的剩余区域)。
提供包括CXL.io和CXL.mem的以上访问类型作为示例,并且示例实施例不限于此。
在一个示例实施例中,CXL存储设备110和CXL存储器120可安装在基于CXL接口的物理端口(例如,PCIe物理端口)中。在一个示例实施例中,CXL存储设备110和CXL存储器120可基于E1.S、E1.L、E3.S、E3.L或PCIe AIC(CEM)形状因子来实现。可选地,CXL存储设备110和CXL存储器120可基于U.2形状因子、M.2形状因子、各种不同类型的基于PCIe的形状因子或各种不同类型的小形状因子来实现。如将参照图14所描述的,CXL存储设备110和CXL存储器120可用各种类型的形状因子来实现,并且可支持能够安装在物理端口中或从物理端口移除的热插拔的功能。
图4是根据示例实施例的示出图3的计算系统的初始化操作或上电操作的流程图。参照图3和图4,在操作PUP-S10中,计算系统100可被上电。当计算系统100被上电时,主机101可将关于上电或初始化开始的信息发送到CXL存储设备110、CXL交换机SW_CXL和CXL存储器120。响应于关于上电或初始化开始的信息,CXL存储设备110、CXL交换机SW_CXL和CXL存储器120中的每个可执行单独的初始化操作。
在操作PUP-S11中,CXL存储设备110可检查存储设备容量(即,非易失性存储器NVM的容量)。例如,CXL存储设备110可响应于关于上电或初始化开始的信息而检查非易失性存储器NVM的存储设备容量。
在操作PUP-S12中,CXL存储器120可检查存储器容量(即,缓冲存储器BFM的容量)。例如,CXL存储器120可响应于关于上电或初始化开始的信息而检查缓冲存储器BFM的容量。
主机101可通过操作PUP-S21和操作PUP-S22来识别CXL存储设备110的信息。例如,在操作PUP-S21中,主机101可通过CXL主机接口电路101a发出用于识别CXL存储设备110的装置信息的第一装置信息请求REQ_id1。第一装置信息请求REQ_id1可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第一装置信息请求REQ_id1传送到作为第一装置信息请求REQ_id1的目标的CXL存储设备110。
在操作PUP-S22中,CXL存储设备110可响应于从CXL交换机SW_CXL接收的第一装置信息请求REQ_id1而通过CXL存储设备接口电路111a输出第一装置信息响应REP_id1。第一装置信息响应REP_id1可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第一装置信息响应REP_id1传送到作为第一装置信息响应REP_id1的目标的主机101。
主机101可响应于从CXL交换机SW_CXL接收的第一装置信息响应REP_id1而识别CXL存储设备110的装置信息。在一个示例实施例中,第一装置信息响应REP_id1可包括关于CXL存储设备110的装置类型和存储设备容量的信息。
主机101可通过操作PUP-S31和操作PUP-S32来识别CXL存储器120的信息。例如,在操作PUP-S31中,主机101可通过CXL主机接口电路101a发出用于识别CXL存储器120的装置信息的第二装置信息请求REQ_id2。第二装置信息请求REQ_id2可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第二装置信息请求REQ_id2传送到作为第二装置信息请求REQ_id2的目标的CXL存储器120。
在操作PUP-S32中,CXL存储器120可响应于从CXL交换机SW_CXL接收的第二装置信息请求REQ_id2而通过CXL存储器接口电路121a输出第二装置信息响应REP_id2。第二装置信息响应REP_id2可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第二装置信息响应REP_id2传送到作为第二装置信息响应REP_id2的目标的主机101。
主机101可响应于从CXL交换机SW_CXL接收的第二装置信息响应REP_id2而识别CXL存储器120的装置信息。在一个示例实施例中,第二装置信息响应REP_id2可包括关于CXL存储器120的装置类型和存储器容量的信息。
如上所述,主机101可通过操作PUP-S21至操作PUP-S32识别关于CXL存储设备110和CXL存储器120的装置类型(例如,存储设备类型或存储器类型)和容量的信息。
主机101可通过操作PUP-S41至操作PUP-S46将CXL存储器120的至少部分区域分配用于专用于CXL存储设备110的区域。例如,在操作PUP-S41中,CXL存储设备110可通过CXL存储设备接口电路111a输出存储器分配请求REQ_mem_alc。存储器分配请求REQ_mem_alc可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将存储器分配请求REQ_mem_alc传送到主机101。在一个示例实施例中,存储器分配请求REQ_mem_alc可表示针对CXL存储器120的区域之中的要被用作CXL存储设备110的专用区域的区域的分配请求。
在操作PUP-S42中,主机101可响应于存储器分配请求REQ_mem_alc而将CXL存储器120的至少部分区域分配用于CXL存储设备110的专用区域。例如,主机101可基于CXL存储设备110的存储设备容量来确定CXL存储设备110所需的缓冲器容量。主机101可将与确定的缓冲器容量对应的CXL存储器120的区域分配用于CXL存储设备110的专用区域。
在操作PUP-S43中,主机101可通过CXL主机接口电路101a输出存储器分配响应REP_mem_alc。存储器分配响应REP_mem_alc可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将存储器分配响应REP_mem_alc传送到作为存储器分配响应REP_mem_alc的目标的CXL存储设备110。在一个示例实施例中,存储器分配响应REP_mem_alc可包括关于CXL存储器120的装置标识符和被分配用于CXL存储器120的专用区域的CXL存储器120的区域的存储器地址(例如,逻辑地址范围或虚拟地址范围)的信息。
CXL存储设备110可基于存储器分配响应REP_mem_alc来标识CXL存储器120的专用于CXL存储设备110的区域。
在操作PUP-S44中,CXL存储设备110可通过CXL存储设备接口电路111a输出写入请求REQ_WR。写入请求REQ_WR可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将写入请求REQ_WR传送到作为写入请求REQ_WR的目标的CXL存储器120。CXL存储器120可响应于写入请求REQ_WR而执行写入操作。在一个示例实施例中,CXL存储器120可动态地对映射数据MD执行写入操作。这将参照图17至图19详细描述。
在操作PUP-S45中,CXL存储器120可通过CXL存储器接口电路121a输出提供写入请求完成的通知的写入响应REP_WR。CXL交换机SW_CXL可将写入响应REP_WR传送到作为写入响应REP_WR的目标的CXL存储设备110。CXL存储设备110可响应于写入响应REP_WR而识别出完全地对CXL存储器120执行写入操作。
在一个示例实施例中,写入请求REQ_WR可表示用于将存在于CXL存储设备110的非易失性存储器NVM中的映射数据MD存储在CXL存储器120的专用区域中的请求。也就是说,写入请求REQ_WR可包括关于映射数据MD和专用区域的地址信息。通过操作PUP-S44和操作PUP-S45,存在于CXL存储设备110中的映射数据MD可被存储在CXL存储器120的专用区域中。
在操作PUP-S46中,CXL存储设备110可通过CXL存储设备接口电路111a输出确认信息ACK_md。CXL交换机SW_CXL可将确认信息ACK_md传送到主机101。响应于确认信息ACK_md,主机101可识别出CXL存储设备110将映射数据MD存储在CXL存储器120中。之后,主机101、CXL存储设备110和CXL存储器120可执行正常操作(例如,读取操作或写入操作)。
图5是描述根据示例实施例的计算系统100存储映射数据的操作的示图。为了便于描述并且为了附图的简洁,概念性地示出主机101、CXL存储设备110和CXL存储器120的组件,并且一些组件被省略。
参照图3至图5,主机101可将CXL存储器120的部分区域分配用于CXL存储设备110的专用区域。在这种情况下,CXL存储器120的专用区域可由CXL存储设备110访问,并且可用于存储CXL存储设备110的映射数据。
例如,如图5中所示,CXL存储设备110的非易失性存储器NVM可存储用户数据UD和映射数据MD。如上所述,因为CXL存储设备110不包括单独的缓冲存储器,所以CXL存储设备110可需要将要存储映射数据MD的缓冲区域。根据一个示例实施例,CXL存储设备110的映射数据MD可被存储在CXL存储器120的部分区域(例如,由主机101分配的专用区域)中。在这种情况下,CXL存储器120的专用区域可由CXL存储设备110通过CXL交换机SW_CXL来访问。主机101可以可变地分配CXL存储器120的专用区域,使得专用区域的大小根据要生成的映射数据MD而变化。
在一个示例实施例中,CXL存储器120的除了专用区域之外的未被分配的剩余区域可以是可由主机101访问或由主机101管理的区域。在这种情况下,主机101可通过CXL交换机SW_CXL访问CXL存储器120的剩余区域。在一个示例实施例中,CXL存储器120的未被分配用于专用区域的剩余区域可被用作存储器扩展器。
如上所述,根据CXL存储设备110的请求,主机101可将CXL存储器120的至少部分区域分配用于CXL存储设备110的专用区域。在这种情况下,CXL存储设备110可访问CXL存储器120的被分配用于专用区域的部分,并且主机101可访问CXL存储器120的剩余区域(即,除了由此分配的专用区域之外的剩余区域)。在一个示例实施例中,CXL存储设备110对CXL存储器120的访问和主机101对CXL存储器120的访问二者可通过同一接口(例如,CXL接口或CXL交换机)来执行。
在一个示例实施例中,当主机101的系统存储器不足时,主机101可检索(或恢复)CXL存储器120的分配给CXL存储设备110的专用区域的部分(即,用于存储映射数据的区域)。专用区域的检索的(或恢复的)部分可被主机101用作系统存储器。
图6和图7是描述根据示例实施例的映射数据被存储在CXL存储器中的操作的示图。在一个示例实施例中,存在于CXL存储设备110中的映射数据MD可通过各种方式从CXL存储设备110被传送到CXL存储器120并存储在CXL存储器120中。
作为一个示例,CXL存储设备110和CXL存储器120可基于对等(P2P)方式来交换映射数据MD。例如,如图6中所示,CXL存储设备110的CXL存储控制器111可包括直接存储器访问(DMA)引擎。包括在CXL存储控制器111中的DMA引擎可在没有主机101的干扰或控制的情况下将存在于非易失性存储器NVM中的映射数据MD传送到CXL存储器120。也就是说,映射数据MD可基于P2P方式从CXL存储设备110被传送到CXL存储器120。
作为一个示例,在主机101的控制下,CXL存储设备110和CXL存储器120可基于DMA方式交换映射数据MD。例如,如图7中所示,主机101可包括DMA引擎。主机101的DMA引擎可从CXL存储设备110读取映射数据MD,并且可将由此读取的映射数据MD传送到CXL存储器120。在一个示例实施例中,主机101的DMA引擎可基于CXL.io从CXL存储设备110读取映射数据MD,并且可基于CXL.mem将映射数据MD传送到CXL存储器120。
提供将映射数据从CXL存储设备110传送到CXL存储器120的以上方式作为示例,并且示例实施例不限于此。可理解,映射数据从CXL存储设备110到CXL存储器120的传送可使用CXL接口或CXL交换机以各种方式来实现。在一个示例实施例中,映射数据从CXL存储器120到CXL存储设备110的传送(即,备份或冲刷(flush))也可以以类似于以上方式的一种或多种方式来实现。
图8是示出根据示例实施例的CXL存储设备(诸如,CXL存储设备110)的读取操作的流程图。在一个示例实施例中,根据图8的流程图的CXL存储设备110的读取操作可在图4的初始化操作被执行之后(即,在CXL存储设备110的映射数据MD被存储在CXL存储器120的专用区域中之后)被执行。
参照图2、图3和图8,在操作RD-S10中,主机101可通过CXL主机接口电路101a输出第一读取请求REQ_RD1。CXL交换机SW_CXL可将第一读取请求REQ_RD1传送到作为第一读取请求REQ_RD1的目标的CXL存储设备110。在一个示例实施例中,第一读取请求REQ_RD1可表示用于读取存储在CXL存储设备110中的第一用户数据UD1的请求,并且可包括与第一用户数据UD1对应的第一逻辑块地址LBA1。
在操作RD-S21中,CXL存储设备110可响应于第一读取请求REQ_RD1而通过CXL存储设备接口电路111a输出第二读取请求REQ_RD2。CXL交换机SW_CXL可将第二读取请求REQ_RD2传送到CXL存储器120。在一个示例实施例中,第二读取请求REQ_RD2可表示用于读取与第一逻辑块地址LBA1对应的第一映射数据MD1的请求。也就是说,第二读取请求REQ_RD2可表示用于从CXL存储器120读取第一映射数据MD1的请求。第二读取请求REQ_RD2可包括关于指示存储第一映射数据MD1的区域的CXL存储器120的存储器地址(例如,逻辑地址或虚拟地址)的信息。在一个示例实施例中,第一映射数据MD1可以是在操作RD-S10之前的初始化操作或写入操作中动态地分配给缓冲存储器BFM的数据。
在操作RD-S22中,CXL存储器120可响应于第二读取请求REQ_RD2而读取第一映射数据MD1。例如,CXL存储器120的CXL存储器控制器121可从与包括在第二读取请求REQ_RD2中的存储器地址(例如,逻辑地址或虚拟地址)对应的区域读取第一映射数据MD1。在一个示例实施例中,CXL存储器控制器121可通过使用缓冲存储器接口电路121d从缓冲存储器BFM读取第一映射数据MD1。
在一个示例实施例中,在操作RD-S22中读取的第一映射数据MD1可以是全部映射数据MD的一部分,并且可以是与第一逻辑块地址LBA1对应的映射数据。也就是说,第一映射数据MD1可包括关于与第一逻辑块地址LBA1对应的第一物理块地址PBA1的信息。
在操作RD-S23中,CXL存储器120可通过CXL存储器接口电路121a输出包括第一映射数据MD1的第二读取响应REP_RD2。CXL交换机SW_CXL可将第二读取响应REP_RD2传送到CXL存储设备110。在一个示例实施例中,包括在通过CXL交换机SW_CXL接收的第二读取响应REP_RD2中的第一映射数据MD1可被存储或临时存储在CXL存储控制器111的RAM 111c中。
在一个示例实施例中,当与第一逻辑块地址LBA1对应的第一映射数据MD1已经存在于CXL存储控制器111的RAM 111c中时,操作RD-S21至操作RD-S23(即,用于从CXL存储器120加载第一映射数据MD1的操作)可被省略。
在操作RD-S31中,CXL存储设备110可基于第一映射数据MD1搜索与第一逻辑块地址LBA1对应的第一物理块地址PBA1。例如,CXL存储控制器111的FTL 111d可基于第一映射数据MD1搜索与第一逻辑块地址LBA1对应的第一物理块地址PBA1。
在操作RD-S32中,CXL存储设备110可从非易失性存储器NVM读取存在于与第一物理块地址PBA1对应的区域中的第一用户数据UD1。例如,CXL存储控制器111可从非易失性存储器NVM的与第一物理块地址PBA1对应的区域读取第一用户数据UD1。在一个示例实施例中,CXL存储控制器111可通过使用NAND接口电路111f从非易失性存储器NVM读取第一用户数据UD1。
在操作RD-S33中,CXL存储设备110可通过CXL存储设备接口电路111a输出对第一读取请求REQ_RD1的第一读取响应REP_RD1。CXL交换机SW_CXL可将第一读取响应REP_RD1传送到主机101。在一个示例实施例中,第一读取响应REP_RD1可包括通过第一读取请求REQ_RD1请求的第一用户数据UD1。主机101可通过第一读取响应REP_RD1获得第一用户数据UD1。
在一个示例实施例中,对应于主机101与CXL存储设备110之间的通信的操作RD-S10和操作RD-S33可基于CXL.io来执行,并且对应于CXL存储设备110与CXL存储器120之间的通信的操作RD-S21和操作RD-S23可基于CXL.mem来执行。然而,示例实施例不限于此。例如,主机101、CXL存储设备110与CXL存储器120之间的通信可通过CXL交换机SW_CXL(即,公共接口、公共链路或公共交换机)来执行。
图9是示出根据示例实施例的CXL存储设备(诸如,CXL存储设备110)的写入操作的流程图。在一个示例实施例中,根据图9的流程图的CXL存储设备110的写入操作可在图4的初始化操作被执行之后(即,在CXL存储设备110的映射数据MD被存储在CXL存储器120的专用区域中之后)被执行。
参照图2、图3和图9,在操作WR-S10中,主机101可通过CXL主机接口电路101a输出第一写入请求REQ_WR1。CXL交换机SW_CXL可将第一写入请求REQ_WR1传送到CXL存储设备110。在一个示例实施例中,第一写入请求REQ_WR1可表示用于将第一用户数据UD1写入CXL存储设备110中的请求。
在操作WR-S21中,CXL存储设备110可响应于第一写入请求REQ_WR1而确定要写入第一用户数据UD1的存储器块。例如,CXL存储控制器111的FTL 111d可管理关于包括在非易失性存储器NVM中的存储器块之中的空闲的、能够被写入的或能够被分配的存储器块的块信息。FTL 111d可基于块信息来选择要写入第一用户数据UD1的存储器块。
在操作WR-S22中,CXL存储设备110可将第一用户数据UD1写入选择的存储器块中。例如,CXL存储控制器111可控制非易失性存储器NVM,使得第一用户数据UD1被写入选择的存储器块中。在一个示例实施例中,CXL存储控制器111可通过使用NAND接口电路111f将第一用户数据UD1写入非易失性存储器NVM中。
当第一用户数据UD1被完全写入非易失性存储器NVM中时(即,当对非易失性存储器NVM的编程操作通过时),在操作WR-S23中,CXL存储设备110可更新第一映射数据MD1或者可生成第一映射数据MD1。例如,第一映射数据MD1可包括指示与第一逻辑块地址LBA1对应的第一用户数据UD1被存储在非易失性存储器NVM的与第一物理块地址PBA1对应的区域中的信息。也就是说,CXL存储设备110可生成指示与第一逻辑块地址LBA1对应的第一用户数据UD1被存储在与第一物理块地址PBA1对应的区域中的第一映射数据MD1。
在操作WR-S24中,CXL存储设备110可通过CXL存储设备接口电路111a输出对第一写入请求REQ_WR1的第一写入响应REP_WR1。CXL交换机SW_CXL可将第一写入响应REP_WR1传送到主机101。响应于第一写入响应REP_WR1,主机101可确定与第一写入请求REQ_WR1对应的第一用户数据UD1被正常地存储在CXL存储设备110中。
在由主机101请求的对CXL存储设备110的写入操作被完成之后,CXL存储设备110可执行映射数据更新操作。例如,在操作WR-S31中,CXL存储设备110可通过CXL存储设备接口电路111a输出第二写入请求REQ_WR2。CXL交换机SW_CXL可将第二写入请求REQ_WR2传送到CXL存储器120。
在一个示例实施例中,第二写入请求REQ_WR2可表示用于将随着第一用户数据UD1被存储而被更新或生成的第一映射数据MD1写入CXL存储器120中的请求。第二写入请求REQ_WR2可包括要存储第一映射数据MD1的存储器地址。包括在第二写入请求REQ_WR2中的存储器地址可指示CXL存储器120的专用于CXL存储设备110的区域。
在操作WR-S32中,CXL存储器120可响应于第二写入请求REQ_WR2而将第一映射数据MD1存储在相应的区域中。例如,CXL存储器120可将第一映射数据MD1写入与包括在第二写入请求REQ_WR2中的存储器地址对应的区域中。在一个示例实施例中,CXL存储器120可动态地对映射数据MD执行写入操作。这将参照图17至图19详细描述。
在操作WR-S33中,CXL存储器120可通过CXL存储器接口电路121a输出对第二写入请求REQ_WR2的第二写入响应REP_WR2。CXL交换机SW_CXL可将第二写入响应REP_WR2传送到CXL存储设备110。
在一个示例实施例中,当对CXL存储设备110的写入操作被完成时,操作WR-S31至操作WR-S33(即,将映射数据存储在CXL存储器120中的操作或更新映射数据的操作)可被执行。可选地,当更新后的或新生成的映射数据的大小达到给定值时,操作WR-S31至操作WR-S33可被执行。可选地,操作WR-S31至操作WR-S33可被周期性地执行。然而,示例实施例不限于此。例如,在CXL存储设备110的操作期间生成或更新的映射数据可根据各种操作策略而被存储在CXL存储器120中。
图10是示出根据示例实施例的计算系统(诸如,计算系统100)的断电操作的流程图。在一个示例实施例中,将参照图10描述计算系统的断电操作,但是示例实施例不限于此。例如,可理解,图10的方法适用于包括在计算系统中的各种组件(例如,主机、CXL存储设备、CXL存储器和CXL交换机)中的每个的断电操作或重置操作。
参照图2和图10,在操作POF-S10中,主机101可通过CXL主机接口电路101a输出断电信息IFM_off。CXL交换机SW_CXL可将断电信息IFM_off传送到CXL存储设备110。例如,主机101可识别或检测关于计算系统100的断电的信息。主机101可通过CXL交换机SW_CXL将断电信息IFM_off发送到CXL存储设备110,使得CXL存储设备110执行断电操作。
在操作POF-S21中,CXL存储设备110可响应于断电信息IFM_off而通过CXL存储设备接口电路111a输出读取请求REQ_RD。CXL交换机SW_CXL可将读取请求REQ_RD传送到CXL存储器120。在一个示例实施例中,操作POF-S21中的读取请求REQ_RD可表示用于读取存储在CXL存储器120中的全部映射数据MD的请求。读取请求REQ_RD可包括存储映射数据MD的区域的存储器地址。
在操作POF-S22中,CXL存储器120可响应于读取请求REQ_RD而读取映射数据MD。例如,CXL存储器120可基于包括在读取请求REQ_RD中的存储器地址从缓冲存储器BFM读取映射数据MD。
在操作POF-S23中,CXL存储器120可通过CXL存储器接口电路121a输出对读取请求REQ_RD的读取响应REP_RD。CXL交换机SW_CXL可将读取响应REP_RD传送到CXL存储设备110。
在操作POF-S24中,CXL存储设备110可将包括在读取响应REP_RD中的映射数据MD写入非易失性存储器NVM中。在一个示例实施例中,CXL存储设备110可将映射数据MD存储在非易失性存储器NVM的给定区域中。
在与CXL存储设备110相关联的全部映射数据MD被存储在非易失性存储器NVM中之后,在操作POF-S31中,CXL存储设备110可输出对断电信息IFM_off的响应ACK_off。CXL交换机SW_CXL可将响应ACK_off发送到主机101。主机101可基于响应ACK_off来识别存在于CXL存储器120中的映射数据MD被正常地存储在CXL存储设备110中。
之后,在操作POF-S32中,主机101、CXL存储设备110、CXL存储器120和CXL交换机SW_CXL可被断电。例如,提供给主机101、CXL存储设备110、CXL存储器120和CXL交换机SW_CXL的电力可被中断。
提供参照图10描述的断电操作作为示例,并且示例实施例不限于此。例如,如图10中所示,在CXL存储设备110将存在于CXL存储器120中的映射数据MD存储在非易失性存储器NVM中之后,CXL存储设备110可通过将确认ACK_off发送到主机101(即,中断方式)来提供映射数据MD被完全备份的通知。可选地,在将存在于CXL存储器120中的映射数据MD存储在非易失性存储器NVM中之后,CXL存储设备110可将特定寄存器的值设置为给定值。主机101可通过周期性地检查CXL存储设备110的特定寄存器的值(轮询方式)来检查映射数据MD是否被完全备份。可选地,CXL存储设备110可被配置为在从主机101接收到断电信息IFM_off的时间点起的给定时间内完成映射数据MD的备份操作(超时方式)。如上所述,CXL存储设备110可通过各种方式中的至少一种将关于映射数据MD的备份完成的信息传送到主机101。
在一个示例实施例中,断电操作可根据CXL存储设备110的操作方式而被改变。例如,当CXL存储设备110执行写入操作时,CXL存储设备110可对非易失性存储器NVM执行编程操作,并且因此可更新映射数据MD。
在一个示例实施例中,可仅对CXL存储器120执行更新映射数据MD的操作。在这种情况下,存储在CXL存储器120中的映射数据MD可以是最新信息,并且存储在非易失性存储器NVM中的映射数据MD可以不是最新信息。也就是说,当仅对CXL存储器120执行更新映射数据MD的操作时,仅在CXL存储器120中维持关于映射数据MD的最新信息;为此,当CXL存储设备110、CXL存储器120或计算系统100被断电时,需要从CXL存储器120冲刷、备份或转储映射数据MD的操作。
在一个示例实施例中,映射数据(MD)更新操作可首先针对存储在非易失性存储器NVM中的映射数据MD执行,然后可通过后台操作针对存储在CXL存储器120中的映射数据MD执行。在这种情况下,因为存储在非易失性存储器NVM中的映射数据MD被保证是最新的,所以当CXL存储设备110、CXL存储器120或计算系统100被断电时,可不需要从CXL存储器120冲刷、转储或备份映射数据MD的操作。
在一个示例实施例中,映射数据更新操作可首先针对存储在CXL存储器120中的映射数据MD执行,然后可通过后台操作针对存储在非易失性存储器NVM中的映射数据MD执行。在这种情况下,存储在CXL存储器120中的映射数据MD可以是最新信息,并且存储在非易失性存储器NVM中的映射数据MD可以不是最新信息。这样,当CXL存储设备110、CXL存储器120或计算系统100被断电时,CXL存储器120的映射数据MD的至少一部分必须被备份到CXL存储设备110的非易失性存储器NVM。在一个示例实施例中,要备份到非易失性存储器NVM的映射数据MD的至少一部分可以是未被存储在非易失性存储器NVM中的最新映射数据MD。在一个示例实施例中,CXL存储设备110可管理或存储指示存储在非易失性存储器NVM中的映射数据MD是最新信息的标志信息或表信息。
如上所述,当CXL存储设备110、CXL存储器120或计算系统100被断电时,根据用于管理映射数据MD的方法(即,根据管理最新信息的位置),映射数据MD可被选择性地从CXL存储器120冲刷、备份或转储到CXL存储设备110。
图11是根据示例实施例的计算系统的框图。以下,为了便于描述,与上述组件相关联的附加描述将被省略以避免冗余。参照图11,计算系统200可包括主机201、多个存储器装置202a和202b、CXL交换机SW_CXL、CXL存储设备210、以及多个CXL存储器220_1至220_n。
主机201可与多个存储器装置202a和202b直接连接。主机201、CXL存储设备210和多个CXL存储器220_1至220_n可与CXL交换机SW_CXL连接,并且可通过CXL交换机SW_CXL彼此通信。
在一个示例实施例中,多个CXL存储器220_1至220_n中的每个可具有与参照图2至图10描述的CXL存储器120的结构类似的结构。也就是说,多个CXL存储器220_1至220_n中的每个可以用单独的存储器装置或存储器模块来实现,并且可通过不同的物理端口与CXL交换机SW_CXL连接。随着多个CXL存储器220_1至220_n与CXL交换机SW_CXL连接,由主机201管理的存储器区域(或容量)可增大。
在一个示例实施例中,主机201可将多个CXL存储器220_1至220_n管理为一个存储器集群(cluster)。在一个示例实施例中,主机201可将多个CXL存储器220_1至220_n中的至少一些分配用于专用于CXL存储设备210的存储器。可选地,主机201可将多个CXL存储器220_1至220_n中的每个的至少部分区域分配用于专用于CXL存储设备210的存储器。
图12是根据示例实施例的计算系统的框图。以下,为了便于描述,与上述组件相关联的附加描述将被省略以避免冗余。参照图12,计算系统300可包括主机301、多个存储器装置302a和302b、CXL交换机SW_CXL、多个CXL存储设备310_1至310_m、以及CXL存储器320。
主机301可与多个存储器装置302a和302b直接连接。主机301、多个CXL存储设备310_1至310_m和CXL存储器320可与CXL交换机SW_CXL连接,并且可通过CXL交换机SW_CXL彼此通信。
在一个示例实施例中,多个CXL存储设备310_1至310_m中的每个可具有与参照图2至图10描述的CXL存储设备110的结构类似的结构。也就是说,多个CXL存储设备310_1至310_m中的每个可用单独的存储装置或存储模块来实现,并且可通过不同的物理端口与CXL交换机SW_CXL连接。随着多个CXL存储设备310_1至310_m与CXL交换机SW_CXL连接,主机201可用的存储区域(或容量)可增大。
在一个示例实施例中,CXL存储器320的至少部分区域可被分配用于专用于多个CXL存储设备310_1至310_m的区域。例如,主机301可将多个CXL存储设备310_1至310_m管理为一个存储设备集群,并且可将CXL存储器320的部分区域分配用于一个存储设备集群的专用区域。可选地,主机201可将CXL存储器320的部分区域分配用于相应的CXL存储设备310_1至310_m的专用区域。
图13是根据示例实施例的计算系统的框图。以下,为了便于描述,与上述组件相关联的附加描述将被省略以避免冗余。参照图13,计算系统400可包括主机401、多个存储器装置402a和402b、CXL交换机SW_CXL、多个CXL存储设备410_1至410_m、以及多个CXL存储器420_1至420_n。
主机401可与多个存储器装置402a和402b直接连接。主机401、多个CXL存储设备410_1至410_m和多个CXL存储器420_1至420_n可与CXL交换机SW_CXL连接,并且可通过CXL交换机SW_CXL彼此通信。
在一个示例实施例中,主机401可将多个CXL存储设备410_1至410_m管理为一个存储设备集群,并且可将多个CXL存储器420_1至420_n管理为一个存储器集群。主机401可将存储器集群的部分区域分配用于存储设备集群的专用区域(即,用于存储存储设备集群的映射数据的区域)。可选地,主机201可将CXL存储器420_1至420_n的区域分配用于相应的CXL存储设备410_1至410_m的专用区域。
图14是根据示例实施例的计算系统的框图。以下,为了便于描述,与上述组件相关联的附加描述将被省略以避免冗余。参照图14,计算系统500可包括主机501、多个存储器装置502a和502b、CXL交换机SW_CXL、多个CXL存储设备510_1、510_2和510_3、以及多个CXL存储器520_1、520_2和502_3。
主机501可与多个存储器装置502a和502b直接连接。主机501、多个CXL存储设备510_1和510_2、以及多个CXL存储器520_1和520_2可与CXL交换机SW_CXL连接,并且可通过CXL交换机SW_CXL彼此通信。如在以上描述中,CXL存储器520_1和520_2的部分区域可被分配用于CXL存储设备510_1和510_2的专用区域。
在一个示例实施例中,当计算系统500正在被驱动时,CXL存储设备510_1和510_2中的一些或CXL存储器520_1和520_2中的一些可从CXL交换机SW_CXL被热移除。可选地,当计算系统500正在被驱动时,CXL存储设备510_3或CXL存储器520_3可被热添加到CXL交换机SW_CXL。在这些情况下,主机501可通过经由重置操作或热插拔操作再次对与CXL交换机SW_CXL连接的装置执行初始化操作而再次执行存储器分配。也就是说,根据示例实施例的CXL存储设备和CXL存储器可支持热插拔功能,并且可使得通过各种连接来扩展计算系统的存储设备容量和存储器容量成为可能。
图15是根据示例实施例的计算系统的框图。为了便于描述,与上述组件相关联的附加描述将被省略以避免冗余。参照图15,计算系统1000可包括第一CPU 1110、第二CPU1120、GPU 1130、NPU 1140、CXL交换机SW_CXL、CXL存储设备1210、CXL存储器1220、PCIe装置1310和加速器(CXL装置)1320。
第一CPU 1110、第二CPU 1120、GPU 1130、NPU 1140、CXL存储设备1210、CXL存储器1220、PCIe装置1310和加速器(CXL装置)1320可与CXL交换机SW_CXL共同连接,并且可通过CXL交换机SW_CXL彼此通信。
在一个示例实施例中,第一CPU 1110、第二CPU 1120、GPU 1130和NPU 1140中的每个可与参照图1至图14描述的主机对应,并且可与单独的存储器装置直接连接。
在一个示例实施例中,CXL存储设备1210和CXL存储器1220可以是参照图2至图14描述的CXL存储设备和CXL存储器,并且CXL存储器1220的至少部分区域可由第一CPU 1110、第二CPU 1120、GPU 1130和NPU 1140中的一个或多个分配用于专用于CXL存储设备1210的区域。也就是说,CXL存储设备1210和CXL存储器1220可被用作计算系统1000的存储空间STR。
在一个示例实施例中,CXL交换机SW_CXL可与被配置为支持各种功能的PCIe装置1310或加速器1320连接,并且PCIe装置1310或加速器1320可通过CXL交换机SW_CXL与第一CPU 1110、第二CPU 1120、GPU 1130和NPU 1140中的每个通信,或者可通过CXL交换机SW_CXL访问包括CXL存储设备1210和CXL存储器1220的存储空间STR。
在一个示例实施例中,CXL交换机SW_CXL可与外部网络或网(Fabric)连接,并且可被配置为通过外部网络或网与外部服务器通信。
图16是示出应用根据示例实施例的计算系统的数据中心的框图。参照图16,作为收集各种数据并提供服务的设施的数据中心2000可被称为数据存储中心。数据中心2000可以是用于操作搜索引擎和数据库的系统,并且可以是在商业机构(诸如,银行)中或在政府机构中使用的计算系统。数据中心2000可包括应用服务器2110至21m0(即,第一应用服务器至第m应用服务器)和存储服务器2210至22n0(即,第一存储服务器至第n存储服务器)。可根据示例实施例不同地选择应用服务器的数量和存储服务器的数量,并且应用服务器的数量和存储服务器的数量可彼此不同。
以下,将主要描述第一存储服务器2210的构造。应用服务器2110至21m0可具有类似的结构,存储服务器2210至22n0可具有类似的结构,并且应用服务器2110至21m0和存储服务器2210至22n0可通过网络NT彼此通信。
第一存储服务器2210可包括处理器2211、存储器2212、交换机2213、存储装置2215、CXL存储器2214和网络接口卡(NIC)2216。处理器2211可控制第一存储服务器2210的整体操作,并且可访问存储器2212以执行加载到存储器2212上的指令或处理数据。存储器2212可用双倍数据速率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合存储器立方体(HMC)、双列直插式存储器模块(DIMM)、傲腾(Optane)DIMM和/或非易失性DIMM(NVMDIMM)来实现。处理器2211和存储器2212可直接连接,并且包括在一个存储服务器2210中的处理器2211和存储器2212的数量可被不同地选择。
在一个示例实施例中,处理器2211和存储器2212可提供处理器-存储器对。在一个示例实施例中,处理器2211的数量和存储器2212的数量可彼此不同。处理器2211可包括单核处理器或多核处理器。存储服务器2210的详细描述可类似地被应用于应用服务器2110至21m0。
交换机2213可被配置为仲裁或路由包括在第一存储服务器2210中的各种组件之间的通信。在一个示例实施例中,交换机2213可用参照图1至图15描述的CXL交换机SW_CXL来实现。也就是说,交换机2213可以是基于CXL协议实现的交换机。
CXL存储器2214可与交换机2213连接。在一个示例实施例中,CXL存储器2214可被用作处理器2211的存储器扩展器。可选地,如参照图1至图15所描述的,CXL存储器2214可被分配用于存储装置2215的专用存储器或缓冲存储器。
存储装置2215可包括CXL接口电路CXL_IF、控制器CTRL和NAND闪存NAND。根据处理器2211的请求,存储装置2215可存储数据或者可输出存储的数据。在一个示例实施例中,存储装置2215可用参照图1至图15描述的CXL存储设备来实现。在一个示例实施例中,如在参照图1至图15给出的描述中,CXL存储器2214的至少部分区域可被分配用于专用区域,并且专用区域可被用作缓冲存储器(即,可被用于将映射数据存储在CXL存储器2214中)。
根据一个示例实施例,应用服务器2110至21m0可不包括存储装置2215。存储服务器2210可包括至少一个存储装置2215。可根据示例实施例不同地选择包括在存储服务器2210中的存储装置2215的数量。
NIC 2216可与CXL交换机SW_CXL连接。NIC 2216可通过网络NT与剩余的存储服务器2220至22n0或应用服务器2110至21m0通信。
在一个示例实施例中,NIC 2216可包括网络接口卡、网络适配器等。NIC 2216可通过有线接口、无线接口、蓝牙接口、光学接口等与网络NT连接。NIC 2216可包括内部存储器、数字信号处理器(DSP)、主机总线接口等,并且可通过主机总线接口与处理器2211和/或交换机2213连接。在一个示例实施例中,NIC 2216可与处理器2211、交换机2213和存储装置2215中的至少一个集成。
在一个示例实施例中,网络NT可通过使用光纤信道(FC)或以太网来实现。在这种情况下,FC可以是在高速数据传输中使用的介质,并且可使用提供高性能/高可用性的光交换机。根据网络NT的访问方式,存储服务器可被设置为文件存储设备、块存储设备或对象存储设备。
在一个示例实施例中,网络NT可以是存储专用网络(诸如,存储区域网络(SAN))。例如,SAN可以是使用FC网络并根据FC协议(FCP)来实现的FC-SAN。对于另一示例,SAN可以是使用TCP/IP网络并根据iSCSI(通过TCP/IP的SCSI或互联网SCSI)来实现的IP-SAN。在一个示例实施例中,网络NT可以是传统网络(诸如,TCP/IP网络)。例如,网络NT可根据以下协议来实现:通过以太网的FC(FCoE)、网络附接存储(NAS)或通过网络的NVMe(NVMe-oF)。
在一个示例实施例中,应用服务器2110至21m0中的至少一个可通过网络NT将用户或客户端请求存储的数据存储在存储服务器2210至22n0中的一个中。应用服务器2110至21m0中的至少一个可通过网络NT从存储服务器2210至22n0中的一个获得由用户或客户端请求读取的数据。例如,应用服务器2110至21m0中的至少一个可用网络服务器、数据库管理系统(DBMS)等来实现。
在一个示例实施例中,应用服务器2110至21m0中的至少一个可通过网络NT访问包括在任何其他应用服务器中的存储器、CXL存储器或存储装置,或者可通过网络NT访问包括在存储服务器2210至22n0中的存储器、CXL存储器或存储装置。这样,应用服务器2110至21m0中的至少一个可对存储在剩余的应用服务器和/或存储服务器中的数据执行各种操作。例如,应用服务器2110至21m0中的至少一个可执行用于在剩余的应用服务器和/或存储服务器之间移动或复制数据的指令。在这种情况下,数据可通过存储服务器的存储器或CXL存储器或直接从存储服务器的存储装置被移动到应用服务器的存储器或CXL存储器。通过网络传送的数据可以是为了安全或隐私而加密的数据。
在一个示例实施例中,包括在应用服务器2110至21m0和存储服务器2210至22n0中的至少一个中的CXL存储器可被分配用于包括在应用服务器2110至21m0和存储服务器2210至22n0中的至少一个中的存储装置的专用区域,并且存储装置可使用由此分配的专用区域作为缓冲存储器(即,可将映射数据存储在专用区域中)。例如,包括在存储服务器(例如,22n0)中的CXL存储器可被分配给包括在存储服务器2210中的存储装置2215,并且包括在存储服务器2210中的存储装置2215可通过交换机2213和NIC 2216访问包括在存储服务器(例如,22n0)中的CXL存储器。在这种情况下,与第一存储服务器2210的存储装置2215相关联的映射数据可被存储在存储服务器22n0的CXL存储器中。也就是说,根据示例实施例的数据中心的存储装置和CXL存储器可以以各种方式来连接和实现。
图17是根据示例实施例的计算系统的框图。以下,为了便于描述,与上述组件相关联的附加描述将被省略以避免冗余。参照图17,计算系统600可包括主机601、CXL交换机SW_CXL、多个CXL存储设备610_1至610_m、以及CXL存储器620。
主机601、多个CXL存储设备610_1至610_m和CXL存储器620可与CXL交换机SW_CXL连接,并且可通过CXL交换机SW_CXL彼此通信。也就是说,CXL交换机SW_CXL可提供主机601、多个CXL存储设备610_1至610_m、以及CXL存储器620之间的接口。
多个CXL存储设备610_1至610_m可被称为由主机601管理的存储设备集群。多个CXL存储设备610_1至610_m也可被称为第一CXL存储设备610_1至第m CXL存储设备610_m。
第一CXL存储设备610_1可包括CXL存储控制器611_1和非易失性存储器NVM。CXL存储控制器611_1可将数据存储在非易失性存储器NVM中,或者可管理读取存储的数据的操作。第二CXL存储设备610_2可包括CXL存储控制器611_2和非易失性存储器NVM。如在以上描述中,第m CXL存储设备610_m可包括CXL存储控制器611_m和非易失性存储器NVM。这里,m是自然数。
CXL存储器620可包括CXL存储器控制器621和缓冲存储器BFM。CXL存储器控制器621可通过CXL交换机SW_CXL与多个CXL存储设备610_1至610_m通信。CXL存储器控制器621可确认多个CXL存储设备610_1至610_m之中的目标CXL存储设备,并且可处理来自确认的目标CXL存储设备的映射请求。
映射请求可表示用于生成与存储在目标CXL存储设备中的用户数据对应的映射数据的请求。映射数据可指示用户数据的物理块地址与逻辑块地址之间的关系。映射请求可与图4的操作PUP-S44中的写入请求REQ_WR对应,或者可与图9的操作WR-S31中的第二写入请求REQ_WR2对应。
CXL存储器控制器621可包括存储管理器、映射表管理器、地址映射器和元数据缓冲器。
存储管理器可管理多个CXL存储设备610_1至610_m。例如,多个CXL存储设备610_1至610_m中的第一CXL存储设备610_1可将映射请求提供给CXL存储器620。存储管理器可识别多个CXL存储设备610_1至610_m中的第一CXL存储设备610_1,并且可向由此识别的第一CXL存储设备610_1授权使用许可。
映射表管理器可管理要存储在缓冲存储器BFM中的映射数据。映射表管理器可通过将映射数据分配给缓冲存储器BFM来生成映射数据。映射表管理器可通过改变分配给缓冲存储器BFM的映射数据来修改映射数据。映射表管理器可通过释放分配给缓冲存储器BFM的映射数据来删除映射数据。
在一个示例实施例中,映射表管理器可动态地管理映射数据。映射数据的动态管理可指示与当前处理下的用户数据的大小或用于存储当前处理下的用户数据的CXL存储设备的容量对应的映射数据的分配,而不是分配多个CXL存储设备610_1至610_m的全部映射数据。
例如,第一CXL存储设备610_1可存储第一用户数据UD1。第二CXL存储设备610_2可存储第二用户数据UD2和第三用户数据UD3。映射表管理器可根据映射请求将与当前处理下的第一用户数据UD1至第三用户数据UD3对应的第一映射数据MD1至第三映射数据MD3分配给缓冲存储器BFM。缓冲存储器BFM的未被分配第一映射数据MD1至第三映射数据MD3的部分可被称为空闲存储器FM。空闲存储器FM可被用于存储随后生成的任何其他映射数据,临时存储任何其他用户数据,或者管理计算系统600。
在一个示例实施例中,映射表管理器可以可变地设置块的大小。例如,映射表管理器可从第一CXL存储设备610_1接收包括第一用户数据UD1的元数据的映射请求。元数据可表示描述用户数据的特性的数据。元数据可被用于确定映射数据的标准(例如,分配大小、块大小、块的数量和数据结构)。元数据可从主机601被提供。
映射表管理器可基于映射请求确定与元数据对应的标准。标准可包括与第一用户数据UD1的逻辑块地址对应的块大小。映射表管理器可将块大小设置得小以便针对高速读取和写入操作(例如,具有大于阈值的速度的读取和写入操作)进行优化,或者可将块大小设置得大以便针对大量数据(例如,数据量大于阈值的数据)的管理进行优化。映射表管理器可根据由此设置的块大小将映射数据分配给缓冲存储器BFM。
地址映射器可在映射表管理器的控制下生成用户的物理块地址与逻辑块地址之间的映射关系。例如,地址映射器可从存储管理器接收识别的CXL存储设备的标识信息。地址映射器可在映射表管理器的控制下生成识别的CXL存储设备的用户数据的物理块地址与逻辑块地址之间的映射关系。映射关系可被用于映射表管理器对映射数据进行管理。
元数据缓冲器可存储通过CXL交换机SW_CXL从目标CXL存储设备接收的元数据。例如,元数据缓冲器可从第一CXL存储设备610_1接收包括第一用户数据UD1的元数据的映射请求。元数据缓冲器可临时存储映射请求的元数据。
缓冲存储器BFM可与CXL存储器控制器621通信。缓冲存储器BFM可将数据存储在多个CXL存储设备610_1至610_m中,或者可存储用于读取存储的数据的映射数据。
在一个示例实施例中,缓冲存储器BFM可动态地存储映射数据。例如,缓冲存储器BFM可仅存储与当前处理下的第一用户数据UD1至第三用户数据UD3对应的第一映射数据MD1至第三映射数据MD3,而不是与多个CXL存储设备610_1至610_m的总容量相关联的全部映射数据。
如上所述,根据示例实施例,计算系统可动态地管理映射数据。计算系统可通过仅将与当前正在使用的存储设备对应的映射数据或当前处理下的用户数据分配给缓冲存储器来有效地使用具有有限的容量的缓冲存储器。此外,通过可变地调整块大小,可针对高速数据输入/输出和大量数据的管理来优化计算系统。
图18是描述根据示例实施例的操作计算系统的方法的框图。参照图18,计算系统600可包括CXL交换机SW_CXL、多个CXL存储设备610_1至610_m、以及CXL存储器620。CXL交换机SW_CXL、多个CXL存储设备610_1至610_m和CXL存储器620可分别与图17的CXL交换机SW_CXL、多个CXL存储设备610_1至610_m和CXL存储器620对应。
CXL存储器620的CXL存储器控制器621可包括控制路径和数据路径。控制路径可表示执行各种功能(诸如,CXL存储设备和映射数据的管理)的路径。控制路径可包括存储管理器和映射表管理器。数据路径可表示传送实际数据的路径。数据路径可包括地址映射器和元数据缓冲器。
在一个示例实施例中,控制路径和数据路径可被设计为彼此分开。例如,为了传送相对大量的数据,数据路径可用高性能电路、装置或模块来实现。作为另一示例,控制路径可由软件来实现,并且数据路径可用硬件来实现。然而,示例实施例不限于此。
以下,将描述根据示例实施例的计算系统600生成映射数据的操作。
在第一操作①中,第一CXL存储设备610_1可通过CXL交换机SW_CXL将许可请求提供给CXL存储器620。许可请求可被用于向多个CXL存储设备610_1至610_m之中的第一CXL存储设备610_1请求使用许可。
在第二操作②中,CXL存储器620可基于来自第一CXL存储设备610_1的许可请求向第一CXL存储设备610_1授权使用许可。例如,CXL存储器620的存储管理器可识别第一CXL存储设备610_1,并且可通过CXL交换机SW_CXL将对许可请求的响应提供给第一CXL存储设备610_1。
在一个示例实施例中,CXL存储器620可基于缓冲存储器BFM的剩余容量和对要管理的CXL存储设备的数量的限制来向第一CXL存储设备610_1授权使用许可。
例如,CXL存储器620的缓冲存储器BFM可具有有限的容量。CXL存储器620能够同时控制的CXL存储设备的数量可限于参考数量。当缓冲存储器BFM中的空闲存储器FM的容量被确定为大于用于存储第一映射数据MD1的参考容量并且CXL存储器620当前管理的CXL存储设备的数量小于参考数量时,CXL存储器620可向第一CXL存储设备610_1授权使用许可。
在第三操作③中,被授权使用许可的第一CXL存储设备610_1可通过CXL交换机SW_CXL将映射请求提供给CXL存储器620。映射请求可表示用于将映射数据写入缓冲存储器BFM中的请求。例如,第一CXL存储设备610_1可将包括第一用户数据UD1的第一元数据的映射请求提供给CXL存储器620。
在一个示例实施例中,第一操作①、第二操作②和第三操作③可以以对等(P2P)方式被执行。例如,第一CXL存储设备610_1和CXL存储器620可通过CXL交换机SW_CXL彼此通信,并且可在没有主机的干预的情况下分配存储器(即,可生成映射数据)。这样,主机的开销可减少,并且计算系统600的操作速度可被提高。
在一个示例实施例中,第一操作①、第二操作②和第三操作③可基于CXL接口被执行。例如,第一操作①、第二操作②和第三操作③可通过使用CXL.mem而被执行。
在第四操作④中,CXL存储器620可基于从第一CXL存储设备610_1接收的映射请求来确定与元数据对应的标准。
在第五操作⑤中,CXL存储器620可基于确定的标准生成指示第一用户数据UD1的物理块地址与逻辑块地址之间的关系的第一映射数据MD1。第一映射数据MD1可被存储在缓冲存储器BFM中。第一映射数据MD1可在随后的读取操作中被使用,可通过随后的写入操作被替换,或者可在断电之前被返回到第一CXL存储设备610_1。
图19是描述根据示例实施例的操作计算系统的方法的流程图。参照图19,计算系统可包括CXL存储设备、CXL交换机和CXL存储器。CXL存储设备可以是多个CXL存储设备之中的存储当前待处理的用户数据的目标CXL存储设备。CXL存储设备、CXL交换机和CXL存储器可分别与图17和图18的第一CXL存储设备610_1、CXL交换机SW_CXL和CXL存储器620对应。
在操作S110中,计算系统的CXL存储设备可通过CXL交换机将包括用户数据的元数据的映射请求REQ_MP提供给CXL存储器。在这种情况下,CXL存储设备可以是包括在计算系统中的多个CXL存储设备之中的存储目标用户数据的目标CXL存储设备。
在一个示例实施例中,计算系统的CXL存储设备和CXL存储器可以以P2P方式彼此通信。例如,计算系统的CXL存储设备可以以P2P方式通过CXL交换机将用于存储器分配的映射请求提供给CXL存储器。
在一个示例实施例中,计算系统的CXL存储设备和CXL存储器可基于CXL接口彼此通信。例如,计算系统的CXL存储设备可基于CXL接口,通过使用CXL.mem经由CXL交换机将映射请求提供给CXL存储器。
在操作S120中,计算系统的CXL存储器可基于映射请求来确定与元数据对应的标准。
在一个示例实施例中,计算系统可考虑用户数据的大小来确定标准。例如,标准可包括要分配给CXL存储器中的缓冲存储器BFM的映射数据的分配大小。分配大小可与CXL存储设备的用户数据的大小对应。元数据可包括指示是否允许分配大小与用户数据的大小一致的信息。
在一个示例实施例中,计算系统可考虑CXL存储设备的总容量来确定标准。例如,标准可包括要分配给CXL存储器中的缓冲存储器BFM的映射数据的分配大小。分配大小可与CLX存储设备的总容量对应。元数据可包括指示是否允许分配大小与CXL存储设备的总容量一致的信息。
在一个示例实施例中,计算系统可以可变地设置块大小。块大小可指示与用户数据的逻辑块地址对应的块大小。块大小可指示基于一个命令(或读取命令或写入命令)处理的用户数据的大小。标准可包括与用户数据的逻辑块地址对应的块大小。块大小可被设置为针对高速读取和写入操作而优化的第一块大小,或者可被设置为针对大量数据的管理而优化的第二块大小。第二块大小可大于第一块大小。然而,示例实施例不限于此。计算系统可参照包括在元数据中的关于块大小的信息来不同地确定块大小。
在一个示例实施例中,标准可包括与映射数据相关联的各种详细项。例如,标准可包括以下项中的至少一个:要分配给缓冲存储器BFM的映射数据的分配大小、与用户数据的逻辑块地址对应的块大小、与用户数据的逻辑块地址对应的块的数量以及用户数据的逻辑块地址的数据结构。
在操作S130中,计算系统的CXL存储器可基于在操作S120中确定的标准来生成映射数据MD。映射数据MD可指示CXL存储设备的用户数据的物理块地址与逻辑块地址之间的关系。
在一个示例实施例中,计算系统可利用在分配映射数据之后留下的空间作为任何其他存储器。例如,CXL存储器可包括缓冲存储器BFM。在操作S130中生成的映射数据MD可被分配给缓冲存储器BFM。例如,CXL存储器可基于在操作S120中确定的标准将在操作S130中生成的映射数据MD分配给缓冲存储器BFM的一部分。缓冲存储器BFM的未被分配映射数据MD和与任何其他用户数据相关联的映射数据的部分可被称为空闲存储器。空闲存储器可被用作临时存储用户数据的数据缓冲存储器、用于管理多个CXL存储设备的工作存储器、用于管理任何其他CXL存储设备的任何其他映射数据的映射数据存储器、以及在垃圾收集中使用的临时存储器。
在一个示例实施例中,即使CXL存储设备被断开,计算系统也可维持CXL存储设备的映射数据。例如,在操作S130之后,CXL存储设备可被断开(参照图14)。操作计算系统的方法还可包括:通过CXL交换机将针对CXL存储设备的断开的通知提供给CXL存储器;由被提供断开通知的CXL存储器在参考时间期间将映射数据维持在CXL存储器的缓冲存储器BFM中;在参考时间过去之前,通过CXL交换机将针对CXL存储设备的重连接的通知提供给CXL存储器;以及由被提供重连接通知的CXL存储器基于映射数据MD来管理用户数据。在这种情况下,参考时间可以是在视为临时断开的CXL存储设备的断开的情况下被用作用于维持映射数据的参考的时间段,并且可由用户不同地改变。
在一个示例实施例中,计算系统可基于映射数据MD执行读取操作。例如,计算系统还可包括与CXL交换机连接的主机。在操作S130之后,操作计算系统的方法还可包括:由CXL存储设备通过CXL交换机从主机接收针对用户数据的读取请求;由CXL存储设备基于针对用户数据的读取请求,通过CXL交换机将针对映射数据MD的读取请求提供给CXL存储器;由CXL存储器基于针对映射数据的读取请求通过CXL交换机将映射数据MD提供给CXL存储设备;由CXL存储设备基于映射数据MD对用户数据执行读取操作;以及由CXL存储设备通过CXL交换机将包括用户数据的读取响应提供给主机。
在一个示例实施例中,计算系统可生成映射数据MD作为写入操作的一部分。例如,计算系统还可包括与CXL交换机连接的主机。操作计算系统的方法还可包括:在操作S110之前,由CXL存储设备通过CXL交换机从主机接收针对用户数据的写入请求;以及在操作S110之前,由CXL存储设备基于针对用户数据的写入请求对用户数据执行写入操作。在操作S110中,计算系统的CXL存储设备可包括基于执行写入操作通过CXL交换机将映射请求REQ_MP提供给CXL存储器。
在一个示例实施例中,计算系统可管理分布在CXL存储设备中的用户数据。为了便于描述,参照图19描述的CXL存储设备、用户数据、元数据、映射请求、标准和映射数据分别被称为第一CXL存储设备、第一用户数据、第一元数据、第一映射请求、第一标准和第一映射数据。
例如,计算系统还可包括存储第二用户数据的第二CXL存储设备。操作计算系统的方法还可包括:由第二CXL存储设备通过CXL交换机将包括第二用户数据的第二元数据的第二映射请求提供给CXL存储器;由CXL存储器基于第二映射请求确定与第二元数据对应的第二标准;以及由CXL存储器基于第二标准生成指示第二用户数据的物理块地址与逻辑块地址之间的关系的第二映射数据。
作为另一示例,计算系统还可包括存储第二用户数据和第三用户数据的第二CLX存储设备。操作计算系统的方法还可包括:由第二CXL存储设备通过CXL交换机将包括第三用户数据的第三元数据的第三映射请求提供给CXL存储器;由CXL存储器基于第三映射请求确定与第三元数据对应的第三标准;以及由CXL存储器基于第三标准生成指示第三用户数据的物理块地址与逻辑块地址之间的关系的第三映射数据。
根据示例实施例,提供一种生成映射数据的计算系统及其操作方法。
此外,提供一种计算系统及操作其的方法,计算系统通过仅将与使用的存储装置或使用的用户数据对应的映射数据分配给缓冲存储器来有效地使用缓冲存储器,并且通过可变地调整块大小来针对高速数据输入/输出和大量数据的管理进行优化。
虽然已经描述了示例实施例的方面,但是对于本领域普通技术人员将清楚的是,在不脱离所附权利要求的精神和范围的情况下,可对其进行各种改变和修改。
Claims (20)
1.一种操作计算系统的方法,所述计算系统包括多个存储装置、存储器装置和交换机,所述方法包括:
由所述多个存储装置中的第一存储装置通过交换机将包括与第一用户数据对应的第一元数据的第一映射请求提供给存储器装置;
由存储器装置基于第一映射请求识别与第一元数据对应的第一标准;以及
由存储器装置基于第一标准生成指示第一用户数据的第一物理块地址与第一逻辑块地址之间的关系的第一映射数据。
2.根据权利要求1所述的方法,其中,由第一存储装置以对等方式执行提供第一映射请求的步骤。
3.根据权利要求1所述的方法,其中,由第一存储装置使用基于计算快速链路接口的CXL.mem协议来执行提供第一映射请求的步骤。
4.根据权利要求1所述的方法,还包括:
由所述多个存储装置中的第二存储装置通过交换机将包括与第二用户数据对应的第二元数据的第二映射请求提供给存储器装置;
由存储器装置基于第二映射请求识别与第二元数据对应的第二标准;以及
由存储器装置基于第二标准生成指示第二用户数据的第二物理块地址与第二逻辑块地址之间的关系的第二映射数据。
5.根据权利要求4所述的方法,还包括:
由第二存储装置通过交换机将包括与第三用户数据对应的第三元数据的第三映射请求提供给存储器装置;
由存储器装置基于第三映射请求识别与第三元数据对应的第三标准;以及
由存储器装置基于第三标准生成指示第三用户数据的第三物理块地址与第三逻辑块地址之间的关系的第三映射数据。
6.根据权利要求1至5中任一项所述的方法,其中,第一标准指示要分配给存储器装置中的缓冲存储器的第一映射数据的分配大小,并且
其中,分配大小与第一存储装置的第一用户数据的大小对应。
7.根据权利要求1至5中任一项所述的方法,其中,第一标准指示要分配给存储器装置中的缓冲存储器的第一映射数据的分配大小,并且
其中,分配大小与第一存储装置的总容量对应。
8.根据权利要求1至5中任一项所述的方法,其中,第一标准指示与第一逻辑块地址对应的块大小,并且
其中,块大小包括:
第一块大小,针对高速读取和写入操作而优化;或者
第二块大小,大于第一块大小并且针对大量数据的管理而优化。
9.根据权利要求1至5中任一项所述的方法,其中,第一标准指示以下各项中的任何一项或任何组合:
要分配给存储器装置中的缓冲存储器的第一映射数据的分配大小;
与第一逻辑块地址对应的块大小;
与第一逻辑块地址对应的块的数量;以及
第一逻辑块地址的数据结构。
10.根据权利要求1所述的方法,其中,生成第一映射数据的步骤包括:由存储器装置基于第一标准将第一映射数据分配给存储器装置中的缓冲存储器的第一部分,并且
其中,缓冲存储器的与第一部分不同的第二部分被用作以下各项中的任何一个或任何组合:
所述多个存储装置的数据缓冲存储器;
所述多个存储装置的工作存储器;
管理所述多个存储装置中的第二存储装置的第二用户数据的第二映射数据的映射数据存储器;以及
在垃圾收集中使用的临时存储器。
11.根据权利要求1所述的方法,还包括:
通过交换机将针对第一存储装置的断开的第一通知提供给存储器装置;
由被提供第一通知的存储器装置在参考时间期间将第一映射数据维持在存储器装置的缓冲存储器中;
在参考时间过去之前,通过交换机将针对第一存储装置的重连接的第二通知提供给存储器装置;以及
由被提供第二通知的存储器装置基于第一映射数据来管理第一用户数据。
12.根据权利要求1所述的方法,其中,所述计算系统还包括主机,主机通过交换机与所述多个存储装置和存储器装置通信,并且
其中,所述方法还包括:
由第一存储装置通过交换机从主机接收针对第一用户数据的用户数据读取请求;
由第一存储装置基于针对第一用户数据的用户数据读取请求,通过交换机将针对第一映射数据的映射数据读取请求提供给存储器装置;
由存储器装置基于针对第一映射数据的映射数据读取请求,通过交换机将第一映射数据提供给第一存储装置;
由第一存储装置基于第一映射数据对第一用户数据执行读取操作;以及
由第一存储装置通过交换机将包括第一用户数据的读取响应提供给主机。
13.根据权利要求1所述的方法,其中,所述计算系统还包括主机,主机通过交换机与所述多个存储装置和存储器装置通信,
其中,所述方法还包括:
由第一存储装置通过交换机从主机接收针对第一用户数据的写入请求;以及
由第一存储装置基于针对第一用户数据的写入请求对第一用户数据执行写入操作,并且
其中,由第一存储装置基于写入操作被执行,通过交换机将第一映射请求提供给存储器装置。
14.根据权利要求1所述的方法,其中,提供第一映射请求的步骤包括:
初始化所述计算系统;
由第一存储装置通过交换机将许可请求提供给存储器装置;
由存储器装置基于许可请求向第一存储装置授权使用存储器装置;以及
由第一存储装置基于第一存储装置被授权使用存储器装置,通过交换机将第一映射请求提供给存储器装置。
15.根据权利要求14所述的方法,其中,基于存储器装置中的空闲存储器的容量大于参考容量并且存储器装置当前管理的存储装置的数量小于参考数量,授权的步骤被执行。
16.一种操作计算系统的方法,所述计算系统包括多个存储装置、存储器装置和交换机,所述方法包括:
由所述多个存储装置中的目标存储装置通过交换机将许可请求提供给存储器装置;
由存储器装置基于许可请求向目标存储装置授权使用存储器装置;
由目标存储装置基于目标存储装置被授权,通过交换机将包括与用户数据对应的元数据的映射请求提供给存储器装置;
由存储器装置基于映射请求识别与元数据对应的标准;以及
由存储器装置基于所述标准生成指示用户数据的逻辑地址与物理地址之间的关系的映射数据。
17.根据权利要求16所述的方法,其中,所述标准指示要分配给存储器装置中的缓冲存储器的映射数据的分配大小,并且
其中,分配大小与以下项对应:
目标存储装置的用户数据的大小;或者
目标存储装置的总容量。
18.一种计算系统,包括:
多个存储装置,包括存储第一用户数据的第一存储装置;
存储器装置,包括存储器控制器和缓冲存储器;以及
交换机,被配置为在所述多个存储装置与存储器装置之间提供接口,
其中,存储器控制器被配置为:
通过交换机从第一存储装置接收包括与第一用户数据对应的第一元数据的第一映射请求;
基于第一映射请求识别与第一元数据对应的第一标准;以及
基于第一标准生成指示第一用户数据的第一物理块地址与第一逻辑块地址之间的映射关系的第一映射数据。
19.根据权利要求18所述的计算系统,其中,存储器控制器包括存储管理器、映射表管理器、地址映射器和元数据缓冲器中的至少一个,
存储管理器被配置为识别第一存储装置并且向第一存储装置授权使用存储器装置;
映射表管理器被配置为基于第一映射请求识别第一标准,基于第一标准来生成第一映射数据,并且将第一映射数据分配给缓冲存储器;
地址映射器被配置为生成第一用户数据的第一物理块地址与第一逻辑块地址之间的映射关系;以及
元数据缓冲器被配置为存储通过交换机从第一存储装置接收的第一元数据。
20.根据权利要求18所述的计算系统,其中,所述多个存储装置还包括第二存储装置,第二存储装置存储第二用户数据,并且
其中,存储器控制器还被配置为:
通过交换机从第二存储装置接收包括与第二用户数据对应的第二元数据的第二映射请求;
基于第二映射请求识别与第二元数据对应的第二标准;以及
基于第二标准生成指示第二用户数据的第二物理块地址与第二逻辑块地址之间的映射关系的第二映射数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220056024A KR20230156527A (ko) | 2022-05-06 | 2022-05-06 | 맵 데이터를 생성하는 컴퓨팅 시스템, 및 그것의 동작하는 방법 |
KR10-2022-0056024 | 2022-05-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117009278A true CN117009278A (zh) | 2023-11-07 |
Family
ID=88562480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310308179.6A Pending CN117009278A (zh) | 2022-05-06 | 2023-03-27 | 计算系统及操作其的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230359379A1 (zh) |
KR (1) | KR20230156527A (zh) |
CN (1) | CN117009278A (zh) |
-
2022
- 2022-05-06 KR KR1020220056024A patent/KR20230156527A/ko unknown
-
2023
- 2023-03-27 CN CN202310308179.6A patent/CN117009278A/zh active Pending
- 2023-04-27 US US18/140,420 patent/US20230359379A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20230156527A (ko) | 2023-11-14 |
US20230359379A1 (en) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115495389A (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
US20230229357A1 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
EP4273706A1 (en) | Storage device, memory device, and system including storage device and memory device | |
US20230350832A1 (en) | Storage device, memory device, and system including storage device and memory device | |
US20240053917A1 (en) | Storage device, operation method of storage device, and storage system using the same | |
US20230376216A1 (en) | Memory device, storage device, and computing system including memory device and storage device | |
US20230084539A1 (en) | Computational storage device and storage system including the computational storage device | |
US20230359379A1 (en) | Computing system generating map data, and method of operating the same | |
EP4273708A1 (en) | Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices | |
EP4273703A1 (en) | Computing system generating map data, and method of operating the same | |
US20230359389A1 (en) | Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices | |
EP4276634A1 (en) | Storage device, computing device including storage device and memory device, and operating method of computing device | |
KR20220055771A (ko) | 전자 장치, 차량용 장치 및 데이터 센터 | |
US20230376217A1 (en) | Storage device, memory device, and computing system including the same | |
US20230359567A1 (en) | Storage device, computing device including storage device and memory device, and operating method of computing device | |
EP4283474A1 (en) | Storage device, memory device, and computing system including the same | |
US20230376238A1 (en) | Computing system for managing distributed storage devices, and method of operating the same | |
EP4283457A2 (en) | Computing system for managing distributed storage devices, and method of operating the same | |
EP4276642A1 (en) | Computing system including cxl switch, memory device and storage device and operating method thereof | |
US20230359394A1 (en) | Operating method of memory device for managing map data of each of plurality of storage devices, computing system including memory device, and operating method of computing system | |
EP4273702A1 (en) | Operating method of memory device for managing map data of each of plurality of storage devices, computing system including memory device, and operating method of computing system | |
US20230359578A1 (en) | Computing system including cxl switch, memory device and storage device and operating method thereof | |
EP4283456A1 (en) | Memory device, storage device, and computing system including memory device and storage device | |
US20230359566A1 (en) | Computing system including memory device and storage device and operating method thereof | |
EP4276639A1 (en) | Computing system including memory device and storage device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |