TW202018716A - Circuit and method for memory operation - Google Patents
Circuit and method for memory operation Download PDFInfo
- Publication number
- TW202018716A TW202018716A TW107140336A TW107140336A TW202018716A TW 202018716 A TW202018716 A TW 202018716A TW 107140336 A TW107140336 A TW 107140336A TW 107140336 A TW107140336 A TW 107140336A TW 202018716 A TW202018716 A TW 202018716A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- current
- geometric average
- square root
- state
- Prior art date
Links
Images
Landscapes
- Semiconductor Memories (AREA)
- Memory System (AREA)
Abstract
Description
本公開涉及一種用以讀取記憶體裝置的記憶體單元的電路配置和方法,且更具體地說,涉及一種用以讀取記憶體裝置的多個記憶體單元的狀態的電路配置和方法。The present disclosure relates to a circuit configuration and method for reading memory cells of a memory device, and more particularly, to a circuit configuration and method for reading states of a plurality of memory cells of a memory device.
非揮發性記憶體裝置通過改變構成記憶體單元的電子元件的電特性來儲存資訊。舉例來說,快閃記憶體通過修改記憶體單元中電晶體的閾值電壓來儲存資訊。在快閃記憶體中,單元中的低閾值電壓可表示邏輯“0”,而高閾值電壓可表示邏輯“1”。因此,為了檢索儲存於記憶體單元中的資訊,需要詢問記憶體單元中的電子元件的電特性。舉例來說,讀取快閃記憶體的狀態涉及測量電晶體的閾值電壓以確定其儲存“0”還是“1”。Non-volatile memory devices store information by changing the electrical characteristics of the electronic components that make up the memory unit. For example, flash memory stores information by modifying the threshold voltage of transistors in memory cells. In flash memory, a low threshold voltage in a cell may represent a logic "0", and a high threshold voltage may represent a logic "1". Therefore, in order to retrieve the information stored in the memory unit, it is necessary to query the electrical characteristics of the electronic components in the memory unit. For example, reading the state of the flash memory involves measuring the threshold voltage of the transistor to determine whether it stores "0" or "1".
如今,讀取記憶體單元的狀態可具有挑戰性,因為記憶體單元被設計成儲存若干種狀態。舉例來說,四層單元(quad-level cell)儲存16種不同狀態。在每一單元中具有多種狀態的情況下,與每一狀態相關聯的電特性之間的差異可能極小,且需要高精度的讀取電路來解析差異。此外,電子元件的本征波動或雜訊使得記憶體狀態的確定複雜化。舉例來說,一些記憶體單元包含可具有重疊的記憶體狀態分佈的電阻開關。舉例來說,在電阻記憶體中,記憶體狀態“0”可與10 Ω至20 Ω分佈相關聯,而記憶體狀態“1”可與15 Ω至25 Ω分佈相關聯。這些重疊的記憶體狀態分佈使得在從記憶體單元獲得重疊讀數(例如18 Ω)時,讀取操作不可靠。在這類情形中,可能需要添加糾錯電路,或在可準確地識別記憶體狀態之前執行多次讀取操作。Nowadays, reading the state of a memory cell can be challenging because the memory cell is designed to store several states. For example, a quad-level cell (quad-level cell) stores 16 different states. In the case where there are multiple states in each cell, the difference between the electrical characteristics associated with each state may be extremely small, and a high-precision reading circuit is required to resolve the difference. In addition, the intrinsic fluctuation or noise of electronic components complicates the determination of the state of the memory. For example, some memory cells include resistance switches that can have overlapping memory state distributions. For example, in a resistive memory, the memory state "0" can be associated with a 10 Ω to 20 Ω distribution, and the memory state "1" can be associated with a 15 Ω to 25 Ω distribution. These overlapping memory state distributions make reading operations unreliable when obtaining overlapping readings (eg 18 Ω) from memory cells. In such cases, it may be necessary to add error correction circuits or perform multiple read operations before the memory state can be accurately identified.
這些問題在非馮諾伊曼(von-Neumann)電腦架構中尤其難以解決。在馮諾伊曼架構中,儲存牆使記憶體與處理單元分離。此佈置允許採用記憶體讀取技術,包含資料校正、濾波或信號放大,因為來自記憶體的資料可在操作前被存取、處理且隨後儲存在高速緩衝記憶體中以供稍後存取。然而,在非馮諾伊曼架構中,記憶體與處理單元之間沒有儲存牆,且難以有效地校正誤差或在將來自記憶體裝置的資料發送至處理單元之前對其進行緩衝。在非馮諾伊曼架構(例如神經啟發架構)中,記憶體單元緊鄰處理單元放置以避免儲存瓶頸。因此,沒有機會有效地緩衝來自記憶體的資料以用於處理單元。實際上,緩衝或校正來自記憶體的資料以用於處理單元的任何嘗試可導致暗中損害電腦操作的顯著延遲。These problems are particularly difficult to solve in non-Neumann computer architectures. In the von Neumann architecture, the storage wall separates the memory from the processing unit. This arrangement allows the use of memory reading techniques, including data correction, filtering, or signal amplification, because data from the memory can be accessed, processed, and then stored in cache memory for later access before operation. However, in a non-von Neumann architecture, there is no storage wall between the memory and the processing unit, and it is difficult to effectively correct errors or buffer the data from the memory device before sending it to the processing unit. In non-von Neumann architectures (such as neural-inspired architectures), the memory unit is placed next to the processing unit to avoid storage bottlenecks. Therefore, there is no opportunity to effectively buffer the data from the memory for the processing unit. In fact, any attempt to buffer or correct the data from the memory for the processing unit can result in a significant delay that secretly damages the operation of the computer.
此外,非馮諾伊曼架構可得益於由於本征波動而在讀取上具有挑戰性的記憶體類型。舉例來說,神經啟發架構將得益於使用電阻開關非揮發性記憶元件。這些記憶元件難以讀取,因為其可具有如上文所描述的記憶體狀態。然而,需要在神經啟發架構中採用這類記憶元件以促進神經網路操作的執行,因為所述記憶元件類似於生物啟發突觸。因此,為了改進非馮諾伊曼架構,需要研發即使電阻記憶元件具有重疊的記憶體狀態分佈也能夠利用所述電阻記憶元件的讀取電路。In addition, the non-von Neumann architecture can benefit from memory types that are challenging to read due to intrinsic fluctuations. For example, the neural-inspired architecture will benefit from the use of resistive switching non-volatile memory elements. These memory elements are difficult to read because they can have the memory state as described above. However, such memory elements need to be employed in neural-inspired architectures to facilitate the execution of neural network operations because the memory elements are similar to biologically-inspired synapses. Therefore, in order to improve the non-von Neumann architecture, it is necessary to develop a reading circuit that can utilize the resistive memory element even if the resistive memory element has overlapping memory state distributions.
所公開的記憶體裝置、電路以及方法涉及緩解或克服上述問題中的一或多個以及現有技術中的其它問題。The disclosed memory devices, circuits, and methods are related to alleviating or overcoming one or more of the above problems and other problems in the prior art.
本公開的一個實施例涉及一種記憶體裝置。所述記憶體裝置包含:多個記憶體單元;至少一個幾何平均運算元,耦合到多個記憶體單元中的至少兩個;以及記憶體狀態讀取器,耦合到至少一個幾何平均運算元以讀取多個記憶體單元的記憶體狀態。An embodiment of the present disclosure relates to a memory device. The memory device includes: a plurality of memory units; at least one geometric average operator, coupled to at least two of the plurality of memory units; and a memory state reader, coupled to at least one geometric average operator Read the memory status of multiple memory cells.
本公開的另一方面涉及一種記憶體裝置。所述記憶體裝置包含多個非揮發性記憶體單元;用於通過使與所述記憶體單元相關聯的記憶體讀取電流相乘而產生第一乘積的構件;用於通過對所述第一乘積執行開方運算而產生第一方根的構件;以及用於基於對應於所述第一方根的記憶體電流確定所述多個記憶體單元的記憶體狀態的構件。Another aspect of the present disclosure relates to a memory device. The memory device includes a plurality of non-volatile memory cells; a means for generating a first product by multiplying a memory reading current associated with the memory cell; A product that performs a square root operation to generate a first square root; and a member for determining the memory state of the plurality of memory cells based on the memory current corresponding to the first square root.
本公開的另一方面涉及一種用於確定記憶體狀態的方法。所述方法包含獲得多個記憶體單元的多個記憶體讀取電流;基於所述多個記憶體讀取電流確定乘積;基於所述乘積確定方根;以及基於所述方根確定所述記憶體狀態。Another aspect of the present disclosure relates to a method for determining the state of memory. The method includes obtaining a plurality of memory read currents of a plurality of memory cells; determining a product based on the plurality of memory read currents; determining a square root based on the product; and determining the memory based on the square root Body status.
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。In order to make the above-mentioned features and advantages of the present invention more obvious and understandable, the embodiments are specifically described below in conjunction with the accompanying drawings for detailed description as follows.
本公開大體上涉及一種使多個記憶體單元的輸出聚集以使記憶體狀態分佈變窄的記憶體裝置和記憶體電路。雖然個別記憶元件可具有較寬且重疊的記憶體狀態分佈,但多個記憶體單元的總輸出可經處理以產生更精細分佈。所公開的記憶體裝置可通過處理記憶體單元組而準確地確定整體記憶體狀態,甚至在可能難以區分個別記憶體單元的記憶體狀態時也如此。此外,記憶體裝置中的處理電路可通過減小分佈擴散且對具有非正態分佈的記憶體單元輸出進行濾波來產生沒有重疊的分佈。The present disclosure generally relates to a memory device and a memory circuit that aggregate outputs of a plurality of memory cells to narrow a memory state distribution. Although individual memory elements may have a wider and overlapping memory state distribution, the total output of multiple memory cells may be processed to produce a finer distribution. The disclosed memory device can accurately determine the overall memory state by processing groups of memory cells, even when it may be difficult to distinguish the memory states of individual memory cells. In addition, the processing circuit in the memory device can generate a distribution with no overlap by reducing the distribution spread and filtering the output of the memory cell with a non-normal distribution.
所公開的記憶體裝置和記憶體讀取電路也能夠快速地執行所需資料處理以使資料分佈變窄。舉例來說,通過使用類比電路或其它專用硬體,記憶體裝置可能夠快速且無縫地處理來自記憶元件的信號,以將資料提供至確定記憶體狀態的讀取電路。The disclosed memory device and memory reading circuit can also quickly perform required data processing to narrow the data distribution. For example, by using an analog circuit or other dedicated hardware, the memory device may be able to quickly and seamlessly process signals from the memory element to provide data to the reading circuit that determines the state of the memory.
圖1為根據一個實施例的示例性電子系統100的示意圖。電子系統100可包含中央處理單元(central processing unit;CPU)102、圖形處理單元(graphical processing unit;GPU)104、數位訊號處理器(digital signal processor;DSP)106以及多媒體處理器108中的一或多個。此外,電子系統100可包含感測器110、圖像信號處理器(image signal processor;ISP)112、顯示器/LCD 114、導航模組116以及連接模組118中的一或多個。由此,電子系統100可包含比圖1中所繪示的所有元件更少的元件和/或圖1中未繪示的額外元件。此外,電子系統100可包含神經處理單元(neural processing unit;NPU)120。FIG. 1 is a schematic diagram of an exemplary
在一些實施例中,電子系統100的所述元件中的每一個可與電子系統100的所述元件彼此連接,且可容納於單一裝置中。舉例來說,CPU 102可獨立地連接到電子系統100的所有其它元件。然而,在其它實施例中,電子系統100可具有特定連接且將元件分佈於多個裝置中。舉例來說,在一些實施例中,顯示器/LCD 114可僅連接到多媒體處理器108,或導航116可位於另一裝置中且僅與連接模組118連接。In some embodiments, each of the elements of the
CPU 102可由可配置以執行電腦程式的指令的電子電路組裝。舉例來說,CPU 102可被配置成執行由一組指令指定的算術、邏輯、控制和輸入/輸出(input/output;I/O)操作。在一些實施例中,CPU 102可包含:算數邏輯單位(arithmetic logic unit;ALU),其執行算術和邏輯操作;處理器暫存器,其將運算元提供至ALU且儲存ALU操作的結果;以及控制單元,其通過引導ALU、暫存器以及其它元件的協調操作而將指令的擷取(從記憶體擷取)和執行協調地結合起來。另外或替代地,CPU 102還可包含一或多個微處理器和週邊介面。此外,在一些實施例中,CPU 102可額外包含多核處理器,其可被配置成平行作業。The
GPU 104可設計有電子電路,所述電子電路被設計成快速操縱且改變記憶體裝置以加快幀緩衝器中圖像的創建。舉例來說,GPU 104可包含用於基礎2D加速的電路和幀緩衝器電路。在一些實施例中,GPU 104可類比2D加速。在其它實施例中,GPU 104可被配置成用於紋理映射和繪製多邊形、加快幾何計算(例如旋轉)以及將頂點變換為不同的坐標系。The GPU 104 may be designed with electronic circuits that are designed to quickly manipulate and change memory devices to speed up the creation of images in the frame buffer. For example,
GPU 104可作為插卡安設在主機板上的晶片組中或與CPU 102安設在同一晶片中。此外,GPU 104可直接連接到顯示器/LCD 114。The
DSP 106可組裝有用於數位信號處理操作需要的專用微處理器。對於需要無顯著延遲的快速處理的應用程式,DSP 106可被配置成即時處理資料。DSP 106還可包含用以接收數位信號且對其進行處理以改進所述信號的電路,以提供更清晰的聲音、更快的資料發送或更銳利的圖像。在一些實施例中,DSP 106可例如從感測器110接收已經數位化的視頻、話音、音訊、溫度或位置信號,且對所述信號執行數學函數。在所述實施例中,DSP 106可被設計成快速地執行這些數學函數。The DSP 106 may be equipped with a dedicated microprocessor required for digital signal processing operations. For applications that require fast processing without significant delay, DSP 106 can be configured to process data in real time. The DSP 106 may also include circuits to receive digital signals and process them to improve the signals to provide clearer sound, faster data transmission, or sharper images. In some embodiments, the
多媒體處理器108可包含被設計成以即時速率提供數位流的微處理器或系統晶片。在一些實施例中,多媒體處理器108可被配置成處置包含未經壓縮視頻、經壓縮數位視訊(例如MPEG-1、MPEG-2、MPEG-4等)以及數位音訊(例如PCM、AAC等)的檔案。多媒體處理器108中的微處理器可經優化以適應不同媒體資料類型,例如通過包含儲存介面、串流媒體介面或專用功能單元以適應各種數位媒體轉碼器。舉例來說,多媒體處理器108可包含向量處理功能單元或SIMD功能單元,以有效適應這些媒體資料類型和/或類DSP特徵。The
感測器110可包含多個感測單元,其轉換外部事件且將所述外部事件發送到電子系統100中的處理單元,例如CPU 102或DSP 106。感測器110可包含加速計、陀螺儀、數位指南針、氣壓計、指紋識別感測器、虹膜(眼部)掃描感測器和/或面部識別感測器中的一或多個。此外,感測器110可包含相機和麥克風。另外或替代地,感測器110可包含GPS單元、磁力計、照度計(lux meter)和/或接近度感測器。The
ISP 112可包含用於影像處理的專用處理器。ISP 112可利用SIMD技術或MIMD技術採用平行計算,以增加速度和效率。ISP 112可被配置成執行影像處理任務,例如增加嵌入式裝置上的系統集成。在一些實施例中,ISP 112可與電子系統100的其它元件設置在同一板上。舉例來說,ISP 112可與CPU 102位於同一板上。然而,在其它實施例中,ISP 112可為離散單元。ISP 112可包含用以控制互補式金屬氧化物半導體(Complementary Metal-Oxide-Semiconductor,CMOS)感測器的電路。舉例來說,ISP 112可包含用於執行影像處理操作的電路,所述操作例如去馬賽克、自動聚焦、自動曝光以及白平衡。此外,ISP 112可具有雜訊降低、濾波以及高動態範圍(high-dynamic-range;HDR)能力。The
導航模組116可包含具有雷達的硬體和/或用以記錄位置的GPS設備。舉例來說,導航模組116可基於GPS、基於地面信標或為距離測量儀器(Distance Measurement Instrument;DMI)。導航模組116可被配置成確定電子系統100的當前位置。另外或替代地,導航模組116可包含用以儲存導航地圖資訊的資料記憶體裝置。導航模組116也可集成於電子系統100的特定元件內。舉例來說,導航模組116可集成於CPU 102內。在一些實施例中,導航模組116可連接到顯示器/LCD 114,且可通過(例如)連接模組118經由網際網路連接到地理位置服務。The
連接模組118可包含用於無線或有線通信的天線、微控制器以及資料埠。舉例來說,連接模組118可包含用於4G LTE、WIFI以及FM通信的天線。替代地或另外,連接模組118可包含USB通信。在一些實施例中,連接模組可包含經由標準週邊介面進行連接的處理器,該標準週邊介面可包含積體電路間(Inter-Integrated Circuit;I2C)介面、串列週邊介面(Serial Peripheral Interface;SPI)、通用非同步收/發器(Universal Asynchronous Receiver/Transmitter;UART)介面、高速晶片間(High-Speed Inter-Chip;HSIC)介面或者處理器實行或以其它方式支援的另一適合標準介面。此外,連接模組118可提供命令協定,以提供與將處理單元(例如CPU 102或GPU 104)連接到外部IoT裝置、雲服務等所需的通信構架相關聯的服務。The
NPU 120可包含用於腦啟發計算(即神經形態計算)的電子平臺。NPU 120可包含人工智慧加速晶片,且與軟體API相關聯以與平臺交互。在一些實施例中,NPU 120可被配置成執行機器學習演算法,例如深度學習。此外,NPU 120可被配置成執行圖像和聲音處理操作,包含語音辨識。在一些實施例中,NPU 120可建構有專門用於加快機器學習演算法的微處理器。舉例來說,NPU 120可被配置成根據例如人工神經網路或隨機森林的預測性模型進行操作。The
圖2為示例性記憶體裝置200的示意圖。在一些實施例中,記憶體裝置200可以是電子系統100的部分。舉例來說,記憶體裝置200可構成NPU 120。然而,在其它實施例中,記憶體裝置200可為獨立單元。記憶體裝置200可包含多個神經元202、多個突觸204以及多個通信通道206。FIG. 2 is a schematic diagram of an
圖2中的示例性記憶體裝置200包含九個神經元202,包含神經元202(a)、神經元202(b)、神經元202(c)…、神經元202(g)。然而,具有更多神經元202或更少神經元202的其它實施例也是可能的。神經元202可設計有類比神經操作的數位或類比電路。在一些實施例中,神經元202可包含CMOS數位電路,其被配置成執行神經元狀態和啟動函數的邏輯操作。可替代地,神經元202可包含包括MOS電晶體或BJT電晶體的類比電路,所述電晶體被配置成針對非線性壓控電導以次閾值狀態操作。The
突觸204包含突觸204(a)、突觸204(b)、…、突觸204(f),且可包含具有可變電阻的電子元件。然而,具有更多突觸204或更少突觸204的其它實施例也是可能的。突觸204可與神經元202耦合,且所述突觸自身之間耦合。在一些實施例中,突觸204可包含關於圖3A至圖3C進一步所描述的可變電阻式記憶體(Resistive random-access memory,ReRAM)記憶體柵格或陣列。在其它實施例中,突觸204可包含快閃記憶體柵格,其中快閃記憶體單元中的電晶體受閘極電壓控制以充當電阻。在所述實施例中,電晶體通道可被配置成充當閘極可控制的電阻器。
通信通道206包含通道206(a)、通道206(b)、…、以及通道206(d),且可包含並行和/或串列資料匯流排。然而,具有更多通信通道206或更少通信通道206的其它實施例也是可能的。在一些實施例中,通信通道206可包含記憶體裝置200的元件之間的專用匯流排。舉例來說,通信通道206(a)可包含神經元202(a)與神經元202(b)之間的專用通信線路。The
在一些實施例中,神經元202中的每一個可耦合到多個突觸204。舉例來說,雖然圖2繪示神經元202中的每一個耦合到四個突觸204,但神經元202中的每一個可耦合到一百個或更多個突觸204。在這些實施例中,突觸204可直接或間接耦合至神經元202。舉例來說,突觸204(a)可使用晶片上互連件直接連接到神經元202(a)。然而,在其它實施例中,突觸204(a)可經由緩衝電路、其它突觸或濾波電路耦合到神經元202(a)。In some embodiments, each of the
由於神經元202可具有比突觸204更多的電子元件,因此神經元202佔據的面積可大於突觸所佔據的面積。舉例來說,在一些實施例中,神經元202可佔據比突觸大至少一百倍的面積。每一突觸204可為單一電子元件,例如ReRAM單元或快閃記憶體單元,而神經元202中的每一個可包含若干電晶體、電流源以及電容器。舉例來說,神經元202中的每一個可佔據8000 F2
或更大的面積,而突觸204中的每一個可佔據30 F2
或更小的面積,其中F2
為表示技術節點的最小可解析特徵的相對面積單位。Since the
如圖2中所繪示,記憶體裝置200可將神經元202與相關聯突觸204放置成臨近彼此,以使記憶體單元(例如突觸204)與處理單元(例如神經元202)之間的任何通信線路的長度減至最小。然而,通信通道206可額外使用較長通信線路連接處理單元。As depicted in FIG. 2, the
圖3A為第一示例性記憶體電路310的示意圖。記憶體電路310包含連接到ReRAM陣列314的行解碼器312、ReRAM暫存器316、資料暫存器318以及列解碼器320。此外,記憶體電路310包含都連接到列解碼器320的放大器324和資料匯流排322。FIG. 3A is a schematic diagram of the first
ReRAM陣列314包含非揮發性隨機存取記憶體單元,其通過改變固態材料上的電阻來工作。舉例來說,ReRAM陣列314可組裝有多個憶阻器。可替代地,ReRAM陣列可包含具有可控制電阻的電阻元件的柵格或交叉開關(crossbar)。舉例來說,ReRAM陣列可包含3D Xpoint陣列。替代地或另外,ReRAM陣列314可設計有呈1T1R結構的專用MOSFET電晶體,其中電晶體提供對ReRAM單元的排它性存取。The
行解碼器312包含用以與多個位線建立電通信的開關和/或多工器,以從ReRAM陣列314中的記憶體單元讀取資料以及將資料寫入到所述記憶體單元。行解碼器312還包含用以在讀取和寫入操作期間驅動電壓或電流的放大器。舉例來說,行解碼器312可包含感測放大器和寫入放大器。The
ReRAM暫存器316包含被配置成儲存關於ReRAM陣列314狀態的資訊的硬體。ReRAM暫存器316中的個別位可隱式或顯式地由在ReRAM陣列314上執行的機器代碼指令讀取和/或寫入。舉例來說,在一些實施例中,ReRAM暫存器可儲存處理器的狀態標誌位元集合。The ReRAM register 316 contains hardware configured to store information about the state of the
資料暫存器318包含儲存緩衝器,其儲存傳輸到ReRAM陣列314和從ReRAM陣列314傳輸的資料。資料暫存器318允許立即存取可重複使用的資訊。舉例來說,資料暫存器318可含有ReRAM陣列314中如由行解碼器312所指定的指定記憶體單元的複本。在一些實施例中,使用資料暫存器318作為記憶體電路310的部分可通過避免解碼器的所需配置而允許神經元202更快地存取頻繁需要的資訊。The data register 318 includes a storage buffer that stores data transferred to and from the
列解碼器320包含用以在ReRAM陣列314中的記憶體單元與其它讀取元件之間建立電連接的電路,例如放大器324或資料匯流排322。列解碼器320可使用類比方法或數位方法或部分類比和部分數位方法進行操作。列解碼器320可包含一或多個多工器,且直接連接到資料暫存器318。The
為了讀取資料且將所述資料發送到(例如)神經元202,記憶體電路310可包含放大器324和資料匯流排322。在示例性記憶體電路310中,放大器324包含被配置成驅動器的運算放大器和耦合到處理單元的資料匯流排322。In order to read the data and send the data to, for example, the
圖3B為第二示例性記憶體電路330的示意圖。記憶體電路330包含與記憶體電路310類似的元件,包含連接到ReRAM陣列314的行解碼器312、ReRAM暫存器316、資料暫存器318以及列解碼器320。然而,記憶體電路330利用位址計數器344、控制電路348以及並聯-串聯轉換器332和並聯-串聯轉換器346實施不同的記憶體控制。此外,在記憶體電路330中,元件可具有不同佈置。如圖3B中所繪示,記憶體電路330中的資料暫存器318連接到行解碼器312而非連接到ReRAM陣列314和列解碼器320。FIG. 3B is a schematic diagram of the second
位址計數器344包含基於控制電路348指令而計算所需行位址和列位址的硬體。在一些實施例中,位址計數器344包含針對分別存在的列位址和/或行位址的可程式設計和/或固定偏移暫存器。舉例來說,如圖3B中所繪示,位址計數器344可連接到列解碼器320和行解碼器312。位址計數器344可包含多工器,其基於控制電路348所提供的低頻率輸入信號而產生高頻率控制信號。The
並聯-串聯轉換器332和並聯-串聯轉換器346可包含根據時鐘信號而並聯或串聯地傳輸來自輸入端的位的觸發器、鎖存器和/或暫存器。舉例來說,如果並行-串列轉換器332或並行-串列轉換器346的觸發器的輸入端處存在高信號(邏輯1),那麼在時鐘邊沿從低轉變為高時,輸入端處的邏輯1被傳輸到並聯端。此外,並聯-串聯轉換器332和並聯-串聯轉換器346可與串聯輸入端(serial input;SI)或串聯輸出端(serial output;SO)耦合,從而轉換接著可傳輸到處理單元的資料。The parallel-
控制電路348為管理通向和來自ReRAM陣列314的資料流程的數位電路。在一些實施例中,控制電路348可組裝有微控制器或處理單元。此外,控制電路348可提供用以基於所測量的記憶體電流來確定記憶體狀態的構件。此外,控制電路348可經由資料接腳與其它元件通信,所述資料接腳例如晶片選擇(chip select;CS)接腳、時鐘信號(SCK)接腳、中斷(HOLD)接腳以及寫入保護(write protect;WP)接腳。The
圖3C為第三示例性記憶體電路360的示意圖。記憶體電路360表示ReRAM陣列314中的ReRAM記憶體單元的可能實施方案。儘管圖3C中未繪示,但類似於記憶體電路310,記憶體電路360還可包含放大器324、列解碼器320以及行解碼器312以及用於讀取ReRAM陣列314的其它電子裝置。記憶體電路360還可包含由解碼器用於佈置記憶體單元之間的連接的選擇電晶體348。FIG. 3C is a schematic diagram of a third
在一些實施例中,記憶體電路360中的ReRAM陣列314中的記憶體單元設計有交叉網。舉例來說,ReRAM陣列314可包含連接到CMOS線路以用於讀取和寫入的奈米線交叉開關。奈米線交叉開關具有可控制的電阻率。然而,如圖3C中所繪示,ReRAM陣列314中的記憶體單元也可組裝有電阻開關(A)、豎直電晶體(B)、串聯-電阻開關(C)或互補電阻開關(D)。使用具有可調適電阻率的不同類型電子元件的替代實施方案也可用於建構ReRAM陣列314。In some embodiments, the memory cells in the
圖4為第一示例性記憶體讀取配置500的示意圖。記憶體讀取配置500用於處理來自多個記憶體單元的讀數且用於確定記憶體單元的整體狀態。對記憶體讀取配置500中的記憶體讀數進行分組或集群促進記憶體狀態的確定,因為減小了記憶體狀態分佈的偏差和最大/最小(max/min)比。也就是說,合計來自多個記憶體單元的電流產生更精細的記憶體狀態分佈,其促進讀取電路對記憶體狀態的確定。記憶體讀取配置500在一系列級中實現多個記憶體單元的集群和處理。在記憶體讀取配置500的每一級中,記憶體單元的電流經處理以得到具有較小變差和可容易辨別的狀態的複合讀數。將關於圖7A至圖7C更詳細地論述利用記憶體讀取配置500所產生的電流分佈。4 is a schematic diagram of a first exemplary
記憶體讀取配置500包含:記憶體單元502(a)、…、記憶體單元502(z),本文中統稱為記憶體單元502;濾波電路505(a)、…、濾波電路505(z),本文中統稱為濾波電路505;以及第一級幾何平均運算元511(a)、…、第一級幾何平均運算元511(y),本文中統稱為幾何平均運算元511。此外,記憶體讀取配置500包含:第二級幾何平均運算元517(a)、…、第二級幾何平均運算元517(x),本文中統稱為幾何平均運算元517;以及第三級幾何平均運算元523。如圖4中所繪示,幾何平均運算元可以具有第一級幾何平均運算元511、第二級幾何平均運算元517以及第三級幾何平均運算元523的級聯級方式組織。雖然圖4中僅繪示三個級,但記憶體讀取配置500可包含更多級。在所述實施例中,最後一級可直接或間接耦合到讀取電路。此外,記憶體讀取配置500包含:第一級緩衝器電路512(a)、…、第一級緩衝器電路512(y),本文中統稱為第一級緩衝器電路512;第二級緩衝器電路518(a)、…、第二級緩衝器電路518(x),本文中統稱為第二級緩衝器電路518;以及第三級緩衝器電路524。所述緩衝器電路可類似地分級組織。此外,記憶體讀取配置500包含資料匯流排530和讀取電路540。The
圖4中用於指代個別元件的文字(例如(x)、(y)或(z))並未指定記憶體讀取配置500中一種元件的數目或元件的總數。替代地,其為指示可變元件數目和可變總元件數目的可變標記。舉例來說,用於指代記憶體單元502(z)的文字(z)並非指示記憶體單元502(z)為第26個記憶體單元。替代地,(z)為可指示任何整數值的可變標記。因此,記憶體單元502(z)為記憶體單元502中的任一個,且記憶體讀取配置500中記憶體單元502的數目為任何整數。類似地,用於指代例如第一級幾何平均運算元511(y)或第二級幾何平均運算元517(x)的文字(y)和(x)也是可變標記,其不指示或限制元件數目或元件總數。The text used to refer to individual elements in FIG. 4 (such as (x), (y), or (z)) does not specify the number of elements in the memory read
然而,在一些實施例中,用作可變標記的文字可具有代數關係。舉例來說,在一些實施例中,可變標記滿足關係式(z)>(y)>(x)。在其它實施例中,可變標記滿足關係式z = 2(y) = 4(x)。在其它實施例中,可變標記滿足關係式(z) > (y)+1 > (x) +1。However, in some embodiments, text used as variable markers may have an algebraic relationship. For example, in some embodiments, the variable label satisfies the relationship (z)>(y)>(x). In other embodiments, the variable label satisfies the relationship z = 2(y) = 4(x). In other embodiments, the variable label satisfies the relationship (z)>(y)+1>(x)+1.
此外,在一些實施例中,不同的運算級可彙集在執行同等功能的單一級中。雖然圖4繪示離散的第一級幾何平均運算元511、第二級幾何平均運算元517以及第三級幾何平均運算元523,但這些級可實施於單一級中。舉例來說,彙集級519可執行第一級幾何平均運算元511和第二級幾何平均運算元517的同等功能。在所述實施例中,彙集級519可包含用以執行彙集運算的電路。舉例來說,在某些實施例中,彙集級519包含配置於回路中的CMOS平方根電路,其中將CMOS平方根電路的輸出路由回到CMOS平方根電路的一個輸入端,以執行乘積的平方根計算至少兩次。可替代地,彙集級519包含用以在單一級中執行第一級幾何平均運算元511和第二級幾何平均運算元517的同等運算的邏輯電路。此外,彙集級519可包含被配置成計算級聯幾何平均值以有效執行第一級幾何平均運算元和第二級幾何平均運算元的功能的處理器。In addition, in some embodiments, different computing stages may be pooled in a single stage performing equivalent functions. Although FIG. 4 illustrates the discrete first-level geometric
記憶體單元502可包含不同類型的記憶體類型。舉例來說,記憶體單元502可包含ReRAM記憶體單元,例如先前關於圖3C所描述的ReRAM記憶體單元。此外,記憶體單元502可以是ReRAM陣列314的部分。然而,在其它實施例中,記憶體單元502可為快閃記憶體、PCM、MRAM或FeRAM記憶體單元。舉例來說,記憶體單元502可包含快閃記憶體單元,其中電晶體受閘極電壓控制以充當電阻。The
在一些實施例中,記憶體單元502與濾波電路505耦合。濾波電路505包含用以處理從記憶體單元502接收的類比信號的硬體。當來自記憶體單元的讀數遭受可混淆讀取的噪音源(例如時鐘信號)時,或當預處理資料將促進資料的後續集群時,可需要濾波電路。記憶體讀取配置500中可包括多種濾波技術。In some embodiments, the
如圖4中所繪示,濾波電路505包含帶通濾波器(統稱為帶通濾波器504)和最小/最大濾波器(min/max filter,統稱為min/max濾波器506)。這些電路可被配置成從非所要頻率濾除雜訊或從離群記憶體單元502截止。舉例來說,帶通濾波器504可被配置成濾除並非讀取記憶體單元的特點的高頻率。此外,當預期記憶體單元502的輸出介於一範圍(例如1 uA至10 uA)內時,如果記憶體單元502中的一個輸出超出所述範圍的電流(例如100 uA),那麼其指示所述記憶體單元發生故障。為了避免離群讀數損害記憶體狀態確定的準確度,min/max濾波器506可截斷或去除任何非預期值。在此實例中,非預期電流100 uA可被截斷降至最大預期電流10 uA。可替代地,min/max濾波器506可完全去除所述非預期電流。As shown in FIG. 4, the
第一級幾何平均運算元511包含用以處理來自記憶體單元502的信號的硬體。如圖4中所繪示,第一級幾何平均運算元511經由濾波電路505耦合到記憶體單元502。然而,在其它實施例中,第一級幾何平均運算元511可直接連接到記憶體單元502。此外,在某些實施例中,第一級幾何平均運算元511可直接或間接地耦合到讀取電路540,使得記憶體讀取配置500僅包含單一級幾何讀取運算元。The first-stage
在一些實施例中,幾何平均運算元511以子集方式組織,每一子集耦合到記憶體單元502的特定組。舉例來說,參看圖4,幾何平均運算元511的第一子集包含兩個頂部的幾何平均運算元511(a)和幾何平均運算元511(a+1)。因此,幾何平均運算元511的第一子集將耦合到包含記憶體單元502(a)、記憶體單元502(a+1)、記憶體單元502(a+2)以及記憶體單元502(a+3)的記憶體單元組,且被配置成處理來自所述記憶體單元組的讀數。類似地,幾何平均運算元511的第二子集包含底部的兩個幾何平均運算元511(y)和幾何平均運算元511(y-1)。由此,幾何平均運算元511的第二子集耦合到包含記憶體單元502(z)、記憶體單元502(z-1)、記憶體單元502(z-2)以及記憶體單元502(z-3)的記憶體單元組,且被配置成處理來自所述記憶體單元組的讀數。視將處理的記憶體單元502的數目而定,可向記憶體讀取配置500中添加幾何平均運算元511的額外子集。In some embodiments,
通過以子集方式組織幾何平均運算元511,記憶體讀取配置500能夠識別記憶體中具有不佳特性的區域,且通過停用幾何平均運算元511的子集來斷開所述區域。舉例來說,在一些儲存晶片中,表現不佳的記憶體單元502集中在晶片的一特定區域中。幾何平均運算元511的子集的所描述組織將允許隔離缺陷區域且改進記憶體讀取準確度。By organizing the geometric
第一級幾何平均運算元511可接收來自多個記憶體單元502的信號,且處理所述信號以輸出單一信號。在一些實施例中,第一級幾何平均運算元511可使記憶體單元502的電流相乘且隨後進行開方。舉例來說,如果每個第一級幾何平均運算元511耦合到兩個記憶體單元502,那麼每個第一級幾何平均運算元511產生具有以下關係的輸出電流:。可替代地,每個第一級幾何平均運算元511可接收來自多個記憶體單元502的電流,且在單次計算操作中將所述電流合併在一起。舉例來說,每個第一級幾何平均運算元511可接收來自四個記憶體單元502的電流,且執行運算。即,一般來說,每個第一級幾何平均運算元511可被配置成確定來自記憶體單元502的多個電流的幾何平均值,其中所述幾何平均值通過下式得出:幾何平均值==。由此,如果每個第一級幾何平均運算元511耦合到兩個記憶體單元502 (n = 2),那麼幾何平均值等於對分別與所述兩個記憶體單元相關聯的兩個讀取電流的乘積開平方根。The first-stage
在其它實施例中,第一級幾何平均運算元511可被取代或重新配置以應用其它取平均運算。舉例來說,第一級幾何平均運算元511可由第一級取平均運算元取代或重新配置為第一級取平均運算元,所述第一級取平均運算元被配置成計算與記憶體單元502相關聯的讀取電流的算術平均值。可替代地,第一級幾何平均運算元511可由第一級乘法電路或第一級加法器取代,或重新配置為第一級乘法電路或第一級加法器,所述第一級乘法電路或第一級加法器使用不同運算來合併記憶體單元502的電流。In other embodiments, the first-level
在一些實施例中,如圖4中所繪示,第一級幾何平均運算元511可建構有獨立的第一級乘法電路(統稱為第一級乘法電路508),其連接到第一級方根電路(統稱為第一級方根電路510)。然而,在其它實施例中,例如CMOS平方根電路的單一電路可單獨地處理來自記憶體單元502的電流。In some embodiments, as shown in FIG. 4, the first-stage
對於具有多個級的記憶體讀取配置500,來自記憶體單元502的原始信號在通過不同處理級時可能惡化。舉例來說,導體損耗或來自電子元件的雜訊可損壞正在處理的信號。此外,在多個級的情況下,記憶體讀取配置500中某些元件出現的明顯阻抗可能導致出現故障。舉例來說,第一級幾何平均運算元511在連接到產生高輸出阻抗的多個級時,其操作可能受損。因此,在一些實施例中,記憶體讀取配置500可包含第一級緩衝器電路512,其用於恢復信號和/或電路解耦部分的品質以避免此類問題。For a memory read
如先前所論述,記憶體讀取配置500可包含多個資料處理級。圖4繪示三個資料處理級,包含第二級幾何平均運算元517、第二級緩衝器電路518、第三級幾何平均運算元523以及第三級緩衝器電路524。在一些實施例中,較高階級可重複用於較低級的硬體。舉例來說,第二級幾何平均運算元517和第三級幾何平均運算元523可重複第一級幾何平均運算元511。然而,在其它實施例中,各級的元件之間可存在差異。舉例來說,第一級幾何平均運算元511可被配置成處理兩個電流,而第二級幾何平均運算元517可被配置成同時處理四個或更多個電流。另外或替代地,第一級幾何平均運算元511可為類比電路,而第三級幾何平均運算元523可為數位電路。As previously discussed, the memory read
第二級幾何平均運算元517包含第二級乘法電路(統稱為第二級乘法電路514)和第二級方根電路(統稱為第二級方根電路516)。類似地,第三級幾何平均運算元523包含第三級乘法電路520和第三級方根電路522。The second-stage geometric
記憶體讀取配置500可包含超過圖4中所繪示的三個級。舉例來說,記憶體讀取配置500可具有“K”個級,其中K為任何正整數。在所述實施例中,記憶體單元502的數目與幾何平均運算元的數目之間的關係可由所選擇的級數目定義。舉例來說,在一些實施例中,在K個級的情況下,記憶體單元的總數為2K
,而幾何平均運算元的總數為2K
-1。因此,如果記憶體讀取配置500具有10個級(K=10),那麼將分組處理以確定整體記憶體狀態的記憶體單元的總數為210
,且幾何平均運算元的總數將為210
-1。此關係由具有重複的方根級運算元且各級運算元處理兩個電流或信號而產生。然而,在幾何平均運算元不相同或可處置多於兩個電流時,其它關係是可能的。The
在處理級中處理來自多個記憶體單元502的信號之後,將所得電流發送到讀取電路540。舉例來說,最末幾何平均運算元級可輸出經處理電流,所述經處理電流經由資料連接530發送到讀取電路540。可替代地,記憶體單元502與讀取電路540之間的耦合可通過例如濾波器或放大器等額外電子元件而為間接的。在一些實施例中,讀取電路540可包含根據讀取電流確定記憶體狀態的硬體和軟體。舉例來說,讀取電路540可包含根據讀取電流確定低電阻狀態或高電阻狀態中的一個的硬體。在其它實施例中,讀取電路540可包含基於從記憶體單元502接收的電流進行操作的處理單元。舉例來說,讀取電路540可耦合到神經元202中的一或多個。After processing the signals from the plurality of
讀取電路540提供用於基於記憶體電流確定多個記憶體單元的記憶體狀態的構件。在一些實施例中,讀取電路540可包含使讀取電流與記憶體狀態相關的電腦處理器。舉例來說,讀取電路540可使讀取電流與低電阻記憶體狀態、中間電阻記憶體狀態或高電阻記憶體狀態相關。替代地或另外,讀取電路540可與神經元202中的一或多個耦合。然而,在其它實施例中,讀取電路540可包含CPU或GPU。此外,基於記憶體電流確定記憶體狀態的構件可包含用以使電流與記憶體狀態相關聯的微處理器、微控制器或其它等效處理單元。The
圖5為第二示例性記憶體讀取配置600的示意圖。類似於記憶體讀取配置500,記憶體讀取配置600被配置成對多個記憶體單元的輸出進行集群,以減小各記憶體狀態分佈的偏差。在記憶體讀取配置600中,合併多個記憶體讀數產生每狀態具有較低max/min比的記憶體狀態分佈,從而促進記憶體狀態的確定。FIG. 5 is a schematic diagram of a second exemplary
記憶體讀取配置600包含記憶體單元502和濾波電路505。然而,代替具有記憶體讀取配置500的若干級幾何平均運算元和緩衝器,記憶體讀取配置600包含類比/數位轉換器(analog-to-digital converter;ADC)610、處理器612以及數位/類比轉換器(digital-to-analog converter;DAC)614。記憶體讀取配置600的配置能夠對來自記憶體單元502的讀取電流進行數位處理。The
如圖5中所繪示,記憶體單元502耦合到ADC 610、處理器612以及DAC 614。ADC 610將來自記憶體單元502的類比信號變換為數位資料。在一些實施例中,ADC 610可被配置成具有以GHz輸入頻寬操作的高速轉換器。在一些實施例中,到ADC 610的輸入接腳的數目可等於進行集群的記憶體單元的數目。然而,在其它實施例中,ADC 610可包含並串轉換器且具有更少數目個輸入接腳。As shown in FIG. 5, the
來自ADC 610的經數位化資料被發送到處理器612,所述處理器可計算輸出值。處理器612可包含任何計算單元,例如CPU或GPU。處理器612接收所有經數位化資料以計算輸出。舉例來說,處理器612可對經數位化的電流值進行操作以計算電流的幾何平均值。由此,處理器612可使電流值相乘,且隨後對乘積進行開方。可替代地,處理器612可計算經數位化電流值的算術平均值、總和及/或乘積。處理器612也可基於經數位化電流計算其它值。舉例來說,處理器612可計算電流的眾數和/或中位數。The digitized data from
處理器612將計算出的值發送到DAC 614。DAC 614可包含任何數位/類比轉換器。然而,可基於包含解析度、最大採樣頻率等的品質因數而選擇DAC 614。DAC 614將計算出的數位信號轉換為類比信號,所述類比信號隨後被發送到讀取電路540。The
雖然圖5將ADC 610、處理器612以及DAC 614繪示為經由匯流排620和匯流排622連接的獨立單元,但在一些實施例中,這三個元件的所有功能可在單一單元內執行。舉例來說,ADC操作、處理操作以及DAC操作可由例如CPU或GPU的單一元件執行。Although FIG. 5 illustrates
圖6為說明示例性記憶體狀態確定方法1200的流程圖。在一些實施例中,方法1200可由記憶體讀取配置500中呈現的一系列處理級執行。然而,在其它實施例中,方法1200可由單一元件實施。舉例來說,方法1200可由處理器612實施。FIG. 6 is a flowchart illustrating an exemplary memory
在步驟1202中,接收對於確定記憶體狀態的請求。舉例來說,神經元202中的一個可能需要記憶體狀態以執行計算,且發送對於記憶體狀態的請求。所述請求可指定應詢問的一組記憶體單元。In
在步驟1204中,從記憶體單元獲得多個記憶體讀取電流。在一些實施例中,從記憶體單元502獲得多個記憶體讀取電流。可對所述記憶體讀取電流進行濾波,以消除來自非所要頻率的雜訊或截斷離群值。為了用代數實例進一步闡釋方法1200,將在步驟1204中獲得的示例性多個記憶體讀取電流稱為電流A、電流B、電流C以及電流D。In
在步驟1206中,將多個記憶體讀取電流劃分成不同組。在一些實施例中,記憶體讀取電流可被劃分成每組兩個記憶體讀取電流的組。可替代地,可在步驟1206中定義多於兩個記憶體讀取電流的所劃分組。舉例來說,繼續電流A、電流B、電流C以及電流D的實例,所劃分組可為組1 {A、B}和組2 {C、D}。In
在步驟1208中,將所劃分組中的每一個中的元素相乘,以計算與所劃分組中的每一個相關聯的乘積。舉例來說,如果每組具有兩個記憶體讀取電流,那麼計算兩個記憶體讀取電流的乘積。因此,舉例來說,在步驟1208中,計算{A*B}和{C*D}的乘積。In
在步驟1210中,計算乘積的方根。舉例來說,對在步驟1208中所計算的乘積中的每一個進行計算,以產生幾何平均值。因此,舉例來說,在步驟1210中,計算以下方根:{A*B}1/2
和{C*D}1/2
。In
在步驟1212中,確定所有處理級是否都已完成。舉例來說,在存在K個級的情況下,如果K個級尚未完成(步驟1212:否),那麼方法1200返回到步驟1208以計算額外乘積。然而,如果K個級已經完成(步驟1212:是),那麼方法1200繼續到步驟1214。電流A、電流B、電流C以及電流D的代數實例具有2級(K=2)。因此,在所述實例中,所述方法將返回到步驟1208以計算新乘積[{A*B}1/2
*{C*D}1/2
],且隨後在步驟1210中計算第二級乘積的平方根[{A*B}1/2
*{C*D}1/2
]1/2
。如果存在更多級,那麼繼續步驟1208與步驟1212之間的迴圈,直到單一電流錶示所有經集群記憶體單元為止。In
在步驟1214中,基於在步驟1208至步驟1212的步驟迴圈中確定的單一代表性電流來確定記憶體狀態。舉例來說,在一些實施例中,當記憶體電流低於第一參考電流時,可確定記憶體狀態為高電阻;當記憶體電流在第一參考電流與第二參考電流之間時,可確定記憶體狀態為第一中間狀態,第二參考電流大於第一參考電流;當記憶體電流在第二參考電流與第三參考電流之間時,可確定狀態為第二中間狀態,第三參考電流大於第二參考電流;以及當記憶體電流超過第三參考電流時,可確定記憶體狀態為高電阻狀態。在所述實施例中,記憶體讀取器(例如讀取電路540)可將第一參考電流選擇為高於與低電阻狀態相關聯的記憶體電流分佈中的最大電流;且將第三參考電流選擇為低於與高電阻狀態相關聯的記憶體電流分佈中的最小電流。因此,記憶體讀取器將能夠通過比較來自經集群記憶體單元502的記憶體讀數與參考電流而使記憶體電流與記憶體狀態相關聯。In
為了確定記憶體狀態,處理電路可使記憶體輸出與記憶體狀態相關。舉例來說,在步驟1214中,類比/數位轉換器(ADC)可基於電流輸入確定狀態中的一個。ADC可確定低於第一參考數目的任何電流對應於低記憶體狀態,而超過第三參考數目的電流對應於高記憶體狀態。因此,用於確定多個記憶體單元的記憶體狀態的構件可包含使類比信號與記憶體狀態相關的ADC。可替代地,可利用例如微處理器的處理單元識別記憶體狀態,所述處理單元使所接收的類比輸入與記憶體狀態相關。In order to determine the state of the memory, the processing circuit may correlate the memory output with the state of the memory. For example, in
在步驟1216中,將所確定的記憶體狀態發送到直接或間接耦合的處理單元。舉例來說,可將所確定的記憶體狀態發送到神經元202中的一個以用於處理任務或計算。雖然已針對在兩個級中處理的一組四個記憶體電流描述方法1200,但方法1200還可用於處理每狀態多於兩個記憶體讀取電流。接下來描述每級具有多個記憶體讀取電流的應用方法1200的數值實例。In
根據所述數值實例,在步驟1204中,讀取操作以八個記憶體單元502輸出以下值開始:8 uA、10 uA、9 uA、12 uA、7 uA、8 uA、9 uA以及10 uA。可通過處理電路或圖4中所繪示的網路獲得這些初始值。隨後,將這些值劃分成每組四個值的兩組(步驟1206),且隨後處理這些值以獲得幾何平均值。舉例來說,根據方法1200的步驟1208和步驟1210執行以下運算:(8*10*9*12)1/4
= 9.6 uA和(7*8*9*10)1/4
= 8.4 uA。所述數值實例展示可使用所公開的處理技術減小max/min比的方式。初始值具有介於7 uA至12 uA範圍內的較寬分佈,差值為5 uA,而經處理資料具有僅8.4 uA至9.6 uA的max/min比,差值為1.2 uA。因此,max/min比減小,且將更容易地識別與分佈相關聯的記憶體狀態。According to the numerical example, in
圖7A至圖7C繪示展示多個記憶體單元的不同記憶體狀態的累積分佈函數(CDF)與讀取電流之間的示例性關係的曲線圖。7A to 7C are graphs showing exemplary relationships between cumulative distribution functions (CDF) of different memory states of multiple memory cells and read currents.
參看圖7A,曲線圖1310展示低電阻狀態(low resistance state;LRS)、第一中間狀態(first intermediate state;IR1)、第二中間狀態(second intermediate state;IR2)以及高電阻狀態(high resistance state;HRS)的讀取電流與累積分佈函數之間的關係。曲線圖1310繪示四種狀態之間的顯著重疊。舉例來說,讀取電流10 uA可表示所有狀態。分佈之間的此重疊使讀取操作變得複雜,因為其產生關於記憶體單元的對應狀態的不確定性。Referring to FIG. 7A, a
參看圖7B,曲線圖1320呈現在一些處理和放大之後或使用不同讀取操作的讀取電流與累積分佈函數之間的第二關係。雖然分佈之間的重疊減少了,但確定記憶體狀態仍具有挑戰性,因為分佈重疊,且相鄰記憶體狀態的上部邊界與下部邊界之間沒有明顯的界限。如曲線圖1320中所示,不同記憶體狀態之間存在重疊。因此,在給定讀取電流(例如5 uA)下,無法區分不同狀態。提供曲線圖1320的結果的記憶體讀取方法可以可靠地用於僅低電阻和高電阻兩個狀態。然而,使用僅兩個狀態以指數方式減小儲存能力。Referring to FIG. 7B,
參看圖7C,曲線圖1330呈現讀取電流與累積分佈函數之間的第三關係。在用方法1200和/或使用記憶體讀取配置500或記憶體讀取配置600處理記憶體狀態之後,可獲得曲線圖1330中所示的關係。為了獲得曲線圖1330,在執行記憶體讀取之前對多個記憶體單元進行集群。舉例來說,已應用例如確定幾何平均值的資料處理技術來獲得曲線圖1330中所表示的關係。Referring to FIG. 7C,
曲線圖1330顯示各記憶體狀態具有明確定義的上部邊界和下部邊界。舉例來說,顯而易見的是,低於3 uA的任何電流應與HSR相關聯,而超過9 uA的任何電流應與LSR相關聯。隨後,對記憶體單元進行集群的處理技術產生具有可容易識別的記憶體狀態的清晰分佈。如曲線圖1330中所呈現,使用所公開的集群方法,不同狀態之間的累積分佈函數未重疊,且最小/最大(min/max)比顯著減小。因此,不同讀取電流可容易地與特定記憶體狀態相關。
用於產生曲線圖1330中的第三關係的集群方法改進記憶體讀數分佈,且促進將記憶體單元用於例如神經形態計算的應用。使用所公開的處理方法,狀態之間沒有尾端重疊,從而形成記憶體單元狀態之間的明顯區別。The clustering method used to generate the third relationship in
在處理記憶體電流之後,可通過用於確定記憶體狀態的構件識別曲線圖1330中的記憶體狀態。舉例來說,微控制器可提供用於使記憶體電流與記憶體狀態相關聯的構件。微控制器可包含關係表或其它關聯方法,以基於記憶體電流產生記憶體狀態的輸出。After processing the memory current, the memory state in the
圖8為展示不同記憶體讀取配置的電流分佈與電流比之間的示例性關係的曲線圖1400。max/min比的分佈為分佈的標準差的度量。較高max/min比與較高標準差相關聯,因為最大數目與最小數目相隔遠。相反,較低max/min比與緊密分佈相關聯,其中最大值與最小值彼此接近。對於記憶體讀取操作,期望具有較低max/min比。在較低max/min比的情況下,不同記憶體狀態的分佈較窄,且不包含不同記憶體狀態之間的重疊。舉例來說,具有較低分佈max/min比的記憶體單元將與曲線圖1330中所呈現的記憶體狀態相關聯。FIG. 8 is a
曲線圖1400展示不同集群操作的max/min比。曲線圖1400展示對經集群記憶體單元進行相加、相乘、計算算術平均值或計算幾何平均值的記憶體讀取配置所產生的結果。曲線圖1400顯示,使記憶體電流相加或相乘且使用最小電流對其進行歸一化,產生較大max/min比。舉例來說,在曲線圖1400中,sum/Imin 1402和prod/Imin^2 1404產生較大max/min比。這些較大max/min比不合期望,因為其導致記憶體狀態重疊。曲線圖1400還用avg/Imin 1408展示計算多個記憶體單元的算術平均值的結果。使用取平均操作,max/min減小,從而指示記憶體狀態分佈變窄。舉例來說,相比於sum/Imin 1402和prod/Imin^2 1404,avg/Imin 1408產生更小的max/min比。然而,幾何平均值運算合乎需要地達成甚至更小的max/min比。如曲線圖1400中用sqrt(prod)/Imin 1406所展示,對讀取電流的乘積取平方根的運算產生最小的max/min比。在乘積的平方根運算的情況下,min/max比減小,從而允許更簡單地分辨記憶體狀態。舉例來說,在所有集群操作中,sqrt(prod)/Imin 1406具有最小的min/max比。
除曲線圖1400中所呈現的操作以外的操作也是可能的。曲線圖1400僅展示對由意欲減小讀取電流數值擴散的不同操作所產生的分佈標準差的影響。也可對經集群的讀取電流執行其它操作,例如確定平均值或眾數,以減小min/max比且促進記憶體讀取操作。可替代地,可在記憶體讀取配置中組合多個操作。舉例來說,可在記憶體讀取配置的一些級中執行取平均運算,同時可在配置的其它級中執行幾何平均值運算。Operations other than those presented in
對所屬領域的技術人員可以理解的是,可以對所公開的系統和相關方法作出各種修改和變化。對於所屬領域的技術人員而言通過考慮本說明書以及實踐所公開的系統和相關方法,其它實施例將是可以理解的。希望本說明書和實例僅被視為示例性的,其中真實範圍由以下申請專利範圍和其等效者來指示。It can be understood by those skilled in the art that various modifications and changes can be made to the disclosed system and related methods. For those skilled in the art, other embodiments will be understood by considering this specification and practicing the disclosed system and related methods. It is hoped that this specification and examples are to be regarded as exemplary only, in which the true scope is indicated by the following patent applications and their equivalents.
此外,雖然本文中已描述說明性實施例,但其範圍包含如所屬領域的技術人員基於本公開將瞭解的具有等效要素、修改、省略、組合(例如各種實施例的方面的組合)、調適和/或改變的任何及所有實施例。舉例來說,可修改示例性系統中展示的元件的數目和配置方式。此外,關於圖式中所示出的示例性方法,可修改步驟的次序和順序,且可添加或刪除步驟。Furthermore, although illustrative embodiments have been described herein, the scope includes equivalent elements, modifications, omissions, combinations (such as combinations of aspects of various embodiments), adaptations as will be appreciated by those skilled in the art based on the present disclosure And/or changed any and all embodiments. For example, the number and arrangement of elements shown in the exemplary system can be modified. In addition, with regard to the exemplary method shown in the drawings, the order and sequence of steps may be modified, and steps may be added or deleted.
因此,已僅出於說明的目的呈現以上描述。所述描述並非窮盡性的,且不限於所公開的精確形式或實施例。對於所屬領域的技術人員而言通過考慮本說明書以及實踐所公開的實施例,修改和調適將是可以理解的。Therefore, the above description has been presented only for illustrative purposes. The description is not exhaustive and is not limited to the precise forms or embodiments disclosed. For those skilled in the art, modifications and adaptations will be understandable by considering this specification and practicing the disclosed embodiments.
申請專利範圍應基於申請專利範圍中使用的言辭廣義地解釋,且不限於本發明書中所描述的實例,所述實例應理解為非排它性的。此外,可以任何方式修改所公開方法的步驟,包含通過對步驟進行重新排序和/或插入或刪除步驟。The scope of patent application should be interpreted broadly based on the words used in the scope of patent application, and is not limited to the examples described in the present invention, which should be understood as non-exclusive. In addition, the steps of the disclosed method can be modified in any way, including by reordering the steps and/or inserting or deleting steps.
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。Although the present invention has been disclosed as above with examples, it is not intended to limit the present invention. Any person with ordinary knowledge in the technical field can make some changes and modifications without departing from the spirit and scope of the present invention. The scope of protection of the present invention shall be subject to the scope defined in the appended patent application.
100:電子系統102:中央處理單元104:圖形處理單元106:數位訊號處理器108:多媒體處理器110:感測器112:圖像信號處理器114:顯示器/LCD116:導航模組118:連接模組120:神經處理單元200:記憶體裝置202、202(a)、202(b)、202(c)、202(d)、202(e)、202(f)、202(g):神經元204、204(a)、204(b)、204(c)、204(d)、204(e)、204(f):突觸206、206(a)、206(b)、206(c)、206(d):通信通道310、330、360:記憶體電路312:行解碼器314:ReRAM陣列316:ReRAM暫存器318:資料暫存器320:列解碼器322、530、620、622:資料匯流排/資料連接324:放大器332、346:並聯-串聯轉換器344:地址計數器348:控制電路/選擇電晶體500、600:記憶體讀取配置502、502(a)、…、502(z):記憶體單元504:帶通濾波器505、505(a)、…、505(z):濾波電路506:min/max濾波器508:第一級乘法電路510:第一級方根電路511、511(a)、…、511(y):第一級幾何平均運算元512、512(a)、…、512(y):第一級緩衝器電路514:第二級乘法電路516:第二級方根電路517、517(a)、…、517(x):第二級幾何平均運算元518、518(a)、…、518(x):第二級緩衝器電路519:彙集級520:第三級幾何平均運算元522:第三級方根電路523:第三級幾何平均運算元524:第三級緩衝器電路540:讀取電路610:類比/數位轉換器612:處理器614:數位/類比轉換器1200:流程圖1202、1204、1206、1208、1210、1212、1214、1216:步驟1310、1320、1330、1400:曲線圖100: Electronic system 102: Central processing unit 104: Graphics processing unit 106: Digital signal processor 108: Multimedia processor 110: Sensor 112: Image signal processor 114: Display/LCD 116: Navigation module 118: Connection module Group 120: neural processing unit 200: memory devices 202, 202(a), 202(b), 202(c), 202(d), 202(e), 202(f), 202(g): neurons 204, 204(a), 204(b), 204(c), 204(d), 204(e), 204(f): synapse 206, 206(a), 206(b), 206(c) 206 (d): communication channels 310, 330, 360: memory circuit 312: row decoder 314: ReRAM array 316: ReRAM register 318: data register 320: column decoder 322, 530, 620, 622 : Data bus/data connection 324: amplifier 332, 346: parallel-serial converter 344: address counter 348: control circuit/select transistor 500, 600: memory read configuration 502, 502(a), ..., 502 (z): memory unit 504: band-pass filters 505, 505(a), ..., 505(z): filter circuit 506: min/max filter 508: first-stage multiplication circuit 510: first-stage square root Circuits 511, 511(a), ..., 511(y): first-stage geometric averaging operands 512, 512(a), ..., 512(y): first-stage buffer circuit 514: second-stage multiplication circuit 516 : Second-stage square root circuit 517, 517(a), ..., 517(x): second-stage geometric average operator 518, 518(a), ..., 518(x): second-stage buffer circuit 519: Aggregation stage 520: third stage geometric average operator 522: third stage square root circuit 523: third stage geometric average operator 524: third stage buffer circuit 540: read circuit 610: analog/digital converter 612: Processor 614: digital-to-analog converter 1200: flowcharts 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1216: steps 1310, 1320, 1330, 1400: graphs
圖1為根據一個實施例的示例性電子系統的示意圖。 圖2為示例性記憶體裝置的示意圖。 圖3A為第一示例性記憶體電路的示意圖。 圖3B為第二示例性記憶體電路的示意圖。 圖3C為第三示例性記憶體電路的示意圖。 圖4為第一示例性記憶體讀取配置的示意圖。 圖5為第二示例性記憶體讀取配置的示意圖。 圖6為根據所公開實施例的說明示例性記憶體狀態確定方法的流程圖。 圖7A為不同記憶體狀態的累積分佈函數與讀取電流之間的第一示例性關係的曲線圖。 圖7B為不同記憶體狀態的累積分佈函數與讀取電流之間的第二示例性關係的曲線圖。 圖7C為不同記憶體狀態的累積分佈函數與讀取電流之間的第三示例性關係的曲線圖。 圖8為不同記憶體讀取配置的電流分佈與電流比之間的示例性關係的曲線圖。FIG. 1 is a schematic diagram of an exemplary electronic system according to one embodiment. 2 is a schematic diagram of an exemplary memory device. FIG. 3A is a schematic diagram of a first exemplary memory circuit. 3B is a schematic diagram of a second exemplary memory circuit. 3C is a schematic diagram of a third exemplary memory circuit. 4 is a schematic diagram of a first exemplary memory reading configuration. 5 is a schematic diagram of a second exemplary memory reading configuration. 6 is a flowchart illustrating an exemplary memory state determination method according to the disclosed embodiment. 7A is a graph of a first exemplary relationship between the cumulative distribution function of different memory states and read current. 7B is a graph of a second exemplary relationship between the cumulative distribution function of different memory states and the reading current. 7C is a graph of a third exemplary relationship between the cumulative distribution function of different memory states and the reading current. 8 is a graph of an exemplary relationship between current distribution and current ratio for different memory reading configurations.
500:記憶體讀取配置 500: memory read configuration
502(a)、502(z):記憶體單元 502(a), 502(z): memory unit
504(a)、504(z):帶通濾波器 504(a), 504(z): band-pass filter
505(a)、505(z):濾波電路 505(a), 505(z): filter circuit
506(a)、506(z):min/max濾波器 506(a), 506(z): min/max filter
508(a)、508(y)、514(a)、514(x)、520:乘法電路 508(a), 508(y), 514(a), 514(x), 520: multiplication circuit
510(a)、510(y)、516(a)、516(x)、522:方根電路 510(a), 510(y), 516(a), 516(x), 522: square root circuit
511(a)、511(y)、517(a)、517(x):幾何平均運算元 511(a), 511(y), 517(a), 517(x): geometric average operator
512(a)、512(y)、518(a)、518(x)、524:緩衝器電路 512(a), 512(y), 518(a), 518(x), 524: buffer circuit
519:彙集級 519: Collection level
523:第三級幾何平均運算元 523: The third level geometric average operand
530:資料匯流排 530: Data bus
540:讀取電路 540: Reading circuit
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107140336A TWI674579B (en) | 2018-11-14 | 2018-11-14 | Circuit and method for memory operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107140336A TWI674579B (en) | 2018-11-14 | 2018-11-14 | Circuit and method for memory operation |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI674579B TWI674579B (en) | 2019-10-11 |
TW202018716A true TW202018716A (en) | 2020-05-16 |
Family
ID=69023737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107140336A TWI674579B (en) | 2018-11-14 | 2018-11-14 | Circuit and method for memory operation |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI674579B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7209068B1 (en) * | 2021-10-19 | 2023-01-19 | ウィンボンド エレクトロニクス コーポレーション | semiconductor storage device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5479572A (en) * | 1992-06-17 | 1995-12-26 | Siemens Corporate Research, Inc. | Artificial neural network (ANN) classifier apparatus for selecting related computer routines and methods |
-
2018
- 2018-11-14 TW TW107140336A patent/TWI674579B/en active
Also Published As
Publication number | Publication date |
---|---|
TWI674579B (en) | 2019-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157592B2 (en) | Hardware implementation of convolutional layer of deep neural network | |
US20230041966A1 (en) | Activation Functions for Deep Neural Networks | |
CN112214726B (en) | Operation accelerator | |
US10983729B2 (en) | Method and apparatus for performing multi-object transformations on a storage device | |
WO2019075604A1 (en) | Data fixed-point method and device | |
CN110598714B (en) | Cartilage image segmentation method and device, readable storage medium and terminal equipment | |
CN110033079B (en) | Hardware-implemented end-to-end data format selection for deep neural networks | |
US10430210B2 (en) | Systems and devices for accessing a state machine | |
US11947979B2 (en) | Systems and devices for accessing a state machine | |
WO2021189845A1 (en) | Detection method and apparatus for time series anomaly point, and device and readable storage medium | |
WO2019215907A1 (en) | Arithmetic processing device | |
WO2020248499A1 (en) | Convolutional neural network-based video memory processing method, device, and storage medium | |
CN114925651A (en) | Circuit routing determination method and related equipment | |
CN111984189A (en) | Neural network computing device, data reading method, data storage method and related equipment | |
TWI674579B (en) | Circuit and method for memory operation | |
US11836606B2 (en) | Neural processing unit and electronic apparatus including the same | |
CN111243640B (en) | Circuit and method for memory operation | |
CN111178513A (en) | Convolution implementation method and device of neural network and terminal equipment | |
US11830162B2 (en) | Image processing apparatus configured to perform edge preserving smoothing and image processing method thereof | |
US20210312269A1 (en) | Neural network device for neural network operation, method of operating neural network device, and application processor including neural network device | |
CN114117063A (en) | Entity alignment method, device, electronic equipment and computer readable storage medium | |
CN116819909B (en) | Data compression method, device, exposure equipment and storage medium | |
US20240160908A1 (en) | Methods and systems for online selection of number formats for network parameters of a neural network | |
WO2022221982A1 (en) | Image reconstruction method and apparatus, terminal device, and storage medium | |
KR20170058294A (en) | Storage processor array for scientific computations |