地址转换
文献发布时间:2023-06-23 06:30:03
技术领域
本公开大体上涉及存储器装置,且更具体地说,涉及与地址转换相关的设备和方法。
背景技术
通常将存储器装置提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)等等。非易失性存储器可通过在未被供电时保持所存储数据来提供永久性数据,并且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)和电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)以及磁阻随机存取存储器(MRAM)等等。
存储器还用作易失性和非易失性数据存储装置以用于广泛范围的电子应用。非易失性存储器可用于例如个人计算机、便携式记忆棒、数码相机、蜂窝电话、诸如MP3播放器、影片播放器之类的便携式音乐播放器以及其它电子装置。存储器单元可布置成阵列,其中所述阵列在存储器装置中使用。
发明内容
根据本公开的一方面,提供一种用于地址转换的设备。所述设备包括:第一控制电路系统,其经配置以提供对存储器装置130中对应于目标未经转换地址的经转换地址的请求的页识别符(PID)和队列识别符(QID);第二控制电路系统,其经配置以将所述存储器装置的多个经转换地址存储在充当地址转换高速缓存(ATC)的查找表(LUT)中;以及接口组件,其耦合到所述第一控制电路系统和所述第二控制电路系统,且经配置以:将所述请求的所述PID和所述QID映射到所述LUT的识别符(LUT ID);以及将所述LUT ID提供到所述第二控制电路系统,以识别对应于所述目标未经转换地址的特定经转换地址。
根据本公开的另一方面,提供一种用于地址转换的方法。所述方法包括:将存储器装置的多个经转换地址存储在由控制电路系统维持的第一查找表(LUT)中;将多个未经转换地址存储在由所述控制电路系统维持的第二LUT中;以及响应于对所述存储器装置中对应于目标未经转换地址的特定经转换地址的转换请求:确定所述第二LUT中与所述目标未经转换地址相关联的索引;将所述第二LUT的所述索引映射到所述第一LUT的索引,以验证所述特定经转换地址对应于所述目标未经转换地址;以及从所述第一LUT检索对应于所述目标未经转换地址的所述特定经转换地址。
根据本公开的又一方面,提供一种非暂时性媒体。所述媒体存储用于地址转换的指令,所述指令可由处理装置执行以:接收包含第一查找表(LUT)中对应于相应的目标未经转换地址的索引的转换请求;以及将所述第一LUT的所述索引映射到存储存储器装置的经转换地址的第二LUT的索引,其中所述第一LUT的所述索引与所述存储器装置中对应于所述目标未经转换地址的特定经转换地址相关联。
根据本公开的另一方面,提供一种用于地址转换的系统。所述系统包括:主机系统,其包括处理装置;以及存储器系统,其耦合到所述主机系统且包括:存储器装置的本地控制器,其经配置以维持具有相应的对应未经转换地址的所述存储器装置的多个经转换地址的第一查找表(LUT);存储器系统控制器,其经配置以维持未经转换地址的第二LUT;以及接口组件,其耦合到所述存储器系统控制器和所述本地控制器,其中所述接口组件经配置以将所述第二LUT中与目标未经转换地址相关联的索引映射到所述第一LUT的索引,以将所述目标未经转换地址转换为所述存储器装置的特定经转换地址,其中所述第二LUT经配置以由所述主机系统填充。
附图说明
图1为根据本公开的数个实施例的呈包含存储器装置的计算系统形式的设备的框图。
图2为根据本公开的数个实施例的设备的存储器系统控制器和本地控制器的框图。
图3为根据本公开的数个实施例的地址转换的框图表示。
图4说明根据本公开的数个实施例的用于地址转换的方法的实例流程图。
具体实施方式
本公开包含与地址转换相关的设备和方法。如本文所使用,“地址转换”是指确定对应于逻辑地址(例如,逻辑块地址(LBA)、名称空间)的存储器装置的存储器(例如,存储器裸片、存储器组)的物理地址(例如,物理块地址、物理媒体位置)。地址转换可包含地址转换高速缓存(ATC)的使用。地址转换的一些先前方法可将内容可寻址存储器(CAM)(例如,完全相关联的高速缓存)用作ATC。然而,CAM可具有有限容量。举例来说,CAM可能够存储多达一千(1K)个条目。CAM的栅极计数可能太高,以至于将CAM实施为ATC是不切实际的。集合关联的高速缓存无法用作ATC,因为通常只有主机装置才能使ATC的条目失效。
存储器装置的存储器的控制电路系统可遵守非易失性存储器快速(NVMe)规范。NVMe模块可具有有限数目个队列,每一队列具有有限数目个页。可在相对低的频率下执行ATC协议。本公开的实施例通过使用查找表(LUT)存储经转换地址来解决上述不足和先前方法的其它不足。如本文所使用,“未经转换地址”是指与存储在存储器装置中的数据值相关联的逻辑地址。如本文所使用,“经转换地址”是指存储数据值的存储器装置的物理地址。因此,对应于未经转换地址的经转换地址为对应于逻辑地址的物理地址。
与使用未经转换地址从CAM查找并检索对应的经转换地址的先前方法相比,至少一个实施例使用LUT的索引,下文称为LUT ID,以从所述CAM查找并检索对应的经转换地址。如本文所描述,响应于转换请求,可从LUT ID的空闲池中分配LUT ID。可将所分配的LUT ID存储在另一LUT中。转换请求可包含此其它LUT的索引,通过所述索引可获得所分配的LUTID。应注意,转换请求未必暗示与转换请求相关联的未经转换地址先前尚未被转换。
根据本公开的ATC可代表NVMe控制电路系统单侧地进行转换请求。因此,NVMe控制电路系统不需要知道地址转换服务(ATS)支持。ATC可响应于存储器请求(例如,高级可扩展接口(AXI)存储器请求)而对尚未被转换的存储器页的未经转换地址进行转换请求。
举例来说,对数据页的初始存储器请求与未经转换地址相关联,所述未经转换地址对于物理区域页(PRP)存储器请求来说没有益处,因为PRP存储器请求只发生一次。因此,NVMe控制电路系统在发布PRP存储器请求之前进行转换请求以便隐藏和/或减少地址转换等待时间,而ATC对其它类型的存储器(例如,3DXP、NAND)进行转换请求以例如提高总体系统性能。
根据本公开的ATC可将经转换地址存储在LUT中。当通过ATC进行转换请求时,分配LUT中存储经转换地址的位置,所述位置由LUT ID指示。每一LUT ID与未经转换地址以及对应的经转换地址相关联。根据本公开,本文中所描述的LUT ID为对ATC特定的。因此,NVMe控制电路系统不需要知道LUT ID。
根据本公开的ATC可用于除NVMe控制电路系统外的应用。本公开的至少一个实施例可包含接口组件。接口组件可包含硬件(例如,电路系统)、固件、软件及其组合。接口组件可为NVMe特定组件或与NVMe控制电路系统分离的组件,其保护NVMe控制电路系统免受ATC的地址转换操作影响。接口组件可将未经转换地址映射到LUT ID。由于遵守NVMe规范的存储器页可与PRP队列或MSI-X队列相关联,因此接口组件的另一LUT并不需要完全相关联的高速缓存。接口组件的LUT的索引、队列识别符(QID)和页识别符(PID)可用于将未经转换地址映射到LUT ID。随后,可将LUT ID映射到对应的经转换地址。
如本文所使用,除非本文另有明确指示,否则单数形式“一(a/an)”和“所述”包含单个和多个指示物。此外,贯穿本申请以许可的意义(即,有可能、能够),而非以强制性的意义(即,必须)使用单词“可”。术语“包含”和其派生词意味“包含但不限于”。如本文所使用,“耦合到”或“与…耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无介入组件),无论有线或无线,包含例如电、光学、磁性等的连接。
本文中的图式遵循编号惯例,其中前一或多个数字对应于附图编号,且其余数字识别附图中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。举例来说,元件115可表示图1中的元件15,且类似元件可在图2中标记为215。可使用连字符和额外数字或字母指代图式内的类似元件。如将了解,可添加、交换和/或去除本文中的各个实施例中示出的元件,以便提供本公开的数个额外实施例。另外,如应了解,图中提供的元件的比例和相对标度意图说明本发明的某些实施例,并且不应以限制性意义理解。
图1为根据本公开的一些实施例的呈包含存储器系统110的计算系统100的形式的设备的框图。存储器系统110可包含媒体,例如一或多个易失性存储器装置140、一或多个非易失性存储器装置130或这类的组合。
存储器系统110可为存储装置、存储器模块或存储装置与存储器模块的混合,以及其它类型的存储器系统。存储装置的实例包含固态硬盘(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡,以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、服务器、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、启用物联网(IoT)的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的这类计算装置。
计算系统100可包含耦合到一或多个存储器系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器系统110。图1说明耦合到一个存储器系统110的主机120的一个实例。
主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,SSD控制器)和存储协议控制器(例如,外围组件互连高速(PCIe)接口控制器、SATA控制器)。主机系统120可将数据写入到存储器系统110的存储器装置130、140和/或从所述存储器装置读取数据。
主机系统120可经由物理主机接口(未展示)耦合到存储器系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、PCIe接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI)、低功率双数据速率(LPDDR)或任何其它接口。物理主机接口可用于在主机系统120与存储器系统110之间传输数据。当存储器系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVMe接口来存取组件。物理主机接口可提供用于在存储器系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1说明存储器系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器系统110。
非易失性存储器装置130和易失性存储器装置140可分别包含不同类型的非易失性存储器装置和易失性存储器装置的各种组合。易失性存储器装置的一些实例可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器形成对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
非易失性存储器装置130可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可每单元存储多个位。在一些实施例中,非易失性存储器装置130可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。非易失性存储器装置130的存储器单元可分组为页,所述页可指用以存储数据的相应存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可经分组以形成块。
虽然描述了例如非易失性存储器单元的三维交叉点阵列等非易失性存储器组件和NAND型存储器(例如,2D NAND、3D NAND),但非易失性存储器130可基于任何其它类型的非易失性存储器或存储装置,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器和电可擦除可编程只读存储器(EEPROM)。
存储器系统控制器115可与存储器装置130、140通信以执行操作,例如读取数据、写入数据和/或擦除存储在非易失性存储器装置130和易失性存储器装置140上的数据,以及其它此类操作。存储器系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器117(例如,处理装置)。在所说明的实例中,存储器系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器系统110的操作(包含处理存储器系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然将存储器系统110说明为包含存储器系统控制器115,但在本公开的另一实施例中,存储器系统110并不包含存储器系统控制器115,且可改为依赖于外部控制(例如,由外部主机提供,或由与存储器系统分离的处理器或控制器提供)来存取存储器装置130、140。
一般来说,存储器系统控制器115可从主机系统120接收命令或操作并且可将所述命令或操作转换成指令或适当命令以实现对非易失性存储器装置130和/或易失性存储器装置140的所要存取。存储器系统控制器115可负责其它操作,如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与非易失性存储器装置130相关联的未经转换地址(例如,逻辑块地址(LBA)、名称空间)与物理地址(例如,物理块地址、物理媒体位置等)之间的地址转换。存储器系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收的命令转换成命令指令以存取非易失性存储器装置130和/或易失性存储器装置140,以及将与非易失性存储器装置130和/或易失性存储器装置140相关联的响应转换成主机系统120的信息。
存储器系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器系统控制器115接收地址且对所述地址进行解码以存取非易失性存储器装置130和/或易失性存储器装置140。
在一些实施例中,存储器装置(例如,非易失性存储器装置130)可包含本地控制器135,其可与存储器系统控制器115一起操作以对非易失性存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器系统控制器115)可在外部管理非易失性存储器装置130(例如,对非易失性存储器装置130执行媒体管理操作)。在一些实施例中,非易失性存储器装置130可为受管理存储器。受管理存储器为与用于同一存储器装置封装内的媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器。受管理存储器装置的实例为受管理NAND(MNAND)装置。
存储器系统110可包含地址转换组件113。尽管图1中未展示,但地址转换组件113可包含用以促进地址转换的电路系统。存储存储器系统110的经转换地址的LUT可驻存在地址转换组件113上。在一些实施例中,地址转换组件113可包含呈ASIC、FPGA、状态机和/或其它逻辑电路系统的形式的专用电路系统,其可使得地址转换组件113能够从本地存储器控制器135接收LUT ID且从例如LUT检索与LUT ID相关联的经转换地址。在一些实施例中,存储器系统控制器115包含地址转换组件113的至少一部分。举例来说,存储器系统控制器115可包含处理器117(例如,处理装置),其经配置以执行存储在本地存储器119中的用于执行本文中所描述的操作的指令。
存储器系统110可包含耦合到存储器系统控制器115和本地控制器135以促进地址转换的接口组件152。不同LUT可驻存在接口组件152上,所述接口组件存储驻存在地址转换组件113上的LUT的LUT ID。在一些实施例中,接口组件152可包含呈ASIC、FPGA、状态机和/或其它逻辑电路的形式的专用电路系统。接口组件152的LUT可由页识别符(PID)和队列识别符(QID)索引。接口组件152可从本地控制器135接收对目标未经转换地址的转换请求。转换请求可包含与目标未经转换地址相关联的PID和QID。接口组件152可接收PID和QID,且从驻存在接口组件152上的LUT检索LUT ID。接口组件152可将所检索的LUT ID传送到地址转换组件113。地址转换组件113接着可通过从驻存在地址转换组件113上的LUT检索对应于目标未经转换地址的经转换地址来转换目标未经转换地址,如本文所描述。
图2为根据本公开的数个实施例的设备的存储器系统控制器215和本地控制器235的框图。存储器系统控制器215和本地控制器235可类似于与图1相关联地描述的存储器系统110的存储器系统控制器115和本地控制器135。图2说明根据本公开的地址转换中涉及的存储器系统的电路系统和组件。然而,图2并不意图排除本公开的实施例包含存储器系统的其它电路系统和组件。
如由图2说明,存储器系统控制器235可发布转换请求251。转换请求251可包含一或多个目标未经转换地址,以及与目标未经转换地址相关联的PID和QID。QID的值指示存储器页的类型。PID的值指示由QID指示的类型的特定(例如,目标)存储器页。存储器系统控制器235可遵守NVMe规范。
接口组件233可从本地存储器控制器235接收转换请求251。接口组件252可维持存储由本地控制器215维持的不同LUT的LUT ID的LUT。接口组件252可将转换请求251的QID和PID映射到LUT ID。由接口组件252维持的LUT由QID和PID索引。接口组件252可在与PID和QID相关联的位置处从LUT检索LUT ID。接口组件252可将转换请求249传送到存储器系统控制器215。转换请求249包含目标未经转换地址。对转换请求249的响应包含LUT ID。
存储器系统控制器215可接收转换请求249。如本文所描述且由图2说明,存储器系统控制器215可维持充当ATC 250的LUT。LUT(ATC 250)存储由LUT ID索引的经转换地址。存储器系统控制器215可在与转换请求249的LUT ID相关联的位置处从LUT检索经转换地址。
可将经转换地址从存储器系统控制器215传送到主机接口259和/或本地控制器235。本地存储器控制器235可传送来自主机的读取请求和/或写入请求。本地存储器控制器235可传送来自ATC 250的MSI-X请求。主机接口259可遵守PCIe规范。尽管图2将主机接口259说明为与存储器系统控制器215分离,但在一些实施例中,主机接口259和存储器系统控制器215可为单个组件的部分。
虚线256表示跨时钟域。如在图2的255和257处所指示,本地控制器235和存储器系统控制器215可根据相应的不同时钟操作。举例来说,本地控制器235的时钟的频率(例如,500兆赫兹(MHz))可不同于本地控制器215的时钟的频率(例如,250MHz)。接口组件252促进本地控制器235与存储器系统控制器215之间的通信,尽管时钟不同。
如在图2的254和258处所指示,本地控制器235和存储器系统控制器215可支持相应的不同带宽。举例来说,本地控制器235可支持512兆字节(MB)的带宽,而存储器系统控制器215可支持256MB的带宽。接口组件252促进本地控制器235与存储器系统控制器215之间的通信,尽管带宽不同。
图3为根据本公开的数个实施例的地址转换的框图表示。主机系统320和接口组件352可类似于与图1相关联地描述的主机系统120和接口组件152。图3说明主机系统320与接口组件352之间的地址转换的框图表示以及由存储器系统控制器315执行的相关操作。
在ATC将转换请求传送到主机系统320之前,ATC首先通过基于散列的搜索表进行搜索,其中LUT ID对应于转换请求。基于散列的搜索表包含头表371、链表372和未经转换地址表(图3中未展示)。如果ATC的搜索产生命中,那么将对应的LUT ID返回到接口组件352。如果ATC的搜索产生未命中,那么从LUT ID的空闲池369中分配LUT ID。将所分配的LUT ID传送到接口组件352且插入到搜索表中。
转换请求功能365的执行可包含使用不同的数据结构,例如以下中的一或多者:LUT ID的空闲池369、由头表371和链表372组成的散列表370、未经转换地址表365(UNT.A.LUT)以及请求者识别符(RID)的空闲池(图3中未展示)。RID可识别未经转换地址或目标地址对应于存储器装置的哪一个存储器组。头表371记录未经转换地址的列表的初始LUT ID。链表372记录未经转换地址的列表的额外LUT ID。链表372的长度为可变的。
在一些实施例中,RID可为AXI总线上的RID。在ATC经由存储器系统控制器315(例如,PCIe控制器)将转换请求传送到主机系统320之后,存储器系统控制器315经由AXI总线将经转换地址传送到ATC。ATC将经转换地址存储在经转换地址表366中。ATC使用AXI总线的RID来对RID到LUT ID表376编索引以获得LUT ID。在ATC将转换请求传送到主机系统320之前,分配RID,使得LUT ID可存储在RID到LUT ID表376中。
在一些实施例中,本地存储器控制器(图3中未展示)可支持多功能存储器系统控制器。执行转换请求功能361可包含使用未经转换地址(例如,目标未经转换地址363)和功能识别符(FID)来查找与散列表370中的未经转换地址相关联的LUT ID 364。如果散列表370中的查找产生命中,那么在373处,将LUT ID 364传送回到接口组件352作为有效的LUTID。如果散列表370中的查找产生未命中,那么从LUT ID的空闲池369中分配LUT ID 374。在373处,将所分配的LUT ID 374传送到接口组件352。将所分配的LUT ID 374插入到散列表370中。将未经转换地址和相关联的QID、PID和FID插入到未经转换地址表365中。之后,在373处,将LUT ID传送到接口组件352以用于转换请求,从RID的空闲池中分配RID且产生转换请求消息。转换请求消息可发送到存储器系统控制器315的PCIe核心。可递增未经转换地址364,且可重复本文中所描述的步骤以转换多个未经转换地址。
转换完成功能375的执行可包含使用不同的数据结构,例如以下中的一或多者:LUT ID的空闲池369、散列表370、未经转换地址表365、RID的空闲池、RID到LUT ID表376以及经转换地址表366(T.A.LUT)。执行转换完成功能375可包含使用读取数据总线(例如,AXI读取数据总线)的RID来从RID到LUT ID表376查找LUT ID。存储器系统控制器315接着可将RID释放回到RID的空闲池。存储器系统控制器315可在由LUT ID364索引的经转换地址表366的位置处将经转换地址377和相关联的属性(例如,未经转换、可读、可写、非监视处理)写入到经转换地址表366。
如果发生转换完成错误(例如,从AXI总线接收),那么存储器系统控制器315可从散列表370中删除LUT ID 364,并将LUT ID 364返回到LUT ID的空闲池369。所有这些都可写入到由LUT ID 364索引的未经转换地址表365的条目。未经转换地址363和相关联的QID可传送到接口组件352。
失效请求功能362的执行可包含使用不同的数据结构,例如以下中的一或多者:LUT ID的空闲池369、散列表370、未经转换地址表365、RID的空闲池、RID到LUT ID表376以及经转换地址表366。执行失效功能362可包含使用未经转换地址(例如,目标未经转换地址368)和失效请求消息的FID(从主机系统320接收)来查找散列表370中的对应LUT ID。如果散列表370中的查找产生命中,那么将得出的LUT ID 367返回到LUT ID的空闲池369,且使由LUT ID 367索引的经转换地址表366的条目失效。如果散列表370中的查找产生未命中,那么存在错误条件。
存储器系统控制器315可验证从接口组件352接收的QID和PID对应于相应的目标未经转换地址。在378处,接口组件352可将LUT ID和LUT ID为有效的指示(ID有效)作为地址通道上的边带信号传送到存储器系统控制器315。如果ID有效信号被解除确证,那么将不会发生地址表查找。否则,LUT ID用于查找以从经转换地址表366和未经转换地址表365检索对应的经转换地址。如果LUT ID有效,且接口组件352的未经转换地址和FID与未经转换地址表365匹配(在AND 379处),那么在多路复用器380处,使用经转换地址表366中的对应经转换地址。否则,在多路复用器380处,将对应未经转换地址381传送到存储器系统控制器315的PCIe核心。
如果LUT ID失效,且接口组件352的未经转换地址和FID与未经转换地址表365匹配(在AND 379处),那么在382处,将未经转换地址和相关联的QID和PID(从未经转换地址表365读取)传送到接口组件352。接口组件352可决定是否再次发布转换请求。如果LUT ID有效,但接口组件352的未经转换地址和FID与未经转换地址表365不匹配(在AND 379处),那么在382处,将未经转换地址和相关联的QID和PID(从未经转换地址表365读取)传送到接口组件352。
在一些实施例中,可以主动地弃用LUT ID。仅主机系统320具有使LUT ID失效的权限。因此,如果主机系统320并不频繁地使LUT ID失效,那么本地存储器控制器(未由图3说明)(例如本地控制器135)不再需要的LUT ID仍可由存储器系统控制器315存储。存储器系统控制器315可维持已分配给可得益于主动弃用的存储器页的LUT ID的记录(例如,在先进先出(FIFO)中)。当空闲池369的可用LUT ID的数量低于阈值时,那么存储在FIFO中的LUTID可为失效的,如本文所描述。当已经主动地弃用LUT ID时,发送失效完成消息。
图4说明根据本公开的数个实施例的用于地址转换的方法490的实例流程图。方法490可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法490由与图1相关联地描述的存储器系统控制器115和本地控制器135执行。虽然以特定顺序或次序来展示,但是除非另外指定,否则可修改过程的次序。因此,所说明的实施例应理解为仅作为实例,且所说明的过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程是可能的。
在框491处,方法490可包含将存储器装置的多个经转换地址存储在由控制电路系统维持的第一LUT中。存储所述多个经转换地址可包含将所述多个经转换地址存储在由所述控制电路系统的第一部分维持的所述第一LUT中。
在框492处,方法490可包含将多个未经转换地址存储在由控制电路系统维持的第二LUT中。存储所述多个未经转换地址可包含将所述多个未经转换地址存储在由所述控制电路系统的第二部分维持的所述第二LUT中。
在框493处,方法490可包含响应于对存储器装置中对应于目标未经转换地址的特定经转换地址的转换请求,在框494处确定与目标未经转换地址相关联的第二LUT的索引,在框495处将所述第二LUT的所述索引映射到第一LUT的索引,且在框496处从所述第一LUT检索对应于所述目标未经转换地址的所述特定经转换地址。
尽管图4未具体说明,但方法490可包含与转换请求相关联地,通过包含存储器装置的存储器系统的接口组件从控制电路系统的第一部分接收第二LUT的索引。接口组件可将所述第二LUT的所述索引映射到第一LUT的索引,且将所述第一LUT的所述索引传送到所述控制电路系统的第二部分。方法490可包含通过所述控制电路系统的所述第二部分对存储在所述特定经转换地址处的数据执行操作。
在本公开的一些实施例中,计算机系统(例如,与图1相关联地描述的计算系统100)的机器,在所述机器内可执行用于使所述机器执行本文中所论述的方法中的任何一或多种的一组指令。一种计算机系统的机器,其包含、耦合到或利用存储器系统(例如,存储器系统110)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的能力进行操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行将由所述机器采取的指定动作的一组指令的任何机器。此外,虽然说明单个机器,但应认为术语“机器”还包含机器的任何集合,所述机器单独地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多种。
在一些实施例中,计算机系统可包含处理装置、主存储器(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等动态随机存取存储器(DRAM)、静态存储器(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储系统,它们经由总线彼此通信。
处理装置可为一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等等。处理装置可经配置以执行用于执行本文中所论述的操作和步骤的指令。计算机系统可进一步包含网络接口装置以经由网络通信。
数据存储系统可包含机器可读存储媒体(也称为计算机可读媒体),其上存储有一或多组指令或体现本文中所描述的方法或功能中的任何一或多种的软件。所述指令还可在由计算机系统执行期间完全或至少部分地驻存在主存储器内和/或处理装置内,主存储器和处理装置也构成机器可读存储媒体。术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的一组指令且使得机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
虽然已经在本文中说明并描述了具体实施例,但本领域的一般技术人员将了解,经计算以实现相同结果的布置可以替代所展示的具体实施例。本公开意图涵盖本公开的各种实施例的修改或变化。应理解,以上描述已以说明性方式而非限制性方式进行。对于本领域的一般技术人员而言在审阅上述描述之后上述实施例的组合和本文中未具体描述的其它实施例将为显而易见的。本公开的各种实施例的范围包含使用以上结构和方法的其它应用。因此,本公开的各种实施例的范围应参考所附权利要求书以及这些权利要求书所授予的等效物的完整范围来确定。
在前述详细描述中,出于精简本公开的目的而将各种特征一起分组在单个实施例中。本公开的此方法不应被理解为反映以下意图:本公开的所公开实施例必须使用比每一权利要求中明确陈述的特征更多的特征。相反,如所附权利要求书所反映,本发明主题在于单个所公开实施例的不到全部的特征。因此,所附权利要求书特此并入到具体实施方式中,其中每一项权利要求独自作为单独实施例。
- 网络地址转换方法、装置及地址转换设备
- 网络地址转换设备、网络地址转换系统、网络地址转换方法以及计算机可读记录介质
- 使用本地IP地址和不可转换端口地址的局域网的网络地址转换网关