CN117009279A - 存储器装置的操作方法、计算系统及其操作方法 - Google Patents
存储器装置的操作方法、计算系统及其操作方法 Download PDFInfo
- Publication number
- CN117009279A CN117009279A CN202310309835.4A CN202310309835A CN117009279A CN 117009279 A CN117009279 A CN 117009279A CN 202310309835 A CN202310309835 A CN 202310309835A CN 117009279 A CN117009279 A CN 117009279A
- Authority
- CN
- China
- Prior art keywords
- cxl
- memory
- storage device
- block address
- request
- 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 32
- 238000013507 mapping Methods 0.000 claims abstract description 128
- 230000015654 memory Effects 0.000 claims description 500
- 230000004044 response Effects 0.000 claims description 127
- 238000004891 communication Methods 0.000 claims description 8
- 101150101057 PBA1 gene Proteins 0.000 description 25
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 22
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 22
- 238000010586 diagram Methods 0.000 description 14
- 230000000630 rising effect Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 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
- 230000006870 function Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration 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
- 229940044442 onfi Drugs 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 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/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/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
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0625—Power saving in 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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]
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-0056187号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
在此描述的本公开的实施例涉及一种存储器装置,并且更具体地,涉及一种管理多个存储装置中的每个的映射数据的存储器装置。
背景技术
存储器装置响应于写入请求而存储数据,并且响应于读取请求而输出存储在其中的数据。例如,存储器装置被分类为易失性存储器装置或者非易失性存储器装置,易失性存储器装置(诸如,动态随机存取存储器(DRAM)装置、静态RAM(SRAM)装置)在电源被中断时丢失存储在其中的数据,非易失性存储器装置(诸如,闪存装置、相变RAM(PRAM)、磁性RAM(MRAM)或电阻式RAM(RRAM))即使在电源被中断时也保留存储在其中的数据。非易失性存储装置可被用作存储大量数据的存储装置。
在现有技术中,可根据主机的接口来限制能够与主机连接的存储装置的数量。因此,难以实现高容量固态驱动器(SSD)。也就是说,不管能够与主机连接的存储装置的数量的限制如何,都需要包括多个存储装置的SSD装置。
发明内容
本公开的实施例提供管理多个存储装置中的每个的映射数据的存储器装置的操作方法、包括存储器装置的计算系统以及计算系统的操作方法。
根据示例实施例的一个方面,提供一种存储器装置的操作方法,所述存储器装置通过接口电路与第一存储装置和第二存储装置通信,所述操作方法包括:从主机装置接收包括命令和第一逻辑块地址的第一请求;基于第一逻辑块地址,参考专用于第一存储装置的第一映射数据来获得第一物理块地址;以及通过接口电路将包括第一物理块地址和所述命令的第二请求发送到第一存储装置。
根据示例实施例的一个方面,提供一种计算系统,所述计算系统包括:第一存储装置;第二存储装置;存储器装置,存储用于管理专用于第一存储装置的第一映射数据和专用于第二存储装置的第二映射数据的映射表;以及接口电路,被配置为与第一存储装置、第二存储装置和存储器装置通信,其中,存储器装置被配置为:从主机装置接收包括命令和第一逻辑块地址的第一请求,基于第一逻辑块地址,参考映射表的第一映射数据获得第一物理块地址,通过接口电路将包括第一物理块地址和所述命令的第二请求发送到第一存储装置。
根据示例实施例的一个方面,提供一种计算系统的操作方法,所述计算系统包括第一存储装置、第二存储装置、存储器装置和接口电路,接口电路与第一存储装置、第二存储装置和存储器装置通信,所述操作方法包括:由存储器装置从主机装置接收包括命令和第一逻辑块地址的第一请求;由存储器装置基于第一逻辑块地址参考专用于第一存储装置的第一映射数据来获得第一物理块地址;以及由存储器装置通过接口电路将包括第一物理块地址和所述命令的第二请求发送到第一存储装置。
附图说明
通过参照附图详细描述本公开的实施例,本公开的以上和其他的方面和特征将变得明显,其中:
图1是包括存储装置的计算系统的框图;
图2是应用存储装置的计算系统的框图;
图3是示出图2的计算系统的框图;
图4是描述图3的计算系统的初始化操作或上电操作的流程图;
图5是描述图4的计算系统存储映射数据的操作的示图;
图6是描述映射数据被存储在CXL存储器中的操作的示图;
图7是示出图2的CXL存储设备的读取操作的流程图;
图8是示出图2的CXL存储设备的读取操作的流程图;
图9是示出图2的CXL存储设备的写入操作的流程图;
图10是示出图2的CXL存储设备的写入操作的流程图;
图11是示出图2的计算系统的断电操作的流程图;
图12是根据本公开的实施例的计算系统的框图;以及
图13是根据本公开的实施例的计算系统的框图。
具体实施方式
下面,将以使本领域普通技术人员容易地实现本公开的实施例的程度详细并清楚地描述本公开的实施例。关于本公开的描述,为了使整体理解容易,相同的组件将在附图中由相同的附图标记/数字来标记,因此,附加的描述将被省略以避免冗余。
图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的容量有限,所以不可能应对由于非易失性存储器13c的容量的增大而导致的映射数据的大小的增大。
图2是示出应用根据本公开的实施例的存储系统的计算系统的框图。参照图2,计算系统100可包括主机101、多个存储器装置102a和102b、第一计算快速链路(CXL)存储设备(或,存储装置)120、第二CXL存储设备130和CXL存储器(或,存储器装置)110。在一个实施例中,计算系统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可通过DDR接口与主机101直接通信。在一个实施例中,主机101可包括被配置为控制多个存储器装置102a和102b的存储器控制器。然而,本公开不限于此。例如,多个存储器装置102a和102b可通过各种接口与主机101通信。
第一CXL存储设备120可包括第一CXL存储控制器121和非易失性存储器NVMa。在主机101的控制下,第一CXL存储控制器121可将数据存储在非易失性存储器NVMa中,或者可将存储在非易失性存储器NVMa中的数据发送到主机101。在一个实施例中,非易失性存储器NVMa可以是NAND闪存,但是本公开不限于此。
第二CXL存储设备130可包括第二CXL存储控制器131和非易失性存储器NVMb。在主机101的控制下,第二CXL存储控制器131可将数据存储在非易失性存储器NVMb中,或者可将存储在非易失性存储器NVMb中的数据发送到主机101。在一个实施例中,第二CXL存储设备130可以以级联结构与第一CXL存储设备120连接。
CXL存储器110可包括CXL存储器控制器111和缓冲存储器BFM。在主机101的控制下,CXL存储器控制器111可将数据存储在缓冲存储器BFM中,或者可将存储在缓冲存储器BFM中的数据发送到主机101。在一个实施例中,缓冲存储器BFM可以是DRAM,但是本公开不限于此。
在一个实施例中,第一CXL存储设备120、第二CXL存储设备130和CXL存储器110可被配置为共享同一接口。例如,第一CXL存储设备120、第二CXL存储设备130和CXL存储器110可通过CXL接口(或,接口电路)IF_CXL彼此通信。在一个实施例中,CXL接口IF_CXL可指示支持一致性、存储器访问和IO协议的动态协议复用使得加速器、存储器装置或各种电子装置之间的各种连接可行的低延迟和高带宽链路。
在一个实施例中,与图1的存储装置13不同,第一CXL存储设备120和第二CXL存储设备130中的每个可不包括用于存储或管理映射数据的单独的缓冲存储器。在这种情况下,第一CXL存储设备120和第二CXL存储设备130中的每个可需要用于存储或管理映射数据的缓冲存储器。在一个实施例中,CXL存储器110的至少部分区域可被用作第一CXL存储设备120和第二CXL存储设备130中的每个的缓冲存储器。
在这种情况下,用于管理专用于第一CXL存储设备120的映射数据和专用于第二CXL存储设备130的映射数据的映射表可被存储在CXL存储器110中。例如,CXL存储器110的至少部分区域可被主机101分配用于第一CXL存储设备120的缓冲存储器(即,用于专用于第一CXL存储设备120的区域)。
在一个实施例中,第一CXL存储设备120可通过CXL接口IF_CXL来访问CXL存储器110。例如,第一CXL存储设备120可将映射表存储在CXL存储器110的分配区域中,或者可从CXL存储器110的分配区域读取映射表。在第一CXL存储设备120的控制下,CXL存储器110可将数据(例如,映射数据)存储在缓冲存储器BFM中,或者可将存储在缓冲存储器BFM中的数据(例如,映射数据)发送到第一CXL存储设备120。
在一个实施例中,如在第一CXL存储设备120中,第二CXL存储设备130可通过CXL接口IF_CXL来访问CXL存储器110。例如,第二CXL存储设备130可将映射表存储在CXL存储器110的分配区域中,或者可从CXL存储器110的分配区域读取映射表。在第二CXL存储设备130的控制下,CXL存储器110可将数据(例如,映射数据)存储在缓冲存储器BFM中,或者可将存储在缓冲存储器BFM中的数据(例如,映射数据)发送到第二CXL存储设备130。
如参照图1所述,现有技术存储装置13通过使用包括在其中的缓冲存储器13b来存储和管理映射数据。随着存储装置13的容量增大,映射数据的大小增大,从而导致包括在存储装置13中的缓冲存储器13b的容量的增大。然而,由于包括在存储装置13中的缓冲存储器13b的结构和物理特性,对容量的增大存在限制;在这种情况下,需要缓冲存储器13b的设计改变或附加集成。
相比之下,根据本公开的实施例,第一CXL存储设备120可使用布置在第一CXL存储设备120外部的CXL存储器110的至少部分区域作为缓冲存储器。此外,第二CXL存储设备130可使用布置在第二CXL存储设备130外部的CXL存储器110的至少部分区域作为缓冲存储器。在这种情况下,因为CXL存储器110独立于第一CXL存储设备120和第二CXL存储设备130来实现,所以CXL存储器110可用高容量存储器来实现。这样,即使映射数据的大小由于第一CXL存储设备120和第二CXL存储设备130的容量的增大而增大,映射数据也可由CXL存储器110正常地管理。
在一个实施例中,现有技术存储装置13的存储控制器13a通过主机接口(诸如,PCIe或NVMe)与主机11通信,并且通过存储器接口(诸如,DDR接口或LPDDR接口)与缓冲存储器13b通信。即,现有技术存储装置13的存储控制器13a通过不同的接口(即,异构接口)与主机11和包括在其中的缓冲存储器13b通信。
相比之下,根据本公开的实施例,第一CXL存储设备120的第一CXL存储控制器121可通过CXL接口IF_CXL与CXL存储器110(即,缓冲存储器)通信,第二CXL存储设备130的第二CXL存储控制器131可通过CXL接口IF_CXL与CXL存储器110(即,缓冲存储器)通信,并且CXL存储器110可通过与CXL接口IF_CXL不同的接口与主机101通信。换言之,第一CXL存储控制器121和第二CXL存储控制器131中的每个可通过同构接口或公共接口与CXL存储器110通信,并且可使用CXL存储器110的部分区域作为缓冲存储器。
以下,为了便于描述,假设第一CXL存储设备120、第二CXL存储设备130和CXL存储器110通过CXL接口IF_CXL彼此通信。然而,本公开不限于此。例如,第一CXL存储设备120、第二CXL存储设备130和CXL存储器110可基于符合以下协议的各种计算接口彼此通信:GEN-Z协议、NVLink协议、CCIX协议和开放CAPI协议。
此外,为了便于说明,示出CXL存储器110通过CXL接口IF_CXL与第一CXL存储设备120和第二CXL存储设备130通信的示例,但是本公开不限于此。例如,CXL存储器110可通过CXL接口IF_CXL与两个或更多个CXL存储设备通信。也就是说,CXL存储器110和多个CXL存储设备可通过CXL接口IF_CXL以级联结构连接。
图3是详细示出图2的计算系统的组件的框图。参照图2和图3,计算系统100可包括CXL交换机SW_CXL、主机101、第一CXL存储设备120、第二CXL存储设备130和CXL存储器110。
CXL交换机SW_CXL可以是包括在CXL接口IF_CXL中的组件。CXL交换机SW_CXL可被配置为仲裁第一CXL存储设备120、第二CXL存储设备130与CXL存储器110之间的通信。例如,在将数据存储在第一CXL存储设备120中的情况下,CXL交换机SW_CXL可被配置为将从CXL存储器110提供的信息(诸如,请求、数据、响应或信号)发送到第一CXL存储设备120。在将数据存储在第二CXL存储设备130中的情况下,CXL交换机SW_CXL可被配置为将从CXL存储器110提供的信息(诸如,请求、数据、响应或信号)发送到第二CXL存储设备130。
主机101可包括CXL主机接口(CXL_H I/F)电路101a。CXL主机接口电路101a可与CXL存储器110通信。
在一个实施例中,第一CXL存储设备120的配置可与现有技术存储设备的配置不同。例如,现有技术存储装置(例如,包括DRAM缓冲器的SSD)存储和管理包括在现有技术存储装置中的DRAM缓冲器中的映射数据。在这种情况下,用于存储映射数据的高容量DRAM缓冲器应被包括在现有技术存储装置中。可选地,另一种类型的现有技术存储装置(例如,无DRAM SSD或无DRAM存储卡)将全部映射数据存储在包括在现有技术存储装置中的非易失性存储器(例如,NAND闪存)中,并且将映射数据的一部分加载并使用到SRAM缓冲器上。在这种情况下,为了加载映射数据,对操作速度低于DRAM缓冲器的操作速度的非易失性存储器的访问被频繁地执行,从而降低操作的性能。
相比之下,根据本公开的第一CXL存储设备120和第二CXL存储设备130中的每个可不包括被配置为存储映射数据的单独的DRAM缓冲器。在这种情况下,可在布置在第一CXL存储设备120和第二CXL存储设备130外部的CXL存储器110中存储和管理第一CXL存储设备120的映射数据和第二CXL存储设备130的映射数据中的每个。如以下将描述的,因为CXL存储器110支持快速操作速度,所以第一CXL存储设备120和第二CXL存储设备130可具有与现有技术存储装置(例如,包括DRAM的存储装置)相同的性能。此外,因为CXL存储器110布置在第一CXL存储设备120和第二CXL存储设备130外部,所以容易地处理第一CXL存储设备120和第二CXL存储设备130中的每个的大量映射数据可以是可行的。
第一CXL存储设备120可包括第一CXL存储控制器121和非易失性存储器NVMa。第一CXL存储控制器121可包括CXL存储设备接口(CXL_S I/F)电路121a、处理器121b、RAM 121c和NAND接口(I/F)电路121d。
CXL存储设备接口电路121a可与CXL交换机SW_CXL连接。CXL存储设备接口电路121a可通过CXL交换机SW_CXL与CXL存储器110通信。
处理器121b可被配置为控制第一CXL存储控制器121的整体操作。RAM 121c可被用作第一CXL存储控制器121的工作存储器或缓冲存储器。在一个实施例中,RAM 121c可以是SRAM,并且可被用作第一CXL存储设备120的读取缓冲器和写入缓冲器。在一个实施例中,如以下将描述的,RAM 121c可被配置为临时存储从CXL存储器110读取的第一映射数据MD1或第一映射数据MD1的一部分。
NAND接口电路121d可控制非易失性存储器NVMa,使得数据被存储在非易失性存储器NVMa中或者数据从非易失性存储器NVMa被读取。在一个实施例中,NAND接口电路121d可被实现为符合标准协议(诸如,切换(toggle)接口或ONFI)。例如,非易失性存储器NVMa可包括多个NAND闪存装置;在基于切换接口来实现NAND接口电路121d的情况下,NAND接口电路121d通过多个通道与多个NAND闪存装置通信。多个NAND闪存装置可通过多通道、多路结构与多个通道连接。
NAND接口电路121d可通过多个通道将芯片使能信号/CE、命令锁存使能信号CLE、地址锁存使能信号ALE、读取使能信号/RE和写入使能信号/WE发送到多个NAND闪存装置。NAND接口电路121d和多个NAND闪存装置可通过多个通道交换数据信号DQ和数据选通信号DQS。
[表1]
表1示出根据每个信号的状态的NAND闪存装置的操作模式。参照表1,当NAND闪存装置接收到命令CMD或地址ADDR,或者接收到/输出数据“DATA”(DATA_in或DATA_out)时,芯片使能信号/CE保持低状态“L”。在命令输入模式期间,NAND接口电路121d可控制信号线,使得命令锁存使能信号CLE具有高电平“H”,地址锁存使能信号ALE具有低电平“L”,写入使能信号/WE在高电平“H”与低电平“L”之间切换,并且读取使能信号/RE具有高电平“H”。在命令输入模式期间,NAND接口电路121d可与写入使能信号/WE的上升沿↑同步地通过数据信号DQx将命令CMD发送到NAND闪存装置。NAND闪存装置可响应于写入使能信号/WE的上升沿↑而从数据信号DQx识别命令CMD。在地址输入模式期间,NAND接口电路121d可控制信号线,使得命令锁存使能信号CLE具有低电平“L”,地址锁存使能信号ALE具有高电平“H”,写入使能信号/WE在高电平“H”与低电平“L”之间切换,并且读取使能信号/RE具有高电平“H”。在地址输入模式期间,NAND接口电路121d可与写入使能信号/WE的上升沿↑同步地通过数据信号DQx将地址ADDR发送到NAND闪存装置。NAND闪存装置可响应于写入使能信号/WE的上升沿↑而从数据信号DQx识别地址ADDR。在一个实施例中,地址ADDR可以是与NAND闪存装置的物理块地址对应的值。
在数据输入模式期间,NAND接口电路121d可控制信号线,使得命令锁存使能信号CLE具有低电平“L”,地址锁存使能信号ALE具有低电平“L”,写入使能信号/WE具有高电平“H”,读取使能信号/RE具有高电平“H”,并且数据选通信号DQS在高电平“H”与低电平“L”之间切换。在数据输入模式期间,NAND接口电路121d可与数据选通信号DQS的上升沿↑和下降沿↓同步地通过数据信号DQx将数据“DATA”(DATA_in)发送到NAND闪存装置。NAND闪存装置可响应于数据选通信号DQS的上升沿↑和下降沿↓而从数据信号DQx识别数据“DATA”(DATA_in)。
在数据输出模式期间,NAND接口电路121d可控制信号线,使得命令锁存使能信号CLE具有低电平“L”,地址锁存使能信号ALE具有低电平“L”,写入使能信号/WE具有高电平“H”,并且读取使能信号/RE在高电平“H”与低电平“L”之间切换。在数据输出模式期间,NAND闪存装置可响应于读取使能信号/RE而生成在高电平“H”与低电平“L”之间切换的数据选通信号DQS。NAND闪存装置可与数据选通信号DQS的上升沿↑和下降沿↓同步地通过数据信号DQx将数据“DATA”(DATA_out)发送到NAND接口电路121d。NAND接口电路121d可响应于数据选通信号DQS的上升沿↑和下降沿↓而从数据信号DQx识别数据“DATA”(DATA_out)。
以上描述的切换接口是示例,并且本公开不限于此。
非易失性存储器NVMa可在第一CXL存储控制器121的控制下存储或输出第一用户数据UD1。非易失性存储器NVMa可在第一CXL存储控制器121的控制下存储或输出第一映射数据MD1。在一个实施例中,存储在非易失性存储器NVMa中的第一映射数据MD1可包括与存储在非易失性存储器NVMa中的全部第一用户数据UD1对应的映射信息。存储在非易失性存储器NVMa中的第一映射数据MD1可在第一CXL存储设备120的初始化操作中被存储在CXL存储器110中。
第二CXL存储设备130可包括第二CXL存储控制器131和非易失性存储器NVMb。第二CXL存储控制器131可包括CXL存储设备接口(CXL_S I/F)电路131a、处理器131b、RAM 131c和NAND接口(I/F)电路131d。CXL存储设备接口电路131a、处理器131b、RAM 131c和NAND接口电路131d可分别与CXL存储设备接口电路121a、处理器121b、RAM 121c和NAND接口电路121d对应。
CXL存储器110可包括CXL存储器控制器111和缓冲存储器BFM。CXL存储器控制器111可包括CXL存储器接口(CXL_M I/F)电路111a、处理器111b、存储器管理器111c、闪存转换层(FTL)111d、纠错码(ECC)引擎111e和缓冲存储器接口(I/F)电路111f。
CXL存储器接口电路111a可与CXL交换机SW_CXL连接。CXL存储器接口电路111a可通过CXL交换机SW_CXL与第一CXL存储设备120和第二CXL存储设备130通信。CXL存储器接口电路111a可与主机101通信。
处理器111b可被配置为控制CXL存储器控制器111的整体操作。存储器管理器111c可被配置为管理缓冲存储器BFM。例如,存储器管理器111c可被配置为将来自第一CXL存储设备120或第二CXL存储设备130的存储器地址(例如,逻辑地址或虚拟地址)转换为缓冲存储器BFM的物理地址。
在一个实施例中,作为用于管理CXL存储器110的存储区域的地址的存储器地址可以是由主机101指定和管理的逻辑地址或虚拟地址。
FTL 111d可执行用于有效地使用非易失性存储器NVMa的各种管理操作。例如,FTL111d可基于映射表在由主机101管理的逻辑块地址与在非易失性存储器NVMa中使用的物理块地址之间执行地址转换。FTL 111d可对非易失性存储器NVMa执行坏块管理操作(badblock management operation)。FTL 111d可对非易失性存储器NVMa执行损耗均衡操作。FTL 111d可对非易失性存储器NVMa执行垃圾收集操作。
在一个实施例中,FTL 111d可以以硬件、固件或软件的形式或以其组合的形式来实现。在FTL 111d以固件或软件的形式实现的情况下,与FTL 111d相关联的程序代码可被存储在CXL存储器控制器111中的RAM(未示出)中,并且可被处理器111b驱动。在FTL 111d以硬件的形式实现的情况下,被配置为执行以上管理操作的硬件组件可在第一CXL存储控制器121中实现。
ECC引擎111e可对从非易失性存储器NVMa读取的数据执行错误检测和纠正。例如,ECC引擎111e可生成要存储在非易失性存储器NVMa中的用户数据UD的奇偶校验位,并且由此生成的奇偶校验位可与用户数据UD一起被存储在非易失性存储器NVMa中。当从非易失性存储器NVMa读取用户数据UD时,ECC引擎111e可通过使用与用户数据UD一起从非易失性存储器NVMa读取的奇偶校验位来对用户数据UD的错误进行检测和纠正。
缓冲存储器接口电路111f可控制缓冲存储器BFM,使得数据被存储在缓冲存储器BFM中或者数据从缓冲存储器BFM被读取。在一个实施例中,缓冲存储器接口电路111f可被实现为符合标准协议(诸如,DDR接口或LPDDR接口)。
在CXL存储器控制器111的控制下,缓冲存储器BFM可存储数据,或者可输出存储的数据。在一个实施例中,缓冲存储器BFM可被配置为存储在第一CXL存储设备120中使用的第一映射数据MD1。当计算系统100或第一CXL存储设备120被初始化时,第一映射数据MD1可从第一CXL存储设备120被传送到CXL存储器110。
在一个实施例中,缓冲存储器BFM可被配置为存储在第二CXL存储设备130中使用的第二映射数据MD2。当计算系统100或第二CXL存储设备130被初始化时,第二映射数据MD2可从第二CXL存储设备130被传送到CXL存储器110。
如上所述,根据本公开的实施例的第一CXL存储设备120可将管理非易失性存储器NVMa所需的第一映射数据MD1存储在通过CXL交换机SW_CXL(或CXL接口IF_CXL)连接的CXL存储器110中。当第一CXL存储设备120根据主机101的请求执行读取操作时,第一CXL存储设备120可通过CXL交换机SW_CXL(或CXL接口IF_CXL)从CXL存储器110读取第一映射数据MD1的至少一部分,并且可基于由此读取的第一映射数据MD1来执行读取操作。可选地,当第一CXL存储设备120根据主机101的请求执行写入操作时,第一CXL存储设备120可对非易失性存储器NVMa执行写入操作并且可更新第一映射数据MD1。在这种情况下,由此更新的第一映射数据MD1可首先被存储在第一CXL存储控制器121的RAM 121c中,并且存储在RAM 121c中的第一映射数据MD1可通过CXL交换机SW_CXL(或CXL接口IF_CXL)被传送到CXL存储器110的缓冲存储器BFM,以便在缓冲存储器BFM中被更新。此外,如在第一CXL存储设备120中,根据本公开的实施例的第二CXL存储设备130可通过与CXL存储器110通信来执行写入操作和读取操作,并且可将第二映射数据MD2传送到缓冲存储器BFM。
在一个实施例中,CXL存储器110的缓冲存储器BFM的至少部分区域可被分配用于第一CXL存储设备120的专用区域和第二CXL存储设备130的专用区域,并且其剩余区域可被用作能够被主机101访问的区域(即,专用于主机101的存储器)。
在一个实施例中,主机101和CXL存储器110可通过使用作为输入/输出协议的CXL.io协议来彼此通信。CXL.io可具有基于PCIe的非一致性输入/输出协议。主机101和CXL存储器110可通过使用CXL.io来彼此交换用户数据或各种信息。
在一个实施例中,主机101和CXL存储器110可通过使用作为存储器访问协议的CXL.mem协议来彼此通信。CXL.mem可以是支持存储器访问的存储器访问协议。主机101可通过使用CXL.mem来访问CXL存储器110的部分区域(例如,存储第一映射数据MD1和第二映射数据MD2的区域或CXL存储设备专用区域)。
在一个实施例中,第一CXL存储设备120和CXL存储器110可通过使用作为存储器访问协议的CXL.mem来彼此通信。第一CXL存储设备120可通过使用CXL.mem来访问CXL存储器110的部分区域(例如,存储第一映射数据MD1的区域或CXL存储设备专用区域)。
在一个实施例中,第一CXL存储设备120和CXL存储器110可通过使用作为输入/输出协议的CXL.io来彼此通信。第一CXL存储设备120和CXL存储器110可通过使用CXL.io来彼此交换用户数据或各种信息。
在一个实施例中,第二CXL存储设备130和CXL存储器110可通过使用作为存储器访问协议的CXL.mem来彼此通信。第二CXL存储设备130可通过使用CXL.mem来访问CXL存储器110的部分区域(例如,存储第二映射数据MD2的区域或CXL存储设备专用区域)。
在一个实施例中,第二CXL存储设备130和CXL存储器110可通过使用作为输入/输出协议的CXL.io来彼此通信。第二CXL存储设备130和CXL存储器110可通过使用CXL.io来彼此交换用户数据或各种信息。
提供包括CXL.io和CXL.mem的以上访问类型作为示例,并且本公开不限于此。
在一个实施例中,第一CXL存储设备120、第二CXL存储设备130和CXL存储器110可安装在基于CXL接口的物理端口(例如,PCIe物理端口)中。在一个实施例中,第一CXL存储设备120、第二CXL存储设备130和CXL存储器110可基于E1.S、E1.L、E3.S、E3.L或PCIe AIC(CEM)形状因子来实现。可选地,第一CXL存储设备120、第二CXL存储设备130和CXL存储器110可基于U.2形状因子、M.2形状因子、各种不同类型的基于PCIe的形状因子或各种不同类型的小形状因子来实现。
图4是描述图3的计算系统的初始化操作或上电操作的流程图。图4是示出图3的计算系统的初始化操作或上电操作的流程图。参照图3和图4,在操作PUP-S10中,计算系统100可被上电。当计算系统100被上电时,主机101可将关于上电或初始化开始的信息发送到CXL存储器110、第一CXL存储设备120、第二CXL存储设备130和CXL交换机SW_CXL。响应于关于上电或初始化开始的信息,CXL存储器110、第一CXL存储设备120、第二CXL存储设备130和CXL交换机SW_CXL中的每个可执行单独的初始化操作。
在操作PUP-S11中,CXL存储器110可检查存储器容量(即,缓冲存储器BFM的容量)。例如,CXL存储器110可响应于操作PUP-S10中的关于上电或初始化开始的信息而检查缓冲存储器BFM的容量。
在操作PUP-S12中,第一CXL存储设备120可检查存储设备容量(即,非易失性存储器NVMa的容量)。例如,第一CXL存储设备120可响应于关于上电或初始化开始的信息而检查非易失性存储器NVMa的存储设备容量。
在操作PUP-S13中,第二CXL存储设备130可检查存储设备容量(即,非易失性存储器NVMb的容量)。例如,第二CXL存储设备130可响应于关于上电或初始化开始的信息而检查非易失性存储器NVMb的存储设备容量。
在一个实施例中,初始化操作可包括:CXL存储器110从主机101接收第一初始化请求;基于接收到第一初始化请求,CXL存储器110通过CXL存储器接口电路111a分别将第二初始化请求和第三初始化请求发送到第一CXL存储设备120和第二CXL存储设备130;基于发送第二初始化请求和第三初始化请求,CXL存储器110通过CXL存储器接口电路111a接收第一初始化响应和第二初始化响应,其中,第一初始化响应包括第一CXL存储设备120的第一容量信息和第一映射数据MD1,并且第二初始化响应包括第二CXL存储设备130的第二容量信息和专用于第二CXL存储设备130的第二映射数据MD2;基于接收到第一初始化响应和第二初始化响应,CXL存储器110将第三初始化响应发送到主机101;以及,基于发送第三初始化响应,CXL存储器110从主机101接收指示读取操作或写入操作的相应命令。
CXL存储器110可通过操作PUP-S21和操作PUP-S22来识别第一CXL存储设备120和第二CXL存储设备130的信息。例如,在操作PUP-S21中,CXL存储器110可通过CXL存储器接口电路111a发送用于识别第一CXL存储设备120的装置信息的第一装置信息请求REQ_id1。CXL交换机SW_CXL可将第一装置信息请求REQ_id1传送到作为第一装置信息请求REQ_id1的目标的第一CXL存储设备120。
第一CXL存储设备120可响应于从CXL交换机SW_CXL接收的第一装置信息请求REQ_id1而通过CXL存储设备接口电路121a输出第一装置信息响应REP_id1。第一装置信息响应REP_id1可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第一装置信息响应REP_id1传送到作为第一装置信息响应REP_id1的目标的CXL存储器110。
CXL存储器110可响应于从CXL交换机SW_CXL接收的第一装置信息响应REP_id1而识别第一CXL存储设备120的装置信息。在一个实施例中,第一装置信息响应REP_id1可包括关于第一CXL存储设备120的装置类型和存储设备容量的信息。
例如,在操作PUP-S22中,CXL存储器110可通过CXL存储器接口电路111a发送用于识别第二CXL存储设备130的装置信息的第二装置信息请求REQ_id2。CXL交换机SW_CXL可将第二装置信息请求REQ_id2传送到作为第二装置信息请求REQ_id2的目标的第二CXL存储设备130。
第二CXL存储设备130可响应于从CXL交换机SW_CXL接收的第二装置信息请求REQ_id2,通过CXL存储设备接口电路131a输出第二装置信息响应REP_id2。第二装置信息响应REP_id2可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第二装置信息响应REP_id2传送到作为第二装置信息响应REP_id2的目标的CXL存储器110。
CXL存储器110可响应于从CXL交换机SW_CXL接收的第二装置信息响应REP_id2而识别第二CXL存储设备130的装置信息。在一个实施例中,第二装置信息响应REP_id2可包括关于第二CXL存储设备130的装置类型和存储设备容量的信息。
为了便于说明,示出操作PUP-S22在操作PUP-S21之后被执行的示例,但是本公开不限于此。例如,操作PUP-S21可在操作PUP-S22之后被执行,或者操作PUP-S21和操作PUP-S22可同时被执行。
示出CXL存储器110通过CXL接口IF_CXL与第一CXL存储设备120和第二CXL存储设备130通信的示例,但是本公开不限于此。例如,CXL存储器110可通过CXL接口IF_CXL与两个或更多个CXL存储设备通信。也就是说,CXL存储器110和多个CXL存储设备可通过CXL接口IF_CXL以级联结构连接。
在一个实施例中,由于主机101在不与第一CXL存储设备120和第二CXL存储设备130直接通信的情况下通过CXL存储器110识别第一CXL存储设备120和第二CXL存储设备130,因此主机101可将CXL存储器110、第一CXL存储设备120和第二CXL存储设备130识别为一个存储器装置。
此外,在现有技术中,可根据主机101的接口来限制能够连接的存储装置的数量;然而,在本公开中,由于多个存储装置通过CXL存储器110和CXL交换机SW_CXL连接,并且CXL存储器110与主机101通信,因此存储装置可与CXL存储器110连接多达所需的容量,而不管对能够与主机101的接口连接的存储装置的数量的限制如何。也就是说,计算系统100可包括高容量存储装置。
CXL存储器110可通过操作PUP-S31至操作PUP-S33将CXL存储器110的至少部分区域分配用于专用于第一CXL存储设备120和第二CXL存储设备130中的每个的区域。例如,在操作PUP-S31中,第一CXL存储设备120可通过CXL存储设备接口电路121a输出第一存储器分配请求REQ_mem_alc1。第一存储器分配请求REQ_mem_alc1可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第一存储器分配请求REQ_mem_alc1传送到CXL存储器110。在一个实施例中,第一存储器分配请求REQ_mem_alc1可表示针对CXL存储器110的要被用作第一CXL存储设备120的专用区域的区域的分配请求。
第二CXL存储设备130可通过CXL存储设备接口电路131a输出第二存储器分配请求REQ_mem_alc2。第二存储器分配请求REQ_mem_alc2可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第二存储器分配请求REQ_mem_alc2传送到CXL存储器110。在一个实施例中,第二存储器分配请求REQ_mem_alc2可表示针对CXL存储器110的要被用作第二CXL存储设备130的专用区域的区域的分配请求。
在操作PUP-S32中,CXL存储器110可响应于第一存储器分配请求REQ_mem_alc1而将CXL存储器110的至少部分区域分配用于第一CXL存储设备120的专用区域。例如,CXL存储器110可基于第一CXL存储设备120的存储设备容量来确定第一CXL存储设备120所需的缓冲器容量。CXL存储器110可将CXL存储器110的与确定的缓冲器容量对应的区域分配用于第一CXL存储设备120的专用区域。
CXL存储器110可响应于第二存储器分配请求REQ_mem_alc2而将CXL存储器110的至少部分区域分配用于第二CXL存储设备130的专用区域。例如,CXL存储器110可基于第二CXL存储设备130的存储设备容量来确定第二CXL存储设备130所需的缓冲器容量。CXL存储器110可将CXL存储器110的与确定的缓冲器容量对应的区域分配用于第二CXL存储设备130的专用区域。
在操作PUP-S33中,CXL存储器110可通过CXL存储器接口电路111a输出第一存储器分配响应REP_mem_alc1。第一存储器分配响应REP_mem_alc1可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第一存储器分配响应REP_mem_alc1传送到作为第一存储器分配响应REP_mem_alc1的目标的第一CXL存储设备120。在一个实施例中,第一存储器分配响应REP_mem_alc1可包括关于CXL存储器110的装置标识符和CXL存储器110的被分配用于第一CXL存储设备120的专用区域的区域的存储器地址(例如,逻辑地址范围或虚拟地址范围)的信息。第一CXL存储设备120可基于第一存储器分配响应REP_mem_alc1来识别CXL存储器110的专用于第一CXL存储设备120的区域。
CXL存储器110可通过CXL存储器接口电路111a输出第二存储器分配响应REP_mem_alc2。第二存储器分配响应REP_mem_alc2可被传送到CXL交换机SW_CXL。CXL交换机SW_CXL可将第二存储器分配响应REP_mem_alc2传送到作为第二存储器分配响应REP_mem_alc2的目标的第二CXL存储设备130。在一个实施例中,第二存储器分配响应REP_mem_alc2可包括关于CXL存储器110的装置标识符和CXL存储器110的被分配用于第二CXL存储设备130的专用区域的区域的存储器地址(例如,逻辑地址范围或虚拟地址范围)的信息。
第二CXL存储设备130可基于第二存储器分配响应REP_mem_alc2来识别CXL存储器110的专用于第二CXL存储设备130的区域。
为了便于说明,示出第一CXL存储设备120的操作在第二CXL存储设备130的操作之前被执行的示例,但是本公开不限于此。例如,第一CXL存储设备120的操作可在第二CXL存储设备130的操作之后被执行,或者第一CXL存储设备120的操作和第二CXL存储设备130的操作可同时被执行。
在一个实施例中,在CXL存储器110的部分区域分别被分配用于第一CXL存储设备120和第二CXL存储设备130的专用区域之后,第一CXL存储设备120和第二CXL存储设备130可通过CXL交换机SW_CXL分别将第一写入请求和第二写入请求输出到CXL存储器110。
在一个实施例中,第一写入请求可表示用于将存在于第一CXL存储设备120的非易失性存储器NVMa中的第一映射数据MD1存储在CXL存储器110的专用区域中的请求。也就是说,第一写入请求可包括第一映射数据MD1和关于专用区域的地址信息。
在一个实施例中,第二写入请求可表示用于将存在于第二CXL存储设备130的非易失性存储器NVMb中的第二映射数据MD2存储在CXL存储器110的专用区域中的请求。也就是说,第二写入请求可包括第二映射数据MD2和关于专用区域的地址信息。
CXL存储器110可响应于第一写入请求而执行写入操作。CXL存储器110可将提供第一写入请求被完成的通知的第一写入响应传送到第一CXL存储设备120。第一CXL存储设备120可响应于第一写入响应而识别出写入操作在CXL存储器110上被完全执行。也就是说,第一CXL存储设备120的全部第一映射数据MD1可被存储在CXL存储器110中。
CXL存储器110可响应于第二写入请求而执行写入操作。CXL存储器110可将提供第二写入请求被完成的通知的第二写入响应传送到第二CXL存储设备130。第二CXL存储设备130可响应于第二写入响应而识别出写入操作在CXL存储器110上被完全执行。也就是说,第二CXL存储设备130的全部第二映射数据MD2可被存储在CXL存储器110中。
之后,第一CXL存储设备120、第二CXL存储设备130和CXL存储器110可执行正常操作(例如,读取操作或写入操作)。
图5是描述图4的计算系统存储映射数据的操作的示图。为了便于描述并且为了附图简洁,概念性地示出诸如主机101、第一CXL存储设备120、第二CXL存储设备130和CXL存储器110的组件,并且一些不必要的组件被省略。
参照图3至图5,CXL存储器110的部分区域可被分配用于第一CXL存储设备120和第二CXL存储设备130的专用区域。在一个实施例中,第一CXL存储设备120和第二CXL存储设备130的专用区域可包括包含专用于第一CXL存储设备120的第一映射数据MD1和专用于第二CXL存储设备130的第二映射数据MD2的映射表。
详细地,CXL存储器110的部分区域可包括分配给第一CXL存储设备120的第一专用区域DA1和分配给第二CXL存储设备130的第二专用区域DA2。在这种情况下,分配给第一CXL存储设备120的第一专用区域DA1可由第一CXL存储设备120访问,并且可被用于存储第一CXL存储设备120的映射数据。分配给第二CXL存储设备130的第二专用区域DA2可由第二CXL存储设备130访问,并且可被用于存储第二CXL存储设备130的映射数据。
例如,如图5中所示,第一CXL存储设备120的非易失性存储器NVMa可存储第一用户数据UD1和第一映射数据MD1。如上所述,因为第一CXL存储设备120不包括单独的缓冲存储器,所以第一CXL存储设备120可需要要存储第一映射数据MD1的缓冲区域。根据本公开的实施例,第一CXL存储设备120的第一映射数据MD1可被存储在CXL存储器110的部分区域(例如,第一专用区域DA1)中。在这种情况下,CXL存储器110的第一专用区域DA1可由第一CXL存储设备120通过CXL交换机SW_CXL来访问。
此外,第二CXL存储设备130的非易失性存储器NVMb可存储第二用户数据UD2和第二映射数据MD2。如在第一映射数据MD1中,第二CXL存储设备130的第二映射数据MD2可被存储在CXL存储器110的部分区域(例如,第二专用区域DA2)中。在这种情况下,CXL存储器110的第二专用区域DA2可由第二CXL存储设备130通过CXL交换机SW_CXL来访问。
在一个实施例中,CXL存储器110的除了专用区域之外的未分配的剩余区域可以是可由主机101访问或由主机101管理的区域。在这种情况下,主机101可通过CXL交换机SW_CXL访问CXL存储器110的剩余区域。在一个实施例中,CXL存储器110的未被分配用于专用区域的剩余区域可被用作存储器扩展器。
图6是描述映射数据被存储在CXL存储器中的操作的示图。在一个实施例中,存在于第一CXL存储设备120中的第一映射数据MD1和存在于第二CXL存储设备130中的第二映射数据MD2可通过对等(P2P)方式被传送并存储在CXL存储器110的缓冲存储器BFM中。
例如,如图6中所示,第一CXL存储设备120的第一CXL存储控制器121可包括直接存储器访问(DMA)引擎。包括在第一CXL存储控制器121中的DMA引擎可在没有主机101的干扰或控制的情况下将存在于非易失性存储器NVMa中的第一映射数据MD1传送到CXL存储器控制器111。也就是说,映射数据可基于P2P方式从第一CXL存储设备120被传送到CXL存储器110。
此外,第二CXL存储设备130的第二CXL存储控制器131可包括DMA引擎。包括在第二CXL存储控制器131中的DMA引擎可在没有主机101的干扰或控制的情况下将存在于非易失性存储器NVMb中的第二映射数据MD2传送到CXL存储器控制器111。也就是说,映射数据可基于P2P方式从第二CXL存储设备130被传送到CXL存储器110。
提供将映射数据从第一CXL存储设备120和第二CXL存储设备130传送到CXL存储器110的以上方式作为示例,并且本公开不限于此。可理解,映射数据从第一CXL存储设备120和第二CXL存储设备130到CXL存储器110的传送可使用CXL接口或CXL交换机以各种方式来实现。在一个实施例中,映射数据从CXL存储器110到第一CXL存储设备120和第二CXL存储设备130的传送(即,备份或冲刷(flush))也可以以类似于以上方式的一种或多种方式来实现。
图7是示出图2的CXL存储设备的读取操作的流程图。在一个实施例中,根据图7的流程图的第一CXL存储设备120的读取操作可在图4的初始化操作被执行之后(即,在第一CXL存储设备120的第一映射数据MD1被存储在CXL存储器110的专用区域中之后)被执行。
参照图2、图3和图7,在第一操作①中,主机101可通过CXL主机接口电路101a将第一读取请求REQ_RD1发送到CXL存储器110。在一个实施例中,第一读取请求REQ_RD1可包括指示读取操作的命令和第一逻辑块地址LBA1。也就是说,第一读取请求REQ_RD1可表示用于读取存储在第一CXL存储设备120中的第一用户数据UD1的请求,并且可包括与第一用户数据UD1对应的第一逻辑块地址LBA1。
在第二操作②中,CXL存储器110可获得与包括在第一读取请求REQ_RD1中的第一逻辑块地址LBA1对应的第一物理块地址PBA1。
例如,CXL存储器110的CXL存储器控制器111可从与包括在第一读取请求REQ_RD1中的存储器地址(例如,逻辑地址或虚拟地址)对应的区域读取第一映射数据MD1。在一个实施例中,CXL存储器控制器111可通过使用缓冲存储器接口电路111f从缓冲存储器BFM读取第一映射数据MD1。CXL存储器控制器111可参考第一映射数据MD1获得与第一逻辑块地址LBA1对应的第一物理块地址PBA1。
在第三操作③中,CXL存储器110可通过CXL交换机SW_CXL将第二读取请求REQ_RD2发送到第一CXL存储设备120。在一个实施例中,第二读取请求REQ_RD2可包括指示读取操作的命令和第一物理块地址PBA1。
在第四操作④中,第一CXL存储设备120可读取存储在非易失性存储器NVMa的与第一物理块地址PBA1对应的区域中的第一用户数据UD1。例如,第一CXL存储控制器121可从非易失性存储器NVMa的与第一物理块地址PBA1对应的区域读取第一用户数据UD1。在一个实施例中,第一CXL存储控制器121可通过使用NAND接口电路121d从非易失性存储器NVMa读取第一用户数据UD1。
在第五操作⑤中,第一CXL存储设备120可通过CXL存储设备接口电路121a发送对第二读取请求REQ_RD2的第一读取响应REP_RD1。CXL交换机SW_CXL可将第一读取响应REP_RD1传送到CXL存储器110。在一个实施例中,第一读取响应REP_RD1可包括通过第二读取请求REQ_RD2请求的第一用户数据UD1和第一物理块地址PBA1。
在第六操作⑥中,CXL存储器110可获得与包括在第一读取响应REP_RD1中的第一物理块地址PBA1对应的第一逻辑块地址LBA1。例如,CXL存储器110的CXL存储器控制器111可从与包括在第一读取响应REP_RD1中的存储器地址(例如,物理地址或虚拟地址)对应的区域读取第一映射数据MD1。在一个实施例中,CXL存储器控制器111可通过使用缓冲存储器接口电路111f从缓冲存储器BFM读取第一映射数据MD1。CXL存储器控制器111可参考第一映射数据MD1获得与第一物理块地址PBA1对应的第一逻辑块地址LBA1。
在第七操作⑦中,CXL存储器110可通过CXL存储器接口电路111a将第二读取响应REP_RD2发送到主机101。在一个实施例中,第二读取响应REP_RD2可包括第一用户数据UD1和第一逻辑块地址LBA1。
参照图7描述第一CXL存储设备120的读取操作,但是第二CXL存储设备130的读取操作可以以类似于以上方式的方式被执行。
图8是示出图2的CXL存储装置的读取操作的流程图。将参照图2、图3和图8描述CXL存储器110对第一CXL存储设备120执行读取操作的操作方法。
在操作S110中,CXL存储器110可通过CXL存储器接口电路111a从主机101接收第一读取请求REQ_RD1。在一个实施例中,第一读取请求REQ_RD1可包括指示读取操作的命令和第一逻辑块地址LBA1。
在操作S120中,CXL存储器110可获得与包括在第一读取请求REQ_RD1中的第一逻辑块地址LBA1对应的第一物理块地址PBA1。CXL存储器110的CXL存储器控制器111可参考第一映射数据MD1获得与第一逻辑块地址LBA1对应的第一物理块地址PBA1。
在操作S130中,CXL存储器110可通过CXL交换机SW_CXL将第二读取请求REQ_RD2发送到第一CXL存储设备120。在一个实施例中,第二读取请求REQ_RD2可包括指示读取操作的命令和第一物理块地址PBA1。
在操作S140中,CXL存储器110可从第一CXL存储设备120接收第一读取响应REP_RD1。在一个实施例中,第一读取响应REP_RD1可包括通过第二读取请求REQ_RD2请求的第一用户数据UD1和第一物理块地址PBA1。
在操作S150中,CXL存储器110可获得与包括在第一读取响应REP_RD1中的第一物理块地址PBA1对应的第一逻辑块地址LBA1。CXL存储器110的CXL存储器控制器111可参考第一映射数据MD1获得与第一物理块地址PBA1对应的第一逻辑块地址LBA1。
在操作S160中,CXL存储器110可通过CXL存储器接口电路111a将第二读取响应REP_RD2发送到主机101。在一个实施例中,第二读取响应REP_RD2可包括第一用户数据UD1和第一逻辑块地址LBA1。
图9是示出图2的CXL存储设备的写入操作的流程图。在一个实施例中,根据图9的流程图的第一CXL存储设备120的写入操作可在图4的初始化操作被执行之后(即,在第一CXL存储设备120的第一映射数据MD1被存储在CXL存储器110的专用区域中之后)被执行。
参照图2、图3和图9,在第一操作①中,主机101可通过CXL主机接口电路101a将第一写入请求REQ_WR1发送到CXL存储器110。在一个实施例中,第一写入请求REQ_WR1可包括指示写入操作的命令和第一逻辑块地址LBA1。也就是说,第一写入请求REQ_WR1可表示用于将第一用户数据UD1写入第一CXL存储设备120中的请求,并且可包括与第一用户数据UD1对应的第一逻辑块地址LBA1。
在第二操作②中,CXL存储器110可获得与包括在第一写入请求REQ_WR1中的第一逻辑块地址LBA1对应的第一物理块地址PBA1。详细地,CXL存储器110可响应于第一写入请求REQ_WR1而确定要写入第一用户数据UD1的CXL存储设备。例如,考虑到第一CXL存储设备120和第二CXL存储设备130中的每个的容量,CXL存储器110可选择要写入第一用户数据UD1的CXL存储设备。
此外,CXL存储器110的FTL 111d可管理关于包括在选择的CXL存储设备中的存储器块之中的空闲的、能够被写入的或能够被分配的存储器块的块信息。FTL 111d可以基于块信息来选择要写入第一用户数据UD1的存储器块。也就是说,第一物理块地址PBA1可表示CXL存储器110选择作为要写入第一用户数据UD1的存储器块的存储器块的地址。
当选择的存储器块的地址指示包括在第一CXL存储设备120中的存储器块时,在第三操作③中,CXL存储器110可通过CXL交换机SW_CXL将第二写入请求REQ_WR2发送到第一CXL存储设备120。在一个实施例中,第二写入请求REQ_WR2可包括指示写入操作的命令和第一物理块地址PBA1。
在第四操作④中,第一CXL存储设备120可将第一用户数据UD1写入选择的存储器块中。例如,第一CXL存储控制器121可控制非易失性存储器NVMa,使得第一用户数据UD1被写入选择的存储器块中。在一个实施例中,第一CXL存储控制器121可通过使用NAND接口电路121d将第一用户数据UD1写入非易失性存储器NVMa中。
当第一用户数据UD1被完全写入非易失性存储器NVMa中时(即,当对非易失性存储器NVMa的编程操作通过时),第一CXL存储设备120可生成写入映射数据。例如,写入映射数据可包括指示与第一逻辑块地址LBA1对应的第一用户数据UD1被存储在非易失性存储器NVMa的与第一物理块地址PBA1对应的区域中的信息。
在第五操作⑤中,第一CXL存储设备120可通过CXL存储设备接口电路121a发送对第二写入请求REQ_WR2的第一写入响应REP_WR1。CXL交换机SW_CXL可将第一写入响应REP_WR1传送到CXL存储器110。在一个实施例中,第一写入响应REP_WR1可包括写入映射数据和第一物理块地址PBA1。
在第六操作⑥中,CXL存储器110可获得与包括在第一写入响应REP_WR1中的第一物理块地址PBA1对应的第一逻辑块地址LBA1。在一个实施例中,CXL存储器110可基于写入映射数据来更新第一映射数据MD1。CXL存储器110可基于更新后的第一映射数据MD1获得与第一物理块地址PBA1对应的更新后的第一逻辑块地址。
在第七操作⑦中,CXL存储器110可通过CXL存储器接口电路111a将第二写入响应REP_WR2发送到主机101。在一个实施例中,第二写入响应REP_WR2可包括更新后的第一逻辑块地址。响应于第二写入响应REP_WR2,主机101可确定与第一写入请求REQ_WR1对应的第一用户数据UD1被正常地存储。
参照图9描述第一CXL存储设备120的写入操作,但是第二CXL存储设备130的写入操作也可以以类似于以上方式的方式被执行。此外,在一个实施例中,在将第二写入响应REP_WR2发送到主机101之后,CXL存储器110可从主机101接收断电请求;并且,基于接收到断电请求,CXL存储器110可将更新后的第一映射数据MD1发送到第一CXL存储设备120,并且可将专用于第二CXL存储设备130的第二映射数据MD2发送到第二CXL存储设备130。
图10是示出图2的CXL存储设备的写入操作的流程图。将参照图2、图3和图10描述CXL存储器110对第一CXL存储设备120执行写入操作的操作方法。
在操作S210中,CXL存储器110可通过CXL存储器接口电路111a从主机101接收第一写入请求REQ_WR1。在一个实施例中,第一写入请求REQ_WR1可包括指示写入操作的命令和第一逻辑块地址LBA1。
在操作S220中,CXL存储器110可获得与包括在第一写入请求REQ_WR1中的第一逻辑块地址LBA1对应的第一物理块地址PBA1。CXL存储器110的CXL存储器控制器111可响应于第一写入请求REQ_WR1而确定要写入第一用户数据UD1的CXL存储设备。
在操作S230中,CXL存储器110可通过CXL交换机SW_CXL将第二写入请求REQ_WR2发送到第一CXL存储设备120。在一个实施例中,第二写入请求REQ_WR2可包括指示写入操作的命令和第一物理块地址PBA1。
在操作S240中,CXL存储器110可从第一CXL存储设备120接收第一写入响应REP_WR1。在一个实施例中,第一写入响应REP_WR1可包括写入映射数据和第一物理块地址PBA1。
在操作S250中,CXL存储器110可获得与包括在第一写入响应REP_WR1中的第一物理块地址PBA1对应的第一逻辑块地址LBA1。在一个实施例中,CXL存储器110可基于写入映射数据来更新第一映射数据MD1。
在操作S260中,CXL存储器110可通过CXL存储器接口电路111a将第二写入响应REP_WR2发送到主机101。在一个实施例中,第二写入响应REP_WR2可包括更新后的第一逻辑块地址LBA1。
图11是描述图2的计算系统的断电操作的流程图。图11是示出图2的计算系统的断电操作的流程图。在一个实施例中,将参照图11描述计算系统的断电操作,但是本公开不限于此。例如,可理解,图11的操作方法适用于包括在计算系统中的各种组件(例如,主机、CXL存储设备、CXL存储器和CXL交换机)中的每个的断电操作或重置操作。
参照图2和图11,在操作POF-S10中,CXL存储器110可通过CXL存储器接口电路111a将第一断电信息IFM_off1和第二断电信息IFM_off2输出到CXL交换机SW_CXL。CXL交换机SW_CXL可将第一断电信息IFM_off1和第二断电信息IFM_off2分别传送到第一CXL存储设备120和第二CXL存储设备130。
也就是说,CXL存储器110可通过CXL交换机SW_CXL将允许第一CXL存储设备120执行断电操作的第一断电信息IFM_off1发送到第一CXL存储设备120。CXL存储器110可通过CXL交换机SW_CXL将允许第二CXL存储设备130执行断电操作的第二断电信息IFM_off2发送到第二CXL存储设备130。
在操作POF-S21中,第一CXL存储设备120可响应于第一断电信息IFM_off1而通过CXL存储设备接口电路121a输出第一读取请求REQ_RD1。CXL交换机SW_CXL可将第一读取请求REQ_RD1传送到CXL存储器110。在一个实施例中,操作POF-S21中的第一读取请求REQ_RD1可表示用于读取存储在CXL存储器110中的第一映射数据MD1的请求。第一读取请求REQ_RD1可包括存储第一映射数据MD1的区域的存储器地址。
CXL存储器110可响应于第一读取请求REQ_RD1而读取第一映射数据MD1。例如,CXL存储器110可基于包括在第一读取请求REQ_RD1中的存储器地址从缓冲存储器BFM读取第一映射数据MD1。
在操作POF-S22中,第二CXL存储设备130可响应于第二断电信息IFM_off2而通过CXL存储设备接口电路131a输出第二读取请求REQ_RD2。CXL交换机SW_CXL可将第二读取请求REQ_RD2传送到CXL存储器110。在一个实施例中,操作POF-S22中的第二读取请求REQ_RD2可表示用于读取存储在CXL存储器110中的第二映射数据MD2的请求。第二读取请求REQ_RD2可包括存储第二映射数据MD2的区域的存储器地址。
CXL存储器110可响应于第二读取请求REQ_RD2而读取第二映射数据MD2。例如,CXL存储器110可基于包括在第二读取请求REQ_RD2中的存储器地址从缓冲存储器BFM读取第二映射数据MD2。此外,为了便于说明,示出操作POF-S22在操作POF-S21之后被执行的示例,但是本公开不限于此。例如,操作POF-S21可在操作POF-S22之后被执行,或者操作POF-S21和操作PUP-S22可同时被执行。
在操作POF-S23中,CXL存储器110可通过CXL存储器接口电路111a输出对第一读取请求REQ_RD1的第一读取响应REP_RD1。CXL交换机SW_CXL可将第一读取响应REP_RD1传送到第一CXL存储设备120。CXL存储器110可通过CXL存储器接口电路111a输出对第二读取请求REQ_RD2的第二读取响应REP_RD2。CXL交换机SW_CXL可将第二读取响应REP_RD2传送到第二CXL存储设备130。
在操作POF-S24中,第一CXL存储设备120可将包括在第一读取响应REP_RD1中的第一映射数据MD1写入非易失性存储器NVMa中。在一个实施例中,第一CXL存储设备120可将第一映射数据MD1存储在非易失性存储器NVMa的给定区域中。第二CXL存储设备130可将包括在第二读取响应REP_RD2中的第二映射数据MD2写入非易失性存储器NVMb中。在一个实施例中,第二CXL存储设备130可将第二映射数据MD2存储在非易失性存储器NVMb的给定区域中。
在与第一CXL存储设备120相关联的第一映射数据MD1被存储在非易失性存储器NVMa中并且与第二CXL存储设备130相关联的第二映射数据MD2被存储在非易失性存储器NVMb中之后,在操作POF-S31中,第一CXL存储设备120可输出对第一断电信息IFM_off1的第一响应ACK_off1。CXL交换机SW_CXL可将第一响应ACK_off1发送到CXL存储器110。CXL存储器110可基于第一响应ACK_off1来识别存在于CXL存储器110中的第一映射数据MD1被正常地存储在第一CXL存储设备120中。
第二CXL存储设备130可输出对第二断电信息IFM_off2的第二响应ACK_off2。CXL交换机SW_CXL可将第二响应ACK_off2发送到CXL存储器110。CXL存储器110可基于第二响应ACK_off2来识别存在于CXL存储器110中的第二映射数据MD2被正常地存储在第二CXL存储设备130中。
之后,在操作POF-S32中,第一CXL存储设备120、第二CXL存储设备130、CXL存储器110和CXL交换机SW_CXL可被断电。例如,CXL存储器110可将电力中断请求发送到主机101;基于电力中断请求,主机101可中断供应给第一CXL存储设备120、第二CXL存储设备130、CXL存储器110和CXL交换机SW_CXL的电力。
为了便于说明,示出第一CXL存储设备120的操作在第二CXL存储设备130的操作之前被执行的示例,但是本公开不限于此。例如,第一CXL存储设备120的操作可在第二CXL存储设备130的操作之后被执行,或者第一CXL存储设备120的操作和第二CXL存储设备130的操作可同时被执行。
提供参照图11描述的断电操作作为示例,并且本公开不限于此。例如,在图11的实施例中,在第一CXL存储设备120将存在于CXL存储器110中的第一映射数据MD1存储在非易失性存储器NVMa中之后,CXL存储器110可通过将第一响应ACK_off1和第二响应ACK_off2发送到主机11(即,中断方式)来提供第一映射数据MD1和第二映射数据MD2被完全备份的通知。可选地,第一CXL存储设备120可将存在于CXL存储器110中的第一映射数据MD1存储在非易失性存储器NVMa中,并且然后可将特定寄存器的值设置为给定值。主机101可通过由CXL存储器110周期性地检查特定寄存器的值(即,轮询方式)来确定第一映射数据MD1是否被完全备份。可选地,第一CXL存储设备120可被配置为在从CXL存储器110接收到第一断电信息IFM_off1的时间点起的给定时间内完成第一映射数据MD1的备份操作(即,超时方式)。如上所述,第一CXL存储设备120可通过使用以上方式中的至少一种通过CXL存储器110将指示第一映射数据MD1被完全备份的信息传送到主机101。
图12是示出根据本公开的实施例的计算系统的框图。为了便于描述,与上述组件相关联的附加描述将被省略以避免冗余。参照图12,计算系统1000可包括第一CPU 1110、第二CPU 1120、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至图12描述的主机,并且可与单独的存储器装置直接连接。
在一个实施例中,CXL存储设备1210和CXL存储器1220可以是参照图2至图12描述的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与第一CPU1110、第二CPU 1120、GPU 1130和NPU 1140中的每个通信,或者可通过CXL交换机SW_CXL访问包括CXL存储设备1210和CXL存储器1220的存储空间STR。
在一个实施例中,CXL交换机SW_CXL可与外部网络或网(Fabric)连接,并且可被配置为通过外部网络或网与外部服务器通信。
图13是示出应用根据本公开的实施例的计算系统的数据中心的框图。参照图13,作为收集各种数据并提供服务的设施的数据中心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可用DDR SDRAM(双数据速率同步DRAM)、HBM(高带宽存储器)、HMC(混合存储器立方体)、DIMM(双列直插式存储器模块)、傲腾(Optane)DIMM和/或NVMDIMM(非易失性DIMM)来实现。处理器2211和存储器2212可直接连接,并且包括在一个存储服务器2210中的处理器和存储器的数量可不同地被选择。
在一个实施例中,处理器2211和存储器2212可形成处理器-存储器对。在一个实施例中,处理器2211的数量和存储器2212的数量可彼此不同。处理器2211可包括单核处理器或多核处理器。存储服务器2210的详细描述可类似地被应用于应用服务器2110至21m0。
交换机2213可被配置为仲裁或路由包括在第一存储服务器2210中的各种组件之间的通信。在一个实施例中,交换机2213可用参照图1至图12描述的CXL交换机SW_CXL来实现。也就是说,交换机2213可以是基于CXL协议实现的交换机。
CXL存储器2214可与交换机2213连接。在一个实施例中,CXL存储器2214可被用作处理器2211的存储器扩展器。可选地,如参照图1至图12所描述的,CXL存储器2214可被分配用于存储装置2215的专用存储器或缓冲存储器。
存储装置2215可包括CXL接口电路CXL_IF、控制器CTRL和NAND闪存NAND。根据处理器2211的请求,存储装置2215可存储数据或者可输出存储的数据。在一个实施例中,存储装置2215可用参照图1至图12描述的第一CXL存储设备来实现。在一个实施例中,如在参照图1至图12给出的描述中,CXL存储器2214的至少部分区域可被分配用于专用区域,并且专用区域可被用作缓冲存储器(即,可被用于将映射数据存储在CXL存储器2214中)。
在一个实施例中,第一存储服务器2210可包括多个存储装置。在这种情况下,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可根据以下协议来实现:FCoE(通过以太网的FC)、NAS(网络附接存储)或NVMe-oF(通过网络的NVMe)。
在一个实施例中,应用服务器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存储器可以以各种方式来连接和实现。
根据本公开的实施例,提供一种管理多个存储装置中的每个的映射数据的存储器装置及其操作方法。
根据本公开的实施例,由于多个存储装置在不与主机连接的情况下以级联结构与存储器装置连接,因此数量大于能够与现有主机连接的存储装置的数量的存储装置可连接。因此,可实现高容量计算系统。
虽然已经参照本公开的实施例描述了本公开,但是对于本领域普通技术人员将清楚的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可对其进行各种改变和修改。
Claims (20)
1.一种存储器装置的操作方法,所述存储器装置通过接口电路与第一存储装置和第二存储装置通信,所述操作方法包括:
从主机装置接收包括命令和第一逻辑块地址的第一请求;
基于第一逻辑块地址,参考专用于第一存储装置的第一映射数据来获得第一物理块地址;以及
通过接口电路将包括第一物理块地址和所述命令的第二请求发送到第一存储装置。
2.根据权利要求1所述的操作方法,其中,发送第二请求的步骤包括:使用对等通信通过接口电路将用于存储器分配的第二请求发送到第一存储装置。
3.根据权利要求1所述的操作方法,其中,发送第二请求的步骤包括:基于计算快速链路接口,通过使用CXL.mem协议,通过接口电路将第二请求发送到第一存储装置。
4.根据权利要求1所述的操作方法,还包括:
从主机装置接收包括所述命令和第二逻辑块地址的第三请求;
基于第二逻辑块地址,参考专用于第二存储装置的第二映射数据来获得第二物理块地址;以及
通过接口电路将包括第二物理块地址和所述命令的第四请求发送到第二存储装置。
5.根据权利要求1所述的操作方法,其中,所述存储器装置的除了用于存储第一映射数据和专用于第二存储装置的第二映射数据的容量之外的剩余容量被用作专用于主机装置的存储器。
6.根据权利要求1所述的操作方法,还包括:基于将第二请求发送到第一存储装置,通过接口电路从第一存储装置接收包括存储在第一存储装置的与第一物理块地址对应的区域中的第一用户数据的第一读取响应,
其中,所述命令指示读取操作。
7.根据权利要求6所述的操作方法,还包括:
基于接收到第一读取响应,基于第一物理块地址参考第一映射数据获得第一逻辑块地址;以及
将包括第一逻辑块地址和第一用户数据的第二读取响应发送到主机装置。
8.根据权利要求1所述的操作方法,还包括:基于将第二请求发送到第一存储装置,通过接口电路从第一存储装置接收包括写入映射数据的第一写入响应,写入映射数据指示与所述命令对应的第二用户数据被存储在第一存储装置的与第一物理块地址对应的区域中,
其中,所述命令指示写入操作。
9.根据权利要求8所述的操作方法,还包括:
基于接收到第一写入响应,基于写入映射数据更新第一映射数据;
基于第一物理块地址,参考更新后的第一映射数据获得更新后的第一逻辑块地址;以及
将第二写入响应发送到主机装置,第二写入响应包括更新后的第一逻辑块地址。
10.根据权利要求9所述的操作方法,还包括:
基于将第二写入响应发送到主机装置,从主机装置接收断电请求;
基于接收到断电请求,将更新后的第一映射数据发送到第一存储装置;以及
基于接收到断电请求,将专用于第二存储装置的第二映射数据发送到第二存储装置。
11.根据权利要求1至10中任一项所述的操作方法,其中,接收第一请求的步骤包括:
从主机装置接收第一初始化请求;
基于接收到第一初始化请求,通过接口电路将第二初始化请求发送到第一存储装置;
基于接收到第一初始化请求,通过接口电路将第三初始化请求发送到第二存储装置;
基于发送第二初始化请求,通过接口电路接收包括第一存储装置的第一容量信息和第一映射数据的第一初始化响应;
基于发送第三初始化请求,通过接口电路接收包括第二存储装置的第二容量信息和专用于第二存储装置的第二映射数据的第二初始化响应;
基于接收到第一初始化响应和第二初始化响应,将第三初始化响应发送到主机装置;以及
基于发送第三初始化响应,从主机装置接收包括所述命令和第一逻辑块地址的第一请求。
12.一种计算系统,包括:
第一存储装置;
第二存储装置;
存储器装置,存储用于管理专用于第一存储装置的第一映射数据和专用于第二存储装置的第二映射数据的映射表;以及
接口电路,被配置为与第一存储装置、第二存储装置和存储器装置通信,
其中,存储器装置被配置为:
从主机装置接收包括命令和第一逻辑块地址的第一请求,
基于第一逻辑块地址,参考映射表的第一映射数据获得第一物理块地址,并且
通过接口电路将包括第一物理块地址和所述命令的第二请求发送到第一存储装置。
13.根据权利要求12所述的计算系统,其中,存储器装置还被配置为:使用对等通信通过接口电路将用于存储器分配的第二请求发送到第一存储装置。
14.根据权利要求12所述的计算系统,其中,第一存储装置被配置为:
基于接收到第二请求,读取存储在与第一物理块地址对应的区域中的第一用户数据;并且
通过接口电路将包括第一用户数据和第一物理块地址的第一读取响应发送到存储器装置,并且
其中,所述命令指示读取操作。
15.根据权利要求14所述的计算系统,其中,存储器装置还被配置为:
基于接收到第一读取响应,基于第一物理块地址参考映射表的第一映射数据获得第一逻辑块地址;并且
将包括第一逻辑块地址和第一用户数据的第二读取响应发送到主机装置。
16.根据权利要求12所述的计算系统,其中,第一存储装置被配置为:
基于将第二请求发送到第一存储装置,通过接口电路将与所述命令对应的第二用户数据存储在与第一物理块地址对应的区域中;并且
将包括写入映射数据的第一写入响应发送到存储器装置,写入映射数据指示第二用户数据被存储在与第一物理块地址对应的区域中,并且
其中,所述命令指示写入操作。
17.根据权利要求16所述的计算系统,其中,存储器装置还被配置为:
基于接收到第一写入响应,基于写入映射数据更新第一映射数据;
参考更新后的第一映射数据从第一物理块地址获得更新后的第一逻辑块地址;并且
将包括更新后的第一逻辑块地址的第二写入响应发送到主机装置。
18.根据权利要求17所述的计算系统,其中,存储器装置还被配置为:
基于将第二写入响应发送到主机装置,从主机装置接收断电请求;
基于接收到断电请求,将更新后的第一映射数据发送到第一存储装置;并且
基于接收到断电请求,将专用于第二存储装置的第二映射数据发送到第二存储装置。
19.根据权利要求12至18中任一项所述的计算系统,其中,存储器装置还被配置为:使用存储器装置的除了存储映射表的容量之外的剩余容量作为专用于主机装置的存储器。
20.一种计算系统的操作方法,所述计算系统包括第一存储装置、第二存储装置、存储器装置和接口电路,接口电路与第一存储装置、第二存储装置和存储器装置通信,所述操作方法包括:
由存储器装置从主机装置接收包括命令和第一逻辑块地址的第一请求;
由存储器装置基于第一逻辑块地址参考专用于第一存储装置的第一映射数据来获得第一物理块地址;以及
由存储器装置通过接口电路将包括第一物理块地址和所述命令的第二请求发送到第一存储装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220056187A KR20230156583A (ko) | 2022-05-06 | 2022-05-06 | 복수의 스토리지 장치들 각각의 맵 데이터를 관리하는 메모리 장치의 동작 방법 및 이를 포함하는 컴퓨팅 시스템 및 이의 동작 방법 |
KR10-2022-0056187 | 2022-05-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117009279A true CN117009279A (zh) | 2023-11-07 |
Family
ID=88575109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310309835.4A Pending CN117009279A (zh) | 2022-05-06 | 2023-03-27 | 存储器装置的操作方法、计算系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230359394A1 (zh) |
KR (1) | KR20230156583A (zh) |
CN (1) | CN117009279A (zh) |
-
2022
- 2022-05-06 KR KR1020220056187A patent/KR20230156583A/ko unknown
-
2023
- 2023-03-27 CN CN202310309835.4A patent/CN117009279A/zh active Pending
- 2023-04-13 US US18/134,359 patent/US20230359394A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230359394A1 (en) | 2023-11-09 |
KR20230156583A (ko) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11741034B2 (en) | Memory device including direct memory access engine, system including the memory device, and method of operating the memory device | |
CN115495389A (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
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 | |
CN117009279A (zh) | 存储器装置的操作方法、计算系统及其操作方法 | |
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 | |
US20230359379A1 (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 | |
US20230350832A1 (en) | Storage device, memory device, and system including storage device and memory device | |
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 | |
US20230376238A1 (en) | Computing system for managing distributed storage devices, and method of operating the same | |
EP4273706A1 (en) | Storage device, memory device, and system including storage device and memory device | |
US20230376217A1 (en) | Storage device, memory device, and computing system including 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 | |
US20230359578A1 (en) | Computing system including cxl switch, memory device and storage device and operating method thereof | |
US20230359567A1 (en) | Storage device, computing device including storage device and memory device, and operating method of computing device | |
EP4276634A1 (en) | Storage device, computing device including storage device and memory device, and operating method of computing device | |
US20230359566A1 (en) | Computing system including memory device and storage device and operating method thereof | |
EP4283474A1 (en) | Storage device, memory device, and computing system including the same | |
EP4276639A1 (en) | Computing system including memory device and storage device and operating method thereof | |
US20240086110A1 (en) | Data storage method, storage apparatus and host | |
EP4283456A1 (en) | Memory device, storage device, and computing system including memory device and storage device | |
US20230141936A1 (en) | Secure processor, operating method thereof, and storage device including same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |