TW202018716A - Circuit and method for memory operation - Google Patents

Circuit and method for memory operation Download PDF

Info

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
Application number
TW107140336A
Other languages
Chinese (zh)
Other versions
TWI674579B (en
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 華邦電子股份有限公司
Priority to TW107140336A priority Critical patent/TWI674579B/en
Application granted granted Critical
Publication of TWI674579B publication Critical patent/TWI674579B/en
Publication of TW202018716A publication Critical patent/TW202018716A/en

Links

Images

Landscapes

  • Semiconductor Memories (AREA)
  • Memory System (AREA)

Abstract

A memory device including a plurality of memory units; at least one geometric mean operator coupled to at least two of the plurality of memory units; and a memory state reader coupled to the at least one geometric mean operator to read a memory state of the plurality of memory units.

Description

用於記憶體操作的電路和方法Circuit and method for memory operation

本公開涉及一種用以讀取記憶體裝置的記憶體單元的電路配置和方法,且更具體地說,涉及一種用以讀取記憶體裝置的多個記憶體單元的狀態的電路配置和方法。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 electronic system 100 according to one embodiment. The electronic system 100 may include one of a central processing unit (CPU) 102, a graphic processing unit (GPU) 104, a digital signal processor (DSP) 106, and a multimedia processor 108. Multiple. In addition, the electronic system 100 may include one or more of a sensor 110, an image signal processor (ISP) 112, a display/LCD 114, a navigation module 116, and a connection module 118. As such, the electronic system 100 may include fewer components than all components illustrated in FIG. 1 and/or additional components not illustrated in FIG. 1. In addition, the electronic system 100 may include a neural processing unit (NPU) 120.

在一些實施例中,電子系統100的所述元件中的每一個可與電子系統100的所述元件彼此連接,且可容納於單一裝置中。舉例來說,CPU 102可獨立地連接到電子系統100的所有其它元件。然而,在其它實施例中,電子系統100可具有特定連接且將元件分佈於多個裝置中。舉例來說,在一些實施例中,顯示器/LCD 114可僅連接到多媒體處理器108,或導航116可位於另一裝置中且僅與連接模組118連接。In some embodiments, each of the elements of the electronic system 100 and the elements of the electronic system 100 may be connected to each other and may be accommodated in a single device. For example, the CPU 102 can be independently connected to all other elements of the electronic system 100. However, in other embodiments, the electronic system 100 may have specific connections and distribute the elements among multiple devices. For example, in some embodiments, the display/LCD 114 may only be connected to the multimedia processor 108, or the navigation 116 may be located in another device and only connected to the connection module 118.

CPU 102可由可配置以執行電腦程式的指令的電子電路組裝。舉例來說,CPU 102可被配置成執行由一組指令指定的算術、邏輯、控制和輸入/輸出(input/output;I/O)操作。在一些實施例中,CPU 102可包含:算數邏輯單位(arithmetic logic unit;ALU),其執行算術和邏輯操作;處理器暫存器,其將運算元提供至ALU且儲存ALU操作的結果;以及控制單元,其通過引導ALU、暫存器以及其它元件的協調操作而將指令的擷取(從記憶體擷取)和執行協調地結合起來。另外或替代地,CPU 102還可包含一或多個微處理器和週邊介面。此外,在一些實施例中,CPU 102可額外包含多核處理器,其可被配置成平行作業。The CPU 102 may be assembled from electronic circuits configurable to execute instructions of a computer program. For example, the CPU 102 may be configured to perform arithmetic, logic, control, and input/output (I/O) operations specified by a set of instructions. In some embodiments, the CPU 102 may include: an arithmetic logic unit (ALU), which performs arithmetic and logical operations; a processor register, which provides an arithmetic unit to the ALU and stores the result of the ALU operation; and The control unit, by guiding the coordinated operation of the ALU, registers, and other components, combines instruction fetching (fetching from memory) and execution in a coordinated manner. Additionally or alternatively, the CPU 102 may also include one or more microprocessors and peripheral interfaces. In addition, in some embodiments, the CPU 102 may additionally include a multi-core processor, which may be configured to operate in parallel.

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 may include circuits for basic 2D acceleration and frame buffer circuits. In some embodiments, GPU 104 may be analogized to 2D acceleration. In other embodiments, GPU 104 may be configured for texture mapping and drawing polygons, speeding up geometric calculations (eg, rotation), and transforming vertices to different coordinate systems.

GPU 104可作為插卡安設在主機板上的晶片組中或與CPU 102安設在同一晶片中。此外,GPU 104可直接連接到顯示器/LCD 114。The GPU 104 can be installed as a plug-in card in the chipset on the motherboard or in the same chip as the CPU 102. In addition, the GPU 104 may be directly connected to the display/LCD 114.

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 DSP 106 may, for example, receive digitized video, voice, audio, temperature, or position signals from the sensor 110 and perform mathematical functions on the signals. In the described embodiment, the DSP 106 may be designed to perform these mathematical functions quickly.

多媒體處理器108可包含被設計成以即時速率提供數位流的微處理器或系統晶片。在一些實施例中,多媒體處理器108可被配置成處置包含未經壓縮視頻、經壓縮數位視訊(例如MPEG-1、MPEG-2、MPEG-4等)以及數位音訊(例如PCM、AAC等)的檔案。多媒體處理器108中的微處理器可經優化以適應不同媒體資料類型,例如通過包含儲存介面、串流媒體介面或專用功能單元以適應各種數位媒體轉碼器。舉例來說,多媒體處理器108可包含向量處理功能單元或SIMD功能單元,以有效適應這些媒體資料類型和/或類DSP特徵。The multimedia processor 108 may include a microprocessor or system chip designed to provide a digital stream at an immediate rate. In some embodiments, the multimedia processor 108 may be configured to handle including uncompressed video, compressed digital video (eg MPEG-1, MPEG-2, MPEG-4, etc.) and digital audio (eg PCM, AAC, etc.) 'S profile. The microprocessor in the multimedia processor 108 can be optimized to adapt to different media data types, for example, by including a storage interface, a streaming media interface, or a dedicated functional unit to accommodate various digital media transcoders. For example, the multimedia processor 108 may include a vector processing function unit or a SIMD function unit to effectively adapt to these media data types and/or DSP-like features.

感測器110可包含多個感測單元,其轉換外部事件且將所述外部事件發送到電子系統100中的處理單元,例如CPU 102或DSP 106。感測器110可包含加速計、陀螺儀、數位指南針、氣壓計、指紋識別感測器、虹膜(眼部)掃描感測器和/或面部識別感測器中的一或多個。此外,感測器110可包含相機和麥克風。另外或替代地,感測器110可包含GPS單元、磁力計、照度計(lux meter)和/或接近度感測器。The sensor 110 may include a plurality of sensing units that convert external events and send the external events to a processing unit in the electronic system 100, such as the CPU 102 or the DSP 106. The sensor 110 may include one or more of an accelerometer, a gyroscope, a digital compass, a barometer, a fingerprint recognition sensor, an iris (eye) scanning sensor, and/or a facial recognition sensor. In addition, the sensor 110 may include a camera and a microphone. Additionally or alternatively, the sensor 110 may include a GPS unit, a magnetometer, a lux meter, and/or a proximity sensor.

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 ISP 112 may include a dedicated processor for image processing. ISP 112 can use SIMD technology or MIMD technology to use parallel computing to increase speed and efficiency. The ISP 112 may be configured to perform image processing tasks, such as increasing system integration on embedded devices. In some embodiments, the ISP 112 may be provided on the same board as other components of the electronic system 100. For example, ISP 112 may be on the same board as CPU 102. However, in other embodiments, the ISP 112 may be a discrete unit. The ISP 112 may include a circuit for controlling a complementary metal-oxide semiconductor (CMOS) sensor. For example, the ISP 112 may include circuits for performing image processing operations such as demosaicing, auto focus, auto exposure, and white balance. In addition, ISP 112 may have noise reduction, filtering, and high-dynamic-range (HDR) capabilities.

導航模組116可包含具有雷達的硬體和/或用以記錄位置的GPS設備。舉例來說,導航模組116可基於GPS、基於地面信標或為距離測量儀器(Distance Measurement Instrument;DMI)。導航模組116可被配置成確定電子系統100的當前位置。另外或替代地,導航模組116可包含用以儲存導航地圖資訊的資料記憶體裝置。導航模組116也可集成於電子系統100的特定元件內。舉例來說,導航模組116可集成於CPU 102內。在一些實施例中,導航模組116可連接到顯示器/LCD 114,且可通過(例如)連接模組118經由網際網路連接到地理位置服務。The navigation module 116 may include hardware with radar and/or a GPS device to record location. For example, the navigation module 116 may be GPS-based, ground beacon-based, or Distance Measurement Instrument (DMI). The navigation module 116 may be configured to determine the current position of the electronic system 100. Additionally or alternatively, the navigation module 116 may include a data memory device for storing navigation map information. The navigation module 116 may also be integrated into specific components of the electronic system 100. For example, the navigation module 116 may be integrated in the CPU 102. In some embodiments, the navigation module 116 may be connected to the display/LCD 114, and may be connected to the geographic location service via the Internet through, for example, the connection module 118.

連接模組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 connection module 118 may include an antenna, a microcontroller, and a data port for wireless or wired communication. For example, the connection module 118 may include antennas for 4G LTE, WIFI, and FM communications. Alternatively or additionally, the connection module 118 may include USB communication. In some embodiments, the connection module may include a processor connected via a standard peripheral interface. The standard peripheral interface may include an inter-integrated circuit (I2C) interface and a serial peripheral interface (Serial Peripheral Interface); SPI), Universal Asynchronous Receiver/Transmitter (UART) interface, High-Speed Inter-Chip (HSIC) interface or another suitable standard interface implemented by the processor or otherwise supported . In addition, the connection module 118 may provide a command agreement to provide services associated with the communication architecture required to connect the processing unit (eg, CPU 102 or GPU 104) to external IoT devices, cloud services, and so on.

NPU 120可包含用於腦啟發計算(即神經形態計算)的電子平臺。NPU 120可包含人工智慧加速晶片,且與軟體API相關聯以與平臺交互。在一些實施例中,NPU 120可被配置成執行機器學習演算法,例如深度學習。此外,NPU 120可被配置成執行圖像和聲音處理操作,包含語音辨識。在一些實施例中,NPU 120可建構有專門用於加快機器學習演算法的微處理器。舉例來說,NPU 120可被配置成根據例如人工神經網路或隨機森林的預測性模型進行操作。The NPU 120 may include an electronic platform for brain-inspired computing (ie, neuromorphic computing). The NPU 120 may include an artificial intelligence acceleration chip and be associated with a software API to interact with the platform. In some embodiments, NPU 120 may be configured to execute machine learning algorithms, such as deep learning. In addition, the NPU 120 may be configured to perform image and sound processing operations, including speech recognition. In some embodiments, NPU 120 may be constructed with a microprocessor dedicated to speed up machine learning algorithms. For example, NPU 120 may be configured to operate according to predictive models such as artificial neural networks or random forests.

圖2為示例性記憶體裝置200的示意圖。在一些實施例中,記憶體裝置200可以是電子系統100的部分。舉例來說,記憶體裝置200可構成NPU 120。然而,在其它實施例中,記憶體裝置200可為獨立單元。記憶體裝置200可包含多個神經元202、多個突觸204以及多個通信通道206。FIG. 2 is a schematic diagram of an exemplary memory device 200. In some embodiments, the memory device 200 may be part of the electronic system 100. For example, the memory device 200 may constitute the NPU 120. However, in other embodiments, the memory device 200 may be an independent unit. The memory device 200 may include multiple neurons 202, multiple synapses 204, and multiple communication channels 206.

圖2中的示例性記憶體裝置200包含九個神經元202,包含神經元202(a)、神經元202(b)、神經元202(c)…、神經元202(g)。然而,具有更多神經元202或更少神經元202的其它實施例也是可能的。神經元202可設計有類比神經操作的數位或類比電路。在一些實施例中,神經元202可包含CMOS數位電路,其被配置成執行神經元狀態和啟動函數的邏輯操作。可替代地,神經元202可包含包括MOS電晶體或BJT電晶體的類比電路,所述電晶體被配置成針對非線性壓控電導以次閾值狀態操作。The exemplary memory device 200 in FIG. 2 includes nine neurons 202, including neuron 202(a), neuron 202(b), neuron 202(c)..., neuron 202(g). However, other embodiments with more neurons 202 or fewer neurons 202 are also possible. The neuron 202 may be designed with a digital or analog circuit for analog neural operation. In some embodiments, the neuron 202 may include a CMOS digital circuit configured to perform logical operations of the neuron state and start function. Alternatively, the neuron 202 may include an analog circuit including a MOS transistor or a BJT transistor, which is configured to operate in a sub-threshold state for nonlinear voltage-controlled conductance.

突觸204包含突觸204(a)、突觸204(b)、…、突觸204(f),且可包含具有可變電阻的電子元件。然而,具有更多突觸204或更少突觸204的其它實施例也是可能的。突觸204可與神經元202耦合,且所述突觸自身之間耦合。在一些實施例中,突觸204可包含關於圖3A至圖3C進一步所描述的可變電阻式記憶體(Resistive random-access memory,ReRAM)記憶體柵格或陣列。在其它實施例中,突觸204可包含快閃記憶體柵格,其中快閃記憶體單元中的電晶體受閘極電壓控制以充當電阻。在所述實施例中,電晶體通道可被配置成充當閘極可控制的電阻器。Synapse 204 includes synapse 204(a), synapse 204(b), ..., synapse 204(f), and may include electronic components with variable resistance. However, other embodiments with more synapses 204 or fewer synapses 204 are also possible. Synapse 204 may be coupled with neuron 202, and the synapse itself is coupled. In some embodiments, the synapse 204 may include a resistive random-access memory (ReRAM) memory grid or array as further described with respect to FIGS. 3A-3C. In other embodiments, the synapse 204 may include a flash memory grid, where the transistors in the flash memory cell are controlled by the gate voltage to act as a resistance. In the described embodiment, the transistor channel may be configured to act as a gate-controllable resistor.

通信通道206包含通道206(a)、通道206(b)、…、以及通道206(d),且可包含並行和/或串列資料匯流排。然而,具有更多通信通道206或更少通信通道206的其它實施例也是可能的。在一些實施例中,通信通道206可包含記憶體裝置200的元件之間的專用匯流排。舉例來說,通信通道206(a)可包含神經元202(a)與神經元202(b)之間的專用通信線路。The communication channel 206 includes a channel 206(a), a channel 206(b), ..., and a channel 206(d), and may include parallel and/or serial data buses. However, other embodiments with more communication channels 206 or fewer communication channels 206 are also possible. In some embodiments, the communication channel 206 may include a dedicated bus between the elements of the memory device 200. For example, the communication channel 206(a) may include a dedicated communication line between the neuron 202(a) and the neuron 202(b).

在一些實施例中,神經元202中的每一個可耦合到多個突觸204。舉例來說,雖然圖2繪示神經元202中的每一個耦合到四個突觸204,但神經元202中的每一個可耦合到一百個或更多個突觸204。在這些實施例中,突觸204可直接或間接耦合至神經元202。舉例來說,突觸204(a)可使用晶片上互連件直接連接到神經元202(a)。然而,在其它實施例中,突觸204(a)可經由緩衝電路、其它突觸或濾波電路耦合到神經元202(a)。In some embodiments, each of the neurons 202 may be coupled to multiple synapses 204. For example, although FIG. 2 shows that each of the neurons 202 is coupled to four synapses 204, each of the neurons 202 may be coupled to one hundred or more synapses 204. In these embodiments, synapse 204 may be directly or indirectly coupled to neuron 202. For example, the synapse 204(a) may be directly connected to the neuron 202(a) using on-chip interconnects. However, in other embodiments, synapse 204(a) may be coupled to neuron 202(a) via a buffer circuit, other synapse, or filter circuit.

由於神經元202可具有比突觸204更多的電子元件,因此神經元202佔據的面積可大於突觸所佔據的面積。舉例來說,在一些實施例中,神經元202可佔據比突觸大至少一百倍的面積。每一突觸204可為單一電子元件,例如ReRAM單元或快閃記憶體單元,而神經元202中的每一個可包含若干電晶體、電流源以及電容器。舉例來說,神經元202中的每一個可佔據8000 F2 或更大的面積,而突觸204中的每一個可佔據30 F2 或更小的面積,其中F2 為表示技術節點的最小可解析特徵的相對面積單位。Since the neuron 202 may have more electronic components than the synapse 204, the area occupied by the neuron 202 may be larger than the area occupied by the synapse. For example, in some embodiments, the neuron 202 may occupy an area that is at least one hundred times larger than the synapse. Each synapse 204 may be a single electronic element, such as a ReRAM cell or flash memory cell, and each of the neurons 202 may include several transistors, current sources, and capacitors. For example, each of the neurons 202 can occupy an area of 8000 F 2 or more, and each of the synapses 204 can occupy an area of 30 F 2 or less, where F 2 is the minimum representing the technology node Resolvable feature's relative area unit.

如圖2中所繪示,記憶體裝置200可將神經元202與相關聯突觸204放置成臨近彼此,以使記憶體單元(例如突觸204)與處理單元(例如神經元202)之間的任何通信線路的長度減至最小。然而,通信通道206可額外使用較長通信線路連接處理單元。As depicted in FIG. 2, the memory device 200 may place neurons 202 and associated synapses 204 close to each other, such that between the memory unit (eg, synapse 204) and the processing unit (eg, neuron 202) The length of any communication line is minimized. However, the communication channel 206 may additionally use a longer communication line to connect the processing unit.

圖3A為第一示例性記憶體電路310的示意圖。記憶體電路310包含連接到ReRAM陣列314的行解碼器312、ReRAM暫存器316、資料暫存器318以及列解碼器320。此外,記憶體電路310包含都連接到列解碼器320的放大器324和資料匯流排322。FIG. 3A is a schematic diagram of the first exemplary memory circuit 310. The memory circuit 310 includes a row decoder 312, a ReRAM register 316, a data register 318, and a column decoder 320 connected to the ReRAM array 314. In addition, the memory circuit 310 includes an amplifier 324 and a data bus 322 both connected to the column decoder 320.

ReRAM陣列314包含非揮發性隨機存取記憶體單元,其通過改變固態材料上的電阻來工作。舉例來說,ReRAM陣列314可組裝有多個憶阻器。可替代地,ReRAM陣列可包含具有可控制電阻的電阻元件的柵格或交叉開關(crossbar)。舉例來說,ReRAM陣列可包含3D Xpoint陣列。替代地或另外,ReRAM陣列314可設計有呈1T1R結構的專用MOSFET電晶體,其中電晶體提供對ReRAM單元的排它性存取。The ReRAM array 314 contains non-volatile random access memory cells that work by changing the resistance on solid materials. For example, the ReRAM array 314 may be assembled with multiple memristors. Alternatively, the ReRAM array may include a grid or crossbar with resistive elements with controllable resistance. For example, the ReRAM array may include a 3D Xpoint array. Alternatively or additionally, the ReRAM array 314 may be designed with dedicated MOSFET transistors in a 1T1R structure, where the transistors provide exclusive access to ReRAM cells.

行解碼器312包含用以與多個位線建立電通信的開關和/或多工器,以從ReRAM陣列314中的記憶體單元讀取資料以及將資料寫入到所述記憶體單元。行解碼器312還包含用以在讀取和寫入操作期間驅動電壓或電流的放大器。舉例來說,行解碼器312可包含感測放大器和寫入放大器。The row decoder 312 includes switches and/or multiplexers to establish electrical communication with multiple bit lines to read data from and write data to memory cells in the ReRAM array 314. The row decoder 312 also includes an amplifier to drive voltage or current during read and write operations. For example, the row decoder 312 may include a sense amplifier and a write amplifier.

ReRAM暫存器316包含被配置成儲存關於ReRAM陣列314狀態的資訊的硬體。ReRAM暫存器316中的個別位可隱式或顯式地由在ReRAM陣列314上執行的機器代碼指令讀取和/或寫入。舉例來說,在一些實施例中,ReRAM暫存器可儲存處理器的狀態標誌位元集合。The ReRAM register 316 contains hardware configured to store information about the state of the ReRAM array 314. Individual bits in the ReRAM register 316 may be implicitly or explicitly read and/or written by machine code instructions executing on the ReRAM array 314. For example, in some embodiments, the ReRAM register may store a set of processor status flag bits.

資料暫存器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 ReRAM array 314. The data register 318 allows immediate access to reusable information. For example, the data register 318 may contain a copy of the specified memory cell in the ReRAM array 314 as specified by the row decoder 312. In some embodiments, using the data register 318 as part of the memory circuit 310 may allow the neuron 202 to access frequently needed information faster by avoiding the required configuration of the decoder.

列解碼器320包含用以在ReRAM陣列314中的記憶體單元與其它讀取元件之間建立電連接的電路,例如放大器324或資料匯流排322。列解碼器320可使用類比方法或數位方法或部分類比和部分數位方法進行操作。列解碼器320可包含一或多個多工器,且直接連接到資料暫存器318。The column decoder 320 includes a circuit for establishing an electrical connection between the memory cell in the ReRAM array 314 and other reading elements, such as an amplifier 324 or a data bus 322. The column decoder 320 may operate using an analog method or a digital method or a partial analog and partial digital method. The column decoder 320 may include one or more multiplexers, and is directly connected to the data register 318.

為了讀取資料且將所述資料發送到(例如)神經元202,記憶體電路310可包含放大器324和資料匯流排322。在示例性記憶體電路310中,放大器324包含被配置成驅動器的運算放大器和耦合到處理單元的資料匯流排322。In order to read the data and send the data to, for example, the neuron 202, the memory circuit 310 may include an amplifier 324 and a data bus 322. In the exemplary memory circuit 310, the amplifier 324 includes an operational amplifier configured as a driver and a data bus 322 coupled to the processing unit.

圖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 exemplary memory circuit 330. The memory circuit 330 includes elements similar to the memory circuit 310, including a row decoder 312, a ReRAM register 316, a data register 318, and a column decoder 320 connected to the ReRAM array 314. However, the memory circuit 330 implements different memory control using the address counter 344, the control circuit 348, and the parallel-series converter 332 and the parallel-series converter 346. In addition, in the memory circuit 330, the elements may have different arrangements. As shown in FIG. 3B, the data register 318 in the memory circuit 330 is connected to the row decoder 312 instead of the ReRAM array 314 and the column decoder 320.

位址計數器344包含基於控制電路348指令而計算所需行位址和列位址的硬體。在一些實施例中,位址計數器344包含針對分別存在的列位址和/或行位址的可程式設計和/或固定偏移暫存器。舉例來說,如圖3B中所繪示,位址計數器344可連接到列解碼器320和行解碼器312。位址計數器344可包含多工器,其基於控制電路348所提供的低頻率輸入信號而產生高頻率控制信號。The address counter 344 includes hardware that calculates the required row and column addresses based on instructions from the control circuit 348. In some embodiments, the address counter 344 includes programmable and/or fixed offset registers for column addresses and/or row addresses that exist respectively. For example, as shown in FIG. 3B, the address counter 344 may be connected to the column decoder 320 and the row decoder 312. The address counter 344 may include a multiplexer that generates a high frequency control signal based on the low frequency input signal provided by the control circuit 348.

並聯-串聯轉換器332和並聯-串聯轉換器346可包含根據時鐘信號而並聯或串聯地傳輸來自輸入端的位的觸發器、鎖存器和/或暫存器。舉例來說,如果並行-串列轉換器332或並行-串列轉換器346的觸發器的輸入端處存在高信號(邏輯1),那麼在時鐘邊沿從低轉變為高時,輸入端處的邏輯1被傳輸到並聯端。此外,並聯-串聯轉換器332和並聯-串聯轉換器346可與串聯輸入端(serial input;SI)或串聯輸出端(serial output;SO)耦合,從而轉換接著可傳輸到處理單元的資料。The parallel-series converter 332 and the parallel-series converter 346 may include flip-flops, latches, and/or temporary registers that transmit bits from the input terminal in parallel or in series according to a clock signal. For example, if there is a high signal (logic 1) at the input of the flip-flop of the parallel-to-serial converter 332 or the parallel-to-serial converter 346, then when the clock edge transitions from low to high, the Logic 1 is transmitted to the parallel terminal. In addition, the parallel-series converter 332 and the parallel-series converter 346 may be coupled with a serial input (SI) or a serial output (SO) to convert data that can then be transmitted to the processing unit.

控制電路348為管理通向和來自ReRAM陣列314的資料流程的數位電路。在一些實施例中,控制電路348可組裝有微控制器或處理單元。此外,控制電路348可提供用以基於所測量的記憶體電流來確定記憶體狀態的構件。此外,控制電路348可經由資料接腳與其它元件通信,所述資料接腳例如晶片選擇(chip select;CS)接腳、時鐘信號(SCK)接腳、中斷(HOLD)接腳以及寫入保護(write protect;WP)接腳。The control circuit 348 is a digital circuit that manages the flow of data to and from the ReRAM array 314. In some embodiments, the control circuit 348 may be equipped with a microcontroller or a processing unit. In addition, the control circuit 348 may provide means for determining the state of the memory based on the measured memory current. In addition, the control circuit 348 can communicate with other components via data pins, such as chip select (CS) pins, clock signal (SCK) pins, interrupt (HOLD) pins, and write protection (Write protect; WP) pin.

圖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 exemplary memory circuit 360. FIG. The memory circuit 360 represents a possible implementation of the ReRAM memory cells in the ReRAM array 314. Although not shown in FIG. 3C, similar to the memory circuit 310, the memory circuit 360 may further include an amplifier 324, a column decoder 320, and a row decoder 312, and other electronic devices for reading the ReRAM array 314. The memory circuit 360 may also include a selection transistor 348 used by the decoder to arrange the connections between the memory cells.

在一些實施例中,記憶體電路360中的ReRAM陣列314中的記憶體單元設計有交叉網。舉例來說,ReRAM陣列314可包含連接到CMOS線路以用於讀取和寫入的奈米線交叉開關。奈米線交叉開關具有可控制的電阻率。然而,如圖3C中所繪示,ReRAM陣列314中的記憶體單元也可組裝有電阻開關(A)、豎直電晶體(B)、串聯-電阻開關(C)或互補電阻開關(D)。使用具有可調適電阻率的不同類型電子元件的替代實施方案也可用於建構ReRAM陣列314。In some embodiments, the memory cells in the ReRAM array 314 in the memory circuit 360 are designed with a cross-over network. For example, ReRAM array 314 may include nanowire crossbar switches connected to CMOS lines for reading and writing. Nanowire crossbar switches have controllable resistivity. However, as shown in FIG. 3C, the memory cells in the ReRAM array 314 may also be assembled with a resistance switch (A), a vertical transistor (B), a series-resistance switch (C), or a complementary resistance switch (D) . Alternative implementations using different types of electronic components with adjustable resistivity can also be used to construct ReRAM array 314.

圖4為第一示例性記憶體讀取配置500的示意圖。記憶體讀取配置500用於處理來自多個記憶體單元的讀數且用於確定記憶體單元的整體狀態。對記憶體讀取配置500中的記憶體讀數進行分組或集群促進記憶體狀態的確定,因為減小了記憶體狀態分佈的偏差和最大/最小(max/min)比。也就是說,合計來自多個記憶體單元的電流產生更精細的記憶體狀態分佈,其促進讀取電路對記憶體狀態的確定。記憶體讀取配置500在一系列級中實現多個記憶體單元的集群和處理。在記憶體讀取配置500的每一級中,記憶體單元的電流經處理以得到具有較小變差和可容易辨別的狀態的複合讀數。將關於圖7A至圖7C更詳細地論述利用記憶體讀取配置500所產生的電流分佈。4 is a schematic diagram of a first exemplary memory reading configuration 500. The memory read configuration 500 is used to process readings from multiple memory cells and to determine the overall state of the memory cells. Grouping or clustering the memory readings in the memory reading configuration 500 facilitates the determination of the memory state, because the deviation of the memory state distribution and the maximum/minimum (max/min) ratio are reduced. That is, summing the currents from multiple memory cells produces a finer distribution of memory states, which facilitates the determination of the memory state by the reading circuit. The memory read configuration 500 enables clustering and processing of multiple memory units in a series of stages. In each stage of the memory reading configuration 500, the current of the memory cell is processed to obtain a composite reading with less variation and easily discernable state. The current distribution generated using the memory read configuration 500 will be discussed in more detail with respect to FIGS. 7A-7C.

記憶體讀取配置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 memory reading configuration 500 includes: a memory unit 502(a), ..., a memory unit 502(z), collectively referred to herein as a memory unit 502; a filter circuit 505(a), ..., a filter circuit 505(z) In this document, they are collectively referred to as the filter circuit 505; and the first-stage geometric average operator 511(a), ..., the first-stage geometric average operator 511(y), which are collectively referred to herein as the geometric average operator 511. In addition, the memory reading configuration 500 includes: a second-level geometric average operator 517(a), ..., a second-level geometric average operator 517(x), collectively referred to herein as a geometric average operator 517; and a third-level Geometric average operand 523. As shown in FIG. 4, the geometric average operator may have a first-level geometric average operator 511, a second-level geometric average operator 517 and a third-level geometric average operator 523 in a cascaded manner. Although only three levels are shown in FIG. 4, the memory read configuration 500 may include more levels. In the described embodiment, the last stage may be directly or indirectly coupled to the reading circuit. In addition, the memory read configuration 500 includes: a first-stage buffer circuit 512(a), ..., a first-stage buffer circuit 512(y), collectively referred to herein as a first-stage buffer circuit 512; a second-stage buffer The second-stage buffer circuit 518(a),..., The second-stage buffer circuit 518(x) are collectively referred to herein as the second-stage buffer circuit 518; and the third-stage buffer circuit 524. The buffer circuits can be organized in a similar manner. In addition, the memory reading configuration 500 includes a data bus 530 and a reading circuit 540.

圖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 configuration 500 or the total number of elements. Alternatively, it is a variable marker indicating the variable element number and the variable total element number. For example, the text (z) used to refer to the memory unit 502(z) does not indicate that the memory unit 502(z) is the 26th memory unit. Alternatively, (z) is a variable flag that can indicate any integer value. Therefore, the memory unit 502(z) is any one of the memory units 502, and the number of the memory units 502 in the memory reading configuration 500 is any integer. Similarly, the words (y) and (x) used to refer to, for example, the first-level geometric averaging operator 511(y) or the second-level geometric averaging operator 517(x) are also variable marks, which do not indicate or limit The number of components or the total number of components.

然而,在一些實施例中,用作可變標記的文字可具有代數關係。舉例來說,在一些實施例中,可變標記滿足關係式(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 average operator 511, the second-level geometric average operator 517, and the third-level geometric average operator 523, these stages may be implemented in a single stage. For example, the aggregation stage 519 can perform the same functions as the first-level geometric average operator 511 and the second-level geometric average operator 517. In the described embodiment, the aggregation stage 519 may include circuitry to perform aggregation operations. For example, in some embodiments, the aggregation stage 519 includes a CMOS square root circuit configured in a loop, where the output of the CMOS square root circuit is routed back to an input of the CMOS square root circuit to perform the square root calculation of the product of at least two Times. Alternatively, the aggregation stage 519 includes logic circuits to perform the equivalent operations of the first-stage geometric average operator 511 and the second-stage geometric average operator 517 in a single stage. In addition, the aggregation stage 519 may include a processor configured to calculate cascaded geometric averages to effectively perform the functions of the first-level geometric average operator and the second-level geometric average operator.

記憶體單元502可包含不同類型的記憶體類型。舉例來說,記憶體單元502可包含ReRAM記憶體單元,例如先前關於圖3C所描述的ReRAM記憶體單元。此外,記憶體單元502可以是ReRAM陣列314的部分。然而,在其它實施例中,記憶體單元502可為快閃記憶體、PCM、MRAM或FeRAM記憶體單元。舉例來說,記憶體單元502可包含快閃記憶體單元,其中電晶體受閘極電壓控制以充當電阻。The memory unit 502 may include different types of memory. For example, the memory unit 502 may include a ReRAM memory unit, such as the ReRAM memory unit previously described with respect to FIG. 3C. In addition, the memory cell 502 may be part of the ReRAM array 314. However, in other embodiments, the memory unit 502 may be a flash memory, PCM, MRAM, or FeRAM memory unit. For example, the memory cell 502 may include a flash memory cell in which the transistor is controlled by the gate voltage to act as a resistance.

在一些實施例中,記憶體單元502與濾波電路505耦合。濾波電路505包含用以處理從記憶體單元502接收的類比信號的硬體。當來自記憶體單元的讀數遭受可混淆讀取的噪音源(例如時鐘信號)時,或當預處理資料將促進資料的後續集群時,可需要濾波電路。記憶體讀取配置500中可包括多種濾波技術。In some embodiments, the memory unit 502 is coupled with the filter circuit 505. The filter circuit 505 includes hardware for processing the analog signal received from the memory unit 502. Filtering circuits may be needed when readings from memory cells are subject to noise sources (such as clock signals) that can confuse readings, or when preprocessing data will facilitate subsequent clustering of data. Various filtering techniques may be included in the memory reading configuration 500.

如圖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 filter circuit 505 includes a band-pass filter (collectively referred to as a band-pass filter 504) and a min/max filter (min/max filter (referred to collectively as a min/max filter 506 )). These circuits may be configured to filter noise from undesired frequencies or cut off from the outlier memory unit 502. For example, the band-pass filter 504 may be configured to filter out high frequencies that are not characteristic of reading memory cells. In addition, when the output of the memory unit 502 is expected to be within a range (for example, 1 uA to 10 uA), if one of the memory units 502 outputs a current that exceeds the range (for example, 100 uA), it indicates that The memory unit has failed. To avoid outlier readings from compromising the accuracy of memory state determination, min/max filter 506 may truncate or remove any unexpected values. In this example, the unexpected current of 100 uA can be truncated to a maximum expected current of 10 uA. Alternatively, the min/max filter 506 may completely remove the unexpected current.

第一級幾何平均運算元511包含用以處理來自記憶體單元502的信號的硬體。如圖4中所繪示,第一級幾何平均運算元511經由濾波電路505耦合到記憶體單元502。然而,在其它實施例中,第一級幾何平均運算元511可直接連接到記憶體單元502。此外,在某些實施例中,第一級幾何平均運算元511可直接或間接地耦合到讀取電路540,使得記憶體讀取配置500僅包含單一級幾何讀取運算元。The first-stage geometric averaging operator 511 includes hardware for processing signals from the memory unit 502. As shown in FIG. 4, the first-stage geometric averaging operator 511 is coupled to the memory unit 502 via the filter circuit 505. However, in other embodiments, the first-level geometric averaging operator 511 may be directly connected to the memory unit 502. In addition, in some embodiments, the first-level geometric averaging operator 511 may be directly or indirectly coupled to the reading circuit 540 so that the memory reading configuration 500 includes only a single-level geometric reading operator.

在一些實施例中,幾何平均運算元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, geometric averaging operators 511 are organized in subsets, each subset being coupled to a specific group of memory cells 502. For example, referring to FIG. 4, the first subset of geometric averaging operators 511 includes the two top geometric averaging operators 511(a) and geometric averaging operators 511(a+1). Therefore, the first subset of geometric mean operator 511 will be coupled to include memory unit 502(a), memory unit 502(a+1), memory unit 502(a+2), and memory unit 502(a +3) A memory cell group and is configured to process readings from the memory cell group. Similarly, the second subset of geometric averaging operators 511 contains the bottom two geometric averaging operators 511(y) and geometric averaging operators 511(y-1). Thus, the second subset of geometric mean operator 511 is coupled to include memory unit 502(z), memory unit 502(z-1), memory unit 502(z-2), and memory unit 502(z -3) a memory cell group, and is configured to process readings from the memory cell group. Depending on the number of memory cells 502 to be processed, an additional subset of geometric averaging operators 511 may be added to the memory read configuration 500.

通過以子集方式組織幾何平均運算元511,記憶體讀取配置500能夠識別記憶體中具有不佳特性的區域,且通過停用幾何平均運算元511的子集來斷開所述區域。舉例來說,在一些儲存晶片中,表現不佳的記憶體單元502集中在晶片的一特定區域中。幾何平均運算元511的子集的所描述組織將允許隔離缺陷區域且改進記憶體讀取準確度。By organizing the geometric mean operator 511 in a subset manner, the memory reading configuration 500 can identify areas in the memory having poor characteristics, and disconnect the area by disabling a subset of the geometric mean operator 511. For example, in some storage chips, poorly performing memory cells 502 are concentrated in a specific area of the chip. The described organization of the subset of geometric averaging operators 511 will allow isolation of defective areas and improve memory reading accuracy.

第一級幾何平均運算元511可接收來自多個記憶體單元502的信號,且處理所述信號以輸出單一信號。在一些實施例中,第一級幾何平均運算元511可使記憶體單元502的電流相乘且隨後進行開方。舉例來說,如果每個第一級幾何平均運算元511耦合到兩個記憶體單元502,那麼每個第一級幾何平均運算元511產生具有以下關係的輸出電流:

Figure 02_image001
。可替代地,每個第一級幾何平均運算元511可接收來自多個記憶體單元502的電流,且在單次計算操作中將所述電流合併在一起。舉例來說,每個第一級幾何平均運算元511可接收來自四個記憶體單元502的電流,且執行運算
Figure 02_image007
。即,一般來說,每個第一級幾何平均運算元511可被配置成確定來自記憶體單元502的多個電流的幾何平均值,其中所述幾何平均值通過下式得出:幾何平均值=
Figure 02_image006
=
Figure 02_image008
。由此,如果每個第一級幾何平均運算元511耦合到兩個記憶體單元502 (n = 2),那麼幾何平均值等於對分別與所述兩個記憶體單元相關聯的兩個讀取電流的乘積開平方根。The first-stage geometric averaging operator 511 can receive signals from multiple memory cells 502 and process the signals to output a single signal. In some embodiments, the first-stage geometric averaging operator 511 can multiply the current of the memory cell 502 and then perform pre-square. For example, if each first-level geometric average operator 511 is coupled to two memory cells 502, then each first-level geometric average operator 511 generates an output current having the following relationship:
Figure 02_image001
. Alternatively, each first-level geometric averaging operator 511 may receive current from multiple memory cells 502 and combine the currents in a single calculation operation. For example, each first-stage geometric average operator 511 can receive current from four memory cells 502 and perform operations
Figure 02_image007
. That is, in general, each first-level geometric average operator 511 may be configured to determine a geometric average value of multiple currents from the memory unit 502, wherein the geometric average value is obtained by the following formula: =
Figure 02_image006
=
Figure 02_image008
. Thus, if each first-level geometric mean operator 511 is coupled to two memory cells 502 (n = 2), then the geometric mean is equal to two reads associated with the two memory cells, respectively The square root of the product of currents.

在其它實施例中,第一級幾何平均運算元511可被取代或重新配置以應用其它取平均運算。舉例來說,第一級幾何平均運算元511可由第一級取平均運算元取代或重新配置為第一級取平均運算元,所述第一級取平均運算元被配置成計算與記憶體單元502相關聯的讀取電流的算術平均值。可替代地,第一級幾何平均運算元511可由第一級乘法電路或第一級加法器取代,或重新配置為第一級乘法電路或第一級加法器,所述第一級乘法電路或第一級加法器使用不同運算來合併記憶體單元502的電流。In other embodiments, the first-level geometric averaging operator 511 can be replaced or reconfigured to apply other averaging operations. For example, the first-level geometric averaging operator 511 can be replaced by the first-level averaging operator or reconfigured as the first-level averaging operator, which is configured as a computing and memory unit 502 The arithmetic mean value of the associated read current. Alternatively, the first-stage geometric average operator 511 may be replaced by a first-stage multiplication circuit or a first-stage adder, or reconfigured as a first-stage multiplication circuit or a first-stage adder, the first-stage multiplication circuit or The first-stage adder uses different operations to combine the current of the memory cell 502.

在一些實施例中,如圖4中所繪示,第一級幾何平均運算元511可建構有獨立的第一級乘法電路(統稱為第一級乘法電路508),其連接到第一級方根電路(統稱為第一級方根電路510)。然而,在其它實施例中,例如CMOS平方根電路的單一電路可單獨地處理來自記憶體單元502的電流。In some embodiments, as shown in FIG. 4, the first-stage geometric averaging operator 511 may be constructed with an independent first-stage multiplication circuit (collectively referred to as first-stage multiplication circuit 508), which is connected to the first-stage square The root circuit (collectively referred to as the first-stage square root circuit 510). However, in other embodiments, a single circuit such as a CMOS square root circuit can separately process the current from the memory cell 502.

對於具有多個級的記憶體讀取配置500,來自記憶體單元502的原始信號在通過不同處理級時可能惡化。舉例來說,導體損耗或來自電子元件的雜訊可損壞正在處理的信號。此外,在多個級的情況下,記憶體讀取配置500中某些元件出現的明顯阻抗可能導致出現故障。舉例來說,第一級幾何平均運算元511在連接到產生高輸出阻抗的多個級時,其操作可能受損。因此,在一些實施例中,記憶體讀取配置500可包含第一級緩衝器電路512,其用於恢復信號和/或電路解耦部分的品質以避免此類問題。For a memory read configuration 500 with multiple levels, the original signal from the memory unit 502 may deteriorate as it passes through different processing levels. For example, conductor loss or noise from electronic components can damage the signal being processed. In addition, in the case of multiple levels, the apparent impedance of certain elements in the memory read configuration 500 may cause malfunctions. For example, the operation of the first stage geometric averaging operator 511 may be impaired when connected to multiple stages that produce high output impedance. Therefore, in some embodiments, the memory read configuration 500 may include a first stage buffer circuit 512 that is used to restore the quality of the signal and/or circuit decoupling portion to avoid such problems.

如先前所論述,記憶體讀取配置500可包含多個資料處理級。圖4繪示三個資料處理級,包含第二級幾何平均運算元517、第二級緩衝器電路518、第三級幾何平均運算元523以及第三級緩衝器電路524。在一些實施例中,較高階級可重複用於較低級的硬體。舉例來說,第二級幾何平均運算元517和第三級幾何平均運算元523可重複第一級幾何平均運算元511。然而,在其它實施例中,各級的元件之間可存在差異。舉例來說,第一級幾何平均運算元511可被配置成處理兩個電流,而第二級幾何平均運算元517可被配置成同時處理四個或更多個電流。另外或替代地,第一級幾何平均運算元511可為類比電路,而第三級幾何平均運算元523可為數位電路。As previously discussed, the memory read configuration 500 may include multiple data processing stages. 4 shows three data processing stages, including a second-stage geometric average operation unit 517, a second-stage buffer circuit 518, a third-stage geometric average operation unit 523, and a third-stage buffer circuit 524. In some embodiments, higher levels can be reused for lower level hardware. For example, the second-level geometric average operator 517 and the third-level geometric average operator 523 may repeat the first-level geometric average operator 511. However, in other embodiments, there may be differences between the elements of each level. For example, the first stage geometric average operator 511 can be configured to handle two currents, while the second stage geometric average operator 517 can be configured to handle four or more currents simultaneously. Additionally or alternatively, the first-level geometric average operator 511 may be an analog circuit, and the third-level geometric average operator 523 may be a digital circuit.

第二級幾何平均運算元517包含第二級乘法電路(統稱為第二級乘法電路514)和第二級方根電路(統稱為第二級方根電路516)。類似地,第三級幾何平均運算元523包含第三級乘法電路520和第三級方根電路522。The second-stage geometric average operator 517 includes a second-stage multiplication circuit (collectively referred to as second-stage multiplication circuit 514) and a second-stage square root circuit (collectively referred to as second-stage square root circuit 516). Similarly, the third stage geometric averaging operator 523 includes a third stage multiplication circuit 520 and a third stage square root circuit 522.

記憶體讀取配置500可包含超過圖4中所繪示的三個級。舉例來說,記憶體讀取配置500可具有“K”個級,其中K為任何正整數。在所述實施例中,記憶體單元502的數目與幾何平均運算元的數目之間的關係可由所選擇的級數目定義。舉例來說,在一些實施例中,在K個級的情況下,記憶體單元的總數為2K ,而幾何平均運算元的總數為2K -1。因此,如果記憶體讀取配置500具有10個級(K=10),那麼將分組處理以確定整體記憶體狀態的記憶體單元的總數為210 ,且幾何平均運算元的總數將為210 -1。此關係由具有重複的方根級運算元且各級運算元處理兩個電流或信號而產生。然而,在幾何平均運算元不相同或可處置多於兩個電流時,其它關係是可能的。The memory reading configuration 500 may include more than three levels shown in FIG. 4. For example, the memory read configuration 500 may have "K" levels, where K is any positive integer. In the described embodiment, the relationship between the number of memory cells 502 and the number of geometric average operands can be defined by the number of levels selected. For example, in some embodiments, in the case of K levels, the total number of memory cells is 2 K and the total number of geometric average operators is 2 K -1. Therefore, if the memory read configuration 500 has 10 levels (K=10), the total number of memory cells that will be grouped to determine the overall memory state is 2 10 , and the total number of geometric average operands will be 2 10 -1. This relationship results from having square root-level operands that are repeated and each level of operands processing two currents or signals. However, when the geometric mean operands are different or more than two currents can be handled, other relationships are possible.

在處理級中處理來自多個記憶體單元502的信號之後,將所得電流發送到讀取電路540。舉例來說,最末幾何平均運算元級可輸出經處理電流,所述經處理電流經由資料連接530發送到讀取電路540。可替代地,記憶體單元502與讀取電路540之間的耦合可通過例如濾波器或放大器等額外電子元件而為間接的。在一些實施例中,讀取電路540可包含根據讀取電流確定記憶體狀態的硬體和軟體。舉例來說,讀取電路540可包含根據讀取電流確定低電阻狀態或高電阻狀態中的一個的硬體。在其它實施例中,讀取電路540可包含基於從記憶體單元502接收的電流進行操作的處理單元。舉例來說,讀取電路540可耦合到神經元202中的一或多個。After processing the signals from the plurality of memory cells 502 in the processing stage, the resulting current is sent to the reading circuit 540. For example, the last geometric average operator stage can output a processed current, which is sent to the reading circuit 540 via the data connection 530. Alternatively, the coupling between the memory unit 502 and the reading circuit 540 may be indirect through additional electronic components such as filters or amplifiers. In some embodiments, the reading circuit 540 may include hardware and software to determine the state of the memory according to the reading current. For example, the reading circuit 540 may include hardware that determines one of the low resistance state or the high resistance state according to the reading current. In other embodiments, the reading circuit 540 may include a processing unit that operates based on the current received from the memory unit 502. For example, the reading circuit 540 may be coupled to one or more of the neurons 202.

讀取電路540提供用於基於記憶體電流確定多個記憶體單元的記憶體狀態的構件。在一些實施例中,讀取電路540可包含使讀取電流與記憶體狀態相關的電腦處理器。舉例來說,讀取電路540可使讀取電流與低電阻記憶體狀態、中間電阻記憶體狀態或高電阻記憶體狀態相關。替代地或另外,讀取電路540可與神經元202中的一或多個耦合。然而,在其它實施例中,讀取電路540可包含CPU或GPU。此外,基於記憶體電流確定記憶體狀態的構件可包含用以使電流與記憶體狀態相關聯的微處理器、微控制器或其它等效處理單元。The reading circuit 540 provides means for determining the memory state of the plurality of memory cells based on the memory current. In some embodiments, the reading circuit 540 may include a computer processor that correlates the reading current with the state of the memory. For example, the reading circuit 540 may correlate the reading current with a low-resistance memory state, an intermediate-resistance memory state, or a high-resistance memory state. Alternatively or additionally, the reading circuit 540 may be coupled with one or more of the neurons 202. However, in other embodiments, the reading circuit 540 may include a CPU or a GPU. In addition, the means for determining the state of the memory based on the memory current may include a microprocessor, microcontroller or other equivalent processing unit for correlating the current with the state of the memory.

圖5為第二示例性記憶體讀取配置600的示意圖。類似於記憶體讀取配置500,記憶體讀取配置600被配置成對多個記憶體單元的輸出進行集群,以減小各記憶體狀態分佈的偏差。在記憶體讀取配置600中,合併多個記憶體讀數產生每狀態具有較低max/min比的記憶體狀態分佈,從而促進記憶體狀態的確定。FIG. 5 is a schematic diagram of a second exemplary memory reading configuration 600. Similar to the memory read configuration 500, the memory read configuration 600 is configured to cluster the outputs of a plurality of memory cells to reduce deviations in the state distribution of each memory. In the memory reading configuration 600, combining multiple memory readings produces a distribution of memory states with a lower max/min ratio per state, thereby facilitating the determination of memory states.

記憶體讀取配置600包含記憶體單元502和濾波電路505。然而,代替具有記憶體讀取配置500的若干級幾何平均運算元和緩衝器,記憶體讀取配置600包含類比/數位轉換器(analog-to-digital converter;ADC)610、處理器612以及數位/類比轉換器(digital-to-analog converter;DAC)614。記憶體讀取配置600的配置能夠對來自記憶體單元502的讀取電流進行數位處理。The memory reading configuration 600 includes a memory unit 502 and a filter circuit 505. However, instead of several levels of geometric average operands and buffers with the memory read configuration 500, the memory read configuration 600 includes an analog-to-digital converter (ADC) 610, a processor 612, and digital /Analog converter (digital-to-analog converter; DAC) 614. The configuration of the memory reading configuration 600 can perform digital processing on the reading current from the memory unit 502.

如圖5中所繪示,記憶體單元502耦合到ADC 610、處理器612以及DAC 614。ADC 610將來自記憶體單元502的類比信號變換為數位資料。在一些實施例中,ADC 610可被配置成具有以GHz輸入頻寬操作的高速轉換器。在一些實施例中,到ADC 610的輸入接腳的數目可等於進行集群的記憶體單元的數目。然而,在其它實施例中,ADC 610可包含並串轉換器且具有更少數目個輸入接腳。As shown in FIG. 5, the memory unit 502 is coupled to the ADC 610, the processor 612 and the DAC 614. The ADC 610 converts the analog signal from the memory unit 502 into digital data. In some embodiments, ADC 610 may be configured with a high-speed converter operating at a GHz input bandwidth. In some embodiments, the number of input pins to ADC 610 may be equal to the number of memory cells that are clustered. However, in other embodiments, the ADC 610 may include a parallel-to-serial converter and have a smaller number of input pins.

來自ADC 610的經數位化資料被發送到處理器612,所述處理器可計算輸出值。處理器612可包含任何計算單元,例如CPU或GPU。處理器612接收所有經數位化資料以計算輸出。舉例來說,處理器612可對經數位化的電流值進行操作以計算電流的幾何平均值。由此,處理器612可使電流值相乘,且隨後對乘積進行開方。可替代地,處理器612可計算經數位化電流值的算術平均值、總和及/或乘積。處理器612也可基於經數位化電流計算其它值。舉例來說,處理器612可計算電流的眾數和/或中位數。The digitized data from ADC 610 is sent to processor 612, which can calculate the output value. The processor 612 may include any computing unit, such as a CPU or GPU. The processor 612 receives all the digitized data to calculate the output. For example, the processor 612 may operate on the digitized current value to calculate the geometric mean value of the current. Thus, the processor 612 can multiply the current value and then square the product. Alternatively, the processor 612 may calculate the arithmetic mean, sum and/or product of the digitized current values. The processor 612 may also calculate other values based on the digitized current. For example, the processor 612 may calculate the mode and/or median of the current.

處理器612將計算出的值發送到DAC 614。DAC 614可包含任何數位/類比轉換器。然而,可基於包含解析度、最大採樣頻率等的品質因數而選擇DAC 614。DAC 614將計算出的數位信號轉換為類比信號,所述類比信號隨後被發送到讀取電路540。The processor 612 sends the calculated value to the DAC 614. DAC 614 may include any digital/analog converter. However, the DAC 614 may be selected based on quality factors including resolution, maximum sampling frequency, and the like. The DAC 614 converts the calculated digital signal into an analog signal, which is then sent to the reading circuit 540.

雖然圖5將ADC 610、處理器612以及DAC 614繪示為經由匯流排620和匯流排622連接的獨立單元,但在一些實施例中,這三個元件的所有功能可在單一單元內執行。舉例來說,ADC操作、處理操作以及DAC操作可由例如CPU或GPU的單一元件執行。Although FIG. 5 illustrates ADC 610, processor 612, and DAC 614 as separate units connected via bus 620 and bus 622, in some embodiments, all functions of these three elements may be performed in a single unit. For example, ADC operations, processing operations, and DAC operations may be performed by a single element, such as a CPU or GPU.

圖6為說明示例性記憶體狀態確定方法1200的流程圖。在一些實施例中,方法1200可由記憶體讀取配置500中呈現的一系列處理級執行。然而,在其它實施例中,方法1200可由單一元件實施。舉例來說,方法1200可由處理器612實施。FIG. 6 is a flowchart illustrating an exemplary memory state determination method 1200. In some embodiments, the method 1200 may be performed by a series of processing stages presented in the memory reading configuration 500. However, in other embodiments, the method 1200 may be implemented by a single element. For example, the method 1200 may be implemented by the processor 612.

在步驟1202中,接收對於確定記憶體狀態的請求。舉例來說,神經元202中的一個可能需要記憶體狀態以執行計算,且發送對於記憶體狀態的請求。所述請求可指定應詢問的一組記憶體單元。In step 1202, a request to determine the state of the memory is received. For example, one of the neurons 202 may require memory state to perform calculations and send a request for memory state. The request may specify a group of memory units that should be queried.

在步驟1204中,從記憶體單元獲得多個記憶體讀取電流。在一些實施例中,從記憶體單元502獲得多個記憶體讀取電流。可對所述記憶體讀取電流進行濾波,以消除來自非所要頻率的雜訊或截斷離群值。為了用代數實例進一步闡釋方法1200,將在步驟1204中獲得的示例性多個記憶體讀取電流稱為電流A、電流B、電流C以及電流D。In step 1204, multiple memory read currents are obtained from the memory unit. In some embodiments, multiple memory read currents are obtained from the memory unit 502. The memory read current can be filtered to eliminate noise from unwanted frequencies or truncate outliers. To further explain the method 1200 with an algebraic example, the exemplary multiple memory read currents obtained in step 1204 are referred to as current A, current B, current C, and current D.

在步驟1206中,將多個記憶體讀取電流劃分成不同組。在一些實施例中,記憶體讀取電流可被劃分成每組兩個記憶體讀取電流的組。可替代地,可在步驟1206中定義多於兩個記憶體讀取電流的所劃分組。舉例來說,繼續電流A、電流B、電流C以及電流D的實例,所劃分組可為組1 {A、B}和組2 {C、D}。In step 1206, multiple memory read currents are divided into different groups. In some embodiments, the memory read current may be divided into two groups of memory read currents. Alternatively, a divided group of more than two memory read currents may be defined in step 1206. For example, continuing the examples of current A, current B, current C, and current D, the divided groups may be group 1 {A, B} and group 2 {C, D}.

在步驟1208中,將所劃分組中的每一個中的元素相乘,以計算與所劃分組中的每一個相關聯的乘積。舉例來說,如果每組具有兩個記憶體讀取電流,那麼計算兩個記憶體讀取電流的乘積。因此,舉例來說,在步驟1208中,計算{A*B}和{C*D}的乘積。In step 1208, the elements in each of the divided groups are multiplied to calculate the product associated with each of the divided groups. For example, if each group has two memory read currents, then calculate the product of the two memory read currents. Thus, for example, in step 1208, the product of {A*B} and {C*D} is calculated.

在步驟1210中,計算乘積的方根。舉例來說,對在步驟1208中所計算的乘積中的每一個進行計算,以產生幾何平均值。因此,舉例來說,在步驟1210中,計算以下方根:{A*B}1/2 和{C*D}1/2In step 1210, the square root of the product is calculated. For example, each of the products calculated in step 1208 is calculated to produce a geometric mean. Therefore, for example, in step 1210, the following square roots are calculated: {A*B} 1/2 and {C*D} 1/2 .

在步驟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 step 1212, it is determined whether all processing stages have been completed. For example, in the case where there are K levels, if K levels have not been completed (step 1212: No), then the method 1200 returns to step 1208 to calculate the additional product. However, if K levels have been completed (step 1212: Yes), then the method 1200 continues to step 1214. The algebraic examples of current A, current B, current C, and current D have 2 levels (K=2). Therefore, in the example, the method will return to step 1208 to calculate the new product [{A*B} 1/2 *{C*D} 1/2 ], and then calculate the second level in step 1210 The square root of the product [{A*B} 1/2 *{C*D} 1/2 ] 1/2 . If there are more levels, then the loop between step 1208 and step 1212 continues until a single current represents all clustered memory cells.

在步驟1214中,基於在步驟1208至步驟1212的步驟迴圈中確定的單一代表性電流來確定記憶體狀態。舉例來說,在一些實施例中,當記憶體電流低於第一參考電流時,可確定記憶體狀態為高電阻;當記憶體電流在第一參考電流與第二參考電流之間時,可確定記憶體狀態為第一中間狀態,第二參考電流大於第一參考電流;當記憶體電流在第二參考電流與第三參考電流之間時,可確定狀態為第二中間狀態,第三參考電流大於第二參考電流;以及當記憶體電流超過第三參考電流時,可確定記憶體狀態為高電阻狀態。在所述實施例中,記憶體讀取器(例如讀取電路540)可將第一參考電流選擇為高於與低電阻狀態相關聯的記憶體電流分佈中的最大電流;且將第三參考電流選擇為低於與高電阻狀態相關聯的記憶體電流分佈中的最小電流。因此,記憶體讀取器將能夠通過比較來自經集群記憶體單元502的記憶體讀數與參考電流而使記憶體電流與記憶體狀態相關聯。In step 1214, the memory state is determined based on the single representative current determined in the step loop of step 1208 to step 1212. For example, in some embodiments, when the memory current is lower than the first reference current, it can be determined that the memory state is high resistance; when the memory current is between the first reference current and the second reference current, Determine that the memory state is the first intermediate state, and the second reference current is greater than the first reference current; when the memory current is between the second reference current and the third reference current, the state can be determined to be the second intermediate state, the third reference The current is greater than the second reference current; and when the memory current exceeds the third reference current, it can be determined that the memory state is a high resistance state. In the described embodiment, the memory reader (eg, reading circuit 540) may select the first reference current to be higher than the maximum current in the memory current distribution associated with the low resistance state; and the third reference The current is selected to be lower than the minimum current in the memory current distribution associated with the high resistance state. Therefore, the memory reader will be able to correlate the memory current with the memory state by comparing the memory reading from the clustered memory unit 502 with the reference current.

為了確定記憶體狀態,處理電路可使記憶體輸出與記憶體狀態相關。舉例來說,在步驟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 step 1214, an analog/digital converter (ADC) may determine one of the states based on the current input. The ADC may determine that any current lower than the first reference number corresponds to a low memory state, and a current exceeding the third reference number corresponds to a high memory state. Therefore, the means for determining the memory state of the plurality of memory cells may include an ADC that correlates the analog signal with the memory state. Alternatively, the memory state can be identified using a processing unit, such as a microprocessor, which correlates the received analog input with the memory state.

在步驟1216中,將所確定的記憶體狀態發送到直接或間接耦合的處理單元。舉例來說,可將所確定的記憶體狀態發送到神經元202中的一個以用於處理任務或計算。雖然已針對在兩個級中處理的一組四個記憶體電流描述方法1200,但方法1200還可用於處理每狀態多於兩個記憶體讀取電流。接下來描述每級具有多個記憶體讀取電流的應用方法1200的數值實例。In step 1216, the determined memory state is sent to a directly or indirectly coupled processing unit. For example, the determined memory state may be sent to one of the neurons 202 for processing tasks or calculations. Although the method 1200 has been described for a set of four memory currents processed in two levels, the method 1200 can also be used to handle more than two memory read currents per state. Next, a numerical example of an application method 1200 with multiple memory read currents per level will be described.

根據所述數值實例,在步驟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 step 1204, the reading operation starts with eight memory cells 502 outputting the following values: 8 uA, 10 uA, 9 uA, 12 uA, 7 uA, 8 uA, 9 uA, and 10 uA. These initial values can be obtained through the processing circuit or the network illustrated in FIG. 4. Subsequently, these values are divided into two groups of four values each (step 1206), and these values are then processed to obtain a geometric mean. For example, the following operations are performed according to step 1208 and step 1210 of method 1200: (8*10*9*12) 1/4 = 9.6 uA and (7*8*9*10) 1/4 = 8.4 uA. The numerical examples show ways in which the disclosed processing techniques can be used to reduce the max/min ratio. The initial value has a wide distribution in the range of 7 uA to 12 uA, the difference is 5 uA, while the processed data has a max/min ratio of only 8.4 uA to 9.6 uA, and the difference is 1.2 uA. Therefore, the max/min ratio is reduced, and it will be easier to recognize the memory state associated with the distribution.

圖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 graph 1310 shows a low resistance state (LRS), a first intermediate state (IR1), a second intermediate state (IR2), and a high resistance state ; HRS) the relationship between the reading current and the cumulative distribution function. Graph 1310 shows the significant overlap between the four states. For example, a reading current of 10 uA can represent all states. This overlap between the distributions complicates the read operation because it creates uncertainty about the corresponding state of the memory cell.

參看圖7B,曲線圖1320呈現在一些處理和放大之後或使用不同讀取操作的讀取電流與累積分佈函數之間的第二關係。雖然分佈之間的重疊減少了,但確定記憶體狀態仍具有挑戰性,因為分佈重疊,且相鄰記憶體狀態的上部邊界與下部邊界之間沒有明顯的界限。如曲線圖1320中所示,不同記憶體狀態之間存在重疊。因此,在給定讀取電流(例如5 uA)下,無法區分不同狀態。提供曲線圖1320的結果的記憶體讀取方法可以可靠地用於僅低電阻和高電阻兩個狀態。然而,使用僅兩個狀態以指數方式減小儲存能力。Referring to FIG. 7B, graph 1320 presents a second relationship between the read current and the cumulative distribution function after some processing and amplification or using different read operations. Although the overlap between the distributions is reduced, determining the memory state is still challenging because the distributions overlap, and there is no clear boundary between the upper and lower boundaries of adjacent memory states. As shown in graph 1320, there is overlap between different memory states. Therefore, at a given reading current (for example, 5 uA), it is impossible to distinguish between different states. The memory reading method that provides the results of graph 1320 can be reliably used in only two states of low resistance and high resistance. However, using only two states reduces the storage capacity exponentially.

參看圖7C,曲線圖1330呈現讀取電流與累積分佈函數之間的第三關係。在用方法1200和/或使用記憶體讀取配置500或記憶體讀取配置600處理記憶體狀態之後,可獲得曲線圖1330中所示的關係。為了獲得曲線圖1330,在執行記憶體讀取之前對多個記憶體單元進行集群。舉例來說,已應用例如確定幾何平均值的資料處理技術來獲得曲線圖1330中所表示的關係。Referring to FIG. 7C, graph 1330 presents a third relationship between the read current and the cumulative distribution function. After processing the memory state with method 1200 and/or using memory read configuration 500 or memory read configuration 600, the relationship shown in graph 1330 may be obtained. To obtain the graph 1330, a plurality of memory cells are clustered before performing memory reading. For example, data processing techniques such as determining the geometric mean have been applied to obtain the relationship represented in graph 1330.

曲線圖1330顯示各記憶體狀態具有明確定義的上部邊界和下部邊界。舉例來說,顯而易見的是,低於3 uA的任何電流應與HSR相關聯,而超過9 uA的任何電流應與LSR相關聯。隨後,對記憶體單元進行集群的處理技術產生具有可容易識別的記憶體狀態的清晰分佈。如曲線圖1330中所呈現,使用所公開的集群方法,不同狀態之間的累積分佈函數未重疊,且最小/最大(min/max)比顯著減小。因此,不同讀取電流可容易地與特定記憶體狀態相關。Graph 1330 shows that each memory state has clearly defined upper and lower boundaries. For example, it is obvious that any current below 3 uA should be associated with HSR, and any current above 9 uA should be associated with LSR. Subsequently, the clustering of the memory cells produces a clear distribution with easily recognizable memory states. As presented in graph 1330, using the disclosed clustering method, the cumulative distribution functions between different states do not overlap, and the min/max ratio is significantly reduced. Therefore, different read currents can easily be related to a specific memory state.

用於產生曲線圖1330中的第三關係的集群方法改進記憶體讀數分佈,且促進將記憶體單元用於例如神經形態計算的應用。使用所公開的處理方法,狀態之間沒有尾端重疊,從而形成記憶體單元狀態之間的明顯區別。The clustering method used to generate the third relationship in graph 1330 improves memory reading distribution and facilitates the use of memory cells for applications such as neuromorphic calculations. With the disclosed processing method, there is no tail overlap between the states, thereby forming a clear distinction between the states of the memory cells.

在處理記憶體電流之後,可通過用於確定記憶體狀態的構件識別曲線圖1330中的記憶體狀態。舉例來說,微控制器可提供用於使記憶體電流與記憶體狀態相關聯的構件。微控制器可包含關係表或其它關聯方法,以基於記憶體電流產生記憶體狀態的輸出。After processing the memory current, the memory state in the graph 1330 can be identified by means for determining the memory state. For example, the microcontroller may provide means for correlating memory current with memory state. The microcontroller may include a relationship table or other related methods to generate an output of the memory state based on the memory current.

圖8為展示不同記憶體讀取配置的電流分佈與電流比之間的示例性關係的曲線圖1400。max/min比的分佈為分佈的標準差的度量。較高max/min比與較高標準差相關聯,因為最大數目與最小數目相隔遠。相反,較低max/min比與緊密分佈相關聯,其中最大值與最小值彼此接近。對於記憶體讀取操作,期望具有較低max/min比。在較低max/min比的情況下,不同記憶體狀態的分佈較窄,且不包含不同記憶體狀態之間的重疊。舉例來說,具有較低分佈max/min比的記憶體單元將與曲線圖1330中所呈現的記憶體狀態相關聯。FIG. 8 is a graph 1400 showing an exemplary relationship between current distribution and current ratio for different memory reading configurations. The distribution of the max/min ratio is a measure of the standard deviation of the distribution. A higher max/min ratio is associated with a higher standard deviation because the maximum number is far from the minimum number. In contrast, a lower max/min ratio is associated with a tight distribution, where the maximum and minimum are close to each other. For memory read operations, a lower max/min ratio is expected. At lower max/min ratios, the distribution of different memory states is narrower and does not include overlap between different memory states. For example, a memory cell with a lower distribution max/min ratio will be associated with the memory state presented in graph 1330.

曲線圖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比。Graph 1400 shows the max/min ratio for different cluster operations. The graph 1400 shows the results of the memory reading configuration of adding, multiplying, calculating arithmetic mean or calculating geometric mean through clustered memory cells. Graph 1400 shows that adding or multiplying memory currents and normalizing them with the minimum current results in a larger max/min ratio. For example, in graph 1400, sum/Imin 1402 and prod/Imin^2 1404 produce a larger max/min ratio. These larger max/min ratios are undesirable because they lead to overlapping memory states. The graph 1400 also shows the result of calculating the arithmetic average of multiple memory cells with avg/Imin 1408. Using the averaging operation, max/min decreases, indicating that the memory state distribution becomes narrower. For example, avg/Imin 1408 produces a smaller max/min ratio compared to sum/Imin 1402 and prod/Imin^2 1404. However, the geometric mean calculation desirably achieves even smaller max/min ratios. As shown in the graph 1400 with sqrt(prod)/Imin 1406, the operation of taking the square root of the product of the read current produces the smallest max/min ratio. In the case of the square root operation of the product, the min/max ratio is reduced, thereby allowing a simpler resolution of the memory state. For example, in all cluster operations, sqrt(prod)/Imin 1406 has the smallest min/max ratio.

除曲線圖1400中所呈現的操作以外的操作也是可能的。曲線圖1400僅展示對由意欲減小讀取電流數值擴散的不同操作所產生的分佈標準差的影響。也可對經集群的讀取電流執行其它操作,例如確定平均值或眾數,以減小min/max比且促進記憶體讀取操作。可替代地,可在記憶體讀取配置中組合多個操作。舉例來說,可在記憶體讀取配置的一些級中執行取平均運算,同時可在配置的其它級中執行幾何平均值運算。Operations other than those presented in graph 1400 are also possible. The graph 1400 only shows the effect on the standard deviation of the distribution produced by different operations intended to reduce the diffusion of the reading current value. Other operations can also be performed on the read current through the cluster, such as determining an average or mode to reduce the min/max ratio and facilitate memory read operations. Alternatively, multiple operations can be combined in a memory read configuration. For example, averaging operations can be performed in some stages of the memory read configuration, while geometric average operations can be performed in other stages of the configuration.

對所屬領域的技術人員可以理解的是,可以對所公開的系統和相關方法作出各種修改和變化。對於所屬領域的技術人員而言通過考慮本說明書以及實踐所公開的系統和相關方法,其它實施例將是可以理解的。希望本說明書和實例僅被視為示例性的,其中真實範圍由以下申請專利範圍和其等效者來指示。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)

一種記憶體裝置,包括: 多個記憶體單元; 至少一個幾何平均運算元,耦合到所述多個記憶體單元中的至少兩個;以及 記憶體狀態讀取器,耦合到所述至少一個幾何平均運算元以讀取所述多個記憶體單元的記憶體狀態。A memory device, including: a plurality of memory cells; at least one geometric average operator, coupled to at least two of the plurality of memory cells; and a memory state reader, coupled to the at least one geometry The arithmetic unit is averaged to read the memory states of the plurality of memory cells. 如申請專利範圍第1項所述的記憶體裝置,其中 所述至少一個幾何平均運算元為第一級幾何平均運算元,以及 所述記憶體裝置更包括: 多個第一級幾何平均運算元,所述多個第一級幾何平均運算元中的每一個耦合到所述多個記憶體單元中的至少兩個;以及 至少一個第二級幾何平均運算元,耦合到所述多個第一級幾何平均運算元中的至少兩個,所述至少一個第二級幾何平均運算元耦合到所述記憶體狀態讀取器。The memory device according to item 1 of the patent application scope, wherein the at least one geometric average operator is a first-level geometric average operator, and the memory device further includes: a plurality of first-level geometric average operators , Each of the plurality of first-level geometric average operators is coupled to at least two of the plurality of memory cells; and at least one second-level geometric average operator is coupled to the plurality of first At least two of the level geometric averaging operands, the at least one second level geometric averaging operand is coupled to the memory state reader. 如申請專利範圍第1項所述的記憶體裝置,其中所述多個記憶體單元包括可變電阻式記憶體單元。The memory device according to item 1 of the patent application range, wherein the plurality of memory cells include a variable resistance memory cell. 如申請專利範圍第2項所述的記憶體裝置,其中所述多個第一級幾何平均運算元以及所述至少一個第二級幾何平均運算元中的每一個包括互補式金屬氧化物半導體平方根電路。The memory device as described in item 2 of the patent application range, wherein each of the plurality of first-level geometric average operators and the at least one second-level geometric average operator includes a complementary metal oxide semiconductor square root Circuit. 如申請專利範圍第2項所述的記憶體裝置,其中所述多個第一級幾何平均運算元中的每一個包括:     第一級乘法電路,耦合到所述多個記憶體單元中的至少兩個;以及     第一級方根電路,耦合到所述第一級乘法電路。The memory device as described in item 2 of the patent application range, wherein each of the plurality of first-level geometric average operators includes: a first-stage multiplication circuit coupled to at least one of the plurality of memory cells Two; and the first-stage square root circuit, coupled to the first-stage multiplication circuit. 如申請專利範圍第5項所述的記憶體裝置,其中所述至少一個第二級幾何平均運算元包括:     第二級乘法電路,耦合到所述多個第一級幾何平均運算元中的至少兩個;以及     第二級方根電路,耦合到所述第二級乘法電路。The memory device as recited in item 5 of the patent application range, wherein the at least one second-level geometric average operator includes: a second-level multiplication circuit coupled to at least one of the plurality of first-level geometric average operators Two; and a second-stage square root circuit, coupled to the second-stage multiplication circuit. 如申請專利範圍第1項所述的記憶體裝置,進一步包括耦合到所述記憶體狀態讀取器的人工神經元。The memory device according to item 1 of the patent application scope, further comprising an artificial neuron coupled to the memory state reader. 如申請專利範圍第7項所述的記憶體裝置,其中     所述人工神經元佔據的面積比所述多個記憶體單元中的每一個大至少一百倍。The memory device as described in item 7 of the patent application range, wherein the area occupied by the artificial neuron is at least one hundred times larger than each of the plurality of memory cells. 如申請專利範圍第7項所述的記憶體裝置,其中     所述人工神經元佔據8000 F2 或更大的面積;以及     所述多個記憶體單元中的每一個佔據30 F2 或更小的面積,其中F2 為表示技術節點的最小可解析特徵的相對面積單位。The memory device according to item 7 of the patent application range, wherein the artificial neuron occupies an area of 8000 F 2 or more; and each of the plurality of memory cells occupies 30 F 2 or less Area, where F 2 is the relative area unit representing the smallest resolvable feature of the technology node. 如申請專利範圍第1項所述的記憶體裝置,其中所述記憶體狀態讀取器被配置成:     接收對應於基於所述第二級幾何平均運算元的輸出的記憶體狀態的記憶體電流;     當所述記憶體電流低於第一參考電流時,確定所述多個記憶體單元的記憶體狀態處於高電阻狀態;     當所述記憶體電流在所述第一參考電流與第二參考電流之間,所述第二參考電流大於所述第一參考電流時,確定所述多個記憶體單元處於第一中間狀態;     當所述記憶體電流在所述第二參考電流與第三參考電流之間,所述第三參考電流大於所述第二參考電流時,確定所述多個記憶體單元處於第二中間狀態;以及     當所述記憶體電流超過所述第三參考電流,所述第三參考電流高於所述第一參考電流時,確定所述多個記憶體單元處於低電阻狀態。The memory device according to item 1 of the patent application scope, wherein the memory state reader is configured to: receive a memory current corresponding to the memory state based on the output of the second-level geometric average operator When the memory current is lower than the first reference current, it is determined that the memory state of the plurality of memory cells is in a high resistance state; When the memory current is between the first reference current and the second reference current When the second reference current is greater than the first reference current, it is determined that the plurality of memory cells are in the first intermediate state; when the memory current is between the second reference current and the third reference current When the third reference current is greater than the second reference current, it is determined that the plurality of memory cells are in the second intermediate state; and when the memory current exceeds the third reference current, the first When the third reference current is higher than the first reference current, it is determined that the plurality of memory cells are in a low resistance state. 如申請專利範圍第10項所述的記憶體裝置,其中所述記憶體狀態讀取器進一步被配置成:     將所述第一參考電流選擇為高於與所述高電阻狀態相關聯的記憶體電流分佈中的最大電流;以及     將所述第三參考電流選擇為低於與所述低電阻狀態相關聯的記憶體電流分佈中的最小電流。The memory device of claim 10, wherein the memory state reader is further configured to: select the first reference current to be higher than the memory associated with the high resistance state The maximum current in the current distribution; and The third reference current is selected to be lower than the minimum current in the memory current distribution associated with the low resistance state. 如申請專利範圍第2項所述的記憶體裝置,其中     所述至少一個第二級幾何平均運算元包括兩個第二級幾何平均運算元;以及     所述記憶體狀態讀取器經由第三級幾何平均運算元耦合到所述兩個第二級幾何平均運算元。The memory device according to item 2 of the patent application scope, wherein the at least one second-level geometric average operator includes two second-level geometric average operators; and the memory state reader passes the third level The geometric average operator is coupled to the two second-level geometric average operators. 如申請專利範圍第2項所述的記憶體裝置,更包括多個濾波電路,其中     所述多個第一級幾何平均運算元中的每一個經由所述多個濾波電路中的至少一個耦合到所述多個記憶體單元中的至少兩個;以及     所述濾波電路包括帶通濾波器以及最小/最大濾波器。The memory device as described in item 2 of the patent application scope further includes a plurality of filter circuits, wherein each of the plurality of first-level geometric average operators is coupled to at least one of the plurality of filter circuits At least two of the plurality of memory cells; and the filter circuit includes a band pass filter and a min/max filter. 如申請專利範圍第2項所述的記憶體裝置,更包括多個緩衝器電路,其中     所述至少一個第二級幾何平均運算元經由所述多個緩衝器電路中的至少一個耦合到所述多個第一級幾何平均運算元中的至少兩個。The memory device as described in item 2 of the patent application scope further includes a plurality of buffer circuits, wherein the at least one second-level geometric averaging operand is coupled to the buffer via at least one of the plurality of buffer circuits At least two of the multiple first-level geometric averaging operands. 如申請專利範圍第2項所述的記憶體裝置,更包括額外幾何平均運算元,其中     所述多個記憶體單元包括2K 個記憶體單元,其中K為任何正整數;以及     所述多個第一級幾何平均運算元的數目加上所述至少一個第二級幾何平均運算元的數目加上所述額外幾何平均運算元的數目至少為2K -1。The memory device as described in item 2 of the patent application scope further includes an additional geometric average operator, wherein the plurality of memory cells includes 2 K memory cells, where K is any positive integer; and the plurality The number of first-level geometric average operators plus the number of the at least one second-level geometric average operand plus the number of additional geometric average operators are at least 2 K -1. 一種記憶體裝置,包括:     多個非揮發性記憶體單元;     用於通過使與所述記憶體單元相關聯的記憶體讀取電流相乘而產生第一乘積的構件;     用於通過對所述第一乘積執行開方運算而產生第一方根的構件;以及     用於基於對應於所述第一方根的記憶體電流確定所述多個記憶體單元的記憶體狀態的構件。A memory device, including: a plurality of non-volatile memory cells; a component for generating a first product by multiplying a memory reading current associated with the memory cell; a device for generating a first product; The first product performs a square root operation to generate a first square root; and means for determining the memory state of the plurality of memory cells based on the memory current corresponding to the first square root. 如申請專利範圍第16項所述的記憶體裝置,進一步其中     所述用於產生第一乘積的構件包含用於產生多個第一乘積的構件;     所述用於產生第一方根的構件包含用於產生多個第一方根的構件;     所述記憶體裝置更包括:     用於通過使所述多個第一方根的第一子集相乘而產生第二乘積的構件,所述第一子集包括所述多個第一方根中的至少兩個;     用於通過對所述第二乘積執行開方運算而產生第二方根的構件;以及     所述記憶體電流進一步基於所述第二方根。The memory device according to item 16 of the patent application scope, further wherein the means for generating the first product includes a means for generating a plurality of first products; the means for generating the first square root includes Means for generating a plurality of first square roots; the memory device further includes: means for generating a second product by multiplying the first subset of the plurality of first square roots, the first A subset includes at least two of the plurality of first square roots; means for generating a second square root by performing a square root operation on the second product; and the memory current is further based on the Second party root. 如申請專利範圍第17項所述的記憶體裝置,更包括:     用於通過使所述多個第一方根的第二子集相乘而產生第三乘積的構件,所述第二子集包含所述多個第一方根中的至少兩個,所述第二子集不同於所述第一子集;     用於通過對第三乘積執行開方運算而產生所述第三方根的構件;     用於通過使所述第二方根與第三方根相乘而產生所述第四乘積的構件;以及     用於通過對所述至少一個第四乘積執行開方運算而產生第四方根的構件;     其中     所述記憶體電流進一步基於所述第四方根。The memory device as described in item 17 of the patent application scope further includes: means for generating a third product by multiplying the second subsets of the plurality of first square roots, the second subsets Including at least two of the plurality of first-party roots, the second subset is different from the first subset; means for generating the third-party root by performing a square root operation on a third product A means for generating the fourth product by multiplying the second square root and a third-party root; and a means for generating a fourth square root by performing a square root operation on the at least one fourth product Component; wherein the memory current is further based on the fourth square root. 一種用於確定記憶體狀態的方法,所述方法包括:     獲得多個記憶體單元的多個記憶體讀取電流;     基於所述多個記憶體讀取電流確定乘積;     基於所述乘積確定方根;以及     基於所述方根確定所述記憶體狀態。A method for determining the state of a memory, the method comprising: obtaining a plurality of memory read currents of a plurality of memory units; determining a product based on the plurality of memory read currents; determining a square root based on the product ; And determining the state of the memory based on the square root. 如申請專利範圍第19項所述的方法,其中     所述多個記憶體讀取電流包括兩個記憶體讀取電流;以及     確定方根包括確定所述兩個記憶體讀取電流的乘積的平方根。The method according to item 19 of the patent application scope, wherein the plurality of memory reading currents include two memory reading currents; and determining the square root includes determining the square root of the product of the two memory reading currents .
TW107140336A 2018-11-14 2018-11-14 Circuit and method for memory operation TWI674579B (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7209068B1 (en) * 2021-10-19 2023-01-19 ウィンボンド エレクトロニクス コーポレーション semiconductor storage device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
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

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