TW201908981A - 協調記憶體命令的方法及高頻寬記憶體系統 - Google Patents
協調記憶體命令的方法及高頻寬記憶體系統 Download PDFInfo
- Publication number
- TW201908981A TW201908981A TW107113069A TW107113069A TW201908981A TW 201908981 A TW201908981 A TW 201908981A TW 107113069 A TW107113069 A TW 107113069A TW 107113069 A TW107113069 A TW 107113069A TW 201908981 A TW201908981 A TW 201908981A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- memory controller
- command
- coordinated
- host
- Prior art date
Links
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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
-
- 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
-
- 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/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/366—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
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)
- Dram (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Abstract
本發明提供一種在高頻寬記憶體HBM+系統中協調記憶體命令的方法,方法包含將主機記憶體控制器命令從主機記憶體控制器發送到記憶體,在協調記憶體控制器處接收主機記憶體控制器命令,將主機記憶體控制器命令從協調記憶體控制器轉發到記憶體,以及由協調記憶體控制器基於主機記憶體控制器命令來調度協調記憶體控制器命令。
Description
本公開的一些實施例大體上涉及記憶體頻寬管理,且更可涉及一種包含HBM邏輯裸晶上的處理器和記憶體控制器的高頻寬記憶體(high-bandwidth memory;HBM)系統,以及在HBM中處理的方法。
圖1為高頻寬記憶體HBM+系統的方塊圖。
參考圖1,常規HBM系統可大體上使用單個主控器,所述主控器大體上為用於控制相應記憶體的HBM外記憶體主機控制器。
然而,在HBM+系統100中,單個從裝置(例如主記憶體,其可以是易失性記憶體,如動態隨機存取記憶體(dynamic random access memory;DRAM)裸晶上的DRAM)110可具有兩個記憶體控制器120作為主控器。兩個主裝置可為HBM外記憶體控制器120a,以及定位在HBM 160的HBM邏輯裸晶140上的HBM上記憶體控制器120b。HBM邏輯裸晶140可與3D堆疊記憶體(其為HBM 160)的底層相對應,而DRAM裸晶110可與HBM 160的上層中的一個相對應。HBM邏輯裸晶140可使用可由處理器(PU)170指示以控制DRAM裸晶110的“近”記憶體控制器(“near” memory controller;NMC)120b來控制DRAM裸晶110。
HBM外記憶體控制器120a可稱為主機記憶體控制器120a(例如中央處理單元(central processing unit;CPU)、圖形處理單元(graphics processing unit;GPU)或加速處理單元(accelerated processing unit;APU)130的主機記憶體控制器120a)。HBM上記憶體控制器120b可稱為協調記憶體控制器120b,且可定位在HBM邏輯裸晶140上。
由於其遠端地定位在相比於協調記憶體控制器120b更遠離DRAM裸晶110的位置處,因此主機記憶體控制器120a也可被稱為遠端存放器控制器,或被稱為“遠”記憶體控制器(“far” memory controller;FMC)。由於其接近於DRAM裸晶110,因此協調記憶體控制器120b可被稱為本機存放區器控制器,或“近”記憶體控制器(NMC)120b。應注意,主機記憶體控制器120a和協調記憶體控制器120b中的任一個或兩個可由一般記憶體控制器來表示。
此外,主機記憶體控制器120a和協調記憶體控制器120b可非同步通信。因此,當主機記憶體控制器120a和協調記憶體控制器120b兩者意圖同時對DRAM 110進行存取時,可能產生問題。
對由通過在其它領域中(例如在使用基於事務的協定的系統晶片(system-on-a-chip;SOC)中,如高級可擴展介面(advanced extensible interface;AXI))的兩個不同的記憶體控制器兩者嘗試平行存取所引起的衝突的潛在解決方案可包含使用匯流排仲裁器作為中央仲裁器/集中式控制器。匯流排仲裁器可決定將允許哪一匯流排主控器來控制匯流排以用於每一匯流排迴圈,且可跟蹤所有元件的狀態。因此,兩個不同記憶體控制器可向匯流排仲裁器尋求對存取記憶體的許可權,且匯流排仲裁器可對記憶體控制器中的一個授予許可權(即在一時刻授予對僅單個主控器的存取以實現所選主控器與從裝置之間的通信而不受未選主控器的干擾)。在其之後,所選被授予存取的記憶體控制器可對記憶體進行存取,及/或記憶體可對記憶體控制器作出回應。
然而,以上潛在解決方案並不可適用於HBM+系統100。不同於基於事務的協定,HBM不支援信號交換操作,意味著不存在從HBM 160到任何記憶體控制器120的回饋信號。此外,常規HBM的HBM邏輯裸晶不能夠在HBM邏輯裸晶內專門執行計算功能。
此外,不同於基於事務的協定,HBM不支援非確定性時序,意味著一旦主機記憶體控制器120a向HBM 160發送請求,那麼主機記憶體控制器120a便期望HBM 160在確定時間量內作出回應。即,如果記憶體控制器120中的一個發送出命令或請求,那麼HBM 160必須在給定的時間量內(例如在約三十納秒內)作出回應以確保HBM 160正確地提供請求資料。
以上資訊僅用於增進對本公開的實施例的背景技術的理解,且因此可含有不形成現有技術的資訊。
本公開的一些實施例提供一種用於在高頻寬記憶體HBM+系統中協調記憶體命令的系統和方法。
根據一些實施例,提供一種在高頻寬記憶體HBM+系統中協調記憶體命令的方法,所述方法包含將主機記憶體控制器命令從主機記憶體控制器發送到記憶體,在協調記憶體控制器處接收主機記憶體控制器命令,將主機記憶體控制器命令從協調記憶體控制器轉發到記憶體,以及由協調記憶體控制器基於主機記憶體控制器命令來調度協調記憶體控制器命令。
基於主機記憶體控制器命令來調度協調記憶體控制器命令可包含將主機記憶體控制器命令與存在於協調記憶體控制器命令佇列中的協調記憶體控制器命令進行比較,以及基於所述比較來調整對協調記憶體控制器命令的調度。
將主機記憶體控制器命令與協調記憶體控制器命令進行比較可包含確定主機記憶體控制器命令和協調記憶體控制器命令是否被調度以用於記憶體的公共記憶體庫,且所述方法可更包含當主機記憶體控制器命令和協調記憶體控制器命令被調度以用於公共記憶體庫時,阻止將額外記憶體命令從主機記憶體控制器發送到公共記憶體庫直到協調記憶體控制器命令指示為已處理。
所述方法可更包含在主機記憶體控制器與協調記憶體控制器之間建立配置合約,所述配置合約包含將由主機記憶體控制器和協調記憶體控制器遵循的公共位址映射方案,從而使得主機記憶體控制器和協調記憶體控制器兩者在解碼相同位址時將指向記憶體內部的相同位置。
所述方法可更包含將來自主機記憶體控制器的記憶體內處理(process-in-memory;PIM)命令作為主機記憶體控制器命令發送,由主機記憶體控制器監測在協調記憶體控制器與主機記憶體控制器之間的資料匯流排,以及在監測期間檢測來自協調記憶體控制器、指示PIM命令是否已處理的PIM完成確認。
所述方法可更包含使用協調記憶體控制器來確定處理PIM命令的估算剩餘時間,使用PIM完成確認來指示尚未處理的PIM命令,使用PIM完成確認來指示估算剩餘時間,且將PIM完成確認從協調記憶體控制器發送到主機記憶體控制器。
確定估算剩餘時間可包含掃描協調記憶體控制器中的協調記憶體控制器命令佇列,確定在協調記憶體控制器命令佇列中未決的未決記憶體命令,確定未決記憶體命令中的每一個的估算時間量,以及對估算時間量求和以確定估算剩餘時間。
所述方法可更包含將超時值與PIM命令相關聯,確定PIM命令未在與超時值相對應的時間量內處理,以及阻止從主機記憶體控制器發送記憶體請求。
所述方法可更包含由主機記憶體控制器通過發送輪詢命令以請求指示處理PIM命令的估算剩餘時間的PIM完成確認來輪詢協調記憶體控制器,其中所述輪詢命令致使協調記憶體控制器發送PIM完成確認較早於協調記憶體控制器將已經以其它方式發送PIM完成確認。
所述方法可更包含由主機記憶體控制器設置在指示PIM命令的優先順序的輪詢命令中的優先順序欄位,確定PIM命令未在與超時值相對應的時間量內處理,由主機記憶體控制器改變優先順序欄位以增加PIM命令的優先順序,由協調記憶體控制器將PIM命令在協調記憶體控制器命令佇列中向上移動,以及在其它記憶體命令之前處理PIM命令。
根據一些實施例,提供一種高頻寬記憶體HBM+系統,所述系統包含協調記憶體控制器、主機記憶體控制器、記憶體、處理器,所述處理器配置成執行在由處理器執行時致使處理器進行以下操作的指令:將主機記憶體控制器命令從主機記憶體控制器發送到記憶體;在協調記憶體控制器處接收主機記憶體控制器命令;將主機記憶體控制器命令從協調記憶體控制器轉發到記憶體;以及由協調記憶體控制器基於主機記憶體控制器命令來調度協調記憶體控制器命令。
處理器可配置成通過將主機記憶體控制器命令與存在於協調記憶體控制器命令佇列中的協調記憶體控制器命令進行比較,且通過基於所述比較來調整對協調記憶體控制器命令的調度,從而基於主機記憶體控制器命令來調度協調記憶體控制器命令。
處理器可配置成通過確定主機記憶體控制器命令和協調記憶體控制器命令是否被調度以用於記憶體的公共記憶體庫,從而將主機記憶體控制器命令與協調記憶體控制器命令進行比較,且在由處理器執行時,所述指令可更致使處理器在主機記憶體控制器命令和協調記憶體控制器命令被調度以用於公共記憶體庫時阻止將額外記憶體命令從主機記憶體控制器發送到公共記憶體庫直到協調記憶體控制器命令指示為已處理。
在由處理器執行時,所述指令可更致使處理器在主機記憶體控制器與協調記憶體控制器之間建立配置合約,所述配置合約包含將由主機記憶體控制器和協調記憶體控制器遵循的公共位址映射方案,從而使得主機記憶體控制器和協調記憶體控制器兩者在解碼相同位址時將指向記憶體內部的相同位置。
在由處理器執行時,所述指令可更致使處理器將來自主機記憶體控制器的記憶體內處理(PIM)命令作為主機記憶體控制器命令發送,由主機記憶體控制器監測在協調記憶體控制器與主機記憶體控制器之間的資料匯流排,以及在監測期間檢測來自協調記憶體控制器、指示PIM命令是否已處理的PIM完成確認。
在由處理器執行時,所述指令可更致使處理器使用協調記憶體控制器來確定處理PIM命令的估算剩餘時間,使用PIM完成確認來指示PIM命令尚未處理,使用PIM完成確認來指示估算剩餘時間,以及將PIM完成確認從協調記憶體控制器發送到主機記憶體控制器。
在由處理器執行時,所述指令可更致使處理器使超時值與PIM命令相關聯,確定PIM命令未在與超時值相對應的時間量內處理,以及阻止從主機記憶體控制器發送記憶體請求。
在由處理器執行時,所述指令可更致使處理器使用主機記憶體控制器以通過發送輪詢命令以請求指示處理PIM命令的估算剩餘時間的PIM完成確認來輪詢協調記憶體控制器,其中所述輪詢命令致使協調記憶體控制器發送PIM完成確認較早於協調記憶體控制器將已經以其它方式發送PIM完成確認。
在由處理器執行時,所述指令可更致使處理器通過主機記憶體控制器設置在指示PIM命令的優先順序的輪詢命令中的優先順序欄位,確定PIM命令未在與超時值相對應的時間量內處理,由主機記憶體控制器改變優先順序欄位以增加PIM命令的優先順序,由協調記憶體控制器將PIM命令在協調記憶體控制器命令佇列中向上移動,以及在其它記憶體命令之前處理PIM命令。
根據一些實施例,提供一種HBM+系統,包含:HBM,包含DRAM裸晶(包含DRAM)和包含處理器以及協調記憶體控制器(包含比較器、調度器以及命令佇列)的邏輯裸晶;以及主機記憶體控制器,與HBM分離且配置成將記憶體命令發送到DRAM裸晶上的DRAM,其中所述協調記憶體控制器配置成接收記憶體命令,且將記憶體命令轉發到DRAM裸晶上的DRAM,其中所述比較器配置成將來自協調記憶體控制器的另一記憶體命令與來自主機記憶體控制器的記憶體命令進行比較,且其中所述調度器配置成根據由比較器進行的比較在命令佇列中調度記憶體命令。
因此,所描述的實施例提供用於協調兩個或大於兩個記憶體控制器以用於改進HBM+系統的性能的技術。
本發明概念的特徵和實現所述特徵的方法可通過參考實施例的以下詳細描述和隨附圖式而更易於理解。下文中,將參考隨附圖式更詳細地描述實施例,在所述隨附圖式中,相同參考標號通篇指代相同元件。然而,本發明可以各種不同形式實施,且不應理解為受限於僅本文中說明的實施例。相反,將這些實施例作為實例來提供以使得本發明將透徹且完整,且將向本領域的技術人員充分地傳達本發明的各方面和特徵。因此,可能並不描述對於本領域一般技術人員對本發明的各方面和特徵的完全理解非必要的過程、元件以及技術。除非另外指出,否則相同參考標號貫穿隨附圖式和書面描述表示相同元件,且因此將不重複其描述。在圖式中,為清楚起見,可能放大元件、層以及區域的相對尺寸。
在以下描述中,出於解釋的目的,闡述許多特定細節以提供對各種實施例的透徹理解。然而,顯而易知,可在不具有這些具體細節或具有一或多種等效佈置的情況下實踐各種實施例。在其它情況下,以方塊圖的形式繪示眾所周知的結構和裝置以免不必要地混淆各種實施例。
應理解,當將元件、層、區域或元件稱為在另一元件、層、區域或元件“上”、“連接到”或“耦合到”另一元件、層、區域或元件時,其可直接在另一元件、層、區域或元件上、連接到或耦合到另一元件、層、區域或元件,或可存在一或多個介入元件、層、區域或元件。然而,“直接連接/直接耦合”是指一個元件直接連接或耦合另一元件而不具有中間元件。同時,可類似地理解描述元件之間的關係的其它表達,如在元件“之間”、“緊接在元件之間”或“鄰接於”元件和“緊鄰”元件。另外,更將理解,當元件或層稱為在兩個元件或兩個層“之間”時,其可以是僅元件或層在兩個元件或兩個層之間,或也可存在一或多個介入元件或介入層。
本文中使用的術語僅出於描述特定實施例的目的,且並不意圖限制本發明。如本文中所使用,除非上下文另作明確指示,否則單數形式“一(a/an)”意圖也包含複數形式。將進一步理解,術語“包括(comprises/comprising)”、“具有(have/having)”、“包含(includes/including)”當在本說明書中使用時,表示所陳述特徵、整體、步驟、操作、元件和/或元件的存在,但不排除一或多個其它特徵、整體、步驟、操作、元件、元件和/或其群組的存在或添加。如本文中所使用,術語“和/或”包含相關聯的所列項中的一或多個的任何以及所有組合。
如本文中所使用,術語“基本上”、“約”、“大約”以及類似術語用作近似的術語且不用作程度的術語,且意圖考慮將由本領域一般技術人員識別的測量值或計算值中的固有偏差。如本文中所使用,“約”或“大約”包含所陳述值且意味著在偏差的可接受範圍內,對於特定值,如由本領域一般技術人員中的一個所確定,考慮相關測量和與特定數量的測量相關的誤差(即測量系統的限制)。舉例來說,“約”可意味著在一或多個標準差內,或在所陳述值的±30%、20%、10%、5%內。此外,當描述本發明的實施例時,使用“可”是指“本發明的一或多個實施例”。如本文中所使用,術語“使用(use/using/used)”可分別視為與術語“利用(utilize/utilizing/utilized)”同義。此外,術語“示範性”意圖指實例或說明。
當某一實例實施例可以不同方式實施時,特定處理次序可與所描述次序不同地執行。舉例來說,兩個連續描述的過程可基本上同時執行或以與所描述次序相反的次序執行。
在本文中參考實施例和/或中間結構的示意性說明的截面說明來描述各種實施例。如此,應預期到作為例如製造技術和/或公差的結果而與說明的形狀的差異。此外,出於描述根據本公開的概念的實施例的目的,本文中所公開的特定結構或功能性描述僅為說明性的。因此,本文中所公開的實施例不應理解為受限於區域的特定說明形狀,而是包含由(例如)製造引起的形狀偏差。舉例來說,示出為矩形的植入區域通常將具有圓形或彎曲特徵和/或植入物濃度在其邊緣上的梯度,而不是從植入區域到非植入區域的二元變化。同樣,通過植入形成的埋入區域可在埋入區域與發生植入所在的表面之間的區域中產生一些植入。因此,圖式中所示出的區域本質上為示意性的且其形狀並不意圖示出裝置的區域的實際形狀且並不意圖為限制性的。
本文中所描述的電子(electronic/electric)裝置和/或根據本發明的實施例的任何其它相關裝置或元件可利用任何合適的硬體、固件(例如專用積體電路)、軟體,或軟體、固件以及硬體的組合來實施。舉例來說,這些裝置的各種元件可在一個積體電路(integrated circuit;IC)晶片上或在獨立IC晶片上形成。此外,這些裝置的各種元件可在柔性印刷電路膜、載帶封裝(tape carrier package;TCP)、印刷電路板(printed circuit board;PCB)上實施或在一個襯底上形成。此外,這些裝置的各種元件可以是在在一或多個計算裝置中的一或多個處理器上運行、執行電腦程式指令以及與其它系統元件相互作用以用於執行本文中所描述的各種功能的進程或執行緒。將電腦程式指令儲存在可使用例如隨機存取記憶體(random access memory;RAM)的標準記憶體裝置在計算裝置中實施的記憶體中。電腦程式指令也可儲存在例如CD-ROM、快閃記憶體驅動器或類似物的其它非暫時性電腦可讀媒體中。此外,本領域的技術人員應認識到可將各種計算裝置的功能組合或集成到單個計算裝置中,或可將特定計算裝置的功能分佈於一或多個其它計算裝置上而不脫離本發明的示範性實施例的精神和範圍。
除非另外定義,否則本文中所使用的所有術語(包含技術和科學術語)具有本發明所屬領域的普通技術人員所通常理解的相同意義。將進一步理解,術語(例如常用詞典中所定義的那些術語)應被解釋為具有與其在相關技術的上下文和/或本說明書中的含義一致的含義,且不應在理想化或過分形式化的意義上進行解釋,除非在本文中這樣明確定義。
圖2為根據本公開的實施例的高頻寬記憶體HBM+系統的詳細微架構的方塊圖。
參考圖2,在HBM+系統200的上下文中,本公開的實施例提供一種用於協調主機記憶體控制器220a與協調記憶體控制器220b的活動的系統和方法。因此,可正確地調度處理型記憶體活動(DRAM和記憶體內處理(PIM)活動)以確保功能性正確性,從而改進記憶體系統的性能。
在本發明實施例的HBM+系統200中,協調記憶體控制器220b充當用於DRAM 210的次級主控器,且主機記憶體控制器220a充當初級主控器。協調記憶體控制器220b可攔截被引導到DRAM 210的主機記憶體控制器命令,且可將主機記憶體控制器命令從主機記憶體控制器220a整體轉發到DRAM 210,從而使得DRAM 210能夠以預期方式回應主機記憶體控制器220a。
當接收來自主機記憶體控制器220a的主機記憶體控制器命令時,協調記憶體控制器220b可使用調度器275來調度協調記憶體控制器命令。如果將來自不同記憶體控制器220的記憶體命令發送到DRAM 210的不同DRAM記憶體庫,那麼不同記憶體命令彼此獨立。然而,當來自不同記憶體控制器220的競爭性記憶體命令被調度以用於DRAM 210的相同DRAM記憶體庫時,所述競爭性記憶體命令可能發生衝突,其可能不利地影響系統性能。
為了避免由衝突性記憶體命令所引起的問題,協調記憶體控制器220b可使用來自主機記憶體控制器220a的主機記憶體控制器命令以調整對協調記憶體控制器220b的調度決策。舉例來說,可為主機記憶體控制器命令給定比協調記憶體控制器命令更高的優先順序。因此,協調記憶體控制器220b的調度器275可圍繞或基於根據配置合約的主機記憶體控制器命令對發送到DRAM 210的DRAM命令進行調度,從而允許來自主機記憶體控制器220a的正常DRAM請求以使得DRAM 210如由主機記憶體控制器220a所期望地回應主機記憶體控制器220a。即,建立一組公共規則的配置合約的公共規則可以由協調記憶體控制器220b和主機記憶體控制器220a遵循以根據所建立的、議定位址映射方案來避免記憶體庫衝突,如下文將進一步論述。
協調記憶體控制器220b的調度器275可通過使用比較器278以將來自主機記憶體控制器220a的命令與協調記憶體控制器220b的命令佇列280進行比較,以及通過基於比較的結果來調整或確定所調度的命令以執行調度。因此,當存在來自兩個記憶體控制器220的衝突性命令時,記憶體控制器220中的一個可等待競爭性命令完成。協調記憶體控制器220b的比較器278可將兩組命令(例如一組來自協調記憶體控制器220b,且另一組來自主機記憶體控制器220a)進行比較。當協調記憶體控制器220b確定將兩組命令調度到DRAM 210的相同記憶體庫時,隨後協調記憶體控制器220b可等待直到主機記憶體控制器命令完成,且可在其之後使用調度器275來調度與協調記憶體控制器220b相對應的命令。
或者,因為主機記憶體控制器220a可用作初級主控器,所以在協調記憶體控制器220b將大體上意識到到由主機記憶體控制器220a發送什麼請求時,協調記憶體控制器220b的調度器275可負責避免記憶體庫衝突。舉例來說,主機記憶體控制器220a可將記憶體內處理(PIM)請求發送到DRAM 210的第一記憶體庫,且可阻止將其它命令發送到相同的第一記憶體庫,直到協調記憶體控制器220b完成對與第一記憶體庫相對應的PIM的處理,從而確保功能性正確性,同時降低協調記憶體控制器220b的調度複雜度和資源需求。
因此,主機記憶體控制器220a與協調記憶體控制器220b之間的配置合約確保功能性正確性且避免記憶體庫衝突,同時保護HBM介面和協定。另外,來自主機230的正常記憶體請求可始終按需要進行。
如上文所論述,對於特定位址,主機記憶體控制器220a和協調記憶體控制器220b中的每一個可使用公共位址映射方案以正確地定位或指向DRAM 210內部的實際相應位置。因為DRAM 210組織成通道,隨後是記憶體庫,且隨後是行和列,所以不同類型的位址映射方案可用於確定DRAM 210中與特定位址相對應的位置。根據配置合約,主機記憶體控制器220a和協調記憶體控制器220b可使用相同位址映射方案,從而確保沒有“誤解”記憶體請求。
根據地址映射方案,主機記憶體控制器220a可發送出列的命令位址(Row_CA)252和行的命令地址(Col_CA)254。隨後,協調記憶體控制器220b可基於協調記憶體控制器220b的命令位址解碼器277來確定由來自主機記憶體控制器220a的命令所指示的內容。隨後,協調記憶體控制器220b的命令位址解碼器277可確定實際列命令位址256和/或實際行命令位址258,或可確定與PIM命令位址262相對應的命令。
如果命令並不與PIM命令相對應,那麼便在比較器278中進行比較,且將輸入的Row_CA 256和Col_CA 258與命令佇列280內的命令進行比較。基於所述比較,協調記憶體控制器220b的調度器275可調整對命令佇列280內部的命令的調度。在本實施例中,命令佇列280中的命令與啟動命令(activation command;ACT)、讀取命令(read command;RD)、寫入命令(write command;WR)以及預充電命令(precharge command;PRE)相對應,所述命令表示DRAM 210可理解的命令。與每一命令相對應可以是指示“準備好”(R)或“未準備好”(N)的狀態指示符,其可由調度器275使用以確定可在何時調度命令。
或者,主機記憶體控制器220a可試圖發送PIM命令/PIM請求,如與一般DRAM存取命令有區別。在由協調記憶體控制器220b的命令位址解碼器277執行解碼操作之後,如果命令為正常DRAM命令,那麼所述命令將直接轉發到DRAM 210。相反,如果將由協調記憶體控制器220b接收到的命令翻譯成PIM命令,那麼PIM命令可進一步由PIM解碼器264解碼,且可在命令佇列280內部進行處理(例如來自命令位址解碼器277,PIM命令可被翻譯成PIM命令地址(PIM_CA)262,且可發送到PIM解碼器264以使得PIM解碼器264可向命令佇列280發送解碼PIM命令)。
圖3為描繪PIM完成確認的傳送的時序圖。
參考圖2和圖3,因為協調記憶體控制器220b為次級主控器,所以在試圖調度命令時,協調記憶體控制器220b可具有較低優先順序。因此,協調記憶體控制器220b可耗費較長時間量來執行其操作且完成其調度命令。因為在協調記憶體控制器220b中的處理是非確定性的,且因為協調記憶體控制器220b可能未在確定時間內完成PIM命令(因為PIM命令可能由來自作為初級主控器的主機記憶體控制器220a的正常記憶體請求延遲),所以協調記憶體控制器220b可明確告知主機記憶體控制器220a任何PIM請求/PIM命令的狀態。
因此,在從主機記憶體控制器220a發送PIM命令310之後,主機記憶體控制器220a便每PIM時間間隔/PIM_ACK時間(tPIM)320(其可以是與HBM+系統200的恒定數量的時脈迴圈相對應的時間間隔)可監聽或可監測資料匯流排(DQ匯流排)284一次(其可與同步雙資料速率(DDR)相對應)。主機記憶體控制器220a可繼續監測DQ匯流排284以檢測可指示PIM命令310的處理是否已完成的PIM完成確認/PIM確認消息封包(PIM_ACK)330。PIM完成確認330可由協調記憶體控制器220b的PIM完成確認產生器288產生。
在DQ匯流排284上,協調記憶體控制器220b可響應包含與PIM完成確認330相對應的資訊的封包。PIM完成確認330可由協調記憶體控制器220b在採樣時間發送(例如每PIM時間間隔320發送一次)。PIM完成確認330可具現化為256位元消息,其中一位元與完成狀態位元相對應,所述完成狀態位元可由協調記憶體控制器220b的PIM完成狀態暫存器286來設置且可在相關DRAM活動完成時設置。當PIM完成確認330的完成狀態位元指示為假時,那麼主機記憶體控制器220a可繼續監聽DQ匯流排284。然而,如果PIM完成確認330指示完成狀態位元為真,那麼主機記憶體控制器220a可意識到所發送PIM命令310已完成且標記為成功。
另外,PIM完成確認330的剩餘位元中的一些或全部可用於提供直到完成的估算時間剩餘(例如當PIM完成確認330的完成狀態位元指示PIM命令310的完成尚未出現時)。舉例來說,協調記憶體控制器220b可包含估算器292以估算直到PIM命令310完成的估算時間剩餘。因為協調記憶體控制器220b可意識到其內部操作的狀態,所以協調記憶體控制器220b的估算器292可通過掃描命令佇列280、確定命令佇列280中的未決命令中的每一個的所估算時間量以及對所估算時間量一起求和來估算協調記憶體控制器220b期望多少額外的時間來完成PIM命令310。之後,可在完成相關DRAM活動時設置PIM完成狀態暫存器286,如可由DRAM完成狀態指示符268所指示。因此,協調記憶體控制器220b可以PIM完成確認330中所指示的估算剩餘時間回應主機記憶體控制器220a。
因此,儘管可保護HBM介面和協定不浪費命令匯流排頻寬,但由於將封包放置在DQ匯流排284上以用於每一PIM時間間隔320指示PIM命令310的完成,所以可能使用一些額外DQ匯流排頻寬。
圖4為描繪回應於輪詢命令的PIM完成確認的傳送的時序圖。
參考圖2和圖4,如果由協調記憶體控制器220b發送的PIM完成確認330中所指示的估算剩餘時間期望為低,那麼主機230便可使用主機記憶體控制器220a以使用輪詢命令(PIM_POLL)410主動地輪詢PIM完成狀態,從而使得主機記憶體控制器220a能夠具有對處理PIM命令310所剩餘時間的更精確理解。
在接收到輪詢命令410之後,協調記憶體控制器220b將返回PIM完成確認330(例如在tPIM_POLL時間420內,其可以是比PIM時間間隔320更頻繁發生的時間間隔)。因此,主機記憶體控制器220可使用由協調記憶體控制器220b發送的非請求PIM完成確認330(其僅每PIM時間間隔320出現一次)、以比所期望的更快發生的速率接收關於PIM命令310的所期望完成的資訊,如上文所論述。舉例來說,基於HBM系統的現行規格,PIM時間間隔320可估算為超過約50納秒,而tPIM_POLL時間420可估算為約三納秒。因為樣本完成時間為約50納秒,且因為所估算剩餘時間可能偶爾極短,所以可能並不適合於等待額外50納秒來接收實際確認狀態。因此,輪詢命令410可改進HBM+系統200的效率和性能。
由主動輪詢提供的權益為服務樣本完成時間,同時更使得主機記憶體控制器220a能夠更快速地接收確認狀態。然而,因為新命令可用於實施主動輪詢,所以額外命令匯流排頻寬可用於實施新命令。
至於上文所論述的PIM完成確認330和輪詢命令410,來自DRAM 210的資料路徑可由多工器(MUX)282來控制。MUX 282可將資料從DRAM 210發送回到主機記憶體控制器220a,或可將資料發送回到協調記憶體控制器220b內部的處理器270。當將資料用於協調記憶體控制器220b的內部操作時,所述資料可被引導到處理器270。然而,當資料是對主機記憶體控制器220a的回應時,接下來所述資料可被引導到主機記憶體控制器220a。DQ匯流排284可用於傳送一般資料或PIM完成確認330。
儘管可保護HBM介面和協定,且儘管可確保按需要進行來自主機的一般記憶體app請求(因為協調記憶體控制器220b具有較低優先順序),但相應命令可能完成得比合適的情況更慢。此外,可使用解碼來自主機記憶體控制器220a的命令的額外迴圈。
根據本發明的實施例,可將給定PIM命令310的優先順序設置為允許PIM命令310在所需時間內完成。設置優先順序的這類優先順序資訊可嵌入於PIM命令310中和/或輪詢命令410中。
舉例來說,為了避免協調記憶體控制器220b始終未能完成對PIM命令310的處理的情形,主機記憶體控制器220a可作出合適的調度決策和/或將優先順序資訊發送到協調記憶體控制器220b。因為作為次級主控器的協調記憶體控制器220b可通常圍繞主機記憶體控制器命令調度,所以主機記憶體控制器220a持續地發送命令的情形可防止協調記憶體控制器220b能夠調度操作以用於協調記憶體控制器220b的PIM命令。因此,每一PIM命令310可與超時值相關聯。如果在達到超時值之後(例如在已經過足夠的時間量之後),由主機記憶體控制器220a接收到的PIM完成確認330仍為假,接下來主機記憶體控制器220a可中止向HBM通道發送一般記憶體請求,從而為協調記憶體控制器220b提供調度無序PIM命令310的機會,從而使得PIM命令310能夠完成。
此外,協調記憶體控制器220b可調度無序PIM命令310以用於改進性能,其可致使發生在PIM命令310中的較晚請求的命令之後的較早請求的PIM命令310中的一些的執行。在PIM命令310中,優先順序欄位可由主機記憶體控制器220a來設置以使得協調記憶體控制器220b可執行具有相對較高優先順序的PIM命令。即,主機記憶體控制器220a可設置優先順序欄位以使得協調記憶體控制器220b在解碼優先順序欄位時將知道協調記憶體控制器220b是否應立即執行此PIM命令310。
此外,在輪詢命令410中可存在優先順序的欄位。因此,主機記憶體控制器220a可改變先前所發出PIM命令310的優先順序。舉例來說,當協調記憶體控制器220b可能開始執行具有較高優先順序的PIM命令時,如果主機記憶體控制器220a發現PIM命令310耗費不可接受地長的時間量來完成,那麼主機記憶體控制器220a可通過使用優先順序欄位逐步增加PIM命令310的優先順序以使得PIM命令310更快速地完成。
因此,上文描述的本公開的實施例提供高頻寬記憶體HBM+系統。
前述說明實例實施例,且不應理解為對其限制。儘管已描述幾個實例實施例,但本領域技術人員將容易瞭解,在實質上不脫離實例實施例的新穎教示和優勢的情況下,對實例實施例的許多修改是可能的。因此,所有這類修改意圖包含在如所附權利要求書中限定的實例實施例的範圍內。在權利要求書中,裝置加功能條款(means-plus-function clause)意圖涵蓋在本文中描述為執行所述功能的結構,且不僅涵蓋結構等效物而且涵蓋等效結構。因此,應理解,前述說明實例實施例且不應理解為受限於所公開的特定實施例,且對所公開的實例實施例以及其它實例實施例的修改意圖包含在所附權利要求書的範圍內。本發明概念由以下權利要求書限定,其中權利要求書的等效物將包含在其中。
100‧‧‧HBM+系統
110‧‧‧DRAM裸晶
120a‧‧‧HBM外記憶體控制器
120b‧‧‧HBM上記憶體控制器
130‧‧‧加速處理單元
140‧‧‧HBM邏輯裸晶
160、260‧‧‧高頻寬記憶體
170‧‧‧處理器
200‧‧‧HBM+系統
210‧‧‧動態隨機存取記憶體
220a‧‧‧主機記憶體控制器
220b‧‧‧協調記憶體控制器
230‧‧‧主機
252‧‧‧列的命令地址(Row_CA)
254‧‧‧行的命令地址(Col_CA)
256‧‧‧實際列命令地址
258‧‧‧實際行命令地址
262‧‧‧PIM命令地址
264‧‧‧PIM解碼器
268‧‧‧DRAM完成狀態指示符
270‧‧‧處理器
275‧‧‧調度器
277‧‧‧命令地址解碼器
278‧‧‧比較器
280‧‧‧命令佇列
282‧‧‧MUX
284‧‧‧DQ匯流排
286‧‧‧PIM完成狀態暫存器
288‧‧‧PIM完成確認產生器
292‧‧‧估算器
300、400‧‧‧時序圖
310‧‧‧PIM命令
320‧‧‧PIM時間間隔/PIM_ACK時間
330‧‧‧PIM完成確認
410‧‧‧輪詢命令
420‧‧‧tPIM_POLL時間
根據結合隨附圖式進行的以下描述可更詳細地理解一些實施例,其中:
圖1為高頻寬記憶體HBM+系統的方塊圖。 圖2為根據本公開的實施例的高頻寬記憶體HBM+系統的詳細微架構的方塊圖。 圖3為描繪PIM完成確認的傳送的時序圖。 圖4為描繪回應於輪詢命令的PIM完成確認的傳送的時序圖。
Claims (20)
- 一種在高頻寬記憶體HBM+系統中協調記憶體命令的方法,所述方法包括: 將主機記憶體控制器命令從主機記憶體控制器發送到記憶體; 在協調記憶體控制器處接收所述主機記憶體控制器命令; 將所述主機記憶體控制器命令從所述協調記憶體控制器轉發到所述記憶體;以及 由所述協調記憶體控制器基於所述主機記憶體控制器命令來調度協調記憶體控制器命令。
- 如申請專利範圍第1項所述的方法,其中基於所述主機記憶體控制器命令來調度所述協調記憶體控制器命令包括: 將所述主機記憶體控制器命令與存在於協調記憶體控制器命令佇列中的所述協調記憶體控制器命令進行比較;以及 基於所述比較來調整對所述協調記憶體控制器命令的調度。
- 如申請專利範圍第2項所述的方法,其中所述將所述主機記憶體控制器命令與所述協調記憶體控制器命令進行比較包括:確定所述主機記憶體控制器命令和所述協調記憶體控制器命令是否被調度以用於記憶體的公共記憶體庫,所述方法更包括在所述主機記憶體控制器命令和所述協調記憶體控制器命令被調度以用於所述公共記憶體庫時,阻止將額外記憶體命令從所述主機記憶體控制器發送到所述公共記憶體庫直到所述協調記憶體控制器命令指示為已處理。
- 如申請專利範圍第1項所述的方法,其中所述方法更包括在所述主機記憶體控制器與所述協調記憶體控制器之間建立配置合約,所述配置合約包括將由所述主機記憶體控制器和所述協調記憶體控制器遵循的公共位址映射方案,從而使得所述主機記憶體控制器和所述協調記憶體控制器兩者在解碼相同位址時將指向所述記憶體內部的相同位置。
- 如申請專利範圍第1項所述的方法,其中所述方法更包括: 將來自所述主機記憶體控制器的記憶體內處理命令作為所述主機記憶體控制器命令發送; 由所述主機記憶體控制器監測所述協調記憶體控制器與所述主機記憶體控制器之間的資料匯流排;以及 在所述監測期間,檢測來自所述協調記憶體控制器、指示所述記憶體內處理命令是否已處理的記憶體內處理完成確認。
- 如申請專利範圍第5項所述的方法,其中所述方法更包括: 使用所述協調記憶體控制器來確定處理所述記憶體內處理命令的估算剩餘時間; 使用所述記憶體內處理完成確認來指示尚未處理的所述記憶體內處理命令; 使用所述記憶體內處理完成確認來指示所述估算剩餘時間;以及 將所述記憶體內處理完成確認從所述協調記憶體控制器發送到所述主機記憶體控制器。
- 如申請專利範圍第6項所述的方法,其中所述確定所述估算剩餘時間包括: 掃描所述協調記憶體控制器中的協調記憶體控制器命令佇列; 確定在所述協調記憶體控制器命令佇列中未決的未決記憶體命令; 確定所述未決記憶體命令中的每一個的估算時間量;以及 對所述估算時間量求和以確定所述估算剩餘時間。
- 如申請專利範圍第6項所述的方法,更包括: 將超時值與所述記憶體內處理命令相關聯; 確定所述記憶體內處理命令未在與所述超時值相對應的時間量內處理;以及 阻止從所述主機記憶體控制器發送記憶體請求。
- 如申請專利範圍第5項所述的方法,其中所述方法更包括:由所述主機記憶體控制器通過發送輪詢命令以請求指示處理所述記憶體內處理命令的估算剩餘時間的所述記憶體內處理完成確認來輪詢所述協調記憶體控制器,其中所述輪詢命令致使所述協調記憶體控制器發送所述記憶體內處理完成確認較早於所述協調記憶體控制器將已經以其它方式發送所述記憶體內處理完成確認。
- 如申請專利範圍第9項所述的方法,更包括: 由所述主機記憶體控制器設置在指示所述記憶體內處理命令的優先順序的所述輪詢命令中的優先順序欄位; 確定所述記憶體內處理命令未在與所述超時值相對應的時間量內處理; 由所述主機記憶體控制器改變所述優先順序欄位以增加所述記憶體內處理命令的優先順序; 由所述協調記憶體控制器將所述記憶體內處理命令在協調記憶體控制器命令佇列中向上移動;以及 在其它記憶體命令之前處理所述記憶體內處理命令。
- 一種高頻寬記憶體HBM+系統,其特徵在於,所述系統包括: 協調記憶體控制器; 主機記憶體控制器; 記憶體; 處理器,配置成執行在由所述處理器執行時致使所述處理器進行以下操作的指令: 將主機記憶體控制器命令從所述主機記憶體控制器發送到所述記憶體; 在所述協調記憶體控制器處接收所述主機記憶體控制器命令; 將所述主機記憶體控制器命令從所述協調記憶體控制器轉發到所述記憶體;以及 由所述協調記憶體控制器基於所述主機記憶體控制器命令來調度協調記憶體控制器命令。
- 如申請專利範圍第11所述的系統,其中所述處理器配置成通過將所述主機記憶體控制器命令與存在於協調記憶體控制器命令佇列中的所述協調記憶體控制器命令進行比較,且通過基於所述比較來調整對所述協調記憶體控制器命令的調度,從而基於所述主機記憶體控制器命令來調度所述協調記憶體控制器命令。
- 如申請專利範圍第12所述的系統,其中所述處理器配置成通過確定所述主機記憶體控制器命令和所述協調記憶體控制器命令是否被調度以用於所述記憶體的公共記憶體庫,從而將所述主機記憶體控制器命令與所述協調記憶體控制器命令進行比較, 以及其中在由所述處理器執行時,所述指令更致使所述處理器在所述主機記憶體控制器命令和所述協調記憶體控制器命令被調度以用於所述公共記憶體庫時,阻止將額外記憶體命令從所述主機記憶體控制器發送到所述公共記憶體庫直到所述協調記憶體控制器命令指示為已處理。
- 如申請專利範圍第11所述的系統,其中在由所述處理器執行時,所述指令更致使所述處理器在所述主機記憶體控制器與所述協調記憶體控制器之間建立配置合約,所述配置合約包括將由所述主機記憶體控制器和所述協調記憶體控制器遵循的公共位址映射方案,從而使得所述主機記憶體控制器和所述協調記憶體控制器兩者在解碼相同位址時將指向所述記憶體內部的相同位置。
- 如申請專利範圍第11所述的系統,其中在由所述處理器執行時,所述指令更致使所述處理器: 將來自所述主機記憶體控制器的記憶體內處理命令作為所述主機記憶體控制器命令發送; 由所述主機記憶體控制器監測所述協調記憶體控制器與所述主機記憶體控制器之間的資料匯流排;以及 在所述監測期間,檢測來自所述協調記憶體控制器、指示所述記憶體內處理命令是否已處理的記憶體內處理完成確認。
- 如申請專利範圍第15所述的系統,其中在由所述處理器執行時,所述指令更致使所述處理器: 使用所述協調記憶體控制器來確定處理所述記憶體內處理命令的估算剩餘時間; 使用所述記憶體內處理完成確認來指示尚未處理的所述記憶體內處理命令; 使用所述記憶體內處理完成確認來指示所述估算剩餘時間;以及 將所述記憶體內處理完成確認從所述協調記憶體控制器發送到所述主機記憶體控制器。
- 如申請專利範圍第16所述的系統,其中在由所述處理器執行時,所述指令更致使所述處理器: 將超時值與所述記憶體內處理命令相關聯; 確定所述記憶體內處理命令未在與所述超時值相對應的時間量內處理;以及 阻止從所述主機記憶體控制器發送記憶體請求。
- 如申請專利範圍第15所述的系統,其中在由所述處理器執行時,所述指令更致使所述處理器使用所述主機記憶體控制器以通過發送輪詢命令以請求指示處理所述記憶體內處理命令的估算剩餘時間的所述記憶體內處理完成確認來輪詢所述協調記憶體控制器,其中所述輪詢命令致使所述協調記憶體控制器發送所述記憶體內處理完成確認較早於所述協調記憶體控制器將已經以其它方式發送所述記憶體內處理完成確認。
- 如申請專利範圍第18項所述的系統,其中在由所述處理器執行時,所述指令更致使所述處理器: 由所述主機記憶體控制器設置在指示所述記憶體內處理命令的優先順序的所述輪詢命令中的優先順序欄位; 確定所述記憶體內處理命令未在與超時值相對應的時間量內處理; 由所述主機記憶體控制器改變所述優先順序欄位以增加所述記憶體內處理命令的優先順序; 由所述協調記憶體控制器將所述記憶體內處理命令在協調記憶體控制器命令佇列中向上移動;以及 在其它記憶體命令之前處理所述記憶體內處理命令。
- 一種高頻寬記憶體+系統,包括: 高頻寬記憶體,包括: 動態隨機存取記憶體裸晶,包括動態隨機存取記憶體;以及 的邏輯裸晶,包括處理器以及包括比較器、調度器以及命令佇列的協調記憶體控制器;以及 主機記憶體控制器,與所述高頻寬記憶體分離且配置成將記憶體命令發送到所述動態隨機存取記憶體裸晶上的所述動態隨機存取記憶體; 其中所述協調記憶體控制器配置成接收所述記憶體命令,且將所述記憶體命令轉發到所述動態隨機存取記憶體裸晶上的所述動態隨機存取記憶體, 其中所述比較器配置成將來自所述協調記憶體控制器的另一記憶體命令與來自所述主機記憶體控制器的所述記憶體命令進行比較,以及 其中所述調度器配置成根據由所述比較器進行的比較在所述命令佇列中調度所述記憶體命令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762536919P | 2017-07-25 | 2017-07-25 | |
US62/536,919 | 2017-07-25 | ||
US15/723,014 | 2017-10-02 | ||
US15/723,014 US10437482B2 (en) | 2017-07-25 | 2017-10-02 | Coordinated near-far memory controller for process-in-HBM |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201908981A true TW201908981A (zh) | 2019-03-01 |
TWI771407B TWI771407B (zh) | 2022-07-21 |
Family
ID=65037952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107113069A TWI771407B (zh) | 2017-07-25 | 2018-04-17 | 協調記憶體命令的方法及高頻寬記憶體系統 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10437482B2 (zh) |
JP (1) | JP6974260B2 (zh) |
KR (1) | KR102265600B1 (zh) |
CN (1) | CN109299024B (zh) |
TW (1) | TWI771407B (zh) |
Families Citing this family (13)
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 |
US11016667B1 (en) * | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
CN111679785A (zh) | 2019-03-11 | 2020-09-18 | 三星电子株式会社 | 用于处理操作的存储器装置及其操作方法、数据处理系统 |
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 | 에스케이하이닉스 주식회사 | 연산 회로를 포함하는 메모리 장치, 이를 제어하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN111143257A (zh) * | 2019-12-02 | 2020-05-12 | 深圳市奥拓电子股份有限公司 | Ddr仲裁控制器、视频缓存装置及视频处理系统 |
CN111459864B (zh) | 2020-04-02 | 2021-11-30 | 深圳朗田亩半导体科技有限公司 | 一种存储器件及其制造方法 |
US11907575B2 (en) * | 2021-02-08 | 2024-02-20 | Samsung Electronics Co., Ltd. | Memory controller and memory control method |
US11609879B2 (en) * | 2021-02-26 | 2023-03-21 | Nvidia Corporation | Techniques for configuring parallel processors for different application domains |
US11947835B2 (en) * | 2021-09-21 | 2024-04-02 | Black Sesame Technologies Inc. | High-performance on-chip memory controller |
KR20230059229A (ko) | 2021-10-26 | 2023-05-03 | 삼성전자주식회사 | 메모리 장치를 위한 커맨드 스케줄링 방법 및 이를 수행하는 메모리 시스템 |
US20230205706A1 (en) * | 2021-12-23 | 2023-06-29 | Advanced Micro Devices, Inc. | Approach for managing near-memory processing commands and non-near-memory processing commands in a memory controller |
WO2023128479A1 (ko) * | 2021-12-30 | 2023-07-06 | 주식회사 엘엑스세미콘 | 메모리 제어 시스템 및 메모리 제어 기능을 갖는 디스플레이 디바이스 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877558B2 (en) | 2007-08-13 | 2011-01-25 | Advanced Micro Devices, Inc. | Memory controller prioritization scheme |
US8266393B2 (en) | 2008-06-04 | 2012-09-11 | Microsoft Corporation | Coordination among multiple memory controllers |
CN101639817B (zh) * | 2009-03-13 | 2012-01-25 | 青岛海信信芯科技有限公司 | 一种存储器的控制方法、存储器控制器和存储器控制系统 |
US8132048B2 (en) * | 2009-08-21 | 2012-03-06 | International Business Machines Corporation | Systems and methods to efficiently schedule commands at a memory controller |
US8854387B2 (en) | 2010-12-22 | 2014-10-07 | Advanced Micro Devices, Inc. | Bundle-based CPU/GPU memory controller coordination mechanism |
US9317429B2 (en) | 2011-09-30 | 2016-04-19 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
WO2013048493A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Memory channel that supports near memory and far memory access |
US10691344B2 (en) * | 2013-05-30 | 2020-06-23 | Hewlett Packard Enterprise Development Lp | Separate memory controllers to access data in memory |
US9852090B2 (en) | 2013-12-11 | 2017-12-26 | Adesto Technologies Corporation | Serial memory device alert of an external host to completion of an internally self-timed operation |
US9632775B2 (en) | 2014-02-11 | 2017-04-25 | Apple Inc. | Completion time prediction for vector instructions |
US9563369B2 (en) * | 2014-04-14 | 2017-02-07 | Microsoft Technology Licensing, Llc | Fine-grained bandwidth provisioning in a memory controller |
US10025747B2 (en) * | 2015-05-07 | 2018-07-17 | Samsung Electronics Co., Ltd. | I/O channel scrambling/ECC disassociated communication protocol |
US9904635B2 (en) * | 2015-08-27 | 2018-02-27 | Samsung Electronics Co., Ltd. | High performance transaction-based memory systems |
US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
US10152421B2 (en) * | 2015-11-23 | 2018-12-11 | Intel Corporation | Instruction and logic for cache control operations |
-
2017
- 2017-10-02 US US15/723,014 patent/US10437482B2/en active Active
-
2018
- 2018-04-05 KR KR1020180039769A patent/KR102265600B1/ko active IP Right Grant
- 2018-04-17 TW TW107113069A patent/TWI771407B/zh active
- 2018-06-12 CN CN201810602179.6A patent/CN109299024B/zh active Active
- 2018-06-15 JP JP2018114778A patent/JP6974260B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
KR102265600B1 (ko) | 2021-06-17 |
KR20190011662A (ko) | 2019-02-07 |
US10437482B2 (en) | 2019-10-08 |
CN109299024A (zh) | 2019-02-01 |
CN109299024B (zh) | 2024-01-05 |
JP6974260B2 (ja) | 2021-12-01 |
US20190034097A1 (en) | 2019-01-31 |
JP2019029004A (ja) | 2019-02-21 |
TWI771407B (zh) | 2022-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201908981A (zh) | 協調記憶體命令的方法及高頻寬記憶體系統 | |
US20210117103A1 (en) | Host-based and client-based command scheduling in large bandwidth memory systems | |
WO2016127552A1 (zh) | 一种直接内存存取dma控制器及数据传输的方法 | |
US11080220B2 (en) | System on chip having semaphore function and method for implementing semaphore function | |
CA2026737C (en) | Bus master interface circuit with transparent preemption of a data transfer controller | |
TW200921671A (en) | Memory control device and semiconductor processing apparatus | |
US20160239442A1 (en) | Scheduling volatile memory maintenance events in a multi-processor system | |
US20090113097A1 (en) | Method and Apparatus for Attaching Multiple Slave Devices to a Single Bus Controller Interface While Supporting Command Pipelining | |
US7644248B2 (en) | Mechanism to generate logically dedicated read and write channels in a memory controller | |
US20150234759A1 (en) | Method and apparatus using high-efficiency atomic operations | |
TWI407311B (zh) | 運用於系統管理匯流排系統的仲裁器及其仲裁方法 | |
EP3256952B1 (en) | Systems and methods for providing kernel scheduling of volatile memory maintenance events | |
US8260927B2 (en) | Management of a reserve forever device | |
US11294832B2 (en) | Systems and methods for queuing device management configuration requests | |
TW201721447A (zh) | 電腦資源控制器以及控制方法 | |
JP2004094819A (ja) | メモリアクセスアービタ、メモリ制御装置 | |
JP7259537B2 (ja) | 情報処理装置 | |
WO2022222375A1 (zh) | 传输数据的方法及存储装置 | |
WO2020230413A1 (ja) | 情報処理装置 | |
US20190213150A1 (en) | Bus controller and related methods | |
WO2012093475A1 (ja) | 情報転送装置および情報転送装置の情報転送方法 | |
JPH0488739A (ja) | データ伝送方法 | |
JP2008046874A (ja) | データ転送装置及び方法 |