TWI821148B - 電子裝置及其操作方法 - Google Patents
電子裝置及其操作方法 Download PDFInfo
- Publication number
- TWI821148B TWI821148B TW112118503A TW112118503A TWI821148B TW I821148 B TWI821148 B TW I821148B TW 112118503 A TW112118503 A TW 112118503A TW 112118503 A TW112118503 A TW 112118503A TW I821148 B TWI821148 B TW I821148B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory array
- operations
- memory
- array
- sub
- Prior art date
Links
- 238000000034 method Methods 0.000 title description 6
- 230000015654 memory Effects 0.000 claims abstract description 188
- 238000003491 array Methods 0.000 claims description 24
- 238000013473 artificial intelligence Methods 0.000 claims description 17
- 238000011017 operating method Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
Abstract
在此提供了一種電子裝置。該電子裝置包括一運算型記憶體。該運算型記憶體包括一第一記憶體陣列和一第二記憶體陣列。第一記憶體陣列和第二記憶體陣列包含相同的複數個資料。第一記憶體陣列和第二記憶體陣列配置成以異相方式執行複數個操作。
Description
本揭露是關於電子裝置及其操作方法。本揭露特別是關於包括運算型記憶體的電子裝置及其操作方法。
隨著人工智慧(artificial intelligence,AI)演算法在汽車、消費、軍用市場等各種應用領域的快速發展,運算性能不再只由AI軟體的最佳化來主導,也必須克服硬體加速器的天然瓶頸。在一般的AI運算中,大量的資料在待機模式下儲存於記憶體,並在運算期間傳輸至中央處理器。大量的移動導致資料堵塞並降低計算性能。因此,急需改善加速AI運算的硬體基礎設施。要最佳化記憶體匯流排和處理單元之間的資料流量,記憶體內運算(in-memory computing,IMC)是一種很有前途的選擇方案。然而,目前的記憶體裝置存在一些缺點,包括讀取干擾、保留損耗、漂移、和耐久性問題。為了防止AI推論操作的退化,資料遺失應該被避免。資料更新是常用於補償資料遺失的技術手段,並應該在推論準確度退化之前完成。然而,在AI演算法的基本操作之間插入更新操作可能會導致額外的時間消耗並降低AI推論操作
的運算性能。舉例來說,更新VGG19架構中19層的權重需要將近20秒的時間。
本揭露提供電子裝置及其操作方法,以處理耗時和運算性能下降的問題。
在本揭露的一個態樣,提供了一種電子裝置。該電子裝置包括一運算型記憶體。該運算型記憶體包括一第一記憶體陣列和一第二記憶體陣列。第一記憶體陣列和第二記憶體陣列包含相同的複數個資料。第一記憶體陣列和第二記憶體陣列配置成以異相方式執行複數個操作。第二記憶體陣列是第一記憶體陣列的複製陣列。
在本揭露的另一個態樣,提供了一種電子裝置的操作方法。電子裝置包括一運算型記憶體。該運算型記憶體包括一第一記憶體陣列和一第二記憶體陣列。第二記憶體陣列是第一記憶體陣列的複製陣列。該電子裝置的操作方法包括下列步驟。首先,儲存相同的複數個資料至第一記憶體陣列和第二記憶體陣列。在此之後,以異相方式在第一記憶體陣列和第二記憶體陣列中執行複數個操作。
為了對本揭露之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
100:電子裝置
200:運算型記憶體
210:第一記憶體陣列
212:第一子陣列
220:第二記憶體陣列
222:第二子陣列
230:容錯層
250:人工智慧架構
252:層
254:層
300:記憶體控制器
400:處理器
410:控制單元
420:算術邏輯單元
430:快取記憶體
500:訊號線
O1:第一操作
O2:第二操作
S:開關
S10:步驟
S20:步驟
T1:輸入端
T2:輸出端
第1圖~第2圖是說明根據本揭露的電子裝置的示意圖。
第3圖~第4圖是說明根據本揭露的電子裝置的操作方法的示意圖。
以下將配合所附圖式對於各種實施例進行更詳細的敘述。敘述內容和圖式的提供只是用於說明,並不意欲造成限制。為了清楚起見,元件可能並未依照實際比例加以繪示。此外,在某些圖式中可能省略一些元件和/或符號。可以預期的是,一實施例中的元件和特徵,可以被有利地納入於另一實施例中,而未作進一步的詳述。
請參照第1圖,其示出根據本揭露的一種電子裝置100。電子裝置100包括一運算型記憶體200。運算型記憶體200包括一第一記憶體陣列210和一第二記憶體陣列220。第一記憶體陣列210和第二記憶體陣列220包含相同的複數個資料。第一記憶體陣列210和第二記憶體陣列220配置成以異相(out of phase)方式執行複數個操作。
更具體地說,第二記憶體陣列220可以是第一記憶體陣列210的複製陣列(duplicated array)。也就是說,儲存在第二記憶體陣列220的資料可以完全相同於儲存在第一記憶體陣列210的資料。這可以藉由同時儲存相同的資料至第一記憶體陣列210和第二記憶體陣列220並進行驗證來加以實現。然而,本揭露中的用語「複製陣列」仍然允許二個陣列在某些特定情況下存在
短暫且暫時性的差異,所述特定情況例如是重新寫入資料至其中一個陣列以確保資料準確度。資料可以是演算法的權重資料,但本揭露不受限於此。第一記憶體陣列210和第二記憶體陣列220的記憶胞在所附圖式中由交點上的實心點所表示。
根據一些實施例,第一記憶體陣列210配置成交替執行複數個第一操作O1和複數個第二操作O2,第二記憶體陣列220配置成交替執行該些第二操作O2和該些第一操作O1。當第一記憶體陣列210執行第一操作O1時,第二記憶體陣列220執行第二操作O2。當第一記憶體陣列210執行第二操作O2時,第二記憶體陣列220執行第一操作O1。舉例來說,該些第一操作O1可以是複數個讀取操作,該些第二操作O2可以是複數個更新操作。更新操作可以包括從一記憶體陣列讀出資料和重新寫入讀出的資料至該記憶體陣列中。當第一記憶體陣列210執行讀取操作時,第二記憶體陣列220執行更新操作。當第一記憶體陣列210執行更新操作時,第二記憶體陣列220執行讀取操作。在這種情況下,第一記憶體陣列210和第二記憶體陣列220中總是有一者執行讀取操作,而另一者可以同時執行更新操作。如此一來,便可以在不浪費時間的情況下獲得更精準的資料,例如演算法的權重資料。
請參照第2圖,其示出運算型記憶體200進一步的細節。在一些實施例中,第一記憶體陣列210包括複數個第一子陣列212,第二記憶體陣列220包括複數個第二子陣列222。第一子陣列212和第二子陣列222可以排列成複數個子陣列對,每一個子陣
列對包括一第一子陣列212和一第二子陣列222相鄰於該第一子陣列212。該些子陣列對可以進一步地排列成複數個層。然而可以理解,第一記憶體陣列210和第二記憶體陣列220可以以其他方式排列。舉例來說,第一記憶體陣列210和第二記憶體陣列220可以排列成彼此獨立的一整塊,如第1圖所示。
如第2圖所示,運算型記憶體200可以更包括一或更多個容錯層230,每一個容錯層230排列在該些子陣列對的相鄰二個層之間。容錯層230可以在子陣列對之間提供對於變動(variation)的容忍度。當需要數個容錯層230時,可以將它們排列成子陣列的一個層,以節省記憶體的成本。
在第2圖中,直線箭頭指示資料流從輸入端T1至輸出端T2的方向,向下的實線箭頭表示讀取操作,曲線箭頭表示更新操作。如第2圖的左半部所示,當第一子陣列212執行讀取操作時,第二子陣列222執行更新操作。然後,第一子陣列212執行更新操作,第二子陣列222執行讀取操作,如第2圖的右半部所示。
請再次參照第1圖,根據一些實施例,運算型記憶體200可以是非揮發性記憶體,例如相變化記憶體(phase change memory,PCM)、電阻式隨機存取記憶體(resistive random access memory,ReRAM)、鐵電式隨機存取記憶體(ferroelectric random access memory,FeRAM)、鐵電場效電晶體(ferroelectric field effect transistor,FeFET)記憶體、磁阻式
隨機存取記憶體(magnetoresistive random access memory,MRAM)、或快閃記憶體(flash memory)等等。
電子裝置100可以更包括一記憶體控制器300。記憶體控制器300耦接至運算型記憶體200。記憶體控制器300配置成控制第一記憶體陣列210和第二記憶體陣列220的第一操作O1和第二操作O2的序列。具體來說,記憶體控制器300可以傳送第一操作O1和第二操作O2的指令序列至第一記憶體陣列210和第二記憶體陣列220。在運算期間,所述指令依序改變第一操作O1和第二操作O2。與第一記憶體陣列210的圖案異相的交替圖案係提供至第二記憶體陣列220。
電子裝置100可以更包括一處理器400。處理器400耦接至運算型記憶體200。處理器400只與第一記憶體陣列210和第二記憶體陣列220中執行該些第一操作O1的一者通訊。舉例來說,在該些第一操作O1是複數個讀取操作,該些第二操作O2是複數個更新操作的情況下,第一操作,處理器400可以總是讀取第一記憶體陣列210和第二記憶體陣列220中執行該些讀取操作的一者。在一些實施例中,處理器400包括一控制單元410、一算術邏輯單元(arithmetic logic unit,ALU)420、和一快取記憶體430,但本揭露不受限於此。
電子裝置100可以更包括複數個訊號線500,用於運算型記憶體200與記憶體控制器300之間的連接和運算型記憶體200與處理器400之間的連接。舉例來說,運算型記憶體200與處
理器400之間的訊號線500可以是位元線和/或源線,但本揭露不受限於此。根據一些實施例,複數個開關S可以配置在運算型記憶體200與處理器400之間的訊號線500上,以連接第一記憶體陣列210和第二記憶體陣列220中執行該些第一操作O1的一者與處理器400之間的通訊路徑,並切斷另一者與處理器400之間的訊路徑。
現在本揭露的重點轉向一種電子裝置的操作方法。電子裝置包括一運算型記憶體。該運算型記憶體包括一第一記憶體陣列和一第二記憶體陣列。第二記憶體陣列可以是第一記憶體陣列的複製陣列。要操作的電子裝置例如可以是上述的電子裝置100,在此將不再贅述電子裝置的其他細節。為清楚起見,以下將參考電子裝置100來敘述操作方法的細節。
請參照第3圖,其示出根據本揭露的操作方法的流程圖。在步驟S10,儲存相同的複數個資料至第一記憶體陣列210和第二記憶體陣列220。該些資料例如可以是演算法的權重資料。
在步驟S20,以異相方式在第一記憶體陣列210和第二記憶體陣列220中執行複數個操作。更具體地說,操作方法可以包括在第一記憶體陣列210中交替執行複數個第一操作O1和複數個第二操作O2、及在第二記憶體陣列220中交替執行該些第二操作O2和該些第一操作O1。當在第一記憶體陣列210中執行第一操作O1時,在第二記憶體陣列220中執行第二操作O2。當在第一記
憶體陣列210中執行第二操作O2時,在第二記憶體陣列220中執行第一操作O1,如第1圖所示。
該些第一操作O1可以是複數個讀取操作,該些第二操作O2可以是複數個更新操作。相應地,在一些實施例中,操作方法可以更包括從電子裝置100的一記憶體控制器300傳送該些讀取操作和該些更新操作的指令序列至第一記憶體陣列210和第二記憶體陣列220。在一些實施例中,操作方法可以更包括透過電子裝置100的一處理器400總是讀取第一記憶體陣列210和第二記憶體陣列220中執行該些讀取操作的一者。在這種情況下,處理器400,連同使用者,可以見到運算型記憶體200總是執行所需的讀取操作,而不會在確保資料準確度的更新操作上浪費時間。
請參照第4圖,其示出用於運算型記憶體200的一人工智慧架構250。人工智慧架構250可以是VGG16架構或VGG19架構等等。人工智慧架構250包括數個層,其中包含層252和它的下一層254。根據一些實施例,第一記憶體陣列210可以包括複數個第一子陣列212用於人工智慧架構250的不同層。同樣地,第二記憶體陣列220可以包括複數個第二子陣列222用於人工智慧架構250的不同層。相應地,操作方法可以更包括從屬於人工智慧架構250中的一層的該些第一子陣列212和該些第二子陣列222傳送複數個資料至人工智慧架構250中的下一層,其中該下一層只接收來自屬於該層的該些第一子陣列212和該些第二子陣列222中執行該些第一操作O1的一群的該些資料。舉例來說,層254可以只
從屬於層252的該些第一子陣列212和該些第二子陣列222(在第4圖分別由一整塊的第一記憶體陣列210和第二記憶體陣列220表示)中執行讀取操作的一群讀取資料。
綜上所述,本揭露提供了電子裝置及其操作方法。在本揭露中,透過複製陣列,可以連續地執行使用者所需的操作,而不會在確保資料準確度的更新操作上浪費時間,這是因為當第一記憶體陣列或第二記憶體陣列中的一者執行所需的操作時,另一者可以執行更新操作。因此,可以減輕由資料更新所引起的耗時和運算性能下降的問題,並同時確保資料準確度。硬體運算得以加速。對於AI演算法來說,可以改善推論性能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:電子裝置
200:運算型記憶體
210:第一記憶體陣列
220:第二記憶體陣列
300:記憶體控制器
400:處理器
410:控制單元
420:算術邏輯單元
430:快取記憶體
500:訊號線
O1:第一操作
O2:第二操作
S:開關
Claims (8)
- 一種電子裝置,包括:一運算型記憶體,包括:一第一記憶體陣列;及一第二記憶體陣列;其中該第一記憶體陣列和該第二記憶體陣列包含相同的複數個資料;其中該第一記憶體陣列和該第二記憶體陣列配置成以異相方式執行複數個操作,其中該第一記憶體陣列配置成交替執行複數個第一操作和複數個第二操作,該第二記憶體陣列配置成交替執行該些第二操作和該些第一操作,當該第一記憶體陣列執行該些第一操作時,該第二記憶體陣列執行該些第二操作,當該第一記憶體陣列執行該些第二操作時,該第二記憶體陣列執行該些第一操作;且其中該第二記憶體陣列是該第一記憶體陣列的複製陣列。
- 如請求項1所述之電子裝置,更包括:一記憶體控制器,耦接至該運算型記憶體,該記憶體控制器配置成控制該第一記憶體陣列和該第二記憶體陣列的該些第一操作和該些第二操作的序列。
- 如請求項1所述之電子裝置,更包括: 一處理器,耦接至該運算型記憶體,該處理器只與該第一記憶體陣列和該第二記憶體陣列中執行該些第一操作的一者通訊。
- 如請求項3所述之電子裝置,其中該些第一操作是複數個讀取操作,該些第二操作是複數個更新操作,且該處理器總是讀取該第一記憶體陣列和該第二記憶體陣列中執行該些讀取操作的一者。
- 如請求項1所述之電子裝置,其中該第一記憶體陣列包括複數個第一子陣列,該第二記憶體陣列包括複數個第二子陣列,該些第一子陣列和該些第二子陣列排列成複數個子陣列對,每一個該子陣列對包括一第一子陣列和一第二子陣列相鄰於該第一子陣列。
- 一種電子裝置的操作方法,其中一電子裝置包括一運算型記憶體,該運算型記憶體包括一第一記憶體陣列和一第二記憶體陣列,該第二記憶體陣列是該第一記憶體陣列的複製陣列,且其中該電子裝置的操作方法包括:儲存相同的複數個資料至該第一記憶體陣列和該第二記憶體陣列;及以異相方式在該第一記憶體陣列和該第二記憶體陣列中執行複數個操作,包括:在該第一記憶體陣列中交替執行複數個第一操作和複數個第二操作;及 在該第二記憶體陣列中交替執行該些第二操作和該些第一操作;其中當在該第一記憶體陣列中執行該些第一操作時,在該第二記憶體陣列中執行該些第二操作,當在該第一記憶體陣列中執行該些第二操作時,在該第二記憶體陣列中執行該些第一操作。
- 如請求項6所述之電子裝置的操作方法,其中該些第一操作是複數個讀取操作,且其中該電子裝置的操作方法更包括:透過該電子裝置的一處理器總是讀取該第一記憶體陣列和該第二記憶體陣列中執行複數個讀取操作的一者。
- 如請求項6所述之電子裝置的操作方法,其中該第一記憶體陣列包括複數個第一子陣列,該第二記憶體陣列包括複數第二子陣列,且其中該電子裝置的操作方法更包括:從屬於一人工智慧架構中的一層的該些第一子陣列和該些第二子陣列傳送儲存於其中的該些資料至該人工智慧架構中的下一層,其中該下一層只接收來自屬於該層的該些第一子陣列和該些第二子陣列中執行該些第一操作的一群的該些資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202318139410A | 2023-04-26 | 2023-04-26 | |
US18/139,410 | 2023-04-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
TWI821148B true TWI821148B (zh) | 2023-11-01 |
Family
ID=89722272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112118503A TWI821148B (zh) | 2023-04-26 | 2023-05-18 | 電子裝置及其操作方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI821148B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW202014895A (zh) * | 2018-10-11 | 2020-04-16 | 力晶積成電子製造股份有限公司 | 具有記憶體內運算架構的記憶體及其操作方法 |
TW202036390A (zh) * | 2019-03-15 | 2020-10-01 | 華邦電子股份有限公司 | 可執行人工智慧運算的記憶體晶片及其運算方法 |
TW202230144A (zh) * | 2021-01-28 | 2022-08-01 | 華邦電子股份有限公司 | 具有運算功能的記憶體裝置及其操作方法 |
-
2023
- 2023-05-18 TW TW112118503A patent/TWI821148B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW202014895A (zh) * | 2018-10-11 | 2020-04-16 | 力晶積成電子製造股份有限公司 | 具有記憶體內運算架構的記憶體及其操作方法 |
TW202036390A (zh) * | 2019-03-15 | 2020-10-01 | 華邦電子股份有限公司 | 可執行人工智慧運算的記憶體晶片及其運算方法 |
TW202230144A (zh) * | 2021-01-28 | 2022-08-01 | 華邦電子股份有限公司 | 具有運算功能的記憶體裝置及其操作方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11625584B2 (en) | Reconfigurable memory compression techniques for deep neural networks | |
CN110334799B (zh) | 基于存算一体的神经网络推理与训练加速器及其运行方法 | |
US11568200B2 (en) | Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference | |
Hur et al. | Memristive memory processing unit (MPU) controller for in-memory processing | |
CN108446764B (zh) | 一种新型神经形态芯片架构 | |
CN114341981B (zh) | 具有人工智能模式的存储器 | |
US11176979B2 (en) | Computational random access memory (CRAM) based on spin-orbit torque devices | |
CN114286977B (zh) | 人工智能加速器 | |
CN113157248A (zh) | 存内处理(pim)系统和pim系统的操作方法 | |
US20220067491A1 (en) | Bayesian network in memory | |
KR20220054633A (ko) | 동작 모드 레지스터 | |
CN114303194A (zh) | 在具有人工智能模式的存储器系统中复制数据 | |
US11461623B2 (en) | Method and apparatus for defect-tolerant memory-based artificial neural network | |
TWI821148B (zh) | 電子裝置及其操作方法 | |
WO2022098495A1 (en) | Compiler configurable to generate instructions executable by different deep learning accelerators from a description of an artificial neural network | |
CN112447249A (zh) | 人工智能操作的调试操作 | |
US20230214148A1 (en) | Redundant computing across planes | |
US10083080B2 (en) | Ultra-low power processor-in-memory architecture | |
US9720851B2 (en) | Method and apparatus for managing access to a memory | |
TWI842515B (zh) | 記憶體裝置的操作方法及記憶體裝置 | |
CN112906877A (zh) | 用于执行神经网络模型的存储器架构中的数据布局有意识处理 | |
EP3966698A1 (en) | Memory processing unit architecture | |
Zhang et al. | Peripheral circuitry assisted mapping framework for resistive logic-in-memory computing | |
WO2021196158A1 (zh) | 数据存取电路和方法 | |
CN116643911A (zh) | 用于处理系统的基于奇偶校验的错误管理 |