CN114546902A - 基于多协议访问存储器的系统、设备和方法 - Google Patents
基于多协议访问存储器的系统、设备和方法 Download PDFInfo
- Publication number
- CN114546902A CN114546902A CN202110846161.2A CN202110846161A CN114546902A CN 114546902 A CN114546902 A CN 114546902A CN 202110846161 A CN202110846161 A CN 202110846161A CN 114546902 A CN114546902 A CN 114546902A
- Authority
- CN
- China
- Prior art keywords
- memory
- protocol
- data
- access
- bus
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 326
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000001427 coherent effect Effects 0.000 claims abstract description 38
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000012544 monitoring process Methods 0.000 claims description 5
- 239000000126 substance Substances 0.000 claims 1
- 238000003860 storage Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 17
- 101100396152 Arabidopsis thaliana IAA19 gene Proteins 0.000 description 7
- 101100274486 Mus musculus Cited2 gene Proteins 0.000 description 7
- 101150096622 Smr2 gene Proteins 0.000 description 7
- 102100039292 Cbp/p300-interacting transactivator 1 Human genes 0.000 description 6
- 101000888413 Homo sapiens Cbp/p300-interacting transactivator 1 Proteins 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 101150071434 BAR1 gene Proteins 0.000 description 2
- 239000004606 Fillers/Extenders Substances 0.000 description 2
- 101100378536 Ovis aries ADRB1 gene Proteins 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/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/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
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0064—Latency reduction in handling transfers
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)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供一种基于多协议访问存储器的系统、设备和方法。所述设备被配置为通过总线进行通信,所述设备可以包括:第一接口电路,所述第一接口电路被配置为基于第一协议通过所述总线提供对第一存储器的第一访问;以及第二接口电路,所述第二接口电路被配置为基于第二协议通过所述总线提供非一致性输入/输出(I/O)接口。所述第二接口电路可以被配置为响应于基于所述第二协议通过所述总线接收的消息来访问所述第一存储器,通过所述总线提供对所述第一存储器的第二访问。
Description
相关申请的交叉引用
本申请基于并要求于2020年11月11日向韩国知识产权局提交的韩国专利申请No.10-2020-0150510的优先权,其公开内容通过引用整体并入本文。
技术领域
实施例涉及存储器访问,更具体地,涉及通过总线基于多协议访问存储器的系统、设备和方法。
背景技术
被配置为处理数据的装置可以访问存储器,并且因此可以执行各种操作。例如,装置可以处理从存储器读取的数据或将处理后的数据写入存储器。由于系统所需的性能和功能,系统可以包括通过提供高带宽和低延迟的链路彼此通信的各种装置。系统中包括的存储器可以被两个或更多个装置共享和访问。因此,系统的性能可能不仅取决于每个装置的运行速度,而且还取决于装置之间的通信效率和访问存储器所需的时间。
发明内容
实施例提供了一种用于低延迟的存储器访问的系统、设备和方法。
本文提供了一种被配置为基于第一协议通过总线进行通信的设备,所述设备包括:第一接口电路,所述第一接口电路被配置为基于第一协议通过所述总线提供对第一存储器的第一访问;以及第二接口电路,所述第二接口电路被配置为基于第二协议通过所述总线提供非一致性输入/输出(I/O)接口,其中,所述第二接口电路还被配置为通过响应于基于所述第二协议通过所述总线接收的第一消息访问所述第一存储器,通过所述总线提供对所述第一存储器的第二访问。
本文还提供了一种连接到总线的设备的运行方法,所述运行方法包括:基于第一协议通过所述总线提供对第一存储器的第一访问;以及基于第二协议通过所述总线提供非一致性输入/输出接口,其中,所述非一致性输入/输出接口的提供包括:通过响应于基于所述第二协议通过所述总线接收的第一消息访问所述第一存储器,来提供对所述第一存储器的第二访问。
本文还提供了一种系统,包括:设备,所述设备连接到总线并且被配置为与第一存储器通信;以及主机处理器,其中,所述主机处理器被配置为:基于要写入所述第一存储器或要从所述第一存储器读取的第一数据的大小选择第一协议或第二协议,以及基于所选择的协议,通过所述总线对所述第一存储器执行第一访问,其中,所述第一协议是用于存储器访问的专用协议,并且所述第二协议是用于非一致性输入/输出的协议。
附图说明
从以下结合附图的详细描述中将更清楚地理解实施例,在附图中:
图1是示出根据实施例的系统的框图;
图2A和图2B是示出根据实施例的系统的示例的框图;
图3A和图3B是示出根据实施例的系统的示例的框图;
图4示出了根据实施例的访问存储器的运行的示例的消息图;
图5是示出根据实施例的地址映射的图;
图6是示出根据实施例的系统的框图;
图7A和图7B是示出根据实施例的系统的示例的框图;
图8示出了根据实施例的系统的框图;
图9是示出根据实施例的基于多协议访问存储器的方法的流程图;
图10A和图10B是示出根据实施例的基于多协议访问存储器的方法的示例的流程图;
图11A和图11B是示出根据实施例的系统的示例的框图;
图12是示出根据实施例的包括系统的数据中心的框图。
具体实施方式
图1是示出根据示例实施例的系统100的框图。系统100可以是包括彼此通信的设备110和主机处理器120的任意计算系统(或包括在计算系统中的元件)。例如,系统100可以被包括在诸如台式计算机、服务器或信息亭(kiosk)的固定计算系统中,或者诸如膝上型计算机、移动电话或可穿戴设备的便携式计算系统中。此外,在一些实施例中,系统100可以被包括在设备110和主机处理器120被实现在单个芯片或封装件中的片上系统(SoC)或系统级封装件(SiP)中。如图1所示,系统100可以包括设备110、主机处理器120、设备存储器130和主机存储器140。
参照图1,设备110和主机处理器120可以通过链路150彼此通信,并且可以通过链路150在其间发送或接收消息和/或数据。将参考基于支持计算机快速链路(CXL)协议的CXL规范的链路150来描述实施例,但是不限于此。在非限制性示例中,设备110和主机处理器120也可以基于诸如以下一致性互连技术彼此通信:Xbus协议、NVLink协议、InfinityFabric协议、加速器缓存一致性互连(CCIX)协议或一致性加速器处理器接口(CAPI)协议。
在一些实施例中,链路150可以支持多个协议,并且可以通过使用多个协议传输消息和/或数据。例如,链路150可以支持包括非一致性协议(例如CXL.io)、一致性协议(例如CXL.cache)的CXL协议以及存储器访问协议(或存储器协议)(例如CXL.mem)。在一些实施例中,作为非限制性示例,链路150可以支持诸如外围组件互连(PCI)、快速PCI(PCIe)、通用串行总线(USB)或串行高级技术附件(SATA)的协议。在本文中,链路150支持的协议可以被称为互连协议。
设备110可以指为主机处理器120提供有用功能的任意设备,并且在一些实施例中可以对应于基于CXL规范的加速器。例如,在主机处理器120上执行的软件可以将计算和/或输入/输出(I/O)操作的至少一部分转移(offload)到设备110上。在一些实施例中,设备110可以包括可编程组件(例如,图形处理单元(GPU)或神经处理单元(NPU))、提供固定功能的组件(例如,知识产权(IP)核)、以及可重构组件(例如,现场可编程门阵列(FPGA))中的至少一种。如图1所示,设备110可以包括物理层111、多协议复用器112、多个接口电路113和加速器电路114,并与设备存储器130通信。
加速器电路114可以执行由设备110提供给主机处理器120的有用功能,并且也可以被称为加速器逻辑。如图1所示,加速器电路114可以通过使用多个协议通过接口电路113与主机处理器120通信。在一些实施例中,加速器电路114可以包括用于解决设备存储器130的一致性的元件(例如,图6的617)。此外,在一些实施例中,如下面参照图2A所描述的,可以省略设备110中的加速器电路114。
接口电路113可以支持多个协议。例如,接口电路113可以包括用于非一致性协议、一致性协议和存储器访问协议中的至少两者的两个或更多个电路。基于相应的协议,两个或更多个电路中的每个电路可以向加速器电路114提供从主机处理器120接收的消息,或者可以向主机处理器120提供从加速器电路114接收的消息。如下面参照图3A和图3B描述的,接口电路113可以基于两个或更多个协议提供主机处理器120对设备存储器130的访问,并且根据情况,主机处理器120可以选择用于访问设备存储器130的优化的协议。因此,主机处理器120的性能和系统100的性能可以由于选择优化的协议以提供对设备存储器130的减少的访问延迟而得到增强。
多协议复用器112可以基于用于加速器电路114与主机处理器120之间的通信的消息和/或数据来确定多个协议之一。多协议复用器112可以包括连接到接口电路113的至少一个协议队列,并且接口电路113可以通过至少一个协议队列向主机处理器120发送消息和/或数据或从主机处理器120接收消息和/或数据。在一些实施例中,接口电路113和多协议复用器112可以被集成为一个元件。在一些实施例中,多协议复用器112可以包括分别与链路150支持的多个协议相对应的多个协议队列。此外,在一些实施例中,多协议复用器112可以对基于不同协议的通信进行仲裁,并且可以向物理层111提供选定通信。在一些实施例中,物理层111可以通过单个互连、总线、迹线等连接到主机处理器120的物理层121。
如图1所示,设备存储器130可以连接到设备110并且可以被称为设备附加存储器(device-attached memory)。如图1所示,当设备存储器130被包括在系统100中时,加速器电路114可以与设备存储器130通信,并且可以基于独立于链路150的协议(即,设备特定协议)与设备存储器130通信。在一些实施例中,如下面参照图3A和图3B描述的,设备110可以包括存储器接口(例如,图3A的315a)作为用于访问设备存储器130的元件,并且加速器电路114和/或接口电路113可以通过存储器接口访问设备存储器130。存储器接口可以提供设备110(即,加速器电路114)对设备存储器130的访问,并且通过链路150和接口电路113提供主机处理器120对设备存储器130的访问。在一些实施例中,设备存储器130可以对应于基于CXL规范的设备附加存储器。在本文中,设备存储器130可以被包括在设备110中,并且可以简称为存储器。
主机处理器120可以包括系统100的主处理器(例如,中央处理单元(CPU)),并且在一些实施例中可以对应于基于CXL规范的主机处理器(或主机)。如图1所示,主机处理器120可以连接到主机存储器140,并且可以包括物理层121、多协议复用器122、多个接口电路123、一致性/高速缓存电路124、总线电路125、至少一个核126和输入/输出(I/O)设备127。
至少一个核126可以执行指令,并且可以连接到一致性/高速缓存电路124。一致性/高速缓存电路124可以包括高速缓存分层结构,并且可以被称为一致性/高速缓存逻辑。如图1所示,一致性/高速缓存电路124可以与至少一个核126和接口电路123通信。例如,一致性/高速缓存电路124可以基于包括一致性协议和存储器访问协议的两个或更多个协议来实现通信。在一些实施例中,一致性/高速缓存电路124可以包括直接存储器存取(DMA)电路。I/O设备127可以用于与总线电路125通信。例如,总线电路125可以包括PCIe逻辑,并且I/O设备127可以包括PCIe I/O设备。
接口电路123可以实现主机处理器120的元件(例如,一致性/高速缓存电路124和总线电路125)与设备110之间的通信。在一些实施例中,接口电路123可以实现基于多个协议(例如,非一致性协议、一致性协议和存储器协议)在主机处理器120的元件与设备110之间的消息和/或数据的通信。
多协议复用器122可以包括至少一个协议队列。接口电路123可以连接到多协议复用器122中包括的至少一个协议队列,并且可以向至少一个协议队列发送消息和/或数据或者从至少一个协议队列接收消息和/或数据。在一些实施例中,多协议复用器122可以基于用于主机处理器120的元件与设备110之间通信的消息和/或数据来确定多个协议之一。在一些实施例中,接口电路123和多协议复用器122可以被集成为一个元件。在一些实施例中,多协议复用器122可以包括分别与链路150支持的多个协议相对应的多个协议队列。此外,在一些实施例中,多协议复用器122可以在基于不同协议的通信之间进行仲裁,并且向物理层121提供选定通信。
图2A和图2B是示出根据实施例的系统的示例的框图。详细地,图2A的框图示出了包括在CXL规范中定义的3CXL型设备的系统200a,并且图2B的框图示出了包括在CXL规范中定义的2CXL型设备的系统200b。在下文中,可以省略图2A和图2B的重复描述。
参照图2A,系统200a可以包括主机处理器220a、设备210a、设备存储器230a和主机存储器240a。在一些实施例中,主机处理器220a可以被称为根联合体(root complex),设备210a可以被称为存储器扩展器,并且设备210a和设备存储器230a可以被统称为3CXL型设备。
主机处理器220a可以包括存储器控制器221a、归属代理(home agent)222a和I/O桥接器223a。存储器控制器221a可以基于主机存储器240a的接口提供对主机存储器240a的访问。归属代理222a可以被称为一致性引擎。此外,归属代理222a可以基于存储器协议MEM与设备210a通信并且可以解析给定地址的一致性。存储器协议MEM可以是用于访问设备存储器230a的专用协议,并且在本文中,可以被称为第一协议。此外,I/O桥接器223a可以基于非一致性协议IO与设备210a通信,并且在一些实施例中,可以包括输入/输出存储器管理单元(IOMMU)。主机处理器220a可以与设备210a交换用于设备发现、枚举(enumeration)、以及错误报告和管理的消息。在本文中,非一致性协议IO可以被称为第二协议。
一般而言,作为非限制性示例,高速缓存一致性可以包括验证存储器资源的高速缓存具有相同的数据。
设备210a可以包括存储器接口211a。存储器接口211a可以被称为存储器接口电路或存储器控制器,并且可以基于设备存储器230a的接口提供对设备存储器230a的访问。在一些实施例中,与图1的设备110不同,设备210a可以不包括活动计算引擎,并且可以用作存储器扩展器。因此,设备210a可以不基于一致性协议CACHE向主机处理器220a发出请求,而可以基于存储器协议MEM处理主机处理器220a的请求。
参照图2B,系统200b可以包括主机处理器220b、设备210b、设备存储器230b和主机存储器240b。在一些实施例中,设备210b可以被称为具有存储器的设备,并且设备210b和设备存储器230b可以被统称为2CXL型设备。
主机处理器220b可以包括存储器控制器221b、归属代理222b、I/O桥接器223b和一致性桥接器224b。一致性桥接器224b可以基于定义设备210b与主机处理器220b之间的交互的一致性协议CACHE与设备210b通信。例如,一致性桥接器224b可以从设备210b接收请求(例如,D2H请求)、响应(例如,D2H响应)和数据(例如,D2H数据),并且可以向设备210b提供请求(例如、H2D请求)、响应(例如,H2D响应)和数据(例如,H2D数据)。
设备210b可以包括存储器接口211b、高速缓存器212b和一致性引擎213b。在设备210b中,类似于图1的设备110,高速缓存器212b可以由加速器电路使用。设备210b可以将一致性协议CACHE用于高速缓存器212b的一致性业务。一致性引擎213b可以被称为设备一致性引擎(DCOH)。此外,一致性引擎213b可以解析高速缓存器212b的一致性,并且可以管理偏置状态(例如,主机偏置模式和设备偏置模式)。
图3A和图3B是示出根据实施例的系统的示例的框图。详细地,图3A的框图示出了包括基于存储器协议MEM和非一致性协议IO提供对设备存储器330a的访问的设备310a的系统300a,并且图3B的框图示出了包括基于存储器协议MEM和非一致性协议IO提供对设备存储器330b的访问的设备310b的系统300b。在一些实施例中,图3A的系统300a和图3B的系统300b均可以对应于包括在CXL规范中定义的3CXL型设备的系统。在下文中,可以省略图3A和图3B的重复描述。
参照图3A,系统300a可以包括主机处理器320a、设备310a和设备存储器330a。在一些实施例中,系统300a还可以包括主机存储器,并且主机处理器320a可以包括用于访问主机存储器的存储器控制器。设备310a可以包括物理层311a、多协议复用器312a、第一接口电路313a、第二接口电路314a和存储器接口315a。
第一接口电路313a可以基于存储器协议MEM与主机处理器320a通信,并且可以基于存储器协议MEM根据从主机处理器320a接收的消息通过存储器接口315a访问设备存储器330。例如,第一接口电路313a可以响应于基于存储器协议MEM接收的消息向存储器接口315a发出读取和/或写入数据的请求。响应于第一接口电路313a的请求,存储器接口315a可以从设备存储器330a读取数据,并且可以向第一接口电路313a提供读取数据,或者可以将第一接口电路313a的请求中包括的数据写入设备存储器330a中。在本文中,基于存储器协议MEM通过第一接口电路313a对设备存储器330a的访问可以被称为第一访问。
第二接口电路314a可以提供基于非一致性协议IO的非一致性输入/输出接口。第二接口电路314a可以基于非一致性协议IO与主机处理器320a通信。基于非一致性协议IO,除了上面参照图2A描述的消息之外,第二接口电路314a还可以接收用于访问设备存储器330a的消息,并且可以提供主机处理器320a对设备存储器330a的访问。例如,如图3A所示,第二接口电路314a可以与第一接口电路313a通信,并且可以在非一致性协议IO与存储器协议MEM之间转换消息和/或数据。在本文中,基于非一致性协议IO通过第二接口电路314a对设备存储器330a的访问可以被称为第二访问。因此,设备310a可以与设备存储器330a相关联地提供主机处理器基于存储器协议MEM的第一访问和基于非一致性协议IO的第二访问。
存储器接口315a可以与第一接口电路313a和第二接口电路314a通信,并且可以基于设备存储器330a的接口与设备存储器330a通信。设备存储器330a可以表示用于存储数据的任意介质。在一些实施例中,设备存储器330a可以包括半导体存储器件,并且例如可以包括诸如电阻随机存取存储器(RRAM)的非易失性存储器件和/或诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的易失性存储器件。
设备存储器330a可以被划分为多个区域,并且划分出的区域中的至少一个区域可以用于通过存储器接口315a的基于存储器协议MEM的访问(即,第一访问)和基于非一致性协议IO的访问(即,第二访问)。例如,如图3A所示,设备存储器330a可以包括第一区域R1和第二区域R2,第一区域R1可以用于第一访问,而第二区域R2可以用于第一访问和第二访问。因此,第二区域R2可以用作各自由非一致性协议IO支持的控制器存储器缓冲器(CMB)、持久存储器区域(PMR)和门铃(doorbell),并且如下面参照图5描述的,主机处理器可以通过基地址寄存器(BAR)访问第二区域R2。此外,在一些实施例中,第一区域R1和第二区域R2可以用于第二访问,在这种情况下,第一区域R1和第二区域R2可以分别对应于不同的BAR。下面将参照图4描述主机处理器320a基于不同协议(即,存储器协议MEM和非一致性协议IO)访问设备存储器330a的操作。
参照图3B,系统300b可以包括主机处理器320b、设备310b和设备存储器330b。类似于图3A的设备310a,设备310b可以包括物理层311b、多协议复用器312b、第一接口电路313b、第二接口电路314b和存储器接口315b。与图3A的实施例相比,第二接口电路314b可以与存储器接口315b通信。例如,基于非一致性协议IO,第二接口电路314b可以与主机处理器320b通信,并且可以通过存储器接口315b访问设备存储器330b。因此,可以通过第二接口电路314b和存储器接口315b执行第二访问。
在下文中,如上面参照图3A描述的,将主要描述通过第二接口电路314a、第一接口电路313a和存储器接口315a执行第二访问的示例,但实施例不限于此。
图4是示出根据实施例的访问存储器的运行的示例的消息图。如上面参照附图描述的,主机处理器420可以基于多个协议访问设备410中包括的存储器。在图4中,第一消息MSG1可以基于第一协议(即,图3A的存储器协议MEM),而第二消息MSG2可以基于第二协议(即,图3A的非一致性协议IO)。
参照图4,第一消息MSG1可以包括第一报头H1、第一数据D1和第一报尾(trailer)T1。在一些实施例中,存储器协议MEM可以支持包括具有固定大小的第一数据D1的第一消息MSG1。例如,CXL.mem可以支持包括64字节(B)的数据的消息。因此,主机处理器420可以向设备410提供包括具有固定大小的第一数据D1的第一消息MSG1,以便基于存储器协议MEM将数据存储在存储器中。此外,设备410可以向主机处理器420提供包括具有固定大小的第一数据D1的第一消息MSG1,以便基于存储器协议MEM提供存储在存储器中的数据。由于具有固定大小的第一数据D1,第一报头H1和/或第一报尾T1可以比下面描述的第二报头H2和/或第二报尾T2更简单且更小。
第二消息MSG2可以包括第二报头H2、第二数据D2和第二报尾T2。在一些实施例中,非一致性协议IO可以支持包括具有可变大小的第二数据D2的第二消息MSG2。例如,CXL.io可以基于PCIe。与通过PCIe总线的存储器访问相对应的快速非易失性存储器(NVMe)可以支持包括具有最大4千字节(KB)的数据的消息。如上面参照图3A和图3B描述的,可以基于存储器协议MEM访问并且也可以基于非一致性协议IO访问设备410中包括的存储器,因此,主机处理器420可以向设备410发送或从设备410接收包括具有可变大小的第二数据D2的第二消息MSG2。例如,主机处理器420可以向设备410提供包括具有可变大小的第二数据D2的第二消息MSG2,以便基于非一致性协议IO将数据存储在存储器中。此外,设备410可以向主机处理器420提供包括具有可变大小的第二数据D2的第二消息MSG2,以便基于非一致性协议IO提供存储在存储器中的数据。由于第二数据D2的可变大小大于存储器协议MEM所支持的大小(例如,64B),所以第二报头H2和/或第二报尾T2可以比上述的第一报头H1和/或第一报尾T1更大且更复杂。
根据情况,主机处理器420可以从存储器协议MEM和非一致性协议IO中选择一个协议并且可以基于所选择的协议来访问设备410。在一些实施例中,主机处理器420可以为大小大于阈值的数据选择非一致性协议IO,而且可以为大小小于或等于阈值的数据选择存储器协议MEM。例如,为了写入或读取具有小尺寸(例如,64B)的数据,主机处理器420可以向设备410发送或从设备410接收包括小开销(即,第一报头H1和第一报尾T1)的第一消息MSG1。此外,为了写入或读取具有大尺寸(例如,4KB)的数据,主机处理器420可以向设备410发送或从设备410接收第二消息MSG2,而不是重复发送或接收第一消息MSG1。
在设备410中包括的存储器用作主机处理器420的存储级存储器(SCM)的情况下,具有页面大小(即,4KB)的数据的换入(swap-in)和换出(swap-out)可能经常发生。在仅支持基于存储器协议MEM的访问的情况下,4KB的数据的换入和换出可能导致过多的第一消息,因此,存储器访问(例如,直接存储器存取(DMA))可能非常低效。然而,如上所述,在支持基于非一致性协议IO的存储器访问的情况下,可以选择非一致性协议IO而不是存储器协议MEM,并且由于基于非一致性协议IO的数据的换入和换出可以实现高效的DMA。
图5是示出根据实施例的地址映射500的图。在一些实施例中,图4的主机处理器420可以基于地址映射500访问设备410中包括的存储器,并且下面将参照图4来描述图5。
参照图5,主机处理器420可以基于高级配置和电源接口(ACPI)(即,存储器协议MEM)访问存储器的与地址0x2000相对应的区域。例如,为了读取存储在存储器的与地址0x2000相对应的区域中的数据,主机处理器420可以基于存储器协议MEM向设备410提供包括地址0x2000的消息MemRD。
主机处理器420可以基于BAR(即,非一致性协议IO)访问存储器的与地址0x2000相对应的区域。例如,存储器的与地址0x2000相对应的区域可以对应于BAR1,并且,为了读取存储在存储器的与地址0x2000相对应的区域中的数据,主机处理器420可以基于非一致性协议IO向设备410提供包括与BAR1相对应的地址0x4000的消息MemRD。结果,主机处理器420可以通过两个地址(例如,与非一致性协议IO的BAR相对应的地址和存储器协议MEM的地址)访问存储器的相同区域。
图6是示出根据实施例的系统600的框图。如图6所示,系统600可以包括主机处理器620、设备610和设备存储器630。类似于图3A的设备310a,设备610可以包括物理层611、多协议复用器612、第一接口电路613、第二接口电路614和存储器接口615,此外还可以包括第三接口电路616和一致性引擎617。在下文中,在图6的描述中,省略了图1、图3A和图3B的重复描述。
如上面参照图3A描述的,第一接口电路613可以基于存储器协议MEM提供主机处理器620对设备存储器630的访问(即,第一访问),并且第二接口电路614可以基于非一致性协议IO提供主机处理器620对设备存储器630的访问(即,第二访问)。因此,主机处理器620和/或连接到总线的其他设备(例如,加速器、存储器等)可以基于不同的协议来访问设备存储器630,并且设备610还可以包括用于解析设备存储器630的一致性的第三接口电路616。
如图6所示,一致性引擎617可以监测通过第一接口电路613对设备存储器630的访问(即,第一访问)和通过第二接口电路614对设备存储器630的访问(即,第二访问)。一致性引擎617可以基于对第一访问和第二访问的监测结果来验证设备存储器630的一致性,并且可以基于验证结果来解析一致性。例如,一致性引擎617可以调整第一访问和第二访问的顺序以解析一致性,并且可以从主机处理器620发出对一致性的解析。第三接口电路616可以基于一致性协议CACHE与主机处理器通信,并且可以基于一致性协议CACHE向主机处理器提供从一致性引擎617接收的消息(例如,解析一致性的请求)。
图7A和图7B是示出根据实施例的系统的示例的框图。详细地,图7A和图7B可以分别示出用于执行数据的换入和换出的系统700a和700b。在图7A和图7B中,阴影线宽箭头可以表示基于数据的换入和换出的数据的流动。如上面参照图4描述的,可以按页面大小执行换入操作和换出操作。在下文中,省略图7A和图7B的重复描述。
参照图7A,系统700a可以包括主机处理器720a、交换机(switch)750a、设备710a、第一设备存储器731a和第二设备存储器732a。在一些实施例中,系统700a还可以包括主机存储器,并且主机处理器720a可以包括用于访问主机存储器的存储器控制器。在一些实施例中,设备710a、第一设备存储器731a和第二设备存储器732a可以被统称为3CXL型设备。交换机750a可以用作消息路由器,并且可以连接到附加设备以及主机处理器720a和设备710a。类似于图3A的设备310a,设备710a可以包括物理层711a、多协议复用器712a、第一接口电路713a、第二接口电路714a和存储器接口715a,并且第二接口电路714a可以与第二设备存储器732a通信。第一设备存储器731a可以对应于图3A的设备存储器330a,并且如上面参照附图所描述的,第二接口电路714a可以响应于基于非一致性协议IO接收的消息来提供对第一设备存储器731a的访问(即,第二访问)。
主机处理器720a可以基于非一致性协议IO访问第二设备存储器732a。例如,第二设备存储器732a可以包括可以基于CXL.io被访问的NVMe存储器。主机处理器720a可以基于非一致性协议IO向设备710a提供指示将存储在第二设备存储器732a中的数据复制到第一设备存储器731a的消息。响应于基于非一致性协议IO从主机处理器720a接收的消息,第二接口电路714a可以基于非一致性协议IO向交换机750a提供存储在第二设备存储器732a中的数据。交换机750a可以将从设备710a接收的数据再次路由到设备710a,并且第二接口电路714a可以基于非一致性协议IO,通过第二接口电路714a、第一接口电路713a和存储器接口715a将从交换机750a接收的数据写入第一设备存储器731a中。
参照图7B,系统700b可以包括主机处理器720b和设备710b。在一些实施例中,类似于图7A的系统700a,系统700b还可以包括在主机处理器720b与设备710b之间的交换机。类似于图7A的设备710a,设备710b可以包括物理层711b、多协议复用器712b、第一接口电路713b、第二接口电路714b、存储器接口715b、第一设备存储器731b和第二设备存储器732b。
主机处理器720b可以基于非一致性协议IO向设备710b提供指示将存储在第二设备存储器732b中的数据复制到第一设备存储器731b的消息。响应于基于非一致性协议IO从主机处理器720b接收的消息,第二接口电路714b可以向第一接口电路713b提供从第二设备存储器732b接收的数据,并且第一接口电路713b可以通过存储器接口715b将数据存储在第一设备存储器731b中。因此,与图7A的设备710a不同,数据的换入和换出可以在图7B的设备710b中执行。
图8是示出根据实施例的系统800的框图。如图8所示,系统800可以包括设备810、交换机820、设备存储器830、存储器840和加速器850。设备810、存储器840和加速器850可以通过交换机820彼此通信。类似于图3A的设备310a,设备810可以包括物理层811、多协议复用器812、第一接口电路813、第二接口电路814和存储器接口815。
除了主机处理器之外,连接到总线的其他元件(例如,存储器840和/或加速器850)可以基于多协议访问设备存储器830。例如,如图8所示,用于将存储在第一设备存储器830中的数据复制到存储器840或向加速器850提供数据的消息可以由主机处理器或DMA基于非一致性协议IO传送到设备810。响应于基于非一致性协议IO接收的消息,第二接口电路814可以通过第一接口电路813和存储器接口815从设备存储器830接收数据,并且可以将接收的数据提供给交换机820。交换机820可以将从设备810接收的数据路由到存储器840或加速器850,并且从交换机820提供的数据可以被存储在存储器840中或者可以被加速器850使用(例如,处理)。
图9是示出根据实施例的基于多协议访问存储器的方法的流程图。如图9所示,基于多协议访问存储器的方法可以包括操作S10和S20。在一些实施例中,图9的方法可以由图3A的设备310a执行。在下文中,将参照图3A描述图9。
参照图9,在操作S10中,可以基于第二协议接收用于请求访问存储器的消息。例如,设备310a可以包括基于第一协议(例如,存储器协议MEM)访问的设备存储器330a,并且第二接口电路314a可以基于第二协议(例如,非一致性协议IO)从总线接收请求访问设备存储器330a的消息。第二接口电路314a可以识别出基于非一致性协议IO接收的消息请求访问设备存储器330a。
在操作S20中,可以访问存储器。例如,第二接口电路314a可以与第一接口电路313a通信,并且可以响应于基于非一致性协议IO接收的消息通过第一接口电路313a和存储器接口315a访问设备存储器330a。当从总线接收的消息指示写入数据时,第二接口电路314a可以将基于非一致性协议IO从总线接收的数据通过第一接口电路313a提供给存储器接口315a,并且存储器接口315a可以将数据写入设备存储器330a中。此外,当从总线接收的消息指示读取数据时,第二接口电路314a可以通过第一接口电路313a从存储器接口315a接收从设备存储器330a读取的数据,并且可以基于非一致性协议IO将数据发送到总线。
图10A和图10B是示出根据实施例的基于多协议访问存储器的方法的示例的流程图。详细地,图10A和图10B示出了访问设备中的存储器的方法,该设备包括可通过第一协议访问的第一设备存储器和可通过第二协议访问的第二设备存储器。在一些实施例中,图10A的方法可以由图7A的设备710a执行,并且图10B的方法可以由图7B的设备710b执行。在下文中,将参照图7A和图7B描述图10A和图10B。
参照图10A,基于多协议访问存储器的方法可以包括操作S30、S40、S50和S60。在操作S30中,可以基于第二协议接收请求复制数据的消息。例如,图7A的第二接口电路714a可以基于第二协议(即,非一致性协议IO)从主机处理器720a接收请求将存储在第二设备存储器732a中的数据复制到第一设备存储器731a的消息。
在操作S40中,可以基于第二协议向总线发送数据。例如,响应于基于非一致性协议IO接收的消息,第二接口电路714a可以基于非一致性协议IO向总线发送从第二设备存储器732a接收的数据。
在操作S50中,可以基于第二协议从总线接收数据。例如,交换机750a可以将在操作S40中从设备710a接收的数据再次路由到设备710a,并且第二接口电路714a可以基于非一致性协议IO接收数据。
在操作S60中,可以将数据存储在第一设备存储器731a中。如上所述,除了支持第一协议(即,存储器协议MEM)的第一接口电路713a之外,支持第二协议(即,非一致性协议IO)的第二接口电路714a也可以访问第一设备存储器731a。第二接口电路714a可以通过第一接口电路713a将在操作S50中接收的数据提供给存储器接口715a,并且存储器接口715a可以将数据存储在第一设备存储器731a中。
参照图10B,基于多协议访问存储器的方法可以包括操作S70、S80和S90。在操作S70中,可以基于第二协议接收请求复制数据的消息。例如,图7B的第二接口电路714b可以基于第二协议(即,非一致性协议IO)从主机处理器720b接收请求将存储在第二设备存储器732b中的数据复制到第一设备存储器731a的消息。
在操作S80中,可以从第二设备存储器732b读取数据,并且在操作S90中可以将读取的数据存储在第一设备存储器731b中。例如,响应于在操作S70中接收的消息,第二接口电路714b可以接收从第二设备存储器732b读取的数据。如上所述,为了提供基于第二协议(即,非一致性协议IO)对第一设备存储器731b的访问,第二接口电路714b可以通过第一接口电路713b与存储器接口715b通信,因此,可以在操作S80中向存储器接口715b提供从第二设备存储器732b接收的数据。存储器接口715b可以将通过第一接口电路713b从第二接口电路714b接收的数据存储在第一设备存储器731b中。
图11A和图11B是示出根据实施例的系统的示例的框图。详细地,图11A和图11B的框图示出了包括多个CPU的系统5a和5b。
参照图11A,系统5a可以包括第一CPU 11a和第二CPU 21a,此外可以包括分别连接到第一CPU 11a和第二CPU 21a的第一双倍数据速率(DDR)存储器12a和第二DDR存储器22a。第一CPU 11a可以通过基于处理器互连技术的互连系统30a连接到第二CPU 21a。如图11A所示,互连系统30a可以提供至少一个CPU到CPU一致性链路。
系统5a可以包括与第一CPU 11a通信的第一输入/输出(I/O)设备13a和第一加速器14a,并且可以包括连接到第一加速器14a的第一设备存储器15a。第一CPU 11a可以通过总线16a与第一I/O设备13a通信,并且第一CPU 11a可以通过总线17a与第一加速器14a通信。此外,系统5a可以包括与第二CPU 21a通信的第二I/O设备23a和第二加速器24a,并且可以包括连接到第二加速器24a的第二设备存储器25a。第二CPU 21a可以通过总线26a与第二I/O设备23a通信,并且第二CPU 21a可以通过总线27a与第二加速器24a通信。在一些实施例中,可以省略系统5a中的第一设备存储器15a和第二设备存储器25a中的至少一者。
可以通过多条总线16a、16b、17a、17b、18、26a、26b、27a、27b和28执行基于多个协议中的至少一些协议的通信。例如,可以通过多条总线16a、16b、17a、17b、18、26a、26b、27a、27b和28中的每一条总线基于非一致性协议传输诸如初始设置的信息。此外,可以通过总线17a和27a基于一致性协议和/或存储器协议传输消息和/或数据。此外,可以通过总线18和28基于存储器协议传输消息和/或数据。
第一CPU 11a可以基于数据的大小从多个协议(例如,存储器协议和非一致性协议)中选择一个协议,并且可以基于所选择的协议访问第一设备存储器15a。因此,可以选择优化的协议,并且可以减少与访问设备存储器15a相关联的延迟。此外,第二CPU 21a可以基于数据的大小从多个协议(例如,存储器协议和非一致性协议)当中选择一个协议,并且可以基于所选择的协议访问第一设备存储器15a。因此,可以选择优化的协议,并且可以减少与访问设备存储器25a相关联的延迟。第一CPU 11a可以通过互连系统30a与第二CPU 21a通信。
参照图11B,类似于图11A的系统5a,系统5b可以包括第一CPU 11b和第二CPU 21b、第一DDR存储器12b和第二DDR存储器22b、第一I/O设备13b和第二I/O设备23b、以及第一加速器14b和第二加速器24b,此外还可以包括远程远存储器40。第一CPU 11b和第二CPU 21b可以分别通过总线18和28连接到远程远存储器40。远程远存储器40可以用于扩展系统5b中的存储器,并且总线18和28可以用作存储器扩展端口。在一些实施例中,可以省略系统5b中的远程远存储器40。第一CPU 11b可以通过互连系统30b与第二CPU 21b通信。
图12是示出根据实施例的包括系统的数据中心7的框图。在一些实施例中,上面参照附图描述的系统可以作为应用服务器和/或存储服务器被包括在数据中心7中。
参照图12,数据中心7可以收集各种数据并提供服务,并且数据中心7可以被称为数据存储中心。例如,数据中心7可以是运行搜索引擎和数据库的系统,或者是诸如银行或政府机构等公司使用的计算系统。如图12所示,数据中心7可以包括多个应用服务器50_1至50_n(n是大于1的整数)和多个存储服务器60_1至60_m(m是大于1的整数)。应用服务器50_1至50_n的数目“n”和存储服务器60_1至60_m的数目“m”可以根据实施例不同地选择,并且应用服务器50_1至50_n的数目“n”可以不同于存储服务器60_1至60_m的数目“m”(m≠n)。
应用服务器50_1或50_n可以包括处理器51_1或51_n、存储器52_1或52_n、交换机53_1或53_n、网络接口控制器(NIC)54_1或54_n以及存储设备55_1或55_n中的至少一者。处理器51_1或51_n可以控制应用服务器50_1或50_n的整体操作,并且可以访问存储器52_1或52_n以执行加载到存储器52_1或52_n的指令和/或数据。在非限制性实施例中,存储器52_1或52_n可以包括双倍数据速率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合存储立方体(HMC)、双列直插式存储器模块(DIMM)、Optane DIMM或非易失性DIMM(NVNDIMM)。根据实施例,可以不同地设置应用服务器50_1或50_n中包括的处理器的数目和存储器的数目。在一些实施例中,处理器51_1或51_n和存储器52_1或52_n可以提供处理器-存储器对。在一些实施例中,处理器51_1至51_n的数目可以不同于存储器52_1至52_n的数目。处理器51_1或51_n可以包括单核处理器或多核处理器。在一些实施例中,如图12中的虚线所示,可以省略应用服务器50_1或50_n中的存储设备55_1或55_n。可以根据实施例不同地设置应用服务器50_1或50_n中包括的存储设备55_1或55_n的数目。处理器51_1或51_n、存储器52_1或52_n、交换机53_1或53_n、网络接口控制器(NIC)54_1或54_n、和/或存储设备55_1或55_n可以通过上面参照附图描述的线路彼此通信。
存储服务器60_1或60_m可以包括处理器61_1或61_m、存储器62_1或62_m、交换机63_1或63_m、NIC 64_1或64_m以及存储设备65_1或65_m中的至少一者。处理器61_1或61_m和存储器62_1或62_m可以分别以与上述应用服务器50_1或50_n的处理器51_1或51_n和存储器52_1或52_n类似的方式运行。
应用服务器50_1至50_n和存储服务器60_1至60_m可以通过网络70彼此通信。在一些实施例中,可以使用光纤通道(FC)或以太网等来实现网络70。FC可以是用于以相对高速率传输数据的介质,并且可以使用提供高性能/高可用性的光学交换机。基于网络70的访问方案,存储服务器60_1至60_m可以被提供为文件存储器、块存储器或对象存储器。
在一些实施例中,网络70可以是诸如存储区域网络(SAN)的存储专用网络。例如,SAN可以是使用FC网络并且基于FC协议(FCP)实现的FC-SAN。另一方面,SAN可以是使用传输控制协议/IP(TCP/IP)并基于iSCSI(SCSI over TCP/IP或Internet SCSI)协议实现的互联网协议-SAN(IP-SAN)。在一些实施例中,网络70可以是诸如TCP/IP网络的通用网络。例如,网络70可以基于诸如以太网上的FC(FC over Ethernet,FCoE)、网络附加存储(NAS)、结构上的NVMe(NVMe over Fabrics,NVMe-oF)等的协议来实现。
在下文中,将主要描述应用服务器50_1和存储服务器60_1,但是应用服务器50_1的描述可以应用于其他应用服务器(例如,50_n),并且存储服务器60_1的描述可以应用于其他存储服务器(例如,60_m)。
应用服务器50_1可以通过网络70在存储服务器60_1至60_m之一中存储用户或客户端请求存储的数据。此外,应用服务器50_1可以通过网络70从存储服务器60_1至60_m之一获得用户或客户端请求读取的数据。例如,应用服务器50_1可以使用网络服务器或数据库管理系统(DBMS)来实现。
应用服务器50_1可以通过网络70访问各自被包括在应用服务器50_n中的存储器52_n和/或存储设备55_n,和/或可以通过网络70访问分别被包括在存储服务器60_1至60_m中的存储器62_1至62_m和/或存储设备65_1至65_m。因此,应用服务器50_1可以对存储在应用服务器50_1至50_n和/或存储服务器60_1至60_m中的数据执行各种操作。例如,应用服务器50_1可以执行用于在应用服务器50_1至50_n和/或存储服务器60_1至60_m之间移动或复制数据的指令。在这种情况下,数据可以从存储服务器60_1至60_m的存储设备65_1至65_m直接地或通过存储服务器60_1至60_m的存储器62_1至62_m移动到应用服务器50_1至50_n的存储器52_1至52_n。在一些实施例中,通过网络70移动的数据可以是为了安全或隐私而加密的数据。
在存储服务器60_1中,接口IF可以提供处理器61_1与控制器CTRL之间的物理连接以及NIC 64_1与控制器CTRL之间的物理连接。例如,可以基于直接附加存储(DAS)方案来实现接口IF,在该方案中通过使用专用电缆直接访问存储设备65_1。此外,例如,可以基于诸如以下各种接口方案来实现接口IF:高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、快速PCI(PCIe)、快速NVM(NVMe)、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、通用闪存(UFS)、嵌入式通用闪存(eUFS)或紧凑型闪存(CF)卡接口。
在存储服务器60_1中,基于处理器61_1的控制,交换机63_1可以将处理器61_1选择性地连接到存储设备65_1,或者可以将NIC 64_1选择性地连接到存储设备65_1。
在一些实施例中,NIC 64_1可以包括网络接口卡、网络适配器等。NIC64_1可以通过有线接口、无线接口、蓝牙接口、和/或光学接口连接到网络70。NIC 64_1可以包括内部存储器、数字信号处理器(DSP)、主机总线接口,并且可以通过主机总线接口连接到处理器61_1和/或交换机63_1。在一些实施例中,NIC 64_1可以集成到处理器61_1、交换机63_1和存储设备65_1中的至少一者。
在应用服务器50_1至50_n或存储服务器60_1至60_m中,处理器51_1至51_m或61_1至61_n可以向存储设备55_1至55_n以及65_1至65_m或存储器52_1至52_n以及62_1至62_m发送命令,从而编程或读取数据。在这种情况下,数据可以是由纠错码(ECC)引擎纠正错误后的数据。数据可以是已经对其执行了数据总线反相(DBI)或数据屏蔽(DM)的数据,并且可以包括循环冗余码(CRC)信息。数据可以是为了安全或隐私而加密的数据。
响应于从处理器51_1至51_m或61_1至61_n接收的读取命令,存储设备55_1至55_n或65_1至65_m可以向非易失性存储器件(例如,NAND闪存器件NVM)发送控制信号和命令/地址信号。因此,在从非易失性存储器件NVM读取数据的情况下,可以输入读取使能信号作为数据输出控制信号,并且数据可以被输出到DQ总线。通过使用读取使能信号可以产生数据选通信号。可以基于写入使能信号的上升沿或下降沿锁存命令和地址信号。
控制器CTRL可以控制存储设备65_1的整体操作。在实施例中,控制器CTRL可以包括静态随机存取存储器(SRAM)。控制器CTRL可以响应于写入命令将数据写入非易失性存储器件NVM,或者响应于读取命令从非易失性存储器件NVM读取数据。例如,可以基于从主机(例如,存储服务器60_1的处理器61_1、存储服务器60_m的处理器61_m、或应用服务器50_1或50_n的处理器51_1或51_n)提供的请求,产生写入命令和/或读取命令。缓冲器BUF可以临时存储(缓冲)要写入非易失性存储器件NVM的数据或从非易失性存储器件NVM读取的数据。在一些实施例中,缓冲器BUF可以包括DRAM。此外,缓冲器BUF可以存储元数据,并且元数据可以指用户数据或由控制器CTRL产生的用以管理非易失性存储器件NVM的数据。存储设备65_1可以包括用于安全或隐私的安全元件(SE)。
虽然已经示出和描述了实施例,但是应当理解的是,在不脱离所附权利要求的精神和范围的情况下,可以对本文进行形式和细节上的各种改变。
Claims (20)
1.一种被配置为通过总线进行通信的设备,所述设备包括:
第一接口电路,所述第一接口电路被配置为基于第一协议通过所述总线提供对第一存储器的第一访问;以及
第二接口电路,所述第二接口电路被配置为基于第二协议通过所述总线提供非一致性输入/输出接口,其中,
所述第二接口电路还被配置为通过响应于基于所述第二协议通过所述总线接收的第一消息访问所述第一存储器,通过所述总线提供对所述第一存储器的第二访问。
2.根据权利要求1所述的设备,其中,所述第一访问包括具有固定的第一大小的第一数据,并且
所述第二访问包括具有可变的第二大小的第二数据。
3.根据权利要求2所述的设备,其中,所述第二大小大于所述第一大小。
4.根据权利要求1所述的设备,所述设备还包括一致性引擎,所述一致性引擎被配置为:
监测所述第一访问和所述第二访问,以及
解析所述第一存储器的一致性。
5.根据权利要求4所述的设备,所述设备还包括第三接口电路,所述第三接口电路被配置为基于第三协议通过所述总线提供从所述一致性引擎接收的消息。
6.根据权利要求1所述的设备,其中,所述第二接口电路还被配置为基于所述第二协议从所述总线接收第二消息,并且
所述第二消息被配置为使所述设备将存储在第二存储器中的第二数据复制到所述第一存储器,其中,所述设备还被配置为通过所述第二接口电路访问所述第二存储器。
7.根据权利要求6所述的设备,其中,所述第二接口电路还被配置为:
响应于所述第二消息,基于所述第二协议向所述总线发送所述第二数据,
基于所述第二协议从所述总线接收所述第二数据,以及
向所述第一存储器提供从所述总线接收的所述第二数据。
8.根据权利要求6所述的设备,其中,所述第二接口电路还被配置为:
响应于所述第二消息从所述第二存储器接收所述第二数据,以及
向所述第一存储器提供所述第二数据。
9.根据权利要求1所述的设备,其中,所述第一协议是计算快速链路的CXL.mem,并且
所述第二协议是计算快速链路的的CXL.io。
10.一种连接到总线的设备的运行方法,所述运行方法包括:
基于第一协议通过所述总线提供对第一存储器的第一访问;以及
基于第二协议通过所述总线提供非一致性输入/输出接口,其中,
所述非一致性输入/输出接口的提供包括:通过响应于基于所述第二协议通过所述总线接收的第一消息访问所述第一存储器,来提供对所述第一存储器的第二访问。
11.根据权利要求10所述的运行方法,其中,所述的提供所述第一访问包括向所述总线发送具有第一大小的第一数据,或者从所述总线接收所述第一数据,所述第一大小是固定的,并且
所述的提供所述第二访问包括向所述总线发送具有第二大小的第二数据,或者从所述总线接收所述第二数据,所述第二大小是可变的。
12.根据权利要求10所述的运行方法,所述运行方法还包括解析所述第一存储器的一致性,其中,所述解析包括监测所述第一访问和所述第二访问。
13.根据权利要求10所述的运行方法,所述运行方法还包括基于所述第二协议提供对第二存储器的第三访问,其中,
所述的提供所述第二访问包括接收第二消息,其中,所述第二消息基于所述第二协议,以及
响应于所述第二消息,将存储在所述第二存储器中的第二数据复制到所述第一存储器。
14.根据权利要求13所述的运行方法,其中,所述的提供所述第二访问包括:
响应于所述第二消息,基于所述第二协议向所述总线发送所述第二数据;
基于所述第二协议从所述总线接收所述第二数据;以及
将从所述总线接收的所述第二数据存储在所述第一存储器中。
15.根据权利要求13所述的运行方法,其中,所述的提供所述第二访问包括:
响应于所述第二消息,从所述第二存储器读取所述第二数据;以及
将所述第二数据存储在所述第一存储器中。
16.一种系统,包括:
设备,所述设备连接到总线并且被配置为与第一存储器通信;以及
主机处理器,其中,所述主机处理器被配置为:
基于要写入所述第一存储器或要从所述第一存储器读取的第一数据的大小选择第一协议或第二协议,以及
基于所选择的协议,通过所述总线对所述第一存储器执行第一访问,
其中,
所述第一协议是用于存储器访问的专用协议,并且
所述第二协议是用于非一致性输入/输出的协议。
17.根据权利要求16所述的系统,其中,所述主机处理器还被配置为:
当所述第一数据的大小大于阈值时,选择所述第二协议,并且
当所述第一数据的大小小于或等于所述阈值时,选择所述第一协议。
18.根据权利要求16所述的系统,其中,所述设备还被配置为:
监测基于所述第一协议的所述第一访问;
监测基于所述第二协议的第二访问;以及
基于第三协议,向所述主机处理器提供用于解析一致性的消息。
19.根据权利要求16所述的系统,其中,所述设备还包括第二存储器,所述第二存储器被配置为由所述主机处理器基于所述第二协议进行访问,
所述主机处理器还被配置为向所述设备提供指示将第二数据复制到所述第一存储器的消息,
所述消息基于所述第二协议,
所述第二数据被存储在所述第二存储器中,并且
所述设备还被配置为基于所述第二协议访问所述第二存储器。
20.根据权利要求19所述的系统,所述系统还包括连接到所述总线的交换机,其中,
所述设备还被配置为:
响应于所述消息基于所述第二协议,从所述第二存储器读取所述第二数据,
向所述交换机提供所述第二数据,以及
将基于所述第二协议从所述交换机接收的所述第二数据存储在所述第一存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200150510A KR20220064230A (ko) | 2020-11-11 | 2020-11-11 | 다중 프로토콜에 기초하여 메모리에 액세스하기 위한 시스템, 장치 및 방법 |
KR10-2020-0150510 | 2020-11-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114546902A true CN114546902A (zh) | 2022-05-27 |
Family
ID=81454517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110846161.2A Pending CN114546902A (zh) | 2020-11-11 | 2021-07-26 | 基于多协议访问存储器的系统、设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220147470A1 (zh) |
KR (1) | KR20220064230A (zh) |
CN (1) | CN114546902A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240134796A1 (en) * | 2022-10-20 | 2024-04-25 | Samsung Electronics Co., Ltd. | Persistent storage with dual interface |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3657428B2 (ja) * | 1998-04-27 | 2005-06-08 | 株式会社日立製作所 | 記憶制御装置 |
US8145625B2 (en) * | 2007-07-13 | 2012-03-27 | Intel Corporation | Methods and systems for optimizing data accesses |
US8615637B2 (en) * | 2009-09-10 | 2013-12-24 | Advanced Micro Devices, Inc. | Systems and methods for processing memory requests in a multi-processor system using a probe engine |
JP5685454B2 (ja) * | 2010-02-18 | 2015-03-18 | 富士通株式会社 | ストレージ装置およびストレージシステム |
US10126987B2 (en) * | 2012-10-18 | 2018-11-13 | Marvell International Ltd. | Storage devices and methods for controlling a storage device |
US10733100B2 (en) * | 2017-06-12 | 2020-08-04 | Western Digital Technologies, Inc. | Method and apparatus for classifying and buffering write commands |
US20190004990A1 (en) * | 2017-07-01 | 2019-01-03 | Stephen R. Van Doren | Techniques to support mulitple interconnect protocols for an interconnect |
US10817455B1 (en) * | 2019-04-10 | 2020-10-27 | Xilinx, Inc. | Peripheral I/O device with assignable I/O and coherent domains |
US11762802B2 (en) * | 2019-12-05 | 2023-09-19 | Intel Corporation | Streaming fabric interface |
US11698879B2 (en) * | 2019-12-06 | 2023-07-11 | Intel Corporation | Flexible on-die fabric interface |
-
2020
- 2020-11-11 KR KR1020200150510A patent/KR20220064230A/ko unknown
-
2021
- 2021-07-26 CN CN202110846161.2A patent/CN114546902A/zh active Pending
- 2021-09-03 US US17/466,726 patent/US20220147470A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220147470A1 (en) | 2022-05-12 |
KR20220064230A (ko) | 2022-05-18 |
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 | |
US11645011B2 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
EP4123649A1 (en) | Memory module, system including the same, and operation method of memory module | |
US20220137864A1 (en) | Memory expander, host device using memory expander, and operation method of sever system including memory expander | |
US20230325277A1 (en) | Memory controller performing selective and parallel error correction, system including the same and operating method of memory device | |
US11962675B2 (en) | Interface circuit for providing extension packet and processor including the same | |
US11983115B2 (en) | System, device and method for accessing device-attached memory | |
US20220147470A1 (en) | System, device, and method for accessing memory based on multi-protocol | |
US20230229357A1 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
US11809341B2 (en) | System, device and method for indirect addressing | |
US11853215B2 (en) | Memory controller, system including the same, and operating method of memory device for increasing a cache hit and reducing read latency using an integrated commad | |
US20240086110A1 (en) | Data storage method, storage apparatus and host | |
US11868270B2 (en) | Storage system and storage device, and operating method thereof | |
US20240168675A1 (en) | Storage apparatus and method for data integrity | |
US20220147458A1 (en) | Semiconductor device | |
US20230222067A1 (en) | Apparatus and method for cache-coherence | |
KR20230169885A (ko) | 영구 메모리 장치 및 컴퓨팅 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |