CN104077080B - 存储器存取方法、存储器存取控制方法、spi闪存装置及其控制器 - Google Patents
存储器存取方法、存储器存取控制方法、spi闪存装置及其控制器 Download PDFInfo
- Publication number
- CN104077080B CN104077080B CN201310299476.5A CN201310299476A CN104077080B CN 104077080 B CN104077080 B CN 104077080B CN 201310299476 A CN201310299476 A CN 201310299476A CN 104077080 B CN104077080 B CN 104077080B
- Authority
- CN
- China
- Prior art keywords
- access
- flash memory
- serial
- input
- access channel
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 182
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000002093 peripheral effect Effects 0.000 claims abstract description 51
- 230000005540 biological transmission Effects 0.000 claims description 13
- 210000003205 muscle Anatomy 0.000 claims 2
- 239000002699 waste material Substances 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 9
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 6
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 6
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 1
- 101100422768 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SUL2 gene Proteins 0.000 description 1
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供一种存储器存取方法、存储器存取控制方法、串行外围接口(SPI)闪存装置及SPI控制器。SPI闪存包括闪存数组以及多个串行输入/输出引脚,多个串行输入/输出引脚被分配为至少二个存取信道,每个存取信道具有优先次序,该存储器存取方法包括通过第一存取信道的第一串行输入/输出引脚接收第一存取指令及第一地址;在第一存取指令接收结束前,通过第二存取信道的第二串行输入/输出引脚接收第二存取指令及第二地址;以及通过第二存取信道的串行输入/输出引脚,对闪存数组进行对应至第二存取指令与第二地址的第二存取操作;其中第二存取信道的优先次序高于第一存取信道,本发明提供的存储器存取方法可有效降低存取等待时间,减少存取资源浪费。
Description
技术领域
本发明有关于一种闪存(flash memory),更具体地,有关于一种串行闪存。
背景技术
随着用户对于处理数字数据的需求越来越大,存取或传输数字数据的速度以及正确性的需求也随之增强,尤其是对于处理器与相关存储器之间的存取操作。在各种存储器技术中,由于闪存(Flash memory)具有可重复写入数据、无需电力维持存储数据、可靠度足够、存取速度更快、体积更小等特性,已广泛运用于计算机系统及便携式电子装置中。一般来说,闪存可分为并行(parallel)闪存及串行(serial)闪存。由于串行闪存所要求的传输线及引脚(pin)较少,因此电路较简单且成本较低,且在印刷电路板上所占的面积较小,故而已成为主要发展趋势,尤其常作为便携式电子装置的存储器装置。
以一个8引脚的串行外围接口(Serial Peripheral Interface,SPI)反及闪存(NAND Flash Memory)为例,SPI NAND闪存的引脚包括芯片选择(Chip Select)引脚CS#、串行数据输入/串行数据输入输出(Serial Data Input/Serial Data Input and Output)引脚SI/SO0、串行数据输出/串行数据输入输出(Serial Data Output/Serial Data Inputand Output)引脚SO/SO1、串行时钟(Serial Clock)引脚SCK、写入保护/串行数据输入输出(Write Protect/Serial Data Input and Output)引脚WP#/SO2、保持/串行数据输入输出(Hold/Serial Data Input and Output)引脚HOLD#/SO3、电源供应引脚VCC以及接地引脚GND。为简洁,在本揭露中,串行数据输入/串行数据输入输出引脚SI/SO0、串行数据输出/串行数据输入输出引脚SO/SO1、写入保护/串行数据输入输出引脚WP#/SO2和保持/串行数据输入输出引脚HOLD#/SO3又可被称为串行输入/输出引脚。存储器装置通过芯片选择引脚CS#接收芯片选择信号,用于致能(enable)或禁能(disable)存储器装置。当芯片选择信号为低电平(level)时,致能存储器装置,反之,当芯片选择信号为高电平时,禁能存储器装置。存储器装置通过串行时钟引脚SCK接收串行时钟信号,串行时钟信号提供接口时序(timing)至SPI NAND闪存。地址信息、数据和指令在串行时钟信号的上升边缘被撷取/锁存,而当输出数据时,数据在串行时钟信号的下降边缘被配置至串行数据输出端口。SPINAND闪存支持标准的SPI以及二位SPI(dual SPI)和四位SPI(quad SPI)。也就是说,其存取操作根据数据流的带宽可分为一位、二位和四位模式。举例而言,在一位存取操作中,串行输入/输出引脚SI/SO0用于输入指令和待写入的串行数据,而串行输入/输出引脚SO/SO1用于输出所读取的串行数据;在二位读取(Dual Read)操作中,串行输入/输出引脚SI/SO0和SO/SO1皆用于输出所读取的串行数据;而在四位读取(Quad Read)操作中,串行输入/输出引脚SI/SO0、SO/SO1、WP#/SO2以及HOLD#/SO3都用于输出所读取的串行数据。
图1A与图1B为传统的SPI NAND闪存的四位读取操作的时序图。在四位读取操作中,在致能芯片选择信号之后,存储器通过串行输入/输出引脚SI/SO0接收并撷取指示四位读取操作的指令CMD,并在经过3个虚拟位(dummy bit)DBi之后,撷取面选择(planeselect)位PS,之后接着撷取地址ADD_C。经过1个虚拟字节DBy之后,存储器根据所撷取的地址ADD_C,从存储器数组中读取串行数据,然后通过串行输入/输出引脚SI/SO0、SO/SO1、WP#/SO2以及HOLD#/SO3输出所读取的串行数据,如图1B中的读取数据字节By1~By4所示。由于存储器同时通过4个引脚SI/SO0、SO/SO1、WP#/SO2以及HOLD#/SO3输出所读取的数据,因此其读取数据流的带宽为四位。在虚拟字节DBy期间,串行输入/输出引脚SI/SO0的信号为高阻抗状态High-Z,并在开始输出串行数据(例如字节By1的位4)前由原来接收指令与地址信息的输入模式转换为输出模式。上述面选择位PS用于指示存取存储器时存取位置是对应至存储器中的哪个面。
在SPI NAND闪存的操作中,当有新的存取操作插入时,根据现有技术,将等原来正在进行的存取操作结束后再进行新的存取操作,或者取消原来正在进行的存取操作而优先进行新的存取操作。如果等原来正在进行的存取操作结束后才进行新的存取操作,则较紧急的存取操作无法优先进行,尤其当有些存取操作可能需要较多的时间(例如有些擦除或程序化操作可能需要百万秒等级的存取时间)时此影响更为显著。因此,为避免较紧急的存取操作无法很快地进行,在目前的作法中常会将需要较多时间的存取操作(例如与系统更新有关的存取操作)安排在存取离峰时间时进行,因此可能无法进行实时(real-time)更新。而如果取消原来正在进行的存取操作,则可能会造成原来的存取操作中存取数据不完整,而等待新的存取操作进行完毕之后再继续被取消的原来的存取操作时,由于被取消的原来的存取操作可能不完整,必须重新开始存取操作,因此而浪费不必要的存取资源,尤其当SPI NAND闪存串行总线的带宽(bandwidth)有限时此影响更为显著。
发明内容
有鉴于此,本发明提供一种存储器存取方法、存储器存取控制方法、SPI闪存装置及SPI控制器。
本发明提供一种存储器存取方法,用于串行外围接口闪存,该串行外围接口闪存包括闪存数组以及多个串行输入/输出引脚,该多个串行输入/输出引脚被分配为至少二个存取信道,该至少二个存取信道中的每个具有优先次序,其中该存储器存取方法包括:通过第一存取信道的第一串行输入/输出引脚接收第一存取指令以及第一地址;在该第一存取指令的接收结束之前,通过第二存取信道的第二串行输入/输出引脚接收第二存取指令以及第二地址;以及通过该第二存取信道的所有串行输入/输出引脚,对该闪存数组进行对应至该第二存取指令与该第二地址的第二存取操作;其中该第二存取信道的优先次序高于该第一存取信道。
本发明另提供一种存储器存取控制方法,用于控制串行外围接口闪存,该串行外围接口闪存包括闪存数组以及多个串行输入/输出引脚,其中该存储器存取控制方法包括:将该多个串行输入/输出引脚分配为至少二个存取信道,其中该至少二个存取信道中的每个具有优先次序;通过第一存取信道的第一串行输入/输出引脚将第一存取指令以及第一地址传输至该串行外围接口闪存;在该第一存取指令的接收结束之前,通过第二存取信道的第二串行输入/输出引脚将第二存取指令与第二地址传输至该串行外围接口闪存;以及控制该串行外围接口闪存,使该串行外围接口闪存通过该第二存取信道的所有串行输入/输出引脚进行对应至该第二存取指令与该第二地址的第二存取操作。
本发明再提供一种串行外围接口闪存装置,包括:闪存核心、多个串行输入/输出引脚、输入/输出电路及控制单元,其中该闪存核心包括闪存数组;多个串行输入/输出引脚耦接至该闪存核心,该多个串行输入/输出引脚被分配为至少二个存取信道,且该至少二个存取信道中的每个具有优先次序;输入/输出电路耦接至该闪存核心以及该多个串行输入/输出引脚;以及控制单元耦接至该输入/输出电路以及该闪存核心,用于通过该输入/输出电路控制该多个串行输入/输出引脚的输入输出,使该闪存核心通过第一存取信道的第一串行输入/输出引脚接收第一存取指令以及第一地址,并在该第一存取指令的接收结束之前,通过第二存取信道的第二串行输入/输出引脚接收第二存取指令以及第二地址,且通过该第二存取信道的所有串行输入/输出引脚,对该闪存数组进行对应至该第二存取指令与该第二地址的第二存取操作;其中该第二存取信道的优先次序高于该第一存取信道。
本发明还提供一种串行外围接口控制器,耦接至串行外围接口闪存以控制该串行外围接口闪存的存取操作,该串行外围接口闪存包括闪存数组以及多个串行输入/输出引脚,其中该串行外围接口控制器包括:多个串行输入/输出端、输入/输出电路以及控制单元,该多个串行输入/输出端分别对应耦接至该多个串行输入/输出引脚;该输入/输出电路,耦接至该多个串行输入/输出端;以及该控制单元耦接至该输入/输出电路,将该多个串行输入/输出引脚分配为至少二个存取信道,其中该至少二个存取信道的每一个具有优先次序,并通过该输入/输出电路控制该多个串行输入/输出端的输出输入,以将第一存取指令以及第一地址通过第一存取信道的第一串行输入/输出引脚传输至该串行外围接口闪存,并在该第一存取指令的传输结束之前,将第二存取指令以及第二地址通过第二存取信道的第二串行输入/输出引脚传输至该串行外围接口闪存;其中该串行外围接口控制器控制该串行外围接口闪存,使该串行外围接口闪存通过该第二存取信道的所有串行输入/输出引脚进行对应至该第二存取指令与该第二地址的第二存取操作。
本发明提供的存储器存取方法可有效降低存取等待时间,减少存取资源浪费。
附图说明
图1A为传统的SPI NAND闪存的四位读取操作的时序图;
图1B为传统的SPI NAND闪存的四位读取操作的时序图;
图2A为根据本发明一个实施例的SPI NAND闪存的多存取信道读取操作的时序图;
图2B为根据本发明一个实施例的SPI NAND闪存的多存取信道读取操作的时序图;
图3为根据本发明一个实施例的SPI控制器的示意图;
图4A为根据本发明一个实施例的SPI NAND闪存的示意图;
图4B为根据本发明一个实施例的SPI NAND闪存的示意图。
具体实施方式
以下说明为本发明的实施例。其目的在于要举例说明本发明的一般性原则,并不应作为本发明的限制,本发明的范围应以权利要求所界定为准。
值得注意的是,以下所揭露的内容可提供多个用于实现本发明的不同特点的实施例或实例。而以下所述的特殊的元件实例与设置仅用于简要地阐述本发明的精神,并非用于限定本发明的范围。此外,以下说明书可能在多个实例中重复使用相同的元件符号或文字。然而重复使用的目的仅为了提供简化并清楚的说明,并非用于限定多个以下所讨论的实施例及/或配置之间的关系。此外,以下说明书所述的一个特征连接至、耦接至以及/或形成于另一特征之上等的描述,实际可包含多个不同的实施例,如包括该多个特征直接接触,或者包含其它额外的特征形成于该多个特征之间等等,使得该多个特征并非直接接触。
本发明的一个实施例揭露一种SPI NAND闪存的存储器存取方法,SPINAND闪存包括闪存数组、芯片选择引脚CS#、串行时钟引脚SCK、电源供应引脚VCC、接地引脚GND以及串行输入/输出引脚SI/SO0、SO/SO1、WP#/SO及HOLD#/SO3。SPI NAND闪存通过芯片选择引脚CS#接收芯片选择信号,通过串行时钟引脚SCK接收串行时钟信号,并分别通过电源供应引脚VCC以及接地引脚GND接收电源供应电压以及接地电压。SPI NAND闪存支持四位SPI,因此,在四位存取操作中,串行输入/输出引脚SI/SO0、SO/SO1、WP#/SO2和HOLD#/SO3可用于输入指令和待写入至闪存数组的串行数据,也可用于输出从闪存数组读取的串行数据。在此存储器存取方法中,该多个串行输入/输出引脚被分配为至少二个存取信道,每个存取信道具有优先次序。在通过优先次序较低的第一存取信道的第一串行输入/输出引脚接收第一存取指令与第一地址时,在第一存取指令接收结束之前,可通过优先次序较第一存取信道高的第二存取信道的第二串行输入/输出引脚接收更紧急的存取操作的第二存取指令与第二地址。然后,存储器通过第二存取信道的所有串行输入/输出引脚对闪存数组进行对应第二存取指令和第二地址的存取操作。
图2A与图2B为根据本发明一个实施例的SPI NAND闪存的多存取信道读取操作的时序图。需注意的是,SPI NAND闪存仅为本发明的一个实例,本发明所提出的SPI闪存装置并不仅限于SPI NAND闪存,亦可为其他类型的SPI闪存装置。其中串行输入/输出引脚SI/SO0、SO/SO1、WP#/SO2和HOLD#/SO3的序号分别为0、1、2和3。在多存取信道读取操作中,当致能芯片选择信号CS#之后,存储器通过串行输入/输出引脚SI/SO0接收并撷取多位读取指令CMD1,而在指令CMD1接收完毕之前,存储器还通过串行输入/输出引脚WP#/SO2接收多位读取指令CMD2,此时,将串行输入/输出引脚SI/SO0和SO/SO1分配为存取信道0,而将串行输入/输出引脚WP#/SO2和HOLD#/SO3分配为存取信道1。由于存取信道0中的最小串行输入/输出引脚序号(引脚SI/SO0为序号0)小于存取信道1中的最小串行输入/输出引脚序号(引脚WP#/SO2为序号2),因此存取信道1的优先次序高于存取信道0,也就是说,通过存取信道1进行的存取操作具有较高的优先权。
在此实施例中,SPI NAND闪存支持并行存取(parallel access),因此在通过串行输入/输出引脚SI/SO0接收多位读取指令CMD1和地址ADD_C1之后,根据地址ADD_C1从闪存数组读取数据,并通过存取信道0的串行输入/输出引脚SI/SO0和SO/SO1输出所读取的数据。而在通过存取信道0进行读取操作的同时,通过串行输入/输出引脚WP#/SO2接收多位读取指令CMD2和地址ADD_C2,然后根据地址ADD_C2从闪存数组读取数据,并通过存取信道1的串行输入/输出引脚WP#/SO2和HOLD#/SO3输出所读取的数据。须注意的是,图2A与图2B中的虚拟位DBi1、DBi2及面选择位PS1、PS2分别与图1A与图1B中的虚拟位DBi及面选择位PS类似,因此不再复述。
在另一个实施例中,SPI NAND闪存不支持并行存取,此情况和图2A与图2B图示的差异在于:接收完多位读取指令CMD1和地址ADD_C1之后会暂存多位读取指令CMD1和地址ADD_C1,并暂停(pending)存取信道0的读取操作,然后先进行存取信道1的读取操作。待存取信道1的读取操作进行完毕之后,再通过存取信道0进行对应至多位读取指令CMD1和地址ADD_C1的读取操作。
在图2A与图2B的实施例中,存取信道0和存取信道1的数据流带宽比为2:2,但本发明并不局限于此,在将4个串行输入/输出引脚分配为2个存取信道的例子中,存取信道0和存取信道1的数据流带宽比可以为1:3、2:2或3:1。举例来说,若在通过串行输入/输出引脚SI/SO0接收的指令接收完毕之前又通过串行输入/输出引脚SO/SO1接收另一指令,则存取信道0包括串行输入/输出引脚SI/SO0,存取信道1包括串行输入/输出引脚SO/SO1、WP#/SO2和HOLD#/SO3,此时,存取信道0和存取信道1的数据流带宽比为1:3。除此之外,存取信道的个数并不限于2。举例来说,若在通过串行输入/输出引脚SI/SO0接收的第一指令接收完毕之前通过串行输入/输出引脚SO/SO1接收第二指令,并且又在第二指令接收完毕之前通过串行输入/输出引脚HOLD#/SO3接收第三指令,则串行输入/输出引脚被划分为存取信道0、1和2,其中存取信道0包括串行输入/输出引脚SI/SO0,存取信道1包括串行输入/输出引脚SO/SO1和WP#/SO2,而存取信道2包括串行输入/输出引脚HOLD#/SO3,因此,3个存取信道的数据流带宽比为1:2:1。在此情况下,若存储器支持并行存取,则3个存取信道的存取操作可同时进行,但若存储器不支持并行存取,由于存取信道2的优先次序最高而存取信道1其次,因此会先暂停存取信道0和1的存取操作,待存取信道2的存取操作进行完毕后才进行存取信道1的存取操作,然后在存取信道1的存取操作进行完毕后再进行存取信道0的存取操作。
此外,关于存取信道的优先次序,可采取循环策略或绝对优先次序策略。举例来说,在不支持并行存取且采取循环策略的情况下,若串行输入/输出引脚分配为存取信道0和存取信道1,且存取信道1的优先次序较高,则在存取信道1的存取操作完成之后,必须将存取信道1的下一个存取操作排在被暂停的存取信道0的存取操作之后。而在不支持并行存取且采取绝对优先次序策略的情况下,若串行输入/输出引脚分配为存取信道0和存取信道1,且存取信道1的优先次序较高,则在存取信道1的存取操作完成之后,存取信道1的下一个存取操作还是优于被暂停的存取信道0的存取操作,因此,若存取信道1持续忙碌,存取信道0的存取操作可能会被一直被暂停。
另外,为有效利用带宽,若有2个存取信道闲置太久,可将闲置的存取信道合并成新的1个存取信道,且新的存取信道的优先次序采用被合并的存取信道中最低的优先次序。举例而言,假设串行输入/输出引脚被分为存取信道0、1和2,其中存取信道0包括串行输入/输出引脚SI/SO0,存取信道1包括串行输入/输出引脚SO/SO1和WP#/SO2,存取信道2包括串行输入/输出引脚HOLD#/SO3,若存取信道1为忙碌而存取信道0和存取信道2皆闲置一个预设时间(例如2个时序周期)之后,则将存取信道0和存取信道2合并成为新的存取信道0,且新的存取信道0的优先次序还是低于存取信道1。
除此之外,关于存取数据的位顺序,最高有效位(Most Significant Bit,MSB)被最先传输并被配置于存取信道中序号最高的串行输入/输出引脚。以图2A与图2B为例,在存取信道0(包括串行输入/输出引脚SI/SO0和SO/SO1)的读取操作中,最高有效位7被配置于串行输入/输出引脚SO/SO1,接着位6被配置于串行输入/输出引脚SI/SO0,以此类推。而在存取信道包括3个串行输入/输出引脚SI/SO0、SO/SO1和WP#/SO2的例子中,最高有效位7被配置于串行输入/输出引脚WP#/SO2,位6被配置于串行输入/输出引脚SO/SO1,位5被配置于串行输入/输出引脚SI/SO0,位4、3和2被分别配置于串行输入/输出引脚WP#/SO2、SO/SO1和SI/SO0,位1被配置于串行输入/输出引脚WP#/SO2,最低有效位0被配置于串行输入/输出引脚SO/SO1,且会接着在串行输入/输出引脚SI/SO0配置1个填充位(padding bit)以确保数据边界。
根据图2A与图2B,所属技术领域技术人员还可得知SPI NAND闪存的多存取信道写入操作的时序图。多存取信道写入操作与上述多存取信道读取操作类似,因此不再复述,只是在多存取信道写入操作中,串行输入/输出引脚用于输入待写入至存储器数组的写入数据。
图3为根据本发明一个实施例的SPI控制器31的示意图。SPI控制器31通过主处理器总线33耦接至主处理器(host processor)30,并通过SPI总线34耦接至SPI NAND闪存32。SPI控制器31可被整合在主处理器30中,也可外接至主处理器30的SPI接口的一部分。SPI控制器31从主处理器30接收存取命令,并根据存取命令产生多个信号至SPI NAND闪存32,以控制SPI NAND闪存32的存取操作,并将主处理器30所传输的待写入数据传输至SPI NAND闪存32,或者将从SPI NAND闪存32读取的读取数据传输至主处理器30。其中,该多个信号可包括串行时钟信号、芯片选择信号、写入保护信号、保持信号、存取指令信号、地址信号以及存取数据信号。
SPI控制器31包括控制单元300、暂存器310、串行/并行转换器(Serial/ParallelConverter)321~324、输入/输出电路330、输入输出缓冲器341~344以及串行输入/输出端SI/SO[0]~SI/SO[3]。串行输入/输出端SI/SO[0]~SI/SO[3]通过SPI总线34分别耦接至SPI NAND闪存32的4个串行输入/输出引脚。控制单元300耦接至输入/输出电路330以及输入/输出缓冲器341~344,并通过控制输入/输出电路330及/或控制信号C5~C8来控制输入输出缓冲器341~344,从而控制串行输入/输出端SI/SO[0]~SI/SO[3]的输出输入,并通过此种输出输入控制将NAND闪存32的4个串行输入/输出引脚分配为至少二个存取信道,其中该至少二个存取信道中的每个都具有优先次序。暂存器310包括指令/数据暂存器311~314,分别对应存储通过串行输入/输出端SI/SO[0]~SI/SO[3]传输的指令和存取数据。控制单元300通过控制信号C1~C4控制串行/并行转换器321~324,其中,串行/并行转换器321~324(包含串行接口编译码器与串行传输单元的功能)用于将指令、地址和存取数据转换成包括1、2或4位的带宽的串行数据流形式传输或接收。也就是说,串行/并行转换器321~324是进行并行至串行或串行至并行的数据型态转换,以下将不再重复说明。
须注意的是,图3的SPI控制器31仅为实例,SPI控制器31还可包括产生各信号的信号产生单元,例如序列时钟信号产生单元等。
在多存取信道存取操作中,控制单元300通过串行输入/输出端SI/SO[0]~SI/SO[3]的输出输入控制将SPI NAND闪存32的4个串行输入/输出引脚分配为至少二个存取信道,以将第一存取指令以及第一地址通过第一存取信道的第一串行输入/输出引脚传输至SPI NAND闪存32,并在该第一存取指令的传输结束之前,将第二存取指令以及第二地址通过第二存取信道的第二串行输入/输出引脚传输至SPI NAND闪存32。此外,SPI控制器31控制SPI NAND闪存32,使SPI NAND闪存32通过该第二存取信道的所有串行输入/输出引脚进行对应至该第二存取指令与该第二地址的第二存取操作,以及通过该第一存取信道的所有串行输入/输出引脚进行对应至该第一存取指令与该第一地址的第一存取操作。其中该第二存取信道的优先次序高于该第一存取信道。
在一个实施例中,若SPI NAND闪存32不支持并行存取,则在该第一存取指令与该第一地址的传输结束之后,SPI控制器31更控制SPI NAND闪存32暂存该第一存取指令与该第一地址,并暂停对应至该第一存取指令与该第一地址的第一存取操作。且在该第二存取操作结束之后,SPI控制器31控制SPI NAND闪存32,使SPI NAND闪存32通过该第一存取信道的所有串行输入/输出引脚进行该第一存取操作。在另一个实施例当中,若SPI NAND闪存32支持并行存取,则SPI控制器31控制SPI NAND闪存32,使SPI NAND闪存32在进行该第二存取操作的同时,通过该第一存取信道的所有串行输入/输出引脚进行对应至该第一存取指令与该第一地址的第一存取操作,如图2A与图2B所示。
当该至少二个存取信道的其中二个存取信道皆闲置预定时间之后,控制单元300将该二个存取信道中优先次序较高的存取信道的所有串行输入/输出引脚合并至该二个存取信道中优先次序较低的存取信道。
图4A与图4B为根据本发明一个实施例的SPI NAND闪存32的示意图。SPI NAND闪存32包括4个串行输入/输出引脚、输入/输出缓冲器441~444、输入/输出电路430、串行/并行转换器421~424、暂存器410、多任务器450和460、存储器核心400以及控制单元40。存储器核心400包括闪存数组401、列译码器402以及行译码器403。举例而言,4个串行输入/输出引脚可为前述的串行输入/输出引脚SI/SO0、SO/SO1、WP#/SO2和HOLD#/SO3,分别对应连接至串行输入/输出端SI/SO[0]~SI/SO[3]。如上所述,4个串行输入/输出引脚被分配为至少二个存取信道,该至少二个存取信道的每一个具有一个优先次序。控制单元40耦接至输入/输出电路430以及串行输入/输出缓冲器441~444,并通过控制输入/输出电路430及/或控制信号C9~C12以控制输入输出缓冲器441~444,从而控制各存取信道的串行输入/输出引脚的输出输入。控制单元40通过控制信号C13~C16控制串行/并行转换器421~424。暂存器410包括指令/数据暂存器411~414,分别对应暂存通过串行输入/输出引脚接收的指令、地址A[0]~A[3]和写入数据WD[0]~WD[3],并暂存从闪存数组401读取的读取数据RD。控制单元40通过读取撷取信号RE0~RE3控制指令/数据暂存器411~414根据存取信道撷取读取数据RD。控制单元40更分别通过选择信号SEL1和SEL2控制多任务器450和460,以根据存取信道选择对应的地址和写入数据,并传输至存储器核心400。
在多存取信道存取操作中,控制单元40控制各存取信道的串行输入/输出引脚的输出输入,使存储器核心400通过第一存取信道的第一串行输入/输出引脚接收第一存取指令以及第一地址,并在该第一存取指令的接收结束之前,通过第二存取信道的第二串行输入/输出引脚接收第二存取指令以及第二地址,且通过该第二存取信道的所有串行输入/输出引脚,对闪存数组401进行对应至该第二存取指令与该第二地址的第二存取操作,以及通过该第一存取信道的所有串行输入/输出引脚进行对应至该第一存取指令与该第一地址的第一存取操作。其中,该第二存取信道的优先次序高于该第一存取信道。在一个实施例中,若SPINAND闪存32不支持并行存取,则在该第一存取指令与该第一地址的传输结束之后,该第一存取指令与该第一地址被暂存至对应第一存取信道的指令/数据暂存器,且控制单元40控制存储器核心400,使存储器核心400暂停对应至该第一存取指令与该第一地址的第一存取操作。且在该第二存取操作结束之后,控制单元40控制存储器核心400,使存储器核心400通过该第一存取信道的所有串行输入/输出引脚进行该第一存取操作。在另一实施例当中,若SPI NAND闪存32支持并行存取,则控制单元40控制存储器核心400,使存储器核心400在进行该第二存取操作的同时,通过该第一存取信道的所有串行输入/输出引脚进行对应至该第一存取指令与该第一地址的第一存取操作,如图2A与图2B所示。
当该至少二个存取信道其中二个存取信道皆闲置预定时间之后,控制单元40将该二个存取信道中优先次序较高的存取信道的所有串行输入/输出引脚合并至该二个存取信道中优先次序较低的存取信道。
须注意的是,本发明所揭露的串行闪存的多存取信道存取协议可反向兼容(backward compatible),也就是说,本发明的串行闪存可从单一存取信道切换至多存取信道,也可从多存取信道切换回单一存取信道。
综上所述,在本发明的揭露中,串行闪存的多个串行输入/输出引脚被分配为至少二个存取信道,各存取信道具有各自的优先次序,使得较紧急的存取操作得以通过优先次序较高的存取信道进行,降低多余的等待时间并减少存取资源的浪费。
本发明虽以较佳的实施例揭露如上,然其并非用于限定本发明的范围,任何所属技术领域的技术人员,在不脱离本发明的精神和范围内,可做些许的替换与更改,本发明的权利范围应以权利要求以及其等同变形为准。
Claims (16)
1.一种存储器存取方法,用于串行外围接口闪存,该串行外围接口闪存包括闪存数组以及多个串行输入/输出引脚,该多个串行输入/输出引脚被分配为至少二个存取信道,该至少二个存取信道中的每个具有优先次序,其中该存储器存取方法包括:
通过第一存取信道的第一串行输入/输出引脚接收第一存取指令以及第一地址;
在该第一存取指令的接收结束之前,通过第二存取信道的第二串行输入/输出引脚接收第二存取指令以及第二地址;
通过该第二存取信道的所有串行输入/输出引脚,对该闪存数组进行对应至该第二存取指令与该第二地址的第二存取操作;以及
当该至少二个存取信道的其中二个存取信道皆闲置预定时间之后,该二个存取信道中优先次序较高的存取信道的所有串行输入/输出引脚被合并至该二个存取信道中优先次序较低的存取信道;
其中该第二存取信道的优先次序高于该第一存取信道。
2.如权利要求1所述的存储器存取方法,其特征在于,该存储器存取方法更包括:
在该第一存取指令与该第一地址接收结束之后,暂存该第一存取指令与该第一地址,并暂停对应至该第一存取指令与该第一地址的第一存取操作。
3.如权利要求2所述的存储器存取方法,其特征在于,该存储器存取方法更包括:
在该第二存取操作结束之后,通过该第一存取信道的所有串行输入/输出引脚,对该闪存数组进行该第一存取操作。
4.如权利要求1所述的存储器存取方法,其特征在于,该串行外围接口闪存支持并行存取,该存储器存取方法更包括:
在对该闪存数组进行该第二存取操作的同时,通过该第一存取信道的所有串行输入/输出引脚,对该闪存数组进行对应至该第一存取指令与该第一地址的第一存取操作。
5.一种存储器存取控制方法,用于控制串行外围接口闪存,该串行外围接口闪存包括闪存数组以及多个串行输入/输出引脚,其中该存储器存取控制方法包括:
将该多个串行输入/输出引脚分配为至少二个存取信道,其中该至少二个存取信道中的每个具有优先次序;
通过第一存取信道的第一串行输入/输出引脚将第一存取指令以及第一地址传输至该串行外围接口闪存;
在该第一存取指令的传输结束之前,通过第二存取信道的第二串行输入/输出引脚将第二存取指令与第二地址传输至该串行外围接口闪存;
控制该串行外围接口闪存,使该串行外围接口闪存通过该第二存取信道的所有串行输入/输出引脚进行对应至该第二存取指令与该第二地址的第二存取操作;以及
当该至少二个存取信道的其中二个存取信道皆闲置预定时间之后,将该二个存取信道中优先次序较高的存取信道的所有串行输入/输出引脚合并至该二个存取信道中优先次序较低的存取信道。
6.如权利要求5所述的存储器存取控制方法,其特征在于,该存储器存取控制方法更包括:
在该第一存取指令与该第一地址的传输结束之后,控制该串行外围接口闪存暂存该第一存取指令与该第一地址,并暂停对应至该第一存取指令与该第一地址的第一存取操作。
7.如权利要求6所述的存储器存取控制方法,其特征在于,该存储器存取控制方法更包括:
在该第二存取操作结束之后,控制该串行外围接口闪存,使该串行外围接口闪存通过该第一存取信道的所有串行输入/输出引脚进行该第一存取操作。
8.如权利要求5所述的存储器存取控制方法,其特征在于,该串行外围接口闪存支持并行存取,该存储器存取控制方法更包括:
控制该串行外围接口闪存,使该串行外围接口闪存在进行该第二存取操作的同时,通过该第一存取信道的所有串行输入/输出引脚进行对应至该第一存取指令与该第一地址的第一存取操作。
9.一种串行外围接口闪存装置,包括:
闪存核心,包括闪存数组;
多个串行输入/输出引脚,耦接至该闪存核心,该多个串行输入/输出引脚被分配为至少二个存取信道,且该至少二个存取信道中的每个具有优先次序;
输入/输出电路,耦接至该闪存核心以及该多个串行输入/输出引脚;以及
控制单元,耦接至该输入/输出电路以及该闪存核心,用于通过该输入/输出电路控制该多个串行输入/输出引脚的输入输出,使该闪存核心通过第一存取信道的第一串行输入/输出引脚接收第一存取指令以及第一地址,并在该第一存取指令的接收结束之前,通过第二存取信道的第二串行输入/输出引脚接收第二存取指令以及第二地址,且通过该第二存取信道的所有串行输入/输出引脚,对该闪存数组进行对应至该第二存取指令与该第二地址的第二存取操作,以及当该至少二个存取信道的其中二个存取信道皆闲置预定时间之后,该控制单元使该二个存取信道中优先次序较高的存取信道的所有串行输入/输出引脚被合并至该二个存取信道中优先次序较低的存取信道;
其中该第二存取信道的优先次序高于该第一存取信道。
10.如权利要求9所述的串行外围接口闪存装置,其特征在于,该串行外围接口闪存装置更包括:
暂存器,耦接至该闪存核心、该输入/输出电路以及该控制单元,用于暂存该输入/输出电路通过该多个串行输入/输出引脚接收的存取指令以及存取数据;
其中在该第一存取指令与该第一地址的接收结束之后,该暂存器暂存该第一存取指令与该第一地址,且该控制单元使该闪存核心暂停对应至该第一存取指令与该第一地址的第一存取操作。
11.如权利要求10所述的串行外围接口闪存装置,其特征在于,在该第二存取操作结束之后,该控制单元使该闪存核心通过该第一存取信道的所有串行输入/输出引脚,对该闪存数组进行该第一存取操作。
12.如权利要求9所述的串行外围接口闪存装置,其特征在于,该串行外围接口闪存支持并行存取,在该闪存核心对该闪存数组进行该第二存取操作的同时,该控制单元使该闪存核心通过该第一存取信道的所有串行输入/输出引脚,对该闪存数组进行对应至该第一存取指令与该第一地址的第一存取操作。
13.一种串行外围接口控制器,耦接至串行外围接口闪存以控制该串行外围接口闪存的存取操作,该串行外围接口闪存包括闪存数组以及多个串行输入/输出引脚,其中该串行外围接口控制器包括:
多个串行输入/输出端,分别对应耦接至该多个串行输入/输出引脚;
输入/输出电路,耦接至该多个串行输入/输出端;以及
控制单元,耦接至该输入/输出电路,将该多个串行输入/输出引脚分配为至少二个存取信道,其中该至少二个存取信道的每一个具有优先次序,并通过该输入/输出电路控制该多个串行输入/输出端的输出输入,以将第一存取指令以及第一地址通过第一存取信道的第一串行输入/输出引脚传输至该串行外围接口闪存,并在该第一存取指令的传输结束之前,将第二存取指令以及第二地址通过第二存取信道的第二串行输入/输出引脚传输至该串行外围接口闪存,以及当该至少二个存取信道的其中二个存取信道皆闲置预定时间之后,该控制单元将该二个存取信道中优先次序较高的存取信道的所有串行输入/输出引脚合并至该二个存取信道中优先次序较低的存取信道;
其中该串行外围接口控制器控制该串行外围接口闪存,使该串行外围接口闪存通过该第二存取信道的所有串行输入/输出引脚进行对应至该第二存取指令与该第二地址的第二存取操作。
14.如权利要求13所述的串行外围接口控制器,其特征在于,在该第一存取指令与该第一地址的传输结束之后,该串行外围接口控制器控制该串行外围接口闪存暂存该第一存取指令与该第一地址,并暂停对应至该第一存取指令与该第一地址的第一存取操作。
15.如权利要求14所述的串行外围接口控制器,其特征在于,在该第二存取操作结束之后,该串行外围接口控制器控制该串行外围接口闪存,使该串行外围接口闪存通过该第一存取信道的所有串行输入/输出引脚进行该第一存取操作。
16.如权利要求13所述的串行外围接口控制器,其特征在于,该串行外围接口闪存支持并行存取,该串行外围接口控制器控制该串行外围接口闪存,使该串行外围接口闪存在进行该第二存取操作的同时,通过该第一存取信道的所有串行输入/输出引脚进行对应至该第一存取指令与该第一地址的第一存取操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102111356 | 2013-03-29 | ||
TW102111356A TWI471731B (zh) | 2013-03-29 | 2013-03-29 | 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077080A CN104077080A (zh) | 2014-10-01 |
CN104077080B true CN104077080B (zh) | 2017-11-10 |
Family
ID=51598367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310299476.5A Active CN104077080B (zh) | 2013-03-29 | 2013-07-17 | 存储器存取方法、存储器存取控制方法、spi闪存装置及其控制器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104077080B (zh) |
TW (1) | TWI471731B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10095617B2 (en) | 2015-09-22 | 2018-10-09 | Macronix International Co., Ltd. | Memory device with flexible data transfer rate interface and method thereof |
CN107562658B (zh) * | 2017-09-06 | 2024-05-28 | 北京世通凌讯科技有限公司 | Cpu取指系统及取指方法 |
CN113312281A (zh) * | 2020-02-27 | 2021-08-27 | 瑞昱半导体股份有限公司 | 用于多个存储设备的控制方法及相关的内存系统 |
CN111506529B (zh) * | 2020-06-30 | 2020-10-16 | 深圳市芯天下技术有限公司 | 一种应用于flash的高速spi指令应答电路 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1869963A (zh) * | 2005-05-26 | 2006-11-29 | 旺宏电子股份有限公司 | 具有平行加速模式的串行外围接口存储元件 |
CN101174253A (zh) * | 2006-06-02 | 2008-05-07 | 旺宏电子股份有限公司 | 在多模总线的多引脚传输数据的方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5959883A (en) * | 1998-01-09 | 1999-09-28 | Information Storage Devices, Inc. | Recording and playback integrated system for analog non-volatile flash memory |
US7558900B2 (en) * | 2004-09-27 | 2009-07-07 | Winbound Electronics Corporation | Serial flash semiconductor memory |
US8103936B2 (en) * | 2007-10-17 | 2012-01-24 | Micron Technology, Inc. | System and method for data read of a synchronous serial interface NAND |
US8266369B2 (en) * | 2009-12-18 | 2012-09-11 | Nxp B.V. | Flash memory interface |
CN102193888B (zh) * | 2010-03-12 | 2013-06-05 | 新唐科技股份有限公司 | 数据传输系统与可编程串行外围设备接口控制器 |
TW201232261A (en) * | 2010-12-23 | 2012-08-01 | Samsung Electronics Co Ltd | Memory control method, memory device and memory system |
US8990548B2 (en) * | 2011-04-11 | 2015-03-24 | Intel Corporation | Apparatuses for configuring programmable logic devices from BIOS PROM |
JP5822370B2 (ja) * | 2011-07-05 | 2015-11-24 | インテル・コーポレーション | セルフディセーブルチップイネーブル入力 |
CN102279820A (zh) * | 2011-08-24 | 2011-12-14 | 四川和芯微电子股份有限公司 | 基于spi接口的数据存储装置及控制方法 |
-
2013
- 2013-03-29 TW TW102111356A patent/TWI471731B/zh active
- 2013-07-17 CN CN201310299476.5A patent/CN104077080B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1869963A (zh) * | 2005-05-26 | 2006-11-29 | 旺宏电子股份有限公司 | 具有平行加速模式的串行外围接口存储元件 |
CN101174253A (zh) * | 2006-06-02 | 2008-05-07 | 旺宏电子股份有限公司 | 在多模总线的多引脚传输数据的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI471731B (zh) | 2015-02-01 |
CN104077080A (zh) | 2014-10-01 |
TW201437814A (zh) | 2014-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8310880B2 (en) | Virtual channel support in a nonvolatile memory controller | |
KR101988260B1 (ko) | 임베디드 멀티미디어 카드, 및 이의 동작 방법 | |
US7428603B2 (en) | System and method for communicating with memory devices via plurality of state machines and a DMA controller | |
CN101667453B (zh) | 用以存取存储器的方法及系统 | |
US10552047B2 (en) | Memory system | |
US8140738B2 (en) | Flash memory interface device | |
CN104077080B (zh) | 存储器存取方法、存储器存取控制方法、spi闪存装置及其控制器 | |
JP2006195569A (ja) | 記憶装置 | |
GB2396711A (en) | Memory controller with programmable timing and control registers for data transfers which have a distinct sequence of phases. | |
US11099626B2 (en) | Apparatuses and methods of entering unselected memories into a different power mode during multi-memory operation | |
CN104238957B (zh) | 串行外围接口控制器、串行外围接口快闪存储器及其存取方法和存取控制方法 | |
CN101241752A (zh) | 存储卡和包含所述存储卡的存储系统 | |
CN102112973A (zh) | 协调装置、协调系统、协调方法、半导体集成电路及图像处理装置 | |
CN108052750A (zh) | 基于fpga的spi flash控制器及其设计方法 | |
KR101149887B1 (ko) | 멀티 채널 메모리 카드 및 그것의 제어 방법 | |
CN109471819A (zh) | 为来自主机的读取请求提供短的读取响应时间的存储设备 | |
CN102968396A (zh) | 从Flash芯片到SRAM芯片的专用数据传输模块 | |
CN106484315A (zh) | 读取及写入命令排程方法以及使用该方法的装置 | |
CN101196556A (zh) | 进行并行测试判定的soc及其实现方法 | |
US20240152470A1 (en) | Dram interface mode with interruptible internal transfer operation | |
US7688628B2 (en) | Device selection circuit and method | |
CN112256203B (zh) | Flash存储器的写入方法、装置、设备、介质及系统 | |
CN106571156B (zh) | 一种高速读写ram的接口电路及方法 | |
CN108108564A (zh) | 一种提高系统启动速度的装置和方法 | |
CN100501714C (zh) | 一种改变dma外围设备数据传输申请优先级的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |