CN105027213A - 可编程地址映射和存储器访问操作 - Google Patents
可编程地址映射和存储器访问操作 Download PDFInfo
- Publication number
- CN105027213A CN105027213A CN201380074555.4A CN201380074555A CN105027213A CN 105027213 A CN105027213 A CN 105027213A CN 201380074555 A CN201380074555 A CN 201380074555A CN 105027213 A CN105027213 A CN 105027213A
- Authority
- CN
- China
- Prior art keywords
- address
- pad
- memory locations
- addressable memory
- order
- 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.)
- Pending
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/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/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了可编程地址映射和存储器访问操作。示例装置包括地址转换器,用以将第一主机物理地址转换成第一中间地址。示例装置还包括可编程地址解码器,用以将第一中间地址解码成存储器中的第一可寻址存储器位置的第一硬件存储器地址,所述可编程地址解码器接收第一命令以通过改变在第一中间地址和第二可寻址存储器位置的第二硬件存储器地址之间的映射而将第一主机物理地址与存储器中的第二可寻址存储器位置相关联。
Description
背景技术
计算***的处理器运行计算机程序的指令以在数据上执行操作。计算***的存储器存储可以由处理器访问的计算机程序和/或数据。为了允许存储和访问信息,计算***包括可寻址的存储器设备以执行用以在存储器设备中的特定所选位置处存储数据的写入操作以及从存储器设备中的特定所选位置读取数据。
附图说明
图1A是根据本公开的教导所构造的示例地址转换器和可编程地址解码器(PAD)。
图1B是具有存储器控制器的示例计算机***,所述存储器控制器具有图1A的地址转换器和PAD。
图1C描绘了图1B的存储器控制器以及图1A和1B的PAD的逻辑表示。
图1D描绘了使用与图1A和1B的地址转换器和PAD相组合的现有存储器控制器的示例。
图2和3图示了图1A-1D的示例地址转换器和示例PAD如何解码主机物理地址以访问可寻址存储器位置的阵列的示例方式。
图4A和4B图示了可以用于实现图1A、1B和1C的PAD的示例逻辑电路和状态机。
图5是图示了由图1A-1D以及图2-4的示例PAD用于执行写入操作的信号的时序图。
图6是图示了由图1A-1D以及图2-4的示例PAD用于执行读取操作的信号的时序图。
图7是图示了由图1A-1D以及图2-4的示例PAD用于执行上移操作的信号的时序图。
图8是图示了由图1A-1D以及图2-4的示例PAD用于执行下移操作的信号的时序图。
图9是图示了由图1A-1D以及图2-4的示例PAD用于执行重映射操作的信号的时序图。
图10是图示了由图1A-1D以及图2-4的示例PAD用于执行***操作的信号的时序图。
图11是图示了由图1A-1D以及图2-4的示例PAD用于执行删除操作的信号的时序图。
图12是图示了由图1A-1D以及图2-4的示例PAD用于执行部分上移操作的信号的时序图。
图13是图示了由图1A-1D以及图2-4的示例PAD用于执行部分下移操作的信号的时序图。
图14是表示可以被运行以从图1B的处理器接收并运行命令的示例机器可读指令的流程图。
图15是表示可以被运行以执行写入操作的示例机器可读指令的流程图。
图16是表示可以被运行以执行读取操作的示例机器可读指令的流程图。
图17是表示可以被运行以执行上移操作的示例机器可读指令的流程图。
图18是表示可以被运行以执行下移操作的示例机器可读指令的流程图。
图19是表示可以被运行以执行重映射激活操作的示例机器可读指令的流程图。
图20是表示可以被运行以执行重映射操作的示例机器可读指令的流程图。
图21是表示可以被运行以执行***操作的示例机器可读指令的流程图。
图22是表示可以被运行以执行删除操作的示例机器可读指令的流程图。
图23是表示可以被运行以执行部分上移操作的示例机器可读指令的流程图。
图24是表示可以被运行以执行部分下移操作的示例机器可读指令的流程图。
图25描绘了表示可以被运行以执行在图1A-1D以及图2-3的PAD处接收到的命令的示例机器可读指令的流程图。
具体实施方式
处理器访问计算***的存储器以运行计算机程序的指令来执行不同的操作。存储器基于不同的存储器架构和/或计算平台而在以不同的位长度可寻址的存储器设备中存储数据位。例如,存储器设备可以以字节(例如8位)或以不同大小的字(例如,16位、32位、64位、128位等等)可寻址。如本文所使用的,存储了一组可寻址的位(例如字节、字等等)的存储器位置被称为可寻址存储器位置。在一些实例中,处理器经由单独的存储器控制器而与存储器通信,所述存储器控制器管理在处理器和存储器之间的数据流。存储器控制器可以位于具有存储器控制器的存储器模块以及具有例如动态随机存取存储器(DRAM)和/或任何其它类型的易失性或非易失性存储器的诸如双列直插式存储器模块(DIMM)之类的存储器芯片上。在其它示例中,存储器控制器实现为被装配在计算***的主计算机印刷电路板(PCB)上的芯片。
存储器地址的三种类型包括逻辑(例如虚拟)地址、主机物理地址和硬件存储器地址(或存储器电路地址)。逻辑地址被程序用于执行存储器访问。逻辑地址对于将由软件用于从计算机***中的存储器的物理布局中访问存储器的抽象寻址而言是有用的。
处理器的存储器管理单元(MMU)通过使用转换后备缓冲器(TLB)来将逻辑地址转换成主机物理地址,以使得计算***可以以其对应于由软件使用的逻辑地址的主机物理地址来访问物理存储器。为了确定主机物理地址,TLB使用逻辑到物理存储器映射,其中物理存储器地址空间被映射到由软件可使用的逻辑地址。这样的逻辑到物理存储器映射允许在物理存储器的物理布置、布局、装配等中的改变而不使软件负担对记录物理存储器的主机物理地址中的改变的需要。代替地,处理器更新TLB中的逻辑到物理存储器映射以将逻辑地址重映射到新的/不同的主机物理地址。
在存储器访问请求期间,在处理器基于逻辑地址而确定了主机物理地址之后,处理器通过使用主机物理地址而向存储器控制器发送存储器访问请求。存储器控制器然后将主机物理地址解码成具有对应于主机物理地址的可寻址存储器位置的(一个或多个)存储器设备的硬件存储器地址或存储器电路地址。在本文公开的示例中,硬件存储器地址或存储器电路地址标识物理存储器模块、物理存储器阵列、物理存储器管芯/芯片、以及存储器管芯/芯片内的物理存储器设备位置(例如,位单元的可寻址的群组)。存储器控制器使用硬件存储器地址(或存储器电路地址)来访问存储器设备,以使得存储器设备可以确定管芯上存储器单元位置以控制内部字线和位线电路,其激活对应于由存储器控制器解码的主机物理地址的不同可寻址存储器位置的存储器位。在一些示例中,诸如在动态随机存取存储器(DRAM)管芯/芯片中,存储器可寻址的位置是通过将硬件地址解释为行地址(通过DRAM地址总线与行地址选通(RAS)同时传送的)和列地址(通过DRAM地址总线与列地址选通(CAS)同时传送的)而可访问的。
在现有***中,当处理器指定了主机物理地址时,存储器控制器使用静态数据结构而将主机物理地址解码成硬件存储器地址,所述静态数据结构将存储器设备的可寻址存储器位置与顺序的主机物理地址进行映射。
本文所公开的示例方法、装置和制品提供具有可编程操作的存储器控制器。特别地,本文公开的示例可以用于修改在由处理器指定的主机物理地址和存储器设备中的存储器可寻址位置的硬件存储器地址之间的映射。这样的映射修改可以通过使用本文所公开的示例在运行时期间、在***引导阶段期间和/或在存储器装配阶段期间动态地执行。
本文公开的示例包括地址转换器和可编程地址解码器(PAD)。在存储器访问请求期间,示例地址转换器从处理器(例如主机)接收物理存储器地址(例如主机物理存储器地址)。在接收到主机物理地址时,示例地址转换器将主机物理地址转换成PAD地址。PAD地址是由示例PAD在内部使用的逻辑中间地址(即,中间地址)。示例PAD从地址转换器接收PAD地址并且将PAD地址解码成与处理器所指定的主机物理地址相对应的可寻址存储器位置的硬件存储器地址。示例存储器控制器然后可以以与处理器所指定的主机物理地址相对应的经解码的硬件存储器地址来执行所请求的存储器访问操作,诸如向经解码的硬件存储器地址处的可寻址存储器位置写入或者从其读取。
在本文所公开的示例中,除了促进存储器访问之外,存储器控制器还基于来自处理器的命令而修改在主机物理地址和硬件存储器地址之间的地址映射。在所公开的示例中,存储器控制器通过改变哪些PAD地址对应于哪些硬件存储器地址来修改地址映射。例如,地址转换器修改PAD地址来改变在主机物理地址和经修改的PAD地址之间的映射,这使得主机物理地址被映射到不同的硬件存储器地址。因此,在主机物理地址和数据在存储器单元中被存储于的真实硬件存储器位置之间的存储器映射可以被存储器控制器处置,所述存储器控制器与处理器分离并且包括地址转换器和PAD。以此方式,处理器不需要管理对存储器单元中的数据的主机物理地址和实际硬件存储器存储位置的跟踪,从而允许处理器的资源被用于其它计算任务。
图1A是根据本公开的教导而构造的示例地址转换器102和示例可编程地址解码器(PAD)104的框图。
在图1B中,在根据本公开的教导而构造的示例计算机***106的示例存储器控制器100中示出地址转换器102和PAD 104。
在示例计算机***106中,存储器控制器100通信地耦合在处理器108(例如硬件处理器)和存储器设备110的阵列之间。在图示的示例中,处理器108运行一个或多个计算机程序的指令。示例处理器108与示例存储器控制器100通信以执行存储器访问并且指示存储器控制器100执行以下讨论的其它可编程操作。尽管示例存储器控制器100被示出为与示例处理器108分离,但是在其它示例中,存储器控制器100可以位于处理器108中,在计算机***106的存储器模块中,或与存储器设备110位于同处。
示例存储器设备110在存储器位单元中存储数据位。在图示的示例中,可以以对应于存储器设备110的可寻址数据宽度(例如,8位、16位、32位、64位、128位等等)的大长度来访问存储器位单元。在一些示例中,存储器控制器100在比可寻址的数据宽度(例如1KB、4KB、1MB等等)更大的数据块上进行操作。在图示的示例中,存储器设备110是随机存取存储器(RAM)设备,并且存储器设备110中的存储器位单元的可寻址数据宽度定义可寻址的存储器位置。在其它示例中,其它类型的存储器或者不同类型的存储器的组合可以用于实现存储器设备110。可寻址存储器位置的数据宽度(例如,8位、16位、32位、64位、128位等等)取决于计算机***106的特定架构和/或存储器设备110的架构。
示例地址转换器102被提供有用于与示例处理器108对接的逻辑。示例地址转换器102还被提供有用于与示例PAD 104对接的逻辑。示例地址转换器102从示例处理器108接收包括主机物理地址的存储器访问命令。示例地址转换器102将接收到的主机物理地址转换成对应的PAD地址并且将经转换的PAD地址提供给示例PAD 104。示例地址转换器102还将其它信息(例如命令)传输到示例PAD 104,如在以下进一步详细描述的,以使得PAD 104执行可编程操作。
示例PAD 104可以被逻辑地表示为逻辑PAD的阵列,如在图1C中图示的那样。每个逻辑PAD对示例存储器设备110的不同的可寻址存储器位置进行寻址。通过使用可以用于实现不同的逻辑PAD的可重配置或可编程逻辑(例如,可重编程的逻辑电路)来实现示例PAD 104。可替换地或附加地,可以通过使用诸如可重配置的查找表之类的数据结构来实现PAD 104。
图1C将图1A和1B的PAD 104图示为图1A和1B的示例存储器控制器100中的多个逻辑PAD 103。每个逻辑PAD 103(表示为逻辑PAD 103-0到103-n)具有对应的PAD地址,所述PAD地址对存储器设备110的一个特定的可寻址存储器位置120(表示为可寻址存储器位置120-0到120-n)进行寻址。在图示的示例中,为了运行命令,地址转换器102将经转换的PAD地址116连同命令一起广播到PAD 104(例如,发送到每个逻辑PAD 103)。接收经转换的PAD地址116的每个逻辑PAD 103执行由命令所指定的操作,如果命令适用于逻辑PAD 103的PAD地址116的话。
在图示的示例中,提供PAD地址修改器112以改变逻辑PAD 103的PAD地址116,以将PAD地址116重映射到不同的硬件存储器地址(表示为硬件存储器地址118-0到118-n)。例如,PAD地址修改器112可以对用于实现PAD 104的逻辑电路和/或查找表进行重编程。当逻辑PAD 103的PAD地址116被改变时,逻辑PAD 103仍与示例存储器设备110的相同的可寻址存储器位置120进行通信。然而,由于示例地址转换器102总是将特定的主机物理地址114转换成相同的PAD地址116,并且由于该相同的PAD地址116由PAD地址修改器112重映射到不同的硬件存储器地址118,所以PAD 104将地址转换器102所提供的PAD地址116解码成不同的硬件存储器地址118。以此方式,PAD地址修改器112和PAD 104改变在对应于不同的可寻址存储器位置120的硬件存储器地址118和主机物理地址114之间的映射。在一些示例中,PAD地址修改器112嵌入在每个逻辑PAD 103中。
本文所公开的示例可以用于将新的值***到可寻址存储器位置的阵列中,而不在可寻址存储器之间物理地移动任何值。本文所公开的示例还可以用于通过改变在主机物理地址和硬件存储器地址之间的映射而将值***到可寻址存储器位置的阵列中。例如,图2图示了阵列202,其具有存储对应的值{a,b,c,d,e,空(NULL),空,空}的八个可寻址存储器位置204-0到204-7。用于八个可寻址存储器位置204-0到204-7的硬件存储器地址(HAddr)分别是{0,1,2,3,4,5,6,7}。
图2图示了由示例地址转换器102转换成对应逻辑PAD 208-0到208-7的对应PAD地址(PAD Addr=0-7)(例如图1C的PAD地址116)的八个主机物理地址206-0到206-7{HPA=0,HPA=1,HPA=2,HPA=3,HPA=4,HPA=5,HPA=6,HPA=7}。在图2的图示的示例中,主机物理地址206-0到206-7类似于或等同于图1C的主机物理地址114,并且PAD地址(PAD Addr=0-7)类似于或等同于图1C的PAD地址116。逻辑PAD 208-0到208-7中的每一个表示图1C的逻辑PAD 103-0到103-n中的不同的一个。在图2的图示的示例中,主机物理地址206-0(HPA=0)被转换成对应于逻辑PAD 208-0的PAD地址0(PAD Addr=0),主机物理地址206-1(HPA=1)被转换成对应于逻辑PAD 208-1的PAD地址1(PAD Addr=1),主机物理地址206-2(HPA=2)被转换成对应于逻辑PAD 208-2的PAD地址2(PAD Addr=2),主机物理地址206-3(HPA=3)被转换成对应于逻辑PAD 208-3的PAD地址3(PAD Addr=3),主机物理地址206-4(HPA=4)被转换成对应于逻辑PAD 208-4的PAD地址4(PAD Addr=4),主机物理地址206-5(HPA=5)被转换成对应于逻辑PAD 208-5的PAD地址5(PAD Addr=5),主机物理地址206-6(HPA=6)被转换成对应于逻辑PAD 208-6的PAD地址6(PAD Addr=6),并且主机物理地址206-7(HPA=7)被转换成对应于逻辑PAD 208-7的PAD地址7(PAD Addr=7)。
这些PAD地址(PAD Addr=0-7)中的每一个被解码成对应的可寻址存储器位置204-0到204-7的硬件存储器地址(例如图1C的硬件存储器地址118-0到118-n),如图2中所示的那样。在图2的图示的示例中,PAD 104将逻辑PAD 208-0的PAD地址0(PAD Addr=0)解码成可寻址存储器位置204-0(HAddr=0),PAD 104将逻辑PAD 208-1的PAD地址1(PAD Addr=1)解码成可寻址存储器位置204-1(HAddr=1),PAD 104将逻辑PAD 208-2的PAD地址2(PAD Addr=2)解码成可寻址存储器位置204-2(HAddr=2),PAD 104将逻辑PAD 208-3的PAD地址3(PAD Addr=3)解码成可寻址存储器位置204-3(HAddr=3),PAD 104将逻辑PAD 208-4的PAD地址4(PAD Addr=4)解码成可寻址存储器位置204-4(HAddr=4),PAD 104将逻辑PAD 208-5的PAD地址5(PAD Addr=5)解码成可寻址存储器位置204-5(HAddr=5),PAD 104将逻辑PAD 208-6的PAD地址6(PAD Addr=6)解码成可寻址存储器位置204-6(HAddr=6),并且PAD 104将逻辑PAD 208-7的PAD地址7(PAD Addr=7)解码成可寻址存储器位置204-7(HAddr=7)。
图3图示了在示例PAD地址修改器112改变了逻辑PAD 103中的四个的PAD地址之后图2的八个主机物理地址306-0到306-7到PAD地址(PAD Addr=0-7)的转换以及将图2的PAD地址(PAD Addr=0-7)解码成硬件存储器地址(HAddr=0-7)。特别地,示例PAD地址修改器112将图2的逻辑PAD 208-2的PAD地址改变成对应于PAD Addr=3的新的逻辑PAD 308-2,将图2的逻辑PAD 208-3的PAD地址改变成对应于PAD Addr=4的新的逻辑PAD 308-3,将图2的逻辑PAD 208-4的PAD地址改变成对应于PAD Addr=5的新的逻辑PAD 308-5,并且将图2的逻辑PAD 208-5的PAD地址改变成对应于PAD Addr=2的新的逻辑PAD 308-5。在图3的图示的示例中,逻辑PAD 308-2到308-5表示由示例PAD地址修改器112所进行的以上PAD地址改变所产生的不同的逻辑PAD。
在图3的图示的示例中,主机物理地址206-0(HPA=0)被转换成PAD地址0(PAD Addr=0),其仍对应于逻辑PAD 208-0,主机物理地址206-1(HPA=1)被转换成PAD地址1(PAD Addr=1),其仍对应于逻辑PAD 208-1,主机物理地址206-6(HPA=6)被转换成PAD地址6(PAD Addr=6),其仍对应于逻辑PAD 208-6,主机物理地址206-7(HPA=7)被转换成PAD地址7(PAD Addr=7),其仍对应于逻辑PAD 208-7。
另外,PAD地址(PAD Addr=0-7)中的每一个被解码成对应的可寻址存储器位置204-0到204-7的硬件存储器地址(HAddr=0-7)(例如图1C中的硬件存储器地址118-0到118-n),如图3中所示的。在图3的图示的示例中,PAD 104将逻辑PAD 208-0的PAD地址0(PAD Addr=0)解码成可寻址存储器位置204-0(HAddr=0),PAD 104将逻辑PAD 208-1的PAD地址1(PAD Addr=1)解码成可寻址存储器位置204-1(HAddr=1),PAD 104将逻辑PAD 308-5的PAD地址2(PAD Addr=2)解码成可寻址存储器位置204-5(HAddr=5),PAD 104将逻辑PAD 308-2的PAD地址3(PAD Addr=3)解码成可寻址存储器位置204-2(HAddr=2),PAD 104将逻辑PAD 308-3的PAD地址4(PAD Addr=4)解码成可寻址存储器位置204-3(HAddr=3),PAD 104将逻辑PAD 308-4的PAD地址5(PAD Addr=5)解码成可寻址存储器位置204-4(HAddr=4),PAD 104将逻辑PAD 208-6的PAD地址6(PAD Addr=6)解码成可寻址存储器位置204-6(HAddr=6),并且PAD 104将逻辑PAD 208-7的PAD地址7(PAD Addr=7)解码成可寻址存储器位置204-7(HAddr=7)。
除了以上经修改的存储器映射之外,图1B和1C的存储器控制器100还将值“f”***到对应于逻辑PAD 308-5(PAD Addr=2)的可寻址存储器位置204-5(HAddr=5)中。通过使用类似于或等同于上述操作的操作,当处理器请求读取主机物理地址0、1、2、3、4和5中的数据时,所返回的值分别是“a”、“b”、“f”、“c”、“d”和“e”。本文所公开的示例通过使用相对很少或不使用数据访问来在可寻址存储器位置之间拷贝数据、通过使用来自处理器的相对很少的存储器管理资源或不使用存储器管理资源来实现该结果,并且以比现有存储器控制器所使用的相对更少的时间执行所请求的数据访问操作(例如***值“f”)。
图4A和4B图示了用于实现图1C、2和3的逻辑PAD 103的示例状态图400和示例逻辑电路401。在图示的示例中,逻辑电路401将PAD地址116解码成硬件存储器地址118。在图示的示例中,PAD 104被提供有示例地址转换器接口402(例如,以与图1A-1D的地址转换器102进行通信)以及示例存储器接口404(例如,以与图1A-1C的存储器设备110进行通信和/或与图1D的存储器控制器122进行通信)。示例地址转换器接口402包括命令线406(at_pad_cmd)、地址线(例如开始地址线)408(at_pad_addr)、子集结束地址线409(at_pad_addr_e)、数据写入线410(at_pad_data_wr)、数据读取线412(pad_ad_data_rd)以及确认线414(pad_at_ack)。
示例存储器接口404包括存储器地址线418(pad_loc_req)、存储器写入线420(pad_loc_write)、存储器数据写入线422(pad_loc_data_wr)、存储器确认线424(loc_pad_ack)以及存储器数据读取线426(loc_pad_data_rd)。
命令线406承载由示例PAD 104所处理的命令。在图4A和4B的示例中,示例命令是Nop(空操作)、写入、读取、上移、下移、重映射激活、重映射、***、删除、部分上移和部分下移。然而,除了图4A和4B的示例命令之外或替代于图4A和4B的示例命令还可以实现其它命令。Nop、上移、下移、***、删除、部分上移和部分下移命令是多逻辑PAD命令,这意味着它们被指导向多个示例逻辑PAD 103(图1C、2和3)。读取、写入、重映射激活和重映射命令是单逻辑PAD命令,这意味着它们仅仅被指导以选择示例逻辑PAD 103中的逻辑PAD 103。以下进一步详细地讨论这些命令。
地址线408承载PAD地址116。单逻辑PAD命令在地址线408上伴随有指定作为命令的目标的逻辑PAD 103的PAD地址的地址。在从示例处理器108接收了主机物理地址之后,示例地址转换器102将主机物理地址转换成PAD地址并且在地址线408上将该经转换的PAD地址发送到示例PAD 104。
子集结束地址线409承载与用于部分上移和部分下移命令的子集结束地址相对应的PAD地址116。当示例处理器108发送部分上移或部分下移命令时,处理器108还指定主机物理地址和长度。长度对应于要被上移或下移的PAD地址116的子集中PAD地址116的数目。在从示例处理器108接收到主机物理地址和长度之后,示例地址转换器102将主机物理地址转换成PAD地址并且在地址线408上将该经转换的PAD地址发送到示例PAD 104。示例地址转换器102还通过将所述长度加到经转换的PAD地址并且减去一而确定要被包括在上移或下移命令中的与PAD地址116的子集中的最后的地址相对应的子集结束PAD地址。示例地址转换器然后在子集结束地址线409上将该子集结束PAD地址发送到示例PAD 104。
数据写入线410承载基于对应的写入或***命令而要写入到示例存储器设备110的数据。数据读取线412承载包括基于对应的读取命令而从示例存储器设备110读取的数据的数据。确认线414承载在逻辑PAD 103执行了写入、读取、***或重映射命令之后由示例逻辑PAD 103返回的确认信号。确认线414上的确认信号证实:由写入、读取、***或重映射命令所促使的操作完成。
Nop命令(CMD_NOP)是用于没有操作的命令,并且使得示例PAD 104不执行操作。如在图4B的状态图400中所示的,CMD_NOP使得示例PAD 104保持在空闲状态(S_IDLE)430中。当尚未指定其它命令时使用Nop命令。
写入命令(CMD_WR)用于将数据写入到示例存储器设备110。当示例处理器108将数据写入到示例可寻址存储器位置120时,处理器108指定主机物理地址以及要写入到对应于该主机物理地址的可寻址存储器位置120的数据值。示例地址转换器102将所指定的主机物理地址转换成PAD地址。示例地址转换器102然后发送写入命令(CMD_WR)、经转换的PAD地址以及要写入到具有经转换的PAD地址的逻辑PAD 103的数据。被定为目标的逻辑PAD 103然后将PAD地址解码成硬件存储器地址并且将数据写入到硬件存储器地址处的对应的可寻址存储器位置120。所有其它逻辑PAD 103简单地忽略所述命令,因为经转换的PAD地址未被解码成其PAD地址。
在图4B的示例中,当PAD 104将写入命令和经解码的硬件存储器地址(CMD_WR && H_addr_eq)发送到对应的可寻址存储器位置120时,状态机400从空闲状态(S_IDLE)430转变到写入状态(S_WR)532。当PAD 104在确认线414(loc_pad_ack)上返回确认信号时,示例状态机400然后从写入状态(S_WR)432转变回到空闲状态(S_IDLE)430。
图5示出针对写入命令(CMD_WR)的时序图。在第一时钟周期500上,地址转换器102(图1A-1C)在命令线506(at_pad_cmd)上传送写入命令(CMD_WR),地址转换器102在地址线408(at_pad_addr)上传送PAD地址(ff1)并且地址转换器102在数据写入线410(at_pad_wr)上传送数据(#ab50aced)。在数据被目标示例逻辑PAD 103写入到对应的示例存储器设备110之后,逻辑PAD 103在确认线414(loc_pad_ack)上返回确认信号。
返回到图4B,读取命令(CMD_RD)用于从示例存储器设备110读取数据。当示例处理器108从示例可寻址存储器位置120读取数据时,处理器108指定要从其中读取数据的主机物理地址。示例地址转换器102将所指定的主机物理地址(例如,图1C和1D的主机物理地址114)转换成PAD地址(例如,图1C和1D的PAD地址116)。示例地址转换器102然后将读取命令(CMD_RD)和经转换的PAD地址发送到具有经转换的PAD地址的逻辑PAD 103。被定为目标的逻辑PAD 103然后将PAD地址解码成硬件存储器地址(例如图1C的硬件存储器地址118)并且从硬件存储器地址处的对应的可寻址存储器位置120读取数据。所有其它逻辑PAD 103简单地忽略所述命令,因为经转换的PAD地址未被解码成其PAD地址。
在图4B的示例中,当PAD 104将读取命令和经解码的硬件存储器地址(CMD_RD && H_addr_eq)发送到对应的可寻址存储器位置120时,状态机400从空闲状态(S_IDLE)430转变成读取状态(S_RD)438。当PAD 104在确认线414(loc_pad_ack)上返回确认信号时,示例状态机400然后从读取状态(S_RD)438转变回到空闲状态(S_IDLE)430。
图6示出针对读取命令(CMD_RD)的时序图。在第一时钟周期600上,地址转换器102(图1A-1C)在命令线406(at_pad_cmd)上传送读取命令(CMD_RD)并且地址转换器102在地址线408(at_pad_addr)上传送PAD地址(8ef)。在数据被目标示例逻辑PAD 103从对应的示例存储器设备110读取之后,逻辑PAD 103在确认线414(loc_pad_ack)上返回确认信号。
返回到图4B,上移命令(CMD_SHIFT_UP)用于上移所有逻辑PAD 103的PAD地址(例如,图1C和1D的PAD地址116)。为了运行上移,示例地址转换器102将上移命令(CMD_SHIFT_UP)发送到所有逻辑PAD 103。每个逻辑PAD 103然后使其PAD地址116增加一。在图示的示例中,上移命令(CMD_SHIFT_UP)支持卷绕(wrapping),其中在接收到上移命令(CMD_SHIFT_UP)时,具有最高PAD地址的逻辑PAD 103将其PAD地址设置成最低PAD地址。如在图5B的状态图400中所示的,CMD_SHIFT_UP使得示例PAD 104保持在空闲状态(S_IDLE)430中。这是单周期操作并且因为没有新数据被存储,所以没有应答被发送。
图7示出针对上移命令(CMD_SHIFT_UP)的时序图。在第一时钟周期700上,地址转换器102(图1A-1C)在命令线506(at_pad_cmd)上传送上移命令(CMD_SHIFT_UP)。
返回到图4B,下移命令(CMD_SHIFT_DN)用于下移所有逻辑PAD 103的PAD地址116。为了运行下移,示例地址转换器102将下移命令(CMD_SHIFT_DN)发送到所有逻辑PAD 103。每个逻辑PAD 103然后使其PAD地址116减小一。在图示的示例中,下移命令(CMD_SHIFT_DN)支持卷绕,其中在接收到下移命令(CMD_SHIFT_DN)时,具有最低PAD地址的逻辑PAD 103将其PAD地址设置成最高PAD地址。如在图4B的状态图400中所示的,CMD_SHIFT_DN使得示例PAD 104保持在空闲状态(S_IDLE)430中。这是单周期操作并且因为没有新的数据被存储,所以没有应答被发送。
图8示出针对下移命令(CMD_SHIFT_DN)的时序图。在第一时钟周期800上,地址转换器102(图1A-1C)在命令线406(at_pad_cmd)上传送下移命令(CMD_SHIFT_DN)。
返回到图4B,重映射激活命令(CMD_REMAP_ACTIVATE)和重映射命令(CMD_REMAP)用于重映射两个或更多逻辑PAD 103的PAD地址116。为了运行重映射激活命令(CMD_REMAP_ACTIVATE),处理器指定要重映射的两个或更多主机物理地址114。示例地址转换器102将所指定的主机物理地址114转换成PAD地址116。示例地址转换器102然后将重映射激活命令(CMD_REMAP_ACTIVATE)和经转换的PAD地址116发送到具有经转换的PAD地址116的逻辑PAD 103。被定为目标的逻辑PAD 103然后将PAD地址116解码成硬件存储器地址118,并且在逻辑PAD 103上设置重映射准备就绪(ready)标记。重映射准备就绪标记指示示例逻辑PAD 103处于重映射模式中以避免在重映射之后具有在给定时间具有相同PAD地址116的多于一个元件。
在图4B的示例中,当PAD 104发送重映射激活命令和经解码的硬件存储器地址(CMD_REMAP_ACTIVATE && H_Addr_eq)时,状态机400从空闲状态(S_IDLE)430转变到重映射激活状态(S_REMAP_ACT)436。
在运行了重映射激活命令(CMD_REMAP_ACTIVATE)之后,运行重映射命令(CMD_REMAP)。为了运行重映射命令(CMD_REMAP),处理器指定要被重映射的第一主机物理地址114,后面是要映射到的第二主机物理地址114。示例地址转换器102将所指定的主机物理地址114转换成对应的PAD地址116。示例地址转换器102然后将重映射命令(CMD_REMAP)和经转换的PAD地址116发送到具有经转换的PAD地址116的逻辑PAD 103。被定为目标的逻辑PAD 103然后将PAD地址116解码成硬件存储器地址118并且将对应于第一处理器指定的主机物理地址114的第一经转换的PAD地址116重映射到对应于第二处理器指定的主机物理地址114的第二经转换的PAD地址116。
在图4B的示例中,当PAD 104发送重映射命令和经解码的硬件存储器地址(CMD_REMAP && H_addr_eq)时,状态机400从重映射激活状态(S_REMAP_ACT)436转变到重映射状态(S_REMAP)434。
图9示出针对重映射激活命令(CMD_REMAP_ACTIVATE)和重映射命令(CMD_REMAP)的时序图。在第一时钟周期900上,地址转换器102(图1A-1C)在命令线406(at_pad_cmd)上传送重映射激活命令(CMD_REMAP_ACTIVATE),并且地址转换器102在地址线408(at_pad_addr)上传送第一PAD地址(66d)。在第二时钟周期902上,地址转换器102继续在命令线406(at_pad_cmd)上传送重映射激活命令(CMD_REMAP_ACTIVATE),并且地址转换器102在地址线408(at_pad_addr)上传送第二PAD地址(c0a)。在第三时钟周期904上,地址转换器102在命令线406(at_pad_cmd)上传送重映射(CMD_REMAP)命令,并且地址转换器102在地址线408(at_pad_addr)上传送第一PAD地址(66d)。在第四时钟周期906上,地址转换器102在命令线406(at_pad_cmd)上传送Nop命令(CMD_NOP),并且地址转换器102在地址线408(at_pad_addr)上传送第二PAD地址(c0a)。在第五时钟周期906上,地址转换器102在命令线406(at_pad_cmd)上传送重映射命令(CMD_REMAP),并且地址转换器102在地址线408(at_pad_addr)上传送第二PAD地址(c0a)。在第六时钟周期908上,地址转换器102在命令线406(at_pad_cmd)上传送Nop命令(CMD_NOP),并且地址转换器102在地址线408(at_pad_addr)上传送第一PAD地址(66d)。在改变了逻辑PAD 103的PAD地址116之后,逻辑PAD 103在确认线414(loc_pad_ack)上返回确认信号,以指示重映射操作的成功完成。
返回到图4B,***命令(CMD_INSERT)用于在可寻址存储器位置的阵列中的给定可寻址存储器位置120处***数据值。为了将值***到可寻址存储器位置120中,示例处理器108传输***命令(CMD_INSERT)连同要***的数据值以及在其中要进行***的主机物理地址114。示例地址转换器102将所指定的主机物理114地址转换成对应的PAD地址116并且向逻辑PAD 103中的每一个传输经转换的PAD地址116、数据值和***命令(CMD_INSERT)。
当逻辑PAD 103接收到***命令(CMD_INSERT)时,如果逻辑PAD 103的PAD地址116小于所指定的PAD地址116,则逻辑PAD 103不做任何事。如果接收到***命令(CMD_INSERT)的逻辑PAD 103的PAD地址116是逻辑PAD 103的阵列的最后的PAD地址116,则逻辑PAD 103将其PAD地址116设置成伴随***命令(CMD_INSERT)的PAD地址116,并且将伴随***命令(CMD_INSERT)的数据值写入到与逻辑PAD 103相关联的存储器设备110。否则,如果接收***命令(CMD_INSERT)的逻辑PAD 103的PAD地址116大于或等于伴随***命令(CMD_INSERT)的PAD地址116,则逻辑PAD 103的PAD地址116增加一。
在图4B的示例中,当PAD 104将***命令和与逻辑PAD 103的阵列的最后的PAD地址116相对应的经解码的硬件地址(CMD_INSERT && H_addr_e_eq)发送到对应的可寻址存储器位置120时,或者当PAD 104将***命令和大于或等于对所指定的PAD地址116的对应物的经解码的硬件地址(CMD_INSERT && (H_addr_eq)||H_addr_gr)发送到对应的可寻址存储器位置120时,状态机400从空闲状态(S_IDLE)430转变到***状态(S_INSERT)400。当PAD 140在确认线414(loc_pad_ack)上返回确认信号时,示例状态机400然后从***状态(S_INSERT)440转变回到空闲状态(S_IDLE)430。
图10示出针对***命令(CMD_INSERT)的时序图。在第一时钟周期1000上,地址转换器102(图1A-1C)在命令线406(at_pad_cmd)上传送***命令(CMD_INSERT),地址转换器102在地址线408(at_pad_addr)上传送PAD地址(5db),并且地址转换器102在数据写入线410(at_pad_wr)上传送数据(*ad5 e177 0c33 5339)。在数据被适当的逻辑PAD 103写入之后,逻辑PAD 103在确认线414(loc_pad_ack)上返回确认信号。
返回到图4B,删除命令(CMD_DELETE)用于从可寻址存储器位置的阵列中移除在给定可寻址存储器位置120处的数据值。为了从可寻址存储器位置120删除值,示例处理器108传输删除命令(CMD_DELETE)连同在其中将发生删除的主机物理地址114。示例地址转换器102将所指定的主机物理地址114转换成对应的PAD地址116并且将经转换的PAD地址116和删除命令(CMD_DELETE)传输到逻辑PAD 103中的每一个。
当逻辑PAD 103接收到删除命令(CMD_DELETE)时,如果逻辑PAD 103的PAD地址116小于所指定的PAD地址116,则逻辑PAD 103不做任何事。如果接收到删除命令(CMD_DELETE)的逻辑PAD 103的PAD地址116与伴随删除命令(CMD_DELETE)的PAD地址116相同,则逻辑PAD 103的PAD地址116被设置成逻辑PAD 103的阵列中的最大地址。否则,如果接收到删除命令(CMD_DELETE)的逻辑PAD 103的PAD地址116大于伴随删除命令(CMD_DELETE)的PAD地址116,则逻辑PAD 103的PAD地址116减小一。如在图4B的状态图400中所示的,CMD_DELETE使得示例PAD 104保持在空闲状态(S_IDLE)430中。
图11示出针对删除命令(CMD_DELETE)的时序图。在第一时钟周期1100上,地址转换器102(图1A-1C)在命令线406(at_pad_cmd)上传送删除命令(CMD_DELETE)并且地址转换器102在地址线408(at_pad_addr)上传送PAD地址(3db)。
返回到图4B,部分上移命令(CMD_SHIFT_UP_P)用于上移逻辑PAD 103的子集的PAD地址(例如,图1C和1D的PAD地址116)。为了运行部分上移,示例处理器108指定在其中将开始上移的主机物理地址以及与要上移的可寻址存储器位置120的数目相对应的长度。示例地址转换器102将所指定的主机物理地址转换成PAD地址并且通过将所述长度加到经转换的PAD地址并且减一(例如(“长度”+“经转换的PAD地址”)-1)来确定子集结束PAD地址。示例地址转换器102然后将部分上移命令(CMD_SHIFT_UP_P)、经转换的PAD地址和所确定的子集结束PAD地址发送到所有逻辑PAD 103。
当逻辑PAD 103接收到部分上移命令(CMD_SHIFT_UP_P)时,如果逻辑PAD 103的PAD地址小于所指定的PAD地址或大于子集结束PAD地址,则逻辑PAD 103不做任何事。如果接收到部分上移命令(CMD_SHIFT_UP_P)的逻辑PAD 103的PAD地址116等于子集结束PAD地址,则逻辑PAD 103将其PAD地址设置成逻辑PAD 103的阵列的所指定的PAD地址116。如果接收到部分上移命令的逻辑PAD 103的PAD地址116大于或等于所指定的PAD地址但是小于所确定的子集结束PAD地址,则逻辑PAD 103使其PAD地址增加一。如在图4B的状态图400中所示的,CMD_SHIFT_UP_P使得示例PAD 104保持在空闲状态(S_IDLE)430中,因为它是单周期命令。
图12示出针对部分上移命令(CMD_SHIFT_UP_P)的时序图。在第一时钟周期1200上,地址转换器102(图1A-1C)在命令线406(at_pad_cmd)上传送部分上移命令(CMD_SHIFT_UP_P),地址转换器102在地址线408(at_pad_addr)上传送地址(75d),并且地址转换器102基于子集结束地址线509(at_pad_addr_e)上的23f的长度而传送子集结束地址(75d+23f-1=99B)。
返回到图4B,部分下移命令(CMD_SHIFT_DN_P)用于下移逻辑PAD 103的子集的PAD地址(例如,图1C和1D的PAD地址116)。为了运行部分下移,示例处理器108指定在其中将开始下移的主机物理地址以及与要下移的可寻址存储器位置120的数目相对应的长度。示例地址转换器102将所指定的主机物理地址转换成PAD地址并且通过将所述长度加到经转换的PAD地址并且减一(例如,“长度”+“经转换的PAD地址”)-1)而确定子集结束PAD地址。示例地址转换器102然后将部分下移命令(CMD_SHIFT_DN_P)、经转换的PAD地址和所确定的子集结束PAD地址发送到所有逻辑PAD 103。
当逻辑PAD 103接收到部分下移命令(CMD_SHIFT_DN_P)时,如果逻辑PAD 103的PAD地址小于所指定的PAD地址或大于子集结束PAD地址,则逻辑PAD 103不做任何事。如果接收到部分下移命令(CMD_SHIFT_DN_P)的逻辑PAD 103的PAD地址116等于所指定的PAD地址,则逻辑PAD 103将其PAD地址设置成子集结束PAD地址。如果接收到部分下移命令的逻辑PAD 103的PAD地址116大于所指定的PAD地址但是小于或等于所确定的子集结束PAD地址,则逻辑PAD 103使其PAD地址减小一。如图4B的状态图400中所示,CMD_SHIFT_DN_P使得示例PAD 104保持在空闲状态(S_IDLE)430中,因为它是单周期命令。
图13示出针对部分下移命令(CMD_SHIFT_DN_P)的时序图。在第一时钟周期1300上,地址转换器102(图1A-1C)在命令线406(at_pad_cmd)上传送部分下移命令(CMD_SHIFT_DN_P),地址转换器102基于2b4的长度而在地址线408(at_pad_addr)上传送地址(4cf+2b4-1=782),并且地址转换器102在子集结束地址线409(at_pad_addr_e)上传送子集结束地址(2b4)。
除了在图4B中所指定的命令之外,示例存储器控制器100还可以被编程以接收和处理通过使用PAD地址而改变在主机物理地址和硬件存储器地址之间的映射的其它命令。
在图示的示例中,本文描述的命令中的每一个由处理器108发送并且由PAD 104接收以将物理地址的映射卸载到PAD 104并且以增加存储器操作的性能,这通过将PAD 104编程为执行这样的存储器操作而进行。例如,PAD 104可以对用于访问存储器设备110的示例阵列的地址映射进行重排序以减少在存储器设备的可寻址存储器位置之间的数据移动和拷贝。在一些示例中,处理器108和存储器控制器100可以被实现使得除了本文描述的命令之外,还有其它命令由处理器108发送并且由存储器控制器100接收以使得PAD 104改变在由处理器108所指定的主机物理地址114和示例存储器设备110的硬件存储器地址118之间的映射。
在图1B和1C的图示的示例中,地址转换器102、PAD 104和PAD地址修改器112位于存储器控制器100中。在如图1D中所示的示例中,PAD 104将PAD地址116解码成辅物理地址117(117-0到117-n)而不是硬件存储器地址118。在这样的示例中,地址转换器102、PAD 104和PAD地址修改器112位于存储器控制器122外部。在图1D的图示的示例中,PAD 104将经解码的辅物理地址117发送到存储器控制器122,所述存储器控制器122通过使用现有技术而将辅物理地址117解码成存储器124中的硬件存储器地址118。在本文中结合图4-25所公开的示例命令和方法可以通过使用图1D的示例配置而被实现。在这样的示例中,PAD 104确定图1D的辅物理地址117而不是硬件存储器地址118。
虽然已经在图1A、1B、1C和1D中图示了实现存储器控制器100的示例方式,但是图1A、1B、1C和/或1D中图示的元件、过程和/或设备中的一个或多个可以被组合、划分、重布置、省略、消除和/或以任何其它方式实现。此外,图1A、1B、1C和/或1D的示例地址转换器102、示例PAD 104、示例PAD地址修改器112、示例存储器设备110和/或更一般地示例存储器控制器100可以通过硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。因而,例如,图1A、1B、1C和/或1D的示例地址转换器102、示例PAD 104、示例PAD地址修改器112、示例存储器设备110和/或更一般地示例存储器控制器100中的任一个可以由(一个或多个)电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑设备((一个或多个)PLD)、(一个或多个)微处理器、(一个或多个)硬件处理器和/或(一个或多个)现场可编程逻辑设备((一个或多个)FPLD)等等来实现。当本专利的***或装置权利要求中的任一个被理解成覆盖纯粹软件和/或固件实现方式时,图1A、1B、1C和/或1D的示例地址转换器102、示例PAD 104、示例PAD地址修改器112、示例存储器设备110和/或更一般地示例存储器控制器100中的至少一个由此被明确地定义成包括存储软件和/或固件的有形计算机可读存储介质,诸如存储器、DVD、CD、Blu-ray(蓝光)等等。仍另外地,图1A、1B、1C和/或1D的示例地址转换器102、示例PAD 104、示例地址转换器102、示例PAD 104、示例PAD地址修改器112、示例存储器设备110和/或更一般地示例存储器控制器100可以包括任何或全部图示的元件、过程和设备的多于一个。
在图14-25中示出了表示用于实现图1A、1B、1C、1D、2、3和4的示例地址转换器102、示例PAD 104和示例PAD地址修改器112的示例机器可读指令的流程图。在这些示例中,机器可读指令包括用于由处理器运行的程序。程序可以以被存储在有形计算机可读介质(诸如与处理器相关联的CD-ROM、软盘、硬驱动装置、数字通用盘(DVD)、蓝光盘或存储器)上的软件来体现,但是整个程序和/或其部分可以可替换地由除了处理器之外的设备运行和/或以固件或专用硬件来体现。此外,尽管参照图14-25中图示的流程图描述了示例程序,但是可以可替换地使用实现示例地址转换器102、示例PAD 104和示例PAD地址修改器112的许多其它方法。例如,块的运行次序可以被改变,和/或所描述的块中的一些可以被改变、消除或组合。
如以上所提及的,可以通过使用被存储在有形计算机可读介质上的经编码的指令(例如计算机可读指令)来实现图14-25的示例过程,所述有形计算机可读介质诸如硬盘驱动装置、闪速存储器、只读存储器(ROM)、光盘(CD)、数字通用盘(DVD)、高速缓存、随机存取存储器(RAM)和/或其中在任何持续时间内(例如,用于延长的时间段、永久地、短暂的时刻、用于临时地缓冲和/或用于信息的高速缓存)存储信息的任何其它存储介质。如本文中所使用的,术语有形计算机可读介质被明确地定义成包括任何类型的计算机可读存储装置并排除传播信号。附加地或可替换地,可以通过使用被存储在非暂时性计算机可读介质上的经编码的指令(例如计算机可读指令)来实现图14-25的示例过程,所述非暂时性计算机可读介质诸如硬盘驱动装置、闪速存储器、只读存储器、光盘、数字通用盘、高速缓存、随机存取存储器和/或其中在任何持续时间内(例如,用于延长的时间段、永久地、短暂的时刻、用于临时地缓冲和/或用于信息的高速缓存)存储信息的任何其它存储介质。如本文中所使用的,术语非暂时性计算机可读介质被明确定义成包括任何类型的计算机可读介质并且排除传播信号。如本文中所使用的,当术语“至少”被用作权利要求的前序中的过渡术语时,其以与术语“包括”是开放式的相同方式是开放式的。因而,在其前序中将“至少”用作过渡术语的权利要求可以包括除了在权利要求中明确陈述的那些之外的元素。
图14描绘了用以执行在图1A-1D和2-3的PAD 104处接收到的命令的示例方法的流程图。最初,PAD 104确定它是否已经接收到重置(块1402)。例如,处理器108可以在引导过程期间发布重置以初始化存储器。如果PAD 104已经接收到重置(块1402),则PAD 104通过将示例逻辑PAD 103(图1C和1D)的PAD地址116(图1C和1D)重置(块1404)成图1C的硬件存储器地址118(或重置成图1D的辅物理地址117)而运行重置。
示例PAD 104然后确定它是否已经接收到命令(块1406)。例如,PAD 104确定它是否已经通过地址转换器102从处理器108接收到命令(例如,Nop、写入、读取、上移、下移、重映射激活、重映射、***、删除、部分上移、部分下移)。当示例PAD 104接收到命令(块1406)时,PAD 104运行如以上结合图4-13所描述的命令(块1408)。以下结合图15-24来描述用于在块1408处运行不同命令的示例方法。
如果在块1406处未接收到命令,或在块1408处运行了接收到的命令之后,PAD 104确定是否继续针对命令而进行监视(块1410)。如果PAD 104应当继续针对命令而进行监视(块1410),则控制返回到块1406。否则,图14的示例方法结束。
图15是表示用以通过使用图1A-1D和2-4的示例地址转换器102和示例PAD 104而运行写入命令(CMD_WR)的示例方法的流程图。图15的示例方法可以用于实现图14的块1408以运行写入命令。当示例PAD 104对写入命令进行解码(块1502)时,图15开始。示例地址转换器102将写入命令中指定的主机物理地址转换成PAD地址(块1504)。例如,地址转换器102可以将图1C和1D的主机物理地址114转换成图1C和1D的PAD地址116。对应于经转换的PAD地址116的示例逻辑PAD 103(图1C和1D)将PAD地址116解码成硬件存储器地址118(块1506)。例如,逻辑PAD 103可以将从地址转换器102接收到的PAD地址116解码成可寻址存储器位置120(图1C)的对应的硬件存储器地址118(图1C)。可替换地,逻辑PAD 103将PAD地址116解码成图1D的辅物理地址117。示例PAD 104将接收到的写入命令中指定的值写入到可寻址存储器位置120(块1508)。示例PAD 104向处理器108返回确认通信(块1510)。图16的示例方法然后返回到诸如图14的示例方法之类的调用过程或功能,并且图15的示例方法结束。
图16是表示用以通过使用图1A-1D和2-4的示例地址转换器102和示例PAD 104而运行读取命令(CMD_RD)的示例方法的流程图。图16的示例方法可以用于实现图14的块1408以运行读取命令。当示例PAD 104对读取命令进行解码(块1602)时,图16开始。示例地址转换器102将读取命令中指定的主机物理地址转换成PAD地址(块1604)。例如,地址转换器102可以将图1C和1D的主机物理地址114转换成图1C和1D的PAD地址116。对应于经转换的PAD地址的示例逻辑PAD 103(图1C和1D)将PAD地址解码成硬件存储器地址(块1606)。例如,逻辑PAD 103可以将从地址转换器102接收到的PAD地址116解码成可寻址存储器位置120(图1C)的对应的硬件存储器地址118。可替换地,逻辑PAD 103将PAD地址116解码成图1D的辅物理地址117。示例PAD 104读取被存储在对应于可寻址存储器位置的可寻址存储器位置120中的值并且返回所读取的值(块1608)。示例PAD 104向处理器108返回确认通信(块1610)。图16的示例方法然后返回到诸如图14的示例方法之类的调用过程或功能,并且图16的示例方法结束。
图17是表示用以通过使用图1A-1D和3-5的示例地址转换器102和示例PAD 104而运行上移命令(CMD_SHIFT_UP)的示例方法的流程图。图17的示例方法可以用于实现图14的块1408以运行上移命令。当示例PAD 104对上移命令进行解码(块1702)时,方法17开始。PAD地址修改器112使逻辑PAD 103的PAD地址116增加(块1704)。图17的示例方法然后返回到诸如图14的示例方法之类的调用过程或功能,并且图17的示例方法结束。
图18是表示用以通过使用图1A-1D和3-5的示例地址转换器102和示例PAD 104而运行下移命令(CMD_SHIFT_DN)的示例方法的流程图。图18的示例方法可以用于实现图14的块1408以运行上移命令。当示例PAD 104对下移命令进行解码(块1802)时,图18开始。PAD地址修改器112使逻辑PAD 103的PAD地址116减小(块1804)。图18的示例方法然后返回到诸如图14的示例方法之类的调用过程或功能,并且图18的示例方法结束。
图19是表示用以通过使用图1A-1D和2-4的示例地址转换器102和示例PAD 104而运行重映射激活命令(CMD_REMAP_ACTIVATE)的示例方法的流程图。图19的示例方法可以用于实现图14的块1408以运行重映射激活命令。当示例PAD 104对重映射激活命令进行解码(块1902)时,图19开始。示例地址转换器102将重映射激活命令中指定的主机物理地址转换成PAD地址(块1904)。例如,地址转换器102可以将图1C和1D的主机物理地址114转换成图1C和1D的PAD地址116。PAD地址修改器112设置逻辑PAD 103的重映射准备就绪标记(块1906)。图19的示例方法然后返回到诸如图14的示例方法之类的调用过程或功能,并且图19的示例方法结束。
图20是表示用以通过使用图1A-1D和3-5的示例地址转换器102和示例PAD 104而运行重映射命令(CMD_REMAP)的示例方法的流程图。图20的示例方法可以用于实现图14的块1408以运行重映射命令。当示例PAD 104对重映射命令进行解码(块2002)时,图20开始。示例地址转换器102将重映射命令中指定的第一主机物理地址转换成PAD地址(块2004)。例如,地址转换器102可以将图1C和1D的主机物理地址114转换成图1C和1D的PAD地址116。示例地址转换器102将重映射命令中指定的第二主机物理地址转换成PAD地址(块2006)。示例PAD地址修改器112清除对应于第一经解码的逻辑PAD地址的逻辑PAD 103的重映射准备就绪标记(块2008)。PAD地址修改器112将示例逻辑PAD 103的PAD地址设置成第二经转换的PAD地址(块2010)。示例PAD 104向处理器108返回确认通信(块2012)。图20的示例方法然后返回到诸如图14的示例方法之类的调用过程或功能,并且图20的示例方法结束。
图21是表示用以通过使用图1A-1D和2-4的示例地址转换器102和示例PAD 104而运行***命令(CMD_INSERT)的示例方法的流程图。图21的示例方法可以用于实现图14的块1408以用于***命令。当示例PAD 104对***命令进行解码(块2102)时,图21开始。示例地址转换器102将***命令中指定的主机物理地址转换成PAD地址(块2104)。例如,地址转换器102可以将图1C和1D的主机物理地址114转换成图1C和1D的PAD地址116。
PAD地址修改器112确定哪个逻辑PAD 103(图1C和1D)具有与逻辑PAD 103的阵列的最大PAD地址116相等的PAD地址116(块2106)。PAD地址修改器112将具有最大PAD地址的逻辑PAD 103的PAD地址116设置成经转换的PAD地址(块2108)。逻辑PAD 103然后将其PAD地址116解码成硬件存储器地址(块2110)。例如,逻辑PAD 103可以将PAD地址116解码成对应的可寻址存储器位置120(图1C和1D)。PAD 104将接收到的***命令中指定的值写入到可寻址存储器位置120(块2112)。PAD 104向处理器108返回确认通信(块2114)。
如果逻辑PAD 103的PAD地址116不具有逻辑PAD 103的阵列的最大PAD地址,则PAD地址修改器112确定哪些PAD地址116大于或等于经转换的PAD地址(块2116)。对于具有大于或等于经转换的PAD地址的PAD地址116的逻辑PAD 103(块2116),PAD地址修改器112使PAD地址116增加一(块2118)。如果逻辑PAD 103的PAD地址116并不大于或等于经转换的PAD地址(块2116),或在PAD地址修改器112使PAD地址116增加一(块2118)之后,或在PAD 104向处理器108返回了确认通信(块2114)之后,图21的示例方法返回到诸如图14的示例方法之类的调用过程或功能,并且图21的示例方法结束。
图22是表示用以通过使用图1A-1D和2-4的示例地址转换器102和示例PAD 104而运行删除命令(CMD_DELETE)的示例方法的流程图。图22的示例方法可以用于实现图14的块1408以运行删除命令。当示例PAD 104对删除命令进行解码(块2202)时,图22开始。示例地址转换器102将删除命令中指定的主机物理地址转换成PAD地址(块2204)。例如,地址转换器102可以将图1C和1D的主机物理地址114转换成图1C和1D的PAD地址116。
PAD地址修改器112确定哪个PAD地址116等于经转换的PAD地址(块2206)。如果逻辑PAD 103的PAD地址116等于经转换的PAD地址(块2206),则PAD地址修改器112将逻辑PAD 103的PAD地址116设置成逻辑PAD 103的阵列的最大PAD地址(块2208)。如果逻辑PAD 103的PAD地址116不等于经转换的PAD地址(块2206),则PAD地址修改器112确定逻辑PAD 103的PAD地址116是否大于经转换的PAD地址(块2210)。如果逻辑PAD 103的PAD地址116大于经转换的PAD地址(块2210),则PAD地址修改器112使逻辑PAD 103的PAD地址116减小一(块2212)。如果PAD地址修改器112确定逻辑PAD 103的PAD地址116不大于经转换的PAD地址(块2210),或者在使逻辑PAD 103的PAD地址116减小一(块2212)之后,或者在将逻辑PAD 103的PAD地址116设置成逻辑PAD 103的阵列的最大PAD地址(块2208)之后,图18的示例方法返回到诸如图14的示例方法之类的调用过程或功能,并且图22的示例方法结束。
图23是表示用以通过使用图1A-1D和2-4的示例地址转换器102和示例PAD 104而运行部分上移命令(CMD_SHIFT_UP_P)的示例方法的流程图。图23的示例方法可以用于实现图14的块1408以运行部分上移命令。当示例PAD 104对部分上移命令进行解码(块2302)时,图23开始。示例地址转换器102将部分上移命令中指定的主机物理地址转换成PAD地址(块2304)。例如,地址转换器102可以将图1C和1D的主机物理地址114转换成图1C和1D的PAD地址116。示例地址转换器102通过将部分上移命令中指定的长度加到经转换的PAD地址并且减一来确定结束PAD地址(块2306)。部分上移命令中指定的长度表示其PAD地址将被上移的逻辑PAD 103的数目。
PAD地址修改器112确定哪个逻辑PAD 103(图1C和1D)具有等于所确定的结束PAD地址的PAD地址116(块2308)。PAD地址修改器112将具有所确定的结束PAD地址的逻辑PAD 103的PAD地址116设置成经转换的PAD地址(块2310)。
如果逻辑PAD 103的PAD地址116不等于所确定的结束PAD地址,则PAD地址修改器112确定哪些PAD地址116大于或等于经转换的PAD地址并且小于所确定的结束PAD地址(块2312)。对于具有大于或等于经转换的PAD地址并且小于所确定的结束PAD地址的PAD地址116的逻辑PAD 103(块2312),PAD地址修改器112使PAD地址116增加一(块2314)。如果逻辑PAD 103的PAD地址116并不大于或等于经转换的PAD地址并且小于所确定的结束PAD地址(块2312),或者在PAD地址修改器112使PAD地址116增加一(块2314)之后,或者在PAD地址修改器112将逻辑PAD 103的PAD地址116设置成经转换的PAD地址(块2310)之后,图23的示例方法返回到诸如图14的示例方法之类的调用过程或功能,并且图23的示例方法结束。
图24是表示用以通过使用图1A-1D和2-4的示例地址转换器102和示例PAD 104而运行部分下移命令(CMD_SHIFT_DN_P)的示例方法的流程图。图24的示例方法可以用于实现图14的块1408以运行部分下移命令。当示例PAD 104对部分下移命令进行解码(块2402)时,图24开始。示例地址转换器102将部分下移命令中指定的主机物理地址转换成PAD地址(块2404)。例如,地址转换器102可以将图1C和1D的主机物理地址114转换成图1C和1D的PAD地址116。示例地址转换器102通过将部分下移命令中指定的长度加到经转换的PAD地址并且减一来确定子集结束PAD地址(块2406)。部分下移命令中指定的长度表示其PAD地址将被下移的逻辑PAD 103的数目。
PAD地址修改器112确定哪个逻辑PAD 103(图1C和1D)具有等于经转换的PAD地址的PAD地址116(块2408)。PAD地址修改器112将具有经转换的PAD地址的逻辑PAD 103的PAD地址116设置成所确定的子集结束PAD地址(块2410)。
如果逻辑PAD 103的PAD地址116不等于经转换的PAD地址,则PAD地址修改器112确定哪些PAD地址116大于经转换的PAD地址并且小于或等于所确定的子集结束PAD地址(块2412)。对于具有大于经转换的PAD地址并且小于或等于所确定的子集结束PAD地址的PAD地址116的逻辑PAD 103(块2412),PAD地址修改器112使PAD地址116减小一(块2414)。如果逻辑PAD 103的PAD地址116不大于经转换的PAD地址并且小于或等于所确定的子集结束PAD地址(块2412),或在PAD地址修改器112使PAD地址116减小一(块2414)之后,或在PAD地址修改器112将逻辑PAD 103的PAD地址116设置成所确定的子集结束PAD地址(块2410)之后,图24的示例方法返回到诸如图14的示例方法之类的调用过程或功能,并且图24的示例方法结束。
图25描绘用以执行在图1A-1D和2-3的PAD 104处接收到的命令(诸如以上结合图4-24所描述的命令和/或任何其它命令)的示例方法的流程图。最初,地址转换器将接收到的主机物理地址114转换成PAD地址116(块2502)。例如,地址转换器102可以将图1C和1D的主机物理地址转换成对应于逻辑PAD 103的图1C和1D的PAD地址116。示例逻辑PAD 103将经转换的PAD地址解码成硬件存储器地址(块2504)。例如,PAD 104可以将从地址转换器102接收到的PAD地址116解码成可寻址存储器位置120(图1C和1D)的对应的硬件存储器地址118。PAD 104接收涉及将主机物理地址114与可寻址存储器位置120的不同的硬件存储器地址118相关联的命令(块2506)。示例PAD地址修改器112改变逻辑PAD 103的PAD地址116(块2508)。在图示的示例中,PAD地址修改器112与运行所接收的命令结合地改变PAD地址116,对于所接收的命令,修改PAD地址(例如重映射PAD地址)减小(或消除)用以运行所接收的命令的数据移动和/或拷贝的量。然后,图25的示例方法结束。
尽管在本文中已经公开了某些示例装置、方法和制品,但是本专利的覆盖范围不限于此。相反,本专利覆盖清楚地落在本专利的权利要求的范围内的所有装置、方法和制品。
Claims (15)
1.一种装置,包括:
地址转换器,用以将第一主机物理地址转换成第一中间地址;以及
可编程地址解码器,用以将第一中间地址解码成存储器中的第一可寻址存储器位置的第一硬件存储器地址,所述可编程地址解码器接收第一命令以通过改变在第一中间地址和第二可寻址存储器位置的第二硬件存储器地址之间的映射而将第一主机物理地址与存储器中的第二可寻址存储器位置相关联。
2.权利要求1的装置,其中所述地址转换器用以将第二主机物理地址转换成第二中间地址,并且所述可编程地址解码器用以将第二中间地址解码成存储器中的第三可寻址存储器位置的第三硬件存储器地址,所述可编程地址解码器接收第二命令以通过改变在第二中间地址和第一硬件存储器地址之间的映射而将第二主机物理地址与第一可寻址存储器位置相关联。
3.如权利要求1中所限定的装置,其中所述第一可寻址存储器位置是形成可寻址存储器位置的阵列的多个可寻址存储器位置之一,可寻址存储器位置的阵列中的每个可寻址存储器位置具有不同的硬件存储器地址,所述多个可寻址存储器位置中的每一个与对应的中间地址相关联,所述可编程地址解码器将中间地址解码成可寻址存储器位置的对应的硬件存储器地址;并且
所述可编程地址解码器接收第二命令以改变在中间地址和硬件存储器地址之间的映射以将中间地址与所述多个可寻址存储器位置中不同的可寻址存储器位置进行重映射。
4.如权利要求3中所限定的装置,还包括地址修改器,用以改变在中间地址和可寻址存储器位置的硬件存储器地址之间的映射。
5.如权利要求1中所限定的装置,其中所述地址转换器用以将第二主机物理地址转换成第二中间地址,所述可编程地址解码器接收第二命令以将数据值写入到第一可寻址存储器位置,并且还包括地址修改器,用以通过将第二中间地址映射到第一可寻址存储器位置的第一硬件存储器地址而将第二主机物理地址与第一可寻址存储器位置相关联。
6.一种方法,包括:
将第一主机物理地址转换成第一中间地址;
将第一中间地址解码成第一辅物理地址;
将第一辅物理地址解码成存储器中的第一可寻址存储器位置的硬件存储器地址;以及
接收第一命令以通过改变在第一中间地址和第二辅物理地址之间的映射而将第一主机物理地址与存储器中的第二可寻址存储器位置相关联,所述第二辅物理地址解码成第二可寻址存储器位置的第二硬件存储器地址。
7.权利要求6的方法,还包括:
将第二主机物理地址转换成第二中间地址;
将第二中间地址解码成第三辅物理地址,所述第三辅物理地址解码成存储器中的第三可寻址存储器位置的第三硬件存储器地址;以及
接收第二命令以通过改变第二中间地址与第一辅物理地址的映射而将第二主机物理地址与第一辅物理地址相关联。
8.权利要求6的方法,其中所述第一可寻址存储器位置是形成可寻址存储器位置的阵列的多个可寻址存储器位置之一,可寻址存储器位置的阵列的每个可寻址存储器位置具有不同的硬件存储器地址;
硬件存储器地址中的每一个与辅物理地址相关联,其中辅物理地址中的每一个解码成硬件存储器地址之一;
辅物理地址中的每一个与中间地址相关联,其中中间地址中的每一个解码成辅物理地址之一;以及
还包括接收第二命令以改变在中间地址与所述多个可寻址存储器位置之间的映射以将中间地址与辅物理地址中的不同的辅物理地址相关联,辅物理地址中的每一个与可寻址存储器位置的阵列的所述多个可寻址存储器位置之一相关联。
9.权利要求8的方法,还包括相对于与中间地址相关联的辅物理地址的次序而改变中间地址的次序。
10.权利要求6的方法,还包括将第二主机物理地址转换成第二中间地址;以及
接收第二命令,以将数据值写入到第一可寻址存储器位置并且以通过改变在第二中间地址和第一辅物理地址之间的映射而将第二主机物理地址与第一可寻址存储器位置相关联。
11.一种包括指令的有形机器可读存储介质,所述指令当被运行时使得机器至少:
将第一主机物理地址转换成第一中间地址;
将第一中间地址解码成存储器中的第一可寻址存储器位置的第一硬件存储器地址;以及
响应于第一命令、通过改变在第一中间地址和第二可寻址存储器位置的第二硬件存储器地址之间的映射而将第一主机物理地址与存储器中的第二可寻址存储器位置相关联。
12.如权利要求11中所限定的存储介质,其中所述指令当被运行时使得机器:
将第二主机物理地址转换成第二中间地址;
将第二中间地址解码成存储器中的第三可寻址存储器位置的第三硬件存储器地址;以及
接收第二命令,以通过改变第二中间地址与第一硬件存储器地址的映射而将第二主机物理地址与第一可寻址存储器位置相关联。
13.如权利要求11中所限定的存储介质,其中所述第一可寻址存储器位置是形成可寻址存储器位置的阵列的多个可寻址存储器位置之一,可寻址存储器位置的阵列中的每个可寻址存储器位置具有不同的硬件存储器地址;
所述多个可寻址存储器位置中的每一个与对应的中间地址相关联,其中中间地址中的每一个解码成可寻址存储器位置之一;并且
当被运行时,所述指令还使得机器响应于第二命令而改变在中间地址与硬件存储器地址之间的映射,以将中间地址与所述多个可寻址存储器位置中的不同的可寻址存储器位置进行重映射。
14.如权利要求13中所限定的存储介质,其中所述指令当被运行时使得机器改变在中间地址与可寻址存储器位置的硬件存储器地址之间的映射。
15.如权利要求11中所限定的存储介质,其中所述指令当被运行时使得机器:
将第二主机物理地址转换成第二中间地址;
响应于第二命令而将数据值写入到第一可寻址存储器位置;以及
通过将第二中间地址映射到第一可寻址存储器位置的第一硬件存储器地址而将第二主机物理地址与第一可寻址存储器位置相关联。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/030545 WO2014142812A1 (en) | 2013-03-12 | 2013-03-12 | Programmable address mapping and memory access operations |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105027213A true CN105027213A (zh) | 2015-11-04 |
Family
ID=51537238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380074555.4A Pending CN105027213A (zh) | 2013-03-12 | 2013-03-12 | 可编程地址映射和存储器访问操作 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160019161A1 (zh) |
KR (1) | KR20150132151A (zh) |
CN (1) | CN105027213A (zh) |
WO (1) | WO2014142812A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107154270A (zh) * | 2016-03-03 | 2017-09-12 | 三星电子株式会社 | 在存储装置中寻址数据的方法、存储装置和存储模块 |
CN111247775A (zh) * | 2017-10-20 | 2020-06-05 | 国际商业机器公司 | 用于消息传递计算***的存储器映射接口 |
CN112955878A (zh) * | 2018-11-06 | 2021-06-11 | 创惟科技股份有限公司 | 实施神经网络的激活逻辑的装置及其方法 |
CN113841128A (zh) * | 2019-04-08 | 2021-12-24 | 美光科技公司 | 大型数据读取技术 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9588883B2 (en) * | 2011-09-23 | 2017-03-07 | Conversant Intellectual Property Management Inc. | Flash memory system |
US10015048B2 (en) | 2014-12-27 | 2018-07-03 | Intel Corporation | Programmable protocol parser for NIC classification and queue assignments |
US20160335350A1 (en) * | 2015-05-13 | 2016-11-17 | Vinay BAWRI | Computer implemented method for ranking, searching and managing contacts in electronic device |
US9825862B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Packet header field extraction |
US9912774B2 (en) | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
US10419366B1 (en) | 2017-01-31 | 2019-09-17 | Barefoot Networks, Inc. | Mechanism for communicating to remote control plane from forwarding element |
US10694006B1 (en) | 2017-04-23 | 2020-06-23 | Barefoot Networks, Inc. | Generation of descriptive data for packet fields |
US10601732B1 (en) | 2017-07-23 | 2020-03-24 | Barefoot Networks, Inc. | Configurable packet processing pipeline for handling non-packet data |
US10771387B1 (en) | 2017-09-28 | 2020-09-08 | Barefoot Networks, Inc. | Multiple packet data container types for a processing pipeline |
KR20200076531A (ko) | 2018-12-19 | 2020-06-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20200088709A (ko) * | 2019-01-15 | 2020-07-23 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US10817206B2 (en) * | 2019-01-30 | 2020-10-27 | EMC IP Holding Company, LLC | System and method for managing metadata redirections |
KR20200099882A (ko) | 2019-02-15 | 2020-08-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11269552B2 (en) | 2019-06-14 | 2022-03-08 | Micron Technology, Inc. | Multi-pass data programming in a memory sub-system having multiple dies and planes |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5278961A (en) * | 1990-02-22 | 1994-01-11 | Hewlett-Packard Company | Physical address to logical address translator for memory management units |
US5784707A (en) * | 1994-01-12 | 1998-07-21 | Sun Microsystems, Inc. | Method and apparatus for managing virtual computer memory with multiple page sizes |
US20020042868A1 (en) * | 1999-07-12 | 2002-04-11 | Godtland Paul Luverne | Apparatus and method for providing simultaneous local and global addressing with hardware address translation |
US20030005249A1 (en) * | 2001-06-28 | 2003-01-02 | Wilson Kenneth Mark | Relocation table for use in memory management |
US20030037185A1 (en) * | 2001-08-15 | 2003-02-20 | International Business Machines Corporation | Method of virtualizing I/O resources in a computer system |
US20070136550A1 (en) * | 2005-12-14 | 2007-06-14 | Garney John I | Methods and apparatus for data transfer between partitions in a computer system |
US20070142946A1 (en) * | 2005-12-17 | 2007-06-21 | Dr. Johannes Heidenhain Gmbh | Method for the start-up of numerical controls of machine tools or production machinery and numerical control for machine tools or production machinery |
US20080114806A1 (en) * | 2006-11-13 | 2008-05-15 | Nicolai Kosche | Method and Apparatus for Data Space Profiling of Applications Across a Network |
CN101315602A (zh) * | 2008-05-09 | 2008-12-03 | 浙江大学 | 硬件化的进程内存管理核的方法 |
US20100281202A1 (en) * | 2009-04-30 | 2010-11-04 | International Business Machines Corporation | Wear-leveling and bad block management of limited lifetime memory devices |
US20110099387A1 (en) * | 2008-07-28 | 2011-04-28 | Nagravision S.A. | Method and apparatus for enforcing a predetermined memory mapping |
US20110145485A1 (en) * | 2009-12-11 | 2011-06-16 | Samsung Electronics Co., Ltd. | Method for managing address mapping table and a memory device using the method |
CN102236541A (zh) * | 2010-04-22 | 2011-11-09 | Arm有限公司 | 预加载指令控制 |
CN102567213A (zh) * | 2011-11-30 | 2012-07-11 | 华中科技大学 | 相变存储器的写均衡方法 |
US20120311238A1 (en) * | 2011-06-03 | 2012-12-06 | Jung-Been Im | Memory apparatus |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9146846B2 (en) * | 2012-09-14 | 2015-09-29 | Advanced Micro Devices, Inc. | Programmable physical address mapping for memory |
US20140122807A1 (en) * | 2012-10-31 | 2014-05-01 | Hewlett-Packard Development Company, Lp. | Memory address translations |
-
2013
- 2013-03-12 US US14/773,549 patent/US20160019161A1/en not_active Abandoned
- 2013-03-12 WO PCT/US2013/030545 patent/WO2014142812A1/en active Application Filing
- 2013-03-12 CN CN201380074555.4A patent/CN105027213A/zh active Pending
- 2013-03-12 KR KR1020157024834A patent/KR20150132151A/ko not_active Application Discontinuation
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5278961A (en) * | 1990-02-22 | 1994-01-11 | Hewlett-Packard Company | Physical address to logical address translator for memory management units |
US5784707A (en) * | 1994-01-12 | 1998-07-21 | Sun Microsystems, Inc. | Method and apparatus for managing virtual computer memory with multiple page sizes |
US20020042868A1 (en) * | 1999-07-12 | 2002-04-11 | Godtland Paul Luverne | Apparatus and method for providing simultaneous local and global addressing with hardware address translation |
US20030005249A1 (en) * | 2001-06-28 | 2003-01-02 | Wilson Kenneth Mark | Relocation table for use in memory management |
US20030037185A1 (en) * | 2001-08-15 | 2003-02-20 | International Business Machines Corporation | Method of virtualizing I/O resources in a computer system |
US20070136550A1 (en) * | 2005-12-14 | 2007-06-14 | Garney John I | Methods and apparatus for data transfer between partitions in a computer system |
US20070142946A1 (en) * | 2005-12-17 | 2007-06-21 | Dr. Johannes Heidenhain Gmbh | Method for the start-up of numerical controls of machine tools or production machinery and numerical control for machine tools or production machinery |
US20080114806A1 (en) * | 2006-11-13 | 2008-05-15 | Nicolai Kosche | Method and Apparatus for Data Space Profiling of Applications Across a Network |
CN101315602A (zh) * | 2008-05-09 | 2008-12-03 | 浙江大学 | 硬件化的进程内存管理核的方法 |
US20110099387A1 (en) * | 2008-07-28 | 2011-04-28 | Nagravision S.A. | Method and apparatus for enforcing a predetermined memory mapping |
US20100281202A1 (en) * | 2009-04-30 | 2010-11-04 | International Business Machines Corporation | Wear-leveling and bad block management of limited lifetime memory devices |
US20110145485A1 (en) * | 2009-12-11 | 2011-06-16 | Samsung Electronics Co., Ltd. | Method for managing address mapping table and a memory device using the method |
CN102236541A (zh) * | 2010-04-22 | 2011-11-09 | Arm有限公司 | 预加载指令控制 |
US20120311238A1 (en) * | 2011-06-03 | 2012-12-06 | Jung-Been Im | Memory apparatus |
CN102567213A (zh) * | 2011-11-30 | 2012-07-11 | 华中科技大学 | 相变存储器的写均衡方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107154270A (zh) * | 2016-03-03 | 2017-09-12 | 三星电子株式会社 | 在存储装置中寻址数据的方法、存储装置和存储模块 |
CN107154270B (zh) * | 2016-03-03 | 2019-07-30 | 三星电子株式会社 | 在存储装置中寻址数据的方法、存储装置和存储模块 |
US10504572B2 (en) | 2016-03-03 | 2019-12-10 | Samsung Electronics Co., Ltd. | Methods for addressing high capacity SDRAM-like memory without increasing pin cost |
CN111247775A (zh) * | 2017-10-20 | 2020-06-05 | 国际商业机器公司 | 用于消息传递计算***的存储器映射接口 |
CN111247775B (zh) * | 2017-10-20 | 2022-04-12 | 国际商业机器公司 | 用于消息传递计算***的存储器映射接口 |
CN112955878A (zh) * | 2018-11-06 | 2021-06-11 | 创惟科技股份有限公司 | 实施神经网络的激活逻辑的装置及其方法 |
CN112955878B (zh) * | 2018-11-06 | 2023-10-27 | 创惟科技股份有限公司 | 实施神经网络的激活逻辑的装置及其方法 |
CN113841128A (zh) * | 2019-04-08 | 2021-12-24 | 美光科技公司 | 大型数据读取技术 |
CN113841128B (zh) * | 2019-04-08 | 2023-03-03 | 美光科技公司 | 大型数据读取方法、装置及可读介质 |
US11720359B2 (en) | 2019-04-08 | 2023-08-08 | Micron Technology, Inc. | Large data read techniques |
US11989557B2 (en) | 2019-04-08 | 2024-05-21 | Lodestar Licensing Group, Llc | Large data read techniques |
Also Published As
Publication number | Publication date |
---|---|
WO2014142812A1 (en) | 2014-09-18 |
KR20150132151A (ko) | 2015-11-25 |
US20160019161A1 (en) | 2016-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105027213A (zh) | 可编程地址映射和存储器访问操作 | |
US9436609B2 (en) | Block addressing for parallel memory arrays | |
US8144515B2 (en) | Interleaved flash storage system and method | |
US7404031B2 (en) | Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
US20110161565A1 (en) | Flash memory storage system and controller and data writing method thereof | |
JP2016035795A (ja) | 内部ecc処理を有するnand型フラッシュメモリおよびその動作方法 | |
US7245539B2 (en) | Memory card, semiconductor device, and method of controlling semiconductor memory | |
TWI595356B (zh) | 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路 | |
JP2006190402A (ja) | 半導体装置 | |
KR101594029B1 (ko) | 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치 | |
US20080109627A1 (en) | Nonvolatile Memory Device And Method For Accessing Nonvolatile Memory Device | |
US9122583B2 (en) | Memory controller and memory storage device and data writing method | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US8209472B2 (en) | Data writing method for flash memory and control circuit and storage system using the same | |
JP4745613B2 (ja) | 情報処理装置及び情報処理方法 | |
US8572350B2 (en) | Memory management, memory control system and writing method for managing rewritable semiconductor non-volatile memory of a memory storage system | |
JP6228523B2 (ja) | メモリ制御回路および半導体記憶装置 | |
US9501397B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US20120151180A1 (en) | Data writing method, memory controller and memory storage apparatus | |
US8589620B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US20130067141A1 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US8832358B2 (en) | Data writing method, memory controller and memory storage apparatus | |
JP2010026584A (ja) | メモリコントローラおよび不揮発性記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170122 Address after: American Texas Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Applicant before: Hewlett-Packard Development Company, L.P. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151104 |