可编程地址映射和存储器访问操作的制作方法

文档序号:9308684阅读:490来源:国知局
可编程地址映射和存储器访问操作的制作方法
【专利说明】
【背景技术】
[0001]计算系统的处理器运行计算机程序的指令以在数据上执行操作。计算系统的存储器存储可以由处理器访问的计算机程序和/或数据。为了允许存储和访问信息,计算系统包括可寻址的存储器设备以执行用以在存储器设备中的特定所选位置处存储数据的写入操作以及从存储器设备中的特定所选位置读取数据。
【附图说明】
[0002]图1A是根据本公开的教导所构造的示例地址转换器和可编程地址解码器(PAD)。
[0003]图1B是具有存储器控制器的示例计算机系统,所述存储器控制器具有图1A的地址转换器和PAD。
[0004]图1C描绘了图1B的存储器控制器以及图1A和IB的PAD的逻辑表示。
[0005]图1D描绘了使用与图1A和IB的地址转换器和PAD相组合的现有存储器控制器的示例。
[0006]图2和3图示了图1A-1D的示例地址转换器和示例PAD如何解码主机物理地址以访问可寻址存储器位置的阵列的示例方式。
[0007]图4A和4B图示了可以用于实现图1A、IB和IC的PAD的示例逻辑电路和状态机。
[0008]图5是图示了由图1A-1D以及图2-4的示例PAD用于执行写入操作的信号的时序图。
[0009]图6是图示了由图1A-1D以及图2-4的示例PAD用于执行读取操作的信号的时序图。
[0010]图7是图示了由图1A-1D以及图2-4的示例PAD用于执行上移操作的信号的时序图。
[0011]图8是图示了由图1A-1D以及图2-4的示例PAD用于执行下移操作的信号的时序图。
[0012]图9是图示了由图1A-1D以及图2-4的示例PAD用于执行重映射操作的信号的时序图。
[0013]图10是图示了由图1A-1D以及图2-4的示例PAD用于执行插入操作的信号的时序图。
[0014]图11是图示了由图1A-1D以及图2-4的示例PAD用于执行删除操作的信号的时序图。
[0015]图12是图示了由图1A-1D以及图2_4的示例PAD用于执行部分上移操作的信号的时序图。
[0016]图13是图示了由图1A-1D以及图2_4的示例PAD用于执行部分下移操作的信号的时序图。
[0017]图14是表示可以被运行以从图1B的处理器接收并运行命令的示例机器可读指令的流程图。
[0018]图15是表示可以被运行以执行写入操作的示例机器可读指令的流程图。
[0019]图16是表示可以被运行以执行读取操作的示例机器可读指令的流程图。
[0020]图17是表示可以被运行以执行上移操作的示例机器可读指令的流程图。
[0021]图18是表示可以被运行以执行下移操作的示例机器可读指令的流程图。
[0022]图19是表示可以被运行以执行重映射激活操作的示例机器可读指令的流程图。
[0023]图20是表示可以被运行以执行重映射操作的示例机器可读指令的流程图。
[0024]图21是表示可以被运行以执行插入操作的示例机器可读指令的流程图。
[0025]图22是表示可以被运行以执行删除操作的示例机器可读指令的流程图。
[0026]图23是表示可以被运行以执行部分上移操作的示例机器可读指令的流程图。
[0027]图24是表示可以被运行以执行部分下移操作的示例机器可读指令的流程图。
[0028]图25描绘了表示可以被运行以执行在图1A-1D以及图2_3的PAD处接收到的命令的示例机器可读指令的流程图。
【具体实施方式】
[0029]处理器访问计算系统的存储器以运行计算机程序的指令来执行不同的操作。存储器基于不同的存储器架构和/或计算平台而在以不同的位长度可寻址的存储器设备中存储数据位。例如,存储器设备可以以字节(例如8位)或以不同大小的字(例如,16位、32位、64位、128位等等)可寻址。如本文所使用的,存储了一组可寻址的位(例如字节、字等等)的存储器位置被称为可寻址存储器位置。在一些实例中,处理器经由单独的存储器控制器而与存储器通信,所述存储器控制器管理在处理器和存储器之间的数据流。存储器控制器可以位于具有存储器控制器的存储器模块以及具有例如动态随机存取存储器(DRAM)和/或任何其它类型的易失性或非易失性存储器的诸如双列直插式存储器模块(DIMM)之类的存储器芯片上。在其它示例中,存储器控制器实现为被装配在计算系统的主计算机印刷电路板(PCB)上的芯片。
[0030]存储器地址的三种类型包括逻辑(例如虚拟)地址、主机物理地址和硬件存储器地址(或存储器电路地址)。逻辑地址被程序用于执行存储器访问。逻辑地址对于将由软件用于从计算机系统中的存储器的物理布局中访问存储器的抽象寻址而言是有用的。
[0031]处理器的存储器管理单元(MMU)通过使用转换后备缓冲器(TLB)来将逻辑地址转换成主机物理地址,以使得计算系统可以以其对应于由软件使用的逻辑地址的主机物理地址来访问物理存储器。为了确定主机物理地址,TLB使用逻辑到物理存储器映射,其中物理存储器地址空间被映射到由软件可使用的逻辑地址。这样的逻辑到物理存储器映射允许在物理存储器的物理布置、布局、装配等中的改变而不使软件负担对记录物理存储器的主机物理地址中的改变的需要。代替地,处理器更新TLB中的逻辑到物理存储器映射以将逻辑地址重映射到新的/不同的主机物理地址。
[0032]在存储器访问请求期间,在处理器基于逻辑地址而确定了主机物理地址之后,处理器通过使用主机物理地址而向存储器控制器发送存储器访问请求。存储器控制器然后将主机物理地址解码成具有对应于主机物理地址的可寻址存储器位置的(一个或多个)存储器设备的硬件存储器地址或存储器电路地址。在本文公开的示例中,硬件存储器地址或存储器电路地址标识物理存储器模块、物理存储器阵列、物理存储器管芯/芯片、以及存储器管芯/芯片内的物理存储器设备位置(例如,位单元的可寻址的群组)O存储器控制器使用硬件存储器地址(或存储器电路地址)来访问存储器设备,以使得存储器设备可以确定管芯上存储器单元位置以控制内部字线和位线电路,其激活对应于由存储器控制器解码的主机物理地址的不同可寻址存储器位置的存储器位。在一些示例中,诸如在动态随机存取存储器(DRAM)管芯/芯片中,存储器可寻址的位置是通过将硬件地址解释为行地址(通过DRAM地址总线与行地址选通(RAS)同时传送的)和列地址(通过DRAM地址总线与列地址选通(CAS)同时传送的)而可访问的。
[0033]在现有系统中,当处理器指定了主机物理地址时,存储器控制器使用静态数据结构而将主机物理地址解码成硬件存储器地址,所述静态数据结构将存储器设备的可寻址存储器位置与顺序的主机物理地址进行映射。
[0034]本文所公开的示例方法、装置和制品提供具有可编程操作的存储器控制器。特别地,本文公开的示例可以用于修改在由处理器指定的主机物理地址和存储器设备中的存储器可寻址位置的硬件存储器地址之间的映射。这样的映射修改可以通过使用本文所公开的示例在运行时期间、在系统引导阶段期间和/或在存储器装配阶段期间动态地执行。
[0035]本文公开的示例包括地址转换器和可编程地址解码器(PAD)。在存储器访问请求期间,示例地址转换器从处理器(例如主机)接收物理存储器地址(例如主机物理存储器地址)。在接收到主机物理地址时,示例地址转换器将主机物理地址转换成PAD地址。PAD地址是由示例PAD在内部使用的逻辑中间地址(S卩,中间地址)。示例PAD从地址转换器接收PAD地址并且将PAD地址解码成与处理器所指定的主机物理地址相对应的可寻址存储器位置的硬件存储器地址。示例存储器控制器然后可以以与处理器所指定的主机物理地址相对应的经解码的硬件存储器地址来执行所请求的存储器访问操作,诸如向经解码的硬件存储器地址处的可寻址存储器位置写入或者从其读取。
[0036]在本文所公开的示例中,除了促进存储器访问之外,存储器控制器还基于来自处理器的命令而修改在主机物理地址和硬件存储器地址之间的地址映射。在所公开的示例中,存储器控制器通过改变哪些PAD地址对应于哪些硬件存储器地址来修改地址映射。例如,地址转换器修改PAD地址来改变在主机物理地址和经修改的PAD地址之间的映射,这使得主机物理地址被映射到不同的硬件存储器地址。因此,在主机物理地址和数据在存储器单元中被存储于的真实硬件存储器位置之间的存储器映射可以被存储器控制器处置,所述存储器控制器与处理器分离并且包括地址转换器和PAD。以此方式,处理器不需要管理对存储器单元中的数据的主机物理地址和实际硬件存储器存储位置的跟踪,从而允许处理器的资源被用于其它计算任务。
[0037]图1A是根据本公开的教导而构造的示例地址转换器102和示例可编程地址解码器(PAD) 104的框图。
[0038]在图1B中,在根据本公开的教导而构造的示例计算机系统106的示例存储器控制器100中示出地址转换器102和PAD 104。
[0039]在示例计算机系统106中,存储器控制器100通信地耦合在处理器108 (例如硬件处理器)和存储器设备I1的阵列之间。在图示的示例中,处理器108运行一个或多个计算机程序的指令。示例处理器108与示例存储器控制器100通信以执行存储器访问并且指示存储器控制器100执行以下讨论的其它可编程操作。尽管示例存储器控制器100被示出为与示例处理器108分离,但是在其它示例中,存储器控制器100可以位于处理器108中,在计算机系统106的存储器模块中,或与存储器设备110位于同处。
[0040]示例存储器设备110在存储器位单元中存储数据位。在图示的示例中,可以以对应于存储器设备110的可寻址数据宽度(例如,8位、16位、32位、64位、128位等等)的大长度来访问存储器位单元。在一些示例中,存储器控制器100在比可寻址的数据宽度(例如1KB、4KB、1MB等等)更大的数据块上进行操作。在图示的示例中,存储器设备110是随机存取存储器(RAM)设备,并且存储器设备110中的存储器位单元的可寻址数据宽度定义可寻址的存储器位置。在其它示例中,其它类型的存储器或者不同类型的存储器的组合可以用于实现存储器设备110。可寻址存储器位置的数据宽度(例如,8位、16位、32位、64位、128位等等)取决于计算机系统106的特定架构和/或存储器设备110的架构。
[0041]示例地址转换器102被提供有用于与示例处理器108对接的逻辑。示例地址转换器102还被提供有用于与示例PAD 104对接的逻辑。示例地址转换器102从示例处理器108接收包括主机物理地址的存储器访问命令。示例地址转换器102将接收到的主机物理地址转换成对应的PAD地址并且将经转换的PAD地址提供给示例PAD 104。示例地址转换器102还将其它信息(例如命令)传输到示例PAD 104,如在以下进一步详细描述的,以使得PAD 104执行可编程操作。
[0042]示例PAD 104可以被逻辑地表示为逻辑PAD的阵列,如在图1C中图示的那样。每个逻辑PAD对示例存储器设备110的不同的可寻址存储器位置进行寻址。通过使用可以用于实现不同的逻辑PAD的可重配置或可编程逻辑(例如,可重编程的逻辑电路)来实现示例PAD 104。可替换地或附加地,可以通过使用诸如可重配置的查找表之类的数据结构来实现PAD 104。
[0043]图1C将图1A和IB的PAD 104图示为图1A和IB的示例存储器控制器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执行由命令所指定的操作,如果命令适用于逻辑
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1