CN105308584A - 非易失性存储器接口 - Google Patents

非易失性存储器接口 Download PDF

Info

Publication number
CN105308584A
CN105308584A CN201380077745.1A CN201380077745A CN105308584A CN 105308584 A CN105308584 A CN 105308584A CN 201380077745 A CN201380077745 A CN 201380077745A CN 105308584 A CN105308584 A CN 105308584A
Authority
CN
China
Prior art keywords
nonvolatile memory
bus
instruction
request
memory
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
Application number
CN201380077745.1A
Other languages
English (en)
Other versions
CN105308584B (zh
Inventor
E.H.乌伊
R.J.小罗耶
M.W.威廉斯
J.R.威尔科克斯
R.B.特里维迪
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN105308584A publication Critical patent/CN105308584A/zh
Application granted granted Critical
Publication of CN105308584B publication Critical patent/CN105308584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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
    • 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
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/7202Allocation control and policies

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)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Bus Control (AREA)
  • Storage Device Security (AREA)

Abstract

在一个实施例中,存储器接口可以发送正在发送请求的指示。该指示可以通过存储器接口与非易失性存储器之间的点到点总线来发送到非易失性存储器。该存储器接口可以通过总线将请求发送到非易失性存储器。该请求可以包含可用于标识用于存储或读取数据的位置的地址。该非易失性存储器可以从总线获取请求并处理该请求。在处理该请求之后,非易失性存储器可以向存储器接口发送指示非易失性存储器有响应要发送到存储器接口的指示。该存储器接口可以将对总线的访问授权给非易失性存储器。在授权对总线的访问之后,非易失性存储器可以将响应发送到存储器接口。

Description

非易失性存储器接口
背景技术
计算设备可以包括可用于存储信息的存储装置。该信息可以包括例如,数据和/或可执行指令。该存储装置可以包括主存储装置和辅助存储装置。主存储装置可以例如为处理器提供内部存储。辅助存储装置可以例如为处理器提供外部存储。处理器可以经由一个或多个总线来访问存储装置。这些总线可以用于在处理器与存储装置之间传递信息。
附图说明
并入本说明书中并构成其一部分的附图图示本文描述的一个或多个实施例,并且连同描述来解释这些实施例。在这些附图中:
图1图示计算设备的示例的框图;
图2图示可与事务关联的阶段的示例;
图3图示可以与读事务关联的时序图的示例;
图4图示可以与写事务关联的时序图的示例;
图5A-B图示可在读事务期间由主机端执行的示例动作的流程图;
图6A-B图示可在读事务期间由客户端执行的示例动作的流程图;
图7A-B图示可在写事务期间由主机端执行的示例动作的流程图;
图8A-B图示可在读事务期间由客户端执行的示例动作的流程图;以及
图9图示计算设备的另一个示例的框图。
具体实施方式
下文详细描述参考了附图。不同附图中的相同引用号可标识相同或相似的元件。再有,下文详细描述并不限制本发明。
计算设备可以包括计算设备可用来存储信息(例如,数据、计算机可执行指令)的存储装置。该存储装置可以是易失性和/或非易失性的。易失性存储装置可以用于存储从计算设备移除供电之后可丢失的信息。非易失性存储装置可以用于存储计算设备失去供电之后将续存(保留)的信息。
例如,计算设备可以包含中处理单元(CPU)和存储装置。该存储再者可以包括例如,易失性存储器和非易失性存储器(NVM)。易失性存储装置可以针对从计算设备移除供电之后可丢失的信息提供存储。另一方面,NVM可以针对从计算设备移除供电之后要保留的信息提供存储。CPU可以在对计算设备恢复供电之后从NVM取回所保留的信息。
存储装置可以包含可用于存储信息的一个或多个存储器装置。存储器装置可以包括一个或多个阵列,其中阵列可以包括可用将信息存储在存储器装置中的一个或多个存储器单元。
存储器单元可以与地址关联。可以使用地址来标识该存储器单元。可以使用地址将信息写入存储器单元和/或从存储器单元读取信息。例如,存储器装置中的存储器单元可以与特定地址关联(例如,0x100)。写事务可以指定地址以及要写入到存储器单元的数据。可以使用地址来标识存储器单元,以及可以在标识存储器单元之后将数据写入该存储器单元。
可以使用相可包含存储装置的设备发出命令来访问(例如,读、写)该存储装置。命令可以是可通过总线传递到设备的事务的一部分。还可以通过总线传递与命令关联的数据。总线可以包括用于将命令和/或数据传递到设备的供应(例如,导线)。
例如,计算设备可以包括CPU和NVM。CPU可以通过总线耦合到NVM。可以使用在CPU与NVM之间传递命令和/或数据。总线可以是例如可以包括可用于传递命令和/或数据的一个或多个导线的点到点总线。
存储装置可以包括一个或多个存储模块。存储模块可以包含存储装置中包含的一个或多个存储器装置。存储模块的示例可以包括但不限于,双列直插式存储器模块(DIMM)、安全数字(SD)卡、多媒体卡(MMC)、压缩闪存(CF)卡、存储棒和单列直插式存储器模块(SIMM)。
本文描述的技术可以在计算设备中实现。可实现本文描述的技术的计算设备的示例可以包括但不限于,智能电话、平板电脑、超级本、膝上型计算机、主机端、服务器和桌上型计算机。
图1图示可实现本文描述的多种技术的计算设备100的示例的框图。参考图1,计算设备100可以包括多种组件,例如,易失性存储器120、处理逻辑130、主机端控制器(HC)140和非易失性存储器150。
应该注意图1图示计算设备100的示例实施例。计算设备100的其他实施例可以包括比图1所示的组件更多的组件或更少的组件。再者,这些组件可以按不同于图1所示的方式来安装。例如,计算设备100的实施例可以包括可用于与如因特网的网络通信的通信接口。再有,应该注意计算设备100的其他实施例中包含的多种组件执行的功能可以采用不同于本文描述的方式分布在组件之间。
易失性存储器120可以提供用于计算设备100的存储装置。该存储装置可以用于存储信息,例如,数据和/或计算机可执行指令。该存储装置可以是可以实现用于计算设备100的高速缓存存储器的高速存储装置(例如,二级(L2)高速缓存)。易失性存储器120可以包括一个或多个装置,例如,可以用于存储信息的存储器装置。
非易失性存储器150也可以提供用于计算设备100的存储装置。该存储装置可以例如,比易失性存储器120慢且具有比易失性存储器120更高的存储容量。该存储装置可以用于存储信息。可以将信息存储在非易失性存储器150中包含的一个或多个装置上。这些装置可以包括例如,一个或多个存储器装置。
易失性存储器装置可以是在从存储器装置移除供电时可丢失该存储器装置中存储的信息的存储器装置。非易失性存储器装置可以是在从存储器装置移除供电时可保留该存储器装置中存储的信息的存储器装置。存储器装置的示例包括动态RAM(DRAM)装置、闪存装置、静态RAM(SRAM)装置、零电容器RAM(ZRAM)装置、双晶体管RAM(TTRAM)装置、只读存储器(ROM)装置、铁电晶体管RAM(FeTRAM)装置、磁阻RAM(MRAM)装置、三维(3D)交叉点存储器装置(例如,相变存储器(PCM)装置)、基于纳米导线的装置、电阻式RAM(RRAM)装置、串行电可擦写可编程ROM(SEEPROM)装置、自旋转移矩(STT)MRAM装置和串行闪存装置。
处理逻辑130可以包括用于解释、执行和/或以其他方式处理信息的逻辑。该信息可以存储在例如,易失性存储器120和/或非易失性存储器150中。该信息可以包括例如,数据和/或计算机可执行指令。
处理逻辑130可以包括多种多样化硬件。例如,该硬件可以包括一个或多个处理器、微处理器、场可编程门阵列(FPGA)、专用指令集处理器(ASEP)、专用集成电路(ASIC)、复杂可编程逻辑装置(CPLD)、图形处理单元(GPU)和/或可以例如解释、执行、操作和/或以其他方式处理信息的其他类型的处理逻辑的某种组合。处理逻辑130可以包括单个核或多个核。
总线160、170、180和190可以是点到点总线。总线160、170、180和190可以包括可用于在组件之间载送多种信号的电导体(例如,导线)。这些信号可以包括,例如,控制信号和/或数据。例如,总线190可以是可包括可在非易失性存储器接口(NMI)146与非易失性存储器150之间载送信号的多个导线的点到点总线。这些信号可以包括多种控制信号和数据。这些信号可以由分开的导线来载送。例如,第一导线可以用于在NMI146与非易失性存储器之间载送请求和数据信息。第二导线可以用于载送可用于获取(例如,读、接收)请求和数据信息的选通信息。第三单线可以用于指示非易失性存储器150是否已获授权第一和第二导线的所有权,以便将信息从非易失性存储器150传递到NMI146等。
HC140可以包括可使信息能够在计算设备100中的多种组件之间传递的逻辑。这些组件可以包括例如,易失性存储器120、处理逻辑130和/或非易失性存储器150。可以通过总线160、170、180和190在组件之间传递信息,这些总线可以将这些组件与HC140耦合。
HC140可以包括可使信息能够在计算设备100中的多种组件之间传递的逻辑。这些接口可使信息能够在组件之间交换(例如,传递)。这些接口可以包括,例如易失性存储器接口(VMI)142和NMI146。VMI142可以用于将处理逻辑130与易失性存储器120接口。NMI146可以用于将处理逻辑130与非易失性存储器150接口。
VMI142可以包含可使信息能够通过总线160和170在易失性存储器120与处理逻辑130之间通信(例如,传递)的逻辑。确切地来说,VMI142可以包含可使信息能够通过总线160在VMI142与易失性存储器120之间通信的逻辑。而且,VMI142可以包含可使信息能够通过总线170在处理逻辑130与VMI142之间通信的逻辑。该信息可以包括,例如,命令和/或数据。VMI142中可包含的逻辑的示例可以包括状态机、总线收发器、寄存器和/或其他逻辑。
NMI146可以包含可使信息能够通过总线180和190在非易失性存储器150与处理逻辑130之间通信的逻辑。确切地来说,NMI146可以包含可用于通过总线180在NMI146与处理逻辑130之间通信信息的逻辑。而且,NMI146可以包含可用于通过总线190在非易失性存储器150与NMI146之间通信信息的逻辑。NMI146中可包括的NMI146中可包含的逻辑可以包括,例如状态机、总线收发器、寄存器和/或其他逻辑。
该信息可以包括,例如,请求和/或数据。这些请求可以包括命令信息(例如,读命令、写命令)和/或地址信息(例如,要读取的地址、要写入的地址)。该信息可以使用事务来通信。
可以使用事务以通过总线在两个实体之间通信信息。例如,可以使用事务通过总线190在NMI146与非易失性存储器150之间通信信息。使用事务通信的信息可以包括例如,请求、数据和/或响应信息。
事务可以是某种类型的。例如,事务可以是写事务或读事务。写事务可以用于例如将信息写入存储装置,如写入非易失性存储器150。读事务可以用于例如从存储装置读取信息,如从非易失性存储器150读取。
事务可以包括多个阶段。例如,事务可以包括请求阶段、数据阶段和/或响应阶段。阶段可以附带有在该阶段期间可在实体之间传递的某些类型的信息。例如,在请求阶段期间,可以在实体之间传递命令和/或地址信息。
图2图示可与可通过如总线190的总线在如NMI146与非易失性存储器150的实体之间传递的读事务和写事务关联的示例阶段。参考图2,参考数字220包括(1)时间线和(2)可以在读事务期间传递的信息。参考数字260包括(1)时间线和(2)可以在可与写事务关联的阶段传递的信息。
读事务可以包括请求阶段、数据阶段和响应阶段。请求阶段可以在时间230a处进行。请求阶段可以包括通过总线在实体之间传递请求240a。请求240a可以包括例如,前导码、命令和/或地址。命令可以标识要执行的操作(在此示例中为读操作)。地址可以标识要读取的位置。
可以使用前导码来准备获取请求240a。准备可以包括例如,使用前导码来训练从总线获取请求240a。前导码可以包括可以用于执行训练的预定义位序列。
例如,假定实体包括NMI146和非易失性存储器150,以及总线包括总线190。在请求阶段期间,可以通过总线190将请求240a从NMI146发送到非易失性存储器150。请求240a可以包含前导码、命令和地址。前导码可以包含可供非易失性存储器150用于准备从总线190接收命令和地址的预定义的位序列。该命令可以标识要由非易失性存储器150执行的读操作。该地址可以标识非易失性存储器150中要读取的位置。
数据阶段可以在请求阶段之后开始。数据阶段可以包括时间230b,其中实体可以处理请求。例如,在数据阶段期间,非易失性存储器150可以处理上面的请求。此处,处理可以包括例如,从非易失性存储器150中该地址标识的位置处读取数据240b。
数据阶段还可以包括时间230c,此时在实体之间传递数据240b。例如,在读取数据240b之后,可以通过总线190将数据240b从非易失性存储器150传递到NMI146。
在时间230d处,请求可以进入响应阶段。响应阶段可以包括发送对该请求的响应240c。响应240c可以提供请求已被处理的指示。响应240c可以前导码开始,该前导码可以用于准备获取响应240c。可以使用该前导码来准备获取响应240c。准备可以包括,例如使用该前导码来训练从总线获取响应240c。该前导码可以包含可用于执行训练的预定义的位序列。
例如,在响应阶段期间,可以通过总线190将响应240c和前导码从非易失性存储器150发送到NMI146。响应240c可以向NMI146提供请求已被非易失性存储器150处理的指示。响应240c可以包括例如,可以与读请求关联的状态。该状态可以指示非易失性存储器150处执行的读操作是否已成功地执行。响应240c可以该前导码开始。NMI146可以使用该前导码来准备从总线190接收响应240c。准备可以包括训练,如上文描述的训练。
现在参考引用数字260,写事务也可以包括请求阶段、数据阶段和响应阶段。在时间270a处,请求阶段可以包括请求280a。请求280a可以包含例如,前导码、命令和/或地址。该前导码可以用于接收命令和/或地址。该命令可以指示要执行写操作以及该地址可以标识要写入数据所在的位置。
例如,假定实体包括NMI146和非易失性存储器150,以及总线包括总线190。在请求阶段期间,可以通过总线190将请求280a从NMI146发送到非易失性存储器150。请求280a可以包含前导码、命令和地址。该前导码可以被非易失性存储器150用于准备接收命令和地址。准备可以包括训练,如上文描述的训练。该命令可以标识要由非易失性存储器150执行的写操作。该地址可以标识非易失性存储器150中要写入的位置。
数据阶段可以在请求阶段之后进行。在数据阶段期间,可以在实体之间传递要写入的数据280b,如时间270b所示。同样,在数据阶段期间,在时间270c处,可以将数据写入例如请求280a中标识的位置。
例如,在数据阶段期间,可以通过总线190将数据280b从NMI146传递到非易失性存储器150。在接收到数据280b之后,非易失性存储器150可以将该数据写入非易失性存储器150中可以使用请求280a中包含的地址标识的位置。
响应阶段可以在数据阶段之后,如时间270d处所示。在响应阶段期间,可以在实体之间传递响应280c。响应280c可以包含例如,与该写请求关联的状态。该状态可以指示例如,写请求是否已成功地完成。
例如,非易失性存储器150可以生成响应280c,响应280c可以包含可指示写操作是否成功的状态。在响应阶段期间,非易失性存储器150可以通过总线190将响应280c传递到NMI146。
可以通过总线190在NMI146与非易失性存储器150之间传递多种信号。总线190可以是连接的总线(例如,点到点总线)并且可以在可包括在总线190中的单独连接(例如,导电导线、光连接)来载送每个信号。这些信号可以包括例如,下表中列出的信号。
信号名称 大小尺寸 方向 描述
DQ 8或16 双向 数据
DQS 2或4 双向 数据选通差分对
ACT 1 从NMI到非易失性存储器的单方向 NMI传输指示
RGRANT 1 从NMI到非易失性存储器的单方向 NMI向非易失性存储器授权DQ和DQS所有权
RQRDY 1 从NMI到非易失性存储器的单方向 NMI请求准备就绪
RRDY 1 从非易失性存储器到NMI的单方向 非易失性存储器响应准备就绪
注意,上表提供可以在NMI146与非易失性存储器150之间传递的信号的示例。还可以通过例如总线190在NMI146与非易失性存储器150之间传递其他信号。这些信号可以包括例如,可用于将NMI146和/或非易失性存储器150的操作复位的信号,可以提供用于阻抗标定的基准的信号和/或可以提供例如总线190上传递的信息的检错和/或纠错的校验位信号。
再一些信号可以包括例如,可以用于电源管理的信号。例如,可以包括可被NMI146用于指令非易失性存储器150进入低功率状态的信号。例如,可以包括可被NMI146用于指令非易失性存储器150退出低功率状态的另一个信号。
注意,可以将在总线190上载送信号的导线更改用途以基于非易失性存储器150和/或NMI146的状态来载送某些信号。例如,可以将载送ACT和RRDY的导线更改用途以在管理与非易失性存储器150关联的电源状态中使用,如上文描述。
可以在不同时间处对非易失性存储器150与NMI146之间传递的信号断言或取消断言,以便在事务期间提供多种指示。图3图示读事务期间例如NMI146与非易失性存储器150之间的信号的示例操作的时序图300。这些信号可以通过总线190在非易失性存储器150与NMI146之间传递。
参考图3,时间330a可以表示读事务之前信号的状态。确切地来说,在时间330a处,上文描述的ACT、RGRANT、RQRDY和RRDY可能被取消断言。此外,上文描述的DQ和DQS可能处于高阻抗状态,如示意图300中虚线所示。
在时间330b处,NMI146可以对ACT信号断言以向非易失性存储器150指示NMI146具有请求要发送。将ACT断言可以指示已经进入读事务的请求阶段。非易失性存储器150可以检测到ACT被断言,并且准备在DQS上接收与该请求关联的前导码。在时间330c处,NMI146可以开始在DQS上传递前导码。非易失性存储器150可以接收该前导码,并且准备从NMI146接收请求。准备可以包括训练,如上文描述的训练。
在时间330d和330e处,NMI146可以将该请求传递到DQ上。此外,NMI146可以在DQS上提供选通信号,非易失性存储器150可以使用该选通信号来从DQ获取请求。在时间330d和330e期间,非易失性存储器150可以获取该选通信号并使用该选通信号使用从DQ获取请求。
在时间330e处,NMI146可以将RQRDY取消断言。非易失性存储器150可以检测到NMI146已经将RQRDY取消断言并停止从DQ获取请求。而且,在时间330f和330g处,NMI146可以在DQS上向非易失性存储器150传递后导。非易失性存储器150可以获取该后导并确定已经退出请求阶段。
在时间330h处,非易失性存储器150可以处理该请求。此处,处理可以包括确定该请求是读请求,并从非易失性存储器150中该请求中标识的位置处读取数据。
在读取数据之后,非易失性存储器150可以将RRDY断言,如时间330i所示,以向NMI146指示非易失性存储器150准备向NMI146发送信息。该信息可以包括例如,已从非易失性存储器150读取的数据。此处,将RRDY断言可以指示进入读事务的数据阶段。
NMI146可以确定RRDY已被断言并且将RGRANT断言以向非易失性存储器150发送已授权DQ的所有权的指示,如时间330j所示。
在检测到RGRANT已被断言且基于RGRANT被断言而确定非易失性存储器150已被授权DQ的所有权之后,非易失性存储器150可以开始在DQS上传递前导码,如时间330k所示。NMI146可以获取该前导码,并准备在DQ上接收数据。准备可以包括训练,如上文描述的训练。在时间330m和330n处,非易失性存储器150可以分别在DQ和DQS上传递数据和关联的选通信息。NMI146可以使用选通信息以从DQ获取数据。
在时间330o处,非易失性存储器150可以将RRDY取消断言以指示已退出数据阶段,并且已进入读事务的响应阶段。在对RRDY取消断言之后,非易失性存储器150可以在DQ上传递响应信息。响应信息可以包含例如,与请求关联的状态。状态可以包括例如,该请求是否已被非易失性存储器150成功地处理。NMI146可以从DQ获取响应信息并处理它。此处,处理可以包括例如,确定该请求是否已被非易失性存储器150成功地处理。
在时间330o和330p处,非易失性存储器150可以将后导传递到DQS上。NMI146可以获取后导,并确定已退出响应阶段。在确定已退出响应阶段之后,NMI146可以对RGRANT信号取消断言,如时间330q所示。
图4图示写事务期间例如NMI146与非易失性存储器150之间的信号的示例操作的时序图400。这些信号可以通过总线190在NMI146与非易失性存储器150之间传递。
参考图4,时间430a可以表示写事务之前信号的状态。确切地来说,在时间430a处,上文描述的ACT、RGRANT、RQRDY和RRDY可以被取消断言。此外,上文描述的DQ和DQS可能处于高阻抗状态,如示意图400中虚线所示。
在时间430b处,NMI146可以对ACT信号断言以向非易失性存储器150指示NMI146具有请求要发送。将ACT断言可以指示已经进入写事务的请求阶段。非易失性存储器150可以检测到ACT被断言,并且准备在DQS上获取与该请求关联的前导码。在时间430c处,NMI146可以开始在DQS上传递前导码。非易失性存储器150可以获取该前导码,并且准备从NMI146获取请求。准备可以包括使用前导码进行训练,如上文描述的训练。
在时间430d和430e处,NMI146可以将该请求传递到DQ上。该请求可以包含命令和地址。该命令可以将该请求标识为写请求,并且该地址可以标识非易失性存储器150中要以数据写入的位置。NMI146可以在DQS上提供选通信号,非易失性存储器150可以使用该选通信号来从DQ获取请求。在时间430d和430e期间,非易失性存储器150可以接收该选通信号并使用该选通信号从DQ获取请求。
在时间430e处,NMI146可以将RQRDY取消断言。非易失性存储器150可以检测到NMI146已经将RQRDY取消断言并停止从DQ获取请求。注意可以在NMI146将请求传递到DQ上的时间将RQRDY断言,并且在DQ不包含请求信息时将其取消断言。非易失性存储器150可以检测到DQ不再被断言,并且确定已经退出写事务的请求阶段且事务正在进入数据阶段。
在时间430f处,NMI146还可以将数据传递到DQ上。非易失性存储器150可以使用选通从DQ获取数据,该选通可以由NMI146在DQS上提供。该数据可以包括要在非易失性存储器150中写入的数据。在时间430g处,NMI146可以完成将数据传递到DQ上。
在时间430g处,NMI146可以将ACT取消断言,这可以指示NMI146不再具有DQ的所有权。在将ACT取消断言之后,NMI146可以将后导传递到DQS上,如时间430g和430h所示。非易失性存储器150可以获取该后导并确定已经退出写事务的数据阶段。
在时间430j处,非易失性存储器150可以将数据写入非易失性存储器150中可由请求所指定的地址所标识的位置。此后,在时间430k处,非易失性存储器150可以将RRDY断言以便向NMI146指示非易失性存储器150准备发送响应。在此时点处,写事务可以进入响应阶段。
NMI146可以检测RRDY被断言,并且在时间430m处,可以通过将RGRANT断言以向非易失性存储器150授权DQ的所有权。非易失性存储器150可以检测到RGRANT被断言,并且确定非易失性存储器150已被授权DQ的所有权。在时间430n和430o处,非易失性存储器150可以将前导码传递到DQS上。NMI146可以获取该前导码,并准备在DQ上获取响应。准备可以包括训练,如上文描述的训练。
在时间430p处,非易失性存储器150可以将响应传递到DQ上。此外,在时间430q处,非易失性存储器150可以在DQ上发送填充信息(在示意图400中指示为“P”)。该填充信息可以用于将响应“填充”到某个长度(例如,某个字节数)。
NMI146可以使用非易失性存储器150在DQS上提供的选通以在DQ上获取响应和填充信息。NMI146可以处理该响应。此处,处理可以包括例如,确定该响应是否有该请求已被成功地执行的指示。
在时间430q和430r处,非易失性存储器150可以在DQS上发送后导。NMI146可以接收该后导,并确定已退出写事务的响应阶段。此后,在时间430s处,NMI146可以将RGRANT取消断言以指示非易失性存储器150不再具有DQ的所有权。
在计算设备100(图1)中,NMI146可以被视为相对于非易失性存储器150的主机端,以及非易失性存储器150可以被视为NMI146的客户端。此关系可以基于例如哪个实体可以控制DQ的所有权来建立。如上文描述,NMI146可以取得DQ的所有权而无需首先请求所有权。另一方面,非易失性存储器150将RRDY断言以请求DQ的所有权并等待,直到NMI146授权所有权为止,此后非易失性存储器150取得DQ的所有权。可以说,NMI146控制哪个实体具有DQ的所有权。由此,基于此行为,可以说NMI146是作为NMI146的客户端的非易失性存储器150的主机端。
NMI146与非易失性存储器150之间通过总线190的通信可以遵循协议。该协议可以受制于一个或多个规则。例如,该协议可以受制于如下规则的其中一个或多个:
1)由非易失性存储器150进行RRDY断言可以取决于RGRANT被非易失性存储器150采样为已取消断言;
2)NMI146进行的RGRANT断言可以取决于RRDY被NMI146采样为已被断言连同ACT和RQRDY已被取消断言。最小断言持续时间可以是与NMI146关联的时钟(NMI时钟)的预定数量的时钟周期。例如,NMI146可以将RGRANT断言持续NMI时钟的最小两个时钟周期;
3)在对RGRANT断言采样持续与非易失性存储器150关联的时钟(非易失性存储器时钟)的预定数量的时钟周期之后,非易失性存储器150可以开始在DQS上传送前导码。例如,在对RGRANT断言采样持续非易失性存储器时钟的一个时钟周期之后,非易失性存储器150可以开始在DQS上传送前导码;
4)NMI146可以在RRDY被取消断言之前将RGRANT取消断言。或者,RGRANT可以在NMI146检测到RRDY已被取消断言之后被取消断言;
5)RRDY取消断言可以在事务已完成之后进行或响应于事务完成之前NMI146重新获得总线所有权而进行;
6)NMI146可以在对RRDY采样为被断言持续预定数量的NMI时钟周期(例如,一个NMI时钟周期)之后开始在DQS上发送前导码。发送前导码置换的预定时间,NMI146可以开始在DQ上发送信息;
7)在非易失性存储器150对RGRANT采样为已取消断言之后,非易失性存储器150可以将RRDY取消断言。此外,非易失性存储器150可以结束在DQ和DQS上传送信息。信息的传输可以在与该信息关联的特定边界(例如,64字节边界)上结束。RRDY的取消断言可以指示例如,非易失性存储器150的传输结束;
8)RQRDY断言可以封装NMI146在DQ上传送的信息。例如,RQRDY断言可以封装读事务中NMI146在DQ上传送的命令信息;
9)RQRDY可以被取消断言持续预定持续时间(例如,持续2个NMI时钟)。
如果请求阶段是背靠背的(back-to-back),则RQRDY可以保持被断言且在阶段之间不取消断言。
10)NMI146可以在读事务的请求阶段完成之后和/或写事务的数据阶段之后,对DQ和/或DQS设置三态(tri-state);
11)ACT断言可以取决于RGRANT和RRDY被取消断言;和/或
ACT的取消断言可以在预定数量的NMI时钟周期之后发生。例如,ACT的取消断言可以在NMI时钟的一个时钟周期之后发生。
图5A-B图示可由主机端,例如,NMI146执行的与读事务关联的示例动作的流程图。参考图5A,在框510处,可以向客户端发送主机端有请求要发送的指示。例如,假定主机端是NMI146以及客户端是非易失性存储器150。在框510处,NMI146可以对ACT断言以向非易失性存储器150指示NMI146有请求要发送到非易失性存储器150。
在框520处,向客户端发送指示,其中该指示是指示正在通过总线发送读请求。例如,NMI146可以将RQRDY断言以向非易失性存储器150指示正在DQ上向非易失性存储器150发送读请求。在框530处,可以通过总线向客户端发送读请求。例如,NMI146可以通过DQ将读请求发送到非易失性存储器150。
在框540处,可以获取客户端准备发送信息的指示。例如,非易失性存储器150可以接收该读请求并处理它。处理可以包括,例如,从非易失性存储器150中可基于读请求中可包含的地址所标识的位置读取数据。读取数据之后,非易失性存储器150可以将RRDY断言以便指示非易失性存储器150准备向NMI146发送数据。
在框550(图5B)处,可以发送客户端具有该总线的所有权的指示。例如,NMI146可以将RGRANT断言以向非易失性存储器150指示非易失性存储器150具有DQ的所有权。在框560处,可以通过总线获取来自客户端的信息。例如,在检测到RGRANT已被断言之后,非易失性存储器150可以开始通过DQ向NMI146发送数据,并且NMI146可以使用例如,非易失性存储器150在DQS上发送的选通信号以从DQ读取数据。而且,非易失性存储器150可以通过DQ向NMI146传递响应信息,并且NMI146可以从DQ读取响应信息,如上文描述。
在框570处,可以从客户端获取不再通过总线从客户端向主机端发送信息的指示。例如,在发送响应信息之后,非易失性存储器150可以在DQS上发送后导。该后导可以指示易失性存储器150不再在DQ上发送信息。
在框580处,可以发送指示,以指示客户端不再具有该总线的所有权。例如,NMI146可以将RGRANT取消断言以向非易失性存储器150指示非易失性存储器150不再具有DQ的所有权。
图6A-B图示可由客户端执行且与读事务关联的示例动作的流程图。参考图6A,在框610处,可以从主机端获取主机端有请求要发送到客户端的指示。例如,假定主机端是NMI146以及客户端是非易失性存储器150。在框610处,NMI146可以对ACT断言以指示NMI146有请求要发送到非易失性存储器150。非易失性存储器150可以检测到ACT被断言并确定NMI146有请求要发送到非易失性存储器150。
在框620处,可以从主机端获取正在总线上发送读请求的指示。例如,NMI146可以将RQRDY断言以向非易失性存储器150指示NMI146正在DQ上发送读请求。在框630处,通过总线从主机端获取读请求。例如,非易失性存储器150可以使用例如NMI146在DQS上发送的选通信号以从DQ读取读请求。
在框640处,可以基于读请求来读取数据。例如,读请求可以包含地址。非易失性存储器150可以使用该地址来标识非易失性存储器150中包含该数据的位置。非易失性存储器150可以从非易失性存储器150中标识的位置读取数据。
在框650处(图6B),可以发送客户端准备发送信息的指示。例如,在从非易失性存储器150读取数据之后,非易失性存储器150可以将RRDY断言。NMI146可以检测到RRDY已被断言并确定非易失性存储器150准备发送所请求的数据。
在框660处,可以获取客户端具有总线的所有权的指示,并且可以通过该总线向主机端发送信息。例如,NMI146可以使用RGRANT对非易失性存储器150授权DQ的所有权,如上文描述。在非易失性存储器150确定它具有DQ的所有权之后,非易失性存储器150可以通过DQ将数据发送到NMI146,如上文描述。
在框670处,发送不再在总线上发送信息的指示。例如,非易失性存储器150可以通过DQS向NMI146发送后导以指示不再在DQ上发送信息。
在框680处,可以从主机端获取指示以指示客户端不再具有该总线的所有权。例如,NMI146可以将RGRANT取消断言以向非易失性存储器150指示非易失性存储器150不再具有DQ的所有权。
图7A-B图示可由客户端执行且与写事务关联的示例动作的流程图。参考图7A,在框710处,可以发送主机端有请求要发送的指示。例如,假定主机端是NMI146以及客户端是非易失性存储器150。在框710处,NMI146可以对ACT断言以向非易失性存储器150指示NMI146有请求要发送到非易失性存储器150。非易失性存储器150可以检测到ACT被断言并确定NMI146有请求要发送。
在框720处,发送正在通过总线发送请求的指示。例如,NMI146可以将RQRDY断言以向非易失性存储器150指示正在DQ上发送该请求。在框730处,通过总线发送请求和要写入的信息。例如,在断言RQRDY之后,NMI146可以通过DQ将该请求发送到非易失性存储器150。在发送请求之后,NMI146可以将RQRDY取消断言。NMI146然后可以通过QD将要写入的数据发送到非易失性存储器150。
在框740处,可以获取指示,其中该指示可以指示准备从客户端向主机端发送响应。例如,在非易失性存储器150中写入数据之后,非易失性存储器150可以将RRDY断言以请求对QD的访问来向NMI146发送响应。NMI146可以检测到RRDY已被断言并确定非易失性存储器150准备发送响应。
在框750(图7B)处,可以向客户端发送指示,以指示客户端已获授权总线的所有权。例如,检测到RRDY被断言之后,NMI146可以将RGRANT断言以向非易失性存储器150授权总线的所有权。
在框760处,可以通过总线获取响应。例如,非易失性存储器150可以检测到RGRANT被断言,并确定NMI146已向非易失性存储器150授权QD的所有权。非易失性存储器150可以通过QD向NMI146发送响应。NMI146可以从QD接收该响应,如上文描述。
在框770处,可以获取不再在总线上发送响应的指示。例如,在发送响应之后,非易失性存储器150可以在QDS上发送后导。NMI146可以检测到该后导,并确定不再在总线上发送该响应。
在框780处,可以发送指示,以指示客户端不再具有该总线的所有权。例如,NMI146可以将RGRANT取消断言以向非易失性存储器150指示非易失性存储器150不再具有DQ的所有权。
图8A-B图示可由客户端执行且与写事务关联的示例动作的流程图。参考图8A,在框810处,可以获取主机端有请求要发送的指示。例如,假定主机端是NMI146以及客户端是非易失性存储器150。NMI146可以将ACT断言以指示NMI146有请求要发送。非易失性存储器150可以检测到ACT被断言并确定NMI146有请求要发送。
在框820处,可以获取正在通过总线发送写请求的指示,以及在框830处,可以获取写请求和数据。例如,NMI146可以将RQRDY断言以指示正在DQ上发送请求。非易失性存储器150可以检测到RQRDY被断言,并从DQ读取该请求,如上文描述。NMI146可以将RQRDY取消断言以指示例如,已发送该请求的命令部分以及该请求的数据部分正在QD上被发送。非易失性存储器150可以检测到RQRDY被取消断言,并从DQ读取该数据,如上文描述。
在框840处,将数据写入非易失性存储器。例如,在获取该请求之后,非易失性存储器150可以处理该请求。此处,处理可以包括确定该请求是写请求。非易失性存储器150还可以基于该请求中可包含的地址来标识非易失性存储器150中要写入的位置。在从DQ读取数据之后,非易失性存储器150可以将数据写入到非易失性存储器150中所标识的位置。
在框850(图8B)处,可以发送指示,以指示准备发送对写请求的响应。例如,非易失性存储器150可以将RRDY断言以指示非易失性存储器150有响应要通过DQ发送。NMI146可以检测到RRDY已被断言并确定非易失性存储器150有响应要发送。
在框860处,可以获取指示,其中该指示可以指示总线的所有权已被授权客户端。此外,在框860处,可以由客户端向主机端发送响应。例如,在NMI146确定非易失性存储器150有响应要发送之后,NMI146可以将RGRANT断言以向非易失性存储器150授权DQ的所有权。非易失性存储器150可以检测到RGRANT被断言,并且确定非易失性存储器150具有DQ的所有权。在作出此确定之后,非易失性存储器150可以通过DQ将该响应发送到NMI146,如上文描述。
在框870处,可以发送指示,以指示不再在该总线上发送响应。例如,非易失性存储器150可以在DQS上发送后导以指示不再在DQ上发送响应。
在框880处,可以获取指示,以指示该总线的所有权不再授权客户端。例如,NMI146可以将RGRANT取消断言以向非易失性存储器150指示非易失性存储器150不再具有DQ的所有权。非易失性存储器150可以检测到RGRANT不再被断言,并且确定非易失性存储器150不再具有DQ的所有权。
图9图示可实现本文描述的多种技术的计算设备900的另一个示例实施例的框图。参考图9,计算设备900可以包括多种组件,例如,逻辑920、主存储装置930、辅助存储装置950、一个或多个输入装置960、一个或多个输出装置970和/或一个或多个通信接口980。
应该注意图9图示计算设备900的示例实施例。计算设备900的其他实施例可以包括比图9所示的组件更多的组件或更少的组件。再者,这些组件可以按不同于图9所示的方式来布置。
例如,在计算设备900的实施例中,辅助存储装置950可以被包含在提供“云”存储的远程地点处。此地点对于计算设备900是可通过通信网络,例如因特网来访问的。通信接口980可以用于将计算设备900与通信网络实现接口。
再有,应该注意计算设备900的其他实施例中包含的多种组件执行的功能可以采用不同于本文描述的方式分布在组件之间。
计算设备900可以包括使得计算设备900中的组件之间能够通信的输入/输出(I/O)总线910。这些组件可以包括例如,逻辑920、辅助存储装置950、一个或多个输入装置960、一个或多个输出装置970和/或一个或多个通信接口980。通信可以包括例如,通过I/O总线910在组件之间传递协议信号和/或数据。可以用于实现I/O总线910的I/O总线可以包括,例如,串行AT连接(SATA)、外围设备互连(PCI)、PCIexpress(PCI-e)、通用串行总线(USB)、小型计算机系统接口(SCSI)、串行连接的SCSI(SAS)或某种其他I/O总线。
输入装置960可以包括可用于将信息输入到计算设备900中的一个或多个装置。这些装置可以包括例如,键盘、计算机鼠标、麦克风、摄像头、跟踪球、陀螺仪装置(例如,陀螺仪)、微型鼠标、触控板、数控笔、绘图板、触摸屏、游戏杆(等长或等张)、指向杆(pointingstick)、加速仪、palm掌上电脑鼠标、脚用鼠标、定位器(puck)、眼球控制的装置、手指鼠标、光笔、光枪、神经装置、眼动跟踪装置、方向盘、磁轭(yoke)、拨盘、太空球、定向垫、跳舞毯、香皂鼠标、触感装置(hapticdevice)、触觉装置(tactiledevice)、神经装置、多点输入装置、离散指向装置和/或某种其他输入装置。
该信息可以包括可以使用例如计算机鼠标的指向装置输入到计算设备900中的空间(例如,连续且多维)数据。该信息还可以包括其他形式的数据,例如,可以使用键盘输入的文本。
输出装置970可以包括可输出来自计算设备900的信息的一个或多个装置。这些装置可以包括,例如,阴极射线管(CRT)、等离子显示装置、发光二极管(LED)显示装置、液晶显示(LCD)装置、真空荧光显示(VFD)装置、表面传导电子发射器显示(SED)装置、场发射显示(FED)装置、触感装置、触觉装置、打印机、扬声器、视频投影机、立体显示装置、绘图仪、触摸屏和/或某种其他输出装置。
输出装置970可以被例如逻辑920指令来输出来自计算设备900的信息。在输出装置970上输出信息可以包括例如,在输出装置970上呈示(例如,显示、打印)信息。该信息可以包括例如,文本、图形用户界面(GUI)元件(例如,窗口、widget和/或其他GUI元件)、音频(例如,音乐、声音)和/或可以由输出装置970输出的其他信息。
通信接口980可以包括用于将计算设备900与例如一个或多个通信网络实现接口且使得计算设备900能够与耦合到通信网络的一个或多个实体(例如,节点)通信的逻辑。通信网络可以包括例如,因特网、广域网(WAN)、局域网(LAN)、3G和/或4G(例如,4G长期演进(LTE))网络。
通信接口980可以包括一个或多个类收发器的机构,其可使计算设备900能够与耦合到通信网络的实体通信。通信接口980的示例可以包括内置网络适配器、网络接口卡(NIC)、个人计算机存储卡国际协会(PCMCIA)网卡、卡总线网络适配器、无线网络适配器、通用串行总线(USB)网络适配器、调制解调器和/或适于将计算设备100与通信网络实现接口的其他装置。
主存储装置930和/或辅助存储装置950可以包括一个或多个存储模块,例如上文描述的存储模块。计算设备900可以包括存储器总线990,存储器总线990可以使得主存储装置930中存储的信息能够在逻辑920与主存储装置930之间传递。该信息可以包括例如,可由逻辑920执行、操控和/或以其他方式处理的计算机可执行指令和/或数据。
主存储装置930可以对于逻辑920是可通过总线990访问的。主存储装置930可以是可存储信息的有形非瞬态存储装置。该信息可以包括可实现操作系统(OS)932和应用(APP)934或其多个部分的计算机可执行指令和/或数据。该信息可以由逻辑920执行、解释、操控和/或以其他方式处理。主存储装置930可以使用可存储该信息的一个或多个存储器装置来实现。这些存储器装置可以包括如上文描述的易失性和/或非易失性存储器装置。
OS932可以是可实现多种常规操作系统功能的常规操作系统,多种常规操作系统功能可以包括例如,(1)调度APP934的一个或多个部分在逻辑920上运行(例如,由逻辑920执行),(2)管理主存储装置930,以及(3)控制对计算设备900中的多种组件(例如,输入装置960、输出装置970、通信接口980、辅助存储装置950)和这些组件接收和/或传送的信息的访问。
可用于实现OS932的操作系统的示例可以包括Linux操作系统、MicrosoftWindows操作系统、Symbian操作系统、MacOS操作系统和Android操作系统。可以使用的Linux操作系统的发布是RedHat公司(Raleigh,NorthCarolina)提供的RedHatLinux。可以使用的MicrosoftWindows操作系统的版本包括Microsoft有限公司(Redmond,Washington)提供的MicrosoftWindowsMobile、MicrosoftWindows8、MicrosoftWindows7、MicrosoftWindowsVista和MicrosoftWindowsXP操作系统。Symbian操作系统由PLC公司(Dublin,Ireland)提供。MacOS操作系统由Apple有限公司(Cupertino,California)提供。Android操作系统由Google有限公司(MenloPark,California)提供。
APP934可以是可在计算设备900上在OS932的控制下执行的软件应用。APP934和/或OS932可以包含用于处理可以办卡在辅助存储装置950中存储信息的事务的供应。这些供应可以使用APP934和/或OS932中包含的数据和/或计算机可执行指令来实现。
辅助存储装置950可以是可存储计算设备900的信息的有形非瞬态存储装置。该信息可以包括例如,计算机可执行指令和/或数据。该信息可以由逻辑920执行、解释、操控和/或以其他方式处理。
辅助存储装置可以包括可以存储信息的一个或多个存储设备952。存储设备952对于逻辑920可以是可通过I/O总线910访问的。存储设备952可以是易失性或非易失性的。存储设备952的示例可以包括磁盘驱动器、光盘驱动器、随机存取存储器(RAM)盘驱动器、闪存驱动器、固体硬盘(SSD)和/或混合驱动器。该信息可以存储在存储设备952中包含一个或多个有形非瞬态计算机可读介质上。可包含在存储设备中的有形非瞬态计算机可读介质的示例可以包括磁盘、光盘、易失性存储器装置和/或非易失性存储器装置。
逻辑920可以包括用于解释、执行和/或以其他方式处理信息的处理逻辑(PL)924。该信息可以包括可存储在主存储装置930和/或辅助存储装置950中的信息。此外,该信息可以包括可通过一个或多个输入装置960和/或通信接口980获取(例如,读取、接收)的信息。
PL924可以包括多种多样化硬件。例如,该硬件可以包括一个或多个处理器、微处理器、场可编程门阵列(FPGA)、专用指令集处理器(ASEP)、专用集成电路(ASIC)、复杂可编程逻辑装置(CPLD)、图形处理单元(GPU)和/或可以例如解释、执行、操作和/或以其他方式处理信息的其他类型的处理逻辑的某种组合。逻辑920可以包括单个核或多个核。
逻辑920还可以包括可将处理逻辑与主存储装置930实现接口的接口逻辑(IL)924。IL924可以包括用于通过总线990来传递要在主存储装置930与逻辑920之间传递的信息的供应。该信息可以利用多种技术,如上文描述的技术来传递。
例如,在一个实施例中,主存储装置930可以包括对于逻辑920可通过总线990访问的非易失性存储器。IL924可以包含可用于使用多种技术,如上文描述的技术通过总线990在主存储装置930中包含的非易失性存储器与PL924之间通信信息的逻辑。IL924中可包含的逻辑可以包括,例如,状态机、总线收发器、寄存器和/或可用于使得非易失性存储器与PL924之间能够传递信息的其他逻辑。该信息可以包括,例如,请求和/或数据,如上文描述的。
前文对实施例的描述旨在提供说明和描述,而无意为穷举或将本发明限于所公开的具体形式。根据上文教导,修改和变化是可能的,或可以从本发明的实践中获得修改和变化。例如,虽然一系列动作在上文中是参考图5A-B、图6A-B、图7A-B和图8A-B来描述的,但是在其他实现中可以修改这些动作的次序。再者,不相关的动作可以并行地执行。
再有,除非另行指明,否则如本文所使用的术语“用户”理应广义地解释为包括例如,计算设备(例如,固定计算设备、移动计算设备)或计算设备的用户。
将显见到的是,本文描述的一个或多个实施例可以采用多种不同形式的软件和/或硬件来实现。用于实现本文描述的实施例的软件代码和/或专用硬件不是本发明的限制。因此,实施例的操作和行为并非参考特定软件代码和/或专用硬件来描述的–要理解技术人员能够基于本文描述设计软件和/或硬件来实现这些实施例。
再者,本发明的某些特征可以使用计算机可执行指令来实现,这些计算机可执行指令可以被处理逻辑,例如处理逻辑130或处理逻辑922来执行。这些计算机可执行指令可以被存储在一个或多个非瞬态有形计算机可读存储介质上。该介质可以是易失性或非易失性的,并且可以包括例如,DRAM、SRAM、闪存存储器、移动盘、不可移动盘等。
本文中使用的元件、动作或指令均不应视为对于本发明是不可或缺或基本的,除非明确地如此描述。再有,如本文所使用的,冠词“一个”理应包含一个或多个项。在特指仅一个项的情况中,使用术语“一个”或类似语言。再者,除非明确地另行指明,否则短语“基于”理应表示“至少部分地基于”。
本发明无意限于上文所公开的特定实施例,而是本发明将包含落在所附权利要求的范围内的任何和全部特定实施例及等效物。

Claims (24)

1.一种方法,包括:
发送正在发送请求的指示,所述指示通过存储器接口与非易失性存储器之间的总线发送到所述非易失性存储器;
通过所述总线将所述请求发送到所述非易失性存储器,所述请求包含标识所述非易失性存储器中包含要读取的数据的位置的地址;
通过所述总线获取所述非易失性存储器准备发送信息的指示;
通过所述总线发送对所述总线的访问已授权给所述非易失性存储器的指示;以及
通过所述总线从所述非易失性存储器获取所述信息,所述信息包含所述数据。
2.如权利要求1所述的方法,其中所述请求包含指示所述非易失性存储器要执行读操作的命令。
3.如权利要求1所述的方法,还包括:
通过所述总线发送所述存储器接口有请求要发送的指示。
4.如权利要求1所述的方法,还包括:
通过所述总线向所述非易失性存储器发送前导码,所述前导码供所述非易失性存储器用于准备从所述总线获取所述请求。
5.如权利要求1所述的方法,还包括:从所述总线获取选通信号;以及
使用所获取的选通信号从所述总线获取所述信息。
6.如权利要求1所述的方法,其中所述总线包括多个导线,以及其中在所述多个导线中的同一个导线上发送所述读请求以及获取来自所述非易失性存储器的信息。
7.如权利要求1所述的方法,还包括:
通过所述总线发送指示所述非易失性存储器具有所述总线的所有权的指示。
8.如权利要求1所述的方法,还包括:
从所述总线获取所述非易失性存储器不再在所述总线上发送所述信息的指示。
9.如权利要求8所述的方法,其中所述非易失性存储器不再在所述总线上发送所述信息的所述指示包含后导。
10.如权利要求8所述的方法,其中所述总线包括多个导线,以及其中在所述多个导线中的第一导线上获取所述非易失性存储器发送的所述信息,以及在所述多个导线中的第二导线上获取所述非易失性存储器不再发送所述信息的所述指示。
11.一种方法,包括:
在非易失性存储器处通过存储器接口与所述非易失性存储器之间的总线获取指示,所述指示指示正在通过所述总线从所述存储器接口以及向所述非易失性存储器发送请求;
在所述非易失性存储器处通过所述总线获取所述请求,所述请求包含标识所述非易失性存储器中包含要读取的数据的位置的地址;
基于所述地址,在所述非易失性存储器处标识所述非易失性存储器中要读取的位置;
从所述非易失性存储器中的所述位置读取数据;
通过所述总线从所述非易失性存储器向所述存储器接口发送指示,所述指示指示所述非易失性存储器准备向所述存储器接口发送信息;
通过所述总线从所述存储器接口获取所述总线的所有权已授权给所述非易失性存储器的指示;以及
通过所述总线将所述信息从所述非易失性存储器发送到所述存储器接口,所述信息包含所述数据。
12.如权利要求11所述的方法,还包括:
通过所述总线从所述存储器接口获取所述存储器接口有请求要发送的指示。
13.如权利要求11所述的方法,还包括:
通过所述总线向所述存储器接口发送指示不再通过所述总线发送信息的指示。
14.如权利要求11所述的方法,还包括:
通过所述总线向所述存储器接口发送前导码,所述前导码供所述存储器接口用于准备从所述总线获取所述信息。
15.如权利要求11所述的方法,其中所述总线包括多个导线,以及其中在所述多个导线中的同一个导线上获取所述请求和发送所述信息。
16.一种方法,包括:
发送正在发送请求的指示,所述指示通过存储器接口与非易失性存储器之间的总线发送到所述非易失性存储器;
通过所述总线将所述请求发送到所述非易失性存储器,所述请求包含用于标识非易失性存储器中要写入的位置的地址;
通过所述总线向所述非易失性存储器发送要写入的数据;
获取所述非易失性存储器有响应要通过所述总线发送到所述存储器接口的指示;
对所述非易失性存储器授权对所述总线的访问,所述访问通过所述总线来授权;以及
通过所述总线从所述非易失性存储器获取响应,所述响应包含与所述请求关联的状态。
17.如权利要求16所述的方法,还包括:
通过所述总线向所述非易失性存储器发送前导码,所述前导码供所述非易失性存储器用于准备从所述总线获取所述请求。
18.如权利要求16所述的方法,其中所述总线包括多个导线,以及其中在所述多个导线中的同一个导线上获取所述请求和发送所述数据。
19.一种方法,包括:
获取存储器接口正在向非易失性存储器发送请求的指示,所述指示通过所述存储器接口与所述非易失性存储器之间的总线来获取;
通过所述总线获取所述请求,所述请求包含地址;
从所述存储器接口获取要写入的数据,所述数据通过所述总线来获取;
基于所述地址来标识非易失性存储器中要写入的位置;
将所述数据写入到非易失性存储器中所标识的位置;
发送所述非易失性存储器准备发送响应的指示,所述指示通过所述总线从所述非易失性存储器发送到所述存储器接口;
通过所述总线获取所述总线的所有权已授权给所述非易失性存储器的指示;以及
通过所述总线将所述响应从所述非易失性存储器发送到所述存储器接口。
20.如权利要求19所述的方法,还包括:
通过所述总线向所述存储器接口发送前导码,所述前导码供所述存储器接口用于准备从所述总线获取所述响应。
21.如权利要求19所述的方法,其中所述总线包括多个导线,以及其中在所述多个导线中的同一个导线上获取所述请求和发送所述响应。
22.如权利要求19所述的方法,其中所述响应包含与将所述数据写入到非易失性存储器中所标识的位置关联的写操作的状态。
23.一种装置,其包括:
接口,所述接口用于:
发送正在向非易失性存储器发送请求的指示,所述指示通过所述接口与所述非易失性存储器之间的总线发送到所述非易失性存储器,
通过所述总线将所述请求发送到所述非易失性存储器,所述请求包含用于标识所述非易失性存储器中包含要读取的数据的位置的地址;
通过所述总线获取所述非易失性存储器准备发送信息的指示;
通过所述总线发送对所述总线的访问已授权给所述非易失性存储器的指示;以及
通过所述总线从所述非易失性存储器获取所述信息,所述信息包含所述数据。
24.如权利要求23所述的装置,其中所述接口还:
通过所述总线向所述非易失性存储器发送前导码,所述前导码供所述非易失性存储器用于准备从所述总线获取所述请求。
CN201380077745.1A 2013-07-26 2013-07-26 非易失性存储器接口 Active CN105308584B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2013/002080 WO2015011516A1 (en) 2013-07-26 2013-07-26 Non-volatile memory interface

Publications (2)

Publication Number Publication Date
CN105308584A true CN105308584A (zh) 2016-02-03
CN105308584B CN105308584B (zh) 2019-07-16

Family

ID=52391475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380077745.1A Active CN105308584B (zh) 2013-07-26 2013-07-26 非易失性存储器接口

Country Status (8)

Country Link
US (2) US9535829B2 (zh)
EP (1) EP3025239B1 (zh)
JP (1) JP6192192B2 (zh)
KR (1) KR101836219B1 (zh)
CN (1) CN105308584B (zh)
BR (1) BR112015032519B1 (zh)
RU (1) RU2623801C1 (zh)
WO (1) WO2015011516A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9535829B2 (en) 2013-07-26 2017-01-03 Intel Corporation Non-volatile memory interface
US10127184B2 (en) 2016-09-27 2018-11-13 Intel Corporation Low overheard high throughput solution for point-to-point link
US11194524B2 (en) 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
US11347477B2 (en) 2019-09-27 2022-05-31 Intel Corporation Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293495A (en) * 1992-06-29 1994-03-08 Xerox Corporation Method of addressing devices and transferring data on a bus
US5649209A (en) * 1993-01-29 1997-07-15 Nec Corporation Bus coupling information processing system for multiple access to system bus
US5878272A (en) * 1995-12-14 1999-03-02 International Business Machines Corp. Computer system having two DMA circuits assigned to the same address space
US20060218307A1 (en) * 2005-03-23 2006-09-28 Phil Van Dyke High performance register accesses
US20110022777A1 (en) * 2009-07-23 2011-01-27 Stec, Inc. System and method for direct memory access in a flash storage
US20130073795A1 (en) * 2011-09-21 2013-03-21 Misao HASEGAWA Memory device and method of controlling the same

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989251A (en) * 1988-05-10 1991-01-29 Diaphon Development Ab Hearing aid programming interface and method
EP1033855A1 (en) * 1999-03-03 2000-09-06 Deutsche Thomson-Brandt Gmbh Method and apparatus for transferring data on a bus to or from a device to be controlled by said bus
TW523672B (en) * 1999-04-23 2003-03-11 Via Tech Inc Bus system delayed transaction method and device applying the method
JP2004280191A (ja) * 2003-03-12 2004-10-07 Matsushita Electric Ind Co Ltd データ転送制御方法および装置
US20050071707A1 (en) 2003-09-30 2005-03-31 Hampel Craig E. Integrated circuit with bi-modal data strobe
JP2005242414A (ja) * 2004-02-24 2005-09-08 Sony Corp 情報処理装置および方法、並びにプログラム
RU2348992C2 (ru) * 2004-07-12 2009-03-10 Кабусики Кайся Тосиба Запоминающее устройство и ведущее устройство
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US7496719B2 (en) * 2005-07-26 2009-02-24 Intel Corporation Universal nonvolatile memory boot mode
US7694099B2 (en) * 2007-01-16 2010-04-06 Advanced Risc Mach Ltd Memory controller having an interface for providing a connection to a plurality of memory devices
JP2009015566A (ja) * 2007-07-04 2009-01-22 Panasonic Corp データ転送装置
KR101616097B1 (ko) * 2009-11-11 2016-04-28 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
US8310880B2 (en) * 2010-03-05 2012-11-13 248 Solid State, Inc. Virtual channel support in a nonvolatile memory controller
US9535829B2 (en) 2013-07-26 2017-01-03 Intel Corporation Non-volatile memory interface

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293495A (en) * 1992-06-29 1994-03-08 Xerox Corporation Method of addressing devices and transferring data on a bus
US5649209A (en) * 1993-01-29 1997-07-15 Nec Corporation Bus coupling information processing system for multiple access to system bus
US5878272A (en) * 1995-12-14 1999-03-02 International Business Machines Corp. Computer system having two DMA circuits assigned to the same address space
US20060218307A1 (en) * 2005-03-23 2006-09-28 Phil Van Dyke High performance register accesses
US20110022777A1 (en) * 2009-07-23 2011-01-27 Stec, Inc. System and method for direct memory access in a flash storage
US20130073795A1 (en) * 2011-09-21 2013-03-21 Misao HASEGAWA Memory device and method of controlling the same
CN103019970A (zh) * 2011-09-21 2013-04-03 株式会社东芝 存储装置及其控制方法

Also Published As

Publication number Publication date
EP3025239A4 (en) 2017-04-05
EP3025239B1 (en) 2018-12-26
KR101836219B1 (ko) 2018-04-19
BR112015032519B1 (pt) 2021-11-09
US20170212832A1 (en) 2017-07-27
US9535829B2 (en) 2017-01-03
US9910771B2 (en) 2018-03-06
WO2015011516A1 (en) 2015-01-29
CN105308584B (zh) 2019-07-16
JP6192192B2 (ja) 2017-09-06
JP2016525237A (ja) 2016-08-22
US20150032941A1 (en) 2015-01-29
EP3025239A1 (en) 2016-06-01
KR20160003839A (ko) 2016-01-11
BR112015032519A2 (pt) 2017-07-25
RU2623801C1 (ru) 2017-06-29

Similar Documents

Publication Publication Date Title
US8250283B1 (en) Write-distribute command for RAID mirroring
KR102395538B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US9250999B1 (en) Non-volatile random access memory in computer primary memory
US9740433B2 (en) Disabling a command associated with a memory device
US9280497B2 (en) Systems and methods for support of non-volatile memory on a DDR memory channel
CN105378642A (zh) 用于高性能和低成本的闪存转换层的系统和方法
US20140325148A1 (en) Data storage devices which supply host with data processing latency information, and related data processing methods
US8607003B2 (en) Memory access to a dual in-line memory module form factor flash memory
US20180089088A1 (en) Apparatus and method for persisting blocks of data and metadata in a non-volatile memory (nvm) cache
US10153015B2 (en) Managing disturbance induced errors
CN104583933A (zh) Gpu和fpga组件之间的直接通信
US20170242600A1 (en) Data storage device
KR20170121046A (ko) NVMe 인터페이스를 사용하는 장치에 커널 모드 액세스 및 사용자 모드 액세스를 동시에 제공하는 시스템 및 방법
US10769074B2 (en) Computer memory content movement
KR20160061703A (ko) 내부 카피 동작을 수행하는 메모리 장치
CN105308584A (zh) 非易失性存储器接口
CN109542337A (zh) 存储设备
EP4320508A1 (en) Method and apparatus to reduce nand die collisions in a solid state drive
KR102634776B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8683161B2 (en) Method and apparatus for increasing file copy performance on solid state mass storage devices
CN108519860B (zh) 一种ssd读命中的处理方法和装置
KR20190023196A (ko) 데이터 저장 장치
US9015388B2 (en) Controlling access to storage in a computing device
US10515007B2 (en) Technologies for remapping pending bit array read requests
TWI674531B (zh) 資料儲存裝置及操作該資料儲存裝置的方法

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