CN110347626B - 服务器系统 - Google Patents

服务器系统 Download PDF

Info

Publication number
CN110347626B
CN110347626B CN201910237718.5A CN201910237718A CN110347626B CN 110347626 B CN110347626 B CN 110347626B CN 201910237718 A CN201910237718 A CN 201910237718A CN 110347626 B CN110347626 B CN 110347626B
Authority
CN
China
Prior art keywords
ndp
server system
engine
ndp engine
cpu
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.)
Active
Application number
CN201910237718.5A
Other languages
English (en)
Other versions
CN110347626A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN110347626A publication Critical patent/CN110347626A/zh
Application granted granted Critical
Publication of CN110347626B publication Critical patent/CN110347626B/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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]
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • 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)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multi Processors (AREA)
  • Centrifugal Separators (AREA)
  • Eye Examination Apparatus (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种服务器系统,包括:第一多个大容量存储器装置、中央处理器(CPU)和至少一个近端数据处理(NDP)引擎。CPU被连接到第一多个大容量存储器装置(诸如固态驱动器(SSD)装置),并且所述至少一个NDP引擎与第二多个大容量存储器装置相关联,并被插入在CPU和与NDP引擎相关联的第二多个大容量存储器装置之间。第二多个大容量存储器装置是第一多个大容量存储器装置的一部分或者全部。NDP引擎的数量可基于与CPU相关联的带宽、与网络相关联的带宽、与通信结构相关联的带宽以及与所有NDP引擎相关联的带宽之中的最小带宽除以与单个NDP引擎相关联的带宽被确定。

Description

服务器系统
技术领域
本文公开的主题总体涉及用于减少服务器系统中的性能不平衡的系统和方法,并且更具体地,涉及在可存储数据的地方附近提供数据处理以减少服务器系统中的性能不平衡的服务器系统架构和方法。
背景技术
现代数据中心可遭受数据处理和数据移动之间的不平衡,这可降低数据中心的性能和能效两者。所述不平衡通常是基于与服务器系统的组件有关的延迟或瓶颈。例如,数据密集型应用可导致由于通过存储器的数据移动而引起的性能瓶颈。对于计算密集型应用,可由处理器上的负载引起瓶颈。所述不平衡还可引起额外的能耗,这主要是基于服务器系统的组件(例如,可能处于等待数据或指令的空闲状态但是仍然消耗能量以保持当前状态的存储器和/或处理器)的未充分利用。
采用大数据分析的趋势可进一步加剧服务器系统中可能出现的所述不平衡。例如,可对大量不同的数据集执行大数据分析,以发现隐藏的模式、未知的相关性、市场趋势、客户偏好和/或其他有用的信息。对于这样的大数据分析,可涉及大规模数据移动,这可能容易导致性能瓶颈。同样地,为大数据分析提供强大的工具的机器学习是计算相当密集的,同时还涉及大量的用于训练的数据。如果正在被处理的数据量和工作负载的数据处理的分析复杂性规模性增加,则数据中心的性能和能效二者都会进一步降低。
发明内容
技术问题
本发明的目的是提供一种减少由数据密集型应用或计算密集型应用引起的系统不平衡的服务器系统。
技术方案
示例实施例提供一种服务器系统,可包括:第一多个大容量存储器装置、至少一个中央处理器(CPU)和至少一个近端数据处理(NDP)引擎。所述至少一个CPU可被连接到第一多个大容量存储器装置。每个NDP引擎可与第二多个大容量存储器装置相关联,并被插入在CPU和第二多个大容量存储器装置之间。第二多个大容量存储器装置是第一多个大容量存储器装置的一部分或者全部。大容量存储器装置可包括至少一个固态驱动器(SSD)装置。网络接口可通过网络将服务器系统可通信地连接到至少一个远程系统,其中,所述至少一个远程系统可在服务器系统外部,通信结构可被插入在CPU和所述至少一个NDP引擎之间。在一个实施例中,形成服务器系统的NDP引擎的数量可至少部分地基于与CPU相关联的带宽、与网络相关联的带宽、与通信结构相关联的带宽以及与所有NDP引擎相关联的带宽之中的最小带宽除以与单个NDP引擎相关联的带宽被确定。在另一实施例中,开关层可被插入在NDP引擎和第一多个大容量存储器装置之间,其中,开关层可将NDP引擎和与该NDP引擎相关联的第二多个大容量存储器装置可通信地连接。在又一实施例中,开关层可被插入在第二NDP引擎和第一多个大容量存储器装置之间,其中,开关层可将第二NDP引擎和与第二NDP引擎相关联的第二多个大容量存储器装置可通信地连接。
另一示例实施例提供一种服务器系统,可包括:网络接口、第一多个SSD装置、至少一个CPU和至少一个NDP引擎。网络接口可通过网络将服务器系统可通信地连接到至少一个远程系统,其中,所述至少一个远程系统可在服务器系统外部。所述至少一个CPU可被连接到网络接口和第一多个SSD装置。每个NDP引擎可与第二多个SSD装置相关联,并被插入在CPU和第二多个SSD装置之间,其中,第二多个SSD装置是第一多个SSD装置的一部分或者全部。通信结构可被插入在CPU和所述至少一个NDP引擎之间,并且形成服务器系统的NDP引擎的数量可基于与CPU相关联的带宽、与网络相关联的带宽、与通信结构相关联的带宽以及与所有NDP引擎相关联的带宽之中的最小带宽除以与单个NDP引擎相关联的带宽被确定。
再一示例实施例提供一种服务器系统,可包括:第一多个大容量存储器装置、至少一个CPU、至少一个NDP引擎和开关层。所述至少一个CPU可连接到第一多个大容量存储器装置。每个NDP引擎与第二多个大容量存储器装置相关联,并被插入在CPU和第二多个大容量存储器装置之间。第二多个大容量存储器装置是第一多个大容量存储器装置的一部分或者全部。开关层可被插入在每个NDP引擎和第一多个大容量存储器装置之间,其中,开关层可将每个NDP引擎和各自的第二多个大容量存储器装置可通信地连接。网络接口可通过网络将服务器系统可通信地连接到至少一个远程系统,其中,所述至少一个远程系统可在服务器系统外部,通信结构可被插入在CPU和所述至少一个NDP引擎之间。开关层可被插入在第二NDP引擎和第一多个大容量存储器装置之间,其中,开关层可将第二NDP引擎和与第二NDP引擎相关联的第二多个大容量存储器装置可通信地连接。
有益效果
根据本发明,近端数据处理引擎被部署在服务器系统中。因此,提供了一种减少系统不平衡的服务器系统。
附图说明
在以下部分中,将参照附图中示出的示例性实施例来描述本文中公开的主题的各方面,其中:
图1A示出根据本文中公开的主题的服务器系统的架构的第一示例实施例的框图;
图1B示出根据本文中公开的主题的服务器系统的架构的第二示例实施例的框图;
图2示出根据本文中公开的主题的服务器系统的架构和NDP引擎的框图;
图3A和图3B分别示出根据本文中公开的主题的数据可通过具有NDP的服务器系统传递的示例路径;
图4A示出原始数据通过主机端DRAM到达NDPE的典型的示例数据流;
图4B示出根据本文中公开的主题的原始数据不需要通过主机端DRAM到达NDPE的可选的示例数据流;
图5A示出根据本文中公开的主题的服务器系统的架构的示例实施例的框图;
图5B示出根据本文中公开的主题的可使用多路复用器将两个SSD适应性地连接到两个NDPE的开关层的示例实施例的框图;
图5C示出根据本文中公开的主题的可使用多路复用器将四个SSD适应性地连接到四个NDPE的开关层的示例实施例的框图;
图5D示出根据本文中公开的主题的可使用多路复用器将n个SSD适应性地连接到n个NDPE的开关层的示例实施例的框图;
图6A示出根据本文中公开的主题的在N=4的示例服务器系统中的选择性地激活的NDPE;
图6B示出根据本文中公开的主题的在N=5的示例服务器系统中的选择性地激活的NDPE;
图6C示出根据本文中公开的主题的在N=6的示例服务器系统中的选择性地激活的NDPE;
图6D示出根据本文中公开的主题的在N=7的示例服务器系统中的选择性地激活的NDPE;
图6E示出根据本文中公开的主题的在N=8的示例服务器系统中的选择性地激活的NDPE;
图7示出根据本文中公开的主题的针对具有八个NDPE的示例服务器系统、使用示例伪代码来确定哪些NDPE被选择性地激活以及哪些SSD被连接到激活的NDPE的示例方法的流程图。
具体实施方式
在以下详细描述中,阐述了许多具体细节以便提供对本公开的透彻理解。然而,本领域技术人员将理解,可在没有这些具体细节的情况下实践所公开的各方面。在其他情况下,没有详细描述公知的方法、程序、组件和电路,以免模糊本文中公开的主题。
在整个本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可被包括在本文中公开的至少一个实施例中。因此,在贯穿本说明书的各个地方的短语“在一个实施例中”或“在实施例中”或“根据一个实施例”(或者具有相似含义的其他词语)可不需要都指同一实施例。另外,特定特征、结构或特性可按照任意适当的方式被组合在一个或更多个实施例中。就此而言,如这里所使用的,词语“示例性的”指“用作示例、实例或例证”。在本文中被描述为“示例性的”的任意实施例不应被解释为必须优选或优于其他实施例。另外,根据本文中讨论的上下文,单数术语可包括相应的复数形式,并且复数术语可包括相应的单数形式。还应注意的是,本文中示出和讨论的各种图(包括组件图)仅是为了说明目的,而未按比例绘制。同样地,各种波形和时序图被示出仅是为了说明目的。例如,为清楚起见,一些元件的尺寸可能相对于其他元件被夸大。另外,如果认为合适,则在附图中重复使用附图标记以指示相应的和/或类似的元件。
本文中所使用的术语仅是为了描述特定示例性实施例的目的,并不旨在限制所要求保护的主题。如本文中所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。还将被理解的是,当在本说明书中使用时,术语“包括”和/或“包括...的”表示存在阐述的特征、整数、步骤、操作、元件和/或组件,但不排除存在或者添加一个或更多个其他特征、整数、步骤、操作、元件、组件和/或它们的组合。如这里使用的术语“第一”、“第二”等被用作它们之后的名词的标签,并且不暗示任何类型的排序(例如,空间、时间、逻辑等),除非明确地如此定义。另外,可在两个或更多个附图中使用相同的附图标记来表示具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这种用法仅是为了简化说明和便于讨论;这并不意味着这些组件或单元的结构或构架细节在所有实施例中是相同的或者这种共同引用的部件/模块是实现本文中公开的特定实施例的教导的唯一方式。
除非另有定义,否则本文中所使用的所有术语(包括技术和科学术语)具有与本主题所属领域的普通技术人员通常理解的含义相同的含义。还将被理解的是,诸如在通常使用的字典中定义的那些术语应该被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且将不被理解为理想化或过于正式的含义,除非在本文中明确地如此定义。
近端数据处理(NDP)可被用于优化数据中心服务器的架构,以减少可由数据处理和数据移动引起的不平衡问题。可将结合嵌入式处理器(例如,CPU、ARM、RISC V等)和/或现场可编程门阵列(FPGA)的NDP服务器架构用作NDP引擎的替代类型,以分别形成PNDP服务器(基于处理器的NDP服务器)架构或FNDP服务器(基于FPGA的NDP服务器)架构。例如,将FPGA用作NDP引擎的FNDP服务器架构不仅在性能改进和能效方面提供了显著的效益,而且在系统成本方面也提供了显著的效益。
NDP可通过基于数据的位置和从该数据提取的信息来处理服务器系统架构中最合适的位置处的数据来最小化数据移动。因此,在NDP中,可正好在数据所在的位置(诸如在高速缓存、主存储器和/或永久存储器中)执行计算。这与独立于数据可被存储的位置而将数据移向CPU相反。基于NDP引擎可能位于存储器层次结构中的不同位置(即,(i)NDP在存储器装置(例如,SSD、HDD)中;(ii)NDP靠近存储器装置(通常被插入在SSD、HDD和主机之间);(iii)NDP在动态随机存取存储器(DRAM)(邻近于处理器)中),通常可将NDP处理分成三组。
在一个实施例中,一个或更多个NDP引擎可被插入在服务器系统的处理器和大容量存储器(诸如固态驱动器(SSD)装置)之间。NDP引擎可被配置为通过在服务器系统内的比服务器系统的处理器更适当的位置处提供计算和/或数据处理来最小化数据移动。在另一实施例中,一个或更多个NDP引擎可被配置为不仅最小化数据移动,而且也减少可由计算密集型应用引起的处理器上的负载。在一个实施例中,将NDP引擎与一个或更多个SSD进行配对可提供可扩展的系统配置。
在一个实施例中,本文中公开的主题提供被插入在SSD和主机CPU之间的路径上的NDP(即,NDP靠近SSD、HDD)。在另一实施例中,NDP可位于存储服务器的SSD内,目的是减少数据移动并更充分地利用SSD之间的并行性。在又一实施例中,一个或更多个NDP引擎可被集成到DRAM中。
所有类型的计算单元(例如,高能效嵌入式处理器、FPGA、流处理器等)可被用作NDP引擎。例如,在一个实施例中,SSD装置中的控制器可处理已经从SSD装置的物理存储介质取出的数据。也就是说,NDP引擎可被放置在主机和SSD装置之间的路径中以用于数据处理应用。在另一实施例中,一个或更多个NDP引擎可被集成到DRAM中。
图1A示出根据本文中公开的主题的服务器系统100的架构的第一示例实施例的框图。服务器系统100可通过一个或更多个通信网络103(仅示出其中一个通信网络)被连接到一个或更多个客户端装置102(仅示出其中一个客户端装置)。
服务器系统100可包括处理器层104、通信结构层105、NDP引擎(NDPE)层106和存储器层107。存储器层107可通过NDPE层106被连接到通信结构层105,并且通信结构层105可将NDPE层106和存储器层107连接到处理器层104。可将SSD的全数据传输带宽传送到将NDPE层106连接在通信结构层105和存储器层107之间的系统,同时还减少了可能由数据密集型应用或计算密集型应用引起的任何不平衡。
处理器层104可包括一个或更多个处理器140和系统存储器141。在一个实施例中,系统存储器141可包括DRAM。在另一实施例中,系统存储器141可包括任意类型的易失性存储器和/或任意类型的非易失性存储器。通信结构层105可包括一个或更多个通信开关150和通信链接。在一个示例实施例中,通信结构层105可以是基于外围组件互连高速(PCIe)的通信结构,但是通信结构层105不限于此。
NDPE层106可包括一个或更多个NDP引擎。NDPE层106包括n个NDP引擎NDPE#0-NDPE#n-1,其中,n是整数。NDPE层106的NDP引擎可以是基于处理器的NDP引擎、基于FPGA的NDP引擎、或者它们的组合。其他类型的NDP引擎也是可能的并且可被使用。存储器层107可包括一个或更多个大容量存储器装置。在一个实施例中,一个或更多个大容量存储器装置可包括SSD装置。在另一实施例中,一个或更多个大容量存储器装置可包括HDD装置。存储器层107可包括n个SSD SSD#0-SSD#n-1。对于在图1A中示出的示例实施例,每个NDP引擎与各自的SSD装置相应。
图1B示出根据本文中公开的主题的服务器系统100’的架构的第二示例实施例的框图。服务器系统100’可通过一个或更多个通信网络103(仅示出其中一个通信网络)被连接到一个或更多个客户端装置102(仅示出其中一个客户端装置)。
服务器系统100’可包括处理器层104、通信结构层105、NDPE层106’和存储器层107’。存储器层107’可通过通信结构层105被连接到NDPE层106’,并且通信结构层105可将NDPE层106’和存储器层107’连接到处理器层104。
与图1A中示出的服务器系统100相似,服务器系统100’的处理器层104可包括一个或更多个处理器140和系统存储器141。在一个实施例中,系统存储器141可包括DRAM。在另一实施例中,系统存储器141可包括任意类型的易失性存储器和/或任意类型的非易失性存储器。通信结构层105可包括一个或更多个通信开关150和通信链接。在一个示例实施例中,通信结构层105可以是基于PCIe的通信结构,但是通信结构层105不限于此。
NDPE层106’可包括一个或更多个NDP引擎。NDPE层106’包括n-m个NDP引擎NDPE#m-NDPE#n-1,其中,n和m是整数,并且m<n。NDPE层106’的NDP引擎可以是基于处理器的NDP引擎、基于FPGA的NDP引擎、或者它们的组合。其他类型的NDP引擎也是可能的并且可被使用。存储器层107可包括一个或更多个大容量存储器装置。在一个实施例中,一个或更多个大容量存储器装置可包括SSD装置。在另一实施例中,一个或更多个大容量存储器装置可包括HDD装置。存储器层107’可包括m个SSDSSD#0-SSD#m-1。
图2示出根据本文中公开的主题的服务器系统100的架构和NDP引擎的框图。NDP引擎可包括数据处理装置201、存储器202以及接口203和204。接口203和204可分别连接到存储器层107中的一个或更多个SSD(由单个SSD#i表示)和通信结构层105。在一个实施例中,数据处理装置201可以是嵌入处理器的核,诸如,但不限于,四核ARM Cortex-A53装置。在另一实施例中,数据处理装置201可以是FPGA装置,在这种情况下,连接到基于FPGA的NDPE的SSD可对FPGA芯片中的硬件资源(即,DSP片、LUT、RAM等)进行划分。系统100可利用被划分的资源来为可被连接到NDPE的每个相应的SSD实例化内核。虽然基于处理器的NDPE和基于FPGA的NDPE可能具有不同的应用实现,但是将存在用于分别针对每个SSD处理数据的处理元件(例如,四核ARM Cortex-A53、或由FPGA资源实例化的应用内核)。
NDP引擎中的存储器202可以是DRAM,并且可被用于元数据存储。DRAM还可为SSD和NDP引擎之间的数据移动、NDP引擎和主机CPU之间的数据移动提供缓冲器,和/或提供作为由NDP引擎执行应用期间的中间数据存储的缓冲器。接口203和204可提供从NDPE到SSD的连接和从NDPE到主机CPU的连接。在一个实施例中,接口203和204可以是基于PCIe的接口。
图2中示出的服务器系统100的架构可包括两种类型的处理单元,即,一个或更多个主机CPU和一个或更多个NDP引擎。服务器系统中的所有NDP引擎可能无法自动提供近端数据处理,即,从SSD读取数据并在NDP引擎中执行数据处理。数据处理可在主机CPU处开始。主机CPU可被配置为负责:(i)管理服务器的操作系统;(ii)监控服务器系统中所有NDP引擎的状态;(iii)执行一个或更多个主机端应用程序;(iv)将NDPE端应用程序卸载到NDPE层;(v)将参数写入NDPE端应用程序并启动NDPE层以读取和处理来自相应SSD的数据。
同样如图2所示,系统中可存在两种类型的DRAM,即,主机DRAM和NDPE DRAM。NDPEDRAM可被认为是一种“全局”存储器,其中,该NDPE DRAM可被主机CPU以及NDPE中的处理装置访问以访问从主机CPU和数据缓冲器传递的NDPE端应用参数。应理解的是,如本文中所使用的,术语“全局存储器”不是图2中示出的用于整个服务器系统的全局存储器,因为特定NDP引擎中的“全局存储器”可能不能被其他NDP引擎直接访问。
图2中示出的服务器系统100中的NDP引擎可不直接相互连接,以便简化服务器系统100。如图2中所示出的,主机DRAM可被用作不同NDP引擎之间的数据传送路径的一部分,因此如果在两个NDP引擎之间存在通信/数据传送,则数据可通过主机DRAM路由到相应的NDP引擎。例如,如果图3A中的NDPE#n-2要从NDPE#0接收数据,则数据将沿着路径301从NDPE#0通过主机DRAM到达NDPE#n-2。作为另一示例,如果在每个NDPE中完成数据处理,则如图3B中的路径302所示,结果数据可在主机DRAM中聚合,以便在CPU中进一步处理。还应注意的是,NDP引擎可彼此互连,这可提供复杂的硬件连接布线,并且在某些情况下,如果应用需要频繁地在不同NDPE之间交换数据或消息,则可能给系统增加通信负担。在一个实施例中,NDPE能够经由开关(诸如,但不限于,PCIe开关)绕过主机存储器而彼此通信。
图4A示出原始数据通过主机端DRAM到达NDPE的典型的示例数据流400。如果需要在例如基于FPGA的引擎内加速内核(即,应用的一部分),则服务器系统100的CPU 140可首先将数据从SSD读取到主机端DRAM 141,如图4A中的401所示。然后,在402,CPU 140可将数据写入FPGA端DRAM,并且在403,CPU 140可启动内核以在FPGA中处理数据。在404,结果数据可被读取到主机端DRAM。
图4B示出根据本文中公开的主题的原始数据不需要通过主机端DRAM到达NDPE的可选的示例数据流410。在411,可使用DMA(直接存储器访问)类型处理将原始数据直接从SSD读取到CPU/FPGA端DRAM。在412,可启动内核以在CPU/FPGA中处理数据。在413,可将结果数据读取到主机端DRAM。因此,使用图4B中示出的数据流,每个SSD前面的NDPE可按照完全并行的方式工作。
服务器系统可被配置为在NDPE层内包括开关层,以提供服务器系统的设计的灵活性。图5A示出根据本文中公开的主题的服务器系统500的架构的示例实施例的框图。服务器系统500可包括与图1A中示出的服务器系统100相同的组件。服务器系统500与服务器系统100的不同之处在于包括NDPE层106a和开关层106b。NDPE层106a和开关层106b可被适应性地配置为通过适应性地改变NDPE的数量和NDPE与SSD之间的连接来减少可能在服务器系统中发生的系统不平衡。在一个极端,开关层106b可被配置为使得两个SSD可与两个NDPE适应性地连接。在另一极端,开关层106b可被配置为使得每个SSD可适应性地连接到所有NDPE。
图5B示出可使用多路复用器511将每对SSD适应性地连接到两个NDPE中的任意一个的开关层106b的示例实施例的框图。图5C示出可将每组四个SSD适应性地连接到四个NDPE中的任意一个的开关层106b的示例实施例的框图。多路复用器511提供四个SSD和四个NDPE之间的适应性连接。图5D示出可使用多路复用器511将n个SSD适应性地连接到n个NDPE的开关层106b的示例实施例的框图。
如果服务器系统100正经受例如CPU 140处的基于带宽的瓶颈,则可使用以下技术选择性地激活图5B中示出的多路复用器511来缓解该瓶颈。具有偶数ID号i的SSD将连接到具有相同ID i的NDPE,并且具有奇数ID号j的SSD连接到具有ID j-1或j的NDPE。
参照图5A和图5B,可在理论上激活的NDP引擎的数量n’可被如下确定:
[公式1]
n′=min{PBW,NBW,CPUBW,NDPBW×n}/NDPBW
其中,PBW是CPU与NDP引擎之间的结构互连的带宽,NBW是网络103的带宽,CPUBW是CPU 140的带宽,n是可用NDPE的整数数量,NDPBW是NDP引擎的带宽(其中,所有NDPE具有相同的带宽)。
应该被激活的NDPE的实际数量N由公式2给出:
[公式2]
N=max{n′,n/2}
下面的表1列出了针对具有8个NPDE(即,n=8)的服务器系统应被激活的NPDE的示例数量。
[表1]
Figure BDA0002008712730000101
Figure BDA0002008712730000111
图6A至图6E中示出的具有灰色的NDPE选择性地不被激活。图6A示出在N=4的示例服务器系统500中的被选择性激活的NDPE。图6B示出在N=5的示例服务器系统500中的被选择性激活的NDPE。图6C示出在N=6的示例服务器系统500中的被选择性激活的NDPE。图6D示出在N=7的示例服务器系统500中的被选择性激活的NDPE。图6E示出在N=8的示例服务器系统500中的被选择性激活的NDPE。
以下示例伪代码可被用于确定哪个NDPE将被选择性地激活以及哪个SSD应被连接到激活的NDPE。
[公式3]
Figure BDA0002008712730000112
图7示出根据本文中公开的主题的针对具有8个NDPE(即,n=8)的示例服务器系统、使用上面的示例伪代码来确定哪些NDPE被选择性地激活以及哪些SSD被连接到激活的NDPE的示例方法700的流程图。考虑示例服务器系统500的CPU正在经受瓶颈。在701,该处理开始。在702,确定公式(1)的参数。然后可从公式(1)确定理论上可被激活的NDP引擎的数量n’。在703,从公式(2)确定数量N。在704,可执行上述示例伪代码。在705,可在将被激活的NDPE中部署内核。在706,服务器系统500的CPU可读取结果并且可执行任意进一步处理。在707,服务器系统500的CPU完成结果并通过系统不平衡已经被减少的网络将结果发送给用户。在708,该处理结束。
如本领域技术人员将认识到的,本文中描述的创新概念可在一个大范围的应用内进行修改和变化。因此,所要求保护的主题的范围不应限于上面讨论的任意特定示例性教导,而是由所附权利要求限定。
[标号列表]
100、100’、500:服务器系统
104:处理器层
105、105’:通信结构层
106、106’、106a:NDPE层
106b:开关层
107、107’:存储器层
140:处理器
141:系统存储器
150:通信开关
201:数据处理装置
202:存储器
203、204:接口
511:多路复用器

Claims (20)

1.一种服务器系统,包括:
第一大容量存储器装置;
至少一个中央处理器CPU,连接到第一大容量存储器装置;
第一近端数据处理NDP引擎,与第二大容量存储器装置相关联,并被插入在CPU和与第一NDP引擎相关联的第二大容量存储器装置之间;以及
第二NDP引擎,被插入在CPU和第一大容量存储器装置之间,
其中,第一NDP引擎包括被配置为对第二大容量存储器装置中的数据执行计算的第一处理装置,第二NDP引擎包括被配置为对第一大容量存储器装置中的数据执行计算的第二处理装置,
其中,服务器系统被配置为选择性地激活第一NDP引擎,其中,当第一NDP引擎被激活时,服务器系统将第二大容量存储器装置连接到第一NDP引擎,当第一NDP引擎不被激活时,服务器系统将第二大容量存储器装置连接到第二NDP引擎。
2.如权利要求1所述的服务器系统,其中,第一大容量存储器装置和第二大容量存储器装置包括固态驱动器SSD装置。
3.如权利要求2所述的服务器系统,还包括:网络接口,通过网络将服务器系统可通信地连接到至少一个远程系统,其中,所述至少一个远程系统在服务器系统外部;和
通信结构,被插入在CPU与第一NDP引擎和第二NDP引擎之间。
4.如权利要求3所述的服务器系统,其中,服务器系统中所包括的NDP引擎中的至少一个NDP引擎的数量至少部分地基于与CPU相关联的带宽、与网络相关联的带宽、与通信结构相关联的带宽以及与第一NDP引擎和第二NDP引擎相关联的带宽之中的最小带宽除以与单个NDP引擎相关联的带宽。
5.如权利要求1所述的服务器系统,还包括:开关层,被插入在第一NDP引擎和第一大容量存储器装置之间,其中,开关层被配置为自适应地将第一NDP引擎和与第一NDP引擎相关联的第二大容量存储器装置连接。
6.如权利要求5所述的服务器系统,其中,开关层被插入在第二NDP引擎和第一大容量存储器装置之间,开关层被配置为自适应地将第二NDP引擎和与第二NDP引擎相关联的第二大容量存储器装置连接。
7.如权利要求6所述的服务器系统,其中,开关层包括网络结构。
8.如权利要求7所述的服务器系统,其中,网络结构包括外围组件互连高速PCIe网络,并且
其中,第一NDP引擎和第二NDP引擎包括基于处理器的NDP引擎或基于现场可编程门阵列FPGA的NDP引擎。
9.一种服务器系统,包括:
网络接口,通过网络将服务器系统可通信地连接到至少一个远程系统,其中,所述至少一个远程系统在服务器系统外部;
第一固态驱动器SSD装置;
至少一个中央处理器CPU,连接到网络接口和第一SSD装置;
第一近端数据处理NDP引擎,其中,第一NDP与第二SSD装置相关联,并被插入在CPU和与第一NDP引擎相关联的第二SSD装置之间;以及
第二NDP引擎,被插入在CPU与第一SSD装置之间;
其中,第一NDP引擎包括被配置为对第二SSD装置中的数据执行计算的处理装置,第二NDP引擎包括被配置为对第一SSD装置中的数据执行计算的处理装置,
其中,服务器系统被配置为选择性地激活第一NDP引擎,其中,当第一NDP引擎被激活时,服务器系统将第二SSD装置连接到第一NDP引擎,当第一NDP引擎不被激活时,服务器系统将第二SSD装置连接到第二NDP引擎。
10.如权利要求9所述的服务器系统,还包括:通信结构,被插入在CPU与第一NDP引擎和第二NDP引擎之间。
11.如权利要求10所述的服务器系统,其中,服务器系统中所包括的NDP引擎中的至少一个NDP引擎的数量基于与CPU相关联的带宽、与网络相关联的带宽、与通信结构相关联的带宽以及与第一NDP引擎和第二NDP引擎相关联的带宽之中的最小带宽除以与单个NDP引擎相关联的带宽。
12.如权利要求9所述的服务器系统,还包括:开关层,被插入在第一NDP引擎和第一SSD装置之间,其中,开关层被配置为自适应地将第一NDP引擎和与第一NDP引擎相关联的第二SSD装置连接。
13.如权利要求12所述的服务器系统,其中,开关层包括网络结构。
14.如权利要求13所述的服务器系统,其中,网络结构包括外围组件互连高速PCIe网络,并且
其中,第一NDP引擎和第二NDP引擎包括基于处理器的NDP引擎或基于现场可编程门阵列FPGA的NDP引擎。
15.一种服务器系统,包括:
第一大容量存储器装置;
至少一个中央处理器CPU,连接到第一大容量存储器装置;
第一近端数据处理NDP引擎,与第二大容量存储器装置相关联,并被插入在CPU和与第一NDP引擎相关联的第二大容量存储器装置之间,其中,第一NDP引擎包括被配置为对第二大容量存储器装置中的数据执行计算的处理装置;
第二NDP引擎,被插入在CPU和第一大容量存储器装置之间,其中,第二NDP引擎包括被配置为对第一大容量存储器装置中的数据执行计算的处理装置;以及
开关层,被插入在第一NDP引擎和第一大容量存储器装置之间,其中,开关层被配置为自适应地将第一NDP引擎和与第一NDP引擎相关联的相应的第二大容量存储器装置连接,
其中,服务器系统被配置为选择性地激活第一NDP引擎,其中,当第一NDP引擎被激活时,服务器系统将第二大容量存储器装置连接到第一NDP引擎,当第一NDP引擎不被激活时,服务器系统将第二大容量存储器装置连接到第二NDP引擎。
16.如权利要求15所述的服务器系统,还包括:网络接口,通过网络将服务器系统可通信地连接到至少一个远程系统,其中,所述至少一个远程系统在服务器系统外部;和
通信结构,被插入在CPU与第一NDP引擎和第二NDP引擎之间。
17.如权利要求15所述的服务器系统,其中,开关层被插入在第二NDP引擎和第一大容量存储器装置之间,其中,开关层被配置为自适应地将第二NDP引擎和与第二NDP引擎相关联的第二大容量存储器装置连接。
18.如权利要求16所述的服务器系统,其中,服务器系统中所包括的NDP引擎中的至少一个NDP引擎的数量基于与CPU相关联的带宽、与网络相关联的带宽、与通信结构相关联的带宽以及与第一NDP引擎和第二NDP 引擎相关联的带宽之中的最小带宽除以与单个NDP引擎相关联的带宽。
19.如权利要求18所述的服务器系统,其中,开关层是网络结构的一部分。
20.如权利要求19所述的服务器系统,其中,网络结构包括外围组件互连高速PCIe网络,并且
其中,第一NDP引擎和第二NDP引擎包括基于处理器的NDP引擎或基于现场可编程门阵列FPGA的NDP引擎。
CN201910237718.5A 2018-04-02 2019-03-27 服务器系统 Active CN110347626B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862651707P 2018-04-02 2018-04-02
US62/651,707 2018-04-02
US16/028,281 2018-07-05
US16/028,281 US10884672B2 (en) 2018-04-02 2018-07-05 NDP-server: a data-centric computing architecture based on storage server in data center

Publications (2)

Publication Number Publication Date
CN110347626A CN110347626A (zh) 2019-10-18
CN110347626B true CN110347626B (zh) 2021-10-22

Family

ID=68056143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910237718.5A Active CN110347626B (zh) 2018-04-02 2019-03-27 服务器系统

Country Status (5)

Country Link
US (3) US10884672B2 (zh)
JP (1) JP7246989B2 (zh)
KR (1) KR102407573B1 (zh)
CN (1) CN110347626B (zh)
TW (1) TWI767111B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6749030B1 (ja) * 2019-11-08 2020-09-02 日本テクノロジーソリューション株式会社 加工装置及び方法
KR20220087297A (ko) * 2020-12-17 2022-06-24 삼성전자주식회사 처리 코드를 실행하는 스토리지 장치 및 이의 동작 방법
KR20220145656A (ko) 2021-04-22 2022-10-31 에스케이하이닉스 주식회사 호스트 및 이를 포함하는 컴퓨팅 시스템
US20230099831A1 (en) * 2021-09-24 2023-03-30 Samsung Electronics Co., Ltd. Systems and methods for near-storage processing in solid state drives

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716440B2 (en) * 2005-11-30 2010-05-11 Hitachi, Ltd. Storage system and management method thereof
CN103336745A (zh) * 2013-07-01 2013-10-02 无锡众志和达存储技术股份有限公司 一种基于ssd缓存的fc hba及其设计方法
CN104125292A (zh) * 2014-08-06 2014-10-29 曙光信息产业(北京)有限公司 一种数据处理装置、云服务器及其使用方法
CN107341131A (zh) * 2017-06-29 2017-11-10 上海兆芯集成电路有限公司 具有近端数据处理引擎的芯片组
CN107799151A (zh) * 2016-09-02 2018-03-13 阿里巴巴集团控股有限公司 固态盘SSD及高可用性PCIe SSD的方法和系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8008081B1 (en) 2000-09-23 2011-08-30 Demont & Breyer, Llc Data processing system for providing an efficient market for specialty chemicals
JP5453872B2 (ja) 2009-03-27 2014-03-26 日本電気株式会社 ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法
WO2015166540A1 (ja) 2014-04-28 2015-11-05 株式会社日立製作所 ストレージ装置とそのデータ処理方法及びストレージシステム
US20160094619A1 (en) 2014-09-26 2016-03-31 Jawad B. Khan Technologies for accelerating compute intensive operations using solid state drives
US10447534B1 (en) * 2015-03-31 2019-10-15 EMC IP Holding Company LLC Converged infrastructure
US9575689B2 (en) * 2015-06-26 2017-02-21 EMC IP Holding Company LLC Data storage system having segregated control plane and/or segregated data plane architecture
US10067708B2 (en) 2015-12-22 2018-09-04 Arm Limited Memory synchronization filter
CN105573959B (zh) 2016-02-03 2018-10-19 清华大学 一种计算存储一体的分布式计算机
KR101923661B1 (ko) 2016-04-04 2018-11-29 주식회사 맴레이 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스
US10082957B2 (en) * 2016-07-20 2018-09-25 Western Digital Technologies, Inc. Dual-ported PCI express-based storage cartridge including single-ported storage controllers
CN106933510B (zh) 2017-02-27 2020-01-21 华中科技大学 一种存储控制器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716440B2 (en) * 2005-11-30 2010-05-11 Hitachi, Ltd. Storage system and management method thereof
CN103336745A (zh) * 2013-07-01 2013-10-02 无锡众志和达存储技术股份有限公司 一种基于ssd缓存的fc hba及其设计方法
CN104125292A (zh) * 2014-08-06 2014-10-29 曙光信息产业(北京)有限公司 一种数据处理装置、云服务器及其使用方法
CN107799151A (zh) * 2016-09-02 2018-03-13 阿里巴巴集团控股有限公司 固态盘SSD及高可用性PCIe SSD的方法和系统
CN107341131A (zh) * 2017-06-29 2017-11-10 上海兆芯集成电路有限公司 具有近端数据处理引擎的芯片组
CN107341130A (zh) * 2017-06-29 2017-11-10 上海兆芯集成电路有限公司 具有近端数据处理引擎的芯片组

Also Published As

Publication number Publication date
CN110347626A (zh) 2019-10-18
US20190303014A1 (en) 2019-10-03
TWI767111B (zh) 2022-06-11
KR20190115402A (ko) 2019-10-11
TW201942761A (zh) 2019-11-01
JP7246989B2 (ja) 2023-03-28
US11803337B2 (en) 2023-10-31
KR102407573B1 (ko) 2022-06-10
US10884672B2 (en) 2021-01-05
US20210096747A1 (en) 2021-04-01
JP2019185764A (ja) 2019-10-24
US20240045621A1 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
CN110347626B (zh) 服务器系统
US11347477B2 (en) Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations
JP7401171B2 (ja) 行列処理回路、システム、非一時的機械アクセス可能記憶媒体および方法
US11294599B1 (en) Registers for restricted memory
US10331997B2 (en) Adaptive configuration of a neural network device
US20150127691A1 (en) Efficient implementations for mapreduce systems
US20220121603A1 (en) Network-on-chip data processing method and device
US20130219148A1 (en) Network on chip processor with multiple cores and routing method thereof
CN111199275B (zh) 用于神经网络的片上系统
US9946664B2 (en) Socket interposer having a multi-modal I/O interface
US20210303358A1 (en) Inference Engine Circuit Architecture
Min et al. NeuralHMC: An efficient HMC-based accelerator for deep neural networks
Wang et al. {FpgaNIC}: An {FPGA-based} versatile 100gb {SmartNIC} for {GPUs}
CN114598746B (zh) 基于智能网卡的服务器间负载均衡性能优化方法
US20220113915A1 (en) Systems, methods, and devices for accelerators with virtualization and tiered memory
US20110066813A1 (en) Method And System For Local Data Sharing
WO2023124304A1 (zh) 芯片的缓存系统、数据处理方法、设备、存储介质及芯片
US11467973B1 (en) Fine-grained access memory controller
US20230144693A1 (en) Processing system that increases the memory capacity of a gpgpu
EP3926482A1 (en) System and method for performing transaction aggregation in a network-on-chip (noc)
CN111666253A (zh) 向具有共享存储器的共享处理元件的系统传递可编程数据
US20240104360A1 (en) Neural network near memory processing
US20230259486A1 (en) Neural processing unit synchronization systems and methods
US10990408B1 (en) Place and route aware data pipelining
US11842169B1 (en) Systolic multiply delayed accumulate processor architecture

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