CN110750210A - 存储系统 - Google Patents

存储系统 Download PDF

Info

Publication number
CN110750210A
CN110750210A CN201910312218.3A CN201910312218A CN110750210A CN 110750210 A CN110750210 A CN 110750210A CN 201910312218 A CN201910312218 A CN 201910312218A CN 110750210 A CN110750210 A CN 110750210A
Authority
CN
China
Prior art keywords
memory
memory controller
storage system
pool
accelerator
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.)
Granted
Application number
CN201910312218.3A
Other languages
English (en)
Other versions
CN110750210B (zh
Inventor
金善雄
林义哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
Hynix Semiconductor Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from KR1020180155681A external-priority patent/KR102551726B1/ko
Application filed by Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN110750210A publication Critical patent/CN110750210A/zh
Application granted granted Critical
Publication of CN110750210B publication Critical patent/CN110750210B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Memory System (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种存储系统,其涉及用于高容量存储器件的加速器的技术。该存储系统包括:多个存储器,其被配置成在其中存储数据;以及池式存储器控制器(PMC),其被配置成通过读取存储在多个存储器中的数据并且将通过映射计算产生的结果数据存储在多个存储器中来执行映射计算。

Description

存储系统
相关申请的交叉引用
本申请要求于2018年7月23日向韩国知识产权局提交的申请号为10-2018-0085506的韩国专利申请和于2018年12月6日向韩国知识产权局提交的申请号为10-2018-0155681的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
本公开的实施例总体而言可以涉及存储系统,并且更具体地涉及用于高容量存储系统的计算加速器(computational accelerator)的技术。
背景技术
近来,各种移动通信终端(例如智能手机、平板PC等)已经在全世界广泛使用。此外,对随时随地的社交网络服务(SNS)、机器到机器(M2M)服务、传感器网络等的需求正在迅速增加。因此,数据的量、数据的创建速度和数据的多样性按几何级数增加。为了对大数据进行处理,每个存储器的数据处理速率都很重要,并且还需要高容量的存储器件和高容量的存储模块。
因此,存储系统可以包括多个组合的存储器件以克服每个存储器件的物理限制并增大存储系统的存储容量。例如,可以将云数据中心的服务器体系结构改变为能够有效率地执行大数据应用程序的结构。
为了有效率地处理大数据,最近已经使用了通过多个存储器的统一(或组合)而形成的池式存储器(pooled memory)。该池式存储器提供高容量和高带宽的存储器,并且可以被有效率地用来提供存储器中数据库(in-memory database)等。
发明内容
本公开的各种实施例涉及提供一种存储系统,该存储系统实质上消除了由相关技术的限制和缺点导致的一个或多个问题。
本公开的实施例涉及一种存储系统,其具有包含在池式存储器中的加速器,使得该存储系统可以减少能量消耗并且增加系统吞吐量或性能。
在本公开的实施例中,一种存储系统包括:多个存储器,其被配置成将数据存储于其中;以及池式存储器控制器(PMC),其被配置成通过从多个存储器读取输入数据并且将通过执行映射计算而产生的结果数据存储在多个存储器中来执行映射计算。
根据本公开的另一实施例,一种存储系统包括:架构网络,其耦接到至少一个处理器;以及池式存储器,其具有多个存储器和池式存储器控制器,所述池式存储器被配置成经由架构网络来执行至处理器的数据包中继,以及响应于来自处理器的请求而传送存储在至少一个存储器中的数据。所述池式存储器控制器被配置成通过读取存储在至少一个存储器中的输入数据并且将通过映射计算产生的结果数据存储在至少一个存储器中来执行对映射计算的卸载。
应理解,本公开的前述一般性描述和以下详细描述都是说明性和解释性的,并且旨在提供对所要求保护的本公开的进一步解释。
附图说明
通过参考以下结合附图来考虑的详细描述,本公开的上述和其他特征和优点将变得显而易见,在附图中:
图1是示出根据本公开的实施例的存储系统的概念图。
图2是示出根据本公开的实施例的存储系统的概念图。
图3是示出根据本公开的实施例的池式存储器控制器的框图。
图4、图5和图6示出根据本公开的实施例的存储系统的操作。
图7是示出根据本公开的实施例的存储系统的性能改进的视图。
具体实施方式
现在将详细参考本公开的实施例,其示例在附图中示出。只要有可能,在整个附图中使用相同的附图标记来指代相同或相似的部分。遍及本公开的说明书,如果假设特定部件连接(或耦接)到另一部件,则术语“连接或耦接”表示该特定部件直接连接(或耦接)到另一部件,和/或通过第三方的媒介而电连接(或耦接)到另一部件。遍及本公开的说明书,如果假设特定部件包括特定组件,则术语“包含或包括”表示对应的组件还可以包括其他组件,除非写明了该对应的组件的相反的特定含义。如在说明书和所附权利要求中所使用的,术语“一”、“一个”、“一种”、“该”和其他类似术语包括单数形式和复数形式二者,除非上下文另外明确指示。本申请中使用的术语仅用于描述特定实施例,而非旨在对本公开进行限制。除非在上下文中另外说明,否则单数表述可以包括复数表述。
随着由数据中心应用程序(data center application)处理的数据或数据的量的大小增加,数据中心应用程序所需的硬件资源的数量也增加。最近服务器体系结构已经演变以更有效率地利用这样的硬件资源。
例如,在云数据中心中可以执行深度学习应用程序以及还有大量的机器学习应用程序。大多数深度学习应用程序和机器学习应用程序具有低时间局部性(temporallocality),从而优选地使用硬件加速器(例如图形处理单元(GPU)、现场可编程门阵列(FPGA)等)而不是使用中央处理单元(CPU)来对深度学习应用程序和机器学习应用程序进行算术处理(即计算)。
在这种情况下,术语“时间局部性”可以指以下程度,即访问数据一次(即被访问一次的数据或起初被访问的数据)的操作在完成对数据的起初访问之后的相对短的时间段内可能再次访问该数据的程度。也就是说,上述应用程序可能主要使用暂时还没有被访问的冷数据(cold data),而不是使用被频繁访问的热数据(hot data)。结果是,上述应用程序可能无法从CPU中通常采用的高速缓冲存储系统受益以减少某些大型存储系统的相对低的带宽和高的延时(latency)特性的影响。
下面将在下文中描述用于允许处理器(例如CPU)执行将作业卸载(off-load)到加速器的操作过程。在某些情况下,起初可以将数据从处理器的本地存储器移动到加速器的本地存储器。此后,当加速器结束算术处理或计算时,计算结果应当被传输到处理器。
然而,当这样的数据移动的成本(诸如延迟或功耗)高于数据计算所需的成本时,就成本效率而言,优选地实现需要传输较少的数据来执行期望的计算的体系结构。为此,已经提出了存储器驱动计算(memory-driven computing)的概念。
图1是示出根据本公开的实施例的存储系统的示例的概念图。
图1示出了用于存储器驱动计算的基于存储器的计算结构,以及其与用于以处理器为中心的计算(processor-centric computing)的基于片上系统(SoC)的(即,基于处理器的)计算结构(即,计算设备)的不同之处。在基于处理器的计算结构中,单个SoC可以一对一地耦接到单个存储器。
存储器驱动计算可以使用统一存储器(unified memory),其中多个SoC经由架构网络(fabric network)而相互耦接。SoC之间的数据通信可以通过存储系统带宽来实现。
另外,经由架构网络而与多个SoC耦接的一个统一存储器不需要执行通常的存储器拷贝来实现SoC之间的数据通信。为了实现商业上可用的存储器驱动计算,应当支持高带宽、低延时、一致性等。
与本公开的上述实施例的技术领域相关联地,许多开发者和公司正在深入研究用于将基于事务的存储系统(transaction-based memory system)互相连接的技术。
与加速器技术相关联地,已经深入学习并提出了基于工作负荷特性的对加速器的放置位置的各种研究,例如近数据处理(Near Data Processing,NDP)或存储器中处理(Processing In Memory,PIM)。在这种情况下,存储器中处理(PIM)可以指计算逻辑紧密耦接到存储单元以便提高数据处理速率和数据传输速率的存储器。
本公开的实施例涉及其中组合了多个存储器的池式存储器体系结构的技术、以及适合于所述池式存储器体系结构的存储器中数据库的使用。以下描述将公开映射-化简应用程序(Map-Reduce Application)的特性和用于使用嵌入在所述池式存储器中的加速器(稍后要描述)来处理映射计算的方法。
图2是示出根据本公开的实施例的存储系统10的概念图。
存储系统10可以基于上述存储器驱动计算的体系结构。存储系统10可以包括多个处理器(例如CPU)20、架构网络30、多个通道40、以及多个池式存储器(或池式存储器件)100。术语“存储系统”不限于图2中所示的配置。例如,存储系统还可以指包括池式存储器控制器和多个存储器的系统,该存储系统通过架构网络耦接到多个处理器。
多个处理器20可以经由节点CND(或一个或多个节点)耦接到架构网络30。多个处理器20可以经由架构网络30耦接到多个池式存储器。在一个实施例中,池式存储器100中的一个或多个可以经由多个通道40耦接到架构网络30。例如,池式存储器100中的每一个可以经由N个通道40耦接到架构网络30,其中N大于或等于1。尽管图2示出了将多个处理器20耦接到架构网络30的单个节点CND,但是实施例不限于此,在一个实施例中,多个节点可以各自将相应的多个处理器耦接到架构网络30。例如,图1的存储器驱动计算系统中示出的SoC中的每一个可以包括将多个处理器耦接到架构的节点。
池式存储器100中的每一个可以包括多个存储器(或存储器件)120和用来控制多个存储器120的池式存储器控制器(PMC)110。池式存储器控制器(PMC)110可以经由总线(BUS)耦接到每个存储器120。
每个存储器120可以直接耦接到架构网络30。然而,本公开的范围或精神不限于此,可以将多个存储器120设置在单个池式存储器100内,使得池式存储器100直接耦接到架构网络30并且多个存储器120经由池式存储器100的接口(例如池式存储器控制器110)而间接耦接到架构网络30。
当池式存储器100包括多个存储器120时,池式存储器控制器(PMC)110可以位于架构网络30与多个存储器120之间,使得池式存储器控制器(PMC)110可以管理相应的存储器120。也就是说,多个存储器120与架构网络30之间的通信可以由池式存储器控制器(PMC)110来提供(并且,在实施例中,由池式存储器控制器(PMC)110来管理)。
在一个实施例中,池式存储器控制器(PMC)110可以执行存储器交错(memoryinterleaving)以增加吞吐量,或者可以支持地址重新映射以提高可靠性、可用性、可服务性等。
存储器中数据库(in-memory database)可以指用于将必要数据存储在主存储器中而不是存储装置(例如,诸如硬盘驱动器(HDD)或固态驱动器(SSD)的存储装置)中的数据库管理系统,从而该存储器中数据库可以被快速地访问。
相关技术的服务器系统将存储器的存储容量增加到超过预定的存储器容量可能具有物理难度。在这样的服务器系统中,应用程序不能允许数据库(DB)的大小大于每个服务器的预定的存储器容量。如果数据库(DB)的大小增加,则要存储在数据库(DB)中的数据应当以分布式方式存储在多个服务器中,这可能导致系统性能因多个服务器的互相连接过程而不可避免地下降。为了避免这种情况,池式存储器100可以提供比相关技术的服务器系统高的存储容量和/或高的带宽,使得池式存储器100可以比相关技术的服务器系统更有效率地支持存储器中DB。
图3是示出根据本公开的实施例的图2中所示的池式存储器控制器(PMC)110的框图。
池式存储器控制器(PMC)110可以包括接口111和加速器112。在这种情况下,接口111可以在架构网络30、加速器112和多个存储器120之间执行数据包中继(packet delay)。接口111可以经由多个加速器通道(CN)耦接到加速器112。
根据该实施例的接口111可以包括用于执行这样的数据包中继的交换器(switch)。该交换器可以位于架构网络30、加速器112和存储器120之间。尽管为了更便于理解本公开,本公开的实施例已经说明性地公开了接口111包括交换器,但是本公开的范围或精神不限于此,应当注意这样的数据包中继所需的其他技术手段也可以毫无困难地应用于本公开。
加速器112可以对经由接口111而接收的数据执行计算。例如,加速器112可以执行经由接口111而从一个或多个存储器120接收的数据的映射计算,并且可以经由接口111将从映射计算产生的数据(即,结果数据)存储在一个或多个存储器120中。在一个实施例中,加速器112是可编程的,也就是说,加速器112通过执行从非暂态计算机可读介质提供给加速器112的计算机编程指令来执行映射计算。
为了便于描述,上述实施例已说明性地公开了池式存储器控制器(PMC)110中的一个加速器112。然而,本公开的范围或精神不限于此,应当注意多个加速器112也可以被包括在池式存储器控制器(PMC)110中。
映射-化简应用程序可以指被设计为使用分布式并行计算来处理高容量数据的软件框架。这种映射-化简应用程序已经被用在各种种类的应用程序中。在映射-化简应用程序中使用的映射计算可以以下面的方式来配置:在以键和值(Key,Value)的形式提取中间信息之后,化简计算可以收集所提取的中间信息,然后基于所收集的信息来输出期望的最终结果。通常,“映射”指的是从数据库(诸如存储器中数据库)选择数据和/或对数据进行排序(sort)的操作,而“化简”指的是将由所述映射操作产生的被选择和被排序的数据用作输入来执行计算的操作。
例如,假设存储系统10的用户想使用映射-化简应用程序来搜索关于“每年地球上的最高温度”的信息,映射计算可以通过读取文本文件中的信息(或者“读取的信息”)来提取年份和温度信息,并且可以输出包括年份温度对(Year,Temperature)的列表。该列表对于每年可以包括多个(Year,Temperature)对。化简应用程序可以收集上述映射计算结果,可以按温度值的上升或下降数字顺序来排布所收集的信息,并且可以对于每年输出具有最高温度的(Year,Temperature)对,以产生期望的最终结果。在这种情况下,值得注意的特性的特征在于,要用于这样的映射计算的数据通常是高容量的数据,并且由映射计算产生的结果数据是大小(size)相对较小的数据(即,相对较小容量的数据)。
尽管根据实施例的存储系统10被设计为如在映射-化简应用程序的映射计算中那样来对高容量数据进行处理,但是存储系统10也可以使用池式存储器控制器(PMC)110的加速器112来执行对低再用率计算的卸载。在这种情况下,术语“卸载”可以指一系列过程,在该一系列过程中,从处理器20中的每一个接收请求,响应于所接收到的请求来对必要的数据进行分析,执行与被分析的数据相对应的必要的计算,并最终输出计算结果。对于在池式存储器100内处理数据的情况,可以减少将数据传输到处理器20的节点CND所需的能量消耗,并且还可以提高系统性能。
加速器112可以被设置在池式存储器控制器(PMC)110中,或者可以被设置在每个存储器120中。从近数据处理的角度来看,使用每个存储器120内的加速器来处理近数据的方法可能比使用池式存储器控制器(PMC)110内的加速器来处理近数据的方法更有效率。
为了提供高带宽,池式存储器控制器(PMC)110可以执行存储器交错。在这种情况下,数据可以以分布式方式存储在多个存储器120中。结果是,加速器112所需的数据也可以以相同的分布式方式存储在多个存储器120中。以下实施例将公开一种说明性情况,其中为了便于描述而将加速器112的物理位置布置在池式存储器控制器(PMC)110中,但是实施例不限于此。
以下将参照附图来描述关于上述方法(其用于利用存储器中的加速器112来执行映射-化简应用程序的映射计算的卸载)的性能和能量效率益处的信息。
假设要由加速器112执行的计算具有与映射-化简应用程序的映射计算类似的计算复杂度,加速器112所需的计算时间可以取决于从对应的存储器读取数据所经由的带宽。因此,可以增大加速器112的带宽范围,从而可以减少加速器112的计算时间。
如图3中所示,一系列处理器20的节点(CND)可以经由架构网络30耦接到池式存储器100。为了便于描述和更好地理解本公开,假设每个节点CND包括用于每个处理器20的单个链路L1,并且设置在池式存储器控制器(PMC)110中的加速器112包括四个链路(L2)。也就是说,加速器112的链路L2的带宽可以大于每个处理器20的链路L1的带宽。结果是,当使用加速器112来执行对映射计算或类似计算的卸载时,在该示例中,对映射计算的卸载的处理速度可以有利地比用于经由每个处理器20来处理这样的卸载的方法的处理速度快四倍。
当由处理器20中的每一个来执行映射计算和化简计算二者时,为了说明的目的,假设映射计算所消耗的时间占总执行时间的99%。另外,当仅由一个处理器20来执行多个应用程序时,映射-化简应用程序所消耗的执行时间可以占所有应用程序的总执行时间的大约10%。当使用加速器112来执行对映射计算的卸载时,映射计算时间减少大约1/4,从而总系统性能可以提高大约81%。
图4、图5和图6是示出根据本公开的实施例的存储系统10的操作的概念图。
首先,如图4的路径1所示,处理器20中的每一个可以将请求映射计算的数据包传送给池式存储器100。即,从处理器20接收的映射计算请求数据包可以在经过架构网络30和池式存储器控制器(PMC)110的接口111之后被传送给加速器112。映射计算请求数据包可以包括关于存储了要用于映射计算的输入数据的地址的信息、关于数据的大小的信息、关于要用于存储映射计算结果数据的地址的信息等。
随后,如图4的路径2所示,池式存储器控制器(PMC)110可以经由架构网络30将映射计算响应数据包传送给处理器20。即,池式存储器控制器(PMC)110可以向处理器20传送特定信号,该特定信号指示加速器112已正确接收到映射计算请求数据包。
此后,如图5中所示的路径3示出的,池式存储器控制器(PMC)110可以从一个或多个存储器(或每个存储器)120读取映射计算所需的输入数据,并且可以将读取的输入数据传送给加速器112。加速器112所需的输入数据可以分布在多个存储器120之中并且以分布式方式存储在存储器120中。在这种情况下,加速器112可以从多个存储器120中的多于一个的存储器读取输入数据,并且可以基于从存储器120读取的输入数据来执行映射计算。
随后,如图5中所示的路径4示出的,池式存储器控制器110可以读取由加速器112产生的映射计算结果数据,可以将读取的结果数据传送给每个存储器120,并且可以将所传送的结果数据存储在每个存储器120中。由加速器112计算的映射计算结果数据可以分布到多个存储器120并以分布式方式存储在存储器120中。
此后,如路径5所示(参见图6),池式存储器控制器(PMC)110可以经由架构网络30将中断数据包(interrupt packet)或其他信号传送给处理器20,以指示由加速器112执行的映射计算已经完成。
然后,如路径6所示(参见图6),池式存储器控制器(PMC)110可以读取存储在存储器120中的结果数据,并且可以经由架构网络30将读取的结果数据传送给处理器20。
图7示出了通过使用根据本公开的实施例的存储系统可以获得的性能改进。更详细地说,图7的曲线图示出了:随着加速器112的用于加速器112的映射计算的加速器通道(CN)的数量增加,系统性能与加速器通道(CN)的数量的增加成比例地提高。
如图7所示,随着加速器112的加速器通道(CN)的数量增加,系统性能也与增加的加速器通道(CN)成比例地提高。然而,随着加速器通道(CN)的数量增加,系统性能的渐进改善逐渐减少,而增加加速器通道(CN)的数量所需的产品成本以基本相同的速率继续增加。因此,实施例可以具有被设置为2、3或4的加速器通道(CN)数量,以优化性价比(cost-performance ratio)。提供这些加速器通道数量仅仅是为了方便说明,而非意在将实施例局限于此。例如,在其他实施例中,加速器通道的数量可以是5、6、7、8、9、10或更多。
出于说明的目的,假设每个链路L1消耗1pJ/bit的能量(其中“pJ”是皮焦耳,其为指示能量的单位)以经由每个处理器20的节点CND来传输数据。为了使用每个处理器20来处理数据,要处理的数据必须经过总共三个链路(即,每个存储器120的总线、架构网络30的通道40以及每个处理器20的节点CND),从而消耗3pJ/bit的能量。然而,当使用加速器112来执行对映射计算的卸载时,该数据仅需要经过每个存储器120的总线,从而这样的数据传输所消耗的总能量可以被减少到与3pJ/bit的能量的1/3相对应的1pJ/bit。为了确定可以节省多少系统能量,还可以考虑所有硬件(H/W)电路的静态功耗。
如上所述,根据本公开的实施例的池式存储器100包括多个存储器120,并且可以提供大的存储容量和大的带宽,并且可以被用于提供存储器中数据库等。在一个实施例中,加速器112被包括在池式存储器控制器(PMC)110中,并且使用加速器112来执行对映射-化简应用程序的映射计算的卸载,从而可以提高系统性能并且可以减少能量消耗。在另一个实施例中,可以将加速器112增添给多个存储器120中的每一个。
从以上描述显而易见的是,根据本公开的实施例的存储系统可以提高系统吞吐量或性能,并且可以减少数据计算所需的能量消耗。
本领域技术人员将理解,在不脱离本公开的精神和基本特性的情况下,可以以除了本文所述之外的其他特定方式来实现实施例。因此,上述实施例在所有方面都被解释为说明性的而非限制性的。本公开的范围应当由所附权利要求及其合法等同物来确定,而不是由以上描述来确定。此外,落在所附权利要求的含义和等同范围内的所有改变都旨在被包含在其中。另外,本领域技术人员将理解,在提交本申请之后,通过后续修改,所附权利要求中彼此未明确引用的权利要求可以通过组合而呈现为实施例,或者被包括为新的权利要求。
尽管已经描述了若干说明性实施例,但是应当理解,本领域技术人员可以设计出落入本公开的原理的精神和范围内的许多其他修改和实施例。特别地,在组成部件和/或布置方面可以进行在本公开、附图和所附权利要求的范围内的多种变化和修改。除了在组成部件和/或布置方面的变化和修改之外,替代使用对于本领域技术人员而言也是显而易见的。
图中每个元件的符号
10:存储系统
20:多个处理器
30:架构网络
40:多个通道
100:多个池式存储器

Claims (20)

1.一种存储系统,包括:
多个存储器,其被配置成将数据存储于其中;以及
池式存储器控制器,其被配置成:通过从所述多个存储器读取输入数据并且将通过执行映射计算而产生的结果数据存储在所述多个存储器中来执行所述映射计算。
2.根据权利要求1所述的存储系统,其中,所述池式存储器控制器包括:
接口,其被配置成经由架构网络而在至少一个处理器与至少一个存储器之间执行数据包中继;以及
加速器,其被配置成对所述输入数据执行所述映射计算以产生所述结果数据。
3.根据权利要求2所述的存储系统,其中,所述接口经由多个通道耦接到所述加速器,并且所述加速器经由所述多个通道来接收所述输入数据以及经由所述多个通道来将所述结果数据提供给所述接口。
4.根据权利要求3所述的存储系统,其中,所述多个通道的链路的数量高于所述接口与所述处理器中的任何一个之间的链路的数量。
5.根据权利要求2所述的存储系统,其中,所述池式存储器控制器被配置成经由所述接口而从所述至少一个处理器接收映射计算请求数据包。
6.根据权利要求5所述的存储系统,其中,所述映射计算请求数据包包括以下信息之中的至少一种:关于所述输入数据的地址的信息、关于所述输入数据的大小的信息以及关于要用来存储所述结果数据的地址的信息。
7.根据权利要求5所述的存储系统,其中,所述池式存储器控制器被配置成经由所述接口而将映射计算响应数据包传送至所述至少一个处理器。
8.根据权利要求2所述的存储系统,其中,所述池式存储器控制器从所述多个存储器读取所述输入数据,并将读取的输入数据传送至所述加速器。
9.根据权利要求2所述的存储系统,其中,所述接口接收由所述加速器计算的结果数据,并将所接收的结果数据存储在所述多个存储器中。
10.根据权利要求2所述的存储系统,其中,所述池式存储器控制器被配置成:响应于所述映射计算的完成而经由所述接口来将中断数据包传送至所述至少一个处理器。
11.根据权利要求2所述的存储系统,其中,所述池式存储器控制器读取存储在所述多个存储器中的结果数据,并将读取的结果数据传送至所述至少一个处理器。
12.根据权利要求2所述的存储系统,其中,所述池式存储器控制器经由架构网络而与一个或多个处理器通信。
13.根据权利要求1所述的存储系统,其中,所述池式存储器控制器被配置成在所述多个存储器之间执行数据的交错。
14.根据权利要求1所述的存储系统,其中,所述池式存储器控制器被配置成对所述多个存储器执行地址重新映射。
15.一种存储系统,包括:
架构网络,其耦接到至少一个处理器;以及
池式存储器,其具有多个存储器和池式存储器控制器,所述池式存储器被配置成:经由所述架构网络来执行给所述处理器的数据包中继,并响应于来自所述处理器的请求而传送存储在至少一个存储器中的数据,
其中,所述池式存储器控制器被配置成:通过读取存储在所述至少一个存储器中的输入数据并且将通过映射计算产生的结果数据存储在所述至少一个存储器中来执行对所述映射计算的卸载。
16.根据权利要求15所述的存储系统,其中,所述池式存储器控制器包括:
接口,其被配置成:经由所述架构网络而在所述至少一个处理器与所述池式存储器控制器之间执行数据包中继;以及
加速器,其被配置成:通过经由所述接口而接收所述输入数据、对所述输入数据执行所述映射计算、以及经由所述接口而将所述结果数据存储在所述至少一个存储器中来执行对所述映射计算的卸载。
17.根据权利要求16所述的存储系统,其中,所述池式存储器控制器经由所述接口而从所述至少一个处理器接收映射计算请求数据包,并且经由所述接口而将映射计算响应数据包传送至所述至少一个处理器。
18.根据权利要求16所述的存储系统,其中,所述池式存储器控制器从所述至少一个存储器读取所述映射计算所需的输入数据,将读取的输入数据传送至所述加速器,并将所述加速器产生的所述结果数据存储在所述至少一个存储器中。
19.根据权利要求16所述的存储系统,其中,所述池式存储器控制器响应于所述映射计算的完成而经由所述接口来将中断数据包传送至所述至少一个处理器,读取存储在所述至少一个存储器中的所述结果数据,并且经由所述接口而将读取的结果数据传送至所述至少一个处理器。
20.根据权利要求15所述的存储系统,其中,所述池式存储器控制器被配置成针对所述至少一个存储器而执行交错和地址重新映射中的至少一种。
CN201910312218.3A 2018-07-23 2019-04-18 存储系统 Active CN110750210B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20180085506 2018-07-23
KR10-2018-0085506 2018-07-23
KR10-2018-0155681 2018-12-06
KR1020180155681A KR102551726B1 (ko) 2018-07-23 2018-12-06 메모리 시스템

Publications (2)

Publication Number Publication Date
CN110750210A true CN110750210A (zh) 2020-02-04
CN110750210B CN110750210B (zh) 2023-06-13

Family

ID=69163035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910312218.3A Active CN110750210B (zh) 2018-07-23 2019-04-18 存储系统

Country Status (3)

Country Link
US (1) US10915470B2 (zh)
JP (1) JP2020017263A (zh)
CN (1) CN110750210B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905530A (zh) * 2021-03-29 2021-06-04 上海西井信息科技有限公司 片上架构、池化计算加速器阵列、单元以及控制方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467834B2 (en) * 2020-04-01 2022-10-11 Samsung Electronics Co., Ltd. In-memory computing with cache coherent protocol

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281335A1 (en) * 2013-03-15 2014-09-18 Kun Xu System and method for assigning memory access transfers between communication channels
CN105745622A (zh) * 2013-11-15 2016-07-06 微软技术许可有限责任公司 便于形成定制的虚拟盘的计算系统架构
US20160283303A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Reliability, availability, and serviceability in multi-node systems with disaggregated memory
CN106293508A (zh) * 2015-06-26 2017-01-04 伊姆西公司 数据存储系统和方法
CN106469024A (zh) * 2015-08-21 2017-03-01 爱思开海力士有限公司 存储系统
US20170364287A1 (en) * 2016-06-20 2017-12-21 Vmware, Inc. Virtual machine recovery in shared memory architecture
CN108009119A (zh) * 2016-10-27 2018-05-08 三星电子株式会社 处理器和控制工作流的方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0464848B1 (en) 1990-07-06 1996-05-01 Nec Corporation Structure for enabling direct memory-to-memory transfer
US5923654A (en) 1996-04-25 1999-07-13 Compaq Computer Corp. Network switch that includes a plurality of shared packet buffers
US7899052B1 (en) 1999-01-27 2011-03-01 Broadcom Corporation Memory structure for resolving addresses in a packet-based network switch
US8429143B2 (en) 2008-04-25 2013-04-23 International Business Machines Corporation Methods and systems for improving hash table performance
US9473373B2 (en) 2012-04-04 2016-10-18 Viavi Solutions, Inc. Method and system for storing packet flows
US20140115579A1 (en) * 2012-10-19 2014-04-24 Jonathan Kong Datacenter storage system
US9495246B2 (en) * 2013-01-21 2016-11-15 Kaminario Technologies Ltd. Raid erasure code applied to partitioned stripe
EP3198806B1 (en) * 2014-09-25 2019-09-25 Intel Corporation Network communications using pooled memory in rack-scale architecture
US9665415B2 (en) * 2015-09-26 2017-05-30 Intel Corporation Low-latency internode communication
US9952925B2 (en) 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US9983821B2 (en) 2016-03-29 2018-05-29 Samsung Electronics Co., Ltd. Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US10083722B2 (en) 2016-06-08 2018-09-25 Samsung Electronics Co., Ltd. Memory device for performing internal process and operating method thereof
US9996440B2 (en) * 2016-06-20 2018-06-12 Vmware, Inc. Fault tolerance using shared memory architecture
CN110737398B (zh) * 2018-07-20 2023-09-01 伊姆西Ip控股有限责任公司 协调访问操作的方法、设备和计算机程序产品

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281335A1 (en) * 2013-03-15 2014-09-18 Kun Xu System and method for assigning memory access transfers between communication channels
CN105745622A (zh) * 2013-11-15 2016-07-06 微软技术许可有限责任公司 便于形成定制的虚拟盘的计算系统架构
US20160283303A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Reliability, availability, and serviceability in multi-node systems with disaggregated memory
CN106293508A (zh) * 2015-06-26 2017-01-04 伊姆西公司 数据存储系统和方法
CN106469024A (zh) * 2015-08-21 2017-03-01 爱思开海力士有限公司 存储系统
US20170364287A1 (en) * 2016-06-20 2017-12-21 Vmware, Inc. Virtual machine recovery in shared memory architecture
CN108009119A (zh) * 2016-10-27 2018-05-08 三星电子株式会社 处理器和控制工作流的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高胜: ""高速采样数据存储控制器的设计与实现"", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 2017, pages 137 - 92 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905530A (zh) * 2021-03-29 2021-06-04 上海西井信息科技有限公司 片上架构、池化计算加速器阵列、单元以及控制方法
CN112905530B (zh) * 2021-03-29 2023-05-26 上海西井信息科技有限公司 片上架构、池化计算加速器阵列、单元以及控制方法

Also Published As

Publication number Publication date
CN110750210B (zh) 2023-06-13
US20200026669A1 (en) 2020-01-23
JP2020017263A (ja) 2020-01-30
US10915470B2 (en) 2021-02-09

Similar Documents

Publication Publication Date Title
CN110647480B (zh) 数据处理方法、远程直接访存网卡和设备
CN1952877B (zh) 用于软件可配置预取器的方法、装置和系统
US20160132541A1 (en) Efficient implementations for mapreduce systems
US20150143057A1 (en) Adaptive data prefetching
CN103810125A (zh) 有源存储器件聚集、分散和过滤
US20120297216A1 (en) Dynamically selecting active polling or timed waits
US11487473B2 (en) Memory system
US9087561B2 (en) Hybrid cache
US11288012B2 (en) Memory system
CN110750210B (zh) 存储系统
EP4123649A1 (en) Memory module, system including the same, and operation method of memory module
US11023825B2 (en) Platform as a service cloud server and machine learning data processing method thereof
Friedrich et al. The POWER8 TM processor: Designed for big data, analytics, and cloud environments
Ji et al. Efficient intranode communication in GPU-accelerated systems
CN115033188A (zh) 一种基于zns固态硬盘的存储硬件加速模块系统
US20180336034A1 (en) Near memory computing architecture
TW202008172A (zh) 儲存系統
CN104461957A (zh) 一种异构多核cpu共享片上高速缓存的方法及装置
CN101341471B (zh) 动态高速缓存管理的设备和方法
CN108062279A (zh) 用于处理数据的方法和设备
WO2023124304A1 (zh) 芯片的缓存系统、数据处理方法、设备、存储介质及芯片
US10248331B2 (en) Delayed read indication
EP4060505A1 (en) Techniques for near data acceleration for a multi-core architecture
CN114063923A (zh) 数据读取方法、装置、处理器及电子设备
WO2023151216A1 (zh) 图数据处理的方法和芯片

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
GR01 Patent grant
GR01 Patent grant