TWI727814B - 記憶體裝置及其運算結果補償方法 - Google Patents
記憶體裝置及其運算結果補償方法 Download PDFInfo
- Publication number
- TWI727814B TWI727814B TW109117789A TW109117789A TWI727814B TW I727814 B TWI727814 B TW I727814B TW 109117789 A TW109117789 A TW 109117789A TW 109117789 A TW109117789 A TW 109117789A TW I727814 B TWI727814 B TW I727814B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- block
- memory
- generate
- memory sub
- Prior art date
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
一種記憶體裝置及其運算結果補償方法被提出。記憶體裝置包括記憶體子區塊、參考記憶體子區塊以及控制電路。記憶體子區塊用以在運算階段接收輸入信號,並在運算階段依據輸入信號進行乘加運算以產生運算結果。參考記憶體子區塊具有多個記憶胞並被預先寫入參考權重值,參考記憶體子區塊在調校階段接收參考輸入信號,依據參考輸入信號以及參考權重值進行乘加運算以產生參考運算值。控制電路依據參考運算值以及標準運算值以產生調整值,控制電路並在運算階段依據調整值以調整運算結果來產生調整後運算結果。
Description
本發明是有關於一種記憶體裝置及其運算結果補償方法,且特別是有關於一種用於記憶體內運算(computation in memory, CIM)的記憶體裝置及其運算結果補償方法。
在人工智慧技術逐漸受到重視的今天,建構類神經網路計算電路的需求大幅提升。而為求節省電路面積,以符合可能發生的大量運算的需求,一種記憶體內計算器被提出。
記憶體內計算器中具有多個記憶胞,並透過對記憶胞寫入權重值,再藉由位元線接收輸入信號,以在源極線上產生依據輸入信號以及權重值所進行的乘加運算的運算結果。然而,在實際的應用上,記憶胞可能因為各種因素產生電性的變化,造成運算結果的不正確,例如製造過程中的製程參數飄移、應用過程中的溫度變化、電壓變化以及記憶胞的劣化現象。
請參照圖1的記憶胞電流飄移的狀態曲線圖。圖1的座標的橫軸為記憶胞的電流,縱軸則為記憶胞的數量。其中,理想的記憶胞的電流分佈應該如直線IL所示。在製程參數飄移、溫度飄移及/或電壓漂移的影響下,記憶胞的電流分佈如曲線CV3所示,其中的分佈範圍會擴大,且分佈範圍的中心會偏移直線IL。在記憶胞發生劣化的情況下,記憶胞的電流分佈則如曲線CV2所示。上述的記憶胞電流分佈的變化,都會導致運算結果產生錯誤,減低記憶體內計算器的工作效能。
本發明提供一種記憶體裝置及其運算結果補償方法,可提升運算結果的準確度。
本發明的記憶體裝置包括第一記憶體子區塊、參考記憶體子區塊以及控制電路。第一記憶體子區塊設置在記憶體區塊中,用以在運算階段接收輸入信號,並在運算階段依據輸入信號進行乘加運算以產生運算結果。參考記憶體子區塊設置在相同的記憶體區塊中,具有多個記憶胞並被預先寫入參考權重值,參考記憶體子區塊在調校階段接收參考輸入信號,依據參考輸入信號以及參考權重值進行乘加運算以產生參考運算值。控制電路依據參考運算值以及標準運算值以產生調整值,控制電路並在運算階段依據調整值以調整運算結果來產生調整後運算結果。
本發明的運算結果補償方法適用於記憶體內運算器。補償方法包括:提供參考記憶體子區塊,並在參考記憶體子區塊的多個記憶胞預先寫入參考權重值;在調校階段使參考記憶體子區塊接收參考輸入信號,依據參考輸入信號以及參考權重值進行乘加運算以產生參考運算值;提供記憶體子區塊以在運算階段接收輸入信號,並在運算階段依據輸入信號進行乘加運算以產生運算結果;以及,提供控制電路以依據參考運算值以及標準運算值來產生調整值,並在運算階段依據調整值以調整運算結果來產生調整後運算結果。
基於上述,本發明在記憶體裝置中設置參考記憶體子區塊。藉由使參考記憶體子區塊的多個記憶胞被預先寫入參考權重值,依據參考記憶體子區塊所提供的參考權重值來產生參考運算值,再利用參考運算值以及標準運算值來產生調整值。本發明的記憶體裝置透過調整值以對一般的記憶體子區塊所產生的運算結果進行補償,可提升調整後運算結果的正確度。
請參照圖2,圖2繪示本發明一實施例的記憶體裝置的示意圖。記憶體裝置200用於執行記憶體內運算動作。記憶體裝置200包括記憶體子區塊210、參考記憶體子區塊220以及控制電路230。其中記憶體子區塊210以及參考記憶體子區塊220設置在記憶體裝置200的相同的實體記憶體區塊中。記憶體子區塊210用以在運算階段接收輸入信號IN1,並在運算階段依據輸入信號IN1進行乘加運算以產生運算結果CR。其中,在運算階段前,記憶體子區塊210中的多個記憶胞可被寫入多個權重值,這些權重值可以在類神經網路的運算過程中來決定。並且,在運算階段中,記憶體子區塊210中的記憶胞可透過位元線來接收輸入信號IN1,並使記憶胞中的權重值與對應接收的輸入信號IN1相乘以產生乘積,再使多個記憶胞所產生的乘積相加以獲得運算結果CR。
在另一方面,參考記憶體子區塊220中的多個記憶胞則預先被寫入一參考權重值。在本實施例中,參考記憶體子區塊220中所有的記憶胞都被寫入相同的參考權重值。並且,在調校階段中,參考記憶體子區塊220可接收參考輸入信號INR,並依據參考輸入信號INR以及參考權重值進行乘加運算以產生參考運算值RCV。其中,參考記憶體子區塊220中的記憶胞透過位元線來接收對應的參考輸入信號INR,並依據記憶胞所提供的參考權重值來與參考輸入信號INR相乘來獲得乘積。並且,參考記憶體子區塊220並使對應多個記憶胞的多個乘積相加,來產生參考運算值RCV。
在另一方面,控制電路230耦接至記憶體子區塊210以及參考記憶體子區塊220。在調校階段中,控制電路230接收參考記憶體子區塊220所產生的參考運算值RCV,並依據參考運算值RCV以及標準運算值來產生調整值。在運算階段中,控制電路230則依據調整值來針對記憶體子區塊210所產生的運算結果CR進行調整,並藉以產生調整後運算結果ACR。
在此,標準運算值為在理想狀態下,參考記憶體子區塊220依據參考權重值以及參考輸入信號INR進行乘加運算所可以產生的數值。標準運算值可預先被儲存在控制電路230中。控制電路230可使標準運算值與參考運算值RCV相除,透過計算出標準運算值與參考運算值RCV的比值來產生調整值。並且,在運算階段中,控制電路230可使調整值與運算結果CR相乘,來獲得調整後運算結果ACR,並藉以補償記憶體子區塊210因各種變因所產生的偏移,以提升記憶體內運算的準確性。
附帶一提的,本發明實施例中,記憶體子區塊210以及參考記憶體子區塊220中的記憶胞可以為快閃記憶胞。在本實施例中,記憶體子區塊210以及參考記憶體子區塊220可以為反及式(NAND)的快閃記憶體子區塊,但也不限於此。另外,記憶體裝置200可以為二維或三維排列的記憶體裝置,沒有特別的限制。
在此請特別注意,在本發明實施例中,記憶體子區塊210的數量也可以是多個,並與參考記憶體子區塊220設置在相同的實體記憶區塊中。
接著請參照圖3,圖3繪示本發明實施例的記憶體裝置的動作流程示意圖。其中,作為參考輸入信號INR的輸入信號被輸入至參考記憶體子區塊,並進行調校階段CPH。在調校階段CPH的步驟S311中,預先對參考記憶體子區塊中的記憶胞寫入參考權重值,並依據參考權重值與參考輸入信號INR進行乘加運算。接著,乘加運算的結果可通過感測放大器(sense amplifier, SA)來產生數位的參考運算值RCV(步驟S312)。並在步驟S313中,藉由計算標準運算值與參考運算值RCV的比值,來產生調整值RATIO。
接著可進行運算階段OPH。在運算階段OPH中,輸入信號IN1被輸入至記憶體子區塊中。在步驟S321中,記憶體子區塊依據輸入信號IN1以及所儲存的權重值來執行乘加運算。值得一提的,記憶體子區塊中所儲存的權重值可依據類神經網路運算動作被調整,且記憶體子區塊中,記憶胞中所儲存的權重值可以相同或不相同,沒有特別的限制。
步驟S321中所產生的運算結果可以提供至感測放大器SA來產生數位的運算結果CR(步驟S322)。在此請注意,步驟S322與步驟S312中所應用的感測放大器SA可以是相同的硬體電路。
接著,在步驟S323中,使運算結果CR與調整值RATIO相乘,並可獲得調整後運算結果ACR。
值得一提的,在本實施例中,參考權重值可依據感測放大器SA的感測範圍最大值來設置。其中,參考權重值的數值可設定在使所產生的參考運算值略小於感測放大器SA的感測範圍最大值,但不限於此。
以下請參照圖4,圖4繪示本發明另一實施例的記憶體裝置的示意圖。記憶體裝置400包括一個或多個記憶體子區塊410、參考記憶體子區塊420、感測放大器SA以及控制電路430。記憶體子區塊410以及參考記憶體子區塊420設置在記憶體裝置400中的一實體記憶體區塊中。控制電路430包括暫存器431、量化器432、除法器433以及乘法器434。參考記憶體子區塊420中的記憶胞預先被寫入參考權重值。在調校階段中,參考記憶體子區塊420依據所接收的參考輸入信號來與參考權重值進行乘加運算以產生輸出值OUT1。輸出值OUT1被傳送至感測放大器SA進行感測,並產生參考運算值RCV。參考運算值RCV1被傳送至控制電路430。控制電路430的除法器433並使標準運算值來與參考運算值RCV相除來產生調整值。在本發明實施例中,控制電路430另提供量化器432來針對調整值進行量化動作,並產生量化後的調整值RATIO。量化後的調整值RATIO可被儲存在暫存器431中。
在另一方面,在運算階段中,多個記憶體子區塊410的其中之一被選中,並依據所接收的輸入信號以及記憶體子區塊410中的權重值來進行乘加運算,並產生輸出值OUT2。輸出值OUT2被被傳送至感測放大器SA進行感測,並產生運算結果CR。運算結果CR被傳送至乘法器434。乘法器434並使運算結果CR與調整值RATIO相乘,並藉以產生調整後運算結果ACR。
在本實施例中,調校階段可週期性的被產生,並即時的反應記憶體裝置400的工作參數的變異以及記憶胞的劣化狀態,並對應產生合適的調整值RATIO。基於參考記憶體子區塊420以及記憶體子區塊410中,記憶胞可能具有相同的劣化趨勢,因此,本發明實施例依據參考記憶體子區塊420所產生的調整值RATIO,也可有效反應記憶胞的劣化情況,並有效進行運算結果的補償。
附帶一提的,在本實施例中,感測放大器SA操作於電源電壓VCC以及接地電壓VSS間,並接收參考信號Ref以作為感測依據。感測放大器SA的電路架構可應用本領域具通常知識者所熟知的任意感測放大器電路來實施,沒有特別的限制。此外,本發明實施例中的暫存器431、量化器432、除法器433以及乘法器434的電路架構,也可透過本領域具通常知識者所熟知的相關電路來實施即可,沒有特別的限制。
請參照圖5,圖5繪示本發明另一實施例的記憶體裝置以及電流分佈調整動作的示意圖。圖5的座標的橫軸為記憶胞的電流,縱軸則為記憶胞的數量。記憶體裝置500包括多個記憶體區塊501~50N以及多個控制電路531~53N。記憶體區塊501~50N分別包括多個記憶體子區塊511~51N,並分別包括多個參考記憶體子區塊521~52N。參考記憶體子區塊521~52N分別對應記憶體子區塊511~51N,且參考記憶體子區塊521~52N中的記憶胞可預先被寫入相同的參考權重值。參考記憶體子區塊521~52N可在調校階段中分別提供參考運算值至控制電路531~53N。並在運算階段中,控制電路531~53N分別依據參考運算值來對記憶體子區塊511~51N產生的運算結果分別進行調整,並產生多個調整後運算結果。
在本實施例中,透過標準運算值可設定,可針對多個記憶體子區塊511~51N定義出相同的標準電流分佈曲線ID。在一種或多種變因發生的條件下,記憶體子區塊511~51N的電流分佈曲線RC1~RCN可能並不一致,但經過本發明實施例的調整動作後,調整後運算結果的電流分佈的曲線RC1’~RCN’的中心點可以與標準電流分佈曲線ID中心點相靠齊,並使多個記憶體子區塊511~51N所產生的運算結果的均勻度被提高,提升記憶體裝置500的誤差容忍度。
請參照圖6,圖6繪示本發明一實施例的運算結果補償方法的流程圖。本實施例的運算結果補償方法適用於記憶體內運算器。在運算結果補償方法中,步驟S610中,提供參考記憶體子區塊,並在參考記憶體子區塊的多個記憶胞預先寫入參考權重值。其中,預先寫入參考記憶體子區塊中的多個記憶胞的參考權重值可以是相同的。在步驟S620中,在調校階段使參考記憶體子區塊接收參考輸入信號,依據參考輸入信號以及參考權重值進行乘加運算以產生參考運算值。並且,在步驟S630中,提供記憶體子區塊以在運算階段接收輸入信號,並在運算階段依據輸入信號進行乘加運算以產生運算結果。此外,在步驟S640中,提供控制電路以依據參考運算值以及標準運算值來產生調整值,並在運算階段依據調整值以調整運算結果來產生調整後運算結果。
關於上述步驟的實施細節,在前述的多個實施例中已有詳盡的說明,在此恕不多贅述。
綜上所述,本發明的記憶體裝置中設置參考記憶體子區塊。並透過在參考記憶體子區塊寫入參考權重值,並藉由參考記憶體子區塊依據參考權重值所執行的乘加運算的參考運算值,來與預設的標準運算值進行比較,並藉以產生調整值。如此一來,一般的記憶體子區塊所產生的運算結果,可以透過調整值來進行補償,可產生具有相對高準確度的調整後運算結果。
200、400、500:記憶體裝置
210、410、511~51N:記憶體子區塊
220、420、521~52N:參考記憶體子區塊
230、430、531~53N:控制電路
431:暫存器
432:量化器
433:除法器
434:乘法器
501~50N:記憶體區塊
ACR:調整後運算結果
CPH:調校階段
CR:運算結果
CV2、CV3、ID、RC1~RCN、RC1’~RCN’:曲線
IL:直線
IN1:輸入信號
INR:參考輸入信號
OPH:運算階段
OUT1、OUT2:輸出值
RATIO:調整值
RCV:參考運算值
Ref:參考信號
S311~S313、S321~S322、S610~S640:步驟
SA:感測放大器
VCC:電源電壓
VSS:接地電壓
圖1為記憶胞電流飄移的狀態曲線圖。
圖2繪示本發明一實施例的記憶體裝置的示意圖。
圖3繪示本發明實施例的記憶體裝置的動作流程示意圖。
圖4繪示本發明另一實施例的記憶體裝置的示意圖。
圖5繪示本發明另一實施例的記憶體裝置以及電流分佈調整動作的示意圖。
圖6繪示本發明一實施例的運算結果補償方法的流程圖。
200:記憶體裝置
210:記憶體子區塊
220:參考記憶體子區塊
230:控制電路
ACR:調整後運算結果
IN1:輸入信號
INR:參考輸入信號
CR:運算結果
RCV:參考運算值
Claims (9)
- 一種記憶體裝置,包括: 一記憶體子區塊,設置在一記憶體區塊中,該記憶體子區塊用以在一運算階段接收一輸入信號,並在該運算階段依據該輸入信號進行乘加運算以產生一運算結果; 一參考記憶體子區塊,設置在該記憶體區塊中,該參考記憶體子區塊具有多個記憶胞並被預先寫入一參考權重值,該參考記憶體子區塊在一調校階段接收一參考輸入信號,依據該參考輸入信號以及該參考權重值進行乘加運算以產生一參考運算值;以及 一控制電路,依據該參考運算值以及一標準運算值以產生一調整值,該控制電路並在該運算階段依據該調整值以調整該運算結果來產生一調整後運算結果。
- 如請求項1所述的記憶體裝置,其中該控制電路計算該標準運算值以及該參考運算值的比值以獲得該調整值,該控制電路使該調整值與該運算結果相乘來產生該調整後運算結果。
- 如請求項2所述的記憶體裝置,其中該控制電路包括: 一除法器,計算該標準運算值以及該參考運算值的比值以獲得該調整值;以及 一乘法器,使該調整值與該運算結果相乘來產生該調整後運算結果。
- 如請求項3所述的記憶體裝置,其中該控制電路更包括: 一暫存器,用以暫存一量化後調整值;以及 一量化器,針對該調整值進行量化以產生該量化後調整值。
- 如請求項1所述的記憶體裝置,更包括: 一感測放大器,在該調校階段中感測該參考記憶體子區塊的輸出以產生該參考運算值,並在該運算階段中感測該記憶體子區塊的輸出以產生該運算結果。
- 如請求項5所述的記憶體裝置,其中該參考權重值依據該感測放大器的感測範圍最大值來設置。
- 一種運算結果補償方法,適用於記憶體內運算器,包括: 提供一參考記憶體子區塊,並在該參考記憶體子區塊的多個記憶胞預先寫入一參考權重值; 在一調校階段使該參考記憶體子區塊接收一參考輸入信號,依據該參考輸入信號以及該參考權重值進行乘加運算以產生一參考運算值; 提供一記憶體子區塊以在一運算階段接收一輸入信號,並在該運算階段依據該輸入信號進行乘加運算以產生一運算結果;以及 提供一控制電路以依據該參考運算值以及一標準運算值來產生一調整值,並在該運算階段依據該調整值以調整該運算結果來產生一調整後運算結果。
- 如請求項7所述的運算結果補償方法,其中提供該控制電路以依據該參考運算值以及該標準運算值來產生該調整值,並在該運算階段依據該調整值以調整該運算結果來產生該調整後運算結果的步驟包括: 提供該控制電路以計算該標準運算值以及該參考運算值的比值以產生該調整值;以及 提供該控制電路以使該調整值與該運算結果相乘來產生該調整後運算結果。
- 如請求項7所述的運算結果補償方法,更包括使該控制電路對該調整值進行量化動作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109117789A TWI727814B (zh) | 2020-05-28 | 2020-05-28 | 記憶體裝置及其運算結果補償方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109117789A TWI727814B (zh) | 2020-05-28 | 2020-05-28 | 記憶體裝置及其運算結果補償方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI727814B true TWI727814B (zh) | 2021-05-11 |
TW202145215A TW202145215A (zh) | 2021-12-01 |
Family
ID=77036342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109117789A TWI727814B (zh) | 2020-05-28 | 2020-05-28 | 記憶體裝置及其運算結果補償方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI727814B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9659249B1 (en) * | 2016-09-27 | 2017-05-23 | International Business Machines Corporation | Pre-programmed resistive cross-point array for neural network |
WO2018214913A1 (zh) * | 2017-05-23 | 2018-11-29 | 上海寒武纪信息科技有限公司 | 处理方法及加速装置 |
US20200050929A1 (en) * | 2018-08-10 | 2020-02-13 | International Business Machines Corporation | Aggregate adjustments in a cross bar neural network |
WO2020074996A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays |
-
2020
- 2020-05-28 TW TW109117789A patent/TWI727814B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9659249B1 (en) * | 2016-09-27 | 2017-05-23 | International Business Machines Corporation | Pre-programmed resistive cross-point array for neural network |
WO2018214913A1 (zh) * | 2017-05-23 | 2018-11-29 | 上海寒武纪信息科技有限公司 | 处理方法及加速装置 |
US20200050929A1 (en) * | 2018-08-10 | 2020-02-13 | International Business Machines Corporation | Aggregate adjustments in a cross bar neural network |
WO2020074996A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays |
Also Published As
Publication number | Publication date |
---|---|
TW202145215A (zh) | 2021-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112085181B (zh) | 神经网络量化方法及装置以及相关产品 | |
WO2021036905A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2021036890A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN109839823B (zh) | 压电变形镜的异步迟滞补偿-线性二次型h∞控制方法及系统 | |
CN105718642B (zh) | 一种基于门限自回归模型的参考时间尺度产生方法 | |
JP2021518590A (ja) | 混合信号コンピューティングのためのシステムおよび方法 | |
CN110504716B (zh) | 光伏逆变器无功模式优化选择方法、终端设备及存储介质 | |
TWI727814B (zh) | 記憶體裝置及其運算結果補償方法 | |
CN104298287A (zh) | 电流校正方法与装置及电阻校正方法与装置 | |
CN110766190A (zh) | 一种配电网负荷预测方法 | |
CN114567288B (zh) | 基于变分贝叶斯的分布协同非线性系统状态估计方法 | |
US11106396B1 (en) | Memory apparatus and compensation method for computation result thereof | |
Stomberg et al. | Decentralized non-convex optimization via bi-level SQP and ADMM | |
CN110133348B (zh) | 一种电能表自热误差的补偿方法、系统及存储介质 | |
Artioli et al. | Integration schemes for von‐Mises plasticity models based on exponential maps: numerical investigations and theoretical considerations | |
CN101556460B (zh) | 一种工艺控制方法及控制系统 | |
JP6727156B2 (ja) | 電力系統状態推定装置 | |
TW201926398A (zh) | 一種多個反應腔室之間製程結果的匹配方法和裝置 | |
CN101582694B (zh) | 频率控制字的生成方法、装置及信号发生装置 | |
CN115510373A (zh) | 一种基于最小二乘法二次多项式拟合的电源校准方法 | |
Cheng | A grey CES production function model and its application in Calculating the contribution rate of economic growth factors | |
CN100527630C (zh) | 额外模数转换模块校正流水线式模数转换器的方法及装置 | |
CN110504709B (zh) | 光伏集群无功电压调控方法、终端设备及存储介质 | |
Yamada et al. | LIORAT: NN Layer I/O Range Training for Area/Energy-Efficient Low-Bit A/D Conversion System Design in Error-Tolerant Computation-in-Memory | |
CN117269604B (zh) | 一种考虑阻抗变化的多谐波源责任量化方法及系统 |