TW202219752A - 智能運算電阻式記憶體、記憶體電路、記憶體子系統、運算系統及其電腦實現方法 - Google Patents
智能運算電阻式記憶體、記憶體電路、記憶體子系統、運算系統及其電腦實現方法 Download PDFInfo
- Publication number
- TW202219752A TW202219752A TW110125203A TW110125203A TW202219752A TW 202219752 A TW202219752 A TW 202219752A TW 110125203 A TW110125203 A TW 110125203A TW 110125203 A TW110125203 A TW 110125203A TW 202219752 A TW202219752 A TW 202219752A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- resistive
- circuit
- resistive memory
- power
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 596
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000006870 function Effects 0.000 claims abstract description 70
- 230000003044 adaptive effect Effects 0.000 claims abstract description 58
- 238000012360 testing method Methods 0.000 claims abstract description 27
- 230000006872 improvement Effects 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 43
- 239000000872 buffer Substances 0.000 claims description 33
- 238000001514 detection method Methods 0.000 claims description 33
- 210000004027 cell Anatomy 0.000 claims description 26
- 230000008859 change Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 17
- 238000005457 optimization Methods 0.000 claims description 13
- 230000007704 transition Effects 0.000 claims description 12
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 claims description 10
- 239000002041 carbon nanotube Substances 0.000 claims description 10
- 229910021393 carbon nanotube Inorganic materials 0.000 claims description 10
- 230000007334 memory performance Effects 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 6
- 210000000352 storage cell Anatomy 0.000 claims description 6
- 230000000737 periodic effect Effects 0.000 claims description 5
- 238000012805 post-processing Methods 0.000 claims description 4
- 230000005055 memory storage Effects 0.000 claims 1
- 238000007726 management method Methods 0.000 description 81
- 238000004891 communication Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 19
- 230000009471 action Effects 0.000 description 16
- 238000013500 data storage Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 10
- 238000012546 transfer Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 7
- 238000003491 array Methods 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- MXRPNYMMDLFYDL-YFKPBYRVSA-N AMCC Chemical compound CNC(=O)SC[C@@H](C(O)=O)NC(C)=O MXRPNYMMDLFYDL-YFKPBYRVSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011524 similarity measure Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1697—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/225—Auxiliary circuits
- G11C11/2297—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0038—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1206—Location of test circuitry on chip or wafer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
- G11C2029/3602—Pattern generator
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2227—Standby or low power modes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/30—Resistive cell, memory material aspects
- G11C2213/35—Material including carbon, e.g. graphite, grapheme
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/14—Implementation of control logic, e.g. test mode decoders
- G11C29/16—Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/025—Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/143—Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
- G11C5/144—Detection of predetermined disconnection or reduction of power supply, e.g. power down or power standby
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/109—Control signal input circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Power Sources (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種智能運算記憶體電路的系統、方法以及設備,其具有經由邏輯電路和整合型處理器在記憶體內執行廣泛功能的靈活性。在一個實施例中,智能運算記憶體電路包括整合型處理器和邏輯電路以實現自適應系統單晶片(SOC)和電子子系統功率或性能改進,以及用於智能運算記憶體電路的自適應記憶體管理和控制。電阻式記憶體陣列耦合到整合型處理器。本文揭露了一種為電阻式記憶體提供擴展檢測、性能和功率最佳化能力的自適應記憶體管理和控制電路(Adaptive Memory Management and Control circuitry, AMMC)。在一個實施例中,電阻式記憶體包括電阻式記憶體陣列和自適應記憶體管理和控制電路(AMMC)。AMMC 配置為電阻式記憶體提供擴展檢測、可靠性、性能和功率最佳化的功能。
Description
本文大致上是涉及到記憶體陣列,並且更具體地來說是涉及具有智能運算記憶體電路的智能運算電阻式記憶體(例如,電阻式隨機存取記憶體),其具有整合型處理器和邏輯電路用以實現自適應記憶體管理和控制以及自適應系統單晶片 (SOC) 和電子子系統功率或性能的改進。
磁阻式隨機存取記憶體 (MRAM) 設備正在被開發作為傳統半導體記憶體設備的替代品,可用於許多的應用中,包括:物聯網 (IoT)、人工智能 (AI)、消費者到伺服器資訊儲存(Consumer to Server information storage)、無線和有線通訊包括:行動電話和/或資訊處理包括:微處理器。嵌入式 MRAM 設備提供持續性(非揮發性)儲存,其密度比傳統靜態隨機存取記憶體(SRAM)的密度相對更高。
用於物聯網、可穿戴市場和人工智能 (AI) 的現代可攜式電子設備具有限制電池壽命或影響熱功率耗散(thermal power dissipation)的功耗問題。必須存取晶片外接(off chip)記憶體將導致功耗比存取晶片內建(on-chip)記憶體要高出 30-60 倍。系統單晶片 (SoC) 中的中央處理單元 (CPU) 是電子設備中功耗最高的元件之一。任何時候 CPU 通電時,功率都會從幾微安到幾百微安,在某些情況下會達到幾毫安甚至幾十毫安。因此,在 ON 狀態下,CPU 的功率增加了 200 至 3,000 倍以上。頻繁的晶片外掛記憶體存取和 CPU 在 ON 狀態下運行會顯著增加功耗並縮短電池壽命或損害電子設備的熱功耗。此外,對於高性能系統,前往晶片外掛,有時是主伺服器CPU,意味著延遲將可能會影響系統效率和整體功耗。
本發明揭露的系統、方法和設備均具有多個創新面向,沒有一個可以單獨負責本發明公開的期望屬性。
本文中描述標的之一個創新面向是可以被實現為具有整合型處理器和邏輯電路的系統、方法或記憶體電路,用以實現自適應功率或性能改進以及自適應記憶體管理和控制。在一個實施例中,智能運算記憶體電路包括整合型處理器和邏輯電路以實現自適應功率或性能改進以及自適應記憶體管理和控制。電阻式記憶體陣列與整合型處理器緊密耦合,以獲得最佳的面積和功率效率。本文中描述標的之另一個創新面向是可以被實現為電阻式記憶體,其包括電阻式記憶體陣列和緊密耦合到電阻式記憶體陣列的自適應記憶體管理和控制電路(Adaptive Memory Management and Control circuitry , AMMC)。AMMC 配置有擴展的檢測、性能和功率最佳化功能。 電阻式記憶體包括一個整合型處理器,用於為電阻式記憶體 AMMC 的控制器,以提供擴展的檢測和性能能力。
本文中描述標的之一種或多種實現的細節在附圖和以下的描述中闡述。其他特徵、面向和優點將從描述、附圖和申請專利範圍中變得更為明顯。 請注意,以下圖式的相對尺寸可能未按比例繪製。
本發明主張2020年7月9日申請之美國申請案16/924,948以及16/924,958的優先權,基於所有的目的將其所有內容引用併入本文中。
在以下描述中,闡述了許多特定細節,例如特定元件、電路和過程的示例,以提供對本文內容的徹底理解。如本文所用,用語“耦合”是指直接連接或是透過一種或多種居間元件或電路連接。 此外,在以下描述中並為了解釋的目的,闡述了特定命名/術語法以提供對本文內容的徹底理解。然而,對於本領域技術人員來說顯而易見的是,這些具體細節可能不是實務上範例實現所必需的。在其他情況下,眾所周知的電路和設備以方塊圖形式表示以避免混淆本文內容。本文內容不應被解釋為限於在此所描述的特定實施例/範例,而是應將所要求權利範圍中定義的所有實施方式包括在它們的範圍內。
以下參照的圖式更全面地描述本文內容的各個方面。然而,本文內容可以以許多不同的形式的實施方式並且不應被解釋為限於本文內容中所呈現的任何特定結構或功能。相反,所提供的這些方面使得本文內容將是徹底和完整的,並且將向本領域技術人員充分傳達本文內容的範圍。基於本文的教示,本領域技術人員應當理解,本文內容的範圍旨在涵蓋本文內容所公開的任何方面,無論是獨立實施還是與本文內容的任何其他方面結合實施。例如,可以使用在本文中闡述之任何數量的各方面來實現裝置,或者可以實現一種方法。此外,本文內容的範圍旨在覆蓋這樣的裝置或方法,該裝置或方法是使用除了在本文中所闡述的各個方面之外或與其不同的其他結構、功能或結構和功能來實現的。應當理解,本文揭露的任何方面可以由權利要求的一種或多種元件來體現。在不脫離本文範圍的情況下,可以對所討論的元件的功能和配置進行改變。各種範例可酌情省略、替代或添加各種程序或元件。例如,可以以不同於本文所描述的順序來執行所描述的方法,並且可以添加、省略或組合各種步驟。此外,關於一些範例中所描述的特徵可以在其他範例中被組合。
然而,應當記住,所有這些和類似的用語都將與適當的物理量相關聯並且僅僅是被應用於這些物理量的方便標籤。除非從以下討論中清楚地陳述有另有的說明,否則應理解,貫穿本申請內容中,討論使用諸如“存取”、“接收”、“傳送”、“使用”、“選擇”、“確定”、 “標準化”、“乘法”、“平均”、“監控”、“比較”、“應用”、“更新”、“測量”等,指的是電腦系統或類似電子運算設備的動作和過程。這些設備用於將那些在電腦系統的暫存器和記憶體中被表示為物理(電子)量的資料處理和轉換為在電腦系統記憶體或暫存器或其他此類訊息儲存、傳輸或顯示設備中類似被表示為物理量的其他資料。
如本文所使用的,用語“確定”包括多種動作。 例如,“確定”可以包括計算、運算、處理、推導、調查、查找(例如,在表、資料庫或另一資料結構中查找)、確定等。此外,“確定”可以包括接收(例如,接收資訊)、存取(例如,存取記憶體中的資料)等。 此外,“確定”可以包括解析、選擇、選擇、建立等。 此外,“確定”可以包括測量、估計等。
如本文所用,用語“產生”包括多種動作。 例如,“產生”可以包括計算、導致、運算、創建、確定、處理、推導、調查、製作、產生、提供、引起、導致、導致、查找(例如,查找表 、資料庫或其他資料結構)、確定等。此外,“產生”可以包括接收(例如,接收資訊)、存取(例如,存取記憶體中的資料)等。 此外,“生成”可以包括解析、選擇、選擇、建立等。
如本文所用,提及項目列表中的“至少一個”的說法是指那些項目的任何組合,包括單個成員。 例如,“a、b 或 c 中的至少一個”旨在涵蓋 a、b、c、ab、ac、bc 和 abc,以及包括多個相同成員的任何此類列表(例如 、任何包含 aa、bb 或 cc 的列表)。
在圖中,單個方塊(block)可以被描述為執行一種或多種功能; 然而,在實際實現中,由該方塊執行的一種或多種功能可以在單個元件中或跨多個元件執行,和/或可以使用硬體、使用軟體或使用硬體和軟體的組合來執行。為了清楚地說明硬體和軟體的這種可互換性,各種說明性的元件、方塊、模組、電路和步驟將在以下根據它們的功能進行了整體描述。這些功能是使用硬體還是軟體來實現取決於特定的應用程序和對整個系統施加的設計限制。技術人員可以針對每個特定應用以不同方式實現所描述的功能,但是這種實現決定不應被解釋為是導致偏離權利要求範圍。
電阻式RAM記憶體單元(memory cells)將儲存的資料表示為不同的電阻值,並且通常被稱為基於電阻的記憶體單元,因為儲存在其中的資料的邏輯狀態可以透過測量MRAM記憶體單元的電阻值來確定。基於電阻的記憶體的範例,可包括但不限於例如:自旋轉移扭矩 (STT)記憶體單元之類的磁阻式 RAM (MRAM)、自旋軌道扭矩 (SOT) 記憶體單元、電阻器隨機存取記憶體 (ReRAM) , RRAM)、相變 RAM (PCRAM)、鐵電 RAM (FeRAM) 和/或碳奈米管記憶體單元。舉例來說,STT MRAM 記憶體單元可以透過改變磁隧道結 (MTJ) 元件的等效電阻來儲存資料的不同邏輯狀態。 在寫入操作期間,可以透過改變驅動經過記憶體單元的電流和/或電壓來將資料可程式化到基於電阻的記憶體單元中,例如,將基於電阻的記憶體單元可程式化為高阻抗值或低阻抗值。在讀取操作期間,可驅動受控電流透過基於電阻的記憶體單元以確定指出儲存之資料邏輯狀態的阻抗值。
由於日益增加的資料收集,將所有資料移動到雲或跨服務器移動不再實用且符合功率效率。晶片尺寸和功耗由記憶體和記憶體存取決定。因此需要增加非揮發性記憶體來儲存程式、模型/係數,以及所收集到日益增加的資料量。 例如,對於 AI/訊號處理,深度或卷積神經網路所需的 AI 係數可能超過 1 Gb 記憶體。外部記憶體可以滿足這些需求,但外部記憶體的記憶體存取功耗非常高(例如,外部低功耗雙倍資料速率 (LPDDR4) RAM 記憶體的功耗是內部 SRAM 記憶體的 57.5 倍)。然而,內部記憶體基於電子設備的形狀因素而受到區域限制。
具有用於超低功耗並具有更長的電池壽命或更高效的處理/功率耗用量(footprint)的高效晶片內建記憶體,是前所未有的重要。
頻繁的晶片外接記憶體存取和諸如在開啟狀態期間操作的 CPU 之類的密集功耗設備明顯增加了電子設備的功耗並縮短了電池壽命。另外,RF電路在RF電路的正常操作期間也消耗大量功率。
本發明設計包括智能運算電阻式RAM用以將計算和學習操作從主機系統(例如,CPU、處理器、微處理器)移動到智能運算電阻式記憶體,以便降低不同類型電子設備的功耗。 記憶體內部的計算可以即時執行某些操作,從而提高性能和整體系統功耗。 電阻式 RAM 中的局部處理(localized processing)將大大降低電子設備的整體功耗。 特別是,CPU 將更頻繁地在低功耗休眠模式下運行,而不是經常處於完全運行的 ON 狀態。
對於 IoT、可穿戴市場甚至 AI,功率是電池壽命或整體功率降低以及與更高功率相關聯的相關熱問題的關鍵組成部分。 由於不必到雲端(或電話)進行處理而導致的低延遲也是許多應用程序中的一個關鍵因素。 記憶體中的區域處理還可以在網路不佳的情況下實現一些自主權,並且在無法連接網路的緊急/危及情況下維持安全。
此外,本發明設計的潛在用途,是可以透過執行驅動器本機的一些操作而不是將資料從驅動器發送到主機系統然後讓主機系統執行操作或運算,以減少企業儲存驅動器中的延遲並提高性能。
智能運算記憶體還可用於增強記憶體管理和控制。 可程式化記憶體管理和控制能夠最佳化記憶體性能與記憶體耐久性(例如,較低能量讀/寫操作下較長的耐久時間導致性能變慢,而較高能量(例如,較高電流/電壓)讀/寫操作導致更快的性能和較低的耐久性 )。 可程式化記憶體管理和控制管理不同的寫入/讀取模式,可以實現更大的使用靈活性。
「第1圖」根據一個實施例描繪了具有智能運算記憶體的記憶體子系統100的方塊圖。 記憶體子系統100(例如,AI子系統、記憶體電路)包括輸入/輸出(I/O)電路110,其具有主要接通(ON)電源狀態以管理記憶體子系統的資料輸入/輸出、智能運算記憶體電源管理電路 120,以及包括整合型處理器160(例如,處理器、微處理器、微控制器等)、智能運算記憶體管理和控制電路190、記憶體介面170、可選的自適應記憶體管理和控制電路(AMMC)172和電阻式記憶體陣列180的智能運算記憶體電路150。輸入/輸出(I/O)電路110具有接通(ON)電源狀態以接收諸如串流資料的外部輸入。
電阻式記憶體陣列180可以是任何類型的非揮發性電阻式RAM記憶體(例如,磁阻式RAM(MRAM),像是自旋轉移扭矩(STT)記憶體單元、自旋軌道扭矩(SOT)記憶體單元) 、電阻式 RAM(RRAM、ReRAM)、相變 RAM (PCRAM)、鐵電 RAM (FeRAM)、碳奈米管儲存單元等),適用於從非揮發性 RAM 到低功耗、高密度 SRAM 的應用。電阻式 RAM 是非揮發性 RAM 電腦記憶體,可改變介電固態材料(dielectric solid-state material)的電阻。通常絕緣的介電層可以透過施加足夠高的電壓形成的燈絲(filament)或導電路徑變成導電。電阻式記憶體陣列180的面積比傳統RAM小2-3.5倍。在任何記憶體應用中,這可以使晶片內建記憶體增加 2-3.5 倍,以減少晶片外接記憶體(例如 DRAM)存取,從而顯著節省功耗。
該記憶體子系統100可以是獨立晶片或是更大SOC中嵌入的一部分。輸入/輸出(I/O)電路110包括輸入串流控制暫存器112、記憶體緩衝器114(例如,串流FIFO緩衝器、佇列)和有限狀態機(Finite State Machine, FSM)116以跟踪智能運算記憶體電路150的功率狀態。通訊鏈結130-1、130-2、130-3和130-4(例如,高速互連,PCIe)提供輸入/輸出(I/O)電路110、FSM 116、整合型處理器160、智能運算記憶體管理和控制電路 190 和智能運算記憶體電路 150。互連將兩個或多個電路元件電連接在一起。 整合型處理器160可以是具有電源管理控制的低功率整合型處理器。整合型處理器透過整合型電源管理有效地整合到記憶體核心中。整合型處理器可以包括但不限於自定義邏輯功能、數位訊號處理器、精簡指令集計算機 (RISC) 或複雜指令集計算機 (CISC) 或自定義邏輯功能和/或 DSP 的組合,包括具有 RISC 或 CISC 的超長指令字(Very long instruction word, VLIW)。整合型處理器可用於記憶體計算或處理應用。 整合型處理器可以執行任何軟體功能,包括:加、減、比較甚至乘法。 與 CPU 類似,整合型處理器可以處理廣泛的應用程序,使智能運算記憶體非常靈活,適用於廣泛的應用程序。
在一個範例中,整合型處理器最初從記憶體(例如,電阻式記憶體陣列180、記憶體1204、記憶體1206)獲取指令。然後對指令進行解碼以確定要執行的操作。如果合適,整合型處理器根據指令從記憶體或 I/O 模組獲取資料。
然後執行指令,這可能需要對資料執行算術(arithmetic)或邏輯運算。 除了執行之外,整合型處理器還監督和控制I/O設備(例如,輸入/輸出(I/O)電路110、輸入設備1212)。 如果有來自 I/O 設備的任何請求,稱為中斷,整合型處理器會暫停當前程序的執行並將控制轉移到中斷處理程序。 最後,執行結果可能需要將資料傳輸到記憶體或 I/O 模組。整合型處理器是整合型電路(IC)。該IC是一種可程式化的多用途矽晶片,透過時鐘驅動,基於暫存器,接受二進制資料作為輸入,並根據儲存在記憶體中的指令處理輸入之資料後提供輸出。
整合型處理器160可用於增強智能運算記憶體管理和控制電路190和AMMC 172的記憶體管理和控制。可程式化的記憶體管理和控制能夠最佳化記憶體參數,包括性能(例如,速度)與記憶體耐久性(例如,在低能量讀/寫操作中具有更長的耐久性時間導致較慢的性能,而在較高能量(例如,更高的電流/電壓)讀/寫操作中導致更快的性能和較低的耐久性)。此外,整合型處理器160的可程式化記憶體管理和控制能夠管理不同的寫/讀模式,以實現更大的使用靈活性。
整合型處理器160被配置為處理資料(例如,預處理/後處理串流資料),其中預處理/後處理的結果被儲存在電阻式記憶體陣列180中。通訊鏈結151-1、151-2、151 -3和151-4提供記憶體介面170、整合型處理器160、智能運算記憶體電源管理電路120和電阻式記憶體陣列180之間的通訊。
在一個範例中,來自任何來源(例如,運算設備、伺服器、IoT 設備、感測器等)的串流資料儲存在記憶體緩衝器114 中。以週期性間隔或每當記憶體緩衝器114達滿閥值量(例如, 25% 滿、50% 滿、75% 滿等)、整合型處理器 160 和電阻式記憶體陣列 180 的至少一個區域(例如,180-1、180-2、180-3、180-4) 被從低功率休眠狀態喚醒進入操作功率狀態,而電阻式記憶體陣列180的其他區域、主機系統(例如,SoC主CPU 1202、處理器1227)和運算系統1200的其他元件依然保持在低功率狀態電源休眠狀態。記憶體子系統100(例如,記憶體1204)可以與運算系統1200整合。
在一個範例中,FSM 116追蹤事件和緩衝器114的滿閥值量等級。當緩衝器114中發生某些事件或發生滿閥值量時,FSM 116向智能運算記憶體電源管理電路120提供指示訊號以改變智能運算記憶體電路150的電源狀態。智能運算記憶體電路150內的所有元件可以具有修改的功率狀態或者元件的子集合可以具有修改的功率狀態。如果FSM 116確定整合型處理器160已經處理了緩衝器內的所有或大部分資料,則FSM 116可以向智能運算記憶體電源管理電路120提供另一個指示訊號以改變智能運算記憶體電路150的功率狀態(例如,當緩衝區中沒有要處理的資料時降低功率使狀態從操作狀態變為休眠狀態)。
整合型處理器160從記憶體1206載入其軟體程式,根據需要預處理資料,包括執行計算,並將結果儲存到電阻式記憶體陣列180中。在完全操作功率狀態期間,整合型處理器160可以從緩衝器114讀取資料、處理該資料或使用該資料執行計算、將計算結果寫入記憶體陣列180、從記憶體陣列180讀取這些結果,以及從記憶體陣列 180 接收用戶對資料的查詢。
可以選擇的是,如果整合型處理器160的處理結果觸發可程式化事件(例如,軟體applet功能、閥值事件),則整合型處理器160將發出警報(例如,發出聲音警報、發送文字、喚醒主CPU等)。然後,整合型處理器160和電阻式記憶體陣列180從完全操作功率狀態轉變到低功率休眠狀態直到下一個事件。整合型處理器160與電阻式記憶體陣列緊密耦合(例如,透過通訊鏈結直接連接),這將導致產生顯著的功率節省(包括活動功率和閒置功率)。
在一個範例中,記憶體子系統100與主機系統(例如,主CPU 1202、處理器1227)形成或整合在單一晶片上。此記憶體子系統 100 可配置為大範圍的輸入資料寬度(x8、x16、x24、……)、主記憶體大小(從小尺寸到可能超過 1Gb)和處理選項(從簡單的僅有整數到複雜的浮點數)。
傳統方法使用諸如FPGA或微控制器之類的多個晶片來進行智能運算電路的預處理,並使用另一個晶片作為主記憶體。但是,由於 SOC 主 CPU 經常處於活動狀態,並且資料必須在晶片之間多次移動,因此這種方法顯著增加了功率(估計比記憶體子系統 100 高出 200 到 3,000 倍的功率),並且在切換電源方面這是代價非常昂貴的。此外,如果傳統方法的儲存晶片像 SRAM 一樣是非揮發性的,那麼它將具有明顯更高的閒置功率,並且資料將不得不儲存在晶片外接設備上,這將再次導致 30-60 倍的高功耗。
在本設計的另一個範例中,記憶體子系統100是獨立的智能運算電阻式RAM記憶體,其中整合型處理器160用於最佳化記憶體的耐久性、性能、功率和檢測能力。整合型處理器160用於智能記憶體管理和控制。輸入資料不需要來自感測器設備,任何輸入來源都是有效的。
「第2圖」根據一個實施例描繪了一個具有智能運算記憶體的智能運算記憶體電路的功能方塊圖。智能運算記憶體電路200(例如,智能運算記憶體電路150)包括電阻式記憶體陣列210和用於智能記憶體管理和控制的智能運算電路260(或整合型處理器)。
在一個範例中,智能運算電路260包括計算功能,該計算功能包括資料路徑加法器261、資料路徑比較器262、縮減功能263和控制/儲存暫存器264。計算功能可以與記憶體輸入/輸出(例如,I/O 電路)匹配(pitch matched)。
智能運算記憶體電路200在不喚醒主機系統(例如,主CPU 1202、處理器1227)的情況下提供記憶體內的處理以與傳統設計相比節省10-100倍的功率。計算功能可以包括平均、移動平均、加、減、比較、簡單乘法/除法、最小值/最大值、軟體applet功能(例如,if/then功能)等。如果警報由電路200確定,則可以向主 CPU 發送喚醒訊號。設計自動化軟體可自定義記憶體大小、性能、邏輯功能和資料類型精確度。
「第3圖」根據一個實施例描繪了智能運算記憶體電路300的方塊圖。智能運算記憶體電路300提供在不使用主機系統(例如,主CPU 1202、處理器1227)的情況下能在記憶體子系統內本機處理資料的計算功能。計算功能可以包括平均函數316、移動平均函數328、相似度測量函數338和更新最小值/最大值函數346。資料匯流排302向這些計算功能提供輸入。平均函數316使用到累加器310的最舊和最新輸入、除法運算312和暫存器314來確定以儲存此平均函數的輸出。
移動平均函數328使用緩衝器320(例如,FIFO緩衝器)、累加器322、除法運算324和暫存器326來確定以儲存此移動平均函數的輸出。
相似度測量函數338是使用輸入A和B到加/減函數330、絕對值確定332、具備要與輸入333比較之輸出反饋335的累加器334和暫存器336來確定此相似度測量函數的輸出。
更新最小值/最大值功能函數346使用輸入A和B到更新最小值/最大值功能340、軟體applet功能342(例如,可程式化條件語句,如果確定警報,則可以發送喚醒訊號到 CPU),以及用於儲存此更新最小值/最大值函數346 輸出的暫存器 344。
「第4A圖」根據一個實施例描繪了低功率神經型態智能記憶體400。低功率神經型態智能記憶體400包括與路由通道410互連的M*N個智慧財產(IP)核心450網格。每個智慧財產(IP)核心450(例如,智能運算記憶體電路150、200)可以被認為具有100個甚至高達100萬個的神經元。
「第4B圖」根據一個實施例說明了IP核心450的分解圖。IP核心450包括電阻式記憶體460以儲存資料(例如,2D訊號、圖像、特徵等)、資料路徑加法器462和資料路徑比較器464。IP核心450具有記憶體、暫存器和邏輯函數(例如 、加/減、比較、累加 470、軟體applet邏輯等)類似於智能運算記憶體電路 200 或類似於智能運算記憶體電路 150。
在一個範例使用流程中,用2D資料訓練神經元。對於每個輸入的檢測向量(例如,資料 468),神經元使用邏輯 472 計算上下文或類別 474中資料的相似性或距離。最接近的匹配神經元被產生作為輸出預測。在一個範例中,將輸入圖像的像素值與另一圖像的像素值進行比較。神經網絡可以對資料進行群集(cluster)和分類。群集或分組是對相似性的檢測。群集可以包括比較文件、圖像或聲音以顯示相似項目的搜索。
分類可以檢測面部、識別圖像中的人、識別面部表情、識別圖像中的物件(停車標誌、行人、車道標記……)、識別影片中的手勢、偵測語音、識別說話者、將語音轉錄為文字,或識別聲音中的情緒。分類可以將文字分類為垃圾郵件(在電子郵件中)或欺詐(在保險索賠中),或識別文字中的情緒(客戶反饋)。
在一個實施例中,每個神經元/IP核心接收128到512位元組(1-4K位元)的資料(例如,訊號、圖像、特徵等)。設計自動化軟體可以實現自定義神經元數量、神經元記憶體大小、性能、邏輯功能和形狀。
「第5圖」根據一個實施例說明了用於操作智能運算記憶體電路以降低運算系統功耗之方法500的流程圖。儘管方法500中的操作以特定順序表示,但是動作的順序是可以被修改的。 因此,所說明的實施例可以用不同的順序執行,並且一些操作可以並行執行。 根據某些實施例,「第5圖」列出的一些操作步驟是可選擇性的。所呈現的操作編號是為了清楚起見,並不旨在規定必須發生之各種操作的操作順序。 此外,來自各種流程的操作可以於各種組合中被利用。
電腦實現之方法500的操作可由記憶體子系統、智能運算記憶體電路或整合型處理器執行。記憶體子系統、智能運算記憶體電路或整合型處理器可包括硬體(電路、專用邏輯等)、軟體(例如在通用電腦系統或專用機器或設備上運行),或兩者的結合。
在操作步驟502,電腦實現的方法包括從任何來源(例如,運算設備、伺服器、IoT設備、感測器等)接收資料(例如,串流資料)。在操作步驟504,資料可以被儲存在記憶體子系統的緩衝器中。電腦實施的方法包括在操作步驟506確定緩衝器是否達到資料的滿閥值量(例如,25%滿、50%滿、75%滿等)。
操作步驟508,在週期性間隔或每當緩衝器達到滿閥值量(例如,25%滿、50%滿、75%滿等)時,智能運算記憶體電路和記憶體子系統的電阻式記憶體陣列的至少一個區域(例如,180-1、180-2、180-3、180-4)從低功率休眠狀態轉變為完全操作功率狀態,而電阻式記憶體陣列180的其他區域、主機系統(例如:SOC主CPU1202、處理器1227)和運算系統的其他元件依然維持在低功率休眠狀態。
在操作步驟510,智能運算記憶體電路從主記憶體載入其軟體程式,根據需要預處理資料,可以執行運算,並且將結果儲存到電阻式記憶體陣列中。
可選擇性的,在操作步驟512,如果智能運算電路的處理結果觸發可程式化事件(例如,軟件applet功能、閥值事件),則智能運算電路將發出警報(例如,發出警報, 發送文字、喚醒主 CPU 等)。然後,在操作步驟514,智能運算電路和電阻式記憶體陣列從完全操作功率狀態轉換到低功率休眠狀態,直到下一個事件發生。
如果在操作步驟506緩衝器沒有達到滿閥值量,則在操作步驟516智能運算記憶體電路和電阻式記憶體陣列保持在低功率休眠狀態。
系統單晶片中記憶體不斷增加的大小和數量給設計者和檢測工程師帶來了處理大量功能或自動檢測模式生成 (Automatic Test Pattern Generation, ATPG) 模式以驗證記憶體功能的挑戰。以功能方式或透過ATPG檢測記憶體功能需要大量的檢測時間,因此需要大量的檢測成本。在這種情況下很難完全驗證記憶體功能。因此,設計人員透過內建自我檢測(Built-In Self Test, BIST)功能驗證記憶體功能。BIST 是在軟體/硬體模組中的內建自我檢測電路。內建自我檢測電路從運算系統外部啟動。 然後,該內建自我檢測電路執行內建模式/演算並返回回應以指示被測模組是否正常工作。
大多數記憶體設備包括各種不同用於自我檢測的方法。這些方法提供加速、獨特的操作模式、維修可存取性和裁切功能(trim functions)以及其他功能。雖然這些功能對於檢測記憶體來說非常強大,但這些功能通常非常複雜、難以使用並且可能是專有的。 因此,這些功能通常被綁定作為 BIST 引擎的一部分,並且只能以非常特定的、預定義的方式使用。
透過以這種方式實現 BIST 能力,系統設計受益於簡單性並且去除了任何專有資訊,但是結果是不靈活的並且不能被採用來滿足不同客戶、製造商和多年工藝變化的檢測挑戰。
相反的,本設計擴展超出 BIST 的全部能力,並且將全部能力映射到電阻式記憶體陣列內的擴展記憶體空間。這個空間通常在正常的可定址範圍之外,儘管它不是必須要的,並且可以像正常的記憶體空間一樣被讀取和寫入。 這樣,任何能夠存取記憶體的演算單元也可以存取完整的 BIST 功能。
本設計包括自適應記憶體管理和控制電路 (AAMMC),其在 BIST 之外能夠執行其他功能,以使記憶體能夠單獨地和在其被整合的SOC中進行最佳化。因此,AMMC 是 BIST 的超集合(superset)。作為特殊模式,AMMC 通常對 SOC 用戶是透明的,但可以根據請求授予某些存取權限。
在一個實施例中,AMMC提供包括性能、功率和耐久性的參數的最佳化。AMMC 能夠針對不同的操作模式自適應地調整包括性能和功率在內的參數。 這可以透過一組經過計算和校準的選項來執行,這些選項更改電壓或電流以對記憶體進行程式化或更改讀取和寫入時間或讀取和寫入配置文件(Read and Write Profile)。
例如,寫入可以包括預讀取、寫入,其可以是單一階段或兩階段寫入。最初可以執行寫邏輯狀態1,然後執行寫邏輯狀態0。 然後對每個寫入邏輯狀態進行不同時間的讀取驗證。自定義的序列還可以透過利用寫入然後讀取/驗證序列而無需預讀、寫入的方式來適應最高速度。
在另一個實施例中,AMCC提供包括在溫度範圍內的功率和性能的參數最佳化。使用整合的溫度控制電路(例如,「第7圖」至「第9圖」的溫度控制電路722),AMMC 可以自適應地改變功率和性能,以在給定的溫度範圍內實現操作條件最佳化。在極端溫度下(例如,低於攝氏0度 (C),攝氏-40度),讀取或寫入操作可能需要更高的功率或展現不同的存取時間。然而,IC晶片一開始工作,溫度會迅速上升到攝氏0度以上。AMMC可以根據溫度啟用最佳性能,而不是使用極端溫度下的最壞情況性能(例如,攝氏0度以下,攝氏-40度)。
在另一個實施例中,AMMC可以自適應地使記憶體能夠從記憶體內部的不同組(bank)或區域(例如,區域680-1、680-2、680-3、680-4)讀取和寫入。這可用於透過使某些組或區域處於活動狀態而其他組或區域處於低功耗模式(例如,休眠模式、深度休眠模式等)來最佳化功率。
AMCC還可用於讀取和寫入不同的組或區域,以透過使用不同的組或區域來提高性能(例如,用乘法因子提高性能)當讀取或寫入操作同時被安排在初始的組或區域。
「第6圖」根據一個實施例描述了具有智能運算記憶體和自適應記憶體管理和控制的記憶體子系統600的方塊圖。記憶體子系統600(例如,AI子系統、記憶體電路)包括輸入/輸出(I/O)電路610,其具有主要接通(ON)電源狀態以管理資料到記憶體子系統、智能運算記憶體電源管理電路620和包括整合型處理器660(例如,處理器、微處理器、微控制器、基於精簡指令集risk-V的處理器等)之智能運算記憶體電路650、記憶體介面670、具有擴展記憶體管理和控制能力的自適應記憶體管理和控制電路(AMMC)672、智能運算記憶體管理和控制電路690和電阻式記憶體陣列680的輸入/輸出。輸入/輸出(I/O)電路610具有接通(ON)電源狀態以接收諸如資料(例如,串流資料)的外部輸入。AMMC 672耦合到介面674以與存取AMMC 672的系統元件進行通訊。電阻式記憶體陣列680包括系統介面682以與整合型處理器660和記憶體介面670進行通訊。或者,記憶體介面670被移除並且系統介面682與系統元件進行通訊。
電阻式記憶體陣列680可以是用於從非揮發性RAM到低功率、高密度SRAM各種應用之任何類型的非揮發性電阻式RAM記憶體。非揮發性電阻式 RAM 中基於電阻的記憶體單元(memory cell)的範例,可以包括但不限於磁阻式 RAM (MRAM),例如自旋轉移扭矩 (STT) 儲存單元、自旋軌道扭矩 (SOT) 儲存單元、 電阻隨機存取記憶體(ReRAM、RRAM)、相變RAM(PCRAM)、鐵電RAM(FeRAM)和/或碳奈米管儲存單元。
此記憶體子系統600可以是獨立晶片或作為更大SOC嵌入的一部分。輸入/輸出(I/O)電路610包括輸入串流控制暫存器612、記憶體緩衝器614(例如,串流FIFO緩衝器、佇列)和有限狀態機616以跟踪記憶體子系統的功率狀態。通訊鏈結630-1、630-2、630-3和630-4(例如,高速互連,PCIe)提供輸入/輸出(I/O)電路610、FSM 616、整合型處理器660、智能運算記憶體管理和控制電路690和智能運算記憶體電路650之間的通訊。互連將兩個或更多個電路元件電連接在一起。整合型處理器660可以是具有電源管理控制的低功率整合型處理器。 整合型處理器660可用於增強AMMC 672的記憶體管理和控制。可程式化記憶體管理和控制能夠最佳化記憶體的性能(例如速度)與記憶體的耐久性(例如,較低能量讀/寫操作下較長的耐久時間導致性能變慢,而較高能量(例如,較高電流/電壓)讀/寫操作導致更快的性能和較低的耐久性 )。此外,整合型處理器660的可程式化記憶體管理和控制能夠管理不同的寫/讀模式,以實現更大的使用靈活性。 不同模式的範例包括處理資料以根據需要加密/解密資料的第一模式,以不同速度寫入/讀取以最佳化在溫度範圍內的功率和性能的第二模式,生成自定義序列之讀取和寫入操作的第三模式,以及基於邏輯功能(例如,比較、其他處理)的輸出生成有條件的讀取或寫入操作的第四種模式。
整合型處理器660被配置為預處理/後處理資料(例如,串流資料),其中預處理/後處理的結果被儲存在電阻式記憶體陣列680中。通訊鏈結651-1、651-2、651-3和651-4提供了記憶體介面670、整合型處理器660、智能運算記憶體電源管理電路620和電阻式記憶體陣列680之間的通訊。與「第1圖」的整合型處理器160相比,整合型處理器660具有類似的功能。
在一個範例中,FSM 616跟踪事件和緩衝器614的滿閥值量等級。在記憶體緩衝器614中發生某些事件或滿閥值量時,則FSM 616向智能運算記憶體電源管理電路620提供指示訊號以改變智能運算記憶體電路650的功率狀態。智能運算記憶體電路650內的所有元件可以具有修改的功率狀態或者元件的子集合可以具有修改的功率狀態。
「第7圖」根據一個實施例描述了具有自適應記憶體管理和控制電路(AMMC)的電阻式記憶體的方塊圖。電阻式記憶體700包括電阻式記憶體陣列702、AMMC 720、控制可檢測性特徵的檢測邏輯710,以及與其他元件(例如,整合型處理器160、整合型處理器660)通信的自適應記憶體管理和控制介面730。系統介面704提供電阻式記憶體陣列702和系統元件(例如,CPU 1202、處理器1227、整合型處理器160、智能運算電路660)之間的介面。 AMMC 720可以包括用於檢測電阻式記憶體的BIST電路。BIST電路可以包括 BIST 硬體,包括檢測模式生成器、比較器和其他邏輯電路,以最佳化在靈活整合型處理器之上和之外的功能。
為了進一步增強AMMC 720的完整能力,使用了智能運算電路(例如,整合型處理器160、整合型處理器660、微處理器、微控制器)和少量的可寫記憶體。整合型處理器可以用作 AMMC 720 的控制器。與僅限於 8 位元或 32 位元檢測序列的典型微控制器相比,整合型處理器可以處理複雜的 BIST 檢測序列。 AMMC 720包括溫度控制電路722以感測電阻式記憶體702的記憶體單元的溫度。溫度控制電路722可以與AMMC 720整合或位於電阻式記憶體702附近。
在一個範例中,電阻式記憶體702的可寫記憶體將具有載入到電阻式記憶體702中的自定義檢測程式碼並且整合型處理器將執行該程式碼。 雖然這些元件可以在記憶體的外部被檢測,但為了改善結果,這些元件將完全被整合到記憶體中。
一種這樣的實現將允許對記憶體進行部分檢測,例如:記憶體區702A和記憶體區702B。 當要檢測記憶體區域702A時,將檢測程式碼載入到記憶體區域702B的記憶體703B中執行; 然後當要檢測記憶體區域702B時,檢測程式碼將被載入到記憶體區域702A的記憶體703A中。 這將允許在不需要單獨的記憶體的情況下滿足可寫記憶體的需求,若有單獨的記憶體將增加記憶體子系統的面積和複雜性。
「第8圖」根據另一個實施例描述了具有整合自適應記憶體管理和控制電路(AMMC)的電阻式記憶體的方塊圖。電阻式記憶體800包括電阻式記憶體陣列702、AMMC 720、控制可檢測性特徵的檢測邏輯710,以及與其他元件(例如,整合型處理器160、整合型處理器660)通訊的自適應記憶體管理和控制介面730。
為了進一步增強AMMC 720的完整能力,使用了智能運算電路(例如,整合型處理器160、整合型處理器660、微處理器、微控制器)和少量的可寫記憶體。整合型處理器可以用作 AMMC 720 的控制器。記憶體映射介面 740 被分配給 AMMC 720 和檢測邏輯 710。記憶體映射區域通常在正常可定址範圍之外,儘管它不必要是,並且可以像普通記憶體空間一樣進行讀寫。
「第9圖」根據另一個實施例描述了具有整合自適應記憶體管理和控制電路(AMMC)的電阻式記憶體的方塊圖。電阻式記憶體900類似於電阻式記憶體800,除了電阻式記憶體900另外包括耦合到系統介面704的BIST演算邏輯單元(ALU)760。BIST演算邏輯單元 760可以耦合到智能運算電路(例如,整合型處理器160、智能運算電路660),而系統介面704可以耦合到其他系統元件。
為了進一步增強AMMC 720的完整能力,使用了智能運算電路(例如,整合型處理器160、整合型處理器660、微處理器、微控制器)和少量可寫記憶體。整合型處理器可以用作 AMMC 720 的控制器。記憶體映射介面 740 被分配給 AMMC 720 和檢測邏輯 710。
「第10圖」根據另一個實施例提供自適應記憶體管理、電源管理和控制的方法1000。儘管方法1000中的操作以特定順序表示,但是動作的順序可以被修改。因此,所展示的實施例可以用不同的順序執行,並且一些操作可以並行執行。列出的一些操作。 根據某些實施例,「第10圖」中的操作步驟是可選擇性的。所呈現的操作編號是為了清楚起見,並不旨在規定必須發生之各種操作的操作順序。 此外,來自各種流程的操作可以於各種組合中被利用。
電腦實現之方法1000的操作步驟可由記憶體子系統、智能運算記憶體電路或整合型處理器執行。記憶體子系統、智能運算記憶體電路或整合型處理器可包括硬體(電路、專用邏輯等)、軟體(例如在通用電腦系統或專用機器或設備上運行),或兩者的結合。
在操作步驟1002,電腦實現的方法包括將自適應記憶體管理和控制特徵映射到記憶體子系統之電阻式記憶體的記憶體映射區域。自適應記憶體管理和控制電路和檢測邏輯可以提供記憶體管理和控制特徵。這個記憶體映射區域通常在正常的可定址範圍之外,儘管它不是必須的,並且可以被讀取和寫入,就如同它是正常的記憶體空間一樣。這樣,任何能夠存取記憶體的演算單元也可以存取完整的 BIST 功能。
在操作步驟1004,自定義檢測程式碼被載入到電阻式記憶體的第一儲存區中。 在操作步驟1006,記憶體子系統的智能運算記憶體電路(例如,整合型處理器、微處理器)執行自定義檢測程式碼以檢測電阻式記憶體的第二記憶體區。自定義檢測程式碼可以檢測不同類型的故障(例如,固定故障、轉換延遲故障、耦合、鄰域模式敏感故障)或提供自適應或增強模式。
在操作步驟1008,電腦實現的方法包括從第二記憶體區讀取回應。在操作步驟1010,電腦實現的方法包括將讀取回應與預期回應進行比較。 在操作步驟1012,電腦實現根據比較的結果執行動作。該動作可包括透過或失敗記憶體區、最佳化記憶體性能或耐久性、或在溫度範圍內最佳化功率和性能。
智能運算記憶體電路(例如,整合型處理器、微處理器)可以提供增強模式以最佳化記憶體性能/速度與記憶體耐久性(在較低能量下的較長時間以及在較高能量下的低耐久性)。 或者,可以提供不同寫入和讀取儲存單元的模式,以實現更大的使用靈活性。在另一範例中,自適應模式包括基於溫度的電阻式記憶體陣列的溫度監控和記憶體最佳化。 不同模式的範例包括處理資料以根據需要加密/解密資料的第一模式,以不同速度寫入/讀取以在溫度範圍內最佳化功率和性能的第二模式,生成自定義序列的讀取和寫入操作的第三模式,以及基於邏輯功能(例如,比較、其他處理)的輸出生成有條件的讀取或寫入操作的第四種模式。
「第11圖」是根據本發明實施例的具有資料處理系統的電腦系統(或運算系統)的方塊圖。電腦系統1200內是一組指令,用於使機器執行這裡討論的任何一種或多種方法論。在可選擇的實施例中,機器可以連接(例如,透過網路連接)到LAN、內部網路、商際網路或網際網路中的其他機器。該機器可以在主從式架構的網路環境中以伺服器或客戶端的身分運行,也可以作為對等(或分佈式)網路環境中的對等機器運行,該機器也可以作為一個 Web 設備、伺服器、網路路由器、交換機或橋接器、事件生成器、分佈式節點、集中式系統或任何能夠執行一組指令(順序或其他)的機器,這些指令指定該機器所要採取的動作。此外,雖然僅展示一台機器,但用語“機器”也應被視為包括單獨或聯合執行一組(或多組)指令以執行這裡討論的任何一種或多種方法論的任何機器(例如:電腦)集合。
如上所述,中央處理單元1202 (或CPU 1202)包括通用指令型處理器1227。通用指令型處理器可以是一種或多種通用指令型處理器或處理設備(例如 、微處理器、中央處理單元 (CPU) 等)。更具體地,資料處理系統1202可以是複雜指令集運算(CISC)微處理器、精簡指令集運算(RISC)微處理器、超長指令字(VLIW)微處理器、實現其他指令集的通用指令型的處理器,或實現指令集組合的多個通用指令型處理器。
範例中的電腦系統 1200 (或無線設備 1200,例如:移動設備、平板設備、智能手錶等) 包括中央處理單元 1202 (或 CPU 1202)、主記憶體 1206 (例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體 (DRAM),例如同步DRAM (SDRAM) 或 DRAM(RDRAM) 等)、非揮發性電阻 RAM 記憶體 1204(例如,基於電阻的記憶體單元可以包括,但不限於,磁阻式 RAM (MRAM),像是自旋轉移扭矩 (STT) 儲存單元、自旋軌道扭矩 (SOT) 儲存單元、電阻隨機存取記憶體 (ReRAM、RRAM)、相變 RAM (PCRAM) )、鐵電 RAM (FeRAM) 和/或碳奈米管儲存單元等)和資料儲存設備 1216(例如,驅動單元形式的第二記憶體單元,其可以包括固定或可移動的電腦可讀取儲存介質),它們透過匯流排 1208 相互通訊。電腦系統 1200 中揭露的儲存單元和記憶體可以被配置為詳細說明用於執行這裡所討論的操作和步驟的資料儲存機制。
在一個實施例中,資料儲存設備1216包括儲存區域1216a和智能運算電路1216b。本設計透過利用智能運算電路1216b(例如,整合型處理器、微處理器、微控制器等)來執行資料儲存設備1216本機的一些處理和計算操作來減少企業儲存驅動器中的延遲並提高性能,而不是從資料儲存設備發送資料透過互連方式發送到匯流排1208再另外透過互連方式發送到主機系統(例如,CPU 1202),然後讓主機系統去執行操作或運算,然後將處理過的資料發送到互連的匯流排1208再另外透過互連方式發送到資料儲存設備1216。在一個範例中,用以執行資料庫比較/匹配操作以確定資料庫是否應該儲存在資料儲存設備中用於本機處理或者資料庫是否應該移動到不同位置進行處理。
記憶體1206可以儲存供處理器1227使用的程式碼和/或資料。記憶體1206包括可以使用RAM(例如,SRAM、DRAM、DDRAM)、ROM、FLASH、磁和/ 或光儲存設備。記憶體還可以包括傳輸介質,用於承載指示電腦指令或資料的訊息承載訊號(帶有或不帶有調變訊號的載波)。
記憶體1204可以是如這裡所討論的記憶體子系統(例如,100、600)。記憶體1204可以包括記憶體子系統的任何元件,例如輸入/輸出(I/O)電路1204a、智能運算記憶體電路1204b和電阻式記憶體陣列1204c。
處理器1227和智能運算記憶體電路1204b執行儲存在記憶體中的各種軟體元件以執行系統1200的各種功能。在一個實施例中,軟體元件包括作業系統、編譯器元件和通訊模組(或指令集)。此外,記憶體可以儲存以上未描述到的其他模組和資料結構。
作業系統包括用於控制和管理一般系統任務的各種程序、指令集、軟體元件和/或驅動程序,並促進各種硬體和軟體元件之間的通訊。 編譯器是一種電腦程式(或程式集),它用以將程式化語言編寫的原始碼轉換為另一種電腦語言(例如,目標語言、物件程式碼)。 通訊模組使用網路介面設備 1222 或 RF 收發器 1224 以提供與其他設備的通訊。網路介面設備 1222 與網路 1218 (例如,區域網路 (LAN)、廣域網路 (WAN)) 耦合以與其他設備通訊。
電腦系統1200還可以包括網路介面設備1222。電腦系統1200還可以包括可選擇性的顯示設備1210(例如,液晶顯示器(LCD)、LED或陰極射線管(CRT)) 透過圖形埠和圖形晶片組連接到電腦系統1200、可選擇性的輸入設備 1212(例如鍵盤、滑鼠)、感測器系統 1213、相機 1214。在另一個範例中,電腦系統是無線設備 1200(例如,移動設備、平板設備、智能手錶等),其包括可選擇性的圖形用戶界面(GUI)設備 1220(例如,具有輸入和輸出功能的觸控螢幕)。
電腦系統1200還可包括RF收發器1224,其提供頻率偏移、轉換接收的RF訊號為基頻並將基頻發射訊號轉換為RF。在一些描述中,無線電收發器或RF收發器可以被理解為包括其他訊號處理功能,例如調變/解調變、編碼/解碼、交錯/解交錯、展頻/解展頻、快速傅立葉逆轉換(IFFT)/快速傅立葉轉換( FFT)、循環前綴附加/刪除和其他訊號處理功能。
資料儲存設備1216可以包括機器可讀取儲存介質(或更具體地說是電腦可讀取儲存介質),在其上儲存了實施本所描述的任何一種或多種方法論或功能的一組或多組指令。所公開的資料儲存機制可以完全或至少部分地由電腦系統1200在主記憶體1206和/或資料處理系統1202內實現,主記憶體1206和資料處理系統1202也構成機器可讀取儲存介質。
在一個範例中,電腦系統1200是自駕車(autonomous vehicle),其可以是連接(例如,透過網路連結)到LAN、WAN或任何網路中的其他機器或其他自駕車。自駕車可以是一個分佈式系統,其中包括在車輛內聯網的許多電腦。自駕車可以在主從式網路環境中以伺服器或客戶端的身份運行,或者在對等(或分佈式)網路環境中作為對等機器運行。電腦系統1200中揭露的儲存單元可以被配置用以實現用於執行自駕車操作的資料儲存機制。
「第12圖」是根據一個實施例所說明的處理器(例如,RISC、智能運算電路、整合型處理器)的操作階段流程圖1300。在一個範例中,在階段步驟1310,處理器最初從記憶體(例如,電阻式記憶體陣列180、記憶體1204、記憶體1206)獲取指令。 在階段步驟1320,指令被解碼以確定接下來可以執行什麼動作。 如果需要,處理器會根據指令從記憶體或 I/O模組中獲取資料。
在階段步驟1330,然後執行指令,這可能需要對資料執行演算或邏輯運算。除了執行之外,處理器還監督和控制I/O設備或I/O模組(例如,輸入/輸出(I/O)電路110、輸入設備1212、圖形用戶界面(GUI)設備1220)。如果有來自 I/O 設備或 I/O 模組的任何請求,稱為中斷,處理器會暫停當前程序的執行並將控制權轉移到中斷處理程序。執行的結果可能需要在階段步驟 1340 進行記憶體存取以將資料傳輸到記憶體、I/O 設備或 I/O模組。在階段步驟1350,處理器執行寫回策略,資料被寫入處理器的暫存器。
這裡所揭露的方法包括用於實現所述方法的一種或多種步驟或動作。在不脫離權利要求範圍的情況下,方法步驟和/或動作可以彼此互換。換言之,除非特別有指定步驟或動作的特定順序,否則在不脫離權利要求範圍的情況下可以修改特定步驟和/或動作的順序和/或使用。
這裡所描述的功能可以在硬體、軟體、韌體或其任何組合中實現。 處理系統可以用匯流排架構來實現。取決於處理系統的特定應用和整體設計限制,匯流排可以包括任意數量的互連總線和橋接器。匯流排可以將包括處理器、機器可讀取介質和匯流排介面的各種電路鏈結在一起。匯流排介面可用於透過匯流排將網路介面卡(network adapter)等其他連接到處理系統。匯流排還可以連接本領域眾所周知的各種其他電路,例如定時來源、周邊設備、電壓調節器、電源管理電路等,因此將不再進一步描述。
以下的任何一個範例都可以組合成單一實施例,或者這些範例可以是單獨的實施例。在第一實施例的一個範例中,智能運算記憶體電路包括整合型處理器和邏輯電路以實現自適應功率或性能改進,以及用於智能運算記憶體電路的自適應記憶體管理和控制。 電阻式記憶體陣列耦合到整合型處理器。
在第一實施例的另一範例中,電阻式記憶體陣列包括非揮發性隨機存取記憶體(RAM),包括磁阻式RAM(MRAM)、電阻式隨機存取記憶體(ReRAM、RRAM)、相變RAM( PCRAM)、鐵電 RAM (FeRAM) 和/或碳奈米管儲存單元。
在第一實施例的另一個範例中,整合型處理器配置有可程式化記憶體管理和控制,以最佳化包括記憶體性能和記憶體耐久性的參數。
在第一實施例的另一個範例中,整合型處理器被配置為在主機系統保持在低功率休眠狀態時預處理傳入的串流資料,其中預處理的結果被儲存在電阻式記憶體陣列中。
在第一實施例的另一個範例中,整合型處理器被配置為在主機系統保持在低功率休眠狀態時對要從電阻式記憶體陣列輸出的資料進行後處理。
在第一實施例的另一範例中,整合型處理器配置有電源管理控制以控制電源狀態,包括整合型處理器和電阻式記憶體陣列的正常操作狀態和休眠狀態。
在第二實施例的一個範例中,運算系統包括中央處理單元(CPU)和耦合到CPU的記憶體子系統。記憶體子系統包括輸入/輸出 (I/O) 電路、智能運算記憶體電路和電阻式記憶體陣列。智能運算記憶體電路包括整合型處理器和邏輯電路以實現自適應功率或性能改進,以及用於智能運算記憶體電路的自適應記憶體管理和控制。
在第二實施例的另一範例中,電阻式記憶體陣列包括非揮發性隨機存取記憶體(RAM),其包括磁阻式RAM(MRAM)、電阻式隨機存取記憶體(ReRAM、RRAM)、相變RAM( PCRAM)、鐵電 RAM (FeRAM) 和/或碳奈米管儲存單元。
在第二實施例的另一範例中,整合型處理器配置有可程式化記憶體管理和控制以最佳化包括記憶體性能和記憶體耐久性的參數。
在第二實施例的另一個範例中,整合型處理器被配置為在CPU保持在低功率休眠狀態時預處理串流資料,預處理的結果儲存在電阻式記憶體陣列中。
在第二實施例的另一範例中,整合型處理器被配置為在CPU保持在低功率休眠狀態時對要從電阻式記憶體陣列輸出的資料進行後處理。
在第二實施例的另一範例中,整合型處理器配置有電源管理控制以控制電源狀態,包括整合型處理器和電阻式記憶體陣列的正常操作狀態和休眠狀態。
在第二實施例的另一範例中,I/O電路具有接通(ON)狀態和無低功率(no low power)狀態。
在第二實施例的另一個範例中,運算系統還包括耦合到I/O電路的電源管理電路。電源管理電路接收來自 I/O 電路的有限狀態機的輸入並控制整合型處理器和電阻式記憶體的電源狀態。
在第三實施例的一個範例中,一種用於運算系統的低功率操作的電腦實現的方法包括利用運算系統的記憶體子系統從任何來源接收資料,將資料儲存在記憶體子系統的緩衝器中,確定緩衝器何時達到滿資料的閥值量,並且於周期性間隔或當緩衝器達到滿閥值量時,將智能運算電路和記憶體子系統的電阻式記憶體陣列的至少一個區域從低功率休眠狀態轉換到操作功率狀態。
在第三實施例的另一範例中,智能運算電路和電阻式記憶體陣列的至少一個區域從低功率休眠狀態轉變到操作功率狀態,而電阻式記憶體陣列的其他區域和包括一個主 CPU的運算系統元件保持在低功耗休眠狀態。
在第三實施例的另一個範例中,電腦實現的方法還包括用智能運算電路載入軟體程序,用智能運算電路處理資料以生成結果,並將結果儲存到電阻式記憶體陣列。
在第三實施例的另一個範例中,電腦實現的方法還包括確定智能運算電路的處理是否觸發了程式化事件,並回應程式化事件以將主 CPU 從低功率休眠狀態轉換到操作狀態。
在第三實施例的另一個範例中,電腦實現的方法還包括回應於主CPU轉換到操作狀態,將智能運算電路轉換到低功率休眠狀態直到下一個事件。
在第三實施例的另一範例中,智能運算電路包括整合型處理器,並且電阻式記憶體陣列包括非揮發性隨機存取記憶體 (RAM),其包括磁阻式 RAM (MRAM)、電阻式隨機存取記憶體 (ReRAM, RRAM)、相變 RAM (PCRAM)、鐵電 RAM (FeRAM) 和/或碳奈米管儲存單元中的一種或多種。
在第四實施例的一個範例中,電阻式記憶體包括電阻式記憶體陣列和耦合到電阻式記憶體陣列的自適應記憶體管理和控制電路(AMMC)。AMMC 配置有擴展的檢測、可靠性、性能或功率最佳化功能。
在第四實施例的另一範例中,AMMC與電阻式記憶體陣列整合。
在第四實施例的另一範例中,AMMC被配置為具有性能最佳化能力用以最佳化具有降低之記憶體耐久性的記憶體速度或者最佳化具有降低之記憶體速度的記憶體耐久性。
在第四實施例的另一範例中,電阻式記憶體進一步包括記憶體映射介面以將自適應記憶體管理和控制特徵映射到電阻式記憶體的記憶體映射區域。
在第四實施例的另一個範例中,AMMC包括內建自我檢測(Built-In Self Test, BIST)電路用以檢測擴展到電阻式記憶體陣列之附加檢測功能的功能。
在第四實施例的另一範例中,電阻式記憶體陣列包括非揮發性隨機存取記憶體(RAM),其包括磁RAM(MRAM)、電阻式RAM(RRAM)、相變RAM(PCRAM)、或鐵電 RAM (FeRAM)中的一種或多種。
在第五實施例的一個範例中,記憶體子系統包括智能運算記憶體電路、耦合到智能運算記憶體電路的電阻式記憶體陣列和耦合到電阻式記憶體陣列的自適應記憶體管理和控制電路(AMMC)。AMMC 配置有擴展的檢測和性能最佳化功能。
在第五實施例的另一個範例中,智能運算記憶體電路包括具有電源管理控制和記憶體管理控制的整合型處理器。
在第五實施例的另一範例中,整合型處理器配置有可程式化記憶體管理和控制以最佳化不同模式的參數,包括處理資料以根據需要加密或解密資料的第一模式,用於以不同的速度寫入或讀取以在溫度範圍內最佳化功率和性能的第二模式,生成自定義的讀寫操作序列的第三種模式,基於邏輯功能的輸出以生成有條件讀或寫操作的第四種模式。
在第五實施例的另一範例中,AMMC包括用於感測溫度的整合型溫度控制電路,其中AMMC被配置為使用整合型溫度控制電路並基於電阻式記憶體陣列感測的溫度資料在溫度範圍內自適應地改變功率和性能。
在第五實施例的另一範例中,AMMC包括內建自我檢測(Built-In Self Test, BIST)電路以檢測電阻式記憶體陣列的功能。
在第五實施例的另一個範例中,整合型處理器被配置為執行用於 BIST 電路的檢測程式碼,其中檢測程式碼被儲存在電阻式記憶體陣列的第一區域中,而電阻式記憶體陣列的第二區域正在被檢測。
在第五實施例的另一範例中,AMMC透過在低功率模式下對電阻式記憶體陣列的第二區域操作的同時對電阻式記憶體陣列的第一區域進行讀取和寫入來自適應地啟用功率最佳化。
在第五實施例的另一範例中,電阻式記憶體陣列包括非揮發性隨機存取記憶體(RAM),其包括磁RAM(MRAM)、電阻式RAM(RRAM)、相變RAM(PCRAM)、 或鐵電 RAM (FeRAM)中的一種或多種。
在第六實施例的一個範例中,一種電腦實現的方法向電阻式記憶體提供自適應記憶體管理和控制。電腦實現的方法包括將自適應記憶體管理和控制特徵映射到記憶體子系統的電阻式記憶體的記憶體映射區域,將自定義檢測程式碼載入到電阻式記憶體的第一儲存區域中,並使用記憶體子系統的智能運算記憶體電路執行,用於檢測電阻式記憶體的第二記憶體區的自定義檢測程式碼。
在第六實施例的另一範例中,自定義檢測程式碼檢測不同類型的故障或提供自適應模式以提高電阻式記憶體的可靠性、性能、耐久性或功耗。
在第六實施例的另一範例中,電腦實現的方法更包括從第二記憶體區讀取回應,將讀取回應與預期回應進行比較,以及回應於該比較而執行動作。
在第六實施例的另一範例中,動作包括透過或失敗記憶體區或最佳化記憶體設置、性能、耐久性或功率。
在第六實施例的另一個範例中,智能運算記憶體電路包括整合型處理器,該整合型處理器被配置為提供不同模式來寫入和讀取電阻式記憶體的儲存單元,以實現更大的使用靈活性。不同模式包括性能最佳化模式,用以透過順序地或使用設定的定址序列從電阻式記憶體的多個記憶體庫(memory banks)讀取或寫入來提高性能,例如當讀取或寫入被安置(settles)在電阻式記憶體的第一個記憶體庫中時可以使得第二個記憶體庫被讀取或寫入。
在第六實施例的另一範例中,電阻式記憶體包括非揮發性隨機存取記憶體(RAM),其包括磁RAM(MRAM)、電阻式RAM(RRAM)、相變RAM(PCRAM)或鐵電 RAM (FeRAM)中的一種或多種。
應當理解,權利要求不限於以上所揭露的精確配置和元件。在不脫離權利要求範圍的情況下,可以對上述方法和設備的安排、操作和細節進行各種修改、改變和變化。
100:記憶體子系統
110:輸入/輸出(I/O)電路
112:暫存器
114:記憶體緩衝器
116:有限狀態機
120:智能運算記憶體電源管理電路
130-1、130-2、130-3、130-4:通訊鏈結
150:智能運算記憶體電路
151-1、151-2、151-3、151-4:通訊鏈結
160:整合型處理器
170:記憶體介面
172:自適應記憶體管理和控制電路
180:電阻式記憶體陣列
180-1、180-2、180-3、180-4:區域
190:智能運算記憶體管理和控制電路
200:智能運算記憶體電路
210:電阻式記憶體陣列
260:智能運算電路
261:資料路徑加法器
262:資料路徑比較器
263:縮減功能
264:控制/儲存暫存器
300:智能運算記憶體電路
302:資料匯流排
310:累加器
312:除法運算
314:暫存器
316:平均函數
320:緩衝器
322:累加器
324:除法運算
326:暫存器
328:移動平均函數
330:加/減函數
332:絕對值確定
333:輸入
334:累加器
335:輸出反饋
336:暫存器
338:相似度測量函數.
340:更新最小值/最大值功能
342:軟體applet功能
344:暫存器
346:更新最小值/最大值函數
400:低功率神經型態智能記憶體
410:路由通道
450:智慧財產(IP)核心
460:電阻式記憶體
462:資料路徑加法器
464:資料路徑比較器
468:資料
470:累加
472:邏輯
474:類別
500:方法
600:記憶體子系統
610:輸入/輸出(I/O)電路
612:暫存器
614:記憶體緩衝器
616:有限狀態機
620:智能運算記憶體電源管理電路
630-1、630-2、630-3、630-4:通訊鏈結
650:智能運算記憶體電路
651-1、651-2、651-3、651-4:通訊鏈結
660:整合型處理器
670:記憶體介面
672:自適應記憶體管理和控制電路
674:介面
680:電阻式記憶體陣列
680-1、680-2、680-3、680-4:區域
682:系統介面
690:智能運算記憶體管理和控制電路
700:電阻式記憶體
702:電阻式記憶體陣列
702A、702B:記憶體區
703A、703B:記憶體
704:系統介面
710:檢測邏輯
720:自適應記憶體管理和控制電路
722:溫度控制電路
730:自適應記憶體管理和控制介面
740:記憶體映射介面
760:演算邏輯單元
800:電阻式記憶體
900:電阻式記憶體
1000:方法
1200:電腦系統
1202:中央處理單元(CPU)
1204、1206:記憶體
1204a:輸入/輸出(I/O)電路
1204b:智能運算記憶體電路
1204c:電阻式記憶體陣列
1206:主記憶體
1208:匯流排
1210:顯示設備
1212:輸入設備
1213:感測器系統
1214:相機
1216:資料儲存設備
1216a:儲存區域
1216b:智能運算電路
1220:圖形用戶界面(GUI)設備
1222:網路介面設備
1224:RF 收發器
1227:處理器
1228:網路
1300:流程圖
步驟502:從任何來源(例如,運算設備、伺服器、IoT設備、感測器等)接收資料(例如,串流資料)
步驟504:儲存資料在記憶體子系統的緩衝器中
步驟506:確定緩衝器是否達到資料的滿閥值量(例如,25%滿、50%滿、75%滿等)
步驟508:在週期性間隔或每當緩衝器達到滿閥值量(例如,25%滿、50%滿、75%滿等)時,智能運算記憶體電路和記憶體子系統的電阻式記憶體陣列的至少一個區域(例如,180-1、180-2、180-3、180-4)從低功率休眠狀態轉變為完全操作功率狀態,而電阻式記憶體陣列180的其他區域、主機系統(例如:SOC主CPU1202、處理器1227)和運算系統的其他元件依然維持在低功率休眠狀態
步驟510:智能運算記憶體電路從主記憶體載入其軟體程式,根據需要預處理資料,可以執行運算,並且將結果儲存到電阻式記憶體陣列中
步驟512:如果智能運算電路的處理結果觸發可程式化事件(例如,軟件applet功能、閥值事件),則智能運算電路將發出警報(例如,發出警報, 發送文字、喚醒主 CPU 等)
步驟514:智能運算電路和電阻式記憶體陣列從完全操作功率狀態轉換到低功率休眠狀態,直到下一個事件發生
步驟516:如果在步驟506緩衝器沒有達到滿閥值量,則智能運算記憶體電路和電阻式記憶體陣列維持在低功率休眠狀態
步驟1002:將自適應記憶體管理和控制特徵映射到記憶體子系統之電阻記憶體的記憶體映射區域。自適應記憶體管理和控制電路和檢測邏輯可以提供記憶體管理和控制特徵
步驟1004:自定義檢測程式碼被載入到電阻式記憶體的第一儲存區中
步驟1006:記憶體子系統的智能運算記憶體電路(例如,整合型處理器、微處理器)執行自定義檢測程式碼以檢測電阻式記憶體的第二記憶體區。自定義檢測程式碼可以檢測不同類型的故障(例如,固定故障、轉換延遲故障、耦合、鄰域模式敏感故障)或提供自適應或增強模式
步驟1008:從第二記憶體區讀取回應
步驟1010:將讀取回應與預期回應進行比較
步驟1012:根據比較的結果執行動作
步驟1310:獲取指令
步驟1320:指令解碼
步驟1330:執行指令
步驟1340:記憶體存取
步驟1350:寫回
可以透過參考以下附圖實現對本文內容的本質和優點的進一步理解。在附圖中,相似的元件或特徵可以具有相同的參考標記(reference label)。 此外,可以透過在參考標記後面加上的破折號和區分相似元件的第二標記來區分相同類型的不同元件。如果在說明書中使用第一參考標記,則該描述適用於具有相同第一參考標記的任何一個相似元件,而不管第二參考標記為何。
第1圖描繪根據一個實施例的具有智能運算記憶體之記憶體子系統100的方塊圖。
第2圖描繪根據一個實施例的具有智能運算記憶體的智能運算記憶體電路的功能方塊圖。
第3圖說明根據一個實施例的智能運算記憶體電路300的方塊圖。
第4A圖說明根據一個實施例的低功率神經形態智能記憶體400。
第4B圖說明根據一個實施例的IP核心的展開視圖。
第5圖為根據一個實施例的用於操作智能運算記憶體電路以降低運算系統之功耗的方法500的流程圖。
第6圖描繪根據一個實施例的具有智能運算記憶體和自適應記憶體管理和控制的記憶體子系統600的方塊圖。
第7圖說明根據一個實施例的具有整合型自適應記憶體管理和控制電路(AMMC)的電阻式記憶體的方塊圖。
第8圖說明根據另一個實施例的具有整合型自適應記憶體管理和控制電路(AMMC)的電阻式記憶體的方塊圖。
第9圖說明根據另一個實施例的具有整合型自適應記憶體管理和控制電路(AMMC)的電阻式記憶體的方塊圖。
第10圖說明根據一個實施例的用於提供自適應記憶體管理和控制(例如,擴展電阻式RAM記憶體的BIST)的方法1000的流程圖。
第11圖展示在本文中所描述之一些實施例的電腦系統。
第12圖說明根據一個實施例的整合型處理器(例如,RISC、智能運算電路)操作階段的流程圖。
100:記憶體子系統
110:輸入/輸出(I/O)電路
112:暫存器
114:記憶體緩衝器
116:有限狀態機
120:智能運算記憶體電源管理電路
130-1、130-2、130-3、130-4:通訊鏈結
150:智能運算記憶體電路
151-1、151-2、151-3、151-4:通訊鏈結
160:整合型處理器
170:記憶體介面
172:自適應記憶體管理和控制電路
180:電阻式記憶體陣列
180-1、180-2、180-3、180-4:區域
190:智能運算記憶體管理和控制電路
Claims (40)
- 一種智能運算記憶體電路,包括: 一整合型處理器和邏輯電路,用以實現自適應功率或性能改進,以及所述智能運算記憶體電路的自適應記憶體管理和控制;以及 一電阻式記憶體陣列,耦合到該整合型處理器。
- 如請求項1所述之智能運算記憶體電路,其中所述電阻式記憶體陣列更包括非揮發性隨機存取記憶體(RAM),包含磁阻式RAM(MRAM)、電阻式隨機存取記憶體、相變RAM(PCRAM)、鐵電RAM(FeRAM)或碳奈米管儲存單元中的一種或多種。
- 如請求項1所述之智能運算記憶體電路,其中所述整合型處理器配置有可程式化記憶體管理和控制用以最佳化包括記憶體性能和記憶體耐久性的參數。
- 如請求項1所述之智能運算記憶體電路,其中所述整合型處理器被配置為在一主機系統保持在一低功率休眠狀態時預處理串流資料,其中預處理的結果儲存在所述電阻式記憶體陣列。
- 如請求項1所述之智能運算記憶體電路,其中所述整合型處理器被配置為在一主機系統保持在一低功率休眠狀態時對將從所述電阻式記憶體陣列輸出的資料進行後處理。
- 如請求項1所述之智能運算記憶體電路,其中所述整合型處理器配置有電源管理控制或耦合到一電源管理電路以控制電源狀態,包括所述整合型處理器和所述電阻式記憶體陣列的一正常操作狀態和一低功率休眠狀態。
- 一種運算系統,包括: 一中央處理單元(CPU);以及 一記憶體子系統,耦合到該CPU,該記憶體子系統包括一輸入/輸出 (I/O) 電路、一智能運算記憶體電路以及一電阻式記憶體陣列,其中所述智能運算記憶體電路包括一整合型處理器和邏輯電路用以實現自適應功率或性能改進,以及所述智能運算記憶體電路的自適應記憶體管理和控制。
- 如請求項7所述之運算系統,其中所述電阻式記憶體陣列更包括非揮發性隨機存取記憶體(RAM),包括磁阻式RAM(MRAM)、電阻式隨機存取記憶體、相變RAM(PCRAM)、鐵電RAM(FeRAM)或碳奈米管儲存單元中的一種或多種。
- 如請求項7所述之運算系統,其中所述整合型處理器配置了可程式化記憶體管理和控制用以最佳化包括記憶體性能和記憶體耐用性的參數。
- 如請求項7所述之運算系統,其中所述整合型處理器被配置為在該CPU保持在一低功率休眠狀態時預處理串流資料,預處理的結果儲存在該電阻式記憶體陣列中。
- 如請求項7所述之運算系統,其中所述整合型處理器被配置為在該CPU保持在一低功率休眠狀態時對將從該電阻式記憶體陣列輸出的資料進行後處理。
- 如請求項7所述之運算系統,其中所述整合型處理器配置有電源管理控制用以控制電源狀態,包括所述整合型處理器和所述電阻式記憶體陣列的一正常操作狀態和一休眠狀態。
- 如請求項7所述之運算系統,其中所述輸入/輸出 (I/O) 電路具有一通電(ON)狀態和一無低功耗狀態。
- 如請求項7所述之運算系統,更包含耦合到輸入/輸出 (I/O) 電路的一電源管理電路,該電源管理電路接收來自輸入/輸出 (I/O) 電路之一有限狀態機的輸入並控制所述整合型處理器和所述電阻式記憶體的電源狀態。
- 一種電腦實現方法,用於一運算系統的低功率操作,該電腦實現的方法包括以下步驟: 使用所述運算系統的一記憶體子系統接收來自任何來源的資料; 將資料儲存在該記憶體子系統的一緩衝區; 確定該緩衝區何時達到資料的一滿閥值量;以及 以周期性間隔或當該緩衝器達到所述滿閥值量時,將一智能運算電路和所述記憶體子系統的一電阻式記憶體陣列的至少一個區域從一低功率休眠狀態轉換到一操作功率狀態。
- 如請求項15所述之電腦實現方法,其中所述智能運算電路和所述電阻式記憶體陣列的所述至少一個區域從該低功率休眠狀態轉換到該操作功率狀態,而所述電阻式記憶體陣列的其他區域和包括一主CPU的所述運算系統的元件保持在該低功率休眠狀態。
- 如請求項16所述之電腦實現方法,更包含以下步驟: 使用所述智能運算電路載入一軟體程式; 使用所述智能運算電路處理資料用以生成一結果;以及 將該結果儲存到所述電阻式記憶體陣列中。
- 如請求項17所述之電腦實現方法,更包含以下步驟: 確定所述智能運算電路的處理是否觸發一程式化事件; 以及 回應該程式化事件以將該主 CPU從該低功耗休眠狀態轉換為一操作狀態。
- 如請求項18所述之電腦實現方法,更包含以下步驟: 將所述智能運算電路轉換到該低功耗休眠狀態直到一下一事件,用以回應該主 CPU 轉換到該操作狀態。
- 如請求項15所述之電腦實現方法,其中所述智能運算電路包括一整合型處理器,以及所述電阻式記憶體陣列包括非揮發性隨機存取記憶體 (RAM),包括磁阻式 RAM (MRAM)、電阻隨機存取記憶體、相變 RAM (PCRAM)、鐵電 RAM (FeRAM) 或碳納米管記憶體單元中的一種或多種。
- 一種電阻式記憶體,包括: 一電阻式記憶體陣列;以及 一自適應記憶體管理和控制電路(AMMC),耦合到所述電阻式記憶體陣列,其中所述AMMC配置有擴展的檢測、可靠性、性能或功率最佳化能力。
- 如請求項21所述之電阻式記憶體,其中所述AMMC 與所述電阻式記憶體陣列整合。
- 如請求項21所述之電阻式記憶體,其中所述AMMC 配置了性能最佳化功能,用以透過降低記憶體耐用性來最佳化記憶體速度,或者透過降低記憶體速度來最佳化記憶體耐用性。
- 如請求項21所述之電阻式記憶體,更包含一記憶體映射介面,用以將自適應記憶體管理和控制特徵映射到所述電阻式記憶體的一記憶體映射區域。
- 如請求項21所述之電阻式記憶體,其中該AMMC 包括內建自我檢測電路,用於檢測擴展到所述電阻式記憶體陣列的附加檢測功能的功能。
- 如請求項21所述之電阻式記憶體,其中所述電阻式記憶體陣列包括非揮發性隨機存取記憶體(RAM),包括磁阻式RAM(MRAM)、電阻式RAM(RRAM)、相變RAM(PCRAM)或鐵電RAM(FeRAM)中的一種或多種。
- 一種記憶體子系統,包括: 一智能運算記憶體電路; 一電阻式記憶體陣列,耦合到所述智能運算記憶體電路;以及 一自適應記憶體管理和控制電路(AMMC),耦合到所述電阻式記憶體陣列,其中該AMMC配置有擴展的檢測和性能最佳化能力。
- 如請求項27所述之記憶體子系統,其中所述智能運算記憶體電路包括具有電源管理控制和記憶體管理控制的一整合型處理器。
- 如請求項28所述之記憶體子系統,其中所述整合型處理器配置有可程式化記憶體管理和控制以最佳化不同模式下的參數,包括處理資料以根據需要加密或解密資料的一第一模式,以不同速度寫入或讀取以在一溫度範圍中最佳化功率和性能的一第二模式,一第三種模式生成讀寫操作的一自定義序列,一第四種模式基於一邏輯函數的輸出生成一有條件讀寫操作。
- 如請求項27所述之記憶體子系統,其中所述AMMC包括用於感測溫度的一整合型溫度控制電路,其中所述AMMC被配置為使用該整合型溫度控制電路並且基於所述電阻式記憶體陣列的感測溫度資料在一溫度範圍內自適應地改變功率和性能。
- 如請求項27所述之記憶體子系統,其中該AMMC 包括內建自我檢測(BIST)電路,用於檢測所述電阻式記憶體陣列的功能。
- 如請求項29所述之記憶體子系統,其中所述整合型處理器被配置為執行用於 BIST 電路的一檢測程式碼,其中該檢測程式碼儲存在所述電阻式記憶體陣列的一第一區域中,當所述電阻式記憶體陣列的一第二區域正在被檢測。
- 如請求項31所述之記憶體子系統,其中該AMMC透過在一低功率模式下操作所述電阻式記憶體陣列的一第二區域的同時讀取和寫入所述電阻式記憶體陣列的一第一區域以自適應地啟用功率最佳化。
- 如請求項27所述之記憶體子系統,其中所述電阻式記憶體陣列包括非揮發性隨機存取記憶體(RAM),包括磁阻式RAM(MRAM)、電阻式RAM(RRAM)、相變RAM(PCRAM)或鐵電RAM(FeRAM)中的一種或多種。
- 一種用於向一電阻式記憶體提供自適應記憶體管理和控制的電腦實現方法,該電腦實現方法包含以下步驟: 將自適應記憶體管理和控制特徵映射到一記憶體子系統的所述電阻式記憶體的一記憶體映射區域; 將一自定義檢測程式碼載入到所述電阻式記憶體的一第一記憶體區中; 以及 使用所述記憶體子系統的一智能運算記憶體電路執行該自定義檢測程式碼以檢測所述電阻式記憶體的一第二記憶體區。
- 如請求項35所述之電腦實現方法,其中所述自定義檢測程式碼檢測不同類型的故障或提供自適應模式以提高所述電阻式記憶體的可靠性、性能、耐用性或功耗。
- 如請求項36所述之電腦實現方法,更包含下列步驟: 從所述第二記憶體區讀取一回應; 將讀取的該回應與一預期回應進行比較;以及 回應比較而執行一操作。
- 如請求項37所述之電腦實現方法,其中該操作包括透過或失敗記憶體區域或最佳化記憶體設置、性能、耐用性或功率。
- 如請求項36所述之電腦實現方法,其中所述智能運算記憶體電路包括一整合型處理器,該整合型處理器被配置為提供不同模式來寫入和讀取所述電阻式記憶體的儲存單元,以實現更大的使用靈活性。不同模式包括一性能最佳化模式,用以透過順序地或使用一設定定址序列從所述電阻式記憶體的多個記憶體庫(memory banks)讀取或寫入來提高性能,當讀取或寫入被安置(settles)在所述電阻式記憶體的一第一個記憶體庫中時可以使得一第二個記憶體庫被讀取或寫入。
- 如請求項35所述之電腦實現方法,其中所述電阻式記憶體包括非揮發性隨機存取記憶體(RAM),包括磁阻式RAM(MRAM)、電阻式RAM(RRAM)、相變RAM(PCRAM)或鐵電RAM(FeRAM)中的一種或多種。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/924,958 US11443802B2 (en) | 2020-07-09 | 2020-07-09 | Adaptive memory management and control circuitry |
US16/924,948 | 2020-07-09 | ||
US16/924,958 | 2020-07-09 | ||
US16/924,948 US11436025B2 (en) | 2020-07-09 | 2020-07-09 | Smart compute resistive memory |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202219752A true TW202219752A (zh) | 2022-05-16 |
Family
ID=79552111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110125203A TW202219752A (zh) | 2020-07-09 | 2021-07-08 | 智能運算電阻式記憶體、記憶體電路、記憶體子系統、運算系統及其電腦實現方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4179429A1 (zh) |
TW (1) | TW202219752A (zh) |
WO (1) | WO2022011153A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11436025B2 (en) | 2020-07-09 | 2022-09-06 | Numem Inc. | Smart compute resistive memory |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10475514B2 (en) * | 2017-05-11 | 2019-11-12 | The Penn State Research Foundation | Nonvolatile digital computing with ferroelectric FET |
-
2021
- 2021-07-08 TW TW110125203A patent/TW202219752A/zh unknown
- 2021-07-08 EP EP21837933.7A patent/EP4179429A1/en active Pending
- 2021-07-08 WO PCT/US2021/040909 patent/WO2022011153A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022011153A8 (en) | 2023-02-09 |
WO2022011153A1 (en) | 2022-01-13 |
EP4179429A1 (en) | 2023-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884957B2 (en) | Pipeline circuit architecture to provide in-memory computation functionality | |
US11901000B2 (en) | Adaptive memory management and control circuitry | |
US11829775B2 (en) | Smart compute resistive memory | |
Chen et al. | Energy-aware adaptive restore schemes for MLC STT-RAM cache | |
US9201993B2 (en) | Goal-driven search of a stochastic process using reduced sets of simulation points | |
Ulusel et al. | Hardware acceleration of feature detection and description algorithms on low-power embedded platforms | |
Geng et al. | O3BNN-R: An out-of-order architecture for high-performance and regularized BNN inference | |
Ma et al. | Spendthrift: Machine learning based resource and frequency scaling for ambient energy harvesting nonvolatile processors | |
US20190057727A1 (en) | Memory device to provide in-memory computation functionality for a pipeline circuit architecture | |
US20090259982A1 (en) | Netlist cell identification and classificiation to reduce power consumption | |
US11442491B2 (en) | Dynamic power monitor monitoring power basted on clock cycle, processor, and system on chip | |
US20240152292A1 (en) | Redundant computing across planes | |
TW202219752A (zh) | 智能運算電阻式記憶體、記憶體電路、記憶體子系統、運算系統及其電腦實現方法 | |
Adegbija et al. | Right-provisioned IoT edge computing: An overview | |
CN111352757A (zh) | 检测未初始化存储器读取的设备、系统和方法 | |
EP4020216A1 (en) | Performance circuit monitor circuit and method to concurrently store multiple performance monitor counts in a single register | |
Sartor et al. | Machine Learning-Based Processor Adaptability Targeting Energy, Performance, and Reliability | |
US20240143540A1 (en) | System on chip and method of operating the same | |
US12021523B2 (en) | Integrated circuit and computing system performing dynamic voltage and frequency scaling and method of operating integrated circuit | |
US20240143061A1 (en) | System on chip and operation method thereof | |
US20220255549A1 (en) | Integrated circuit and computing system performing dynamic voltage and frequency scaling and method of operating integrated circuit | |
US20230161941A1 (en) | Application negotiable platform thermal aware scheduler | |
US20230418750A1 (en) | Hierarchical core valid tracker for cache coherency | |
Sze et al. | Key metrics and design objectives | |
Singh et al. | PARAG: PIM Architecture for Real-Time Acceleration of GCNs |