TW202020674A - 數據處理系統 - Google Patents
數據處理系統 Download PDFInfo
- Publication number
- TW202020674A TW202020674A TW108109647A TW108109647A TW202020674A TW 202020674 A TW202020674 A TW 202020674A TW 108109647 A TW108109647 A TW 108109647A TW 108109647 A TW108109647 A TW 108109647A TW 202020674 A TW202020674 A TW 202020674A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- processing system
- memories
- blade
- Prior art date
Links
Images
Classifications
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0871—Allocation or management of cache space
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/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
- 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/0683—Plurality of storage devices
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/16—General purpose computing application
- G06F2212/163—Server or database system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本申請公開了一種數據處理系統,其關於用於實現設置有多個記憶體的融合式記憶體系統的技術。所述數據處理系統包括:計算刀片,其被配置為產生用以儲存數據的寫入指令以及用以讀取數據的讀取指令;以及記憶體刀片,其被配置為回應於讀取指令和寫入指令而在多個記憶體中選擇性地執行讀取操作和寫入操作。計算刀片具有儲存關於多個記憶體中的每個記憶體的性能特性的訊息的記憶體,並且被配置為基於所儲存的訊息來確定執行對高速快取列的逐出的優先級訊息。
Description
本公開的實施例總體而言可以關於數據處理系統,更具體地,關於用於實現設置有多個記憶體的融合式記憶體系統的技術。
近來,各種移動通訊終端(例如智能手機、平板PC等)已經在全世界廣泛使用。此外,對隨時隨地可訪問的社交網路服務(SNS)、機器到機器(M2M)服務、傳感器網路等的需求正在迅速增加。因此,數據的量、創建數據的速度和數據的多樣性按幾何級數地增加。為了處理數量越來越多的數據,記憶體的數據處理速率很重要,並且還需要高容量的記憶體件和高容量的記憶體模組。
因此,記憶體系統包括多個記憶體件來增加儲存容量。然而,包含在記憶體系統中的多個記憶體件可以具有不同的記憶體特性。因此,當在記憶體系統中執行高速快取管理時,具有不同記憶體特性的記憶體件可能導致存取錯誤,從而導致記憶體系統中的未命中損失(miss penalty)。
本申請要求於2018年11月21日在韓國知識產權局提交的申請號為10-2018-0144288的韓國專利申請的優先權,其全部內容透過引用合併於此。
本公開的各種實施例旨在提供一種數據處理系統,其基本上消除了因相關技術的限制和缺點而導致的一個或多個問題。
本公開的實施例關於一種記憶體系統,其在逐出一個或多個高速快取列期間回應於記憶體特性來指配優先級訊息,從而減少未命中損失。
根據本公開的實施例,一種數據處理系統包括:計算刀片,其被配置為產生用以儲存數據所需的寫入指令和用以讀取數據所需的讀取指令;以及記憶體刀片,其被配置為回應於讀取指令和寫入指令而在多個記憶體中選擇性地執行讀取操作和寫入操作。計算刀片具有高速快取記憶體,所述高速快取記憶體儲存關於多個記憶體中的每個記憶體的性能特性的訊息,並且計算刀片被配置為基於所儲存的訊息來確定優先級訊息,對高速快取列的逐出是按所述優先級訊息來執行的。
應理解,本公開的前述一般描述和以下詳細描述二者都是示例性和解釋性的,並且旨在提供對要求保護的本公開的進一步解釋。
現在將詳細參考本公開的實施例,其示例在圖式中示出。只要有可能,在整個圖式中使用相同的圖式標記來指代相同或相似的部分。遍及本公開的說明書,如果假設特定部件被連接(或耦接)到另一部件,則術語“連接或耦接”意味著該特定部件直接連接(或耦接)到另一部件和/或透過第三方的媒介而電連接(或耦接)到另一部件。遍及本公開的說明書,如果假設特定部件包括特定組件,則術語“包括或包含”意味著對應的部件還可以包括其他組件,除非寫明瞭對該對應的部件的相反特定含義。如在說明書和所附申請專利範圍中所使用的,術語“一”、“一個”、“該”和其他類似術語包括單數形式和複數形式二者,除非上下文另外明確指示。本申請中使用的術語僅被用於描述特定實施例,而不旨在限制本公開。除非在上下文中另外說明,否則單數表述可以包括複數表述。
圖1是示出根據本公開的實施例的數據處理系統10的示例的方塊圖。
參考圖1,數據處理系統10可以包括多個計算機架(computing rack)20、管理介面30和網路40,計算機架20和管理介面30可以透過網路40而彼此通訊。設置有這種機架級架構的數據處理系統10可以在用於處理大量數據的數據中心等中使用。
計算機架20中的每一個都可以獨立地實現單個計算設備。可選地,計算機架20中的每一個可以與其他計算機架組合,從而實現單個計算設備。稍後將參考圖式來描述計算機架20的詳細組成元件和操作。
管理介面30可以提供交互式介面,用戶可以透過該交互式介面來協調、監管或管理數據處理系統10。管理介面30可以被實現為包括各種種類的設備的任意計算設備,例如計算機、系統、伺服器、機架式伺服器、刀片伺服器、膝上型計算機、平板PC、可穿戴計算設備、網路設備、Web設備、分布式計算系統、基於處理器的系統、和/或消費類電子設備。
根據一個實施例,管理介面30可以被實現為分布式系統,該分布式系統具有能夠由計算機架20執行的計算功能或者能夠由管理介面30執行的用戶界面(UI)功能。根據另一實施例,管理介面30可以被實現為虛擬伺服器,該虛擬伺服器由分佈在網路40上的多個計算設備組成並且作為雲端設備來操作。在這種情況下,管理介面30可以包括處理器、輸入/輸出(I / O)子系統、記憶體、數據儲存設備和通訊電路。
網路40可以執行計算機架20中的每一個與管理介面30之間的數據通訊,和/或可以執行計算機架20之間的數據通訊。網路40可以是有線或無線網路,或者具有有線和無線元件的組合。
網路40可以是有線或無線局域網(LAN)、廣域網(WAN)蜂窩網路和/或可公開訪問的全球網路(諸如網際網路)。此外,網路40可以包括許多網路設備,諸如計算機、路由器、交換機等。
圖2是示出根據本公開的實施例的圖1中所示的計算機架的示例的方塊圖。
參考圖2,計算機架20的範圍不限於圖中所示的特定結構、形狀、名稱等,並且應當注意計算機架20可以包括各種組件。例如,計算機架20可以包括多個抽屜21至29。所述抽屜21至29中的每一個可以包括多個模組,並且模組中的每一個可以包括多個刀片(blade)。
根據一個實施例,計算機架20可以透過一個或多個計算刀片、一個或多個記憶體刀片和/或一個或多個互聯刀片的組合來實現。儘管本公開使用術語“計算機架”來指代多個刀片的組合,但是應當注意,計算機架也可以被稱為其他名稱,例如抽屜、模組、托盤、板、底架、或單元等。
計算機架20的組件可以根據其功能來排序或分類。雖然本公開的範圍不限於任何特定實施例,但是計算機架20按向下方向可以包括一個互聯刀片、至少一個計算刀片和至少一個記憶體刀片。
在各種實施例中,計算設備可以透過單個計算機架20來實現。可選地,計算設備可以透過包含在至少兩個計算機架20中的所有刀片、透過包含在至少兩個計算機架20中的部分刀片的組合、或透過單個計算機架20中的部分刀片來實現。
根據各種實施例,計算設備可以透過包含在計算機架20中的計算刀片、記憶體刀片和互聯刀片的組合來實現。例如,計算設備20A可以包括兩個計算刀片、三個記憶體刀片和單個互聯刀片的組合。在另一示例中,計算設備20B可以包括三個計算刀片、兩個記憶體刀片和單個互聯刀片的組合。在又一示例中,計算設備20C可以包括單個計算刀片、四個記憶體刀片和單個互聯刀片的組合。
儘管圖2示出包括多個計算刀片、記憶體刀片和互聯刀片的計算機架20,但是本公開的範圍不限於此。計算機架20可以包括常規的伺服器中具有的另外的組成元件,例如電力系統、冷卻系統、輸入/輸出(I / O)設備等。
圖3是示出根據本公開的實施例的圖1中所示的計算機架20的方塊圖。
參考圖3,計算機架20可以包括多個計算刀片200、互聯刀片300和多個記憶體刀片400。
在這種情況下,多個計算刀片200可以被稱為池化計算刀片、或池化計算系統等。類似地,多個記憶體刀片400也可以被稱為池化記憶體刀片、或池化記憶體系統等。計算刀片200中的每一個可以產生用以儲存數據的寫入指令和用以讀取數據的讀取指令。每個計算刀片200可以包括至少一個處理元件,例如至少一個處理器、至少一個處理/控制電路、或至少一個中央處理單元(CPU)。
記憶體刀片400中的每一個可以回應於讀取指令或寫入指令來選擇性地執行數據的讀取或寫入操作。更詳細地,每個記憶體刀片400可以回應於讀取指令來執行用以讀取數據的讀取操作,並且可以回應於寫入指令來執行用以寫入數據的寫入操作。每個記憶體刀片400可以包括各種類型的記憶體,例如多個揮發性記憶體和/或多個非揮發性記憶體。
在一個實施例中,記憶體刀片400中的每一個可以包括多個動態隨機存取記憶體(DRAM)、快閃記憶體、記憶卡、硬碟驅動器(HDD)、固態驅動器(SSD)或其組合。
可以由包含在每個計算刀片200中的一個或多個處理器來劃分、分配或指定記憶體刀片400中的每一個。每個記憶體刀片400可以儲存能夠被計算刀片200初始化和/或執行的至少一個操作系統(OS)。
互聯刀片300可以具有多個網路介面端口(port)、卡(card)或交換器(switch)。互聯刀片300可以使用與一種或多種有線或無線通訊技術相關的協議。例如,互聯刀片300可以根據各種協議(諸如外圍組件快速互連(PCIe)、快速路徑互聯(QPI)、乙太網等)來支持計算刀片200中的每一個與記憶體刀片400中的每一個之間的數據通訊。
伺服器系統或數據處理系統(諸如數據中心)可以具有多個刀片(例如計算刀片200、記憶體刀片400等),其安裝到單位計算機架20中同時在計算機架20內被彼此區分開。單個記憶體刀片或多個記憶體刀片可以被實現為其中設置相同或不同種類的記憶體的融合式記憶體件,或者也可以被實現為池化記憶體系統。
圖4是示出根據本公開的實施例的圖3中所示的每個記憶體刀片的示意圖。
參考圖4,記憶體刀片400可以包括控制器410和多個記憶體420。
控制器410可以包括數據控制器510、多個記憶體控制器520A~520C和輸入/輸出(I / O)介面530。
數據控制器510可以對在圖3中所示的計算刀片200和記憶體420之間傳送的數據進行控制。例如,數據控制器510可以回應於寫入請求或寫入指令而從計算刀片200接收要寫入的數據。數據控制器510可以控制用於將接收到的數據寫入來自多個記憶體420之中的對應記憶體中的寫入操作。在另一個示例中,數據控制器510可以回應於來自計算刀片200的讀取請求或讀取指令,而讀取儲存在來自多個記憶體420之中的特定記憶體中的數據。數據控制器510可以控制用於將讀取的數據輸出至來自計算刀片200之中的對應計算刀片的讀取操作。
記憶體控制器520A~520C可以被設置在數據控制器510和多個記憶體420之間,並且可以在數據控制器510和記憶體420之間提供介面。記憶體控制器520A可以控制包含在多個記憶體420中的第一組記憶體420A的操作。記憶體控制器520B可以控制包含在多個記憶體420中的第二組記憶體420B的操作。記憶體控制器520C可以控制包含在多個記憶體420中的第三組記憶體420C的操作。
因此,記憶體控制器520A可以被設置在數據控制器510和第一組記憶體420A之間,並且可以支持數據控制器510和第一組記憶體420A之間的數據通訊。記憶體控制器520B可以被設置在數據控制器510和第二組記憶體420B之間,並且可以支持數據控制器510和第二組記憶體420B之間的數據通訊。記憶體控制器520C可以被設置在數據控制器510和第三組記憶體420C之間,並且可以支持數據控制器510和第三組記憶體420C之間的數據通訊。
如可以從圖4看到的,為了便於描述,控制器410可以示例性地包括三個記憶體控制器520A~520C。然而,本公開的範圍不限於此。在一些實施例中,控制器410針對每種類型的記憶體420具有一個記憶體控制器520。如果第一組記憶體420A、第二組記憶體420B和第三組記憶體420C是相同種類的記憶體,則控制器410可以具有單個記憶體控制器。
I/O介面530可以透過互聯刀片300而在數據控制器510與計算刀片200之間提供介面。I/O介面530可以使用與至少一種有線或無線通訊技術相關的協議來將從數據控制器510接收到的數據發送(Tx)至互聯刀片300,並且可以從互聯刀片300接收(Rx)數據並將接收數據發送至數據控制器510。
例如,I/O介面530可以根據諸如外圍組件快速互連(PCIe)、快速路徑互聯(QPI)、乙太網等之類的各種協議來支持數據控制器510和互聯刀片300之間的數據通訊。
回應於從控制器410接收到的控制信號,多個記憶體420可以儲存(或寫入)數據,或者可以輸出(或讀取)所儲存的數據。多個記憶體420可以包括第一組記憶體420A、第二組記憶體420B和第三組記憶體420C。所述第一組記憶體420A、第二組記憶體420B和第三組記憶體420C可以具有相同或不同的特性。
根據一些實施例,第一組記憶體420A、第二組記憶體420B和第三組記憶體420C可以具有相同或不同的等待時間(latency)特性。
例如,第一組記憶體420A、第二組記憶體420B和第三組記憶體420C可以是具有相同特性的DRAM記憶體。可選地,第一組記憶體420A、第二組記憶體420B和第三組記憶體420C可以是另一種類型的記憶體,例如靜態隨機存取記憶體(SRAM)或快閃記憶體。另外,第一組記憶體420A、第二組記憶體420B和第三組記憶體420C也可以被實現為不同類型的記憶體。
根據其他實施例,包含在記憶體刀片400中的相同種類的記憶體420(例如揮發性記憶體(DRAM))可以根據各種溫度環境而共有或表現出各種性能特性。在這種情況下,性能特性可以包括數據存取速度、刷新週期或片上洩漏量。
也就是說,第一組記憶體420A、第二組記憶體420B和第三組記憶體420C可以處於不同的溫度環境中。第一組記憶體420A可以在第一溫度環境(例如室溫環境)中操作。第二組記憶體420B可以在第二溫度環境(例如低溫環境)中操作。第三組記憶體420C可以在第三溫度環境(例如超低溫(深冷,cryogenic))環境中操作。
例如,當第三組記憶體420C在深冷環境中操作時,揮發性記憶體(例如DRAM)的操作速度可以更快。另外,隨著片上洩漏量的減少,刷新週期可以被延長,從而減少在深冷環境中使用的揮發性記憶體所消耗的能量總量。如上所述,在深冷環境中使用的揮發性記憶體可以具有與非揮發性記憶體相同的特性。在一個實施例中,回應於請求最佳系統性能的請求信號,可以從多個記憶體420之中選擇被設置在深冷環境中的第三組記憶體420C。結果是,圖4中所示的記憶體刀片400可以更迅速地處理具有相對較高優先級的請求信號(例如緊急請求信號),同時可以大大降低功耗。
如果記憶體控制器接收到請求符合要求的系統性能的請求信號,則可以選擇第二組記憶體420B。另外,當第一組記憶體420A在諸如室溫環境的較高溫度環境中操作時,揮發性記憶體的操作速度會降低。隨著片上洩漏量的增加,功耗也可能與增加的片上洩漏成比例地增加。
因此,可以在各種溫度的環境中使用第一組記憶體420A、第二組記憶體420B和第三組記憶體420C,從而實現各種性能特性。因此,第一組記憶體420A可以被設置成在室溫環境中操作的記憶體,其中的每一個具有對應於慢操作速度的第一特性(例如慢特性:SS)。第二組記憶體420B可以被設置成在低溫環境中操作的記憶體,其中的每一個具有對應於正常操作速度的第二特性(例如正常特性:TT)。第三組記憶體420C可以被設置成在超低溫(深冷)環境中操作的記憶體,其中的每一個具有對應於快操作速度的第三特性(例如快特性:FF)。
圖5是示出根據本公開的實施例的圖3中所示的計算刀片的示意圖。
參考圖5,計算刀片200可以包括一個或多個CPU 210A~210C、一個或多個高速快取記憶體220A~220C、以及I / O介面230。
CPU 210A~210C中的每一個可以產生用於控制至少一個記憶體刀片400的指令。CPU 210A~210C中的每一個可以用於對來自圖3中所示的多個記憶體刀片400之中的至少一個記憶體刀片400進行劃分、分配或指定。CPU 210A~210C中的每一個可以對至少一個被劃分、分配或指定的記憶體刀片400進行初始化。CPU 210A~210C中的每一個可以對在多個記憶體刀片400中執行的讀取或寫入操作(或讀取或寫入程序)進行控制。
為了減少等待時間,高速快取記憶體220A可以儲存用於CPU 210A的數據,高速快取記憶體220B可以儲存用於CPU 210B的數據,並且高速快取記憶體220C可以儲存用於CPU 210C的數據。高速快取記憶體220A~220C可以將用於操作CPU 210A~210C的數據儲存在高速快取列中,並且可以根據相應的記憶體420的特性,來確定其中逐出操作被執行的每個記憶體的優先級訊息。根據一個實施例。高速快取記憶體220A~220C可以一對一地耦接到CPU 210A~210C。例如,高速快取記憶體220A~220C可以被設置在用於CPU 210A~210C的相應處理器裸片上。
I/O介面230可以透過圖3中所示的互聯刀片300來支持記憶體刀片400和CPU 210A~210C之間的通訊。
I/O介面230可以使用與至少一種有線或無線通訊技術相關的協議來控制數據輸入/輸出(I/O)操作。也就是說,I/O介面230可以將從CPU 210A~210C接收到的發送(Tx)數據輸出到互聯刀片300,並且可以將從互聯刀片300接收到的接收(Rx)數據發送到CPU 210A~210C。
例如,I/O介面230可以根據諸如外圍組件快速互連(PCIe)、快速路徑互聯(QPI)、乙太網等的各種協議來支持互聯刀片300和CPU 210A~210C之間的數據通訊。
圖6是示出根據本公開的實施例的圖5中所示的高速快取記憶體220A和220B的示意圖。由於該示例中的高速快取記憶體220A~220C具有相同的結構,所以為了便於描述和更好地理解本公開,在下文中將僅參考來自多個高速快取記憶體220A~220C之中的一個高速快取記憶體220A的詳細的組成元件來描述本公開的以下實施例。
參考圖6,高速快取記憶體220A可以包括位址解碼器211、路塊(way block)212、數據處理器213、逐出電路214和特性儲存電路215。
在這種情況下,位址解碼器211可以對從CPU 210A接收到的位址ADD進行解碼,使得位址解碼器211可以選擇特性儲存電路215、逐出電路214和路塊212的對應位址。路塊212可以包括多個路WAY0~WAY3以在CPU 210A的操作期間儲存數據。
在這種情況下,路WAY0~WAY3中的每一個可以包括標簽位址、髒標誌和數據。可以透過組號和標簽位址的組合來創建從CPU請求的位址ADD。因此,為了確定關於從CPU 210A請求的位址的值是否已被儲存在高速快取記憶體220A中,高速快取記憶體220A可以查詢(或檢查)透過所請求的位址ADD而自動決定的組中包含的多個路WAY0~WAY3的標簽位址。在一個實施例中,可以將特定值(例如,“0”)分配給標簽位址,使得標簽位址“0”可以指示對應的路的空狀態。
髒標誌可以指示儲存在高速快取記憶體220A中的數據是否已被儲存在記憶體420中的每一個中。例如,被啟用的(或被致能的)髒標誌可以指示儲存在路WAY0~WAY3中的每一個中的數據已經被更新並且還沒有被儲存在記憶體420中的每一個中。因此,如果確認從高速快取記憶體220A被驅出的路的髒標誌被啟用(或被致能),則可以使用被啟用的數據來更新記憶體420。
數據處理器213可以處理與高速快取替換策略相對應的數據。例如,高速快取替換策略可以指以下操作,其用於使用最近最少使用(LRU)操作或先進先出(FIFO)操作來對高速快取數據進行替換。在這種情況下,LRU操作可以是用於順序地替換最近最少使用的數據以提高命中率的功能。FIFO操作可以是用於以與數據被輸入的順序相同的順序來對數據進行替換的功能。
高速快取記憶體220A的特徵可以在於,當由於空間有限而出現高速快取滿狀態時,應該刪除現存數據(即遺留數據)以加載新數據。為此,基於在高速快取滿狀態下數據處理器213的操作,逐出電路214可以刪除將被引用的概率為低的數據,或者將相同的數據寫回主記憶體中,並且然後可以用新的數據來替換對應的空間的數據。根據一個實施例的逐出電路214可以基於儲存在特性儲存電路215中的特性訊息來確定執行逐出操作的每個記憶體的優先級訊息。
特性儲存電路215可以儲存關於第一組記憶體420A的特性訊息、關於第二組記憶體420B的特性訊息、以及關於第三組記憶體420C的特性訊息。例如,特性儲存電路215可以儲存關於上述第一組記憶體420A的數據存取速度訊息。假設第一組記憶體420A的每一個記憶體可以包括四個DRAM,則特性儲存電路215可以儲存包含在第一組記憶體420A中的四個DRAM中的每一個的數據存取速度訊息。來自包含在第一組記憶體420A中的四個記憶體之中的兩個記憶體可以具有與快操作速度相對應的快特性(FF),並且其餘的兩個記憶體可以具有與慢操作速度相對應的慢特性(SS)。
在這種情況下,特性儲存電路215可以將每個記憶體的數據存取速度訊息儲存為1位元數據。例如,如果記憶體具有快特性(FF),則數據“0”可以被儲存在特性儲存電路215中。如果記憶體具有慢特性,則數據“1”可以被儲存在特性儲存電路215中。在其他實施例中,可以使用更多的位元來儲存特性,以在性能級別方面指定更多的等級。
在傳統的僅使用數據處理器213的命中率來逐出(或移除)高速快取數據的過程中,根本不考慮未命中損失。儘管使用命中率確實在一定程度上說明了未命中(例如,未命中是命中的相反),這些未命中的未命中損失表現為延遲(delay),其取決於包括儲存性能特性的許多因素。因此,根據本公開的實施例的數據處理系統可以透過特性儲存電路215來儲存記憶體420的特性訊息。數據處理系統可以在考慮所儲存的記憶體420的特性的情況下來逐出(或移除)高速快取數據。
圖7和8是示出根據本公開的實施例的圖6中所示的逐出電路的操作的流程圖。為了便於描述,圖7和圖8中所示的示例示出了在其中記憶體420是DRAM的實施例。另外,圖7和8的示例示出了數據處理器213使用LRU操作來替換高速快取數據。
如上所述,記憶體420可以根據CPU 210A和記憶體420之間的相對位置或記憶體420的溫度環境而具有不同的數據存取速度,使得相應記憶體420可以具有不同的特性。根據實施例,關於相應記憶體420的特性的訊息可以被儲存在特性儲存電路215中。逐出電路214可以確定相應記憶體的優先級訊息,使得逐出電路214可以不僅根據所確定的優先級訊息而且還根據儲存在特性儲存電路215中的訊息來執行對高速快取列的逐出。
例如,具有快特性(FF)的記憶體的未命中損失可能與具有慢特性(SS)的記憶體不同。例如,FAST(快)記憶體可能具有比其他SLOW(慢)記憶體小的未命中損失。
在這種情況下,未命中損失可以表示要執行由於出現未命中的高速快取而引起的列填充操作所消耗的時間。更詳細地,列填充操作可以表示:高速快取記憶體因為出現至少一個未命中的高速快取而對外部的主記憶體進行存取,使得高速快取記憶體的對應的列被儲存在主記憶體中的數據填充。由於FAST記憶體的存取時間比其他SLOW記憶體的存取時間快,因此可以透過先使用FAST記憶體執行逐出操作來減少未命中損失。
因此,在FAST記憶體中可以先執行逐出操作,使得具有低未命中損失的數據可以被儲存在高速快取記憶體220A中。
圖7是示出逐出電路214搜索其中數據逐出將先被執行的記憶體以及然後在該對應的記憶體中執行LRU操作的過程的流程圖。
參考圖7,在步驟S1中,逐出電路214可以基於儲存在特性儲存電路215中的特性訊息來確定在高速快取記憶體中存在或不存在FAST DRAM區域。如果在步驟S1中FAST DRAM區域存在於高速快取記憶體中,則可以將該FAST DRAM區域確定為逐出塊。在步驟S2中,逐出電路214可以透過數據處理器213而在該FAST DRAM區域內執行LRU操作。在步驟S4中,逐出電路214可以根據LRU操作來執行對高速快取數據的逐出。相反,如果在步驟S1中FAST DRAM區域不存在於高速快取記憶體中,即在步驟S1中確定SLOW DRAM區域存在於高速快取記憶體中,則可以將SLOW DRAM區域指定為逐出塊。在步驟S3中,逐出電路214可以透過數據處理器213在SLOW DRAM區域內執行LRU操作。此後,逐出電路214可以在步驟S4中根據LRU操作來執行對高速快取數據的逐出。
圖8是示出逐出電路214先執行LRU操作和搜索其中數據逐出將被執行的記憶體的流程圖。
參考圖8,在步驟S10中,逐出電路214可以透過數據處理器213來執行LRU操作。此後,在步驟S11中,逐出電路214可以基於儲存在特性儲存電路215中的特性訊息來確定其中數據逐出將被執行的記憶體的優先級訊息。
此後,在步驟S12中,逐出電路214可以確定其中數據逐出將先被執行的第一優先級記憶體是否是SLOW DRAM。如果在步驟S12中確定第一優先級記憶體是SLOW DRAM,則在步驟S13中逐出電路214可以確定第二優先級記憶體是否是SLOW DRAM。
如果在步驟S12中第一優先級記憶體不是SLOW DRAM,則逐出電路214可以將FAST DRAM確定為第一優先級記憶體。更詳細地,逐出電路214可以將FAST DRAM的未命中損失值彼此進行比較,在步驟S14中可以將來自多個FAST DRAM之中的具有較低未命中損失的一個FAST DRAM確定為第一優先級記憶體,並且在步驟S16中可以執行對所確定的第一優先級記憶體內的至少一個高速快取列的逐出。
儘管第一優先級記憶體是SLOW DRAM並且第二優先級記憶體不是SLOW DRAM,但是優先級順序被改變,使得FAST DRAM可以被確定為第一優先級記憶體。儘管FAST DRAM不是第一優先級記憶體,但是FAST DRAM的優先級順序可以改變為第一優先級記憶體,從而可以先在FAST DRAM中執行逐出操作。也就是說,FAST DRAM的未命中損失值可以被互相比較,在步驟S14中具有較低未命中損失的任何FAST DRAM可以被確定為第一優先級記憶體,並且在步驟S16中可以在所確定的第一優先級記憶體中執行對高速快取列的逐出。
相反,當第一優先級記憶體和第二優先級記憶體是SLOW DRAM時,可以將FAST DRAM確定為第二優先級記憶體,而不是將SLOW DRAM確定為第二優先級記憶體。換句話說,可以將FAST DRAM的未命中損失值互相比較,從而在步驟S15中可以將具有較低未命中損失的任何FAST DRAM確定為第二優先級記憶體,並且在步驟S16中可以在所確定的第二優先級記憶體中執行對高速快取列的逐出。
從以上描述顯而易見的是,根據本公開的實施例的數據處理系統在高速快取管理期間可以考慮記憶體特性來確定逐出塊,從而減少未命中損失。
本領域技術人員將理解,在不脫離本公開的精神和基本特性的情況下,可以以除了本文所述之外的其他特定方式來實施實施例。因此,上述實施例在所有方面都被解釋為說明性的而非限制性的。本公開的範圍應該根據所附申請專利範圍及其合法等同物來確定,而不是根據以上描述來確定。此外,落入所附申請專利範圍的含義和等同範圍內的所有改變都旨在被包含在其中。另外,對於本領域技術人員來說顯而易見的是,在所附申請專利範圍中未明確引用彼此的申請專利範圍可以組合地呈現為實施例,或者在提交本申請之後透過隨後的修改被包括為新的申請專利範圍。
儘管已經描述了許多說明性實施例,但是應該理解,本領域技術人員可以設計出將落入本公開的原理的精神和範圍內的大量的其他修改和實施例。特別地,在本公開內容、圖式和所附申請專利範圍的範圍內的組成部件和/或佈置中的許多變化和修改是可能的。除了組成部件和/或佈置的變化和修改之外,替代性的使用對於本領域技術人員而言也是顯而易見的。
10:數據處理系統
20:計算機架
20A:計算設備
20B:計算設備
20C:計算設備
21-29:抽屜
30:管理介面
40:網路
200:計算刀
210A:CPU
210B:CPU
210C:CPU
212:路塊
213:數據處理器
214:逐出電路
215:特性儲存電路
220A:高速快取記憶體
220B:高速快取記憶體
220C:高速快取記憶體
230:I/O介面
300:互聯刀片
400:記憶體刀片
410:控制器
420:記憶體
420A:第一組記憶體
420B:第二組記憶體
420C:第三組記憶體
510:數據控制器
520A:記憶體控制器
520B:記憶體控制器
520C:記憶體控制器
530:輸入/輸出(I/O)介面
ADD:位址
MCO、MC1、MC2:記憶體控制器
SS:慢特性
TT:正常特性
FF:快特性
WAY0-WAY3:路
當結合圖式考慮時,透過參考以下詳細描述本公開的上述和其他特徵和優點將變得顯而易見,在圖式中:
[圖1]是示出根據本公開的實施例的數據處理系統的示例的方塊圖。
[圖2]是示出根據本公開的實施例的圖1中所示的計算機架的示例的方塊圖。
[圖3]是示出根據本公開的實施例的圖1中所示的計算機架的示例的方塊圖。
[圖4]是示出根據本公開的實施例的圖3中所示的記憶體刀片的示例的示意圖。
[圖5]是示出根據本公開的實施例的圖3中所示的計算刀片的示例的示意圖。
[圖6]是示出根據本公開的實施例的圖5中所示的高速快取記憶體的示例的示意圖。
[圖7-8]是示出根據本公開的實施例的圖6中所示的逐出電路的操作的流程圖。
10:數據處理系統
20:計算機架
30:管理介面
40:網路
Claims (20)
- 一種數據處理系統,包括: 計算刀片,其被配置為產生用以儲存數據的寫入指令和用以讀取數據的讀取指令;以及 記憶體刀片,其被配置為回應於所述讀取指令和所述寫入指令來在多個記憶體中選擇性地執行讀取操作和寫入操作, 其中,所述計算刀片具有高速快取記憶體,所述高速快取記憶體儲存關於所述多個記憶體中的每個記憶體的性能特性的訊息,並且所述計算刀片被配置為基於所儲存的訊息來確定對高速快取列進行逐出的優先級訊息。
- 如請求項1所述之數據處理系統,還包括: 互聯刀片,其被配置為在所述計算刀片與所述記憶體刀片之間傳送數據。
- 如請求項1所述之數據處理系統,其中,所述記憶體刀片包括: 所述多個記憶體,所述讀取操作和所述寫入操作在其中被執行;以及 控制器,其被配置為回應於從所述計算刀片接收到的請求而選擇性地對所述多個記憶體進行存取。
- 如請求項3所述之數據處理系統,其中,所述控制器包括: 數據控制器,其被配置為控制在所述計算刀片與所述多個記憶體之間傳送的數據; 多個記憶體控制器,其被配置為控制所述數據控制器與所述多個記憶體之間的數據的傳送;以及 輸入/輸出I / O介面,其為所述數據控制器與所述計算刀片之間的介面。
- 如請求項4所述之數據處理系統,其中: 回應於所述寫入指令,所述數據控制器從所述計算刀片接收要被寫入的數據,並將接收到的數據寫入來自所述多個記憶體之中的第一記憶體;以及 回應於所述讀取指令,所述數據控制器讀取儲存在來自所述多個記憶體之中的第二記憶體中的數據,並將讀取的數據輸出至所述計算刀片。
- 如請求項1所述之數據處理系統,其中,所述多個記憶體包括: 第一組記憶體,其處於第一溫度環境中; 第二組記憶體,其處於第二溫度環境中;以及 第三組記憶體,其處於第三溫度環境中, 其中,所述第二溫度低於所述第一溫度,並且所述第三溫度低於所述第二溫度。
- 如請求項6所述之數據處理系統,其中,所述第一組記憶體、所述第二組記憶體和所述第三組記憶體為相同種類的記憶體。
- 如請求項6所述之數據處理系統,其中,所述多個記憶體具有不同的性能特性。
- 如請求項6所述之數據處理系統,其中: 所述第一組記憶體具有第一存取速度; 所述第二組記憶體具有第二存取速度,所述第二存取速度比所述第一存取速度快;以及 所述第三組記憶體具有第三存取速度,所述第三存取速度比所述第二存取速度快。
- 如請求項1所述之數據處理系統,其中,所述計算刀片包括: 中央處理單元,其被配置為產生用以控制所述記憶體刀片的指令; 所述高速快取記憶體,其被配置為:將用於所述中央處理單元的數據儲存在高速快取列中,以及基於所述性能特性來確定要被執行對所述高速快取列的逐出操作的記憶體的優先級訊息;以及 輸入/輸出介面,其在所述中央處理器與所述記憶體刀片之間。
- 如請求項10所述之數據處理系統,其中,所述高速快取記憶體包括: 路塊,其被配置為儲存用於中央處理單元的高速快取的數據; 數據處理器,其被配置為對數據進行處理以執行對所述高速快取列的逐出; 特性儲存電路,其被配置為儲存所述性能特性;以及 逐出電路,其被配置為:回應於所述性能特性而確定所述記憶體的優先級訊息,並且根據所確定的優先級訊息來在所述記憶體中執行所述逐出操作。
- 如請求項11所述之數據處理系統,其中,所述高速快取記憶體還包括: 位址解碼器,其被配置為對從所述中央處理單元接收到的位址進行解碼。
- 如請求項11所述之數據處理系統,其中,所述數據處理器使用最近最少使用操作來替換所述高速快取的數據。
- 如請求項11所述之數據處理系統,其中,所述數據處理器使用先進先出操作來替換所述高速快取的數據。
- 如請求項11所述之數據處理系統,其中,所述性能特性包括數據存取速度、刷新週期和片上洩漏量中的任何一種。
- 如請求項11所述之數據處理系統,其中所述逐出電路將數據存取速度具有快特性的記憶體確定為第一優先級記憶體,並且將數據存取速度具有慢特性的記憶體確定為第二優先級記憶體。
- 如請求項11所述之數據處理系統,其中,所述數據處理器被配置為:在確定所述記憶體的所述優先級訊息之後利用所述數據處理器來對數據進行處理。
- 如請求項11所述之數據處理系統,其中,所述系統在所述數據處理器對數據進行處理之後確定所述記憶體的所述優先級訊息。
- 如請求項18所述之數據處理系統,其中,當數據存取速度具有慢特性的記憶體被確定為第一優先級記憶體並且數據存取速度具有快特性的記憶體被確定為第二優先級記憶體時,所述逐出電路將第一優先級分配給具有快特性的記憶體,使得具有快特性的記憶體變為第一優先級記憶體。
- 如請求項18所述之數據處理系統,其中,當具有慢的數據存取速度的記憶體被分別確定為第一優先級記憶體和第二優先級記憶體時,所述逐出電路將第二優先級分配給具有快的數據存取速度的記憶體,使得所述具有快的數據存取速度的記憶體變為第二優先級記憶體。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180144288A KR102684940B1 (ko) | 2018-11-21 | 2018-11-21 | 데이터 처리 시스템 |
KR10-2018-0144288 | 2018-11-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202020674A true TW202020674A (zh) | 2020-06-01 |
Family
ID=70726348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108109647A TW202020674A (zh) | 2018-11-21 | 2019-03-20 | 數據處理系統 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10860498B2 (zh) |
JP (1) | JP2020087409A (zh) |
KR (1) | KR102684940B1 (zh) |
CN (1) | CN111209227B (zh) |
TW (1) | TW202020674A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544063B2 (en) * | 2018-11-21 | 2023-01-03 | SK Hynix Inc. | Memory system and data processing system including the same |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05289760A (ja) * | 1992-04-06 | 1993-11-05 | Mitsubishi Electric Corp | 基準電圧発生回路 |
US5717884A (en) * | 1996-02-02 | 1998-02-10 | Storage Technology Corporation | Method and apparatus for cache management |
US7173863B2 (en) | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US7206902B2 (en) | 2004-08-17 | 2007-04-17 | Nvidia Corporation | System, apparatus and method for predicting accesses to a memory |
US7437510B2 (en) * | 2005-09-30 | 2008-10-14 | Intel Corporation | Instruction-assisted cache management for efficient use of cache and memory |
KR100782592B1 (ko) | 2006-08-10 | 2007-12-06 | 엠텍비젼 주식회사 | 공유 메모리를 구비한 장치 및 공유 메모리 제어 방법 |
US9104599B2 (en) * | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
US8102663B2 (en) | 2007-09-28 | 2012-01-24 | Oracle America, Inc. | Proximity communication package for processor, cache and memory |
US8868838B1 (en) * | 2008-11-21 | 2014-10-21 | Nvidia Corporation | Multi-class data cache policies |
US8095738B2 (en) | 2009-06-15 | 2012-01-10 | International Business Machines Corporation | Differential caching mechanism based on media I/O speed |
US8566531B2 (en) * | 2009-08-21 | 2013-10-22 | Google Inc. | System and method of selectively caching information based on the interarrival time of requests for the same information |
US8924645B2 (en) * | 2010-03-08 | 2014-12-30 | Hewlett-Packard Development Company, L. P. | Data storage apparatus and methods |
US8539163B1 (en) | 2010-12-17 | 2013-09-17 | Amazon Technologies, Inc. | Speculative reads |
US9432298B1 (en) | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
US8792511B2 (en) | 2011-04-18 | 2014-07-29 | Lsi Corporation | System and method for split ring first in first out buffer memory with priority |
US20120311269A1 (en) * | 2011-06-03 | 2012-12-06 | Loh Gabriel H | Non-uniform memory-aware cache management |
JP5888050B2 (ja) | 2012-03-27 | 2016-03-16 | 株式会社ソシオネクスト | 半導体集積回路およびそのdma制御方法 |
US8922243B2 (en) | 2012-12-23 | 2014-12-30 | Advanced Micro Devices, Inc. | Die-stacked memory device with reconfigurable logic |
KR20140024593A (ko) | 2012-08-20 | 2014-03-03 | 에스케이하이닉스 주식회사 | 시스템 패키지 |
US9235513B2 (en) * | 2012-10-18 | 2016-01-12 | International Business Machines Corporation | Cache management based on physical memory device characteristics |
US9218285B2 (en) * | 2012-11-26 | 2015-12-22 | Arm Limited | Variable mapping of memory accesses to regions within a memory |
KR102029806B1 (ko) | 2012-11-27 | 2019-10-08 | 삼성전자주식회사 | 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치 |
US9135185B2 (en) | 2012-12-23 | 2015-09-15 | Advanced Micro Devices, Inc. | Die-stacked memory device providing data translation |
US9170948B2 (en) | 2012-12-23 | 2015-10-27 | Advanced Micro Devices, Inc. | Cache coherency using die-stacked memory device with logic die |
KR102070136B1 (ko) | 2013-05-03 | 2020-01-28 | 삼성전자주식회사 | 프리페치를 위한 캐시 제어 장치 및 그 캐시 제어 장치를 이용한 프리페치 방법 |
KR20140147213A (ko) | 2013-06-19 | 2014-12-30 | 에스케이하이닉스 주식회사 | 프리페치 동작을 제어하는 반도체 장치 |
GB2516831B (en) | 2013-07-31 | 2020-10-21 | Advanced Risc Mach Ltd | Error code management in systems permitting partial writes |
US9612975B2 (en) | 2014-11-20 | 2017-04-04 | Samsung Electronics Co., Ltd. | Page cache device and method for efficient mapping |
EP3298740B1 (en) * | 2015-05-22 | 2023-04-12 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays |
US20170123796A1 (en) * | 2015-10-29 | 2017-05-04 | Intel Corporation | Instruction and logic to prefetch information from a persistent memory |
US10417134B2 (en) * | 2016-11-10 | 2019-09-17 | Oracle International Corporation | Cache memory architecture and policies for accelerating graph algorithms |
US10649904B2 (en) * | 2016-12-12 | 2020-05-12 | Samsung Electronics Co., Ltd. | System and method for store streaming detection and handling |
JP6979777B2 (ja) | 2017-03-22 | 2021-12-15 | キヤノン株式会社 | インターフェース装置およびその制御方法 |
US20180300238A1 (en) * | 2017-04-17 | 2018-10-18 | Balaji Vembu | Adaptive cache sizing per workload |
US10496561B2 (en) | 2017-04-18 | 2019-12-03 | Advanced Micro Devices, Inc. | Resilient vertical stacked chip network for routing memory requests to a plurality of memory dies |
KR102469811B1 (ko) | 2017-12-20 | 2022-11-24 | 에스케이하이닉스 주식회사 | 서비스품질 제어를 위한 선입선출 버퍼 시스템 |
US10713173B2 (en) * | 2018-09-06 | 2020-07-14 | Intel Corporation | Memory controller with pre-loader |
-
2018
- 2018-11-21 KR KR1020180144288A patent/KR102684940B1/ko active IP Right Grant
-
2019
- 2019-02-27 US US16/288,015 patent/US10860498B2/en active Active
- 2019-03-15 CN CN201910197794.8A patent/CN111209227B/zh active Active
- 2019-03-20 TW TW108109647A patent/TW202020674A/zh unknown
- 2019-03-27 JP JP2019059544A patent/JP2020087409A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2020087409A (ja) | 2020-06-04 |
KR102684940B1 (ko) | 2024-07-17 |
US20200159671A1 (en) | 2020-05-21 |
CN111209227A (zh) | 2020-05-29 |
KR20200059493A (ko) | 2020-05-29 |
US10860498B2 (en) | 2020-12-08 |
CN111209227B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11487661B2 (en) | Converged memory device and operation method thereof | |
US10268382B2 (en) | Processor memory architecture | |
CN112262365B (zh) | 存储器系统或子系统中的等待时间指示 | |
US20150127691A1 (en) | Efficient implementations for mapreduce systems | |
WO2018022175A1 (en) | Techniques to allocate regions of a multi level, multitechnology system memory to appropriate memory access initiators | |
US20200201573A1 (en) | Memory system and operation method thereof | |
US11544063B2 (en) | Memory system and data processing system including the same | |
US10191664B2 (en) | Memory system | |
CN112445423A (zh) | 存储器系统、计算机系统及其数据管理方法 | |
CN115443453A (zh) | 用于减少传输延迟的链路关联 | |
TWI772550B (zh) | 記憶體系統、計算系統及其操作方法 | |
US20230385190A1 (en) | Communication method, apparatus, and system | |
US10733118B2 (en) | Computer system, communication device, and storage control method with DMA transfer of data | |
TW202020674A (zh) | 數據處理系統 | |
US20230094144A1 (en) | Memory system | |
US20230195368A1 (en) | Write Request Buffer | |
KR102433549B1 (ko) | 통합 메모리 디바이스 및 그의 동작 방법 | |
US20240211406A1 (en) | Systems, methods, and apparatus for accessing data from memory or storage at a storage node | |
US12073217B2 (en) | Memory system and data processing system including the same | |
US11899585B2 (en) | In-kernel caching for distributed cache | |
US20220229552A1 (en) | Computer system including main memory device having heterogeneous memories, and data management method thereof | |
CN118259829A (zh) | 用于访问存储节点处的数据的设备和方法 |