CN108958647B - 存储器装置的边读边写访问方法 - Google Patents
存储器装置的边读边写访问方法 Download PDFInfo
- Publication number
- CN108958647B CN108958647B CN201810251840.3A CN201810251840A CN108958647B CN 108958647 B CN108958647 B CN 108958647B CN 201810251840 A CN201810251840 A CN 201810251840A CN 108958647 B CN108958647 B CN 108958647B
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- group
- pages
- response
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/0611—Improving I/O performance in relation to response time
-
- 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
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1042—Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/2209—Concurrent read and write
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)
- Memory System (AREA)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种存储器装置包括:一存储器,具有一第一存储库的一第一页与一第二存储库的一第二页;以及一地址译码器,用以将多个指令地址映射至多个实体地址。该存储器装置还包括一电路,用以维持一状态以指示一最近写入页,译码包括指令地址的多个指令序,以及实施一操作,该操作包括:(i)响应于接收一第一指令序,该第一指令序包括一读取指令地址,该读取指令地址用以读取数据,根据该状态,使得该地址译码器将该读取指令地址映射至该第一页与该第二页的其中一页;以及(ii)响应于接收一第二指令序,该第二指令序包括一写入指令地址,该写入指令地址用以写入数据,根据该状态,使得该地址译码器将该写入指令地址映射至该第一页与该第二页的其中另一页。
Description
技术领域
本发明是有关于一种存储器装置,存储器装置具有存储器(如NOR闪存)与嵌入式逻辑,嵌入式逻辑响应于指示序(command sequence)而读取、写入数据至该存储器。
背景技术
数据处理***的特征在于包括主机***与存储器***。主机***通常以逻辑地址来操作,以提供抽象层(layer of abstraction)于主机***软件与存储器***的存储器之间。存储器***包括控制器,可执行逻辑地址对实体地址转译,以根据逻辑地址而将主机层(host level)读、写需求转译成包括实体或指令地址的指令架构,以由存储器装置所使用。
存储器***所用的存储器类别之一是NOR闪存,其通常于用于存储码,因为相较于NAND闪存,其随机存取能力较好。读取(序列)码需要能将该些码以适当序列来传送,以保留该些码的功能性。当存于NOR闪存内的码(或该些码的一部分)需要改变时,则必须解决该些码可能正在处于执行状态的这个可能性。
如果所存储的码正在执行中,而同时,接收到要改变该码的请求,则在将该码被新码取代之前,读取该码的读取操作需要继续至某些安全停止点,以避免造成码执行的错误。写入操作也是相同的。在该码可以可靠地读取之前,码的写入必须安全地完成,或持续至安全停止点。
在传统***中,存储器的架构使得,码(例如开机码)是维持存储器的特定或预设区块内。利用此架构,开机码的读取需要对特定区块存取,并使用该特定区块的实体地址。开机码的写入需要对相同特定区域的存取。
执行读取指令(例如,读取存储页的数据)可能需要在读取指令后的多个频率周期,因为一次可能是传送一个字节(或其他单元)的数据至存储器接口。相似地,执行写入指令可能需要在写入指令后的多个频率周期,因为写入数据要加载至存储器之中。这些编程操作(亦即,抹除与写入操作)是非常慢的,意味着需要许多频率周期。此架构的瓶颈在于,第二个指令(读取或写入指令)必须等到第一个指令(读取或写入指令的另一个指令)在执行前已安全地完成。
在上述情况下,当发出写入指令时,读取操作会传送顺序码(sequential code)。传统存储器***的处理方法是,将写入操作执行于不同存储库(bank)(亦即,写入至新地址),并且在将码写入至不同存储库之后,将顺序码搬移至特定或预设存储器,或者是,并非将顺序码搬移至特定或预设存储器,而是将不同存储库的新地址通信至逻辑层,以用于顺序码的下一次读取。在写入顺序码至不同存储库之后,顺序码搬移可能导致冲突的可能性,并非良好解决之道。此外,将顺序码的默认地址改变为新地址可能使得***操作变得更复杂。因为这些原因,传统存储器不采用这些解决之道。
此外,写入操作可能等到读取操作的安全停止点(例如,页读取的结束),接着覆写该页。然而,这会使得抹除操作与写入(编程)操作变得耗时。
本案提供存储器架构,以期解决上述问题。
发明内容
本案提供的存储器装置可以执行边写边读操作,当初始化写入操作时,暂停及回复读取操作,而无需重新开始读取操作。
根据本发明的一例,提出一种存储器装置。存储器装置包括:存储器、地址译码器与控制电路。该存储器具有多个页,该些页包括一第一页群组,该第一页群组包括一第一存储库的一第一页与一第二存储库的一第二页。该地址译码器将所接收的多个指令地址映射至该存储器的多个页与多个存储库的多个实体地址。该控制电路维持一状态以指示该第一页群组的一最近写入页,译码包括该些指令地址的多个指令序,执行该些指令序的多个操作,以及实施一操作。该操作包括:(i)响应于接收一第一指令序,该第一指令序包括一读取指令地址,该读取指令地址用以从该第一页群组读取数据,使得该地址译码器将该读取指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中一页;以及(ii)响应于接收一第二指令序,该第二指令序包括一写入指令地址,该写入指令地址用以写入数据至该第一页群组,使得该地址译码器将该写入指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中另一页。
根据本案另一例,提供一种存储器装置的操作方法。该操作方法包括:配置该存储器的一第一页群组,该第一页群组包括一第一存储库的一第一页与一第二存储库的一第二页;将所接收的多个指令地址映射至该存储器的该些页与该些个存储库的多个实体地址;维持一状态以指示该第一页群组的一最近写入页;译码所接收到的包括该些指令地址的多个指令序;执行该些指令序的多个操作;以及实施一操作,该操作包括:(i)响应于接收一第一指令序,该第一指令序包括一读取指令地址,该读取指令地址用以从该第一页群组读取数据,将该读取指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中一页;以及(ii)响应于接收一第二指令序,该第二指令序包括一写入指令地址,该写入指令地址用以写入数据至该第一页群组,将该写入指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中另一页。
根据本案又一例,提供一种制造一存储器装置的方法,该方法包括:提供一存储器,具有多个页,该些页包括一第一页群组,该第一页群组包括一第一存储库的一第一页与一第二存储库的一第二页;提供并配置一地址译码器,将所接收的多个指令地址映射至该存储器的多个页与多个存储库的多个实体地址;以及提供一控制电路以维持一状态来指示该第一页群组的一最近写入页,以译码包括该些指令地址的多个指令序,以执行该些指令序的多个操作,以及实施一操作,该操作包括:(i)响应于接收一第一指令序,该第一指令序包括一读取指令地址,该读取指令地址用以从该第一页群组读取数据,使得该地址译码器将该读取指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中一页;以及(ii)响应于接收一第二指令序,该第二指令序包括一写入指令地址,该写入指令地址用以写入数据至该第一页群组,使得该地址译码器将该写入指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中另一页。
为了对本发明的上述及其他方面有更好的了解,下文特举实施例,并配合所附附图详细说明如下:
附图说明
图1绘示***的功能方块图,该***包括主机、存储器控制器与存储器装置,以用于执行边写边读操作。
图2绘示可执行边写边读操作的存储器装置的功能方块图。
图3显示重映射(remapping)操作的功能方块图,重映射操作是在图3的边写边读操作完成后被执行。
图4显示映射的一例,用以将指令地址映射至存储器的多个页的特定页的实体地址。
图5的流程图包括各种操作,用以执行边写边读操作。
图6是集成电路(例如NOR闪存)的简化方块图,包括指令逻辑与控制电路,可支持边写边读操作与其余相关操作。
【符号说明】
100:*** 110:主机
112:通信总线 120:存储器控制器
122:通信总线 130:存储器装置
132:总线接口 134:控制电路
136:地址译码器 139:存储器
137:映射 138:状态逻辑
200:存储器装置 210:控制电路
220:地址译码器 222:状态逻辑
224:映射
225、227:实体存储库 226、228:实体页
400、410:映射逻辑
500:流程图 505-555:操作
600:集成电路 602:输出入方块
604:串行频率SCLK(或CK)
605:频率产生器 606A:边写边读设定映射译码器
606B:X-译码器 607:地址产生器
608:状态指示器 614:数据缓存器
620:指令逻辑 622:状态机
624:SRAM缓冲器 626:高压产生器
628:NOR闪存阵列
632:Y-译码器 634:感应放大器
636:输出缓冲器
具体实施方式
本案实施例的描述请参照图1-图6。
背景技术中的问题解决可通过提供存储器架构,其中,开机区块(或其他区块)可包括两个或多个存储库(bank)与页,以避免地址冲突,且避免搬移所写入的数据,且避免在访问代码时要更新读取地址。
特别是,本案解决上述问题是通过提供存储器装置,(i)其中,存储器具有多个页,包括在第一与第二存储库中的第一与第二页,(ii)将所接收的指令地址映射至存储器的该些页与该些存储库的实体地址,以及(iii)状态维持于指示该些页中的哪一页最近被写入。该架构可允许存储器装置可根据该状态而映射读取指令地址(该读取指令地址预先配置成用以从该些页读取数据)至第一与第二存储库中的第一页与第二页的其中一页,并根据状态而映射写入指令地址(该写入指令地址预先配置成用以将该些页的数据写入)至第一与第二存储库中的第一页与第二页的其中另一页。
图1绘示***的功能方块图,该***包括主机、存储器控制器与存储器装置,以用于执行边写边读操作。特别是,图1显示***100的简化功能方块图,***100包括主机110,通信总线112,存储器控制器120,通信总线122,与存储器装置130。在***100内,主机110执行程序,以利用逻辑地址来读写数据。主机110通过通信总线112而通信于存储器控制器120,而存储器控制器120通过通信总线122而通信于存储器装置130。
主机110例如是可执行操作***的计算机***,可通过通信总线112而送出需求(例如读、写需求)给存储器控制器120。
介于主机110与存储器控制器120之间的通信总线112例如可为PCI(PeripheralComponent Interconnect,***元件互连)总线,PCIe(peripheral componentinterconnect express,高速PCI)总线,SATA(Serial Advanced Technology Attachment,串行高级技术附件)总线,或者使用适当通信协议的其他类型总线。
存储器控制器120可以软件实施,或由微控制器(MCU)或专用存储器控制器芯片内的其他逻辑架构所实施。在其他实施例中,主机110与存储器控制器120可实施于单处理器之上,或者,主机110与存储器控制器120可包括复杂数据处理***的元件。存储器控制器120可当成主机110与存储器装置130之间的接口。存储器控制器120的功能之一是将高阶读写需求转译成存储器装置130的指令语言,以用于存取存储器装置130上的存储器139。存储器控制器120可包括接口层(未示出),其用以编排(compose)指令序,以兼容于存储器装置130与存储器139的方式来执行对存储器装置130的读写操作。指令序的编排可通过将从主机110所接收到的逻辑地址转译成存储器装置130的实体地址。
存储器控制器120通过通信总线122而耦接至存储器装置130。为方便解释,通信总线122可为任何通信***,以在存储器控制器120与存储器装置130之间传送数据。通信总线122可包括总线(例如物理层连接,如信号线,光纤,无线链结等),用以耦接至存储器控制器120与存储器装置130。
例如,存储器控制器120所用的总线结构可具有多个总线I/O 0~N,芯片选择线(chip select line(CSB))(逻辑低或逻辑高致能)与频率线(CK)。通信总线122可包括SPI(Serial Peripheral Interface,***接口)总线或其他同步通接口,特征在于,同步频率线,芯片选择线与一或多条数据线由同步频率线上的同步频率所同步。SPI装置一般使用四线同步串行通信协议,通信模式可为全双工模式(full duplex mode)(CK,CSB,主入从出(master in/slave out,MISO),主出从入(master out/slave in,MOSI))。
存储器装置130包括总线接口132,控制电路134,地址译码器136与存储器139。存储器装置130的存储器139可以是单位单元(single-bit-per-cell)或多位单元(multiple-bit-per-cell)NOR非挥发性闪存或其余装置,例如固态硬盘(solid state drivememory)。在其他例子中,存储器139可包括其他类型的非挥发性存储器,包括单位单元或多位单元NAND闪存,相变型存储器,磁性存储器,金属氧化物可程序电阻存储器(metal oxideprogrammable resistance memory)等。
甚至,存储器139的一部分可配置成,能执行读写操作的多个页。例如,如图1所示,该些页包括第一页群组,第一页群组包括存储器139的第一存储库的第一页与存储器139的第二存储库的第二页。此外,第一页群组可包括同一或不同存储库(未示出)的其他页。存储器139的该些页可包括第二页群组,第二页群组包括存储器139的第三存储库的第三页与存储器139的第四存储库的第四页(未示出)。或者是,第二页群组的第三页与第四页可分别位于存储器139的第一与第二存储库内。各页群组的至少一页必需位于单独存储库内。该些页群组可由存储器装置130上的逻辑(例如,映射电路或控制电路)所配置或指示。
存储器装置130的地址译码器136包括映射137与状态逻辑138。映射137将从存储器控制器120的总线接口132所接收到的指令地址(如读取指令地址与写入指令地址)映射成存储器139的页与存储库的实体地址。状态逻辑138用于指示映射137,该些页中的哪一页要被读取或写入。在一实施例中,映射137可当成多任务器,其响应于由状态逻辑138所输出的状态位来决定该一页要被读取或写入。状态逻辑138不需要位于地址译码器136之上,而可位于存储器装置130的其他位置。图1所示的存储器装置130只是用于显示存储器装置130的不同元件与功能。
控制电路134存取存储器139,执行存储器读取与写入操作,且其状态维持于指示该些页(第一页群组)中的最近被写入的页。指示最近写入页的该状态可允许映射137,通过状态逻辑138,来决定(映射)该些页中的哪一页要被写入,并允许映射137,通过状态逻辑138,来决定(映射)该些页中的哪一页要被读取。
控制电路134也可译码在总线接口132上所接收到的指令序(从存储器控制器120发出)。指令序可包括相关的操作码(例如,读、写、抹除等),指令地址及/或要写入至存储器139的数据。控制电路134执行从指令序中所辨别出的操作,且也可执行边写边读操作。
例如,当控制电路134接收第一指令序(包括读取数据X的读取指令与读取指令地址(用于从第一页群组读出数据))时,且之后,在读取操作完成之前,控制电路134接收第二指令序(包括要写入/更新数据X的写入指令与写入指令地址(用以写入数据至第一页群组)时,控制电路134执行边写边读操作。可利用存储器装置130上的逻辑电路来设定读写地址。例如,用于从一特定页群组(例如第一页群组)读取数据的读取指令地址可由存储器装置130的映射137所指定,以读取数据。相似地,用于对一特定页群组(例如第一页群组)写入数据的写入指令地址可由存储器装置130的映射137所指定。另外,根据主机110的操作***的逻辑或架构等,存储器控制器120可用以指定(预配置)读取指令地址与写入指令地址给某些操作。
本案实施例可以执行边写边读操作的原因在于,由存储器控制器120所接收到的读取指令地址由地址译码器136来映射至存储器139的第一存储库的第一页,而由存储器控制器120所接收到的(预配置)写入指令地址由地址译码器136来映射至存储器139的第二存储库的第二页。例如,从存储器139的第一存储库的第一页读出数据X的读取操作可被暂停/延后,而写入指令可以写入更新后数据X至存储器139的第二存储库的第二页。一旦写入操作有部分完成(例如,可以回复读取操作的点)或完全地完成时,从存储器139的第一存储库的第一页读出数据X的读取操作可从暂停点回复,而不需要从头再开始。于写入完成后,更新后数据X存于存储器139的第二存储库的第二页。
在本案实施例边写边读操作中,数据要读/写至存储器139的不同存储库。如果读写不是指向存储器139的不同存储库,则读取操作要从头开始,因为,写入操作可能会将存储器139的整个存储库抹除。本案的边写边读操作也需要,在完成读取数据X之后,存储器装置130来更新其状态,以指令该些页中的最后写入页。这将会使得读取指令地址映射至包括更新后数据X的页/存储库,且使得写入指令映射至先前所读取的页/存储库。亦即,地址译码器136与状态的组合使得控制电路134能实施本案的操作,以切换映射至读取指令地址与写入指令地址的页/存储库。在此例中,在映射更新后,读取指令将映射至存储器139的第二存储库的第二页,而写入指令则映射至存储器139的第一存储库的第一页。地址译码器的映射137与状态逻辑138连同控制电路134可以管理多个页群组的映射。
图2显示执行边写边读操作的存储器装置的功能方块图。特别是,图2的存储器装置200包括控制电路210,地址译码器220(具有状态逻辑222与映射224),与存储器。存储器可包括实体存储库0225(包括实体页A 226)与实体存储库1 227(包括实体页B 228)。图2的存储器装置200的操作相似于图1的存储器装置130。因此,省略某些重复描述。
根据状态逻辑222,存储器装置200的地址译码器220执行读/写指令地址与存储器实体地址之间的映射。甚至,如图2所示,执行读取与写入操作的指令序是从存储器控制器(未显出)所接收。读取操作的路径是由实线(solid line)所显示,写入操作的路径则由虚线(dashed line)所显示,而地址译码器220的映射224所执行的映射路行则由点线(dottedline)所显示。
如上述,存储器装置200的存储器可包括实体存储库0 225(包括实体页A 226)与实体存储库1 227(包括实体页B 228)。实体页A 226与实体页B 228可为页群组。不同于由主机(未示出)或执行于主机上的软件所参考的逻辑地址,这些存储库与页是位于存储器装置200的存储器上的实体存储库,且具有实体地址。
存储器装置200的控制电路210可译码所接收的指令序,该些指令序包括操作码(如读、写、抹除等的操作码)、指令地址与数据,及由存储器控制器所接收的其他信息。特别是,所接收的指令序可包括读取指令地址(由地址译码器220的映射224所预配置,以读取存储器的特定页的数据),且可包括写入指令地址(由地址译码器220的映射224所预配置,以写入数据至存储器的特定页)。译码后的指令与指令地址由地址译码器220所接收。控制电路210的状态可维持于,指令存储器的该些页的哪一页最近被写入。地址译码器220的映射224可将(预配置)读取指令地址映射(如点线所示)至存储器装置200的该些页的适当页。映射224也可将(预配置)写入指令地址映射至存储器装置200的该些页的适当页。
特别是,地址译码器220的映射224与状态逻辑222可将(预配置)读取指令地址映射至该些页的适当页(如页A 226与页B 228)。映射224与状态逻辑222可将(预配置)写入指令地址映射至该些页的适当页(如页A 226与页B 228)。地址译码器220的映射224可以是简单的表,或较复杂的其他架构。甚至,映射224可只映射读/写的地址至执行边写边读操作的该些页。状态逻辑222指示映射224要选择哪个实体地址(例如,两个不同实体地址之一)以进行读取操作,及选择哪个实体地址以进行写入操作。状态逻辑222指示映射224是根据控制电路210所维持的状态,且指令该些页的哪一页最近被写入。
在图2中,地址译码器220的映射224提供下列之间的转译(映射):(i)从该存储器的该些页读取数据的预配置读取指令的读取指令地址(读取指令地址包括于从存储器控制器所接收的指令序之中)与(ii)实体存储库0 225的页A 226的实体地址与实体存储库1227的页B 228的实体地址。相似地,地址译码器220的映射224提供下列之间的转译(映射):(i)对该存储器的该些页写入数据的预配置写入指令的写入指令地址(写入指令地址包括于从存储器控制器所接收的指令序之中)与(ii)实体存储库0 225的页A 226的实体地址与实体存储库1 227的页B 228的实体地址。
如上述,页A 226与页B 228为不同存储库的多个页。在此方式下,地址译码器220的映射224可将(预配置)读取指令地址映射至这二页(页A 226与页B 228)且可将(预配置)写入指令地址映射至这二页(页A 226与页B 228)。映射224的点线则显示映射224可将(预配置)读取指令地址与(预配置)写入指令地址映射至页A 226与页B 228。根据该些页的页状态及根据控制电路210所维持的状态,地址译码器220的状态逻辑222可控制哪一页要被读数据,及哪一页要被写入。在一例中,状态逻辑222可当成缓存器(状态缓存器,标识缓存器,条件缓存器等),根据哪一页最近被写入而来切换位。位可由维持状态的控制电路210来切换,或由其他机制来切换。状态逻辑222可对多个页群组执行此功能。根据状态逻辑222所提供的状态,映射224可当成开关,输入是(预配置)读取指令地址,且可选择页A 226的实体地址与页B 228的实体地址之一。相同概念可应用于(预配置)写入指令地址。
例如,如果状态乃是指示页A 226是最近被写入的页,则状态逻辑222所提供的状态可选择(或使得映射224来选择)页A 226(路径“A”,通向页A 226),以执行读取操作。另一方面,如果状态乃是指示页B 228是最近被写入的页,则状态逻辑222所提供的状态可选择(或使得映射224来选择)页B 228(路径“B”,通向页B 228),以执行读取操作。相同概念可用于写入操作。例如,如果状态乃是指示页A 226是最近被写入的页,则状态逻辑222所提供的状态可选择(或使得映射224来选择)页B 228(路径“B”,通向页B 228),以执行写入操作。另一方面,如果状态乃是指示页B 228是最近被写入的页,则状态逻辑222所提供的状态可选择(或使得映射224来选择)页A 226(路径“A”,通向页A 226),以执行写入操作。
此外,控制电路210亦可保持地址译码器220的更新,使得该些页的正确页(如页A226与页B 228)可用于读写操作。例如,控制电路210可更新映射224,以增加或改变指令地址用于读写数据的指令地址,以及,增加或改变该些页中的哪几页是真正映射至预配置指令地址。
当读取操作映射至,例如,页A226时,读取操作可持续从页A226读出数据,通过存储器控制器而送至主机与主机上的软件。各种时序,缓冲与快取机制(未示出)可实施以协助传送读取要求至存储器装置200,以及从存储器装置200所读出的数据通过控制器而送至主机(操作***)。现有此技者当知,完成读取操作所必要的各种时序,缓冲与快取机制。
参考图2,其显示,从存储器装置200的页A226读出“码x”的读取操作,且将“更新后码x”写入至存储器装置200的页B 228的写入操作。特别是,图2显示,用于读取“码x”的指令序是从主机/控制器所接收,而在读取“码x”完成前,已从主机/控制器接收到用以更新“码x”的指令序。如本案背景说明中的描述,许多传统存储器***可能要强迫停止读取操作,开始并完成写入操作,接着将读取操作从头再次开始。然而,因为本案的边写边读技术,在执行用于更新“码x”的写入操作时,可不需要停止及再开始“码x”的读取操作。这是因为,(预配置)读取指令地址由地址译码器220映射至不同实体存储库的不同页,不同于(预配置)写入指令地址。因此,在写入码x的新或更新后版本时,对于码x的旧或原始版本的读取操作,不用停止与从新开始。在写入操作的一部分或全部完成之后,暂停的读取操作可从停止处回复。
在不同例中,如果使用专用总线的话,存储器装置200可支持并列或同时数据传送。这使得,当在执行写入操作时,读取操作能持续而不用被中断(亦即,不用暂停然后重新开始读取操作)。
如图2所示,边写边读操作可被执行的原因在于,控制电路210所维持的状态指示了该些页中的最近写入页(即,页A 226与页B 228)。在图2的操作中(在将更新后码x写入至页B 228的写入操作完成之前),该状态乃指示页A 226是该些页中的最近写入页。因此,根据控制电路210所维持的状态,状态逻辑222可使得映射224来将(预配置)读取指令地址映射至页A 226(参考读取操作的路径A,且从页B 228的可能读取路径未被选择(该路径为“XX”))。甚至,根据控制电路210所维持的状态,状态逻辑222可使得映射224来将后续的(预配置)写入指令地址映射至页B 228(参考读取操作的路径B,且写入数据至页A 226的可能路径未被选择(该路径为“XX”))。因此,一旦接收到第一指令序(包括从该些页读取数据x的读取指令与(预配置)读取指令地址),地址译码器220会将(预配置)读取指令地址映射页A226。这可以做到的原因在于,状态逻辑222根据存储器装置200的控制电路210所维持的状态来选择路径A。
甚至,一旦接收到第二指令序(包括写入数据至该些页的写入指令与(预配置)写入指令地址),地址译码器220会将(预配置)写入指令地址映射页B 228。这可以做到的原因在于,状态逻辑222根据存储器装置200的控制电路210所维持的状态来选择路径B。
本案的边写边读操作可使得,例如,当写入操作正在抹除实体存储库1 227时,暂停的读取操作可以回复。在抹除实体存储库1227之后,读取操作可再度被暂停,以继续写入操作。一旦写入操作全部或有一部分完成,则可再度回复读取操作。
在从页A 226读出“码x”(亦即,在读取操作已完成之后)且在“更新后的码x”仍存在于页B 228时,本案实施例需进行再映射,使得下次发出要读取“码x”的需求时,乃是读取“更新后的码x”,而不是读取旧版本的“码x”。「再映射」的执行是通过更新状态,这将造成要读取“码x”的下一读取指令是映射至该些页的页B 228。亦即,页B 228被标示成该些页中的最近写入页。请参照图3,以描述其细节。
图3显示在完成边写边读后的再映射操作。图3显示图2的存储器装置200。然而,图3不同于图2之处在于,因为状态已被控制电路210所更新,映射224将(预配置)读取指令地址映射至页B 228(已写入“更新后的码x”)的实体地址。当下次发出要读取“码x”的需求时,读取操作将被转译成页B 228的实体地址。如上述,存储器装置200的控制电路210所管理的状态则指示了该些页中的最近写入页。然而,存储器装置200的任一其余部分也可管理此状态。存储器装置200本身,或存储器控制器(未示出)或主机(未示出)可存储映射224的复本(copy),或状态的复本(该状态指示该些页中的最近写入页)。这些复本可用于复原由于电源中断所造成的原始映射224及/或状态被放弃。
如上述,只有当读取操作与写入操作皆已完成之后,才会更新地址译码器220(亦即,映射224及/或状态逻辑222)及/或该状态。然而,本案所揭露的发明亦可于完成写入操作但读取操作仍在持续时,即更新地址译码器220及/或该状态。然而,存储器控制器及/或存储器装置上将需要额外的逻辑电路以使得,即使在读取完成前完成再映射,仍允许可以继续从页B 228读出原始的“码x”,如图3所示。
图3电显示存储器装置200的控制电路210更新状态逻辑222及/或映射224以将(预配置)写入指令地址映射至该些页的哪一页(如页A 226)。如果不将写入指令地址再映射,则(预配置)写入指令地址与(预配置)读取指令地址可能都会映至页B 228的实体地址。图3显示(预配置)写入指令地址映射至页A226的实体地址,因为,根据状态,状态逻辑222使得映射224来选择页A 226。亦即,当页A 226与页B 228映射至(预配置)写入指令地址与(预配置)读取指令地址时,状态逻辑222使得映射224针对页A 226与页B 228之间进行切换或往复转换(ping-pong)。此切换是执行边写边读操作的方式之一,使得存储器装置200不需要实现任何其他逻辑,一旦页A与页B已决定好相关于(预配置)指令地址。如上述,实现该切换的逻辑一般可由实现状态逻辑222来达成,以简单地改变地址内的一个位,以允许映射224来选择该些实体存储库的哪一个实体存储库要被寻址。
然而,(预配置)写入指令地址与(预配置)读取指令地址并不必然需根据上述往复转换(ping-pong)的技术来映射,而可使用实体存储库0225的不同页及/或实体存储库1227的不同页。此外,不同于使用二页,不同存储库的该些页中也可有3个页形成群组,而本实施例的边写边读技术可持续循环于该三个页。为达成此,状态逻辑222可能,例如,使用多个位来指示该些页的该三个页中哪一页是最近被写入。然而,不同于往复转换的技术需要以存储器装置200的额外逻辑电路来执行。
图2与图3中的边写边读技术的一例是,读取的数据以及写入的数据是专用随机访问代码,例如开机码。使用本实施例的技术,更新后开机码可永远使用(预配置)读取指令地址来读取或存取,且开机码可永远利用(预配置)写入指令地址来写入以进一步更新,其将映射至由读取操作所正在存取的不同区域的不同页。边写边读操作所处理的开机码或其他数据有可能占据存储库的多个页,虽然这对开机码而言并非一般状况,但仍然是有可能的,且对于其他类数据而言更加有可能。然而,即便需要多个存储器页,本案实施例的边写边读操作仍可持续。例如,在读取指令地址中将大于一个页的后续逻辑地址指定于该读取指令之用,且以图2与图3的上述方式来将这些后续逻辑地址映射至实体页。相同的概念可应用至写入操作。
存储器装置200也可管理多个页群组。例如,第二页群组可能占据存储库0225与存储库1227。以上例来看,此第二页群组可用于“码y”与“更新后码y”。甚至,第二页群组可能来自其他存储库,例如,存储库2(未示出)与存储库3(未示出)。本案实施例的技术可实施于多个页群组,且仅受限于所保留用于进行此类操作的存储器的数量。若存在其他的页群组,存储器装置200的控制电路210需要存储与维持各该些页群组的个别最近写入页的个别状态。
图4显示映射的一例,用以将指令地址映射至存储器的多个页的特定页的实体地址。特别是,图4显示于再映射前(如图2的操作)的映射逻辑400,以及执行再映射后(如图3的操作)的映射逻辑410。相似于图2的例子,映射逻辑400将(预配置)读取指令地址映射至页A,因为状态显示于页A是最近写入页。映射逻辑400将(预配置)写入指令地址映射至页B,因为状态显示于页A是最近写入页(而页B不是最近写入页)。
相似于图3的例子,映射逻辑410显示了,在执行再映射之后,(预配置)读取指令地址目前映射至页B,因为状态显示于页B是最近写入页。映射逻辑410将写入指令地址映射至页A,因为状态显示于页B是最近写入页(而页B不是最近写入页)。
对于图4的映射逻辑400与410,实线显示指向(预配置)读取指令地址的读取操作,而虚线显示指向(预配置)写入指令地址的写入操作。映射逻辑400显示,读取操作会使用页A(而不是显示成灰色的页B)因为页A是最近写入页。相似地,映射逻辑400显示,写入操作会使用页B(而不是显示成灰色的页A)因为页B不是最近写入页。相反地,映射逻辑410显示,读取操作会使用页B(而不是显示成灰色的页A)因为页B是最近写入页。相似地,映射逻辑410显示,写入操作会使用页A(而不是显示成灰色的页B)因为页A不是最近写入页。
虽然图4显示高阶图,且逻辑与实体地址未包括于映射逻辑400与410中,但现有此技者当知,在一实施边写边读操作的存储器***中,实施映射逻辑需要参考特定逻辑与实体地址的适当语法(syntax)。特定的欲实施边写边读的存储器***类型将有特定的寻址语法。
图5显示用于执行边写边读操作的操作流程图。特别是,图5的流程图500显示由存储器装置所执行的操作,以实现边写边读。
在操作505中,对***初始化(设定待执行的读取与写入操作)。例如,在操作505中,以单一页群组或多个页群组来配置存储器。第一页群组可包括存储器的第一存储库的第一页与第二存储库的第二页。甚至,在操作505中,控制电路所维持的状态可指示该些页中的最近写入页。利用映射与状态逻辑,地址译码器用于将指令地址映射至存储器的该些存储库与该些页的实体地址。此外,存储器装置的指令逻辑则用于译码从总线接口所接收到的指令序,指令序包括一或多个相关操作码,指令地址与数据。指令逻辑也使得控制电路来执行指令序中的操作,及实施边写边读操作。
一旦***初始化后,在操作510中,接收与译码第一指令序。第一指令序包括读取指令与读取指令地址,以从该些页读取数据。
在操作515中,响应于状态的选择,地址译码器将(预配置)读取指令地址映射至第一存储库的第一页与第二存储库的第二页的其中一页。例如,如果状态指示第一存储库的第一页是最近写入页(亦即,该页最近具有最近更新的数据),则地址译码器选择与映射第一存储库的第一页。
在操作520中,数据从映射至(预配置)读取指令地址的第一页与第二页的其中一页读取。
在操作525中,接收第二指令序,第二指令序包括写入指令(写入操作)以写入数据至(预配置)写入指令地址。一旦接收到第二指令序,在操作530中,决定在操作520中所开始的数据读取是否已完成。如果操作530中,决定读取操作已完成,则写入操作535正常进行,意味着存储器装置不需要暂停读取操作来执行写入操作。亦即,存储器装置不需要执行边写边读操作。然而,将数据写入至(预配置)写入指令地址的写入操作仍然使用地址译码器的状态与映射而执行。
如果在操作530中,决定数据读取未完成,则在操作540中,读取操作被暂停而写入操作则开始。根据状态,在操作535中,数据将写入至第一与第二页的其中另一页。特别是,响应于状态而选择,地址译码器使得第二指令序当中的(预配置)写入指令地址映射至第一存储库的第一页与第二存储库的第二页的其中另一页。例如,如果先前已读取第一页,则根据状态,将选择第二页并将第二页映射至(预配置)写入指令地址。
如上述,为允许写入操作的进行,在步骤540中,暂停读取操作,数据写入至第一页与第二页的其中一页(由地址译码器映射至(预配置)读取指令地址)。写入操作可有许多级,例如,抹除存储器存储库,加载写入缓冲器等。当存储器装置在执行该些级的某些级或执行该些级之间时,读取操作可从暂停回复。例如,当在操作545中,在抹除存储器存储库时,可回复读取操作。在抹除级已完成后,继续写入操作,则读取操作再度暂停。因此,操作540与545可递回数次,直到读取与写入全部完成。
如本案所揭露,本案实施例的特点之一是,读取操作无需从头重新开始。相反地,读取操作是从暂停处回复。可达成此的原因在于,所读取的页是不同于正在写入的页。
在操作535的写入完成后且在操作545的读取完成后,进行操作550。在操作550中,更新状态,以反映第一与第二页中的最近写入页,及地址译码器,以及/或更新后操作。在操作550,流程结束。
图5的流程图500中的操作只是本案实施例的例子。这些操作可以不同顺序执行,且某些操作可能不是必要的,及/或可由本案的其他操作所取代。
图6是集成电路600(如NOR闪存,包括支持边写边取与相关操作的指令逻辑与控制电路)的简化方块图。集成电路600可实施于单一芯片上。例如,图2与图3的存储器装置200的某些或全部元件(及其所执行的操作)可包括于集成电路600内。
输出入方块602显示同步串行接口,兼容于串行周边接口SPI标准,具有标准接脚。信号CS#是芯片选择,可相关于上述的CSB信号线。当CS#为逻辑低时,选择该装置。信号RESET#允许重置装置,终止目前正在执行的程序,并重置状态机。GND与VDD是接地端与电源。在标准SPI中,SI与SO是串行数据输入与输出。在双SPI操作中,SI与SO则是双向输出入(I/O)接脚:SIO0与SIO1。在四倍SPI操作中,SIO2与SIO3可用于高速传输。这只是举例,其他的接脚配置也可能的。更提供串行频率SCLK 604(或CK 604)。集成电路上的频率产生器605产生频率信号,以供给集成电路的指令逻辑620与其他元件。在此实施例中,频率产生器605接收由SCLK604接脚所传来的信号SCLK。由输出入方块602所代表的总线接口可支持双倍数据率(double data rate,DDR)或单倍数据率(single data rate,SDR)。
串行接口的其他类型可用于其他实施例中。也可使用不是NOR闪存的存储器。
在此,用以指示指令序的开始与结束的控制信号可为方块602内的总线信号。例如,在某些实施例中,可切换CS#或RESET#,例如低转态至高或高转态至低。另外,可由芯片控制逻辑产生终止事件。
状态指示器608的电路与逻辑用以维持状态,以指示NOR闪存阵列628的该些专用页的最近写入页。例如转态至可具有多个页群组,例如第一页群组,其包括第一存储库的第一页与第二存储库的第二页。也可包括其他页群组。在此,将只解释第一页群组。页群组与其状态的描述可参考图1至图4。
状态指示器608的逻辑可用于指示NOR闪存阵列628的该些专用页的该些页最近被写入。例如,状态指示器608的状态可指示该第一页群组的最近写入页。如果有多个页群组,如上述,则状态指示器608追踪其余页群组的哪些页最近被写入。状态指示器608可从地址产生器607或集成电路600的其他元件来得到最近写入页的实体地址。如图2与图3所示,状态逻辑222的功能可由状态指示器608来实现。
边写边读(write-while-read,WWR)设定映射译码器606A执行地址译码器220(包括映射224与状态逻辑222)的功能,如图2与图3所示。特别是,边写边读设定映射译码器606A根据状态指示器608的状态来实现逻辑,且将预配置指令地址映射至存储器(如NOR快闪存储库存储器阵列628)的存储库与页的实体地址。边写边读设定映射译码器606A可将(预配置)读取指令地址与(预配置)写入指令地址映射至存储器的页与存储库的实体地址,根据映射(如图2与图3的映射224)与根据逻辑(如图2与图3的状态逻辑222)。通过改变地址中的位,NOR快闪存储库存储器阵列628的存储库(存储库0与存储库1)可由边写边读设定映射译码器606A的逻辑所映射。例如,为致能写入至存储库1的页(而非写入至存储库0的页),译码器606A可改变页地址的一个位。根据从状态机622(或集成电路600的其他元件)所接收到的指令序,以及从状态指示器608所得到的状态,边写边读设定映射译码器606A将(预配置)读取指令地址(用以从NOR快闪存储库存储器阵列628的该些页群组读取数据)映射至第一存储库的第一页与第二存储库的第二页的其中一页。对于读取指令,可根据状态指示器608的状态,以及边写边读设定映射译码器606A的状态逻辑与映射,从该些页的最后写入页来读取。这将可保证,最新版本的数据是从适当的页所读取。同样,边写边读设定映射译码器606A将用于写入数据至第一存储库的第一页与第二存储库的第二页的其中另一页的写入指令地址进行映射。(预配置)写入指令一般是根据状态指示器608的状态,来映射至非最近写入页。
边写边读设定映射译码器606A,以及集成电路600的其他电路与逻辑,执行边写边读,如图1至图5。某些描述在此省略。然而,根据该些页的最近写入页,持续更新状态指示器608。通过持续更新状态指示器608,集成电路600可往复转换读取与写入于适当页。如上述,根据实施例,通过改变正在存取的存储库地址的位,可达此目的。此机制允许最近写入页永远可被读取,且使得数据写入至另一页,而不需要停止再重新开始读取操作。
地址产生器606的电路可提供实体地址序,以对NOR快闪存储库存储器阵列628存取。
在某些实施例中,数据缓存器614可当成输入缓冲器,以存放指令序。数据与参数可存于SRAM缓冲器624中,以支持可中断式写入操作与其他操作。在某些例中,数据缓存器614可为SRAM缓冲器624的一部分。
集成电路600也包括指令逻辑620(产生内部控制信号)与控制电路(如状态机622与偏压电路)。高压产生器626产生所需的高压,例如,读、编程与抹除所需的高压。指令逻辑620可执行指令程序,如读、写、抹除与相关数据等。状态机622的控制电路执行嵌入式编程、抹除与读取,当被指令逻辑所致能时,可以存取存储器阵列628。
除了边写边读设定映射译码器606A,存储器阵列628还包括X-译码器606B与Y-译码器632,而数据信号通过感应放大器634而输出。输出缓冲器636可保持输出数据,以输出至装置外。
在图6的例子中,指令序包括在输出入方块602的SIO接所接收到的字节。指令逻辑620的逻辑可译码操作码,将起始地址导向至地址计数器,及提供控制信号以设定并初始化指令序中的嵌入式流程,包括利用状态机622来写入(编程与抹除)与读取图6的例子是串行快闪装置,利用串序总线接口以达成串行数据存取。串行总线接口包括至少一个同步频率信号CK,数据信号(携带此数据的存储单元的位宽度是大于或等于一个位),以及至少一芯片选择信号CSB。利用串行总线接口,可支持上述的指令序。
此配置可用于支持相同于SPI标准总线架构的总线,其中,端口CS相关于SPI逻辑低致能芯片选择信号CSB,端口CK相关于SPI串行频率SCLK,端口0相关于SPI主出从入MOSI端口,端口1相关于SPI第一主入从出MISO端口,端口2相关于SPI第二主入从出MISO2端口,以及端口8相关于SPI第三主入从出MISO3端口。本案实施例可使用其他标准与非标准总线架构,包括例如I2C。
现有此技者当知,本案附图可当成实施例,而支持可中断式写入指令序的装置可能与本案附图大不相同,包括不同元件,不同连接关系。
图6的实施例包括NOR闪存阵列。其他类型的存储器***也可使用,例如非挥发性存储器类型,包括相变形存储器PCM,阻抗式存储器(ReRAM或RRAM),NAND闪存,磁阻式存储器等。此外,也可使用包括如DRAM等的挥发性存储器。
存储器控制器或存储器装置所执行的逻辑如流程图所示。该逻辑可由处理器利用存于存储器内的计算机程序所实施,该存储器可由计算机***所存取且可由处理器所执行,通过专用逻辑硬件,包括场程序集成电路,由电路所实施的状态机,以及专用逻辑硬件与计算机程序的组合。在本案中的所有流程图,须知,许多步骤可被合并,或平行执行,或以不同顺序执行,但不会影响本案实施例所达成的功能。在某些情况下,如同所知般,如果做了其他改变的话,将步骤重新排列也可达成相同效果。甚至,当知,本案流程图的步骤是用于让现有此技者了解本案,用以达成其他功能的其余步骤可执行于该些步骤之前,之后或之中。
综上所述,虽然本发明已以实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作各种的更改与润饰。因此,本发明的保护范围当视权利要求所界定者为准。
Claims (20)
1.一种存储器装置,包括:
一存储器,具有多个页,该些页包括一第一页群组,该第一页群组包括一第一存储库的一第一页与一第二存储库的一第二页;
一地址译码器,用以将所接收的多个指令地址映射至该存储器的多个页与多个存储库的多个实体地址;以及
一控制电路,用以维持一状态以指示该第一页群组的一最近写入页,译码包括该些指令地址的多个命令序列,执行该些命令序列的多个操作,以及实施一操作,该操作包括:
响应于接收一第一命令序列,该第一命令序列包括一读取指令地址,该读取指令地址用以从该第一页群组读取数据,使得该地址译码器将该读取指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中一页;以及
响应于接收一第二命令序列,该第二命令序列包括一写入指令地址,该写入指令地址用以写入数据至该第一页群组,使得该地址译码器将该写入指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中另一页。
2.如权利要求1所述的存储器装置,其中,该操作还包括:
响应于接收该第一命令序列,从响应于该状态所选择的该第一页群组的该第一页与该第二页的该其中一页读取数据;以及
响应于接收该第二命令序列,在读取数据期间,写入数据至响应于该状态所选择的该第一页群组的该第一页与该第二页的该其中另一页。
3.如权利要求2所述的存储器装置,其中,该第一页群组的该第一页与该第二页中所选择用以被读取数据的该其中一页,该其中一页是由该状态指示为该第一页与该第二页中的该最近写入页。
4.如权利要求3所述的存储器装置,其中,该第一页群组的该第一页与该第二页中所选择用以被写入数据的该其中另一页,该其中另一页是由该状态指示为该第一页与该第二页中的非该最近写入页。
5.如权利要求2所述的存储器装置,其中,
读取数据包括:从回应于该状态所选择的该第一页与该第二页的该其中一页来读取开机码;以及
写入数据包括:写入开机码至回应于该状态所选择的该第一页与该第二页的该其中另一页。
6.如权利要求2所述的存储器装置,其中,该操作还包括:在完成写入后,更新该状态以指示已被写入数据的该第一页与该第二页的该其中另一页为该第一页群组的该最近写入页。
7.如权利要求2所述的存储器装置,其中,该操作还包括:
在接收该第二命令序列后,回复该读取;以及
在完成该读取与该写入后,更新该状态以指示已被写入数据的该第一页与该第二页的该其中另一页为该第一页群组的该最近写入页。
8.如权利要求2所述的存储器装置,其中,当数据读取完成之前,接收到该第二命令序列时,该操作:
暂停从被选择用于读取的该第一页群组的该其中一页读取数据;
开始写入数据至该第一页群组的该其中另一页;以及
在数据写入完成之前,回复从该第一页群组的该其中一页读取数据。
9.如权利要求2所述的存储器装置,其中,当数据读取完成之前,接收到该第二命令序列时,该操作:
暂停从被选择用于读取的该第一页群组之该其中一页读取数据;
开始写入数据至该第一页群组的该其中另一页;以及
在数据写入完成之后,回复从该第一页群组的该其中一页读取数据。
10.如权利要求1所述的存储器装置,其中,
该些页包括一第二页群组,该第二页群组包括一第三存储库的一第三页与一第四存储库的一第四页;以及
所维持的该状态更指示该第二页群组的一最近写入页。
11.如权利要求10所述的存储器装置,其中,该操作还包括:
响应于接收一第三命令序列,从响应于该状态所选择的该第二页群组的该第三页与该第四页的其中一页读取数据;以及
响应于接收一第四命令序列,写入数据至响应于该状态所选择的该第二页群组的该第三页与该第四页的其中另一页。
12.如权利要求1所述的存储器装置,其中,
该些页包括一第二页群组,该第二页群组包括该第一存储库的一第三页与该第二存储库的一第四页;以及
所维持的该状态更指示该第二页群组的一最近写入页。
13.如权利要求12所述的存储器装置,其中,该操作还包括:
响应于接收一第三命令序列,从响应于该状态所选择的该第二页群组的该第三页与该第四页的其中一页读取数据;以及
响应于接收一第四命令序列,写入数据至响应于该状态所选择的该第二页群组的该第三页与该第四页的其中另一页。
14.如权利要求1所述的存储器装置,其中,
该第一页群组还包括一第三页;以及
该操作还包括:
响应于接收该第一命令序列,使得该地址译码器将该读取指令地址映射至响应于该状态所选择的该第一存储库的该第一页、该第二存储库的该第二页、与该第三页的其中一页;以及
响应于接收该第二命令序列,使得该地址译码器将该写入指令地址映射至响应于该状态所选择的该第一存储库的该第一页、该第二存储库的该第二页、与该第三页的其中另一页。
15.如权利要求14所述的存储器装置,其中,该第三页是位于该存储器的一第三存储库。
16.一种存储器装置的操作方法,该存储器装置包括一存储器,该存储器具有多个页与多个存储库,该操作方法包括:
配置该存储器的一第一页群组,该第一页群组包括一第一存储库的一第一页与一第二存储库的一第二页;
将所接收的多个指令地址映射至该存储器的该些页与该些个存储库的多个实体地址;
维持一状态以指示该第一页群组的一最近写入页;
译码所接收到的包括该些指令地址的多个命令序列;
执行该些命令序列的多个操作;以及
实施一操作,该操作包括:
响应于接收一第一命令序列,该第一命令序列包括一读取指令地址,该读取指令地址用以从该第一页群组读取数据,将该读取指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中一页;以及
响应于接收一第二命令序列,该第二命令序列包括一写入指令地址,该写入指令地址用以写入数据至该第一页群组,将该写入指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中另一页。
17.如权利要求16所述的操作方法,其中,该操作还包括:
响应于接收该第一命令序列,从响应于该状态所选择的该第一页群组的该第一页与该第二页的该其中一页读取数据;以及
响应于接收该第二命令序列,在读取数据期间,写入数据至响应于该状态所选择的该第一页群组的该第一页与该第二页的该其中另一页。
18.如权利要求17所述的操作方法,其中,该第一页群组的该第一页与该第二页中所选择用以被读取数据的该其中一页,是由该状态指示为该最近写入页。
19.如权利要求17所述的操作方法,其中,该操作还包括:在完成写入后,更新该状态,以便指示已被写入数据的该第一页与该第二页的该其中另一页为该第一页群组的该最近写入页。
20.一种制造一存储器装置的方法,该方法包括:
提供一存储器,具有多个页,该些页包括一第一页群组,该第一页群组包括一第一存储库的一第一页与一第二存储库的一第二页;
提供并配置一地址译码器,将所接收的多个指令地址映射至该存储器的多个页与多个存储库的多个实体地址;以及
提供一控制电路以维持一状态来指示该第一页群组的一最近写入页,以译码包括该些指令地址的多个命令序列,以执行该些命令序列的多个操作,以及实施一操作,该操作包括:
响应于接收一第一命令序列,该第一命令序列包括一读取指令地址,该读取指令地址用以从该第一页群组读取数据,使得该地址译码器将该读取指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中一页;以及
响应于接收一第二命令序列,该第二命令序列包括一写入指令地址,该写入指令地址用以写入数据至该第一页群组,使得该地址译码器将该写入指令地址映射至响应于该状态所选择的该第一存储库的该第一页与该第二存储库的该第二页的其中另一页。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762507243P | 2017-05-17 | 2017-05-17 | |
US62/507,243 | 2017-05-17 | ||
US15/890,595 | 2018-02-07 | ||
US15/890,595 US10620879B2 (en) | 2017-05-17 | 2018-02-07 | Write-while-read access method for a memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108958647A CN108958647A (zh) | 2018-12-07 |
CN108958647B true CN108958647B (zh) | 2021-08-06 |
Family
ID=64271617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810251840.3A Active CN108958647B (zh) | 2017-05-17 | 2018-03-26 | 存储器装置的边读边写访问方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10620879B2 (zh) |
CN (1) | CN108958647B (zh) |
TW (1) | TWI691841B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10915405B2 (en) * | 2017-05-26 | 2021-02-09 | Netapp, Inc. | Methods for handling storage element failures to reduce storage device failure rates and devices thereof |
KR102468737B1 (ko) * | 2017-12-19 | 2022-11-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10922013B2 (en) * | 2018-04-09 | 2021-02-16 | Western Digital Technologies, Inc. | Suspending and resuming a read operation for a non-volatile memory |
CN112131144B (zh) * | 2020-09-27 | 2023-09-26 | 芯天下技术股份有限公司 | 串行接口nand存储芯片及从其中读取数据的方法 |
TWI755184B (zh) * | 2020-12-03 | 2022-02-11 | 聯陽半導體股份有限公司 | 電子裝置及其開機方法 |
CN113848454A (zh) * | 2021-09-09 | 2021-12-28 | 海光信息技术股份有限公司 | 一种芯片测试方法及芯片测试机 |
US11983411B2 (en) | 2022-04-25 | 2024-05-14 | Infineon Technologies LLC | Methods, devices and systems for including alternate memory access operations over memory interface |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453370B1 (en) * | 1998-11-16 | 2002-09-17 | Infineion Technologies Ag | Using of bank tag registers to avoid a background operation collision in memory systems |
CN101739351A (zh) * | 2008-11-06 | 2010-06-16 | 慧帝科技(深圳)有限公司 | 一种用来管理一记忆装置的方法以及其相关的记忆装置 |
CN101976175A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行集中校验的磁盘阵列的构建方法 |
CN102203873A (zh) * | 2008-10-25 | 2011-09-28 | 桑迪士克3D有限责任公司 | 重编程页而不向存储器设备重输数据的页缓冲器编程命令和方法 |
CN102945139A (zh) * | 2011-09-12 | 2013-02-27 | 微软公司 | 存储设备驱动器和集群参与 |
CN106020716A (zh) * | 2015-03-31 | 2016-10-12 | 国际商业机器公司 | 利用可变长度报头写入数据的***和方法 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04230508A (ja) * | 1990-10-29 | 1992-08-19 | Internatl Business Mach Corp <Ibm> | 低電力消費メモリ装置 |
US6282675B1 (en) | 1997-08-06 | 2001-08-28 | Macronix International Co., Ltd. | Fault-tolerant architecture for in-circuit programming |
US6275931B1 (en) | 1998-06-22 | 2001-08-14 | Elsag International N.V. | Method and apparatus for upgrading firmware boot and main codes in a programmable memory |
US6205548B1 (en) | 1998-07-31 | 2001-03-20 | Intel Corporation | Methods and apparatus for updating a nonvolatile memory |
US6748480B2 (en) | 1999-12-27 | 2004-06-08 | Gregory V. Chudnovsky | Multi-bank, fault-tolerant, high-performance memory addressing system and method |
US20010047473A1 (en) | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
US6442076B1 (en) * | 2000-06-30 | 2002-08-27 | Micron Technology, Inc. | Flash memory with multiple status reading capability |
US6651188B2 (en) | 2001-06-29 | 2003-11-18 | Intel Corporation | Automatic replacement of corrupted BIOS image |
US7017004B1 (en) | 2002-03-29 | 2006-03-21 | Microsoft Corporation | System and method for updating contents of a flash ROM |
US7089549B2 (en) | 2002-04-01 | 2006-08-08 | International Business Machines Corp. | Updating flash memory |
US20060064535A1 (en) * | 2004-09-22 | 2006-03-23 | Walker Robert M | Efficient multi-bank memory queuing system |
TWI543185B (zh) * | 2005-09-30 | 2016-07-21 | 考文森智財管理公司 | 具有輸出控制之記憶體及其系統 |
JP4209906B2 (ja) * | 2006-08-02 | 2009-01-14 | 株式会社日立製作所 | 低消費電力メモリ管理方法及びその方法を用いた計算機 |
TW200825915A (en) | 2006-12-07 | 2008-06-16 | Wistron Corp | Computer system and related method for preventing from failing to update BIOS program |
US8156299B2 (en) | 2007-10-19 | 2012-04-10 | Virident Systems Inc. | Managing memory systems containing components with asymmetric characteristics |
US7870351B2 (en) * | 2007-11-15 | 2011-01-11 | Micron Technology, Inc. | System, apparatus, and method for modifying the order of memory accesses |
US7961512B2 (en) * | 2008-03-19 | 2011-06-14 | Sandisk Corporation | Adaptive algorithm in cache operation with dynamic data latch requirements |
TWI460657B (zh) | 2008-09-05 | 2014-11-11 | Asustek Comp Inc | 更新與修復基本輸入輸出系統的方法 |
US8266408B2 (en) | 2009-03-17 | 2012-09-11 | Memoir Systems, Inc. | System and method for storing data in a virtualized high speed memory system |
TWI441081B (zh) | 2011-11-04 | 2014-06-11 | Asrock Inc | 更新韌體方法與開機方法及使用其之電子裝置 |
US9158683B2 (en) | 2012-08-09 | 2015-10-13 | Texas Instruments Incorporated | Multiport memory emulation using single-port memory devices |
US20140089561A1 (en) | 2012-09-26 | 2014-03-27 | Kiran Pangal | Techniques Associated with Protecting System Critical Data Written to Non-Volatile Memory |
TWI514140B (zh) * | 2013-02-05 | 2015-12-21 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
US9135982B2 (en) * | 2013-12-18 | 2015-09-15 | Intel Corporation | Techniques for accessing a dynamic random access memory array |
TWI514281B (zh) | 2014-08-28 | 2015-12-21 | 具spi介面的sata儲存裝置、應用該sata儲存裝置之開機方法及基本輸入輸出系統程式碼更新方法 | |
US10019358B2 (en) | 2015-03-20 | 2018-07-10 | Vixs Systems Inc. | Bank address remapping to load balance memory traffic among banks of memory |
TWI556172B (zh) | 2015-09-04 | 2016-11-01 | 神雲科技股份有限公司 | 電腦裝置及其開機方法 |
US10141042B1 (en) * | 2017-05-23 | 2018-11-27 | Micron Technology, Inc. | Method and apparatus for precharge and refresh control |
-
2018
- 2018-02-07 US US15/890,595 patent/US10620879B2/en active Active
- 2018-03-22 TW TW107109906A patent/TWI691841B/zh active
- 2018-03-26 CN CN201810251840.3A patent/CN108958647B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453370B1 (en) * | 1998-11-16 | 2002-09-17 | Infineion Technologies Ag | Using of bank tag registers to avoid a background operation collision in memory systems |
CN102203873A (zh) * | 2008-10-25 | 2011-09-28 | 桑迪士克3D有限责任公司 | 重编程页而不向存储器设备重输数据的页缓冲器编程命令和方法 |
CN101739351A (zh) * | 2008-11-06 | 2010-06-16 | 慧帝科技(深圳)有限公司 | 一种用来管理一记忆装置的方法以及其相关的记忆装置 |
CN101976175A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行集中校验的磁盘阵列的构建方法 |
CN102945139A (zh) * | 2011-09-12 | 2013-02-27 | 微软公司 | 存储设备驱动器和集群参与 |
CN106020716A (zh) * | 2015-03-31 | 2016-10-12 | 国际商业机器公司 | 利用可变长度报头写入数据的***和方法 |
Also Published As
Publication number | Publication date |
---|---|
US10620879B2 (en) | 2020-04-14 |
US20180335980A1 (en) | 2018-11-22 |
TW201901446A (zh) | 2019-01-01 |
CN108958647A (zh) | 2018-12-07 |
TWI691841B (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958647B (zh) | 存储器装置的边读边写访问方法 | |
TWI678613B (zh) | 系統開機碼記憶體管理方法、記憶體裝置及其製造方法 | |
US6754765B1 (en) | Flash memory controller with updateable microcode | |
US7886141B2 (en) | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems | |
US8296467B2 (en) | Single-chip flash device with boot code transfer capability | |
KR101146059B1 (ko) | 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템을 위한데이터 판독/기입 방법 | |
KR100375217B1 (ko) | 전기적으로 재기입 가능한 불휘발성 메모리를 구비하는마이크로컨트롤러 | |
CN107480081B (zh) | 具有可中断指令序列的存储器及其操作方法 | |
KR100708128B1 (ko) | 낸드 플래시 메모리 제어 장치 및 방법 | |
US20100146256A1 (en) | Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces | |
KR20070110264A (ko) | 메모리 시스템에서 데이터의 재배치 | |
KR20080084082A (ko) | 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법 | |
CN114974374A (zh) | 具有芯片内执行能力的串行与非门快闪存储器 | |
TWI807929B (zh) | 用於儲存裝置中並通過特定通訊介面耦接於儲存裝置的快閃記憶體裝置之快閃記憶體控制器及方法 | |
KR100297202B1 (ko) | 플래시 eeprom 메모리 어레이용의 개선된 인터페이스 | |
US20080201553A1 (en) | Non-volatile memory system | |
WO2020041745A1 (en) | Memory sub-system supporting non-deterministic commands | |
JP2009526294A (ja) | メモリ素子を有する電子デバイス及びその動作方法 | |
TWI838793B (zh) | 用於儲存裝置中並通過特定通訊介面耦接到儲存裝置的快閃記憶體裝置之快閃記憶體控制器及方法 | |
US11704258B2 (en) | Latency reduction in SPI flash memory devices | |
TWI813385B (zh) | 用於儲存裝置並通過特定通訊介面耦接到儲存裝置的快閃記憶體控制器之快閃記憶體裝置與方法 | |
CN114253464A (zh) | 控制读取请求的方法和具有主机装置的存储器控制器 | |
CN118276934A (zh) | 介质接口控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |