CN115729864A - 存储装置、电子装置以及电子装置的操作方法 - Google Patents
存储装置、电子装置以及电子装置的操作方法 Download PDFInfo
- Publication number
- CN115729864A CN115729864A CN202210480440.6A CN202210480440A CN115729864A CN 115729864 A CN115729864 A CN 115729864A CN 202210480440 A CN202210480440 A CN 202210480440A CN 115729864 A CN115729864 A CN 115729864A
- Authority
- CN
- China
- Prior art keywords
- storage device
- data
- command
- processor
- memory
- 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
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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
-
- 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/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/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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Abstract
公开了存储装置、电子装置以及电子装置的操作方法,所述存储装置包括非易失性存储器装置、缓冲存储器、与外部装置连接的端口以及存储控制器。当通过端口从外部装置接收的命令对应于第一包格式时,存储控制器响应于所述命令,通过使用缓冲存储器来访问非易失性存储器装置。当通过端口从外部装置接收的命令对应于第二包格式时,存储控制器响应于所述命令,在不访问非易失性存储器装置的情况下访问缓冲存储器。
Description
本申请要求于2021年8月27日提交到韩国知识产权局的第10-2021-0113583号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
在此描述的本公开的实施例涉及电子装置,更具体地,涉及执行负载平衡的计算存储装置。
背景技术
处理大量数据的电子装置(诸如,服务器)可被配备有多个处理器、多个主存储器和存储装置。因为电子装置(诸如,服务器)处理大量数据,所以诸如加密、解密、压缩和解压缩的数据处理(例如,计算操作)可需要大量资源(例如,计算操作、功率和时间)。
为了减少服务器的大资源消耗,替代地执行和/或处理服务器的处理器的任务的计算存储装置正在被研究。处理器可将通过计算存储装置支持的任务委托给计算存储装置。因此,处理器的资源消耗可被减少,并且处理器的时延可被减少。
发明内容
本公开的示例性实施例提供了一种存储装置,所述存储装置针对从电子装置的处理器委托的任务支持计算存储装置之间的负载平衡,而不对处理器施加这样的开销,包括存储装置的电子装置以及电子装置的操作方法被公开。
根据示例性实施例,一种存储装置包括非易失性存储器装置、缓冲存储器、与外部装置连接的端口以及存储控制器。当通过端口从外部装置接收的命令对应于第一包格式时,存储控制器响应于所述命令,通过使用缓冲存储器来访问非易失性存储器装置。当通过端口从外部装置接收的命令对应于第二包格式时,存储控制器响应于所述命令,在不访问非易失性存储器装置的情况下访问缓冲存储器。
根据示例性实施例,一种电子装置包括:至少一个处理器;第一存储装置和第二存储装置,各自包括缓冲存储器和非易失性存储器装置;以及根复合体,电连接所述至少一个处理器、第一存储装置和第二存储装置。第一存储装置和第二存储装置中的每个响应于通过根复合体从所述至少一个处理器接收的第一包格式的命令,通过使用缓冲存储器来访问非易失性存储器装置,并且响应于通过根复合体从所述至少一个处理器接收的第二包格式的命令,在不访问非易失性存储器装置的情况下访问缓冲存储器。
根据示例性实施例,一种包括至少一个处理器、第一存储装置、第二存储装置和根复合体的电子装置的操作方法包括:在所述至少一个处理器处,基于第一包格式通过根复合体将第一任务和第二任务分别分配给第一存储装置和第二存储装置;在所述至少一个处理器处,通过根复合体监测第一存储装置的计算利用率和第二存储装置的计算利用率;当第一存储装置的计算利用率与第二存储装置的计算利用率之间的差大于第一阈值时,指示所述至少一个处理器基于第二包格式通过根复合体平衡第一存储装置和第二存储装置;以及在第一存储装置和第二存储装置处,在不经过所述至少一个处理器的情况下通过根复合体执行所述平衡。
附图说明
通过参照附图对本公开的示例性实施例的详细描述,本公开的以上目的和特征以及其他目的和特征将变得清楚。
图1示出根据本公开的示例性实施例的存储装置。
图2示出根据本公开的示例性实施例的存储装置的操作方法的示例。
图3示出根据本公开的示例性实施例的端口。
图4示出根据本公开的示例性实施例的电子装置。
图5示出电子装置的操作方法的第一示例。
图6示出在图4的电子装置中执行根据图5的操作方法的操作的处理的示例。
图7示出电子装置的操作方法的第二示例。
图8示出在图4的电子装置中执行根据图7的操作方法的操作的处理的示例。
图9示出电子装置的操作方法的第三示例。
图10示出在图4的电子装置中执行根据图9的操作方法的操作的处理的示例。
图11示出电子装置的操作方法的第四示例。
图12示出在图4的电子装置中执行根据图11的操作方法的操作的处理的示例。
图13示出电子装置确定平衡是否被需要的处理的示例。
图14示出电子装置确定是否禁止平衡的处理的示例。
图15示出根据本公开的另一示例性实施例的电子装置。
图16示出根据本公开的另一示例性实施例的电子装置。
图17示出电子装置在不同区域之间执行平衡的示例。
图18示出电子装置在不同区域中执行平衡的处理的示例。
具体实施方式
以下,将以使本领域技术人员可容易地实施本发明的程度详细并清楚地描述本公开的示例性实施例。以下,术语“和/或”被解释为包括关于该术语所列项中的任何一个、所列项中的至少一个、所列项中的一些的组合、或所有所列项的组合。
图1示出根据本公开的示例性实施例的存储装置100。参照图1,存储装置100可包括非易失性存储器装置110、端口120、存储控制器130、缓冲存储器140和计算模块150。
非易失性存储器装置110可在存储控制器130的控制下进行操作。即使非易失性存储器装置110的电源可能断开,非易失性存储器装置110也可存储数据。非易失性存储器装置110可以以各种类型的存储器(诸如,闪存、相变存储器、铁电存储器、磁存储器和电阻式存储器)实现。
端口120可与外部装置进行通信。端口120可从外部装置接收命令或数据。端口120可向外部装置发送响应、中断或数据。例如,端口120可被实现为基于PCIe(外围组件互连)或NVMe(非易失性存储器快速)TM进行操作。
存储控制器130可驱动控制和管理存储装置100的固件或软件。存储控制器130可通过端口120从外部装置接收命令或数据。存储控制器130可响应于从外部装置提供的命令或者基于由驱动存储装置100的固件或软件内部确定的调度,访问非易失性存储器装置110、缓冲存储器140或计算模块150。
存储控制器130可通过端口120向外部装置发送对通过端口120从外部装置接收的命令的响应或者访问非易失性存储器装置110、缓冲存储器140或计算模块150的结果。存储控制器130可通过端口120向外部装置发送状态信息、中断等。
缓冲存储器140可在存储控制器130的控制下进行操作。缓冲存储器140可包括随机存取存储器。例如,缓冲存储器140可用动态随机存取存储器、静态随机存取存储器、相变随机存取存储器、铁电随机存取存储器、磁随机存取存储器、电阻式随机存取存储器等来实现。
缓冲存储器140可通过临时地存储将被写入非易失性存储器装置110中的数据或从非易失性存储器装置110读取的数据来执行缓冲操作。缓冲存储器140可用作存储将由计算模块150处理的数据或由计算模块150处理的数据的工作存储器。缓冲存储器140可用作存储将由存储控制器130使用的元数据的系统存储器。
计算模块150可在存储控制器130的控制下进行操作。计算模块150可针对存储在缓冲存储器140中的数据(例如,在由存储控制器130从缓冲存储器140读取之后被传送到计算模块150的数据)执行至少一个操作。至少一个操作可包括加密、解密、压缩、解压缩、数据库过滤、图像处理、乘法、加法、乘法累加和神经网络推断(inference)或分类。数据库过滤可包括检索包括或不包括特定词的数据。
计算模块150可被实现为包括加密单元和解密单元、压缩器和解压缩器、神经处理器、神经形态处理器、图形处理器(GPU)、图像处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、乘法器、加法器、乘法器和累加器(MAC)、浮点单元(FPU)、量化器、归一化器以及数据库过滤器中的至少一个。
计算模块150可包括两个或更多个同构或异构的并行或串行子模块。计算模块150可通过使用两个或更多个子模块中的一些或全部来执行操作。
存储装置100可通过使用计算模块150来执行从外部装置委托的任务。例如,存储装置100可用计算存储装置(CSD)来实现。
图2示出根据本公开的示例性实施例的存储装置100的操作方法的示例。参照图1和图2,在操作S110中,存储装置100的存储控制器130可通过端口120从外部装置接收与第一包格式PF1对应的第一命令C1。例如,第一包格式PF1可对应于或NVMeTM。
在操作S120中,存储控制器130可响应于第一命令C1来访问非易失性存储器装置110。例如,存储控制器130可通过缓冲存储器140(例如,通过缓冲)来访问非易失性存储器装置110,或者可在不经过缓冲存储器140(没有缓冲)的情况下直接访问非易失性存储器装置110。对非易失性存储器装置110的访问可包括写入操作或读取操作。
在操作S130中,存储装置100的存储控制器130可通过端口120从外部装置接收与第二包格式PF2对应的第二命令C2。例如,第二包格式PF2可对应于CXL(计算快速链路)TM。
在操作S140中,存储控制器130可响应于第二命令C2来访问缓冲存储器140。对缓冲存储器140的访问可包括写入操作或读取操作。例如,存储控制器130可在不访问非易失性存储器装置110的情况下访问缓冲存储器140。
在一个示例性实施例中,与第一包格式PF1对应的第一命令C1可选择性地包括关于计算模块150的信息(诸如,操作码opcode、描述符或参数(argument))。响应于关于计算模块150的信息,存储控制器130可允许计算模块150针对在通过端口120从外部主机装置被接收之后被加载到缓冲存储器140上的数据或在从非易失性存储器装置110被读取之后被加载到缓冲存储器140上的数据执行至少一个操作。
如上所述,根据与第一包格式PF1对应的第一命令C1,存储装置100可支持与被加载到缓冲存储器140上的数据相关联的计算模块150的操作。因此,存储装置100可用计算存储装置(CSD)来实现。根据与第二包格式PF2对应的第二命令C2,存储装置100可与外部装置交换被加载到缓冲存储器140上的数据(例如,存储控制器130可通过端口120将存储在缓冲存储器140中的数据输出到外部装置,并且存储控制器130可将通过端口120从外部装置接收的数据存储在缓冲存储器140中)。因此,存储装置100可被实现为支持能够用外部装置分发和执行计算模块150的操作的平衡(例如,操作负载的平衡)。
图3示出根据本公开的示例性实施例的端口200。例如,端口200可对应于图1的端口120的实施方式示例。参照图1和图3,可基于CXLTM来实现端口200。端口200可包括Flex总线物理层210、CXL仲裁器/复用器(CXL ARB/MUX)220、CXL链路层230和CXL事务层240。
Flex总线物理层210可包括PCIe电气子块211和PCIe/CXL逻辑子块212。PCIe电气子块211可由和CXLTM共同使用。也就是说,与第一包格式PF1对应的第一命令C1的电气特性可和与第二包格式PF2对应的第二命令C2的电气特性相同。
CXL仲裁器/复用器220可将在模式下从Flex总线物理层210传送的第一包格式PF1的包或者与CXLTM模式下的输入和输出(io)相关联的第二包格式PF2的包传送到CXL链路层230的PCIe/CXL.io链路层231。CXL仲裁器/复用器220可将第二包格式PF2的包传送到CXL链路层230的CXL.Cache+CXL.mem链路层235,第二包格式PF2的包与高速缓存和/或存储器相关联并且在CXLTM模式下从Flex总线物理层210被传送。
PCIe/CXL.io链路层231可包括PCIe数据链路层232和CXL.io链路层增强233。PCIe数据链路层232可用作模式下的数据链路层。CXL.io链路层增强233可用作与CXLTM模式下的输入和输出io相关联的数据链路层。
CXL事务层240可基于CXL链路层230起作用。CXL事务层240可包括PCIe/CXL.io事务层241和CXL.Cache+CXL.mem事务层245。PCIe/CXL.io事务层241可包括PCIe数据事务层242和CXL.io事务层增强243。
PCIe数据事务层242可基于PCIe数据链路层232起作用。CXL.io事务层增强243可基于CXL.io链路层增强233起作用。CXL.Cache+CXL.mem事务层245可基于CXL.Cache+CXL.mem链路层235起作用。
图4示出根据本公开的示例性实施例的电子装置300。参照图4,电子装置300可用计算装置或服务器来实现。电子装置300可包括处理器310、主存储器320、调制解调器330、根复合体340、第一存储装置350和第二存储装置360。
处理器310可包括至少一个主处理器和至少一个辅助处理器。至少一个主处理器可包括中央处理器(CPU)或应用处理器(AP)。至少一个辅助处理器可包括各种处理器或硬件加速器(诸如,图形处理器(GPU)、图像信号处理器(ISP)、数字信号处理器(DSP)、神经处理器或神经形态处理器(NP)、神经处理单元或神经形态处理单元(NPU))。
主存储器320可与电子装置300的系统存储器和/或处理器310的工作存储器一起使用。主存储器320可包括两个或更多个同构或异构的存储器。主存储器320可包括各种存储器(诸如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、相变随机存取存储器(PRAM)、磁随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、电阻式随机存取存储器(RRAM)和存储级存储器(SCM))中的至少一种。
主存储器320可直接与处理器310进行通信,和/或可通过根复合体340与电子装置300的任何其他(一个或多个)组件进行通信。主存储器320与处理器310进行通信的通信协议可与主存储器320与根复合体340进行通信的通信协议相同或不同。
调制解调器330可与外部装置进行通信。调制解调器330可被实现为基于各种有线通信协议和无线通信协议中的至少一种与外部装置进行通信。调制解调器330可通过根复合体340将从外部装置接收的数据传送到处理器310或主存储器320。调制解调器330可向外部装置发送通过根复合体340从处理器310或主存储器320接收的数据。
根复合体340可将处理器310和/或主存储器320与电子装置300的任何其他(一个或多个)组件(例如,包括调制解调器330、第一存储装置350和第二存储装置360)电连接和/或通信地连接。可选地,根复合体340可电连接和/或通信地连接电子装置300的任何其他(一个或多个)组件(例如,包括调制解调器330、第一存储装置350和第二存储装置360)。
根复合体340可仲裁处理器310和/或主存储器320与电子装置300的任何其他(一个或多个)组件(例如,包括调制解调器330、第一存储装置350和第二存储装置360)的通信。可选地,根复合体340可仲裁电子装置300的任何其他组件(例如,包括调制解调器330、第一存储装置350和第二存储装置360)之间的通信。
第一存储装置350和第二存储装置360可与根复合体340连接。第一存储装置350和第二存储装置360中的每个可对应于图1的存储装置100。例如,第一存储装置350和第二存储装置360中的每个可包括非易失性存储器装置110、端口120、存储控制器130、缓冲存储器140和计算模块150。
如参照图2所述,响应于从处理器310接收到第一包格式PF1的第一命令C1,第一存储装置350或第二存储装置360的存储控制器130可通过使用缓冲存储器140来访问非易失性存储器装置110。响应于从处理器310接收到第二包格式PF2的第二命令C2,第一存储装置350或第二存储装置360的存储控制器130可访问缓冲存储器140。
图5示出电子装置300的操作方法的第一示例。图6示出在图4的电子装置300中执行根据图5的操作方法的操作的处理的示例。参照图5和图6,在操作S210中,第一存储装置350可从处理器310接收第三命令C3和第一数据D1。第三命令C3可具有第一包格式(例如,的包格式)。
第三命令C3可以是用于第一数据D1的命令(例如,写入命令和/或计算命令)。第三命令C3指示的操作的细节可由第三命令C3的详细信息字段(诸如,第三命令C3的操作码opcode、第三命令C3的描述符和/或第三命令C3的参数)定义。第三命令C3和第一数据D1可通过根复合体340和端口120从处理器310被传送到存储控制器130。存储控制器130可将第一数据D1存储在缓冲存储器140中(或加载到存储器140上)。
在操作S220中,第一存储装置350可响应于第三命令C3,开始与第一数据D1相关联的操作(例如,至少一个计算/运算/操作)。存储控制器130可基于计算模块150的操作单元将存储在缓冲存储器140中(或加载到缓冲存储器140上)的数据传送到计算模块150。计算模块150可针对从存储控制器130传送的操作单元的数据执行由第三命令C3指示的至少一个操作。存储控制器130可将由计算模块150执行的操作的结果存储在缓冲存储器140中(或加载到缓冲存储器140上)。
存储控制器130可通过重复控制缓冲存储器140和计算模块150的操作来对第一数据D1执行操作,以便重复下面的操作:1)将加载到缓冲存储器140上的数据之中的与操作单元对应的数据传送到计算模块150的操作,2)允许计算模块150对操作单元的数据执行操作(或处理操作单元的数据)的操作,以及3)将由计算模块150执行的操作的结果存储在缓冲存储器140中(或加载到缓冲存储器140上)的操作。
在操作S230中,第一存储装置350可向处理器310报告利用率。例如,存储控制器130可监测计算模块150的利用率。(i)在计算模块150开始操作之后,(ii)在计算模块150开始操作之后随后在特定时间过去之后,(iii)响应计算模块150开始操作,并且计算模块150的利用率的改变饱和到阈值或更小,和/或(iv)周期性地基于特定时段(例如,时间段),存储控制器130可通过端口120和根复合体340(例如,以中断的形式)向处理器310报告计算模块150的利用率。
可选地,通过在向第一存储装置350发送第三命令C3之后,在从向第一存储装置350发送第三命令C3起经过特定时间之后,和/或周期性地基于特定时段(例如,时间段),向第一存储装置350轮询(poll)计算模块150的利用率,处理器310请求(或引导(direct))第一存储装置350通过根复合体340报告计算模块150的利用率。
在操作S240中,处理器310可确定平衡(例如,操作负载的平衡)不被需要。例如,处理器310可监测第一存储装置350和/或第二存储装置360的利用率,并且可根据监测结果确定平衡不被需要。如果确定平衡不被需要,则处理器310可不向第一存储装置350和第二存储装置360请求平衡。
在操作S250中,第一存储装置350可完成与第一数据D1相关联的操作。例如,第一存储装置350的存储控制器130可针对加载到缓冲存储器140上的数据通过重复基于参照操作S220描述的操作单元的操作来完成与第一数据D1相关联的操作。
在操作S260中,第一存储装置350可存储和/或输出操作的结果。例如,第一存储装置350的存储控制器130可将存储在(或加载到)缓冲存储器140中的操作结果存储在非易失性存储器装置110中,和/或可通过端口120和根复合体340(例如,基于第一包格式PF1)将操作结果输出到处理器310。
当操作S210至操作S260被执行时,电子装置300的处理器310向第一存储装置350委托和处理至少一个计算/运算/操作的处理可被完成。
图7示出电子装置300的操作方法的第二示例。图8示出在图4的电子装置300中执行根据图7的操作方法的操作的处理的示例。参照图7和图8,在操作S310中,第一存储装置350可从处理器310接收第三命令C3和第一数据D1。在操作S320中,第一存储装置350可响应于第三命令C3,开始与第一数据D1相关联的操作(例如,至少一个计算/运算/操作)。在操作S330中,第一存储装置350可向处理器310报告利用率。操作S310至操作S330可与操作S210至操作S230相同地被执行。因此,将省略与操作S310至操作S330相关联的附加描述,以避免冗余。
在操作S340中,处理器310可确定平衡(例如,操作负载的平衡)被需要。例如,处理器310可监测第一存储装置350和/或第二存储装置360的利用率,并且可根据监测结果来确定平衡被需要。
如果确定平衡被需要,则处理器310可向第一存储装置350和第二存储装置360请求平衡。例如,在操作S350中,处理器310可向第一存储装置350发送具有第二包格式(即,CXLTM的包格式(或与CXLTM的包格式之中的“CXL.mem”相关联的包格式))的第四命令C4。第四命令C4可通过根复合体340和端口120被传送到存储控制器130。第四命令C4可包括用于请求(或引导)通过根复合体340将被指定为与第三命令C3对应的操作的目标的数据(例如,第一数据D1)的段发送到第二存储装置360的信息。
在操作S355中,处理器310可向第二存储装置360发送具有第二包格式(即,CXLTM的包格式(或与CXLTM的包格式之中的“CXL.mem”相关联的包格式))的第五命令C5。第五命令C5可通过根复合体340和端口120被传送到存储控制器130。第五命令C5可包括用于请求(或引导)将通过根复合体340从第一存储装置350传送的数据存储在第二存储装置360的缓冲存储器140中(或加载到第二存储装置360的缓冲存储器140上)的信息。
在操作S360中,第一存储装置350的存储控制器130可通过端口120将加载到缓冲存储器140上的第一数据D1之中的由第四命令C4指定的部分数据传送到根复合体340。例如,第一数据D1的部分数据可通过第二包格式PF2的至少一个包被传送到根复合体340。根复合体340可将从第一存储装置350传送的第二包格式PF2的数据包传送到第二存储装置360。第二存储装置360的存储控制器130可将包括在通过端口120从根复合体340接收的数据包中的数据存储在缓冲存储器140中(或加载到缓冲存储器140上)。
在操作S370中,第一存储装置350可针对除发送的部分数据(或段)之外的第一数据D1的剩余数据(例如,第一数据D1的第一部分数据)继续基于操作单元的操作。在操作S375中,第二存储装置360可针对第一数据D1的发送的部分数据(或段)(例如,第一数据D1的第二部分数据)开始基于操作单元的操作。
在操作S380中,第一存储装置350可完成与第一数据D1的第一部分数据相关联的操作。例如,第一存储装置350的存储控制器130可针对加载到缓冲存储器140上的第一部分数据通过重复基于参照操作S220描述的操作单元的操作来完成与第一部分数据相关联的操作。在操作S385中,第二存储装置360可完成与第一数据D1的第二部分数据相关联的操作。例如,第二存储装置360的存储控制器130可针对加载到缓冲存储器140上的第二部分数据通过重复基于参照操作S220描述的操作单元的操作来完成与第二部分数据相关联的操作。
在操作S390中,第一存储装置350可存储和/或输出与第一部分数据相关联的操作的结果。例如,第一存储装置350的存储控制器130可将存储在(或加载到)缓冲存储器140中的第一部分数据的操作结果存储在非易失性存储器装置110中,和/或可通过端口120和根复合体340(例如,基于第一包格式PF1)将操作结果输出到处理器310。
在操作S395中,第二存储装置360可存储和/或输出与第二部分数据相关联的操作的结果。例如,第二存储装置360的存储控制器130可将存储在(或加载到)缓冲存储器140中的第二部分数据的操作结果存储在非易失性存储器装置110中,和/或可通过端口120和根复合体340将操作结果(例如,基于第一包格式PF1)输出(或返回)到处理器310和/或(例如,通过第二包格式PF2)输出(或返回)到第一存储装置350。
当操作S310至操作S395被执行时,电子装置300的处理器310向第一存储装置350和第二存储装置360委托、分发和处理至少一个计算/运算/操作的处理可被完成。
如上所述,第一数据D1可通过第二包格式PF2的至少一个包被分发给第一存储装置350和第二存储装置360。第一存储装置350和第二存储装置360中的每个可针对向其分发的数据执行操作,因此,操作负载的平衡可被执行。在执行操作负载的平衡的处理中,可不向处理器310请求除发出第二包格式PF2的第四命令C4和第五命令C5的操作之外的任何其他操作。因此,第一存储装置350和第二存储装置360可在不引起处理器310的开销的情况下支持平衡和处理至少一个计算/运算/操作的功能。
在一个示例性实施例中,描述被给出为处理器310通过在操作S355中向第二存储装置360发送具有第二包格式(即,CXLTM的包格式(或CXLTM的任何包格式之中的与“CXL.mem”相关联的包格式))的第五命令C5来允许第二存储装置360执行操作负载的平衡。然而,第五命令C5可以是引起第二部分数据的转发的命令。处理器310可将第一包格式PF1和/或第二包格式PF2的附加命令传送到第二存储装置360。附加命令可以是允许第二存储装置360针对由此转发的第二部分数据执行至少一个操作的命令。在操作S355之后、在操作S360之前和/或在操作S360之后,可将附加命令从处理器310传送到第二存储装置360。
图9示出电子装置的操作方法的第三示例。图10示出在图4的电子装置300中执行根据图9的操作方法的操作的处理的示例。参照图9和图10,在操作S410中,第一存储装置350可从处理器310接收第六命令C6。第六命令C6可具有第一包格式(例如,的包格式)。
第六命令C6可以是读取命令和/或操作命令。第六命令C6指示的操作的细节可由第六命令C6的详细信息字段(诸如,第六命令C6的操作码opcode、第六命令C6的描述符和/或第六命令C6的参数)来定义。第六命令C6可通过根复合体340和端口120从处理器310被传送到存储控制器130。
在操作S420中,第一存储装置350可响应于第六命令C6读取第二数据D2。例如,第一存储装置350的存储控制器130可从非易失性存储器装置110读取第二数据D2。存储控制器130可将由此读取的第二数据D2存储在缓冲存储器140中(或加载到缓冲存储器140上)。
在操作S430中,第一存储装置350可响应于第六命令C6,开始与第二数据D2相关联的操作(例如,至少一个计算/运算/操作)。存储控制器130可基于计算模块150的操作单元将存储在缓冲存储器140中(或加载到缓冲存储器140上)的数据传送到计算模块150。计算模块150可针对从存储控制器130传送的操作单元的数据执行由第六命令C6指示的至少一个操作。存储控制器130可将由计算模块150执行的操作的结果存储在缓冲存储器140中(或加载到缓冲存储器140上)。
存储控制器130可通过重复控制缓冲存储器140和计算模块150的操作来对第二数据D2执行操作,以便重复下面的操作:1)将加载到缓冲存储器140上的数据之中的与操作单元对应的数据传送到计算模块150的操作,2)允许计算模块150对操作单元的数据执行操作(或处理操作单元的数据)的操作,以及3)将由计算模块150执行的操作的结果存储在缓冲存储器140中(或加载到缓冲存储器140上)的操作。
在操作S440中,第一存储装置350可向处理器310报告利用率。例如,存储控制器130可监测计算模块150的利用率。在计算模块150开始操作之后,在计算模块150开始操作随后经过特定时间段之后,响应于计算模块150开始操作并且计算模块150的利用率的改变饱和到阈值或更小,和/或周期性地基于特定时段(例如,时间段),存储控制器130可通过端口120和根复合体340(例如,以中断的形式)向处理器310报告计算模块150的利用率。
可选地,通过在向第一存储装置350发送第六命令C6之后,在从向第一存储装置350发送第六命令C6起经过特定时间段之后,和/或周期性地基于特定时段(例如,时间段),向第一存储装置350轮询计算模块150的利用率,处理器310请求(或引导)第一存储装置350通过根复合体340报告计算模块150的利用率。
在操作S450中,处理器310可确定平衡(例如,操作负载的平衡)不被需要。例如,处理器310可监测第一存储装置350和/或第二存储装置360的利用率,并且可根据监测结果确定平衡不被需要。当确定平衡不被需要时,处理器310可不向第一存储装置350和第二存储装置360请求平衡。
在操作S460中,第一存储装置350可完成与第二数据D2相关联的操作。例如,第一存储装置350的存储控制器130可针对加载到缓冲存储器140上的数据通过重复基于参照操作S430描述的操作单元的操作来完成与第二数据D2相关联的操作。
在操作S470中,第一存储装置350可存储和/或输出操作的结果。例如,第一存储装置350的存储控制器130可通过端口120和根复合体340(例如,基于第一包格式PF1)将存储在缓冲存储器140中(或加载到缓冲存储器140上)的操作结果输出到处理器310,和/或将操作结果存储在非易失性存储器装置110中。
当操作S410至操作S470被执行时,电子装置300的处理器310向第一存储装置350委托和处理至少一个计算/运算/操作的处理可被完成。
图11示出电子装置300的操作方法的第四示例。图12示出在图4的电子装置300中执行根据图11的操作方法的操作的处理的示例。参照图11和图12,在操作S510中,第一存储装置350可从处理器310接收第六命令C6。在操作S520中,第一存储装置350可响应于第六命令C6读取第二数据D2。在操作S530中,第一存储装置350可响应于第六命令C6,开始与第二数据D2相关联的操作(例如,至少一个计算/运算/操作)。在操作S540中,第一存储装置350可向处理器310报告利用率。操作S510至操作S540可与操作S410至操作S440相同地被执行。因此,将省略附加描述,以避免冗余。
在操作S550中,处理器310可确定平衡(例如,操作负载的平衡)被需要。例如,处理器310可监测第一存储装置350和/或第二存储装置360的利用率,并且可根据监测结果确定平衡被需要。
如果确定平衡被需要,则处理器310可向第一存储装置350和第二存储装置360请求平衡。例如,在操作S560中,处理器310可向第一存储装置350发送具有第二包格式(即,CXLTM的包格式(或CXLTM的任何包格式之中的与“CXL.mem”相关联的包格式))的第七命令C7。第七命令C7可通过根复合体340和端口120被传送到存储控制器130。第七命令C7可包括用于请求(或引导)通过根复合体340将被指定为与第六命令C6对应的操作的目标的数据(例如,第二数据D2)的段发送到第二存储装置360的信息。
在操作S565中,处理器310可向第二存储装置360发送具有第二包格式(即,CXLTM的包格式(或CXLTM的任何包格式之中的与“CXL.mem”相关联的包格式))的第八命令C8。第八命令C8可通过根复合体340和端口120被传送到存储控制器130。第八命令C8可包括用于请求(或引导)将通过根复合体340从第一存储装置350传送的数据存储在第二存储装置360的缓冲存储器140中(或加载到第二存储装置360的缓冲存储器140上)的信息。
在操作S570中,第一存储装置350的存储控制器130可通过端口120将加载到缓冲存储器140上的第二数据D2之中的由第七命令C7指定的部分数据传送到根复合体340。例如,第二数据D2的部分数据可通过第二包格式PF2的至少一个包被传送到根复合体340。根复合体340可将从第一存储装置350传送的第二包格式PF2的数据包传送到第二存储装置360。第二存储装置360的存储控制器130可将包括在通过端口120从根复合体340接收的数据包中的数据存储在缓冲存储器140中(或加载到缓冲存储器140上)。
在操作S580中,第一存储装置350可针对除发送的部分数据(或部分)之外的第二数据D2的剩余数据(例如,第二数据D2的第一部分数据)继续基于操作单元的操作。在操作S585中,第二存储装置360可针对第二数据D2的发送的部分数据(或部分)(例如,第二数据D2的第二部分数据)开始基于操作单元的操作。
在操作S590中,第一存储装置350可完成与第二数据D2的第一部分数据相关联的操作。例如,第一存储装置350的存储控制器130可针对加载到缓冲存储器140上的第一部分数据通过重复基于参照操作S330描述的操作单元的操作来完成与第一部分数据相关联的操作。在操作S595中,第二存储装置360可完成与第二数据D2的第二部分数据相关联的操作。例如,第二存储装置360的存储控制器130可针对加载到缓冲存储器140上的第二部分数据通过重复基于参照操作S330描述的操作单元的操作来完成与第二部分数据相关联的操作。
在操作S600中,第一存储装置350可存储和/或输出与第一部分数据相关联的操作的结果。例如,第一存储装置350的存储控制器130可通过端口120和根复合体340(例如,基于第一包格式PF1)将存储在缓冲存储器140中(或加载到缓冲存储器140上)的第一部分数据的操作结果输出到处理器310,和/或将操作结果存储在非易失性存储器装置110中。
在操作S605中,第二存储装置360可存储和/或输出与第二部分数据相关联的操作的结果。例如,第二存储装置360的存储控制器130可通过端口120和根复合体340将存储在缓冲存储器140中(或加载到缓冲存储器140上)的第二部分数据的操作结果(例如,基于第一包格式PF1)输出(或返回)到处理器310,和/或(例如,通过第二包格式PF2)输出(或返回)到第一存储装置350,和/或可将操作结果存储在非易失性存储器装置110中。
当操作S510至操作S605被执行时,电子装置300的处理器310向第一存储装置350和第二存储装置360委托、分发和处理至少一个计算/运算/操作的处理可被完成。
如上所述,第二数据D2可通过第二包格式PF2的至少一个包被分发给第一存储装置350和第二存储装置360。第一存储装置350和第二存储装置360中的每个可针对向其分发的数据执行操作,因此,操作负载的平衡可被执行。在执行操作负载的平衡的处理中,可不向处理器310请求除发出第二包格式PF2的第七命令C7和第八命令C8的操作之外的任何其他操作。因此,第一存储装置350和第二存储装置360可在不引起处理器310的开销的情况下支持平衡和处理至少一个计算/运算/操作的功能。
在一个示例性实施例中,描述被给出为处理器310通过在操作S565中向第二存储装置360发送具有第二包格式(即,CXLTM的包格式(或CXLTM的任何包格式之中的与“CXL.mem”相关联的包格式))的第八命令C8来允许第二存储装置360执行操作负载的平衡。然而,第八命令C8可以是引起第二部分数据的转发的命令。处理器310可将第一包格式PF1和/或第二包格式PF2的附加命令传送到第二存储装置360。附加命令可以是允许第二存储装置360针对由此转发的第二部分数据执行至少一个操作的命令。在操作S565之后、在操作S570之前和/或在操作S570之后,可将附加命令从处理器310传送到第二存储装置360。
参照图5至图12描述了用于第一存储装置350的操作的任务被分发(或平衡)给第一存储装置350和第二存储装置360并由第一存储装置350和第二存储装置360处理的示例。然而,当电子装置300还包括第三存储装置时,用于第一存储装置350的操作的任务被分发(或平衡)给第二存储装置360和第三存储装置并由第二存储装置360和第三存储装置处理。也就是说,委托(或分配)给一个计算存储装置的操作的任务可被平衡到两个或更多个存储装置。
图13示出电子装置300确定平衡是否被需要的处理的示例。参照图4和图13,在操作S710中,电子装置300的处理器310中的至少一个可监测从第一存储装置350和第二存储装置360报告的利用率(例如,计算利用率)。
在操作S720中,处理器310中的至少一个可监测包括在电子装置300中的存储装置(例如,包括第一存储装置350和第二存储装置360)的利用率之间的差。在一个示例性实施例中,处理器310中的至少一个可监测存储装置的最高利用率与最低利用率之间的差。
在操作S730中,处理器310中的至少一个可确定存储装置的利用率之间的差是否大于第一阈值TH1。当存储装置的利用率之间的差大于第一阈值TH1时,在操作S740中,处理器310中的至少一个可确定利用率的差大于第一阈值TH1的存储装置之间的平衡被需要,并且可通过CXLTM执行(或指导或请求)平衡。可选地,处理器310中的至少一个可确定需要通过与最低利用率对应的至少两个存储装置来平衡(或分发和处理)与最高利用率对应的存储装置的任务。
当存储装置的利用率之间的差不大于第一阈值TH1(或者储装置的利用率之间的差是第一阈值TH1或更小)时,在操作S750中,处理器310中的至少一个可确定利用率的差不大于第一阈值TH1的存储装置(在下文中,被称为“选择的存储装置”)之间的平衡不被需要,并且可跳过通过CXLTM的平衡。
在一个示例性实施例中,第一阈值TH1可由计算模块150能够处理的最大操作工作负荷的比率(例如,30%)定义。在一个示例性实施例中,处理器310中的至少一个可确定将在选择的存储装置之间平衡(或分发和处理)的工作负荷。例如,处理器310中的至少一个可基于选择的存储装置中的每个的利用率、将被平衡(或分发和处理)的任务量和/或根复合体340的流量资源(例如,空闲资源)量(或比率)来确定将被平衡(或分发和处理)的工作负荷。
作为另一示例,处理器310中的至少一个可被实现为响应于高于特定阈值的最高利用率而不是利用率之间的差,将与最高利用率对应的存储装置的任务平衡(或分发)给至少一个存储装置(例如,与最低利用率对应的至少一个存储装置)并且由至少一个存储装置处理与最高利用率对应的存储装置的任务。
图14示出电子装置300确定是否禁止平衡的处理的示例。参照图4和图14,在操作S810中,处理器310中的至少一个可监测根复合体340的利用率(例如,流量利用率)。
在操作S820中,处理器310中的至少一个可确定根复合体340的利用率是否大于第二阈值TH2。在一个示例性实施例中,第二阈值TH2可由根复合体340的总流量的比率(例如,70%)定义。
当根复合体340的利用率大于第二阈值TH2时,在操作S830中,处理器310中的至少一个可通过CXLTM禁止存储装置之间的平衡。当根复合体340的利用率不大于第二阈值TH2(或者根复合体340的利用率是第二阈值TH2或更小)时,在操作S840中,处理器310中的至少一个可允许平衡。
如上所述,当预期根复合体340的流量不足时,电子装置300的处理器310中的至少一个可禁止存储装置之间的平衡(例如,通过根复合体340的平衡)。因此,可禁止存储装置之间的平衡,以避免降低电子装置300的性能。
图15示出根据本公开的另一实施例的电子装置400。参照图15,电子装置400可包括处理器410、主存储器420、根复合体430和存储装置440。
处理器410、主存储器420和根复合体430可分别对应于图4的处理器310、主存储器320和根复合体340。存储装置440中的每个可对应于图1的存储装置100。
尽管未示出以避免附图不必要地复杂,但是如参照图4所述,诸如调制解调器330的组件也可被包括在电子装置400中。
存储装置440可被分类为属于第一区域(zone)441、第二区域442、第三区域443和第四区域444。例如,可基于根复合体430中的传输路径的物理距离来确定第一区域441、第二区域442、第三区域443和第四区域444。
例如,根复合体430可基于第五代(Gen.5)来实现。在基于Gen.5的信号中,根据传输路径的物理长度的信号损失可能大于任何其他代的信号损失。因此,处理器410中的至少一个可将存储装置440分类为第一区域441、第二区域442、第三区域443和第四区域444,使得由存储装置440的操作负载的平衡导致的信号损失不会引起信号衰减(即,使得具有不引起信号衰减的距离的存储装置属于同一区域)。
处理器410中的至少一个可允许在属于同一区域的存储装置440之间平衡(或分发和处理)操作负载。处理器410中的至少一个可禁止属于不同区域的存储装置之间平衡(或分发和处理)操作负载。因此,可防止信号(例如,数据)由于存储装置之间的操作负载平衡而衰减。
图16示出根据本公开的示例性实施例的电子装置500。参照图16,电子装置500可包括处理器510、主存储器520、根复合体530和存储装置540。
处理器510、主存储器520和根复合体530可分别对应于图4的处理器310、主存储器320和根复合体340。存储装置540中的每个可对应于图1的存储装置100。
尽管未示出以避免附图不必要地复杂,但是如参照图4所述,诸如调制解调器330的组件也可被包括在电子装置500中。
存储装置540可被分类为属于第一区域541、第二区域542、第三区域543和第四区域544。例如,如参照图15所述,可基于根复合体530中的传输路径的物理距离来确定第一区域541、第二区域542、第三区域543和第四区域544。
与图15的根复合体430相比,根复合体530可包括重定时器(retimer)“R”。每个重定时器“R”可通过重新对准(realign)信号的波形来恢复信号的波形的完整性和信号的衰减。例如,可在与根复合体530中的传输路径之中的不同区域的边界对应的位置处设置重定时器“R”。电子装置500可通过包括重定时器“R”来允许不同区域之间的平衡。
图17示出电子装置500在不同区域之间执行平衡的示例。参照图16和图17,在操作S910中,电子装置500的处理器510中的至少一个可监测区域的平均利用率。在操作S920中,处理器510中的至少一个可监测平均利用率之间的差(例如,最高利用率与最低利用率之间的差)。
在操作S930中,处理器510中的至少一个可确定平均利用率之间的差是否大于第三阈值TH3。当平均利用率之间的差大于第三阈值TH3时,在操作S940中,处理器510中的至少一个可在平均利用率之间的差大于第三阈值TH3的区域之间通过CXLTM执行平衡。
当平均利用率之间的差不大于第三阈值TH3(或者平均利用率之间的差是第三阈值TH3或更小)时,在操作S950中,处理器510中的至少一个可在区域内通过CXLTM执行平衡,并且可禁止区域之间通过CXLTM的平衡。在一个实施例中,当存储装置540中的第一存储装置与第二存储装置之间的距离大于第三阈值TH3时,处理器510中的至少一个可禁止第一存储装置与第二存储装置之间的平衡。
图18示出电子装置500在不同区域中执行平衡的处理的示例。参照图16和图18,第一区域441、第二区域442、第三区域443和第四区域444中的第一区域441的平均利用率最高,第一区域441、第二区域442、第三区域443和第四区域444中的第二区域442的平均利用率最低。
在操作S1010中,处理器510中的至少一个可从具有最高平均利用率的第一区域441选择具有最高利用率的第一存储装置。在操作S1020中,处理器510中的至少一个可从具有最低平均利用率的第二区域442选择具有最低利用率的第二存储装置。在操作S1030中,处理器510中的至少一个处理器可通过CXLTM执行从第一存储装置到第二存储装置的平衡(也就是说,在区域之间通过CXLTM执行平衡)。
在以上实施例中,通过使用术语“第一”、“第二”、“第三”等来描述根据本公开的组件。然而,术语“第一”、“第二”、“第三”等可用于将组件彼此区分开,并且不限制本公开。例如,术语“第一”、“第二”、“第三”等并不表明任何形式的次序或数字含义。
在以上描述的示例性实施例中,通过使用块来引用根据本公开的前述示例性实施例的组件。块可用各种硬件装置(诸如,集成电路、专用IC(ASIC)、现场可编程门阵列(FPGA)和复杂可编程逻辑装置(CPLD))、硬件装置中驱动的固件、软件(诸如,应用)或硬件装置和软件的组合来实现。此外,块可包括用集成电路中的半导体元件实现的电路,或者要求权利为知识产权(IP)的电路。
根据本公开的示例性实施例,存储装置可响应于第一包格式的命令来通过缓冲存储器访问非易失性存储器装置,并且可响应于第二包格式的命令来在不访问非易失性存储器装置的情况下访问缓冲存储器。因此,提供了支持与缓冲存储器的数据相关联的任务的平衡的存储装置、包括存储装置的电子装置以及电子装置的操作方法。
虽然已经参照本公开的示例性实施例描述了本公开,但是对于本领域技术人员将清楚的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可对其进行各种改变和修改。
Claims (20)
1.一种存储装置,包括:
非易失性存储器装置;
缓冲存储器;
端口,被配置为与外部装置连接;以及
存储控制器,被配置为:
当通过端口从外部装置接收的命令对应于第一包格式时,响应于所述命令,通过使用缓冲存储器来访问非易失性存储器装置,并且
当通过端口从外部装置接收的命令对应于第二包格式时,响应于所述命令,在不访问非易失性存储器装置的情况下访问缓冲存储器。
2.根据权利要求1所述的存储装置,其中,第一包格式对应于外围组件互连或非易失性存储器快速,第二包格式对应于计算快速链路。
3.根据权利要求1所述的存储装置,其中,当所述命令对应于第二包格式时,响应于所述命令,存储控制器通过端口将存储在缓冲存储器中的数据输出到外部装置。
4.根据权利要求1所述的存储装置,其中,当所述命令对应于第二包格式时,响应于所述命令,存储控制器将通过端口从外部装置接收的数据存储在缓冲存储器中。
5.根据权利要求1所述的存储装置,其中,响应于通过端口从外部装置接收到第一包格式的第一命令和第一数据,存储控制器将第一数据加载到缓冲存储器上作为第二数据。
6.根据权利要求5所述的存储装置,还包括:
计算模块,被配置为执行至少一个操作,
其中,计算模块响应于第一命令,针对第二数据开始所述至少一个操作。
7.根据权利要求6所述的存储装置,其中,计算模块被实现为包括加密单元和解密单元、压缩器和解压缩器、神经处理器、神经形态处理器、图形处理器、图像处理器、数字信号处理器、专用集成电路、现场可编程门阵列、乘法器、加法器、乘法器和累加器、浮点单元、数据库过滤器、量化器以及归一化器中的至少一个。
8.根据权利要求6所述的存储装置,其中,响应于通过端口从外部装置接收到第二包格式的第二命令,存储控制器通过端口将第三数据输出到外部装置,第三数据由第二数据的段构成。
9.根据权利要求8所述的存储装置,其中,响应于通过端口从外部装置接收到第二包格式的第二命令,计算模块针对第四数据执行所述至少一个操作,第四数据由第二数据的除第三数据之外的剩余段构成。
10.根据权利要求9所述的存储装置,其中,计算模块将第五数据存储在非易失性存储器装置中,和/或将第五数据输出到外部装置,第五数据是针对第四数据执行的所述至少一个操作的结果。
11.根据权利要求9所述的存储装置,其中,计算模块从外部装置接收第五数据,第五数据是针对第三数据执行的所述至少一个操作的结果。
12.根据权利要求1所述的存储装置,其中,响应于通过端口从外部装置接收到第一包格式的第二命令,存储控制器从非易失性存储器装置读取第六数据,以使第六数据被加载到缓冲存储器上。
13.根据权利要求1所述的存储装置,其中,响应于通过端口从外部装置接收到第二包格式的第三命令和第七数据,存储控制器将第七数据加载到缓冲存储器上。
14.根据权利要求13所述的存储装置,还包括:
计算模块,被配置为执行至少一个操作,
其中,响应于通过端口从外部装置接收到第二包格式的第三命令和/或第四命令,存储控制器开始与第七数据相关联的所述至少一个操作。
15.一种电子装置,包括:
至少一个处理器;
第一存储装置和第二存储装置,各自包括缓冲存储器和非易失性存储器装置;以及
根复合体,被配置为电连接所述至少一个处理器、第一存储装置和第二存储装置,
其中,第一存储装置和第二存储装置中的每个被配置为:
响应于通过根复合体从所述至少一个处理器接收的第一包格式的命令,通过使用缓冲存储器来访问非易失性存储器装置,并且
响应于通过根复合体从所述至少一个处理器接收的第二包格式的命令,在不访问非易失性存储器装置的情况下访问缓冲存储器。
16.根据权利要求15所述的电子装置,其中,响应于通过根复合体从所述至少一个处理器接收的第二包格式的第一命令,第一存储装置向第二存储装置的缓冲存储器发送第二数据,第二数据由加载到第一存储装置的缓冲存储器上的第一数据的段构成。
17.根据权利要求16所述的电子装置,其中,第二数据在不通过所述至少一个处理器的情况下通过根复合体从第一存储装置的缓冲存储器被传送到第二存储装置的缓冲存储器。
18.根据权利要求16或权利要求17所述的电子装置,其中,第一存储装置和第二存储装置中的每个还包括:计算模块,
其中,第一存储装置通过使用第一存储装置的计算模块针对第三数据执行至少一个操作,第三数据是第一数据的除第二数据之外的剩余段,并且
其中,第二存储装置通过使用第二存储装置的计算模块针对第二数据执行所述至少一个操作。
19.一种电子装置的操作方法,所述电子装置包括至少一个处理器、第一存储装置、第二存储装置和根复合体,所述方法包括:
在所述至少一个处理器处,基于第一包格式通过根复合体将第一任务和第二任务分别分配给第一存储装置和第二存储装置;
在所述至少一个处理器处,通过根复合体监测第一存储装置的计算利用率和第二存储装置的计算利用率;
当第一存储装置的计算利用率与第二存储装置的计算利用率之间的差大于第一阈值时,由所述至少一个处理器指示基于第二包格式通过根复合体平衡第一存储装置和第二存储装置;以及
在第一存储装置和第二存储装置处,在不经过所述至少一个处理器的情况下通过根复合体执行平衡。
20.根据权利要求19所述的操作方法,还包括:
当根复合体的流量利用率大于第二阈值时和/或当第一存储装置与第二存储装置之间的距离大于第三阈值时,由所述至少一个处理器禁止第一存储装置与第二存储装置之间的平衡。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210113583A KR20230033090A (ko) | 2021-08-27 | 2021-08-27 | 스토리지 장치, 스토리지 장치를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법 |
KR10-2021-0113583 | 2021-08-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115729864A true CN115729864A (zh) | 2023-03-03 |
Family
ID=85285957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210480440.6A Pending CN115729864A (zh) | 2021-08-27 | 2022-05-05 | 存储装置、电子装置以及电子装置的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230069339A1 (zh) |
KR (1) | KR20230033090A (zh) |
CN (1) | CN115729864A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210311871A1 (en) * | 2020-04-06 | 2021-10-07 | Samsung Electronics Co., Ltd. | System and method for aggregating server memory |
US20230112720A1 (en) * | 2021-10-12 | 2023-04-13 | Texas Instruments Incorporated | Hardware system for automatic direct memory access data formatting |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924645B2 (en) * | 2010-03-08 | 2014-12-30 | Hewlett-Packard Development Company, L. P. | Data storage apparatus and methods |
US20210042228A1 (en) * | 2019-07-17 | 2021-02-11 | Intel Corporation | Controller for locking of selected cache regions |
US20200125495A1 (en) * | 2019-12-19 | 2020-04-23 | Intel Corporation | Multi-level memory with improved memory side cache implementation |
US11496419B2 (en) * | 2021-02-03 | 2022-11-08 | Intel Corporation | Reliable transport offloaded to network devices |
US20210243247A1 (en) * | 2021-04-23 | 2021-08-05 | Intel Corporation | Service mesh offload to network devices |
-
2021
- 2021-08-27 KR KR1020210113583A patent/KR20230033090A/ko unknown
-
2022
- 2022-05-05 CN CN202210480440.6A patent/CN115729864A/zh active Pending
- 2022-07-29 US US17/877,311 patent/US20230069339A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20230033090A (ko) | 2023-03-08 |
US20230069339A1 (en) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11575609B2 (en) | Techniques for congestion management in a network | |
US10944660B2 (en) | Managing congestion in a network | |
US11929927B2 (en) | Network interface for data transport in heterogeneous computing environments | |
CN109471833B (zh) | 用于最大化PCIe对等连接的带宽的系统和方法 | |
CN115729864A (zh) | 存储装置、电子装置以及电子装置的操作方法 | |
KR102513920B1 (ko) | 비휘발성 스토리지 시스템 및 비휘발성 스토리지 장치들을 위한 데이터 스토리지 액세스 프로토콜 | |
CN110602156A (zh) | 一种负载均衡调度方法及装置 | |
JP7010598B2 (ja) | 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム、及び管理装置 | |
KR102523419B1 (ko) | 저장 장치에서 가속 커널들의 상태 모니터링 방법 및 이를 사용하는 저장 장치 | |
CN103200128A (zh) | 一种网络包处理的方法、装置和系统 | |
US7506074B2 (en) | Method, system, and program for processing a packet to transmit on a network in a host system including a plurality of network adaptors having multiple ports | |
CN103942097A (zh) | 一种数据处理方法、装置及具备相应装置的计算机 | |
KR102367359B1 (ko) | 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법 | |
US20150254191A1 (en) | Software Enabled Network Storage Accelerator (SENSA) - Embedded Buffer for Internal Data Transactions | |
WO2014101502A1 (zh) | 基于内存芯片互连的内存访问处理方法、内存芯片及系统 | |
JP6331944B2 (ja) | 情報処理装置、メモリ制御装置及び情報処理装置の制御方法 | |
EP3579136A1 (en) | Storage device set including storage device and reconfigurable logic chip, and storage system including storage device set | |
WO2012113224A1 (zh) | 多节点计算系统下选择共享内存所在节点的方法和装置 | |
KR101463783B1 (ko) | 패킷 처리 장치 및 패킷 처리 방법 | |
US20200210353A1 (en) | Computing tile | |
US20150254196A1 (en) | Software Enabled Network Storage Accelerator (SENSA) - network - disk DMA (NDDMA) | |
US11909841B2 (en) | System, apparatus and method for adaptive peer-to-peer communication with edge platform | |
Gu et al. | A Transformable NVMeoF Queue Design for Better Differentiating Read and Write Request Processing | |
US20150256645A1 (en) | Software Enabled Network Storage Accelerator (SENSA) - Network Server With Dedicated Co-processor Hardware Implementation of Storage Target Application | |
CN117370223A (zh) | 一种用于计算机通信接口的缓存分配方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |