CN115004163A - 管理跨存储器构架物理层接口的分组传送的设备和方法 - Google Patents
管理跨存储器构架物理层接口的分组传送的设备和方法 Download PDFInfo
- Publication number
- CN115004163A CN115004163A CN202080094067.XA CN202080094067A CN115004163A CN 115004163 A CN115004163 A CN 115004163A CN 202080094067 A CN202080094067 A CN 202080094067A CN 115004163 A CN115004163 A CN 115004163A
- Authority
- CN
- China
- Prior art keywords
- memory
- packet
- physical layer
- priority
- incoming
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System (AREA)
Abstract
一种用于管理具有物理层接口的存储器构架之间的分组传送的设备和方法从所述存储器构架物理层接口接收传入分组,所述物理层接口具有比另一个装置的物理层接口的数据速率更高的数据速率,其中所述分组中的至少一些包括不同的指令类型。所述设备和方法确定从所述存储器构架物理层接口接收到的所述传入分组的分组类型,并且当所述确定的传入分组类型是含有原子请求的类型时,所述方法和设备使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送到存储器访问逻辑,所述存储器访问逻辑访问设备内的本地存储器。
Description
政府许可权
本发明是在政府支持下在由美国能源部(DOE)授予的劳伦斯利弗莫尔国家安全局的PathForward项目(基本合同号DE-AC52-07NA27344,转包合同号B620717)下进行的。政府享有本发明中的某些权利。
发明背景
正在采用使用存储器-语义构架的系统,所述构架将中央处理单元(CPU)存储器字节可寻址的加载-存储模型扩展到整个系统,诸如数据中心。存储器构架是一种类型的点对点通信交换机(也被称为Gen-Z构架),其处于处理器片上系统(SoC)、介质模块以及允许装置通过诸如数据中心等系统中的存储器构架与外部存储器模块池对接的其他类型的装置的外部。例如,一些处理器SoC包括包含多个处理核心的处理器,所述处理核心经由诸如数据构架等本地存储器访问逻辑与诸如动态随机存取存储器(DRAM)或其他合适的存储器等本地存储器通信。处理器SoC和其他装置还需要与存储器构架对接来使用构架附接存储器(FAM)模块,所述FAM模块可为例如直接附接到数据中心存储器构架的外部(例如,非本地)存储器。在一些系统中,FAM模块具有处理加载和存储请求的存储器访问逻辑,但不具有或具有很少的计算能力。此外,存储器构架将FAM模块作为整个主存储器的可寻址部分进行附接。FAM模块用例在云数据中心中实现了分解式存储器池。在存在FAM模块的情况下,主机不受本地服务器的存储器容量限制的约束。而是,主机获得了对未附接到任何主机的大量存储器池的访问。主机协调来在自身之间划分存储器,或者共享FAM模块。Gen-Z构架已经成为可用于与系统中的每个装置通信的高性能、低时延存储器-语义构架。
需要用于管理跨采用构架附接存储器的存储器构架的物理层接口的流量的改进的设备和方法。
附图说明
在随附以下附图的情况下,根据以下描述将更容易理解实现方式,其中相同的附图标记表示相同的元件,并且在附图中:
图1是示出根据本公开阐述的一个实例的采用用于利用存储器构架管理跨物理层接口上的分组传送的设备的系统的框图;
图2是示出根据本公开阐述的一个实例的用于管理由耦合到存储器构架物理层接口的装置进行的分组传送的方法的流程图;
图3是示出根据本公开阐述的一个实例的用于管理分组传送的设备的框图;
图4是示出根据本公开阐述的一个实例的用于管理由耦合到存储器构架物理层接口的装置进行的分组传送的方法的流程图;
图5是示出根据本公开阐述的一个实例的用于管理分组传送的设备的框图;并且
图6是示出根据本公开阐述的一个实例的用于管理由耦合到存储器构架物理层接口的装置进行的分组传送的方法的流程图。
具体实施方式
存储器构架可能会出现流量瓶颈。存储器构架的物理层接口(也被称为存储器构架物理层(PHY)接口)具有比与片上系统(例如,主机SoC)或连接到存储器构架PHY接口的其他装置相关联的物理层接口更高性能的操作。例如,与在SoC上使用外围部件互连,诸如PCIe接口为16或32Gt/s相比较,用于存储器构架以实现对FAM的访问的信令标准和通过存储器构架进行的消息传递可为大约56Gt/s。此外,用于存储器构架的链路宽度也被设计得更大。一些当前的与PCI-e总线对接的处理器SoC装置使用先进先出(FIFO)缓冲器来对分组流量进行排队,然而,诸如PCI-e物理层(PHY)接口到存储器构架PHY接口的跨PHY接口上的数据速率和链路宽度的差异仍然是分组流量的潜在瓶颈。
在一些实现方式中,一种设备用作接口来管理多个物理层接口之间,诸如PCIePHY接口与本地存储器构架PHY接口(诸如Gen-Z802.3类型存储器构架接口)之间的连接点上的流量优先级。在一些实现方式中,所述设备为数据中心工作负载提供了在跨PHY接口上的分组流量的硬件辅助自动化优先级划分。在一些实现方式中,所述设备从数据中心或采用存储器构架物理层接口的其他系统中的主机CPU卸下了跨PHY接口优化。
在某些实现方式中,一种用于管理具有物理层接口的存储器构架之间的分组传送的设备和方法从存储器构架物理层接口接收传入分组,所述物理层接口具有比另一个装置的物理层接口的数据速率更高的数据速率,其中分组中的至少一些包括不同的指令类型。所述设备和方法确定从存储器构架物理层接口接收到的传入分组的分组类型,并且当所确定的传入分组类型是含有原子请求的类型时,所述方法和设备使具有原子请求的传入分组优先于传入分组的其他分组类型传送到存储器访问逻辑,所述存储器访问逻辑访问设备内的本地存储器。
在一些实例中,所述方法包括将被确定为含有原子请求的传入分组在第一优先级缓冲器中进行排队并且将其他分组类型在第二优先级缓冲器中进行排队。所述方法还包括使来自第一优先级缓冲器的分组的输出优先于来自第二优先级缓冲器的分组的输出。在某些实例中,所述方法包括将被确定为含有存储请求的传入分组在缓冲器中进行排队,同时将具有原子请求的传入分组提供到存储器访问逻辑。
在一些实例中,所述方法包括:诸如从一个或多个配置寄存器访问数据,所述数据将所述装置的本地存储器的至少一些存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架物理层接口访问;以及维持对所述时间间隔内已经通过存储器构架物理层接口对定义的存储器区域进行的存储器访问的数量的计数。所述方法还包括:当超过最大允许数量的访问时将读取分组存储在第二优先级缓冲器中;以及在下一个时间间隔中将所存储的分组从第二优先级缓冲器提供到存储器访问逻辑。
在某些实例中,所述方法包括对第二优先级缓冲器进行分配以包括多个第二优先级缓冲器,其中多个第二优先级缓冲器中的每一者对应于不同的定义的存储器区域,基于与传入分组相关联的地址而将被确定为含有读取请求的类型的传入分组存储在多个第二优先级缓冲器中的相应的每一者中。
根据一些实现方式,一种设备包括一个或多个处理器和还耦合到本地存储器的存储器访问逻辑,其中本地存储器可配置为存储器的通过存储器构架物理层接口可寻址的可寻址部分。在一些实现方式中,物理层接口从具有比物理层接口的数据速率更高的数据速率的存储器构架物理层接口接收传入分组,分组中的至少一些包括不同的指令类型。在某些实现方式中,控制器确定从存储器构架物理层接口接收到的传入分组的分组类型,并且当所确定的传入分组类型是含有原子请求的类型时,所述控制器使具有原子请求的传入分组优先于传入分组的其他分组类型传送到存储器访问逻辑。
在某些实例中,所述设备包括第一优先级缓冲器和具有低于第一优先级缓冲器的优先级的第二优先级缓冲器,并且控制器通过以下方式使具有原子请求的传入分组优先于传入分组的其他分组类型传送:将被确定为含有原子请求的传入分组在第一优先级缓冲器中进行排队并且将其他分组类型在第二优先级缓冲器中进行排队。在一些实例中,所述控制器使来自第一优先级缓冲器的分组的输出优先于来自第二优先级缓冲器的分组的输出。
在一些实例中,所述设备包括缓冲器,并且控制器通过以下方式使具有原子请求的传入分组优先于传入分组的其他分组类型传送:将被确定为含有存储请求的传入分组在缓冲器中进行排队,同时将具有原子请求的传入分组提供到存储器访问逻辑。
在某些实例中,所述设备包括存储数据的配置寄存器,所述数据将本地存储器的至少一些存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架物理层接口访问。在一些实现方式中,控制器维持对所述时间间隔内已经通过存储器构架物理层接口对定义的存储器区域进行的存储器访问的数量的计数,并且当超过最大允许数量的访问时将读取分组存储在第二优先级缓冲器中并且在下一个时间间隔中将所存储的分组从第二优先级缓冲器提供到存储器访问逻辑。
在一些实例中,所述设备包括多个第二优先级缓冲器,其中多个第二优先级缓冲器中的每一者对应于不同的定义的存储器区域。在某些实例中,控制器基于与传入分组相关联的地址而将被确定为含有读取请求的类型的传入分组存储在相应的第二优先级缓冲器中。在某些实例中,所述设备包括桥电路,所述桥电路允许在物理层接口与存储器构架物理层接口之间传递分组。
根据一些实现方式,一种设备包括本地存储器和存储器访问逻辑,其中本地存储器可配置为存储器的通过存储器构架物理层接口可寻址的可寻址部分。在某些实现方式中,物理层接口从具有比物理层接口的数据速率更高的数据速率的存储器构架物理层接口接收传入分组,分组中的至少一些包括不同的指令类型。在一些实现方式中,所述设备包括传入分组缓冲器结构,所述传入分组缓冲器结构包括层级有序的优先级缓冲器结构,所述优先级缓冲器结构至少包括第一优先级缓冲器和具有低于第一优先级缓冲器的优先级的第二优先级缓冲器。在一些实例中,所述设备包括控制器,所述控制器确定来自存储器构架物理层接口的传入分组的分组类型,并且当所确定的分组类型指示传入分组中存在原子请求时,控制器将传入分组存储在第一优先级缓冲器中。当所确定的分组类型指示传入分组中存在加载指令时,控制器将传入分组存储在第二优先级缓冲器中并且根据优先级缓冲器顺序将所存储的传入分组以层级顺序提供到存储器访问逻辑。
在某些实例中,所述设备包括缓冲器,并且控制器将被确定为含有存储请求的传入分组在缓冲器中进行排队,同时将具有原子请求的传入分组提供到存储器访问逻辑,而不用在高优先级缓冲器中缓冲原子请求类型分组。
在一些实例中,所述设备包括包含数据的配置寄存器,所述数据将本地存储器的至少一些存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架物理层接口访问。在某些实现方式中,控制器维持对所述时间间隔内已经通过存储器构架物理层接口对定义的存储器区域进行的存储器访问的数量的计数,并且当超过最大允许数量的访问时将分组存储在第二优先级缓冲器中。在一些实现方式中,控制器在下一个时间间隔中将第二优先级缓冲器中的所存储的分组从缓冲器提供到存储器访问逻辑。
在某些实例中,第二优先级缓冲器包括多个第二优先级缓冲器,其中多个第二优先级缓冲器中的每一者对应于不同的定义的存储器区域,并且控制器基于与传入分组相关联的地址而将被确定为含有读取请求的类型的传入分组存储在相应的第二优先级缓冲器中。
根据一些实现方式,一种系统包括存储器构架物理层接口,所述存储器构架物理层接口操作来将多个分布式非易失性存储器与第一装置和第二装置互连。第一装置和第二装置可包括服务器、SoC或其他装置。第一装置和第二装置中的每一者具有物理层接口以经由存储器构架物理层接口从彼此接收存储器访问请求。在一些实现方式中,第二装置包括本地存储器,诸如操作性地耦合到存储器访问逻辑的DRAM。本地存储器可配置为分布式非易失性存储器的通过存储器构架物理层接口可寻址的可寻址部分。在某些实例中,物理层接口从具有比物理层接口的数据速率更高的数据速率的存储器构架物理层接口接收传入分组,分组中的至少一些是不同的指令类型。在某些实例中,控制器确定从存储器构架物理层接口接收到的传入分组的分组类型,并且当所确定的传入分组类型是含有原子请求的类型时,所述控制器使具有原子请求的传入分组优先于传入分组的其他分组类型传送到存储器访问逻辑。
在某些实例中,第二装置包括第一优先级缓冲器和具有低于第一优先级缓冲器的优先级的第二优先级缓冲器。在一些实例中,控制器通过以下方式使具有原子请求的传入分组优先于传入分组的其他分组类型传送:将被确定为含有原子请求的传入分组在第一优先级缓冲器中进行排队并且将其他分组类型在第二优先级缓冲器中进行排队。在一些实现方式中,控制器操作来使来自第一优先级缓冲器的分组的输出优先于来自第二优先级缓冲器的分组的输出前往存储器访问逻辑。
在一些实例中,第二装置包括缓冲器,并且控制器通过以下方式使具有原子请求的传入分组优先于传入分组的其他分组类型传送:将被确定为含有存储请求的传入分组在缓冲器中进行排队,同时将具有原子请求的传入分组提供到存储器访问逻辑。
在某些实例中,第二装置包括含有数据的配置寄存器,所述数据将本地存储器的至少一些存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架物理层接口访问。在一些实例中,控制器维持对所述时间间隔内已经通过存储器构架物理层接口对定义的存储器区域进行的存储器访问的数量的计数,并且当超过最大允许数量的访问时将读取分组存储在第二优先级缓冲器中并且在下一个时间间隔中将所存储的分组从第二优先级缓冲器提供到存储器访问逻辑。
在一些实例中,第二优先级缓冲器包括多个第二优先级缓冲器,其中多个第二优先级缓冲器中的每一者对应于不同的定义的存储器区域。在某些实例中,控制器基于与传入分组相关联的地址而将被确定为含有读取请求的类型的传入分组存储在相应的第二优先级缓冲器中。
图1示出了系统100的一个实例,诸如数据中心中的基于云的计算系统或其他系统,所述系统包括多个装置102和104,所述多个装置各自通过存储器构架桥108耦合到存储器构架物理层接口106。在一个实例中,存储器构架物理层接口106被实现为存储器构架交换机,所述存储器构架交换机包括诸如Gen-Z构架等存储器构架物理层接口(例如,802.3PHY)或任何其他合适的存储器构架物理层接口。存储器构架物理层接口106提供对构架附接存储器112的访问,所述构架附接存储器诸如为具有介质控制器以及诸如DRAM、存储级存储器(SCM)或作为可由装置102和104寻址的构架附接存储器池的一部分的其他合适的存储器等非易失性存储器的介质模块。构架附接存储器112还可包括图形处理单元、具有本地存储器的现场可编程门阵列、或提供作为全系统存储器构架的一部分可由装置102和104寻址的可寻址存储器的任何其他合适的模块。在一些实现方式中,装置102和104上的本地存储器也是构架附接存储器并且可由系统中的其他基于处理器的装置寻址和访问。在一些实现方式中,装置102和104是数据中心系统中的物理服务器。
在此实例中,装置102被示出为包括用作某一类型的构架附接存储器模块114的处理器片上系统与存储器构架桥108的组合。然而,可采用任何合适的实现方式,诸如但不限于:集成电路、具有多个SoC的多个封装装置、不具有处理器或具有有限的计算能力的构架附接存储器模块、一个或多个物理服务器或者任何其他合适的装置。还将认识到,各种框可以任何合适的方式进行组合或分配。例如,存储器构架桥108在一个实例中是与SoC分开的集成电路,而在其他实现方式中被集成为SoC的一部分。在此实例中,装置102用作某一类型的构架附接存储器模块,所述构架附接存储器模块包括可由装置104访问的本地存储器116,并且因此,从装置104或连接到存储器构架物理层接口106的使用与本地存储器116有关的加载请求、存储请求和原子请求的其他装置接收传入分组。
存储器构架桥108可为任何合适的桥电路,并且在一个实例中包括与存储器构架物理层接口106连接的接口以及与物理层接口120连接的另一个接口。存储器构架桥108可为单独的集成电路,或者可被集成为片上系统的一部分或为单独的封装件。另外,将认识到,可采用装置102的许多变型,包括根据需要并入有多个SoC、单独的集成电路、多个封装件或任何其他合适的配置的装置。例如,如上所述,装置102替代地可被配置为不包括诸如处理器128等处理器或其他计算逻辑,而是替代地可包括例如介质控制器的介质模块,所述介质控制器用作本地存储器116的存储器控制器,使得诸如其他构架附接存储器或其他处理器片上系统装置等外部装置可访问作为构架可寻址存储器的一部分的本地存储器116。
在此实例中,构架附接存储器模块114包括与控制器122通信的物理层接口120,所述控制器用作存储器构架接口优先级缓冲器控制器。在某些实例中,控制器122被实现为集成电路,诸如现场可编程门阵列(FPGA),但可使用任何合适的结构,包括专用集成电路(ASIC)、执行存储在存储器中的可执行指令的编程处理器、状态机或任何合适的结构。控制器122向存储器访问逻辑126提供包括原子请求、加载请求和存储请求的分组。
在一个实例中,存储器访问逻辑126包括处理由控制器122提供来访问本地存储器116的存储器访问请求的一个或多个存储器控制器。控制器122响应于来自构架上的远程计算单元(例如,与存储器构架物理层接口106或构架附接存储器112相关联),或连接到所述构架的远程装置104(例如,远程节点)的请求而从本地存储器116提供数据,并且还响应于由诸如处理器128等本地计算单元向所述构架发出请求而从构架附接存储器112提供数据。在此实例中,构架附接存储器模块114还包括一个或多个处理器128,所述一个或多个处理器也通过存储器访问逻辑126来使用本地存储器116,并且通过存储器构架物理层接口106来使用构架附接存储器112。在某些实现方式中,本地存储器116包括非易失性随机存取存储器(RAM),诸如但不限于:基于DDR4的动态随机存取存储器和/或非易失性双列直插式存储器模块(NVDIMM)。然而,可使用任何合适的存储器。本地存储器116可配置为分布式非易失性存储器的通过存储器构架物理层接口106可寻址的可寻址部分。因此,本地存储器116在其被构架上的远程计算单元访问时用作某一类型的构架附接存储器。
存储器构架物理层接口106将作为构架附接存储器模块的多个其他分布式非易失性存储器互连,所述构架附接存储器模块在一个实例中是被配置为构架附接存储器的介质模块,所述介质模块各自包括非易失性随机存取存储器(RAM),诸如但不限于:基于DDR4的动态随机存取存储器、非易失性双列直插式存储器模块(NVDIMM)、NAND快闪存储器、存储级存储器(SCM)或任何其他合适的存储器。
物理层接口120从具有比物理层接口120的数据速率更高的数据速率的存储器构架物理层接口106接收传入分组。由物理层接口接收的分组包括不同指令类型的分组。在此实例中,分组可为具有原子请求、加载请求和/或存储请求的类型。还设想了其他分组类型。物理层接口120在此实例中将被描述为PCI Express(PCIe)物理层接口,但可采用任何合适的物理层接口。在此实例中,存储器构架物理层接口106具有比物理层接口120的数据速率更高的数据速率。在一个实例中,由于数据传送速率和/或用于互连的数据链路宽度的数量,数据速率是较高的。在此实例中,物理层接口120从装置104接收存储器访问请求。同样,装置102也可向装置104发出存储器访问请求。
构架附接存储器模块114采用传入分组缓冲器结构130,所述传入分组缓冲器结构包括层级有序的优先级缓冲器结构,所述优先级缓冲器结构包括不同的优先级缓冲器,诸如FIFO缓冲器或其他合适的缓冲器结构,其中某些缓冲器具有高于其他缓冲器的优先级。构架附接存储器模块114在此实例中还包括对被确定为含有存储请求的传入分组进行排队的缓冲器132,诸如本地缓冲器。缓冲器132被视为较低优先级缓冲器,因为对于正被执行的应用程序来说,在许多情况下都不认为写入是至关重要的。因此,控制器122将存储请求(例如,写入)保存到缓冲器132中。物理层接口120具有比存储器构架桥108更小的数据速率和更小的链路宽度,因此在物理层接口120之前并在存储器构架桥108之后发生缓冲。具有原子请求和加载请求的分组被给予较高优先级。在可完成许多其他指令期间,写入数据在缓冲器132中保存例如较长的时间段。如果在最终执行写入时发生错误,则控制器122生成异步重试操作。在一些实例中,传入分组缓冲器结构130和缓冲器132被包括在包括控制器122的集成电路中。
在一些实现方式中,存储器访问逻辑126可被实现为本地数据构架,所述本地数据构架包括用于与CPU、其高速缓存和本地存储器116对接的各种其他部件。例如,存储器访问逻辑126连接到诸如DRAM控制器等一个或多个存储器控制器以访问本地存储器116。尽管没有示出一些部件,但可采用任何合适的存储器访问逻辑,诸如任何合适的存储器控制器配置或者处理诸如原子请求、加载请求和存储请求等存储器请求的任何其他合适的逻辑。
图2是示出用于管理由装置102进行的分组传送的方法200的一个实例的流程图。在此实例中,操作由控制器122进行。在一种实现方式中,控制器122被实现为如本文所描述操作的现场可编程门阵列(FPGA)。然而,将认识到,可采用任何合适的逻辑。控制器122通过物理层接口120从存储器构架物理层接口106接收传入分组。如框202所示,所述方法包括确定从存储器构架物理层接口106接收到的传入分组的分组类型。在一种实现方式中,分组包括分组内的将分组标识为具有原子请求、加载请求、存储请求或其任何合适的组合的分组的分组标识数据。还设想了其他分组类型。在其他实例中,分组可包括索引或表示分组类型的其他数据。在其他实现方式中,控制器122基于数据是在分组本身内,附加到分组还是另外被确定为与分组相关联而确定分组类型。在一种实现方式中,控制器122针对可为一个或多个位的分组类型标识符评估分组,并且根据分组标识符确定每个传入分组的分组类型。
如框204所示,当所确定的传入分组类型是含有原子请求的类型时,所述方法包括使具有原子请求的传入分组优先于传入请求的其他分组类型传送,使得原子请求被给予最高优先级。例如,如果传入分组被确定为是原子请求,则在存储器访问逻辑126具有足够的带宽来处理分组的情况下不经过缓冲将分组直接传递到存储器访问逻辑以进行处理。在另一个实例中,控制器122将传入原子请求类型分组在较高优先级缓冲器中进行排队,所述传入原子请求类型分组在其他分组类型被提供到存储器访问逻辑126之前被读出并且提供到存储器访问逻辑。分组最终被提供到存储器访问逻辑126,但在流量进入物理层接口120之前并在所述流量离开存储器构架桥108之后发生优先级缓冲。
例如,并同时参考图1,在一些实现方式中,使具有原子请求的传入分组的传送优先包括将被确定为含有原子请求的传入分组在高优先级缓冲器150中进行排队并且将其他分组类型在中优先级缓冲器152中进行排队,其中第一优先级缓冲器具有高于第二优先级缓冲器的优先级。控制器122使来自高优先级缓冲器150的分组的输出优先于来自中优先级缓冲器152的分组的输出。在一个实例中,这通过多路复用操作来完成。在一些实现方式中,使具有原子请求的传入分组优先于传入分组的其他分组类型传送包括将被确定为含有存储请求的传入分组在缓冲器132中进行排队,同时将具有原子请求的传入分组提供到存储器访问逻辑126,而不需要将原子请求存储在高优先级缓冲器150中。如上所述,在一些实现方式中,当存储器访问逻辑126具有接受传入分组的带宽容量,而不用进一步的排队时发生这种情况。
图3的图是某一实例,所述实例不应不当地限制权利要求的范围。本领域的普通技术人员将认识到许多变化、替代方案和修改。尽管已经使用所述方法的一组选定的过程展示了上文内容,但可存在许多替代方案、修改和变化。例如,可对过程中的一些进行扩展和/或组合。可将其他过程插入上述过程。取决于实施方案,在其他过程被替换的情况下,可交换过程的顺序。
图3是示出根据一个实例的用于管理对存储器构架物理层接口的分组传送的装置的另一个实例的框图。在此实例中,传入分组缓冲器结构130被示出为具有多个中优先级缓冲器300和302,每个中优先级缓冲器对应于本地存储器116内的不同的定义的存储器区域。高优先级缓冲器150用作存储原子请求的较高优先级缓冲器,并且多路复用器304(MUX)使来自高优先级缓冲器150的分组优先于存储在中优先级缓冲器300和302中的读取请求传送。控制器122可如由虚线箭头306所示控制多路复用器304的多路复用操作,或者多路复用器304可包括合适的逻辑以在来自较低优先级缓冲器的条目之前输出高优先级缓冲器条目中的数据。多路复用器304从具有条目的较高优先级缓冲器中进行选择并且以分层优先级方式从那些条目提供分组。在某些实例中,多路复用器304被视为是控制器122的一部分。
在一个实例中,本地存储器116由控制器122、在处理器128上执行的操作系统或驱动器的控制下的处理器128、或任何其他合适的机构划分成存储器区域。在一个实例中,控制器122包括含有数据的配置寄存器308,所述数据定义本地存储器116中的各个存储器区域的起始地址和大小。在其他实例中,表示起始地址和结束地址的数据或者定义本地存储器116的一个或多个存储器区域的任何其他合适的数据存储在配置寄存器308中。控制器122基于来自配置寄存器的数据而确定各个存储器区域,并且将中优先级缓冲器152组织成多个中优先级缓冲器300和302,每个缓冲器对应于由配置寄存器308定义的存储器区域。
在此实例中,物理层接口120包括上行链路跨物理层接口310和下行链路跨物理层跨接口312。出站分组缓冲器314允许存储器访问逻辑126向存储器构架桥108,以及因此存储器构架物理层接口(例如,交换机)106输出出站分组。示出为318的传入分组由如本文所描述的控制器处理。在某些实现方式中,可将吞吐量反转,因此下行链路结构对出站分组产生与针对入站流量所示类似的缓冲。
图4是示出根据一个实施方案的用于管理分组传送的方法400的一个实例的流程图。如先前所描述,控制器122决定何时允许从存储器构架物理层接口106进入构架附接存储器模块114的分组流量进入存储器访问逻辑126,诸如SoC的数据构架。在此实例中,基于从存储器构架物理层接口进入SoC的分组类型和目的地存储器区域而选择优先级级别。如框402所示,控制器122通过存储器构架桥108从存储器构架物理层接口106接收传入分组。如框404所示,控制器122确定传入分组的分组类型和目的地存储器区域。在一个实例中,这通过以下方式来完成:评估分组内的数据,其中数据标识分组类型,并且通过目的地地址或其他合适的信息评估本地存储器116内的目的地存储器区域。如框406所示,如果分组类型是原子类型指令分组,则控制器122将原子分组存储在较高优先级缓冲器(在此实例中为高优先级缓冲器150)中。控制器对中优先级缓冲器进行分配以包括多个优先级缓冲器,其中多个优先级缓冲器中的每一者对应于不同的定义的存储器区域。控制器基于与传入分组相关联的存储器地址而将被确定为含有读取请求的类型的传入分组存储到对应的区域优先级缓冲器中。
然而,如果分组是如框408所示的存储请求分组,诸如写入请求,则控制器将分组保存到诸如缓冲器132等本地缓冲器中。如框410所示,如果分组被确定为是表示加载指令或读取请求的加载请求,则控制器122对加载分组给予高于存储指令的优先级,但低于原子请求的优先级,并且将分组存储在中优先级缓冲器152中,而高优先级缓冲器150是较高优先级缓冲器并且缓冲器132被视为低优先级缓冲器。
参考图3,控制器122基于分组的目的地地址而确定将传入分组存储在中优先级缓冲器300和302中的哪一者中。在一个实例中,在传入分组的目的地地址是在由表示由配置寄存器308定义的数据区域的数据标识的地址区域内的情况下,控制器针对传入加载请求将传入分组放置于适当的中优先级缓冲器中。在一个实例中,高优先级缓冲器150和中优先级缓冲器152是先进先出(FIFO)缓冲器,但可采用任何合适的缓冲器机构。因此,控制器122访问定义存储器区域的数据,诸如存储在配置寄存器308或其他存储器位置中的数据。在一些实现方式中,在一个或多个处理器上执行的操作系统和/或驱动器可通过由控制器揭示的配置寄存器来指定存储器区域。在其他实现方式中,控制器包括如由固件或微码所提供的多个预定的指定存储器区域。然而,可采用任何合适的实现方式。
参考图4,如框412所示,所述方法包括将分组分配到高优先级缓冲器150中,之后将其他分组分配到中优先级缓冲器300和302以及缓冲器132中。在一个实例中,这通过根据优先级从缓冲器条目输出分组的多路复用器304来完成。如框414所示,在分组是存储请求的情况下,所述方法包括确定跨物理层接口是否具有足够的带宽来传递写入访问。换句话说,控制器122确定物理层接口120(具有比存储器构架桥108更小的数据速率和更小的链路宽度)是否可在其中传递写入分组。例如,当MUX 304使物理层接口120接收器饱和时,物理层接口120开始拒绝分组。当发生这种情况时,开始如上文所描述对读取请求进行缓冲。如果存在足够的带宽来传递写入访问,则如框416所示,所述方法包括将写入访问传递到本地存储器116。如果不存在足够的带宽来传递写入访问,则如框418所示,所述方法包括一直等待,直到存在足够的带宽,然后根据写入请求分组将写入操作传递到存储器。
关于中优先级缓冲器300和302,如框420所示,如果传入分组是加载请求(例如,读取请求)并且在高优先级缓冲器150中不存在其他高优先级传入分组,则所述方法包括通过将分组从适当的中优先级缓冲器300、302输出到存储器访问逻辑126来从存储器执行加载操作。针对传入分组继续所述方法。
如框422所示,在采用了封顶服务质量机制的情况下,如果分组是读取类型分组,则所述方法包括确定本地存储器116中的具有分组的地址的对应的存储器区域在时间间隔期间是否封顶。例如,如果在所述时间间隔内出现了对本地存储器116中的该存储器区域的过多访问,则控制器122将传入分组存储在中优先级缓冲器152中,直到出现下一个时间间隔为止。
图5是示出用于管理对存储器构架物理层接口的分组传送的装置的另一个实例的框图。在此实例中,控制器122包括分组分析器500、优先级缓冲器分组路由器502和每存储器区域计数器504。分组分析器500通过例如以下方式来对传入分组进行分析以确定分组类型:扫描分组的内容并且解释内容,或者评估分组内的分组类型数据以确定分组是否是关于原子请求(例如,原子指令执行)、加载请求(例如,读取指令)或存储请求(例如,写入指令)的分组,并且将分组506输出到优先级缓冲器分组路由器502,所述优先级缓冲器分组路由器将分组放置于适当的带优先级的缓冲器中。分组506可被直接路由到适当的缓冲器或者包括路由标识符以指示将分组放置于哪一个优先级缓冲器中。如所述,配置寄存器308将所述装置的本地存储器116的至少一些存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架物理层接口访问。例如,控制器122允许经由配置寄存器(例如,特定于模型的寄存器(MSR))将本地存储器116中的一些存储器区域寄存为优先级存储器区域。
在所寄存的存储器区域,以及所有其他存储器构架映射的存储器中,控制器122采用某一类型的服务质量封顶技术。例如,每个寄存的存储器区域具有存储器区域每个时间间隔可接收的不受限制的最大数量的构架访问,并且整个本地存储器116的映射到存储器构架空间中的上限的总和不超过可用的跨PHY容量(例如,受限于PCIe通道宽度和数据速率)。由于所分配的上限不会超过可用的通道容量(超额的分组将一直等待,直到下一个时间间隔为止),与构架中的其他存储器区域隔离的水平是高的。较大的存储器区域接收较大的上限。
对于每个区域的每次存储器访问,每存储器区域计数器504都将递增,并且控制器122将当前计数值与对应于每个区域的不受限制的最大数量的构架访问的阈值进行比较。阈值可被存储为配置寄存器信息或其他机制的一部分。因此,控制器122维持对所述时间间隔内已经通过存储器构架物理层接口对定义的存储器区域进行的存储器访问的数量的计数。在定义的时间间隔期间超过最大允许数量的访问时,控制器122将读取分组(加载分组)存储在中优先级缓冲器152中。每当MUX有较高优先级分组要发出(如原子)时,控制器将分组存储在区域缓冲器中。上限决定了是否从给定的区域缓冲器向MUX发出分组。如果达到上限,对MUX的发放暂时停止,直到下一个时间间隔开始为止(所述时间间隔是可配置的控制器参数)。换句话说,由配置寄存器定义的所寄存的存储器区域是本地存储器116中的存储器区域。如此寄存的每个存储器区域具有缓冲器。在此实例中,中优先级缓冲器300和302与定义的存储器区域相关联并且每一者存储从构架对本地存储器116中的该存储器区域的访问。上限决定了是否从给定的缓冲器向MUX发出访问,因此,存储器访问最终可进入其在本地存储器116中的存储器区域。如果达到上限,对MUX的发放暂时停止,直到下一个时间间隔开始为止。
所存储的分组在下一个时间间隔中从中优先级缓冲器152提供到存储器访问逻辑126。在此实例中,控制器122基于与传入分组相关联的地址而将被确定为含有读取请求的类型的传入分组存储在多个中优先级缓冲器300和302中的每一者中,并且还跟踪存储器区域中的存储器访问的数量以对特定存储器区域中出现的访问的数量进行封顶。
图6是示出根据一个实例的用于管理分组的方法600的一个实例的流程图。如框602所示,所述方法包括将本地存储器的至少一些存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架物理层接口访问。如框604所示,所述方法包括维持对所述时间间隔内已经通过存储器构架物理层接口对本地存储器的定义的存储器区域进行的存储器访问的数量的计数。如框606所示,所述方法包括当超过最大允许数量的访问时将分组存储在优先级缓冲器中,并且如框608所示,所述方法包括在下一个时间间隔中将所存储的分组从缓冲器提供到存储器访问逻辑。
在其他技术优势中,控制器和缓冲器层次结构的采用减少了对作为存储器构架的一部分可寻址的本地存储器的访问的时延并且提高了能量效率。另外,在构架附接存储器模块包括一个或多个处理器的情况下,控制器从一个或多个处理器卸下了分组管理,从而提高处理器操作的速度。本领域的普通技术人员将认识到其他优势。
尽管上文以特定组合描述了特征和元件,但每个特征或元件可在没有其他特征和元件的情况下单独使用,或者以具有或不具有其他特征和元件的各种组合使用。本文在一些实现方式中描述的设备通过使用计算机程序、软件或固件来制造,所述计算机程序、软件或固件并入非暂时性计算机可读存储介质中以供通用计算机或处理器执行。计算机可读存储介质的实例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、磁性介质(诸如内部硬盘和可移动磁盘)、磁光介质、以及光学介质(诸如CD-ROM盘和数字通用光盘(DVD))。
在先前的对各种实施方案的详细描述中,已经参考了形成其一部分的附图,并且在附图中通过例示的方式示出了可实践本发明的具体优选的实施方案。足够详细地描述了这些实施方案以使得本领域技术人员能够实践本发明,并且应理解,在不脱离本发明的范围的情况下,可利用其他实施方案并且可作出逻辑、机械或电改变。为了避免使得本领域技术人员能够实践本发明不需要的细节,本说明书可省略本领域技术人员已知的某些信息。此外,本领域技术人员可容易地构思并入有本公开的教义的许多其他不同的实施方案。因此,本发明不意图限于本文阐述的具体形式,而是相反,意图涵盖如能够合理地包括在本发明的范围内的此类替代方案、修改和等同物。因此,先前的详细描述不应以限制性含义进行理解,并且本发明的范围仅由所附权利要求限定。以上对本文描述的实施方案和实例的详细描述仅出于说明和描述而非限制的目的呈现。例如,所描述的操作以任何合适的顺序或方式完成。因此,可设想的是,本发明涵盖落入以上公开和本文要求保护的基本原理的范围内的任何和所有修改、变化或等同物。
Claims (20)
1.一种用于管理由耦合到存储器构架物理层接口的装置进行的分组传送的方法,所述存储器构架物理层接口具有比所述装置的物理层接口的数据速率更高的数据速率,所述方法包括:
从所述存储器构架物理层接口接收传入分组,所述分组中的至少一些包括不同的指令类型;
确定从所述存储器构架物理层接口接收到的所述传入分组的分组类型;以及
当所述确定的传入分组类型是含有原子请求的类型时,使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送到存储器访问逻辑,所述存储器访问逻辑访问所述装置内的本地存储器。
2.如权利要求1所述的方法,其中所述使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送包括:
将被确定为含有所述原子请求的传入分组在第一优先级缓冲器中进行排队;
将其他分组类型在第二优先级缓冲器中进行排队;以及
使来自所述第一优先级缓冲器的分组的输出优先于来自所述第二优先级缓冲器的分组的输出。
3.如权利要求2所述的方法,所述方法还包括:
访问数据,所述数据至少将所述装置的本地存储器的多个存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架物理层接口访问;
维持对所述时间间隔内已经通过所述存储器构架物理层接口对定义的存储器区域进行的存储器访问的数量的计数;
当超过所述最大允许数量的访问时将读取分组存储在所述第二优先级缓冲器中;以及
在下一个时间间隔中将所述存储的分组从所述第二优先级缓冲器提供到所述存储器访问逻辑。
4.如权利要求1所述的方法,其中所述使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送包括将被确定为含有存储请求的传入分组在缓冲器中进行排队,同时将具有所述原子请求的所述传入分组提供到所述存储器访问逻辑。
5.如权利要求3所述的方法,所述方法还包括:
对所述第二优先级缓冲器进行分配以包括多个第二优先级缓冲器,其中所述多个第二优先级缓冲器中的每一者对应于不同的定义的存储器区域;以及
基于与所述传入分组相关联的地址而将被确定为含有读取请求的类型的传入分组存储在对应于所述不同的定义的存储器区域的相应的第二优先级缓冲器中。
6.一种设备,所述设备包括:
一个或多个处理器;
存储器访问逻辑,所述存储器访问逻辑操作性地耦合到所述一个或多个处理器;
本地存储器,所述本地存储器操作性地耦合到所述存储器访问逻辑并且可配置为存储器的通过存储器构架物理层接口可寻址的可寻址部分;
物理层接口,所述物理层接口操作性地耦合到所述存储器访问逻辑,并且操作来从所述存储器构架物理层接口接收传入分组,所述存储器构架物理层接口具有比所述物理层接口的数据速率更高的数据速率,所述分组中的至少一些包括不同的指令类型;
控制器,所述控制器操作性地耦合到所述物理层接口并且被配置为:
确定从所述存储器构架物理层接口接收到的所述传入分组的分组类型;以及
当所述确定的传入分组类型是含有原子请求的类型时,使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送到所述存储器访问逻辑。
7.如权利要求6所述的设备,所述设备包括:
第一优先级缓冲器和具有低于所述第一优先级缓冲器的优先级的第二优先级缓冲器;并且
其中所述控制器还被配置为:
通过以下方式使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送:将被确定为含有所述原子请求的传入分组在所述第一优先级缓冲器中进行排队;
将其他分组类型在所述第二优先级缓冲器中进行排队;以及
使来自所述第一优先级缓冲器的分组的输出优先于来自所述第二优先级缓冲器的分组的输出。
8.如权利要求6所述的设备,所述设备还包括:
缓冲器,所述缓冲器操作性地耦合到所述控制器;并且
其中所述控制器还被配置为通过以下方式使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送:将被确定为含有存储请求的传入分组在所述缓冲器中进行排队,同时将具有所述原子请求的所述传入分组提供到所述存储器访问逻辑。
9.如权利要求7所述的设备,所述设备还包括:
配置寄存器,所述配置寄存器被配置为包括数据,所述数据至少将装置的本地存储器的多个存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架物理层接口访问;并且
其中所述控制器还被配置为:
维持对所述时间间隔内已经通过所述存储器构架物理层接口对定义的存储器区域进行的存储器访问的数量的计数;
当超过所述最大允许数量的访问时将读取分组存储在所述第二优先级缓冲器中;以及
在下一个时间间隔中将所述存储的分组从所述第二优先级缓冲器提供到所述存储器访问逻辑。
10.如权利要求9所述的设备,其中:
所述第二优先级缓冲器包括多个第二优先级缓冲器,其中所述多个第二优先级缓冲器中的每一者对应于不同的定义的存储器区域;并且
所述控制器还被配置为基于与所述传入分组相关联的地址而将被确定为含有读取请求的类型的传入分组存储在对应于所述不同的定义的存储器区域的相应的第二优先级缓冲器中。
11.如权利要求6所述的设备,所述设备还包括存储器构架桥电路,所述存储器构架桥电路操作性地耦合到所述控制器和所述存储器构架物理层接口,并且操作来在所述物理层接口与所述存储器构架物理层接口之间传递分组。
12.一种设备,所述设备包括:
本地存储器,所述本地存储器操作性地耦合到存储器访问逻辑并且可配置为存储器的通过存储器构架物理层接口可寻址的可寻址部分;
物理层接口,所述物理层接口操作来从所述存储器构架物理层接口接收传入分组,所述存储器构架物理层接口具有比所述物理层接口的数据速率更高的数据速率,所述分组中的至少一些包括不同的指令类型;
传入分组缓冲器结构,所述传入分组缓冲器结构包括层级有序的优先级缓冲器结构,所述优先级缓冲器结构至少包括第一优先级缓冲器和具有低于所述第一优先级缓冲器的优先级的第二优先级缓冲器;
控制器,所述控制器操作性地耦合到所述物理层接口和所述传入分组缓冲器结构;
其中所述控制器被配置为:
确定来自所述存储器构架物理层接口的所述传入分组的分组类型;以及
当所述确定的分组类型指示传入分组中存在原子请求时,将所述传入分组存储在所述第一优先级缓冲器中,
当所述确定的分组类型指示所述传入分组中存在加载指令时,将所述传入分组存储在所述第二优先级缓冲器中;以及
根据优先级缓冲器顺序将所述存储的传入分组以层级顺序提供到所述存储器访问逻辑。
13.如权利要求12所述的设备,所述设备还包括:
缓冲器,所述缓冲器操作性地耦合到所述控制器;并且
其中所述控制器还被配置为通过以下方式使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送:将被确定为含有存储请求的传入分组在存储缓冲器中进行排队,同时将具有所述原子请求的所述传入分组提供到所述存储器访问逻辑。
14.如权利要求13所述的设备,所述设备还包括:
配置寄存器,所述配置寄存器被配置为包括数据,所述数据至少将装置的本地存储器的多个存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架物理层接口访问;并且
其中所述控制器还被配置为:
维持对所述时间间隔内已经通过所述存储器构架物理层接口对定义的存储器区域进行的存储器访问的数量的计数;
当超过所述最大允许数量的访问时将分组存储在所述第二优先级缓冲器中;以及
在下一个时间间隔中将所述第二优先级缓冲器中的所述存储的分组从所述缓冲器提供到所述存储器访问逻辑。
15.如权利要求12所述的设备,其中:
所述第二优先级缓冲器包括多个第二优先级缓冲器,其中所述多个第二优先级缓冲器中的每一者对应于不同的定义的存储器区域;并且
所述控制器还被配置为基于与所述传入分组相关联的地址而将被确定为含有读取请求的类型的传入分组存储在对应于不同的定义的存储器区域的相应的第二优先级缓冲器中。
16.一种系统,所述系统包括:
存储器构架,所述存储器构架操作来将多个分布式非易失性存储器互连;
第一装置,所述第一装置操作性地耦合到所述存储器构架;以及
第二装置,所述第二装置操作性地耦合到所述存储器构架,所述第一装置和所述第二装置具有物理层接口以经由所述存储器构架从彼此接收存储器访问请求,所述第二装置包括:
本地存储器,所述本地存储器操作性地耦合到所述第二装置的存储器访问逻辑,所述本地存储器可配置为所述分布式非易失性存储器的通过所述存储器构架可寻址的可寻址部分;
所述物理层接口,所述物理层接口操作性地耦合到所述存储器访问逻辑,操作来从所述存储器构架接收传入分组,所述存储器构架具有比所述物理层接口的数据速率更高的数据速率,所述分组中的至少一些包括不同的指令类型;
控制器,所述控制器操作性地耦合到所述物理层接口并且被配置为:
确定从所述存储器构架接收到的所述传入分组的分组类型;以及
当所述确定的传入分组类型是含有原子请求的类型时,使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送到所述存储器访问逻辑。
17.如权利要求16所述的系统,其中:
所述第二装置包括第一优先级缓冲器和具有低于所述第一优先级缓冲器的优先级的第二优先级缓冲器;并且
所述控制器还被配置为:
通过以下方式使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送:将被确定为含有所述原子请求的传入分组在所述第一优先级缓冲器中进行排队;
将其他分组类型在所述第二优先级缓冲器中进行排队;以及
使来自所述第一优先级缓冲器的分组的输出优先于来自所述第二优先级缓冲器的分组的输出。
18.如权利要求16所述的系统,其中:
所述第二装置包括操作性地耦合到所述控制器的缓冲器;并且所述控制器还被配置为通过以下方式使具有所述原子请求的所述传入分组优先于传入分组的其他分组类型传送:将被确定为含有存储请求的传入分组在所述缓冲器中进行排队,同时将具有所述原子请求的所述传入分组提供到所述存储器访问逻辑。
19.如权利要求18所述的系统,其中所述第二装置包括:
配置寄存器,所述配置寄存器被配置为包括数据,所述数据至少将所述装置的本地存储器的多个存储器区域定义为优先级存储器区域,其中每个存储器区域每个时间间隔允许有不受限制的最大数量的存储器构架访问;并且
其中所述控制器还被配置为:
维持对所述时间间隔内已经通过所述存储器构架对定义的存储器区域进行的存储器访问的数量的计数;
当超过所述最大允许数量的访问时将读取分组存储在所述第二优先级缓冲器中;以及
在下一个时间间隔中将所述存储的分组从所述第二优先级缓冲器提供到所述存储器访问逻辑。
20.如权利要求19所述的系统,其中:
所述第二优先级缓冲器包括多个第二优先级缓冲器,其中所述多个第二优先级缓冲器中的每一者对应于不同的定义的存储器区域;并且
所述控制器还被配置为基于与所述传入分组相关联的地址而将被确定为含有读取请求的类型的传入分组存储在对应于不同的定义的存储器区域的相应的第二优先级缓冲器中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/701,794 | 2019-12-03 | ||
US16/701,794 US11720279B2 (en) | 2019-12-03 | 2019-12-03 | Apparatus and methods for managing packet transfer across a memory fabric physical layer interface |
PCT/US2020/053891 WO2021112947A1 (en) | 2019-12-03 | 2020-10-02 | Apparatus and methods for managing packet transfer across a memory fabric physical layer interface |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115004163A true CN115004163A (zh) | 2022-09-02 |
Family
ID=74096046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080094067.XA Pending CN115004163A (zh) | 2019-12-03 | 2020-10-02 | 管理跨存储器构架物理层接口的分组传送的设备和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11720279B2 (zh) |
EP (1) | EP4070203A1 (zh) |
JP (1) | JP2023504441A (zh) |
KR (1) | KR20220103794A (zh) |
CN (1) | CN115004163A (zh) |
WO (1) | WO2021112947A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11797178B2 (en) * | 2021-07-16 | 2023-10-24 | Hewlett Packard Enterprise Development Lp | System and method for facilitating efficient management of data structures stored in remote memory |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728839B1 (en) * | 1998-10-28 | 2004-04-27 | Cisco Technology, Inc. | Attribute based memory pre-fetching technique |
US7979588B1 (en) | 2007-06-28 | 2011-07-12 | Emc Corporation | Data storage system having acceleration path for congested packet switching network |
US9075557B2 (en) * | 2013-05-15 | 2015-07-07 | SanDisk Technologies, Inc. | Virtual channel for data transfers between devices |
US9524219B2 (en) * | 2013-09-27 | 2016-12-20 | Intel Corporation | Atomic transactions to non-volatile memory |
US9317204B2 (en) * | 2013-11-14 | 2016-04-19 | Sandisk Technologies Inc. | System and method for I/O optimization in a multi-queued environment |
US20160188529A1 (en) | 2014-12-25 | 2016-06-30 | Intel Corporation | Guaranteed quality of service in system-on-a-chip uncore fabric |
US10073809B2 (en) | 2015-04-27 | 2018-09-11 | Intel Corporation | Technologies for scalable remotely accessible memory segments |
US10152436B2 (en) * | 2016-03-30 | 2018-12-11 | Oracle International Corporation | Mutual exclusion in a non-coherent memory hierarchy |
US10346342B1 (en) | 2017-03-07 | 2019-07-09 | Amazon Technologies, Inc. | Uniform memory access architecture |
US11126587B2 (en) * | 2018-05-07 | 2021-09-21 | Micron Technology, Inc. | Event messaging in a system having a self-scheduling processor and a hybrid threading fabric |
-
2019
- 2019-12-03 US US16/701,794 patent/US11720279B2/en active Active
-
2020
- 2020-10-02 WO PCT/US2020/053891 patent/WO2021112947A1/en unknown
- 2020-10-02 JP JP2022532022A patent/JP2023504441A/ja active Pending
- 2020-10-02 EP EP20830018.6A patent/EP4070203A1/en active Pending
- 2020-10-02 CN CN202080094067.XA patent/CN115004163A/zh active Pending
- 2020-10-02 KR KR1020227021944A patent/KR20220103794A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
US20210165606A1 (en) | 2021-06-03 |
WO2021112947A1 (en) | 2021-06-10 |
EP4070203A1 (en) | 2022-10-12 |
US11720279B2 (en) | 2023-08-08 |
JP2023504441A (ja) | 2023-02-03 |
KR20220103794A (ko) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8656071B1 (en) | System and method for routing a data message through a message network | |
US8225048B2 (en) | Systems and methods for resource access | |
US20140129749A1 (en) | Dynamic shared read buffer management | |
US8429315B1 (en) | Stashing system and method for the prevention of cache thrashing | |
US8943507B2 (en) | Packet assembly module for multi-core, multi-thread network processors | |
US10397144B2 (en) | Receive buffer architecture method and apparatus | |
CN115361336B (zh) | 具有缓存的路由器、路由交换网络系统、芯片及路由方法 | |
TWI536772B (zh) | 直接提供資料訊息至協定層之技術 | |
US10705985B1 (en) | Integrated circuit with rate limiting | |
US20060259648A1 (en) | Concurrent read response acknowledge enhanced direct memory access unit | |
CN115004163A (zh) | 管理跨存储器构架物理层接口的分组传送的设备和方法 | |
US9804959B2 (en) | In-flight packet processing | |
WO2020247240A1 (en) | Extended memory interface | |
US9665519B2 (en) | Using a credits available value in determining whether to issue a PPI allocation request to a packet engine | |
US11650941B2 (en) | Computing tile | |
US11579882B2 (en) | Extended memory operations | |
US10002099B2 (en) | Arbitrated access to resources among multiple devices | |
US7917706B1 (en) | SDRAM controller | |
US9548947B2 (en) | PPI de-allocate CPP bus command | |
US20230195658A1 (en) | Multichannel memory arbitration and interleaving scheme | |
US20230367713A1 (en) | In-kernel cache request queuing for distributed cache | |
US9413665B2 (en) | CPP bus transaction value having a PAM/LAM selection code field | |
US9699107B2 (en) | Packet engine that uses PPI addressing | |
US9559988B2 (en) | PPI allocation request and response for accessing a memory system | |
CN115344515A (zh) | 实现访问控制的方法、片上计算系统及芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |