TWI750406B - 高頻寬記憶體、高頻寬記憶體系統及其命令處理方法 - Google Patents

高頻寬記憶體、高頻寬記憶體系統及其命令處理方法 Download PDF

Info

Publication number
TWI750406B
TWI750406B TW107129831A TW107129831A TWI750406B TW I750406 B TWI750406 B TW I750406B TW 107129831 A TW107129831 A TW 107129831A TW 107129831 A TW107129831 A TW 107129831A TW I750406 B TWI750406 B TW I750406B
Authority
TW
Taiwan
Prior art keywords
memory
bandwidth
function
instruction
random access
Prior art date
Application number
TW107129831A
Other languages
English (en)
Other versions
TW201917567A (zh
Inventor
張牧天
克里希納 特佳 馬拉迪
牛迪民
鄭宏忠
Original Assignee
南韓商三星電子股份有限公司
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 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW201917567A publication Critical patent/TW201917567A/zh
Application granted granted Critical
Publication of TWI750406B publication Critical patent/TWI750406B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • 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
    • G06F13/1689Synchronisation and timing concerns
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

一種在高頻寬記憶體(HBM)系統中處理記憶體內命令的方法,包括:圖形處理單元的高頻寬記憶體控制器向高頻寬記憶體發送高頻寬記憶體內功能指令。所述高頻寬記憶體的邏輯元件接收所述高頻寬記憶體內功能指令,且使用位於所述邏輯元件上的所述控制器、算數邏輯單位及靜態隨機存取記憶體來協調指令執行。也提供高頻寬記憶體及高頻寬記憶體系統。

Description

高頻寬記憶體、高頻寬記憶體系統及其命令處理方法 [相關申請的交叉參考]
本申請主張在2017年10月17日提出申請的美國臨時專利申請第62/573,390號的優先權及權利,所述美國臨時專利申請全文併入本申請供參考。
本揭露的一些實施例大體來說涉及記憶體頻寬管理,且還可涉及包括位於高頻寬記憶體邏輯裸晶上的處理器及記憶體控制器的高頻寬記憶體(HBM)系統以及在高頻寬記憶體中進行處理的方法。
常常使用高頻寬記憶體(high-bandwidth memory,HBM)作為圖形處理單元(graphics processing unit,GPU)的高性能記憶體。與典型的動態隨機存取記憶體(dynamic random access memory,DRAM)相比,高頻寬儲存器具有匯流排非常寬的優點。目前的HBM系統架構包括多個堆疊式DRAM裸晶(例如,數位積體電路元件(digital integrated circuit element,dice))及用作HBM中的緩衝器及GPU中的HBM控制器的邏輯裸晶。另外的性能增益可通過向記憶體系統添加記憶體內處理(例如,記憶體內處理)能力來實現,然而對於HBM的任意改變均應引起現有GPU生態系統的微小改變。
以上資訊僅是為了增強對本揭露實施例的背景的理解,且因此可能含有並不構成現有技術的資訊。
本揭露的一些實施例提供一種在高頻寬記憶體(HBM)系統中協調記憶體命令的系統及方法。
根據一些實施例,如在高頻寬記憶體(HBM)系統中處理記憶體內命令的系統及方法,包括:圖形處理單元的高頻寬記憶體控制器向高頻寬記憶體發送高頻寬記憶體內功能(function-in-HBM,FIM)指令,且在所述高頻寬記憶體的邏輯元件處接收所述高頻寬記憶體內功能指令。所述邏輯元件可包括:控制器、算數邏輯單位(Arithmetic Logic Unit,ALU)及靜態隨機存取記憶體。所述邏輯元件使用所述控制器、所述算數邏輯單位、或所述靜態隨機存取記憶體中的至少一者、基於所述高頻寬記憶體內功能指令來協調所述高頻寬記憶體內功能指令的執行。
根據一些實施例,協調所述高頻寬記憶體內功能指令的執行涉及:將所述高頻寬記憶體內功能指令識別為計算高頻寬記憶體內功能指令。所述計算高頻寬記憶體內功能指令具有操作及至少一個資料位置。協調所述計算高頻寬記憶體內功能指令的所述執行包括根據所述至少一個資料位置從所述高頻寬記憶體的動態隨機存取記憶體檢索至少一個資料;將所述至少一個資料及所述操作提供到所述算數邏輯單位;所述算數邏輯單位對所述至少一個資料執行所述操作;以及將所述執行的結果儲存在所述動態隨機存取記憶體中。
根據一些實施例,操作可為原子運算及資料類型,且其中所述至少一個資料位置包括目的地暫存器、記憶體位址、來源暫存器、常數、或參考暫存器中的至少一者。
根據一些實施例,所述原子運算包括加法(ADD)功能、減法(SUBTRACT)功能、交換(EXCHANGE)功能、最大值(MAX)功能、最小值(MIN)功能、遞增(INCREMENT)功能、遞減(DECREMENT)功能、比較和替換(COMPARE-AND-SWAP)功能、及(AND)功能、或(OR)功能、互斥或(XOR)功能、或反(NOT)功能中的至少一者。
根據一些實施例,所述操作可為算數邏輯單位操作及動態隨機存取記憶體存取操作,且所述至少一個資料位置包括目的地暫存器及至少一個來源暫存器。
根據一些實施例,所述動態隨機存取記憶體存取操作可包括成對載入指令或成對儲存指令。
根據一些實施例,協調所述高頻寬記憶體內功能指令的 執行可包括:所述控制器將所述高頻寬記憶體內功能指令識別為高頻寬記憶體內功能移動指令。所述高頻寬記憶體內功能移動指令可包括來源暫存器及目的地暫存器。所述控制器可根據所述來源暫存器從所述高頻寬記憶體的動態隨機存取記憶體檢索所述至少一個資料以及將所述至少一個資料在所述目的地暫存器處儲存在所述動態隨機存取記憶體中。
根據一些實施例,協調所述高頻寬記憶體內功能指令的執行可包括將所述高頻寬記憶體內功能指令識別為高頻寬記憶體內功能暫存指令。所述高頻寬記憶體內功能暫存指令包括來源暫存器或目的地暫存器中的至少一者。根據一些實施例,協調所述高頻寬記憶體內功能暫存指令的執行可包括將所述控制器的定時參數從動態隨機存取記憶體定時參數調整到靜態隨機存取記憶體定時參數以及根據所述靜態隨機存取記憶體定時參數對所述靜態隨機存取記憶體執行所述高頻寬記憶體內功能暫存指令。
根據一些實施例,在高頻寬記憶體系統中處理記憶體內命令的系統及方法還可包括當所述至少一個資料位置包括圖形處理單元快取記憶體時,所述高頻寬記憶體控制器協調所述高頻寬記憶體內功能指令在所述圖形處理單元上的執行。
根據一些實施例,一種高頻寬記憶體包括:動態隨機存取記憶體;以及,邏輯元件,包括:控制器、算數邏輯單位及靜態隨機存取記憶體,其中所述邏輯元件被配置成執行指令,所述指令在被所述邏輯元件執行時,使所述邏輯元件:所述邏輯元件使用所述動態隨機存取記憶體、所述控制器、所述算數邏輯單位、或所述靜態隨機存取記憶體中的至少一者、基於高頻寬記憶體內 功能指令來協調高頻寬記憶體內功能指令的執行。
根據一些實施例,一種高頻寬記憶體系統,包括:高頻寬記憶體,包括:動態隨機存取記憶體裸晶,包括動態隨機存取記憶體;以及邏輯裸晶,包括控制器、算數邏輯單位及靜態隨機存取記憶體;以及圖形處理單元記憶體控制器,與所述高頻寬記憶體分開,且被配置成向所述控制器發送指令。其中所述控制器被配置成接收所述指令,並在所述指令是常規指令時將所述指令轉發到所述動態隨機存取記憶體裸晶上的所述動態隨機存取記憶體以及在所述指令是高頻寬記憶體內功能指令時協調所述指令的執行。且,其中所述指令的執行是使用所述控制器、所述算數邏輯單位、及所述靜態隨機存取記憶體中的至少一者來實行。
100:記憶體內功能高頻寬記憶體系統(FIM HBM系統)/高頻寬記憶體系統(HBM系統)
110:高頻寬記憶體(HBM)
120:動態隨機存取記憶體(DRAM)
130:邏輯元件
140:控制器
150:算數邏輯單位(ALU)
160:靜態隨機存取記憶體(SRAM)
170:圖形處理單元(GPU)
180:HBM控制器
S200、S210、S220、S230:操作
結合附圖閱讀以下說明可更詳細地理解一些實施例,在附圖中:圖1是根據各種實施例的高頻寬記憶體(HBM)系統的方塊圖。
圖2是示出根據一些示例性實施例的用於對來自FIM指令集架構(Instruction Set Architecture,ISA)的指令進行處理的示例性操作的流程圖。
通過參照對實施例及附圖的以下詳細說明,可更容易地 理解本發明概念的特徵及其實現方法。在下文中,將參照附圖更詳細地闡述實施例,其中相同的參考編號自始至終指代相同的元件。然而,本發明可被實施為各種不同形式,而不應被視為僅限於本文所示出的實施例。確切來說,提供這些實施例作為實例是為了使本揭露將透徹及完整,並將向所屬領域中的技術人員充分傳達本發明的各個方面及特徵。因此,可不再闡述對於所屬領域中的一般技術人員完整地理解本發明的各個方面及特徵而言並非必需的工藝、元件及技術。除非另有說明,否則在所有附圖及書面說明通篇中相同的參考編號表示相同的元件,且因此可不對其進行重複說明。在圖式中,為清晰起見,可誇大各元件、各層及各區的相對大小。
在以下說明中,出於解釋目的,闡述各種具體細節來提供對各種實施例的透徹理解。然而,顯而易見的是,可不使用這些具體細節或者可使用一種或多種等效配置來實踐各種實施例。在其他實例中,以方塊圖形式示出眾所周知的結構及裝置以避免不必要地使各種實施例模糊不清。
應理解,當稱一元件、層、區或元件位於另一元件、層、區或元件“上(on)”、“連接到(connected to)”或“耦合到(coupled to)”另一元件、層、區或元件時,所述元件、層、區或元件可直接位於所述另一元件、層、區或元件上、直接連接到或直接耦合到所述另一元件、層、區或元件,抑或可存在一個或多個中間元件、層、區或元件。然而,“直接連接/直接耦合(directly connected/directly coupled)”則是指一個元件與另一個元件直接連接或直接耦合,而不具有中間元件。同時,例如“位於...之間 (between)”、“直接位於...之間(immediately between)”或者“相鄰於...(adjacent to)”及“緊鄰於...(directly adjacent to)”等闡述各個元件之間的關係的其他表達可類似地加以解釋。另外,還應理解,當稱一元件或層“位於”兩個元件或層“之間(between)”時,所述元件或層可為所述兩個元件或層之間的唯一元件或層,抑或也可存在一個或多個中間元件或層。
本文所用術語僅是出於闡述特定實施例的目的而並非旨在限制本發明。除非上下文清楚地另外指明,否則本文所用單數形式“一(a及an)”旨在也包括複數形式。還應理解,當在本說明書中使用用語“包括(comprises、comprising)”、“具有(have、having)”及“包含(includes、including)”時,是指明所陳述特徵、整數、步驟、操作、元件和/或元件的存在,但不排除一個或多個其他特徵、整數、步驟、操作、元件、元件和/或其群組的存在或添加。本文所用用語“和/或”包括相關列出項中的一個或多個項的任意及所有組合。
本文所用用語“實質上(substantially)”、“大約(about)”、“近似地(approximately)”及類似用語用作近似用語、而並非作為程度用語,並且旨在考慮到所屬領域中的一般技術人員將知的測量值或計算值的固有偏差。本文所述“大約”或“近似地”包括所闡述值且意指處於所屬領域中的一般技術人員所確定的特定值的可接受的偏差範圍內,此考慮到所說的測量以及與特定品質的測量相關聯的誤差(即,測量系統的限制)。舉例來說,“大約”可意指處於一個或多個標準差範圍內,或處於所述值的±30%、±20%、±10%、±5%內。另外,在闡述本發明的實 施例時使用“可(may)”是指“本發明的一個或多個實施例”。本文所用用語“使用(use)”、“正使用(using)”及“被使用(used)”可被視為分別與用語“利用(utilize)”、“正利用(utilizing)”及“被利用(utilized)”同義。另外,用語“示例性(exemplary)”旨在指實例或例示。
當某一實施例可被以不同方式實施時,特定工藝次序可與所闡述的次序不同地執行。舉例來說,兩個連續闡述的工藝可實質上同時執行或以與所闡述的次序相反的次序執行。
在本文中參照剖視圖闡述各種實施例,所述剖視圖為實施例和/或中間結構的示意性例示。因此,預期會因例如製造技術和/或容差而導致相對於例示形狀的變化。另外,本文所揭露的具體結構說明或功能說明僅是例示性的,目的在於闡述根據本揭露概念的實施例。因此,本文所揭露的實施例不應被視為僅限於各個區的特定例示形狀,而是應包含由例如製造引起的形狀偏差。舉例來說,被例示為矩形的植入區通常應具有圓形特徵或曲線特徵和/或在其邊緣存在植入濃度的梯度而非從植入區到非植入區為二元變化。同樣地,通過植入而形成的掩埋區可在所述掩埋區與在進行植入時所經過的表面之間的區中引起一些植入。因此,圖式中所例示的區為示意性的且其形狀並非旨在例示裝置的區的實際形狀且並非旨在進行限制。
根據本文所述本發明的實施例的電子裝置或電裝置和/或任何其他相關裝置或元件可使用任何適合的硬體、韌體(例如,應用專用積體電路(application-specific integrated circuit))、軟體、或軟體、韌體、及硬體的組合來實施。舉例來說,可將這些 裝置的各種元件形成在一個積體電路(integrated circuit,IC)晶片上或單獨的積體電路晶片上。此外,可將這些裝置的各種元件實施在柔性印刷電路膜(flexible printed circuit film)、載帶封裝(tape carrier package,TCP)、印刷電路板(printed circuit board,PCB)上、或形成在一個基板上。此外,這些裝置的各種元件可為在一個或多個計算裝置中由一個或多個處理器運行、執行電腦程式指令並與用於執行本文所述各種功能性的其他系統元件進行交互的過程或執行緒(thread)。電腦程式指令儲存在可在使用例如(舉例來說)隨機存取記憶體(random access memory,RAM)等標準記憶體裝置的計算裝置中實施的記憶體中。電腦程式指令也可儲存在例如(舉例來說)壓縮磁碟唯讀記憶體(compact disc read only memory,CD-ROM)、快閃記憶體驅動器(flash drive)或類似元件等其他非暫時性電腦可讀媒體中。另外,所屬領域中的技術人員應知,在不背離本發明示例性實施例的精神及範圍的條件下,可將各種計算裝置的功能性組合或整合成單一的計算裝置,或者可使一特定計算裝置的功能性跨越一個或多個其他計算裝置分佈。
除非另外定義,否則本文所用所有用語(包括技術及科學用語)的含義均與本發明所屬領域中的一般技術人員所通常理解的含義相同。還應理解,用語(例如在常用詞典中所定義的用語)應被解釋為具有與其在相關技術的上下文和/或本說明書中的含義一致的含義,且除非在本文中明確定義,否則不應將其解釋為具有理想化或過於正式的意義。
圖1是根據本揭露實施例的高頻寬記憶體(HBM)系統 的架構的方塊圖。
參照圖1,本揭露的實施例提供一種用於高頻寬記憶體內功能(“記憶體內功能”)(FIM)HBM系統100以及HBM的指令集架構(ISA)擴展的系統。HBM系統100支援將另外的計算資源集成在HBM 110中。舉例來說,在各種實施例中,HBM系統100使得一些資料計算及移動能夠在記憶體內執行,且還提供大容量暫存(high-capacity scratchpad)。HBM系統100包括連接到GPU 170的至少一個HBM 110。在各種實施例中,HBM 110包括DRAM 120(例如,一個或多個DRAM裸晶)及邏輯元件130(例如,邏輯裸晶)。在各種實施例中,邏輯元件130包括控制器140、算數邏輯單位(Arithmetic Logic Unit,ALU)150及靜態隨機存取記憶體(Static Random Access Memory,SRAM)160,且GPU 170包括HBM控制器180以與HBM 110進行介面。
根據各種實施例,控制器140被配置成協調來自GPU 170的指令的執行。所述指令可包括常規指令及FIM指令二者。舉例來說,常規指令(例如,傳統的載入指令及儲存指令,而非高頻寬記憶體內功能指令)由HBM控制器180發送且由控制器140接收並且以傳統方式執行。在其他實例中,控制器140協調記憶體內功能(例如,FIM指令)的執行。舉例來說,控制器140可執行資料移動操作(例如,載入/儲存對指令)。在一些實例中,控制器140可執行原來為多個常規指令的FIM指令。舉例來說,控制器140可協調利用ALU 150的計算FIM指令(例如,原子指令及ALU指令)的執行。在這些情形中,控制器140通過從DRAM 120檢索資料並將資料(及ALU操作)提供到ALU 150進行處理 來協調這些指令的執行。然後將結果儲存在DRAM 120中或者可將結果返回到GPU 170。在一些實例中,FIM指令包括已與載入或儲存指令配成對的一個或多個ALU指令。在另一個實施例中,控制器140還被配置成協調暫存讀取指令及寫入指令的執行。在下文中將詳細討論這些類型的FIM功能中的每一種。
根據各種實施例,ALU 150被配置成用於執行各種計算運算(例如,簡單的計算命令)。舉例來說,ALU 150可為被配置成用於執行算數運算、逐位元運算、移位運算等的32位元ALU。舉例來說,ALU 150可被配置成執行加法(ADD)運算、減法(SUBTRACT)運算、交換(EXCHANGE)運算、最大值(MAX)運算、最小值(MIN)運算、遞增(INCREMENT)運算、遞減(DECREMENT)運算、比較和替換(COMPARE-AND-SWAP)運算、及(AND)運算、或(OR)運算及互斥或(XOR)運算。ALU 150可用於原子運算及非原子運算。在各種實施例中,控制器140提供操作並管理去往ALU 150的資料登錄及從ALU 150到DRAM 120的資料輸出。在其他實施例中,ALU 150能夠直接從DRAM 120檢索資料及將資料直接儲存在DRAM 120中。在其他實施例中,控制器140負責從DRAM 120檢索資料並將資料儲存在DRAM 120中。
根據各種實施例,SRAM 160被配置為低延遲暫存。在一些實施例中,SRAM 160可與DRAM 120共用相同的命令/位址(command/address,CA)介面及資料(Data,DQ)介面,且在其他實施例中,SRAM 160可具有自己的CA介面及DQ介面。在各種實施例中,SRAM 160包括自己的與DRAM 120的位址範圍 不同的位址範圍。控制器140可使用傳入的讀取/寫入指令的位址來判斷所述請求是否是暫存操作。在其他實施例中,GPU 170可將專門指定的暫存指令發送到控制器140。當命令利用SRAM 160時,控制器140可改變其定時參數以根據SRAM 160的定時參數(例如,與DRAM 120定時參數相比更快速/延遲更低)進行操作。SRAM 160的使用可由用戶(例如,程式師)指定,且SRAM 160中的空間可在運行時進行分配。在操作過程中,暫存可以與GPU的1級暫存相似的方式運行(例如,提供低延遲記憶體)。由於GPU的1級暫存通常很小(每個核心為15kB),因此擴展式HBM暫存(例如,SRAM 160)會相對于利用DRAM 120而言實現性能的提高。
根據各種實施例,提供FIM ISA來利用HBM 110中可用的添加資源。舉例來說,FIM ISA可對先前的指令集進行擴展以允許進行包括計算FIM指令(例如,FIM原子指令及FIM ALU指令)、資料移動FIM指令及FIM暫存指令的操作。每一個FIM指令包括將指令標識為FIM指令的FIM指示符、由HBM執行的一個或多個操作以及資料位置(例如,暫存器、記憶體、所提供的常數等)。在一個實施例中,FIM指令可被格式化為:<指示符>.<操作>.<資料位置1><資料位置2>(<designator>.<operation>.<data location 1><data location 2>)。
在各種實施例中,指令可由使用者(例如,程式師)、編譯器或GPU指定為FIM指令。舉例來說,在一些程式設計語言中,使用者可指定操作發生的位置(例如,記憶體內,GPU或中央處理器(CPU))或利用何種記憶體。在另一個實例中,編譯器 可被配置成識別可在HBM 110中進行的命令,並且相對於GPU 170而言優先在HBM 110中進行FIM命令。在另一個實例中,GPU 170可分析來源記憶體位址及目的地記憶體位址以判斷是否有FIM指令可用。在一些情形中,GPU 170可分析記憶體位址並判斷至少一個位址位於GPU快取記憶體或其他非HBM記憶體中,在這些情形中,將執行正常指令(例如,非FIM指令)。
圖2是對來自FIM指令集架構(ISA)的指令進行處理的方塊圖。
根據各種實施例,GPU 170被配置成向HBM 110發送指令(S200)。GPU 170包括HBM控制器180,HBM控制器180處理請求並將請求發送到HBM 110並對任何返回資訊進行處置。在一些實施例中,HBM控制器180還可通過評估FIM指令中的記憶體位址的位置來驗證FIM指令是合適的。舉例來說,當位址位於不同的HBM上或者如果位址中的一者用於GPU 170的快取記憶體、本地快取記憶體時,FIM指令可能不合適。在一些實施例中,對FIM指令進行驗證可在指令被發送到HBM 110之前在較早的GPU流水線階段中完成。舉例來說,在一些實施例中,GPU本地快取記憶體控制器可驗證FIM指令是合適的。HBM 110在邏輯元件130處接收FIM指令(S210)。控制器140對指令進行處理並對執行進行協調。控制器140可驗證指令是FIM指令並確定指令的操作(S220)。舉例來說,控制器140將判斷指令是否是利用ALU 150的計算指令、是否是移動指令或者是否是暫存指令。控制器140接著通過完成指令本身(例如,移動指令)或通過採用必需的邏輯硬體(例如,ALU 150或SRAM 160)來協調指令的執 行(S230)。
根據各種實施例,ISA包括計算指令。在各種實施例中,控制器140接收計算指令並在ALU 150上協調所述計算指令的執行。計算指令可包括FIM原子指令及FIM ALU指令。
根據各種實施例,HBM 110被配置成使用FIM ISA處理FIM原子指令。原子指令通常可被分解成三個步驟:從記憶體位置讀取資料;對資料執行功能(例如,ADD功能、SUBTRACT功能等);並將所得資料寫回某個記憶體位置。在接收到FIM原子指令時,HBM 110可在內部執行所有三個步驟。為完成指令,在一些實施例中,與傳統的原子指令相比,FIM原子指令包括由GPU 170發送到HBM 110的附加資訊。舉例來說,GPU 170可發送FIM原子指令,所述FIM原子指令包括原子運算、資料類型、目的地暫存器、來源暫存器、參考暫存器(例如,用於比較及交換功能(compare-and-swap functions))、記憶體位址及功能類型。
根據各種實施例,控制器140從GPU的HBM控制器180接收FIM原子指令。控制器140讀取指令並使用FIM指示符確定所述指令是FIM指令。控制器140使用所述操作來確定指令是FIM原子指令。除了發信號告知所述功能是FIM原子指令之外,所述操作還指示ALU 150要執行的功能的類型(例如,原子加法(atomic add)、原子比較及交換(atomic compare-and swap);原子或(atomic OR)等)以及正在進行操作的資料類型(例如,32位元帶符號的整數;32位元無符號的整數;等等)。控制器140接著從所提供的資料位置讀取資料,並將資料與功能一起提供到ALU 150。ALU 150對資料執行功能,並將結果儲存在原始資料位 置。
在一個實例中,FIM原子指令的一般格式是:fim.原子.<功能>.<資料類型><目的地暫存器><記憶體位址><來源暫存器或常數><參考暫存器>(fim.atom.<function>.<data type><destination register><memory address><source register or constant><reference register>)。表1包括具有示例性值的一些示例性功能。
Figure 107129831-A0305-02-0017-6
在各種實施例中,FIM指令ISA包括用於FIM ALU指 令的指令。由GPU執行的典型操作可能需要伴隨的載入指令及儲存指令以從記憶體拉出必要的資料並對結果進行放置。在一些實施例中,FIM ALU指令可將傳統功能加上伴隨的載入指令及儲存指令壓縮成單個FIM ALU指令。在一個實例中,FIM ALU指令的一般格式包括FIM指示符、具有ALU操作及成對載入/儲存操作的操作;以及至少一個資料位置。舉例來說,FIM ALU指令可被格式化成:fim.<功能>.<載入/儲存><目的地暫存器><來源暫存器><載入暫存器>(fim.<function>.<load/store><destination register><source register><load register>)。舉例來說,ALU指令可與載入指令和/或儲存指令配成對,如表2中所示:
Figure 107129831-A0305-02-0018-4
在一個實例中,FIM ALU指令的操作類似於FIM原子指令的操作。舉例來說,根據各種實施例,控制器140從GPU的HBM控制器180接收FIM ALU指令。控制器140讀取指令並使用FIM指示符確定指令是FIM指令。控制器140使用所述操作來確定指令是FIM ALU指令以及確定ALU 150要執行的功能的類型(例如,加法、交換、MIN、MAX、OR等)。控制器140接著從所提供的資料位置讀取資料,並將資料與功能一起提供到ALU 150。ALU 150對資料執行功能,並將結果儲存在原始資料位置或所指示的資料位置。
在各種實施例中,HBM 110及FIM ISA被配置成用於FIM移動指令。移動指令可被識別為與對應的儲存指令配對的載入指令。當載入與儲存的位址位於同一HBM內時,所述功能可在記憶體內執行。在各種實施例中,可將成對的載入功能與儲存功能合併成單個FIM移動指令。表3示出示例性載入/儲存指令。
Figure 107129831-A0305-02-0019-5
在接收到FIM移動指令時,控制器140通過FIM指示符而識別出所述指令是FIM指令,且識別出所述操作是移動操作。控制器140接著從來源位址讀取資料並將資料儲存在目的地位址中。在各種實施例中,編譯器可被配置成識別可被凝聚成單個FIM移動指令(如表3中所示)的成對的載入指令與儲存指令。在各種實施例中,GPU 170還可在將指令發送到HBM 110之前對移動指令進行分析並判斷FIM移動指令是否合適。舉例來說,GPU 170(例如,在HBM控制器180處)可分析來源記憶體位址及目的地記憶體位址並判斷這些位址中的一者是否位於GPU快取記憶體中。在此實例中,GPU 170將會將指令分離成正常載入指令及儲存指令。
在各種實施例中,HBM 110及FIM ISA被配置成將SRAM 160用作低延遲暫存。在各種實施例中,控制器140被配置成識別FIM暫存指令。如上所述,SRAM 160包括與DRAM 120的位址範圍不同的特定位址範圍。控制器140被配置成識別請求是對應於DRAM 120記憶體位址還是對應於SRAM 160記憶體位址。在各種實施例中,ISA包括特定暫存命令。舉例來說,ISA可包括FIM讀取暫存命令(例如,FIM.RD_SP)及FIM寫入暫存命令(例如,FIM.WR_SP)。在此實例中,控制器140可不評估傳入命令的記憶體位址。
SRAM 160以比DRAM 120低的延遲運行(例如,比DRAM 120快)。因此,暫存可使HBM 110在資料載入及儲存時間方面為不確定的。在各種實施例中,控制器140被配置成通過在執行DRAM記憶體相關功能時根據DRAM 120的定時參數運行並在SRAM記憶體相關功能(例如,FIM暫存指令)期間根據SRAM 160的定時參數運行來協調指令的執行。因此,當接收到FIM暫存指令時,控制器140可調整其定時參數來對應於SRAM 160的定時參數並執行FIM讀取/寫入暫存命令。
在各種實施例中,用戶對利用SRAM 160作為低延遲暫存的資料結構進行定義。一旦使用者將資料結構定義為使用暫存,編譯器便將請求轉換成包括指定符(例如,彙編中的llsp),且GPU 170將相應地分配HBM 110中的空間。
因此,本揭露的上述實施例提供高頻寬記憶體(HBM)系統及指令集架構(ISA)。
以上是對示例性實施例的例示,而不應被視為對示例性 實施例的限制。儘管已闡述了幾個示例性實施例,但是所屬領域中的技術人員將容易地理解,在不實質上背離示例性實施例的新穎教示及優點的條件下,在示例性實施例中可進行許多修改。因此,所有這些修改均旨在包含在由權利要求書所界定的示例性實施例的範圍內。在權利要求書中,手段加功能條款旨在涵蓋在本文中被闡述為執行所述功能的結構,且不僅涵蓋結構等效形式而且還涵蓋等效結構。因此,應理解,以上是對示例性實施例的例示,而不應被視為僅限於所揭露的具體實施例,且對所揭露的示例性實施例的修改形式以及其他示例性實施例也旨在包含在隨附權利要求書的範圍內。本發明概念是由以上權利要求界定,其中權利要求的等效形式包含在本文中。
100‧‧‧記憶體內功能高頻寬記憶體系統(FIM HBM系統)/高頻寬記憶體系統(HBM系統)
110‧‧‧高頻寬記憶體(HBM)
120‧‧‧動態隨機存取記憶體(DRAM)
130‧‧‧邏輯元件
140‧‧‧控制器
150‧‧‧算數邏輯單位(ALU)
160‧‧‧靜態隨機存取記憶體(SRAM)
170‧‧‧圖形處理單元(GPU)
180‧‧‧HBM控制器

Claims (25)

  1. 一種在高頻寬記憶體系統中處理記憶體內命令的方法,所述方法包括:圖形處理單元的高頻寬記憶體控制器向高頻寬記憶體發送高頻寬記憶體內功能指令,其中所述高頻寬記憶體內功能指令包括操作、將所述高頻寬記憶體內功能指令標識為高頻寬記憶體內功能的高頻寬記憶體內功能指示符、以及所述高頻寬記憶體內功能指令為暫存操作的指示符;在所述高頻寬記憶體的邏輯元件處接收所述高頻寬記憶體內功能指令,其中所述邏輯元件包括:控制器、算數邏輯單位及作為暫存的靜態隨機存取記憶體;以及所述邏輯元件使用所述控制器,以及所述高頻寬記憶體的動態隨機存取記憶體、所述算數邏輯單位、或所述靜態隨機存取記憶體中的至少一者,基於所述高頻寬記憶體內功能指令來協調所述高頻寬記憶體內功能指令的執行,其中所述邏輯元件中的所述控制器被配置成回應於使用所述動態隨機存取記憶體的所述高頻寬記憶體內功能指令根據動態隨機存取記憶體定時參數進行運作,且回應於為使用所述暫存的暫存操作的所述高頻寬記憶體內功能指令根據靜態隨機存取記憶體定時參數進行運作。
  2. 如申請專利範圍第1項所述的方法,其中協調所述高頻寬記憶體內功能指令的執行包括:所述控制器將所述高頻寬記憶體內功能指令識別為計算高頻寬記憶體內功能指令,其中所述計算高頻寬記憶體內功能指令包 括至少一個資料位置;所述控制器根據所述至少一個資料位置從所述高頻寬記憶體的所述動態隨機存取記憶體檢索至少一個資料;所述控制器將所述至少一個資料及所述操作提供到所述算數邏輯單位;所述算數邏輯單位對所述至少一個資料執行所述操作;以及將所述執行的結果儲存在所述動態隨機存取記憶體中。
  3. 如申請專利範圍第2項所述的方法,其中所述操作包括原子運算及資料類型,且其中所述至少一個資料位置包括目的地暫存器、記憶體位址、來源暫存器、常數、或參考暫存器中的至少一者。
  4. 如申請專利範圍第3項所述的方法,其中所述原子運算包括加法功能、減法功能、交換功能、最大值功能、最小值功能、遞增功能、遞減功能、比較和替換功能、及功能、或功能、互斥或功能、或反功能中的至少一者。
  5. 如申請專利範圍第2項所述的方法,其中所述操作包括算數邏輯單位操作及動態隨機存取記憶體存取操作,且其中所述至少一個資料位置包括目的地暫存器及至少一個來源暫存器。
  6. 如申請專利範圍第5項所述的方法,其中所述動態隨機存取記憶體存取操作包括成對載入指令或成對儲存指令。
  7. 如申請專利範圍第1項所述的方法,其中協調所述高頻寬記憶體內功能指令的執行更包括: 所述控制器使用所述操作將所述高頻寬記憶體內功能指令識別為高頻寬記憶體內功能移動指令,其中所述高頻寬記憶體內功能移動指令包括來源暫存器及目的地暫存器;所述控制器根據所述來源暫存器從所述高頻寬記憶體的所述動態隨機存取記憶體檢索至少一個資料;以及所述控制器將在所述動態隨機存取記憶體中的所述至少一個資料儲存在所述目的地暫存器處。
  8. 如申請專利範圍第1項所述的方法,其中協調所述高頻寬記憶體內功能指令的執行更包括:所述控制器使用所述操作將所述高頻寬記憶體內功能指令識別為高頻寬記憶體內功能暫存指令,其中所述高頻寬記憶體內功能暫存指令包括來源暫存器及目的地暫存器中的至少一者;將所述控制器的定時參數從所述動態隨機存取記憶體定時參數調整到所述靜態隨機存取記憶體定時參數;以及所述控制器根據所述靜態隨機存取記憶體定時參數對所述靜態隨機存取記憶體執行所述高頻寬記憶體內功能暫存指令。
  9. 如申請專利範圍第1項所述的方法,其中所述高頻寬記憶體內功能指令包括至少一個資料位置,且所述方法更包括回應於所述至少一個資料位置包括圖形處理單元快取記憶體,所述高頻寬記憶體控制器協調所述高頻寬記憶體內功能指令在所述圖形處理單元上的執行。
  10. 一種高頻寬記憶體,所述高頻寬記憶體包括:動態隨機存取記憶體;以及 邏輯元件,包括:控制器、算數邏輯單位及被配置成暫存的靜態隨機存取記憶體,其中所述邏輯元件被配置成執行指令,以使所述邏輯元件:所述邏輯元件使用所述動態隨機存取記憶體、所述控制器、所述算數邏輯單位、或所述靜態隨機存取記憶體中的至少一者,基於高頻寬記憶體內功能指令來協調所述高頻寬記憶體內功能指令的執行,其中所述高頻寬記憶體內功能指令包括操作、將所述高頻寬記憶體內功能指令標識為高頻寬記憶體內功能的高頻寬記憶體內功能指示符、以及所述高頻寬記憶體內功能指令為暫存操作的指示符,其中所述邏輯元件中的所述控制器被配置成回應於使用所述動態隨機存取記憶體的所述高頻寬記憶體內功能指令根據動態隨機存取記憶體定時參數進行運作,且回應於為使用所述暫存的暫存操作的所述高頻寬記憶體內功能指令根據靜態隨機存取記憶體定時參數進行運作。
  11. 如申請專利範圍第10項所述的高頻寬記憶體,其中協調所述高頻寬記憶體內功能指令的執行更包括:所述控制器將所述高頻寬記憶體內功能指令識別為計算高頻寬記憶體內功能指令,其中所述計算高頻寬記憶體內功能指令包括至少一個資料位置;所述控制器根據所述至少一個資料位置從所述動態隨機存取記憶體檢索至少一個資料;所述控制器將所述至少一個資料及所述操作提供到所述算數邏輯單位; 所述算數邏輯單位對所述至少一個資料執行所述操作;以及將所述執行的結果儲存在所述動態隨機存取記憶體中。
  12. 如申請專利範圍第11項所述的高頻寬記憶體,其中所述操作包括原子運算及資料類型,且其中所述至少一個資料位置包括目的地暫存器、記憶體位址、來源暫存器、常數、或參考暫存器中的至少一者。
  13. 如申請專利範圍第12項所述的高頻寬記憶體,其中所述原子運算包括加法功能、減法功能、交換功能、最大值功能、最小值功能、遞增功能、遞減功能、比較和替換功能、及功能、或功能、互斥或功能、或反功能中的至少一者。
  14. 如申請專利範圍第11項所述的高頻寬記憶體,其中所述操作包括算數邏輯單位操作及動態隨機存取記憶體存取操作,且其中所述至少一個資料位置包括目的地暫存器及至少一個來源暫存器。
  15. 如申請專利範圍第14項所述的高頻寬記憶體,其中所述動態隨機存取記憶體存取操作包括成對載入指令或成對儲存指令。
  16. 如申請專利範圍第10項所述的高頻寬記憶體,其中協調所述高頻寬記憶體內功能指令的執行更包括:所述控制器使用所述操作將所述高頻寬記憶體內功能指令識別為高頻寬記憶體內功能移動指令,其中所述高頻寬記憶體內功能移動指令包括來源暫存器及目的地暫存器; 所述控制器根據所述來源暫存器從所述高頻寬記憶體的所述動態隨機存取記憶體檢索至少一個資料;以及所述控制器將在所述動態隨機存取記憶體中的所述至少一個資料儲存在所述目的地暫存器處。
  17. 如申請專利範圍第10項所述的高頻寬記憶體,其中協調所述高頻寬記憶體內功能指令的執行更包括:所述控制器使用所述操作將所述高頻寬記憶體內功能指令識別為高頻寬記憶體內功能暫存指令,其中所述高頻寬記憶體內功能暫存指令包括來源暫存器及目的地暫存器中的至少一者;將所述控制器的定時參數從所述動態隨機存取記憶體定時參數調整到所述靜態隨機存取記憶體定時參數;以及所述控制器根據所述靜態隨機存取記憶體定時參數對所述靜態隨機存取記憶體執行所述高頻寬記憶體內功能暫存指令。
  18. 一種高頻寬記憶體系統,包括:高頻寬記憶體,包括:動態隨機存取記憶體裸晶,包括動態隨機存取記憶體;以及邏輯裸晶,包括控制器、算數邏輯單位及靜態隨機存取記憶體,其中所述靜態隨機存取記憶體被配置成作為暫存;以及圖形處理單元記憶體控制器,與所述高頻寬記憶體分開,且被配置成向所述控制器發送指令;其中所述控制器被配置成接收所述指令,並回應於所述指令是常規指令將所述指令轉發到所述動態隨機存取記憶體裸晶上的 所述動態隨機存取記憶體,並且在回應於所述指令是高頻寬記憶體內功能指令時協調所述指令的執行,其中所述高頻寬記憶體內功能指令包括操作、將所述高頻寬記憶體內功能指令標識為高頻寬記憶體內功能的高頻寬記憶體內功能指示符、以及所述高頻寬記憶體內功能指令為暫存操作的指示符;以及其中所述指令的執行是使用所述控制器,以及動態隨機存取記憶體、所述算數邏輯單位、或所述靜態隨機存取記憶體中的至少一者來實行,其中所述邏輯裸晶中的所述控制器被配置成回應於使用所述動態隨機存取記憶體的所述高頻寬記憶體內功能指令根據動態隨機存取記憶體定時參數進行運作,且回應於為使用所述暫存的暫存操作的所述高頻寬記憶體內功能指令根據靜態隨機存取記憶體定時參數進行運作。
  19. 如申請專利範圍第18項所述的高頻寬記憶體系統,其中協調所述高頻寬記憶體內功能指令的執行包括:所述控制器將所述高頻寬記憶體內功能指令識別為計算高頻寬記憶體內功能指令,其中所述計算高頻寬記憶體內功能指令包括至少一個資料位置;所述控制器根據所述至少一個資料位置從所述動態隨機存取記憶體檢索至少一個資料;所述控制器將所述至少一個資料及所述操作提供到所述算數邏輯單位;所述算數邏輯單位對所述至少一個資料執行所述操作;以及將所述執行的結果儲存在所述動態隨機存取記憶體中。
  20. 如申請專利範圍第19項所述的高頻寬記憶體系統,其中所述操作包括原子運算及資料類型,且其中所述至少一個資料位置包括目的地暫存器、記憶體位址、來源暫存器、常數、或參考暫存器中的至少一者。
  21. 如申請專利範圍第20項所述的高頻寬記憶體系統,其中所述原子運算包括加法功能、減法功能、交換功能、最大值功能、最小值功能、遞增功能、遞減功能、比較和替換功能、及功能、或功能、互斥或功能、或反功能中的至少一者。
  22. 如申請專利範圍第19項所述的高頻寬記憶體系統,其中所述操作包括算數邏輯單位操作及動態隨機存取記憶體存取操作,且其中所述至少一個資料位置包括目的地暫存器及至少一個來源暫存器。
  23. 如申請專利範圍第22項所述的高頻寬記憶體系統,其中所述動態隨機存取記憶體存取操作包括成對載入指令或成對儲存指令。
  24. 如申請專利範圍第18項所述的高頻寬記憶體系統,其中協調所述高頻寬記憶體內功能指令的執行更包括:所述控制器使用所述操作將所述高頻寬記憶體內功能指令識別為高頻寬記憶體內功能移動指令,其中所述高頻寬記憶體內功能移動指令包括來源暫存器及目的地暫存器;所述控制器根據所述來源暫存器從所述高頻寬記憶體的所述動態隨機存取記憶體檢索至少一個資料; 所述控制器將在所述動態隨機存取記憶體中的所述至少一個資料儲存在所述目的地暫存器處。
  25. 如申請專利範圍第18項所述的高頻寬記憶體系統,其中協調所述高頻寬記憶體內功能指令的執行更包括:所述控制器使用所述操作將所述高頻寬記憶體內功能指令識別為高頻寬記憶體內功能暫存指令,其中所述高頻寬記憶體內功能暫存指令包括來源暫存器及目的地暫存器中的至少一者;將所述控制器的定時參數從所述動態隨機存取記憶體定時參數調整到所述靜態隨機存取記憶體定時參數;以及所述控制器根據所述靜態隨機存取記憶體定時參數對所述靜態隨機存取記憶體執行所述高頻寬記憶體內功能暫存指令。
TW107129831A 2017-10-17 2018-08-27 高頻寬記憶體、高頻寬記憶體系統及其命令處理方法 TWI750406B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762573390P 2017-10-17 2017-10-17
US62/573,390 2017-10-17
US15/854,557 2017-12-26
US15/854,557 US10866900B2 (en) 2017-10-17 2017-12-26 ISA extension for high-bandwidth memory

Publications (2)

Publication Number Publication Date
TW201917567A TW201917567A (zh) 2019-05-01
TWI750406B true TWI750406B (zh) 2021-12-21

Family

ID=66097486

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107129831A TWI750406B (zh) 2017-10-17 2018-08-27 高頻寬記憶體、高頻寬記憶體系統及其命令處理方法

Country Status (5)

Country Link
US (3) US10866900B2 (zh)
JP (1) JP2019075101A (zh)
KR (1) KR102289095B1 (zh)
CN (1) CN109669887A (zh)
TW (1) TWI750406B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220110295A (ko) 2019-12-26 2022-08-05 마이크론 테크놀로지, 인크. 적층 메모리 시스템을 위한 진리표 확장
WO2021133690A1 (en) * 2019-12-26 2021-07-01 Micron Technology, Inc. Host techniques for stacked memory systems
US11635911B2 (en) * 2020-01-07 2023-04-25 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
US11983508B2 (en) 2020-01-07 2024-05-14 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
US11829760B2 (en) * 2020-01-07 2023-11-28 SK Hynix Inc. Processing-in-memory device and processing-in-memory system including the same
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
KR20210093521A (ko) 2020-01-20 2021-07-28 삼성전자주식회사 고대역폭 메모리 및 이를 포함하는 시스템
US11281554B2 (en) * 2020-03-17 2022-03-22 Samsung Electronics Co., Ltd. System and method for in-memory computation
KR20220031793A (ko) 2020-09-03 2022-03-14 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템, 그것을 제어하는 제어기 및 그것의 동작 방법
EP4024222A1 (en) * 2021-01-04 2022-07-06 Imec VZW An integrated circuit with 3d partitioning
CN115469800A (zh) 2021-06-10 2022-12-13 三星电子株式会社 数据处理系统以及用于访问异构存储器系统的方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013881A1 (en) * 1998-10-02 2002-01-31 International Business Machines Corporation Dynamically-tunable memory controller
US20020018513A1 (en) * 1990-05-15 2002-02-14 Dallas Semiconductor Corporation Memory
US20030074649A1 (en) * 2001-10-15 2003-04-17 Poulsen David K. Method and apparatus for an atomic operation in a parallel computing environment
US20060218376A1 (en) * 2005-03-28 2006-09-28 Pechanek Gerald G Methods and apparatus for efficiently sharing memory and processing in a multi-processor
CN103294106A (zh) * 2012-02-24 2013-09-11 富士施乐株式会社 信息处理装置、控制装置以及图像形成装置
US20140040532A1 (en) * 2012-08-06 2014-02-06 Advanced Micro Devices, Inc. Stacked memory device with helper processor
US20150277911A1 (en) * 2014-03-28 2015-10-01 Denis M. Khartikov Instruction and Logic for a Logical Move in an Out-Of-Order Processor
US20170263306A1 (en) * 2016-03-10 2017-09-14 Micron Technology, Inc. Apparatuses and methods for logic/memory devices

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325513A (en) * 1987-02-23 1994-06-28 Kabushiki Kaisha Toshiba Apparatus for selectively accessing different memory types by storing memory correlation information in preprocessing mode and using the information in processing mode
JPH0425961A (ja) * 1990-05-22 1992-01-29 Toshiba Corp 共有データ更新方式
JPH0845269A (ja) 1994-07-27 1996-02-16 Hitachi Ltd 半導体記憶装置
US5953738A (en) * 1997-07-02 1999-09-14 Silicon Aquarius, Inc DRAM with integral SRAM and arithmetic-logic units
US6240498B1 (en) * 1999-01-06 2001-05-29 International Business Machines Corporation Object oriented storage pool apparatus and method
EP1045307B1 (en) 1999-04-16 2006-07-12 Infineon Technologies North America Corp. Dynamic reconfiguration of a micro-controller cache memory
US6430655B1 (en) 2000-01-31 2002-08-06 Mips Technologies, Inc. Scratchpad RAM memory accessible in parallel to a primary cache
GB0519984D0 (en) 2005-09-30 2005-11-09 Texas Instruments Ltd Configuration interface
US9432679B2 (en) 2005-11-01 2016-08-30 Entropic Communications, Llc Data processing system
US8719516B2 (en) 2009-10-21 2014-05-06 Micron Technology, Inc. Memory having internal processors and methods of controlling memory access
US20110131381A1 (en) * 2009-11-27 2011-06-02 Advanced Micro Devices, Inc. Cache scratch-pad and method therefor
US9075764B2 (en) 2010-08-11 2015-07-07 Apple Inc. Multiprocessor system-on-a-chip for machine vision algorithms
JP2013242823A (ja) * 2012-05-23 2013-12-05 Toshiba Corp 情報処理装置、情報処理方法および制御プログラム
US9734079B2 (en) 2013-06-28 2017-08-15 Intel Corporation Hybrid exclusive multi-level memory architecture with memory management
US11074169B2 (en) 2013-07-03 2021-07-27 Micron Technology, Inc. Programmed memory controlled data movement and timing within a main memory device
JP2015064676A (ja) 2013-09-24 2015-04-09 株式会社東芝 情報処理装置、半導体装置、情報処理方法およびプログラム
US9286216B2 (en) * 2014-01-16 2016-03-15 Carnegie Mellon University 3DIC memory chips including computational logic-in-memory for performing accelerated data processing
US9003109B1 (en) * 2014-05-29 2015-04-07 SanDisk Technologies, Inc. System and method for distributed computing in non-volatile memory
US9836277B2 (en) 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
US11080064B2 (en) * 2014-10-28 2021-08-03 International Business Machines Corporation Instructions controlling access to shared registers of a multi-threaded processor
US20160239278A1 (en) * 2015-02-16 2016-08-18 Advanced Micro Devices, Inc. Generating a schedule of instructions based on a processor memory tree
TWI518585B (zh) * 2015-05-18 2016-01-21 國立成功大學 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法
US9698790B2 (en) * 2015-06-26 2017-07-04 Advanced Micro Devices, Inc. Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces
US11079936B2 (en) 2016-03-01 2021-08-03 Samsung Electronics Co., Ltd. 3-D stacked memory with reconfigurable compute logic
US10853904B2 (en) * 2016-03-24 2020-12-01 Advanced Micro Devices, Inc. Hierarchical register file at a graphics processing unit
US10467092B2 (en) 2016-03-30 2019-11-05 Qualcomm Incorporated Providing space-efficient storage for dynamic random access memory (DRAM) cache tags
US10552152B2 (en) * 2016-05-27 2020-02-04 Arm Limited Method and apparatus for scheduling in a non-uniform compute device
US10503641B2 (en) * 2016-05-31 2019-12-10 Advanced Micro Devices, Inc. Cache coherence for processing in memory
EP3306479A1 (en) * 2016-10-06 2018-04-11 Stichting IMEC Nederland Memory structure comprising scratchpad memory
US10325344B2 (en) * 2017-04-17 2019-06-18 Intel Corporation Efficient merging of atomic operations at computing devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020018513A1 (en) * 1990-05-15 2002-02-14 Dallas Semiconductor Corporation Memory
US20020013881A1 (en) * 1998-10-02 2002-01-31 International Business Machines Corporation Dynamically-tunable memory controller
US20030074649A1 (en) * 2001-10-15 2003-04-17 Poulsen David K. Method and apparatus for an atomic operation in a parallel computing environment
US20060218376A1 (en) * 2005-03-28 2006-09-28 Pechanek Gerald G Methods and apparatus for efficiently sharing memory and processing in a multi-processor
CN103294106A (zh) * 2012-02-24 2013-09-11 富士施乐株式会社 信息处理装置、控制装置以及图像形成装置
US20140040532A1 (en) * 2012-08-06 2014-02-06 Advanced Micro Devices, Inc. Stacked memory device with helper processor
US20150277911A1 (en) * 2014-03-28 2015-10-01 Denis M. Khartikov Instruction and Logic for a Logical Move in an Out-Of-Order Processor
US20170263306A1 (en) * 2016-03-10 2017-09-14 Micron Technology, Inc. Apparatuses and methods for logic/memory devices

Also Published As

Publication number Publication date
US20210096999A1 (en) 2021-04-01
TW201917567A (zh) 2019-05-01
KR102289095B1 (ko) 2021-08-12
KR20190043072A (ko) 2019-04-25
JP2019075101A (ja) 2019-05-16
US20190114265A1 (en) 2019-04-18
US11940922B2 (en) 2024-03-26
US20230119291A1 (en) 2023-04-20
US10866900B2 (en) 2020-12-15
US11556476B2 (en) 2023-01-17
CN109669887A (zh) 2019-04-23

Similar Documents

Publication Publication Date Title
TWI750406B (zh) 高頻寬記憶體、高頻寬記憶體系統及其命令處理方法
US9256915B2 (en) Graphics processing unit buffer management
US20160283111A1 (en) Read operations in memory devices
JP6137582B2 (ja) 電子デバイス、メモリコントローラ、装置
US20170024138A1 (en) Memory management
US8935475B2 (en) Cache management for memory operations
US11810618B2 (en) Extended memory communication
US10055346B2 (en) Polarity based data transfer function for volatile memory
US20150161037A1 (en) Fast cache flush
US9437172B2 (en) High-speed low-power access to register files
US20220206685A1 (en) Reusing remote registers in processing in memory
US20150154124A1 (en) Secure data partition in nonvolatile memory systems
US9240250B2 (en) Apparatus and method to reduce power delivery noise for partial writes
US20160246721A1 (en) Role based cache coherence bus traffic control
US20170168829A1 (en) Processor, computing system comprising the same and method for driving the processor
US20180246724A1 (en) Separate tracking of pending loads and stores
US20230185718A1 (en) De-prioritizing speculative code lines in on-chip caches