用于访问作为存储器的存储设备的系统和方法与流程

文档序号:16628097发布日期:2019-01-16 06:18阅读:301来源:国知局
用于访问作为存储器的存储设备的系统和方法与流程

本公开涉及用于访问作为存储器的存储设备(storage-as-memory)的系统和方法。



背景技术:

存储装置经常作为长等待时间硬件接口上的装置,通过低效软件层被访问。随着低等待时间存储装置的出现,对这些装置的访问等待时间正变得极低,接近一般ddr存储器访问等待时间。

附图说明

图1图示了用于包括多核处理器的计算系统的框图的实施例。

图2是根据本公开的实施例的包括现场可编程门阵列和系统代理的示例多芯片平台的示意图。

图3是根据本公开的实施例的包括现场可编程门阵列和系统代理的另一示例多芯片平台的示意图。

图4是根据本公开的实施例的图示了在线(in-line)加速器电路的包括现场可编程门阵列和系统代理的示例多芯片平台的示意图。

图5a是根据本公开的实施例的包括现场可编程门阵列和系统代理以便连接到构造连接的作为存储器的存储设备的示例多芯片平台的示意图。

图5b是根据本公开的实施例的示例构造连接的作为存储器的存储设备的示意图。

图6a是根据本公开的实施例的用于处理存储器访问请求的过程流程图。

图6b是根据本公开的实施例的用于异步存储器访问执行的过程流程图。

图6c是根据本公开的实施例,用于执行在线数据处理的过程流程图。

图7是根据本公开的实施例的由将一组组件互连的点对点链路组成的构造的实施例的示意图。

图8是根据本公开的实施例的分层协议堆栈的实施例的示意图。

图9是根据本公开的实施例的pcie事务描述符的实施例的示意图。

图10是根据本公开的实施例的pcie串行点对点构造的实施例的示意图。

图11是利用包括执行指令的执行单元的处理器所形成的示范计算机系统的示意框图,其中互连的一个或多个实现根据本公开的一个实施例的一个或多个特征。

图12是根据本公开的实施例的系统的示意框图。

具体实施方式

在后面的描述中,许多特定细节被阐述,诸如特定类型的处理器和系统配置、特定硬件结构、特定架构的(architectural)和微架构的细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线级和操作等等的示例,以便提供对本公开的透彻理解。然而,对于本领域中技术人员来说将显而易见的是,这些特定细节无需被采用来实践本公开。在其它实例中,公知的组件或方法,诸如特定和备选的处理器架构、用于描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、算法在代码中的特定表达、特定下电(powerdown)和门控技术/逻辑以及计算机系统的其它特定操作细节,没有被详细地描述,以便避免不必要地使本公开模糊。

尽管后面的实施例可参考特定集成电路中(诸如在计算平台或微处理器中)的能量节约和能量效率来描述,但其它实施例可应用于其它类型的集成电路和逻辑装置。本文中所描述的实施例的相似技术和教导可被应用于其它类型的电路或半导体装置,其可还受益于更好的能量效率和能量节约。例如,公开的实施例不被限制于桌上型计算机系统或ultrabooks™。并且可还被用于其它装置(诸如手持装置、平板、其它薄的笔记本电脑、片上系统(soc)装置和嵌入式应用)中。手持装置的一些示例包括蜂窝电话、互联网协议装置、数字照相机、个人数字助理(pda)和手持pc。嵌入式应用典型地包括微控制器、数字信号处理器(dsp)、片上系统、网络计算机(netpc)、机顶盒、网络中枢、广域网(wan)交换机、或能够执行在下面所教导的功能和操作的任何其它系统。此外,本文中所描述的设备、方法、和系统不被限制于物理计算装置,而是可还涉及对于能量节约和效率的软件优化。正如将在下面的描述中变得容易明白的,本文中所描述的方法、设备和系统的实施例(无论关于硬件、固件、软件、或是其组合)对与性能考虑相权衡的“绿色技术”未来是至关重要的。

随着计算系统在进步,其中的组件正变得更复杂。作为结果,互连架构(用于组件间耦合和通信)在复杂性方面也在增加,以确保对于优化的组件操作满足带宽要求。此外,不同市场段(segment)需求互连架构的不同方面以适合市场的需要。例如,服务器要求更高的性能,而移动生态系统有时能够为功率节省牺牲整体性能。然而,用最大的功率节省来提供最高可能的性能是大多数构造的单一目的。在下面,多个互连被讨论,其将潜在地受益于本文中所描述的公开的方面。

参见图1,用于包括多核处理器的计算系统的框图的实施例被描绘。处理器100包括任何处理器或处理装置,诸如微处理器、嵌入式处理器、数字信号处理器(dsp)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(soc)或执行代码的其它装置。在一个实施例中,处理器100包括至少两个核—101和102,这可包括不对称核或对称核(所示实施例)。然而,处理器100可包括可以是对称或不对称的任何数量的处理元件。

在一个实施例中,处理元件指的是用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、过程单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或能够为处理器保存状态(诸如执行状态或架构状态)的任何其它元件。换而言之,在一个实施例中,处理元件指的是能够独立地与代码(诸如软件线程、操作系统、应用或其它代码)关联的任何硬件。物理处理器(或处理器插座)典型地指的是集成电路,其潜在地包括任何数量的其它处理元件,诸如核或硬件线程。

核通常指的是位于集成电路上的逻辑,其能够保持独立架构状态,其中每个独立维持的架构状态与至少一些专用执行资源关联。相较于核,硬件线程典型地指的是位于集成电路上能够保持独立架构状态的任何逻辑,其中独立保持的架构状态共享对执行资源的访问。如能看到的一样,在某些资源共享,并且其它资源专用于某种架构状态时,硬件线程与核的命名之间的界线重叠。然而,核和硬件线程经常被操作系统视为单独的逻辑处理器,其中操作系统能够单独调度每个逻辑处理器上的操作。

如图1中所示,物理处理器100包括两个核—核101和102。在这里,核101和102被认为是对称核,即具有相同配置、功能单元和/或逻辑的核。在另一实施例中,核101包括乱序处理器核,而核102包括有序处理器核。然而,核101和102可被单独地被选自任何类型的核,诸如本机核(nativecore)、软件管理核、适于执行本机的指令集架构(isa)的核、适于执行转换的指令集架构(isa)的核、协设计(co-designed)核或其它已知的核。在异质核环境(即,非对称核)中,转换的某个形式(诸如二进制转换)可被用于在一个或两个核上调度或执行代码。还有为了进一步讨论,核101中图示的功能单元在下面被进一步详细地描述,因为在所描绘的实施例中核102中的单元以相似的方式操作。

如所描绘的,核101包括两个硬件线程101a和101b,其可还被称为硬件线程槽101a和101b。因此,软件实体(诸如操作系统)在一个实施例中潜在地将处理器100视为四个分开的处理器,即,四个逻辑处理器或处理元件,其能够并发执行四个软件线程。如在上面间接提到的,第一线程与架构状态寄存器101a关联,第二线程与架构状态寄存器101b关联,第三线程可与架构状态寄存器102a关联,且第四线程可与架构状态寄存器102b关联。在这里,架构状态寄存器(101a、101b、102a和102b)的每个可被称为处理元件、线程槽、或线程单元,如上面所描述的。如所图示的,架构状态寄存器101a被复制在架构状态寄存器101b中,所以单独架构状态/上下文能够被存储用于逻辑处理器101a和逻辑处理器101b。在核101中,诸如分配器和重命名块130中的指令指针和重命名逻辑的其它更小的资源也可被复制用于线程101a和101b。一些资源(诸如在重排序/引退单元135中的重排序缓冲器、iltb120、加载/存储缓冲器、和队列)可通过分区被共享。诸如通用内部寄存器、页表基址寄存器、低级数据高速缓存和数据tlb115、执行单元140及部分乱序单元135的其它资源潜在地被完全共享。

处理器100经常包括其它资源,这些资源可被完全共享,通过分区共享或由处理元件专用/专用于处理元件。在图1中,纯示范性处理器(带有处理器的说明性的逻辑单元/资源)的实施例被图示。注意,处理器可包括或省略任何这些功能单元,以及包括任何其它已知的未描绘的功能单元、逻辑或固件。如所图示的,核101包括简化的代表性乱序(ooo)处理器核。但在不同实施例中可利用有序处理器。ooo核包括分支目标缓冲器120以预测要被执行/采用的分支和指令转换缓冲器(i-tlb)120以存储对于指令的地址转换条目。

核101进一步包括耦合到获取单元120以将获取的元素解码的解码模块125。在一个实施例中,获取逻辑包括分别与线程槽101a、101b关联的单独定序器。通常核101与第一isa关联,其定义/指定在处理器100上可执行的指令。作为第一isa的部分的机器代码指令经常包括引用/指定要执行的指令或操作的(被称为操作码的)指令的一部分。解码逻辑125包括电路系统(circuitry),其由这些指令的操作码识别这些指令并且在流水线中传递解码的指令以用于如由第一isa所定义的处理。例如,如在下面更详细所讨论的,在一个实施例中,解码器125包括设计成或适于识别特定指令(诸如事务指令)的逻辑。作为由解码器125进行的识别的结果,架构或核101采用特定的,预定义的动作来执行与适当指令关联的任务。重要的是注意,本文中所描述的任何任务、块、操作和方法可响应单个或多个指令被执行;它们中的一些可以是新的或旧的指令。注意,在一个实施例中,解码器126识别相同isa(或其子集)。备选的是,在异质核环境中,解码器126识别第二isa(第一isa的子集或完全不同的isa)。

在一个示例中,分配器和重命名器块130包括分配器以预留资源,诸如存储指令处理结果的寄存器堆。然而,线程101a和101b潜在地能够乱序执行,其中分配器和重命名器块130也预留其它资源,诸如跟踪指令结果的重排序缓冲器。单元130也可包括寄存器重命名器,以将程序/指令引用寄存器重命名为处理器100内部的其它寄存器。重排序/引退单元135包括组件(诸如上面提及的重排序缓冲器、加载缓冲器和存储缓冲器)以支持乱序执行和乱序执行的指令的稍后的有序引退。

在一个实施例中,调度器和执行单元块140包括调度器单元以在执行单元上调度指令/操作。例如,浮点指令在具有可用浮点执行单元的执行单元的端口上被调度。与执行单元关联的寄存器堆也被包括,以存储信息指令处理结果。示范执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其它已知执行单元。

更低级别数据高速缓存和数据转换缓冲器(d-tlb)150被耦合到执行单元140。数据高速缓存要存储最近使用的/操作的(used/operatedon)元素,诸如数据操作数,其潜在地被保留在存储器一致性状态中。d-tlb要存储最近的虚拟/线性到物理地址转换。作为特定示例,处理器可包括页表结构以将物理存储器分解为多个虚拟页。

在这里,核101和102共享对更高级或更远(further-out)高速缓存(诸如与芯片上接口110关联的第二级高速缓存)的访问。注意,更高级别或更远指的是增大的或者变得离执行单元更远的高速缓存级别。在一个实施例中,更高级高速缓存是末级数据高速缓存—处理器100上的存储器层级中的末级高速缓存—诸如第二或第三级数据高速缓存。然而,更高级高速缓存并非受如此限制,因为它可与指令高速缓存相关联或者包括指令高速缓存。踪迹高速缓存—一种类型的指令高速缓存—转而可耦合在解码器125之后以存储最近解码的踪迹。在这里,指令潜在地指的是可解码成多个微指令(宏操作)的宏指令(即,由解码器识别的一般指令)。

在所描绘的配置中,处理器100也包括芯片上接口模块110。在历史上,下面更详细描述的存储器控制器已被包括在处理器100外部的计算系统中。在此情形中,芯片上接口110要与处理器100外部的装置通信,所述外部装置为诸如系统存储器175、芯片集(经常包括连接到存储器175的存储器控制器中枢和连接外设装置的i/o控制器中枢)、存储器控制器中枢、北桥或其它集成电路。而且在此情形中,总线105可包括任何已知互连,诸如多点总线(multi-dropbus)、点对点互连、串行互连、并行总线、一致(例如高速缓存一致)总线、分层协议架构、差分总线、和gtl总线。

存储器175可被专用于处理器100或者与系统中的其它装置共享。存储器175的类型的普通示例包括dram、sram、非易失存储器(nv存储器)和其它已知的存储装置。注意,装置180可包括图形加速器、处理器或耦合到存储器控制器中枢的卡、耦合到i/o控制器中枢的数据存储设备、无线收发器、闪存装置、音频控制器、网络控制器或其它已知的装置。

然而最近,随着更多逻辑和装置正被集成在单个管芯(诸如soc)上,这些装置的每个可被结合在处理器100上。例如在一个实施例中,存储器控制器中枢与处理器100在相同的封装和/或管芯上。在这里,核110的一部分(核上(on-core)部分)包括用于与诸如存储器175或图形装置180的其它装置进行接口的一个或多个控制器。包括用于与此类装置接口的互连和控制器的配置经常称为核上(或非核(un-core)配置)。作为示例,芯片上接口110包括用于芯片上通信的环形互连和用于芯片外通信的高速串行点对点链路105。然而,在soc环境中,甚至更多装置(诸如网络接口、协处理器、存储器175、图形处理器180和任何其它已知的计算机装置/接口)可被集成在单个管芯或集成电路上,以给小的形状因子(formfactor)提供高功能性和低功率消耗。

在一个实施例中,处理器100能够执行编译、转换和/或优化应用代码176的编译器、优化和/或转换器代码177以支持本文中描述的设备和方法或者以与其进行接口。编译器通常包括程序或程序集,以将源文本/代码转换成目标文本/代码。通常,使用编译器的程序/应用代码的编译在多个阶段和遍(pass)中被完成,以将高级编程语言代码变换成低级机器或汇编语言代码。然而,单遍编译器可仍被用于简单编译。编译器可利用任何已知的编译技术,并执行任何已知的编译器操作,诸如词汇分析、预处理、解析、语义分析、代码生成、代码变换、和代码优化。

更大的编译器经常包括多个阶段,但最常见的是,这些阶段被包括在两个一般的阶段内:(1)前端,即通常在其中可发生句法处理、语义处理和某个变换/优化,和(2)后端,即通常在其中发生分析、变换、优化和代码生成。一些编译器指的是中间端(middle),其示出了在编译器的前端与后端之间划界(delineation)的模糊性。因此,对插入、关联、生成或编译器的其它操作的引用可在任何上述阶段或遍中以及编译器的任何其它已知阶段或遍中发生。作为说明性示例,编译器潜在地在编译的一个或多个阶段中插入操作、调用、函数等,诸如在编译的前端阶段插入调用/操作和随后在变换阶段期间将调用/操作变换到更低级代码。注意,在动态编译期间,编译器代码或动态优化代码可插入此类操作/调用以及优化代码以用于在运行时间期间的执行。作为特定的说明性示例,二进制代码(已经编译的代码)可在运行时间期间被动态优化。在这里,程序代码可包括动态优化代码、二进制代码或其组合。

下面详细的描述涉及附图。相同参考标号可在不同图中用于识别相同或相似的元件。在后面的描述中,为解释而不是限制的目的,特定细节被阐述,诸如特定结构、架构、接口、技术等,以便提供对各种实施例的各种方面的透彻理解。然而,对于受益于本公开的本领域中技术人员来说将显而易见的是,各种实施例的各种方面可在背离这些特定细节的其它示例中被实践。在某些实例下,公知的装置、电路和方法的描述被忽略,以免不必要地细节使各种实施例的描述模糊。

当前软件和硬件接口开销禁止改进的存储装置能力的有效利用,诸如作为存储器的存储设备。本公开针对将存储装置显露为使用硬件能力从核直接可访问的一致存储器。本公开包括使用处理器集成的现场可编程门阵列(fpga)来利用在fpga中的可编程逻辑,以在一致性域中创建系统代理,以通过pcie将存储器语义扩展到存储装置。

今天,存储设备是长等待时间装置,其使用来自核的装置模型来编程和访问。这意味着长等待时间io接口(门铃、中断)和存储sw堆栈的许多层。本公开将存储设备(尤其是,带有低装置访问等待时间的低等待时间nvm技术)显露为一致存储器。这允许向系统显露巨大尺寸的存储器,这有益于像存储器中数据库的许多应用,并且提供用于许多大数据应用的低等待时间存储。

图2是根据本公开的实施例的包括现场可编程门阵列(fpga)204和系统代理206的示例多芯片平台(mcp)202的示意图200。mcp202包括处理器212。处理器212能够是硬件处理器,诸如微处理器。处理器212包括配置成执行来自例如应用228的存储器访问指令的系统代理214。应用228能够做出存储设备访问请求232和存储器访问请求230,每个请求能够由处理器212(或特别地由系统代理214)处理。系统代理能够通过pcie接口224或通过诸如符合串行高级技术附连(sata)的链路的其它接口来访问存储设备226。存储器访问通过系统代理214被路由到ddr接口234,通过系统代理214+存储器控制器207,或者到一致性域中的其它归属代理。

mcp202也包括fpga204。fpga204包括诸如通过数字设计在硬件中实现的系统代理206。系统代理206配置成执行存储器访问指令。系统代理206能够识别用于其通道的物理地址,以便通过符合qpi或upi的链路216执行存储器访问请求。系统代理206将物理地址转换成信道地址,并且将它传递到存储器控制器207。系统代理负责将存储器映射到处理器系统地址空间。系统代理206可也负责跨在系统中的高速缓存管理一致性。每个存储器控制器207具有表格以查找对于其正传递的通道地址的每个范围该做什么。系统代理206能够向系统代理214通告地址空间。系统代理214能够将对通告的地址空间的存储器访问请求引导到系统代理206。

本公开的方面针对建造到fpga204中的系统代理206。系统代理206配置成符合处理器快速路径互连(qpi)或超级路径互连(upi)一致性域,并且代表通过hssi(高速串行接口)208连接的存储装置210参与存储器事务。系统代理206显露并且管理通过hssi208连接到它的作为存储器的存储设备210。系统代理206通过qpi/upi协议216参与存储器事务,并且响应与在它后面的存储器有关的消息。

系统代理206也管理存储在它拥有的存储器中或者在连接到处理器的dram中的目录结构,并且可选地在fpga块ram234中缓存它。

系统代理206配置成作为硬件设计操作,其将作为存储器的存储设备通过基于硬件的一致性协议耦合到处理器。

在存储器请求到达系统代理214时,系统代理214能够将系统代理206识别为用于处理存储器访问请求的负责实体。例如,系统代理214能够识别用于处理存储器访问请求的系统代理206,其是fpga204的一部分。系统代理206能够通过从作为存储器的存储设备元件210通过hssi208而访问适当的地址,来处理存储器访问请求。

尽管被示为mcp,但单芯片平台也能够被使用,诸如专用集成电路。实施例能够被扩展超过fpga实现,以包括能够连接到处理器和存储设备的任何加速器,并且能够包括硬件系统代理。此类加速器的其它示例能够包括专用加速器芯片或图形处理单元上的通用计算(gpgpu)。

图3是根据本公开的实施例的包括现场可编程门阵列304和系统代理306的另一示例多芯片平台302的示意图300。在一些实施例中,fpga304支持通过系统代理306的存储器rd/wr328事务到存储器控制器316的直接映射314,其提供附加的流控制。fpga304也包括用于执行数据的在线处理(读取或写入数据)的一个或多个加速器电路308。

fpga304能够包括4kb行高速缓存312。4kb行高速缓存312能够缓存来自存储设备210的数据块。在一些实施例中,存储器读取和写入能够通过使用异步读取/写入指令来对长等待时间做出解释。系统代理214能够向处理器系统代理214发送读取确认。读取确认能够在读取执行的等待时间期间被发送,允许处理器212移动到下面的处理步骤。系统代理306能够将从存储设备210检索的数据块缓存到行高速缓存312。相似地,系统代理306能够提供写入确认,并且在行高速缓存312中缓存写入数据,并且随后将写入数据存储到在作为存储器的存储设备装置210中的存储器中。

系统代理306能够也在更高块大小(与在高速缓存行上的64b请求相反,在4kb行高速缓存312中的4kb块中)缓存从存储设备210馈送的数据。

目录高速缓存310能够通过保留存储器目录的一部分或子集,提供附加的性能。目录高速缓存310能够是fpga304的部分,其缓存存储器目录的一部分—由潜在若干万亿字节的可用(或更多)存储来表示的存储器。

在实施例中,fpga304能够仿真pcie根复合体。通过仿真pcie根复合体和pcie接口,系统代理306能够直接在作为存储器的存储设备210中显露存储器。

在一些实现中,在fpga304中的现有pcieip连接到基于现有pcie的存储设备解决方案。为将一致存储器扩展到装置侧,qpi消息通过pcie协议来隧穿。代替通过pcie处理非易失性存储器高速(nvme)协议326,控制器需要通过pcie处理rd/wr事务。

图4是根据本公开的实施例的图示了在线加速器电路的包括现场可编程门阵列404和系统代理406的示例多芯片平台402的示意图400。实施例包括建造到fpga404中的在线加速器414a和414b,以便运行存储器侧流播加速(例如,加密/解密、压缩/解压缩、结构化查询语言(sql)加速、提取变换加载(etl)功能等)。加速器414a和414b能够使用建造到fpga逻辑中的可选高速缓存412和高速缓存控制器410来改进性能。

图4也图示了某些存储器控制器组件能够如何被移动到fpga404以将存储设备显露为存储器210。fpga404能够包括存储器控制器416,其包括4kb高速缓冲存储器418。fpga404能够也包括nvme驱动器420作为仿真nvme驱动器功能性的硬件电路设计。

与上面示出的那些实施例相似,处理器212能够包括系统代理214,其能够跨诸如upi链路218的符合qpi的链路与fpga404进行接口。fpga404被示为包括upi接口408,其能够促进在系统代理406或缓存代理410与系统代理214之间的符合qpi(或upi特定)的协议。理解的是,本文中通常所描述的fpga将包括协议接口,诸如upi接口408,以便促进在系统代理214与诸如系统代理406的fpga组件之间的通信。

图5a是根据本公开的实施例的包括现场可编程门阵列504和系统代理506以便连接到构造连接的作为存储器的存储设备的示例多芯片平台502的示意图500。图5b是根据本公开的实施例的示例构造连接的作为存储器的存储设备的示意图550。在本公开的实施例中,构造附连的存储设备(或传统dram存储器)能够被显露为存储器。在该情形中,hssi208被连接到通过构造协议驱动存储器事务的外部构造。存储器的扩展能够用于通过构造显露分解式作为存储器的存储设备516或分解式存储器518。

fpga504能够包括构造接口514,其能够提供仿真构造接口的硬件步骤。fpga504能够也包括nvme驱动器512以提供跨hssi208的存储器访问。在实施例中,nvme驱动器512或构造514能够包括仿真pcie接口的电路系统,允许nvme驱动器512执行跨hssi208的存储器rd/wr。fpga504能够也包括高速缓存510和耦合到系统代理506的存储器控制器508。

图5b图示了示例分解式作为存储器的存储设备516和分解式存储器518。分解式作为存储器的存储设备516能够包括多个网络化的存储装置520。分解式存储器518能够包括多个网络化的存储器元件522。

即使在这里示出的构造具有2d网状拓扑,但它能够基于放缩要求,被替换为任何拓扑。hssi208也能够被扩展以支持更高带宽,特别是如果dram522被附连到构造。示为在fpga中实现的组件能够最终出于功率/性能原因而作为硬化逻辑最终被集成到处理器中。

对于围绕长等待时间存储器读取的性能和潜在功能问题,能够使用异步支持。即,替代通过数据响应返回的同步读取,系统代理能够通过对处理器的非数据响应来发布并且完成指令。随后,数据通过由在fpga中的4kb行高速缓存的数据到达触发的用户级mwait被接收。

图6a是根据本公开的实施例的用于处理存储器访问请求的过程流程图600。过程能够由现场可编程门阵列(fpga)或fpga的一个或多个组件(诸如系统代理的硬件实现)来执行。系统代理例如能够接收来自通过诸如符合超级路径互连(upi)的链路的符合快速路径互连(qpi)的链路耦合到fpga的处理器的另一系统代理的存储器访问请求(602)。系统代理能够跨高速串行互连(hssi)识别在连接的作为存储器的存储设备中的存储位置(604),并且执行存储器访问请求(606)。

图6b是根据本公开的实施例的用于异步存储器访问执行的过程流程图610。过程能够由现场可编程门阵列(fpga)或fpga的一个或多个组件(诸如系统代理的硬件实现)来执行。系统代理例如能够接收来自通过诸如符合超级路径互连(upi)的链路的符合快速路径互连(qpi)的链路耦合到fpga的处理器的另一系统代理的存储器访问请求(612)。系统代理能够跨高速串行互连(hssi)识别在连接的作为存储器的存储设备中的存储位置(614),以执行存储器访问请求(616)。

系统代理能够随后向请求系统代理提供存储器访问请求的执行的确认(618)。在实施例中,确认能够包括读取确认。系统代理能够在fpga中的行高速缓存中缓存读取数据(620),并且在以后某一时间从fpga行高速缓存传送读取数据(622)。

在实施例中,系统代理能够提供写入确认,并且能够在fpga中的行高速缓存中缓存写入数据,并且在稍后的时间在高速缓存中存储写入数据。

图6c是根据本公开的实施例的用于执行在线数据处理的过程流程图630。过程能够由现场可编程门阵列(fpga)或fpga的一个或多个组件(诸如系统代理的硬件实现)来执行。系统代理例如能够接收来自通过诸如符合超级路径互连(upi)的链路的符合快速路径互连(qpi)的链路耦合到fpga的处理器的另一系统代理的存储器访问请求(632)。系统代理能够识别在连接的作为存储器的存储设备中的存储器位置(634)。系统代理能够将数据(读取或写入数据)引导到作为fpga的一部分的一个或多个加速器电路(636)。一个或多个加速器电路能够处理数据(638)。系统代理能够随后向处理器提供数据(对于读取指令),或者能够在存储器中存储处理的数据(对于写入指令)(640)。

本公开的方面通过非ddr接口将大容量低等待时间(存储)装置显露为存储器,其优点包括通过传统存储器rd/wr语义对高容量存储器的访问,而不牺牲高性能ddr接口。这具有在使用大量存储器中计算的情况下改进应用性能的潜能。

一个互连构造架构包括外设组件互连(pci)高速(pcie)架构。pcie的主要目的是使来自不同供应商的组件和装置能够在开放架构中跨多个市场段;客户端(桌上型和移动)、服务器(标准和企业)及嵌入式和通信装置而互操作。pci高速是为广泛的多种将来计算和通信平台定义的高性能通用i/o互连。一些pci属性(诸如其使用模型、加载存储架构和软件接口)已通过其修订被保持,而以前的并行总线实现已被替换成高度可放缩的完全串行接口。pci高速的更近版本利用点对点互连、基于交换的技术和分组化协议中的发展,来输送新级别的性能和特征。功率管理、服务质量(qos)、热插拔/热交换支持、数据完整性及错误处理处于由pci高速支持的高级特征中的一些特征之中。

参见图7,由将一组组件互连的点对点链路构成的构造的实施例被图示。系统700包括耦合到控制器中枢715的处理器705和系统存储器710。处理器705包括任何处理元件,诸如微处理器、主机处理器、嵌入式处理器、协处理器或其它处理器。处理器705通过前端总线(fsb)706被耦合到控制器中枢715。在一个实施例中,fsb706是如下所描述的串行点对点互连。在另一实施例中,链路706包括符合不同互连标准的串行差分互连架构。

系统存储器710包括任何存储器装置,诸如随机存取存储器(ram)、非易失性(nv)存储器或可由系统700中的装置访问的其它存储器。系统存储器710通过存储器接口716被耦合到控制器中枢715。存储器接口的示例包括双倍数据率(ddr)存储器接口、双通道ddr存储器接口和动态ram(dram)存储器接口。

在一个实施例中,控制器中枢715是外设组件互连高速(pcie或pcie)互连层级中的根中枢、根复合体或根控制器。控制器中枢715的示例包括芯片集、存储器控制器中枢(mch)、北桥、互连控制器中枢(ich)、南桥及根控制器/中枢。术语芯片集经常指两个物理上分离的控制器中枢,即,耦合到互连控制器中枢(ich)的存储器控制器中枢(mch)。注意,当前系统经常包括与处理器705集成的mch,而控制器715要以如下所描述的相似的方式与i/o装置通信。在一些实施例中,通过根复合体715可选地支持对等路由。

在这里,控制器中枢715通过串行链路719被耦合到交换器/桥接器720。也可称为接口/端口717和721的输入/输出模块717和721包括/实现分层协议堆栈以在控制器中枢715与交换器720之间提供通信。在一个实施例中,多个装置能够被耦合到交换器720。

交换器/桥接器720将分组/消息从装置725往上游(即,沿层级上行朝向根复合体)路由到控制器中枢715,并且从处理器705或系统存储器710往下游(即,沿层级下行离开根控制器)路由到装置725。在一个实施例中,交换器720指的是多个虚拟pci到pci桥接装置的逻辑组合件。装置725包括要耦合到电子系统的任何内部或外部装置或组件,诸如i/o装置、网络接口控制器(nic)、内插卡、音频处理器、网络处理器、硬盘驱动器、存储装置、cd/dvdrom、监视器、打印机、鼠标、键盘、路由器、便携式存储装置、火线装置、通用串行总线(usb)装置、扫描仪及其它输入/输出装置。在pcie术语中,诸如装置经常被称为端点。虽然未明确示出,但装置725可包括pcie到pci/pci-x桥接器以支持遗留或其它版本pci装置。pcie中的端点装置经常被归类为遗留pcie或根复合体集成端点。

图形加速器730也通过串行链路732被耦合到控制器中枢715。在一个实施例中,图形加速器730被耦合到mch,其被耦合到ich。交换器720和相应地i/o装置725因而被耦合到ich。i/o模块731和718也要实现分层协议堆栈以在图形加速器730与控制器中枢715之间通信。与上面的mch讨论相似,图形控制器或图形加速器730本身可集成在处理器705中。

转到图8,分层协议堆栈的实施例被图示。分层协议堆栈800包括任何形式的分层通信堆栈,诸如快速路径互连(qpi)堆栈、pcie堆栈、下一代高性能计算互连堆栈或其它分层堆栈。尽管紧跟在下面参见图7-10的讨论与pcie堆栈有关,但相同概念可应用于其它互连堆栈。在一个实施例中,协议堆栈800是pcie协议堆栈,包括事务处理层805、链路层810和物理层820。诸如图7中的接口717、718、721、722、726和731的接口可被表示为通信协议堆栈800。作为通信协议堆栈的表示也可指实现/包括协议堆栈的模块或接口。

pci高速使用分组以在组件之间传递信息。分组在事务层805和数据链路层810中被形成以将信息从传送组件携带到接收组件。在传送的分组流过其它层时,它们通过在那些层处理分组所需的附加信息被扩展。在接收侧出现反向过程,并且分组从其物理层820表示被变换成数据链路层810表示,并且最后(对于事务层分组)变换成能够由接收装置的事务层805处理的形式。

事务层

在一个实施例中,事务层805要提供在装置的处理核与互连架构(诸如数据链路层810和物理层820)之间的接口。在此方面,事务层805的主要职责是分组(即,事务层分组或tlp)的组装和分解。事务层805典型地管理用于tlp的基于信用的流控制。pcie实现拆分事务(即,带有由时间分开的请求和响应的事务)从而在目标装置收集用于响应的数据的同时,允许链路携带其它业务。

另外,pcie利用基于信用的流控制。在此方案中,装置通告用于事务层805中每个接收缓冲器的信用的初始量。诸如图7中控制器中枢715的在链路的相对端的外部装置对由每个tlp消耗的信用的数量进行计数。如果事务不超过信用限制,则事务可被传送。在接收响应时,恢复信用的量。信用方案的优点在于假设未遇到信用限制,则信用返回的等待时间不影响性能。

在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括读取请求和写入请求的一个或多个,以便向/从存储器映射的位置传送数据。在一个实施例中,存储器空间事务能够使用两种不同的地址格式,例如,诸如32比特地址的短地址格式或诸如64比特地址的长地址格式。配置空间事务用于访问pcie装置的配置空间。到配置空间的事务包括读取请求和写入请求。消息空间事务(或简称为消息)被定义成支持在pcie代理之间的带内通信。

因此,在一个实施例中,事务层805组装分组报头/有效负载806。用于当前分组报头/有效负载的格式可在pcie规范网站的pcie规范中找到。

快速参见图9,pcie事务描述符的实施例被图示。在一个实施例中,事务描述符900是用于携带事务信息的机制。在此方面,事务描述符900支持系统中事务的标识。其它潜在使用包括跟踪默认事务排序的修改和事务与信道的关联。

事务描述符900包括全局标识符字段902、属性字段904和信道标识符字段906。在图示的示例中,全局标识符字段902被描绘为包括本地事务标识符字段908和源标识符字段910。在一个实施例中,全局事务标识符902对于所有未完成的(outstanding)请求是唯一的。

根据一个实现,本地事务标识符字段908是由请求代理生成的字段,并且它对于针对该请求代理要求完成的所有未完成的请求是唯一的。此外,在此示例中,源标识符910唯一地识别pcie层级内的请求者代理。相应地,与源id910一起,本地事务标识符908字段提供层级域内事务的全局标识。

属性字段904指定事务的特性和关系。在此方面,属性字段904潜在地用于提供允许修改事务的默认处理的附加信息。在一个实施例中,属性字段904包括优先级字段912、预留字段914、排序字段916及无监听字段918。这里,优先级子字段912可由发起者修改以向事务指派优先级。预留属性字段914被保持预留以用于将来或供应商定义的使用。可使用预留属性字段来实现使用优先级或安全性属性的可能使用模型。

在此示例中,排序属性字段916用于供应可选信息,其传达可修改默认排序规则的排序的类型。根据一个示例实现,排序属性“0”表示要应用默认排序规则,其中排序属性“1”表示宽松的排序,其中写入能够在相同方向上传递写入,并且读取完成能够在相同方向上传递写入。监听属性字段918用于确定事务是否被监听。如所示出的,信道id字段906识别与事务关联的信道。

链路层

现在返回到图8,也被称为数据链路层810的链路层810充当在事务层805与物理层820之间的中间级。在一个实施例中,数据链路层810的职责是提供用于在链路的两个组件之间交换事务层分组(tlp)的可靠机制。数据链路层810的一侧接受由事务层805组装的tlp,并且应用分组序列标识符811,即标识号或分组号,计算和应用检错代码,即crc812,以及将修改的tlp提交到物理层820以用于跨物理到外部装置的传送。

物理层

在一个实施例中,物理层820包括逻辑子块821和电气子块822以将分组物理传送到外部装置。这里,逻辑子块821负责物理层821的“数字”功能。在此方面,逻辑子块包括准备外出信息以供物理子块822传送的传送段和在将接收的信息传递到链路层810前识别和准备它的接收器段。

物理块822包括传送器和接收器。传送器由逻辑子块821供应有符号,传送器将所述符号串行化并且传送到外部装置上。接收器被供应有来自外部装置的串行化符号,并且将接收的信号变换成比特流。比特流被去串行化并且供应到逻辑子块821。在一个实施例中,采用8b/10b传送代码,其中传送/接收10比特符号。这里,特殊符号用于通过帧823来构成分组。另外,在一个示例中,接收器也提供从进入的串行流恢复的符号时钟。

如上所述,即使参照pcie协议堆栈的特定实施例讨论了事务层805、链路层810和物理层820,但分层协议堆栈不被如此限制。实际上,可包括/实现分层协议。作为示例,被表示为分层协议的端口/接口包括:(1)组装分组的第一层,即,事务层;将分组排序的第二层,即,链路层;以及传送分组的第三层,即,物理层。作为特定示例,利用了公用标准接口(csi)分层协议。

接下来参见图10,pcie串行点对点构造的实施例被图示。即使pcie串行点对点链路的实施例被图示,但串行点对点链路不被如此限制,因为它包括用于传送串行数据的任何传送路径。在示出的实施例中,基本pcie链路包括两个低电压差分驱动信号对:传送对1006/1011和接收对1012/1007。相应地,装置1005包括将数据传送到装置1010的传送逻辑1006和接收来自装置1010的数据的接收逻辑1007。换而言之,在pcie链路中包括两个传送路径(即,路径1016和1017)和两个接收路径(即,路径1018和1019)。

传送路径指用于传送数据的任何路径,诸如传送线路、铜线、光学线路、无线通信信道、红外通信链路或其它通信路径。在诸如装置1005和装置1010的两个装置之间的连接被称为链路,诸如链路415。链路可支持一个巷道(lane)—每个巷道表示一组差分信号对(一对用于传送,一对用于接收)。为对带宽进行缩放,链路可聚合由表示为xn的多个巷道,其中n是任何支持的链路宽度,诸如1、2、4、8、16、32、64或更宽。

差分对指传送差分信号的两个传送路径,诸如线路416和417。作为示例,在线路416从低电压电平切换到高电压电平(即上升沿)时,线路417从高逻辑电平驱动到低逻辑电平,即,下降沿。差分信号潜在地展示更好的电特性,诸如更佳的信号完整性,即,交叉耦合,电压过冲/下冲,振铃等。这允许更好的定时窗口,其使能更快的传送频率。

转到图11,利用包括执行指令的执行单元的处理器所形成的示范计算机系统的框图被图示,其中互连的一个或多个实现根据本公开的一个实施例的一个或多个特征。根据本公开,诸如在本文中描述的实施例中,系统1100包括组件,诸如处理器1102,以采用包括逻辑的执行单元来执行用于过程数据的算法。系统1100表示基于从加利福尼亚州圣克拉拉的英特尔公司可获得的pentiumiii™、pentium4™、xeon™、itanium、xscale™和/或strongarm™微处理器的处理系统,但其它系统(包括具有其它微处理器、工程工作站、机顶盒等的pc)也可被使用。在一个实施例中,样本系统1100可执行从华盛顿雷德蒙德(redmond)的微软公司可获得的某个版本的windows™操作系统,但其它操作系统(例如,unix和linux)、嵌入式软件和/或图形用户接口也可被使用。因此,本公开的实施例不被限制到硬件电路系统和软件的任何特定组合。

实施例不被限制到计算机系统。本公开的备选实施例能够在诸如手持装置的其它装置和嵌入式应用中被使用。手持装置的一些示例包括蜂窝电话、互联网协议装置、数字照相机、个人数字助理(pda)和手持pc。嵌入式应用能够包括微控制器、数字信号处理器(dsp)、片上的系统、网络计算机(netpc)、机顶盒、网络中枢、广域网(wan)交换器或能够根据至少一个实施例执行一个或多个指令的任何其它系统。

在此图示的实施例中,处理器1102包括一个或多个执行单元1108以实现要执行至少一个指令的算法。一个实施例可在单处理器桌面型或服务器系统的上下文中被描述,但备选实施例可被包括在多处理器系统中。系统1100是“中枢”系统架构的示例。计算机系统1100包括处理器1102以处理数据信号。作为一个说明性示例,处理器1102包括例如复杂指令集计算机(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、实现指令集的组合的处理器或诸如数字信号处理器的任何其它处理器装置。处理器1102被耦合到处理器总线1110,其在处理器1102与系统1100中的其它组件之间传送数据信号。系统1100的元件(例如,图形加速器1112、存储器控制器中枢1116、存储器1120、i/o控制器中枢1124、无线收发器1126、闪速bios1128、网络控制器1134、音频控制器1136、串行扩展端口1138、i/o控制器1140等)执行本领域技术人员公知的其常规功能。

在一个实施例中,处理器1102包括1级(l1)内部高速缓冲存储器1104。取决于架构,处理器1102可具有单个内部高速缓存或多级的内部高速缓存。取决于具体实现和需要,其它实施例包括内部和外部高速缓存两者的组合。寄存器堆1106将在各种寄存器中存储不同类型的数据,所述各种寄存器包括整数寄存器、浮点寄存器、向量寄存器、分组寄存器(bankedregister)、影子寄存器、检查点寄存器、状态寄存器和指令指针寄存器。

包括执行整数和浮点运算的逻辑的执行单元1108也驻留在处理器1102中。在一个实施例中,处理器1102包括微代码(ucode)rom以存储微代码,其在被执行时,将执行用于某些宏指令的算法或者处理复杂情形。在这里,微代码是潜在可更新的,以便为处理器1102处理逻辑错误/修复。对于一个实施例,执行单元1108包括处理打包的指令集1109的逻辑。通过在通用处理器1102的指令集中包括打包的指令集1109,连同执行指令的关联电路系统,由许多多媒体应用使用的操作可在通用处理器1102中使用打包的数据来执行。因此,通过使用处理器的数据总线的完全宽度来对打包的数据执行操作,许多多媒体应用被更有效地执行和加速。这潜在地消除了跨处理器的数据总线传送数据的更小单元以一次一个数据元素地执行一个或多个操作的需要。

执行单元1108的备选实施例也可在微控制器、嵌入式处理器、图形装置、dsp和其它类型的逻辑电路中使用。系统1100包括存储器1120。存储器1120包括动态随机存取存储器(dram)装置、静态随机存取存储器(sram)装置、闪速存储器装置或其它存储器装置。存储器1120存储将由处理器1102执行的数据信号表示的指令和/或数据。

注意,可在图11中图示的一个或多个互连上利用本公开的任何前面提及的特征或方面。例如,未示出的用于耦合处理器1102的内部单元的管芯上互连(odi)实现上述的本公开的一个或多个方面。或者,本公开与处理器总线1110(例如,intel快速路径互连(qpi)或其它已知高性能计算互连)、到存储器1120的高带宽存储器路径1118、到图形加速器1112的点对点链路(例如,外设组件互连高速(pcie)兼容构造)、控制器中枢互连1122、i/o或用于耦合其它图示的组件的其它互连(例如,usb、pci、pcie)关联。此类组件的一些示例包括音频控制器1136、固件中枢(闪速bios)1128、无线收发器1126、数据存储设备1124、含有用户输入和键盘接口1142的遗留i/o控制器1110、诸如通用串行总线(usb)的串行扩展端口1138及网络控制器1134。数据存储设备1124能够包括硬盘驱动器、软盘驱动器、cd-rom装置、闪存装置或其它大容量存储装置。

现在参见图12,示出的是根据本公开的实施例的第二系统1200的框图。如图12中所示出的,多处理器系统1200是点对点互连系统,并且包括经由点对点互连1250耦合的第一处理器1270和第二处理器1280。处理器1270和1280中的每个可以是某一版本的处理器。在一个实施例中,1252和1254是串行、点对点一致互连构造(诸如intel的快速路径互连(qpi)架构)的部分。作为结果,本公开可在qpi架构内被实现。

尽管只示出带有两个处理器1270、1280,但要理解的是,本公开的范围不被如此限制。在其它实施例中,在给定处理器中可存在一个或多个附加的处理器。

处理器1270和1280示为分别包括集成存储器控制器单元1272和1282。处理器1270也包括作为其总线控制器单元的部分的点对点(p-p)接口1276和1278;相似地,第二处理器1280包括p-p接口1286和1288。处理器1270、1280可经由使用p-p接口电路1278、1288的点对点(p-p)接口1250交换信息。如图12中所示出的,imc1272和1282将处理器耦合到相应存储器,即存储器1232和存储器1234,其可以是在本地附连到相应处理器的主存储器的部分。

处理器1270、1280各自经由使用点对点接口电路1276、1294、1286、1298的单独p-p接口1252、1254与芯片集1290交换信息。芯片集1290也沿高性能图形互连1239,经由图形接口电路1292与高性能图形电路1238交换信息。

共享高速缓存(未示出)可被包括在处理器中或者在两个处理器外,但经由p-p互连与处理器连接,使得如果处理器被置于低功率模式中,则任一或两个处理器的本地高速缓存信息可被存储在共享高速缓存中。

芯片集1290可经由接口1296被耦合到第一总线1216。在一个实施例中,第一总线1216可以是外设组件互连(pci)总线,或诸如pci高速总线或另一第三代i/o互连总线的总线,但本公开的范围不被如此限制。

如图12中所示出的,各种i/o装置1214可连同将第一总线1216耦合到第二总线1220的总线桥1218,被耦合到第一总线1216。在一个实施例中,第二总线1220包括低引脚计数(lpc)总线。在一个实施例中,各种装置被耦合到第二总线1220,包括例如键盘和/或鼠标1222、通信装置1227和诸如经常包括指令/代码和数据1230的盘驱动器或其它大容量存储装置的存储单元1228。此外,音频i/o1224被示为耦合到第二总线1220。注意,其它架构是可能的,其中包括的组件和互连架构不同。例如,系统可实现多点总线或其它此类架构,而不是图12的点对点架构。

本公开还示出了一组技术方案,如下:

1.一种处理器设备,包括:

微处理器,包括微处理器系统代理;以及

现场可编程门阵列(fpga),所述fpga包括:

fpga系统代理,用来处理跨通信链路从所述微处理器系统代理接收的存储器访问请求;

存储器控制器,其通信地耦合到所述系统代理;

高速串行接口,用来链接所述系统代理与存储系统。

2.根据技术方案1所述的处理器设备,其中所述通信链路配置成携带用于所述系统代理的协议语义。

3.根据技术方案1所述的处理器设备,其中所述fpga进一步包括硬件逻辑以仿真符合外设组件互连高速(pcie)的根复合体,所述硬件逻辑通过一个或多个硬件操作来仿真pcie协议,并且其中所述系统代理配置成使用符合pcie的协议跨所述高速串行接口处理存储器访问请求。

4.根据技术方案1所述的处理器设备,其中所述fpga包括一个或多个加速器电路以对在所述微处理器与所述存储系统之间传送的数据执行处理。

5.根据技术方案4所述的处理器设备,其中所述一个或多个加速器电路配置成执行压缩和/或解压缩、加密和/或解密、结构化查询语言(sql)加速或提取变换加载(etl)操作的一个或多个。

6.根据技术方案4所述的处理器设备,其中所述fpga进一步包括缓存代理和存储器高速缓存以缓存用于所述一个或多个加速器电路的数据。

7.根据技术方案1所述的处理器设备,其中所述fpga包括目录高速缓存以存储在所述fpga内的存储目录的子集。

8.根据技术方案1所述的处理器设备,其中所述fpga包括高速缓存行以在所述中存储数据前在所述fpga中暂时存储数据。

9.根据技术方案1所述的处理器设备,其中所述fpga包括构造接口,所述构造接口用于接口到由网络构造支持的分解式存储系统。

10.根据技术方案1所述的处理器设备,其中所述fpga包括非易失性存储器高速(nvme)存储器控制器以跨高速串行接口(hssi)与在连接的存储装置上的nvme控制器进行接口。

11.一种由处理器的硬件元件执行的方法,所述方法包括:

在在现场可编程门阵列(fpga)中实现的系统代理接收来自硬件处理器的存储器指令;

识别由所述系统代理管理的存储器位置,存储装置的所述存储器位置部分通信地耦合到所述fpga;

执行所述存储器指令;以及

提供所述存储器指令执行的确认到所述硬件处理器。

12.根据技术方案11所述的方法,进一步包括从高速串行接口那边检索在所述存储器中存储的数据。

13.根据技术方案12所述的方法,进一步包括从所述fpga将数据从所述存储器跨通信链路传送到所述硬件处理器。

14.根据技术方案11所述的方法,其中所述存储器指令执行的所述确认包括异步确认响应。

15.根据技术方案14所述的方法,进一步包括:

从所述作为存储器的存储设备检索数据;

向所述硬件处理器传送读取响应;

将所述数据缓存到高速缓冲存储器中;以及

在向所述硬件处理器传送所述读取响应后,从所述高速缓冲存储器向所述硬件处理器传送所述数据。

16.根据技术方案11所述的方法,进一步包括在所述fpga中的高速缓存中缓存从所述存储器位置检索的数据。

17.根据技术方案11所述的方法,进一步包括向所述硬件处理器的系统代理通告由在所述fpga中实现的所述系统代理管理的存储器地址空间。

18.根据技术方案11所述的方法,进一步包括由一个或多个加速器电路对到所述fpga的进入数据或来自所述fpga的外出数据之一或两者执行数据处理。

19.根据技术方案18所述的方法,其中所述数据处理包括执行压缩和/或解压缩、加密和/或解密、结构化查询语言(sql)加速或提取变换加载(etl)操作的一个或多个。

20.根据技术方案11所述的方法,进一步包括:

在所述fpga系统代理接收来自与所述硬件处理器关联的系统代理的存储器访问请求;

确定用于存储器元件的构造的分解式存储器元件的存储器位置;以及

基于所确定的存储器位置,处理所述存储器访问请求。

21.一种系统,包括:

微处理器,包括微处理器系统代理;

加速器系统,包括:

系统代理,用来处理跨通信链路从所述微处理器系统代理接收的存储器访问请求;

存储器控制器,其通信地耦合到所述系统代理;以及

高速串行接口,用来链接所述系统代理与存储系统;以及

存储装置,其通过所述高速串行接口连接到所述加速器系统。

22.根据技术方案21所述的系统,其中所述存储装置包括固态驱动(ssd)非易失性存储器元件。

23.根据技术方案21所述的系统,其中所述加速器系统包括构造互连;以及

其中所述存储装置包括分解式作为存储器的存储设备,所述分解式作为存储器的存储设备包括由网络构造管理的多个固态驱动非易失性存储器元件,所述构造由所述构造互连耦合到所述加速器系统。

24.根据技术方案21所述的系统,其中所述加速器系统包括一个或多个加速器电路以对在所述微处理器与所述存储系统之间传送的数据执行处理。

25.根据技术方案24所述的系统,其中所述一个或多个加速器电路配置成执行压缩和/或解压缩、加密和/或解密、结构化查询语言(sql)加速或提取变换加载(etl)操作的一个或多个。

示例1是一种包括微处理器的处理器设备,微处理器包括微处理器系统代理和现场可编程门阵列(fpga)。fpga包括处理跨通信链路从微处理器系统代理接收的存储器访问请求的fpga系统代理;通信地耦合到系统代理的存储器控制器;和链接系统代理与存储系统的高速串行接口。

示例2可包括示例1的主题,其中通信链路符合快速路径互连协议。

示例3可包括示例1的主题,其中fpga进一步包括硬件逻辑以仿真符合外设组件互连高速(pcie)的根复合体,硬件逻辑通过一个或多个硬件操作来仿真pcie协议,并且其中系统代理配置成使用符合pcie的协议跨高速串行接口处理存储器访问请求。

示例4可包括示例1-3的任何示例的主题,其中fpga包括一个或多个加速器电路以对在微处理器与存储系统之间传送的数据执行处理。

示例5可包括示例4的主题,其中一个或多个加速器电路配置成执行压缩和/或解压缩、加密和/或解密、结构化查询语言(sql)加速或提取变换加载(etl)操作的一个或多个。

示例6可包括示例4的主题,其中fpga进一步包括缓存代理和存储器高速缓存以缓存用于一个或多个加速器电路的数据。

示例7可包括示例1-6的任何示例的主题,其中fpga包括目录高速缓存以存储在fpga内的存储目录的子集。

示例8可包括示例1-7的任何示例的主题,其中fpga包括高速缓存行以缓存在存储设备中存储的数据。

示例9可包括示例1-8的任何示例的主题,其中fpga包括构造接口,构造接口用于接口到由网络构造支持的分解式存储系统。

示例10可包括示例1-9的任何示例的主题,其中fpga包括非易失性存储器高速(nvme)存储器控制器以跨高速串行接口(hssi)与在连接的存储装置上的nvme控制器进行接口。

示例11是一种由处理器的硬件元件执行的方法,方法包括在在现场可编程门阵列(fpga)中实现的系统代理接收来自硬件处理器的存储器指令;识别由系统代理管理的存储器位置,存储装置的存储器位置部分通信地耦合到fpga;执行存储器指令;以及提供存储器指令执行的确认到硬件处理器。

示例12可包括示例11的主题,并且能够也包括从高速串行接口那边检索在存储器中存储的数据。

示例13可包括示例12的主题,并且能够也包括从fpga将数据从存储器跨通信链路传送到硬件处理器。

示例14可包括示例11的主题,其中存储器指令执行的确认包括异步确认响应。

示例15包括示例14的主题,并且能够也包括从作为存储器的存储设备检索数据;向硬件处理器传送读取响应;将数据缓存到高速缓冲存储器中;以及在向硬件处理器传送读取响应后,将数据从高速缓冲存储器传送到硬件处理器。

示例16可包括示例11的主题,并且能够也包括在fpga中的高速缓存中缓存从存储器位置检索的数据。

示例17可包括示例11的主题,并且能够也包括向硬件处理器的系统代理通告由在fpga中实现的系统代理管理的存储器地址空间。

示例18可包括示例11的主题,并且能够也包括由一个或多个加速器电路对到fpga的进入数据或来自fpga的外出数据之一或两者执行数据处理。

示例19可包括示例18的主题,其中数据处理包括执行压缩和/或解压缩、加密和/或解密、结构化查询语言(sql)加速或提取变换加载(etl)操作的一个或多个。

示例20可包括示例11的主题,并且能够也包括在fpga系统代理接收来自与硬件处理器关联的系统代理的存储器访问请求;确定用于存储器元件的构造的分解式存储器元件的存储器位置;以及基于确定的存储器位置,处理存储器访问请求。

示例21是包括微处理器的系统,微处理器包括微处理器系统代理和加速器系统。加速器系统包括系统代理以处理跨通信链路从微处理器系统代理接收的存储器访问请求。加速器系统也包括通信地耦合到系统代理的存储器控制器。加速器系统也包括高速串行接口以链接系统代理与存储系统。系统也包括通过高速串行接口连接到加速器系统的存储装置。

示例22可包括示例21的主题,其中存储装置包括固态驱动(ssd)非易失性存储器元件。

示例23可包括示例21的主题,其中加速器系统包括构造互连,并且其中存储装置包括分解式作为存储器的存储设备,分解器作为存储器的存储设备包括由网络构造管理的多个固态驱动非易失性存储器元件,构造由构造互连耦合到加速器系统。

示例24可包括示例21的主题,其中加速器系统包括一个或多个加速器电路以对在微处理器与存储系统之间传送的数据执行处理。

示例25可包括示例24的主题,其中一个或多个加速器电路配置成执行压缩和/或解压缩、加密和/或解密、结构化查询语言(sql)加速或提取变换加载(etl)操作的一个或多个。

一个或多个实现的前面描述提供说明和描述,但不打算详尽或将实施例的范围限制到明确的公开形式。修改和变化鉴于上面的教导是可能的,或者可从各种实施例的实践中得到。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1