CN114253464B - 控制读取请求的方法和具有主机装置的存储器控制器 - Google Patents

控制读取请求的方法和具有主机装置的存储器控制器 Download PDF

Info

Publication number
CN114253464B
CN114253464B CN202011295152.0A CN202011295152A CN114253464B CN 114253464 B CN114253464 B CN 114253464B CN 202011295152 A CN202011295152 A CN 202011295152A CN 114253464 B CN114253464 B CN 114253464B
Authority
CN
China
Prior art keywords
read request
configuration state
memory
memory device
host device
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
Application number
CN202011295152.0A
Other languages
English (en)
Other versions
CN114253464A (zh
Inventor
G·英特拉特
B·佩德森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adesto Technologies Corp
Original Assignee
Adesto Technologies Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adesto Technologies Corp filed Critical Adesto Technologies Corp
Publication of CN114253464A publication Critical patent/CN114253464A/zh
Application granted granted Critical
Publication of CN114253464B publication Critical patent/CN114253464B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)

Abstract

本发明提供了控制读取请求的方法和具有主机装置的存储器控制器。该控制读取请求的方法可以包括:在主机装置中从总线主控器接收读取请求,其中,主机装置通过接口联接至存储器装置;确定该读取请求的配置状态;将该读取请求的属性与存储在主机装置中的预定属性进行比较;当读取请求的属性与预定属性匹配时,对读取请求的配置状态进行调整;以及经由接口将具有调整后的配置状态的读取请求从主机装置发送到存储器装置。

Description

