TWI442244B - 具有內部處理器之記憶體及控制記憶體存取之方法 - Google Patents

具有內部處理器之記憶體及控制記憶體存取之方法 Download PDF

Info

Publication number
TWI442244B
TWI442244B TW099135487A TW99135487A TWI442244B TW I442244 B TWI442244 B TW I442244B TW 099135487 A TW099135487 A TW 099135487A TW 99135487 A TW99135487 A TW 99135487A TW I442244 B TWI442244 B TW I442244B
Authority
TW
Taiwan
Prior art keywords
memory
command
instructions
buffer
memory array
Prior art date
Application number
TW099135487A
Other languages
English (en)
Other versions
TW201137628A (en
Inventor
Robert M Walker
Dan Skinner
J Thomas Pawlowski
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of TW201137628A publication Critical patent/TW201137628A/zh
Application granted granted Critical
Publication of TWI442244B publication Critical patent/TWI442244B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

具有內部處理器之記憶體及控制記憶體存取之方法
本發明之實施例一般而言係關於記憶體系統,且更特定而言係關於具有內部處理器之記憶體系統。
本章節意欲向讀者介紹可與本發明之各種態樣有關的、在下文予以闡述及/或主張之各種技術態樣。據信,本論述有助於向讀者提供背景資訊,以促進對本發明之各種態樣之一更好理解。因此,應理解,應就此閱讀此等陳述,而非作為對先前技術之認可。
電子系統通常包含一個或多個處理器,該一個或多個處理器可擷取並執行指令,且儲存該等所執行指令之結果,諸如用以將該等結果儲存至一適合的位置。一處理器通常可使用算術邏輯單元(ALU)電路來對資料(諸如,一個或多個運算元)執行指令(諸如算術與邏輯運算)。舉例而言,ALU電路可自一個運算元加上、減去、乘以或除以另一運算元,或者可使一個或多個運算元經歷邏輯運算,諸如AND、OR、XOR及NOT邏輯函數。一處理器可執行具有不同複雜度之指令,且不同指令可涉及在一個或多個時脈循環中透過ALU電路輸入該(等)運算元。
在將一指令集指引至ALU以供執行中可涉及電子系統中之多個組件。在某些裝置中,該等指令可由電子系統中之一控制器或某一其他適合的處理器產生。可將資料(例如,將對其執行該等指令之運算元,以及該等指令)儲存於可由ALU存取之一記憶體組件(例如,一記憶體陣列)中。在ALU開始對資料執行指令之前,可自記憶體擷取該等指令及資料並對其進行定序及/或緩衝。此外,由於可在一個或多個時脈循環中透過ALU執行不同類型之運算,因此亦可對該等指令及/或資料之中間結果進行定序及/或緩衝。
通常,一處理器(例如,ALU電路)可在該記憶體陣列外部,且必須經由該處理器與該記憶體陣列之間的一匯流排存取資料以執行一指令集。由於處理速度可受限於該匯流排之頻寬,因此可在一記憶體中處理器(PIM)裝置中改良處理效能,其中處理器係實施於一記憶體內部(例如,直接在記憶體裝置上),從而節約處理時間及電力。此外,該記憶體亦可經組態以在幾乎沒有外部幫助之情況下執行指令,從而進一步節省處理電力。
一電子裝置通常可使用一處理器來在多個階段中處理指令。處理該等指令可包含執行該等指令,並儲存該等所執行指令之結果。舉例而言,指令及將對其執行該等指令之資料可由一外部處理器(例如,一記憶體控制器)發送至一內部處理器(例如,ALU電路)。該等指令及/或資料可首先儲存於一記憶體陣列中以便在該內部處理器可用於執行該等指令時進行擷取。一旦已執行該(等)指令,該內部處理器便可將該(等)指令之結果儲存於一記憶體組件、該記憶體陣列中,或儲存至任一其他適合的輸出。
在記憶體外部之一處理器可需要一外部匯流排來將資訊(例如,指令及/或資料)傳送至該記憶體陣列及傳送來自該記憶體陣列之資訊。處理效率可部分地受限於該外部匯流排之頻寬,此乃因在一記憶體陣列與一處理器之間傳送資訊可消耗電力及時間。在一項或多項實施例中,一記憶體可藉由允許資訊在沒有一外部匯流排之情況下在該記憶體陣列與一處理器之間傳送來節約電力。
根據當前技術,一個或多個處理器(諸如,ALU)可與記憶體中之一記憶體組件封裝在一起。舉例而言,該記憶體可係一記憶體中處理器(PIM),且可包含嵌入於一記憶體裝置(例如,一記憶體陣列)上之ALU,該記憶體裝置可儲存欲由該等ALU執行之指令及資料以及來自該等所執行指令之結果。在其他實施例中,該等ALU及該記憶體陣列可在同一封裝中之唯一晶粒上。舉例而言,該等ALU及該記憶體陣列可依一多晶片封裝(MCP)配置,且可藉由一個或多個直通矽導通體(TSV)電連接。與一記憶體裝置封裝在一起(舉例而言,無論是嵌入於一記憶體裝置上還是作為一MCP之一部分)之處理器可稱為「內部處理器」,且因此與一處理器封裝在一起之一記憶體裝置可視為「具有」一內部處理器之一記憶體。如本文中所使用,一「計算引擎」可係一內部處理器之一實例,且可與根據當前技術之一記憶體裝置封裝在一起。此外,一內部處理器(諸如,一計算引擎)可包括一個或多個ALU。
該記憶體亦可包含諸如用以組織指令及資料之一定序器、用以自記憶體陣列存取資料之一提取單元以及用以儲存(例如,保存)資料及/或指令之一緩衝器之組件。該緩衝器亦可在中間結果或最終結果被傳送至記憶體陣列之前保存該等中間結果或最終結果。在一項實施例中,該定序器可仲裁對該記憶體陣列之存取,或可與仲裁對該陣列之存取之該記憶體外部之一處理器(亦即,一外部處理器)通信。在一項或多項實施例中,該提取單元亦可仲裁對該記憶體陣列之存取。對該記憶體上之記憶體陣列之內部仲裁可使得該記憶體能夠在幾乎沒有來自外部裝置(諸如外部處理器)之幫助之情況下處理指令。
當前技術之一項實施例涉及經組態以在減少與該記憶體外部之其他裝置或處理器通信之情況下處理指令之一記憶體。更具體而言,某些組件(諸如一定序器及一提取單元)可在實質上無外部控制或外部資料傳送之情況下讀取及寫入資料並組織運算之執行。減少外部通信之量可允許一記憶體具有較少外部匯流排線或具有較小之寬度之外部匯流排線。此外,減少外部通信之量可減小處理電力,此乃因可節省出入該記憶體之電力-消耗之資料傳送。
參考該等圖式在以下實施方式中闡述某些實施例。
現轉向圖,圖1繪示通常由參考編號10表示之一基於處理器之系統。如下文所闡釋,系統10可包含根據當前技術之實施例製造之各種電子裝置。系統10可係各種類型中之任一者,諸如一電腦、呼叫器、蜂巢式電話、個人組織器、控制電路等。在一典型的基於處理器之系統中,一個或多個處理器12(諸如,一微處理器)控制對系統10中之系統功能及請求之處理。如下文所闡釋,處理器12及系統10之其他子組件可包含根據當前技術之一項或多項實施例製造之記憶體。
系統10通常包含一電源14。舉例而言,若系統10係一可攜式系統,則電源14可有利地包含一燃料電池、一電力拾取裝置、永久電池、可替換電池及/或可充電電池。舉例而言,電源14亦可包含一AC配接器,因此系統10可插入至一壁式插座中。舉例而言,電源14亦可包含一DC配接器,以使得系統10可插入至一車載點煙器中。
端視系統10執行之功能,可將各種其他裝置耦合至處理器12。舉例而言,可將一輸入裝置16耦合至處理器12。舉例而言,輸入裝置16可包含按鈕、開關、一鍵盤、一光筆、一滑鼠、一數位化器及觸針及/或一語音辨識系統。亦可將一顯示器18耦合至處理器12。輸入裝置16及/或顯示器18可各自或兩者皆形成一使用者介面。舉例而言,顯示器18可包含一LCD、一SED顯示器、一CRT顯示器、一DLP顯示器、一電漿顯示器、一OLED顯示器、LED及/或一音訊顯示器。此外,亦可將一RF子系統/基頻處理器20耦合至處理器12。RF子系統/基頻處理器20可包含耦合至一RF接收器且耦合至一RF發射器之一天線(未顯示)。亦可將一個或多個通信埠22耦合至處理器12。舉例而言,通信埠22可經調適以耦合至一個或多個周邊裝置24(諸如,一數據機、一列印機、一電腦),或耦合至一網路(諸如例如,一區域網路、遠端區域網路、內部網路或網際網路)。
處理器12通常藉由處理儲存於記憶體中之程式來控制系統10。舉例而言,該等軟體程式可包含一作業系統、資料庫軟體、製圖軟體、文書處理軟體及/或視訊、圖片或聲音編輯軟體。該記憶體以可操作方式耦合至處理器12以儲存並促進指令之執行從而實施各種程式。舉例而言,處理器12可耦合至系統記憶體26,該系統記憶體可包含動態隨機存取記憶體(DRAM)及/或同步動態隨機存取記憶體(SDRAM)。系統記憶體26可包含揮發性記憶體、非揮發性記憶體或其一組合。系統記憶體26通常較大,以使得其可動態地儲存所載入之應用程式及資料。
處理器12亦可耦合至非揮發性記憶體28,此並不暗示系統記憶體26必需為揮發性。非揮發性記憶體28可包含欲結合系統記憶體26使用之唯讀記憶體(ROM),諸如一EPROM、電阻式唯讀記憶體(RROM)及/或快閃記憶體。ROM之大小通常選擇為恰好足夠大以儲存任一必需的作業系統、應用程式及固定資料。另外,非揮發性記憶體28可包含一高容量記憶體,諸如一磁帶機或磁碟機記憶體(諸如例如,包含電阻式記憶體或其他類型之非揮發性固態記憶體之一混合式硬碟機(Hybrid Drive))。
當前技術之某些實施例涉及處理器12與系統記憶體26之組件之間的通信。舉例而言,處理器12可包含一通用處理器、一中央處理單元、一處理器核心、一ASIC、一記憶體控制器及/或(例如)能夠自記憶體(諸如系統記憶體26中之記憶體裝置)之內部處理器發送並接收信號之一ALU。處理器12與一記憶體(諸如系統記憶體26)之組件之間的通信中所涉及之系統10之組件通常可稱為一「記憶體系統」30,如圖2之方塊圖中所圖解說明。在某些實施例中,一記憶體系統30可包含一記憶體裝置34,其可係系統10(如圖1中)之系統記憶體26之一部分且可具有一內部處理器(諸如,計算引擎38)。記憶體系統30亦可包含一外部處理器32,其可與另一通用處理器一起位於一晶片上系統(SOC)中以共同形成一處理器控制式系統10(如圖1中)之一處理器12。外部處理器32(其亦可係一外部記憶體控制器)可與一記憶體裝置34之某些組件通信及/或控制一記憶體裝置34之某些組件。
記憶體系統30可包含具有並不限於外部處理器32與記憶體裝置32間的通信之功能的組件。舉例而言,外部處理器32可控制除記憶體裝置34以外的裝置。然而,外部處理器32(如關於記憶體系統30所闡釋)可係指與記憶體裝置34之某些組件通信及/或控制記憶體裝置34之某些組件之外部處理器32的一個功能。同樣地,並非系統記憶體26之所有部分皆可係記憶體系統30之一部分。根據當前技術,「記憶體裝置」34可係指與外部處理器32之通信中所涉及之記憶體系統的組件。
外部處理器32與記憶體裝置34可藉由一標準記憶體介面44以可操作方式耦合,此可允許外部處理器32與記憶體裝置34之間的資料傳送,且可允許外部處理器32將命令發送(例如,傳送)至記憶體裝置34。在一項或多項實施例中,舉例而言,標準記憶體介面44之類型可包含DDR、DDR2、DDR3、LPDDR或LPDDR2。此外,在某些實施例中,一額外介面可經組態以允許記憶體裝置34與外部處理器32之間的資料以及命令(例如,請求、授予、指令等)傳送。舉例而言,外部處理器32與記憶體裝置34亦可藉由一控制介面46以可操作方式耦合,此可允許命令(包含自記憶體裝置34至外部處理器32之命令)在外部處理器32與記憶體裝置34之間的傳送。
一記憶體(諸如一記憶體裝置34)可經組態以實質上處理指令(包含執行指令及儲存已完成結果)、可已減少與外部處理器32之通信。雖然對記憶體裝置34上之一記憶體陣列36之存取可通常由外部處理器32控制,但在一項或多項實施例中,對指令之處理(包含記憶體陣列存取)可實質上控制在記憶體裝置34內。舉例而言,一旦外部處理器32將指令發送至記憶體陣列36,對該等指令之處理(包含存取記憶體陣列36以讀取及/或寫入資料)便可大部分發生於記憶體裝置34內。
可係指任一適合形式之儲存器之記憶體陣列36可包含(例如)一DRAM陣列或一SDRAM陣列。在一項或多項實施例中,記憶體陣列36可儲存資料、將對該資料執行之指令及所執行指令之已完成結果。記憶體陣列36可由記憶體系統30中之某些組件存取,其等可存取該陣列以讀取指令及/ 或資料,寫入已完成結果等。通常,在記憶體陣列36之一記憶體庫中一次僅可執行一個命令(例如,讀取及/或寫入)。因此,可仲裁對記憶體陣列36之存取,以使得記憶體陣列記憶體庫中之命令不衝突。
記憶體裝置34亦可包含一內部處理器,諸如一計算引擎38,其可包含一個或多個算術邏輯單元(ALU)。此外,計算引擎38可係指記憶體裝置34上之複數個計算引擎38。計算引擎38可經組態以對資料執行運算。在一項實施例中,計算引擎38可包含經組態以對資料(諸如運算元或先前運算之中間結果)執行各種數學或邏輯運算之一個或多個ALU區塊。
計算引擎38可由一定序器40控制,該計算引擎能夠存取記憶體陣列36,包含自記憶體陣列36擷取資訊(例如,讀取指令及/或資料),及將資訊儲存(例如,寫入已完成結果)於記憶體陣列36中。擷取及儲存資訊之過程亦可涉及一提取單元50,一記憶體控制器件48及一記憶體組件(諸如緩衝器42)。定序器40可將命令資訊及資料位址傳送至提取單元50,且提取單元50可定序記憶體陣列36狀態以讀取及寫入資料。在一項實施例中,記憶體控制器件48可將由提取單元50自定序器40接收之命令及位址位元解碼。
一旦計算引擎38已執行該等指令,便可在將結果寫入至記憶體陣列36之前將該等結果儲存於緩衝器42中。此外,由於某些指令可在該計算引擎中需要一個以上時脈循環及/或需要執行多個運算,因此亦可將中間結果儲存於記憶體裝置34中之記憶體組件中。舉例而言,可將中間結果儲存於記憶體組件(諸如耦合至計算引擎38之緩衝器42或記憶體暫存器)中。在一項或多項實施例中,一計算引擎38可針對該等中間結果存取緩衝器42以執行後續運算。
緩衝器42可包含一個或多個緩衝器層。舉例而言,且如將參考圖3進一步論述,緩衝器42可包含可儲存資料(例如,運算元、中間結果,已完成結果等)之一計算緩衝器54,及可儲存自記憶體陣列36傳送之指令之一指令緩衝器。緩衝器42亦可包含額外緩衝器(諸如,一資料緩衝器或一簡單緩衝器),其可提供較密集儲存,並可儲存所執行指令之中間結果或最終結果。如本文中所使用,「緩衝器42」可係指任一類型之緩衝器層(例如,一計算緩衝器、指令緩衝器、資料緩衝器等),或能夠保存傳送至計算引擎38及自計算引擎38傳送之資料及/或指令之任一類型之記憶體。
如所論述,具有內部處理器之記憶體具有經改良之處理能力,此乃因一記憶體內(例如,一內部處理器與一記憶體陣列之間)之內部通訊可減少電力消耗及處理時間。在一項或多項實施例中,具有經組態以在記憶體裝置34內實質上處理指令之記憶體裝置34之記憶體系統30可進一步改良處理能力。更具體而言,記憶體裝置34可經組態以仲裁對裝置34上之記憶體陣列36之存取。
用於仲裁記憶體陣列存取之一過程可繪示於圖3之記憶體裝置部分52中,圖3圖解說明記憶體裝置部分52之不同部件之間的可能通信。此外,用於仲裁一記憶體裝置34中之記憶體陣列存取之一過程80亦可闡釋於圖4之流程圖中。由於圖4可闡釋圖3中所繪示之記憶體裝置組件及通信,因此可同時論述圖3與圖4。
過程80可在定序器40自一指令緩衝器56提取一指令時開始(區塊82)。在一項實施例中,該指令可已在外部諸如藉由一外部處理器32傳送至記憶體陣列36(如圖2中),且緩衝於指令緩衝器56中。該指令可包含將對資料執行之運算,用以讀取資料或寫入資料至記憶體陣列36之命令,以及資料位址(例如,記憶體陣列36中資料位於其中之記憶體庫及頁)。該定序器可藉由將一控制信號58發送至指令緩衝器56以識別該指令緩衝器中將自其擷取該等指令之列來擷取一指令 可將該等指令傳送(路徑60)至定序器40。
在一項或多項實施例中,該等指令可係直接或間接的。一直接指令可包含多個命令,諸如,用於組織將對該資料執行之運算之命令、用於讀取或寫入該資料之命令,及/或該資料之位址。舉例而言,直接指令可包含用以自記憶體陣列36讀取資料或寫入資料至記憶體陣列36之命令、記憶體陣列36中針對該資料之位址(例如,讀取運算元A及一運算元B之位址)、以及告知定序器40如何組織關於運算元A與B之某些運算之命令。一間接指令可包含比較而言較簡單的命令,該等命令可一次一個命令地傳送至定序器40。舉例而言,一間接指令可包含用以自記憶體陣列36提取一運算元A之一個命令,用以自記憶體陣列36提取一運算元B之另一個命令,用以組織關於運算元A與B之某些運算之一第三命令,及用於識別陣列36中已完成結果可儲存於其中之一位址之一第四命令。雖然直接指令因可一同傳送一直接指令之所有部分(例如,該直接指令之不同命令)而可增加處理速度,但間接指令可達成一較簡單記憶體裝置34。舉例而言,在經組態以傳送間接指令之一記憶體裝置34中,定序器40可係較簡單,匯流排60可無需為寬的,及/或指令緩衝器56可無需與傳送直接指令之一指令緩衝器56一樣寬。
由指令緩衝器56傳送之指令可包含用以自記憶體陣列36讀取資料(例如,運算元)或寫入資料(例如,已完成結果)至記憶體陣列36之命令。舉例而言,該等指令可命令定序器40擷取儲存於陣列36中某些位址(例如,一特定記憶體庫及列)處之某些運算元。另一選擇係,由於某些指令可使用先前運算之中間結果執行,因此該等指令可包含將自計算緩衝器42擷取之中間結果之位址。若該等指令係使用中間結果執行,則定序器40可無需存取記憶體陣列36。
若該等指令命令定序器40存取儲存於記憶體陣列36中之運算元,則可仲裁對陣列36之存取以防止可在一個以上指令(例如,讀取及寫入)正一次在陣列36之同一記憶體庫內發生之情況下發生之記憶體陣列36之訛誤。在一項或多項實施例中,記憶體裝置34可經組態以使得可在記憶體裝置34內執行對記憶體陣列存取之仲裁。在一項實施例中,定序器40可控制記憶體陣列仲裁,且可在外部通信(例如,與外部處理器32通信)以仲裁記憶體陣列存取。然而,可實質上減小與外部裝置之通信。舉例而言,對記憶體陣列36之存取可實質上由記憶體裝置34中之提取單元50控制。
過程80繪示實質上由提取單元50控制之記憶體陣列存取。一旦定序器40接收到指令,定序器40便可將該等指令(包含命令62及位址64)傳送至提取單元50(區塊84)。在一項實施例中,提取單元50可將命令62及位址64傳送至記憶體控制器件48,其將該等指令解碼成經解碼位址68及控制信號66(區塊86)。經解碼位址68及控制信號66可命令自適當位址(例如,某一記憶體庫、頁及/或列)之資料之讀取或寫入。提取單元50可然後啟動(例如,開啟)保存該資料之記憶體庫或資料將寫入至其之記憶體庫(區塊90)。
提取單元50可實質上控制對記憶體陣列之存取以防止對記憶體陣列36之同一記憶體庫執行一個以上命令(例如,讀取或寫入資料)。根據當前技術,對存取記憶體陣列36之此仲裁可具有各種實施方案。在一項實施例中,記憶體陣列36可包含控制邏輯74,其可經組態以監視開啟或關閉陣列36中之一頁之時間。控制邏輯74可參與「交握」,交握可係指將指示所關注之一記憶體庫(亦即,命令提取單元50自其讀取或寫入至其之記憶體庫)之一狀態之一控制信號76發送至提取單元50。提取單元50可在對所關注之該記憶體庫執行命令之前等待信號76(區塊90)。
若所關注之該記憶體庫可用(例如,未正對所關注之該記憶體庫執行命令),則提取單元50可執行自所關注之該記憶體庫讀取及/或寫入至所關注之該記憶體庫之命令(區塊92)。若在定序器40處所接收之指令包含用以讀取資料之命令,則該提取單元可自所關注之該記憶體庫擷取該資料或將該資料傳送至計算緩衝器54,以使得該資料將可用於一計算引擎38以對該資料執行指令。此外,若在定序器40處所接收之指令包含用以寫入資料至該記憶體陣列之命令,則提取單元50可將該資料(例如,已完成結果)寫入記憶體陣列36中之所命令位址處。
一旦執行該等命令(區塊92),記憶體陣列36之控制邏輯74便可將一信號76發送至提取單元50以指示已對所關注之該記憶體庫執行該等命令(區塊94)。提取單元50可然後預充電(例如,關閉)記憶體陣列36上所關注之該記憶體庫(區塊96),且控制邏輯74可發送確認已關閉所關注之該記憶體庫之一信號74(區塊98)。提取單元50可發送向定序器40指示已執行該命令、且已擷取該資料或將該資料儲存至記憶體陣列36中之適當位址之一信號78(區塊100)。可將該資料傳送(路徑70)至計算緩衝器54,該計算緩衝器可保存該資料直至計算引擎38(如圖2中,未繪示於圖3中)使用該資料來執行指令。
如所論述,不同實施方案可用於對記憶體陣列存取之仲裁。在另一實施例中,提取單元50可基於計時器79對命令(例如,讀取或寫入)之執行計時。計時器79可係基於往來於記憶體陣列36之資料傳送通常所花費時間之時脈循環。舉例而言,在於該記憶體陣列中開啟一記憶體庫(區塊88)之後且在對該記憶體庫執行命令之前,可啟動一計時器79,且提取單元50可等待直至滿足由計時器79設定之時間條件以確保未正對所關注之該記憶體庫執行其他命令(區塊90)。一旦滿足該等計時器條件,提取單元50便可開始自所關注之該記憶體庫讀取或寫入至所關注之該記憶體庫(區塊92)。基於將執行之該命令,可設定另一計時器以指示該命令將完成之時間。提取單元50可在預充電(關閉)記憶體陣列36中之該記憶體庫之前等待滿足命令完成計時器。此外,在一項實施例中,一計時器79可基於估計該命令將完成之時間而在該提取單元開始對一記憶體庫執行一命令時啟動。對彼記憶體庫之進一步存取可係基於來自該先前命令之所啟動計時器79。在一項或多項實施例中,計時器79(諸如,tRCD,tRP等)可用於在提取單元50執行命令或關閉所關注之該記憶體庫之前設定一適當的時間量。
雖然過程80闡釋包含讀取及/或寫入至記憶體陣列36之指令處理,但定序器40亦可接收不包含存取記憶體陣列36之指令。舉例而言,定序器40可接收可使用先前運算或指令(其可已緩衝於計算緩衝器54之某一列中)之中間結果執行之指令。除執行先前所論述之過程80外,定序器40可將一控制信號72發送至計算緩衝器54以識別計算緩衝器54中該等中間結果位於其上之列。由於該資料已在計算緩衝器54中,因此計算緩衝器54與記憶體陣列36間的傳送可不針對執行其中運算元已緩衝於計算緩衝器54中作為來自先前運算之中間結果之運算發生。
此外,如所論述,緩衝器42(如圖2中)可包含可被分割及/或具有通向記憶體裝置34之組件之不同匯流排之一個或多個層。緩衝器42可包含一指令緩衝器56及一計算緩衝器54,其等作為單獨緩衝器42圖解說明於圖3中,每一緩衝器皆具有通向定序器40及記憶體陣列36之個別匯流排。然而,圖3中之單獨緩衝器54及56亦可係具有用於儲存資料及指令之層且具有位於緩衝器42(例如,經組合之緩衝器54與56)與記憶體陣列36及/或定序器40之間的一共享匯流排之一個緩衝器42。
雖然易於對本發明作出各種修改及替代形式,但已以實例方式在圖式中顯示了具體實施例並已在本文中對其進行了詳細闡述。然而,應理解,本發明並不意欲限於所揭示之特定形式。而是,本發明旨在涵蓋歸屬於如由以下隨附申請專利範圍中所界定之本發明精神及範疇內之所有修改、等效形式及替代方案。
10...系統
12...處理器
14...電源
16...輸入裝置
18...顯示器
20...RF子系統/基頻處理器
22...通信埠
24...周邊裝置
26...系統記憶體
28...非揮發性記憶體
30...記憶體系統
32...外部處理器
34...記憶體裝置
36...記憶體陣列
38...計算引擎
40...定序器
42...緩衝器
44...標準記憶體介面
46...控制介面
48...記憶體控制器件
50...提取單元
52...記憶體裝置部分
54...計算緩衝器
56...指令緩衝器
58...控制信號
60...指令傳送(路徑)
62...指令(命令)
64...指令(位址)
66...控制信號
68...經解碼位址
70...資料傳送(路徑)
72...控制信號
74...控制邏輯
76...控制信號
78...信號
79...計時器
圖1根據當前技術之一實施例繪示一基於處理器之系統之一方塊圖;
圖2根據當前技術之一實施例繪示具有與一外部處理器介接之一內部處理器之一記憶體系統之一方塊圖;
圖3根據當前技術之一項或多項實施例圖解說明具有一內部處理器之一記憶體之一部分及該記憶體之不同組件之間的通信路線;且
圖4係根據當前技術之一項或多項實施例繪示用於存取具有一內部處理器之一記憶體中之一記憶體陣列之一過程之一流程圖。
36...計算引擎
40...定序器
48...記憶體控制器件
50...提取單元
52...記憶體裝置部分
54...計算緩衝器
56...指令緩衝器
58...控制信號
60...指令傳送(路徑)
62...指令(命令)
64...指令(位址)
66...控制信號
68...經解碼位址
70...資料傳送(路徑)
72...控制信號
74...控制邏輯
76...控制信號
78...信號
79...計時器

Claims (27)

  1. 一種記憶體,其包括:一內部處理器,其經組態以執行指令;一計算緩衝器,其經組態以儲存經該內部處理器執行之指令的中間結果;一記憶體陣列,其經組態以儲存資訊及提供該資訊至該內部處理器;一提取單元,其經組態以實質上控制對該記憶體陣列之存取;以及一定序器,該定序器經組態以接收一第一指令,該第一指令包括該計算緩衝器之中間結果資料之一第一位址及用於該內部處理器以使用自該計算緩衝器之該中間結果資料而執行之一第一命令,且該定序器經組態以傳送該位址至該計算緩衝器及傳送該第一命令至該內部處理器。
  2. 如請求項1之記憶體,其中該提取單元經組態以接收:用於一運算之資料之一第二位址;及用以自該記憶體陣列讀取或寫入至該記憶體陣列之一第二命令。
  3. 如請求項1之記憶體,其進一步包括經組態以與該提取單元通信從而指示該記憶體陣列之一狀態之控制邏輯。
  4. 如請求項3之記憶體,其中該提取單元經組態以基於來自該控制邏輯之該通信而存取該記憶體陣列。
  5. 如請求項3之記憶體,其中該提取單元經組態以啟動該 記憶體陣列中之一記憶體庫。
  6. 如請求項5之記憶體,其中該控制邏輯經組態以通信指示該記憶體庫可用之一信號,且其中該提取單元基於該信號而自該記憶體庫讀取或寫入至該記憶體庫。
  7. 如請求項1之記憶體,其中該記憶體陣列包括該計算緩衝器。
  8. 如請求項1之記憶體,其中該提取單元係以可操作方式耦合至經組態以指示該記憶體陣列中之一記憶體庫之可用時間之一計時器。
  9. 如請求項1之記憶體,其中該提取單元係以可操作方式耦合至經組態以指示已對該記憶體陣列中之一記憶體庫執行一讀取命令或一寫入命令之時間之一計時器。
  10. 如請求項1之記憶體,其中該定序器經組態以接收一第二指令,該第二指令包括資料之一第二位址及用以自該記憶體陣列讀取該資料或將該資料寫入至該記憶體陣列之一命令,且該定序器經組態以將該第二命令及該第二位址傳送至該提取單元。
  11. 如請求項1之記憶體,其中該記憶體經組態以自一外部處理器接收指令,其中該等指令包括一第二命令、將由該內部處理器執行之一第二指令及用於該第二指令之資料中之一者或多者。
  12. 一種用於控制記憶體存取之方法,其包括:藉由一記憶體之一定序器將指令傳送至亦具有一內部處理器之該記憶體之一提取單元,其中該等指令包括資 料之一位址及用以自該記憶體之一記憶體陣列讀取該資料或將該資料寫入至該記憶體陣列之一命令,且其中該提取單元經組態以實質上控制對該記憶體陣列之存取;在該提取單元接收到包括該資料之該記憶體陣列之一記憶體庫可用之指示時執行該命令以讀取該資料或寫入該資料;自該記憶體之一緩衝器擷取指令;及將一控制信號自該定序器發送至該緩衝器以識別將自其擷取該等指令之該緩衝器中之一個或多個列。
  13. 如請求項12之方法,其中該等指令包括用於組織將被執行於該資料上之操作之一命令。
  14. 如請求項12之方法,其中傳送指令包括傳送資料之該位址及用以讀取該資料之該等命令作為單獨間接命令。
  15. 如請求項12之方法,其中傳送指令包括傳送該等指令作為一個直接命令。
  16. 如請求項12之方法,其進一步包括基於自該記憶體陣列發送至該提取單元之一信號而接收該記憶體庫可用之一指示。
  17. 如請求項12之方法,其進一步包括監視該記憶體陣列中一個或多個記憶體庫之一狀態。
  18. 如請求項12之方法,其包括:啟動該記憶體庫;及在該記憶體陣列與該提取單元之間通信以指示該記憶體庫可用。
  19. 如請求項12之方法,其進一步包括基於該記憶體中之一計時器而接收該記憶體庫可用之一指示。
  20. 如請求項19之方法,其進一步包括將該計時器設定至對該記憶體庫之一先前讀取命令或一先前寫入命令完成時之一時間。
  21. 一種仲裁對一記憶體陣列之存取之方法,該方法包括:自一記憶體之一指令緩衝器接收若干指令,其中該等指令經組態為將使用來自一先前操作之若干中間結果而被執行,其中該等中間結果被該記憶體之一計算緩衝器儲存;基於自該指令緩衝器接收之該等指令而啟動該記憶體陣列之一記憶體庫;藉由該記憶體之一定序器將一信號傳送至該記憶體之一提取單元以指示該記憶體庫可用,其中該提取單元經組態以實質上控制對該記憶體陣列之存取;及基於該信號對該記憶體庫執行一命令,其中該命令包括一讀取命令及一寫入命令中之一者或多者。
  22. 如請求項21之方法,其包括將一第二信號傳送至該提取單元以指示執行該命令。
  23. 如請求項22之方法,其包括基於該第二信號預充電該記憶體庫。
  24. 一種使用一記憶體之一提取單元而實質上控制對該記憶體之一記憶體陣列之存取之方法,該方法包括:自該記憶體之一第一緩衝器接收若干指令,其中該等 指令經組態為將使用來自一先前操作之若干中間結果而被執行,該等中間結果被該記憶體之一第二緩衝器儲存;基於自該第一緩衝器接收之該等指令而啟動該記憶體陣列之一記憶體庫;啟動以可操作方式耦合至該提取單元的該記憶體之一計時器,其中該計時器設定該提取單元可開始對該記憶體庫執行一命令時之一時間;及基於該計時器對該記憶體庫執行該命令,其中該命令包括一讀取命令及一寫入命令中之一者或多者。
  25. 如請求項24之方法,其進一步包括基於對該記憶體庫完成一先前命令之時間而設定該時間。
  26. 如請求項24之方法,其包括啟動以可操作方式耦合至該提取單元之一第二計時器,其中該第二計時器設定對該記憶體庫之該命令完成時之一時間。
  27. 如請求項26之方法,其包括在該第二計時器指示對該記憶體庫之該命令完成時預充電該記憶體庫。
TW099135487A 2009-10-21 2010-10-18 具有內部處理器之記憶體及控制記憶體存取之方法 TWI442244B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/603,393 US8719516B2 (en) 2009-10-21 2009-10-21 Memory having internal processors and methods of controlling memory access

Publications (2)

Publication Number Publication Date
TW201137628A TW201137628A (en) 2011-11-01
TWI442244B true TWI442244B (zh) 2014-06-21

Family

ID=43447261

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099135487A TWI442244B (zh) 2009-10-21 2010-10-18 具有內部處理器之記憶體及控制記憶體存取之方法

Country Status (6)

Country Link
US (2) US8719516B2 (zh)
EP (1) EP2491561B1 (zh)
KR (1) KR101354346B1 (zh)
CN (1) CN102640226B (zh)
TW (1) TWI442244B (zh)
WO (1) WO2011049753A1 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281395B2 (en) * 2009-01-07 2012-10-02 Micron Technology, Inc. Pattern-recognition processor with matching-data reporting module
US8234460B2 (en) 2009-06-04 2012-07-31 Micron Technology, Inc. Communication between internal and external processors
US8521958B2 (en) 2009-06-04 2013-08-27 Micron Technology, Inc. Internal processor buffer
US8380916B2 (en) 2009-06-04 2013-02-19 Micron Technology, Inc. Control of page access in memory
US9535876B2 (en) 2009-06-04 2017-01-03 Micron Technology, Inc. Conditional operation in an internal processor of a memory device
US9477636B2 (en) 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory
TWI631459B (zh) * 2011-11-04 2018-08-01 曾銘松 記憶體裝置與其運作方法
US9733847B2 (en) 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
US10061590B2 (en) * 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
WO2016126478A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for memory device as a store for program instructions
FR3032814B1 (fr) * 2015-02-18 2018-02-02 Upmem Circuit dram muni d'un processeur integre
US10860323B2 (en) 2015-10-16 2020-12-08 Samsung Electronics Co., Ltd. Method and apparatus for processing instructions using processing-in-memory
KR20170060739A (ko) 2015-11-25 2017-06-02 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
KR102548591B1 (ko) * 2016-05-30 2023-06-29 삼성전자주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR20170136829A (ko) 2016-06-02 2017-12-12 삼성전자주식회사 반도체 장치, 메모리 장치 및 메모리 장치의 동작 방법
US10423353B2 (en) * 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
KR20180093648A (ko) * 2017-02-14 2018-08-22 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10684955B2 (en) * 2017-04-21 2020-06-16 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations
US10236038B2 (en) * 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
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
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
KR102395463B1 (ko) 2017-09-27 2022-05-09 삼성전자주식회사 적층형 메모리 장치, 이를 포함하는 시스템 및 그 동작 방법
US10866900B2 (en) 2017-10-17 2020-12-15 Samsung Electronics Co., Ltd. ISA extension for high-bandwidth memory
US10825491B2 (en) * 2017-12-11 2020-11-03 Micron Technology, Inc. Systems and methods for writing zeros to a memory array
CN111971663A (zh) * 2018-04-16 2020-11-20 埃米尔·巴登霍斯特 处理器和操作处理器的方法
KR102665410B1 (ko) * 2018-07-30 2024-05-13 삼성전자주식회사 메모리 장치의 내부 프로세싱 동작 방법
TWI749331B (zh) * 2018-10-11 2021-12-11 力晶積成電子製造股份有限公司 具有記憶體內運算架構的記憶體及其操作方法
US10483978B1 (en) * 2018-10-16 2019-11-19 Micron Technology, Inc. Memory device processing
US10884663B2 (en) * 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cells
US10884664B2 (en) 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cell
US11687363B2 (en) * 2019-07-15 2023-06-27 Micron Technology, Inc. Internal management traffic regulation for memory sub-systems
US11720354B2 (en) * 2020-01-07 2023-08-08 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
FR3118528B1 (fr) * 2020-12-28 2023-12-01 Commissariat Energie Atomique Module mémoire adapté à mettre en oeuvre des fonctions de calcul
US20230060826A1 (en) * 2021-09-01 2023-03-02 Micron Technology, Inc. Command scheduling component for memory
US11887688B2 (en) * 2021-10-26 2024-01-30 Micron Technology, Inc. Techniques for indicating row activation

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131082A (en) * 1989-06-09 1992-07-14 International Business Machines Corporation Command delivery for a computing system for transfers between a host and subsystem including providing direct commands or indirect commands indicating the address of the subsystem control block
JP2505887B2 (ja) * 1989-07-14 1996-06-12 富士通株式会社 命令処理システム
KR960001273B1 (ko) * 1991-04-30 1996-01-25 가부시키가이샤 도시바 단일칩 마이크로컴퓨터
US5634073A (en) * 1994-10-14 1997-05-27 Compaq Computer Corporation System having a plurality of posting queues associated with different types of write operations for selectively checking one queue based upon type of read operation
US6810449B1 (en) * 1995-10-19 2004-10-26 Rambus, Inc. Protocol for communication with dynamic memory
JPH09293015A (ja) * 1996-04-24 1997-11-11 Mitsubishi Electric Corp メモリシステムおよびそれに用いられる半導体記憶装置
US6298413B1 (en) * 1998-11-19 2001-10-02 Micron Technology, Inc. Apparatus for controlling refresh of a multibank memory device
US6442673B1 (en) * 1999-11-05 2002-08-27 I.P. First L.L.C. Update forwarding cache for address mode
US6629234B1 (en) * 2000-03-30 2003-09-30 Ip. First, L.L.C. Speculative generation at address generation stage of previous instruction result stored in forward cache for use by succeeding address dependent instruction
US6859856B2 (en) * 2001-10-23 2005-02-22 Flex P Industries Sdn. Bhd Method and system for a compact flash memory controller
TW561396B (en) * 2001-11-02 2003-11-11 Via Tech Inc Arbitration device and method for reading and writing operation of memory
US6877046B2 (en) * 2002-03-29 2005-04-05 International Business Machines Corporation Method and apparatus for memory with embedded processor
US6857055B2 (en) * 2002-08-15 2005-02-15 Micron Technology Inc. Programmable embedded DRAM current monitor
JP2004213337A (ja) 2002-12-27 2004-07-29 Nec Computertechno Ltd 半導体記憶装置及び実装型半導体装置
JP3973597B2 (ja) * 2003-05-14 2007-09-12 株式会社ソニー・コンピュータエンタテインメント プリフェッチ命令制御方法、プリフェッチ命令制御装置、キャッシュメモリ制御装置、オブジェクトコードの生成方法および装置
US20060129740A1 (en) * 2004-12-13 2006-06-15 Hermann Ruckerbauer Memory device, memory controller and method for operating the same
US9535876B2 (en) * 2009-06-04 2017-01-03 Micron Technology, Inc. Conditional operation in an internal processor of a memory device
US8521958B2 (en) * 2009-06-04 2013-08-27 Micron Technology, Inc. Internal processor buffer
US8380916B2 (en) 2009-06-04 2013-02-19 Micron Technology, Inc. Control of page access in memory
US8234460B2 (en) 2009-06-04 2012-07-31 Micron Technology, Inc. Communication between internal and external processors
US9684632B2 (en) * 2009-06-04 2017-06-20 Micron Technology, Inc. Parallel processing and internal processors
US9606807B2 (en) * 2009-06-04 2017-03-28 Micron Technology, Inc. Direct communication with a processor internal to a memory device
US9477636B2 (en) * 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory

Also Published As

Publication number Publication date
TW201137628A (en) 2011-11-01
CN102640226B (zh) 2015-11-25
KR20120082928A (ko) 2012-07-24
WO2011049753A1 (en) 2011-04-28
CN102640226A (zh) 2012-08-15
EP2491561A1 (en) 2012-08-29
US8719516B2 (en) 2014-05-06
US9164698B2 (en) 2015-10-20
US20110093665A1 (en) 2011-04-21
KR101354346B1 (ko) 2014-01-22
US20140244948A1 (en) 2014-08-28
EP2491561B1 (en) 2019-12-04

Similar Documents

Publication Publication Date Title
TWI442244B (zh) 具有內部處理器之記憶體及控制記憶體存取之方法
US11914530B2 (en) Memory having internal processors and data communication methods in memory
US10970247B2 (en) Conditional operation in an internal processor of a memory device
TWI529534B (zh) 用於在內部及外部處理器之間通信之系統及方法
TWI462114B (zh) 內部處理器緩衝器
US9606807B2 (en) Direct communication with a processor internal to a memory device
US20240184724A1 (en) Memory having internal processors and data communication methods in memory