TW202008172A - 儲存系統 - Google Patents
儲存系統 Download PDFInfo
- Publication number
- TW202008172A TW202008172A TW108115926A TW108115926A TW202008172A TW 202008172 A TW202008172 A TW 202008172A TW 108115926 A TW108115926 A TW 108115926A TW 108115926 A TW108115926 A TW 108115926A TW 202008172 A TW202008172 A TW 202008172A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- storage system
- memory controller
- accelerator
- interface
- Prior art date
Links
Images
Classifications
-
- 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (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),其被配置成藉由從多個記憶體讀取輸入資料並且將藉由執行映射計算而產生的結果資料儲存在多個記憶體中來執行映射計算。
根據本申請的另一實施例,一種儲存系統包括:矩陣網路,其耦接到至少一個處理器;以及池式記憶體,其具有多個記憶體和池式記憶體控制器,所述池式記憶體被配置成經由矩陣網路來執行至處理器的資料封包中繼,以及回應於來自處理器的請求而傳送儲存在至少一個記憶體中的資料。所述池式記憶體控制器被配置成藉由讀取儲存在至少一個記憶體中的輸入資料並且將藉由映射計算產生的結果資料儲存在至少一個記憶體中來執行對映射計算的卸載。
應理解,本申請的前述一般性描述和以下詳細描述都是說明性和解釋性的,並且旨在提供對所要求保護的本申請的進一步解釋。
現在將詳細參考本申請的實施例,其示例在附圖中示出。在整個附圖中使用相同的元件符號來指代相同或相似的部分。於本申請的說明書中,如果假設特定元件連接(或耦接)到另一元件,則術語“連接或耦接”表示該特定元件直接連接(或耦接)到另一元件,和/或藉由第三方的媒介而電連接(或耦接)到另一元件。於本申請的說明書中,如果假設特定元件包括特定組件,則術語“包含或包括”表示對應的組件還可以包括其他組件,除非寫明瞭該對應的組件的相反的特定含義。如在說明書和所附申請專利範圍中所使用的術語“一”、“一個”、“一種”、“該”和其他類似術語包括單數形式和複數形式二者,除非上下文另外明確指示。本申請中使用的術語僅用於描述特定實施例,而非旨在對本申請進行限制。除非在上下文中另外說明,否則單數表述可以包括複數表述。
隨著由資料中心應用程序(data center application)處理的資料或資料量的大小增加,資料中心應用程序所需的硬體資源的數量也增加。最近伺服器結構已經演變以更有效率地利用這樣的硬體資源。
例如,在資料雲端資料中心中可以執行深度學習應用程序以及還有大量的機器學習應用程序。大多數深度學習應用程序和機器學習應用程序具有低時間局部性(temporal locality),從而較佳的使用硬體加速器(例如圖形處理單元(GPU)、現場可程式化邏輯閘陣列程式(FPGA)等)而不是使用中央處理單元(CPU)來對深度學習應用程序和機器學習應用程序進行算術處理(即計算)。
在這種情況下,術語“時間局部性”可以指以下程度,即訪問資料一次(即被存取一次的資料或起初被存取的資料)的操作在完成對資料的起初存取之後的相對短的時間段內可能再次存取該資料的程度。也就是說,上述應用程序可能主要使用暫時還沒有被存取的冷資料(cold data),而不是使用被頻繁存取的熱資料(hot data)。結果是,上述應用程序可能無法從CPU中通常採用的高速緩衝儲存系統受益以減少某些大型儲存系統的相對低的頻寬和高的延遲(latency)特性的影響。
下面將在下文中描述用於允許處理器(例如CPU)執行將作業卸載(off-load)到加速器的操作過程。在某些情況下,起初可以將資料從處理器的區域記憶體(local memory)移動到加速器的區域記憶體。此後,當加速器結束算術處理或計算時,計算結果應當被傳輸到處理器。
然而,當這樣的資料移動的成本(諸如延遲或功耗)高於資料計算所需的成本時,就成本效率而言,較佳的實現一種需要傳輸較少的資料來執行期望的計算的結構。為此,已經提出了記憶體驅動式計算(memory-driven computing)的概念。
圖1是示出根據本申請的實施例的儲存系統的示例的概念圖。
圖1示出了用於記憶體驅動式計算的基於記憶體的計算結構,以及其與用於以處理器為中心的計算(processor-centric computing)的基於系統單晶片(SoC)的(即,基於處理器的)計算結構(即,計算設備)的不同之處。在基於處理器的計算結構中,單個SoC可以一對一地耦接到單個記憶體。
記憶體驅動式計算可以使用統一記憶體(unified memory),其中多個SoC經由矩陣網路(fabric network)而相互耦接。SoC之間的資料通訊可以藉由儲存系統頻寬來實現。
另外,經由矩陣網路而與多個SoC耦接的一個統一記憶體不需要執行一般的記憶體拷貝來實現SoC之間的資料通訊。為了實現商業上可用的記憶體驅動式計算,應當支持高頻寬、低延遲、一致性等。
與本申請的上述實施例的技術領域相關聯地,許多開發者和公司正在深入研究用於將基於事務的儲存系統(transcation-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可以執行記憶體交錯讀取(memory interleaving)以增加吞吐量,或者可以支持位址重新映射以提高可靠性、可用性、可服務性等。
記憶體資料庫(in-memory database)可以指用於將必要資料儲存在主記憶體中而不是儲存裝置(例如,諸如硬碟(HDD)或固態硬碟(SSD)的儲存裝置)中的資料庫管理系統,從而該記憶體資料庫可以被快速地存取。
相關技術的伺服器系統(server system)將記憶體的儲存容量增加到超過預定的記憶體容量可能具有物理難度。在這樣的伺服器系統中,應用程序不能允許資料庫(DB)的大小大於每個伺服器的預定的記憶體容量。如果資料庫(DB)的大小增加,則要儲存在資料庫(DB)中的資料應當以分散式方式儲存在多個伺服器中,這可能導致系統性能因多個伺服器的互相連接過程而不可避免地下降。為了避免這種情況,池式記憶體100可以提供比相關技術的伺服器系統高的儲存容量和/或高的頻寬,使得池式記憶體100可以比相關技術的伺服器系統更有效率地支持記憶體資料庫。
圖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中。
映射-化簡應用程序(Map-reduce application)可以指被設計為使用分散式並行計算來處理高容量資料的軟體框架。這種映射-化簡應用程序已經被用在各種種類的應用程序中。在映射-化簡應用程序中使用的映射計算可以以下面的方式來配置:在以鍵和值(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),從而消耗3 pJ/bit的能量。然而,當使用加速器112來執行對映射計算的卸載時,該資料僅需要經過每個記憶體120的匯流排,從而這樣的資料傳輸所消耗的總能量可以被減少到與3 pJ/bit的能量的1/3相對應的1pJ /bit。為了確定可以節省多少系統能量,還可以考慮所有硬體(H/W)電路的靜態功耗。
如上所述,根據本申請的實施例的池式記憶體100包括多個記憶體120,並且可以提供大的儲存容量和大的頻寬,並且可以被用於提供記憶體資料庫等。在一個實施例中,加速器112被包括在池式記憶體控制器(PMC)110中,並且使用加速器112來執行對映射-化簡應用程序的映射計算的卸載,從而可以提高系統性能並且可以減少能量消耗。在另一個實施例中,可以將加速器112增添給多個記憶體120中的每一個。
從以上描述顯而易見的是,根據本申請的實施例的儲存系統可以提高系統吞吐量或性能,並且可以減少資料計算所需的能量消耗。
本申請所屬技術領域之通常知識者將理解,在不脫離本申請的精神和基本特性的情況下,可以以除了本文所述之外的其他特定方式來實現實施例。因此,上述實施例在所有方面都被解釋為說明性的而非限制性的。本申請的範圍應當由所附請求項及其合法等同物來確定,而不是由以上描述來確定。此外,落在所附請求項的含義和等同範圍內的所有改變都旨在被包含在其中。另外,本申請所屬技術領域之通常知識者將理解,在提交本申請之後,藉由後續修改,所附權利要求中彼此未明確引用的請求項可以藉由組合而呈現為實施例,或者被包括為新的權利要求。
儘管已經描述了若干說明性實施例,但是應當理解,本申請所屬技術領域之通常知識者可以設計出落入本申請的原理的精神和範圍內的許多其他修改和實施例。特別地,在組成元件和/或配置方面可以進行在本申請、附圖和所附請求項的範圍內的多種變化和修改。除了在組成元件和/或佈置方面的變化和修改之外,替代使用對於本申請所屬技術領域之通常知識者而言也是顯而易見的。
1、2、3、4、5、6‧‧‧路徑
10‧‧‧儲存系統
20‧‧‧多個處理器
30‧‧‧矩陣網路
40‧‧‧多個通道
100‧‧‧多個池式記憶體
110‧‧‧池式記憶體控制器
111‧‧‧介面
112‧‧‧加速器
120‧‧‧記憶體
CN‧‧‧加速器通道
CND‧‧‧節點
L1、L2‧‧‧鏈路
通過參考以下結合附圖來考慮的詳細描述,本申請的上述和其他特徵和優點將變得顯而易見,在附圖中:
圖1是示出根據本申請的實施例的儲存系統的概念圖;
圖2是示出根據本申請的實施例的儲存系統的概念圖;
圖3是示出根據本申請的實施例的池式記憶體控制器的方塊圖;
圖4、圖5和圖6示出根據本申請的實施例的儲存系統的操作;以及
圖7是示出根據本申請的實施例的儲存系統的性能改進的視圖。
10‧‧‧儲存系統
20‧‧‧多個處理器
30‧‧‧矩陣網路
40‧‧‧多個通道
100‧‧‧多個池式記憶體
110‧‧‧池式記憶體控制器
120‧‧‧記憶體
Claims (20)
- 一種儲存系統,包括: 多個記憶體,其被配置成將資料儲存於其中;以及 池式記憶體控制器,其被配置成:藉由從所述多個記憶體讀取輸入資料並且將藉由執行映射計算而產生的結果資料儲存在所述多個記憶體中來執行所述映射計算。
- 如請求項1所述的儲存系統,其中,所述池式記憶體控制器包括: 介面,其被配置成經由矩陣網路而在至少一個處理器與至少一個記憶體之間執行資料封包中繼;以及 加速器,其被配置成對所述輸入資料執行所述映射計算以產生所述結果資料。
- 如請求項2所述的儲存系統,其中,所述介面經由多個通道耦接到所述加速器,並且所述加速器經由所述多個通道來接收所述輸入資料以及經由所述多個通道來將所述結果資料提供給所述介面。
- 如請求項3所述的儲存系統,其中,所述多個通道的鏈路的數量高於所述介面與所述處理器中的任何一個之間的鏈路的數量。
- 如請求項2所述的儲存系統,其中,所述池式記憶體控制器被配置成經由所述介面而從所述至少一個處理器接收映射計算請求資料封包。
- 如請求項5所述的儲存系統,其中,所述映射計算請求資料封包包括以下訊息之中的至少一種:關於所述輸入資料的位址的訊息、關於所述輸入資料的大小的訊息以及關於要用來儲存所述結果資料的位址的訊息。
- 如請求項5所述的儲存系統,其中,所述池式記憶體控制器被配置成經由所述介面而將映射計算回應資料封包傳送至所述至少一個處理器。
- 如請求項2所述的儲存系統,其中,所述池式記憶體控制器從所述多個記憶體讀取所述輸入資料,並將讀取的輸入資料傳送至所述加速器。
- 如請求項2所述的儲存系統,其中,所述介面接收由所述加速器計算的結果資料,並將所接收的結果資料儲存在所述多個記憶體中。
- 如請求項2所述的儲存系統,其中,所述池式記憶體控制器被配置成:回應於所述映射計算的完成而經由所述介面來將中斷資料封包傳送至所述至少一個處理器。
- 如請求項2所述的儲存系統,其中,所述池式記憶體控制器讀取儲存在所述多個記憶體中的結果資料,並將讀取的結果資料傳送至所述至少一個處理器。
- 如請求項2所述的儲存系統,其中,所述池式記憶體控制器經由所述矩陣網路而與一個或多個處理器通訊。
- 如請求項1所述的儲存系統,其中,所述池式記憶體控制器被配置成在所述多個記憶體之間執行資料的交錯讀取。
- 如請求項1所述的儲存系統,其中,所述池式記憶體控制器被配置成對所述多個記憶體執行位址重新映射。
- 一種儲存系統,包括: 矩陣網路,其耦接到至少一個處理器;以及 池式記憶體,其具有多個記憶體和池式記憶體控制器,所述池式記憶體被配置成:經由所述矩陣網路來執行給所述處理器的資料封包中繼,並回應於來自所述處理器的請求而傳送儲存在至少一個記憶體中的資料, 其中,所述池式記憶體控制器被配置成:藉由讀取儲存在所述至少一個記憶體中的輸入資料並且將藉由映射計算產生的結果資料儲存在所述至少一個記憶體中來執行對所述映射計算的卸載。
- 如請求項15所述的儲存系統,其中,所述池式記憶體控制器包括: 介面,其被配置成:經由所述矩陣網路而在所述至少一個處理器與所述池式記憶體控制器之間執行資料封包中繼;以及 加速器,其被配置成:藉由經由所述介面而接收所述輸入資料、對所述輸入資料執行所述映射計算、以及經由所述介面而將所述結果資料儲存在所述至少一個記憶體中來執行對所述映射計算的卸載。
- 如請求項16所述的儲存系統,其中,所述池式記憶體控制器經由所述介面而從所述至少一個處理器接收映射計算請求資料封包,並且經由所述介面而將映射計算回應資料封包傳送至所述至少一個處理器。
- 如請求項16所述的儲存系統,其中,所述池式記憶體控制器從所述至少一個記憶體讀取所述映射計算所需的輸入資料,將讀取的輸入資料傳送至所述加速器,並將所述加速器產生的所述結果資料儲存在所述至少一個記憶體中。
- 如請求項16所述的儲存系統,其中,所述池式記憶體控制器回應於所述映射計算的完成而經由所述介面來將資料中斷資料封包傳送至所述至少一個處理器,讀取儲存在所述至少一個記憶體中的所述結果資料,並且經由所述介面而將讀取的結果資料傳送至所述至少一個處理器。
- 如請求項15所述的儲存系統,其中,所述池式記憶體控制器被配置成針對所述至少一個記憶體而執行交錯讀取和位址重新映射中的至少一種。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180085506 | 2018-07-23 | ||
KR10-2018-0085506 | 2018-07-23 | ||
KR1020180155681A KR102551726B1 (ko) | 2018-07-23 | 2018-12-06 | 메모리 시스템 |
KR10-2018-0155681 | 2018-12-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202008172A true TW202008172A (zh) | 2020-02-16 |
Family
ID=69670423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108115926A TW202008172A (zh) | 2018-07-23 | 2019-05-08 | 儲存系統 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102551726B1 (zh) |
TW (1) | TW202008172A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220145656A (ko) | 2021-04-22 | 2022-10-31 | 에스케이하이닉스 주식회사 | 호스트 및 이를 포함하는 컴퓨팅 시스템 |
KR20230095775A (ko) | 2021-12-22 | 2023-06-29 | 에스케이하이닉스 주식회사 | Ndp 기능을 포함하는 메모리 확장 장치 및 이를 포함하는 가속기 시스템 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283303A1 (en) | 2015-03-27 | 2016-09-29 | Intel Corporation | Reliability, availability, and serviceability in multi-node systems with disaggregated memory |
CN104951570A (zh) | 2015-07-27 | 2015-09-30 | 广州九尾信息科技有限公司 | 基于数据挖掘及lbs的兼职智能推荐系统 |
US10275272B2 (en) | 2016-06-20 | 2019-04-30 | Vmware, Inc. | Virtual machine recovery in shared memory architecture |
-
2018
- 2018-12-06 KR KR1020180155681A patent/KR102551726B1/ko active IP Right Grant
-
2019
- 2019-05-08 TW TW108115926A patent/TW202008172A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
KR102551726B1 (ko) | 2023-07-06 |
KR20200018188A (ko) | 2020-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11929927B2 (en) | Network interface for data transport in heterogeneous computing environments | |
CN110647480B (zh) | 数据处理方法、远程直接访存网卡和设备 | |
WO2018076793A1 (zh) | 一种NVMe数据读写方法及NVMe设备 | |
US7757232B2 (en) | Method and apparatus for implementing work request lists | |
US20160132541A1 (en) | Efficient implementations for mapreduce systems | |
US20210089236A1 (en) | Network device intermediary for memory access requests | |
US10394604B2 (en) | Method for using local BMC to allocate shared GPU resources inside NVMe over fabrics system | |
US10331499B2 (en) | Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads | |
US10802753B2 (en) | Distributed compute array in a storage system | |
US20210075745A1 (en) | Methods and apparatus for improved polling efficiency in network interface fabrics | |
US20120297216A1 (en) | Dynamically selecting active polling or timed waits | |
US11487473B2 (en) | Memory system | |
US20200257473A1 (en) | Memory system | |
EP4123649A1 (en) | Memory module, system including the same, and operation method of memory module | |
US20190007483A1 (en) | Server architecture having dedicated compute resources for processing infrastructure-related workloads | |
WO2023124304A1 (zh) | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 | |
JP2019185764A (ja) | Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ― | |
TW202008172A (zh) | 儲存系統 | |
Qiu et al. | Full-kv: Flexible and ultra-low-latency in-memory key-value store system design on cpu-fpga | |
US10915470B2 (en) | Memory system | |
CN116340246B (zh) | 用于直接内存访问读取操作的数据预读方法及介质 | |
JP2021509240A (ja) | システム全体の低電力管理 | |
CN116301667B (zh) | 一种数据库系统,数据访问方法、装置、设备及存储介质 | |
US10248331B2 (en) | Delayed read indication | |
Que et al. | Exploring network optimizations for large-scale graph analytics |