CN107480081A - 具有可中断指令序列的存储器及其操作方法 - Google Patents
具有可中断指令序列的存储器及其操作方法 Download PDFInfo
- Publication number
- CN107480081A CN107480081A CN201710418347.1A CN201710418347A CN107480081A CN 107480081 A CN107480081 A CN 107480081A CN 201710418347 A CN201710418347 A CN 201710418347A CN 107480081 A CN107480081 A CN 107480081A
- Authority
- CN
- China
- Prior art keywords
- command
- sequence
- write
- command sequence
- code
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
- G06F13/34—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
一种存储器元件包括指令逻辑允许指令以指令通信协议中断识别写入操作的第一指令序列,然后直接进行接收和译码识别读取操作的第二指令序列,而不会发生与完成第一指令序列相关联的延迟。此外,指令逻辑被配置来响应发出于第二指令序列之后的第三指令序列。第三指令序列的嵌入操作和完成被中断的第一指令序列相关联,且能够执行由第一指令序列所识别的嵌入式操作。
Description
本申请主张2016年6月7日提出的编号为62/346,577美国临时专利申请案的权益。并通过参照引用的方式并入本说明书中。
技术领域
本发明涉及一种具有嵌入式逻辑(embedded logic)的存储器元件,用来响应指令序列。特别是用来响应可中断指令序列。
背景技术
请参照图1,图1绘示一种现有基本存储器系统的简化示意图。在图1所绘示的基本存储器系统中,主机2是用来执行以逻辑地址来读取和写入数据的程序。主机2通过通信链接(communication line)3与控制器4进行通信。在一些实施例中,主机2可以通过微控制器单元(microcontroller unit,MCU)或专用存储器控制器芯片(dedicated memorycontroller chip)中的软件或其他逻辑结构来加以实现。在一些实施例中,主机2与控制器4可以在单处理器上实现。在另一些实施例中,主机2与控制器4可以包括一部分复杂的数据处理系统。控制器4作为主机2和实体存储元件,例如存储器6之间的接口。控制器4将较高阶的读取和写入请求转换成特定存储器6的指令语言。对于闪存而言,控制器4可以包括在一些系统中被称为存储器技术元件(Memory Technology Device,MTD)的接口层。在该通用配置中,控制器4负责以与存储器6兼容的方式,结合存储器6来编写读取和写入操作的指令序列。
控制器通过总线(bus)5连接至存储器6。为了说明起见,“总线”一词,是指位于总线节点(bus nodes)之间,包括位于存储器系统中的控制器4和存储器6之间的总线节点(例如,存储器控制器,微控制器或控制存储器元件的操作的其他总线节点),用来传送数据的通信系统。总线包括总线(例如,物理层连接线,光纤,无线链路等)及总线接口。其中,总线接口包括位于元件上的输入/输出电路以及位于元件上的逻辑,二者被整合来实现符合总线规范的通信协议。
在图1的配置中,控制器4使用具有多条总线I/O 0~N的总线结构以及芯片选择线(chip select line,CSB)(在本实施例中,为低电平致能)和时钟线(clock line,CK)。例如,总线5可以包括串行外设界面(serial peripheral interface,SPI)总线或其他同步串行通信接口(synchronous serial communication interface),其特征在于同步时钟线,芯片选择线和与同步时钟线上的同步时钟同步的一个或多个数据线。串行外设接口,通常使用四线同步串行通信协议,采用全双工模式(full duplex mode)(时钟线、芯片选择线、主设备输入/从设备输出(master in/slave out,MISO)或主设备输出/从设备输入(masterout/slave in,MOSI)进行通信。串行外设接口的一种变体形式,是使用单一双向数据线(ingle bidirectional data line)(从设备输入/从设备输出(slave out/slave in,SISO)),而不是两条单向数据线(MOSI和MISO)。另一种变体形式,是使用多条平行数据线(例如,IO0至IOn)来增加吞吐量的多重输入输出串行外设接口(I/O SPI)。与并行总线架构相比,这些串行总线架构结合了速度以及降低接脚数目的双重优势。其他总线标准包括I2C,其包括四线同步串行通信协议(four-wire synchronous serial communicationprotocol),但是采用差动信号(differential signaling),故而仅能提供单一条单工通信信道(single simplex communication channel)。
在一些高速存储器系统中,例如可能用于所谓的芯片内执行(execution-in-place,XIP)系统的应用程序,期望能够非常频繁且非常快速地读取数据以支持主机系统的任务功能。在例如闪存的某些存储器类型中,写入可以包括可能需要耗费大量时间的写入操作和擦除操作。因此,如果主机需要在执行写入操作和擦除操作期间读取数据,则通常得等待这些操作完成之后方能进行。一些存储器系统会实施写入和擦除的暂停操作(suspendoperations),允许控制器在写入和擦除操作已经开始执行之后,发出暂停指令。响应于暂停指令,存储器元件会执行退出写入和擦除操作的操作。当完成时,会使系统接受读取指令序列。然而,在关键读取步骤中的时间延迟,可能造成系统性能的严重限制。
此外,由其是在串行协议(serial protocols)中,写入指令序列可能相当长。例如,页面写入指令序列在总线上,可能需要数百字节(bytes)的数据传输,包括脚本,地址码和整页的数据。且指令序列本身不可中断。这个现象造成如图2所绘示的情况,主机可能希望快速地读取数据,但是在发出暂停指令之前,必须等待几百个时钟周期,直到写入指令序列完成。且在进行读取之前,还得等待暂停操作的完成。
图2绘示使用串行外设接口兼容总线来实现的时序图。其绘示芯片选择线CSB(低电平致能)、时钟线CK和数据线DATA。在最上方一行中,从左到右进行写入操作,芯片选择线CSB从高电平切换到低电平,代表指令序列的开始。在本实施例中,控制器4随后发出一个写入操作码WR,接着发出多个地址字节A1、A2、A3,然后是多个数据字节D1到Dn。在写入指令序列的末端,芯片选择线CSB从低电平切换为高电平21,代表指令序列的结束,可使存储器使用嵌入式逻辑进行写操作。在一些先前的实施方式中,芯片选择线CSB的电平切换21必须在指令序列中的最后一笔数据输入后发生,否则操作将中止。例如,假设主机希望在写入指令序列完成之前的时间点20或任何其他时间点读取数据,则写入指令序列必须先完成,随后是芯片选择线CSB从低电平切换为高电平。这样的作法,使存储器元件可以开始进行嵌入式的写操作。然后,控制器使芯片选择线CSB产生从高电平切换为低电平,指示另一个指令序列的开始。控制器发出暂停指令23,并且存储器执行暂停操作。等到指定长度的时间之后或直到由存储器提供就绪信号之后,控制器7可以使芯片选择线CSB在时间点22从低电平切换为高电平。此时,存储器已准备好接受新的指令序列,如图2的下方一行所示。新的指令序列是本实施例中的关键读取,其中芯片选择线CSB从高电平切换为低电平代表另一个指令序列的开始。控制器发出包括读取操作码RD,随后发出地址字节A1、A2和A3的指令序列,再使存储器重新返回数据字节D1至Dn。因此,如图2所示,控制器从其主机接收到请求之后,需要等待大量的时间。而这些等待时间发生在控制器能够由存储器元件中存取所请求的数据之前。
图3和图4显示控制器中用来形成图2所示的指令序列的逻辑流程。从图3开始,当主机请求写入(参见步骤100)时,操作程序开始进行。然后,主机发出写入指令,其包括脚本、地址字节和要加载到存储器(参见步骤101)中的数据。控制器中的逻辑判断数据加载是否完成(参见步骤102)。如果数据加载在步骤102没有完成,则加载另一个字节或字符串数据(参见步骤103),且操作程序继续进行,直到数据加载完成。当数据加载完成时,存储器元件进入嵌入式写入操作程序,控制器等待嵌入式写入操作程序的完成(参见步骤104)。
图4绘示在方块104所示的嵌入式写入操作已经开始之后,接收到读取请求的操作流程。图4从步骤106嵌入式写入流程开始。主机中的逻辑监视是否出现读取请求(参见步骤107)。如果没有读取请求,逻辑判断嵌入式写入操作程序是否完成(参见步骤108)。如果嵌入式写入操作程序尚未完成,控制器继续寻找读取请求。在完成嵌入式写入操作(参见步骤108)之后,控制器进入待机状态(参见步骤109)。如果接收到读取请求(参见步骤107),则控制器发出暂停指令(参见步骤110)。然后,控制器等待存储器的暂停就绪信号(参见步骤111)。在接收到暂停准备就绪(参见步骤111)之后,控制器发出读取指令序列,并且等待读取操作程序的完成(参见步骤112)。读取操作完成后,控制器发出恢复指令(参见步骤113)。恢复指令是暂停指令的互补,并使存储器元件继续执行被暂停的写入操作程序。
因此,可以看出,当在写入指令序列发出的期间以及在存储器元件响应写入指令序列而执行嵌入式写入操作流程的期间内请求进行读取操作,会引入实质的延迟。这种延迟可能会干扰高速存储器系统中的关键读取操作(mission-critical read operations)。
某些存储器元件可以执行所谓的同时读写(read-while-write,RWW)操作。这些系统可以允许在嵌入式写入操作正在进行时发出读取指令。在这种情况下,如参考图2至图4所述,控制器可能不需要发出暂停指令。然而,写入指令序列必须在读取指令被发出去之前完成。此外,为了避免在存储器元件上所进行的多个单独操作之间产生相互干扰,适于被同时读写操作所存取的数据,可能有某些限制。例如,存储器元件可能需要多重区块架构(multiple bank architecture),以使读取操作可在不同于并行写入操作(parallelprogram operation)的存储器库上执行。即使在同时读写系统中,等待写入指令序列的完成所涉及的延迟,仍可能在高速存储器系统中引入显著的多余延迟。
解决读取延迟问题的另一种方法包括引入随机存取存储器(Dynamic RandomAccess Memory,DRAM)9或其他高速存储器,如图5所绘示。在图5所绘示的存储器系统中,控制器7被耦合至闪存8和随机存取存储器9。随机存取存储器9与和闪存8相互耦合的总线共享相同的数据线。随机存取存储器9可以被操作为各种配置的快取系统(cache system),借以在某些情况下减少延迟。然而,额外的硬件和空间需求以及所需的额外逻辑处理可能会增加这类型系统的成本和费用。
因此,有需要提供一种可以降低高速存储器系统中的读取等待时间的系统。
发明内容
本说明书的一实施例揭露一种存储器元件,包括一个指令逻辑,允许在第一指令序列(例如页面写入序列)完成之前,中断第一指令序列,然后直接对在控制器层级或主机层级上具有较高实施优先等级的第二指令序列进行接收和译码程序,而不会发生与完成第一指令序列相关联的延迟。此外,此一指令逻辑建构来在第二指令序列完成之后,响应第三指令序列,并且在完成与第二指令序列相关联的嵌入式操作经之后,响应某些类型的指令,借以完成被中断的第一指令,并且执行由第一指令序列所标识的操作,例如页面写入操作。这些较高优先等级的指令序列,可以是为特定系统指定的,可以包括在主机或控制器层级被指定用于较高优先等级的其他序列,例如读取序列(read sequences)、写入缓存器序列(Write Register sequences)、写入状态序列(Write Status sequences)、设定保护配置序列(Set protect configuration sequences),读取ID序列(Read ID sequences)、读取状态序列(Read status sequences)和擦除特殊缓存器序列(Erase special Registerssequences)等。而为了简单说明起见,以下所述实施例中的较高优先等级指令序列,都仅针对读取指令序列来进行说明。
本说明书的另一实施例揭露一种包括存储器,例如NOR闪存之类的非易失性存储器元件。此存储器元件具有总线接口,例如同步串行端口(synchronous serial port)。在一个实施例中,总线接口包括同步串行端口,且总线接口符合串行外设接口(SPI)协议。存储器元件包括用于存取存储器并执行存储器读取和写入操作的控制电路。例如对于闪存而言,控制电路包括可根据从指令逻辑所接收到的指令,而自动执行写入和擦除操作的逻辑和偏压电路(bias circuits)。存储器元件还包括支持可中断指令序列的指令逻辑。因此,本实施例中的指令逻辑被配置来对总线接口上所接收到的指令序列进行译码。指令序列可以包括操作码,以及在总线接口上接收或发送的地址和数据中的一者或二者。指令逻辑还被配置来使控制电路能够执行由指令序列所标识的操作。如本文所述,在接收到第一指令序列的同时,指令逻辑响应第一控制信号(例如,芯片选择信号的第一次电平切换)而中断第一指令序列。由于第一指令序列被中断,因此与被第一指令序列所标识的操作相关联的嵌入操作,在第一指令序列被中断之前尚未被完全定义,且在某些情况下甚至尚未被启动。指令逻辑响应跟随于第一控制信号之后的第二控制信号(例如芯片选择线CSB信号的第二次电平切换),以接收第二指令序列,并且对第二指令序列进行译码,并启动控制电路执行由第二指令序列所标识的操作。第一和第二控制信号可以分别是,例如芯片选择线上的单一个脉冲的前沿和后沿(leading and trailing edges)。总线接口在完成第二指令序列而释出空间之后,指令逻辑可以响应第三控制信号接收第三指令序列,并对第三指令序列进行译码。第三指令序列可以包括操作码,以及地址和数据中的一者或二者,可用以恢复被中断的第一指令序列,并使控制电路能够执行由第一指令序列所标识的操作。
在本说明书的一些实施例中,存储器元件中的指令逻辑包括缓冲器,借以能在译码和执行第二指令序列的期间内,至少保留一部分的第一指令序列。此外,指令逻辑可以使用储存在缓冲器中的一部分第一指令序列来对第三指令序列进行译码。
在本说明书的一些实施例中,第一指令序列的操作码,可标识出用来写入由特殊总线的总线接口所接收的数据的写入操作;且第二指令序列的操作码,可标识出用来读取由相同特殊总线的总线接口所接收的数据的读取操作。
在本说明书的一些实施例中,第一指令序列的操作码可以标识一写入操作,并且第三指令序列包括第一指令序列的操作码和地址。为了能够实现与写入操作相关联的嵌入式操作,需要一个除第一控制信号之外,另一个能够确认写入序列已被完成的事件。在本实施例中,写入确认事件可以包括一种由指令序列所接收的数据数量的计数,或一种显示指令序列已达到地址边界(address boundary)的指示。
在本说明书的一些实施例,中第一指令序列的操作码可以标识一写入操作,并且第三指令序列包括一种与写入操作码不同,且不包括地址,的继续写入操作码。
在本说明书的一些实施例中,第一指令序列的操作码可以标识一写入操作,并且第一指令序列可以标识一写入计数(write count)。指令逻辑在接收到第一控制信号的同时,可以判断是否接收到由写入计数所指定位于指令序列中的所有数据。如果没有接收到所有的数据,则指令逻辑可以进入等待第二控制信号的模式。如果已经接收到由写入计数所指定的所有数据,则可以在第三指令序列结束时,根据所接收到的第一控制信号或其他控制信号启动嵌入式写入操作。
在本说明书的一些实施例中,第一指令序列的操作码可以标识一写入操作,指令逻辑用来在接收跟随于第三指令序列后的控制信号之后,接收写入确认操作码,并且对写入确认操作码进行译码,并且响应写入确认操作码,启动由第一指令序列所标识的嵌入操作。
在本说明书的一些实施例中,可以多次中断写入指令序列。
本说明书的一实施例揭露一种操作存储器的方法,其包括可中断的指令序列。
说明书的一实施例揭露一种支持可中断指令序列的指令协议以及用来实现指令协议的存储器控制器。
为了对本发明上述及其他方面有更佳的了解,下文特列举实施例,并配合所附附图详细说明如下:
附图说明
图1绘示一种现有基本存储器系统的简化示意图;
图2根据现有技术所绘示的写入指令序列,暂停指令和读取指令序列的时序图;
图3和图4绘示用来形成图2的指令序列的控制器操作流程图;
图5根据现有技术所绘示,包括DRAM高速缓存的存储器系统简化示意图;
图6绘示具有写入确认指令以及包括操作码、地址和数据的可中断写入指令序列的时序图;
图7绘示另一种具有写入确认指令但不具有地址的可中断写入指令序列的时序图;
图8绘示一种位于存储器元件中,用来对应图6和图7所示的可中断写入指令序列的指令逻辑的流程图;
图9A绘示一种具有写入确认指令的可中断写入指令序列的时序图。其中,继续写入指令序列可不包含被中断之前所接收的第一写入指令序列所加载的数据;
图9B绘示一种具有写入确认指令和继续写入指令序列的可中断写入指令序列的时序图;
图10A绘示一种位于存储器元件中,用来回应如图9A所示的可中断写入指令序列的指令逻辑的流程图;
图10B绘示一种位于存储器元件中,用来回应如图9B所示的可中断写入指令序列的指令逻辑的流程图;
图11绘示一种包括写入计数码和继续写入指令的可中断写入指令序列的时序图;
图12绘示一种位于存储器元件中,用来对应如图11所示的可中断写入指令序列的指令逻辑的流程图;
图13绘示一种包括继续写入指令序列和写入确认指令的可中断写入指令序列的时序图;
图14绘示一种位于存储器元件中,用来对应如图13所示的可中断写入指令序列的指令逻辑的流程图;
图15绘示一种包括写入计数码、继续写入指令序列和写入确认码的可中断写入指令序列的时序图,其中写入确认码继续写入指令序列的一部分;
图16绘示一种位于存储器元件中,用来对应如图15所示的可中断写入指令序列的指令逻辑的流程图;
图17A绘示一种可中断写入指令序列的时序图,其中写入指令序列的结束,由指令序列的外部数据所提供的地址边界或写入计数来决定;
图17B绘示另一种可中断写入指令序列的时序图,其中写入指令序列的结束,由指令序列的外部数据所提供的地址边界或写入计数来决定;
图18A绘示一种位于存储器元件中,用来对应如图17A所示的可中断写入指令序列的指令逻辑的流程图;
图18B绘示一种位于存储器元件中,用来对应如图17B所示的可中断写入指令序列的指令逻辑的流程图;
图19绘示一种存储器元件的简化方块图,其包括支持本说明书所述的可中断写入指令序列的指令逻辑和控制电路;
图20绘示一种形成本说明书所述的可中断写入指令序列的存储器控制器简化操作流程图。
【附图标记说明】
2:主机 3:通信连结
4、7:控制器 5:总线
6:存储器 8:闪存
9:随机存取存储器
20、22、30、32、33、40、41、42、43、50、52、53、60、62、64、70、72、74、84、90、92:时间点
21:芯片选择线的电平切换
31、51、61、71、81、91:控制信号
34、44、W.CONF:确认操作码
54A:字节序列
63、73、83、CT:写入计数码
86:写入确认码
100:请求写入
101:加载写入指令
102:判断数据加载是否完成
103:加载另一个字节或字符串数据
104:进入嵌入式写入操作程序
106:嵌入式写入流程开始
107:是否出现读取请求
108:判断嵌入式写入操作程序是否完成
109:待机状态
110:发出暂停指令
111:等待存储器的暂停就绪信号
112:读取操作程序是否完成
113:发出恢复指令
200、300、400、500、600、700:待机模式
201:侦测芯片选择线是否从高电平切换至低电平
202:译码由总线接收的指令
203、303、503、603、703:写入指令
204、304、403、504、604、704:读取指令
205、306、76、506:写入确认指令
206、307、406、507、606:其他指令
207:加载写入地址字节
208:侦测芯片选择线是否从低电平切换至高电平
209:加载数据字节
210:加载读取地址字节
211:读取存储器阵列并输出读取数据
212:执行嵌入式写入
301:侦测芯片选择线是否从高电平切换至低电平
302:译码由总线接收的指令
305、405、505、605、705:继续写入指令
310:加载写入地址字节
310A:加载写入地址字节
311:侦测芯片选择线是否从低电平切换至高电平
312:加载数据字节
314:加载读取地址字节
315:读取存储器阵列并输出读取数据
317:侦测芯片选择线是否从低电平切换至高电平
318:加载数据字节
320:执行嵌入式写入
401:侦测芯片选择线是否从高电平切换至低电平
402:译码由总线接收的指令
407:加载写入地址字节
408:载入写入计数
409:侦测芯片选择线是否从低电平切换至高电平
410:加载数据字节
411:判断是否已接收到最后一个数据字节
412:执行嵌入式写入
415:加载读取地址字节
416:读取存储器阵列并输出读取数据
418:侦测芯片选择线是否从低电平切换至高电平
419:加载数据字节
420:判断是否已接收到最后一个数据字节
501:侦测芯片选择线是否从高电平切换至低电平
502:译码由总线接收的指令
510:加载写入地址字节
511:载入写入计数
512:侦测芯片选择线是否从低电平切换至高电平
513:加载数据字节
514:判断是否已接收到最后一个数据字节
514A:将芯片选择线切换至高电平
516:加载读取地址字节
517:读取存储器阵列并输出读取数据
520:侦测芯片选择线是否从低电平切换至高电平
521:加载数据字节
522:判断是否已接收到最后一个数据字节
522A:将芯片选择线切换至高电平
524:执行嵌入式写入
601:侦测芯片选择线是否从高电平切换至低电平
602:译码由总线接收的指令
607:加载写入地址字节
608:载入写入计数
609:侦测芯片选择线是否从低电平切换至高电平
610:加载数据字节
611:判断是否已接收到最后一个数据字节
615:加载读取地址字节
616:读取存储器阵列并输出读取数据
618:侦测芯片选择线是否从低电平切换至高电平
619:加载数据字节
620:判断是否已接收到最后一个数据字节
621:判断是否为写入确认码
622:将侦测芯片选择线切换至高电平
623:执行嵌入式写入
624:错误状态
701:侦测芯片选择线是否从高电平切换至低电平
702:译码由总线接收的指令
708:加载写入地址字节
709:侦测芯片选择线是否从低电平切换至高电平
710:加载数据字节
711:判断是否达到边界地址
715:加载读取地址字节
716:读取存储器阵列并输出读取数据
717:侦测芯片选择线是否从低电平切换至高电平
718:加载数据字节
719:判断是否达到边界地址
720:执行嵌入式写入操作
800:集成电路 802:输入/输出
804:串行时钟 805:时钟发生器
806:地址产生器 814:数据缓存器
820:指令逻辑 822:状态机
824:静态随机存取存储器缓冲器
826:高压产生器
828:存储器阵列 830:X译码器
832:Y译码器 834:感测放大器
836:输出缓冲器 900:启动写入功能
901:发出写指令序列
902:判断是否中断写入指令序列
903:发出读取指令序列
904:判断是否完成读取
905:发出继续写入指令
906:加载数据并判断是否已完成写入指令序列
907:发出写入确认指令
CK:时钟线 I/O 0~N:总线
CSB:芯片选择线 WR:写入操作码
A1、A2、A3:地址 RD:读取操作码
D1~Dn、Dy、Dy+1、Dy+2:数据字节
DATA:数据线
W.CON:继续写入操作码
W.CONF:写入确认操作码
CS#、RESET#、GND、VDD SIO0、SIO1、SI、SO、SIO2、SIO3:引脚
具体实施方式
为了对本发明的上述实施例及其他目的、特征和优点能更明显易懂,下文特提供本技术的实施例,配合所附附图图1至图20进行详细说明。其中,附图图1至图5作为先前技术的背景信息,如前所述已详细介绍。
请参照图6,图6根据本说明书的一实施例所绘示的可中断写入指令序列的时序图。
为了达到本说明书所述的目的,指令序列包括字节或字节序列以及可选择控制信号(optional control signals)。包括字节序列的指令序列可以包括第一字节或多字节的集合,其包括操作码。第二字节或一字节可以包括由操作码所标识的操作地址。在写入指令序列中,跟随在地址之后的字节可以包括在执行写入操作时所要写入的数据。在读取指令序列中,指令序列可以通过地址字节来作为结束。某些类型的指令序列可以是仅包括一个或多个字节的操作码。另一些类型的写入指令序列可以不需要地址。
一个字节由8个位(bits)所组成,是许多集成电路逻辑和存储器电路中所使用的基本储存单元。基本储存单元可以具有其他大小,包括例如一位、两位、四位、16位等等。因此,使用“字节”一词来描述上述指令序列以及本说明书其他实施例的描述方式,通常也适用于使用不同尺寸的储存单元的电路;差别只是以“储存单元”或“储存单元集合”的来描述方式,来替换“字节”或“字节集合”一词。而且,在一些实施例中,可以在单个指令序列中使用不同尺寸的储存单元,例如将一个或多个四位的储存单元加以结合,以形成一个八位的储存单元。
图6绘示芯片选择线CSB(在本实施例中,为低电平致能)、时钟线CK以及使用于像串行外设接口这样的同步串行端口的数据总线或线路DATA的时序图。
第一指令序列通过将芯片选择线CSB从高电平切换到低电平,以及开启时钟线CK的时钟周期来起始。第一个指令序列的第一个字节(在初始时钟脉冲期间接收到8位)包括应用于可中断写入序列的操作码WR。在一些实施例中,操作码WR可以标识页面写入操作。在本实施例中,接下来的三个字节包括用于写入操作的起始地址。在地址之后,提供写入操作的数据。在第三数据字节D3之后的时间点30,控制器中断了第一指令序列。在本实施例中,指令序列被第一控制信号31所中断,此第一控制信号31将芯片选择线CSB从低电平切换到高电平,而没有相应用来结束写入序列的指令。在中断第一指令序列时,控制器再次将芯片选择线CSB从高电平切换到低电平,并提供第二指令序列。在本实施例中,第二指令序列的第一个字节是读取操作码RD。紧跟在第一个字节之后的三个字节包括此一读取操作的起始地址。在接收到起始地址之后,存储器上的指令逻辑会启动嵌入式读取操作,并且在跟随于地址后面的时钟周期内,从存储器向控制器提供输出数据。在读取操作完成时,控制器在时间点32会将芯片选择线CSB从低电平切换到高电平。稍后,控制器会将芯片选择线CSB从高电平切换为低电平以启动第三指令序列。第三指令序列包括恢复被中断的写入指令序列。在本实施例中,第三指令序列的第一个字节是可中断写入序列的操作码WR(与第一指令序列中所使用的操作码相同)。接下来的三个字节包括地址,而紧跟在后的字节包括要被写入的数据。在提供最后一个数据字节之后,控制器在时间点33将芯片选择线CSB从低电平切换到高电平。在本实施例中,嵌入式写入操作在此阶段并不启动。相反的,控制器将芯片选择线CSB从高电平切换到低电平,然后提供一个包括写入确认操作码W.CONF 34的单一字节指令序列。在接收到写入确认操作码34时,指令逻辑启动存储器上的控制电路,使用嵌入式逻辑来执行写入操作。在本实施例以及本说明书所描述的其他指令序列中,在一些实施例中,控制器可以插入“虚拟(dummy)”周期。
前述的可中断写入指令序列可以被中断无限多次,并通过重复此一可中断的写入序列直到其成功来加以恢复。
图7绘示类似图6的另一个指令序列,差别仅在于,图7所绘示的可中断写入指令序列省略了地址字节。
在图7的实施例中,第一指令序列是通过将芯片选择线CSB从高电平切换到低电平,以及开启时钟线CK的时钟周期来起始。第一指令序列的第一字节包括应用于不具备地址字节的中断写入序列的操作码WR。在本实施例中,紧跟在后的字节包括用于写入操作的数据。写入的地址信息是由指令序列以外的逻辑来提供,例如由存储器元件上的地址计数器或状态缓存器提供,并通过其他逻辑程序将地址信息加载。
控制器决定在时间点40中断第一指令序列。为了中断该序列,芯片选择线CSB在时间点41电平从低切换到高,其中并没有用来结束第一指令序列的相应指令。然后,芯片选择线CSB再度从高电平切换到低电平,以标示第二指令序列的开始。在本实施例中,第二指令序列的第一个字节是读取操作码RD。紧接于第一个字节之后的三个字节包括读取操作的起始地址。在接收到起始地址后,存储器上的指令逻辑会启动嵌入式读取操作,并且在紧接于地址之后的时钟周期内,从存储器向控制器提供输出数据。在读取操作完成时,控制器在时间点42将芯片选择线CSB从低电平切换到高电平。稍后,控制器在度将芯片选择线CSB从高电平切换至低电平,借以起始第三指令序列。第三指令序列包括恢复被中断的写入指令序列。在本实施例中,第三指令序列的第一个字节是可中断写入序列的操作码WR(与第一指令序列中所使用的操作码相同)。接下来的字节包括要被写入的数据,以及如上所述由其他地址来源所提供的地址信息。在提供最后一个数据字节之后,控制器在时间点43将芯片选择线CSB从低电平切换到高电平。在本实施例中,嵌入式写入操作不会在此阶段启动。相反的,控制器将芯片选择线CSB从高电平切换到低电平,然后提供一个包括写入确认操作码44的单一字节指令序列。在接收到写入确认操作码44时,指令逻辑启动存储器上的控制电路,使用嵌入式逻辑来执行写入操作。
图8绘示一种位于存储器元件中,用来接收图6和图7所述的第一、第二和第三指令序列的指令逻辑流程图。在本实施例中,流程图是以指令逻辑处于待机模式200的状态下开始。在待机中,指令逻辑监控芯片选择线CSB,以侦测其电平是否从高电平切换到低电平(参见步骤201)。当其电平从高电平切换到低电平发生后,指令逻辑针对用来标识由总线所接收的指令的操作码进行译码(参见步骤202)。指令逻辑可以针对各种操作码,包括写入指令203、读取指令204、写入确认指令205以及由箭头206所标示的其他指令进行译码。
如果指令逻辑译码到写入指令,则继续从指令序列加载地址字节,或从另一个地址来源读取地址字节(参见步骤207)。在接收到地址字节后,指令逻辑会监控芯片选择线CSB以侦测其电平是否从低电平切换到高电平(参见步骤208)。如果未检测到其电平切换,则指令逻辑从指令序列加载数据字节(参见步骤209)。在步骤209之后,指令逻辑返回步骤208以确定芯片选择线CSB是否从低电平切换到高电平。该循环步骤将会继续,直到侦测到芯片选择线CSB从低电平切换到高电平为止。如果在步骤208侦测到芯片选择线CSB从低电平切换到高电平,则指令逻辑返回到待机模式200,并且监控芯片选择线CSB是否从高电平切换到低电平。
如果指令是读取指令204,则指令逻辑加载与读取操作相关联的地址字节(参见步骤210),并启动嵌入式电路以读取存储器阵列并输出所读取的数据(参见步骤211)。在读取操作完成时,存储器可以发出就绪信号,或者控制器可以侦测到操作结束并返回待机模式200。
如果指令是写入确认指令205,则指令逻辑可以验证它是否正确加载要被写入的指令序列,并启动存储器上的控制电路以存取存储器阵列并执行嵌入式写入操作(参见步骤212)。在启动嵌入式写入操作之后,控制器可以返回待机模式200。为了方便说明起见,可以通过简单地设定一个控制信号,或是嵌入式电路所使用,可标示完成此一操作要求的控制信号,或是通过其他更复杂的信号来“起动”控制电路。
图9A绘示另一种使用继续写入操作码的可中断写入指令序列。
在图9A的实施例中,第一指令序列通过将芯片选择线CSB从高电平切换到低电平,以及开启时钟线CK的时钟周期来起始。第一指令序列的第一个字节(在初始时钟脉冲期间接收到8位)包括用于可中断写入序列的操作码WR。在一些实施例中,操作码WR可以标识页面写入操作。在本实施例中,接下来的三个字节包括用于写入操作的起始地址。紧跟在地址后的是提供写入操作的数据。在第三数据字节D3之后的时间点50,控制器中断了第一指令序列。在本实施例中,第一指令序列被第一控制信号51中断,第一控制信号51将芯片选择线CSB从低电平切换到高电平,其中并没有用来结束写入序列的相应指令。在第一指令序列中断时,控制器再次将芯片选择线CSB从高电平切换到低电平(第二控制信号)并提供第二指令序列。在本实施例中,第二指令序列的第一个字节是读取操作码RD。接在第一个字节之后的三个字节包括读取操作的起始地址。在接收到起始地址后,存储器上的指令逻辑启动嵌入式读取操作,并且于紧接在地址后的时钟周期内,从存储器向控制器提供输出数据。读取操作完成后,控制器在时间点52将芯片选择线CSB从低电平切换到高电平。
稍后,控制器会将芯片选择线CSB从高电平切换到低电平以启动第三指令序列。第三指令序列包括恢复被中断的写入指令序列。在本实施例中,第三指令序列的第一字节54是用于恢复前述之可中断写入序列的继续写入操作码W.CON。同样的,在本实施例中,存储器元件的指令逻辑储存了恢复指令序列中所使用,且接收自第一指令序列中的字节。因此,第三指令序列中紧接继续写入操作码的字节,包括要被写入的数据。在本实施例中,第一指令序列是在第三数据字节D3之后被中断的,而在第三指令序列中,紧接在继续写入操作码之后的第一个字节,即是该可中断写入序列(第一指令序列)的第四个数据字节D4。
在提供最后一个数据字节之后,控制器在时间点53将芯片选择线CSB从低电平切换到高电平。在本实施例中,在此阶段并不会启动嵌入式写入操作。相反的,控制器会将芯片选择线CSB从高电平切换到低电平,然后提供包括写入确认操作码W.CONF的单一字节55指令序列。当接收到写入确认操作码W.CONF时,指令逻辑启动存储器上的控制电路,以使用嵌入式逻辑来执行页面写入操作。
图9B绘示类似图9A的另一种可中断写入指令序列。其在第三指令序列中,紧接于继续写入操作码W.CON之后提供了写入地址。这些地址可以是来自被中断的写入指令序列的写入地址的全部或一部分,并且在字节序列54A中重复。数据字节Dy、Dy+1、Dy+2...可以是字节序列54A中的地址的字节,也可以是序列中的下一个字节。如果继续写入操作码的页面地址与被中断的写入指令序列的页面地址不同,则可以在序列中的这个不同点上提供不同的数据集,或者可以将此一情形视为写入序列因为页面地址更改而中止。
图10A绘示一种位于存储器元件中,用来接收图9A所述的第一、第二和第三指令序列的指令逻辑流程图。在本实施例中,流程图是以指令逻辑处于待机模式300的状态下开始。在待机中,指令逻辑监控芯片选择线CSB,侦测其是否从高电平切换到低电平(参见步骤301)。当CSB从高电平切换到低电平发生后,指令逻辑针对用来标识由总线所接收的指令的操作码进行译码(参见步骤302)。指令逻辑可以针对各种操作码,包括写入指令303、读取指令304、继续写入指令305、写入确认指令306以及由箭头307所标示的其他指令进行译码。
如果指令逻辑是对写入指令进行译码,则继续从指令序列加载地址字节(参见步骤310)。在接收到地址字节之后,指令逻辑监控芯片选择线CSB,以侦测其是否从低电平切换到高电平(参见步骤311)。如果未侦测到电平切换,则指令逻辑从指令序列加载数据字节(参见步骤312)。在步骤312之后,指令逻辑返回步骤311以确定芯片选择线CSB是否从低电平切换到高电平。该循环步骤将会继续,直到侦测到芯片选择线CSB的电平切换为止。如果在步骤311侦测到电平切换,则指令逻辑返回到待机模式300,同时储存在中断之前所接收到的一部分指令序列。在待机模式300中,指令逻辑监控芯片选择线CSB以侦测是否从高电平切换到低电平。如果指令是读取指令304,则指令逻辑加载与读取操作相关联的地址字节(参见步骤314),并启动嵌入式电路以读取存储器阵列并输出所读取的数据(参见步骤315)。读取操作完成后,存储器返回待机模式300。
如果指令是继续写入指令305,则指令逻辑监控芯片选择线CSB以侦测是否从低电平切换到高电平(参见步骤317)。如果未侦测到电平切换,则从指令序列加载数据字节(参见步骤318)。在步骤318加载数据字节之后,指令逻辑返回步骤317,继续监控芯片选择线CSB。如果步骤317侦测到从低电平切换到高电平,则指令逻辑返回待机模式300;同时将在中断之前所接收到的一部分指令序列储存在缓冲器中。
如果指令是写入确认指令306,则指令逻辑可以验证它是否正确加载要被写入的指令序列,并启动存储器上的控制电路以存取存储器阵列并执行嵌入式写入操作(参见步骤320)。
图10B绘示类似图10A的另一种位于存储器元件上的指令逻辑流程图,二者的差别指在于,图10B所示的数据序列有做修改。该修改内容是,如果指令是继续写入指令305,则指令逻辑从指令序列加载写入地址字节(参见步骤310A)。然后,指令逻辑在等待芯片选择信号(chip select signal)切换的同时,顺序加载数据字节(参见步骤317-318)。图10B的其他流程与图10A相同。
图11绘示使用继续写入操作码,但不使用写入确认指令,的另一种可中断写入指令序列的时序图。
在图11的实施例中,第一指令序列通过将芯片选择线CSB从电平高切换到低电平,以及开启时钟线CK的时钟周期来起始。第一指令序列的第一个字节(在初始时钟脉冲期间接收到8位)包括用于可中断写入序列的操作码WR。在一些实施例中,操作码WR可以标识页面写入操作。在本实施例中,接下来的三个字节包括用于写入操作的起始地址。紧跟在起始地址之后的指令序列包括写入计数码63(CT),该计数码可标识要包括在指令序列中的字节的数量。地址写入计数之后,则提供进行写入操作所需的数据。在第二个数据字节D2之后的时间点60,控制器中断了第一指令序列。在本实施例中,指令序列被第一控制信号61所中断,第一控制信号61将芯片选择线CSB从低电平切换到高电平,其中并没有用来结束写入序列的相应指令。在第一指令序列中断时,指令逻辑将第一指令序列中所接收的信息储存于缓冲器中,以供稍后恢复操作使用。此外,控制器再次将芯片选择线CSB从高电平切换到低电平(第二控制信号)并提供第二指令序列。在本实施例中,第二指令序列的第一个字节是读取操作码RD。接在第一个字节之后的三个字节包括读取操作的起始地址。在接收到起始地址后,存储器上的指令逻辑启动嵌入式读取操作,并且于紧接在地址后的时钟周期内,从存储器向控制器提供输出数据。读取操作完成后,控制器在时间点62将芯片选择线CSB从低电平切换到高电平。稍后,控制器将芯片选择线CSB从高电平切换为低电平,借以起始第三指令序列。
第三指令序列包括恢复被中断的指令序列的写入指令序列。在本实施例中,第三指令序列的第一个字节65是用来恢复可中断写入序列的继续写入操作码W.CON。同样在本实施例中,存储器元件的指令逻辑储存了接收自第一指令序列,用来恢复第一指令序列的字节。因此,在第三指令序列中,紧跟着继续写入操作码的字节包括要被写入的数据。在本实施例中,第一指令序列是在第二个数据字节D2之后被中断的,而在第三指令序列中,位于继续写入操作码之后的第一个字节,即是可中断写入序列的第三个数据字节D3。
在提供最后一个数据字节之后(或假设序列再被中断),控制器在时间点64将芯片选择线CSB从低电平切换到高电平。此时,指令逻辑判断接收来自于第一和第三指令序列的组合的字节数目是否与写入计数操作码匹配。如果指令逻辑发现已经接收到整个序列,则指令逻辑启动存储器元件上的控制电路,执行嵌入式写入操作。否则,指令逻辑返回到待机模式,同时储存已经接收到的一部分指令序列,以用于后续可能的写入指令序列恢复操作。
图12绘示一种位于存储器元件中,用来接收图11所述的第一、第二和第三指令序列的指令逻辑流程图。在本实施例中,流程图是以指令逻辑处于待机模式400的状态下开始。在待机中,指令逻辑监控芯片选择线CSB侦测是否从高电平切换到低电平(参见步骤401)。当电平切换发生时,指令逻辑针对用来标识由总线所接收的指令的操作码进行译码(参见步骤402)。指令逻辑可以针对各种操作码,包括写入指令403、读取指令404、继续写入指令405以及由箭头406所标示的其他指令进行译码。
如果指令逻辑对写入指令进行译码,则继续从指令序列中加载地址字节,或从另一个地址来源读取地址字节(参见步骤407)。然后指令逻辑会加载写入计数(参见步骤408)。在接收到地址字节和写入计数之后,指令逻辑会监控芯片选择线CSB,以侦测是否从低电平切换到高电平(参见步骤409)。如果未检测到电平切换,则指令逻辑从指令序列加载数据字节(参见步骤410)。在步骤410之后,指令逻辑通过将所接收到的字节数量与写入计数进行比对,来判断是否已接收到最后一个数据字节(参见步骤411)。如果最后一个数据字节未被接收,则指令逻辑返步骤409以确定芯片选择线CSB是否从低电平切换到高电平。该循环步骤将会继续,直到接收到所有的数据字节,或直到侦测到芯片选择线CSB的电平切换为止。
如果在步骤409侦测到电平切换,则指令逻辑返回到待机模式400,同时将在中断之前所接收到的一部分指令序列加以储存。在待机模式400中,指令逻辑监控芯片选择线CSB路,以侦测是否从高电平切换到低电平。如果在步骤411确定已经接收到最后一个数据字节,则指令逻辑会针对完整的指令序列是否就绪进行验证,以启动控制电路存取存储器阵列并执行嵌入式写入操作(参见步骤412)。在一些实施例中,于步骤411之后,指令逻辑会判断芯片选择线CSB是否从低电平切换到高电平(未绘示),并且根据这个电平切换来验证完整的指令序列已就绪,然后启动控制电路来存取存储器阵列并执行嵌入式写操作(参见步骤412)。
如果指令是读取指令404,则指令逻辑加载与读取操作相关联的地址字节(参见步骤415),并启动嵌入式电路以读取存储器阵列并输出所读取的数据(参见步骤416)。读取操作完成后,存储器侦测到操作结束并返回待机模式400。
如果指令是继续写入指令405,则指令逻辑监控芯片选择线CSB以侦测是否从低电平切换到高电平(参见步骤418)。如果未侦测到电平切换,则从指令序列加载数据字节(参见步骤419)。在步骤419之后,指令逻辑通过将所接收到的字节数量与写入计数进行比对,来确定是否接收到最后一个数据字节(参见步骤420)。如果最后一个数据字节尚未被接收,则指令逻辑返回到步骤418以确定芯片选择线CSB是否从低电平切换到高电平。该循环步骤将会继续,直到接收到所有的数据字节,或直到侦测到芯片选择线CSB的电平切换为止。
如果在步骤418侦测到电平切换,则指令逻辑返回到待机模式400,同时储存在中断之前所接收到的一部分指令序列。在待机模式400中,指令逻辑监控芯片选择线CSB以侦测是否从高电平切换到低电平。
如果在步骤420确定已经接收到最后一个数据字节,则指令逻辑会针对完整的指令序列是否就绪进行验证,以启动控制电路存取存储器阵列并执行嵌入式写入操作(参见步骤412)。在一些实施例中,于步骤420之后,指令逻辑会判断芯片选择线CSB是否从低电平切换到高电平(未绘示),并且根据这个电平切换来验证完整的指令序列已就绪,然后启动控制电路来存取存储器阵列并执行嵌入式写操作(参见步骤412)。
图13绘示另一种具有写入计数,且使用继续写入操作码和写入确认指令的可中断写入指令序列的时序图。
在图13的实施例中,第一指令序列通过将芯片选择线CSB从高电平切换到低电平,以及开启时钟线CK的时钟周期来起始。第一指令序列的第一个字节(在初始时钟脉冲期间接收到8位)包括用于可中断写入序列的操作码WR。在一些实施例中,操作码WR可以标识页面写入操作。在本实施例中,接下来的三个字节包括用于写入操作的起始地址。紧跟在起始地址之后的指令序列包括写入计数码73,该计数码可标识要包括在指令序列中的字节的数量。地址写入计数之后,则提供进行写入操作所需的数据。在第二个数据字节D2之后的时间点70,控制器中断了第一指令序列。在本实施例中,指令序列被第一控制信号71所中断,第一控制信号71将芯片选择线CSB从低电平切换到高电平,其中并没有用来结束写入序列的相应指令。在第一指令序列中断时,指令逻辑将第一指令序列中所接收的信息储存于缓冲器中,以供稍后恢复操作使用。此外,控制器再次将芯片选择线CSB从高电平切换到低电平(第二控制信号)并提供第二指令序列。在本实施例中,第二指令序列的第一个字节是读取操作码RD。接在第一个字节之后的三个字节包括读取操作的起始地址。在接收到起始地址后,存储器上的指令逻辑启动嵌入式读取操作,并且于紧接在地址后的时钟周期内,从存储器向控制器提供输出数据。读取操作完成后,控制器在时间点72将芯片选择线CSB从低电平切换到高电平。稍后,控制器将芯片选择线CSB从高电平切换为低电平,借以起始第三指令序列。
第三指令序列包括恢复被中断的指令序列的写入指令序列。在本实施例中,第三指令序列的第一个字节75是用来恢复可中断写入序列的继续写入操作码W.CON。同样在本实施例中,存储器元件的指令逻辑储存了接收自第一指令序列,用来恢复第一指令序列的字节。因此,在第三指令序列中,紧跟着继续写入操作码的字节包括要被写入的数据。在本实施例中,第一指令序列是在第二个数据字节D2之后被中断的,而在第三指令序列中,位于继续写入操作码之后的第一个字节,即是可中断写入序列的第三个数据字节D3。
在提供最后一个数据字节Dn之后,控制器在时间点74将芯片选择线CSB从低电平切换到高电平。此时,指令逻辑判断并储存一个旗标(flag),以显示接收来自于第一和第三指令序列的组合的字节数目是否与写入计数操作码匹配。不过,在此一阶段中嵌入式写入操作并未被启动。在本实施例中,指令逻辑后续需要一个写入确认指令76,在完成写入指令序列或继续写入指令序列之后,指令逻辑接收到具有正确数量的数据字节的写入确认指令,指令逻辑会启动存储器元件中的控制电路,执行嵌入式写入操作。否则,指令逻辑返回到待机模式。
图14绘示一种位于存储器元件中,用来接收图13所述的第一、第二和第三指令序列的指令逻辑流程图。在本实施例中,流程图是以指令逻辑处于待机模式500的状态下开始。在待机中,指令逻辑监控芯片选择线CSB侦测是否从高电平切换到低电平(参见步骤501)。当电平切换发生时,指令逻辑针对用来标识由总线所接收的指令的操作码,进行译码(参见步骤502)。指令逻辑可以针对各种操作码,包括写入指令503、读取指令504、继续写入指令505、写入确认指令506以及由箭头507所标示的其他指令进行译码。
如果指令逻辑对写入指令503进行译码,则继续从指令序列中加载地址字节(参见步骤510)。然后指令逻辑会加载写入计数(参见步骤511)。在接收到地址字节和写入计数之后,指令逻辑会监控芯片选择线CSB,以侦测是否从低电平切换到高电平的(参见步骤512)。如果未检测到电平切换,则指令逻辑从指令序列加载数据字节(参见步骤513)。在步骤513之后,指令逻辑通过将所接收到的字节数量与写入计数进行比对,来确定是否已接收到最后一个数据字节(参见步骤514)。如果最后一个数据字节未被接收,则指令逻辑返步骤512以确定芯片选择线CSB是否从低电平切换到高电平。该循环步骤将会继续,直到接收到所有的数据字节,或直到侦测到芯片选择线CSB的电平切换为止。
如果在步骤512侦测到电平切换,则指令逻辑返回到待机模式500,同时将在中断之前所接收到的一部分指令序列加以储存。在待机模式500中,指令逻辑监控芯片选择线CSB路,以侦测是否从高电平切换到低电平。
如果在步骤514确定已经接收到最后一个数据字节,则将芯片选择线CSB的低电平切换为高电平(参见步骤514A),则指令逻辑返回到待机模式500,同时储存一个能显示已接收到写入指令所有数据序列的旗标或其他标示。在接收到写入确认指令之后,如下所述,启动嵌入式写入操作。
如果指令是读取指令504,则指令逻辑加载读取操作相关联的地址字节(参见步骤516),并启动嵌入式电路以读取存储器阵列并输出所读取的数据(参见步骤517)。读取操作完成后,存储器可以发出就绪信号,或者控制器可以侦测到操作结束并返回待机模式500。
如果指令是继续写入指令505,则指令逻辑监控芯片选择线CSB以侦测是否从低电平切换到高电平(参见步骤520)。如果未侦测到电平切换,则从指令序列加载数据字节(参见步骤521)。在步骤521加载数据字节之后,指令逻辑会通过将所接收到的字节数目与写入计数进行比对来判断是否已接收到最后一个数据字节(参见步骤522)。如果最后一个数据字节尚未被接收,则指令逻辑返回到步骤520以侦测芯片选择线CSB是否从低电平切换到高电平。该循环步骤将会继续,直到接收到所有的数据字节,或直到侦测到芯片选择线CSB的电平切换为止。
如果在步骤520侦测到芯片选择线CSB从低电平切换到高电平,则指令逻辑返回到待机模式500,同时将被中断之前所接收的一部分指令序列储存在缓冲器中。
如果在步骤522确定已经接收到最后一个数据字节,则将芯片选择线CSB的低电平切换为高电平(参见步骤522A)之后,指令逻辑返回到待机模式500,同时储存一个旗标或其他指示,显示写入指令序列的所有数据已被接收到了。
如果指令是写入确认指令506,则指令逻辑可以验证它是否正确加载要被写入的指令序列,并启动存储器上的控制电路,借以存取存储器阵列并执行嵌入式写入操作(参见步骤524)。启用嵌入式写入操作后,控制器可以返回到待机模式500。
图15绘示另一种具有写入计数,且使用继续写入操作码和写入确认指令的可中断写入指令序列的时序图。
在图15的实施例中,第一指令序列通过将芯片选择线CSB从高电平切换到低电平,以及开启时钟线CK的时钟周期来起始。第一指令序列的第一个字节(在初始时钟脉冲期间接收到8位)包括用于可中断写入序列的操作码WR。在一些实施例中,操作码WR可以标识页面写入操作。在本实施例中,接下来的三个字节包括用于写入操作的起始地址。紧跟在起始地址之后的指令序列包括写入计数码83,该计数码可标识要包括在指令序列中的字节的数量。地址写入计数之后,则提供进行写入操作所需的数据。在第二个数据字节D2之后的时间点80,控制器中断了第一指令序列。在本实施例中,指令序列被第一控制信号81所中断,第一控制信号81将芯片选择线CSB从低电平切换到高电平,其中并没有用来结束写入序列的相应指令。在第一指令序列中断时,指令逻辑将第一指令序列中所接收的信息储存于缓冲器中,以供稍后恢复操作使用。此外,控制器再次将芯片选择线CSB从高电平切换到低电平(第二控制信号)并提供第二指令序列。在本实施例中,第二指令序列的第一个字节是读取操作码RD。接在第一个字节之后的三个字节包括读取操作的起始地址。在接收到起始地址后,存储器上的指令逻辑启动嵌入式读取操作,并且于紧接在地址后的时钟周期内,从存储器向控制器提供输出数据。读取操作完成后,控制器在时间点82将芯片选择线CSB从低电平切换到高电平。稍后,控制器将芯片选择线CSB从高电平切换至低电平,借以起始第三指令序列。
第三指令序列包括恢复被中断的指令序列的写入指令序列。在本实施例中,第三指令序列的第一个字节85是用来恢复可中断写入序列的继续写入操作码W.CON。同样在本实施例中,存储器元件的指令逻辑储存了接收自第一指令序列,用来恢复第一指令序列的字节。因此,在第三指令序列中,紧跟着继续写入操作码的字节包括要被写入的数据。在本实施例中,第一指令序列是在第二个数据字节D2之后被中断的,而在第三指令序列中,位于继续写入操作码之后的第一个字节,即是可中断写入序列的第三个数据字节D3。
在提供最后一个数据字节之后,例如使用写入计数来加以确定,写入指令序列中会包括一个可以确认写入指令序列终点的写入确认码86。在此之后,控制器在时间点84将芯片选择线CSB从低电平切换到高电平。此时,指令逻辑会判断:写入指令序列中的最后一个字节,是否为写确认码。如果指令逻辑通过写入确认码认定已经接收到整个写入指令序列,则指令逻辑启动存储器元件上的控制电路,借以使用嵌入式逻辑执行页面写入操作。否则,指令逻辑返回到待机模式。
图16绘示一种位于存储器元件中,用来接收图15所述第一、第二和第三指令序列的指令逻辑流程图。在本实施例中,流程图是以指令逻辑处于待机模式600的状态下开始。在待机中,指令逻辑监控芯片选择线CSB侦测是否从高电平切换到低电平(参见步骤601)。当电平切换发生时,指令逻辑针对用来标识由总线所接收的指令的操作码进行译码(参见步骤502)。指令逻辑可以针对各种操作码,包括写入指令603、读取指令604、继续写入指令605以及由箭头606所标示的其他指令进行译码。
如果指令逻辑对写入指令进行译码,则继续从指令序列中加载地址字节(参见步骤607)。然后指令逻辑会加载写入计数(参见步骤608)。在接收到地址字节和写入计数之后,指令逻辑会监控芯片选择线CSB,以侦测其是否从低电平切换到高电平(参见步骤609)。如果未检测到电平切换,则指令逻辑从指令序列加载数据字节(参见步骤610)。在步骤610之后,指令逻辑通过将所接收到的字节数量与写入计数进行比对,来确定是否已接收到最后一个数据字节(参见步骤611)。如果最后一个数据字节未被接收,则指令逻辑返步骤609以确定芯片选择线CSB是否从低电平切换到高电平。该循环步骤将会继续,直到接收到所有的数据字节,或直到侦测到芯片选择线CSB的电平切换为止。
如果在步骤609侦测到电平切换,则指令逻辑返回到待机模式600,同时将在中断之前所接收到的一部分指令序列加以储存。在待机模式600中,指令逻辑监控芯片选择线CSB路,以侦测是否从高电平切换到低电平。
如果在步骤609确定已经接收到最后一个数据字节,则指令逻辑判断下一个字节是否为写入确认码(参见步骤621)。如果步骤609已经接收到写入确认码,在步骤622中,指令逻辑会监控芯片选择线CSB路的电平切换。当步骤622侦测到从低电平切换到高电平时,指令逻辑会针对完整的指令序列是否就绪进行验证,并启动控制电路执行嵌入式写入操作(参见步骤623)。在一些实施例中,于步骤621之后,指令逻辑会并没有监控芯片选择线CSB路的电平切换,而是直接针对完整的指令序列是否就绪进行验证,并启动控制电路执行嵌入式写入操作(参见步骤623)。假如在步骤621中,没有侦测到写入验证指令,则指令逻辑会判定发生了错误状态(参见步骤624),并且可以导入执行其他恢复操作。
如果指令是读取指令604,则指令逻辑加载读取操作相关联的地址字节(参见步骤615),并启动嵌入式电路以读取存储器阵列并输出所读取的数据(参见步骤616)。读取操作完成后,存储器可以发出就绪信号,或者控制器可以侦测到操作结束并返回待机模式600。
如果指令是继续写入指令605,则指令逻辑监控芯片选择线CSB以侦测是否从低电平切换到高电平(参见步骤618)。如果未侦测到电平切换,则从指令序列加载数据字节(参见步骤619)。在步骤619之后,指令逻辑会通过将所接收到的字节数目与写入计数进行比对,来判断是否已接收到最后一个数据字节(参见步骤620)。如果最后一个数据字节尚未被接收,则指令逻辑返回到步骤618以侦测芯片选择线CSB是否从低电平切换到高电平。该循环步骤将会继续,直到接收到所有的数据字节,或直到侦测到芯片选择线CSB的电平切换为止。
如果在步骤618侦测到电平切换,则指令逻辑返回到待机模式600,同时储存在中断之前所接收到的一部分指令序列。在待机模式600中,指令逻辑监控芯片选择线CSB以侦测是否从高电平切换到低电平。
如果在步骤618判定已经接收到最后一个数据字节,则指令逻辑判断下一个字节是否为写入确认码(参见步骤621),同时执行上述步骤。
图17A绘示一种可中断写入指令序列的时序图,其中写入指令序列的完成,通过侦测地址边界的方式来决定。
在图17A的实施例中,第一指令序列通过将芯片选择线CSB从高电平切换到低电平,以及开启时钟线CK的时钟周期来起始。第一指令序列的第一个字节包括用于可中断写入序列的操作码WR。在一些实施例中,操作码WR可以标识页面写入操作。在本实施例中,接下来的三个字节包括用于写入操作的起始地址。紧跟在起始地址之后,则提供进行写入操作所需的数据。在第三个数据字节D3之后的时间点90,控制器中断了第一指令序列。在本实施例中,指令序列被第一控制信号91所中断,第一控制信号91将芯片选择线CSB从低电平切换到高电平,其中并没有用来结束写入序列的相应指令。在第一指令序列中断时,控制器再次将芯片选择线CSB从高电平切换到低电平(第二控制信号)并提供第二指令序列。在本实施例中,第二指令序列的第一个字节是读取操作码RD。接在第一个字节之后的三个字节包括读取操作的起始地址。在接收到起始地址后,存储器上的指令逻辑启动嵌入式读取操作,并且于紧接在地址后的时钟周期内,从存储器向控制器提供输出数据。读取操作完成后,控制器在时间点92将芯片选择线CSB从低电平切换到高电平。稍后,控制器将芯片选择线CSB从高电平切换为低电平,借以起始第三指令序列。
第三指令序列包括恢复被中断的指令序列的写入指令序列。在本实施例中,第三指令序列的第一个字节95可以是与第一指令序列的写入操作码相同的可中断写入序列写入操作码WR。接着操作码的三个字节包括写入操作的起始地址。这些地址字节可以与被中断的写入指令序列具有相同的地址;但是如果被中断的写入指令序列无法被恢复,则这些地址字节可以具有与被中断的写入指令序列不同的地址。紧跟在地址字节之后的,包括要写入的数据。在提供最后一个数据字节之后,指令逻辑可以判定最后一个数据字节是否与地址边界(例如被写入的存储器中的页面边界)相互匹配。这可以通过比对指令序列所提供的起始地址与目前所使用的地址边界来判定。也可以通过侦测图15的指令序列所携带或储存于存储器元件的缓存器或其他来源中的写入计数,比较指令序列的起始地址和当前地址边界之间的差异来确定。
在提供最后一个数据字节之后,控制器在时间点94将芯片选择线CSB从低电平切换到高电平。此时,指令逻辑会判断定是否已经达到地址边界。如果指令逻辑发现已经接收到整个序列,则指令逻辑会启动存储器元件中的控制电路,借以使用嵌入式逻辑执行写入操作。否则,指令逻辑会返回到待机模式。
图17B绘示类似图17A的另一种使用继续写入指令来恢复指令序列的可中断写入指令序列时序图,如前所述该继续写入指令位于字节循环95之中,且后续可以连接着数据字节,而不需提供新的地址信息。在此一时序图中,数据字节可以在最后成功传送的数据字节(D3)(写入指令序列被中断的时间点90之前)之后,依序开始。恢复指令序列中的最后一个数据字节Dn可以通过到达预定的地址边界来侦测。而地址边界,如图17A所述,可通过写入指令序列中的数据字节数量,或者使用其它写入计数逻辑来判定。
图18A绘示一种位于存储器元件中,用来接收图17A所述第一、第二和第三指令序列的指令逻辑流程图。在本实施例中,流程图是以指令逻辑处于待机模式700的状态下开始。在待机中,指令逻辑监控芯片选择线CSB侦测是否从高电平切换到低电平(参见步骤701)。当电平切换发生时,指令逻辑针对用来标识由总线所接收的指令的操作码进行译码(参见步骤702)。指令逻辑可以针对各种操作码,包括写入指令703、读取指令704以及由箭头706所标示的其他指令进行译码。
如果指令逻辑对写入指令进行译码,则继续从指令序列中加载写入操作的地址字节(参见步骤708)。在接收到地址字节之后,指令逻辑会监控芯片选择线CSB,以侦测是否从低电平切换到高电平(参见步骤709)。如果未检测到电平切换,则指令逻辑从指令序列加载数据字节(参见步骤710)。然后,指令逻辑会判断这些数据字节是否与用来进行写入操作的边界地址集(参见步骤711)相互对应。这个操作可以由指令逻辑来进行。而操作的方式,则是将接收自指令序列的起始地址和当前的边界地址进行比对,同时考虑已接收到的数据的字节数目的偏移量来进行判断。
如果未侦测到边界地址,则指令逻辑返回到步骤709,监控芯片选择线CSB的电平切换。如果在步骤709,侦测到芯片选择线CSB的电平切换,则指令逻辑返回待机模式700。
如果步骤711确定已经达到边界地址,则指令逻辑可以启动存储器元件上的控制电路,以存取存储器阵列并执行嵌入式写入操作(参见步骤720)。在一些实施例中,指令逻辑在启动嵌入式写入操作之前会等待芯片选择线CSB的电平切换。
如果在步骤702中,被译码的指令是读取指令704,则指令逻辑从指令序列加载读取操作的地址字节(参见步骤715)。然后指令逻辑启动存储器元件上的控制电路,以读取存储器阵列并执行嵌入式读取操作(参见步骤716)。
图18B是用来对应图17B所示的顺序的逻辑流程图。与图18A类似,但增加了继续写入指令的逻辑。此处仅针对图18A所附加的部分进行描述。如图17B所述,译码器可以在字节循环95接收继续写入指令。如果所接收的指令是继续写入指令707,则指令逻辑监控芯片选择线CSB,以侦测是否从低电平切换到高电平(参见步骤717)。如果没有侦测到芯片选择线CSB的电平切换,则从指令序列加载数据字节(参见步骤718)。
然后,指令逻辑会判定数据字节是否与用于写入操作的边界地址集相互对应(参见步骤719)。指令逻辑可以通过比对接收自指令序列的起始地址和当前的边界地址,同时考虑已接收到的数据的字节数目的偏移量来执行此操作。
如果未侦测到边界地址,则指令逻辑返回到步骤717以监控芯片选择线CSB的电平切换。如果在步骤717处侦测到芯片选择线CSB的电平切换,则指令逻辑返回待机模式700。
如果在步骤719中已经确定达到边界地址,则指令逻辑会启动存储器元件上的控制电路,以存取存储器阵列并执行嵌入式写入操作(参见步骤720)。在一些实施例中,指令逻辑在启动嵌入式写入操作之前会等待芯片选择线CSB的电平切换。
如果在步骤717中侦测到芯片选择线CSB从低电平切换到高电平,则指令逻辑返回到待机模式700,而在一些实施例中,还会将指令序列被中断之前所接收的一部分指令序列储存到缓冲器。
图19绘示一种集成电路800,例如SPI NOR闪存的简化方块图,其包括支持本说明书所述的可中断写入指令序列的指令逻辑和控制电路。集成电路800可以通过单一芯片来实现。
输入/输出方块802表示符合串行外设接口标准的同步串行总线,并具有标准引脚。引脚CS#是用于芯片选择,可以对应于上述的芯片选择线CSB。引脚CS#为低电平时,元件被选取。引脚RESET#允许重设元件的操作状态,终止当前正在运行的程序并重设状态机。引脚GND和VDD分别用来接地和供电。在标准串行外设接口中,引脚SI和SO分别为串行数据输入和输出。在双串行外设接口操作中,引脚SI和SO成为双向输入/输出:引脚SIO0和SIO1。在四线串行外设接口操作中,引脚SIO2和SIO3可用于更高速的传输。前述配置仅为例示,因此更多引脚的配置是可能。集成电路800还可提供串行时钟(Serial clock,SLCK)804。集成电路800上的时钟发生器805产生用于指令逻辑820和集成电路其他元件的时钟信号。在本实施例中,时钟发生器805由串行时钟804的引脚接收串行时钟信号。由输入/输出方块802所代表的总线接口,可以支持双倍数据速率(double data rate,DDR)或单倍数据速率(single data rate,SDR)通信协议。
在各种实施例中可以使用其他类型的串行接口。可以使用NOR闪存以外的存储器技术。
在一些实施例中,用于表示本说明书中指令序列的开始和结束的控制信号可以是,输入/输出方块802中的一条或多条总线上的信号。例如,在一些实施例中,可以切换CS#或RESET#,例如这些信号在第一次电平切换中,可以是从低电平到高电平,或者在第二电平切换中从高电平到低电平。另外,结束事件(termination event)可以由芯片的控制逻辑内部产生。
地址产生器806包括提供用于存取存储器阵列的地址序列的电路。
在一些实施例中,数据缓存器814可以充当输入缓冲器来储存一部分的指令序列。数据和参数可以储存在静态随机存取存储器(Static Random-Access Memory,SRAM)缓冲器824中,以支持可中断写入操作和其他操作。在一些实施例中,数据缓存器814可以是静态随机存取存储器缓冲揣824的一部分。
集成电路800还包括可产生内部控制信号的指令逻辑820以及诸如具有支持偏置电路的状态机822的控制电路。高压产生器826,可产生所需的任何的高压,例如用于读取、写入和擦除操作。指令逻辑820可执行诸如图8、图10A、图12、图14、图16和图18A所描述的程序,以及上述程序的不同变型,借以支持可中断写入操作。包括状态机822的控制电路在本实施例中可执行嵌入式写入、除和读取操作,当被指令逻辑启动时,可借以存取存储器阵列828。
存储器阵列828包括X译码器830和Y译码器832,且数据信号经由感测放大器(sense amplifier)834输出。输出缓冲器836可以保存从存储器元件输出的输出数据。
在图19所绘示的实施例中,指令序列包括通过输入/输出方块802的SIO引脚所接收的字符组序列。指令逻辑820可以包括用来对操作码进行译码、将起始地址的路径指定(route)到地址计数器,并提供控制信号以设定并启动指令序列所标识的嵌入式程序,包括使用状态机822的写入(例如,写入和擦除操作)和读取程序的逻辑。图19所绘示的实施例是一种使用串行总线接口借以依次存取数据的串行闪存元件。串行总线接口包括至少一个同步时钟信号CK,其中承载数据的储存单元,其容量宽度大于或等于一个位的数据信号,且大于或等于至少一个芯片选择信号(chip select signal)。使用串行总线接口,可以支持上述指令序列。
上述配置可用于支持符合串行外设接口标准总线架构的总线,其中串行端口(CS)对应于串行外设接口的芯片选择线;串行端口(CK)对应于串行外设接口串行时钟(SCLK);串行端口0对应于串行外设接口的主设备输出/从设备输入(MOSI)串行端口;串行端口1对应于串行外设接口的第一主设备输入/从设备输出串行端口(MISO1);串行端口2对应于串行外设接口的第二主设备输入/从设备输出串行端口(MISO2);且串行端口8对应于串行外设接口的第三主设备输入/从设备输出串行端口(MISO3)。本说明书所描述的技术可以与其他标准和非标准总线架构一起使用,包括例如I2C。
本领域技术人员应当理解,图19仅仅是提供一个实施例的例示,任何可支持如本说明书所述的可中断写入指令序列的元件,可以是由图19所衍生,例如包括不同方式连接和不同元件,的不同变化形式。
图19所绘示的实施例包括NOR闪存阵列。也可以使用其他类型的存储器系统,包括含有相变存储器(phase change memory,PCM)、电阻存储器,又称为可变电阻式存储器(Resistive random-access memory,RRAM或ReRAM)、NAND闪存、磁阻式存储器等存储器元件的非易失性存储器(nonvolatile memory)类型。此外,也可以使用包括其他非易失性存储器类型,例如随机存取存储器,的存储器系统。
图20绘示一种用来形成图9A的指令序列的存储器控制器简化操作流程图。此一流程图也可通过润饰或修改来形成如图6、图7、图9B、图11、图13、图15、图17A和图17B中所绘示的指令序列。该控制器逻辑的变化形式也可以实现上述功能,并支持其他通信协议的可中断写入指令序列。
逻辑程序由控制器启动写入功能(参见步骤900)开始。控制器发出如上所述的写指令序列(参见步骤901)。控制器判断是否需要为了进行读取程序而中断写入指令序列(参见步骤902)。如果控制器判定要中断指令序列,则发出控制信号,例如切换芯片选择线CSB的电平,并发出读取指令序列(参见步骤903)。控制器再判断是否已完成读取程序(参见步骤904)。如果没有完成,则控制器会等待。如果完成,则控制器发出继续写入指令以恢复被中断的写入指令序列(参见步骤905)。控制器加载数据并且判断是否已完成写入指令序列(参见步骤906),如果已完成,则发出写入确认指令(参见步骤907)。
如果在步骤906中,控制器判定写入指令序列未完成,则返回到步骤902以判断是否需要为了进行读取程序而中断写入指令序列。
如果在步骤902中,控制器判定不需要为了进行读取程序而中断写入指令序列,则流程跳到步骤906以判断写入指令序列是否完成。当本实施例的写入指令序列完成时,控制器发出写入确认指令(参见步骤907)。在其它实施例中,可以不使用写确认指令,而采用其他技术,例如采用写入计数或存储器元件中的逻辑,通过侦测地址边界或发出标示写入序列已结束的其他信号,来使存储器元件知悉写入指令序列已结束。
上述逻辑程序显示控制器可以任意地多次中断可中断写入指令序列,以进行指定的较高优先等级的操作,例如读取操作。
根据上述逻辑程序以及适用于其他可中断写入指令序列通信协议的其他变化逻辑程序,存储器控制器或(用来执行任何逻辑程序且)与存储器控制器均等的逻辑,可以发出写入指令序列。其写入指令序列可以包含,例如可能是发生在页面写入序列中的大量数据字节。当被要求执行关键读取操作时,则控制器可以中断冗长的写入指令序列,并完成读取指令序列并接收所读取的数据,而不会发生与完成第一指令序列相关联的延迟。完成读取操作后,可以恢复被中断的写指令序列。此外,上述逻辑程序显示,可以多次中断冗长的写入指令序列,以支持任务关键读取操作。
本说明书描述了一种具有指令通信协议以及支持逻辑的串行闪存,其包括页面写入指令和写入确认指令的指令。其中,页面的数据在页面写入指令之后依次发出。
本说明书描述了一种具有指令通信协议以及支持逻辑的串行闪存,其具有包括页面写指令,继续写入指令和写入确认指令的指令。数据在这些指令中的一个或多个的组合之后依次发出。
本说明书描述了一种具有指令通信协议以及支持逻辑的串行闪存,其具有包括页面写指令,继续写入指令和写入确认指令的指令。数据在这些指令中的一个或多个的组合之后依次发出。
在用来实现本说明书所描述各种实施例的各项通信协议中,“时钟线(CLK)”、“芯片选择线(CSB)”和“数据线(DATA)”的容量宽度(总线的数量)可以是一条或多条(1字符到n字符)。(例如:CLK、CLK#、DATA0~DATAn、CSB1,CSB2)。
在用来实现本说明书所描述各种实施例的各项通信协议中,“地址”周期(例如:0到n个周期)的数量,根据特定寻址方案(addressing scheme deployed),可以是一个或多个。且地址的字符数量,也可以根据所使用的寻址方案而有所变化。
在用来实现本说明书所描述各种实施例的各项通信协议中,“指令”周期的数量(例如:“写入”、“读取”、“继续写入”、“写确认”和“写入计数”),取决于总线的代码长度和数量,而可以是一个或多个。
在用来实现本说明书所描述各种实施例的各项通信协议中,“写入计数”相关的数据单元可以是任意的(例如:1个比特/字节/字符串/页面(bit/byte/word/page)到n个比特/字节/字符串/页面)。
在用来实现本说明书所描述各种实施例的各项通信协议中,可以使用双倍数据速率和单倍数据速率接收器和发送器(transmitters)来操作“指令”、“地址”和“DATA”线路(数据可以在上升边缘(rising edge)和下降边缘(falling edge)同时有效,或数据可以在升边缘或下降边缘其中一者时有效。)
在用来实现本说明书所描述各种实施例的各项通信协议中,写入序列可以包括也可以不包括“虚拟循环”。
“写入指令、写入地址、写入数据、写入计数、继续写入、写入确认、写入中止”可以使用元件中适当的译码逻辑和资源,依照实际需要做任意组合。
本说明书揭露由存储器控制器或存储器元件所执行的多个逻辑流程图。其中,逻辑可以通过使用储存在计算机系统可存取的存储器中的计算机程序的处理器来加以实现,并且可由处理器通过专用逻辑硬件,包括现场可编程集成电路(field programmableintegrated circuits)、在电路中的状态机以及专用逻辑硬件和电啂程序的组合来执行。该技术领域中具有通常知识者当可理解,本说明书中的所有流程图和不同步骤是可以任意组合、平行操作或以不同的顺序执行操作,而不影响所实际的功能。在一些实施例中,只要进行适当的润饰及修改,前述步骤的重新排列组合也能获得相同的结果。在其他实施例中,当满足某些条件时,前述步骤的重新排列组合将获得相同的结果。此外,本说明书中的流程图仅供例示理解本发明的相关步骤,因此仍可以在所述流程图的前面、后面或中间额外附加用来达成其他功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种存储器元件,包括:
一存储器;
一总线接口;
一控制电路,用来存取该存储器,并执行该存储器的多个读取操作和多个写入操作;以及
一指令逻辑,配置来对由该总线接口所接收的多个指令序列进行译码,并启动该控制电路执行所述指令序列所标识的多个操作;其中每一所述指令序列包括多个对应操作码以及一地址和一数据中的一者或二者;
在接收到一第一指令序列时,该指令逻辑响应一第一控制信号而中断该第一指令序列;
该指令逻辑响应发出于该第一控制信号之后的一第二控制信号,而接收一第二指令序列,并对该第二指令序列进行译码,且启动一控制电路来执行该第二指令序列所识别的多个操作;
该指令逻辑在完成该第二指令序列之后,响应一第三控制信号而接收一第三指令序列,并对该第三指令序列进行译码,其中该第三指令序列包括用以完成被中断的该第一指令序列的一操作码和一数据,并且启动该控制电路,以执行该第一指令序列所识别的所述操作。
2.如权利要求1所述的存储器元件,其中该总线接口包括一同步串行总线。
3.如权利要求1所述的存储器元件,其中该指令逻辑包括用于保存至少一部分该第一指令序列的一缓冲器,并且该指令逻辑使用储存在该缓冲器中的至少一部分该第一指令序列,来对该第三指令序列进行译码。
4.如权利要求1所述的存储器元件,其中该第一指令序列的一第一对应操作码用来识别一写入操作,且该第二指令序列的一第二对应操作码用来识别一读取操作。
5.如权利要求1所述的存储器元件,其中该第一指令序列的一第一对应操作码用来识别一写入操作,用以写入经由位于一总线的该总线接口所接收到的多个数据;该第二指令序列的一第二对应操作码用来识别一读取操作,且该第二对应操作码同样由位于该总线的该总线接口所接收。
6.如权利要求1所述的存储器元件,其中该第一指令序列的一对应操作码和一地址用来识别一写入操作,且该第三指令序列包括该第一指令序列中的该对应操作码和该地址。
7.如权利要求1所述的存储器元件,其中该第一指令序列的一对应操作码用来识别一写入操作,且该第三指令序列包括一继续写入操作码和一地址。
8.如权利要求1所述的存储器元件,其中该第一指令序列的一对应操作码用来识别一写入操作以及一写入计数。
9.如权利要求1所述的存储器元件,其中该指令逻辑建构来启动与该第一指令序列相关的一嵌入式操作,以响应在该第三指令序列之后,由该总线接口所接收到的一写入确认操作码。
10.一种存储器元件的操作方法,包括:
提供一存储器元件包括一存储器、一总线接口、一控制电路以及一指令逻辑;该控制电路用来存取该存储器,并执行该存储器的多个读取操作和多个写入操作;该指令逻辑配置来对由该总线接口所接收的多个指令序列进行译码,并启动该控制电路执行所述指令序列所标识的多个操作;其中每一所述指令序列包括多个对应操作码以及一地址和一数据中的一者或二者;
在接收到一第一指令序列时,中断该第一指令序列,以响应一第一控制信号;
响应发出于该第一控制信号之后的一第二控制信号,接收一第二指令序列,并对该第二指令序列进行译码,且启动该控制电路来执行该第二指令序列所识别的多个操作;
在完成该第二指令序列之后,响应一第三控制信号,接收一第三指令序列,并对该第三指令序列进行译码,其中该第三指令序列包括用以完成被中断的该第一指令序列的一操作码和一数据;以及
接收该第三指令序列之后,启动该控制电路,以执行该第一指令序列所识别的所述操作。
11.如权利要求10所述的存储器元件的操作方法,其中该总线接口包括一同步串行总线。
12.如权利要求10所述的存储器元件的操作方法,更包括将至少一部分该第一指令序列的保存于一缓冲器中,并且使用储存在该缓冲器中的至少一部分该第一指令序列来对该第三指令序列进行译码。
13.如权利要求10所述的存储器元件的操作方法,其中该第一指令序列的一第一对应操作码用来识别一写入操作,且该第二指令序列的一第二对应操作码用来识别一读取操作。
14.如权利要求10所述的存储器元件的操作方法,其中该第一指令序列的一第一对应操作码用来识别一写入操作,用以写入经由位于一总线的该总线接口所接收到的多个数据;该第二指令序列的一第二对应操作码用来识别一读取操作,且该第二对应操作码同样由位于该总线的该总线接口所接收。
15.如权利要求10所述的存储器元件的操作方法,其中该第一指令序列的一对应操作码和一地址用来识别一写入操作,且该第三指令序列包括该第一指令序列中的该对应操作码和该地址。
16.如权利要求10所述的存储器元件的操作方法,其中该第一指令序列的一对应操作码用来识别一写入操作,且该第三指令序列包括一继续写入操作码和一地址。
17.如权利要求10所述的存储器元件的操作方法,其中该第一指令序列的一对应操作码用来识别一写入操作以及一写入计数,且该第三指令序列包括一继续写入操作码。
18.如权利要求10所述的存储器元件的操作方法,其中该第三指令序列在序列的最后一个周期,包括一继续写入操作码。
19.一种存储器元件,包括:
一非易失性存储器;
一同步串行总线接口;
一控制电路,用来存取该存储器,并执行该非易失性存储器的多个读取操作和多个写入操作;以及
一指令逻辑,配置来对由该同步串行总线接口所接收的多个指令序列进行译码,并启动该控制电路执行所述指令序列所标识的多个操作;其中每一所述指令序列包括多个对应操作码以及一地址和一数据中的一者或二者;
在接收到一第一指令序列时,该指令逻辑响应一第一控制信号而中断该第一指令序列,该第一指令序列包含一页面写入操作的一操作码;
该指令逻辑响应发出于该第一控制信号之后的一第二控制信号,而接收一第二指令序列,并对该第二指令序列进行译码,该第二指令序列包括一其他操作的一操作码,且启动该控制电路来执行该第二指令序列所识别的该其他操作;
该指令逻辑在完成该第二指令序列之后,响应一第三控制信号而接收一第三指令序列,并对该第三指令序列进行译码,该第三指令序列包括用以完成被中断的该第一指令序列的一操作码和一数据,并且启动该控制电路,以执行该第一指令序列所识别的该页面写入操作。
20.如权利要求19所述的存储器元件,其中该第一指令序列中该页面写入操作的多个数据,经由位于一总线的该同步串行总线接口所接收;该第二指令序列的一对应操作码,同样由位于该总线的该同步串行总线接口所接收。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662346577P | 2016-06-07 | 2016-06-07 | |
US62/346,577 | 2016-06-07 | ||
US15/411,731 US10289596B2 (en) | 2016-06-07 | 2017-01-20 | Memory and method for operating a memory with interruptible command sequence |
US15/411,731 | 2017-01-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107480081A true CN107480081A (zh) | 2017-12-15 |
CN107480081B CN107480081B (zh) | 2020-05-12 |
Family
ID=58578892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710418347.1A Active CN107480081B (zh) | 2016-06-07 | 2017-06-06 | 具有可中断指令序列的存储器及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10289596B2 (zh) |
EP (1) | EP3255552B1 (zh) |
CN (1) | CN107480081B (zh) |
TW (1) | TWI639086B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130898A (zh) * | 2019-06-24 | 2020-12-25 | 华为技术有限公司 | 一种插入同步指令的方法及装置 |
CN114375446A (zh) * | 2019-09-12 | 2022-04-19 | 高通股份有限公司 | 基于序列的执行来控制射频前端触发的应用时间 |
CN115686635A (zh) * | 2023-01-03 | 2023-02-03 | 杭州米芯微电子有限公司 | 一种无时钟电路的mcu结构以及相应的电子设备 |
CN116775542A (zh) * | 2023-08-22 | 2023-09-19 | 成都芯脉微电子有限责任公司 | 一种ai芯片、系统及数据处理方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11182102B2 (en) | 2018-12-28 | 2021-11-23 | Micron Technology, Inc. | Host inquiry response generation in a memory device |
JP2022092965A (ja) | 2020-12-11 | 2022-06-23 | キオクシア株式会社 | メモリシステム |
TWI765543B (zh) * | 2021-01-26 | 2022-05-21 | 創惟科技股份有限公司 | 用於車載主機系統的通用序列埠匯流排切換器之切換方法 |
US11847077B2 (en) * | 2021-12-06 | 2023-12-19 | Himax Technologies Limited | Serial peripheral interface integrated circuit and operation method thereof |
TWI784853B (zh) * | 2021-12-23 | 2022-11-21 | 新唐科技股份有限公司 | 資料偵測電路以及處理裝置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI221968B (en) * | 2001-06-23 | 2004-10-11 | Motorola Inc | System having an apparatus for controlling use of a communication bus and method for controlling use of a communication bus in a system |
US7266724B2 (en) * | 2001-01-30 | 2007-09-04 | Pioneer Corporation | Apparatus and method for interruption of read and write operation and program storage medium for storing read and write procedure program |
US20120324147A1 (en) * | 2011-06-16 | 2012-12-20 | Che-Heng Lai | Read While Write Method for Serial Peripheral Interface Flash Memory |
CN103777894A (zh) * | 2012-10-25 | 2014-05-07 | 深圳市中兴微电子技术有限公司 | 解决存储器读写冲突的方法及装置 |
EP2966573A1 (en) * | 2014-07-08 | 2016-01-13 | Adesto Technologies Corporation | Concurrent read and write operations in a serial flash device |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6247126B1 (en) | 1999-01-25 | 2001-06-12 | Dell Usa, L.P. | Recoverable software installation process and apparatus for a computer system |
US6307779B1 (en) | 2000-07-28 | 2001-10-23 | Micron Technology, Inc. | Method and circuitry for bank tracking in write command sequence |
US6715000B2 (en) * | 2001-03-16 | 2004-03-30 | Texas Instruments Incorporated | Method and device for providing high data rate for a serial peripheral interface |
US7562180B2 (en) | 2006-03-28 | 2009-07-14 | Nokia Corporation | Method and device for reduced read latency of non-volatile memory |
US7769909B2 (en) * | 2006-12-04 | 2010-08-03 | Atmel Corporation | Device and method for access time reduction by speculatively decoding non-memory read commands on a serial interface |
US8224884B2 (en) * | 2007-07-06 | 2012-07-17 | XMOS Ltd. | Processor communication tokens |
US8102710B2 (en) * | 2007-10-17 | 2012-01-24 | Micron Technology, Inc. | System and method for setting access and modification for synchronous serial interface NAND |
US8060681B2 (en) * | 2007-11-27 | 2011-11-15 | Microsoft Corporation | Interface protocol and API for a wireless transceiver |
KR20110010770A (ko) * | 2008-05-13 | 2011-02-07 | 램버스 인코포레이티드 | 메모리 디바이스를 위한 단편화 프로그램 명령 |
DE112009004900T5 (de) | 2009-06-10 | 2012-08-16 | Micron Technology, Inc. | Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern |
US8266369B2 (en) * | 2009-12-18 | 2012-09-11 | Nxp B.V. | Flash memory interface |
US20130339681A1 (en) * | 2012-06-18 | 2013-12-19 | Freescale Semiconductor, Inc. | Temporal Multithreading |
US20160350240A1 (en) * | 2015-05-29 | 2016-12-01 | Analog Devices Global | Serial peripheral interface host port |
-
2017
- 2017-01-20 US US15/411,731 patent/US10289596B2/en active Active
- 2017-04-19 EP EP17167031.8A patent/EP3255552B1/en active Active
- 2017-06-03 TW TW106118389A patent/TWI639086B/zh active
- 2017-06-06 CN CN201710418347.1A patent/CN107480081B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266724B2 (en) * | 2001-01-30 | 2007-09-04 | Pioneer Corporation | Apparatus and method for interruption of read and write operation and program storage medium for storing read and write procedure program |
TWI221968B (en) * | 2001-06-23 | 2004-10-11 | Motorola Inc | System having an apparatus for controlling use of a communication bus and method for controlling use of a communication bus in a system |
US20120324147A1 (en) * | 2011-06-16 | 2012-12-20 | Che-Heng Lai | Read While Write Method for Serial Peripheral Interface Flash Memory |
CN103777894A (zh) * | 2012-10-25 | 2014-05-07 | 深圳市中兴微电子技术有限公司 | 解决存储器读写冲突的方法及装置 |
EP2966573A1 (en) * | 2014-07-08 | 2016-01-13 | Adesto Technologies Corporation | Concurrent read and write operations in a serial flash device |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130898A (zh) * | 2019-06-24 | 2020-12-25 | 华为技术有限公司 | 一种插入同步指令的方法及装置 |
CN114375446A (zh) * | 2019-09-12 | 2022-04-19 | 高通股份有限公司 | 基于序列的执行来控制射频前端触发的应用时间 |
CN115686635A (zh) * | 2023-01-03 | 2023-02-03 | 杭州米芯微电子有限公司 | 一种无时钟电路的mcu结构以及相应的电子设备 |
CN115686635B (zh) * | 2023-01-03 | 2023-04-18 | 杭州米芯微电子有限公司 | 一种无时钟电路的mcu结构以及相应的电子设备 |
CN116775542A (zh) * | 2023-08-22 | 2023-09-19 | 成都芯脉微电子有限责任公司 | 一种ai芯片、系统及数据处理方法 |
CN116775542B (zh) * | 2023-08-22 | 2023-11-03 | 成都芯脉微电子有限责任公司 | 一种ai芯片、系统及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3255552B1 (en) | 2019-10-09 |
TW201743220A (zh) | 2017-12-16 |
CN107480081B (zh) | 2020-05-12 |
TWI639086B (zh) | 2018-10-21 |
EP3255552A1 (en) | 2017-12-13 |
US10289596B2 (en) | 2019-05-14 |
US20170351636A1 (en) | 2017-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107480081A (zh) | 具有可中断指令序列的存储器及其操作方法 | |
CN101828175B (zh) | 用于同步串行接口nand的设定存取及修改的系统及方法 | |
JP5927263B2 (ja) | ホストコンピュータシステムとメモリとの間の通信方法およびメモリ | |
CN105474319B (zh) | 用于配置混合存储器模块的存储器的i/o的设备及方法 | |
US8046527B2 (en) | Apparatus and method for using a page buffer of a memory device as a temporary cache | |
US9389804B2 (en) | Host, system, and methods for transmitting commands to non-volatile memory card | |
US7774661B2 (en) | Register read mechanism | |
CN103677665B (zh) | 嵌入式多媒体卡、控制其的主机及操作其系统的方法 | |
CN103403803B (zh) | 可以很容易在其中设定扩展功能的存储器系统 | |
CN101384984B (zh) | 整合有多个闪存单元的便携式数据存储装置 | |
CN102193885B (zh) | 支持虚拟信道的非挥发性存储器控制器 | |
JP5683813B2 (ja) | 混合されたタイプのメモリデバイスを動作させるシステムおよび方法 | |
CN104981873B (zh) | 在发送写入数据到存储器的同时从存储器读取数据的系统和方法 | |
US20160179388A1 (en) | Method and apparatus for providing programmable nvm interface using sequencers | |
US10503438B1 (en) | Memory sub-system supporting non-deterministic commands | |
CN103903651A (zh) | 双线串行端口内建自测电路及其通讯方法 | |
KR20080078977A (ko) | Mmc 또는 sd 프로토콜을 사용하는 다수의 메모리장치들을 인터페이스하는 방법 및 시스템 | |
CN101421705A (zh) | 具有高储存容量的多媒体卡 | |
CN111857562B (zh) | 用于配置供应商特定寄存器的方法和存储器模块 | |
US7478213B2 (en) | Off-chip micro control and interface in a multichip integrated memory system |
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 |