[go: up one dir, main page]

TWI860775B - 具有一交叉桿陣列結構之記憶體內處理裝置之類比記憶體裝置之精確程式化 - Google Patents

具有一交叉桿陣列結構之記憶體內處理裝置之類比記憶體裝置之精確程式化 Download PDF

Info

Publication number
TWI860775B
TWI860775B TW112125983A TW112125983A TWI860775B TW I860775 B TWI860775 B TW I860775B TW 112125983 A TW112125983 A TW 112125983A TW 112125983 A TW112125983 A TW 112125983A TW I860775 B TWI860775 B TW I860775B
Authority
TW
Taiwan
Prior art keywords
memory elements
conductance
memory
value
cell
Prior art date
Application number
TW112125983A
Other languages
English (en)
Other versions
TW202420309A (zh
Inventor
加洛 布爾多 曼努埃爾 里
安提諾西爾斯 凡希拉普洛斯
班內迪克特 克斯汀
朱利安 羅特格 比歇爾
阿布 賽巴斯欽
Original Assignee
美商萬國商業機器公司
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 美商萬國商業機器公司 filed Critical 美商萬國商業機器公司
Publication of TW202420309A publication Critical patent/TW202420309A/zh
Application granted granted Critical
Publication of TWI860775B publication Critical patent/TWI860775B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Complex Calculations (AREA)
  • Read Only Memory (AREA)
  • Static Random-Access Memory (AREA)
  • Logic Circuits (AREA)

Abstract

本發明尤其係針對一種程式化具有一交叉桿陣列結構之一記憶體內運算(IMC)裝置之記憶體元件的方法。亦即,該IMC裝置包括在定義 N× M個胞元之交叉點(亦即,接面)處互連的 N個輸入線及 M個輸出線,其中 N≥2且 M≥2。該等交叉點包含將該等輸入線連接至該等輸出線之各別記憶體系統。各記憶體系統包括並聯配置的一組 K個記憶體元件,其中 K≥2。亦即,該 N× M個胞元中之各胞元包括 K個記憶體元件。目標為在一目標電導值對應於將儲存於該各胞元中之一目標權重值的情況下程式化各胞元。各胞元藉由首先將該 K個記憶體元件設定為一SET狀態來程式化。為此目標,一SET信號施加至各胞元之該 K個記憶體元件。隨後讀取該 K個記憶體元件(現處於一SET狀態)之該 K個電導值,以便調整該胞元的該電導。亦即,基於讀取的該 K個電導值及該目標電導值,調整該 K個記憶體元件中之至少一者的該電導值。執行此以便使該胞元之該 K個記憶體元件之一總和電導與該目標電導值匹配,同時最大化處於其SET狀態或處於零電導標稱值之一RESET狀態之該 K個記憶體元件的一數目,使得該 K個記憶體元件中之至多一者既不處於一SET狀態亦不處於一RESET狀態,以減少該陣列上之中間電導狀態的不精確性。本發明進一步係針對相關系統及電腦程式產品。

Description

具有一交叉桿陣列結構之記憶體內處理裝置之類比記憶體裝置之精確程式化
本發明大體上係關於程式化具有一交叉桿陣列結構之記憶體內運算裝置之類比記憶體元件的方法、配備有此類記憶體內運算裝置之可程式化系統及相關電腦程式產品。特定而言,本發明係針對一種使處於SET狀態或處於RESET狀態之記憶體元件之數目最大化的程式化方法。
諸如深度神經網路之人工神經網路(ANN)藉由在解決認知任務方面提供前所未有的效能而改變機器學習領域。ANN運算通常涉及矩陣向量乘法(MVM)。由於此類運算之重複以及運算及記憶體需求,此類運算帶來多個挑戰。傳統電腦架構係基於範紐曼(von Neumann)運算概念,根據此概念將處理能力及資料儲存分成單獨物理單元。由於資料必須經由物理受限且成本高之介面自記憶體單元連續傳輸至控制及算術單元,故此架構概念受擁塞及高功率消耗影響。
加速MVM之一種可能性為使用專用硬體加速裝置,諸如具有交叉桿陣列結構之記憶體內運算裝置。此類型之電路包括在定義胞元之交叉點處互連的輸入線及輸出線。胞元含有經設計以儲存各別矩陣係數之各別記憶體元件(或記憶體元件之集合)。此類架構可簡單地且有效地映射MVM:向量經編碼在信號中,該等信號施加至交叉桿陣列之輸入線以將MVM作為乘法累加(MAC)運算執行。按執行連續MVM之需要,可藉由重新程式化記憶體元件來更新權重。此類記憶體內運算裝置打破「記憶體牆」,因為其將算術及記憶體單元融合為單個記憶體內運算(IMC)單元。
而且,藉由利用IMC裝置之類比儲存能力及克希荷夫電路定律(Kirchhoff's circuits laws),在IMC單元中使用類比記憶體裝置允許有效地執行MVM運算。交叉桿陣列結構之另一優勢為其支援轉置矩陣運算,此可用以訓練ANN。更一般地,由此類裝置啟用之關鍵運算基元亦可用於其他應用,例如線性方程組的求解器。
然而,一個關鍵挑戰為達成令人滿意的運算精確度,此基本上由目標突觸電導值可映射至突觸元件(亦即,類比記憶體元件)上之精確度來判定。
舉例而言,考慮將突觸權重儲存於具有處於差異組態中之兩個憶阻裝置之單位胞元中。亦即,憶阻裝置分別用於儲存正及負值。在此類組態中,目標權重值通常僅映射至一個憶阻裝置之電導上,取決於權重值之正負號,「正」裝置(設定為具有電導值 G p )或「負」裝置(設定為具有電導值 G n )。另一裝置經重設為具有零標稱電導值的RESET狀態。目標權重通常按因數(稱為 G max )來縮放,以將其轉變為一值,使得跨胞元之記憶體元件利用裝置電導之整個動態範圍。
相同方法可以擴展至各自包括兩組 K個裝置之單位胞元,其中該兩個組處於差異組態,而各組中之 K個裝置並聯連接。此處,權重之值映射於根據其極性選擇之組的 K個裝置之電導上。映射可以多種方式進行。一種方法(稱為「等填充方法」)係使用任意選擇因數( G max )來縮放權重,如同在單裝置方法中,且將所有 K個裝置映射至該值。另一方法(通常稱為「最大填充方法」)係按等於 K× G max 之因數來縮放權重,且將儘可能多的記憶體裝置映射至值 G max ,同時將單個裝置設定為對應於殘差的電導值。剩餘裝置(若存在)經重設為零電導。
在單個裝置中程式化權重之最常見方法為所謂的「反覆程式化」(ITP)方案,藉此單獨讀取記憶體裝置,且向此類裝置施加校正脈衝以最小化目標電導值( G target )與量測值( G measured )之間的差。施加的校正脈衝由程式化控制器反覆地定義。此方法之一個主要缺點係由於需要高解析度類比數位轉換器(ADC)及相當長整合時間,單裝置讀出可能不精確且實施昂貴。
另一常見單裝置程式化方法為所謂的「單次程式化」(SSP)方法,其中程式化脈衝參數化地捕獲在查找表(LUT)中,該查找表收集與程式化曲線相關的所有資訊。此方法之一個主要缺點係理想的程式化曲線具有裝置間及裝置內可變性(除將記憶體裝置設定為其SET及RESET狀態外)。因此,在記憶體裝置之大陣列中不能精確地達到中間狀態。
當涉及多裝置單位胞元時,可藉由擴展或組合上述單裝置程式化方案來進行程式化。舉例而言,可將ITP方法擴展至單位胞元中涉及之所有記憶體裝置,且在各裝置上單獨地循環。另一可能性為組合SSP及ITP方法,藉此可藉由施加RESET及SET脈衝使用SSP方法來初始化記憶體裝置。隨後可使用順序讀取驗證方案來藉由施加SSP脈衝來將初始地設定為RESET狀態之記憶體裝置程式化為SET狀態、RESET狀態或中間狀態。目標為使胞元中之記憶體元件之總和電導值( G cell )儘可能接近 G target 。最終,可使用ITP方案來程式化初始地設定為SET狀態之記憶體裝置,以校正SSP程式化誤差且最小化SSP方案的殘餘電導誤差( G error )。
作為本發明人,已知程式化方案固有地導致經程式化的權重值的一些不精確性。因此,其設計新穎技術來更精確地程式化交叉桿陣列的類比記憶體元件。
根據第一態樣,本發明實施為一種程式化具有一交叉桿陣列結構之一記憶體內運算(IMC)裝置之記憶體元件的方法。亦即,該IMC裝置包括在定義 N× M個胞元之交叉點(亦即,接面)處互連的 N個輸入線及 M個輸出線,其中 N≥2且 M≥2。該等交叉點包含將該等輸入線連接至該等輸出線之各別記憶體系統。各記憶體系統包括並聯配置的一組 K個記憶體元件,其中 K≥2。亦即,該 N× M個胞元中之各胞元包括 K個記憶體元件。
該方法之目標為在一目標電導值對應於將儲存於該各胞元中之一目標權重值的情況下程式化各胞元。各胞元藉由首先將該 K個記憶體元件設定為一SET狀態來程式化。為此目標,一SET信號施加至各胞元之該 K個記憶體元件。隨後讀取該 K個記憶體元件(現處於一SET狀態)之該 K個電導值,以便調整該胞元的該電導。亦即,基於讀取的該 K個電導值及該目標電導值,調整該 K個記憶體元件中之至少一者的該電導值。執行此以便使該胞元之該 K個記憶體元件之一總和電導與該目標電導值匹配,同時最大化處於其SET狀態或處於零電導標稱值之一RESET狀態之該 K個記憶體元件的一數目,使得該 K個記憶體元件中之至多一者既不處於一SET狀態亦不處於一RESET狀態。
此使得有可能減少因陣列上之中間電導狀態而導致之不精確性。此反過來顯著減少程式化誤差且增加運算精密度。
較佳實施例依賴於對記憶體元件之合適子集的判定。亦即,調整步驟首先包含基於讀取的該 K個電導值及該目標電導值來判定 K'個記憶體元件之一子集,其中 K'≤ K。後者通常藉由縮放初始電導值來獲得,亦即藉由將初始權重值乘以縮放因數,該縮放因數係根據胞元之最大胞元電導來判定。
上述子集係在以下約束條件下判定的:此子集之記憶體元件之總和電導必須與目標電導值匹配,受制於可藉由重新程式化 K'個記憶體元件中之至多一者而移除的一容限。接下來,該調整本身藉由以下來達成:(i)將一RESET信號施加至不在該子集中之(該胞元之)任何剩餘記憶體元件,以將此元件設定為其RESET狀態;及/或(ii)重新程式化該經判定子集之該 K'個記憶體元件中之至多一者。
舉例而言,上述子集可經判定為最小基數之子集,亦即,處於其SET狀態之記憶體元件之總和電導值最大的子集。另外,可有利地將待重新程式化之記憶體元件選擇為經判定子集之記憶體元件當中之具有最小電導的元件,以便最小化處於中間狀態之記憶體元件的數目。
一些情境將僅需要重新程式化該 K'記憶體元件中之恰好一者,而其他情境可能僅需要重設剩餘記憶體元件,亦即在經判定子集之外的元件。然而,最可能情境為需要將RESET信號施加至任何剩餘記憶體元件且重新程式化該 K'個記憶體元件中的恰好一者。
所提出方法可有利地應用於差異組態中之多裝置胞元。亦即,各胞元之記憶體系統可包括兩組 K個記憶體元件,其中各組中 K≥2 (各胞元現包括2 K個記憶體元件)。該兩個組處於一差異組態中:其由一第一組 K個記憶體元件及一第二組 K個記憶體元件組成,其分別用於儲存一正權重值及一負權重值。該 K個記憶體元件在該兩個組中之各者中為並聯配置的。
在此上下文中,該方法進一步包含根據將儲存於各胞元中之該目標權重之一預期正負號來選擇該兩個組中的一給定組。此係在將記憶體元件設定為其SET狀態之前進行的,且係為了將記憶體元件設定為其SET狀態。該SET信號僅需要施加至所選擇之給定組之 K個記憶體元件,此導致將給定組之 K個記憶體元件中的各者設定為SET狀態。然而,隨後讀取2 K個電導值,其由兩個組中之各者中之 K個記憶體元件的 K個電導值組成。最終,藉由修改給定組中之一或多個電導值來執行調整步驟。亦即,該方法將基於讀取的該2 K個電導值及該目標電導值來調整該給定組之該 K個記憶體元件中之至少一者的一電導值。目標為使該胞元之該2 K個記憶體元件之該總和電導與該目標電導值匹配,同時最大化處於其SET狀態或處於零電導標稱值之一RESET狀態之該2 K個記憶體元件的該數目,使得該給定組之該 K個記憶體元件中之至多一者既不處於一SET狀態亦不處於一RESET狀態。
注意,可根據任何合適的單裝置程式化方法,諸如反覆程式化方法、基於梯度之演算法或單次程式化方法,顯著地調整記憶體元件中之至多一者的電導。較佳地,藉由根據單次程式化方法來程式化 K個記憶體元件,將 K個記憶體元件初始地設定為SET狀態。類似地,藉由根據單次程式化方法來程式化此類記憶體元件,將剩餘記憶體元件(若存在)較佳地重設為RESET狀態。為了完整性,在將SET信號施加至胞元之 K個記憶體元件或一組 K個記憶體元件之前,通常藉由重設其所有記憶體元件來初始化各胞元,該組係根據其極性而選擇。
根據另一態樣,本發明實施為一種處理系統。該系統包括如上文所描述之具有一交叉桿陣列結構的一IMC裝置。記憶體元件為類比記憶體裝置,諸如相變記憶體裝置、電阻式隨機存取記憶體裝置及快閃記憶體胞元裝置。較佳地,記憶體元件為相變記憶體裝置。該系統進一步配備有連接至IMC裝置之程式化單元。該程式化單元經組態以根據上述方法來程式化各胞元,亦即藉由將各胞元之 K個記憶體元件設定為SET狀態且接著調整該 K個記憶體元件中之至少一者的電導值。同樣,目標為使該各胞元之該 K個記憶體元件之一總和電導與該目標電導值匹配,同時最大化處於其SET狀態或處於零電導標稱值之一RESET狀態之該 K個記憶體元件的一數目,使得該 K個記憶體元件中之至多一者處於一中間狀態(亦即,既不處於一SET狀態亦不處於一RESET狀態)。
較佳地,該程式化單元經由該IMC裝置之該等輸入線或該等輸出線連接至該IMC裝置,且用以藉由分別在該等輸入線或該等輸出線上施加電壓信號來調整該 K記憶體元件中之該至少一者的該電導值。在變型中,程式化單元亦可經由獨立於輸入線或輸出線之另外的線連接至IMC裝置。
在實施例中,該處理系統進一步包括連接在該等輸出線之輸出端中的一讀出電路。舉例而言,該程式化單元可連接至該讀出電路且經組態以根據一單裝置程式化方法來調整該電導值。
同樣,在一差異組態中,各記憶體系統可能包括兩組 K個記憶體元件。在此情況下,該程式化單元將進一步經組態以根據將儲存於該胞元中之該目標權重之一預期正負號來選擇該兩個組中的一給定組。
本發明之最後一個相關態樣涉及一種用於程式化如上文所描述之一IMC裝置之記憶體元件的一電腦程式產品。該等程式指令可由一程式化單元之處理構件執行,該程式化單元可連接至該IMC裝置,以使得該程式化單元根據如上文所描述之一方法來程式化該IMC裝置的各胞元。
如本發明人所觀察到,對應於具有交叉桿陣列結構之記憶體內運算(IMC)裝置之類比記憶體元件的SET狀態的實際電導值存在相當寬的分佈。類比記憶體元件之RESET狀態實際上為不導電的,使得雜訊及漂移對運算精確度具有邊際影響。儘管如此,類比記憶體元件之SET狀態恰好比中間狀態「雜訊」小,即使其具有更大電導值。中間狀態有雜訊意謂其實際電導值一旦經程式化,則可量測地脫離其預期值,此在陣列中產生一些雜訊。實際電導值與預期電導值之間的差異可由漂移或程式化不精確性造成。
現在,在先前程式化方案中,假設用於形成電導值之縮放因數 G max 對於陣列之所有記憶體裝置為相同的;以大多數SET電導值實際上大於 G max 值的方式進一步定義。實際上,此意謂不可能將大多數記憶體裝置程式化至其SET狀態。
如本發明人已意識到,將裝置程式化為其 G set 值而非其 G max 值導致顯著減少程式化誤差且增加運算精密度。因此,其設計新穎技術來程式化交叉桿陣列裝置之類比記憶體元件,該技術最大化處於SET狀態或處於RESET狀態之 K個記憶體元件的數目,但至多一個記憶體元件經程式化為中間狀態,此對於胞元匹配對應於目標權重值之目標電導值為必要的。
以下描述如以下構造。一般實施例及高階變型描述於章節1中。章節2論述特別較佳實施例。章節3闡述技術實施細節。注意,本發明方法及其變型統稱為「本發明方法(the present methods)」。所有編號S n係指圖5之流程圖之方法步驟,而數字編號係關於本發明之實施例中涉及之裝置、組件及概念。 1. 一般實施例及高階變型
現主要參考圖1及圖5詳細描述本發明之第一態樣。此態樣涉及一種程式化具有交叉桿陣列結構之IMC裝置15之類比記憶體元件157的方法,如圖1中所示。
亦即,IMC裝置15包括 N個輸入線151及 M個輸出線152,此等線在交叉點(亦即,接面)處互連。交叉點相應地定義 N× M個胞元154,亦稱為單位胞元。輸入及輸出線經由記憶體系統156互連。原則上,定義陣列需要至少兩個輸入線及兩個輸出線(亦即, N≥2且 M≥2)。然而,在實踐中,輸入線151及輸出線152之數目將通常為約數百至數千線。舉例而言,可考慮256×256、512×512或1024×1024之陣列,但 N不一定等於 M。舉例而言,IMC裝置15用作設計為一次實施 M個神經元的神經處理設備。因此,神經元之數目可等於例如256、512或1024。
單位胞元之實例如圖3A至圖4E中所示。如圖1中示意性地展示,交叉點包含各別記憶體系統156。如圖3A至圖4E中所見,各記憶體系統156包括一組 K個記憶體元件157,此等記憶體元件在此組中並聯配置。實際上,出於稍後將變得顯而易見之原因,各胞元可各含有兩組 K個記憶體元件157。可考慮各種連接方案。較佳地,各輸入(分別輸出)線通常細分為 K或2 K個導體,以便充分連接至(分別來自)各胞元之各別記憶體元件。因此,各輸入(或輸出)線通常包括若干並聯電導體。現在,假設各胞元含有一組 K個記憶體元件,使得各胞元154包括 K個記憶體元件。
本發明方法旨在一個接一個地程式化各多裝置胞元(此對應於圖5中之步驟S20至S80),如圖5中自步驟S90至步驟S10之循環所反映。程式化胞元意謂將目標權重值儲存於此胞元中。目標權重值可轉換為電導值。因此,目標為程式化此胞元之記憶體元件,使其產生與對應於將儲存於該胞元中之目標權重值的目標電導值匹配之總和電導值。由於權重值意謂映射至記憶體元件之電導值,故本發明方法僅適用於類比記憶體裝置,而不適用於數位記憶體元件。
舉例而言,目標電導值可藉由縮放S60初始電導值來獲得,亦即藉由將此初始權重值乘以縮放因數,其中權重值通常經正規化,亦即分佈在0與1之間(或在-1與1之間,如稍後所論述)。因此,可根據胞元之最大胞元電導來設定此因數(稱其為 S max )。對各胞元應用相同步驟。縮放因數 S max 相應地將初始(通常正規化)權重值換變為合適的電導單位。此縮放因數通常取決於在輸出線(圖中未示)之輸出端中使用之ADC的飽和電流。其可在不同交叉桿陣列及/或相同交叉桿陣列之輸出線之間進一步變化。
首先可必須初始化 K個記憶體元件(步驟S20),例如藉由將所有 K個記憶體元件重設為零標稱電導值的RESET狀態。接下來,SET信號施加至胞元之 K個記憶體元件,以將各記憶體元件設定為SET狀態。隨後讀出S50真實對應電導值,藉此獲得 K個記憶體元件的 K個電導值。實際電導值可略微不同於其標稱值。注意,相同SET信號可施加於所有 K個元件。但即使施加相同SET信號, K個記憶體元件仍將採納不同電導值。
記憶體元件在其SET狀態下之實際電導值隨後用於最佳程式化各胞元的記憶體元件。亦即,此類電導值與目標電導值一起用於調整S70至S80胞元之 K個記憶體元件中之一或多者的電導值。通常將需要調整 K個記憶體元件中之至少一者,除非其SET電導值幸運地碰巧與目標值匹配或胞元電導不能適應權重值,如稍後所論述。藉由重設或以其他方式更改此類記憶體元件之電導來調整記憶體元件。此調整S80有效地相當於重新程式化記憶體元件中之一或多者。執行該操作以使胞元之 K個記憶體元件之總和電導與目標電導值匹配,同時最大化處於其SET狀態或處於零電導標稱值的RESET狀態之 K個記憶體元件的數目。
此最大化受制於最終 K個記憶體元件中之至多一者處於中間狀態,亦即,既不處於SET狀態亦不處於RESET狀態。因此,儘管在步驟S80處可重設若干記憶體元件,但將調整S80至多一個元件以便既不處於SET亦不處於RESET狀態。換言之, K個記憶體元件之總和電導最終分解為對應於SET及/或RESET狀態之實際電導值的總和,受制於至多一個中間電導值。
基本想法為最大化處於SET狀態或RESET狀態之記憶體元件的數目,因為此類狀態為最少雜訊狀態。同樣,在本上下文中,「雜訊」意謂實際電導值可略微偏離其預期(理論)值,無論由於漂移或程式化不精確性。現在,此類狀態在交叉桿上之多樣性在理想值附近產生雜訊。亦即,關於最低權重雜訊及漂移,記憶體元件之SET狀態通常為最少雜訊狀態,而RESET狀態實際上為不導電的,因此使得在此情況下雜訊及漂移具有邊際影響。
現在,在先前程式化方案中,假設縮放值 G max 對於陣列中之所有記憶體元件為相同的,且以大多數SET電導值大於 G max 的方式定義。如前面所指出,此使得不可能將大多數記憶體元件精確地程式化至其對應SET狀態。因此,如本發明人已意識到,將記憶體元件程式化為SET電導值 G set (而非 G max )可導致程式化誤差之顯著減少且增加運算精密度。因此,本發明方法不使用相同單個縮放值且考慮到此值施加至陣列中之所有記憶體元件,而是依賴於陣列中之記憶體元件的實際SET狀態電導值而精確地匹配目標權重。根據本發明方法,每單位胞元至多一個記憶體元件處於中間(雜訊)狀態,而其剩餘記憶體元件處於較小雜訊SET狀態或處於無雜訊RESET狀態。因此,所提出方法可減少整體雜訊,此有利於運算精確度。
與現存多裝置程式化方案相比,本解決方案具有以下優勢。首先,如上所述,本發明方法減少權重及漂移雜訊,因為其最大化處於SET或RESET狀態之記憶體元件的數目,此為最少雜訊狀態。此最大化受制於每胞元至多一個記憶體元件處於中間狀態。其次,所提出方法允許達成更理想權重映射。舉例而言,本發明方法可藉由利用其真實 G set 值來 先驗地選擇匹配給定權重值所需之最小數目的記憶體元件。且此導致程式化期間較少能量及時間開銷,因為僅需要在電導讀出之後進行一輪程式化。
注意,本發明方法亦應用於非差異組態中之記憶體元件。亦即,多裝置單位胞元可具有差異組態,如在稍後詳細論述之實施例中。除了將重新程式化/重設之記憶體元件將屬於根據權重值選擇之極性組外,邏輯保持相同。然而,一般而言,各胞元可各自涉及一或兩組 K個記憶體元件。在權重值經正規化且例如分佈在0與1之間的情況下,一組就足夠。在權重值分佈在例如-1與1之間的情況下,依賴於兩組記憶體元件係有用的。在本上下文中,一組中之元件之最小數目 K無論在差異或非差異組態中皆等於二。
現在參考本發明之實施例詳細描述所有此類情形。首先,可考慮各種方法來最大化處於SET或RESET狀態之記憶體元件的數目。然而,一種方便的方式為首先自胞元之 K個記憶體元件中(或一組 K個元件中)中判定合適子集。詳言之,本發明方法可有利地試圖基於目標電導值及在步驟S50讀取的 K個電導值來判定S70 K'個記憶體元件的子集,其中 K'≤ K。此子集經判定為使得 K'個元件之總和電導與目標電導值匹配,且具有一定容限。儘管如此,在步驟S40處執行初始程式化以將記憶體元件設定為SET狀態之後,此容限應使得可藉由適當地重新程式化 K'個記憶體元件中之至多一者來移除。
接下來,調整步驟S80可包括重設不在經判定子集中的任何剩餘記憶體元件。此類元件(若存在)藉由施加RESET信號以將其設定為零標稱電導之RESET狀態來重設。重設子集之外之任何剩餘記憶體元件係調整此元件之電導值的一種方式。替代地或另外,可必須重新程式化 K'個記憶體元件中之一者,此亦導致調整記憶體元件的電導值。執行調整步驟S80,無論涉及重設及/或重新程式化記憶體元件,以使得胞元之所有記憶體元件之實際電導值的總和與目標電導值匹配。可考慮各種情境。下文表I及II中彙總此類情境的實例。
表I闡述並聯配置之兩個記憶體元件(D1及D2)之胞元的調整情境。頂值對應於處於SET狀態(亦即,在步驟S40之後)之裝置的電導值。屬於所識別子集之元件之電導值帶有下劃線。括號中之底值對應於經調整電導值(如在步驟S80之後獲得)。
情境# G target G D1 G D2 調整解決方案及備註
1 100 100 (100) 80 (0) 選擇D1且重設D2。所識別子集僅由D1組成,其保持在其初始SET狀態以符合目標電導值
2 90 100 (90) 80 (0) 選擇D1,重設D2,且重新程式化D1。所識別子集再次僅由D1組成,其針對胞元而重新程式化以符合目標電導值
3 90 100 (10) 80 (80) 選擇D1及D2,將D2保持在其SET狀態,且針對胞元重新程式化D1以匹配目標值。所識別子集不為兩個元件之初始組的嚴格子集。在此情況下不重設裝置
I 並聯之兩個記憶體元件之胞元的調整情境的實例
表II闡述並聯配置之三個記憶體元件之胞元的調整情境。同樣,裝置D1、D2、D3之頂值對應於處於SET狀態(在步驟S40之後)之裝置的電導值,所識別子集中之元件之電導值帶有下劃線,且底值(括號中)對應於經調整電導值(在步驟S80之後)。
情境# G target G D1 G D2 G D3 調整解決方案及備註
4 100 100 (100) 90 (0) 80 (0) 選擇D1且重設D2及D3兩者。所識別子集僅由D1組成,其保持在其初始SET狀態,而重設另一裝置以符合目標電導值
5 180 100 (100) 90 (0) 80 (80) 選擇D1及D3以形成子集且重設D2。D1及D3保持在其初始SET狀態,而最終重設D2以符合目標電導值
6 170 100 (0) 90 (90) 80 (80) 選擇D2及D3以形成子集且重設D1。D2及D3保持在其初始SET狀態,而最終重設D1以符合目標電導值
7 170 100 (100) 90 (70) 80 (0) 選擇D1及D2以形成子集,重設D3,且重新程式化D2以符合目標電導值
8 170 100 (100) 90 (0) 80 (70) 選擇D1及D3以形成子集,重設D2,且重新程式化D3以符合目標電導值
II 並聯之三個記憶體元件之胞元的調整情境的實例
注意,選擇上述表及圖3B至圖3D中所指示之電導值僅用於說明;其不為真實的。
在上述表中,假設胞元包括單組記憶體元件。然而,上述情境可直接外推至包括差異組態中之兩組記憶體元件之胞元;調整解決方案隨後將應用於所選擇極性組,如稍後詳細解釋。
在上述實例中之各者中,識別 K'個記憶體元件之合適子集,此子集足以使胞元儲存所需權重值。在實踐中,此意謂此子集之記憶體元件之總和電導必須大於或至少等於對應於將儲存於此胞元中的目標權重之電導值。接下來,將剩餘記憶體元件(在所識別子集之外) (若存在)重設為零標稱電導值之RESET狀態,而重新程式化至多一個記憶體元件,例如使用習知單裝置程式化方案,以使胞元中的所有記憶體元件之總和電導值儘可能接近目標電導值。
較佳地將子集判定S70為最小子集,亦即在基數方面之最小可能子集,如在表I及II中所呈現之所有情境(除了情境3)中,其中所選擇子集不具有最小可能基數。實際上,在此實例中,經判定子集甚至不為初始組之恰當(亦即,嚴格)子集,此係因為其等於兩個記憶體元件的初始組。在此情況下,不將記憶體元件重設為RESET狀態。相反,情境3中使用之程式化策略旨在最大化可保持在SET狀態之記憶體元件的數目。
在所有其他情境中,所選擇子集為具有最小可能基數之子集,亦即由儲存目標權重所需之最小數目的記憶體元件組成之最少填充子集。現在,對於相同目標電導值,可潛在地識別若干可能子集,如在情境6至8中。儘管如此,程式化方法可藉由選擇SET狀態下之總和電導值最大之此等記憶體元件來在可能子集當中進一步辨別,如在情境7中。在此情況下,判定子集以便滿足兩個條件,此兩個條件為:(i)在能夠儲存目標權重之 K個記憶體元件之所有可能子集中,先驗地,將理想子集判定為具有最小基數的子集;及(ii)在具有相同最小基數之所有可能子集中,該子集中之記憶體元件的總和電導值必須最大,如在情境7中,與情境8相反。
在實踐中,此可藉由首先識別在其SET狀態下具有最大電導值之此等記憶體裝置且接著自具有最高電導值之元件開始選擇匹配目標電導值所需的最小數目的記憶體元件來達成。
胞元之 K- K'個剩餘記憶體元件(亦即,不在經判定子集中)屬於所識別之最小子集的絕對補集。換言之,由胞元之元件形成之集合分解為兩個互補子集:所識別之最小子集,及由剩餘記憶體元件形成的補集。藉由施加S80 RESET信號來重設 K- K'個剩餘元件,此導致將此類元件置於零標稱電導值之RESET狀態中,如情境1、2及4至8中。如此增加最終處於RESET狀態之元件的數目,此減少陣列之記憶體元件之間的雜訊。
除重設外部因素外,通常需要重新程式化經判定子集之 K'個記憶體元件中的恰好一者,以使胞元符合目標電導。亦即,調整步驟S80主要需要重新程式化恰好一個記憶體元件,使得此元件最終既不處於SET亦不處於RESET狀態,如情境2、3、7及8中。如此將處於中間狀態之裝置之數目限制為每胞元至多一個裝置,此限制雜訊。
在一些情況下,若總和電導值幸運地與目標值匹配,則重設經判定子集之外的記憶體元件就足夠了,而不必重新程式化任何記憶體元件,如在情境1、4、5及6中。然而,此類情況在實踐中不大可能發生。相反,主要需要重設剩餘記憶體元件且重新程式化 K'個記憶體元件中的恰好一者。
如上所說明,通常可執行步驟S70至S80以便有利於處於SET狀態或處於RESET狀態之記憶體元件。在一定程度上,一些策略可有利於RESET狀態而非SET狀態,或相反,有利於SET狀態而非RESET狀態。哪種策略最佳係取決於記憶體元件特徵,且實際上,作為整體之系統1亦考慮周邊電路。在較低SET狀態之記憶體元件亦具有較低雜訊的情況下,需要有利於RESET狀態的策略。在具有較大SET狀態之記憶體元件碰巧具有較低雜訊之情況下,則可能更好的為努力將儘可能多的元件保持在SET狀態,重設其他元件,且重新程式化至多一個記憶體元件以符合目標電導值。
可預設選擇將重新程式化之記憶體元件。其亦可隨機選自 K'個元件之子集。然而,更較佳的為選擇此元件作為具有儘可能低之電導之子集的元件,如情境7及8中。如上所解釋,此導致最小化中間範圍內之雜訊。
可使用任何合適單裝置程式化方法,無論是設定、重設抑或重新程式化記憶體元件。此類方法之實例包括反覆程式化(ITP)方法、基於梯度之程式化(GDP)演算法及單次程式化(SSP)方法。在背景部分中論述ITP及SSP方法。ITP方法及基於梯度之演算法之使用的實例在章節2中參考圖6A及圖6B論述。
單裝置程式化方法亦可用以設定及重設記憶體元件。較佳地,藉由根據SSP方法來程式化 K個記憶體元件157,將該 K個記憶體元件157初始地設定S40為其SET狀態。相同方法亦可用以重設S80剩餘記憶體元件。如背景部分所提及,亦可使用ITP及SSP方法之混合。在所有情況下,胞元之記憶體元件之總和電導值最終必須匹配目標電導值,如儘可能接近目標電導值。
如上所述,本發明方法擴展至包括差異組態中之兩組記憶體元件的多裝置胞元。如圖3A至圖4E中所示,各胞元154包括各別記憶體系統156,其本身分解為兩組156p、156n K個記憶體元件157 (同樣,各組中 K≥2)。因此,各胞元154現包括在兩個組中並聯配置之2 K個記憶體元件,亦即第一組156p K個記憶體元件及第二組156n K個記憶體元件,分別用於儲存正權重值及負權重值。由於兩個組156p、156n配置為差異組態,故可藉由讀取並聯記憶體元件157之總和電導值來讀取任何權重值(無論正或負)。
前面參考單組記憶體元件論述之核心原理保持不變。然而,現在必須根據將儲存於各胞元中之目標權重之預期正負號來選擇S30給定組(參見圖5)。亦即,正及負權重值將儲存於對應極性之組中。接下來,SET信號僅需要施加S40至所選擇組之 K個記憶體元件,此導致將所選擇組之 K個記憶體元件中的各者設定為SET狀態。儘管如此,在步驟S50處讀取所有電導值,但需要提醒的是,在將所選擇記憶體元件設定S40為SET狀態之前,通常在步驟S20處已適當地初始化(例如,重設)所有記憶體元件157。因此,在步驟S50處讀取2 K個電導值,亦即,兩個組中之各者中之 K個記憶體元件的 K個電導值。這樣做的原因為應較佳地考慮所有電導值以最終調整S80總和電導。亦即,讀取設定為SET狀態之單獨元件之 K個電導值亦可能為足夠的,此係因為可假設其他元件具有零電導。
如前所述,執行以下步驟S70至S80以基於讀取的2 K個電導值及目標電導來調整所選擇組之 K個記憶體元件中之至少一者的電導值。同樣,目標為使2 K個記憶體元件之總和電導與目標電導值匹配,應注意,另一(亦即,未選擇)組之 K個記憶體元件的實際電導值將等於或極接近零。與前面論述原理一致,執行步驟S70至S80以便最大化處於SET狀態或處於零電導標稱值之RESET狀態之2 K個記憶體元件的數目,但所選擇極性組之 K個記憶體元件中之一者可必須設定為中間狀態(亦即,既不處於SET狀態亦不處於RESET狀態)。
換言之,僅設定S40及可能重新程式化S80所選擇組之記憶體元件。在步驟S80處施加之RESET信號可僅涉及所選擇組之記憶體元件。在變型中,RESET信號亦可施加至另一組之記憶體元件,此取決於所使用之初始化協定。
同樣,方法可有利地試圖判定 K'個元件的子集,儘管僅在所選擇極性組內。可判定此子集以便驗證: 若目標權重值為正,則 ,或 若目標權重值為負,則
在上述等式中, 表示經判定子集, 為第一組156p之第 i個記憶體元件的電導值, 代表第二組156n之第 i個記憶體元件的電導值,且 為目標電導值。然而,值 係指可處於SET狀態或處於RESET狀態之記憶體元件之讀取的電導值,此取決於目標權重之正負號及用於儲存權重值的記憶體元件組。
在章節2中描述本發明方法之額外特徵。
返回參考圖1,現在詳細描述本發明之另一態樣,其涉及處理系統1。系統尤其包括具有交叉桿陣列結構之IMC裝置15,如先前參考本發明方法所描述。記憶體元件157為類比記憶體裝置,其可尤其為相變記憶體(PCM)裝置、電阻式隨機存取記憶體(RRAM)裝置或快閃記憶體胞元裝置。使用此類裝置,與在數位儲存器中表示不同權重位元之多個二進制裝置相反,權重值映射於記憶體元件的電導範圍。較佳實施例依賴於PCM裝置。
除IMC裝置15外,系統1亦包括連接至IMC裝置15的程式化單元19。程式化單元19可尤其連接至IMC裝置15之輸入線151。然而,程式化單元19通常獨立於用於向輸入線151施加信號以操作IMC裝置15的輸入單元11。程式化單元19通常經組態以根據上文參考本發明方法所描述之原理來程式化裝置15的各胞元154。特定而言,程式化單元19經設計為能夠視需要設定、重設及調整各胞元154之記憶體元件的電導值,以使各胞元之記憶體元件的總和電導與目標電導值匹配。與本發明方法一致,程式化單元19將藉由在至多一個記憶體元件既不處於SET狀態亦不處於RESET狀態的約束條件下最大化處於SET狀態或處於(零電導標稱值之)RESET狀態之記憶體元件的數目。
舉例而言,單元19可用以藉由在IMC裝置15之輸入線或輸出線151上分別施加合適電壓信號來調整記憶體元件157的電導值。在變型中,程式化單元19可經由獨立連接器連接至記憶體元件。注意,處理系統1通常包括連接至輸出線152之輸出端中的讀出電路16。因此,程式化單元19可在其輸出端中連接至讀出電路16,以便能夠根據如上所述之單裝置程式化方法來調整記憶體元件157的電導值。此外,系統1可進一步包括連接在IMC裝置15之輸出端中(亦即,讀出電路16之輸出端中)之處理單元18。此處理單元18較佳地配置為近記憶體處理單元。在此情況下,程式化單元19可有利地連接在近記憶體處理單元18之輸出端中,以允許交叉桿陣列結構15之閉合迴路程式化。在變型中,處理單元18及程式化單元19實施為一個相同單元。程式化單元19可進一步包括輸入/輸出(I/O)控制器且經組態以與外部裝置或電腦通信,如圖1所表明。
IMC裝置15之各胞元154之記憶體系統156較佳地包括兩組156p、156n K個記憶體元件157,其中由於前面解釋之原因,兩組156p、156n處於差異組態。在此情況下,程式化單元19必須進一步能夠根據將儲存於各胞元154中之目標權重之正負號來選擇給定組。
一旦在交叉桿陣列15上程式化權重,便可將向量分量注入至交叉桿陣列結構15中。更精確地,編碼 N個分量之向量(亦即, N向量)之信號可經由輸入單元11施加至交叉桿陣列結構15的 N個輸入線151,例如以使得交叉桿陣列結構15基於儲存於裝置15中之 N向量及 N× M個權重來執行乘法累加(MAC)運算。MAC運算導致由饋送至 N個輸入線中之信號編碼之值分別乘以權重值。
此類MAC運算可例如作為執行或訓練ANN之部分來執行。單個交叉桿陣列結構通常一次可實施一個神經層。儘管如此,交叉桿陣列結構15可在閉合迴路中循環地操作,以便結構15實施ANN之若干連續連接神經層,其限制條件為神經權重可在各演算法週期處有效地且精確地重新程式化。在變型中,若干交叉桿陣列結構15為級聯的,以達成相同效果。由交叉桿陣列結構15實施之神經層可為ANN之任何層或此層的一部分。
操作之理想映射,無論是否針對ANN應用,可由處理單元18或外部處理單元(圖中未示) (亦即,不同於核心運算陣列15之單元)來判定。然而,處理單元較佳地與系統1中之核心IMC陣列15共同整合,如圖1中所假設。在所有情況下,處理單元可用於判定運算策略(亦即,輸入向量及區塊矩陣,且將其相關聯)。對應矩陣權重值接著可傳遞至程式化單元19以使其適當地程式化陣列15的胞元。在實踐中,程式化單元19可包括程式化控制器。與輸入單元一樣,程式化單元可包括或連接至信號產生器,以根據程式化控制器來施加脈衝。
圖1中所示之系統1包括若干裝置(亦即,IMC裝置15、讀出電路16、近記憶體處理單元18及程式化單元19),此等裝置彼此連接以形成系統1。系統1本身可製造為單個設備或甚至單個裝置。特定而言,IMC裝置15、處理單元18及程式化單元19可全部共同整合於同一晶片中,如圖1所假設。因此,系統1可由共同整合所有所需組件之單個裝置(例如,單個晶片)組成。因此,本系統1可方便地用於專用基礎設施或網路,例如服務多個併發用戶端請求。舉例而言,整個系統可經組態為可組合分解基礎設施,其可進一步包括其他硬體加速裝置,例如特殊應用積體電路(ASIC)及/或場可程式化閘陣列(FPGA)。
接下來,根據另一態樣,本發明可實施為用於程式化IMC裝置15之記憶體元件157的電腦程式產品,如先前所描述。電腦程式產品包含電腦可讀儲存媒體,該電腦可讀儲存媒體具有藉由其實施之程式指令,其中程式指令可由可連接至IMC裝置15的程式化單元19之處理構件執行,以使得程式化單元19遵循參考本發明方法描述之原理來程式化各胞元154。章節3提供其他細節。
上文實施例已參考隨附圖式進行簡要描述,且可適應數個變型。可考慮上文特徵之若干組合。在下一章節中給出實例。 2. 特別較佳實施例 2.1 較佳流程 ( 5)
圖5展示程式化IMC裝置15之記憶體元件157的方法之步驟之較佳(高階)流程。程序在步驟S5處開始,其對IMC裝置15之胞元154反覆。在步驟S10處選擇下一胞元。在步驟S20處初始化記憶體元件,例如藉由將RESET信號施加至當前所選擇胞元之所有記憶體元件,但亦可在選擇S10新胞元之前一次性地初始化所有胞元。在步驟S30處,根據將儲存於該胞元中之目標權重值之正負號來選擇給定極性組。目標權重之值用作至步驟S30之輸入。在步驟S50處讀取胞元之記憶體元件的電導值之前,在步驟S40處將SET信號施加至所選擇極性組之所有記憶體元件。接下來,在步驟S70處,基於讀取的電導值及對應於目標權重值之目標電導值來判定足夠子集(例如,最小子集)。注意,目標電導值通常藉由適當地縮放目標權重值來獲得S60,如章節1中所解釋。一旦已判定S70合適子集,則視需要選擇一個記憶體元件以用於中間程式化。此元件較佳地選擇為具有最低電導之子集元件。隨後視需要調整S80一或多個記憶體元件之電導,以使胞元之記憶體元件的總和電導與目標電導值匹配。此處,重設在經判定子集之外之記憶體元件。另外,子集之記憶體元件中之至多一者設定為中間狀態(既非SET狀態亦非RESET狀態),以便最大化處於SET狀態或處於RESET狀態之記憶體元件的數目。若當前胞元為最後一個胞元(S90:是),則程式化程序在步驟S100處停止。否則(S90:否),程序繼續至下一胞元S10。程序重複直至所有胞元適當地經程式化。 2.2 較佳胞元架構及說明性實例 ( 3A 至圖 3D)
圖3A展示較佳胞元架構,其中各別記憶體系統156包括編號為1至 K( K≥2)之兩組156p、156n K個記憶體元件157,使得胞元包括2 K個記憶體元件。兩組156p、156n處於差異組態中。第一組156p用於儲存正權重值,而第二組156n用於儲存負權重值。在各組中, K個記憶體元件157為並聯配置的。並聯及差異組態允許在一個步驟中讀取所有電導值。所得電導等於第一組之元件157之電導值的總和減去第二組之元件之電導值的總和,此產生所需權重值。
圖3B、圖3C及圖3D比較不同程式化方法,假設胞元由四個電阻元件157構成,其中每個極性組具有兩個記憶體元件。假設將儲存於胞元中之權重值( w)等於0.8,而正極性組之兩個記憶體元件的SET值分別等於 G SET,D1=12 µS且 G SET,D2=14 µS。進一步假設合適縮放因數 S max 等於20 µS,此對應於值 G max =10 µS (因為 K=2)。
等填充方法(圖3B)將電導值 w× G max =8 µS複製至所有記憶體元件,此需要將所選擇組之所有裝置反覆地程式化至中間狀態,此導致「雜訊」值。最大填充方法(圖3C)將裝置設定為 G max =10 µS且接著將剩餘裝置程式化至殘餘值(6 µS),此具有類似缺點。亦即,將兩個記憶體元件反覆地程式化至中間狀態。相反,本發明方法(圖3D)初始地將所有記憶體元件設定為SET狀態且接著反覆地程式化元件D1 (具有最低SET電導),使其達到較低殘餘電導值(2 µS)。與等填充及最大填充方法相比,此減少雜訊,因為SET狀態比 w× G max 狀態及 G max 狀態雜訊更小。注意,此方法之益處隨著每胞元記憶體元件之數目( K>2)增加而增加,此係因為至多一個記憶體元件處於中間狀態,而所有剩餘元件處於SET或RESET狀態。 2.3 逐步程式化之實例 ( 4A 至圖 4E)
圖4A至圖4E逐步地繪示根據旨在最大化處於SET狀態之記憶體元件之數目的實施例之胞元的程式化。首先,選擇合適縮放因數 S max ,此將正規化權重值換變為對應電導值(以電導為單位)。此步驟對應於圖5中之步驟S60。因數 S max 取決於IMC磚片15之輸出中之ADC電路的飽和電流。其可在不同IMC磚片及/或相同磚片之輸出線之間進一步變化。其次,藉由重設所有記憶體元件裝置來初始化陣列(圖5中之步驟S20)。圖4A描繪在此步驟之後獲得之胞元。第三,將正極性組(亦即,對應於將程式化之正權重值的極性)之所有記憶體元件設定為SET狀態,參見圖4B。第四,讀取記憶體元件的電導值。
第一情境中, 。亦即,胞元之總電導不足以支援權重值。在此情況下,記憶體元件保持原樣,亦即對應於權重的極性之所有記憶體元件保持在其SET狀態。
在第二(更可能)情境中,胞元可支援將程式化之權重值,亦即, 。因此,映射可藉由以下程序來決定: (i)         尋找記憶體元件之最小填充集合 ,使得 表示正權重值或 表示負權重值; (ii)       重設不在集合 中之所有記憶體元件;及 (iii)     選擇集合 之最小導電記憶體元件以用於進一步程式化。亦即,在接下來步驟中進一步程式化此記憶體元件,以便使用任何合適單裝置程式化方案來使胞元達到值
可敍述若干案例。舉例而言,圖4C,一旦所有其他記憶體元件已重設(圖5中之步驟S80),便可足以調整胞元之單個記憶體元件(例如,元件2)以匹配目標電導值。另一實例,圖4D涉及符合目標電導值所需之最小子集 先驗地由元件2至 K組成的情況。儘管如此,需要調整最小SET電導之記憶體元件(在此實例中為元件2)之電導,而子集的其他元件可保持在其SET狀態。注意,重設元件1,因為其不屬於經判定子集。最後一種情況,圖4E闡述需要選擇正極性組之所有記憶體元件的情況;經判定子集不為相關極性組的嚴格子集。在此情況下,正極性組之所有元件保持在其SET狀態,受制於元件2,其經重新程式化為中間狀態。
各種單裝置程式化方法可用於調整針對進一步程式化而識別的單個元件,該等方法為諸如反覆程式化(ITP)方案、中間值之單次程式化(SSP)方案及基於梯度之(GDP)演算法。ITP及GDP方案之合適實施描述於下一小節中。 2.4 單裝置程式化方法之實例 ( 6A 、圖 6B)
圖6A繪示用於進一步程式化經選擇用於進一步程式化之單個記憶體元件之基於梯度下降(GDP)的演算法。程式化演算法(由程式化單元19實施)提供程式化遮罩以進一步程式化所選擇的單個記憶體元件;目標為在其他記憶體元件將保持在SET狀態或重設為RESET狀態的情況下藉由單獨重新程式化所選擇元件來使胞元符合目標電導值 G target 。遵循此步驟,運行GDP演算法,此可導致若干反覆( t=1… T)。程式化控制器使得根據程式化遮罩將脈衝施加至IMC磚片15。GDP演算法反覆地運算捕獲矩陣向量乘法(MVM)之質量之損失函數 的梯度。將梯度轉換為脈衝幅度。接著將具有所獲得幅度之脈衝施加至由先前獲得之程式化遮罩標記的裝置。程序重複直至達成令人滿意的損失(亦即,MVM質量)或達到最大反覆次數。
圖6B繪示用以進一步程式化經選擇用於進一步程式化之單個記憶體元件的ITP方案。同樣,程式化演算法提供程式化遮罩以進一步程式化單個記憶體元件。開始反覆程式化循環,此可再次需要若干程式化反覆( t=1… T)。此循環試圖最小化 G target Ĝ kl 之間的距離,經由單裝置讀取方法量測且使用各極性之所有 K個裝置之經量測電導在相關單位胞元( k, l)上計算。程式化脈衝由程式化控制器計算且施加至由主程式化演算法轉發之程式化遮罩指定的單獨元件。 3. 技術實施細節
電腦化裝置可經適當設計以用於實施如本文中所描述之本發明之實施例。在彼態樣中,可瞭解,本文中所描述之方法很大程度上為非互動式的及自動的。本文中所描述之方法可使用軟體(例如,韌體)、硬體或其組合實施。在例示性實施例中,本文中所描述之方法作為可執行程式使用軟體實施,該可執行程式由合適之數位處理裝置執行。更一般地,可實施本發明之實施例,其中使用通用數位電腦,諸如個人電腦、工作台等。然而,較佳的為依賴於程式化單元19 (且可能依賴於處理單元18),其與IMC裝置15共同整合。
舉例而言,當程式化單元19運行時,其處理器經組態以執行儲存於單元19之記憶體內之軟體(或純粹指令),以向記憶體傳送資料及自記憶體傳送資料,且通常根據指令或軟體來控制單元19的操作。本文中所描述之方法全部或部分由處理器讀取,通常在處理器內緩衝,且接著執行。當本文中所描述之方法以軟體實施時,方法可儲存於任何電腦可讀媒體上,諸如儲存器,以供任何電腦相關系統或方法使用或與其結合使用。
因此,本發明可為處於任何可能整合技術細節級別之系統、方法及/或電腦程式產品。電腦程式產品可包括(一或多個)電腦可讀儲存媒體,其上具有電腦可讀程式指令以使得處理器進行本發明之態樣。電腦可讀儲存媒體可為有形裝置,其可保留及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為例如但不限於電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例之非詳盡清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可擦除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型緊密光碟唯讀記憶體(CD-ROM)、數位化通用光碟(DVD)、記憶棒、軟性磁碟、機械編碼裝置(諸如其上記錄有指令之凹槽中之打孔卡或凸起結構)及前述各者之任何合適組合。
如本文中所使用,不應將電腦可讀儲存媒體本身解釋為暫時性信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,穿過光纖纜線之光脈衝),或經由電線傳輸之電信號。
用於進行本發明之操作的電腦可讀程式指令可為以一或多種程序設計語言之任何組合撰寫之組譯器指令、指令集架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料、用於積體電路之組態資料,或原始程式碼或目標碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言,及程序程式設計語言,諸如C程式設計語言或類似程式設計語言。
雖然已參考有限數目個實施例、變型及隨附圖式描述本發明,但熟習此項技術者應理解,在不脫離本發明之範疇的情況下可做出各種變化且可替代等效物。特定而言,給定實施例、變型中所敍述或圖式中所展示之特徵(類似裝置或類似方法)在不脫離本發明之範疇的情況下可與另一實施例、變型或圖式中之另一特徵合併或將其替換。可相應地考慮關於以上實施例或變型中之任一者所描述之特徵的各種組合,其保持在所附申請專利範圍之範疇內。另外,在不脫離本發明之範疇的情況下,可以進行許多輕微修改以使特定情況或材料適應本發明之教示內容。因此,意欲本發明並不限於所揭示之特定實施例,而且本發明將包括屬於所附申請專利範圍之範疇內的所有實施例。另外,可考慮除上文明確涉及的許多其他變型。舉例而言,可考慮其他類型的記憶體元件。
1:處理系統 11:輸入單元 15:記憶體內運算裝置/交叉桿陣列結構 16:讀出電路 18:處理單元 19:程式化單元 151:輸入線 152:輸出線 154:胞元 156:記憶體系統 156n:第二組 K個記憶體元件 156p:第一組 K個記憶體元件 157:記憶體元件 S5:步驟 S10:步驟 S20:步驟 S30:步驟 S40:步驟 S50:步驟 S60:步驟 S70:步驟 S80:步驟 S90:步驟 S100:步驟
根據待結合隨附圖式閱讀之本發明之說明性實施例的以下詳細描述,本發明之此等及其他目標、特徵及優勢將變得顯而易見。說明係出於明晰之目的,以便有助於熟習此項技術者結合實施方式來理解本發明。在附圖中:
圖1示意性地表示根據實施例之硬體系統之所選擇組件,該硬體系統尤其包括具有交叉桿陣列結構之記憶體內運算裝置,以及用於程式化記憶體運算裝置之記憶體元件的程式化單元;
圖2為示意性地表示交叉桿陣列結構之電阻記憶體裝置之處於其SET狀態或處於其RESET狀態的實際電導值之分佈之曲線圖;
圖3A至圖3D描繪實施例中涉及之交叉桿陣列結構的單位胞元。在各情況下,胞元包括處於差異組態之兩個極性組,其中 K個電阻記憶體元件並聯配置在各組中,參見圖3A。圖3B至圖3D比較通常藉由不同方法在2×2個記憶體元件之胞元上獲得之電導值的分佈,該等不同方法包括先前技術方法(圖3B、圖3C)及根據實施例之方法(圖3C)。詳言之,圖3B及圖3C展示根據等填充方法及最大填充方法(不根據實施例)獲得之電導值,而圖3D展示根據實施例獲得之電導值。圖3D中獲得之電導值最大化處於SET或RESET狀態之裝置的數目;僅單個裝置處於中間狀態;
圖4A至圖4E逐步地繪示如圖3B中所描繪之單位胞元之記憶體元件的程式化,如同實施例中;
圖5為繪示根據實施例之程式化具有交叉桿陣列結構之記憶體內運算裝置的記憶體元件之方法之高階步驟的流程圖;且
圖6A及圖6B為繪示可在實施例中使用之單裝置程式化方案的圖。圖6A假設使用基於梯度之程式化方法,而圖6B依賴於反覆程式化方案。
隨附圖式展示如實施例中所涉及之裝置或其部分的簡化表示。除非另外指示,否則圖式中之類似或功能上類似之元件已分配相同數字編號。
現將藉助於非限制性實例描述體現本發明之方法、系統及電腦程式產品。
154:胞元
156:記憶體系統
156n:第二組K個記憶體元件
156p:第一組K個記憶體元件
157:記憶體元件

Claims (25)

  1. 一種程式化具有一交叉桿陣列結構之一記憶體內運算裝置之記憶體元件的方法,該交叉桿陣列結構包括在定義N×M個胞元之交叉點處互連的N個輸入線及M個輸出線,其中N
    Figure 112125983-A0305-02-0035-1
    2且M
    Figure 112125983-A0305-02-0035-2
    2,其中該等交叉點包含各別記憶體系統,各記憶體系統包括並聯配置的一組K個記憶體元件,其中K
    Figure 112125983-A0305-02-0035-3
    2,藉此該N×M個胞元中之各胞元包括K個記憶體元件,且其中該方法包含在一目標電導值對應於將儲存於該各胞元中之一目標權重值的情況下藉由以下操作來程式化該各胞元:將一SET信號施加至該各胞元之該K個記憶體元件以將該K個記憶體元件中之各者設定為一SET狀態,且讀取處於該SET狀態之該K個記憶體元件的K個電導值;及基於讀取的該K個電導值及該目標電導值,調整該K個記憶體元件中之至少一者的一電導值以使該各胞元之該K個記憶體元件之一總和電導與該目標電導值匹配,且最大化處於其SET狀態或處於零電導標稱值之一RESET狀態之該K個記憶體元件的一數目,使得該K個記憶體元件中之至多一者既不處於一SET狀態亦不處於一RESET狀態。
  2. 如請求項1之方法,其中調整該K個記憶體元件中之該至少一者的該電導值包含:基於讀取的該K個電導值及該目標電導值,判定K'個記憶體元件之一 子集,該K'個記憶體元件之該子集的一總和電導與該目標電導值匹配,且具有可藉由重新程式化該K'個記憶體元件中之至多一者而移除的一容限,其中K'
    Figure 112125983-A0305-02-0036-4
    K;及執行以下中之一者或各者:將一RESET信號施加至該各胞元之不在該子集中之任何剩餘記憶體元件以將該任何剩餘記憶體元件設定為其RESET狀態,及重新程式化該子集之該K'個記憶體元件中之至多一者。
  3. 如請求項2之方法,其中調整該電導值包括重新程式化該子集之該K'個記憶體元件中之恰好一者。
  4. 如請求項2之方法,其中調整該電導值包括將該RESET信號施加至該任何剩餘記憶體元件。
  5. 如請求項2之方法,其中調整該K個記憶體元件中之至少一者的該電導值包含藉由以下操作調整該各胞元之該K個記憶體元件中之至少兩者的電導值:將該RESET信號施加至該任何剩餘記憶體元件,及重新程式化該子集之該K'個記憶體元件中之恰好一者。
  6. 如請求項5之方法,其中該方法進一步包含在重新程式化該K'個記憶 體元件中之該恰好一者之前,將該K'個記憶體元件中之該恰好一者識別為該經判定子集之該等記憶體元件當中之具有最小電導的一記憶體元件。
  7. 如請求項2之方法,其中該子集經判定為最小基數之一子集,對於最小基數之該子集,處於其SET狀態之該等記憶體元件的該總和電導值為最大的。
  8. 如請求項1之方法,其中該方法進一步包含在調整該電導值之前,藉由將一初始權重值乘以一縮放因數來將一初始電導值縮放為該目標電導值,該縮放因數係根據該各胞元之一最大胞元電導而判定。
  9. 如請求項1之方法,其中該等各別記憶體系統中之各者包括兩組K個記憶體元件,其中K
    Figure 112125983-A0305-02-0037-5
    2,使得該N×M個胞元中之各胞元包括2K個記憶體元件,該兩個組處於一差異組態中,該兩個組由一第一組K個記憶體元件及一第二組K個記憶體元件組成,其分別用於儲存一正權重值及一負權重值,該K個記憶體元件在該兩個組中之各者中為並聯的,且該方法進一步包含在施加該SET信號之前根據將儲存於該胞元中之該目標權重的一預期正負號來選擇該兩個組中之一給定組,藉此該SET信號僅施加至該給定組之該K個記憶體元件,以將該給定組之該K個記憶體元件中之各者設定為該SET狀態,且 該方法包含:讀取2K個電導值,此等電導值由該兩個組中之各者中的該K個記憶體元件之K個電導值組成;及基於讀取的該2K個電導值及該目標電導值,調整該給定組之該K個記憶體元件中之至少一者的一電導值以使該各胞元之該2K個記憶體元件之一總和電導與該目標電導值匹配,及最大化該各胞元之處於其SET狀態或處於零電導標稱值之一RESET狀態之該2K個記憶體元件的一數目,使得該給定組之該K個記憶體元件中之至多一者既不處於一SET狀態亦不處於一RESET狀態。
  10. 如請求項1之方法,其中根據以下中之一者調整該等記憶體元件中之該至多一者的該電導:一反覆程式化方法;一基於梯度之演算法;及一單次程式化方法。
  11. 如請求項1之方法,其中藉由根據一單次程式化方法程式化該K個記憶體元件而將該K個記憶體元件設定為該SET狀態。
  12. 如請求項2之方法,其中 藉由根據一單次程式化方法程式化該任何剩餘記憶體元件而將該任何剩餘記憶體元件重設為該RESET狀態。
  13. 如請求項1之方法,其中該方法進一步包含在施加該SET信號之前,藉由重設所有該K個記憶體元件來初始化該K個記憶體元件。
  14. 一種處理系統,其包含:一記憶體內運算裝置,其具有一交叉桿陣列結構,該交叉桿陣列結構包括在定義N×M個胞元之交叉點處互連的N個輸入線及M個輸出線,其中N
    Figure 112125983-A0305-02-0039-6
    2且M
    Figure 112125983-A0305-02-0039-7
    2,其中該等交叉點包括各別記憶體系統,各記憶體系統包括並聯配置的一組K個記憶體元件,其中K
    Figure 112125983-A0305-02-0039-8
    2,藉此該N×M個胞元中之各胞元包括K個記憶體元件,及一程式化單元,其連接至該記憶體內運算裝置,該程式化單元經組態以在一目標電導值對應於將儲存於該各胞元中之一目標權重值的情況下藉由以下操作來程式化各胞元:將一SET信號施加至該各胞元之該K個記憶體元件以將該K個記憶體元件中之各者設定為一SET狀態,且讀取處於該SET狀態之該K個記憶體元件的K個電導值;及基於讀取的該K個電導值及該目標電導值,調整該K個記憶體元件中之至少一者的一電導值以使該各胞元之該K個記憶體元件之一總和電導與該目標電導值匹配,且最大化處於其SET狀態或處於零電導標稱值之一RESET狀態之 該K個記憶體元件的一數目,使得該K個記憶體元件中之至多一者既不處於一SET狀態亦不處於一RESET狀態。
  15. 如請求項14之處理系統,其中該程式化單元經由該記憶體內運算裝置之該等輸入線或該等輸出線連接至該記憶體內運算裝置,且用以藉由分別在該等輸入線或該等輸出線上施加電壓信號來調整該K個記憶體元件中之該至少一者的該電導值。
  16. 如請求項14之處理系統,其中該處理系統進一步包括連接在該等輸出線之輸出端中的一讀出電路,且該程式化單元進一步連接至該讀出電路,且經組態以根據一單裝置程式化方法調整該電導值。
  17. 如請求項16之處理系統,其中該等各別記憶體系統中之各者包括兩組K個記憶體元件,其中K
    Figure 112125983-A0305-02-0040-9
    2,使得該N×M個胞元中之各胞元包括2K個記憶體元件,該兩個組處於一差異組態中,該兩個組由一第一組K個記憶體元件及一第二組K個記憶體元件組成,其分別用於儲存一正權重值及一負權重值,該K個記憶體元件在該兩個組中之各者中為並聯的,且 該程式化單元進一步經組態以根據將儲存於該胞元中之該目標權重的一預期正負號來選擇該兩個組中之一給定組。
  18. 如請求項14之處理系統,其中該等記憶體元件為相變記憶體裝置、電阻式隨機存取記憶體裝置及快閃記憶體胞元裝置中之一者。
  19. 如請求項18之處理系統,其中該等記憶體元件為相變記憶體裝置。
  20. 一種用於程式化具有一交叉桿陣列結構之一記憶體內運算裝置之記憶體元件的電腦程式產品,該交叉桿陣列結構包括在定義N×M個胞元之交叉點處互連的N個輸入線及M個輸出線,其中N
    Figure 112125983-A0305-02-0041-11
    2且M
    Figure 112125983-A0305-02-0041-12
    2,其中該等交叉點包括各別記憶體系統,各記憶體系統包括並聯配置的一組K個記憶體元件,其中K
    Figure 112125983-A0305-02-0041-13
    2,藉此該N×M個胞元中之各胞元包括K個記憶體元件,該電腦程式產品包含一電腦可讀儲存媒體,該電腦可讀儲存媒體具有藉由其實施之程式指令,該等程式指令可由可連接至該記憶體內運算裝置之一程式化單元的處理構件執行,以使得該程式化單元在一目標電導值對應於將儲存於該各胞元中之一目標權重值的情況下藉由以下操作來程式化該各胞元:將一SET信號施加至該各胞元之該K個記憶體元件以將該K個記憶體元件中之各者設定為一SET狀態,且讀取處於該SET狀態之該K個記憶體元件的K個電導值;及 基於讀取的該K個電導值及該目標電導值,調整該K個記憶體元件中之至少一者的一電導值以使該各胞元之該K個記憶體元件之一總和電導與該目標電導值匹配,且最大化處於其SET狀態或處於零電導標稱值之一RESET狀態之該K個記憶體元件的一數目,使得該K個記憶體元件中之至多一者既不處於一SET狀態亦不處於一RESET狀態。
  21. 如請求項20之電腦程式產品,其中該等程式指令經設計為使得調整該K個記憶體元件中之該至少一者的該電導值使得:基於讀取的該K個電導值及該目標電導值,判定K'個記憶體元件之一子集,該K'個記憶體元件之該子集的一總和電導與該目標電導值匹配,且具有可藉由重新程式化該K'個記憶體元件中之至多一者而移除的一容限,其中K'
    Figure 112125983-A0305-02-0042-14
    K;及執行以下中之一者或各者:將一RESET信號施加至該各胞元之不在該子集中之任何剩餘記憶體元件以將該任何剩餘記憶體元件設定為其RESET狀態,及重新程式化該子集之該K'個記憶體元件中之至多一者。
  22. 如請求項21之電腦程式產品,其中該等程式指令經設計為使得調整該K個記憶體元件中之該至少一者的該電導值包括重新程式化該子集之該K'個記憶體元件中之恰好一者。
  23. 如請求項21之電腦程式產品,其中該等程式指令經設計為使得調整該電導值包括將該RESET信號施加至該任何剩餘記憶體元件。
  24. 如請求項21之電腦程式產品,其中該等程式指令經設計為使得調整該K個記憶體元件中之至少一者的該電導值包含藉由以下操作調整該各胞元之該K個記憶體元件中之至少兩者的電導值:將該RESET信號施加至該任何剩餘記憶體元件,及重新程式化該子集之該K'個記憶體元件中之恰好一者。
  25. 如請求項24之電腦程式產品,其中該等程式指令進一步經設計為使得在重新程式化該K'個記憶體元件中之該恰好一者之前,將該K'個記憶體元件中之該恰好一者識別為該經判定子集之該等記憶體元件當中之具有最小電導的一記憶體元件。
TW112125983A 2022-11-14 2023-07-12 具有一交叉桿陣列結構之記憶體內處理裝置之類比記憶體裝置之精確程式化 TWI860775B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GR20220100941 2022-11-14
GR20220100941 2022-11-14

Publications (2)

Publication Number Publication Date
TW202420309A TW202420309A (zh) 2024-05-16
TWI860775B true TWI860775B (zh) 2024-11-01

Family

ID=91028053

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112125983A TWI860775B (zh) 2022-11-14 2023-07-12 具有一交叉桿陣列結構之記憶體內處理裝置之類比記憶體裝置之精確程式化

Country Status (6)

Country Link
US (1) US12254222B2 (zh)
EP (1) EP4619979A1 (zh)
JP (1) JP2025540573A (zh)
CN (1) CN120202506A (zh)
TW (1) TWI860775B (zh)
WO (1) WO2024105480A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014085975A1 (zh) * 2012-12-04 2014-06-12 中国科学院半导体研究所 可动态重构的多级并行单指令多数据阵列处理系统
US10635398B2 (en) * 2018-03-15 2020-04-28 Macronix International Co., Ltd. Voltage sensing type of matrix multiplication method for neuromorphic computing system
US20210271597A1 (en) * 2018-06-18 2021-09-02 The Trustees Of Princeton University Configurable in memory computing engine, platform, bit cells and layouts therefore
US11188825B2 (en) * 2018-10-15 2021-11-30 International Business Machines Corporation Mixed-precision deep-learning with multi-memristive devices
US11335387B2 (en) * 2019-07-11 2022-05-17 Southeast University In-memory computing circuit for fully connected binary neural network
US11373092B2 (en) * 2019-04-10 2022-06-28 International Business Machines Corporation Training of artificial neural networks

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074318B2 (en) 2018-12-14 2021-07-27 Western Digital Technologies, Inc. Hardware accelerated discretized neural network
US10754921B2 (en) 2019-01-16 2020-08-25 International Business Machines Corporation Resistive memory device with scalable resistance to store weights
US12272422B2 (en) * 2022-11-10 2025-04-08 International Business Machines Corporation Compensation for conductance drift in analog memory in crossbar array

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014085975A1 (zh) * 2012-12-04 2014-06-12 中国科学院半导体研究所 可动态重构的多级并行单指令多数据阵列处理系统
US10635398B2 (en) * 2018-03-15 2020-04-28 Macronix International Co., Ltd. Voltage sensing type of matrix multiplication method for neuromorphic computing system
US20210271597A1 (en) * 2018-06-18 2021-09-02 The Trustees Of Princeton University Configurable in memory computing engine, platform, bit cells and layouts therefore
US11188825B2 (en) * 2018-10-15 2021-11-30 International Business Machines Corporation Mixed-precision deep-learning with multi-memristive devices
US11373092B2 (en) * 2019-04-10 2022-06-28 International Business Machines Corporation Training of artificial neural networks
US11335387B2 (en) * 2019-07-11 2022-05-17 Southeast University In-memory computing circuit for fully connected binary neural network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
期刊 Riduan Khaddam-Aljameh A Multi-Memristive Unit-Cell Array With Diagonal Interconnects for In-Memory Computing IEEE EXPRESS BRIEFS, VOL. 68, NO. 12 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS DECEMBER 2021 3522~3526 *

Also Published As

Publication number Publication date
TW202420309A (zh) 2024-05-16
JP2025540573A (ja) 2025-12-16
WO2024105480A1 (en) 2024-05-23
US12254222B2 (en) 2025-03-18
EP4619979A1 (en) 2025-09-24
CN120202506A (zh) 2025-06-24
US20240160348A1 (en) 2024-05-16

Similar Documents

Publication Publication Date Title
CN111279366B (zh) 人工神经网络的训练
CN108734271B (zh) 神经形态权重单元及其形成的方法以及人工神经网络
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
US11188825B2 (en) Mixed-precision deep-learning with multi-memristive devices
CN115699028B (zh) 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射
US20190325291A1 (en) Resistive processing unit with multiple weight readers
CN113728338B (zh) 利用非对称rpu器件的dnn训练
CN112154460A (zh) 具有深度学习神经网络的非易失性存储器管芯
JPS60183645A (ja) 適応自己修理プロセツサアレイ及びこれを用いた信号処理方法
CN114819128B (zh) 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置
CN113553028B (zh) 基于概率比特电路的问题求解优化方法及系统
CN111128279A (zh) 基于NAND Flash的存内计算芯片及其控制方法
US20220012586A1 (en) Input mapping to reduce non-ideal effect of compute-in-memory
JP2023523233A (ja) 抵抗処理ユニットを物理的に複製困難な関数として用いるセキュアなチップ識別
CN111814969A (zh) 优化系统和用于优化系统的控制方法
TWI860775B (zh) 具有一交叉桿陣列結構之記憶體內處理裝置之類比記憶體裝置之精確程式化
KR20230090758A (ko) 뉴럴 네트워크 회로 및 장치
JP7649616B2 (ja) 隠れ行列訓練dnnのフィルタリング
CN113592081A (zh) 数据处理装置及数据处理方法
US8880453B2 (en) Method of pattern recognition for artificial intelligence
KR102607864B1 (ko) 뉴로모픽 시스템 및 그것의 동작 방법
TW202427266A (zh) 應用於類神經網路的記憶內運算的加速器
CN116386687B (zh) 一种平衡电压降影响的存储器阵列
Pescianschi et al. Analog and digital modeling of a scalable neural network
US11514981B1 (en) Programming devices and weights in hardware