控制读取请求的方法和具有主机装置的存储器控制器
技术领域
本发明总体涉及半导体器件领域。更具体地,本发明的实施方式涉及存储器装置,包括易失性存储器装置和非易失性存储器装置,诸如闪存装置、电阻式随机存取存储器(ReRAM)和/或导电桥接RAM(CBRAM)进程和装置。
背景技术
非易失性存储器(NVM)越来越多地见于诸如固态硬盘、可移除数字图片卡、汽车电子产品、家用电器等应用中。闪存是当今使用的主流NVM技术。然而,闪存具有诸如相对高功率以及相对慢操作速度的局限性。微处理器的性能可能对存储器时延非常敏感。与微处理器相比,许多非易失性存储器装置具有相对慢的访问时间或时延。另外,微处理器/主机与存储器之间的各种通信协议(诸如,串行***设备接口(SPI))的许多实现可能增加比存储器阵列本身所需更多的时延。
发明内容
本发明提供了一种控制读取请求的方法,所述方法包括:
a)在主机装置中从总线主控器接收所述读取请求,其中,所述主机装置通过接口联接至存储器装置;
b)确定所述读取请求的配置状态;
c)将所述读取请求的属性与存储在所述主机装置中的预定属性进行比较;
d)当所述读取请求的所述属性与所述预定属性匹配时,对所述读取请求的所述配置状态进行调整;以及
e)经由所述接口将具有调整后的配置状态的所述读取请求从所述主机装置发送到所述存储器装置。
本发明还提供了一种具有主机装置的存储器控制器,所述主机装置被适配成:
a)从总线主控器接收读取请求,其中,所述主机装置通过接口联接至存储器装置;
b)确定所述读取请求的配置状态;
c)将所述读取请求的属性与存储在所述主机装置中的预定属性进行比较;
d)当所述读取请求的所述属性与所述预定属性匹配时,对所述读取请求的所述配置状态进行调整;以及
e)经由所述接口将具有调整后的配置状态的所述读取请求从所述主机装置发送到所述存储器装置。
附图说明
图1是根据本发明的实施方式的示例主机和存储器装置布置的示意框图。
图2是根据本发明的实施方式的具有数据缓冲器的示例存储器装置结构的示意框图。
图3是根据本发明的实施方式的示例存储器装置的示意框图。
图4是根据本发明的实施方式的示例存储器控制器***的示意框图。
图5是根据本发明的实施方式的第一示例主机装置的示意框图。
图6是根据本发明的实施方式的具有配置状态寄存器的第一示例存储器装置的示意框图。
图7是根据本发明的实施方式的第二示例主机装置的示意框图。
图8是根据本发明的实施方式的第三示例主机装置的示意框图。
图9是根据本发明的实施方式的具有配置状态寄存器的第二示例存储器装置的示意框图。
图10是根据本发明的实施方式的第一示例读取访问的时序图。
图11是根据本发明的实施方式的第二示例读取访问的时序图。
图12是根据本发明的实施方式的控制读取请求的示例方法的流程图。
具体实施方式
现在将详细参考本发明的特定实施方式,其示例在附图中例示。尽管将结合优选实施方式描述本发明,但是应当理解,它们并不旨在将本发明限于这些实施方式。相反,本发明旨在覆盖可以包括在所附权利要求所限定的本发明的精神和范围内的替代、修改和等同物。此外,在本发明的以下详细描述中,阐述了许多具体细节以便提供本发明的透彻理解。然而,对于本领域技术人员而言将显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,不详细描述公知方法、过程、进程、组件、结构和电路,以免不必要地模糊本发明的各方面。
以下详细描述的一些部分根据计算机、处理器、控制器、装置和/或存储器内对数据流、信号或波形的操作的进程、过程、逻辑块、功能块、处理、示意性符号和/或其它符号表示来呈现。数据处理领域的技术人员通常使用这些描述和表示来有效地将其工作的实质传达给本领域其它技术人员。通常,尽管不必须,但是***纵的量采取能够在计算机或数据处理***中存储、传送、组合、比较和以其它方式操纵的电、磁、光学或量子信号的形式。已证明有时(主要出于通用的原因)将这些信号称为比特、波、波形、流、值、元素、符号、字符、术语、数字等是方便的。
特定实施方式可以针对存储器装置,包括易失性存储器(诸如,SRAM和DRAM)并且包括非易失性存储器(NVM)(诸如,闪存装置)和/或电阻式开关存储器(例如,导电桥接随机存取存储器[CBRAM]、电阻式RAM[ReRAM]等)。特定实施方式可以包括可以在一个或更多个电阻和/或电容状态之间写入(编程/擦除)的闪存和/或电阻式开关存储器的结构和操作方法。在一个特定示例中,CBRAM存储元件可以被配置成使得当在CBRAM存储元件的电极两端施加大于阈值电压的正向或反向偏压时,CBRAM存储元件的电性质(例如,电阻)可以改变。无论如何,某些实施方式适于任何类型的存储器装置,特别是诸如闪存装置的NVM装置,并且在一些情况下可以包括电阻式开关存储器装置。
现在参照图1,示出了根据本发明的实施方式的示例存储器装置和主机布置100。在该示例中,主机102可以经由串行接口与存储器装置104对接。例如,主机102可以是任何合适的控制器(例如,CPU、MCU、通用处理器、GPU、DSP等),并且存储器装置104可以是任何类型的存储器装置(例如,SRAM、DRAM、EEPROM、闪存、CBRAM、磁性RAM、ReRAM等)。存储器装置104因此可以按照各种存储器技术(诸如,非易失性类型)来实现。在一些情况下,存储器装置104可以是可以在更传统的非易失性存储器中或者在CBRAM/ReRAM电阻式开关存储器中实现的串行闪存。
诸如串行***接口(SPI)中的各种接口信号可以被包括以用于主机102与存储器装置104之间的通信。例如,串行时钟(SCK)可以向装置104提供时钟,并且可以用于控制到装置的数据流。命令、地址和输入数据(例如,经由I/O引脚)可以由存储器装置104锁存在SCK的上升沿,而输出数据(例如,经由I/O引脚)可以通过SCK或数据选通(DS)从存储器装置104按时钟输出(clock out)。片选(CS)(其可以是低电平有效的(active low))可以用于诸如从共享公共总线或电路板的多个这种存储器装置当中或者说作为访问该装置的方式来选择存储器装置104。当片选信号被置为无效(de-assert)(例如,处于高电平)时,存储器装置104可以被取消选择并置于待机模式。启用片选信号(例如,经由CS的从高到低转变)可以用于开始操作,并且使片选信号返回高状态可以用于终止操作。对于内部自定时的操作(例如,编程或擦除循环),如果在操作期间片选被置为无效,则存储器装置104可以不进入待机模式,直至正在进行的特定操作完成为止。
在示例接口中,可以经由I/O信号向存储器装置104提供(例如,对于写入操作、其它命令等的)数据以及从存储器装置104提供(例如,对于读取操作、验证操作等的)数据。例如,I/O上的输入数据可以由存储器装置104锁存在串行时钟SCK的边沿上,并且如果装置被取消选择(例如,当片选信号被置为无效时),这样的输入数据可以被忽略。也可以经由I/O信号从存储器装置104输出数据。例如,为了定时一致性,从存储器装置104输出的数据可以在DS或SCK的边沿按时钟输出,并且当装置被取消选择时(例如,当片选信号被置为无效时),输出信号可以处于高阻抗状态。例如,输入数据可以在SCK的一个边沿(SDR/STR)或两个边沿(DDR/DTR)上被时钟控制,以用于命令、地址或数据或两者的组合。类似地,输出数据可以在SCK或DS的任一边沿(SDR/STR)或两个边沿(DDR/DTR)上被时钟控制以用于数据。此外,输出数据可以但不要求使用与输入数据相同的时钟模式。同样,在一些装置/布置中,DS可以是可选信号。此外,尽管在图1的特定示例中示出了4或8条I/O线,但是在某些实施方式中可以支持任何数量的I/O线(例如1、2、4、8、16等)。
现在参照图2,示出了根据本发明的实施方式的具有数据缓冲器的示例存储器装置104结构的示意框图。例如,存储器装置104可以包括存储器阵列202、缓冲器204(例如,SRAM或其它快速访问存储器)和I/O接口206。在一些布置中,可以提供多于一个缓冲器204,诸如,用于输入路径的缓冲器和用于输出路径的另一缓冲器。另选地或另外地,可以提供多个缓冲器用于多层缓冲。例如,存储器装置104可以被配置成数据闪存和/或串行闪存装置。存储器阵列202可以被组织成任何合适数量的数据页面。例如,每个页面可以包括256或264字节的数据。类似地,缓冲器204可以存储至少一个页面的数据。I/O接口206可以提供存储器阵列202、缓冲器204以及串行数据输入(SI)和输出(SO)之间的对接。例如,I/O接口206可以是SPI或其它串行类型的接口的一部分,并且还可以支持多个SPI接口模式(例如,单SPI、QPI、八进制、x16模式等)。
现在参照图3,示出了根据本发明的实施方式的示例存储器装置的示意框图。存储器装置104可以包括接口控制和逻辑部208,该接口控制和逻辑部208可以管理接口(例如,SPI接口),并且对命令和地址信息进行解码。控制和保护逻辑部302可以包括用于对存储器阵列进行读取和写入的控制电路,包括地址映射以及用于字节访问和组寻址/排序的控制,如将在下面更详细地讨论的。例如,控制和保护逻辑部302可以包括命令解码器、用于命令执行参数(例如,读取参数、编程/擦除参数等)的寄存器以及用于命令执行的控制器。
I/O缓冲器和锁存器304可以控制来自接口控制和逻辑部208的数据输入以及向接口控制和逻辑部208的数据输出。例如,可以经由I/O缓冲器和锁存器304来容纳对从存储器阵列202读取的数据的基于片选的控制和基于时钟的控制。即,如本文所述,在突发读取和顺序拾取操作期间,可以通过翻转(toggling)串行时钟SCK的方式来控制I/O缓冲器中的寄存器/锁存器和锁存器304。SRAM数据缓冲器204可以在存储器阵列202与I/O缓冲器和锁存器304之间缓冲/存储数据。地址锁存块306可以经由接口控制和逻辑部208接收地址信息,并且可以将锁存的地址提供给用于行地址的X-解码器308并且提供给用于列地址的Y-解码器310。可以经由地址锁存块306和/或控制和保护逻辑部302执行地址的递增。Y解码器310可以将列地址提供给Y选通312,Y选通312可以包括传输门(pass gate)等,以对到存储器阵列202的I/O线/来自存储器阵列202的I/O线进行多路复用。如上所述,存储器阵列202可以包括易失性存储器单元或非易失性存储器单元(例如,CBRAM、ReRAM、闪存等)的阵列。
在特定实施方式中,在更快访问和/或更低功耗方面,可以提高SPI闪存本地执行(XiP:eXecute-in-Place)性能,在SPI主机和存储器装置二者上具有最少的额外门,并且同时保持SPI总线兼容性。在某些实施方式中,根据SPI主机和SPI闪存装置上的命令操作码自动选择虚设周期数和间隔时间以及独立选择操作码、间隔时间、虚设周期数和/或操作模式可以作为读取请求的配置状态下的调整的一部分而发生。以此方式,使等待状态数和间隔时间取决于操作码可以允许时间和功率优化,而不是一个尺寸适配未针对给定操作优化的所有方法。
如本文所使用的,“配置状态”可以包括在执行操作(例如,读取操作)中使用的一组参数或信息(例如,操作码、间隔、模式、虚设周期数等)。此外,读取请求配置状态“调整”可以是与读取操作的执行相关联的参数或信息的任何改变。另外,“属性”可以是读取请求的任何性质,这可以从读取请求本身的任何方面(例如,操作码、地址位等)或相关命令确定。
在一个实施方式中,控制读取请求的方法可以包括:(i)在主机装置中从总线主控器接收读取请求,其中,该主机装置通过接口联接至存储器装置;(ii)确定读取请求的配置状态;(iii)将读取请求的属性与存储在主机装置中的预定属性进行比较;(iv)当读取请求的属性与预定属性相匹配时,调整读取请求的配置状态;以及(v)经由接口从主机装置向存储器装置发送具有调整后的配置状态的读取请求。
串行闪存装置通常可以包括两种类型的读取命令:一种没有寻址限制(例如,EBhSPI命令);并且另一种具有在双字边界(DWA)上对齐的命令(例如,E7h SPI命令)。由于闪存阵列的内部结构,DWA命令的读取时延可能比没有寻址限制的读取命令的时延更短。影响CPU吞吐量和功耗的其它参数(诸如SPI命令之间的最小所需时间或命令之间的“间隔”)也可能取决于每个特定命令的类型和长度。
现在参照图4,示出了根据本发明的实施方式的示例存储器控制器***的示意框图。在示例400中,微控制器单元(MCU)402可以包括主机装置102、CPU 404、高速缓存406和总线主控器408。例如,MCU 402可以是片上***(SoC),高速缓存406可以包括SRAM,并且每个总线主控器408可以是可以控制SPI总线的任何装置或控制器IP。可以在主机102、高速缓存406和总线主控器408之间对接的内部总线可以包括地址、数据和控制信令。例如,主机102与存储器装置104之间的接口可以是SPI接口。
特定实施方式可以应用于在XiP模式下运行的***。在该***中,CPU(例如,通过可选高速缓冲存储器)和其它总线主控器可以生成对SPI主机的读取请求,然后SPI主机可以将这些请求转换成发送到外部闪存装置的SPI命令。由于这些读取操作可以用于处理指令高速缓存未命中(instruction cache misses),所以这样的***中的CPU吞吐量和功耗可能对从闪存装置的读取时延以及对两个连续命令之间的最小允许间隔特别敏感。这样,具有DWA的读取命令导致提高***性能(例如,提高CPU吞吐量)并且降低功耗。
指令高速缓存未命中通常与双字边界对齐,并且可能潜在地使用DWA读取操作和/或要求它们之间的最小间隔的命令。然而,用户的软件可以将未对齐的读取***闪存命令的流中,并且通常CPU无法根据所请求地址的对齐将不同的读取命令发送给闪存,或者无法对用于每个请求的读取操作的SPI命令进行优化。
现在参照图5,示出了根据本发明的实施方式的第一示例主机装置的示意框图。在示例500中,SPI主机102可以包括数据路径502、控制器504和配置状态寄存器506。例如,可以经由包括操作码508、模式510、虚设周期数512和间隔514的寄存器来存储配置状态。SPI总线可以与一个或更多个存储器装置对接。地址和控制总线以及数据总线可以经由内部总线与高速缓存和总线主控器对接。在这种情况下,定义哪个命令将由SPI主机发送的参数、其操作模式以及命令之间的预编程间隔都是从单个统一配置状态提供的,而与来自总线主控器的特定读取请求无关。
现在参照图6,示出了根据本发明的实施方式的具有配置状态寄存器的第一示例存储器装置的示意框图。在示例600中,存储器装置104可以包括存储器阵列202、数据路径602(例如,图2的缓冲器204和I/O接口206)、控制器604和配置状态寄存器606。配置状态606可以包括存储虚设周期数612的寄存器。SPI总线可以用于与主机装置对接。然而,在这种情况下,对于具有可变虚设周期数的所有类型的读取命令,所有命令的“虚设”周期数或等待状态数是统一的。因此,在该示例中,为DWA的读取命令和没有寻址限制的读取命令都具有完全相同的虚设周期数和连续SPI读取之间的相同预编程间隔。因此,在该示例中,***针对这两种类型的操作都使用更大虚设周期数。
特定实施方式针对当在XiP模式下运行时CPU与存储器装置之间的交互,并且可以提高CPU吞吐量并降低***的功耗。对于这种实现,可以在CPU(主机装置)和闪存装置中均包括相对少量的逻辑门。例如,在CPU/主机中,可以包括逻辑门以检测请求是否对齐(例如,DWA),并且可以导致命令调整,以便根据该检测本质上选择不同闪存读取命令。CPU/主机还可以使用对齐信息和/或突发长度来对SPI命令之间的间隔进行调制。在闪存装置中,可以包括附加配置位,以便为不同读取命令指定不同虚设周期数。
现在参照图7,示出了根据本发明的实施方式的第二示例主机装置的示意框图。在示例700中,SPI主机102可以包括数据路径702(例如,图2的缓冲器204和I/O接口206)、控制器704和配置状态寄存器706。例如,每个配置状态寄存器集可以包括存储操作码708、模式710、虚设周期数712和间隔714的一个或更多个寄存器。在某些实施方式中,可以利用任何合适数量的不同配置状态寄存器集706。SPI总线可以与一个或更多个存储器装置对接。地址和控制总线以及数据总线可以经由内部总线与高速缓存和总线主控器对接。
在特定实施方式中,可以将额外配置寄存器添加到SoC内的闪存主机装置,如图所示。这些额外配置寄存器可以保持处理至少两种类型的读取命令所需的信息,这些读取命令是来自CPU或任何其它总线主控器的请求的结果。作为示例,一个这样的读取命令可以没有寻址限制(例如,EBh命令),并且可以调整另一读取命令以与对齐的读取请求一起工作(例如,E7h命令)。本文中的“信息”可以包括命令操作码、该命令的虚设周期数、其操作模式以及该命令与下一个命令之间的所需间隔。
在某些实施方式中还可以包括其它属性。在一个示例中,SPI主机内的控制器电路704可以动态地检测来自总线主控器的读取请求是否是双字对齐(DWA)的。例如,这可以通过检查所请求的读取地址的最低有效位(LSB)来进行(例如,如果这些LSB全为零,则该地址被对齐)。根据该对齐,SPI主机可以选择或“调整”由要发送给闪存装置的命令所使用的配置状态(例如,操作码、模式、虚设周期数、间隔等)。另外,控制器704可以检测当可以安全地减小命令之间的间隔时的情形,并且可以相应地选择/调整可应用的配置状态。例如,这可能发生在读取请求是针对长突发和/或对齐请求的情况下。
现在参照图8,示出了根据本发明的实施方式的第三示例主机装置的示意框图。在示例800中,控制器704可以利用与读取请求相关联的各种属性的单独选择。例如,控制器704可以采用单独选择用于操作码608的操作码选择控制、模式610的模式选择控制、虚设周期数选项612的虚设周期选择控制以及间隔614的间隔选择控制。在该示例中,控制器704中的选择逻辑可以独立地选择/调整各种控制字段,诸如通过访问配置状态寄存器集706内的寄存器或字段。在间隔714选择的一个示例中,EBh SPI命令在用于读取一个字节时,可能需要10个周期的间隔,而如果该命令用于读取4个字节,则所需的间隔可能只有5个周期。
现在参照图9,示出了根据本发明的实施方式的具有配置状态寄存器的第二示例存储器装置的示意框图。在示例900中,存储器装置104可以包括存储器阵列202、数据路径602、控制器604和配置状态寄存器606。在某些实施方式中,可以支持任何合适数量的配置状态寄存器集606。每个这样的配置状态寄存器集606可以包括用于虚设周期数612的存储部。配置状态606可以包括虚设周期数612。SPI总线可以用于与主机装置对接。以此方式,对于每个合适的读取命令,配置位字段可以包括有单独的虚设周期数。当存储器装置接收到读取命令时,可以从相应的位字段为该特定命令选择/调整虚设周期数。
以此方式,由设计对齐的所有XiP读取请求都可以利用具有减少的虚设周期数的合适读取命令。结果,可以减少读取时延以提高CPU吞吐量。由于CPU可能需要等待更少的时间以处理指令高速缓存未命中,所以可以提高***性能。由于CPU在等待指令高速缓存未命中服务的次优状态下可能花费更少的时间,所以这也可以有效地改进功耗。
在某些实施方式中,可以在存储器装置中容纳多个读取命令,每个命令寻找特定位组合(例如,多个零),并且每个命令具有其自己的对应虚设周期设置。这可能尤其适用于支持多个读取模式的存储器装置,诸如除了单SPI模式之外还支持双模式的四核(quad)装置,或也支持四核的八进制装置。在某些情况下,可以将读取连续地址的读取命令从主机装置发送到存储器装置,而在其它情况下,可以将以回绕方式读取数据的读取命令发送到存储器装置。可以在主机装置中通过检查SoC的内部总线上提供的特定属性来进行该选择。
在某些情况下,所需的虚设周期数可以为零。另外,在某些实施方式中,在确定地址对齐或其它属性时,可以在地址的末尾使用任何合适数量的零(或一)。实际上,可以预先确定任何特定的位模式以便定义何时将发生对读取请求的配置状态的调整,并且不需要落在特定存储器阵列边界上。此外,某些实施方式可以应用于具有存储器阵列的间接读取并且至少对于某些读取操作可能需要虚设周期或等待状态的任何存储器类型(易失性或非易失性)。例如,“间接读取”可以表示在m位宽的总线上的内部读取,其中,数据以串行方式或在n位宽的总线上按时钟输出,并且其中,m大于n(例如,m比n大2、4、8、...2k倍)。
特定实施方式可以适合于任何类型的读取操作,诸如任何SPI协议模式(例如,1-x-x、4-x-x、8-x-x、0-x-x、0-4-4等)。在该标记中,例如,第一、第二和第三数字位置可以分别表示发送命令、地址和数据的数据线数。在0-x-x或0-4-4模式下,可以隐含操作码,并且因此可能不会在每个SPI读取事务中都明确发送该操作码。由于该命令中缺少操作码,所以在这种情况下,确实明确包括操作码的EBh和E7h命令的交错会变得耗时且效率低下。因此,在某些实施方式中,对于对齐地址和未对齐地址,主机在这种情况下都可以发送隐含的EBh命令。然而,在这种模式下,对于对齐地址,主机可以针对虚设周期选择第一值,而对于非对齐地址,主机可以针对虚设周期选择第二值。闪存装置还可以支持此特殊模式,并且可以监测从主机装置接收的地址。这样,闪存装置可以确定地址是否对齐,并且闪存可以为虚设周期选择一个值,并且如果地址未对齐,则闪存可以选择虚设周期的另一值。
现在参照图10,示出了根据本发明的实施方式的第一示例读取访问的时序图。在示例1000(示出了1-4-4事务)中,一旦启用片选并运行串行时钟,则在周期0至周期7中,可以经由I/O0上的串行输入接收命令操作码。因此,可以使用8个周期来经由一个引脚接收命令操作码。在周期8和周期9中,可以接收最高有效地址字节A23至A16,在周期10和周期11中可以接收地址字节A15至A8,在周期12和周期13中可以接收地址字节A7至A0。因此,可以使用6个周期来经由4个引脚接收地址。在周期14和周期15中,可以接收模式字节M7-M0。因此,两个周期可以用于经由4个引脚接收模式字节。对于该示例命令,虚设周期可以是周期16到周期19。因此,此处示出了在时钟19的下降沿处开始输出数据之前的虚设周期的四个周期。对于数据的8字节高速缓存行,可以使用16个周期来输出请求的数据。另外,下一个可用命令之间的间隔是针对短数据突发为4个周期,针对长数据突发为1个周期。在该示例中,利用调整配置状态可以将总周期从没有调整的40个减少到35个,以使高速缓存未命中情形下的时延减少12.5%。例如,对于对齐地址属性,高速缓存未命中时延减少可以包括将虚设周期从4个周期减少到2个周期(例如,从图10中的周期19到周期17),并且对于长突发属性,间隔可以从4个周期减少到1个周期。
现在参照图11,示出了根据本发明的实施方式的第二示例读取访问的时序图。在示例1100中,后续的传输可以利用0-4-4模式,由此不需要重新输入命令,所以在接收命令操作码时不使用时钟周期。这样,一旦启用片选并运行串行时钟,则在周期0和周期1中,可以接收最高有效地址字节A23至A16,在周期2和周期3中可以接收地址字节A15至A8,并且在周期4和周期5中可以接收最低有效地址字节A7至A0。因此,可以使用6个周期来经由4个引脚接收地址。在周期6和周期7中,可以接收模式字节M7-M0。因此,两个周期可以用于经由4个引脚接收模式字节。对于该示例命令,虚设周期可以是周期8到周期11。因此,该处示出了在时钟11的下降沿处开始输出数据之前的用于虚设周期的四个周期。对于数据的8字节高速缓存行,可以使用16个周期来输出所请求的数据。另外,下一可用命令之间的间隔对于短数据突发为4个周期,并且对于长数据突发为1个周期。在该示例中,利用配置状态的调整可以将总周期从没有调整的32个减少到27个,以使高速缓存未命中情形下的时延减少15.6%。例如,对于对齐地址属性,高速缓存未命中时延减少可以包括将虚设周期从4个周期减少到2个周期(例如,从图11中的周期11到周期9),并且对于长突发属性,间隔可以从4个周期减少到1个周期。
现在参照图12,示出了根据本发明的实施方式的控制读取请求的示例方法的流程图。在示例1200中,在1202处,可以在主机装置中从总线主控器接收读取请求。主机装置可以通过接口(例如,SPI接口)联接至存储器装置。在1204处,可以确定读取请求的配置状态。在1206处,可以将读取请求的LSB与存储在主机装置中的对应的预定LSB进行比较。如果存在匹配(1208),则在1210处可以在主机装置中对读取请求的配置状态进行调整。在这种情况下,在1212处,可以将具有调整后的配置状态的读取请求发送到存储器装置。然而,如果不存在LSB匹配(1208),则在1214处可以将具有如所接收的配置状态的读取请求发送到存储器装置。如在1216中所示的示例LSB比较只是在某些实施方式中可以考虑用于配置状态调整的一种这样的属性。如上所述,在某些实施方式中,对于读取请求的这种配置状态调整,可以考虑任何合适的属性(例如,地址对齐、突发长度、操作码等)。此外,在1216中可以考虑这些属性的任意组合(例如,LSB比较和/或突发长度等)以进行这种读取请求配置状态调整。
尽管以上示例包括某些存储器布置和装置的电路、操作和结构实现,但是本领域技术人员将认识到,可以根据实施方式使用其它技术和/或架构以及其它操作模式。此外,本领域技术人员将认识到,也可以根据实施方式使用其它装置电路布置、架构、元件等。为了例示和描述,呈现了本发明的特定实施方式的以上描述。其并非旨在是穷举的或将本发明限于所公开的具体形式,显然可以根据以上教导进行许多修改和改变。选择并描述实施方式是为了最好地说明本发明的原理及其实际应用,从而使得本领域其它技术人员能够最佳地利用本发明以及具有适于所想到的特定用途的各种修改的各种实施方式。本发明的范围旨在由所附权利要求及其等同物限定。

Claims (18)

1.一种控制读取请求的方法,所述方法包括以下步骤:
a)在主机装置中从总线主控器接收所述读取请求,其中,所述主机装置通过接口联接至存储器装置;
b)确定所述读取请求的配置状态;
c)将所述读取请求的属性与存储在所述主机装置中的预定属性进行比较,其中,所述读取请求的所述属性包括所请求的地址的最低有效位LSB;
d)当所述读取请求的所述属性与所述预定属性匹配时,对所述读取请求的所述配置状态进行调整;以及
e)经由所述接口将具有调整后的配置状态的所述读取请求从所述主机装置发送到所述存储器装置。
2.根据权利要求1所述的方法,其中,当所述LSB对应于所述存储器装置中的对齐地址时,对所述读取请求的所述配置状态进行调整。
3.根据权利要求2所述的方法,其中,对所述配置状态进行调整的步骤包括:改变操作码。
4.根据权利要求2所述的方法,其中,所述对齐地址在所述存储器装置中被双字对齐。
5.根据权利要求1所述的方法,其中:
a)所述存储器装置包括非易失性存储器;并且
b)所述接口包括串行接口。
6.根据权利要求1所述的方法,其中,所述读取请求的所述属性包括长突发请求。
7.根据权利要求6所述的方法,其中,对所述配置状态进行调整的步骤包括:改变间隔。
8.根据权利要求1所述的方法,其中,对所述配置状态进行调整的步骤包括:改变操作码、模式、虚设周期数和间隔中的至少一者。
9.根据权利要求1所述的方法,所述方法还包括:在所述存储器装置中选择用于所述读取请求的虚设周期数。
10.一种具有主机装置的存储器控制器,所述主机装置被适配成:
a)从总线主控器接收读取请求,其中,所述主机装置通过接口联接至存储器装置;
b)确定所述读取请求的配置状态;
c)将所述读取请求的属性与存储在所述主机装置中的预定属性进行比较,其中,所述读取请求的所述属性包括所请求的地址的最低有效位LSB;
d)当所述读取请求的所述属性与所述预定属性匹配时,对所述读取请求的所述配置状态进行调整;以及
e)经由所述接口将具有调整后的配置状态的所述读取请求从所述主机装置发送到所述存储器装置。
11.根据权利要求10所述的存储器控制器,其中,当所述LSB对应于所述存储器装置中的对齐地址时,对所述读取请求的所述配置状态进行调整。
12.根据权利要求11所述的存储器控制器,其中,对所述配置状态的所述调整包括:改变操作码。
13.根据权利要求11所述的存储器控制器,其中,所述对齐地址在所述存储器装置中被双字对齐。
14.根据权利要求10所述的存储器控制器,其中:
a)所述存储器装置包括非易失性存储器;并且
b)所述接口包括串行接口。
15.根据权利要求10所述的存储器控制器,其中,所述读取请求的所述属性包括长突发请求。
16.根据权利要求15所述的存储器控制器,其中,所述配置状态的所述调整包括:改变间隔。
17.根据权利要求10所述的存储器控制器,其中,对所述配置状态的所述调整包括:改变操作码、模式、虚设周期数和间隔中的至少一者。
18.根据权利要求10所述的存储器控制器,其中,所述存储器装置被适配成选择用于所述读取请求的虚设周期数。
CN202011295152.0A 2020-09-24 2020-11-18 控制读取请求的方法和具有主机装置的存储器控制器 Active CN114253464B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/030,594 2020-09-24
US17/030,594 US11366774B2 (en) 2020-09-24 2020-09-24 Memory latency reduction in XIP mode

Publications (2)

Publication Number Publication Date
CN114253464A CN114253464A (zh) 2022-03-29
CN114253464B true CN114253464B (zh) 2023-12-08

Family

ID=80740453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011295152.0A Active CN114253464B (zh) 2020-09-24 2020-11-18 控制读取请求的方法和具有主机装置的存储器控制器

Country Status (2)

Country Link
US (1) US11366774B2 (zh)
CN (1) CN114253464B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249823B1 (en) * 1998-10-30 2001-06-19 Telefonaktiebolaget Lm Ericsson (Publ) System for bus master changeover with a dummy cycle on a data bus
CN101770429A (zh) * 2008-12-30 2010-07-07 英特尔公司 用于在硬件中保存有损失的元数据的元物理地址空间
CN103608782A (zh) * 2011-05-15 2014-02-26 苹果公司 Lsb页面和msb页面中的选择性数据存储
US9761308B1 (en) * 2016-03-11 2017-09-12 Western Digital Technologies, Inc. Systems and methods for adaptive read level adjustment
CN107305781A (zh) * 2016-04-21 2017-10-31 爱德斯托科技有限公司 具有用于缩短读取延迟的多个读取缓冲器的存储器装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020041658A1 (en) * 1998-06-04 2002-04-11 Alva Henderson Variable word length data memory
US6272584B1 (en) * 1998-09-10 2001-08-07 Compaq Computer Corporation System board with consolidated EEPROM module
US6321315B1 (en) 1999-09-30 2001-11-20 Micron Technology, Inc. Method and apparatus to reduce memory read latency
US20040098519A1 (en) * 2001-03-16 2004-05-20 Hugo Cheung Method and device for providing high data rate for a serial peripheral interface
US6975553B2 (en) * 2004-04-05 2005-12-13 Neomagic Israel Ltd. Nonaligned access to random access memory
US7562180B2 (en) 2006-03-28 2009-07-14 Nokia Corporation Method and device for reduced read latency of non-volatile memory
US7593263B2 (en) 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
KR20100055105A (ko) 2008-11-17 2010-05-26 삼성전자주식회사 상 변화 메모리 장치
CN101819560B (zh) * 2009-02-27 2012-05-30 杭州晟元芯片技术有限公司 一种spi接口存储器执行程序方法和装置
US8209478B2 (en) * 2009-03-03 2012-06-26 Himax Technologies Limited Single-port SRAM and method of accessing the same
US8806071B2 (en) 2012-01-25 2014-08-12 Spansion Llc Continuous read burst support at high clock rates
US8966151B2 (en) 2012-03-30 2015-02-24 Spansion Llc Apparatus and method for a reduced pin count (RPC) memory bus interface including a read data strobe signal
US9454421B2 (en) 2013-10-15 2016-09-27 Cypress Semiconductor Corporation Method for providing read data flow control or error reporting using a read data strobe
WO2015061697A1 (en) * 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Processor and methods for floating point register aliasing
KR102121331B1 (ko) * 2013-10-28 2020-06-11 에스케이하이닉스 주식회사 반도체 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
US9286959B2 (en) 2013-11-18 2016-03-15 International Business Machines Corporation Low latency memory access control for non-volatile memories
CN104679480A (zh) * 2013-11-27 2015-06-03 上海芯豪微电子有限公司 一种指令集转换***和方法
US20170300329A1 (en) * 2014-11-11 2017-10-19 Renesas Electronics Corporation Instruction execution control system and instruction execution control method
US9812183B2 (en) 2016-03-04 2017-11-07 Adesto Technologies Corporation Read latency reduction in a memory device
US11042500B1 (en) * 2019-12-19 2021-06-22 Cadence Design Systems, Inc. Systems and methods for high-speed data transfer over a communication interface

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249823B1 (en) * 1998-10-30 2001-06-19 Telefonaktiebolaget Lm Ericsson (Publ) System for bus master changeover with a dummy cycle on a data bus
CN101770429A (zh) * 2008-12-30 2010-07-07 英特尔公司 用于在硬件中保存有损失的元数据的元物理地址空间
CN103608782A (zh) * 2011-05-15 2014-02-26 苹果公司 Lsb页面和msb页面中的选择性数据存储
US9761308B1 (en) * 2016-03-11 2017-09-12 Western Digital Technologies, Inc. Systems and methods for adaptive read level adjustment
CN107305781A (zh) * 2016-04-21 2017-10-31 爱德斯托科技有限公司 具有用于缩短读取延迟的多个读取缓冲器的存储器装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于不对称性的相变存储器性能优化研究;李铮;中国博士学位论文全文数据库信息科技辑;I137-4 *

Also Published As

Publication number Publication date
CN114253464A (zh) 2022-03-29
US11366774B2 (en) 2022-06-21
US20220092004A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
US10613763B2 (en) Memory device having multiple read buffers for read latency reduction
US10509589B2 (en) Support for improved throughput in a memory device
TWI512755B (zh) 存取記憶體之方法及系統
US9978430B2 (en) Memory devices providing a refresh request and memory controllers responsive to a refresh request
KR101154148B1 (ko) 복수 개의 독립적인 직렬 링크 메모리
US10726888B2 (en) Read latency reduction in a memory device
US20050068844A1 (en) Mode selection in a flash memory device
JP2002202911A (ja) 不揮発性メモリ装置
JP4643729B2 (ja) インタリーブ制御装置、インタリーブ制御方法及びメモリシステム
US10838662B2 (en) Memory system and method of operating the same
WO2001020611A2 (en) Controlling burst sequence in synchronous memories
CN114253464B (zh) 控制读取请求的方法和具有主机装置的存储器控制器
CN112863560B (zh) 存储器设备、控制存储器设备的方法和主机设备
US11481157B2 (en) Electronic apparatus and transfer method
US11704258B2 (en) Latency reduction in SPI flash memory devices
US8006029B2 (en) DDR flash implementation with direct register access to legacy flash functions
US11983411B2 (en) Methods, devices and systems for including alternate memory access operations over memory interface
US11972135B2 (en) Status polling based on die-generated pulsed signal
US20240231675A1 (en) Status polling based on die-generated pulsed signal
TWI701553B (zh) 反及閘快閃記憶體的讀取方法
CN114610236A (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