TWI633436B - 記憶體中之轉譯後備緩衝器 - Google Patents
記憶體中之轉譯後備緩衝器 Download PDFInfo
- Publication number
- TWI633436B TWI633436B TW105115860A TW105115860A TWI633436B TW I633436 B TWI633436 B TW I633436B TW 105115860 A TW105115860 A TW 105115860A TW 105115860 A TW105115860 A TW 105115860A TW I633436 B TWI633436 B TW I633436B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- host
- banks
- tlb
- addresses
- Prior art date
Links
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/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/1673—Details of memory controller using buffers
-
- 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
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/1012—Design facilitation
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
-
- 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/68—Details of translation look-aside buffer [TLB]
- G06F2212/682—Multiprocessor TLB consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明之實例提供與記憶體中之一轉譯後備緩衝器相關之設備及方法。一實例性方法包括:自一主機接收包含一虛擬位址之一命令;在一記憶體裝置之揮發性記憶體上使用一轉譯後備緩衝器(TLB)將該虛擬位址轉譯為一實體位址。
Description
本發明大體上係關於半導體記憶體設備及方法,且更具體言之,係關於與記憶體中之一轉譯後備緩衝器相關之設備及方法。
記憶體裝置在電腦或其他電子系統中通常設置為內部裝置、半導體、積體電路。存在包含揮發性及非揮發性記憶體之諸多不同類型之記憶體。揮發性記憶體可需要維持其資料(例如,主機資料、誤差資料等等)之功率且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、同步動態隨機存取記憶體(SDRAM)及閘流體隨機存取記憶體(TRAM)等等。非揮發性記憶體可藉由當不進行供電時保留儲存之資料而提供永久性資料且可包含NAND快閃記憶體、NOR快閃記憶體及電阻可變記憶體,諸如相變隨機存取記憶體(PCRAM)、電阻隨機存取記憶體(RRAM)及磁阻隨機存取記憶體(MRAM),諸如自旋轉矩轉移隨機存取記憶體(STT RAM)等等。
電子系統通常包含可擷取及執行指令且將該等經執行指令之結果儲存至一適合位置之數個處理資源(例如,一或多個處理器)。一處理器可包括數個功能單元(例如,在本文中稱為功能單元電路,諸如演算法邏輯單元(ALU)電路、浮動點單元(FPU)電路及/或一組合邏輯區塊),該等功能單元(例如)可執行指令以執行邏輯運算,諸如對資料
(例如,一或多個運算元)執行AND、OR、NOT、NAND、NOR及XOR邏輯運算。
在將指令提供至功能單元電路以用於執行時可涉及一電子系統中之數個組件。可(例如)由一處理資源(諸如,一控制器及/或主機處理器)產生指令。資料(例如,將在其上執行指令以執行邏輯運算之運算元)可儲存於可由功能單元電路存取之一記憶體陣列中。可自記憶體陣列擷取該等指令及/或資料且在功能單元電路開始執行資料上之指令之前經定序及/或經緩衝。此外,由於可透過功能單元電路在一或多個時脈週期中執行不同類型之運算,所以亦可定序及/或緩衝運算之中間結果及/或資料。
在諸多例項中,處理資源(例如,處理器及/或相關聯之功能單元電路)可置於記憶體陣列外,且可存取資料(例如,經由處理資源與記憶體陣列之間之一匯流排來執行指令)。可使得資料經由一匯流排自記憶體陣列移動至記憶體陣列外之暫存器。
100‧‧‧計算系統/系統
110‧‧‧主機
120‧‧‧記憶體裝置
154‧‧‧匯流排
157‧‧‧匯流排
191‧‧‧轉譯後備緩衝器
270‧‧‧計算裝置
272‧‧‧處理器/請求裝置
274‧‧‧記憶體裝置/記憶體/混合記憶體立方體
276‧‧‧請求裝置/直接記憶體存取裝置
278-1、278-2、278-3、278-B‧‧‧記憶體裝置
280‧‧‧請求裝置/記憶體單元
282‧‧‧硬體邏輯裝置/邏輯裝置/邏輯基底
284‧‧‧儲庫
286-1、286-2、286-3、286-B‧‧‧分區
288‧‧‧硬體邏輯單元/儲庫控制器/記憶體控制邏輯/儲庫控制件
290‧‧‧共用記憶體控制邏輯/記憶體控制件
291‧‧‧轉譯後備緩衝器
292‧‧‧切換器
294‧‧‧鏈接介面控制器
296‧‧‧輸入/輸出鏈接
300‧‧‧計算系統/系統
310‧‧‧主機
320‧‧‧記憶體裝置/裝置
330‧‧‧記憶體陣列/陣列
340‧‧‧記憶體控制器/控制器
342‧‧‧位址電路
343‧‧‧通道控制器
344‧‧‧輸入/輸出電路
346‧‧‧列解碼器
348‧‧‧寫入電路
350‧‧‧感測電路
352‧‧‧行解碼器
354‧‧‧控制匯流排
356‧‧‧資料匯流排
357‧‧‧頻帶外匯流排
360‧‧‧邏輯
370‧‧‧邏輯電路
391‧‧‧轉譯後備緩衝器
462‧‧‧虛擬位址
464‧‧‧實體位址
466-1...466-N‧‧‧列
490‧‧‧圖表
491‧‧‧轉譯後備緩衝器
圖1係根據本發明之數個實施例之呈包含一主機及一記憶體裝置之一計算系統之形式之一設備之一方塊圖。
圖2繪示根據本發明之數個實施例之呈包含一記憶體裝置及數個請求裝置之一計算裝置之形式之一設備之一方塊圖。
圖3係根據本發明之數個實施例之呈包含一記憶體裝置之一計算系統之形式之一設備之一方塊圖。
圖4繪示根據本發明之數個實施例之展示一轉譯後備緩衝器之一圖表。
本發明之實例提供與記憶體中之一轉譯後備緩衝器相關之設備及方法。一實例性方法包括:自一主機接收包含一虛擬位址之一命
令;在一記憶體裝置之揮發性記憶體上使用一轉譯後備緩衝器(TLB)將該虛擬位址轉譯為一實體位址。
計算架構可包含其中包含虛擬位址之命令用於在一計算系統中定位資料之一定址系統。該定址系統可使用虛擬位址來允許計算系統之記憶體裝置在無來自一主機或一主機處理器之輸入及/或控制之情況下在各種實體位置處儲存資料。因此,在命令中使用之該等虛擬位址可在執行期間轉譯為實體位址,使得可定位且擷取與該等命令相關聯之資料。
在數個實施例中,可產生包含虛擬位址之命令且將該等命令發送至數個記憶體裝置以用於執行。包含虛擬位址之命令可由一主機產生且可經由一匯流排發送至數個記憶體裝置。一旦該數個記憶體裝置已經由該匯流排接收命令,則該數個記憶體裝置可在該數個記憶體上使用一轉譯後備緩衝器(TLB)將該等命令之虛擬位址轉譯為實體位址。該轉譯後備緩衝器可定位於該數個記憶體裝置之一控制器上及/或定位於該數個記憶體裝置之記憶體陣列中。再者,TLB可定位於一混合記憶體立方體(HMC)之一邏輯基底中且該HMC之邏輯基底可使用TLB及儲庫邏輯來將虛擬位址轉譯為實體位址。一旦該數個記憶體裝置已將虛擬位址轉譯為實體位址,則該數個記憶體裝置可藉由將與命令相關聯之資料定位於轉譯之實體位址處而繼續執行命令。
在數個實施例中,包含數個記憶體裝置之一計算系統可執行具有虛擬位址之多個命令,此係因為當執行命令時各記憶體裝置使用位於各別記憶體裝置上之一TLB來執行虛擬位址至實體位址之轉譯。
在本發明之以下詳細描述中,參考形成本發明之一部分之隨附圖式,且在以下詳細描述中以繪示方式展示可如何實踐本發明之一或多個實施例。充分詳細地描述此等實施例以使得一般技術者能夠實踐本發明之實施例且將瞭解可使用其他實施例且可在不違背本發明之範
疇之情況下作出程序、電及/或結構改變。如本文所使用,「數個」特定事物可係指此等事物之一或多者(例如,數個記憶體陣列可係指一或多個記憶體陣列)。
本文中之圖遵循其中第一數字或前幾個數字對應於圖式圖編號且剩餘數字識別圖式中之一元件或組件之一編號慣例。可藉由使用類似數字識別不同圖之間之類似元件或組件。例如,一記憶體裝置可在圖1中稱為120,且一類似元件可在圖3中稱為320。如將明白,可添加、交換及/或消除本文之各種實施例中展示之元件以提供本發明之數個額外實施例。另外,如將明白,圖中提供之元件之比例及相對尺度意欲繪示本發明之某些實施例且不應被認為係一限制意義。
圖1係根據本發明之數個實施例之呈包含主機110及一記憶體裝置120之一計算系統100之形式之一設備之一方塊圖。如本文所使用,一主機110、一記憶體裝置120、一記憶體陣列、控制器及/或感測電路亦可單獨稱為一「設備」。
計算系統100包含經由匯流排154及157耦合至記憶體裝置120之一主機110。主機110可為一主機系統,諸如一個人膝上型電腦、一桌上電腦、一數位相機、一行動電話或一記憶體卡讀取器,以及各種其他類型之主機。主機110可包含一系統主機板及/或背板且可包含數個處理資源(例如,一或多個處理器、微處理器或一些其他類型之控制電路)。系統100可包含用於主機110及記憶體裝置120兩者之單獨積體電路及/或主機110及記憶體裝置120可在相同積體電路上。系統100可包含數位信號處理器(DSP)及/或行動處理器。
主機110可包含一處理器。該處理器可產生由記憶體裝置120執行之命令。由主機110之處理器產生之命令可包含虛擬位址。可經由匯流排154將該等命令發送至記憶體裝置。一旦記憶體裝置120自主機接收命令,則該記憶體裝置可在記憶體裝置120上將命令之虛擬位址轉
譯為實體位址。
記憶體裝置120可為(例如)一DRAM裝置、一混合記憶體立方體(HMC)裝置、SRAM裝置、STT RAM裝置、PCRAM裝置、TRAM裝置、記憶體中處理器(PIM)裝置、RRAM裝置、NAND快閃裝置及/或NOR快閃裝置。在數個實施例中,記憶體裝置120可包含一轉譯後備緩衝器(TLB)191。可由記憶體裝置使用TLB 191將來自命令之虛擬位址轉譯為實體位址。TLB 191可定位於記憶體裝置120之一控制器中及/或記憶體裝置120之一記憶體陣列中。在數個實施例中,計算系統100可包含數個記憶體裝置,其中該數個記憶體裝置可為各包含一TLB以執行虛擬至實體位址轉譯之各種不同類型之記憶體裝置。
在數個實施例中,記憶體裝置120可自主機110接收包含一虛擬位址之一命令。記憶體裝置120識別映射至虛擬位址之一實體位址且該實體位址係用於存取記憶體裝置120。若記憶體裝置120用於識別哪個實體位址映射至來自命令之虛擬位址,則接著記憶體裝置120產生可傳輸至主機110之一誤差訊息。
為了識別映射至虛擬位址之實體位址,記憶體裝置120使用轉譯後備緩衝器(TLB)191。TLB 191可儲存將虛擬位址映射至實體位址之一圖表。TLB 191可包含自主機110接收於命令中之全部虛擬記憶體位址之圖表項目。在數個實施例中,TLB 191可包含比儲存於主機110上之一轉譯裝置(圖中未展示)中之虛擬記憶體位址存取更頻繁之虛擬記憶體位址之圖表項目。在數個實施例中,TLB 191可儲存關於一特定虛擬位址及/或實體位址存取頻率之資料。
圖2繪示根據本發明之數個實施例之呈包含一記憶體裝置274及數個請求裝置272、276、280之一計算裝置270之形式之一設備之一方塊圖。請求裝置之實例可包含一處理器272、一直接記憶體存取(DMA)裝置276及/或一記憶體單元280等等。(若干)處理器272可類似
於與圖1中繪示之主機110相關聯描述之處理器。記憶體單元280可類似於圖1中繪示之記憶體裝置120及/或類似於除記憶體裝置120外之另一記憶體單元。計算裝置270可類似於圖1中繪示之計算裝置100。在圖2中,展示關於係一混合記憶體立方體(HMC)之一記憶體274之一特定實例的更多細節。圖2中繪示之HMC 274可類似於圖1中繪示之記憶體裝置120。
根據本發明之各種實施例,可以各種方式在(若干)處理器272與HMC 274之間(諸如在以下描述之控制電路中)實施包含(若干)濾波器及複數個映射機構之一記憶體映射模組。
一HMC 274可為一單一封裝,其包含使用穿矽導通體(TSV)堆疊在一起之多個記憶體裝置278-1、278-2、278-3...278-B(例如,DRAM晶粒)及硬體邏輯裝置282(例如,一邏輯晶粒、特定應用積體電路(ASIC)、另一裝置中之對應邏輯等等),但其他實施例可不同,例如,硬體邏輯裝置282可不必與記憶體裝置278堆疊。HMC 274內之記憶體可組織成子組,例如儲庫284,其中各儲庫284在功能上及操作上獨立於其他儲庫284。各儲庫284可包含來自記憶體裝置278之各者之記憶體之一分區286-1、286-2、286-3、...、286-B。各儲庫284可在邏輯裝置282中包含一硬體邏輯單元288(例如,儲庫控制器),該硬體邏輯單元288類似於儲庫284之一記憶體控制器而運作。各儲庫控制器288可耦合至複數個記憶體裝置278之一各別子組。例如,儲庫控制器288可管理儲庫284之記憶體操作,包含判定其本身之時序要求(例如)而非由一請求裝置(諸如一處理器)管理。儲庫控制器288可包含用於與一處理器272之進行請求及回應之數個緩衝器且可使用該數個緩衝器將回應發送至處理器272,該發送不按相對於其中自處理器272接收請求之一順序之順序。因此,處理器272可經組態以在不知道與該請求相關聯之一讀取時間之情況下經由一介面將一請求發送至HMC
274。
圖2包含在記憶體裝置278與請求裝置272、276、280之間耦合之一邏輯裝置282之一更詳細視圖之一繪示。邏輯基底282可包含各儲庫之記憶體控制邏輯288,例如,儲庫控制件。儲庫控制器288可耦合至HMC 274之可合併儲庫284之功能之一共用記憶體控制邏輯290。然而,共用記憶體控制邏輯290不必包括傳統意義上之一中心記憶體控制器,此係因為可直接控制儲庫284之各者,例如獨立於彼此而控制時序、存取等等且因為共用記憶體控制邏輯290不必與請求裝置272、276、280介接(例如,直接介接)。因此,在一些實施例中,計算裝置270及/或記憶體274不包含一中心記憶體控制器。記憶體控制邏輯290可耦合至一切換器292,例如一縱橫切換器。切換器292可將共同內部頻寬之可用性自儲庫284提供至輸入/輸出(I/O)鏈接296。切換器292可耦合至控制至一請求裝置272、276、280之I/O鏈接296之鏈接介面控制器294。例如,I/O鏈接296可為串列全雙工輸入/輸出鏈接。邏輯裝置282可提供用於記憶體274之一邏輯/實體介面。切換器292可包含轉譯後備緩衝器(TLB)291。可由邏輯基底282之記憶體控制件290及儲庫控制件288使用TLB 291來將自請求裝置272、276及/或280接收之命令之虛擬位址轉譯為記憶體274中之實體位址。
記憶體274可自請求裝置(諸如一處理器272、一DMA裝置276及/或一記憶體單元280等等)接收請求。如本文所描述,在一些實施例中,邏輯基底282可經組態以使用TLB 291來將來自命令之虛擬位址轉譯為實體位址。記憶體控制件290及/或儲庫控制件288可使用經轉譯之實體位址來定位與由記憶體274接收之命令相關聯之資料。
圖3係根據本發明之數個實施例之呈包含一記憶體裝置320之一計算系統300之形式之一設備之一方塊圖。如本文所使用,一記憶體裝置320、記憶體控制器340、通道控制器343、記憶體庫仲裁器345、
記憶體陣列330、感測電路350及邏輯電路370亦可單獨視為一「設備」。
系統300包含耦合至(例如連接至)記憶體裝置320之一主機310,記憶體裝置320包含一記憶體陣列330。在數個實施例中,記憶體裝置320可為一記憶體中處理器(PIM)裝置。主機310可為一主機系統,諸如一個人膝上型電腦、一桌上電腦、一數位相機、一智慧型電話或一記憶體卡讀取器,以及各種其他類型之主機。主機310可包含邏輯360,一系統主機板,及/或背板且可包含數個處理資源(例如,一或多個處理器、微處理器或一些其他類型之控制電路)。系統300可包含單獨積體電路或主機310及記憶體裝置320兩者皆可在相同積體電路上。系統300可為(例如)一伺服器系統及/或一高效能計算(HPC)系統及/或其之一部分。儘管圖3展示之實例繪示具有一馮諾依曼架構之一系統,但本發明之實施例可在非馮諾依曼架構(可不包含通常與一馮諾依曼架構相關聯之一或多個組件(例如,CPU、ALU等等))中實施。
為清楚起見,系統300已經簡化而著重於尤其與本發明相關之特徵。記憶體陣列330可為(例如)一DRAM陣列、SRAM陣列、STT RAM陣列、PCRAM陣列、TRAM陣列、RRAM陣列、NAND快閃陣列及/或NOR快閃陣列。陣列330可包括配置成由存取線(在本文中可稱為字線或選擇線)耦合之列及由感測線(在本文中可稱為資料線或數位線)耦合之行之記憶體胞。儘管圖3中展示一單一陣列330,但實施例不受如此限制。例如,記憶體裝置320可包含數個陣列330(例如,DRAM胞、NAND快閃胞等等之數個記憶體庫)。
記憶體裝置320包含位址電路342以鎖存經由一資料匯流排356(例如,一I/O匯流排)透過I/O電路344提供之位址信號。可透過包含一頻帶外匯流排357之一高速介面(HSI)將狀態及/或例外狀況資訊自記憶體裝置320上之記憶體控制器340提供至一通道控制器343,該狀態及/
或該例外狀況資訊繼而可自通道控制器343提供至主機310。透過位址電路342接收位址信號且由一列解碼器346及一行解碼器352解碼該等位址信號以存取記憶體陣列330。可藉由使用感測電路350感測資料線上之電壓及/或電流變化而自記憶體陣列330讀取資料。感測電路350可自記憶體陣列330讀取且鎖存資料之一頁(例如列)。I/O電路344可用於經由資料匯流排356與主機310進行雙向資料通信。寫入電路348用於將資料寫入至記憶體陣列330。
記憶體控制器340(例如,記憶體庫控制邏輯及/或定序器)解碼由控制匯流排354自主機310提供之信號。此等信號可包含晶片啟用信號、寫入啟用信號及位址鎖存信號,該等信號用於控制在記憶體陣列330上執行之操作,包含資料讀取、資料寫入及資料擦除操作。在各種實施例中,記憶體控制器340負責執行來自主機310之指令且定序對陣列330之存取。記憶體控制器340可為一狀態機、一定序器或一些其他類型之控制器。控制器340可控制一陣列(例如,記憶體陣列330)中之資料之移位(例如,向右或向左)。控制器340可包含轉譯後備緩衝器(TLB)391。可由記憶體控制器340將TLB 391用於將自主機310接收之命令之虛擬位址轉譯為記憶體陣列330中之實體位址。
控制器340可經由匯流排354自主機310接收命令。控制器340可經組態以使用TLB 391來將來自命令之虛擬位址轉譯為實體位址。控制器340可使用經轉譯之實體位址來定位與由記憶體裝置320接收之命令相關聯之資料。
在數個實施例中,感測電路350可包括數個感測放大器及數個計算組件,該等計算組件可充當且在本文中稱為一累加器且可用於執行邏輯運算(例如,對與互補資料線相關聯之資料執行)。
在數個實施例中,感測電路350可用於使用儲存於陣列330中之資料作為輸入來執行邏輯運算且將該等邏輯運算之結果儲存回至陣列
330而不經由一感測線位址存取傳送資料(例如,不發射一行解碼信號)。因而,可使用感測電路350且在感測電路350內執行各種計算功能而非藉由處理感測電路外之資源(或與其相關聯地)執行各種計算功能(例如,藉由與主機310及/或定位於裝置320上(例如,在控制器340上或其他地方)之其他處理電路(諸如ALU電路)相關聯之一處理器)。
在各種先前方法中,將自記憶體經由感測電路讀取(例如)與一運算元相關聯之資料且將其經由I/O線(例如,經由局域I/O線及/或全域I/O線)提供至外部ALU電路。外部ALU電路可包含數個暫存器且將使用運算元執行計算功能且該結果將經由I/O線傳送回至陣列。相比而言,在本發明之數個實施例中,感測電路350經組態以對儲存於記憶體陣列330中之資料執行邏輯運算且在不啟用耦合至感測電路350之一I/O線(例如,一局域I/O線)之情況下將該結果儲存回至記憶體陣列330。感測電路350可與陣列之記憶體胞按一定間距形成。額外邏輯電路370可耦合至感測電路350且可用於儲存(例如,快取及/或緩衝)本文描述之運算之結果。
因而,在數個實施例中,陣列330及感測電路350外之電路無需執行計算功能,此係因為感測電路350可在不使用一外部處理資源之情況下執行合適邏輯運算以執行此等計算功能。因此,感測電路350可用於至少在一些程度上補充及/或取代此一外部處理資源(或此一外部處理資源之至少頻寬消耗)。
然而,在數個實施例中,感測電路350可用於執行除由一外部處理資源(例如,主機310)執行之邏輯運算之外的邏輯運算(例如,以執行指令)。例如,主機310及/或感測電路350可受限於僅執行某些邏輯運算及/或特定數目個邏輯運算。
啟用一I/O線可包含啟用(例如接通)具有耦合至一解碼信號(例如,一行解碼信號)之一閘極及耦合至I/O線之一源極/汲極之一電晶
體。然而,實施例並不受限於啟用一I/O線。例如,在數個實施例中,感測電路(例如350)可用於在不啟用陣列之行解碼線之情況下執行邏輯運算,然而,(若干)局域I/O線可經啟用以將一結果傳送至一適合位置而非傳送回至陣列330(例如,至一外部暫存器)。
圖4繪示根據本發明之數個實施例之展示一轉譯後備緩衝器491之一圖表490。在數個實施例中,TLB 491可為一內容可定址記憶體(CAM)裝置或n路關聯記憶體裝置。TLB 491可儲存具有列及行之一圖表,其中各列466-1、466-2、466-3...466-N可對應於一單獨圖表項目。因而,各列466-1、466-2、466-3...466-N包含一虛擬位址462及一實體位址464。
列466-1、466-2、466-3...466-N包含TLB 491中含有之所有虛擬記憶體位址之一列表。此外,實體位址464包含對應於各別列466-1、466-2、466-3...466-N之虛擬位址462之各列466-1、466-2、466-3...466-N中之一實體位址。當一記憶體裝置在執行包含可轉譯為一記憶體裝置上之實體位址之虛擬位址之一命令時,虛擬位址462可映射至圖表490中之實體位址466。
儘管已在本文中繪示及描述特定實施例,但一般技術者將明白經計算以達成相同結果之一配置可替代所展示之特定實施例。本發明意欲涵蓋本發明之一或多個實施例之調適或變動。應瞭解,以一繪示方式而非一限制方式作出以上描述。熟習技術者將在檢視以上描述之後旋即明白以上實施例與本文未具體描述之其他實施例之組合。本發明之一或多個實施例之範疇包含其中使用以上結構及方法之其他應用。因此,應參考隨附申請專利範圍以及此等申請專利範圍所授權之等效物之完整範圍來判定本發明之一或多個實施例之範疇。
在前述[實施方式]中,出於使本發明流暢之目的而將一些特徵分組進一單一實施例中。本發明之此方法將不可解譯為反映本發明之所
揭示之實施例必須使用比各申請專利範圍中所明確敘述之更多特徵之一意向。確切而言,如以下申請專利範圍所反映,發明性標的在於少於一單一所揭示實施例之所有特徵。因此,以下申請專利範圍藉此併入[實施方式]中,其中各申請專利範圍獨立作為一單獨實施例。
Claims (23)
- 一種方法,其包括:在一記憶體裝置處自一主機接收包含數個虛擬位址之一命令,該記憶體裝置包括一邏輯裝置及數個具有數個儲庫(vaults)之記憶體陣列,其中:該數個儲庫之每一者包括來自該數個記憶體陣列之每一者之一分區(partition);且該數個儲庫之每一者在功能上及操作上獨立於其他儲庫;在一記憶體裝置之揮發性記憶體上使用定位於一邏輯基底(base)之一切換器中之一轉譯後備緩衝器(translation lookaside buffer,TLB)將該數個虛擬位址轉譯為數個實體位址,其中:該邏輯基底定位於該記憶體裝置上;且該切換器經組態以將共同頻寬之可用性自該數個儲庫提供至該主機使得該主機使用該共同頻寬實質上同時存取該數個記憶體儲庫。
- 如請求項1之方法,其中該方法包含:將該命令自該主機經由一匯流排接收至該記憶體裝置。
- 如請求項1之方法,其中將該數個虛擬位址轉譯為該數個實體位址包含:在一混合記憶體立方體(HMC)上將該數個虛擬位址轉譯為該數個實體位址。
- 如請求項1之方法,其中將該數個虛擬位址轉譯為該數個實體位址包含:在一記憶體中處理器(PIM)裝置上將該數個虛擬位址轉譯為該數個實體位址。
- 如請求項1之方法,其中該方法包含:藉由回應於正移動之該記憶體裝置中之資料而再映射該數個虛擬位址與該數個實體位址之間之一關係而更新該TLB。
- 如請求項1之方法,其中將該數個虛擬位址轉譯為該數個實體位址包含僅包含與該記憶體裝置上之該數個實體位址相關聯之位元之一轉譯。
- 如請求項1之方法,其中轉譯包含:使用定位於該記憶體裝置之一控制器中之該TLB。
- 如請求項1之方法,其中轉譯包含:使用定位於該記憶體裝置之一記憶體陣列中之該TLB。
- 如請求項1之方法,其中轉譯包含:使用該TLB以在該記憶體裝置上將該數個虛擬位址直接映射至該數個實體位址。
- 如請求項1之方法,其中該方法包含:使用該記憶體裝置以將該數個虛擬位址轉譯為該數個實體位址。
- 一種設備,其包括:數個記憶體陣列,其包括數個儲庫(vaults),其中:該數個儲庫之每一者包括來自該數個記憶體陣列之每一者之一分區(partition);且該數個儲庫之每一者在功能上及操作上獨立於其他儲庫;及一邏輯基底,該數個記憶體陣列堆疊於其上且包含數個控制器,其中:該數個控制器之每一者耦合至該數個儲庫中一個別儲庫,且經組態以控制該數個儲庫中之該個別儲庫;且該邏輯基底包含在該邏輯基底之一切換器上之一轉譯後備緩衝器(TLB),其中該切換器耦合至該數個控制器且經組態以:使用該TLB將來自從一主機接收之一指令之數個虛擬位址轉譯為該記憶體陣列中數個實體位址;且將共同內部頻寬之可用性自該數個儲庫提供至該主機,其中該主機使用該共同內部頻寬以實質上同時存取該數個儲庫。
- 如請求項11之設備,其中該控制器經組態以自該主機在一匯流排上接收該命令。
- 如請求項11之設備,其中該數個記憶體陣列之該數個實體位址包含該數個記憶體陣列之各可定址實體位址。
- 一種方法,其包括:將包括數個虛擬位址之一命令自一主機經由一匯流排接收至一記憶體裝置,其中該記憶體裝置包括數個具有數個儲庫(vaults)之記憶體陣列,其中;該數個儲庫之每一者包括來自該數個記憶體陣列之每一者之一分區(partition);且該數個儲庫之每一者在功能上及操作上獨立於其他儲庫;使用一轉譯後備緩衝器(TLB)將該數個虛擬位址轉譯為數個實體位址,其中:該TLB定位於該記憶體裝置之一邏輯基底之一切換器上;且該切換器經組態以將共同內部頻寬之可用性自該數個儲庫提供至該主機,其中該主機使用該共同內部頻寬實質上同時存取該數個儲庫;及藉由將與該命令相關聯之資料定位(locating)於該等經轉譯之實體位址處而執行該命令。
- 如請求項14之方法,其中該方法包含:用該主機上之一處理器產生包含該數個虛擬位址之該命令。
- 如請求項14之方法,其中將該數個虛擬位址轉譯為該數個實體位址發生在該匯流排之該記憶體裝置側。
- 一種設備,其包括:數個記憶體陣列,該數個記憶體陣列之每一者包括數個儲庫,其中該數個儲庫之每一者包括來自該數個記憶體陣列之每一者之一分區(partition);且該數個儲庫之每一者在功能上及操作上獨立於其他儲庫;及一邏輯基底,該數個記憶體陣列堆疊於其上,該邏輯基包含定位於該邏輯基底之一切換器上之一轉譯後備緩衝器(TLB)且其中:該邏輯基底經組態以接收一命令且在該數個記憶體裝置中使用該TLB將來自該命令之數個虛擬位址轉譯為數個實體位址;且該切換器經組態以將共同頻寬之可用性自該數個儲庫提供至該主機,其中該主機使用該共同頻寬實質上同時存取該數個記憶體陣列。
- 如請求項17之設備,其中該邏輯基底包含用於將來自該命令之該數個虛擬位址轉譯為數個實體位址之數個儲庫控制器。
- 如請求項17之設備,其中該邏輯基底耦合至包含一處理器之一主機且其中該邏輯基底經組態以自該主機接收該命令。
- 如請求項17之設備,其中該TLB經組態以在該數個記憶體裝置中將該數個虛擬位址映射至該數個實體位址之各者。
- 一種設備,其包括:一主機;一邏輯基底;及數個記憶體陣列,其經由該邏輯基底耦合至該主機,其中該數個記憶體陣列包括數個儲庫,且其中:該數個儲庫之每一者包括來自該數個記憶體陣列之每一者之一分區(partition);且該數個儲庫之每一者在功能上及操作上獨立於其他儲庫;及該邏輯基底包含複數個控制器及定位在該邏輯基底之一切換器上之一轉譯後備緩衝器(TLB),其中:該複數個控制器中每一控制器經組態以獨立於彼此控制該數個陣列之一各別陣列之該數個儲庫之一儲庫;且該切換器耦合至該複數個控制器及該主機,該切換器經組態以:將該數個虛擬位址轉譯成該數個記憶體陣列上數個實體位址,其中該數個經轉譯之實體位址被發送至該數個記憶體陣列之一對應記憶體陣列;及將共同內部頻寬之可用性自該數個儲庫提供至該主機,其中使用該共同頻寬實質上同時存取該數個儲庫。
- 如請求項21之設備,其中該主機經組態以產生包含經發送至該數個記憶體陣列之數個虛擬位址之數個命令。
- 如請求項22之設備,其中該數個記憶體陣列之各者經組態以使用其各別TLB來轉譯不超過數個位元以識別其各別記憶體裝置上之該數個實體位址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/718,649 US10007435B2 (en) | 2015-05-21 | 2015-05-21 | Translation lookaside buffer in memory |
US14/718,649 | 2015-05-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201706855A TW201706855A (zh) | 2017-02-16 |
TWI633436B true TWI633436B (zh) | 2018-08-21 |
Family
ID=57320601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105115860A TWI633436B (zh) | 2015-05-21 | 2016-05-20 | 記憶體中之轉譯後備緩衝器 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10007435B2 (zh) |
EP (1) | EP3298497B1 (zh) |
KR (1) | KR102054335B1 (zh) |
CN (1) | CN107667354B (zh) |
TW (1) | TWI633436B (zh) |
WO (1) | WO2016187205A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9524248B2 (en) * | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US10007435B2 (en) * | 2015-05-21 | 2018-06-26 | Micron Technology, Inc. | Translation lookaside buffer in memory |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
KR20180050849A (ko) * | 2016-11-07 | 2018-05-16 | 삼성전자주식회사 | 전자 장치 및 메모리 액세스 방법 |
TWI643067B (zh) * | 2017-04-14 | 2018-12-01 | 國立臺灣科技大學 | 三維非及閘快閃記憶體及其記憶體管理方法 |
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 |
US10416927B2 (en) * | 2017-08-31 | 2019-09-17 | Micron Technology, Inc. | Processing in memory |
US10809942B2 (en) | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US11321257B2 (en) * | 2019-12-31 | 2022-05-03 | Micron Technology, Inc. | Quality of service control of logical devices for a memory sub-system |
US11321238B2 (en) * | 2020-08-11 | 2022-05-03 | Micron Technology, Inc. | User process identifier based address translation |
US20220382478A1 (en) * | 2021-06-01 | 2022-12-01 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for page migration in memory systems |
US20230297499A1 (en) * | 2022-01-21 | 2023-09-21 | Nvidia Corporation | Locating a memory unit associated with a memory address utilizing a mapper |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI230862B (en) * | 2001-07-18 | 2005-04-11 | Ip First Llc | Translation lookaside buffer that caches memory type information |
US20100005269A1 (en) * | 2008-07-01 | 2010-01-07 | Arm Limited | Translation of virtual to physical addresses |
CN102473140A (zh) * | 2009-07-17 | 2012-05-23 | 株式会社东芝 | 存储器管理装置 |
WO2014014711A1 (en) * | 2012-07-18 | 2014-01-23 | Micron Technology, Inc | Memory management for a hierarchical memory system |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345352B1 (en) | 1998-09-30 | 2002-02-05 | Apple Computer, Inc. | Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions |
US6412057B1 (en) * | 1999-02-08 | 2002-06-25 | Kabushiki Kaisha Toshiba | Microprocessor with virtual-to-physical address translation using flags |
US20040054867A1 (en) | 2002-09-13 | 2004-03-18 | Paulus Stravers | Translation lookaside buffer |
US20040225840A1 (en) * | 2003-05-09 | 2004-11-11 | O'connor Dennis M. | Apparatus and method to provide multithreaded computer processing |
JP4520790B2 (ja) * | 2004-07-30 | 2010-08-11 | 富士通株式会社 | 情報処理装置およびソフトウェアプリフェッチ制御方法 |
US7454590B2 (en) * | 2005-09-09 | 2008-11-18 | Sun Microsystems, Inc. | Multithreaded processor having a source processor core to subsequently delay continued processing of demap operation until responses are received from each of remaining processor cores |
DE112005003736T5 (de) * | 2005-12-29 | 2008-11-13 | Intel Corporation, Santa Clara | Virtueller Übersetzungspuffer |
US7555628B2 (en) | 2006-08-15 | 2009-06-30 | Intel Corporation | Synchronizing a translation lookaside buffer to an extended paging table |
US8601234B2 (en) | 2007-11-07 | 2013-12-03 | Qualcomm Incorporated | Configurable translation lookaside buffer |
US8151076B2 (en) | 2008-04-04 | 2012-04-03 | Cisco Technology, Inc. | Mapping memory segments in a translation lookaside buffer |
US8069300B2 (en) | 2008-09-30 | 2011-11-29 | Micron Technology, Inc. | Solid state storage device controller with expansion mode |
US8108650B2 (en) | 2009-05-29 | 2012-01-31 | Apple Inc. | Translation lookaside buffer (TLB) with reserved areas for specific sources |
US8429135B1 (en) | 2009-06-11 | 2013-04-23 | Cisco Technology, Inc. | Processor fault tolerance through translation lookaside buffer refresh |
US8386749B2 (en) * | 2010-03-16 | 2013-02-26 | Advanced Micro Devices, Inc. | Address mapping in virtualized processing system |
US8694737B2 (en) * | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
WO2012061633A2 (en) * | 2010-11-03 | 2012-05-10 | Netlist, Inc. | Method and apparatus for optimizing driver load in a memory package |
KR101707927B1 (ko) | 2010-11-25 | 2017-02-28 | 삼성전자주식회사 | 메모리 시스템 및 그 운용방법 |
US9251093B2 (en) | 2011-05-19 | 2016-02-02 | International Business Machines Corporation | Managing the translation look-aside buffer (TLB) of an emulated machine |
WO2013028827A1 (en) | 2011-08-24 | 2013-02-28 | Rambus Inc. | Methods and systems for mapping a peripheral function onto a legacy memory interface |
US8880819B2 (en) | 2011-12-13 | 2014-11-04 | Micron Technology, Inc. | Memory apparatuses, computer systems and methods for ordering memory responses |
US9081706B2 (en) * | 2012-05-10 | 2015-07-14 | Oracle International Corporation | Using a shared last-level TLB to reduce address-translation latency |
US9047090B2 (en) * | 2012-08-07 | 2015-06-02 | Qualcomm Incorporated | Methods, systems and devices for hybrid memory management |
US9158705B2 (en) | 2013-03-13 | 2015-10-13 | Intel Corporation | Stride-based translation lookaside buffer (TLB) prefetching with adaptive offset |
US9342443B2 (en) | 2013-03-15 | 2016-05-17 | Micron Technology, Inc. | Systems and methods for memory system management based on thermal information of a memory system |
US11074169B2 (en) * | 2013-07-03 | 2021-07-27 | Micron Technology, Inc. | Programmed memory controlled data movement and timing within a main memory device |
US9639476B2 (en) * | 2013-09-26 | 2017-05-02 | Cavium, Inc. | Merged TLB structure for multiple sequential address translations |
US9208103B2 (en) * | 2013-09-26 | 2015-12-08 | Cavium, Inc. | Translation bypass in multi-stage address translation |
CN103744640B (zh) * | 2014-01-15 | 2017-03-08 | 龙芯中科技术有限公司 | 位查找电路、cam、tlb、存储器及微处理器 |
US10007435B2 (en) * | 2015-05-21 | 2018-06-26 | Micron Technology, Inc. | Translation lookaside buffer in memory |
US9626300B2 (en) * | 2015-07-27 | 2017-04-18 | Google Inc. | Address caching in switches |
US20180203807A1 (en) * | 2017-01-13 | 2018-07-19 | Arm Limited | Partitioning tlb or cache allocation |
-
2015
- 2015-05-21 US US14/718,649 patent/US10007435B2/en active Active
-
2016
- 2016-05-17 WO PCT/US2016/032883 patent/WO2016187205A1/en unknown
- 2016-05-17 KR KR1020177034841A patent/KR102054335B1/ko active IP Right Grant
- 2016-05-17 EP EP16797148.0A patent/EP3298497B1/en active Active
- 2016-05-17 CN CN201680029486.9A patent/CN107667354B/zh active Active
- 2016-05-20 TW TW105115860A patent/TWI633436B/zh active
-
2018
- 2018-06-15 US US16/009,335 patent/US10884626B2/en active Active
-
2020
- 2020-12-11 US US17/119,781 patent/US11494078B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI230862B (en) * | 2001-07-18 | 2005-04-11 | Ip First Llc | Translation lookaside buffer that caches memory type information |
US20100005269A1 (en) * | 2008-07-01 | 2010-01-07 | Arm Limited | Translation of virtual to physical addresses |
CN102473140A (zh) * | 2009-07-17 | 2012-05-23 | 株式会社东芝 | 存储器管理装置 |
TWI460588B (zh) * | 2009-07-17 | 2014-11-11 | Toshiba Kk | Memory management device and memory information processing device |
WO2014014711A1 (en) * | 2012-07-18 | 2014-01-23 | Micron Technology, Inc | Memory management for a hierarchical memory system |
CN104487953A (zh) * | 2012-07-18 | 2015-04-01 | 美光科技公司 | 用于层次型存储器系统的存储器管理 |
Also Published As
Publication number | Publication date |
---|---|
CN107667354A (zh) | 2018-02-06 |
EP3298497B1 (en) | 2020-07-08 |
KR102054335B1 (ko) | 2019-12-10 |
US10007435B2 (en) | 2018-06-26 |
EP3298497A1 (en) | 2018-03-28 |
US20160342339A1 (en) | 2016-11-24 |
WO2016187205A1 (en) | 2016-11-24 |
TW201706855A (zh) | 2017-02-16 |
EP3298497A4 (en) | 2019-01-02 |
US10884626B2 (en) | 2021-01-05 |
US20180292997A1 (en) | 2018-10-11 |
US20210096748A1 (en) | 2021-04-01 |
CN107667354B (zh) | 2021-10-22 |
KR20170140813A (ko) | 2017-12-21 |
US11494078B2 (en) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI633436B (zh) | 記憶體中之轉譯後備緩衝器 | |
US11915741B2 (en) | Apparatuses and methods for logic/memory devices | |
US12050536B2 (en) | Apparatuses and methods for compute enabled cache | |
US11468944B2 (en) | Utilization of data stored in an edge section of an array | |
US10878856B2 (en) | Data transfer between subarrays in memory | |
CN109427384B (zh) | 存储器内处理 | |
US20220308995A1 (en) | Integrated three-dimensional (3d) dram cache | |
US20220197829A1 (en) | High capacity hidden memory |