CN117032553A - 包括存储器装置和存储装置的计算系统及其操作方法 - Google Patents
包括存储器装置和存储装置的计算系统及其操作方法 Download PDFInfo
- Publication number
- CN117032553A CN117032553A CN202310117537.5A CN202310117537A CN117032553A CN 117032553 A CN117032553 A CN 117032553A CN 202310117537 A CN202310117537 A CN 202310117537A CN 117032553 A CN117032553 A CN 117032553A
- Authority
- CN
- China
- Prior art keywords
- memory
- cxl
- storage device
- interface
- host
- 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 17
- 230000015654 memory Effects 0.000 claims abstract description 749
- 238000013507 mapping Methods 0.000 claims abstract description 140
- 230000004044 response Effects 0.000 claims description 91
- 230000006870 function Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 27
- 230000000630 rising effect Effects 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
- 238000007726 management method Methods 0.000 description 6
- 101150101057 PBA1 gene Proteins 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003252 repetitive effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 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 2
- 238000001514 detection method Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 229940044442 onfi Drugs 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 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
- 230000037361 pathway Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012827 research and development 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
- 230000003936 working memory 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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- 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
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- 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
- 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
-
- 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/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/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/0658—Controller construction 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/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/0661—Format or protocol conversion 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/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/314—In storage network, e.g. network attached cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了包括存储器装置和存储装置的计算系统及其操作方法。所述计算系统包括:主机、存储器和存储装置。存储器包括易失性存储器和存储器控制器。存储装置通过第一接口与主机连接,并且包括非易失性存储器和存储控制器,存储装置通过第一端口与主机通信,通过第二端口与存储器通信,并管理存储器。存储器通过与第一接口物理地分离的第二接口与存储装置连接。在初始化操作中,存储控制器通过第二接口将存储在非易失性存储器中的映射数据发送给存储器。在初始化操作中,存储器控制器将映射数据存储在易失性存储器中。
Description
本申请要求于2022年5月9日在韩国知识产权局提交的第10-2022-0056787号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
在此描述的本公开的实施例涉及电子装置,并且更具体地,涉及包括存储器装置和存储装置的计算装置及其操作方法。
背景技术
半导体存储器装置被分类为易失性存储器装置(诸如,静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM))或非易失性存储器装置(诸如,闪存装置、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)或铁电RAM(FRAM)),在易失性存储器装置中,当断电时,存储的数据消失,在非易失性存储器装置中,即使当断电时,存储的数据也被保持。
存储装置(诸如,固态驱动器)可包括NAND闪存。在主机中使用的逻辑块地址的系统不同于存储装置的NAND闪存的物理块地址的系统。因此,存储装置可通过使用其中映射了逻辑块地址和物理块地址的映射数据,来执行主机的逻辑块地址与NAND闪存的物理块地址之间的转换。
随着NAND闪存的容量增大,映射数据的容量也可增大。这样,可需要在存储装置中使用高容量缓冲存储器,由此导致新研究和开发的成本。
发明内容
一方面是提供包括存储器装置和存储装置的计算装置及其操作方法。
根据一个或多个实施例的一方面,提供了一种计算系统,所述计算系统包括:主机;存储器,包括易失性存储器和存储器控制器;以及存储装置,通过第一接口与主机连接,并且包括非易失性存储器和存储控制器,存储装置被配置为:通过第一端口与主机通信,通过第二端口与存储器通信,并且管理存储器,其中,存储器通过与第一接口物理地分离的第二接口与存储装置连接,其中,在初始化操作中,存储控制器通过第二接口将存储在非易失性存储器中的映射数据发送给存储器,并且其中,在初始化操作中,存储器控制器将映射数据存储在易失性存储器中。
根据一个或多个实施例的另一方面,提供了一种计算系统的操作方法,所述计算系统包括主机、存储装置和存储器,主机和存储装置通过第一接口连接,并且存储装置和存储器通过第二接口连接,所述操作方法包括:在初始化操作中,由存储装置通过第二接口将存储在存储装置的非易失性存储器中的映射数据发送给存储器;在初始化操作中,由存储器将映射数据存储在存储器的易失性存储器中;在初始化操作之后,由存储装置通过第二接口将第一读取请求发送给存储器;以及由存储器基于第一读取请求通过第二接口将第一部分映射数据发送给存储装置,其中,第一接口和第二接口基于计算快速链路(CXL)协议,并且第一接口与第二接口物理地分离。
根据一个或多个实施例的又一方面,提供了一种计算系统,所述计算系统包括:主机;存储装置,包括非易失性存储器和存储控制器;存储器,包括易失性存储器和存储器控制器;以及交换机,与主机和存储装置连接,其中,存储器与存储装置连接,其中,存储装置被配置为通过第一端口与主机通信,通过第二端口与存储器通信,并且管理存储器,其中,在初始化操作中,存储控制器通过第二端口将存储在非易失性存储器中的映射数据发送给存储器,并且其中,在初始化操作中,存储器控制器将所述映射数据存储在易失性存储器中。
附图说明
通过参照附图详细描述其实施例,以上和其他方面将变得清楚,在附图中:
图1是示出包括存储装置的计算系统的框图;
图2A是根据一些实施例的应用存储系统的计算系统的框图;
图2B是根据一些实施例的详细示出图2A的计算系统的组件的框图;
图3A是示出应用根据一些实施例的存储系统的计算系统的框图;
图3B是根据一些实施例的详细示出图3A的计算系统的组件的框图;
图4是示出根据一些实施例的图3B的计算系统的初始化操作或上电操作的流程图;
图5是用于描述根据一些实施例的图3B的计算系统存储映射数据的操作的示图;
图6是用于描述根据一些实施例的将映射数据存储在CXL存储器中的操作的示图;
图7是示出根据一些实施例的图3A的CXL存储设备的读取操作的流程图;
图8是示出根据一些实施例的图3A的CXL存储设备的写入操作的流程图;
图9是示出根据一些实施例的图3A的计算系统的断电操作的流程图;
图10是示出应用根据一些实施例的存储系统的计算系统的示图;
图11A和图11B是示出根据一些实施例的计算系统的示例的框图;
图12是示出根据一些实施例的计算系统的框图;
图13是示出根据一些实施例的计算系统的框图;
图14是示出根据一些实施例的计算系统的框图;以及
图15是示出应用根据一些实施例的计算系统的数据中心的框图。
具体实施方式
下面,将详细并且清楚地描述各种实施例至本领域技术人员容易地实施本公开的程度。
图1是示出包括存储装置(storage device)的计算系统的框图。参照图1,计算系统10可包括主机11、多个存储器装置(memory device)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的容量的增大而导致的映射数据的大小的增大。
图2A是根据一些实施例的应用存储系统的计算系统的框图。参照图2A,计算系统100可包括主机101、多个存储器装置102a和102b、计算快速链路(CXL)存储设备110和CXL存储器120。
主机101可控制计算系统100的总体操作。在一个实施例中,主机101可以是各种处理器(诸如,中央处理器(CPU)、图形处理器(GPU)、神经处理器(NPU)和/或数据处理器(DPU))之一。在一个实施例中,主机101可包括单核处理器或多核处理器。
多个存储器装置102a和102b可用作计算系统100的主存储器或系统存储器。在一个实施例中,多个存储器装置102a和102b中的每个可以是动态随机存取存储器(DRAM)装置,并且可具有双列直插式存储器模块(DIMM)的形状因子。然而,本公开不限于此。例如,多个存储器装置102a和120b可包括非易失性存储器(诸如,闪存、相变RAM(PRAM)、电阻式RAM(RRAM)或磁性RAM(MRAM))。
多个存储器装置102a和102b可通过双倍数据速率(DDR)接口直接与主机101通信。在一个实施例中,主机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彼此通信。
在一个实施例中,与图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。
在一个实施例中,现有技术的存储装置13的存储控制器13a通过主机接口(诸如,PCIe或NVMe)与主机11通信,并且通过存储器接口(诸如,DDR接口或LPDDR接口)与缓冲存储器13b通信。也就是说,现有技术的存储装置13的存储控制器13a通过不同的接口(即,异构接口)与主机11和包括在存储装置13中的缓冲存储器13b通信。
相比之下,根据一些实施例,CXL存储设备110的CXL存储控制器111可通过CXL接口IF_CXL与主机101和CXL存储器120(即,缓冲存储器)通信。换句话说,CXL存储设备110的CXL存储控制器111可通过同构接口或公共接口与主机101和CXL存储器120通信,并且可使用CXL存储器120的部分区域作为缓冲存储器。
图2B是根据一些实施例的详细示出图2A的计算系统的组件的框图。参照图2A和图2B,计算系统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可包括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中使用的物理块地址之间的地址转换。FTL111d可对非易失性存储器NVM执行坏块管理操作。FTL 111d可对非易失性存储器NVM执行磨损均衡操作。FTL 111d可对非易失性存储器NVM执行垃圾收集操作。
ECC引擎111e可对从非易失性存储器NVM读取的数据执行错误检测和纠正。例如,ECC引擎111e可生成将被存储在非易失性存储器NVM中的用户数据UD的奇偶校验位,并且由此生成的奇偶校验位可与用户数据UD一起被存储在非易失性存储器NVM中。当从非易失性存储器NVM读取用户数据UD时,ECC引擎111e可通过使用与用户数据一起从非易失性存储器NVM读取的奇偶校验位来检测和纠正用户数据UD的错误。
NAND接口电路111f可控制非易失性存储器NVM,使得数据被存储在非易失性存储器NVM中或者从非易失性存储器NVM读取数据。在一个实施例中,NAND接口电路111f可被实现为符合标准协议(诸如,切换(toggle)接口或ONFI)。例如,非易失性存储器NVM可包括多个NAND闪存装置。在基于切换接口实现NAND接口电路111f的情况下,NAND接口电路111f通过多个通道与多个NAND闪存装置通信。多个NAND闪存装置可通过多通道、多路结构与所述多个通道连接。
非易失性存储器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的RAM 111c中,并且存储在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的上述访问类型作为示例,并且本公开不限于此。
图3A是示出应用根据一些实施例的存储系统的计算系统的框图。参照图3A,计算系统200可包括主机201、多个存储器装置202a和202b、计算快速链路(CXL)存储设备210和CXL存储器220。在一个实施例中,计算系统200可被包括在用户装置(诸如,个人计算机、膝上型计算机、服务器、媒体播放器和数码相机)或汽车装置(诸如,导航系统、黑匣子和汽车电子装置/部件等)中。在一些实施例中,计算系统200可以是移动系统(诸如,移动电话、智能电话、平板个人计算机(PC)、可穿戴装置、医疗装置或物联网(IoT)装置)。
主机201可控制计算系统200的总体操作。在一个实施例中,主机201可以是各种处理器(诸如,中央处理器(CPU)、图形处理器(GPU)、神经处理器(NPU)和/或数据处理器(DPU))之一。在一个实施例中,主机201可包括单核处理器或多核处理器。
多个存储器装置202a和202b可用作计算系统200的主存储器或系统存储器。在一个实施例中,多个存储器装置202a和202b中的每个可以是动态随机存取存储器(DRAM)装置,并且可具有双列直插式存储器模块(DIMM)的形状因子。然而,本公开不限于此。例如,多个存储器装置202a和202b可包括非易失性存储器(诸如,闪存、相变RAM(PRAM)、电阻式RAM(RRAM)或磁性RAM(MRAM))。
多个存储器装置202a和202b可通过DDR接口与主机201直接通信。在一个实施例中,主机201可包括被配置为控制多个存储器装置202a和202b的存储器控制器。然而,本公开不限于此。例如,多个存储器装置202a和202b可通过各种接口与主机201通信。
CXL存储设备210可包括CXL存储控制器211和非易失性存储器NVM。在主机201的控制下,CXL存储控制器211可将数据存储在非易失性存储器NVM中,或者可将存储在非易失性存储器NVM中的数据发送给主机201。在一个实施例中,非易失性存储器NVM可以是NAND闪存,但是本公开不限于此。
CXL存储器220可包括CXL存储器控制器221和缓冲存储器BFM。在CXL存储设备210的控制下,CXL存储器控制器221可将数据存储在缓冲存储器BFM中,或者可将存储在缓冲存储器BFM中的数据发送给CXL存储设备210。在一个实施例中,缓冲存储器BFM可以是DRAM,但是本公开不限于此。
在一个实施例中,与图2A的计算系统100不同,计算系统200可被配置为不共享同一接口。也就是说,图2A的主机101、CXL存储设备110和CXL存储器120可被配置为共享同一接口。例如,主机101、CXL存储设备110和CXL存储器120可通过CXL接口IF_CXL彼此通信。在CXL存储设备110与CXL存储器120之间的通信增加的图2A的配置的情况下,CXL存储设备110与主机101之间的通信可受到CXL存储设备110与CXL存储器120之间的通信的增加的影响。换言之,CXL存储设备110与CXL存储器120之间的通信可导致CXL存储设备110与主机101之间的通信的性能降低以及时延增加。
相比之下,在一些实施例中,主机201、CXL存储设备210和CXL存储器220可被配置为不共享同一接口。例如,主机201和CXL存储设备210可通过第一接口IF1彼此通信,并且CXL存储设备210和CXL存储器220可通过第二接口IF2彼此通信。也就是说,CXL存储设备210、CXL存储器220和主机201可通过使用不同的接口(或链路)彼此通信。这样,CXL存储设备210与CXL存储器220之间的通信可不影响CXL存储设备110与主机201之间的通信。CXL存储设备210与CXL存储器220之间的通信可独立于CXL存储设备210与主机201之间的通信。由于在CXL存储设备210与CXL存储器220之间使用独立的链路,因此,提供了具有提高的性能的计算系统。
第一接口IF1和第二接口IF2可物理地彼此分离。第一接口IF1和第二接口IF2可使用CXL接口来实现。在一个实施例中,CXL接口IF_CXL可指示低时延和高带宽链路,该低时延和高带宽链路支持IO协议的动态协议复用、一致性、存储器访问,使得加速器、存储器装置或各种电子装置之间的各种连接是可行的。
在一个实施例中,与图1的存储装置13不同,CXL存储设备210可不包括用于存储或管理映射数据的单独的缓冲存储器。在这种情况下,CXL存储设备210可需要用于存储或管理映射数据的缓冲存储器。在一个实施例中,CXL存储器220的至少部分区域或全部区域可用作CXL存储设备210的缓冲存储器。在这种情况下,由CXL存储设备210的CXL存储控制器211管理的映射表可被存储在CXL存储器220中。例如,CXL存储器220的至少部分区域或全部区域可被CXL存储设备210分配用于CXL存储设备210的缓冲存储器(即,用于专用于CXL存储设备210的区域)。
在一个实施例中,CXL存储设备210可通过第二接口IF2访问CXL存储器220。例如,CXL存储设备210可将映射表存储在CXL存储器220的分配的区域中,或者可从CXL存储器120的分配的区域读取映射表。在CXL存储设备210的控制下,CXL存储器220可将数据(例如,映射数据)存储在缓冲存储器BFM中,或者可将存储在缓冲存储器BFM中的数据(例如,映射数据)发送给CXL存储设备210。
如参照图1所述,现有技术的存储装置13通过使用包括在其中的缓冲存储器13b来存储和管理映射数据。随着存储装置13的容量增大,映射数据的大小增大,从而导致包括在存储装置13中的缓冲存储器13b的容量增大。然而,由于包括在存储装置13中的缓冲存储器13b的结构和物理特性,对容量的增大存在限制;在这种情况下,需要缓冲存储器13b的设计改变或附加集成。
相比之下,根据一些实施例,CXL存储设备210可使用放置在CXL存储设备210外部的CXL存储器220的至少部分区域作为缓冲存储器。在这种情况下,因为CXL存储器220独立于CXL存储设备210被实现,所以CXL存储器220可使用高容量存储器来实现。如此,即使映射数据的大小由于CXL存储设备210的容量的增大而增大,映射数据也可由CXL存储器220正常地管理。
在一个实施例中,现有技术的存储装置13的存储控制器13a通过主机接口(诸如,PCIe或NVMe)与主机11通信,并且通过存储器接口(诸如,DDR接口或LPDDR接口)与缓冲存储器13b通信。也就是说,现有技术的存储装置13的存储控制器13a通过不同的接口(即,异构接口)与主机11和包括在存储装置13中的缓冲存储器13b通信。
相比之下,根据一些实施例,CXL存储设备210的CXL存储控制器211可通过第一接口IF1与主机201通信,并且可通过第二接口IF2与CXL存储器220(即,缓冲存储器)通信。因此,可使用不同的接口(或链路),使得CXL存储设备210与主机201之间的通信不与CXL存储设备210与CXL存储器220之间的通信冲突。这样,CXL存储设备210与CXL存储器220之间的通信可不影响CXL存储设备210与主机201之间的通信。
如上所述,CXL存储设备210和CXL存储器220可直接连接。主机201不可直接识别CXL存储器220。主机201不可直接访问CXL存储器220。主机201不可控制或管理CXL存储器220。相反,CXL存储设备210可控制或管理CXL存储器220。CXL存储设备210可被配置为控制CXL存储器220的总体操作。例如,CXL存储设备210可指示CXL存储器220执行初始化操作或断电操作。
下面,为了便于描述,假设主机201和CXL存储设备210通过第一接口IF1彼此通信,并且CXL存储设备210和CXL存储器220通过第二接口IF2彼此通信,并且所有的第一接口IF1和第二接口和IF2都使用CXL接口实现。然而,本公开不限于此。例如,主机201、CXL存储设备210和CXL存储器220可基于符合以下各项的各种计算接口来彼此通信:GEN-Z协议、NVLink协议、CCIX协议和开放CAPI协议。
图3B是根据一些实施例的详细示出图3A的计算系统的组件的框图。参照图3A和图3B,计算系统200可包括主机201、CXL存储设备210和CXL存储器220。
主机201可包括CXL主机接口(I/F)电路201a。CXL主机接口电路201a可包括第三端口PT3。CXL主机接口电路201a可通过第三端口PT3发送和接收信息(诸如,请求、数据、响应或信号)。第三端口PT3可以是被配置为发送和接收符合CXL或PCIe协议的物理信号的电路或物理层。CXL主机接口电路201a可通过第一接口IF1与CXL存储设备210通信。在一个实施例中,因为CXL存储器220未与第一接口IF1连接,所以主机201不可与CXL存储器220通信。
在一个实施例中,CXL存储设备210的配置可与现有技术的存储装置的配置不同。例如,现有技术的存储装置(例如,包括DRAM缓冲器的SSD)存储和管理包括在现有技术的存储装置中的DRAM缓冲器中的映射数据。在这种情况下,用于存储映射数据的高容量DRAM缓冲器应当被包括在现有技术的存储装置中。可选地,另一种类型的现有技术的存储装置(例如,无DRAM的SSD或无DRAM的存储卡)将全部映射数据存储在包括在现有技术的存储装置中的非易失性存储器(例如,NAND闪存)中,并且将映射数据的一部分加载并使用到SRAM缓冲器上。在这种情况下,为了加载映射数据,对其操作速度低于DRAM缓冲器的操作速度的非易失性存储器的访问被频繁地执行,从而降低了操作的性能。
相比之下,根据一些实施例的CXL存储设备210可不包括被配置为存储映射数据的单独的DRAM缓冲器。在这种情况下,可在放置在CXL存储设备210外部的CXL存储器220中存储和管理映射数据MD。如下面将描述的,因为CXL存储器220支持快速操作速度,所以CXL存储设备210可具有与现有技术的存储装置(例如,包括DRAM的存储装置)相同的性能。另外,因为CXL存储器220被放置在CXL存储设备210外部,所以可容易地应对CXL存储设备210的大量映射数据。
CXL存储设备210可包括CXL存储控制器211和非易失性存储器NVM。CXL存储控制器211可包括第一CXL存储设备接口(I/F)电路(CXL_S I/F1)211a、处理器211b、RAM 211c、闪存转换层(FTL)211d、纠错码(ECC)引擎211e、NAND接口(I/F)电路211f和第二CXL存储设备接口(I/F)电路(CXL_S I/F 2)211g。
第一CXL存储设备接口电路211a可与主机201连接。第一CXL存储设备接口电路211a可包括第一端口PT1。第一CXL存储设备接口电路211a可通过第一端口PT1将信息(诸如,请求、数据、响应或信号)发送给主机201和从主机201接收信息(诸如,请求、数据、响应或信号)。第一端口PT1可以是被配置为发送和接收符合CXL或PCIe协议的物理信号的电路或物理层。第一CXL存储设备接口电路211a可通过第一接口IF1与主机201通信。
第二CXL存储设备接口电路211g可与CXL存储器220连接。第二CXL存储设备接口电路211g可包括第二端口PT2。第二端口PT2可以是用于CXL存储器220的通信的专用端口。第二CXL存储设备接口电路211g可通过第二端口PT2将信息(诸如,请求、数据、响应或信号)发送给CXL存储器220和从CXL存储器220接收信息(诸如,请求、数据、响应或信号)。第二端口PT2可以是被配置为发送和接收符合CXL或PCIe协议的物理信号的电路或物理层。第二CXL存储设备接口电路211g可通过第二接口IF2与CXL存储器220通信。
处理器211b可被配置为控制CXL存储控制器211的总体操作。RAM 211c可用作CXL存储控制器211的工作存储器或缓冲存储器。在一个实施例中,RAM 211c可以是SRAM,并且可用作CXL存储设备210的读取缓冲器和写入缓冲器。在一个实施例中,如下面将描述的,RAM 211c可被配置为临时存储从CXL存储器220读取的映射数据MD或映射数据MD的一部分。
FTL 211d可执行用于有效地使用非易失性存储器NVM的各种管理操作。例如,FTL211d可基于映射数据(或映射表)执行由主机201管理的逻辑块地址与在非易失性存储器NVM中使用的物理块地址之间的地址转换。FTL211d可对非易失性存储器NVM执行坏块管理操作。FTL 211d可对非易失性存储器NVM执行磨损均衡操作。FTL 211d可对非易失性存储器NVM执行垃圾收集操作。
在一个实施例中,FTL 211d可以以硬件、固件或软件的形式或以它们的组合的形式来实现。在FTL 211d以固件或软件的形式实现的情况下,与FTL211d相关联的程序代码可被存储在RAM 211c中并且可由处理器211b驱动。在FTL 211d由硬件实现的情况下,被配置为执行以上管理操作的硬件组件可在CXL存储控制器211中实现。
ECC引擎211e可对从非易失性存储器NVM读取的数据执行错误检测和纠正。例如,ECC引擎211e可生成将被存储在非易失性存储器NVM中的用户数据UD的奇偶校验位,并且由此生成的奇偶校验位可与用户数据UD一起被存储在非易失性存储器NVM中。当从非易失性存储器NVM读取用户数据UD时,ECC引擎211e可通过使用与用户数据UD一起从非易失性存储器NVM读取的奇偶校验位来检测和纠正用户数据UD的错误。
NAND接口电路211f可控制非易失性存储器NVM,使得数据被存储在非易失性存储器NVM中或者从非易失性存储器NVM读取数据。在一个实施例中,NAND接口电路211f可被实现为符合标准协议(诸如,切换接口或ONFI)。例如,非易失性存储器NVM可包括多个NAND闪存装置;在基于切换接口实现NAND接口电路211f的情况下,NAND接口电路211f通过多个通道与多个NAND闪存装置通信。多个NAND闪存装置可通过多通道、多路结构与所述多个通道连接。
NAND接口电路211f可通过多个通道将芯片使能信号/CE、命令锁存使能信号CLE、地址锁存使能信号ALE、读取使能信号/RE和写入使能信号/WE发送给多个NAND闪存装置。NAND接口电路211f和每个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”时,芯片使能信号/CE保持低状态“L”。在命令输入模式期间,NAND接口电路211f可控制信号线,使得命令锁存使能信号CLE具有高电平“H”,地址锁存使能信号ALE具有低电平“L”,写入使能信号/WE在高电平“H”与低电平“L”之间切换,并且读取使能信号/RE具有高电平“H”。在命令输入模式期间,NAND接口电路211f可与写入使能信号/WE的上升沿↑同步地通过数据信号DQx将命令CMD发送给NAND闪存装置。NAND闪存装置可响应于写入使能信号/WE的上升沿↑而从数据信号DQx识别命令CMD。在地址输入模式期间,NAND接口电路211f可控制信号线,使得命令锁存使能信号CLE具有低电平“L”,地址锁存使能信号ALE具有高电平“H”,写入使能信号/WE在高电平“H”与低电平“L”之间切换,并且读取使能信号/RE具有高电平“H”。在地址输入模式期间,NAND接口电路211f可与写入使能信号/WE的上升沿↑同步地通过数据信号DQx将地址ADDR发送给NAND闪存装置。NAND闪存装置可响应于写入使能信号/WE的上升沿↑而从数据信号DQx识别地址ADDR。在一个实施例中,地址ADDR可以是与NAND闪存装置的物理块地址对应的值。
在数据输入模式期间,NAND接口电路211f可控制信号线,使得命令锁存使能信号CLE具有低电平“L”,地址锁存使能信号ALE具有低电平“L”,写入使能信号/WE具有高电平“H”,读取使能信号/RE具有高电平“H”,并且数据选通信号DQS在高电平“H”与低电平“L”之间切换。在数据输入模式期间,NAND接口电路211f可与数据选通信号DQS的上升沿↑和下降沿↓同步地通过数据信号DQx将数据“DATA”发送给NAND闪存装置。NAND闪存装置可响应于数据选通信号DQS的上升沿↑和下降沿↓而从数据信号DQx识别数据“DATA”。
在数据输出模式期间,NAND接口电路211f可控制信号线:命令锁存使能信号CLE具有低电平“L”,地址锁存使能信号ALE具有低电平“L”,写入使能信号/WE具有高电平“H”,并且读取使能信号/RE在高电平“H”与低电平“L”之间切换。在数据输出模式期间,NAND闪存装置可响应于读取使能信号/RE而生成在高电平“H”与低电平“L”之间切换的数据选通信号DQS。NAND闪存装置可与数据选通信号DQS的上升沿↑和下降沿↓同步地通过数据信号DQx将数据“DATA”发送给NAND接口电路211f。NAND接口电路211f可响应于数据选通信号DQS的上升沿↑和下降沿↓而从数据信号DQx识别数据“DATA”。
上述切换接口是示例,并且本公开不限于此。
非易失性存储器NVM可在CXL存储控制器211的控制下存储或输出用户数据UD。非易失性存储器NVM可在CXL存储控制器211的控制下存储或输出映射数据MD。在一个实施例中,存储在非易失性存储器NVM中的映射数据MD可包括与存储在非易失性存储器NVM中的全部用户数据UD对应的映射信息。存在于非易失性存储器NVM中的映射数据MD可在CXL存储设备210的初始化操作中被存储在CXL存储器220中。
CXL存储设备210可执行与CXL存储器220的直接通信。CXL存储设备210可通过第二端口PT2发送和接收信息(诸如,请求、数据、响应或信号)。例如,CXL存储设备210和CXL存储器220可在不使用中间装置(诸如,交换机或路由器)的情况下直接连接。
CXL存储器220可包括CXL存储器控制器221和缓冲存储器BFM。CXL存储器控制器221可包括CXL存储器接口(I/F)电路221a、处理器221b、存储器管理器221c和缓冲存储器接口(I/F)电路221d。
CXL存储器接口电路221a可与CXL存储设备210连接。CXL存储器接口电路221a可包括第四端口PT4。CXL存储器接口电路221a可通过第四端口PT4将信息(诸如,请求、数据、响应或信号)发送给CXL存储设备210和从CXL存储设备210接收信息(诸如,请求、数据、响应或信号)。第四端口PT4可以是被配置为发送和接收符合CXL或PCIe协议的物理信号的电路或物理层。
CXL存储器接口电路221a可执行与CXL存储设备210的直接通信。CXL存储器接口电路221a可通过第二接口IF2与CXL存储设备210通信。CXL存储器接口电路221a不可与计算系统200的除CXL存储设备210之外的任何其他装置通信。例如,CXL存储器接口电路221a不可与主机201通信。
处理器221b可被配置为控制CXL存储器控制器221的总体操作。存储器管理器221c可被配置为管理缓冲存储器BFM。例如,存储器管理器221c可被配置为将来自CXL存储设备210的存储器地址(例如,逻辑地址或虚拟地址)转换为缓冲存储器BFM的物理地址。在一个实施例中,作为用于管理CXL存储器220的存储区域的地址的存储器地址可以是由CXL存储设备210指定和管理的逻辑地址或虚拟地址。
缓冲存储器接口电路221d可控制缓冲存储器BFM,使得数据被存储在缓冲存储器BFM中或者从缓冲存储器BFM读取数据。在一个实施例中,缓冲存储器接口电路221d可被实现为符合标准协议(诸如,DDR接口或LPDDR接口)。
在CXL存储器控制器221的控制下,缓冲存储器BFM可存储数据或者可输出所存储的数据。在一个实施例中,缓冲存储器BFM可被配置为存储在CXL存储设备210中使用的映射数据MD。当计算系统200被初始化或CXL存储设备210被初始化时,映射数据MD可从CXL存储设备210传送到CXL存储器220。
CXL存储器220可由CXL存储设备210控制或管理。例如,CXL存储设备210可作为关于CXL存储器220的主装置来操作,并且CXL存储器220可作为从装置来操作。
如上所述,根据一些实施例的CXL存储设备210可将用于管理非易失性存储器NVM的映射数据MD存储在与其直接连接的CXL存储器220中。之后,当CXL存储设备210根据主机201的请求执行读取操作时,CXL存储设备210可通过第二接口IF2从CXL存储器220读取映射数据MD的至少一部分,并且可基于由此读取的映射数据MD的至少一部分来执行读取操作。在一些实施例中,当CXL存储设备210根据主机201的请求执行写入操作时,CXL存储设备210可对非易失性存储器NVM执行写入操作并且可更新映射数据MD。在这种情况下,可首先将更新后的映射数据MD存储在CXL存储控制器211的RAM 211c中,并且可通过第二接口IF2将存储在RAM 211c中的映射数据MD传送给CXL存储器220的缓冲存储器BFM。
在一个实施例中,CXL存储器220中的缓冲存储器BFM的至少部分区域或全部区域可被分配用于CXL存储设备210的专用区域。CXL存储器220的全部区域可以是不能被主机201访问的区域。
在一个实施例中,主机201和CXL存储设备210可通过使用作为输入/输出协议的CXL.io来彼此通信。CXL.io可具有基于PCIe的非一致性输入/输出协议。主机201和CXL存储设备210可通过使用CXL.io来彼此交换用户数据或各种信息。
在一个实施例中,CXL存储设备210和CXL存储器220可通过使用CXL.io或作为存储器访问协议的CXL.mem来彼此通信。CXL.mem可以是支持存储器访问的存储器访问协议。CXL存储设备210可通过使用CXL.mem或CXL.io来访问CXL存储器220的部分区域(例如,存储映射数据MD的区域或CXL存储设备专用区域)。提供包括CXL.io和CXL.mem的以上访问类型作为示例,并且本公开不限于此。
在一个实施例中,CXL存储设备210和CXL存储器220可安装在基于CXL接口的物理端口(例如,PCIe物理端口)中。在一个实施例中,CXL存储设备210和CXL存储器220可基于E1.S、E1.L、E3.S、E3.L或PCIe AIC(CEM)形状因子来实现。在一些实施例中,CXL存储设备210和CXL存储器220可基于U.2形状因子、M.2形状因子、各种不同类型的基于PCIe的形状因子、或各种不同类型的小形状因子来实现。CXL存储设备210和CXL存储器220可使用各种类型的形状因子来实现,并且可支持能够安装在物理端口中(或添加到物理端口)或从物理端口移除的热插拔的功能。
如上所述,CXL存储设备210可包括第一端口PT1和第二端口PT2。也就是说,CXL存储设备210可具有多端口。CXL存储设备210可通过第二端口PT2与CXL存储器220通信。CXL存储设备210和CXL存储器220可通过使用CXL直连(CXL Direct)来连接。CXL存储设备210和CXL存储器220可通过使用CXL专用通路(或专用链路)来提高性能。
图4是示出根据一些实施例的图3B的计算系统的初始化操作或上电操作的流程图。参照图3B和图4,在操作PUP-S10中,计算系统200可被上电。当计算系统200被上电时,主机201可将关于上电或初始化开始的信息发送给CXL存储设备210。CXL存储设备210可响应于上电或初始化开始信息来执行初始化操作。CXL存储设备210可将上电或初始化开始信息发送给CXL存储器220。CXL存储器220可响应于上电或初始化开始信息而执行初始化操作。
在操作PUP-S11中,CXL存储设备210可检查存储设备容量(即,非易失性存储器NVM的容量)。例如,CXL存储设备210可响应于关于上电或初始化开始的信息来检查非易失性存储器NVM的存储设备容量。
在操作PUP-S12中,CXL存储器220可检查存储器容量(即,缓冲存储器BFM的容量)。例如,CXL存储器220可响应于上电或初始化开始信息来检查缓冲存储器BFM的容量。
主机201可通过操作PUP-S21和操作PUP-S22来识别CXL存储设备210的信息。例如,在操作PUP-S21中,主机201可通过CXL主机接口电路201a(或第三端口PT3)发出用于识别CXL存储设备210的装置信息的第一装置信息请求REQ_id1。主机201可将第一装置信息请求REQ_id1发送给CXL存储设备210。主机201可通过第一接口IF1将第一装置信息请求REQ_id1发送给CXL存储设备210。CXL存储设备210可通过第一端口PT1(或第一CXL存储设备接口电路211a)接收第一装置信息请求REQ_id1。
在操作PUP-S22中,CXL存储设备210可响应于由此接收到的第一装置信息请求REQ_id1而通过第一存储设备接口电路211a(或第一端口PT1)输出第一装置信息响应REP_id1。CXL存储设备210可将第一装置信息响应REP_id1发送给主机201。主机201可通过第一接口IF1接收第一装置信息响应REP_id1。
主机201可响应于由此接收到的第一装置信息响应REP_id1来识别CXL存储设备210的装置信息。在一个实施例中,第一装置信息响应REP_id1可包括关于CXL存储设备210的装置类型和存储设备容量的信息。
CXL存储设备210可通过操作PUP-S31和操作PUP-S32来识别CXL存储器220的信息。例如,在操作PUP-S31中,CXL存储设备210可通过第二CXL存储设备接口电路211g(或第二端口PT2)发出用于识别CXL存储器220的装置信息的第二装置信息请求REQ_id2。CXL存储设备210可将第二装置信息请求REQ_id2发送给CXL存储器220。CXL存储设备210可通过第二接口IF2将第二装置信息请求REQ_id2发送给CXL存储器220。CXL存储器220可通过第四端口PT4(或CXL存储器接口电路221a)接收第二装置信息请求REQ_id2。
在操作PUP-S32中,CXL存储器220可响应于由此接收到的第二装置信息请求REQ_id2而通过CXL存储器接口电路221a输出第二装置信息响应REP_id2。CXL存储器220可通过第二接口IF2将第二装置信息响应REP_id2发送给CXL存储设备210。CXL存储设备210可通过第二CXL存储设备接口电路211g(或第二端口PT2)接收第二装置信息响应REP_id2。
CXL存储设备210可响应于由此接收到的第二装置信息响应REP_id2来识别CXL存储器220的装置信息。在一个实施例中,第二装置信息响应REP_id2可包括关于CXL存储器220的装置类型和存储器容量的信息。
如上所述,主机201可通过操作PUP-S21和操作PUP-S22来识别关于CXL存储设备210的装置类型(例如,它是否是存储设备)的信息。CXL存储设备210可通过操作PUP-S31和操作PUP-S32来识别关于CXL存储器220的装置类型(例如,它是否是存储器)和容量的信息。也就是说,主机201可仅识别CXL存储设备210并且不可识别CXL存储器220。CXL存储器220可不直接与主机201通信。CXL存储器220可以是独立于主机201的装置。
在一些实施例中,CXL存储设备210可通过操作PUP-S41至操作PUP-S44将CXL存储器220的至少部分区域分配用于专用于CXL存储设备210的区域。在一些实施例中,CXL存储器220的全部区域可被分配用于CXL存储设备210的专用区域。例如,在操作PUP-S41中,CXL存储设备210可基于CXL存储设备210的存储设备容量来确定缓冲器容量。在一些实施例中,CXL存储设备210可基于CXL存储设备210的存储设备容量或CXL存储器220的存储器容量来确定缓冲器容量。CXL存储设备210可将与确定的缓冲器容量对应的CXL存储器220的区域分配用于CXL存储设备210的专用区域。CXL存储设备210可确定CXL存储器220的存储器地址区域。
CXL存储设备210可存储关于被分配用于CXL存储设备210的专用区域的区域的存储器地址(例如,逻辑地址范围或虚拟地址范围)的信息。CXL存储设备210可识别CXL存储器220的专用于CXL存储设备210的区域。
在操作PUP-S42中,CXL存储设备210可通过第二CXL存储设备接口电路211g(或第二端口PT2)输出写入请求REQ_WR。CXL存储设备210可通过第二接口IF2将写入请求REQ_WR发送给CXL存储器220。CXL存储器220可响应于写入请求REQ_WR而执行写入操作。
在操作PUP-S43中,CXL存储器220可通过CXL存储器接口电路221a(或第四端口PT4)输出提供写入请求被完成的通知的写入响应REP_WR。CXL存储器220可通过第二接口IF2将写入响应REP_WR发送给CXL存储设备210。CXL存储设备210可接收写入响应REP_WR,并且可响应于写入响应REP_WR而识别出写入操作在CXL存储器220上被完全地执行。
在一个实施例中,写入请求REQ_WR可表示用于将存在于CXL存储设备210的非易失性存储器NVM中的映射数据MD存储在CXL存储器220的专用区域中的请求。也就是说,写入请求REQ_WR可包括关于映射数据MD和专用区域的地址信息。通过操作PUP-S42和操作PUP-S43,存在于CXL存储设备210中的映射数据MD可被存储在CXL存储器220的专用区域中。
在操作PUP-S44中,CXL存储设备210可通过第一CXL存储设备接口电路211a(或第一端口PT1)输出确认信息ACK_md。CXL存储设备210可通过第一接口IF1将确认信息ACK_md发送到主机201。主机201可接收确认信息ACK_md。响应于确认信息ACK_md,主机201可识别出CXL存储设备210将映射数据MD存储在CXL存储器220中。在一些实施例中,主机201可响应于确认信息ACK_md而识别出CXL存储设备210准备好执行正常操作。之后,主机201、CXL存储设备210和CXL存储器220可执行正常操作(例如,读取操作或写入操作)。
图5是用于描述根据一些实施例的图3B的计算系统存储映射数据的操作的示图。为了便于描述并且为了附图简洁,概念性地示出主机201、CXL存储设备210和CXL存储器220的组件,并且省略了一些不必要的组件。
参照图3B至图5,CXL存储设备210可将CXL存储器220的全部区域分配用于CXL存储设备210的专用区域。在这种情况下,CXL存储器220的专用区域可由CXL存储设备210访问,并且可用于存储CXL存储设备210的映射数据。
例如,如图5中所示,CXL存储设备210的非易失性存储器NVM可存储用户数据UD和映射数据MD。如上所述,因为CXL存储设备210不包括单独的缓冲存储器,所以CXL存储设备210可需要将要存储映射数据MD的缓冲区域。根据一些实施例,CXL存储设备210的映射数据MD可被存储在CXL存储器220的区域中。在这种情况下,CXL存储器220的专用区域可由CXL存储设备210通过第二接口IF2来访问。
在一个实施例中,CXL存储器220的全部区域可以是可由CXL存储设备210访问或由CXL存储设备210管理的区域。CXL存储器220的全部区域可以是不能由主机201访问的区域,或者可以是不由主机201管理的区域。在这种情况下,CXL存储设备210可通过第二端口PT2访问CXL存储器220的区域。CXL存储设备210可通过第二接口IF2访问CXL存储器220的区域。
因为CXL存储器220与CXL存储设备210直接连接,所以主机201不可通过第一接口IF1访问CXL存储器220的区域。也就是说,CXL存储设备210能够通过第二接口IF2访问CXL存储器220,而主机201不能访问CXL存储器220。
如上所述,CXL存储设备210可将CXL存储器220的全部区域分配用于CXL存储设备210的专用区域。在这种情况下,CXL存储设备210执行对CXL存储器220的区域的访问,而主机201不可执行对CXL存储器220的全部区域的访问。在一个实施例中,可通过第二接口IF2来执行CXL存储设备210对CXL存储器220的访问。
图6是用于描述根据一些实施例的将映射数据存储在CXL存储器中的操作的示图。在一个实施例中,存在于CXL存储设备210中的映射数据MD可通过各种方式从CXL存储设备210传送并存储到CXL存储器220。
作为示例,CXL存储设备210和CXL存储器220可基于对等(P2P)方式来交换映射数据MD。例如,如图6中所示,CXL存储设备210的CXL存储控制器211可包括直接存储器访问(DMA)引擎。包括在CXL存储控制器211中的DMA引擎可在不受主机201的干扰或控制的情况下将存在于非易失性存储器NVM中的映射数据MD传送给CXL存储器220。也就是说,可基于P2P方式将映射数据MD从CXL存储设备210传送给CXL存储器220。
提供将映射数据从CXL存储设备210传送给CXL存储器220的以上方式作为示例,并且本公开不限于此。可理解,可使用第二接口IF2以各种方式实现映射数据从CXL存储设备210到CXL存储器220的传送。在一个实施例中,映射数据从CXL存储器220到CXL存储设备210的传送(即,备份或刷写(flush))也可以以类似于以上方式的方式来实现。
图7是示出根据一些实施例的图3A的CXL存储设备的读取操作。在一个实施例中,可在执行图4的初始化操作之后(即,在将CXL存储设备210的映射数据MD被存储在CXL存储器220的区域中之后)执行根据图7的流程图的CXL存储设备210的读取操作。
参照图3A、图3B和图7,在操作RD-S10中,主机201可通过CXL主机接口电路201a输出第一读取请求REQ_RD1。主机201可通过第一接口IF1将第一读取请求REQ_RD1发送给CXL存储设备210。在一个实施例中,第一读取请求REQ_RD1可表示用于读取存储在CXL存储设备210中的第一用户数据UD1的请求,并且可包括与第一用户数据UD1对应的第一逻辑块地址LBA1。CXL存储设备210可通过第一CXL存储设备接口电路211a(或第一端口PT1)接收第一读取请求REQ_RD1。
在操作RD-S21中,CXL存储设备210可响应于第一读取请求REQ_RD1而通过第二CXL存储设备接口电路211g(或第二端口PT2)输出第二读取请求REQ_RD2。CXL存储设备210可通过第二接口IF2将第二读取请求REQ_RD2发送给CXL存储器220。在一个实施例中,第二读取请求REQ_RD2可表示用于读取与第一逻辑块地址LBA1对应的第一映射数据MD1的请求。也就是说,第二读取请求REQ_RD2可表示用于从CXL存储器220读取第一映射数据MD1的请求。第二读取请求REQ_RD2可包括关于指示存储第一映射数据MD1的区域的CXL存储器220的存储器地址(例如,逻辑地址或虚拟地址)的信息。
在操作RD-S22中,CXL存储器220可响应于第二读取请求REQ_RD2而读取第一映射数据MD1。例如,CXL存储器220的CXL存储器控制器221可从与包括在第二读取请求REQ_RD2中的存储器地址(例如,逻辑地址或虚拟地址)对应的区域读取第一映射数据MD1。在一个实施例中,CXL存储器控制器221可通过使用缓冲存储器接口电路221d从缓冲存储器BFM读取第一映射数据MD1。
在一个实施例中,在操作RD-S22中读取的第一映射数据MD1可以是全部映射数据MD的一部分,并且可以是与第一逻辑块地址LBA1对应的映射数据。也就是说,第一映射数据MD1可包括关于与第一逻辑块地址LBA1对应的第一物理块地址PBA1的信息。
在操作RD-S23中,CXL存储器220可通过CXL存储器接口电路221a输出包括第一映射数据MD1的第二读取响应REP_RD2。CXL存储器220可通过第二接口IF2将第二读取响应REP_RD2发送给CXL存储设备210。CXL存储设备210可通过第二CXL存储设备接口电路211g(或第二端口PT2)接收第二读取响应REP_RD2。在一个实施例中,包括在由此接收到的第二读取响应REP_RD2中的第一映射数据MD1可被存储或临时存储在CXL存储控制器211的RAM211c中。
在一个实施例中,当与第一逻辑块地址LBA1对应的第一映射数据MD1已经存在于CXL存储控制器211的RAM 211c中时,可省略操作RD-S21至操作RD-S23(即,用于从CXL存储器220加载第一映射数据MD1的操作)。
在操作RD-S31中,CXL存储设备210可基于第一映射数据MD1搜索与第一逻辑块地址LBA1对应的第一物理块地址PBA1。例如,CXL存储控制器211的FTL 211d可基于第一映射数据MD1搜索与第一逻辑块地址LBA1对应的第一物理块地址PBA1。
在操作RD-S32中,CXL存储设备210可从非易失性存储器NVM读取存在于与第一物理块地址PBA1对应的区域中的第一用户数据UD1。例如,CXL存储控制器211可从非易失性存储器NVM的区域读取与第一物理块地址PBA1对应的第一用户数据UD1。在一个实施例中,CXL存储控制器211可通过使用NAND接口电路211f从非易失性存储器NVM读取第一用户数据UD1。
在操作RD-S33中,CXL存储设备210可通过第一CXL存储设备接口电路211a(或第一端口PT1)输出对第一读取请求REQ_RD1的第一读取响应REP_RD1。CXL存储设备210可通过第一接口IF1将第一读取响应REP_RD1发送给主机201。主机201可接收第一读取响应REP_RD1。在一个实施例中,第一读取响应REP_RD1可包括通过第一读取请求REQ_RD1请求的第一用户数据UD1。主机201可通过第一读取响应REP_RD1获得第一用户数据UD1。
在一个实施例中,可基于CXL.io来执行对应于主机201与CXL存储设备210之间的通信的操作RD-S10和操作RD-S33,并且可基于CXL.mem来执行对应于CXL存储设备210与CXL存储器220之间的通信的操作RD-S21和操作RD-S23。然而,本公开不限于此。例如,CXL存储设备210与CXL存储器220之间的通信以及主机201与CXL存储设备210之间的通信可彼此独立地执行。也就是说,主机201、CXL存储设备210和CXL存储器220之间的通信可不通过公共接口(或公共链路或公共交换机)来执行。
图8是示出根据一些实施例的图3A的CXL存储设备的写入操作。在一个实施例中,可在执行图4的初始化操作之后(即,在CXL存储设备210的映射数据MD被存储在CXL存储器220的专用区域中之后)执行根据图8的流程图的CXL存储设备210的写入操作。
参照图3A、图3B和图8,在操作WR-S10中,主机201可通过CXL主机接口电路201a输出第一写入请求REQ_WR1。主机201可通过第一接口IF1将第一写入请求REQ_WR1发送给CXL存储设备210。CXL存储设备210可通过第一CXL存储设备接口电路211a(或第一端口PT1)接收第一写入请求REQ_WR1。在一个实施例中,第一写入请求REQ_WR1可表示用于将第一用户数据UD1写入CXL存储设备210中的请求。
在操作WR-S21中,CXL存储设备210可响应于第一写入请求REQ_WR1而确定要写入第一用户数据UD1的存储器块。例如,CXL存储控制器211的FTL 211d可管理关于来自包括在非易失性存储器NVM中的存储器块之中的空闲的、能够被写入的或能够被分配的存储器块的块信息。FTL 211d可基于块信息来选择要写入第一用户数据UD1的存储块。
在操作WR-S22中,CXL存储设备210可将第一用户数据UD1写入所选择的存储器块中。例如,CXL存储控制器211可控制非易失性存储器NVM,使得第一用户数据UD1被写入所选择的存储器块中。在一个实施例中,CXL存储控制器211可通过使用NAND接口电路211f将第一用户数据UD1写入非易失性存储器NVM中。
当第一用户数据UD1被完全写入非易失性存储器NVM中时(即,当对非易失性存储器NVM的编程操作通过时),在操作WR-S23中,CXL存储设备210可更新第一映射数据MD1或者可生成第一映射数据MD1。例如,第一映射数据MD1可包括指示与第一逻辑块地址LBA1对应的第一用户数据UD1被存储在非易失性存储器NVM的与第一物理块地址PBA1对应的区域中的信息。也就是说,CXL存储设备210可生成指示与第一逻辑块地址LBA1对应的第一用户数据UD1被存储在与第一物理块地址PBA1对应的区域中的第一映射数据MD1。
在操作WR-S24中,CXL存储设备210可通过第一CXL存储设备接口电路211a(或第一端口PT1)发送对第一写入请求REQ_WR1的第一写入响应REP_WR1。CXL存储设备210可通过第一接口IF1将第一写入响应REP_WR1发送给主机201。主机201可接收第一写入响应REP_WR1。响应于第一写入响应REP_WR1,主机201可确定与第一写入请求REQ_WR1对应的第一用户数据UD1被正常地存储在CXL存储设备210中。
在由主机201请求的对CXL存储设备210的写入操作被完成之后,CXL存储设备210可执行映射数据更新操作。例如,在操作WR-S31中,CXL存储设备210可通过第二CXL存储设备接口电路211g(或第二端口PT2)输出第二写入请求REQ_WR2。CXL存储设备210可通过第二接口IF2将第二写入请求REQ_WR2发送给CXL存储器220。
在一个实施例中,第二写入请求REQ_WR2可表示用于将在存储第一用户数据UD1时更新或生成的第一映射数据MD1写入CXL存储器220中的请求。第二写入请求REQ_WR2可包括要存储第一映射数据MD1的存储器地址。包括在第二写入请求REQ_WR2中的存储器地址可指示CXL存储器220的专用于CXL存储设备210的区域。
在操作WR-S32中,CXL存储器220可响应于第二写入请求REQ_WR2而将第一映射数据MD1存储在对应区域中。例如,CXL存储器220可将第一映射数据MD1写入与包括在第二写入请求REQ_WR2中的存储器地址对应的区域中。
在操作WR-S33中,CXL存储器220可通过CXL存储器接口电路221a输出对第二写入请求REQ_WR2的第二写入响应REP_WR2。CXL存储器220可通过第二接口IF2将第二写入响应REP_WR2发送给CXL存储设备210。CXL存储设备210可通过第二CXL存储设备接口电路211g(或第二端口PT2)接收第二写入响应REP_WR2。
在一个实施例中,每当对CXL存储设备210的写入操作被完成时,操作WR-S31至操作WR-S33(即,将映射数据存储在CXL存储器220中的操作或更新映射数据的操作)可被执行。在一些实施例中,当更新后的或新生成的映射数据的大小达到给定值时,可执行操作WR-S31至操作WR-S33。在一些实施例中,可周期性地执行操作WR-S31至操作WR-S33。然而,本公开不限于此。例如,根据各种操作策略,可将在CXL存储设备210的操作期间生成或更新的映射数据存储在CXL存储器220中。
图9是示出根据一些实施例的图3A的计算系统的断电操作的流程图。在一个实施例中,将参照图9描述计算系统的断电操作,但是本公开不限于此。例如,可理解,图9的操作方法适用于包括在计算系统中的各种组件(例如,主机、CXL存储设备、CXL存储器和CXL交换机)中的每个的断电操作或重置操作。
参照图3A和图9,在操作POF-S10中,主机201可通过CXL主机接口电路201a输出断电信息IFM_off。主机201可通过第一接口IF1将断电信息IFM_off发送给CXL存储设备210。例如,主机201可识别或检测关于计算系统200的断电的信息。CXL存储设备210可通过第一CXL存储设备接口电路211a(或第一端口PT1)接收允许CXL存储设备210执行断电操作的断电信息IFM_off。
在操作POF-S21中,CXL存储设备210可响应于断电信息IFM_off而通过第二CXL存储设备接口电路211g(或第二端口PT2)输出读取请求REQ_RD。CXL存储设备210可通过第二接口IF2将读取请求REQ_RD发送给CXL存储器220。CXL存储器220可接收读取请求REQ_RD。在一个实施例中,操作POF-S21中的读取请求REQ_RD可表示用于读取存储在CXL存储器220中的全部映射数据MD的请求。读取请求REQ_RD可包括存储映射数据MD的区域的存储器地址。
在操作POF-S22中,CXL存储器220可响应于读取请求REQ_RD而读取映射数据MD。例如,CXL存储器220可基于包括在读取请求REQ_RD中的存储器地址从缓冲存储器BFM读取映射数据MD。
在操作POF-S23中,CXL存储器220可通过CXL存储器接口电路221a输出对读取请求REQ_RD的读取响应REP_RD。CXL存储器220可通过第二接口IF2将读取响应REP_RD发送给CXL存储设备210。CXL存储设备210可通过第二CXL存储设备接口电路211g(或第二端口PT2)接收读取响应REP_RD。
在操作POF-S24中,CXL存储设备210可将包括在读取响应REP_RD中的映射数据MD写入非易失性存储器NVM中。在一个实施例中,CXL存储设备210可将映射数据MD存储在非易失性存储器NVM的给定区域中。
在与CXL存储设备210相关联的映射数据MD被存储在非易失性存储器NVM中之后,在操作POF-S31中,CXL存储设备210可通过第一CXL存储设备接口电路211a(或第一端口PT1)输出对断电信息IFM_off的响应ACK_off。CXL存储设备210可通过第一接口IF1将响应ACK_off发送给主机201。主机201可接收响应ACK_off,并且基于响应ACK_off来识别存在于CXL存储器220中的映射数据MD被正常地存储在CXL存储设备210中。
之后,在操作POF-S32中,主机201、CXL存储设备210和CXL存储器220可被断电。例如,提供给主机201、CXL存储设备210和CXL存储器220的电力可被中断。
提供参照图9描述的断电操作作为示例,并且本公开不限于此。例如,在图9的实施例中,在CXL存储设备210将存在于CXL存储器220中的映射数据MD存储在非易失性存储器NVM中之后,CXL存储设备210可通过将响应ACK_off发送给主机201(即,中断方式)来提供映射数据MD被完全备份的通知。在一些实施例中,在将存在于CXL存储器220中的映射数据MD存储在非易失性存储器NVM中之后,CXL存储设备210可将特定寄存器的值设置为给定值。主机201可通过周期性地检查CXL存储设备210的特定寄存器的值来检查映射数据MD是否被完全备份(轮询方式)。在一些实施例中,CXL存储设备210可被配置为在从主机201接收到断电信息IFM_off的时间点起的给定时间内完成对映射数据MD的备份操作(超时方式)。如上所述,CXL存储设备210可通过各种方式中的至少一种将关于映射数据MD的备份完成的信息传送给主机201。
在一个实施例中,可根据CXL存储设备210的操作方式来改变断电操作。例如,当CXL存储设备210执行写入操作时,CXL存储设备210可对非易失性存储器NVM执行编程操作,并且因此可更新映射数据MD。
在一个实施例中,可仅在CXL存储器220上执行更新映射数据MD的操作。在这种情况下,存储在CXL存储器220中的映射数据MD可以是最新信息,并且存储在非易失性存储器NVM中的映射数据MD可不是最新信息。也就是说,当仅在CXL存储器220上执行更新映射数据MD的操作时,仅在CXL存储器220中维护关于映射数据MD的最新信息;为此,当CXL存储设备210、CXL存储器220或计算系统200断电时,需要从CXL存储器220刷写、备份或转储映射数据MD的操作。在一个实施例中,映射数据(MD)更新操作可首先针对存储在非易失性存储器NVM中的映射数据MD执行,然后可通过后台操作针对存储在CXL存储器220中的映射数据MD执行。在这种情况下,因为保证存储在非易失性存储器NVM中的映射数据MD是最新信息,所以当CXL存储设备210、CXL存储器220或计算系统200断电时,可不需要从CXL存储器220刷写、转储或备份映射数据MD的操作。
在一个实施例中,映射数据更新操作可首先针对存储在CXL存储器220中的映射数据MD执行,然后可通过后台操作针对存储在非易失性存储器NVM中的映射数据MD执行。在这种情况下,存储在CXL存储器220中的映射数据MD可以是最新信息,并且存储在非易失性存储器NVM中的映射数据MD可不是最新信息。这样,当CXL存储设备210、CXL存储器220或计算系统200断电时,CXL存储器220的映射数据MD的至少一部分必须备份到CXL存储设备210的非易失性存储器NVM。在一个实施例中,要备份到非易失性存储器NVM的映射数据MD的至少一部分可以是未被存储在非易失性存储器NVM中的最新映射数据MD。在一个实施例中,CXL存储设备210可管理或存储指示存储在非易失性存储器NVM中的映射数据MD是最新信息的标志信息或表信息。
如上所述,当CXL存储设备210、CXL存储器220或计算系统200断电时,根据管理映射数据MD的方式(即,根据管理最新信息的位置),映射数据MD可选择性地从CXL存储器220刷写、备份或转储到CXL存储设备210。
图10是示出应用根据一些实施例的存储系统的计算系统的示图。参照图10,计算系统300可包括CXL交换机SW_CXL、主机301、CXL存储设备310和CXL存储器320。图10中示出的主机301、CXL存储设备310和CXL存储器320与图3B中示出的主机201、CXL存储设备210和CXL存储器220类似或相同,因此,将省略重复描述以避免冗余。
CXL存储设备310可包括CXL存储控制器311和非易失性存储器NVM。图10中示出的CXL存储控制器311和非易失性存储器NVM与图3B中示出的CXL存储控制器211和非易失性存储器NVM类似或相同,因此,将省略重复描述以避免冗余。
CXL存储器320可包括CXL存储器控制器321和缓冲存储器BFM。图10中示出的CXL存储器控制器321和缓冲存储器BFM与图3B中示出的CXL存储器控制器221和缓冲存储器BFM类似或相同,因此,将省略重复描述以避免冗余。
在一个实施例中,类似于图3B的实施例,主机301、CXL存储设备310和CXL存储器320可被配置为不共享同一接口。例如,主机301和CXL存储设备310可通过第一接口IF1彼此通信,并且CXL存储设备310和CXL存储器320可通过第二接口IF2彼此通信。第一接口IF1和第二接口IF2可物理地彼此分离。所有的第一接口IF1和第二接口IF2可使用CXL接口来实现。
CXL交换机SW_CXL可以是包括在第一接口IF1中的组件。CXL交换机SW_CXL可被配置为仲裁主机301与CXL存储设备310之间的通信。例如,当主机301和CXL存储设备310彼此通信时,CXL交换机SW_CXL可被配置为将从主机301或CXL存储设备310提供的信息(诸如,请求、数据、响应或信号)发送给CXL存储设备310或主机301。
主机301可包括CXL主机接口(CXL_H I/F)电路301a。CXL主机接口电路301a可包括第三端口PT3。CXL主机接口电路301a可通过CXL交换机SW_CXL与CXL存储设备310通信。
CXL存储设备310可包括CXL存储控制器311和非易失性存储器NVM。CXL存储控制器311可包括第一CXL存储设备接口(CXL_S I/F 1)电路311a、处理器311b、RAM 311c、闪存转换层(FTL)311d、纠错码(ECC)引擎311e、NAND接口(I/F)电路311f和第二CXL存储设备接口(CXL_S I/F 2)电路311g。第一CXL存储设备接口电路311a可包括第一端口PT1。第二CXL存储设备接口电路311g可包括第二端口PT2。图10中示出的第一CXL存储设备接口电路311a、处理器311b、RAM 311c、闪存转换层311d、ECC引擎311e、NAND接口电路311f和第二CXL存储设备接口电路311g与图3B中示出的第一CXL存储设备接口电路211a、处理器211b、RAM211c、闪存转换层211d、ECC引擎211e、NAND接口电路211f和第二CXL存储设备接口电路211g类似或相同,因此,将省略重复描述以避免冗余。
第一CXL存储设备接口电路311a可与CXL交换机SW_CXL连接。第一CXL存储设备接口电路311a可通过CXL交换机SW_CXL与主机301通信。第二CXL存储设备接口电路311g可与CXL存储器320连接。第二CXL存储设备接口电路311g可执行与CXL存储器320的直接通信。
CXL存储器320可包括CXL存储器控制器321和缓冲存储器BFM。CXL存储器控制器321可包括CXL存储器接口(CXL_M I/F)电路321a、处理器321b、存储器管理器321c和缓冲存储器接口(I/F)电路321d。CXL存储器接口电路321a可包括第四端口PT4。图10中示出的CXL存储器接口电路321a、处理器321b、存储器管理器321c和缓冲存储器接口电路321d与图3B中示出的CXL存储器接口电路221a、处理器221b、存储器管理器221c和缓冲存储器接口电路221d类似或相同,因此,将省略重复描述以避免冗余。
CXL存储器接口电路321a可与CXL存储设备310连接。CXL存储器接口电路321a可执行与CXL存储设备310的直接通信。
在一个实施例中,主机301和CXL存储设备310可通过使用作为输入/输出协议的CXL.io来彼此通信。CXL.io可具有基于PCIe的非一致性输入/输出协议。主机301和CXL存储设备310可通过使用CXL.io彼此交换用户数据或各种信息。
在一个实施例中,CXL存储设备310和CXL存储器320可通过使用CXL.mem或通过使用CXL.io彼此通信。CXL.mem可以是支持存储器访问的存储器访问协议。CXL存储设备310可通过使用CXL.mem或CXL.io来访问CXL存储器320的部分区域(例如,存储映射数据MD的区域或CXL存储设备专用区域)。
例如,在图4的初始化操作或图9的断电操作中,CXL存储设备310或CXL存储器320可通过使用CXL.io来发送映射数据MD。在图7的读取操作或图8的写入操作中,CXL存储设备310或CXL存储器320可通过使用CXL.mem来发送映射数据MD。然而,本公开不限于此。
在一个实施例中,因为CXL存储器320不与CXL交换机SW_CXL连接并且与CXL存储设备310直接连接,所以主机301和CXL存储器320不可彼此通信。主机301不可访问CXL存储器320的全部区域。
如上所述,与图3B的计算系统200相比,图10的计算系统300还可包括CXL交换机SW_CXL。计算系统300可基于参照图4至图9描述的方式来执行初始化操作、读取操作、写入操作和断电操作。然而,主机301与CXL存储设备310之间的通信可通过CXL交换机SW_CXL来执行。
图11A和图11B是示出根据一些实施例的计算系统的示例的框图。下面,为了便于描述,将省略与上述组件相关联的重复描述以避免冗余。参照图11A,计算系统400可包括主机401、多个存储器装置402a和402b、CXL交换机SW_CXL、CXL存储设备410和第一CXL存储器420_1。
主机401可与多个存储器装置402a和402b直接连接。主机401和CXL存储设备410中的每个可与CXL交换机SW_CXL连接。主机401和CXL存储设备410可通过CXL交换机SW_CXL彼此通信。CXL存储设备410和第一CXL存储器420_1可直接连接。如在以上描述中,第一CXL存储器420_1的区域可被分配用于CXL存储设备410的专用区域。
在一个实施例中,当计算系统400被驱动/使用时,第一CXL存储器420_1可从CXL存储设备410断开或热移除。在一些实施例中,当计算系统400被驱动/使用时,第二CXL存储器420_2可与CXL存储设备410连接或被热添加到CXL存储设备410,如图11B中所示。在这种情况下,CXL存储设备410可通过重置操作或热插拔操作再次对第二CXL存储器420_2执行初始化操作。例如,当第二CXL存储器420_2与CXL存储设备410连接时,在CXL存储设备410的控制下,第二CXL存储器420_2可再次执行初始化操作,使得存储器分配被再次执行。
这样,当第一CXL存储器420_1故障或存储器容量不足时,第一CXL存储器420_1可从计算系统400热移除,并且正常或具有足够存储器容量的第二CXL存储器420_2可被热添加到计算系统400。也就是说,根据一些实施例的CXL存储器可支持热插拔功能。该支持可表示通过各种连接来扩展计算系统的存储设备容量和存储器容量是可行的。
图12是示出根据一些实施例的计算系统的框图。下面,为了便于描述,将省略与上述组件相关联的重复描述以避免冗余。参照图12,计算系统500可包括主机501、多个存储器装置502a和502b、CXL交换机SW_CXL、多个CXL存储设备510_1至510_n、以及多个CXL存储器520_1至520_n。
主机501可与多个存储器装置502a和502b直接连接。主机501和多个CXL存储设备510_1至510_n可与CXL交换机SW_CXL连接。主机501和多个CXL存储设备510_1至510_n可通过CXL交换机SW_CXL彼此通信。
如图12中所示,多个CXL存储设备510_1至510_n可直接连接到多个CXL存储器520_1至520_n中的对应CXL存储器。例如,第一CXL存储设备510_1可与第一CXL存储器520_1直接连接,并且第n CXL存储设备510_n可与第n CXL存储器520_n直接连接。
在一个实施例中,多个CXL存储设备510_1至510_n可分别将多个CXL存储器520_1至520_n的区域分配用于多个CXL存储设备510_1至510_n的专用区域。例如,第一CXL存储设备510_1可将第一CXL存储设备510_1的映射数据存储在第一CXL存储器520_1中,并且第nCXL存储设备510_n可将第n CXL存储设备510_n的映射数据存储在第n CXL存储器520_n中。
图13是示出根据一些实施例的计算系统的框图。下面,为了便于描述,将省略与上述组件相关联的重复描述以避免冗余。参照图13,计算系统600可包括主机601、多个存储器装置602a和602b、CXL交换机SW_CXL、多个CXL存储设备610_1、610_2和610_3、以及多个CXL存储器620_1、620_2和620_3。
主机601可与多个存储器装置602a和602b直接连接。主机601和多个CXL存储设备610_1和610_2可与CXL交换机SW_CXL连接。主机601和多个CXL存储设备610_1和610_2可通过CXL交换机SW_CXL彼此通信。多个CXL存储设备610_1和610_2可直接连接到多个CXL存储器620_1和620_2中的对应CXL存储器。例如,第一CXL存储设备610_1可与第一CXL存储器620_1直接连接,并且第二CXL存储设备610_2可与第二CXL存储器620_2直接连接。如在以上描述中,CXL存储器620_1和620_2的区域可被分配用于CXL存储设备610_1和610_2的专用区域。
在一个实施例中,当计算系统600被驱动/使用时,CXL存储设备610_1和610_2中的一些可从CXL交换机SW_CXL断开或热移除。例如,当第二CXL存储设备610_2与CXL交换机SW_CXL断开时,与第二CXL存储设备610_2直接连接的CXL存储器620_2可一起被热移除。也就是说,第二CXL存储设备610_2和第二CXL存储器620_2可从计算系统600被热移除。
在一些实施例中,当计算系统600被驱动/使用时,一些CXL存储设备可被连接或热添加到CXL交换机SW_CXL。例如,当第三CXL存储设备610_3与CXL交换机SW_CXL连接时,与第三CXL存储设备610_3直接连接的第三CXL存储器620_3可一起被热添加到计算系统600。也就是说,第三CXL存储设备610_3和第三CXL存储器620_3可被热添加到计算系统600。
在这种情况下,主机601可通过重置操作或热插拔操作再次对与CXL交换机SW_CXL连接的装置执行初始化操作。例如,当第三CXL存储设备610_3与CXL交换机SW_CXL连接时,在主机601的控制下,第三CXL存储设备610_3可执行初始化操作。之后,第三CXL存储设备610_3可指示第三CXL存储器620_3执行初始化操作。也就是说,第三CXL存储器620_3可在第三CXL存储设备610_3的控制下执行初始化操作。第三CXL存储设备610_3可将第三CXL存储器620_3的区域分配用于第三CXL存储设备610_3的专用区域。也就是说,根据一些实施例的CXL存储设备可支持热插拔功能。该支持可表示通过各种连接来扩展计算系统的存储设备容量和存储器容量是可行的。
图14是示出根据一些实施例的计算系统的框图。为了便于描述,将省略与上述组件相关联的重复描述以避免冗余。参照图14,计算系统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、NPU1 140、CXL存储设备1210、PCIe装置1310和加速器(CXL装置)1320可共同与CXL交换机SW_CXL连接,并且可通过CXL交换机SW_CXL彼此通信。CXL存储器1220可不与CXL交换机SW_CXL连接。CXL存储器1220可与CXL存储设备1210直接连接。
在一个实施例中,第一CPU 1110、第二CPU 1120、GPU 1130和NPU 1140中的每个可以是参照图1至图13描述的主机,并且可与单独的存储器装置直接连接。例如,如图14中所示,第一CPU 1110可与两个存储器装置直接连接,并且GPU 1130可与两个存储器装置直接连接等。
在一个实施例中,CXL存储设备1210和CXL存储器1220可以是参照图3A至图13描述的CXL存储设备和CXL存储器,并且第一CPU 1110、第二CPU 1120、GPU 1130和NPU 1140中的一个或多个不可访问CXL存储器1220。CXL存储器1220的至少部分区域或全部区域可被分配用于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。然而,PCIe装置1310或加速器1320不可访问CXL存储器1220。
在一个实施例中,CXL交换机SW_CXL可与外部网络(网络)或网(Fabric)连接,并且可被配置为通过外部网络或网与外部服务器通信。
图15是示出应用根据一些实施例的计算系统的数据中心的框图。参照图15,作为收集各种数据并提供服务的设施的数据中心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可使用参照图10描述的CXL交换机SW_CXL来实现。也就是说,交换机2213可以是基于CXL协议实现的交换机。
CXL存储器2214可与存储装置2215直接连接。在一个实施例中,CXL存储器2214可仅由存储装置2215访问,并且处理器2211不可访问CXL存储器2214。如参照图1至图14描述的,CXL存储器2214可被分配用于存储装置2215的专用存储器或缓冲存储器。
存储装置2215可包括CXL接口电路CXL_IF、控制器CTRL和NAND闪存NAND。根据处理器2211的请求,存储装置2215可存储数据或者可输出所存储的数据。在一个实施例中,存储装置2215可使用参照图1至图14描述的CXL存储设备来实现。在一个实施例中,如在参照图1至图14给出的描述中,CXL存储器2214的至少部分区域或全部区域可被分配用于专用区域,并且专用区域可用作缓冲存储器(即,可用于将映射数据存储在CXL存储器2214中)。
根据实施例,应用服务器2110至21m0可不包括存储装置2215。存储服务器2210可包括至少一个或多个存储装置2215。可根据实施例不同地选择包括在存储服务器2210中的存储装置2215的数量。
NIC 2216可与如上所述可以是CXL交换机SW_CXL的交换机2213连接。NIC 2216可通过网络NT与剩余的存储服务器2220至22n0或应用服务器2110至21m0通信。
在一个实施例中,NIC 2216可包括网络接口卡、网络适配器等。NIC 2216可通过有线接口、无线接口、蓝牙接口、光接口等与网络NT连接,NIC 2216可包括内部存储器、数字信号处理器(DSP)、主机总线接口等,并且可通过主机总线接口与处理器2211和/或交换机2213连接。在一个实施例中,NIC2216可与处理器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存储器或存储装置。然而,因为CXL存储器2214不与交换机2213直接连接,所以应用服务器2110至21m0中的至少一个不可通过网络NT访问包括在第一存储服务器2210中的CXL存储器2214。
这样,应用服务器2110至21m0中的至少一个可对存储在剩余应用服务器和/或存储服务器中的数据执行各种操作。例如,应用服务器2110至21m0中的至少一个可执行用于在剩余的应用服务器和/或存储服务器之间移动或复制数据的指令。在这种情况下,数据可通过存储服务器的存储器或CXL存储器从存储服务器的存储装置移动到应用服务器的存储器或CXL存储器,或直接地从存储服务器的存储装置移动到应用服务器的存储器或CXL存储器。通过网络传输的数据可以是为了安全或隐私而加密的数据。
在以上实施例中,通过使用术语“第一”、“第二”、“第三”等来描述根据本公开的组件,然而,术语“第一”、“第二”、“第三”等可用于将组件彼此区分开,而不限制本公开。例如,术语“第一”、“第二”、“第三”等不包括任何形式的顺序或数字含义。
在以上实施例中,通过使用框来引用根据本公开的实施例的组件。这些块可使用各种硬件装置(诸如,集成电路、专用IC(ASIC)、现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD))、硬件装置中驱动的固件、软件(诸如,应用)、或者硬件装置和软件的组合来实现。此外,块可包括使用集成电路中的半导体元件实现的电路,或者作为知识产权(IP)注册的电路。
根据一些实施例,主机和存储装置可通过第一接口进行通信,并且存储装置和存储器装置可通过第二接口进行通信。因此,提供了具有改进性能的计算系统。
虽然已经参照本公开的实施例描述了本公开,但是对于本领域普通技术人员将清楚的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可对本公开进行各种改变和修改。
Claims (20)
1.一种计算系统,包括:
主机;
存储器,包括易失性存储器和存储器控制器;以及
存储装置,通过第一接口与主机连接,并且包括非易失性存储器和存储控制器,存储装置被配置为:通过第一端口与主机通信,通过第二端口与存储器通信,并且管理存储器,
其中,存储器通过与第一接口物理地分离的第二接口与存储装置连接,
其中,在初始化操作中,存储控制器通过第二接口将存储在非易失性存储器中的映射数据发送给存储器,并且
其中,在初始化操作中,存储器控制器将映射数据存储在易失性存储器中。
2.根据权利要求1所述的计算系统,其中,第一接口和第二接口基于计算快速链路协议。
3.根据权利要求1所述的计算系统,其中,存储器仅能由存储装置访问。
4.根据权利要求1所述的计算系统,其中,在初始化操作中,存储控制器通过第二接口将装置信息请求发送给存储器,并且
其中,存储器控制器基于所述装置信息请求通过第二接口将装置信息响应发送给存储装置。
5.根据权利要求1所述的计算系统,其中,在初始化操作之后,存储控制器通过第二接口将读取请求发送给存储器,并且
其中,存储器控制器基于所述读取请求通过第二接口将部分映射数据发送给存储装置。
6.根据权利要求1所述的计算系统,其中,主机通过第一接口将第一读取请求发送给存储装置,
其中,基于第一读取请求,存储控制器通过第二接口将第二读取请求发送给存储器,基于从存储器接收到的部分映射数据,从非易失性存储器读取数据,并且通过第一接口将所述数据发送给主机,并且
其中,存储器控制器基于第二读取请求,通过第二接口将与第二读取请求对应的所述部分映射数据发送给存储装置。
7.根据权利要求1所述的计算系统,其中,主机通过第一接口将第一写入请求发送给存储装置,
其中,基于第一写入请求,存储控制器将与第一写入请求对应的数据写入非易失性存储器中,通过第一接口将与第一写入请求对应的第一写入响应发送给主机,并且通过第二接口将针对关于第一写入请求更新的部分映射数据的第二写入请求发送给存储器,并且
其中,基于第二写入请求,存储器控制器将所述部分映射数据写入易失性存储器中,并且通过第二接口将与第二写入请求对应的第二写入响应发送给存储装置。
8.根据权利要求1所述的计算系统,其中,主机通过第一接口将断电信息发送给存储装置,
其中,基于断电信息,存储控制器通过第二接口将读取请求发送给存储器,将包括在从存储器接收到的读取响应中的映射数据存储在非易失性存储器中,并且通过第一接口将断电信息的响应发送给主机,并且
其中,基于所述读取请求,存储器控制器从易失性存储器读取所述映射数据,并且通过第二接口将包括所述映射数据的所述读取响应发送给存储装置。
9.根据权利要求1至权利要求8中的任意一项所述的计算系统,其中,主机和存储装置使用CXL.io通过第一接口进行通信,并且
其中,存储装置和存储器使用CXL.io或CXL.mem通过第二接口进行通信。
10.根据权利要求1所述的计算系统,其中,存储器支持热插拔功能。
11.一种计算系统的操作方法,所述计算系统包括主机、存储装置和存储器,主机和存储装置通过第一接口连接,并且存储装置和存储器通过第二接口连接,所述操作方法包括:
在初始化操作中,由存储装置通过第二接口将存储在存储装置的非易失性存储器中的映射数据发送给存储器;
在初始化操作中,由存储器将映射数据存储在存储器的易失性存储器中;
在初始化操作之后,由存储装置通过第二接口将第一读取请求发送给存储器;以及
由存储器基于第一读取请求通过第二接口将第一部分映射数据发送给存储装置,
其中,第一接口和第二接口基于计算快速链路协议,并且第一接口与第二接口物理地分离。
12.根据权利要求11所述的操作方法,其中,存储器仅能由存储装置访问。
13.根据权利要求11所述的操作方法,还包括:
在初始化操作中,由存储装置通过第二接口将装置信息请求发送给存储器;以及
由存储器基于所述装置信息请求通过第二接口将装置信息响应发送给存储装置。
14.根据权利要求11所述的操作方法,还包括:
在初始化操作之后,由主机通过第一接口将第二读取请求发送给存储装置;
由存储装置基于第二读取请求通过第二接口将第三读取请求发送给存储器;
由存储器基于第三读取请求读取与包括在第三读取请求中的逻辑块地址对应的第二部分映射数据;
由存储器通过第二接口将包括第二部分映射数据的第三读取响应发送给存储装置;
由存储装置基于包括在第三读取响应中的第二部分映射数据从非易失性存储器读取数据;以及
由存储装置通过第一接口将包括所述数据的第二读取响应发送给主机。
15.根据权利要求11所述的操作方法,还包括:
在初始化操作之后,由主机通过第一接口将第一写入请求发送给存储装置;
由存储装置基于第一写入请求将与第一写入请求对应的数据写入非易失性存储器中;
由存储装置生成或更新与包括在第一写入请求中的逻辑块地址对应的第三部分映射数据;
由存储装置通过第一接口将与第一写入请求对应的第一写入响应发送给主机;
由存储装置通过第二接口将包括第三部分映射数据的第二写入请求发送给存储器;
由存储器基于第二写入请求将第三部分映射数据存储在易失性存储器中;以及
由存储器通过第二接口将与第二写入请求对应的第二写入响应发送给存储装置。
16.根据权利要求11所述的操作方法,还包括:
由主机通过第一接口将断电信息发送给存储装置;
由存储装置基于断电信息通过第二接口将第四读取请求发送给存储器;
由存储器基于第四读取请求从易失性存储器读取映射数据;
由存储器通过第二接口将包括所述映射数据的第四读取响应发送给存储装置;
由存储装置将包括在第四读取响应中的所述映射数据存储在非易失性存储器中;以及
由存储装置通过第一接口将断电信息的响应发送给主机。
17.根据权利要求11至权利要求16中的任意一项所述的操作方法,其中,主机和存储装置使用CXL.io通过第一接口进行通信,并且
其中,存储装置和存储器使用CXL.io或CXL.mem通过第二接口进行通信。
18.一种计算系统,包括:
主机;
存储装置,包括非易失性存储器和存储控制器;
存储器,包括易失性存储器和存储器控制器;以及
交换机,与主机和存储装置连接,
其中,存储器与存储装置连接,
其中,存储装置被配置为通过第一端口与主机通信,通过第二端口与存储器通信,并且管理存储器,
其中,在初始化操作中,存储控制器通过第二端口将存储在非易失性存储器中的映射数据发送给存储器,并且
其中,在初始化操作中,存储器控制器将所述映射数据存储在易失性存储器中。
19.根据权利要求18所述的计算系统,其中,在初始化操作中,存储控制器通过第二端口将装置信息请求发送给存储器,并且
其中,存储器控制器基于所述装置信息请求将装置信息响应发送给存储装置。
20.根据权利要求18所述的计算系统,其中,存储控制器使用CXL.io通过交换机与主机通信,并且通过使用CXL.io或CXL.mem与存储器直接通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220056787A KR20230157151A (ko) | 2022-05-09 | 2022-05-09 | 메모리 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치 및 이의 동작 방법 |
KR10-2022-0056787 | 2022-05-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117032553A true CN117032553A (zh) | 2023-11-10 |
Family
ID=88641741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310117537.5A Pending CN117032553A (zh) | 2022-05-09 | 2023-02-02 | 包括存储器装置和存储装置的计算系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230359566A1 (zh) |
KR (1) | KR20230157151A (zh) |
CN (1) | CN117032553A (zh) |
-
2022
- 2022-05-09 KR KR1020220056787A patent/KR20230157151A/ko unknown
- 2022-12-07 US US18/076,671 patent/US20230359566A1/en active Pending
-
2023
- 2023-02-02 CN CN202310117537.5A patent/CN117032553A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20230157151A (ko) | 2023-11-16 |
US20230359566A1 (en) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467739B2 (en) | Storage device and operation method thereof | |
US11741034B2 (en) | Memory device including direct memory access engine, system including the memory device, and method of operating the memory device | |
US11775183B2 (en) | Storage device and operation method thereof | |
CN115495389A (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
US20230376216A1 (en) | Memory device, storage device, and computing system including memory device and storage device | |
CN117032553A (zh) | 包括存储器装置和存储装置的计算系统及其操作方法 | |
EP4276639A1 (en) | Computing system including memory device and storage device and operating method thereof | |
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 | |
US20230359389A1 (en) | Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices | |
EP4273706A1 (en) | Storage device, memory device, and system including storage device and memory device | |
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 | |
US20230359578A1 (en) | Computing system including cxl switch, memory device and storage device and operating method thereof | |
US20230359379A1 (en) | Computing system generating map data, and method of operating the same | |
EP4276634A1 (en) | Storage device, computing device including storage device and memory device, and operating method of computing device | |
US20230359567A1 (en) | Storage device, computing device including storage device and memory device, and operating method of computing device | |
US20230376238A1 (en) | Computing system for managing distributed storage devices, and method of operating the same | |
US20230376217A1 (en) | Storage device, memory device, and computing system including the same | |
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 | |
EP4273703A1 (en) | Computing system generating map data, and method of operating the same | |
EP4283457A2 (en) | Computing system for managing distributed storage devices, and method of operating the same | |
EP4283474A1 (en) | Storage device, memory device, and computing system including the same | |
EP4283456A1 (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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |