TWI746852B - 高頻寬記憶系統 - Google Patents
高頻寬記憶系統 Download PDFInfo
- Publication number
- TWI746852B TWI746852B TW107117592A TW107117592A TWI746852B TW I746852 B TWI746852 B TW I746852B TW 107117592 A TW107117592 A TW 107117592A TW 107117592 A TW107117592 A TW 107117592A TW I746852 B TWI746852 B TW I746852B
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- memory
- host device
- bandwidth
- bandwidth memory
- Prior art date
Links
Images
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- 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/0661—Format or protocol conversion arrangements
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1615—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- 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/0673—Single storage device
- G06F3/068—Hybrid storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System (AREA)
- Bus Control (AREA)
- Dram (AREA)
- Information Transfer Systems (AREA)
Abstract
本發明提供一種高頻寬記憶(HBM)系統,包含高頻寬
記憶裝置和邏輯電路。邏輯電路從主機裝置接收第一命令且將接收到的第一命令轉換成通過第二介面發送到高頻寬記憶裝置的記憶體內處理(PIM)命令。從主機裝置接收到第一命令時與高頻寬記憶系統準備好從主機裝置接收另一命令時之間的時間是確定性的。邏輯電路還從主機裝置接收第四命令和第五命令。第五命令請求時間估計資訊,所述時間估計資訊和接收到第五命令時與高頻寬記憶系統準備好從主機裝置接收另一命令時之間的時間相關。時間估計資訊包含確定性時間段和非確定性時間段的估計時間段。
Description
本專利申請主張在2017年9月14日提出申請的美國臨時專利申請第62/558,726號的優先權、在2017年9月14日提出申請的臨時專利申請第62/558,732號的優先權以及在2017年9月14日提出申請的臨時專利申請第62/558,741號的優先權,所述各臨時專利申請的公開內容全文併入本申請供參考。
本文所公開的主題大體來說涉及高頻寬記憶(HBM)系統,且更具體來說,涉及一種能夠在記憶體操作中進行確定的處理及不確定的處理以與主機裝置介面的系統及協定。
新興應用(比如,深度神經網路)使用大規模的計算及儲存能力來對不同的資料集進行訓練並以高的準確性進行學習。此外,隨著應用(比如,高性能計算(high-performance computing,HPC)、圖形演算法等)變為資料及計算密集型的,能量效率及低延遲成為關鍵特性。記憶體內處理(processing in memory,PIM)
能夠通過在動態隨機存取記憶體(dynamic random access memory,DRAM)邏輯裸晶上排程複雜的操作來解決這些挑戰,從而以較低功率技術進程提供額外的計算能力,且還更靠近資料所在的位置。
一示例性實施例提供一種高頻寬記憶(HBM)系統,所述高頻寬記憶系統可以包含高頻寬記憶裝置和邏輯電路。邏輯電路可以包含能夠耦合到主機裝置的第一介面和耦合到高頻寬記憶裝置的第二介面。邏輯電路能夠接收來自主機裝置的第一命令且將接收到的第一命令轉換成記憶體內處理(PIM)命令,其中記憶體內處理命令可通過第二介面發送到高頻寬記憶裝置。從主機裝置接收到第一命令的時刻與高頻寬記憶系統準備好從主機裝置接收另一命令的時刻之間的時間可能是確定性的。第一命令可以用於高頻寬記憶裝置中的單個位址上的記憶體內處理操作或高頻寬記憶裝置中同一行中的多個位址上的記憶體內處理操作。邏輯電路可以進一步接收來自主機裝置的用於高頻寬記憶裝置中同一通道中的一個或多個記憶體庫內的記憶體內處理操作的第二命令,且從主機裝置接收到第二命令的時刻與高頻寬記憶系統準備好從主機裝置接收另一命令的時刻之間的時間可能是確定性的。
另一示例性實施例提供一種高頻寬記憶(HBM)系統,所述高頻寬記憶系統可以包含高頻寬記憶裝置和邏輯電路。邏輯電路可以包含能夠耦合到主機裝置的第一介面和耦合到高頻寬記
憶裝置的第二介面。邏輯電路能夠接收來自主機裝置的一個或多個命令且將每個接收到的命令轉換成至少一個對應記憶體內處理(PIM)命令,其中每個記憶體內處理命令可以通過第二介面發送到高頻寬記憶裝置。邏輯電路還能夠接收來自主機裝置的用於高頻寬記憶裝置中的記憶體內處理操作的第一命令和在第一命令之後來自主機裝置的第二命令,其中第二命令可請求第一時間估計資訊,所述第一時間估計資訊和從主機裝置接收到第二命令的時刻與高頻寬記憶系統準備好從主機裝置接收另一命令的時刻之間的時間相關,其中第一時間估計資訊包含確定性時間段和非確定性時間段。在一個實施例中,非確定性時間段包括估計時間段。邏輯電路還可以接收來自主機裝置的用於高頻寬記憶裝置中的記憶體內處理操作的第三命令和在第三命令之後來自主機裝置的第四命令,其中第四命令可請求第二時間估計資訊,所述第二時間估計資訊和從主機裝置接收到第三命令的時刻與高頻寬記憶系統準備好從主機裝置接收另一命令的時刻之間的時間相關,其中第二時間估計資訊可以包含確定性時間段和基於信用的時間段。邏輯電路還可以接收來自主機裝置的用於高頻寬記憶裝置中的記憶體內處理操作的第五命令和在第五命令之後來自主機裝置的第六命令,其中第六命令可請求第三時間估計資訊,所述第三時間估計資訊和從主機裝置接收到第六命令的時刻與高頻寬記憶系統準備好從主機裝置接收另一命令的時刻之間的時間相關,其中第三時間估計資訊可包含確定性時間段和重試時間段。
100:高頻寬記憶體內處理系統
101:主機處理裝置/主機裝置
102:中介層
103:高頻寬記憶體內處理堆疊/堆疊
104:邏輯裸晶/高頻寬記憶體內處理裝置
105a、105b、105c、105d:高頻寬記憶體內處理記憶裝置
106:基板
107:端子
108:命令/位址匯流排
109:資料匯流排
110:事務匯流排
111:高頻寬記憶體內處理內部匯流排
200、400、500、600、700、800、900、1000:時序型圖
201、202、203、204、205、206、207、401、402、403、404、405、406、407、408、409、501、502、503、504、505、506、507、508、509、510、511、601、602、603、604、605、606、607、608、609、610、611、612、613、701、702、703、704、705、706、707、708、709、710、711、712、713、801、802、803、804、805、806、807、808、809、810、811、812、813、901、902、903、904、905、906、907、908、909、910、911、912、913、1001、1002、1003、1004、1005、1006、1007、1008、1009、1010、1011、1012、1013:操作
300:PIM_CMD命令
301:ID欄位
302:操作欄位
303:步幅欄位
304:旗標欄位
305:範圍欄位
306:值欄位
307:數目欄位
308:來源位址1欄位
309:來源位址2欄位
310:目的位址1欄位
311:目的位址2欄位
520、530:路徑/並行路徑
620:路徑/並行路徑/第一並行路徑
630:路徑/第二並行路徑
720:第一並行路徑
730:第二並行路徑
ACT、ACT1、ACT2:啟動命令
OP:記憶體內處理操作/記憶體內處理命令/記憶體內處理
PIM_CMD、PIM_WR、PIM_CHRG、DST_WR、PIM_RD:命令
PIM_EST、PIM_CRED、PIM_FDBK:回應
PRE、PRE1、PRE2:預充電命令
RD、RD1:讀取命令
RD_Data、RD_DATA:讀取資料
RD_RDY:讀取就緒命令
RSP_E:事務誤差信號
RSP_R:事務回應信號
SRC_RD:來源讀取命令
tBL/2:突發長度延遲/延遲/突發延遲
tIOP、tRC、tRL、tRRD、tRTW:延遲
tPD:傳播延時/傳播延時延遲/時間延遲
tPIM_CRED:整數個信用值
tPIM_EST:時間估計值
tPIM_FDBK:信息
tPIM_WR:時序/時間
tRCD:啟動延遲/延遲
tRP:預充電延遲/延遲
tWL:延遲/寫入時間延遲/時間延時
tWR:恢復時間延遲/延遲
WR、WR2:寫入命令
WR_Data:寫入資料
在以下部分中,將參照各圖中所示的示例性實施例來闡述本文所公開的主題的各個方面,在各圖中:圖1繪示根據本文所公開主題的高頻寬記憶體內處理(HBM+)系統的示例性實施例的一部分的剖視圖。
圖2繪示根據本文所公開主題的示例性一步式高頻寬記憶體內處理協議命令的概括時序型圖。
圖3繪示根據本文所公開主題的PIM_CMD命令的內容的示例性配置方式。
圖4繪示根據本文所公開主題的示例性一步式高頻寬記憶體內處理協議命令的概括時序型圖。
圖5繪示根據本文所公開主題的示例性一步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖,其中記憶體內處理操作是針對單個位址進行或者針對高頻寬記憶體內處理裝置中的同一行進行。
圖6繪示根據本文所公開主題的示例性一步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖,其中記憶體內處理操作在同一通道中的各記憶體庫內進行。
圖7繪示根據本文所公開主題的示例性一步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖,其中記憶體內處理操作在不同的通道中進行。
圖8繪示根據本文所公開主題的示例性兩步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖,其中高頻寬記憶體內處理堆疊提供關於記憶體內處理命令將何時完成的時間估計。
圖9繪示根據本文所公開主題的示例性兩步式高頻寬記憶體
內處理協議記憶體內處理命令的時序型圖,其中高頻寬記憶體內處理堆疊提供關於記憶體內處理命令將何時完成的基於信用值的指示(credit-based indication)。
圖10繪示根據本文所公開主題的示例性兩步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖,其中高頻寬記憶體內處理堆疊提供關於記憶體內處理命令將何時完成的基於回饋的指示。
在以下詳細說明中,闡述許多具體細節來提供對公開內容的透徹理解。然而,所屬領域中的技術人員應理解,無需這些具體細節也可實踐所公開的各個方面。在其他情形中,未詳細闡述眾所周知的方法、流程、元件及電路,以免使本文所公開的主題模糊不清。
本說明書通篇中所提及的“一個實施例(one embodiment)”或“實施例(an embodiment)”意指結合所述實施例所闡述的特定特徵、結構或特性可包括于本文所公開的至少一個實施例中。因此,在本說明書通篇中各處出現的短語“在一個實施例中(in one embodiment)”或“在實施例中(in an embodiment)”或者“根據一個實施例(according to one embodiment)”(或具有相似含義的其他短語)可能未必皆指同一實施例。此外,在一個或多個實施例中,特定特徵、結構或特性可採用任何合適的方式進行組合。就此而言,本文所用的詞“示例性(exemplary)”意指“用作實例、例子或例示”。本文被闡
述為“示例性”的任何實施例不應被視為與其他實施例相比必定是優選的或有利的。另外,根據本文中的論述的上下文而定,單數用語可包括對應的複數形式且複數用語可包括對應的單數形式。還應注意,本文中所示及所論述的各個圖(包括元件圖)僅是出於例示目的,而並非按比例繪示。相似地,示出各種波形及時序圖僅是用於例示目的。舉例來說,為清晰起見,可相對於其他元件誇大元件中的一些元件的尺寸。另外,在適當情況下,在各個圖中重複使用參考編號來指示對應的元件和/或類似元件。
本文所用術語僅是用於闡述特定示例性實施例的目的,而非旨在限制所主張的主題。除非上下文另外清楚地指明,否則本文所用單數形式“一(a、an)”及“所述(the)”旨在也包括複數形式。還應理解,當在本說明書中使用用語“包括(comprises和/或comprising)”時,是指明所陳述特徵、整數、步驟、操作、元件和/或元件的存在,但不排除一個或多個其他特徵、整數、步驟、操作、元件、元件和/或其群組的存在或添加。本文所用用語“第一(first)”、“第二(second)”等被用作位於所述用語後面的名詞的標籤,且除非明確定義,否則所述用語並不隱含著任何類型的排序(例如,空間、時間、邏輯等)。此外,在兩個或更多個圖中可使用相同的參考編號來指代具有相同或相似的功能的部件、元件、區塊、電路、單元或模組。然而,這種用法僅是為了使例示簡潔且易於論述起見;所述用法並不隱含著這種元件或單元的構造細節或架構細節在所有實施例中是相同的或者這些通常提及的部件/模組是實施本文中所公開特定實施例的教示內容的唯一方式。
除非另外定義,否則本文所用所有用語(包括技術及科學用語)的意義均與本主題所屬領域中的一般技術人員所通常理解的意義相同。還應理解,用語(例如在常用詞典中所定義的用語)應被解釋為具有與其在相關技術的上下文中的含義一致的含義,且除非在本文中明確定義,否則不應將其解釋為具有理想化或過於正式的意義。
本文所公開主題涉及一種用於高頻寬記憶體內處理(high bandwidth PIM,HBM+)系統的准同步介面協定。也就是說,本文所公開主題在高頻寬記憶體內處理系統與主機裝置之間提供一種包括確定的延遲及不確定的延遲兩種延遲的介面;由此,提供准同步介面協定。通過本文所公開的准同步協議進行的通信可與一個或多個時脈信號同步,但與特定操作(例如記憶體內處理操作)的完成相關聯的特定延遲可具有確定的延遲或不確定的延遲。可提供確定的延遲的記憶體內處理操作可使用一步式高頻寬記憶體內處理協議實行,而可提供不確定的延遲的記憶體內處理操作可使用兩步式高頻寬記憶體內處理協定實行。
圖1繪示根據本文所公開主題的高頻寬記憶體內處理系統100的示例性實施例的一部分的剖視圖。高頻寬記憶體內處理系統100可包括主機處理裝置(主機裝置)101、中介層(interposer)102及高頻寬記憶體內處理堆疊103。高頻寬記憶體內處理堆疊103可包括邏輯電路或裸晶104以及排列在邏輯裸晶104的頂表面上的多個高頻寬記憶體內處理記憶裝置105a到105d。主機裝置101及高頻寬記憶體內處理堆疊103可被固定到中介層102的頂表面。
在一個實施例中,主機裝置101可為但不限於中央處理器(central processing unit,CPU)、圖形處理單元(graphics processing unit,GPU)、圖形加速器(graphics accelerator)或現場可程式設計閘陣列(Field Programmable Gate Array,FPGA)。
高頻寬記憶體內處理記憶裝置105a到105d可被劃分成兩個通道,其中每個通道可存在16個記憶體庫。高頻寬記憶體內處理記憶裝置105a到105d中的一者或多者還可包括記憶體內處理功能及有規律的資料儲存功能,例如傳統的讀取及寫入操作。高頻寬記憶體內處理記憶裝置105a到105d可比主機裝置101更高效地提供在高頻寬記憶體內處理記憶裝置中提供的記憶體內處理功能。邏輯裸晶104可包括用於控制高頻寬記憶體內處理記憶裝置105a到105d中的記憶體內功能的邏輯功能。高頻寬記憶體內處理內部匯流排111將邏輯裸晶104連接到高頻寬記憶體內處理記憶裝置105a到105d中的每一者。高頻寬記憶體內處理內部匯流排111可包括多條位址線、多條命令線、多條資料線和/或一條或多條其他信號線。應理解,儘管在高頻寬記憶體內處理堆疊103中示出僅四個高頻寬記憶體內處理記憶裝置105a到105d,然而任何數目的高頻寬記憶體內處理記憶裝置105a到105d均可形成高頻寬記憶體內處理堆疊103。另外,即使在圖1中繪示了高頻寬記憶體內處理系統100的僅一部分,然而應理解,可存在可貼合到中介層102的頂表面的額外的高頻寬記憶體內處理堆疊103。
中介層102可固定到基板106的頂表面。基板106可包括端子107,端子107可用來提供與其他裝置(圖中未示出)的電連接。除了為主機裝置101及高頻寬記憶體內處理堆疊103提供
結構基礎之外,中介層102還在主機裝置101與高頻寬記憶體內處理堆疊103之間提供電連接。在一個實施例中,中介層102可包括電耦合在主機裝置與高頻寬記憶體內處理堆疊103之間的命令/位址(command/address,CA)匯流排108、資料匯流排109及事務匯流排110。應理解,中介層102可包括圖中未示出的另外的電連接。
命令/位址匯流排108、資料匯流排109、及事務匯流排110中的每一者可包括多條線和/或多個位元。在一個實施例中,事務匯流排110可包含事務響應信號RSP_R及事務誤差信號RSP_E。命令/位址匯流排108、資料匯流排109及事務匯流排110可採用同步型方式在高頻寬記憶體內處理系統100內運行。也就是說,命令/位址匯流排108、資料匯流排109及事務匯流排110與一個或多個時脈信號同步運行。
在一個實施例中,對於其中命令或事務的發出與回應的輸出之間的時間(無論是基於有規律的資料儲存功能和/或記憶體內處理功能)或者高頻寬記憶體內處理堆疊103對另一個命令或事務作好準備的時刻是確定的情形,高頻寬記憶體內處理系統100可包括用於在主機裝置101與高頻寬記憶體內處理堆疊103之間傳送命令及資料的一步式高頻寬記憶體內處理協議。對於其中命令或事務的發出與回應的輸出之間的時間(無論是基於有規律的資料儲存功能和/或記憶體內處理功能)或者高頻寬記憶體內處理堆疊103對另一個命令或事務做好準備的時刻是不確定的情形,高頻寬記憶體內處理系統100還可包括用於在主機裝置101與高頻寬記憶體內處理堆疊103之間傳送命令及資料的兩步式高頻寬
記憶體內處理協議。本文所用用語“准同步介面”意指供確定的通信及不確定的通信兩者或事務通過的介面。
一步式高頻寬記憶體內處理協定一般旨在用於其中主機裝置101不等待結果的相對有規律的資料儲存及簡單記憶體內處理操作。也就是說,命令的發出與回應的輸出之間的時間或延遲是確定的,使得主機裝置101可在命令的發出與回應的輸出之間臨時執行其他操作。作為另外一種選擇,主機裝置101可被排程成在確定的延遲結束時恢復有規律的事務。典型地,簡單記憶體內處理操作包括一個或兩個來源位址和/或目的位址,且不包括步幅參數(stride parameter)。
兩步式高頻寬記憶體內處理協定一般旨在用於其中主機裝置101可等待結果的更複雜的記憶體內處理操作,例如但不限於許多來源位址和/或目的位址、矩陣操作、包括步幅的操作。命令的發出與回應的輸出之間的時間或延遲是不確定的,使得主機裝置101可在命令的發出與回應的輸出之間或者在命令的發出與高頻寬記憶體內處理堆疊103準備好接收另一命令或事務的時刻之間臨時執行其他操作。表2闡述了一些示例性高頻寬記憶體內處理記憶體內處理命令類別及時序估計。
圖2繪示根據本文所公開主題的示例性一步式高頻寬記憶體內處理協議命令的概括時序型圖200。應理解,時序型圖200並非按比例繪示且僅旨在繪示示例性記憶體內處理命令的一步式高頻寬記憶體內處理協定的相對順序。時序型圖200包括與不同的匯流排相關聯的箭頭以大體表示特定匯流排的單向性質或雙向性質。具體來說,從左指向右的箭頭表示從主機裝置101發送到
高頻寬記憶體內處理堆疊103的通信、事務或信號,而從右指向左的箭頭表示從高頻寬記憶體內處理堆疊103發送到主機裝置101的通信、事務或信號。在本文所公開的所有時序型圖中,被表示為通過高頻寬記憶體內處理內部匯流排111發生的事務及操作對位於高頻寬記憶體內處理堆疊103外部的裝置而言是不可見的。
在圖2中的201處,主機裝置101通過命令/位址匯流排108發出PIM_CHRG命令。PIM_CHRG命令包括將要發出的PIM_CMD的記憶體庫及通道身份資訊。回應於PIM_CHRG命令,邏輯裸晶104對一個或多個所選擇通道中的相關記憶體庫進行預充電,並鎖定所述一個或多個所選擇通道中的相關記憶體庫以保證相關記憶體庫對主機裝置101以及即將到來的PIM_CMD命令的所有權。緊接在PIM_CHRG命令之後,主機裝置101通過命令/位址匯流排108在202處發出PIM_WR命令。表1闡述了PIM_CHRG命令及PIM_WR命令的示例性實體信號參數。
在表1中,在頂部示出基於當前的電子器件工程聯合委員會(Joint Electron Device Engineering Council,JEDEC)標準的
示例性引腳標識。“H”表示高邏輯電壓電平,且“L”表示低邏輯電壓電平。“X”表示“不用理會(do not care)”邏輯電壓電平。
圖3繪示根據本文所公開主題的PIM_CMD命令300的內容的示例性配置方式。PIM_CMD含有實際記憶體內處理命令,且是通過資料匯流排109發送而非通過命令/位址匯流排108發送。邏輯裸晶104對PIM_CMD進行解碼並在高頻寬記憶體內處理堆疊103內部發出命令以完成PIM_CMD命令中所含有的記憶體內處理操作。在一個實施例中,儘管並非所有記憶體內處理命令均可使用PIM_CMD的所有欄位,然而PIM_CMD具有固定大小或長度。
如圖3中所繪示的示例性配置方式中所示,PIM_CMD命令300可包括ID欄位301、操作欄位302、步幅欄位303、旗標欄位304、範圍欄位305、值欄位306、數目欄位307、來源位址1欄位308、來源位址2欄位309、目的位址1欄位310及目的位址2欄位311。在一個實施例中,ID欄位301可包括三個位元,且操作欄位302可包括三個位元。步幅欄位303可包括16個位元。旗標欄位304可包括兩個位元,且範圍欄位305可包括32個位元。值欄位306可包括64個位元。數目欄位307可包括八個位元。來源位址1欄位308可包括32個位元,且來源位址2欄位309可包括32個位元。目的位址1欄位310可包括32個位元,且目的位址2欄位311可包括32個位元。也可能存在其他的和/或額外的欄位、欄位配置方式和/或欄位大小。
返回圖2,在202處通過命令/位址匯流排108發送的
PIM_WR命令用於在203處通過資料匯流排109發送PIM_CMD。在一個實施例中,在資料匯流排109上出現PIM_CMD命令可緊接在在命令/位址匯流排108上出現PIM_WR命令之後。在另一個實施例中,在資料匯流排109上出現PIM_CMD命令可與在命令/位址匯流排108上出現PIM_WR命令至少局部地同時發生。
響應於PIM_CMD,此概括說明中的邏輯裸晶104通過高頻寬記憶體內處理內部匯流排111在204處發送來源讀取命令SRC_RD以讀取將作為PIM_CMD中所包含記憶體內處理操作的來源的資料。對此實例來說,在205處執行記憶體內處理操作OP。在206處使用邏輯裸晶104已發送的DST_WR命令將記憶體內處理操作的結果寫入到目的位址。在207處,記憶體內處理操作已完成,且高頻寬記憶體內處理堆疊103準備好從主機裝置101接收另外的有規律的操作、記憶體內處理操作和/或其他事務。
圖2中所繪示的一步式高頻寬記憶體內處理協議的時序是確定的;因此,在202處發出PIM_WR命令的時刻與高頻寬記憶體內處理堆疊103準備好從主機裝置101接收另一命令和/或事務(即,恢復有規律的事務)的時刻之間的時間在圖2中被表示為tPIM_WR。也就是說,時序tPIM_WR可被視為在可由主機裝置101向高頻寬記憶體內處理堆疊103中的同一通道/記憶體庫發出新命令或事務之前的最小時間。為表示一步式高頻寬記憶體內處理協議的時序的確定性性質,圖2中所表示的各個命令、事務及回應之間的箭頭被示出為實線箭頭。圖5至圖7分別繪示多個不同的確定性時序情景的時序型圖。
圖4繪示根據本文所公開主題的示例性一步式高頻寬記
憶體內處理協議命令的概括時序型圖400。應理解,時序型圖400並非按比例繪示且僅旨在繪示示例性記憶體內處理命令的兩步式高頻寬記憶體內處理協定的相對順序。與圖2所示時序型圖200相似,時序型圖400包括與不同的匯流排相關聯的箭頭以大體表示特定匯流排的單向性質或雙向性質。
在圖4中,主機裝置101通過命令/位址匯流排108發出PIM_CHRG命令,此在圖4中出於空間考慮而未示出。如同一步式高頻寬記憶體內處理協議一樣,PIM_CHRG命令包括不久將要發出的PIM_CMD的記憶體庫及通道身份資訊。回應於PIM_CHRG命令,邏輯裸晶104對一個或多個所選擇通道中的相關記憶體庫進行預充電,並鎖定整個高頻寬記憶體內處理堆疊103以保證堆疊103對主機裝置101的所有權。緊接在PIM_CHRG命令(同樣未示出)之後,在401處主機裝置101通過命令/位址匯流排108發出PIM_WR命令。在402處,主機裝置101在資料匯流排109上發出PIM_CMD。
響應於PIM_CMD,邏輯裸晶104通過高頻寬記憶體內處理內部匯流排111在403處發送來源讀取命令SRC_RD以讀取PIM_CMD中所表示的操作的來來源資料。在404處執行記憶體內處理操作OP。在405處使用DST_WR命令將記憶體內處理操作的結果寫入到目的位址。對於圖4中所繪示的示例性時序來說,在406處,邏輯裸晶104通過事務匯流排110向主機裝置101發送讀取就緒命令RD_RDY。在407處,主機裝置101通過命令/位址匯流排108發送讀取命令RD。在408處,邏輯裸晶104通過資料匯流排109輸出讀取資料RD_DATA,且在409處,主機裝置
101可產生有規律的操作及事務。對於一些兩步式高頻寬記憶體內處理協議記憶體內處理命令來說,邏輯裸晶104不向主機裝置101發送讀取就緒命令RD_RDY,而是向主機裝置101發送關於記憶體內處理操作何時可完成的指示以使主機裝置101可臨時對其他操作進行排程。結合圖8至圖10闡述發送這種指示的邏輯裸晶104的一些示例性情景。
與一步式高頻寬記憶體內處理協議相比,兩步式高頻寬記憶體內處理協議具有不確定的時序特性,這是由於記憶體內處理操作OP對兩步式高頻寬記憶體內處理協議而言一般更複雜且可根據記憶體內處理操作而花費不確定的時間量。舉例來說,將對100 x 100矩陣執行的矩陣轉置記憶體內處理操作可比對10 x 10矩陣進行的相同的矩陣轉置記憶體內處理操作花費更長時間,即使記憶體內處理轉置操作在這兩種情形中是相同的操作。為表示與兩步式高頻寬記憶體內處理操作相關聯的時序一般是不確定的,圖4中在命令與回應之間表示的箭頭中的一些箭頭被示出為粗的虛線箭頭。舉例來說,401處的PIM_WR命令與406處的RD_RDY回應之間的箭頭以及406處的RD_RDY回應與407處的RD命令之間的箭頭被示出為粗的虛線箭頭以表示兩步式高頻寬記憶體內處理協議的不確定的性質。所述不確定的性質還由404處的記憶體內處理OP與405處的DST_WR回應之間的粗的虛線箭頭表示。
從主機裝置101的角度來看,一步式高頻寬記憶體內處理協定的確定性性質可被視為提供基於主機的命令排程協定。舉例來說,圖5繪示根據本文所公開主題的示例性一步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖500,其中記憶體內處理操作是針對單個位址進行或者針對高頻寬記憶體內處理裝置中的同一行進行。應理解,時序型圖500並非按比例繪示且僅旨在繪示針對單個位址進行或者針對高頻寬記憶體內處理裝置中的同一行進行的示例性記憶體內處理操作的一步式高頻寬記憶體內處理協定的相對順序。
在501處,主機裝置101通過命令/位址匯流排108發出PIM_CHRG命令。PIM_CHRG命令包括不久將要發出的PIM_CMD的記憶體庫及通道身份資訊。回應於PIM_CHRG命令,邏輯裸晶
104對一個或多個所選擇通道中的相關記憶體庫進行預充電,並鎖定所述一個或多個所選擇通道中的相關記憶體庫以保證在記憶體內處理操作期間對主機裝置101的所有權。緊接在PIM_CHRG命令之後,主機裝置101通過命令/位址匯流排108在502處發出PIM_WR命令。在503處,主機裝置101通過資料匯流排109發送PIM_CMD。在此實例中,將PIM_CMD視為使高頻寬記憶體內處理裝置104中的記憶體位置中的值遞增的命令。PIM_WR命令與PIM_CMD命令之間的時間延時是tWL,即,在發送PIM_WR命令與發送PIM_CMD命令之間必須等待的寫入時間延遲。對雙倍資料速率(double data rate,DDR)高頻寬記憶裝置而言,PIM_CMD命令花費突發長度延遲tBL/2。
邏輯裸晶104對PIM_CMD進行解碼並通過高頻寬記憶體內處理內部匯流排111在504處向高頻寬記憶體內處理堆疊103發出ACT命令將存在傳播延時tPD。所選擇行的啟動延遲是tRCD。在505處,邏輯裸晶104發出讀取命令RD來載入所選擇的來來源資料。沿路徑520讀取所選擇資料的延遲是tRL。在506處,以延遲tBL/2來讀取所選擇的來來源資料。在507處,以延遲tIOP來執行記憶體內處理操作OP(IOP)。在此實例中,記憶體內處理操作OP是對位於高頻寬記憶體內處理裝置104中的記憶位置中的值進行遞增,這是相對不複雜的記憶體內處理操作。
在圖5中由530表示的並行路徑中,由於將在507處在記憶體內處理命令OP結束時將資料回寫到記憶體,因此邏輯裸晶104在延遲tRTW之後在508處發出寫入命令WR。與寫入命令WR相關聯的延遲是tWL。在一個實施例中,邏輯裸晶104在508處確
定恰當的時間來發送寫入命令WR,以使時序是正確的,從而在509處寫入所得資料。
在509處,回應於寫入命令WR,以突發長度延遲tBL/2將記憶體內處理操作OP的結果回寫到記憶體。在將結果回寫到記憶體之後的恢復時間延遲是tWR。在510處,邏輯裸晶104針對已被寫入所述結果的行發出預充電命令PRE,且接著在主機裝置101可在511處向高頻寬記憶體內處理堆疊103發出另一事務和/或另一些命令之前出現預充電延遲tRP。
因此,對其中記憶體內處理操作是針對單個位址進行或者針對高頻寬記憶體內處理裝置中的同一行進行的這一情景而言,在502處發出PIM_WR命令的時刻與在511處高頻寬記憶體內處理堆疊103準備好從主機裝置101接收另一命令和/或事務的時刻之間的時間tPIM_WR被確定為t PIM_WR =t WL +t BL/2+t PD +t RCD +max((t RL +t BL/2+t IOP ),(t RTW +t WL ))+t BL/2+t WR +t RP ,其中使用圖5中路徑520與路徑530之間的最大延遲來定義tPIM_WR。路徑520的延遲是(t RL +t BL/2+t IOP ),而路徑530的延遲是(t RTW +t WL )。
在圖6中繪示了也可被視為提供基於主機的命令排程協定的另一種一步式高頻寬記憶體內處理協議情景。具體來說,圖6繪示根據本文所公開主題的示例性一步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖600,其中記憶體內處理操作在同一通道中的記憶體庫內進行。應理解,時序型圖600並非按比例繪示且僅旨在繪示針對同一通道中的記憶體庫進行的示例性記憶體內處理操作的一步式高頻寬記憶體內處理協定的相對順序。
在601處,主機裝置101通過命令/位址匯流排108發出
PIM_CHRG命令。PIM_CHRG命令包括不久將要發出的PIM_CMD的記憶體庫及通道身份資訊。回應於PIM_CHRG命令,邏輯裸晶104對一個或多個所選擇通道中的相關記憶體庫進行預充電,並鎖定所述一個或多個所選擇通道中的相關記憶體庫以保證在記憶體內處理操作期間對主機裝置101的所有權。緊接在PIM_CHRG命令之後,主機裝置101通過命令/位址匯流排108在602處發出PIM_WR命令。在603處,主機裝置101通過資料匯流排109發送PIM_CMD。在此實例中,將PIM_CMD視為將記憶位置B設定成與記憶位置A相等的命令,其中位置A及位置B處於高頻寬記憶體內處理裝置104中同一通道中的記憶體庫內。PIM_WR命令與PIM_CMD命令之間的寫入時間延遲是tWL。對雙倍資料速率高頻寬記憶裝置而言,PIM_CMD命令花費突發延遲tBL/2。
響應於603處的PIM_CMD,邏輯裸晶104在604處通過高頻寬記憶體內處理內部匯流排111向高頻寬記憶體內處理堆疊103發送啟動命令ACT1以啟動第一來來源資料位址(即,位置A)。邏輯裸晶104對PIM_CMD進行解碼且接著在604處發出ACT1命令的傳播延時延遲是tPD。
在第一並行路徑620中,邏輯裸晶104在605處發出啟動命令ACT2以啟動第二來來源資料位址(即,位置B)。發出ACT1命令與發出ACT2命令之間的延遲是tRRD或tRC。如果記憶體內處理操作是在兩個不同的記憶體庫之間進行,則延遲(一般來說)將為tRRD。(應注意,如果來源位址與目的位址位於處於同一記憶體庫群組內的兩個不同的記憶體庫之間,則延遲將為tRRDL;然而,如果來源位址與目的位址位於處於不同的記憶體庫群組中的兩個
不同的記憶體庫中,則延遲將為tRRDF。)如果記憶體內處理操作處於同一記憶體庫內,則延遲將為tRC。在此並行路徑620中,在邏輯裸晶104在606處發出寫入命令WR2之前也存在延遲tRCD,且在寫入命令WR2之後將存在延遲tWL。
在第二並行路徑630中,響應於啟動命令ACT1,邏輯裸晶104在607處發出讀取命令RD1。在啟動命令ACT1之後及在讀取命令RD1之前存在延遲tRCD。在發出讀取命令RD1的時間與608的讀取資料RD_Data操作之間存在延遲tRL。在608處以突發長度延遲tBL/2來讀取資料。在609處,以延遲tIOP來執行記憶體內處理操作OP。
為寫入從記憶體內處理操作OP得到的資料,在邏輯裸晶104的讀取命令RD1之後到在610處發出預充電命令PRE1之間存在延遲tRTW-tRCD。在611處,回應於寫入命令WR2,以延遲tBL/2將記憶體內處理操作OP的結果回寫到記憶體。在將結果回寫到記憶體之後的恢復時間延遲是tWR。在612處,邏輯裸晶104針對已被寫入所述結果的行發出預充電命令PRE2以進行恢復,且接著在主機裝置101可在613處向高頻寬記憶體內處理堆疊103發出另一些事務和/或另一些命令之前出現延遲tRP。
因此,對其中記憶體內處理操作是針對同一通道中的記憶體庫進行的這一情景而言,在602處發出PIM_WR命令的時刻與在613處高頻寬記憶體內處理堆疊103準備好從主機裝置101接收另一命令的時刻之間的時間tPIM_WR被確定為t PIM_WR =t WL +t BL/2+t PD +max((t RCD +t RL +t BL/2+t IOP ),(t RRD +t RCD +t WL ))+t BL/2+t WL +t RP ,其中使用圖6中路徑620與路徑630之間的最大延遲來定義
tPIM_WR。路徑620的延遲是(t RCD +t BL/2+t IOP ),而路徑630的延遲是(t RRD +t RCD +t WL )。
在圖7中繪示了也可被視為提供基於主機的命令排程協定的再一種一步式高頻寬記憶體內處理協議情景。具體來說,圖7繪示根據本文所公開主題的示例性一步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖700,其中記憶體內處理操作在不同的通道中進行。應理解,時序型圖700並非按比例繪示且僅旨在繪示在不同的通道中進行的示例性記憶體內處理操作的一步式高頻寬記憶體內處理協定的相對順序。
在701處,主機裝置101通過命令/位址匯流排108發出PIM_CHRG命令。PIM_CHRG命令包括不久將要發出的PIM_CMD的記憶體庫及通道身份資訊。回應於PIM_CHRG命令,邏輯裸晶104對一個或多個所選擇通道中的相關記憶體庫進行預充電,並鎖定所述一個或多個所選擇通道中的相關記憶體庫以保證相關記憶體庫在記憶體內處理操作期間對主機裝置101的所有權。緊接在PIM_CHRG命令之後,主機裝置101通過命令/位址匯流排108在702處發出PIM_WR命令。主機裝置101在703處通過資料匯流排109發送PIM_CMD。PIM_WR命令與PIM_CMD命令之間的時間延遲是tWL,即,在發送PIM_WR命令與發送PIM_CMD命令之間必須等待的時間。對雙倍資料速率高頻寬記憶裝置而言,PIM_CMD命令具有突發長度延遲tBL/2。
響應於703處的PIM_CMD,邏輯裸晶104在704處通過高頻寬記憶體內處理內部匯流排111向高頻寬記憶體內處理堆疊103發送啟動命令ACT1。邏輯裸晶104對PIM_CMD進行解碼
且接著在704處發出ACT1命令的時間延遲是tPD。在延遲tRCD後,邏輯裸晶104在705處發出讀取命令RD1。在第一並行路徑720中,在以突發長度延遲tBL/2在706處讀取資料RD_Data之前,存在延遲tRL。在707處以延遲tIOP來執行記憶體內處理操作OP。為寫入從記憶體內處理操作OP得到的資料,在邏輯裸晶104在705處的讀取命令RD1之後到在708處發出預充電命令PRE1之間存在延遲tRTW-tRCD。
在第二並行路徑730中,邏輯裸晶104在709處發出啟動命令ACT2。在其中記憶體內處理操作是在不同的通道中進行的情形中,就邏輯裸晶104何時發出啟動命令ACT2而言不存在限制條件。在邏輯裸晶104在710處發出寫入命令WR2之前存在延遲tRCD。在發出寫入命令WR2的時間直到在711處已寫入資料WR_Data之間存在延遲tWL。在711處以突發長度延遲tBL/2來寫入資料。在邏輯裸晶104在712處針對已被寫入所述結果的行發出預充電命令PRE2以進行恢復之前存在延遲tWR,且接著在主機裝置101可在713處向高頻寬記憶體內處理堆疊103發出另一事務和/或另一些命令之前出現延遲tRP。
因此,對其中記憶體內處理操作是在不同的通道中進行的這一情景而言,在702處發出PIM_WR命令的時刻與在713處高頻寬記憶體內處理堆疊103準備好從主機裝置101接收另一命令的時刻之間的時間tPIM_WR被確定為t PIM_WR =t WL +t BL/2+t PD +t RCD +t RL +t BL/2+t IOP +t BL/2+t WR +t RP 。
圖8至圖10繪示示例性兩步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖,其中記憶體內處理操作比圖5
至圖7中所考慮的一步式高頻寬記憶體內處理協議命令更複雜,且因此,所述記憶體內處理操作的完成具有總體不確定的時序。因此,一些兩步式高頻寬記憶體內處理協議記憶體內處理命令可被視為提供基於客戶機的命令排程協定,且高頻寬記憶體內處理堆疊可提供關於記憶體內處理命令何時可完成的指示,以考慮到一些兩步式高頻寬記憶體內處理協議記憶體內處理命令的不確定性性質。就此來說,邏輯裸晶104可向主機裝置101提供關於複雜的記憶體內處理命令的完成時間的指示。
在一個實施例中,關於有效時間的指示可包括時間估計。在另一個實施例中,關於有效時間的指示可包括基於信用值的值。在再一個實施例中,關於有效時間的指示可包括基於重試的回饋(retry-based feedback),其中主機裝置101被給予關於何時輪詢高頻寬記憶體內處理堆疊以查看記憶體內處理操作是否已完成的指示。被提供到主機裝置101的關於記憶體內處理命令的完成時間的指示可基於以下或者可從以下來預測(但並非僅限於以下):自動日誌的內容、歷史統計資訊、所計算估計值、正在進行的訊務和/或記憶體內處理操作的最大邊界。
應注意,在以下圖8至圖10的時序型圖中繪示的兩步式高頻寬記憶體內處理協定記憶體內處理命令不使用圖1中所繪示的事務匯流排110。而是,圖8至圖10中所繪示的兩步式高頻寬記憶體內處理協議記憶體內處理命令利用命令/位址匯流排108、資料匯流排109及高頻寬記憶體內處理內部匯流排111來向主機裝置101提供關於記憶體內處理命令完成所需的有效時間的指示。
圖8繪示根據本文所公開主題的示例性兩步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖800,其中高頻寬記憶體內處理堆疊103提供關於記憶體內處理命令將何時完成的時間估計。應理解,時序型圖800並非按比例繪示且僅旨在繪示在高頻寬記憶體內處理堆疊提供關於示例性記憶體內處理操作將何時完成的時間估計時兩步式高頻寬記憶體內處理協定的相對順序。
在801處,主機裝置101通過命令/位址匯流排108發出PIM_CHRG命令。PIM_CHRG命令包括不久將要發出的PIM_CMD的記憶體庫及通道身份資訊。回應於PIM_CHRG命令,邏輯裸晶104對一個或多個所選擇通道中的相關記憶體庫進行預充電,並鎖定高頻寬記憶體內處理堆疊103以保證高頻寬記憶體內處理堆疊在記憶體內處理操作期間對主機裝置101的所有權。緊接在PIM_CHRG命令之後,主機裝置101通過命令/位址匯流排108在802處發出PIM_WR命令。主機裝置101在803處通過資料匯流排109發送PIM_CMD。PIM_WR命令與PIM_CMD命令之間的時間延遲是tWL。對雙倍資料速率高頻寬記憶裝置而言,PIM_CMD命令花費突發長度延遲tBL/2。
回應於803處的PIM_CMD,邏輯裸晶104在804處通過高頻寬記憶體內處理內部匯流排111向高頻寬記憶體內處理堆疊103發送啟動命令ACT。邏輯裸晶104對PIM_CMD進行解碼且接著在804處發出ACT命令的時間延遲是tPD。在延遲tRCD後,邏輯裸晶104在805處發出讀取命令RD。在以突發長度延遲tBL/2在806處讀取資料RD_Data之前,存在延遲tRL。以延遲tIOP在807
處執行記憶體內處理操作OP;然而,由於記憶體內處理操作OP是複雜的,因此與記憶體內處理操作OP相關聯的延遲是不確定的。
邏輯裸晶104還在805處發出讀取命令RD之後經過延遲tRTW後、但在807處已完成記憶體內處理操作OP之前,在808處發出寫入命令WR。記憶體內處理操作OP的結果在發出寫入命令WR之後經過延遲tWL後在809處被寫入到記憶體。在810處,邏輯裸晶104發出具有延遲tWR的預充電命令PRE。接著在811處在主機裝置101可向高頻寬記憶體內處理堆疊103發出另一事務和/或另一些命令之前出現延遲tRP。
儘管在時序型圖800中所繪示的事務中許多事務可為確定性的,然而整個事務的總體時序是不確定的。為考慮到在807處的記憶體內處理操作OP的不確定的延遲,主機裝置101在812處通過命令/位址匯流排108發出PIM_RD命令。在邏輯裸晶104以PIM_EST回應在813處作出回應之前將存在延遲tRL。在此實施例中,PIM_EST回應可包括指示807處的記憶體內處理操作OP將完成的時間的時間估計值。在一個實施例中,時間估計值可以時間為單位。在另一個實施例中,時間估計值可以時脈循環為單位。
因此,在802處發出PIM_WR命令的時刻與在811處高頻寬記憶體內處理堆疊103準備好從主機裝置101接收另一命令的時刻之間的有效時間tPIM_WR(effective)被確定為t PIM_WR(effective) =t PIM_WR +t PIM_EST ,其中t PIM_WR 表示記憶體內處理操作的完成時間的確定性部分,且t PIM_EST 表示記憶體內處理操作的完成時間
的不確定性部分的時間估計值。圖9繪示根據本文所公開主題的示例性兩步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖900,其中高頻寬記憶體內處理堆疊103提供關於記憶體內處理命令將何時完成的基於信用值的指示。應理解,時序型圖900並非按比例繪示且僅旨在繪示在高頻寬記憶體內處理堆疊提供關於示例性記憶體內處理操作將何時完成的基於信用值的指示時兩步式高頻寬記憶體內處理協定的相對順序。
在901處,主機裝置101通過命令/位址匯流排108發出PIM_CHRG命令。PIM_CHRG命令包括不久將要發出的PIM_CMD的記憶體庫及通道身份資訊。回應於PIM_CHRG命令,邏輯裸晶104對一個或多個所選擇通道中的相關記憶體庫進行預充電,並鎖定高頻寬記憶體內處理堆疊103以保證高頻寬記憶體內處理堆疊在記憶體內處理操作期間對主機裝置101的所有權。緊接在PIM_CHRG命令之後,主機裝置101通過命令/位址匯流排108在902處發出PIM_WR命令。主機裝置101在903處通過資料匯流排109發送PIM_CMD。PIM_WR命令與PIM_CMD命令之間的時間延遲是tWL。對雙倍資料速率高頻寬記憶裝置而言,PIM_CMD命令花費突發長度延遲tBL/2。
回應於903處的PIM_CMD,邏輯裸晶104在904處通過高頻寬記憶體內處理內部匯流排111向高頻寬記憶體內處理堆疊103發送啟動命令ACT。邏輯裸晶104對PIM_CMD進行解碼且接著在904處發出ACT命令的時間延遲是tPD。在延遲tRCD後,邏輯裸晶104在905處發出讀取命令RD。在以突發長度延遲tBL/2在906處讀取資料RD_Data之前,存在延遲tRL。以延遲tIOP在907
處執行記憶體內處理操作OP;然而,由於記憶體內處理操作OP是複雜的,因此與記憶體內處理操作OP相關聯的延遲是不確定的。
邏輯裸晶104還在905處發出讀取命令RD之後經過延遲tRTW後、但在907處已完成記憶體內處理操作OP之前,在908處發出寫入命令WR。記憶體內處理操作OP的結果在發出寫入命令WR之後經過延遲tWL後在909處被寫入到記憶體。在910處,邏輯裸晶104發出具有延遲tWR的預充電命令PRE。接著在911處在主機裝置101可向高頻寬記憶體內處理堆疊103發出另一事務和/或另一些命令之前出現延遲tRP。
即使在時序型圖900中所繪示的事務中許多事務可為確定性的,整個事務的總體時序也是不確定的。為考慮到在907處的記憶體內處理操作OP的不確定的延遲,主機裝置101在912處通過命令/位址匯流排108發出PIM_RD命令。在邏輯裸晶104以PIM_CRED回應在913處作出回應之前將存在延遲tRL。在此實施例中,PIM_CRED回應可包括與可被主機裝置101用作節流機制(throttling mechanism)的信用值的數目有關的資訊。舉例來說,如果PIM_CRED回應指示主機裝置101具有大於零的整數個信用值,則主機裝置101可繼續向高頻寬記憶體內處理堆疊103發出命令和/或事務直到主機裝置101沒有任何信用值留下為止。
因此,在902處發出PIM_WR命令的時刻與在911處高頻寬記憶體內處理堆疊103準備好從主機裝置101接收另一命令的時刻之間的有效時間tPIM_WR(effective)被確定為t PIM_WR(effective) =t PIM_WR +t PIM_CRED ,其中t PIM_WR 表示記憶體內處理操作的
完成時間的確定性部分,且t PIM_CRED 表示大於零的整數個信用值,主機裝置101可繼續向高頻寬記憶體內處理堆疊103發出命令和/或事務直到主機裝置101沒有任何信用值留下為止。
圖10繪示根據本文所公開主題的示例性兩步式高頻寬記憶體內處理協議記憶體內處理命令的時序型圖1000,其中高頻寬記憶體內處理堆疊103提供關於記憶體內處理命令將何時完成的基於回饋的指示。應理解,時序型圖1000並非按比例繪示且僅旨在繪示在高頻寬記憶體內處理堆疊提供關於記憶體內處理操作將何時完成的基於回饋的指示時兩步式高頻寬記憶體內處理協定的相對順序。
在1001處,主機裝置101通過命令/位址匯流排108發出PIM_CHRG命令。PIM_CHRG命令包括不久將要發出的PIM_CMD的記憶體庫及通道身份資訊。回應於PIM_CHRG命令,邏輯裸晶104對一個或多個所選擇通道中的相關記憶體庫進行預充電,並鎖定高頻寬記憶體內處理堆疊103以保證高頻寬記憶體內處理堆疊在記憶體內處理操作期間對主機裝置101的所有權。緊接在PIM_CHRG命令之後,主機裝置101通過命令/位址匯流排108在1002處發出PIM_WR命令。主機裝置101在1003處通過資料匯流排109發送PIM_CMD。PIM_WR命令與PIM_CMD命令之間的時間延遲是tWL。對雙倍資料速率高頻寬記憶裝置而言,PIM_CMD命令花費突發長度延遲tBL/2。
回應於1003處的PIM_CMD,邏輯裸晶104在1004處通過高頻寬記憶體內處理內部匯流排111向高頻寬記憶體內處理堆疊103發送啟動命令ACT。邏輯裸晶104對PIM_CMD進行解
碼且接著在1004處發出ACT命令的時間延遲是tPD。在延遲tRCD後,邏輯裸晶104在1005處發出讀取命令RD。在以突發長度延遲tBL/2在1006處讀取資料RD_Data之前,存在延遲tRL。以延遲tIOP在1007處執行記憶體內處理操作OP;然而,由於記憶體內處理操作OP是複雜的,因此與記憶體內處理操作OP相關聯的延遲是不確定的。
邏輯裸晶104還在1005處發出讀取命令RD之後經過延遲tRTW後、但在1007處已完成記憶體內處理操作OP之前,在1008處發出寫入命令WR。記憶體內處理操作OP的結果在發出寫入命令WR之後經過延遲tWL後在1009處被寫入到記憶體。在1010處,邏輯裸晶104發出具有延遲tWR的預充電命令PRE。接著在1011處在主機裝置101可向高頻寬記憶體內處理堆疊103發出另一事務和/或另一些命令之前出現延遲tRP。
在時序型圖1000中所繪示的事務中許多事務可為確定性的,然而整個事務的總體時序是不確定的。為考慮到在1007處的記憶體內處理操作OP的不確定的延遲,主機裝置101在1012處通過命令/位址匯流排108發出PIM_RD命令。在邏輯裸晶104以PIM_FDBK回應在1013處作出回應之前將存在延遲tRL。在此實施例中,PIM_FDBK回應可包括與在主機裝置101輪詢高頻寬記憶體內處理堆疊103以判斷記憶體內處理操作是否已完成之前的時間段有關的資訊。主機裝置101可在返回對高頻寬記憶體內處理堆疊103進行輪詢之前使用回饋資訊進行排程及執行其他操作。
因此,在1002處發出PIM_WR命令的時刻與在1011
處高頻寬記憶體內處理堆疊103準備好從主機裝置101接收另一命令的時刻之間的有效時間tPIM_WR(effective)被確定為t PIM_WR(effective) =t PIM_WR +t PIM_FBDBK ,其中t PIM_WR 表示記憶體內處理操作的完成時間的確定性部分,且t PIM_FDBK 表示與在主機裝置101輪詢高頻寬記憶體內處理堆疊103以判斷記憶體內處理操作是否已完成之前的時間段有關的資訊。
如所屬領域中的技術人員將認識到,可在各種各樣的應用中對本文所述創新概念進行修改及變化。因此,所主張主題的範圍不應僅限於以上所論述的任何具體示例性教示內容,而是由以上權利要求書來界定。
100:高頻寬記憶體內處理系統
101:主機處理裝置/主機裝置
102:中介層
103:高頻寬記憶體內處理堆疊/堆疊
104:邏輯裸晶/高頻寬記憶體內處理裝置
105a、105b、105c、105d:高頻寬記憶體內處理記憶裝置
106:基板
107:端子
108:命令/位址匯流排
109:資料匯流排
110:事務匯流排
111:高頻寬記憶體內處理內部匯流排
Claims (20)
- 一種高頻寬記憶系統,包括:高頻寬記憶裝置,包括記憶體內處理功能以服務記憶體內處理操作;以及邏輯電路,包括能夠耦合到主機裝置的第一介面和通過內部匯流排耦合到所述高頻寬記憶裝置的第二介面,所述第一介面包括命令及位址匯流排、以及資料匯流排,所述邏輯電路能夠通過所述第一介面的所述命令及位址匯流排從所述主機裝置接收第一命令且通過所述資料匯流排從所述主機裝置接收第二命令,所述邏輯電路將所接收到的第二命令轉換成用於記憶體內處理操作的記憶體內處理命令,所述記憶體內處理命令通過所述第二介面發送到所述高頻寬記憶裝置,所述邏輯電路在所述內部匯流排上發出具有與所述記憶體內處理操作重疊時序的至少一命令,使得用於所述記憶體內處理操作的內部匯流排命令與所述記憶體內處理命令的執行是重疊的,其中在所述高頻寬記憶系統從所述主機裝置接收到所述第一命令與準備好從所述主機裝置接收另一命令之間的延遲是確定性的。
- 如申請專利範圍第1項所述的高頻寬記憶系統,其中所述第二命令是用於所述高頻寬記憶裝置中的單個位址上的記憶體內處理操作或所述高頻寬記憶裝置中同一行中的多個位址上的記憶體內處理操作。
- 如申請專利範圍第2項所述的高頻寬記憶系統,其中接收來自所述主機裝置的所述第二命令是用於所述高頻寬記憶裝置中同一通道中的一個或多個記憶體庫內的記憶體內處理操作,從所述主機裝置接收到所述第二命令與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令之間的延遲是確定性的。
- 如申請專利範圍第1項所述的高頻寬記憶系統,其中接收來自所述主機裝置的所述第二命令是用於跨所述高頻寬記憶裝置中不同記憶體庫的記憶體內處理操作,從所述主機裝置接收到所述第二命令與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令之間的延遲是確定性的。
- 如申請專利範圍第1項所述的高頻寬記憶系統,其中所述邏輯電路更通過所述命令及位址匯流排接收來自所述主機裝置的第三命令且通過所述資料匯流排接收第四命令,以用於所述高頻寬記憶裝置中的記憶體內處理操作,來自所述主機裝置的所述第四命令是在所述第三命令之後,所述第四命令請求第一估計資訊,所述第一估計資訊和從所述主機裝置接收到所述第四命令與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令之間的延遲相關,所述第一估計資訊包含確定性部分和估計部分。
- 如申請專利範圍第1項所述的高頻寬記憶系統,其中所述邏輯電路更通過所述命令及位址匯流排接收來自所述主機裝置的第三命令且通過所述資料匯流排接收第四命令,以用於所述高頻寬記憶裝置中的記憶體內處理操作,來自所述主機裝置的所述 第四命令是在所述第三命令之後,所述第四命令請求估計資訊,所述估計資訊和從所述主機裝置接收到所述第四命令與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令之間的延遲相關,所述估計資訊包含確定性部分和基於信用部分。
- 如申請專利範圍第1項所述的高頻寬記憶系統,其中所述邏輯電路更通過所述命令及位址匯流排接收來自所述主機裝置的第三命令且通過所述資料匯流排接收第四命令,以用於所述高頻寬記憶裝置中的記憶體內處理操作,來自所述主機裝置的所述第四命令是在所述第三命令之後,所述第四命令請求估計資訊,所述估計資訊和從所述主機裝置接收到所述第四命令與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令之間的延遲相關,所述估計資訊包含確定性部分和重試部分。
- 如申請專利範圍第1項所述的高頻寬記憶系統,其中所述第二命令是用於所述高頻寬記憶裝置中同一通道中的一個或多個記憶體庫內的記憶體內處理操作。
- 如申請專利範圍第1項所述的高頻寬記憶系統,其中所述第二命令是用於跨所述高頻寬記憶裝置中不同記憶體庫的記憶體內處理操作。
- 如申請專利範圍第1項所述的高頻寬記憶系統,其中具有並行時序路徑的所述第二命令包含讀取命令及寫入命令。
- 一種高頻寬記憶系統,包括:高頻寬記憶裝置;以及 邏輯電路,包括能夠耦合到主機裝置的第一介面和耦合到所述高頻寬記憶裝置的第二介面,所述邏輯電路能夠從所述主機裝置接收一個或多個命令且將每個接收到的命令轉換成至少一個對應記憶體內處理命令,每一記憶體內處理命令通過所述第二介面發送到所述高頻寬記憶裝置,所述邏輯電路還能夠接收來自所述主機裝置的用於所述高頻寬記憶裝置中的記憶體內處理操作的第一命令和在所述第一命令之後來自所述主機裝置的第二命令,所述第二命令請求第一時間估計資訊,所述第一時間估計資訊和從所述主機裝置接收到所述第二命令的時刻與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令的時刻之間的時間相關,所述第一時間估計資訊包含確定性時間段和非確定性時間段。
- 如申請專利範圍第11項所述的高頻寬記憶系統,其中所述非確定性時間段包括估計時間段。
- 如申請專利範圍第11項所述的高頻寬記憶系統,其中所述邏輯電路還接收來自所述主機裝置的用於所述高頻寬記憶裝置中的記憶體內處理操作的第三命令和在所述第三命令之後來自所述主機裝置的第四命令,所述第四命令請求第二時間估計資訊,所述第二時間估計資訊和從所述主機裝置接收到所述第三命令的時刻與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令的時刻之間的時間相關,所述第二時間估計資訊包含確定性時間段和基於信用的時間段。
- 如申請專利範圍第13項所述的高頻寬記憶系統,其中所述邏輯電路更接收來自所述主機裝置的用於所述高頻寬記憶裝置中的記憶體內處理操作的第五命令和在所述第五命令之後來自所述主機裝置的第六命令,所述第六命令請求第三時間估計資訊,所述第三時間估計資訊和從所述主機裝置接收到所述第六命令的時刻與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令的時刻之間的時間相關,所述第三時間估計資訊包含確定性時間段和重試時間段。
- 如申請專利範圍第14項所述的高頻寬記憶系統,其中所述邏輯電路更接收來自所述主機裝置的用於所述高頻寬記憶裝置中的記憶體內處理操作的第七命令,從所述主機裝置接收到所述第七命令的時刻與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令的時刻之間的時間是確定性的。
- 如申請專利範圍第15項所述的高頻寬記憶系統,其中所述第七命令是用於所述高頻寬記憶裝置中的單個位址上的記憶體內處理操作或所述高頻寬記憶裝置中同一行中的多個位址上的記憶體內處理操作。
- 如申請專利範圍第16項所述的高頻寬記憶系統,其中所述邏輯電路更接收來自所述主機裝置的用於所述高頻寬記憶裝置中同一通道中的一個或多個記憶體庫內的記憶體內處理操作的第八命令,從所述主機裝置接收到所述第八命令的時刻與所述高 頻寬記憶系統準備好從所述主機裝置接收另一命令的時刻之間的時間是確定性的。
- 如申請專利範圍第17項所述的高頻寬記憶系統,其中所述邏輯電路更接收來自所述主機裝置的用於跨所述高頻寬記憶裝置中不同記憶體庫的記憶體內處理操作的第九命令,從所述主機裝置接收到所述第九命令的時刻與所述高頻寬記憶系統準備好從所述主機裝置接收另一命令的時刻之間的時間是確定性的。
- 如申請專利範圍第11項所述的高頻寬記憶系統,其中所述非確定性時間段包括基於信用的時間段。
- 如申請專利範圍第11項所述的高頻寬記憶系統,其中所述非確定性時間段包括重試時間段。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762558732P | 2017-09-14 | 2017-09-14 | |
US201762558741P | 2017-09-14 | 2017-09-14 | |
US201762558726P | 2017-09-14 | 2017-09-14 | |
US62/558,726 | 2017-09-14 | ||
US62/558,741 | 2017-09-14 | ||
US62/558,732 | 2017-09-14 | ||
US15/821,686 | 2017-11-22 | ||
US15/821,686 US10908820B2 (en) | 2017-09-14 | 2017-11-22 | Host-based and client-based command scheduling in large bandwidth memory systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201915732A TW201915732A (zh) | 2019-04-16 |
TWI746852B true TWI746852B (zh) | 2021-11-21 |
Family
ID=65631048
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107117592A TWI746852B (zh) | 2017-09-14 | 2018-05-23 | 高頻寬記憶系統 |
TW107117775A TWI761520B (zh) | 2017-09-14 | 2018-05-24 | 高頻寬記憶系統 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107117775A TWI761520B (zh) | 2017-09-14 | 2018-05-24 | 高頻寬記憶系統 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10592121B2 (zh) |
JP (2) | JP6941082B2 (zh) |
KR (2) | KR102651892B1 (zh) |
CN (2) | CN109508306B (zh) |
TW (2) | TWI746852B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9997232B2 (en) * | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
FR3075444B1 (fr) * | 2017-12-19 | 2020-07-24 | Commissariat Energie Atomique | Systeme comportant une memoire adaptee a mettre en oeuvre des operations de calcul |
CA3117889A1 (en) | 2018-11-15 | 2020-05-22 | Quantum-Si Incorporated | Methods and compositions for protein sequencing |
DE102020105628A1 (de) | 2019-03-11 | 2020-09-17 | Samsung Electronics Co., Ltd. | Verfahren zur Durchführung interner Verarbeitungsvorgänge mit vordefinierter Protokollschnittstelle einer Speichervorrichtung |
KR20200129843A (ko) * | 2019-05-10 | 2020-11-18 | 에스케이하이닉스 주식회사 | 연산 회로를 포함하는 메모리 장치, 이를 제어하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
US10841645B1 (en) | 2019-12-09 | 2020-11-17 | Western Digital Technologies, Inc. | Storage system and method for video frame segregation to optimize storage |
US11086804B2 (en) * | 2019-12-09 | 2021-08-10 | Western Digital Technologies, Inc. | Storage system and method for reducing read-retry duration |
WO2021133690A1 (en) | 2019-12-26 | 2021-07-01 | Micron Technology, Inc. | Host techniques for stacked memory systems |
KR20220110295A (ko) | 2019-12-26 | 2022-08-05 | 마이크론 테크놀로지, 인크. | 적층 메모리 시스템을 위한 진리표 확장 |
US11422887B2 (en) * | 2019-12-26 | 2022-08-23 | Micron Technology, Inc. | Techniques for non-deterministic operation of a stacked memory system |
US11526435B2 (en) | 2020-02-04 | 2022-12-13 | Western Digital Technologies, Inc. | Storage system and method for automatic data phasing |
US11562018B2 (en) | 2020-02-04 | 2023-01-24 | Western Digital Technologies, Inc. | Storage system and method for optimized surveillance search |
US11328511B2 (en) | 2020-03-13 | 2022-05-10 | Western Digital Technologies, Inc. | Storage system and method for improved playback analysis |
KR20220067961A (ko) * | 2020-11-18 | 2022-05-25 | 삼성전자주식회사 | 프로세싱-인-메모리 및 프로세싱-인-메모리를 이용한 인스트럭션 출력 방법 |
US11893278B2 (en) | 2021-02-08 | 2024-02-06 | Samsung Electronics Co., Ltd. | Memory controller and memory control method for generating commands based on a memory request |
US11934698B2 (en) * | 2021-12-20 | 2024-03-19 | Advanced Micro Devices, Inc. | Process isolation for a processor-in-memory (“PIM”) device |
US11934827B2 (en) | 2021-12-20 | 2024-03-19 | Advanced Micro Devices, Inc. | Partition and isolation of a processing-in-memory (PIM) device |
US20230393930A1 (en) * | 2022-06-02 | 2023-12-07 | Micron Technology, Inc. | Memory sub-system addressing for data and additional data portions |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396641A (en) * | 1991-01-18 | 1995-03-07 | Iobst; Kenneth W. | Reconfigurable memory processor |
US20090138641A1 (en) * | 2007-11-28 | 2009-05-28 | International Business Machines Corporation | Device, System, and Method of Handling Delayed Transactions |
US20140075135A1 (en) * | 2012-09-11 | 2014-03-13 | Samsung Electronics Co., Ltd. | Semiconductor memory device with operation functions |
US20160070483A1 (en) * | 2013-05-30 | 2016-03-10 | Hewlett-Packard Development, L.P. | Separate memory controllers to access data in memory |
TW201626207A (zh) * | 2014-10-01 | 2016-07-16 | 三星電子股份有限公司 | 記憶體內處理方法以及記憶體模組 |
US20160299693A1 (en) * | 2015-04-08 | 2016-10-13 | Tintri Inc. | Native storage quality of service for virtual machines |
US20170255390A1 (en) * | 2016-03-01 | 2017-09-07 | Samsung Electronics Co., Ltd. | 3-d stacked memory with reconfigurable compute logic |
Family Cites Families (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5901304A (en) | 1997-03-13 | 1999-05-04 | International Business Machines Corporation | Emulating quasi-synchronous DRAM with asynchronous DRAM |
US6336159B1 (en) | 1997-06-25 | 2002-01-01 | Intel Corporation | Method and apparatus for transferring data in source-synchronous protocol and transferring signals in common clock protocol in multiple agent processing system |
US6510503B2 (en) | 1998-07-27 | 2003-01-21 | Mosaid Technologies Incorporated | High bandwidth memory interface |
US6622235B1 (en) | 2000-01-03 | 2003-09-16 | Advanced Micro Devices, Inc. | Scheduler which retries load/store hit situations |
CA2316590A1 (en) | 2000-08-23 | 2002-02-23 | Celestica International Inc. | System and method for using a synchronous device with an asynchronous memory controller |
US7412553B2 (en) | 2002-01-10 | 2008-08-12 | O2Micro International Limited | Enhanced protocol conversion system capable of providing offloaded protocol instruction processing |
US7296112B1 (en) | 2002-12-10 | 2007-11-13 | Greenfield Networks, Inc. | High bandwidth memory management using multi-bank DRAM devices |
JP4383148B2 (ja) | 2003-11-25 | 2009-12-16 | 株式会社日立製作所 | 処理オフロード機能モジュールを備えた磁気ディスクアレイ装置 |
US7363406B2 (en) | 2004-12-08 | 2008-04-22 | Motorola, Inc. | Dynamic access scheduling memory controller |
US9542352B2 (en) | 2006-02-09 | 2017-01-10 | Google Inc. | System and method for reducing command scheduling constraints of memory circuits |
US8386722B1 (en) * | 2008-06-23 | 2013-02-26 | Google Inc. | Stacked DIMM memory interface |
DE112007000101C9 (de) | 2006-05-29 | 2017-08-10 | Certgate Gmbh | Verfahren zur Kommunikation mit einer Multifunktionsspeicherkarte |
US20080001271A1 (en) | 2006-06-30 | 2008-01-03 | Sony Ericsson Mobile Communications Ab | Flipped, stacked-chip IC packaging for high bandwidth data transfer buses |
US8117415B2 (en) * | 2006-09-18 | 2012-02-14 | Sandisk Il Ltd. | Storage device estimating a completion time for a storage operation |
US20080162855A1 (en) | 2006-12-29 | 2008-07-03 | Tessil Thomas | Memory Command Issue Rate Controller |
US7865660B2 (en) | 2007-04-16 | 2011-01-04 | Montage Technology Group Ltd. | Calibration of read/write memory access via advanced memory buffer |
US8024511B2 (en) | 2007-08-31 | 2011-09-20 | Siemens Industry, Inc. | Systems, devices, and/or methods to access synchronous RAM in an asynchronous manner |
US8042082B2 (en) | 2007-09-12 | 2011-10-18 | Neal Solomon | Three dimensional memory in a system on a chip |
US7921272B2 (en) | 2007-10-05 | 2011-04-05 | International Business Machines Corporation | Monitoring patterns of processes accessing addresses in a storage device to determine access parameters to apply |
US7855931B2 (en) * | 2008-07-21 | 2010-12-21 | Micron Technology, Inc. | Memory system and method using stacked memory device dice, and system using the memory system |
US8289760B2 (en) * | 2008-07-02 | 2012-10-16 | Micron Technology, Inc. | Multi-mode memory device and method having stacked memory dice, a logic die and a command processing circuit and operating in direct and indirect modes |
JP5331427B2 (ja) | 2008-09-29 | 2013-10-30 | 株式会社日立製作所 | 半導体装置 |
JP2010146252A (ja) * | 2008-12-18 | 2010-07-01 | Nec Engineering Ltd | Ddrメモリコントローラ |
US8576714B2 (en) * | 2009-05-29 | 2013-11-05 | Futurewei Technologies, Inc. | System and method for relay node flow control in a wireless communications system |
JP2011081732A (ja) * | 2009-10-09 | 2011-04-21 | Elpida Memory Inc | 半導体装置及びその調整方法並びにデータ処理システム |
US8473695B2 (en) | 2011-03-31 | 2013-06-25 | Mosys, Inc. | Memory system including variable write command scheduling |
US8819687B2 (en) | 2010-05-07 | 2014-08-26 | Advanced Micro Devices, Inc. | Scheduling for multiple memory controllers |
US9251873B1 (en) | 2010-05-20 | 2016-02-02 | Kandou Labs, S.A. | Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications |
US8683148B2 (en) * | 2010-06-30 | 2014-03-25 | Sandisk Il Ltd. | Status indication when a maintenance operation is to be performed at a memory device |
US8314807B2 (en) | 2010-09-16 | 2012-11-20 | Apple Inc. | Memory controller with QoS-aware scheduling |
US8321627B1 (en) | 2011-10-06 | 2012-11-27 | Google Inc. | Memory operation command latency management |
US8694698B2 (en) | 2012-04-12 | 2014-04-08 | Hitachi, Ltd. | Storage system and method for prioritizing data transfer access |
US9201777B2 (en) | 2012-12-23 | 2015-12-01 | Advanced Micro Devices, Inc. | Quality of service support using stacked memory device with logic die |
US9734097B2 (en) * | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
KR101670917B1 (ko) * | 2013-03-15 | 2016-11-01 | 인텔 코포레이션 | 메모리 시스템 |
KR102094902B1 (ko) * | 2013-07-08 | 2020-03-30 | 삼성전자주식회사 | 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템 |
US9535831B2 (en) | 2014-01-10 | 2017-01-03 | Advanced Micro Devices, Inc. | Page migration in a 3D stacked hybrid memory |
US20150270015A1 (en) | 2014-03-19 | 2015-09-24 | Micron Technology, Inc. | Memory mapping |
US9733847B2 (en) | 2014-06-02 | 2017-08-15 | Micron Technology, Inc. | Systems and methods for transmitting packets in a scalable memory system protocol |
US9436397B2 (en) * | 2014-09-23 | 2016-09-06 | Sandisk Technologies Llc. | Validating the status of memory operations |
KR20160063726A (ko) * | 2014-11-27 | 2016-06-07 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR101782501B1 (ko) * | 2014-12-10 | 2017-09-27 | 주식회사 엘지화학 | 고흡수성 수지의 제조 방법 |
US20160210174A1 (en) | 2015-01-15 | 2016-07-21 | Microsoft Corporation | Hybrid Scheduler and Power Manager |
WO2016118624A1 (en) | 2015-01-20 | 2016-07-28 | Ultrata Llc | Object memory instruction set |
US9443561B1 (en) | 2015-05-21 | 2016-09-13 | Advanced Micro Devices, Inc. | Ring networks for intra- and inter-memory I/O including 3D-stacked memories |
US10540588B2 (en) | 2015-06-29 | 2020-01-21 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
US20160379686A1 (en) | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Server systems with hardware accelerators including stacked memory |
US9633748B2 (en) | 2015-08-17 | 2017-04-25 | Micron Technology, Inc. | Multi-channel testing |
US9818458B1 (en) | 2015-09-23 | 2017-11-14 | Intel Corporation | Techniques for entry to a lower power state for a memory device |
FR3042049A1 (zh) * | 2015-10-01 | 2017-04-07 | Upmem | |
US10860323B2 (en) | 2015-10-16 | 2020-12-08 | Samsung Electronics Co., Ltd. | Method and apparatus for processing instructions using processing-in-memory |
US10528613B2 (en) | 2015-11-23 | 2020-01-07 | Advanced Micro Devices, Inc. | Method and apparatus for performing a parallel search operation |
EP3400688B1 (en) | 2016-01-04 | 2020-05-20 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications |
US20170206033A1 (en) * | 2016-01-19 | 2017-07-20 | SK Hynix Inc. | Mechanism enabling the use of slow memory to achieve byte addressability and near-dram performance with page remapping scheme |
KR101735590B1 (ko) * | 2016-01-22 | 2017-05-15 | 한양대학교 산학협력단 | 트랜잭션 추출 장치 및 방법 |
US10430244B2 (en) | 2016-03-28 | 2019-10-01 | Micron Technology, Inc. | Apparatuses and methods to determine timing of operations |
US20170289850A1 (en) | 2016-04-01 | 2017-10-05 | Intel Corporation | Write delivery for memory subsystem with narrow bandwidth repeater channel |
US10453502B2 (en) | 2016-04-04 | 2019-10-22 | Micron Technology, Inc. | Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions |
US10083722B2 (en) * | 2016-06-08 | 2018-09-25 | Samsung Electronics Co., Ltd. | Memory device for performing internal process and operating method thereof |
US10416896B2 (en) * | 2016-10-14 | 2019-09-17 | Samsung Electronics Co., Ltd. | Memory module, memory device, and processing device having a processor mode, and memory system |
US10268389B2 (en) * | 2017-02-22 | 2019-04-23 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10169261B1 (en) | 2017-08-29 | 2019-01-01 | International Business Machines Corporation | Address layout over physical memory |
US10416927B2 (en) * | 2017-08-31 | 2019-09-17 | Micron Technology, Inc. | Processing in memory |
US10346092B2 (en) * | 2017-08-31 | 2019-07-09 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations using timing circuitry |
US10741239B2 (en) | 2017-08-31 | 2020-08-11 | Micron Technology, Inc. | Processing in memory device including a row address strobe manager |
-
2017
- 2017-11-22 US US15/821,688 patent/US10592121B2/en active Active
- 2017-11-22 US US15/821,686 patent/US10908820B2/en active Active
-
2018
- 2018-05-23 TW TW107117592A patent/TWI746852B/zh active
- 2018-05-24 TW TW107117775A patent/TWI761520B/zh active
- 2018-06-26 KR KR1020180073566A patent/KR102651892B1/ko active IP Right Grant
- 2018-07-24 KR KR1020180086111A patent/KR102412987B1/ko active IP Right Grant
- 2018-08-10 CN CN201810908900.4A patent/CN109508306B/zh active Active
- 2018-08-15 JP JP2018152980A patent/JP6941082B2/ja active Active
- 2018-08-16 CN CN201810945829.7A patent/CN109508307B/zh active Active
- 2018-08-27 JP JP2018158187A patent/JP6955478B2/ja active Active
-
2020
- 2020-02-10 US US16/787,002 patent/US11893239B2/en active Active
- 2020-12-24 US US17/133,987 patent/US20210117103A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396641A (en) * | 1991-01-18 | 1995-03-07 | Iobst; Kenneth W. | Reconfigurable memory processor |
US20090138641A1 (en) * | 2007-11-28 | 2009-05-28 | International Business Machines Corporation | Device, System, and Method of Handling Delayed Transactions |
US20140075135A1 (en) * | 2012-09-11 | 2014-03-13 | Samsung Electronics Co., Ltd. | Semiconductor memory device with operation functions |
US20160070483A1 (en) * | 2013-05-30 | 2016-03-10 | Hewlett-Packard Development, L.P. | Separate memory controllers to access data in memory |
TW201626207A (zh) * | 2014-10-01 | 2016-07-16 | 三星電子股份有限公司 | 記憶體內處理方法以及記憶體模組 |
US20160299693A1 (en) * | 2015-04-08 | 2016-10-13 | Tintri Inc. | Native storage quality of service for virtual machines |
US20170255390A1 (en) * | 2016-03-01 | 2017-09-07 | Samsung Electronics Co., Ltd. | 3-d stacked memory with reconfigurable compute logic |
Also Published As
Publication number | Publication date |
---|---|
KR102412987B1 (ko) | 2022-06-24 |
JP6955478B2 (ja) | 2021-10-27 |
JP2019053725A (ja) | 2019-04-04 |
KR20190030586A (ko) | 2019-03-22 |
US10592121B2 (en) | 2020-03-17 |
US20210117103A1 (en) | 2021-04-22 |
US10908820B2 (en) | 2021-02-02 |
CN109508306A (zh) | 2019-03-22 |
US20190079678A1 (en) | 2019-03-14 |
US20200174676A1 (en) | 2020-06-04 |
KR102651892B1 (ko) | 2024-03-28 |
JP6941082B2 (ja) | 2021-09-29 |
KR20190030578A (ko) | 2019-03-22 |
TWI761520B (zh) | 2022-04-21 |
US11893239B2 (en) | 2024-02-06 |
CN109508306B (zh) | 2023-11-10 |
US20190079677A1 (en) | 2019-03-14 |
JP2019053726A (ja) | 2019-04-04 |
TW201915732A (zh) | 2019-04-16 |
CN109508307B (zh) | 2024-01-05 |
CN109508307A (zh) | 2019-03-22 |
TW201915759A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI746852B (zh) | 高頻寬記憶系統 | |
US10331585B2 (en) | Read training a memory controller | |
US9411538B2 (en) | Memory systems and methods for controlling the timing of receiving read data | |
JP2019053726A5 (zh) | ||
US20060095621A1 (en) | Methods and apparatuses for generating a single request for block transactions over a communication fabric | |
US7277975B2 (en) | Methods and apparatuses for decoupling a request from one or more solicited responses | |
US10067689B1 (en) | Method and apparatus for high bandwidth memory read and write data path training | |
CN109964209A (zh) | 使用可变长度列命令的低功率存储器子系统 | |
CN102279801A (zh) | 存储器共享系统及方法 | |
EP3907624A1 (en) | Memory and storage controller with integrated memory coherency interconnect | |
Sreehari et al. | AHB DDR SDRAM enhanced memory controller | |
WO2020087239A1 (zh) | 大数据运算加速系统 | |
WO2020087278A1 (zh) | 大数据运算加速系统及方法 |