支持多租户的存储装置及其操作方法

文档序号:1888615 发布日期:2021-11-26 浏览:3次 >En<

阅读说明:本技术 支持多租户的存储装置及其操作方法 (Storage device supporting multiple tenants and operation method thereof ) 是由 洪晸炫 赵永进 刘永健 尹灿湖 崔赫埈 于 2021-02-22 设计创作,主要内容包括:提供了支持多租户的存储装置及其操作方法。所述存储装置包括:多个非易失性存储器;易失性存储器;计算装置,被配置为对由所述多个非易失性存储器提供的数据执行操作;以及存储控制器,包括资源管理器,资源管理器被配置为:从主机接收关于租户的优先级的信息,并且基于优先级动态地设置所述多个非易失性存储器、易失性存储器和计算装置的资源。(A multi-tenant supporting storage apparatus and an operating method thereof are provided. The storage device includes: a plurality of non-volatile memories; a volatile memory; a computing device configured to perform operations on data provided by the plurality of non-volatile memories; and a storage controller comprising a resource manager configured to: information regarding the tenant&#39;s priority is received from the host, and resources of the plurality of non-volatile memories, and computing devices are dynamically set based on the priority.)

支持多租户的存储装置及其操作方法

本申请要求于2020年5月20日在韩国知识产权局提交的第10-2020-0060622号韩国专利申请的优先权的权益,该韩国专利申请的公开通过引用全部包含于此。

技术领域

发明构思的技术思想涉及一种存储装置和该存储装置的操作方法,更具体地,涉及一种支持多租户(multi-tenancy)的存储装置和该存储装置的操作方法。

背景技术

近来,随着半导体技术的发展,计算机处理器的性能已经被大幅地改善,并且随着多核处理器技术的发展,在一台计算机服务器上同时执行的工作的量已经显著地增加。

因此,成百上千的计算机服务器被安装在互联网数据中心的一个位置处,各种稳定的服务器(例如,网页服务器、邮件服务器、文件服务器、视频服务器和云服务器)被提供给不同的服务用户。

然而,随着请求到数据中心的连接的租户(tenant)的数量正在快速地增加,将要由数据中心的中央处理器处理的负载的量也正在快速地增加,因此,已经发生了提供给租户的服务的服务质量(QoS)的问题。为了解决该问题,在安装于数据中心的存储装置处执行对由租户请求的服务的预处理可以是有用的。

发明内容

公开的实施例提供了一种存储装置和该存储装置的操作方法,该存储装置用于通过根据租户的权重(例如,优先级、请求的任务类型等)而不同地设置计算资源、易失性存储器资源和非易失性存储器资源的服务等级来使服务质量(QoS)满足多个租户。

根据发明构思的一方面,一种存储装置包括:多个非易失性存储器;易失性存储器;计算装置,被配置为对由所述多个非易失性存储器提供的数据执行操作;以及存储控制器,包括资源管理器,资源管理器被配置为:从主机接收关于租户的优先级的信息,并且基于优先级动态地设置所述多个非易失性存储器、易失性存储器和计算装置的资源。

根据发明构思的另一方面,一种存储装置包括:多个非易失性存储器;易失性存储器;计算装置,被配置为对由所述多个非易失性存储器提供的数据执行操作;以及存储控制器,包括资源管理器,资源管理器被配置为:从主机接收关于第一租户和第二租户的优先级的信息,并且基于第一租户和第二租户的优先级动态地设置所述多个非易失性存储器、易失性存储器和计算装置的资源。

根据发明构思的另一方面,一种包括计算装置和存储控制器的存储装置的操作方法包括:接收来自主机的关于租户的优先级的信息和关于由每个租户的相应用户请求的任务类型的信息;以及基于优先级和/或任务类型将存储装置的硬件资源动态地分配给每个租户。

附图说明

通过下面结合附图进行的详细描述,将更清楚地理解发明构思的实施例,在附图中:

图1示出了根据发明构思的实施例的数据处理系统的示例;

图2是根据发明构思的示例实施例的存储装置的框图;

图3是根据实施例的存储控制器的框图;

图4是根据发明构思的示例实施例的资源管理器的操作的流程图;

图5是根据发明构思的示例实施例的资源管理器动态地分配计算资源的流程图;

图6A示出了根据发明构思的示例实施例的当任务类型不同时分配计算资源的示例;

图6B示出了根据发明构思的示例实施例的当任务类型相同时分配计算资源的示例;以及

图7是根据发明构思的示例实施例的资源管理器的操作的流程图。

具体实施方式

在下文中,将参照附图详细地描述发明构思的实施例。

图1示出了根据发明构思的实施例的数据处理系统1000的示例。

参照图1,数据处理系统1000可以包括存储装置100和主机200。

在一个实施例中,数据处理系统1000可以被嵌入电子装置中或被实现为电子装置。电子装置可以被实现为例如个人计算机(PC)、数据服务器、超移动PC(UMPC)、工作站、上网本、网络连接存储设备(NAS)、智能电视机、物联网(IoT)装置或便携式电子装置。便携式电子装置可以包括膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码照相机、数码摄像机、音频装置、便携式多媒体播放器(PMP)、个人导航装置(PND)、MP3播放器、手持式游戏控制器、电子书、可穿戴装置等。

在一个实施例中,主机200可以管理数据处理系统1000的所有操作。主机200可以将数据存储在存储装置100中,并且从存储装置100读取数据。例如,主机200可以将写入命令和写入数据发送到存储装置100,或者将读取命令发送到存储装置100。此外,主机200可以将任务和数据分配给存储装置100,并且控制存储装置100通过使用数据处理来执行任务。例如,主机200可以将用于执行任务的数据处理命令与将要在存储装置100中处理的数据一起发送到存储装置100,或者将针对先前存储在存储装置100中的数据的数据处理命令发送到存储装置100。

主机200可以被实现为中央处理器(CPU)、处理器、微处理器、应用处理器(AP)等。在一个实施例中,主机200可以被实现为片上系统(SoC)。

根据实施例,主机200可以包括租户(tenant)管理器210。租户管理器210可以存储和修改关于由主机200管理的多个租户的信息。作为示例,关于多个租户的信息可以包括分配给多个租户中的每个的标识(identification,ID),并且包括关于多个租户中的每个的优先级(或者,租户优先级)D_TP的信息。租户管理器可以利用软件(或固件)和硬件的组合被实现。作为公开的技术的领域中的传统,特定特征和实施例按照功能块、单元和/或模块(例如,租户管理器210和其他这样的单元)被描述并且被示出在附图中。本领域技术人员将理解的是,这些块、单元和/或模块通过电子(或光学)电路(诸如,逻辑电路、分立组件、微处理器、硬连线电路、存储器元件、布线连接等)被物理地实现,电子(或光学)电路可以使用基于半导体的制造技术或者其他的制造技术被形成。在块、单元和/或模块通过微处理器或类似物来实现的情况下,它们可以使用软件(例如,微代码)被编程为执行在此讨论的各种功能,并且可以任意地由固件和/或软件驱动。可选地,每个块、单元和/或模块可以通过专用硬件被实现,或者被实现为用于执行一些功能的专用硬件与用于执行其他功能的处理器(例如,一个或多个编程的微处理器以及相关联的电路)的组合。

租户管理器210可以识别已经向主机200请求任务的用户所属的租户。例如,当多个用户中的每个请求任务时,租户管理器210可以将关于多个用户中的每个所属的租户的ID和优先级的信息发送到存储装置100。每个租户可以与一个或多个用户相关联并且可以具有一个或多个用户,因此,每个用户可以被分配给特定租户。因此,租户的ID和优先级可以对应于与该租户相关联的每个用户的ID和优先级。如在此所描述的,租户表示多个用户所属的特定组或分类,并且可以是组织、公司或其他实体。租户可以具有ID,该ID对于与租户相关联的多个用户是公共的。

然而,在上述实施例中,描述了主机200将关于已经请求任务的用户所属的租户的ID和优先级的信息从包括在其中的租户管理器210发送到存储装置100,但是发明构思不限于此。根据各种实施例,存储装置100可以包括租户管理器210。在这种情况下,主机200可以简单地从用户接收任务请求,并且将任务请求发送到存储装置100。基于接收的任务请求,存储装置100可以将关于包括已经请求任务的用户的租户的ID和优先级D_TP的信息发送到存储控制器110。

根据各种实施例,租户管理器210可以包括租户管理表(TMT)。例如,TMT可以如下面的表1中所示。

[表1]

租户ID 配置用户 优先级
租户A 用户1、……、用户M 2
租户B 用户2、……、用户Y 2
租户C 用户3、……、用户I 1
…… …… ……
租户N 用户R、……、用户D k

参照表1,TMT可以针对多个租户映射和存储关于包括在租户中(例如,分配给租户)的用户的配置和租户的优先级的信息。响应于接收到任务请求,租户管理器210可以加载TMT,并且识别请求任务的用户被包括在哪个租户中以及该租户的优先级。此后,租户管理器210可以将关于租户ID和优先级D_TP的信息发送到存储控制器110。存储控制器110可以基于租户优先级调整针对由用户请求的任务的资源。

此外,根据各种实施例,租户管理器210可以被实现为管理程序(hypervisor)。作为用于同时执行针对每个租户而操作的多个操作系统的逻辑平台,管理程序可以被称为虚拟机监视器或虚拟机管理器。管理程序可以使用软件(或固件)和硬件的组合来实现。

根据发明构思的示例实施例的存储装置100可以包括存储控制器110、非易失性存储器120和计算装置130。例如,存储装置100可以包括其上设置有存储控制器110、非易失性存储器120和计算装置130的印刷电路板。在一些实施例中,存储装置100可以被封入外壳内,并且/或者可以被包括在服务器或其他计算机内。存储装置100可以响应于来自主机200的命令而存储数据或处理数据。根据发明构思的实施例的存储装置100可以被实现为通过内部地存储和处理数据来加速数据处理的存储加速平台。例如,存储装置100可以包括固态驱动器(SSD)、智能SSD、嵌入式多媒体卡(eMMC)、嵌入式通用闪存(UFS)存储器装置、UFS存储器卡、紧凑型闪存(CF)卡、安全数字(SD)卡、微型SD卡、迷你SD卡、极限数字(xD)卡或记忆棒。

非易失性存储器120可以存储数据。非易失性存储器120可以存储由主机200提供的数据和/或由计算装置130提供的数据。非易失性存储器120可以包括包含即使当存储装置100断电时也能够保持存储的数据的非易失性存储器单元的存储器单元阵列(MCA),MCA可以被划分为多个存储器块。多个存储器块可以具有其中非易失性存储器单元被二维地布置在同一平面(或层)上的二维(2D)水平结构、或者其中非易失性存储器单元被三维地布置的三维(3D)垂直结构。非易失性存储器单元可以包括存储一比特的数据的单层单元(SLC)或者存储两比特或更多比特的数据的多层单元(MLC)。然而,发明构思不限于此,并且每个非易失性存储器单元可以包括用于存储3比特数据的三层单元(TLC)或用于存储4比特数据的四层单元(QLC)。

在一些实施例中,非易失性存储器120可以包括多个裸片(每个裸片包括MCA),或者可以包括多个芯片。每个裸片可以由半导体圆晶形成。例如,非易失性存储器120可以包括多个芯片,多个芯片中的每个可以包括多个裸片。非易失性存储器120可以处于封装或存储器模块的形式。在一个实施例中,非易失性存储器120还可以包括均包含多个芯片的多个通道。

在一个实施例中,非易失性存储器120可以包括NAND闪存装置。然而,发明构思不限于此,并且非易失性存储器120可以包括电阻式存储器装置(诸如,电阻式随机存取存储器(RAM)(rRAM))、相变RAM(PRAM)或磁性RAM(MRAM))。在下文中,在发明构思中,在非易失性存储器120是NAND闪存装置的假设下描述非易失性存储器120。

计算装置130可以包括对接收的数据执行数据处理的装置,并且可以执行由主机200分配的任务。在一个实施例中,计算装置130可以通过驱动应用来并行地对接收的数据(例如,对输入数据)执行数据处理。计算装置130可以包括硬件(或固件)和软件。应用可以包括与任务执行相关的多个数据操作(例如,算术运算、卷积运算、轮询操作等)。例如,当计算装置130执行基于神经网络的任务时,应用可以包括神经网络模型。神经网络模型可以基于卷积神经网络(NN)(CNN)、区域(R)CNN(R-CNN)、候选区域网络(region proposalnetwork,RPN)、递归神经网络(RNN)、基于堆叠的(S)深度神经网络(DNN)(S-DNN)、状态空间(S-S)动态(D)NN(S-SDNN)、解卷积网络、深度信念网络(deep belief network,DBN)、受限玻尔兹曼机(RBM)、全卷积网络(fully convolutional network)、长短期记忆(longshort-term memory,LSTM)网络、分类网络和各种类型的神经网络中的至少一种而包括多个数据操作以及多个数据操作的输入、输出尺寸、权重、偏置等。

作为一个示例,计算装置130可以利用图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和神经处理单元(NPU)来实现。然而,发明构思不限于此,并且计算装置130可以利用各种类型的加速电路(加速器)来实现,各种类型的加速电路(加速器)执行用于执行分配的任务(例如,用于并行地执行数据操作)所需要的数据处理。在一些示例实施例中,计算装置130还可以包括与硬件相关联的软件和/或固件。

存储控制器110可以管理存储装置100的所有操作,并且可以根据从主机200接收的命令来控制非易失性存储器120和计算装置130执行操作。例如,响应于来自主机200的写入命令或读取命令,存储控制器110可以控制非易失性存储器120以将数据DT(见图2)写入非易失性存储器120中或从非易失性存储器120读取数据DT,并且可以控制非易失性存储器120的擦除操作。此外,存储控制器110可以控制非易失性存储器120的其他操作(诸如,垃圾收集、坏块管理、读取回收(read reclaim)和读取替换(read replacement)),并且可以控制非易失性存储器120的电力。

此外,存储控制器110可以控制计算装置130执行任务。存储控制器110可以将从主机200接收的或存储在非易失性存储器120中的数据和/或应用提供给计算装置130。存储控制器110可以配置或调整计算装置130的操作环境。具体地,当计算装置130执行由多个用户请求的任务时,存储控制器110可以针对每个用户动态地管理计算装置130的资源。

图2是根据发明构思的示例实施例的存储装置100的框图。

参照图2,存储装置100可以包括存储控制器110、非易失性存储器(NVM)120、计算装置130、易失性存储器140、电压产生器(VGEN)150和时钟信号产生器(CGEN)160。参照图1给出的存储控制器110、非易失性存储器120和计算装置130的重复描述被省略。

在存储装置100中,易失性存储器140可以作为临时存储数据DT的缓冲器进行操作。易失性存储器140可以存储从主机200接收的或从非易失性存储器120读取的数据DT,并且还可以存储由计算装置130产生的数据(例如,任务执行结果(诸如,计算装置130的输出数据DT_O))。例如,当计算装置130基于存储在非易失性存储器120中的数据DT执行任务时,存储控制器110可以从非易失性存储器120读取数据DT,并且将数据DT存储在易失性存储器140中。当计算装置130执行任务时,存储控制器110可以将存储在易失性存储器140中的数据DT发送到计算装置130作为输入数据DT_I。当计算装置130的任务执行被完成时,存储控制器110可以将任务执行结果(例如,计算装置130的输出数据DT_O)临时存储在易失性存储器140中,并且可以在主机200的请求下将输出数据DT_O发送到主机200。

易失性存储器140可以被实现为诸如DRAM或静态RAM(SRAM)的易失性存储器。然而,发明构思不限于此,并且易失性存储器140可以被实现为电阻式非易失性存储器(诸如,磁性RAM(MRAM)、相变RAM(PRAM)和电阻式RAM(ReRAM)),或者被实现为各种类型的非易失性存储器(诸如,闪存、纳米浮栅存储器(NFGM)、聚合物RAM(PoRAM)和铁电RAM(FRAM))。在本实施例中,易失性存储器140被示出为设置在存储控制器110外部,但实施例不限于此,并且易失性存储器140也可以设置在存储控制器110内部。

电压产生器150可以产生在存储装置100中使用的各种电压。例如,电压产生器150可以被实现为电源管理集成电路(PMIC)或电源管理单元(PMU)。电压产生器150可以基于从存储装置100的外部提供的外部电压(例如,由主机200提供的外部电压)产生电压。在一个实施例中,电压产生器150可以产生非易失性存储器120的驱动电压(其可以被描述为第一驱动电压Vd1)和计算装置130的驱动电压(其可以被描述为第二驱动电压Vd2),并且可以将第一驱动电压Vd1和第二驱动电压Vd2分别提供给非易失性存储器120和计算装置130。电压产生器150可以基于资源管理器30的控制而调整第一驱动电压Vd1的电压值和/或第二驱动电压Vd2的电压值。

CGEN 160可以产生在存储装置100中使用的各种时钟信号。例如,CGEN 160可以被实现为振荡器、锁相环(PLL)、延迟锁相环(DLL)等。CGEN 160可以产生在非易失性存储器120中使用的时钟信号(其可以被描述为第一时钟信号CLK1)和在计算装置130中使用的时钟信号(其可以被描述为第二时钟信号CLK2)。CGEN 160可以在资源管理器30的控制下调整第一时钟信号CLK1的频率和/或第二时钟信号CLK2的频率。

资源管理器30可以接收关于租户优先级的信息和/或关于分配的任务类型D_TT(见图1和图2)的信息,并且基于这些信息,资源管理器30可以根据多个租户中的每个来不同地分配多种资源。多种资源可以包括计算装置130的资源(例如,图2中的处理元件PE)、易失性存储器140的资源和非易失性存储器120的资源。

作为一个示例,资源管理器30可以根据租户优先级和请求的任务类型分配计算装置130的资源。资源管理器30可以从主机200接收关于租户优先级D_TP的信息,并且识别多个租户中的每个的优先级。例如,当包括在租户A中的第一用户和包括在租户B中的第二用户二者同时请求执行任务时,资源管理器30可以与租户优先级成比例地分配计算装置130的资源。

作为另一示例,资源管理器30可以根据请求的任务类型分配计算装置130的资源。资源管理器30可以基于从主机200接收的由租户(或包括在租户中的用户)请求的任务类型来识别QoS。例如,包括在租户A中的第一用户的任务所需要的QoS(例如,QoS的值)可能小于执行包括在租户B中的第二用户的任务所需要的QoS(例如,QoS的值)。根据实施例,即使当租户B的优先级低于租户A的优先级时,由包括在租户B中的第二用户请求的任务所需要的QoS也可以被考虑。以此方式,资源管理器30可以与任务所需要的QoS(例如,QoS的值)成比例地分配计算装置130的资源。

根据实施例,资源管理器30还可以包括区域管理模块32。区域管理模块32可以使用软件(或固件)和硬件来实现。区域管理模块32可以管理包括在非易失性存储器120中的第一区域120_1(例如,第一区域存储器)至第n区域120_n(例如,第n区域存储器),并且支持处理对第一区域120_1至第n区域120_n的各种请求的功能,其中,n为正整数。在一个实施例中,区域管理模块32可以根据从主机接收的管理命令将非易失性存储器120设置为第一区域120_1至第n区域120_n。区域管理模块32可以基于由主机200提供的租户管理信息而针对每个租户不同地设置(例如,划分和/或分配)用于存储数据的区域(或者,区域存储器)。例如,区域管理模块32可以将非易失性存储器120设置为针对包括在租户A中的用户存储数据的第一区域120_1(区域1)和针对包括在租户B中的用户存储数据的第二区域120_2(区域2)。在一个示例中,资源管理器30或区域管理模块32可以被配置为与租户的优先级成比例地针对每个租户分配多个区域中的至少一个区域。

一起参照图1,如上所述,当计算装置130正在执行任务时,存储控制器110的资源管理器30可以从主机200的租户管理器210实时地接收关于租户优先级D_TP的信息和关于任务类型的信息,并且基于这些信息,存储控制器110的资源管理器30可以动态地管理计算装置130的资源。

存储控制器110可以包括用于控制存储装置100的其他组件(例如,非易失性存储器120、计算装置130、易失性存储器140、VGEN 150和CGEN 160)的控制器。例如,参照图1,存储控制器110还可以包括缓冲器控制器111、NAND控制器113、直接存储器访问(DirectMemory Access,DMA)控制器115等。响应于来自主机200的命令CMD(未示出),存储控制器110可以控制非易失性存储器120的写入操作和读取操作并且控制计算装置130的数据处理。

在一个实施例中,资源管理器30可以确定包括在计算装置130中的多个处理元件131之中的针对每个租户而激活的处理元件PE的数量。在这种情况下,处理元件PE可以包括处理单位操作的操作电路,并且可以实现为例如中央处理器(CPU)的核、图形处理器(GPU)的算术逻辑单元(ALU)、现场可编程门阵列(FPGA)的查找表(LUT)、块RAM(BRAM)或数字信号处理器(DSP)。

资源管理器30可以将租户索引D_TI发送到计算装置130,租户索引D_TI指示针对每个用户的激活的处理单元的数量。因此,计算装置130可以接收租户索引D_TI,并且基于接收的租户索引D_TI针对多个租户动态地改变针对每个租户执行数据处理的处理元件的数量。

在一个实施例中,第一路径P1和第二路径P2可以设置在存储控制器110与计算装置130之间,数据(诸如,输入数据DT_I和输出数据DT_O)可以经由第一路径P1(未示出)被收发,包括状态信息IF_S(未示出)和电源控制信号CS_PM(未示出)的各种控制信号可以经由第二路径P2(未示出)被收发。不同的接口方法可以被应用于第一路径P1和第二路径P2。作为非限制性示例,外围组件互连高速(PCIe)接口方法可以被应用于第一路径P1,集成电路总线(inter-integrated circuit,I2C)接口方法可以被应用于第二路径P2。然而,实施例不限于此,并且第一路径P1和第二路径P2可以是应用有相同的接口方法的相同类型的路径。

在一个实施例中,资源管理器30可以基于关于租户优先级D_TP的信息调整将数据DT发送到易失性存储器140的发送速率。资源管理器30可以通过调整加速器的性能而将数据DT的发送速率设置为针对每个用户而不同。例如,资源管理器30可以从具有高租户优先级的第一用户接收任务请求。资源管理器30可以识别关于第一用户的租户优先级的信息,并且与识别的优先级成比例地调整加速器的性能。因此,针对由具有高优先级的租户的用户请求的任务所需要的数据可以被快速地发送,针对由具有相对低的优先级的租户的用户请求的任务所需要的数据可以被缓慢地发送。

如参照图1和图2所述,在存储装置100中,存储控制器110可以根据多个租户中的每个的优先级来构建计算装置130、非易失性存储器120和易失性存储器140的操作环境,并且可以动态地执行QoS管理。

当由多个用户请求的任务根据先进先出(FIFO)方法被执行而不考虑租户的优先级和由用户请求的任务类型时,即使租户的优先级高,QoS也可能无法被满足。然而,根据发明构思的实施例的存储装置100可以通过将租户的优先级和由用户请求的任务类型一起考虑来实时地重新分配存储装置100的资源,因此,由多个用户请求的所有任务的QoS可以被满足。

此外,根据发明构思的示例实施例的存储装置100可以通过在存储控制器110中执行由用户请求的任务的预处理,来减少将要后处理的数据的量,并且改善主机200的工作负载。

图3是根据发明构思的示例实施例的存储控制器110的框图。

参照图3,存储控制器110可以包括处理器10、RAM 20、资源管理器30、主机接口电路(例如,主机I/F)40、缓冲器接口电路(例如,缓冲器I/F)50、计算接口电路(例如,计算I/F)60和NAND接口电路(例如,NAND I/F或NAND闪存接口电路)70。

根据实施例,存储控制器110的组件(例如,处理器10、RAM 20、资源管理器30、主机接口电路40、缓冲器接口电路50、计算接口电路60和NAND接口电路70)可以经由总线80彼此通信。

根据实施例,处理器10可以包括CPU、微处理器等,并且可以控制存储控制器110的所有操作。处理器10可以被实现为多核处理器(例如,双核处理器或四核处理器)。

RAM 20可以在处理器10的控制下操作,并且可以用作工作存储器、缓冲存储器、高速缓冲存储器等。例如,RAM 20可以被实现为易失性存储器(诸如,DRAM和SRAM)或非易失性存储器(诸如,PRAM和闪存)。RAM20可以存储用于控制存储控制器110的固件和数据。存储的固件和数据可以由处理器10驱动或处理。被实现为固件的存储控制器110的软件层结构可以包括接口层、闪存转换层(FTL)等。

资源管理器30可以动态地管理包括存储控制器110的存储装置100的资源。基于关于租户优先级D_TP和由用户请求的任务类型D_TT的信息,资源管理器30可以执行对针对每个任务而在计算装置130中激活的计算元件的数量、将要由非易失性存储器120输出的数据的带宽、易失性存储器140的加速器的性能等的调整。

资源管理器30可以被实现为软件(或固件)或硬件。可选地,资源管理器30可以被实现为软件和硬件的组合。当资源管理器30被实现为软件时,构成资源管理器30的程序的指令可以被加载到RAM 20上,并且由处理器10执行。

主机接口电路40可以在处理器10的控制下与主机200通信。各种接口方法(诸如,通用串行总线(USB)、高级技术附件(ATA)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、串行连接小型计算机系统接口(SCSI)(SAS)、高速芯片间互连(high speedinterchip,HSIC)、SCSI、外围组件互连(PCI)、PCI高速(PCIe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(MM)(DIMM)、寄存式DIMM(registered DIMM,RDIMM)、低负载DIMM(LRDIMM)、增强型小磁盘接口(ESDI)和集成驱动电子设备(IDE))中的至少一种可以被应用在主机接口电路40中。

缓冲器接口电路50可以提供存储控制器110与易失性存储器140之间的接口。将要存储在非易失性存储器120中的数据DT、从非易失性存储器120读取的数据DT或计算装置130的输出数据DT_O可以经由缓冲器接口电路50被临时存储在易失性存储器140中。

计算接口电路60可以提供存储控制器110与计算装置130之间的接口。计算接口电路60可以包括加速器(未示出)。资源管理器30可以控制加速器(未示出)针对每个用户以不同的发送速率发送数据DT。例如,资源管理器30可以通过控制加速器的操作频率时钟来控制针对每个用户的不同发送速率。

尽管未示出,但存储控制器110还设置有用于对将要存储在非易失性存储器120中的数据进行编码并用于对从非易失性存储器120读取的数据进行解码的ECC引擎等,非易失性存储器120存储用于与主机200接口连接的代码数据。

图4是根据发明构思的示例实施例的资源管理器30的操作的流程图。

参照图4,资源管理器30可以从主机200接收关于租户优先级D_TP的信息和关于任务类型D_TT的信息(S110)。

基于接收的关于租户优先级D_TP的信息和关于任务类型D_TT的信息,资源管理器30可以控制计算装置130的用于执行请求的任务的处理元件的数量、非易失性存储器120的带宽和易失性存储器140的加速器(例如,加速器的性能)(S120)。

作为一个示例,资源管理器30可以通过将大量的计算处理资源(例如,图2中的计算装置130的处理元件PE)提供给包括在高优先级租户中的用户来控制计算装置130,使得由包括在高优先级租户中的用户请求的任务被快速地处理,并且该任务所需要的QoS被满足。

作为另一示例,当输出由包括在高优先级租户中的用户请求的任务所需要的数据时,资源管理器30可以通过动态地分配较宽的带宽来满足QoS。

作为另一示例,资源管理器30可以通过针对每个租户分配易失性存储器140的存储区域来动态地管理存储区域。资源管理器30还可以包括用于针对每个租户提供独立地址空间的页表(page table)。资源管理器30可以针对每个租户分配易失性存储器140的存储区域的一部分作为独立区域,并且可以将独立区域设置为与租户优先级成比例。可选地,资源管理器30可以通过控制包括在用于连接到易失性存储器140的缓冲器接口电路50中的加速器,来控制数据到易失性存储器140的输入速度/数据从易失性存储器140的输出速度。因此,资源管理器30可以通过针对与高优先级的租户对应的用户的任务请求而动态地设置易失性存储器140的分配的空间来满足QoS。

图5是根据发明构思的示例实施例的通过资源管理器30来动态地分配计算资源的流程图。图6A示出了根据发明构思的示例实施例的当任务类型不同时分配计算资源的示例。图6B示出了根据发明构思的示例实施例的当任务类型相同时分配计算资源的示例。

参照图5,资源管理器30可以识别多个接收的任务类型(S210)。资源管理器30可以从主机200的租户管理器210接收关于由多个用户请求的任务的任务类型信息。例如,包括在租户A中的第一用户可以请求用于搜索第一图像的过滤任务,包括在租户B中的第二用户可以请求使用神经网络的卷积任务,包括在租户C中的第三用户可以请求用于搜索第二图像的过滤任务。资源管理器30可以识别与第一用户对应的第一任务(过滤)、与第二用户对应的第二任务(卷积)和与第三用户对应的第三任务(过滤)中的每个的类型。

资源管理器30可以确定多个任务类型中的两个或更多个是否相同(S220)。资源管理器30可以确定在当前时间点请求的所有任务是否是同一类型。例如,在当前时间点,当除了第二用户之外的第一用户和第三用户已经请求用于图像搜索的过滤任务时,资源管理器30确定将要执行的任务类型相同。又例如,在当前时间点,当第一用户和第二用户请求任务时,因为第一任务的类型是过滤并且第二任务的类型是卷积,所以资源管理器30确定任务类型彼此不同。

资源管理器30可以基于租户优先级和QoS确定将要针对每个任务而激活(或分配)的处理元件的数量(S230)。当多个任务彼此不同时,资源管理器30可以不同地设置将要针对每个任务而激活的处理元件的数量。

存储装置100可以同时执行第一用户的过滤任务和第二用户的卷积任务。在这种情况下,资源管理器30可以与包括第一用户的租户A的优先级和包括第二用户的租户B的优先级成比例地设置处理元件的数量。参照图6A,分配给租户A的处理元件的数量可以是八个,分配给租户B的处理元件的数量可以是四个。因为租户A的优先级高于租户B的优先级,所以由包括在租户A中的第一用户请求的任务可以通过分配更多的处理元件被较快地处理。根据各种实施例,每个处理元件可以包括CPU的多个核或寄存器、GPU的算术逻辑单元(ALU)、FPGA的LUT以及块RAM等。

根据各种实施例,资源管理器30可以进一步基于根据任务类型的QoS确定处理元件的数量。尽管在图6A中未示出,但资源管理器30可以将四个处理元件分配给租户A,并且将八个处理元件分配给租户B。第二任务的卷积操作可能需要比第一任务的过滤操作高的复杂度且比第一任务的过滤操作大的计算量。这样,第二任务的QoS可以具有比第一任务的QoS大的值。因此,为了满足第一任务和第二任务两者的QoS,资源管理器30可以将用于第二任务的卷积操作的处理元件的数量设置为八个(未示出),而与租户B的低优先级无关。在一个实施例中,在这种情况下,请求的任务的类型可以优先于租户优先级。然而,其他布置(诸如,允许租户优先级优先于任务类型,或者使用基于租户优先级、任务类型和可能的其他因素(诸如,QoS)的组合确定如何将资源(诸如,处理元件、带宽、存储区域和/或速度)分配给不同的请求任务的算法)可以被使用。

根据各种实施例,在第一用户和第二用户的任务被执行的同时,第三用户可以请求任务。在这种情况下,资源管理器30可以考虑第一用户至第三用户所属的租户的优先级和任务的QoS而动态地确定处理元件的数量。参照图6A,当租户C的第三用户请求任务时,资源管理器30可以改变用于租户A和租户B的处理元件的数量。例如,资源管理器30可以识别租户A至租户C的优先级比大约为2:1:3,将计算装置130的处理元件中的六个新分配为执行第三任务,将用于执行第一任务的处理元件的数量从8个减少为4个,并且将用于执行第二任务的处理元件的数量减少为两个。

资源管理器30可以根据确定的处理元件的数量执行动态重新配置(S240)。例如,计算装置130可以被实现为FPGA。资源管理器30可以根据针对每个租户而确定的处理元件的数量来动态地重新配置计算装置130。动态重新配置可以指将每个处理元件改变为被优化为执行请求的任务的知识产权(IP)。例如,计算装置130可以通过使用动态重新配置将处理元件各自转换为执行过滤操作、卷积运算和过滤操作。例如,执行过滤操作的处理元件可以被重构为DSP块,执行卷积运算的处理元件可以被重构为专用于卷积运算的加速器。

资源管理器30可以基于租户优先级确定激活处理元件的时间比(S250)。当多个任务类型相同时,资源管理器30可以通过应用时分(例如,对彼此相同的多个任务应用时分)来使用处理元件,也就是说,资源管理器30可以通过交替地激活多个处理元件来使用多个处理元件。例如,当第一用户和第三用户同时请求任务时,资源管理器30可以确定任务类型相同。原因可以是:尽管第一用户已经请求搜索第一图像(例如,动物图像)的任务,并且第二用户已经请求搜索第二图像(例如,水果图像)的任务,但过滤操作被共同地请求。

资源管理器30可以基于租户优先级确定激活处理元件的时间比。例如,资源管理器30可以通过将大量的时间分配给与具有高优先级的租户对应的任务请求来执行操作,并且通过将少量的时间分配给与具有低优先级的租户对应的任务请求来执行操作。例如,当租户A与租户C的优先级的比率为大约2:3时,用于执行第一任务的时间量与用于执行第三任务的时间量的比率也可以被设置为大约2:3。

资源管理器30可以根据确定的时间比执行上下文切换(context switching)操作(S260)。上下文切换操作可以指在不改变处理元件的IP的情况下改变寄存器值(上下文)。例如,计算装置130可以在第一任务与第三任务之间执行上下文切换操作。例如,第一任务和第三任务可以共同地对应于用于图像搜索的过滤操作,但因为仅过滤目标不同,所以相同的过滤操作可以通过仅改变寄存器值来执行。参照图6B,计算装置130可以在所有的处理元件中执行针对由租户A请求的第一任务的过滤(例如,过滤动物图像)。此后,根据在操作S250中确定的时间比,当特定时间量已经过去时,计算装置130可以通过执行上下文切换操作而在所有的处理单元中执行针对由租户C请求的第三任务的过滤(例如,过滤水果图像)。

图7是根据发明构思的示例实施例的通过资源管理器30动态地分配非易失性存储器120的资源的流程图。

参照图7,资源管理器30可以识别接收的租户的优先级(S310)。如上所述,当第一用户至第三用户请求任务时,资源管理器30可以识别其中分别包括有第一用户至第三用户的租户A至租户C的优先级。例如,如上所述,租户A至租户C的优先级的比率可以对应于大约2:1:3。

资源管理器30可以通过使用存储器交织(memory interleaving)操作来与优先级成比例地动态地配置带宽(S320)。在多通道NAND闪存的情况下,资源管理器30可以与租户的优先级成比例地执行交织操作。例如,如上所述,当租户A至租户C的优先级比对应于大约2:1:3时,用于数据输入/输出的通道带宽也可以被设置为大约2:1:3的比率。通过与租户的优先级成比例地执行交织操作,当属于高优先级租户的用户请求数据的输入/输出时,高的每秒输入/输出操作(input/output operations per second,IOPS)可以被实现。交织可以跨越多通道NAND闪存的多个存储器块、存储体或芯片地被执行,以允许根据比率(例如,通道带宽比)针对每个任务对多个存储器块、存储体或芯片同时访问。被配置为实现这种交织的硬件和软件可以被称为交织器。

尽管已经参照发明构思的实施例具体地示出和描述了发明构思,但将理解的是,在不脱离权利要求的精神和范围的情况下,可以在其中做出形式上和细节上的各种改变。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种eMMC芯片随机写入速率优化实现方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类