CN106201336B - 具有回写缓存器的设备及其相关方法 - Google Patents
具有回写缓存器的设备及其相关方法 Download PDFInfo
- Publication number
- CN106201336B CN106201336B CN201610348758.3A CN201610348758A CN106201336B CN 106201336 B CN106201336 B CN 106201336B CN 201610348758 A CN201610348758 A CN 201610348758A CN 106201336 B CN106201336 B CN 106201336B
- Authority
- CN
- China
- Prior art keywords
- data
- write
- source
- back buffer
- circuit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/005—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/229—Timing of a write operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1087—Data input latches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Static Random-Access Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及具有回写缓存器的设备及其相关方法。一种设备包括用于通信数据的源和用于存储通过所述源通信的数据的存储电路。所述设备进一步包括:用于在未对准写入操作中存储通过所述源通信的数据的回写缓存器,以便提高所述源和所述存储电路之间的吞吐量。
Description
技术领域
本公开通常涉及具有提高的吞吐量和性能的电子设备,并且更具体地,涉及使用回写缓存器以提高性能的电子设备及其相关方法。
背景技术
诸如存储器(例如,随机访问存储器(RAM))的电子设备通常访问组块或集合中的诸如字(例如,32位字)的数据。一些存储器存储具有误差校正编码(ECC)数据或信息的数据。基于给定字中的数据计算ECC数据,并且将该ECC数据与相应的字一起写入至存储器。在读取操作期间,既读取ECC数据,又读取相应的字。ECC数据允许一些误差(例如,一个错误位或多于一个的错误位)的检测和/或校正。
在该部分中的描述和任何对应的一个或更多个附图作为背景信息材料被包括。该部分中的材料不应该被认为承认该材料构成本专利申请的现有技术。
发明内容
包括回写缓存器以提高吞吐量的各种设备及其对应方法是预期的。根据一个示例性实施方式,一种设备包括:用于通信数据的源,和用于存储通过所述源通信的数据的存储电路。所述设备进一步包括:回写缓存器,所述回写缓存器用于在未对准写入操作中存储通过所述源通信的数据,以便提高所述源和所述存储电路之间的吞吐量。
根据另一个示例性实施方式,一种设备包括:存储器电路。所述存储器电路包括:控制器,其经由链路耦合以执行以下操作:从在所述存储器电路外部的源接收数据,并且将数据提供至在所述存储器电路外部的所述源。所述存储器电路进一步包括:存储电路,所述存储电路用于在写入操作中存储数据,并且用于在读取操作中提供数据。所述存储器电路还包括:回写缓存器,其经耦合以执行以下操作:在所述写入操作中存储数据,并且在所述读取操作中提供数据,以便提高在所述存储器电路和所述存储器电路外部的所述源之间的未对准写入数据吞吐量。
根据另一个示例性实施方式,一种写入未对准数据的方法包括:在未对准写入操作期间接收来自源数据,以及在存储电路中存储从所述源接收的所述数据。所述方法进一步包括:在回写缓存器中存储从所述源接收的所述数据,以提高所述源和所述存储电路之间的吞吐量。
附图说明
附图仅例示多个示例性实施方式,并且因此不应该被认为限制本申请或权利要求的范围。本领域技术中普通技术人员将理解的是,所公开的概念适用于其它等效的实施方式。在附图中,在多于一个附图中使用的相同附图标记指示相同、相似或等效的功能、组件或块。
图1例示根据一个示例性实施方式的用于使用回写缓存器存储信息的电路布置。
图2描述根据一个示例性实施方式的用于使用回写缓存器存储信息的方法的流程图。
图3描述根据另一个示例性实施方式的用于使用回写缓存器存储信息的电路布置。
图4示出根据另一个示例性实施方式的用于使用回写缓存器存储信息的电路布置。
图5例示根据一个示例性实施方式的用于使用回写缓存器的存储器电路的电路布置。
图6描述根据一个示例性实施方式的包括具有回写缓存器的存储器电路的微控制器单元(MCU)的电路布置。
图7例示根据另一个示例性实施方式的具有回写缓存器的MCU和存储器的电路布置。
图8示出根据另一个示例性实施方式的具有回写缓存器的MCU和存储器的电路布置。
具体实施方式
所公开的概念通常涉及使用回写缓存器的电子设备。更具体地,所公开的概念提供用于使用回写缓存器以提高电子装置中的吞吐量(诸如与存储器(例如,RAM、闪存等)的数据通信)的设备和方法。
图1例示根据一个示例性实施方式的用于使用回写缓存器存储信息的电路布置100。电路布置包括:源105和目的地125。
源105构成数据(通常,信息)的源。例如,在各种实施方式中,源105可以构成数字信息的源,诸如处理器、输入/输出(I/O)装置、外围设备、模数转换器(ADC)等。
源105提供待写入或待提供的数据至目的地125。更具体地,源105经由链路110提供数据。在示例性实施方式中,链路110可以构成诸如总线、用于携带数据的导体组或半导体组等的耦合机构。
在示出的实施方式中,目的地125包括:控制器135、回写缓存器130和存储电路115。控制器135促进源105和目的地125之间的通信。更具体地,控制器135接收来自源105的数据,并且处理与回写缓存器130和存储电路的通信。
在多个示例性实施方式中,控制器135使用链路120(诸如,总线、用于携带数据的导体组或半导体组等的耦合机构,与链路110相似)与目的地回写缓存器125通信。相似地,控制器135使用链路123(诸如,总线、用于携带数据的导体组或半导体组等的耦合机构,与链路110相似)与存储电路115通信。
使用链路120,控制器135将数据提供至回写缓存器130,并且接收来自回写缓存器130的数据。此外,控制器135可以使用链路120,以将状态和/或控制信号通信给回写缓存器130。
相似地,使用链路123,控制器135将数据提供至存储电路115,并且从存储电路115接收数据。此外,控制器135可以使用链路123,以将状态和/或控制信号通信给存储电路115。
如上所述,目的地125接收来自源105的数据,并且在存储电路115中存储数据。更具体地,目的地125使用控制器135,以促进与源105的通信以接收数据。一旦接收数据,则控制器135在存储电路115(例如,存储器、或其它存储或接收器或目的地电路,诸如变换器、数模转换器(DAC)、外围设备等)中存储数据。
作为本领域中的普通技术人员将理解的是,在存储电路115中使用的具体电路系统取决于给定应用的规格。如上所述,在一些实施方式中,存储电路115构成存储器。
在这种实施方式中,存储器提供用于存储从源105接收的信息的机制(即,写入操作)。存储器还提供用于检索信息和向源105(或其它源或电路)提供信息的机制(即,读取操作)。根据需要,存储器可以包括一个或更多个库(bank)。
在一些实施方式中,存储器可以包括控制器或控制电路系统。控制器提供用于与源105和/或目的地125中的其它电路系统通信的机制。例如,控制器可以针对写入操作接收数据,以及针对读取操作提供数据。因此,作为本领域中普通技术人员将理解的是,控制器可以包括诸如地址解码器、缓存器等的电路系统。
控制器还可以提供用于与源105和/或其它电路系统(诸如目的地125中的电路系统)通信的机制或协议。因此,作为本领域中普通技术人员将理解的是,控制器可以允许存储器满足所需协议、定时约定(convention)、规格(例如,吞吐量)等。
在多个示例性实施方式中,可以使用各种类型的存储器。一般地,存储器可以分成易失性存储器和非易失性(NV)存储器的类别。作为本领域中普通技术人员将理解的是,易失性存储器的示例包括RAM,诸如动态RAM(DRAM)、静态RAM(SRAM)等。作为本领域中普通技术人员将理解的是,非易失性存储器的示例包括:闪存存储器等。
通常,将数据以位的组块或集合方式提供至目的地125,并且最终提供至存储电路115。例如,数据可以被提供为一组字。字可以具有各种长度或配置,诸如字节或通常的位的集合,诸如16位、32位等。
在多个示例性实施方式中,存储电路115(或通常的目的地125)能够容纳一个或更多个操作。例如,在一些实施方式中,存储电路115能够存储数据(即,支持写入操作)。如另一个示例,在一些实施方式中,存储电路115既能够存储数据,又能够将数据提供至另一个装置、块、或电路(未示出)。换言之,存储电路115能够支持写入操作和读取操作二者。
在一些实施方式中,目的地125使用控制器135,以促进读取和/或写入操作。在一些实施方式中,存储电路115包括用于提供读取和/或写入操作的电路系统。
在多个示例性实施方式中,根据需要,写入和读取操作可以在数据的一个或更多个字上操作。例如,在32位字上操作的一个实施方式中,在读取操作中,使用上述的机制(例如,与控制器135协作),目的地125导致读取来自存储电路115的一个或更多个32位字。读取或获取的数据(即,一个或更多个32位字)通信至源105。
相反地,在写入操作中,源105可以将一个或更多个32位字提供至目的地125,以最终存储在存储电路115中。使用上述机制(例如,与控制器135协作),目的地125导致在存储电路115中存储一个或更多个32位字。
在一些操作中,从目的地125读取数据,修改数据,并且然后将其存储在目的地125中(即,读取-修改-写入操作)。在这种操作中,如上所述,从目的地125读取数据。然后,例如,通过源105或另一个电路(未示出)修改数据。修改可以改变或修改数据的一个或更多个字的一个或更多个位。
然后,如上所述,使用写入操作将所修改的或新的数据写入至目的地125。写入操作可以发生在逐字的基础上(即,每次写入一个字),或者根据需要,可以每次写入比一个字更多的字。
读取-修改-写入操作可以导致字对准或字未对准(通常,未对准)的写入操作。具体地,在一些读取-修改-写入操作中,修改从目的地125读取的整个字。例如,可以从目的地125读取32位字,并且可以修改(例如,反相)全部的32位。然后,将所修改的数据(即,所修改的32位字)写入至目的地125。因为修改了数据字的全部位,所以操作涉及字对准的写入操作。
然而,在一些读取-修改-写入操作中,写入操作可以构成至目的地125的未对准的写入,并且最终构成至存储电路115的未对准的写入。具体地,在一些读取-修改-写入操作中,修改从目的地125读取的字的一部分。为了修改字的一部分,首先从目的地125读取整个字。
例如,从目的地125读取32位字,并且可以修改(例如,反相)低阶的16位(半字)。字的剩余部分(在这个示例中,高阶的16位)包含原始数据(即,没有被修改)。因此,修改没有发生在字边界上,因为修改了一半的字,而另一半维持不变。
然后,将所修改的数据(即,在上述示例中,在32位字中具有修改的低阶16位的数据字)写入至目的地125。因为修改数据字的一些位,而不是全部位,所以读取-修改-写入操作涉及未对准的写入操作。在上述示例中,虽然除了16位维持不变之外,修改了32位字中的16位字,但是读取整个字、修改16位、以及使用未对准写入操作将所修改的字(即,具有所修改的16位的原始数据字)写入目的地125。
未对准写入操作能够不利地影响从源105至目的地125的数据吞吐量。考虑其中将数据字存储在目的地125(更具体地,存储电路115)中需要时钟(例如,用于目的地125或存储电路115的时钟信号)的一个循环的情况的示例。利用对准写入操作,写入操作能够在一个时钟循环中完成。
在未对准写入的情况中,例如,作为读取-修改-写入操作的一部分,该操作任务需要两个时钟循环。具体地,在一个时钟循环中,从存储电路115读取数据字,并且将其修改以反映将要写入回至存储电路115的所需的新的数据。在另一个时钟循环中,将新数据或所修改的数据写入至存储电路115。
因此,总的来说,读取-修改-写入操作在其涉及未对准写入操作时需要两个时钟循环。换言之,相比于字对准写入操作,未对准写入操作导致时钟循环损失。当未对准写入操作的数目增加时,额外的时钟循环(即,是两个循环,而不是一个循环)的数目也增加。结果,减少了源105和目的地125之间的数据吞吐量。
然而,使用回写缓存器130能够针对未对准写入操作提高或增加数据吞吐量。更具体地,当未对准写入发生时,例如,数据字的未对准写入操作发生时,从存储电路115(例如,存储器)读取字并且将其存储在回写缓存器130中。
控制器135可以促进或导致该操作发生。换言之,控制器135可以检索或获取或读取来自存储电路115的数据字,并且导致数据字被存储在回写缓存器130中。
还可以修改数据字。具体地,如上所述,一旦从存储电路115读取数据字,则可以修改该数据字,并且然后将结果(即,所修改的数据字)存储在存储电路115中(读取-修改-写入操作)。
在多个示例性实施方式中,控制器135可以执行修改或导致修改发生。修改可以被视为新数据生成操作,即,生成新(所修改)的数据以将其写入回至存储电路115。例如,如果现有的32位数据字(即,从存储电路115读取的数据字)是十六进制FFFFFFFF,以及修改涉及对较低半字反相,则新的数据生成器将产生十六进制FFFF0000作为所修改的或新的数据字。
根据需要,用于执行修改的电路系统(例如,新的数据生成器)可以被实现在各种方式中。例如,作为本领域中普通技术人员将理解的是,在多个示例性实施方式中,新的数据生成器可以包括:相对简单的逻辑电路系统。
一旦已经发生修改并且生成新的数据,则将结果(所修改的或新的数据)写入至存储电路115(例如,从其中读取原始数据的存储器)。还将该结果(所修改的或新的数据)写入至回写缓存器130。
在多个示例性实施方式中,控制器135可以协调或监督上述操作,或导致它们发生。因此,控制器135可以导致新的数据字被写入至存储电路115和回写缓存器130。根据需要,控制器135可以与控制电路系统协作在存储电路115、回写缓存器130,或二者中实现这个结果。
如上所述,回写缓存器130的使用增加或提高数据吞吐量。更具体地,一旦将新的数据字写入至回写缓存器130,则自该位置或地址(例如,用于存储器,或通常存储电路115中的字的地址)的未来命中(读取或写入数据)要求从回写缓存130读取数据、根据需要修改数据、以及将新的或所修改的数据写入回写缓存器130和存储电路115二者中。
因此,在给定位置处的字上的第一次操作之后,随后写入至相同位置不会引发上述常规方法中的两个时钟循环操作。相反,缓存器的(例如,在导致对于相同位置的命中的随后操作中的)读取操作可以发生在其中写入操作发生的相同时钟循环中。
更具体地,在多个示例性实施方式中,使用寄存器实现回写缓存器130。第一次发生对于给定位置的命中时,将新的数据写入至回写缓存器130。在随后操作涉及相同位置的情况下,在一个时钟循环中,从回写缓存器130读取数据、修改数据(例如,使用新的数据生成器)、以及将其写入回至回写缓存器130。因此,相比于常规的方法(即,在两个时钟循环中读取、修改和写入),使用回写缓存器130提高或增加源105和目的地125之间的数据流的吞吐量。
更具体地,在常规方法中,通常从存储器读取数据。这个操作常常需要一个时钟循环。然后,将该数据修改并且写回至存储器。这个操作常常需要额外的时钟循环。因此,读取-修改-写入需要两个时钟循环。
然而,使用回写缓存器130将时间周期降低至一个时钟循环。具体地,从回写缓存器130读取数据(例如,字)。然后,修改数据以生成新的数据(例如,新的数据字),并且将其写入至回写缓存器130和写入至存储电路115。可以在一个时钟循环中完成对回写缓存器130读取、修改和写入数据。因此,使用回写缓存器130提供超过常规方法的速度或吞吐量优势。
如上所述,在一些实施方式中,存储电路115可以构成存储器。在一些实施方式中,存储器可以例如通过使用ECC支持误差校正。使用回写缓存器130还提供在使用采取ECC的存储器(即,ECC存储器)时的优势。
在使用ECC的存储器中,通常利用数据计算和存储校正子。校正子生成通常涉及数据位上的算术和/或逻辑运算(例如,执行异或和移位运算),以生成一组位、允许误差检测和/或误差校正的校正子。(作为本领域中普通技术人员将理解的是,误差可以由于各种原因而发生,例如由于电源供应故障、宇宙粒子(cosmic particles)等)。
校正子通常与数据位一起被存储在存储器中。例如,存储器可以具有32位字和7位校正子。因此,存储每个字使用39位,即32位用于数据和额外7位用于校正子。换言之,存储器是39位宽。
如上所述,可以利用ECC存储器的未对准写入操作使用回写缓存器130。在读取操作期间,具有对应的校正子的数据被一起从ECC存储器中的所需的或给定地址读取。在修改操作期间,新的数据生成器生成修改的或新的数据。校正子生成器生成与新数据对应的校正子。在写入操作期间,将新的数据和对应校正子写入至回写缓存器130和存储器。
在对于相同位置的随后读取操作期间,从回写缓存器130读取数据和对应的校正子。可以执行修改操作,以生成新的数据和对应的校正子位。然后,可以将新的数据和对应的校正子写入至回写缓存器130和ECC存储器。这个操作需要一个时钟循环。更具体地,可以在一个时钟循环中执行读取操作、生成新的数据和对应校正子、以及向回写缓存器130写入结果。
图2描述根据一个示例性实施方式的用于使用回写缓存器存储信息的方法的流程图。根据需要,可以通过控制器135(见图1)或通过其它机构执行过程流。
参照图2,在205处接收命令。例如,可以从源105接收命令。除了其它事件之外,命令通常可以与与目的地125,或更具体地与存储电路115相关的操作相关。
在210处,解释命令。命令的解释部分地涉及确定其是否包括用于涉及目的地125或存储电路115的一个或更多个操作的一个或更多个指令。如果是,则命令可以涉及读取和/或写入操作。
在读取操作的情况中,在215处,从目的地125(例如,从存储电路115)读取字,并且将字存储在回写缓存器130中。然后,命令的发起者(例如,源105)可以接收所请求的数据。
在写入操作的情况中(例如,作为读取-修改-写入操作的一部分),在220处生成新的数据。在一些情况中,数据的源可以直接地提供新的数据。在这种情况下,由于从源(例如,源105)提供新的数据时,没有新的数据需要被生成。
在225处,如果使用ECC存储器,则生成与新数据对应的校正子。在230处,将新数据写入至回写缓存器130和写入至目的地125(例如,存储电路115)。在ECC存储器的情况下,还将与新数据对应的校正子写入至回写缓存器130和目的地125(例如,存储电路115)。
在一些实施方式中,源105和目的地125可以驻留在单独的电路分区中。例如,在一些实施方式中,源105和目的地125可以各自驻留在集成电路(IC)中。作为另一个示例,在一些实施方式中,源105和目的地125可以驻留在多芯片模块(MCM)内。在这种布置中,源105和目的地125可以各自构成半导体管芯(die)。
包含回写缓存器130的各种电路布置是可能的和预期的。在各种实施方式中,回写缓存器130可以位于选择的若干位置中。更具体地,在多个示例性实施方式中,根据需要,可以在目的地125(如图1中所示)、在源105中包括回写缓存器130,或者该回写缓存器130可以分离于源105和目的地125而被包括。
图3描述根据另一个示例性实施方式的用于使用回写缓存器存储信息的电路布置150。电路布置150包括回写缓存器130,并且与图1中的电路布置100相似地操作。
然而,在图3中示出的实施方式中,控制器135和回写缓存器130被包括在电路分区140内。虽然源105和目的地125被示出为包括在单独电路分区中,但是它们可以根据需要驻留在相同电路分区内。
在一些实施方式中,电路分区140可以构成IC。在这种布置中,源105和目的地125可以各自驻留在单独IC中或可以被包括在一个IC中。在一些实施方式中,电路分区140可以被包括在MCM中(例如,作为半导体管芯)。根据需要,MCM可以包括源105和/或目的地125。
图4示出根据另一个示例性实施方式的用于使用回写缓存器存储信息的电路布置160。电路布置160包括回写缓存器130,并且与图1中的电路布置100相似地操作。
然而,在图4中示出的实施方式中,控制器135和回写缓存器130被包括在源105内。源105驻留在电路分区165中。包括存储电路115的目的地125驻留在电路分区170中。
在一些实施方式中,电路分区165和电路分区170可以构成IC。在这种布置中,电路分区165和电路分区170可以各自驻留在单独IC中。在一些实施方式中,电路分区165和电路分区170可以被包括在MCM中(例如,作为两个半导体管芯)。
本公开的一个方面涉及包括回写缓存器的存储器电路。在一些实施方式中,这种存储器电路可以与其它电路一起被包括(例如,作为子系统或块),例如,作为IC的一部分。在一些实施方式中,这种存储器电路可以被提供为单独电路分区(例如,作为半导体管芯、IC等)。
图5例示根据一个示例性实施方式的用于使用回写缓存器130的存储器电路300的电路布置。存储器电路300包括控制器135、回写缓存器130和存储器阵列115。
控制器135包括控制电路系统310、校正子生成器315和新数据生成器320。如以上详细所述地,新数据生成器320修改数据的一个或更多个单元或组块(例如,一个或更多个字)以生成新的或所修改的数据。
如以上详细所述地,校正子生成器315生成与给定数据单元(例如,字)对应的校正子。例如,校正子生成器315可以生成与通过新数据生成器320生成的新的数据字对应的校正子。如以上详细所述地,在多个示例性实施方式中,新的数据和对应校正子被存储在回写缓存器130和存储器阵列115中。
回写缓存器130在控制器135的监督下操作。如以上详细所述地,回写缓存器130提供提高的或增加的数据吞吐量,和/或增加的数据通信速度。
在多个示例性实施方式中,存储器阵列115根据需要可以包括:各种存储器电路系统。如以上详细所述地,多个示例包括易失性存储器和非易失性存储器。
控制电路系统310监督或控制回写缓存器130、校正子生成器315和新的数据生成器320的相应操作。控制电路系统310还可以使用链路325以与在存储器电路300外部的电路通信。在多个示例性实施方式中,链路320可以构成诸如总线、用于通信诸如数据、命令、状态信息等信息的导体组或半导体组的耦合机构。
更具体地,如上结合图2详细描述地,控制电路系统310可以经由链路325接收一个或更多个命令。参照图5,控制电路系统310可以解释和执行一个或更多个命令,以便导致发生涉及存储器阵列115的一个或更多个操作(例如,读取操作、写入操作和读取-修改-写入操作)。
在一些实施方式中,存储器电路300可以经由链路325与外部处理器(未示出)通信。如以上详细所述地,在这种配置中,存储器电路300可以从外部处理器接收命令和/或数据,并且作为响应执行一个或更多个操作(例如,读取操作、写入操作和读取-修改-写入操作)。
在一些实施方式中,存储器电路300可以与诸如处理器、MCU等的其它电路系统一起被包括。图6描述根据一个示例性实施方式的包括具有回写缓存器130的存储器电路300的MCU 355的电路布置。
MCU 355包括若干块(例如,处理器365、数据转换器405、I/O电路系统385等),该若干块使用链路360与存储器电路300通信。在多个示例性实施方式中,链路320可以构成诸如总线、用于通信诸如数据、命令、状态信息等信息的导体组或半导体组的耦合机构。
MCU 355可以包括耦合至一个或更多个处理器365、时钟电路系统375和功率管理电路系统380的链路。时钟电路系统375可以生成一个或更多个时钟信号,该时钟信号促进或控制MCU 355中的一个或更多个块的操作的定时。时钟电路系统375还可以控制使用链路360的操作的定时。
在一些实施方式中,功率管理电路系统380可以降低装置(例如MCU 355)的时钟速度、关闭时钟、降低功率、关闭功率或执行关于电路的一部分或电路的全部组件的前述的任何组合。另外,功率管理系统电路380可以打开时钟、增加时钟速率、打开功率、增加功率、或响应于从未激活状态至激活状态的转变(诸如,当一个或更多个处理器365进行从低功率或空闲或睡眠状态至正常操作状态的转变时)执行前述的任何组合。
链路360可以通过串行接口395耦合至一个或更多个电路400。通过串行接口395,耦合至链路360的一个或更多个电路可以与电路400通信。作为本领域中普通技术人员将理解的是,电路400可以使用一个或更多个串行协议,例如,SMBUS、I2C、SPI等通信。
链路360可以通过I/O电路系统385耦合至一个或更多个外围设备390。通过I/O电路系统385,一个或更多个外围设备390可以耦合至链路360,并且可以因此与耦合至链路360的其它块(例如,一个或更多个处理器365、存储器电路300等)通信。
在多个示例性实施方式中,外围设备390可以包括各种电路系统、块等。多个示例包括:I/O装置(小键盘、键盘、扬声器、显示装置、存储装置、定时器等)。请注意,在一些实施方式中,一些外围设备390可以是在MCU 355的外部。多个示例包括小键盘、扬声器等。
在一些实施方式中,对于一些外围设备,I/O电路系统385可以被绕过。在这种实施方式中,一些外围设备390可以无需使用I/O电路系统385而耦合至链路360并且与链路360通信。请注意,如上所述,根据需要,在一些实施方式中,这种外围设备390可以是在MCU 355的外部。
链路360可以经由数据转换器405耦合至模拟电路系统。数据转换器405可以包括一个或更多个ADC和/或一个或更多个DAC。一个或更多个ADC从模拟电路系统420接收一个或更多个模拟信号,并且将该一个或更多个模拟信号转换成数字格式,该一个或更多个ADC将该数字格式的信号通信给耦合至链路360的一个或更多个块。
相反地,一个或更多个DAC接收来自耦合至链路360的一个或更多个块的一个或更多个数字信号,并且将该一个或更多个数字信号转换成模拟格式。根据需要,该一个或更多个模拟信号可以被提供至在MCU 355内的电路系统(例如,模拟电路系统420)或在MCU 355外部的电路系统。
模拟电路系统420可以包括:提供和/或接收模拟信号的各种各样的电路系统。作为本领域中普通技术人员将理解的是,多个示例包括:传感器、换能器等。
控制电路系统370耦合至链路360。因此,控制电路系统370可以与耦合至链路360的各种块通信,和/或控制耦合至链路360的各种块的操作。此外或作为另选地,控制电路系统370可以促进耦合至链路360的各种块之间的通信或协作。
在一些实施方式中,控制电路系统370可以开始或响应于重置操作。作为本领域中普通技术人员将理解的是,重置操作可以导致耦合至MCU 355的链路360的一个或更多个块的重置。
在多个示例性实施方式中,控制电路系统370可以包括电路系统的各种类型和块。在一些实施方式中,控制电路系统370可以包括用于执行如上所述的各种操作的逻辑电路系统、有限状态机械(FSM)、或其它电路系统。
如上所述,存储器电路300耦合至链路360。因此,存储器电路300可以与耦合至链路360的诸如一个或更多个处理器365、控制电路系统370、I/O电路系统385等的一个或更多个块通信。在示出的实施方式中,存储器电路300包括:控制电路系统310、新数据生成器315、新数据生成器320、存储器阵列115和回写缓存器130。存储器电路300中的电路系统的各种块可以如以上详细所述地操作。
如上所述,存储器阵列115可以包括:各种存储器电路或块。在所示的实施方式中,存储器阵列115包括:易失性存储器115A和非易失性(NV)存储器115B。在一些实施方式中,存储器阵列115可以包括易失性存储器115A。在一些实施方式中,存储器阵列115可以包括NV存储器115B。
如上所述,使用回写缓存器130提高或增加存储器电路300的吞吐量。因此,使用回写缓存器130改善存储器电路300和耦合至链路360的一个或更多个块之间的通信。请注意,在示出的实施方式中,回写缓存器130被包括为存储器电路300的一部分。在其它实施方式中,回写缓存器130可以被包括在MCU 355中的另一个块中,或可以作为另一个块耦合至链路360。
MCU和存储器电路的各种其它配置和布置是可能的并且是预期的。图7例示根据另一个示例性实施方式的包括回写缓存器130的MCU 355和存储器电路300的电路布置。在图7中示出的实施方式中,MCU 355被包括在IC 350中。相反地,存储器电路300被包括在IC 430中。
如上所述,MCU 355经由链路325与存储器电路300通信。更具体地,链路325允许MCU 355(例如,在MCU 355中的一个或更多个块或电路)与存储器电路300通信。如上所述,存储器电路300包括回写缓存器130,其如以上详细描述地,提高或增加MCU 355和存储器电路300之间的数据吞吐量。
图8示出根据另一个示例性实施方式的包括回写缓存器130的MCU 355和存储器电路300的电路布置。在图7中示出的实施方式中,MCU 355被包括在管芯450A中。相反地,存储器电路300被包括在管芯450B中。管芯450A和管芯450B被包括在MCM 455中。
与图7的实施方式相似,如上所述,图8中的MCU 355经由链路325与存储器电路300通信。更具体地,链路325允许MCU 355(例如,在MCU 355中的一个或更多个块或电路)与存储器电路300通信。如上所述,存储器电路300包括回写缓存器130,其如以上详细描述地,提高或增加MCU 355和存储器电路300之间的数据吞吐量。
作为本领域中普通技术人员将理解的是,人们可以将公开的概念有效地应用至各种电子装置和设备。在这个文档中描述的示例仅仅构成了例示的应用,并且不旨在对公开的概念通过进行适合的修改应用到其它类型的装置和设备进行限制。那些修改落入本领域中普通技术人员的知识和技术水平内。例如,根据需要,替代MCU,回写缓存器可以用在微处理器、可编程逻辑电路等中,或与微处理器、可编程逻辑电路等一起使用。
参照附图,本领域中普通技术人员将注意的是,示出的各种块可以主要描述概念性功能和信号流。实际电路实现方式可能包含或可能不包含各种功能块的单独可识别的硬件,并且可能使用或可能不使用所示的具体电路系统。例如,根据需要,人们可以将各种块的功能组合成一个电路快。此外,根据需要,人们可以在若干块中实现单个块的功能。电路实现方式的选择取决于各种因素,诸如针对给定实现方式的具体设计和性能规格。将对本领域中普通技术人员显而易见的是,除了本文描述的那些之外的其它修改和另选的实现方式。因此,本说明书教导了本领域中的技术人员执行公开的概念的方式,并且仅被解释为例示性的。如果适用的话,作为本领域中普通技术人员将理解的是,附图可能或可能不按比例绘制。
示出和描述的形式和实施方式应当作为例示的实施方式采用。在不偏离该文献中公开的范围的情况下,本领域中技术人员可以在形状、大小和布置方面对各部分进行各种改变。例如,本领域技术人员可以使用等效元件替代本文中例示和描述的元件。因此,在不偏离公开的概念的范围的情况下,本领域技术人员可以独立于其它特征的使用而使用公开的概念的某些特征。
Claims (20)
1.一种具有回写缓存器的设备,所述设备包括:
源,所述源用于通信数据;
存储电路,所述存储电路用于存储通过所述源通信的数据;以及,
回写缓存器,所述回写缓存器用于在未对准写入操作中存储通过所述源通信的数据,以便提高所述源和所述存储电路之间的吞吐量。
2.根据权利要求1所述的设备,其中,所述未对准写入操作作为读取-修改-写入操作的一部分发生。
3.根据权利要求1所述的设备,其中,所述存储电路包括:存储器电路。
4.根据权利要求3所述的设备,其中,所述存储器电路包括:易失性存储器电路系统和/或非易失性存储器电路系统。
5.根据权利要求3所述的设备,其中,所述存储器电路包括:误差-校正代码,即ECC。
6.根据权利要求1所述的设备,其中,所述存储电路驻留在集成电路即IC中。
7.根据权利要求6所述的设备,其中,所述回写缓存器驻留在所述IC中。
8.根据权利要求7所述的设备,其中,所述IC包括:微控制器单元,即MCU。
9.根据权利要求1所述的设备,其中,所述回写缓存器包括:寄存器。
10.根据权利要求2所述的设备,其中,所述读取-修改-写入操作包括:向所述存储电路和所述回写缓存器二者写入数据。
11.一种具有回写缓存器的设备,所述设备包括:
存储器电路,所述存储器电路包括:
控制器,所述控制器经由链路被耦合,以执行以下步骤:从在所述存储器电路外部的源接收数据,并且将数据提供至在所述存储器电路外部的所述源;
存储电路,所述存储电路用于在写入操作中存储数据,并且用于在读取操作中提供数据;以及,
回写缓存器,所述回写缓存器经耦合以执行以下步骤:在所述写入操作中存储数据,并且在所述读取操作中提供数据,以便提高在所述存储器电路和所述存储器电路外部的所述源之间的未对准写入数据吞吐量。
12.根据权利要求11所述的设备,其中,所述存储器电路驻留在集成电路即IC中。
13.根据权利要求11所述的设备,其中,所述源包括:处理器或微控制器单元即MCU。
14.根据权利要求11所述的设备,其中,所述存储器电路使用误差-校正代码,即ECC。
15.根据权利要求14所述的设备,其中,所述存储器电路进一步包括:新数据生成器,所述新数据生成器用于修改数据,以生成待写入至所述存储电路的新数据;以及校正子生成器,所述校正子生成器用于生成与所述新数据对应的校正子。
16.根据权利要求15所述的设备,其中,在未对准写入操作中,所述控制器导致所述新数据和对应校正子在一个时钟循环中被写入至所述存储电路和所述回写缓存器。
17.一种写入未对准数据的方法,所述方法包括:
在未对准写入操作期间,接收来自源的数据;
在存储电路中存储从所述源接收的所述数据;
在回写缓存器中存储从所述源接收的所述数据,以提高所述源和所述存储电路之间的吞吐量。
18.根据权利要求17所述的方法,进一步包括:在将所述数据存储到所述存储电路和所述回写缓存器中之前,修改从所述源接收的所述数据。
19.根据权利要求17所述的方法,其中,所述未对准写入操作作为读取-修改-写入操作的一部分发生。
20.根据权利要求17所述的方法,其中,在所述存储电路中存储从所述源接收的数据进一步包括:在一个时钟循环期间,在存储器中存储所述数据;以及其中,在所述回写缓存器中存储从所述源接收的数据进一步包括:在所述时钟循环期间,在寄存器中存储所述数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/720,811 | 2015-05-24 | ||
US14/720,811 US9378782B1 (en) | 2015-05-24 | 2015-05-24 | Apparatus with write-back buffer and associated methods |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106201336A CN106201336A (zh) | 2016-12-07 |
CN106201336B true CN106201336B (zh) | 2021-01-22 |
Family
ID=56136455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610348758.3A Active CN106201336B (zh) | 2015-05-24 | 2016-05-24 | 具有回写缓存器的设备及其相关方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9378782B1 (zh) |
CN (1) | CN106201336B (zh) |
DE (1) | DE102016108884A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3103620B1 (fr) * | 2019-11-21 | 2021-11-26 | St Microelectronics Rousset | Procédé d’écriture dans une mémoire volatile et circuit intégré correspondant |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4785349A (en) * | 1987-10-05 | 1988-11-15 | Technology Inc. 64 | Digital video decompression system |
CN1144434A (zh) * | 1994-07-29 | 1997-03-05 | Dva公司 | 视频解压缩方法和装置 |
CN105183378A (zh) * | 2015-08-31 | 2015-12-23 | 北京神州云科数据技术有限公司 | 自适应混合读/写缓存的方法 |
CN106066748A (zh) * | 2015-04-23 | 2016-11-02 | 辛纳普蒂克斯公司 | 传感器电极路径错误诊断 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4376974A (en) * | 1980-03-31 | 1983-03-15 | Ncr Corporation | Associative memory system |
US7138823B2 (en) * | 2005-01-20 | 2006-11-21 | Micron Technology, Inc. | Apparatus and method for independent control of on-die termination for output buffers of a memory device |
US9171585B2 (en) * | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
KR101959567B1 (ko) * | 2012-05-14 | 2019-03-18 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법 |
US10055294B2 (en) * | 2014-01-09 | 2018-08-21 | Sandisk Technologies Llc | Selective copyback for on die buffered non-volatile memory |
-
2015
- 2015-05-24 US US14/720,811 patent/US9378782B1/en active Active
-
2016
- 2016-05-13 DE DE102016108884.6A patent/DE102016108884A1/de active Pending
- 2016-05-24 CN CN201610348758.3A patent/CN106201336B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4785349A (en) * | 1987-10-05 | 1988-11-15 | Technology Inc. 64 | Digital video decompression system |
CN1144434A (zh) * | 1994-07-29 | 1997-03-05 | Dva公司 | 视频解压缩方法和装置 |
CN106066748A (zh) * | 2015-04-23 | 2016-11-02 | 辛纳普蒂克斯公司 | 传感器电极路径错误诊断 |
CN105183378A (zh) * | 2015-08-31 | 2015-12-23 | 北京神州云科数据技术有限公司 | 自适应混合读/写缓存的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106201336A (zh) | 2016-12-07 |
US9378782B1 (en) | 2016-06-28 |
DE102016108884A1 (de) | 2016-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7032158B2 (en) | System and method for recognizing and configuring devices embedded on memory modules | |
EP1449082B1 (en) | Error correcting memory and method of operating same | |
US8402349B2 (en) | Two dimensional data randomization for a memory | |
US7206891B2 (en) | Multi-port memory controller having independent ECC encoders | |
JP4247262B2 (ja) | 集積回路装置 | |
US20120079346A1 (en) | Simulated error causing apparatus | |
CN111063379B (zh) | 存储器装置以及操作其以用于读取页面媒体流的方法 | |
JPH01195557A (ja) | データ処理システムにおけるデータ転送方法 | |
US6802036B2 (en) | High-speed first-in-first-out buffer | |
KR20190106274A (ko) | 메모리 칩 및 그것을 포함하는 테스트 시스템 | |
US11687407B2 (en) | Shared error correction code (ECC) circuitry | |
JP2024500785A (ja) | リモート実行デバイスにおけるホストベースのエラー検出能力の提供 | |
CN106201336B (zh) | 具有回写缓存器的设备及其相关方法 | |
US9239755B2 (en) | Semiconductor device and semiconductor system including the same | |
US11308006B2 (en) | Memory rank design for a memory channel that is optimized for graph applications | |
US11631454B2 (en) | Methods and apparatus for reduced area control register circuit | |
JP2010181990A (ja) | データプロセッサ | |
WO2012046343A1 (ja) | メモリモジュール冗長化方法、記憶処理装置、及びデータ処理装置 | |
TW202329147A (zh) | 記憶體裝置、錯誤校正碼電路及其操作方法 | |
JP2013238926A (ja) | 信号処理回路およびそれを用いた試験装置 | |
JP2017215732A (ja) | メモリおよび情報処理装置 | |
TWI827138B (zh) | 半導體儲存裝置 | |
TWI723515B (zh) | 記憶體裝置及其資料存取方法 | |
US20220300370A1 (en) | Configurable Error Correction Code (ECC) Circuitry and Schemes | |
WO2023202592A1 (zh) | 数据写入方法以及处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |