CN112131166B - Lightweight bridge circuit and operation method thereof - Google Patents
Lightweight bridge circuit and operation method thereof Download PDFInfo
- Publication number
- CN112131166B CN112131166B CN202010582886.0A CN202010582886A CN112131166B CN 112131166 B CN112131166 B CN 112131166B CN 202010582886 A CN202010582886 A CN 202010582886A CN 112131166 B CN112131166 B CN 112131166B
- Authority
- CN
- China
- Prior art keywords
- lwb
- endpoint
- ssd
- disclosed
- root port
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
本申请要求于2019年6月24日提交的第62/865,962号美国临时专利申请和于2020年1月21日提交的第62/964,114号美国临时专利申请的权益,两个美国临时专利申请出于所有目的通过引用包含于此。This application claims the benefit of U.S. Provisional Patent Application No. 62/865,962, filed on June 24, 2019, and U.S. Provisional Patent Application No. 62/964,114, filed on January 21, 2020, both of which are incorporated herein by reference for all purposes.
技术领域Technical Field
发明构思总体上涉及存储装置,并且更具体地,涉及将外围组件互连快速(Peripheral Component Interconnect Express,PCIe)虚拟功能(VF)仿真为PCIe物理功能(PF)。The inventive concept relates generally to storage devices, and more particularly, to emulating a Peripheral Component Interconnect Express (PCIe) virtual function (VF) as a PCIe physical function (PF).
背景技术Background technique
诸如外围组件互连快速(PCIe)装置的装置公开(expose)了可由计算机系统中的其它组件访问的各种功能。例如,主机处理器可使用由固态驱动器(SSD)公开的这样的功能来执行SSD内的各种操作。这些功能可对存储在SSD上的数据进行操作,或者可对由主机提供的数据进行操作。通常,由装置公开的功能涉及装置的正常操作,但是不需要这样的限制:例如,虽然SSD传统上用于存储数据,但如果SSD包括处理器,则该处理器可用于从主机处理器卸载处理。A device, such as a Peripheral Component Interconnect Express (PCIe) device, exposes various functions that can be accessed by other components in a computer system. For example, a host processor can use such functions exposed by a solid-state drive (SSD) to perform various operations within the SSD. These functions can operate on data stored on the SSD, or can operate on data provided by the host. Typically, the functions exposed by the device relate to normal operation of the device, but such a limitation is not required: for example, although SSDs are traditionally used to store data, if the SSD includes a processor, the processor can be used to offload processing from the host processor.
在启动时(或者,如果支持装置的热安装,当安装时)枚举装置时,由装置公开的功能可由主机机器发现。作为发现的部分,主机机器可向装置查询任何公开的功能,任何公开的功能然后可被添加到装置的可用功能的列表。The functions exposed by the device may be discovered by the host machine when the device is enumerated at startup (or, if hot installation of the device is supported, when installed). As part of discovery, the host machine may query the device for any exposed functions, which may then be added to the device's list of available functions.
功能分为两类:物理的和虚拟的。物理功能(PF)可使用装置内的硬件来实现。PF的资源可独立于由装置提供的任何其它PF来管理和配置。虚拟功能(VF)是可被认为是虚拟化功能的轻量级功能。与PF不同,VF通常与特定PF相关联,并且通常与它相关联的PF共享资源(并且也可能与该PF所关联的其它VF共享资源)。Functions are divided into two categories: physical and virtual. A physical function (PF) can be implemented using hardware within the device. The resources of a PF can be managed and configured independently of any other PF provided by the device. A virtual function (VF) is a lightweight function that can be thought of as a virtualized function. Unlike a PF, a VF is usually associated with a specific PF and usually shares resources with the PF it is associated with (and may also share resources with other VFs associated with that PF).
因为PF彼此独立,并且因为为了主机访问VF,VF可能需要使用单根输入/输出虚拟化(Single Root Input/Output Virtualization,SR-IOV),所以倾向于装置公开PF。但是因为PF是独立的,所以它们可能需要单独的硬件,增加了装置内所需的空间和装置的功耗。SR-IOV协议可在主机系统软件栈中强加复杂性,特别是对于虚拟化使用的情况。Because PFs are independent of each other, and because VFs may need to use Single Root Input/Output Virtualization (SR-IOV) in order for the host to access the VFs, it is preferred that the device expose PFs. However, because PFs are independent, they may require separate hardware, increasing the space required within the device and the power consumption of the device. The SR-IOV protocol can impose complexity in the host system software stack, especially for virtualization use cases.
仍需要在不强加PF的成本需求的情况下提供装置的PF,使得系统软件复杂性可降低。There remains a need to provide PF for devices without imposing cost requirements for PF so that system software complexity can be reduced.
发明内容Summary of the invention
提供本发明内容以简化的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容既不意在标识要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
实施例的一方面涉及一种轻量桥接器(LWB)电路,所述轻量桥接器电路包括:端点,用于连接到主机,端点公开多个物理功能(PF);根端口,用于连接到装置,装置向根端口公开至少一个PF和至少一个虚拟功能(VF);和应用层-端点(APP-EP)和应用层-根端口(APP-RP),用于在向主机公开的所述多个PF与由装置公开的所述至少一个PF和所述至少一个VF之间进行转换。APP-EP和APP-RP实现由端点公开的所述多个PF与由装置公开的所述至少一个PF和所述至少一个VF之间的映射。An aspect of the embodiment relates to a lightweight bridge (LWB) circuit, the lightweight bridge circuit comprising: an endpoint for connecting to a host, the endpoint exposing a plurality of physical functions (PFs); a root port for connecting to a device, the device exposing at least one PF and at least one virtual function (VF) to the root port; and an application layer-endpoint (APP-EP) and an application layer-root port (APP-RP) for converting between the plurality of PFs exposed to the host and the at least one PF and the at least one VF exposed by the device. The APP-EP and the APP-RP implement mapping between the plurality of PFs exposed by the endpoint and the at least one PF and the at least one VF exposed by the device.
实施例的另一方面涉及一种方法,所述方法包括:使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF);使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF);在LWB的端点处生成多个PF,以向主机公开;和使用LWB的应用层-端点(APP-EP)和应用层-根端口应用层-根端口(APP-RP),将LWB的端点处的所述多个PF映射到由装置公开的所述至少一个PF和所述至少一个VF。Another aspect of an embodiment relates to a method comprising: using a root port of a lightweight bridge (LWB) to enumerate at least one physical function (PF) exposed by a device; using the root port of the LWB to enumerate at least one virtual function (VF) exposed by the device; generating multiple PFs at an endpoint of the LWB to be exposed to a host; and using an application layer-endpoint (APP-EP) and an application layer-root port (APP-RP) of the LWB, mapping the multiple PFs at the endpoint of the LWB to the at least one PF and the at least one VF exposed by the device.
实施例的又一方面涉及一种包括非暂时性存储介质的物品,非暂时性存储介质具有存储在非暂时性存储介质上的指令,当所述指令被机器执行时,使得:使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF);使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF);在LWB的端点处生成多个PF,以向主机公开;和使用LWB的应用层-端点(APP-EP)和应用层-根端口(APP-RP),将LWB的端点处的所述多个PF映射到由装置公开的所述至少一个PF和所述至少一个VF。Yet another aspect of the embodiments relates to an article comprising a non-transitory storage medium having instructions stored on the non-transitory storage medium, which, when executed by a machine, causes: enumerating at least one physical function (PF) exposed by a device using a root port of a lightweight bridge (LWB); enumerating at least one virtual function (VF) exposed by the device using the root port of the LWB; generating multiple PFs at an endpoint of the LWB to be exposed to a host; and mapping the multiple PFs at the endpoint of the LWB to the at least one PF and the at least one VF exposed by the device using an application layer-endpoint (APP-EP) and an application layer-root port (APP-RP) of the LWB.
从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。Other features and aspects will be apparent from the following detailed description, drawings, and claims.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1示出根据发明构思的实施例的包括轻量桥接器(LWB)的机器,该轻量桥接器能够使用固态驱动器(SSD)的虚拟功能(VF)来仿真由LWB公开的物理功能(PF)。1 illustrates a machine including a lightweight bridge (LWB) capable of emulating a physical function (PF) exposed by the LWB using a virtual function (VF) of a solid state drive (SSD) according to an embodiment of the inventive concept.
图2示出图1的机器的附加细节。FIG. 2 shows additional details of the machine of FIG. 1 .
图3示出图1的SSD的细节。FIG. 3 shows details of the SSD of FIG. 1 .
图4A至图4C示出根据发明构思的各种实施例的图1的LWB。4A to 4C illustrate the LWB of FIG. 1 according to various embodiments of the inventive concept.
图5示出图4A至图4C的配置管理器的细节。FIG. 5 shows details of the configuration manager of FIGS. 4A-4C .
图6示出由图1的LWB公开的PF与由图1的SSD公开的PF/VF之间的映射。FIG. 6 shows a mapping between a PF disclosed by the LWB of FIG. 1 and a PF/VF disclosed by the SSD of FIG. 1 .
图7示出图1的LWB对来自图1的主机的配置写入请求进行处理。FIG. 7 illustrates the LWB of FIG. 1 processing a configuration write request from the host of FIG. 1 .
图8示出图1的LWB对来自图1的主机的配置读取请求进行处理。FIG. 8 illustrates the LWB of FIG. 1 processing a configuration read request from the host of FIG. 1 .
图9示出图4A至图4C的应用层-端点(Application Layer-Endpoint,APP-EP)和应用层-根端口(Application Layer-Root Port,APP-RP)处理LWB内的地址转换。FIG. 9 shows that the Application Layer-Endpoint (APP-EP) and Application Layer-Root Port (APP-RP) of FIG. 4A to FIG. 4C handle address translation within the LWB.
图10示出图6的映射在图1的LWB内被改变。FIG. 10 shows that the mapping of FIG. 6 is changed within the LWB of FIG. 1 .
图11示出由图1的LWB公开的PF具有相关联的服务质量(QoS)策略。FIG. 11 shows that the PF exposed by the LWB of FIG. 1 has an associated quality of service (QoS) policy.
图12A至图12B示出图1的LWB执行带宽节流。12A-12B illustrate that the LWB of FIG. 1 performs bandwidth throttling.
图13示出图1的LWB向图1的SSD发出信用。FIG. 13 shows the LWB of FIG. 1 issuing credits to the SSD of FIG. 1 .
图14A至图14B示出根据发明构思的实施例的图1的LWB识别由图1的SSD公开的PF/VF、从LWB公开PF、以及生成由图1的LWB公开的PF与由图1的SSD公开的PF/VF之间的映射的示例过程的流程图。14A-14B illustrate a flowchart of an example process of the LWB of FIG. 1 identifying a PF/VF disclosed by the SSD of FIG. 1 , disclosing the PF from the LWB, and generating a mapping between the PF disclosed by the LWB of FIG. 1 and the PF/VF disclosed by the SSD of FIG. 1 , according to an embodiment of the inventive concept.
图15A至图15B示出图1的LWB从图1的主机接收并处理请求的示例过程的流程图。15A-15B illustrate a flow chart of an example process in which the LWB of FIG. 1 receives and processes a request from the host of FIG. 1 .
图16示出图4A至图4C的APP-EP和APP-RP在图1的主机与图1的SSD之间转换地址的示例过程的流程图。FIG. 16 is a flowchart illustrating an example process of converting addresses of the APP-EP and the APP-RP of FIGS. 4A to 4C between the host of FIG. 1 and the SSD of FIG. 1 .
图17示出图1的LWB向图1的SSD发布信用的示例过程的流程图。FIG. 17 illustrates a flow chart of an example process by which the LWB of FIG. 1 issues credits to the SSD of FIG. 1 .
图18示出图1的LWB对配置写入请求进行处理的示例过程的流程图。FIG. 18 is a flow chart showing an example process of the LWB of FIG. 1 processing a configuration write request.
图19示出图1的LWB对配置读取请求进行处理的示例过程的流程图。FIG. 19 is a flow chart illustrating an example process of the LWB of FIG. 1 processing a configuration read request.
图20示出图1的LWB将QoS策略与由图1的LWB公开的PF相关联的示例过程的流程图。20 illustrates a flow chart of an example process by which the LWB of FIG. 1 associates a QoS policy with a PF published by the LWB of FIG. 1 .
图21示出图1的LWB动态地改变由图1的LWB公开的PF到由图1的SSD公开的PF/VF的映射的示例过程的流程图。21 illustrates a flow chart of an example process by which the LWB of FIG. 1 dynamically changes a mapping of a PF disclosed by the LWB of FIG. 1 to a PF/VF disclosed by the SSD of FIG. 1 .
图22A至图22B示出图1的LWB执行带宽节流的示例过程的流程图。22A-22B illustrate a flow chart of an example process in which the LWB of FIG. 1 performs bandwidth throttling.
具体实施方式Detailed ways
现在将详细参照发明的实施例,在附图中示出发明的实施例的示例。在下面的具体实施方式中,阐述了许多特定细节,以实现发明的彻底理解。然而,应理解,本领域普通技术人员可在没有这些特定细节的情况下实践发明。在其它情况下,公知的方法、过程、组件、电路以及网络未被详细描述,以免不必要地模糊实施例的方面。Reference will now be made in detail to embodiments of the invention, examples of which are illustrated in the accompanying drawings. In the following detailed description, many specific details are set forth to provide a thorough understanding of the invention. However, it should be understood that one of ordinary skill in the art may practice the invention without these specific details. In other cases, well-known methods, processes, components, circuits, and networks are not described in detail to avoid unnecessarily obscuring aspects of the embodiments.
将理解,尽管在此可使用术语第一、第二等来描述不同的元件,但这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不脱离发明的范围的情况下,第一模块可被称作第二模块,类似地,第二模块可被称作第一模块。It will be understood that although the terms first, second, etc. may be used herein to describe different elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. For example, without departing from the scope of the invention, a first module may be referred to as a second module, and similarly, a second module may be referred to as a first module.
这里在发明的描述中使用的术语仅出于描述特定实施例的目的,而不意在限制发明。如在发明的描述和所附权利要求中使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还将理解,如在此使用的术语“和/或”表示并包含相关所列项中的一个或多个的任何和所有可能的组合。还将理解,术语“包括”和/或“包含”用在本说明书中时,说明存在阐述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。附图的组件和特征不必按比例绘制。The terms used in the description of the invention herein are only for the purpose of describing specific embodiments and are not intended to limit the invention. As used in the description of the invention and the appended claims, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. It will also be understood that the term "and/or" as used herein represents and includes any and all possible combinations of one or more of the relevant listed items. It will also be understood that the terms "including" and/or "comprising" when used in this specification indicate the presence of the features, wholes, steps, operations, elements and/or components of the description, but do not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and/or their groups. The components and features of the accompanying drawings do not have to be drawn to scale.
发明构思的实施例包括使用由装置(诸如,固态驱动器(SSD))支持的虚拟功能(VF)来仿真装置中的多个物理功能(PF)的方法和系统。SSD可具有由多个PCIe物理功能(PF)或PCIe虚拟功能(VF)表示的多个非易失性存储器快速(NVMe)控制器。每个PF或VF实质上呈现可由主机NVMe驱动器用来执行数据存储功能的NVMe控制器。PF具有实际的物理资源,而虚拟功能与PF共享资源。发明构思的实施例可使用SSD控制器中的VF的集合向主机公开(或称为暴露)多个PF。也就是说,多个PF可由装置仿真,并且VF可在内部使用。从主机的角度来看,主机系统软件栈看到多个PCIe PF和在那些PF后面的NVMe控制器。发明构思的实施例可在内部将对PF的所有主机访问映射和转换成VF。Embodiments of the inventive concept include methods and systems for emulating multiple physical functions (PFs) in a device using virtual functions (VFs) supported by a device, such as a solid-state drive (SSD). An SSD may have multiple non-volatile memory express (NVMe) controllers represented by multiple PCIe physical functions (PFs) or PCIe virtual functions (VFs). Each PF or VF essentially presents an NVMe controller that can be used by a host NVMe drive to perform data storage functions. The PF has actual physical resources, while the virtual functions share resources with the PFs. Embodiments of the inventive concept may use a collection of VFs in an SSD controller to expose (or expose) multiple PFs to a host. That is, multiple PFs may be emulated by a device, and the VFs may be used internally. From the perspective of the host, the host system software stack sees multiple PCIe PFs and the NVMe controllers behind those PFs. Embodiments of the inventive concept may map and convert all host accesses to PFs to VFs internally.
PCIe PF独立于任何其它功能(物理的或虚拟的)。也就是说,PF具有它们自己的专用物理资源(诸如,存储器缓冲器)。对于支持大量PF的装置,增加了底层装置的逻辑面积、功耗和复杂性。因此,为了降低装置侧的成本和复杂性,PCIe规范提供对虚拟功能(VF)的支持。VF与PF共享物理资源,并且对于所有物理方面依赖于PF。这些物理方面包括PCIe链路控制、装置控制、电源管理等。PCIe PFs are independent of any other functions (physical or virtual). That is, PFs have their own dedicated physical resources (such as memory buffers). For devices that support a large number of PFs, the logic area, power consumption, and complexity of the underlying device are increased. Therefore, in order to reduce the cost and complexity on the device side, the PCIe specification provides support for virtual functions (VFs). VFs share physical resources with PFs and rely on PFs for all physical aspects. These physical aspects include PCIe link control, device control, power management, etc.
尽管VF降低了装置侧的成本和复杂性,但是VF增加了系统软件侧的复杂性。系统软件需要支持单根输入/输出虚拟化(Single Root Input/Output Virtualization,SR-IOV)协议以能够与VF进行通信。这种增加的功能性有时在额外的延迟方面降低I/O性能。因此,从系统软件的角度来看,期望具有PF。Although VFs reduce the cost and complexity on the device side, VFs increase the complexity on the system software side. System software needs to support the Single Root Input/Output Virtualization (SR-IOV) protocol to be able to communicate with VFs. This added functionality sometimes reduces I/O performance in terms of additional latency. Therefore, from a system software perspective, it is desirable to have PFs.
发明构思的实施例允许装置使用SSD控制器中的VF来仿真PF。也就是说,从主机的角度来看,存储装置SSD看起来具有多个PF。但是在装置侧,那些PF可使用VF的集合来仿真。为了降低成本,可使用轻量桥接器(lightweight bridge,LWB)来公开装置(诸如,SSD)的功能,而不需要将各种功能实现为SSD控制器ASIC中的PF。Embodiments of the inventive concept allow a device to emulate PFs using VFs in an SSD controller. That is, from the perspective of the host, the storage device SSD appears to have multiple PFs. But on the device side, those PFs can be emulated using a collection of VFs. To reduce costs, a lightweight bridge (LWB) can be used to expose the functions of a device (such as an SSD) without implementing the various functions as PFs in an SSD controller ASIC.
在LWB的示例实施方式中,即使底层装置可将一些或大部分功能实现为VF而不是PF,总共16个功能也可如同它们是物理功能那样被LWB公开。LWB充当主机机器与SSD控制器自身之间的桥接器:LWB可被实现为整个SSD装置的部分,或者被实现为单独的组件。装置可以是具有被实现为SSD控制器的端点的部分的功能(1个PF和15个VF)的SSD。(SSD还可常规地包括主机接口层(HIL)、闪存转换层(FTL)和闪存控制器(FC)以访问闪存。)In an example implementation of the LWB, a total of 16 functions may be exposed by the LWB as if they were physical functions, even though the underlying device may implement some or most of the functions as VFs instead of PFs. The LWB acts as a bridge between the host machine and the SSD controller itself: the LWB may be implemented as part of the entire SSD device, or as a separate component. The device may be an SSD with the functions (1 PF and 15 VFs) implemented as part of the endpoints of the SSD controller. (SSDs may also conventionally include a host interface layer (HIL), a flash translation layer (FTL), and a flash controller (FC) to access the flash memory.)
LWB可使用第三代(Gen3)PCIe总线的四个通路与主机机器进行通信,而在LWB内部可使用Gen3 PCIe总线的16个通路来实现通信。但是发明构思的实施例可支持使用任何特定版本的PCIe总线(或其它总线类型),并且可支持与主机机器的和在内部的任何期望的速度或通路或带宽,而没有限制。本描述中的PCIe通路宽度和速度仅是示例,并且应理解,可使用相同的构思来实现任何组合。The LWB may use four lanes of a third generation (Gen3) PCIe bus to communicate with the host machine, while internally the LWB may use 16 lanes of the Gen3 PCIe bus to achieve communication. However, embodiments of the inventive concept may support the use of any particular version of the PCIe bus (or other bus type), and may support any desired speed or lane or bandwidth with and within the host machine without limitation. The PCIe lane widths and speeds in this description are examples only, and it should be understood that any combination may be achieved using the same concept.
代替SSD控制器与主机机器上的根端口或根复合体进行通信,SSD控制器可与LWB的根端口进行通信。SSD控制器可能不知道这个改变,并且可将来自LWB的根端口的通信视为来自主机机器的通信。类似地,主机机器可在不知道端点不是SSD控制器(实现公开的功能)的情况下与LWB的端点进行通信。就SSD控制器或主机机器而言,与其通信的一方(在发明构思的实施例中,LWB)可被视为黑箱。Instead of the SSD controller communicating with a root port or root complex on a host machine, the SSD controller may communicate with a root port of the LWB. The SSD controller may be unaware of this change and may treat communications from the root port of the LWB as communications from the host machine. Similarly, the host machine may communicate with an endpoint of the LWB without knowing that the endpoint is not an SSD controller (implementing disclosed functionality). The party communicating with it (in embodiments of the inventive concept, the LWB) may be treated as a black box as far as the SSD controller or host machine is concerned.
LWB的端点可公开与SSD控制器的端点相同数量的功能。但是,LWB的端点可将所有功能公开为PF,而不是将这些功能中的一些功能公开为VF。LWB还可包括PCIe应用层-端点(PCIe Application Layer-Endpoint,PAPP-EP)和PCIe应用层-根端口(PCIe ApplicationLayer-Root Port,PAPP-RP)。PAPP-EP和PAPP-RP可管理从如由LWB的端点公开的PF到如由SSD控制器的端点公开的功能(物理的或虚拟的)的映射。PAPP-RP可包括配置转换表,以辅助管理向主机公开的PF的PCIe配置空间(Configuration Space)到SSD控制器EP的PF和/或VF的PCIe配置空间的映射。这个表还可指示由LWB端点公开的哪个PF映射到由SSD控制器端点公开的哪个功能,以及与映射有关的其它信息(例如,SSD控制器中的什么地址可存储用于公开的功能的数据)。由LWB的端点提供的PCIe配置特征和能力可(并且经常)与由SSD控制器的端点提供的PCIe配置特征和能力不同:配置转换表可帮助管理这些差异。PAPP-RP还可处理向主机公开的PF的存储器基址寄存器(BAR)地址和SSD控制器EP的PF和/或VF的BAR地址的转换。根据需要,PAPP-EP和/或PAPP-RP还可包括其它表。向主机公开的PF和SSD控制器内部PF/VF的映射本质上可以是灵活的和动态的。映射可在运行时间期间基于由管理实体(诸如,主机和/或基板管理控制器(BMC))发布的某些事件和/或策略改变而改变。这些事件的一些示例是虚拟机(VM)迁移、SLA的改变、功率/性能节流、日期、时间等。The endpoints of the LWB may expose the same number of functions as the endpoints of the SSD controller. However, the endpoints of the LWB may expose all functions as PFs instead of exposing some of these functions as VFs. The LWB may also include a PCIe Application Layer-Endpoint (PAPP-EP) and a PCIe Application Layer-Root Port (PAPP-RP). The PAPP-EP and PAPP-RP may manage the mapping from PFs as exposed by the endpoints of the LWB to functions (physical or virtual) as exposed by the endpoints of the SSD controller. The PAPP-RP may include a configuration conversion table to assist in managing the mapping of the PCIe configuration space (Configuration Space) of the PF exposed to the host to the PCIe configuration space of the PF and/or VF of the SSD controller EP. This table may also indicate which PF exposed by the LWB endpoint maps to which function exposed by the SSD controller endpoint, as well as other information related to the mapping (e.g., what address in the SSD controller can store data for the exposed function). The PCIe configuration features and capabilities provided by the endpoints of the LWB may (and often do) differ from those provided by the endpoints of the SSD controller: the configuration translation table may help manage these differences. The PAPP-RP may also handle the translation of the memory base address register (BAR) addresses of the PF exposed to the host and the BAR addresses of the PF and/or VF of the SSD controller EP. The PAPP-EP and/or PAPP-RP may also include other tables as needed. The mapping of the PF exposed to the host and the PF/VF internal to the SSD controller may be flexible and dynamic in nature. The mapping may change during runtime based on certain events and/or policy changes issued by a management entity such as the host and/or baseboard management controller (BMC). Some examples of these events are virtual machine (VM) migration, changes in SLA, power/performance throttling, date, time, etc.
虽然在发明构思的一些实施例中PAPP-EP和PAPP-RP可以是单独的组件,但是发明构思的其它实施例可在单个实施方式中实现这些组件(并且潜在地实现LWB的端点、根端口和配置管理器)。例如,LWB可使用现场可编程门阵列(FPGA)或专用集成电路(ASIC)(仅是可能实施方式的两个示例)来实现。PAPP-EP和PAPP-RP可使用任何期望的机制进行通信。例如,中间数据格式可被定义,中间数据格式可用于在PAPP-EP与PAPP-RP之间交换数据以调用特定功能并返回结果。Although in some embodiments of the inventive concept the PAPP-EP and PAPP-RP may be separate components, other embodiments of the inventive concept may implement these components (and potentially the endpoints, root ports, and configuration manager of the LWB) in a single implementation. For example, the LWB may be implemented using a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC), just two examples of possible implementations. The PAPP-EP and PAPP-RP may communicate using any desired mechanism. For example, an intermediate data format may be defined that may be used to exchange data between the PAPP-EP and the PAPP-RP to call a particular function and return a result.
LWB还可包括配置管理器。配置管理器可枚举由SSD控制器的端点提供的功能(PF和VF两者)。配置管理器然后可使两者的信息来“定义”由LWB的端点公开的功能,并且帮助构造PAPP-RP中的配置空间转换表。通常,配置管理器主要在启动期间使用。但是主机机器可改变PF的PCIe配置空间(诸如,关于各种功能的用于与(LWB的)端点进行通信的中断),或者主机机器可启用或禁用特定功能。配置管理器可用于帮助根据需要进行这些改变。LWB还可需要确保类似的PCIe配置空间改变在合适时被传播到SSD控制器。也就是说,LWB在向主机公开的PF与由内部SSD控制器EP公开的PF/VF之间执行PCIe配置镜像。因此,LWB还可管理由SSD控制器公开的功能。The LWB may also include a configuration manager. The configuration manager may enumerate the functions (both PF and VF) provided by the endpoints of the SSD controller. The configuration manager may then use the information of both to "define" the functions exposed by the LWB's endpoints and help construct the configuration space translation table in the PAPP-RP. Typically, the configuration manager is used primarily during boot. However, the host machine may change the PCIe configuration space of the PF (such as interrupts for communicating with the (LWB's) endpoints for various functions), or the host machine may enable or disable specific functions. The configuration manager may be used to help make these changes as needed. The LWB may also need to ensure that similar PCIe configuration space changes are propagated to the SSD controller when appropriate. That is, the LWB performs PCIe configuration mirroring between the PF exposed to the host and the PF/VF exposed by the internal SSD controller EP. Therefore, the LWB may also manage the functions exposed by the SSD controller.
因为在整个装置中存在两个端点(一个在LWB中,一个在SSD控制器中),所以每个端点保持其自己的配置空间。这些配置空间应该同步,以避免潜在的问题或冲突。当主机发送配置写入命令时,LWB可更新LWB端点中的配置空间。配置写入命令还可被转发到SSD的端点(经由PAPP-EP、PAPP-RP和根端口),使得SSD控制器的端点也可被更新。并非所有主机发起的配置写入命令都可被反映到SSD控制器。也就是说,主机配置空间改变中的一些可不按原样被反映到后端SSD控制器。例如,主机可对LWB EP进行功率管理改变,然而该改变或类似的改变可不由LWB对SSD控制器EP进行。Because there are two endpoints in the entire device (one in the LWB and one in the SSD controller), each endpoint maintains its own configuration space. These configuration spaces should be synchronized to avoid potential problems or conflicts. When the host sends a configuration write command, the LWB can update the configuration space in the LWB endpoint. The configuration write command can also be forwarded to the endpoint of the SSD (via PAPP-EP, PAPP-RP, and root port) so that the endpoint of the SSD controller can also be updated. Not all configuration write commands initiated by the host can be reflected to the SSD controller. That is, some of the changes in the host configuration space may not be reflected to the back-end SSD controller as is. For example, the host may make power management changes to the LWB EP, but this change or similar changes may not be made by the LWB to the SSD controller EP.
当主机发送配置读取命令时,LWB的端点可满足该命令。LWB的端点可将配置读取命令转发到PAPP-EP,但是PAPP-EP可终止该命令:当两个配置空间同步时,每个配置空间中的数据应该相同。(可选地,LWB的端点可对配置读取命令进行响应并在该点处终止命令,而不将配置读取命令转发到PAPP-EP。)When the host sends a configuration read command, the LWB's endpoint can satisfy the command. The LWB's endpoint can forward the configuration read command to the PAPP-EP, but the PAPP-EP can terminate the command: when the two configuration spaces are synchronized, the data in each configuration space should be the same. (Alternatively, the LWB's endpoint can respond to the configuration read command and terminate the command at this point without forwarding the configuration read command to the PAPP-EP.)
当LWB(经由LWB的端点从主机或经由LWB的根点从SSD控制器)接收存储器读取或写入事务(transaction)时,LWB可将事务转发到另一方(合适的情况下,主机或SSD控制器)。LWB可使用PAPP-EP和/或PAPP-RP中的BAR表来执行合适的地址转换。用于从主机接收的事务的这样的地址转换的一个示例是:PAPP-EP可从接收的地址减去PF BAR中的地址,并且PAPP-RP可将VF BAR中的地址加到该地址以在SSD控制器中达到正确的地址。When the LWB receives a memory read or write transaction (from the host via an endpoint of the LWB or from the SSD controller via a root point of the LWB), the LWB may forward the transaction to the other party (host or SSD controller as appropriate). The LWB may use the BAR tables in the PAPP-EP and/or PAPP-RP to perform the appropriate address translation. An example of such an address translation for a transaction received from the host is that the PAPP-EP may subtract the address in the PF BAR from the received address, and the PAPP-RP may add the address in the VF BAR to the address to reach the correct address in the SSD controller.
发明构思的实施例还可包括PAPP-EP与PAPP-RP之间的可选中间元件,可选中间元件可用于映射、带宽控制等。这个可选元件还可用于出于多种原因而可变地对带宽进行“节流”。例如,由LWB的端点公开的不同功能可具有不同的服务质量(QoS)需求或服务水平协议(SLA)。可对具有低带宽QoS的PF进行节流,以确保对于具有更高QoS带宽需求的PF存在足够的带宽。对带宽进行节流的其它原因可包括功率或温度。LWB可用于在每个PF的基础上执行带宽节流,或者它可基于管理实体(诸如,主机和/或BMC)的配置设置或策略设置为所有PF执行带宽节流。温度或功率节流决策可基于两个阈值high_limit和low_limit。当功率消耗或温度超过high_limit时,可基于策略将带宽节流应用于所有PF或选择性的PF。可应用带宽节流,直到功率或温度下降到各自的low_limit阈值以下。Embodiments of the inventive concept may also include an optional intermediate element between the PAPP-EP and the PAPP-RP, which may be used for mapping, bandwidth control, and the like. This optional element may also be used to variably "throttle" bandwidth for a variety of reasons. For example, different functions exposed by the endpoints of the LWB may have different quality of service (QoS) requirements or service level agreements (SLAs). PFs with low bandwidth QoS may be throttled to ensure that there is sufficient bandwidth for PFs with higher QoS bandwidth requirements. Other reasons for throttling bandwidth may include power or temperature. The LWB may be used to perform bandwidth throttling on a per-PF basis, or it may perform bandwidth throttling for all PFs based on configuration settings or policy settings of a management entity (such as a host and/or BMC). The temperature or power throttling decision may be based on two thresholds, high_limit and low_limit. When power consumption or temperature exceeds high_limit, bandwidth throttling may be applied to all PFs or selective PFs based on policy. Bandwidth throttling may be applied until power or temperature drops below the respective low_limit thresholds.
在以上发明构思的示例实施例中,SSD控制器的端点被描述为提供1个PF和15个VF,其可被映射到LWB的端点处的16个不同PF。这些数量是任意的:SSD控制器的端点可提供任何数量的PF和VF,其可映射到LWB的端点上的16个PF,或者更多或更少的PF。In the example embodiments of the inventive concept above, the endpoints of the SSD controller are described as providing 1 PF and 15 VFs, which can be mapped to 16 different PFs at the endpoints of the LWB. These numbers are arbitrary: the endpoints of the SSD controller can provide any number of PFs and VFs, which can be mapped to 16 PFs on the endpoints of the LWB, or more or fewer PFs.
如果需要,关于在LWB和/或SSD控制器内进行的任何合适的改变,可在LWB内合适地迁移SSD控制器上的VF。因此,从由LWB的端点公开的PF到由SSD控制器公开的功能的映射可在运行时间被修改,因此该映射是灵活的。If necessary, the VFs on the SSD controller may be appropriately migrated within the LWB with respect to any appropriate changes made within the LWB and/or SSD controller. Thus, the mapping from the PFs exposed by the endpoints of the LWB to the functions exposed by the SSD controller may be modified at runtime, so the mapping is flexible.
LWB内部的通信可使用任何期望的技术来进行。例如,在端点、PAPP-EP、PAPP-RP以及根端口之间交换的信息可使用事务层包(TLP)协议。Communications within the LWB may be performed using any desired technology. For example, information exchanged between endpoints, PAPP-EPs, PAPP-RPs, and root ports may use the Transaction Layer Packet (TLP) protocol.
装置自身可具有任何形状参数。例如,除其它可能性外,SSD可使用U.2或全高度半长度(Full Height Half Length,FHHL)形状参数进行封装。其它类型的装置可类似地以任何期望的形状参数进行封装。The device itself may have any form factor. For example, an SSD may be packaged using a U.2 or Full Height Half Length (FHHL) form factor, among other possibilities. Other types of devices may similarly be packaged in any desired form factor.
在发明构思的另一实施例中,可包括多个SSD控制器,每个SSD控制器提供任何数量的功能:例如,每个SSD控制器可提供总共8个功能。结合在LWB的端点之间的可以是复用器/解复用器,复用器/解复用器可将与特定公开的PF相关的数据引导到合适的PAPP-EP/PAPP-RP/根端口/SSD控制器用于最终执行。以这种方式,单个LWB可公开比单个SSD控制器可能提供的功能多的功能。In another embodiment of the inventive concept, multiple SSD controllers may be included, each providing any number of functions: for example, each SSD controller may provide a total of 8 functions. Incorporated between the endpoints of the LWB may be a multiplexer/demultiplexer that can direct data associated with a particular disclosed PF to the appropriate PAPP-EP/PAPP-RP/root port/SSD controller for final execution. In this way, a single LWB may expose more functions than a single SSD controller could possibly provide.
每个SSD控制器可与LWB中的单独的根端口进行通信,每个SSD控制器具有其自己的由PAPP-EP、PAPP-RP和配置转换表组成的片(slice)。以这种方式,涉及一个SSD控制器的操作可不在LWB内部对涉及另外的SSD控制器的操作具有影响。Each SSD controller can communicate with a separate root port in the LWB, and each SSD controller has its own slice consisting of PAPP-EP, PAPP-RP, and configuration translation table. In this way, operations involving one SSD controller may not have an impact on operations involving other SSD controllers within the LWB.
例如,当单个SSD控制器上的端点不满足主机机器的所有需求时,可使用诸如这样的发明构思的实施例。例如,如果SSD控制器仅支持8个PCIe通路但主机想要支持16个通路的带宽,则可使用多个SSD控制器来支持所需的带宽。或者如果SSD控制器总共仅支持八个功能并且主机想要支持16个功能,则可使用多个SSD控制器来供应所需的功能的集合。也就是说,LWB可用于使用合适数量的PAPP-EP/PAPP-RP/RP片将任何数量的SSD控制器连接到主机,作为单个多功能PCIe存储装置。For example, embodiments of inventive concepts such as these may be used when the endpoints on a single SSD controller do not meet all the needs of a host machine. For example, if an SSD controller only supports 8 PCIe lanes but the host wants to support the bandwidth of 16 lanes, multiple SSD controllers may be used to support the required bandwidth. Or if an SSD controller only supports eight functions in total and the host wants to support 16 functions, multiple SSD controllers may be used to supply the required set of functions. That is, LWB may be used to connect any number of SSD controllers to a host as a single multi-function PCIe storage device using an appropriate number of PAPP-EP/PAPP-RP/RP slices.
如同发明构思的其它实施例,使用的数字是示例性的而非限制性的。因此,LWB的端点可使用任何类型的总线、该总线的任何版本和该总线上的任何数量的通路;LWB的端点可公开任何数量的PF;由每个SSD控制器公开的PF的数量可变化;内部总线类型、版本和速度可变化,与SSD控制器的连接也可变化(也可单独地变化);连接到LWB的SSD控制器的数量可变化(并且可连接到LWB中的不同或相同的路由点);等。As with other embodiments of the inventive concept, the numbers used are exemplary and not limiting. Thus, an endpoint of the LWB may use any type of bus, any version of that bus, and any number of lanes on that bus; an endpoint of the LWB may expose any number of PFs; the number of PFs exposed by each SSD controller may vary; the internal bus type, version, and speed may vary, as may the connections to the SSD controllers (and may also vary individually); the number of SSD controllers connected to the LWB may vary (and may be connected to different or the same routing points in the LWB); etc.
图1示出根据发明构思的实施例的包括轻量桥接器(LWB)的机器,该轻量桥接器能够使用装置的虚拟功能(VF)来仿真由LWB公开的物理功能(PF)。在图1中,示出也可被称为主机的机器105。机器105可包括处理器110。处理器110可以是任何种类的处理器:例如,Intel Xeon、Celeron、Itanium或Atom处理器、AMD Opteron处理器、ARM处理器等。虽然图1示出机器105中的单个处理器110,但是机器105可包括任何数量的处理器,每个处理器可以是单核处理器或多核处理器,并且可以以任何期望的组合进行混合。FIG1 illustrates a machine including a lightweight bridge (LWB) according to an embodiment of the inventive concept, which lightweight bridge is capable of emulating a physical function (PF) exposed by the LWB using a virtual function (VF) of a device. In FIG1 , a machine 105, which may also be referred to as a host, is shown. The machine 105 may include a processor 110. The processor 110 may be any kind of processor: for example, an Intel Xeon, Celeron, Itanium or Atom processor, an AMD Opteron processor, an ARM processor, etc. Although FIG1 illustrates a single processor 110 in the machine 105, the machine 105 may include any number of processors, each of which may be a single-core processor or a multi-core processor, and may be mixed in any desired combination.
机器105还可包括存储器115。存储器115可以是任何各种存储器(诸如,闪存、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、持久性随机存取存储器、铁电随机存取存储器(FRAM)或非易失性随机存取存储器(NVRAM)(诸如,磁阻随机存取存储器(MRAM)等))。存储器115还可以是不同存储器类型的任何期望的组合。机器105还可包括存储器控制器120,存储器控制器120可用于管理对存储器115的访问。The machine 105 may also include a memory 115. The memory 115 may be any of a variety of memories, such as flash memory, dynamic random access memory (DRAM), static random access memory (SRAM), persistent random access memory, ferroelectric random access memory (FRAM), or non-volatile random access memory (NVRAM) (such as magnetoresistive random access memory (MRAM), etc.). The memory 115 may also be any desired combination of different memory types. The machine 105 may also include a memory controller 120, which may be used to manage access to the memory 115.
机器105还可包括固态驱动器(SSD)125。SSD 125可用于存储数据,并且可公开物理功能(PF)和虚拟功能(VF)两者供处理器110(以及在其上执行的软件)使用,以调用SSD125的各种功能。虽然图1示出SSD 125,但是发明构思的实施例可包括提供PF和VF的任何类型的装置。例如,可使用提供PF和VF的其它类型的存储装置(诸如,硬盘驱动器)来代替SSD125,提供除了数据存储之外的基本功能性的装置也可代替SSD 125。在本文件的剩余部分中,对SSD 125的任何引用意在包括对可提供PF/VF的其它类型的装置的引用。在发明构思的一些实施例中,SSD 125可使用外围组件互连快速(PCIe)总线并提供PCIe PF和VF,但是发明构思的实施例可使用其它接口。处理器110可运行装置驱动器130,装置驱动器130可支持对SSD 125的访问。The machine 105 may also include a solid state drive (SSD) 125. The SSD 125 may be used to store data, and may expose both physical functions (PFs) and virtual functions (VFs) for use by the processor 110 (and software executed thereon) to call various functions of the SSD 125. Although FIG. 1 shows an SSD 125, embodiments of the inventive concept may include any type of device that provides PFs and VFs. For example, other types of storage devices (such as hard disk drives) that provide PFs and VFs may be used in place of the SSD 125, and devices that provide basic functionality other than data storage may also replace the SSD 125. In the remainder of this document, any reference to the SSD 125 is intended to include references to other types of devices that can provide PFs/VFs. In some embodiments of the inventive concept, the SSD 125 may use a peripheral component interconnect express (PCIe) bus and provide PCIe PFs and VFs, but embodiments of the inventive concept may use other interfaces. The processor 110 may run a device driver 130, which may support access to the SSD 125.
位于SSD 125与机器105的其余部分之间的可以是轻量桥接器(LWB)135。LWB可充当SSD 125与机器105的其余部分之间的桥接器,并且可公开但是作为PF而不是VF的SSD125的功能。Located between the SSD 125 and the rest of the machine 105 may be a lightweight bridge (LWB) 135. The LWB may act as a bridge between the SSD 125 and the rest of the machine 105, and may expose the functionality of the SSD 125 but as a PF rather than a VF.
尽管图1将机器105描述为服务器(服务器可以是独立服务器或机架服务器),但是发明构思的实施例可包括任何期望类型的机器105,而没有限制。例如,机器105可用台式计算机或膝上型计算机或可受益于发明构思的实施例的任何其它机器来替换。机器105还可包括专用便携式计算机器、平板计算机、智能电话以及其它计算机器。另外,可从SSD 125访问数据的应用可位于另外的机器中,另外的机器与机器105分离并经由穿过任何类型(有线、无线、全球等)的一个或多个网络的网络连接来访问机器105。Although FIG. 1 depicts machine 105 as a server (the server may be a stand-alone server or a rack server), embodiments of the inventive concept may include any desired type of machine 105 without limitation. For example, machine 105 may be replaced with a desktop computer or laptop computer or any other machine that may benefit from embodiments of the inventive concept. Machine 105 may also include dedicated portable computing machines, tablet computers, smart phones, and other computing machines. Additionally, applications that may access data from SSD 125 may be located in another machine that is separate from machine 105 and accesses machine 105 via a network connection across one or more networks of any type (wired, wireless, global, etc.).
图2示出图1的机器105的附加细节。在图2中,通常,机器105包括一个或多个处理器110,处理器110可包括存储器控制器215和时钟205,其可用于协调机器105的组件的操作。处理器110还可结合到存储器115,作为示例,存储器115可包括随机存取存储器(RAM)、只读存储器(ROM)或其它状态保持介质。处理器110还可结合到存储装置125,并且结合到网络连接器210,网络连接器210可以是例如以太网连接器或无线连接器。除其它组件外,处理器110还可连接到总线215,可使用输入/输出引擎225管理的输入/输出(I/O)接口端口和用户接口220可附接到总线215。FIG. 2 shows additional details of the machine 105 of FIG. 1 . In FIG. 2 , generally, the machine 105 includes one or more processors 110, which may include a memory controller 215 and a clock 205, which may be used to coordinate the operation of the components of the machine 105. The processor 110 may also be coupled to a memory 115, which may include, by way of example, a random access memory (RAM), a read-only memory (ROM), or other state-retaining medium. The processor 110 may also be coupled to a storage device 125, and to a network connector 210, which may be, for example, an Ethernet connector or a wireless connector. The processor 110 may also be connected to a bus 215, to which may be attached, among other components, input/output (I/O) interface ports that may be managed using an input/output engine 225, and a user interface 220.
图3示出图1的SSD 125的细节。在图3中,SSD 125可包括主机接口逻辑(HIL)305,SSD控制器310和各种闪存芯片315-1至315-8(也称为“闪存存储器”),闪存芯片315-1至315-8可被组织成各种通道320-1至320-4。主机接口逻辑305可管理SSD 125与其它组件(诸如,图1的处理器110和图1的LWB 135)之间的通信。主机接口逻辑305还可管理与远离SSD125的装置(即,不被认为是机器105的部分,但例如通过一个或多个网络连接与SSD 125进行通信的装置)的通信。这些通信可包括用于从SSD 125读取数据的读取请求、用于向SSD125写入数据的写入请求、以及用于从SSD 125删除数据的删除请求。主机接口逻辑305可管理仅经过单个端口的接口,或者机接口逻辑305可管理经过多个端口的接口。可选地,SSD125可包括多个端口,每个端口可具有单独的主机接口逻辑305以管理经过该端口的接口。发明构思的实施例还可混合可能性(例如,具有三个端口的SSD可具有用于管理一个端口的第一主机接口逻辑和用于管理其它两个端口的第二主机接口逻辑)。FIG3 shows details of the SSD 125 of FIG1 . In FIG3 , the SSD 125 may include a host interface logic (HIL) 305, an SSD controller 310, and various flash memory chips 315-1 to 315-8 (also referred to as “flash memory”), which may be organized into various channels 320-1 to 320-4. The host interface logic 305 may manage communications between the SSD 125 and other components (such as the processor 110 of FIG1 and the LWB 135 of FIG1 ). The host interface logic 305 may also manage communications with devices that are remote from the SSD 125 (i.e., devices that are not considered part of the machine 105, but communicate with the SSD 125, for example, through one or more network connections). These communications may include read requests for reading data from the SSD 125, write requests for writing data to the SSD 125, and delete requests for deleting data from the SSD 125. Host interface logic 305 may manage interfaces through only a single port, or host interface logic 305 may manage interfaces through multiple ports. Alternatively, SSD 125 may include multiple ports, each of which may have a separate host interface logic 305 to manage interfaces through that port. Embodiments of the inventive concept may also mix possibilities (e.g., an SSD with three ports may have a first host interface logic for managing one port and a second host interface logic for managing the other two ports).
SSD控制器310可使用闪存控制器(图3中未示出)来管理闪存芯片315-1至315-8上的读取操作和写入操作以及垃圾收集和其它操作。SSD控制器310可包括闪存转换层325、闪存控制器330和端点335。闪存转换层可管理(如图1的主机105使用的)逻辑块地址(LBA)到在SSD 310上实际上存储数据的物理块地址(PBA)的映射。通过使用闪存转换层325,当数据在SSD 125内从一个块移动到另一个块时,不需要通知图1的主机105。The SSD controller 310 may use a flash controller (not shown in FIG. 3 ) to manage read and write operations on the flash chips 315-1 to 315-8, as well as garbage collection and other operations. The SSD controller 310 may include a flash translation layer 325, a flash controller 330, and endpoints 335. The flash translation layer may manage the mapping of logical block addresses (LBAs) (such as those used by the host 105 of FIG. 1 ) to physical block addresses (PBAs) where data is actually stored on the SSD 310. By using the flash translation layer 325, the host 105 of FIG. 1 does not need to be notified when data is moved from one block to another within the SSD 125.
闪存控制器330可管理向闪存芯片315-1至315-8的数据的写入以及从闪存芯片315-1至315-8的数据的读取。端点335可充当SSD 125的端点,端点335可连接到另外的装置(诸如,图1的主机105或图1的LWB 135)上的根端口。The flash controller 330 may manage writing of data to the flash chips 315-1 to 315-8 and reading of data from the flash chips 315-1 to 315-8. The endpoint 335 may act as an endpoint of the SSD 125, and the endpoint 335 may be connected to a root port on another device (such as the host 105 of FIG. 1 or the LWB 135 of FIG. 1).
虽然图3将SSD 125示为包括被组织成四个通道320-1至320-4的八个闪存芯片315-1至315-8,但是发明构思的实施例可支持被组织成任何数量的通道的任何数量的闪存芯片。类似地,虽然图3示出SSD的结构,但是其它存储装置(例如,硬盘驱动器)可使用不同的(但是具有类似的潜在益处的)结构来实现。Although FIG3 shows SSD 125 as including eight flash memory chips 315-1 to 315-8 organized into four channels 320-1 to 320-4, embodiments of the inventive concept may support any number of flash memory chips organized into any number of channels. Similarly, although FIG3 shows the structure of an SSD, other storage devices (e.g., hard disk drives) may be implemented using different (but similarly potentially beneficial) structures.
图4A至图4C示出根据发明构思的各种实施例的图1的LWB 135。在图4A中,LWB 135被示为包括端点405、应用层-端点(APP-EP)410、应用层-根端口(APP-RP)415以及根端口420。端点405可用于与其它装置(诸如,图1的主机105)的根端口进行通信。在图4A中,端点405被示为向上游装置公开16个PF(PF0-PF15),并且被示为使用具有四个通路的PCIe第3代(Gen 3×4)接口,端点405可用于与上游装置进行通信。因此,如接口425所示,到图1的主机105的接口可以是具有四个通路的PCIe第3代接口。类似地,根端口420可与其它装置(诸如,SSD 125)的端点进行通信。因此,如接口430所示,到SSD 125的接口可以是具有四个通路的PCIe第3代接口。在图4A中,根端口420被示为使用具有四个通路的PCIe第3代接口,根端口420可用于与下游装置通信。在图4A中,根端口420被示为已经枚举了来自SSD 125的一个PF和15个VF,并且端点405被示为公开16个PF:由端点405针对由SSD 125公开的每个功能(物理的或虚拟的)公开一个PF。4A to 4C illustrate the LWB 135 of FIG. 1 according to various embodiments of the inventive concept. In FIG. 4A , the LWB 135 is shown as including an endpoint 405, an application layer-endpoint (APP-EP) 410, an application layer-root port (APP-RP) 415, and a root port 420. The endpoint 405 can be used to communicate with the root port of other devices (such as the host 105 of FIG. 1 ). In FIG. 4A , the endpoint 405 is shown as exposing 16 PFs (PF0-PF15) to the upstream device, and is shown as using a PCIe Gen 3 (Gen 3×4) interface with four lanes, and the endpoint 405 can be used to communicate with the upstream device. Therefore, as shown by interface 425, the interface to the host 105 of FIG. 1 can be a PCIe Gen 3 interface with four lanes. Similarly, the root port 420 can communicate with the endpoints of other devices (such as, SSD 125). Thus, as shown by interface 430, the interface to SSD 125 may be a PCIe Gen 3 interface with four lanes. In FIG4A, root port 420 is shown as using a PCIe Gen 3 interface with four lanes, which root port 420 may be used to communicate with downstream devices. In FIG4A, root port 420 is shown as having enumerated one PF and 15 VFs from SSD 125, and endpoint 405 is shown as exposing 16 PFs: one PF for each function (physical or virtual) exposed by endpoint 405.
端点405可与APP-EP 410进行通信,APP-EP 410进而可与APP-RP 415进行通信。APP-EP 410和APP-RP 415可管理端点405与根端口420之间的信息的转换。因为可使用任何期望的通信机制,所以图4A未示出端点405如何与APP-EP 410进行通信、APP-EP 410如何与APP-RP 415进行通信或者APP-RP 415如何与根端口420进行通信的细节。例如,端点405、APP-EP 410、APP-RP 415以及根端口420可使用PCIe或另外的总线(诸如,高级可扩展接口(AXI)总线)与任何期望版本并包括任何期望数量的数据总线宽度的接口进行通信。或者,端点405、APP-EP 410、APP-RP 415以及根端口420可使用任何期望的总线/接口使用专有消息发送方案(proprietary messaging scheme)进行通信。发明构思的实施例还可包括端点405、APP-EP 410、APP-RP 415以及根端口420之间的其它的通信的机制。在LWB 135内部的通信方式与从LWB 135到图1的主机105或SSD 125的通信方式之间可没有关系。Endpoint 405 may communicate with APP-EP 410, which in turn may communicate with APP-RP 415. APP-EP 410 and APP-RP 415 may manage the translation of information between endpoint 405 and root port 420. FIG4A does not show the details of how endpoint 405 communicates with APP-EP 410, how APP-EP 410 communicates with APP-RP 415, or how APP-RP 415 communicates with root port 420, because any desired communication mechanism may be used. For example, endpoint 405, APP-EP 410, APP-RP 415, and root port 420 may communicate using PCIe or another bus, such as an Advanced eXtensible Interface (AXI) bus, with any desired version of interface and including any desired number of data bus widths. Alternatively, endpoints 405, APP-EP 410, APP-RP 415, and root port 420 may communicate using a proprietary messaging scheme using any desired bus/interface. Embodiments of the inventive concept may also include other mechanisms for communication between endpoints 405, APP-EP 410, APP-RP 415, and root port 420. There may be no relationship between the communication method within LWB 135 and the communication method from LWB 135 to host 105 or SSD 125 of FIG. 1.
APP-RP 415可包括配置表435。配置表435可存储关于LWB 135的配置信息。这样的配置信息的示例可包括由端点405公开的PF与由SSD 125提供(并且经由通过根端口420的枚举确定)的PF/VF之间的映射。存储在配置表435中的配置信息还可包括关于可与由端点405公开的特定PF相关联的服务质量(QoS)策略(其也可被称为服务水平协议(SLA))的信息。配置管理器440可用于配置将信息存储在配置表435中的LWB 135。配置管理器440还可用于确定关于由SSD 125公开的功能的信息,并且可对端点405进行编程以提供类似(或相同)的功能性(但是仅使用PF,而不是PF和VF)。配置管理器440做什么的细节可依赖于由SSD125提供的特定功能(因为配置管理器440可配置端点405以提供匹配由SSD 125提供的PF和VF的PF的集合),但是原理通常可被概括为:确定由SSD 125公开的各个PF/VF的配置,建立将由端点405公开的合适数量的PF,以及将那些PF配置为匹配由SSD 125公开的PF/VF的配置。APP-RP 415 may include a configuration table 435. Configuration table 435 may store configuration information about LWB 135. Examples of such configuration information may include mappings between PFs exposed by endpoint 405 and PFs/VFs provided by SSD 125 (and determined via enumeration through root port 420). Configuration information stored in configuration table 435 may also include information about a Quality of Service (QoS) policy (which may also be referred to as a Service Level Agreement (SLA)) that may be associated with a particular PF exposed by endpoint 405. Configuration manager 440 may be used to configure LWB 135 storing information in configuration table 435. Configuration manager 440 may also be used to determine information about functions exposed by SSD 125, and may program endpoint 405 to provide similar (or identical) functionality (but using only PFs, rather than PFs and VFs). The details of what configuration manager 440 does may depend on the specific functionality provided by SSD 125 (because configuration manager 440 may configure endpoint 405 to provide a set of PFs that match the PFs and VFs provided by SSD 125), but the principles can generally be summarized as: determining the configuration of each PF/VF exposed by SSD 125, establishing an appropriate number of PFs to be exposed by endpoint 405, and configuring those PFs to match the configuration of the PFs/VFs exposed by SSD 125.
虽然图4A将APP-EP 410和APP-RP 415示为单独的组件,但是发明构思的实施例可将这两个组件组合成单个组件(负责处理如所述的APP-EP 410和APP-RP 415两者的功能)。事实上,LWB 135的整体可实现为单个单元,而不是实现为彼此通信的单独组件。LWB 135(以及端点405、APP-EP 410、APP-RP 415、根端口420以及配置管理器440)可以以任何期望的方式来实现。除其它可能性外,发明构思的实施例可使用具有合适软件的通用处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理器(GPU)以及通用GPU(GPGPU)来(单独地和/或共同地)实现LWB 135(和/或其组件)。Although FIG. 4A shows APP-EP 410 and APP-RP 415 as separate components, embodiments of the inventive concept may combine these two components into a single component (responsible for handling the functions of both APP-EP 410 and APP-RP 415 as described). In fact, the entirety of LWB 135 may be implemented as a single unit, rather than as separate components that communicate with each other. LWB 135 (as well as endpoints 405, APP-EP 410, APP-RP 415, root port 420, and configuration manager 440) may be implemented in any desired manner. Among other possibilities, embodiments of the inventive concept may implement LWB 135 (and/or its components) using a general purpose processor, field programmable gate array (FPGA), application specific integrated circuit (ASIC), graphics processing unit (GPU), and general purpose GPU (GPGPU) with appropriate software (individually and/or collectively).
在图4A中(并且类似于以下图4B至图4C),示出的任何具体数字仅意在是示例,并且发明构思的实施例可包括其它数字。例如,根端口420被示为已经枚举了来自SSD 125的1个PF和15个VF,但是SSD 125可公开任何数量(零个或更多个)的PF和VF(尽管由于任何公开的VF依赖于来自某个PF的硬件,所以必须存在至少一个公开的PF以为任何公开的VF提供硬件)。类似地,端点405被示为公开16个PF,但是端点405可向图1的主机105公开任何数量(零个或更多个)的PF。注意,虽然端点405公开与SSD 125相同总数量的功能,但是在由SSD 125公开的功能与由端点405公开的功能之间不需要一一对应。例如,由SSD 125公开的一些功能可以不具有由端点405公开的对应PF,或者由端点405公开的单个PF可以映射到由SSD125公开的多个功能(物理的和/或虚拟的)。作为前者的示例,写入请求可以一次仅被引导到一个SSD,这将使支持对未被选择的SSD的写入请求的功能不具有由端点405公开的对应PF。作为后者的示例,在LWB 135连接到多个SSD(诸如,以下图4C中所示)的发明构思的实施例中,即使端点405可以仅向图1的主机105公开单个PF以请求执行垃圾收集,图1的主机105执行垃圾收集的请求也可以被发送到连接到LWB 135的所有SSD。In FIG. 4A (and similarly to FIGS. 4B-4C below), any specific numbers shown are intended to be examples only, and embodiments of the inventive concept may include other numbers. For example, root port 420 is shown as having enumerated 1 PF and 15 VFs from SSD 125, but SSD 125 may expose any number (zero or more) of PFs and VFs (although since any exposed VF relies on hardware from a certain PF, there must be at least one exposed PF to provide hardware for any exposed VF). Similarly, endpoint 405 is shown as exposing 16 PFs, but endpoint 405 may expose any number (zero or more) of PFs to host 105 of FIG. 1. Note that while endpoint 405 exposes the same total number of functions as SSD 125, there need not be a one-to-one correspondence between the functions exposed by SSD 125 and the functions exposed by endpoint 405. For example, some functions exposed by SSD 125 may not have corresponding PFs exposed by endpoint 405, or a single PF exposed by endpoint 405 may map to multiple functions (physical and/or virtual) exposed by SSD 125. As an example of the former, write requests may be directed to only one SSD at a time, which would cause functions supporting write requests to the unselected SSDs to not have corresponding PFs exposed by endpoint 405. As an example of the latter, in an embodiment of the inventive concept where LWB 135 is connected to multiple SSDs (such as shown in FIG. 4C below), even though endpoint 405 may only expose a single PF to host 105 of FIG. 1 to request to perform garbage collection, the request for host 105 of FIG. 1 to perform garbage collection may be sent to all SSDs connected to LWB 135.
以类似的方式,图4A中示出的特定产品的任何版本意在仅是示例,并且发明构思的实施例可使用其它产品或产品的其它版本。例如,图4A示出使用具有四个通路的PCIe第3代与图1的主机105(经由接口425)以及与SSD 125(经由接口430)通信的LWB 135。发明构思的其它实施例可使用其它代的PCIe总线/接口,或其它数量的通路,或甚至另外的类型的总线(诸如,高级可扩展接口(AXI)总线)。例如,除了接口425和接口430使用具有八个通路而不是四个通路的PCIe第3代(Gen 3×8)这个事实之外,图4B类似于图4A。In a similar manner, any version of a particular product shown in FIG. 4A is intended to be merely an example, and embodiments of the inventive concept may use other products or other versions of products. For example, FIG. 4A shows LWB 135 communicating with host 105 (via interface 425) of FIG. 1 and with SSD 125 (via interface 430) using PCIe Gen 3 with four lanes. Other embodiments of the inventive concept may use other generations of PCIe buses/interfaces, or other numbers of lanes, or even other types of buses (such as, Advanced eXtensible Interface (AXI) buses). For example, FIG. 4B is similar to FIG. 4A except for the fact that interface 425 and interface 430 use PCIe Gen 3×8 with eight lanes instead of four lanes.
在发明构思的一些实施例中,单个SSD 125可以不提供用于图1的主机105的目的的足够能力。例如,如果图4A至图4B的SSD 125仅提供1个PF和7个VF,并且因此不提供图1的主机105期望的特定功能性,将可能用提供期望功能性的另外的装置来替换SSD 125。但是作为替代方案,如图4C中所示,LWB 135可连接到多个装置。In some embodiments of the inventive concept, a single SSD 125 may not provide sufficient capabilities for the purposes of the host 105 of FIG1. For example, if the SSD 125 of FIGS. 4A-4B only provides 1 PF and 7 VFs, and therefore does not provide a particular functionality desired by the host 105 of FIG1, it would be possible to replace the SSD 125 with another device that provides the desired functionality. However, as an alternative, as shown in FIG4C, the LWB 135 may be connected to multiple devices.
在图4C中,LWB 135被示为分别经过接口430-1和430-2连接到SSD 125-1和SSD125-2。因为SSD 125-1和SSD 125-2各自提供1个PF和7个VF(如可在根端口420-1和420-2中看到),所以SSD 125-1和125-2中的任一个都不能单独地提供16个功能。但是SSD 125-1和125-2一起提供16个功能。因此,通过将SSD 125-1和125-2的资源(诸如,公开的功能)聚合,LWB 135可在单个SSD不提供所有功能的情况下提供总共16个PF。In FIG. 4C , LWB 135 is shown connected to SSD 125-1 and SSD 125-2 via interfaces 430-1 and 430-2, respectively. Because SSD 125-1 and SSD 125-2 each provide 1 PF and 7 VFs (as can be seen in root ports 420-1 and 420-2), neither of SSD 125-1 and 125-2 can provide 16 functions individually. However, SSD 125-1 and 125-2 together provide 16 functions. Therefore, by aggregating the resources (such as the public functions) of SSD 125-1 and 125-2, LWB 135 can provide a total of 16 PFs without a single SSD providing all functions.
如可在图4C中看到,LWB 135仅包括一个端点405,但包括两个APP-EP 410-1和410-2、两个APP-RP 415-1和415-2以及两个根端口420-1和420-2。以这种方式,LWB 135可公开来自聚合由SSD 125-1和125-2提供的功能的单个端点(端点405)的所有16个功能。但是因为由端点405公开的不同PF可被映射到SSD 125-1和125-2上的功能,所以LWB 135还可包括复用器/解复用器(MDM)445。复用器/解复用器445可将与端点405的特定公开PF相关联的请求路由到合适的APP-EP 410-1或410-2,其通信路径通向提供对应PF或VF的SSD 125-1或125-2。虽然图4A至图4B未示出复用器/解复用器445(由于仅存在SSD 125连接到LWB135),但是在LWB 135仅连接到一个SSD 125的发明构思的实施例中,LWB 135仍然可包括复用器/解复用器445:复用器/解复用器445可不添加任何功能性,但是也不存在与包括复用器/解复用器445相关联的任何实际成本。(但是如果LWB 135仅能够连接到单个装置,则包括复用器/解复用器也不添加任何益处。)As can be seen in FIG. 4C , LWB 135 includes only one endpoint 405, but includes two APP-EPs 410-1 and 410-2, two APP-RPs 415-1 and 415-2, and two root ports 420-1 and 420-2. In this way, LWB 135 can expose all 16 functions from a single endpoint (endpoint 405) that aggregates the functions provided by SSDs 125-1 and 125-2. However, because different PFs exposed by endpoint 405 can be mapped to functions on SSDs 125-1 and 125-2, LWB 135 can also include a multiplexer/demultiplexer (MDM) 445. Multiplexer/demultiplexer 445 can route requests associated with a particular exposed PF of endpoint 405 to the appropriate APP-EP 410-1 or 410-2, whose communication path leads to SSD 125-1 or 125-2 that provides the corresponding PF or VF. Although FIGS. 4A-4B do not show a multiplexer/demultiplexer 445 (since there are only SSDs 125 connected to the LWB 135), in embodiments of the inventive concept where the LWB 135 is only connected to one SSD 125, the LWB 135 may still include a multiplexer/demultiplexer 445: the multiplexer/demultiplexer 445 may not add any functionality, but there is also no real cost associated with including the multiplexer/demultiplexer 445. (But if the LWB 135 is only capable of connecting to a single device, then including the multiplexer/demultiplexer also does not add any benefit.)
注意,发明构思的实施例可将除了仅公开的功能之外的资源聚合。例如,在图4C中,接口430-1和430-2可各自包括PCIe第3代总线/接口的八个通路。但是因为SSD 125-1和125-2可并行使用(即,SSD 125-1和125-2两者可同时处理请求),所以LWB 135可经由接口425向图1的主机105提供PCIe第3代总线/接口的16个通路(Gen 3×16)。以相同的方式,由SSD 125-1和125-2中的每个提供的带宽可被聚合,使得LWB可通告(advertise)等于由SSD125-1和125-2分别提供的带宽之和的带宽。发明构思的实施例还可将除功能、PCIe通路或带宽之外的其它资源聚合。Note that embodiments of the inventive concept may aggregate resources other than just the disclosed functions. For example, in FIG. 4C , interfaces 430-1 and 430-2 may each include eight lanes of a PCIe Gen 3 bus/interface. However, because SSDs 125-1 and 125-2 may be used in parallel (i.e., both SSDs 125-1 and 125-2 may process requests simultaneously), LWB 135 may provide 16 lanes (Gen 3×16) of a PCIe Gen 3 bus/interface to host 105 of FIG. 1 via interface 425. In the same manner, the bandwidth provided by each of SSDs 125-1 and 125-2 may be aggregated so that LWB may advertise a bandwidth equal to the sum of the bandwidths provided by SSDs 125-1 and 125-2, respectively. Embodiments of the inventive concept may also aggregate other resources other than functions, PCIe lanes, or bandwidth.
正如图4A至图4B,图4C中示出的任何数量或版本仅用作示例,并且发明构思的实施例可支持其它数量或版本。例如,SSD 125-1和125-2不需要提供相同数量的公开功能(物理的和/或虚拟的),它们也不一定需要使用相同代或相同数量的PCIe总线/接口的通路。As with Figures 4A to 4B, any number or version shown in Figure 4C is used as an example only, and embodiments of the inventive concept may support other numbers or versions. For example, SSDs 125-1 and 125-2 do not need to provide the same number of public functions (physical and/or virtual), nor do they necessarily need to use the same generation or number of PCIe bus/interface paths.
在图4A至图4C中,LWB 135被示为与SSD 125分开。但是发明构思的实施例可将这两个装置组合成单个单元。也就是说,SSD 125可在其外壳内包括位于图3的主机接口逻辑305之前(或至少在图3的SSD控制器310之前)的LWB 135。发明构思的实施例也不限于在单个SSD内包括LWB 135:包含多个SSD的单个壳体也可包含LWB 135,以实现图4C中示出的实施方式。出于本文档的目的,术语“连接”和类似术语意在表示LWB 135与之通信的任何装置,无论是凭借与装置物理地共享任何硬件,还是凭借由于LWB 135在物理上与SSD 125不同而通过某种接口的连接。In FIGS. 4A to 4C , the LWB 135 is shown as being separate from the SSD 125. However, embodiments of the inventive concept may combine the two devices into a single unit. That is, the SSD 125 may include the LWB 135 within its housing, located before the host interface logic 305 of FIG. 3 (or at least before the SSD controller 310 of FIG. 3 ). Embodiments of the inventive concept are also not limited to including the LWB 135 within a single SSD: a single housing containing multiple SSDs may also include the LWB 135 to implement the implementation shown in FIG. 4C . For the purposes of this document, the term "connected" and similar terms are intended to represent any device with which the LWB 135 communicates, whether by virtue of physically sharing any hardware with the device or by virtue of being connected through some interface because the LWB 135 is physically different from the SSD 125.
如上所述,公开VF的装置的问题之一是图1的主机105可能需要实施SR-IOV软件以访问公开的VF。该SR-IOV软件增加了与装置通信的延迟。但是由于用于管理对装置的VF的访问的SR-IOV序列是预先已知的,所以SR-IOV序列可使用状态机来实现,减轻了图1的主机105必须使用SR-IOV来访问装置的VF的负担。另外,因为状态机可使用硬件来实现,所以使用LWB 135内的状态机而不是图1的主机105内的SR-IOV软件也可减少处理请求的延迟。使用状态机来实现LWB 135内的SR-IOV序列本质上从主机减轻和隐藏到装置的SR-IOV协议的所有负担。换句话说,图1中的主机105可以对图1的主机105正在与其通信的装置内的SR-IOV的任何实施的存在不可知。As described above, one of the problems with devices that disclose VFs is that the host 105 of FIG. 1 may need to implement SR-IOV software to access the disclosed VFs. The SR-IOV software increases the delay in communicating with the device. However, since the SR-IOV sequence for managing access to the VFs of the device is known in advance, the SR-IOV sequence can be implemented using a state machine, alleviating the burden of the host 105 of FIG. 1 having to use SR-IOV to access the VFs of the device. In addition, because the state machine can be implemented using hardware, the use of a state machine within the LWB 135 instead of the SR-IOV software within the host 105 of FIG. 1 can also reduce the delay in processing requests. Using a state machine to implement the SR-IOV sequence within the LWB 135 essentially reduces and hides all the burdens of the SR-IOV protocol of the device from the host. In other words, the host 105 in FIG. 1 can be unaware of the existence of any implementation of SR-IOV within the device with which the host 105 of FIG. 1 is communicating.
图5示出图4A至图4C的配置管理器440的细节。在图5中,配置管理器440可包括单根输入/输出虚拟化(SR-IOV)序列505和状态机510。SR-IOV序列505可以是将在图1的主机105内的SR-IOV软件中实现的序列,并且可使用状态机510来执行。SR-IOV序列505可存储在配置管理器440内的只读存储器(ROM)中。像在图4A至图4C中示出的LWB 135本身及其组件一样,除其它可能性外,状态机510可使用通用处理器、FPGA、ASIC、GPU或GPGPU来实现。FIG5 illustrates details of the configuration manager 440 of FIGS. 4A to 4C . In FIG5 , the configuration manager 440 may include a single root input/output virtualization (SR-IOV) sequence 505 and a state machine 510. The SR-IOV sequence 505 may be a sequence that would be implemented in SR-IOV software within the host 105 of FIG. 1 , and may be executed using the state machine 510. The SR-IOV sequence 505 may be stored in a read-only memory (ROM) within the configuration manager 440. Like the LWB 135 itself and its components shown in FIGS. 4A to 4C , the state machine 510 may be implemented using a general purpose processor, FPGA, ASIC, GPU, or GPGPU, among other possibilities.
图6示出由图1的LWB 135公开的PF与由图1的SSD 125(或图4C的SSD 125-1和125-2)公开的PF/VF之间的映射。在图6中,PF 605是由图1的LWB 135公开的PF(更具体地,由图4A至图4C的端点405公开的PF)。另一方面,PF/VF 610是由图1的SSD 125公开的功能(物理的和虚拟的两者)。映射615然后可表示PF 605与PF/VF 610之间的映射。图6中示出的映射是为了说明的目的,并且基本上是任意的,然而图4A至图4C的配置管理器440可使用任何期望的机制来决定PF 605中的哪个PF映射到PF/VF 610中的哪个PF/VF。可考虑由图1的主机105(或图1的主机105内的基板管理控制器(BMC))或图1的SSD 125设置的引导和/或策略来实现映射。FIG. 6 illustrates the mapping between the PFs disclosed by the LWB 135 of FIG. 1 and the PFs/VFs disclosed by the SSD 125 of FIG. 1 (or the SSDs 125-1 and 125-2 of FIG. 4C ). In FIG. 6 , PF 605 is the PF disclosed by the LWB 135 of FIG. 1 (more specifically, the PF disclosed by the endpoint 405 of FIG. 4A to FIG. 4C ). On the other hand, PF/VF 610 is the function (both physical and virtual) disclosed by the SSD 125 of FIG. 1 . Mapping 615 may then represent the mapping between PF 605 and PF/VF 610. The mapping shown in FIG. 6 is for illustrative purposes and is essentially arbitrary, however, the configuration manager 440 of FIG. 4A to FIG. 4C may use any desired mechanism to decide which PF in PF 605 maps to which PF/VF in PF/VF 610. The mapping may be implemented taking into account guidance and/or policies set by the host 105 of FIG. 1 (or a baseboard management controller (BMC) within the host 105 of FIG. 1 ) or the SSD 125 of FIG. 1 .
图7示出图1的LWB 135对来自图1的主机105的配置写入请求进行处理。在图7中,图1的LWB 135(更具体地,端点405)可接收配置写入请求705。端点405然后可在本地对配置写入请求705进行处理,以进行包括在配置写入请求705中的任何改变。7 illustrates the LWB 135 of FIG. 1 processing a configuration write request from the host 105 of FIG. 7 , the LWB 135 of FIG. 1 (more specifically, the endpoint 405) may receive the configuration write request 705. The endpoint 405 may then process the configuration write request 705 locally to make any changes included in the configuration write request 705.
注意,配置写入请求705可以不需要对SSD 125进行改变。例如,由图1的主机105建立的QoS策略可以仅影响由端点405公开的PF,并且不需要SSD 125内的任何改变。但是在一些情况下,配置写入请求705还可能需要SSD 125的修改。例如,配置写入请求可以改变关于SSD 125上的底层功能的数据,而非可仅由图1的LWB 135管理的数据。在这样的情况下,端点405可经由根端口420将配置写入请求705传播到SSD 125(如虚线箭头710和715所示)。配置写入请求705可经由图4A至图4C的APP-EP 410和图4A至图4C的APP-RP 415,或者通过图4A至图4C的配置管理器440被转发到根端口420。图4A至图4C的配置表435可用于确定配置写入请求705是否也应被应用于SSD 125(以确保端点405和SSD 125的配置彼此镜像)。Note that the configuration write request 705 may not require changes to the SSD 125. For example, the QoS policy established by the host 105 of FIG. 1 may only affect the PF exposed by the endpoint 405 and may not require any changes within the SSD 125. However, in some cases, the configuration write request 705 may also require modifications to the SSD 125. For example, the configuration write request may change data about underlying functions on the SSD 125, rather than data that may be managed only by the LWB 135 of FIG. 1. In such a case, the endpoint 405 may propagate the configuration write request 705 to the SSD 125 via the root port 420 (as shown by the dashed arrows 710 and 715). The configuration write request 705 may be forwarded to the root port 420 via the APP-EP 410 of FIGS. 4A to 4C and the APP-RP 415 of FIGS. 4A to 4C, or by the configuration manager 440 of FIGS. 4A to 4C. Configuration table 435 of FIGS. 4A-4C may be used to determine whether configuration write request 705 should also be applied to SSD 125 (to ensure that the configurations of endpoint 405 and SSD 125 mirror each other).
正如图4A至图4C,端点405(以及可能的SSD 125)如何被配置的细节在很大程度上取决于配置写入请求705的细节。但是一旦配置写入请求705的细节已知,对端点405(以及可能对SSD 125)进行的改变可被明确地执行。4A-4C , the details of how endpoint 405 (and possibly SSD 125) is configured depend largely on the details of configuration write request 705. But once the details of configuration write request 705 are known, changes to endpoint 405 (and possibly SSD 125) can be performed unambiguously.
如上所述,期望端点405和SSD 125的配置彼此镜像。但是如上所述,可存在仅应用于端点405的一些配置(或者因为端点405可对那些改变进行处理而对SSD 125无关紧要)。在配置改变对于SSD 125将无关紧要的情况下,那些配置改变不需要被递送到SSD 125。As described above, it is desirable that the configurations of endpoint 405 and SSD 125 mirror each other. However, as described above, there may be some configurations that apply only to endpoint 405 (or that do not matter to SSD 125 because endpoint 405 can handle those changes). In the case where configuration changes will not matter to SSD 125, those configuration changes do not need to be delivered to SSD 125.
在图7中,配置写入请求705被描述为源自图1的主机105。但是发明构思的实施例可支持SSD 125请求图4A至图4C的端点405中的配置改变。也就是说,图1的SSD 125可在运行时间期间动态地请求对由图4A至图4C的端点405向图1的主机105公开的PF的配置、特征或能力的改变。例如,图1的SSD 125可增加或减少由图4A至图4C的端点405公开的PF的中断向量的数量。这样的改变可由图1的主机105使用更高级存储通信协议(诸如,非易失性存储器快速(NVMe))(经由图1的LWB 125)向图1的SSD 125传递的应用需求的改变引起。In FIG. 7 , the configuration write request 705 is described as originating from the host 105 of FIG. 1 . However, embodiments of the inventive concept may support the SSD 125 requesting configuration changes in the endpoint 405 of FIGS. 4A to 4C . That is, the SSD 125 of FIG. 1 may dynamically request changes to the configuration, features, or capabilities of the PF exposed by the endpoint 405 of FIGS. 4A to 4C to the host 105 of FIG. 1 during runtime. For example, the SSD 125 of FIG. 1 may increase or decrease the number of interrupt vectors of the PF exposed by the endpoint 405 of FIGS. 4A to 4C . Such changes may be caused by changes in application requirements communicated by the host 105 of FIG. 1 to the SSD 125 of FIG. 1 using a higher-level storage communication protocol (such as Non-Volatile Memory Express (NVMe)) (via the LWB 125 of FIG. 1 ).
图8示出图1的LWB 135对来自图1的主机105的配置读取请求进行处理。在图8中,端点405可从图1的主机105接收配置读取请求805。端点405然后可读取请求的配置信息,并且将其作为配置信息810返回到图1的主机105。8 illustrates that LWB 135 of FIG. 1 processes a configuration read request from host 105 of FIG. 8 , endpoint 405 may receive configuration read request 805 from host 105 of FIG. Endpoint 405 may then read the requested configuration information and return it as configuration information 810 to host 105 of FIG. 1 .
正如图7的配置写入请求705,配置读取请求805可被递送到SSD 125,以从SSD 125进行读取。因此,配置读取请求805可作为配置读取请求815和820分别被递送到根端口420和SSD 125,配置信息810作为配置信息825和830被返回。但是由于端点405的配置应与SSD125的配置镜像,所以可不需要将配置读取请求805递送到SSD 125以确定请求的配置信息。另外,正如图7的配置写入请求705,配置读取请求805可经由图4A至图4C的APP-EP 410和图4A至图4C的APP-RP 415,或者通过图4A至图4C的配置管理器440被递送到根端口420。As with the configuration write request 705 of FIG. 7 , the configuration read request 805 may be delivered to the SSD 125 to read from the SSD 125. Thus, the configuration read request 805 may be delivered to the root port 420 and the SSD 125 as configuration read requests 815 and 820, respectively, and the configuration information 810 is returned as configuration information 825 and 830. However, since the configuration of the endpoint 405 should mirror the configuration of the SSD 125, it may not be necessary to deliver the configuration read request 805 to the SSD 125 to determine the requested configuration information. Additionally, as with the configuration write request 705 of FIG. 7 , the configuration read request 805 may be delivered to the root port 420 via the APP-EP 410 of FIGS. 4A to 4C and the APP-RP 415 of FIGS. 4A to 4C , or by the configuration manager 440 of FIGS. 4A to 4C .
图9示出图4A至图4C的应用层-端点(APP-EP)410和图4A至图4C的应用层-根端口(APP-RP)415处理LWB 135内的地址转换。在图9中,地址905可以是从图1的主机105接收的地址(例如,图1的主机105请求读取的NVMe寄存器)。APP-EP 410然后可减去用于由图1的主机105调用的PF的主机基址寄存器(BAR)910。APP-RP 415然后可添加图4A至图4C的端点405的请求的PF映射到的PF/VF的SSD BAR 915,从而产生SSD地址920。以这种方式,APP-EP 410和APP-RP 415可将从主机的角度所看的地址转换成可由图1的SSD 125处理的地址。FIG. 9 illustrates that the application layer-endpoint (APP-EP) 410 of FIGS. 4A to 4C and the application layer-root port (APP-RP) 415 of FIGS. 4A to 4C handle address translation within the LWB 135. In FIG. 9, the address 905 may be an address received from the host 105 of FIG. 1 (e.g., an NVMe register that the host 105 of FIG. 1 requests to read). The APP-EP 410 may then subtract the host base address register (BAR) 910 for the PF called by the host 105 of FIG. 1. The APP-RP 415 may then add the SSD BAR 915 of the PF/VF to which the requested PF of the endpoint 405 of FIGS. 4A to 4C is mapped, thereby generating an SSD address 920. In this manner, the APP-EP 410 and the APP-RP 415 may translate addresses from the perspective of the host into addresses that can be processed by the SSD 125 of FIG. 1.
注意,该处理可反向用于将SSD地址转换回主机的角度的地址。因此,APP-RP 415可从SSD地址920减去SSD BAR中的地址915,并且APP-EP 410可加上主机BAR中的地址910,从而产生主机地址905。Note that this process can be reversed to convert the SSD address back to the host's perspective. Thus, APP-RP 415 can subtract address 915 in the SSD BAR from SSD address 920, and APP-EP 410 can add address 910 in the host BAR, thereby generating host address 905.
图10示出图6的映射在图1的LWB 135内被改变。存在映射615可以改变的多种原因。例如,存储参数1005可以触发对映射615的改变:例如,如果特定SSD上的可用容量下降到低于空闲空间的阈值量,则新的写入请求可以被引导到连接到图1的LWB 135的不同的SSD(诸如,图4C的SSD 125-2)。可选地,日(day)1010或日的时间1015可以触发对映射615的改变:例如,特定主机105处的特定请求的峰值时间可以在6:30am与8:00am之间以及在5:00pm与9:00pm之间,因此与处理这样的请求的PF相关联的带宽可在那些时间期间增加并在其它时间减小。即使不使用常规或已知的日/时间值来指定,日1010和日的时间1015可被广义化为与日和/或时间相关的任何触发。例如,在体育赛事结束时,可预计回家的粉丝可从他们的智能电话上的GPS应用请求方向,即使这样的请求将开始的具体时间可能不是已知的(体育赛事持续时间是大致已知的,但是可取决于赛事自身而运行更短或更长)。带宽使用1020自身还可触发对映射615的改变:例如,为了平衡连接到图1的LWB 135的SSD上的负载。最后,QoS策略的改变1025可以触发对映射615的改变:例如,新QoS策略的添加可能需要改变如何映射功能。发明构思的实施例还可包括对映射615的改变的其它触发。不管触发如何,作为改变的结果,映射615可被映射1030替换,映射1030仍然将由图4A至图4C的端点405公开的PF映射到由图1的SSD 125公开的PF/VF,但可能是以不同的布置。FIG. 10 shows the mapping of FIG. 6 being changed within the LWB 135 of FIG. 1 . There are a variety of reasons why the mapping 615 may be changed. For example, a storage parameter 1005 may trigger a change to the mapping 615: for example, if the available capacity on a particular SSD drops below a threshold amount of free space, new write requests may be directed to a different SSD (such as, SSD 125-2 of FIG. 4C ) connected to the LWB 135 of FIG. 1 . Alternatively, a day 1010 or a time of day 1015 may trigger a change to the mapping 615: for example, the peak times for a particular request at a particular host 105 may be between 6:30am and 8:00am and between 5:00pm and 9:00pm, so the bandwidth associated with the PF handling such requests may be increased during those times and decreased at other times. Even if not specified using conventional or known day/time values, the day 1010 and the time of day 1015 may be generalized to any trigger related to day and/or time. For example, at the end of a sporting event, it may be anticipated that fans returning home may request directions from a GPS application on their smartphones, even though the specific time at which such a request will begin may not be known (the duration of a sporting event is roughly known, but may run shorter or longer depending on the event itself). Bandwidth usage 1020 itself may also trigger changes to mapping 615: for example, to balance the load on the SSDs connected to LWB 135 of FIG. 1. Finally, changes 1025 in QoS policies may trigger changes to mapping 615: for example, the addition of a new QoS policy may require a change in how functions are mapped. Embodiments of the inventive concept may also include other triggers for changes to mapping 615. Regardless of the trigger, as a result of the change, mapping 615 may be replaced by mapping 1030, which still maps the PFs exposed by endpoint 405 of FIGS. 4A to 4C to the PFs/VFs exposed by SSD 125 of FIG. 1, but may be in a different arrangement.
图11示出由图1的LWB 135公开的PF具有相关联的服务质量(QoS)策略。在图11中,示出一个PF“PF1”(如由图4A至图4C的端点405公开的),单个QoS策略1105与公开的PF相关联。但是发明构思的实施例可包括具有任何数量的相关联的QoS策略的公开的PF。例如,由图4A至图4C的端点405公开的一些PF可不具有相关联的QoS策略;由图4A至图4C的端点405公开的其它PF可具有两个或更多相关联的QoS策略。FIG. 11 illustrates that the PFs disclosed by the LWB 135 of FIG. 1 have associated quality of service (QoS) policies. In FIG. 11 , one PF "PF1" is illustrated (as disclosed by the endpoint 405 of FIGS. 4A to 4C), with a single QoS policy 1105 associated with the disclosed PF. However, embodiments of the inventive concept may include disclosed PFs with any number of associated QoS policies. For example, some PFs disclosed by the endpoint 405 of FIGS. 4A to 4C may have no associated QoS policies; other PFs disclosed by the endpoint 405 of FIGS. 4A to 4C may have two or more associated QoS policies.
给定与由图4A至图4C的端点405公开的PF相关联的QoS策略1105,图1的LWB 135可根据其规范实施该QoS策略。此外,由于规范可广泛地变化,因此图1的LWB 135如何实施特定QoS策略的细节可不在此阐明。但是作为示例,QoS策略1105可以指定用于特定PF的最大(和/或最小)带宽(因此确保特定PF不阻止其它PF接收它们的公平的带宽份额或者确保特定PF接收其指定的带宽份额)。然后,图1的LWB 135可通过防止使用图1的SSD125上的对应PF/VF的通信超过最大带宽、或者通过确保使用图1的SSD 125上的除与PF对应的PF/VF之外的PF/VF的通信保证公开的PF的最小带宽,来确保满足QoS策略1105。Given a QoS policy 1105 associated with a PF disclosed by endpoint 405 of FIGS. 4A to 4C , the LWB 135 of FIG. 1 may implement the QoS policy in accordance with its specification. Furthermore, because specifications may vary widely, the details of how the LWB 135 of FIG. 1 implements a particular QoS policy may not be set forth herein. However, as an example, the QoS policy 1105 may specify a maximum (and/or minimum) bandwidth for a particular PF (thereby ensuring that a particular PF does not prevent other PFs from receiving their fair share of bandwidth or ensuring that a particular PF receives its specified share of bandwidth). The LWB 135 of FIG. 1 may then ensure that the QoS policy 1105 is satisfied by preventing communications using the corresponding PF/VF on the SSD 125 of FIG. 1 from exceeding the maximum bandwidth, or by ensuring that communications using PF/VFs other than the PF/VF corresponding to the PF on the SSD 125 of FIG. 1 guarantee the minimum bandwidth of the disclosed PF.
虽然图1的LWB 135可实施QoS策略1105,但是由图1的主机105(或者如果图1的SSD125请求对策略进行应用,则由图1的SSD 125)来确保策略是合适的。例如,假设图1的SSD125具有100GB/秒的最大带宽,支持总共16个功能(PF和VF)。如果主机将分配保证给由LWB135公开的每个PF 10GB/秒的最小带宽的QoS策略,则总分配的带宽将是160GB/秒,这超过了图1的SSD 125的能力。作为结果,一些PF将不满足它们相关联的QoS策略。因此,虽然图1的LWB 135可实施QoS策略1105,但是LWB 105可以不检查:QoS策略1105与分配给各种PF的其它QoS策略组合可被全部同时实施。Although the LWB 135 of FIG. 1 may implement the QoS policy 1105, it is up to the host 105 of FIG. 1 (or the SSD 125 of FIG. 1 if the SSD 125 of FIG. 1 requests that the policy be applied) to ensure that the policy is appropriate. For example, assume that the SSD 125 of FIG. 1 has a maximum bandwidth of 100 GB/sec and supports a total of 16 functions (PFs and VFs). If the host allocates a QoS policy that guarantees a minimum bandwidth of 10 GB/sec to each PF exposed by the LWB 135, the total allocated bandwidth will be 160 GB/sec, which exceeds the capabilities of the SSD 125 of FIG. 1. As a result, some PFs will not satisfy their associated QoS policies. Therefore, although the LWB 135 of FIG. 1 may implement the QoS policy 1105, the LWB 105 may not check that the QoS policy 1105 in combination with other QoS policies assigned to various PFs can all be implemented simultaneously.
因此,在实施QoS策略与确保QoS策略总是可实施之间存在差异。图1的LWB 135可执行前者;它可以不执行后者。但是,不值得仅是因为一组QoS策略可能不能同时执行,这个事实并不表示将来任何个别的QoS策略将不被满足。例如,再次考虑图1的SSD 125提供总共10GB/秒的带宽,并且假设图1的主机105指定用于由图4A至图4C的端点405公开的两个不同PF的QoS策略,保证给每个PF 6Gb/秒的最小带宽。总体来说,由于每个PF被“确保”图1的SSD125的可用的10GB/秒的带宽中的6GB/秒,两个QoS策略可能不被满足。但是如果结果发现同时调用两个功能在逻辑上(或物理上)是不可能的(例如,如果一个功能涉及从图1的SSD125读取数据或将数据写入到图1的SSD 125,并且另一功能涉及图1的SSD 125执行内部一致性检查,该内部一致性检查使得图1的SSD 125在一致性检查完成之前不能够响应任何其它功能),则图1的主机105可指定两个QoS策略:即使它们累积地超过由图1的SSD 125提供的带宽,两个策略将不同时被实施,因此仅存在逻辑上的冲突,而不是实际(或甚至潜在)冲突。Thus, there is a difference between enforcing a QoS policy and ensuring that a QoS policy is always enforceable. The LWB 135 of FIG. 1 may enforce the former; it may not enforce the latter. However, it is important to note that just because a set of QoS policies may not be enforceable simultaneously, this fact does not mean that any individual QoS policy will not be satisfied in the future. For example, consider again that the SSD 125 of FIG. 1 provides a total of 10 GB/sec of bandwidth, and assume that the host 105 of FIG. 1 specifies QoS policies for two different PFs exposed by the endpoints 405 of FIGS. 4A through 4C , guaranteeing a minimum bandwidth of 6 Gb/sec to each PF. Overall, since each PF is "guaranteed" 6 GB/sec of the available 10 GB/sec bandwidth of the SSD 125 of FIG. 1 , both QoS policies may not be satisfied. But if it turns out that invoking both functions simultaneously is logically (or physically) impossible (for example, if one function involves reading data from or writing data to SSD 125 of FIG. 1 , and the other function involves SSD 125 of FIG. 1 performing an internal consistency check that prevents SSD 125 of FIG. 1 from responding to any other function until the consistency check is complete), then host 105 of FIG. 1 may specify two QoS policies: even if they cumulatively exceed the bandwidth provided by SSD 125 of FIG. 1 , the two policies will not be implemented simultaneously, so that there is only a logical conflict, not an actual (or even potential) conflict.
如上所述,有时图1的LWB 135可能需要执行带宽节流:例如,用于防止由图4A至图4C的端点405公开的特定PF使用过多的带宽,使得图1的SSD 125的其它功能被过度限制。图12A至图12B示出图1的LWB 135执行带宽节流。在图12A中,LWB 135被示为从图1的主机105接收“高”或“大”带宽1205。如果这个带宽由于任何原因而过大,则LWB 135可对到图1的SSD125的带宽进行节流,如“低”或“小”带宽1210所示。在图12B中,示出相反的情况:LWB 135可与图1的SSD 125具有“高”或“大”带宽1215,但是可对图1的主机105的带宽1220进行节流。因此,当图1的SSD 125的可用带宽高于针对PF设置的SLA的最大带宽时,LWB 135可对带宽进行节流。As described above, sometimes the LWB 135 of FIG. 1 may need to perform bandwidth throttling: for example, to prevent a particular PF exposed by the endpoint 405 of FIG. 4A to FIG. 4C from using too much bandwidth, causing other functions of the SSD 125 of FIG. 1 to be overly limited. FIG. 12A to FIG. 12B illustrate the LWB 135 of FIG. 1 performing bandwidth throttling. In FIG. 12A , the LWB 135 is shown as receiving a "high" or "large" bandwidth 1205 from the host 105 of FIG. 1 . If this bandwidth is too large for any reason, the LWB 135 may throttle the bandwidth to the SSD 125 of FIG. 1 , as shown by the "low" or "small" bandwidth 1210. In FIG. 12B , the opposite situation is shown: the LWB 135 may have a "high" or "large" bandwidth 1215 with the SSD 125 of FIG. 1 , but may throttle the bandwidth 1220 of the host 105 of FIG. 1 . Therefore, when the available bandwidth of the SSD 125 of FIG. 1 is higher than the maximum bandwidth of the SLA set for the PF, the LWB 135 may throttle the bandwidth.
发明构思的实施例可针对任何数量的原因执行带宽节流。除了图11的QoS策略1105(如果用于由图4A至图4C的端点405公开的特定PF的带宽太大,则QoS策略1105可与对该PF相关联的带宽进行节流)之外,用于节流带宽的其它原因可包括温度或功耗。例如,如果LWB 135(或图1的SSD 125)的温度变得太高(即,超过某个阈值),则LWB 135可对带宽进行节流以降低温度。然后,一旦温度已经充分下降(这可能表示下降到该原始阈值以下或者下降到可低于该原始阈值的另外的阈值以下),LWB 135就可停止对带宽进行节流。功耗可以以与温度相同的方式触发带宽节流,除了LWB 135(或图1的SSD 125)的功耗可触发带宽节流之外,降低的功耗阈值解除带宽节流。这些阈值可被存储在LWB 135内的某处。带宽可能被节流的又一原因可以是,由于针对由图4A至图4C的端点405公开的PF建立的优先级:当使用不同的PF时,具有较低优先级的PF上的带宽可被节流以有利于具有更高优先级的PF的带宽。Embodiments of the inventive concept may perform bandwidth throttling for any number of reasons. In addition to the QoS policy 1105 of FIG. 11 (if the bandwidth for a particular PF exposed by the endpoint 405 of FIG. 4A to FIG. 4C is too large, the QoS policy 1105 may throttle the bandwidth associated with the PF), other reasons for throttling bandwidth may include temperature or power consumption. For example, if the temperature of the LWB 135 (or the SSD 125 of FIG. 1 ) becomes too high (i.e., exceeds a certain threshold), the LWB 135 may throttle the bandwidth to reduce the temperature. Then, once the temperature has dropped sufficiently (which may mean dropping below the original threshold or dropping below another threshold that may be lower than the original threshold), the LWB 135 may stop throttling the bandwidth. Power consumption may trigger bandwidth throttling in the same manner as temperature, except that the power consumption of the LWB 135 (or the SSD 125 of FIG. 1 ) may trigger bandwidth throttling, and a reduced power consumption threshold may release bandwidth throttling. These thresholds may be stored somewhere within the LWB 135. Yet another reason bandwidth may be throttled may be due to priorities established for PFs exposed by endpoint 405 of FIGS. 4A-4C : when different PFs are used, bandwidth on a PF with a lower priority may be throttled in favor of bandwidth for a PF with a higher priority.
对带宽进行节流的另一个原因可以是管理QoSs或SLA。例如,图1的主机105可能仅支付比LWB 135能够提供的带宽低的水平的带宽。因此,即使图1的主机105和LWB 135可以使用更高的全部带宽进行通信,LWB 135也会限制图1的主机105的带宽,使得提供的服务不大于已经保证给图1的主机105的服务。换句话说,LWB 135可基于SLA或定价计划来限制或限定PF的最大存储带宽。Another reason to throttle bandwidth may be to manage QoSs or SLAs. For example, the host 105 of FIG. 1 may only pay for bandwidth at a lower level than the bandwidth that the LWB 135 is able to provide. Therefore, even though the host 105 of FIG. 1 and the LWB 135 could use a higher overall bandwidth for communication, the LWB 135 would limit the bandwidth of the host 105 of FIG. 1 so that the service provided is no greater than the service that has been guaranteed to the host 105 of FIG. 1. In other words, the LWB 135 may limit or restrict the maximum storage bandwidth of the PF based on an SLA or pricing plan.
注意,虽然图12A至图12B具体地讨论了带宽,但是对于与图1的主机105或图1的SSD 125的通信,可类似地监控和节流其它资源。例如,延迟可在一定程度上被控制,与具有较高目标延迟的PF相比,更偏爱具有较低目标延迟的PF。Note that while Figures 12A-12B specifically discuss bandwidth, other resources may be similarly monitored and throttled for communications with the host 105 of Figure 1 or the SSD 125 of Figure 1. For example, latency may be controlled to some extent, favoring PFs with lower target latencies over PFs with higher target latencies.
LWB 135可测量和监控由图4A至图4C的端点405单独公开的每个PF消耗的带宽(或其它资源)。带宽可在两个方向上测量和监控:即,主机到装置(主机写入操作)和装置到主机(主机读取操作)。对带宽进行节流也可在任一方向上独立地执行。作为测量的带宽和QoS策略设置两者的结果,可执行带宽(或其它资源)节流。LWB 135 can measure and monitor the bandwidth (or other resource) consumed by each PF individually exposed by endpoint 405 of Figures 4A to 4C. Bandwidth can be measured and monitored in both directions: namely, host to device (host write operations) and device to host (host read operations). Throttling bandwidth can also be performed independently in either direction. Bandwidth (or other resource) throttling can be performed as a result of both measured bandwidth and QoS policy settings.
图13示出图1的LWB 135向图1的SSD 125发布信用(credit)。信用是LWB 135可管理SSD 125使用多少带宽的一种方式。给定特定请求,LWB 135可发出一定数量的信用1305,每个信用1305表示SSD 125可传送的特定数据量。因此,LWB 135发出的信用1305的数量可控制SSD 125的带宽:LWB 135可发出刚好足够(或几乎刚好足够,或任何其它期望数量)的信用1305以覆盖数据传送。当SSD 125传送数据时,该数据传送使用信用1305:如果SSD 125不具有任何可用的信用,则SSD 125不可传送任何数据,直到新的信用被发出。FIG. 13 shows the LWB 135 of FIG. 1 issuing credits to the SSD 125 of FIG. 1 . Credits are one way that the LWB 135 can manage how much bandwidth the SSD 125 uses. Given a particular request, the LWB 135 can issue a certain number of credits 1305, each credit 1305 representing a certain amount of data that the SSD 125 can transfer. Thus, the number of credits 1305 issued by the LWB 135 can control the bandwidth of the SSD 125: the LWB 135 can issue just enough (or almost just enough, or any other desired number) of credits 1305 to cover a data transfer. When the SSD 125 transfers data, that data transfer uses credits 1305: if the SSD 125 does not have any available credits, then the SSD 125 cannot transfer any data until new credits are issued.
信用1305可以以任何期望的方式发出。在发明构思的一些实施例中,LWB 135可经由消息(可以是例如专有消息)向SSD 125发送信用1305。在发明构思的其它实施例中,LWB135可将信用1305写入SSD 125上的特定地址中:例如,NVMe地址空间中的保留地址。在发明构思的其它实施例中,LWB 135可将信用1305写入LWB 135内的地址(再次,可能是保留地址)中:SSD 125然后可读取该地址以查看什么信用1305是可用的。信用1305的使用是对SSD125的带宽进行节流的一种方式。通过限制向SSD 125发出的信用1305的数量,可防止SSD125在给定时间单位内下载特定事务所需的所有数据。通过减小SSD 125上的带宽,SSD 125可经历减小的功耗和/或更低的温度。最终,如果功耗和/或温度下降到可接受的水平(可不同于可开始带宽节流的水平,如以上参照图12所讨论的),则LWB 135可停止对SSD 125的带宽进行节流。Credits 1305 may be issued in any desired manner. In some embodiments of the inventive concept, LWB 135 may send credits 1305 to SSD 125 via a message (which may be, for example, a proprietary message). In other embodiments of the inventive concept, LWB 135 may write credits 1305 to a specific address on SSD 125: for example, a reserved address in the NVMe address space. In other embodiments of the inventive concept, LWB 135 may write credits 1305 to an address within LWB 135 (again, possibly a reserved address): SSD 125 may then read the address to see what credits 1305 are available. The use of credits 1305 is a way to throttle the bandwidth of SSD 125. By limiting the number of credits 1305 issued to SSD 125, SSD 125 may be prevented from downloading all the data required for a particular transaction within a given unit of time. By reducing the bandwidth on SSD 125, SSD 125 may experience reduced power consumption and/or lower temperatures. Eventually, if power consumption and/or temperature drops to acceptable levels (which may be different than levels at which bandwidth throttling may begin, as discussed above with reference to FIG. 12 ), LWB 135 may stop throttling bandwidth to SSD 125 .
在另一实施例中,LWB 135可在数据传送包之间插入空闲时段,以实现带宽节流。通过基于测量的带宽(或其它资源)和QoS策略设置来调整数据包的包间间隙(inter-packet gap),LWB 135可总地实现针对单独PF或所有PF的期望带宽限制。In another embodiment, LWB 135 may insert idle periods between data transmission packets to implement bandwidth throttling. By adjusting the inter-packet gap of data packets based on measured bandwidth (or other resources) and QoS policy settings, LWB 135 may implement desired bandwidth limits for individual PFs or all PFs in general.
图14A至图14B示出根据发明构思的实施例的图1的LWB 135识别由图1的SSD 125公开的PF/VF、从LWB 135公开PF、以及生成由图1的LWB 135公开的PF与由图1的SSD 125公开的PF/VF之间的映射的示例过程的流程图。在图14A中,在框1405,图1的LWB 135可枚举由图1的SSD 125公开的PF和VF。在框1410,图1的LWB 135可生成将由图1的LWB 135公开的PF(更具体地,将由图4A至图4C的端点405公开的PF)。注意,由图1的LWB 135生成的PF的数量可不一定等于由图1的SSD 125公开的PF和VF的数量:由图1的SSD 125公开的某些功能可能不获得由图1的LWB 135公开的对应PF,并且由图1的LWB 135公开的单个PF可以映射到图1的SSD 125的多个PF/VF。在框1415,图1的LWB 135可进行检查,以查看是否存在任何其它连接的装置以进行枚举(诸如,图4C的SSD 125-2)。如果存在,则处理可返回到框1405,以枚举下一装置的PF和VF。14A-14B illustrate a flowchart of an example process of the LWB 135 of FIG. 1 identifying PF/VFs exposed by the SSD 125 of FIG. 1, exposing PFs from the LWB 135, and generating a mapping between the PFs exposed by the LWB 135 of FIG. 1 and the PF/VFs exposed by the SSD 125 of FIG. 1 according to an embodiment of the inventive concept. In FIG. 14A , at block 1405, the LWB 135 of FIG. 1 may enumerate the PFs and VFs exposed by the SSD 125 of FIG. 1. At block 1410, the LWB 135 of FIG. 1 may generate a PF to be exposed by the LWB 135 of FIG. 1 (more specifically, a PF to be exposed by the endpoint 405 of FIGS. 4A-4C ). Note that the number of PFs generated by the LWB 135 of FIG. 1 may not necessarily equal the number of PFs and VFs exposed by the SSD 125 of FIG. 1 : certain functions exposed by the SSD 125 of FIG. 1 may not obtain corresponding PFs exposed by the LWB 135 of FIG. 1 , and a single PF exposed by the LWB 135 of FIG. 1 may map to multiple PFs/VFs of the SSD 125 of FIG. 1 . At block 1415, the LWB 135 of FIG. 1 may check to see if there are any other connected devices to enumerate (such as, SSD 125-2 of FIG. 4C ). If so, the process may return to block 1405 to enumerate the PFs and VFs of the next device.
假设已经枚举了所有连接的装置,则在框1420(图14B),图1的LWB 135可将由图4A至图4C的端点405公开的PF映射到由图1的SSD 125(和其它连接的装置)公开的PF和VF。在框1425,图1的LWB 135可确定图1的SSD 125和任何其它连接的装置的其它资源(诸如,带宽)(这个确定也可作为图14A的框1405的部分来进行),并且在框1430,图1的LWB 135可将所有连接的装置的资源聚合。以这种方式,图1的LWB 135可看起来提供比单独装置中的任一个更高的总体资源。Assuming that all connected devices have been enumerated, at block 1420 (FIG. 14B), the LWB 135 of FIG. 1 may map the PFs exposed by the endpoints 405 of FIG. 4A-4C to the PFs and VFs exposed by the SSD 125 of FIG. 1 (and other connected devices). At block 1425, the LWB 135 of FIG. 1 may determine other resources (such as bandwidth) of the SSD 125 of FIG. 1 and any other connected devices (this determination may also be made as part of block 1405 of FIG. 14A), and at block 1430, the LWB 135 of FIG. 1 may aggregate the resources of all connected devices. In this manner, the LWB 135 of FIG. 1 may appear to provide higher overall resources than any of the individual devices.
在框1435,图1的LWB 135可从图1的主机105接收枚举请求。在框1440,图1的LWB135可通过公开图4A至图4C的端点405的PF来响应图1的主机105的枚举请求。At block 1435, the LWB 135 of Figure 1 may receive an enumeration request from the host 105 of Figure 1. At block 1440, the LWB 135 of Figure 1 may respond to the enumeration request of the host 105 of Figure 1 by exposing the PF of the endpoint 405 of Figures 4A-4C.
图15A至图15B示出图1的LWB 135从图1的主机105接收并处理请求的示例过程的流程图。在图15A中,在框1505,图1的LWB 135可从图1的主机135接收对由图4A至图4C的端点405公开的某个PF的请求:请求指向哪个PF并且PF代表什么功能与分析无关。在框1510,图1的LWB 135可将请求指向的PF映射到图1的SSD 125的PF或VF(该映射可使用例如图4A至图4C的配置表435来执行)。在框1515,LWB 135可选择图1的SSD 125作为包括由图4A至图4C的端点405公开的PF映射到的PF或VF的装置。注意,如图4C中所示,框1515可能仅在图1的LWB 135被连接到多个装置的情况下才重要:如果可能存在多个装置,则图4C的多个APP-EP410-1和410-2可能接收请求。在仅一个装置可被连接到图1的LWB 135的发明构思的实施例中(因为LWB 135仅包括图4A至图4B的一个APP-EP 410,或者因为仅图1的一个SSD 125被连接到图1的LWB 135),框1515可被省略,如虚线1520所示。15A-15B illustrate a flow chart of an example process by which the LWB 135 of FIG. 1 receives and processes a request from the host 105 of FIG. 1. In FIG. 15A, at block 1505, the LWB 135 of FIG. 1 may receive a request for a certain PF exposed by the endpoint 405 of FIG. 4A-4C from the host 135 of FIG. 1: which PF the request is directed to and what function the PF represents are irrelevant to the analysis. At block 1510, the LWB 135 of FIG. 1 may map the PF to which the request is directed to a PF or VF of the SSD 125 of FIG. 1 (the mapping may be performed using, for example, the configuration table 435 of FIG. 4A-4C). At block 1515, the LWB 135 may select the SSD 125 of FIG. 1 as the device that includes the PF or VF to which the PF exposed by the endpoint 405 of FIG. 4A-4C is mapped. Note that, as shown in FIG4C, block 1515 may only be important if the LWB 135 of FIG1 is connected to multiple devices: if multiple devices may exist, multiple APP-EPs 410-1 and 410-2 of FIG4C may receive the request. In embodiments of the inventive concept where only one device may be connected to the LWB 135 of FIG1 (because the LWB 135 includes only one APP-EP 410 of FIGS. 4A-4B, or because only one SSD 125 of FIG1 is connected to the LWB 135 of FIG1), block 1515 may be omitted, as shown by dashed line 1520.
一旦合适的装置和合适的目的地PF/VF已经被识别到,则在框1525,图1的LWB 135可将该请求转换成对识别的PF/VF的请求。这可涉及例如以上参照图9描述的(以及以下参照图16描述的)地址转换。在框1530(图15B),图1的LWB 135可将转换的请求发送到识别的装置上的识别的PF/VF。Once the appropriate device and the appropriate destination PF/VF have been identified, the LWB 135 of FIG. 1 may translate the request into a request for the identified PF/VF at block 1525. This may involve, for example, the address translation described above with reference to FIG. 9 (and described below with reference to FIG. 16). At block 1530 (FIG. 15B), the LWB 135 of FIG. 1 may send the translated request to the identified PF/VF on the identified device.
在框1535,图1的LWB 135可从识别的装置的识别的PF/VF接收响应。在框1540,图1的LWB 135可将识别的装置的PF/VF映射到由图4A至图4C的端点405公开的PF(该映射可使用例如图4A至图4C的配置表435来执行)。在框1545,图1的LWB 135可将响应转换成对图1的主机135的响应。最后,在框1550,如同从图4A至图4C的端点405的公开的PF那样,图1的LWB135可将响应发送回主机。At block 1535, the LWB 135 of FIG. 1 may receive a response from the identified PF/VF of the identified device. At block 1540, the LWB 135 of FIG. 1 may map the PF/VF of the identified device to the PF exposed by the endpoint 405 of FIGS. 4A to 4C (the mapping may be performed using, for example, the configuration table 435 of FIGS. 4A to 4C). At block 1545, the LWB 135 of FIG. 1 may convert the response into a response to the host 135 of FIG. 1. Finally, at block 1550, the LWB 135 of FIG. 1 may send the response back to the host as the exposed PF from the endpoint 405 of FIGS. 4A to 4C.
图16示出图4A至图4C的APP-EP和APP-RP在图1的主机105与图1的SSD 125之间转换地址的示例过程的流程图。在图16中,在框1605,图4A至图4C的APP-EP 410可从包括在来自图1的主机105的请求中的地址中减去主机BAR中的地址,并且在框1610,图4A至图4C的APP-RP 415可将装置BAR中的地址加到在框1605中确定的地址。FIG16 illustrates a flow chart of an example process of translating addresses between the host 105 of FIG1 and the SSD 125 of FIG1 by the APP-EP and APP-RP of FIG4A to FIG4C. In FIG16, at block 1605, the APP-EP 410 of FIG4A to FIG4C may subtract an address in the host BAR from an address included in a request from the host 105 of FIG1, and at block 1610, the APP-RP 415 of FIG4A to FIG4C may add the address in the device BAR to the address determined in block 1605.
注意,可省略从图1的SSD 125到图1的主机105的反向地址转换。图1的SSD 125(像任何这样的装置)可接收由图1的主机105使用的完整地址。因此,由图1的SSD 125提供的地址可用于对图1的主机105内的特定地址进行访问而无需转换。但是如果图1的SSD 125不具有图1的主机105的完整地址,则可反向执行地址转换,图4A至图4C的APP-RP 415从包括在来自图1的SSD 125的请求中的地址中减去装置BAR中的地址,并且图4A至图4C的APP-EP410将主机BAR中的地址加到地址。Note that the reverse address translation from the SSD 125 of FIG. 1 to the host 105 of FIG. 1 may be omitted. The SSD 125 of FIG. 1 (like any such device) may receive a complete address for use by the host 105 of FIG. 1 . Thus, the address provided by the SSD 125 of FIG. 1 may be used to access a particular address within the host 105 of FIG. 1 without translation. However, if the SSD 125 of FIG. 1 does not have the complete address of the host 105 of FIG. 1 , the address translation may be performed in reverse, with the APP-RP 415 of FIGS. 4A to 4C subtracting the address in the device BAR from the address included in the request from the SSD 125 of FIG. 1 , and the APP-EP 410 of FIGS. 4A to 4C adding the address in the host BAR to the address.
图17示出图1的LWB 135向图1的SSD 125发出图13的信用1305的示例过程的流程图。在图17中,在框1705,图1的LWB 135可测量或监控由图4A至图4C的端点405公开的各个PF消耗的带宽。在框1710,图1的LWB 135可确定发给图1的SSD 125的图13的信用1305。这些信用可基于由图4A至图4C的端点405公开的PF消耗的带宽以及图1的SSD 125可能需要传送的数据量来确定。图1的SSD 125可使用这些信用来将数据传送到图1的SSD 125或者从图1的SSD 125传送数据。在这一点上,存在用于将图13的信用1305递送到图1的SSD 125的多种选择。在框1715,图1的LWB 135可将图13的信用1305写入到图1的SSD 125中的地址。可选地,在框1720,LWB 135可将图13的信用1305写入到图1的LWB 135中的地址,并且图1的SSD125可从图1的LWB 135中的该地址读取图13的信用1305。可选地,在框1725,图1的LWB 135可将消息发送到图1的SSD 125,消息可包括图13的信用1305。FIG. 17 illustrates a flow chart of an example process for the LWB 135 of FIG. 1 to issue the credits 1305 of FIG. 13 to the SSD 125 of FIG. 1. In FIG. 17, at block 1705, the LWB 135 of FIG. 1 may measure or monitor the bandwidth consumed by the various PFs exposed by the endpoints 405 of FIG. 4A to FIG. 4C. At block 1710, the LWB 135 of FIG. 1 may determine the credits 1305 of FIG. 13 to issue to the SSD 125 of FIG. 1. These credits may be determined based on the bandwidth consumed by the PFs exposed by the endpoints 405 of FIG. 4A to FIG. 4C and the amount of data that the SSD 125 of FIG. 1 may need to transfer. The SSD 125 of FIG. 1 may use these credits to transfer data to or from the SSD 125 of FIG. 1. At this point, there are multiple options for delivering the credits 1305 of FIG. 13 to the SSD 125 of FIG. 1. At block 1715, the LWB 135 of FIG. 1 may write the credit 1305 of FIG. 13 to an address in the SSD 125 of FIG. 1. Optionally, at block 1720, the LWB 135 may write the credit 1305 of FIG. 13 to an address in the LWB 135 of FIG. 1, and the SSD 125 of FIG. 1 may read the credit 1305 of FIG. 13 from the address in the LWB 135 of FIG. 1. Optionally, at block 1725, the LWB 135 of FIG. 1 may send a message to the SSD 125 of FIG. 1, which may include the credit 1305 of FIG. 13.
图18示出图1的LWB 135对图7的配置写入请求705进行处理的示例过程的流程图。在图18中,在框1805,图1的LWB 135可接收图7的配置写入请求705:可从图1的主机105或图1的SSD 125接收图7的配置写入请求705。在框1810,图1的LWB 135(更具体地,图4A至图4C的配置管理器440)可配置如图7的配置写入请求705所指定的由图4A至图4C的端点405公开的PF。在框1815,图1的LWB 135可使用图5的状态机510和图5的SR-IOV序列505来执行该配置。最后,在框1820,图1的LWB 135可确保由图1的SSD 125公开的PF/VF的配置与由图4A至图4C的端点405公开的PF的配置镜像:如虚线箭头710和715所示,这可涉及将图7的配置写入请求705发送到图1的SSD 125。由于图7的配置写入请求705可能不需要被发送到图1的SSD 125,因此如虚线1825所示,框1820是可选的。FIG18 shows a flow chart of an example process for the LWB 135 of FIG1 to process the configuration write request 705 of FIG7. In FIG18, at block 1805, the LWB 135 of FIG1 may receive the configuration write request 705 of FIG7: the configuration write request 705 of FIG7 may be received from the host 105 of FIG1 or the SSD 125 of FIG1. At block 1810, the LWB 135 of FIG1 (more specifically, the configuration manager 440 of FIGS. 4A to 4C) may configure the PF exposed by the endpoint 405 of FIGS. 4A to 4C as specified by the configuration write request 705 of FIG7. At block 1815, the LWB 135 of FIG1 may perform the configuration using the state machine 510 of FIG5 and the SR-IOV sequence 505 of FIG5. Finally, at block 1820, LWB 135 of FIG. 1 may ensure that the configuration of the PF/VF exposed by SSD 125 of FIG. 1 mirrors the configuration of the PF exposed by endpoint 405 of FIGS. 4A-4C : as indicated by dashed arrows 710 and 715, this may involve sending configuration write request 705 of FIG. 7 to SSD 125 of FIG. 1. Since configuration write request 705 of FIG. 7 may not need to be sent to SSD 125 of FIG. 1, block 1820 is optional, as indicated by dashed line 1825.
图19示出图1的LWB 135对图8的配置读取请求805进行处理的示例过程的流程图。在图19中,在框1905,图1的LWB 135可接收图8的配置读取请求805:可从图1的主机105或图1的SSD 125接收图8的配置读取请求805(尽管通常可从图1的主机105接收图8的配置读取请求805)。在这一点上,存在一些替代方案。在框1910,图1的LWB 135(更具体地,图4A至图4C的配置管理器440)可确定由图4A至图4C的端点405公开的PF的配置。在使用框1910的发明构思的实施例中,由于由图1的SSD 125公开的PF的配置应与由图4A至图4C的端点405公开的PF的配置镜像,因此可不需要向图1的SSD 125查询其公开的PF/VF的配置(尽管也可向图1的SSD 125查询其公开的PF/VF的配置)。可选地,在框1915,图1的LWB 135可将图8的配置读取请求805递送到图1的SSD 125(如图8的虚线箭头815和820所示),并且可接收图8的配置信息810作为返回(如图8的虚线箭头825和830所示)。无论哪种方式,在框1920,图1的LWB 135可将图8的配置信息810返回到请求者。FIG. 19 illustrates a flow chart of an example process by which the LWB 135 of FIG. 1 processes the configuration read request 805 of FIG. 8 . In FIG. 19 , at block 1905, the LWB 135 of FIG. 1 may receive the configuration read request 805 of FIG. 8 : the configuration read request 805 of FIG. 8 may be received from the host 105 of FIG. 1 or the SSD 125 of FIG. 1 (although the configuration read request 805 of FIG. 8 may generally be received from the host 105 of FIG. 1 ). At this point, there are some alternatives. At block 1910, the LWB 135 of FIG. 1 (more specifically, the configuration manager 440 of FIGS. 4A to 4C ) may determine the configuration of the PF exposed by the endpoint 405 of FIGS. 4A to 4C . In an embodiment of the inventive concept using block 1910, since the configuration of the PF disclosed by the SSD 125 of FIG. 1 should mirror the configuration of the PF disclosed by the endpoint 405 of FIGS. 4A to 4C, it may not be necessary to query the SSD 125 of FIG. 1 for the configuration of the PF/VF it discloses (although it may be possible to query the SSD 125 of FIG. 1 for the configuration of the PF/VF it discloses). Optionally, at block 1915, the LWB 135 of FIG. 1 may deliver the configuration read request 805 of FIG. 8 to the SSD 125 of FIG. 1 (as indicated by the dashed arrows 815 and 820 of FIG. 8), and may receive the configuration information 810 of FIG. 8 in return (as indicated by the dashed arrows 825 and 830 of FIG. 8). In either case, at block 1920, the LWB 135 of FIG. 1 may return the configuration information 810 of FIG. 8 to the requester.
图20示出图1的LWB 135将图11的QoS策略1105与由图1的LWB 135公开的PF相关联的示例过程的流程图。在图20中,在框2005,图1的LWB 135可从源接收图11的QoS策略1105,源可以是图1的主机105或图1的SSD 125。然后,在框2010,图1的LWB 135可将策略与由图4A至图4C的端点405公开的识别的PF相关联,并且适当地实施该策略。FIG20 illustrates a flow chart of an example process by which the LWB 135 of FIG1 associates the QoS policy 1105 of FIG11 with a PF exposed by the LWB 135 of FIG1. In FIG20, at block 2005, the LWB 135 of FIG1 may receive the QoS policy 1105 of FIG11 from a source, which may be the host 105 of FIG1 or the SSD 125 of FIG1. Then, at block 2010, the LWB 135 of FIG1 may associate the policy with the identified PF exposed by the endpoint 405 of FIGS. 4A to 4C and implement the policy appropriately.
图21示出图1的LWB 135动态地改变由图1的LWB 135公开的PF到由图1的SSD 125公开的PF/VF的映射的示例过程的流程图。在图21中,在框2105,图1的LWB 135可识别图10的存储参数1005、图10的日1010、图10的日的时间1015、图10的带宽使用1020或已经改变的图10的QoS策略改变1025。在框2110,图1的LWB 135可响应于检测的改变来动态地改变图6的PF 605与图6的PF/VFS 610之间的图6的映射615。FIG21 illustrates a flow chart of an example process by which the LWB 135 of FIG1 dynamically changes a mapping of a PF exposed by the LWB 135 of FIG1 to a PF/VF exposed by the SSD 125 of FIG1. In FIG21, at block 2105, the LWB 135 of FIG1 may identify that the storage parameter 1005 of FIG10, the day 1010 of FIG10, the time of day 1015 of FIG10, the bandwidth usage 1020 of FIG10, or the QoS policy change 1025 of FIG10 has changed. At block 2110, the LWB 135 of FIG1 may dynamically change the mapping 615 of FIG6 between the PF 605 of FIG6 and the PF/VFS 610 of FIG6 in response to the detected change.
图22A至图22B示出图1的LWB 135执行带宽节流的示例过程的流程图。在图22A中,在框2205,图1的LWB 135可确定图11的QoS策略1105、或者图1的LWB 135或图1的SSD 125的温度或功耗。在框2210,图1的LWB 135可确定带宽节流是否适用:例如,通过将图1的LWB135或图1的SSD 125的温度或功耗与存储在图1的LWB 135中的阈值进行比较。22A-22B illustrate a flow chart of an example process of performing bandwidth throttling by the LWB 135 of FIG. 22A , at block 2205, the LWB 135 of FIG. 1 may determine the QoS policy 1105 of FIG. 11 , or the temperature or power consumption of the LWB 135 of FIG. 1 or the SSD 125 of FIG. 1 . At block 2210, the LWB 135 of FIG. 1 may determine whether bandwidth throttling is applicable: for example, by comparing the temperature or power consumption of the LWB 135 of FIG. 1 or the SSD 125 of FIG. 1 with a threshold value stored in the LWB 135 of FIG. 1 .
如果带宽节流是适用的,则在框2215,图1的LWB 135可对图1的SSD 125的带宽进行节流。该节流可通过限制向图1的SSD 125发出的图13的信用1305的数量来实现。然后,在框2220(图22B),图1的LWB 135可确定图11的QoS策略1105(可以是与图22A的框2210中的触发带宽节流相同的图11的QoS策略1105或不同的QoS策略)或者图1的LWB 135或图1的SSD125的温度或功耗。在框2225,图1的LWB 135可确定图11的QoS策略1105或者图1的LWB 135或图1的SSD 125的新的温度或功耗是否已经达到不再需要带宽节流的水平。如果带宽节流仍然适用,则控制可返回到框2220,以再次检查可以结束带宽节流的改变是否已经发生。否则,在框2230,图1的LWB 135可停止带宽节流。If bandwidth throttling is applicable, then at block 2215, the LWB 135 of FIG. 1 may throttle the bandwidth of the SSD 125 of FIG. 1. The throttling may be achieved by limiting the number of credits 1305 of FIG. 13 issued to the SSD 125 of FIG. 1. Then, at block 2220 (FIG. 22B), the LWB 135 of FIG. 1 may determine the QoS policy 1105 of FIG. 11 (which may be the same QoS policy 1105 of FIG. 11 that triggered bandwidth throttling in block 2210 of FIG. 22A or a different QoS policy) or the temperature or power consumption of the LWB 135 of FIG. 1 or the SSD 125 of FIG. 1. At block 2225, the LWB 135 of FIG. 1 may determine whether the QoS policy 1105 of FIG. 11 or the new temperature or power consumption of the LWB 135 of FIG. 1 or the SSD 125 of FIG. 1 has reached a level where bandwidth throttling is no longer necessary. If bandwidth throttling is still applicable, control may return to block 2220 to check again whether a change has occurred that may end bandwidth throttling. Otherwise, at block 2230, the LWB 135 of FIG. 1 may stop bandwidth throttling.
在图14A至图22B中,示出了发明的一些实施例。但本领域技术人员将认识到,通过改变框的顺序、通过省略框或通过包括附图中未示出的连接,发明的其它实施例也是可行的。无论是否明确地描述,流程图的所有这样的变化都被认为是发明的实施例。In Figures 14A to 22B, some embodiments of the invention are shown. However, those skilled in the art will recognize that other embodiments of the invention are possible by changing the order of the blocks, by omitting blocks, or by including connections not shown in the drawings. All such variations of the flow charts are considered embodiments of the invention, whether explicitly described or not.
发明构思的实施例包括优于常规实施方式的技术优点。轻量桥接器(LWB)可向主机机器公开物理功能(PF),这消除了主机机器执行单根输入/输出虚拟化(SR-IOV)软件来访问装置(诸如,固态驱动器(SSD))的虚拟功能(VF)的需要。由于LWB可以是单独的装置,并且装置不需要特定硬件来支持多个PF,因此装置也不一定需要任何硬件修改。事实上,即使单个壳体包含LWB和装置两者,并且即使LWB和装置被实现在共享的印刷电路板上,LWB的包含可以不需要对装置进行任何硬件改变,因此允许现有SSD(和其它装置)与LWB一起使用,并且允许未来SSD(和其它装置)继续提供VF,而不是包括硬件以支持多个PF。(装置可能需要一些固件更新——例如,用于支持使用信用来管理数据传送——但是即使在针对现有装置的领域,这样的更新可容易地执行。)另外,因为LWB可将多个装置的资源聚合,所以与任何单独的装置可以提供的总体性能相比,LWB可提供更好的总体性能。Embodiments of the inventive concept include technical advantages over conventional implementations. A lightweight bridge (LWB) can expose physical functions (PFs) to a host machine, which eliminates the need for the host machine to execute single root input/output virtualization (SR-IOV) software to access virtual functions (VFs) of a device (such as a solid state drive (SSD)). Since the LWB can be a separate device and the device does not require specific hardware to support multiple PFs, the device does not necessarily require any hardware modifications. In fact, even if a single housing contains both the LWB and the device, and even if the LWB and the device are implemented on a shared printed circuit board, the inclusion of the LWB may not require any hardware changes to the device, thereby allowing existing SSDs (and other devices) to be used with the LWB, and allowing future SSDs (and other devices) to continue to provide VFs rather than including hardware to support multiple PFs. (Devices may require some firmware updates—for example, to support the use of credits to manage data transfers—but such updates can be easily performed even in the field for existing devices.) In addition, because LWB can aggregate the resources of multiple devices, LWB can provide better overall performance than any individual device could provide.
下面的讨论意在提供对其中可实现发明的某些方面的一个或多个合适的机器的简要、总体描述。一个或多个机器可至少部分地通过来自常规输入装置(诸如,键盘、鼠标等)的输入以及通过从另外的机器接收的指令、与虚拟现实(VR)环境的交互、生物特征反馈或其它输入信号来控制。如在此使用的,术语“机器”意在广泛地包含单个机器、虚拟机或者通信地连接的一起操作的机器、虚拟机或装置的系统。示例性机器包括计算装置(诸如,个人计算机、工作站、服务器、便携式计算机、手持装置、电话、平板计算机等)以及运输装置(诸如,私人或公共交通工具(例如,汽车、火车、出租车等))。The following discussion is intended to provide a brief, general description of one or more suitable machines in which certain aspects of the invention may be implemented. One or more machines may be controlled at least in part by input from conventional input devices (such as keyboards, mice, etc.) and by instructions received from another machine, interaction with a virtual reality (VR) environment, biometric feedback, or other input signals. As used herein, the term "machine" is intended to broadly include a single machine, a virtual machine, or a system of machines, virtual machines, or devices that are communicatively connected and operate together. Exemplary machines include computing devices (such as personal computers, workstations, servers, portable computers, handheld devices, phones, tablet computers, etc.) and transportation devices (such as private or public transportation (e.g., cars, trains, taxis, etc.)).
一个或多个机器可包括嵌入式控制器(诸如,可编程或不可编程逻辑器件或阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等)。一个或多个机器可利用至一个或多个远程机器(诸如,通过网络接口、调制解调器或其他通信联接)的一个或多个连接。机器可通过物理网络和/或逻辑网络(诸如,内联网、因特网、局域网、广域网等)的方式来互连。本领域技术人员将理解,网络通信可利用各种有线和/或无线短距离或长距离载波和协议,包括:射频(RF)、卫星、微波、电气和电子工程师协会(IEEE)802.11、蓝牙、光学、红外、电缆、激光等。One or more machines may include embedded controllers (such as programmable or non-programmable logic devices or arrays, application specific integrated circuits (ASICs), embedded computers, smart cards, etc.). One or more machines may utilize one or more connections to one or more remote machines (such as through a network interface, modem, or other communication connection). The machines may be interconnected by way of a physical network and/or a logical network (such as an intranet, the Internet, a local area network, a wide area network, etc.). Those skilled in the art will appreciate that network communications may utilize a variety of wired and/or wireless short-range or long-range carriers and protocols, including: radio frequency (RF), satellite, microwave, Institute of Electrical and Electronics Engineers (IEEE) 802.11, Bluetooth, optical, infrared, cable, laser, etc.
本发明的实施例可通过参照或结合相关联的数据来描述,所述相关联的数据包括函数、程序、数据结构、应用程序等,所述相关联的数据在被机器访问时引起机器执行任务或者定义抽象数据类型或低级硬件上下文。相关联的数据可被存储在例如易失性存储器和/或非易失性存储器(例如,RAM、ROM等)中,或者被存储在其它存储装置及它们相关联的存储介质(包括硬盘驱动器、软盘、光学存储装置、磁带、闪存、记忆棒、数字视频盘、生物存储器等)中。相关联的数据可以以包、串行数据、并行数据、传播信号等的形式在传输环境(包括物理网络和/或逻辑网络)上传输,并且可以以压缩格式或加密格式使用。相关联的数据可在分布式环境中使用,并且被本地和/或远程地存储以用于机器访问。Embodiments of the present invention may be described by reference to or in conjunction with associated data, including functions, programs, data structures, applications, etc., which, when accessed by a machine, cause the machine to perform a task or define an abstract data type or a low-level hardware context. The associated data may be stored, for example, in volatile memory and/or non-volatile memory (e.g., RAM, ROM, etc.), or in other storage devices and their associated storage media (including hard disk drives, floppy disks, optical storage devices, magnetic tapes, flash memory, memory sticks, digital video disks, bio-memory, etc.). The associated data may be transmitted in a transmission environment (including a physical network and/or a logical network) in the form of packets, serial data, parallel data, propagation signals, etc., and may be used in a compressed format or an encrypted format. The associated data may be used in a distributed environment and stored locally and/or remotely for machine access.
发明的实施例可包括有形的非暂时性机器可读介质,有形的非暂时性机器可读介质可包括可由一个或多个处理器执行的指令,所述指令包括用于执行如在此所述的发明的元件的指令。Embodiments of the invention may include tangible, non-transitory machine-readable media that may include instructions executable by one or more processors, including instructions for performing elements of the invention as described herein.
已经参照示出的实施例描述和示出了发明的原理,将认识到,示出的实施例可在不脱离这样的原理的情况下在布置和细节上被修改,并且可以以任何期望的方式进行组合。并且,尽管前述讨论已经集中在特定实施例上,但其它配置(构造)被预期。具体地,尽管在此使用了诸如“根据发明构思的实施例”等的表述,但这些短语意在总体上参照实施例可能性,而不意在将发明限制为特定实施例配置。如在此使用的,这些术语可涉及可组合到其它实施例中的相同或不同的实施例。The principles of the invention have been described and illustrated with reference to the illustrated embodiments, it will be appreciated that the illustrated embodiments may be modified in arrangement and detail without departing from such principles, and may be combined in any desired manner. Also, although the foregoing discussion has focused on specific embodiments, other configurations (constructions) are contemplated. Specifically, although expressions such as "embodiments according to the inventive concept" are used herein, these phrases are intended to refer to embodiment possibilities in general, and are not intended to limit the invention to specific embodiment configurations. As used herein, these terms may relate to the same or different embodiments that may be combined into other embodiments.
前述的说明性实施例不应被解释为限制其发明。尽管已描述了一些实施例,但本领域技术人员将容易理解,在实质上不脱离本公开的新颖教导和优点的情况下,许多修改对那些实施例而言是可行的。因此,所有这样的修改意在被包括在如在权利要求中限定的本发明的范围内。The foregoing illustrative embodiments should not be construed as limiting the invention. Although some embodiments have been described, it will be readily appreciated by those skilled in the art that many modifications are feasible for those embodiments without substantially departing from the novel teachings and advantages of the present disclosure. Therefore, all such modifications are intended to be included within the scope of the present invention as defined in the claims.
发明的实施例可扩展至下面的声明,而没有限制:Embodiments of the invention extend to the following statements without limitation:
声明1、发明构思的实施例包括一种轻量桥接器(LWB)电路,所述轻量桥接器(LWB)电路包括:Statement 1. Embodiments of the inventive concept include a light weight bridge (LWB) circuit, the light weight bridge (LWB) circuit comprising:
端点,用于连接到主机,端点公开多个物理功能(PF);Endpoints, used to connect to a host, the endpoints expose multiple physical functions (PF);
根端口,用于连接到装置,装置向根端口公开至少一个PF和至少一个虚拟功能(VF);和a root port for connecting to a device, the device exposing at least one PF and at least one virtual function (VF) to the root port; and
应用层-端点(APP-EP)和应用层-根端口(APP-RP),用于在向主机公开的所述多个PF与由装置公开的所述至少一个PF和所述至少一个VF之间进行转换,an application layer-end point (APP-EP) and an application layer-root port (APP-RP) for translating between the plurality of PFs exposed to the host and the at least one PF and the at least one VF exposed by the device,
其中,APP-EP和APP-RP实现由端点公开的所述多个PF与由装置公开的所述至少一个PF和所述至少一个VF之间的映射。The APP-EP and the APP-RP implement mapping between the multiple PFs disclosed by the endpoint and the at least one PF and the at least one VF disclosed by the device.
声明2、发明构思的实施例包括根据声明1所述的LWB电路,其中,装置包括固态驱动器(SSD)。Statement 2. Embodiments of the inventive concept include the LWB circuit of statement 1, wherein the device comprises a solid state drive (SSD).
声明3、发明构思的实施例包括根据声明1所述的LWB电路,其中,装置包括所述LWB电路。Statement 3. Embodiments of the inventive concept include the LWB circuit of statement 1, wherein an apparatus includes the LWB circuit.
声明4、发明构思的实施例包括根据声明1所述的LWB电路,其中,所述LWB电路连接到装置。Statement 4. An embodiment of the inventive concept comprises the LWB circuit of statement 1, wherein the LWB circuit is connected to a device.
声明5、发明构思的实施例包括根据声明1所述的LWB电路,其中,APP-EP和APP-RP可被实现为单个组件。Statement 5. Embodiments of the inventive concept include the LWB circuit of statement 1, wherein the APP-EP and the APP-RP are implemented as a single component.
声明6、发明构思的实施例包括根据声明1所述的LWB电路,其中,所述LWB电路包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、通用处理器、图形处理器(GPU)以及通用GPU(GPGPU)中的至少一个。Statement 6. An embodiment of the inventive concept includes the LWB circuit of statement 1, wherein the LWB circuit includes at least one of a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a general purpose processor, a graphics processing unit (GPU), and a general purpose GPU (GPGPU).
声明7、发明构思的实施例包括根据声明1所述的LWB电路,其中:Statement 7. An embodiment of the inventive concept includes the LWB circuit of statement 1, wherein:
所述多个PF包括多个外围组件互连快速(PCIe)PF;The plurality of PFs include a plurality of Peripheral Component Interconnect Express (PCIe) PFs;
所述至少一个PF包括至少一个PCIe PF;并且The at least one PF comprises at least one PCIe PF; and
所述至少一个虚拟功能(VF)包括至少一个PCIe VF。The at least one virtual function (VF) includes at least one PCIe VF.
声明8、发明构思的实施例包括根据声明7所述的LWB电路,其中:Statement 8. An embodiment of the inventive concept includes the LWB circuit of statement 7, wherein:
APP-EP包括PCIe APP-EP(PAPP-EP);并且APP-EP includes PCIe APP-EP (PAPP-EP); and
APP-RP包括PCIe APP-RP(PAPP-RP)。APP-RP includes PCIe APP-RP (PAPP-RP).
声明9、发明构思的实施例包括根据声明1所述的LWB电路,所述LWB电路还包括:配置管理器,用于配置APP-EP和APP-RP。Statement 9. An embodiment of the inventive concept includes the LWB circuit of statement 1, further comprising: a configuration manager for configuring the APP-EP and the APP-RP.
声明10、发明构思的实施例包括根据声明9所述的LWB电路,其中,APP-RP可包括配置表,配置表用于存储由端点公开的所述多个PF与由装置公开的所述至少一个PF和所述至少一个VF之间的映射。Statement 10. An embodiment of the inventive concept includes the LWB circuit of statement 9, wherein the APP-RP may include a configuration table for storing a mapping between the plurality of PFs exposed by an endpoint and the at least one PF and the at least one VF exposed by a device.
声明11、发明构思的实施例包括根据声明9所述的LWB电路,其中,配置管理器可枚举由装置公开的所述至少一个PF和所述至少一个VF,并且至少部分地基于由装置公开的所述至少一个PF和所述至少一个VF来生成由端点公开的所述多个PF。Statement 11. An embodiment of the inventive concept includes the LWB circuit of statement 9, wherein the configuration manager may enumerate the at least one PF and the at least one VF disclosed by the device, and generate the plurality of PFs disclosed by the endpoint based at least in part on the at least one PF and the at least one VF disclosed by the device.
声明12、发明构思的实施例包括根据声明9所述的LWB电路,其中,配置管理器可配置装置。Statement 12. An embodiment of the inventive concept comprises the LWB circuit of statement 9, wherein the configuration manager can configure the device.
声明13、发明构思的实施例包括根据声明12所述的LWB电路,其中,配置管理器可至少部分地基于可在端点处从主机接收的配置写入请求来配置装置。Statement 13. An embodiment of the inventive concept includes the LWB circuit of statement 12, wherein the configuration manager can configure the device based at least in part on a configuration write request receivable at the endpoint from the host.
声明14、发明构思的实施例包括根据声明9所述的LWB电路,其中,APP-EP可拦截来自主机的配置读取请求,并且将配置信息返回到主机。Statement 14. An embodiment of the inventive concept comprises the LWB circuit of statement 9, wherein the APP-EP can intercept a configuration read request from the host and return configuration information to the host.
声明15、发明构思的实施例包括根据声明9所述的LWB电路,其中,配置管理器可确保装置的第一配置与端点的第二配置镜像。Statement 15. An embodiment of the inventive concept comprises the LWB circuit of statement 9, wherein the configuration manager is operable to ensure that a first configuration of the device mirrors a second configuration of the endpoint.
声明16、发明构思的实施例包括根据声明9所述的LWB电路,其中,配置管理器包括:只读存储器(ROM)和状态机,用于实现单根输入/输出虚拟化(SR-IOV)序列。Statement 16. An embodiment of the inventive concept includes the LWB circuit of statement 9, wherein the configuration manager includes: a read only memory (ROM) and a state machine for implementing a single root input/output virtualization (SR-IOV) sequence.
声明17、发明构思的实施例包括根据声明1所述的LWB电路,其中:Statement 17. An embodiment of the inventive concept includes the LWB circuit of statement 1, wherein:
APP-EP可从来自主机的请求中接收的地址减去由端点公开的PF的基址寄存器(BAR);并且The APP-EP may subtract the base address register (BAR) of the PF exposed by the endpoint from the address received in the request from the host; and
APP-RP可将由装置公开的VF的BAR加到从APP-EP接收的地址。The APP-RP may add the BAR of the VF published by the device to the address received from the APP-EP.
声明18、发明构思的实施例包括根据声明1所述的LWB电路,所述LWB电路还包括:Statement 18. An embodiment of the inventive concept includes the LWB circuit of statement 1, the LWB circuit further comprising:
第二APP-EP和第二APP-RP;a second APP-EP and a second APP-RP;
第二装置,公开至少一个第二PF和至少一个第二VF;和A second device, disclosing at least one second PF and at least one second VF; and
复用器/解复用器,被布置为连接到端点并连接到APP-EP和第二APP-EP中的每个,a multiplexer/demultiplexer arranged to be connected to the endpoint and to each of the APP-EP and the second APP-EP,
其中,第二APP-EP和第二APP-RP实现由端点公开的所述多个PF与由第二装置公开的所述至少一个第二PF和所述至少一个第二VF之间的第二映射。The second APP-EP and the second APP-RP implement a second mapping between the multiple PFs disclosed by the endpoint and the at least one second PF and the at least one second VF disclosed by the second device.
声明19、发明构思的实施例包括根据声明18所述的LWB电路,其中,所述LWB电路可提供装置和第二装置的聚合资源。Statement 19. An embodiment of the inventive concept comprises the LWB circuit of statement 18, wherein the LWB circuit can provide aggregated resources of the device and a second device.
声明20、发明构思的实施例包括根据声明1所述的LWB电路,其中,由端点公开的所述多个PF与由装置公开的所述至少一个PF和所述至少一个VF之间的映射可被动态地改变。Statement 20. An embodiment of the inventive concept includes the LWB circuit of statement 1, wherein the mapping between the plurality of PFs exposed by an endpoint and the at least one PF and the at least one VF exposed by a device can be dynamically changed.
声明21、发明构思的实施例包括根据声明20所述的LWB电路,其中,由端点公开的所述多个PF与由装置公开的所述至少一个PF和所述至少一个VF之间的映射可至少部分地基于针对由端点公开的所述多个PF中的至少一个PF的服务质量(QoS)策略的改变、存储参数、日、日的时间、或带宽使用来改变。Statement 21. An embodiment of the inventive concept includes an LWB circuit according to statement 20, wherein the mapping between the multiple PFs disclosed by the endpoint and the at least one PF and the at least one VF disclosed by the device can be changed at least in part based on a change in a quality of service (QoS) policy for at least one of the multiple PFs disclosed by the endpoint, a storage parameter, a day, a time of day, or bandwidth usage.
声明22、发明构思的实施例包括根据声明1所述的LWB电路,其中,所述LWB电路可实现带宽节流。Statement 22. An embodiment of the inventive concept comprises the LWB circuit of statement 1, wherein the LWB circuit can implement bandwidth throttling.
声明23、发明构思的实施例包括根据声明22所述的LWB电路,其中,所述LWB电路可测量由端点公开的所述多个PF中的至少一个PF使用的带宽。Statement 23. An embodiment of the inventive concept includes the LWB circuit of statement 22, wherein the LWB circuit is operable to measure a bandwidth used by at least one of the plurality of PFs exposed by an endpoint.
声明24、发明构思的实施例包括根据声明22所述的LWB电路,其中,所述LWB电路可至少部分地基于由主机设置的策略、由装置设置的策略、所述LWB电路的温度、所述LWB电路的功耗、SSD的温度或SSD的功耗来实现带宽节流。Statement 24. An embodiment of the inventive concept includes a LWB circuit as described in statement 22, wherein the LWB circuit can implement bandwidth throttling based at least in part on a policy set by a host, a policy set by a device, a temperature of the LWB circuit, power consumption of the LWB circuit, a temperature of an SSD, or power consumption of an SSD.
声明25、发明构思的实施例包括根据声明24所述的LWB电路,其中,所述LWB电路还包括:用于触发带宽节流的阈值的存储器。Statement 25. An embodiment of the inventive concept includes the LWB circuit of statement 24, wherein the LWB circuit further comprises: a memory for a threshold value for triggering bandwidth throttling.
声明26、发明构思的实施例包括根据声明25所述的LWB电路,其中,所述LWB电路还包括:用于触发带宽节流结束的第二阈值的存储器。Statement 26. An embodiment of the inventive concept includes the LWB circuit of statement 25, wherein the LWB circuit further comprises: a memory for a second threshold for triggering an end of bandwidth throttling.
声明27、发明构思的实施例包括根据声明22所述的LWB电路,其中,所述LWB电路可向装置发出信用,用于数据传送。Statement 27. An embodiment of the inventive concept comprises the LWB circuit of statement 22, wherein the LWB circuit can issue credits to a device for data transfer.
声明28、发明构思的实施例包括根据声明27所述的LWB电路,其中,所述LWB电路可将信用写入装置中的地址。Statement 28. An embodiment of the inventive concept comprises the LWB circuit of statement 27, wherein the LWB circuit can write a credit to an address in a device.
声明29、发明构思的实施例包括根据声明27所述的LWB电路,其中,装置可从所述LWB电路中的地址读取信用。Statement 29. An embodiment of the inventive concept comprises the LWB circuit of statement 27, wherein a device can read a credit from an address in the LWB circuit.
声明30、发明构思的实施例包括根据声明27所述的LWB电路,其中,所述LWB电路可在消息中将信用发送到装置。Statement 30. An embodiment of the inventive concept comprises the LWB circuit of statement 27, wherein the LWB circuit is operable to send the credit to the device in a message.
声明31、发明构思的实施例包括根据声明22所述的LWB电路,其中,所述LWB电路可通过在第一数据包与第二数据包之间引入包间间隙来实现带宽节流。Statement 31. An embodiment of the inventive concept comprises the LWB circuit of statement 22, wherein the LWB circuit can implement bandwidth throttling by introducing an inter-packet gap between a first data packet and a second data packet.
声明32、发明构思的实施例包括根据声明1所述的LWB电路,其中,所述LWB电路可对由装置公开的所述多个PF中的PF实施QoS策略。Statement 32. An embodiment of the inventive concept comprises the LWB circuit of statement 1, wherein the LWB circuit is operable to enforce a QoS policy on a PF of the plurality of PFs exposed by a device.
声明33、发明构思的实施例包括根据声明32所述的LWB电路,其中,策略可由主机、BMC和装置中的一个设置。Statement 33. An embodiment of the inventive concept comprises the LWB circuit of statement 32, wherein the policy is settable by one of the host, the BMC, and the device.
声明34、发明构思的实施例包括根据声明1所述的LWB电路,其中,所述LWB电路可至少部分地基于从装置接收的配置写入请求来配置由端点公开的所述多个PF中的至少一个PF的能力。Statement 34. An embodiment of the inventive concept includes the LWB circuit of statement 1, wherein the LWB circuit is configurable, based at least in part on a configuration write request received from a device, of capabilities of at least one of the plurality of PFs exposed by an endpoint.
声明35、发明构思的实施例包括一种方法,所述方法包括:Statement 35. An embodiment of the inventive concept includes a method comprising:
使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF);enumerating at least one physical function (PF) exposed by the device using a root port of a lightweight bridge (LWB);
使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF);enumerating at least one virtual function (VF) exposed by the device using a root port of the LWB;
在LWB的端点处生成多个PF,以向主机公开;和generating a plurality of PFs at the endpoints of the LWB to be exposed to the host; and
使用LWB的应用层-端点(APP-EP)和应用层-根端口(APP-RP),将LWB的端点处的所述多个PF映射到由装置公开的所述至少一个PF和所述至少一个VF。The plurality of PFs at an endpoint of the LWB are mapped to the at least one PF and the at least one VF exposed by the device using an application layer-endpoint (APP-EP) and an application layer-root port (APP-RP) of the LWB.
声明36、发明构思的实施例包括根据声明35所述的方法,其中:Statement 36. An embodiment of the inventive concept comprises the method according to statement 35, wherein:
使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF)的步骤包括:在LWB启动时使用LWB的根端口来枚举由装置公开的至少一个PF;并且The step of using a root port of a lightweight bridge (LWB) to enumerate at least one physical function (PF) exposed by the device comprises: using the root port of the LWB to enumerate at least one PF exposed by the device when the LWB is booted; and
使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF)的步骤包括:在LWB启动时使用LWB的根端口来枚举由装置公开的至少一个VF。The step of using a root port of the LWB to enumerate at least one virtual function (VF) exposed by the device includes using a root port of the LWB to enumerate at least one VF exposed by the device when the LWB is booted.
声明37、发明构思的实施例包括根据声明35所述的方法,其中:Statement 37. An embodiment of the inventive concept comprises the method according to statement 35, wherein:
使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF)的步骤包括:当装置连接到LWB时,使用LWB的根端口来枚举由装置公开的所述至少一个PF;并且The step of using a root port of a lightweight bridge (LWB) to enumerate at least one physical function (PF) exposed by the device comprises: when the device is connected to the LWB, using the root port of the LWB to enumerate the at least one PF exposed by the device; and
使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF)的步骤包括:当装置连接到LWB时,使用LWB的根端口来枚举由装置公开的至少一个VF。The step of enumerating at least one virtual function (VF) exposed by the device using a root port of the LWB includes enumerating at least one VF exposed by the device using a root port of the LWB when the device is connected to the LWB.
声明38、发明构思的实施例包括根据声明35所述的方法,其中,装置包括固态驱动器(SSD)。Statement 38. Embodiments of the inventive concept include the method of statement 35, wherein the device comprises a solid state drive (SSD).
声明39、发明构思的实施例包括根据声明35所述的方法,其中:Statement 39. An embodiment of the inventive concept comprises the method according to statement 35, wherein:
所述多个PF包括多个外围组件互连(PCIe)快速PF;The plurality of PFs include a plurality of Peripheral Component Interconnect (PCIe) Express PFs;
所述至少一个物理功能(PF)包括至少一个PCIe PF;并且The at least one physical function (PF) includes at least one PCIe PF; and
所述至少一个虚拟功能(VF)包括至少一个PCIe VF。The at least one virtual function (VF) includes at least one PCIe VF.
声明40、发明构思的实施例包括根据声明39所述的方法,其中:Statement 40. An embodiment of the inventive concept comprises the method according to statement 39, wherein:
APP-EP包括PCIe APP-EP(PAPP-EP);并且APP-EP includes PCIe APP-EP (PAPP-EP); and
APP-RP包括PCIe APP-RP(PAPP-RP)。APP-RP includes PCIe APP-RP (PAPP-RP).
声明41、发明构思的实施例包括根据声明35所述的方法,所述方法还包括:Statement 41. An embodiment of the inventive concept comprises the method according to statement 35, wherein the method further comprises:
从主机接收枚举;和Receive enumeration from the host; and
向主机公开LWB的端点处的所述多个PF。The plurality of PFs at the endpoints of the LWB are exposed to the host.
声明42、发明构思的实施例包括根据声明35所述的方法,其中,Statement 42. An embodiment of the inventive concept comprises the method according to statement 35, wherein:
使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF)的步骤包括:使用LWB的第二根端口来枚举由第二装置公开的至少一个第二PF;The step of using a root port of a lightweight bridge (LWB) to enumerate at least one physical function (PF) exposed by a device includes: using a second root port of the LWB to enumerate at least one second PF exposed by a second device;
使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF)的步骤包括:使用LWB的第二根端口来枚举由第二装置公开的至少一个第二VF;并且The step of using a root port of the LWB to enumerate at least one virtual function (VF) exposed by the device includes: using a second root port of the LWB to enumerate at least one second VF exposed by a second device; and
将所述多个PF映射到所述至少一个PF和所述至少一个VF的步骤包括:将所述多个PF映射到所述至少一个PF、所述至少一个VF、所述至少一个第二PF以及所述至少一个第二VF。Mapping the plurality of PFs to the at least one PF and the at least one VF includes mapping the plurality of PFs to the at least one PF, the at least one VF, the at least one second PF, and the at least one second VF.
声明43、发明构思的实施例包括根据声明42所述的方法,所述方法还包括:Statement 43. An embodiment of the inventive concept comprises the method according to statement 42, wherein the method further comprises:
确定装置和第二装置的资源;和determining resources of the device and the second device; and
将装置和第二装置的资源聚合。Aggregate the resources of the device and the second device.
声明44、发明构思的实施例包括根据声明35所述的方法,所述方法还包括:Statement 44. An embodiment of the inventive concept comprises the method according to statement 35, wherein the method further comprises:
在由端点公开的所述多个PF中的PF,从主机接收请求;receiving, at a PF among the plurality of PFs exposed by the endpoint, a request from a host;
将由LWB的端点公开的所述多个PF中的PF映射到由装置公开的所述至少一个VF中的VF;Mapping a PF of the plurality of PFs exposed by an endpoint of the LWB to a VF of the at least one VF exposed by the device;
将请求从由端点公开的所述多个PF中的PF转换成由装置公开的所述至少一个VF中的VF;和converting a request from a PF of the plurality of PFs exposed by an endpoint to a VF of the at least one VF exposed by a device; and
将请求发送到由装置公开的所述至少一个VF中的VF。A request is sent to a VF of the at least one VF exposed by the device.
声明45、发明构思的实施例包括根据声明44所述的方法,所述方法还包括:Statement 45. An embodiment of the inventive concept comprises the method according to statement 44, the method further comprising:
接收来自由装置公开的所述至少一个VF中的VF的对请求的响应;receiving a response to the request from a VF of the at least one VF disclosed by the device;
将由装置公开的所述至少一个VF中的VF映射到由LWB的端点公开的所述多个PF中的PF;Mapping a VF in the at least one VF exposed by the device to a PF in the plurality of PFs exposed by an endpoint of the LWB;
将响应从由装置公开的所述至少一个VF中的VF的响应转换成由端点公开的所述多个PF中的PF的响应;和converting a response from a response of a VF in the at least one VF exposed by the device to a response of a PF in the plurality of PFs exposed by the endpoint; and
经由由LWB的端点公开的所述多个PF中的PF,将响应发送到主机。The response is sent to the host via a PF among the plurality of PFs exposed by the endpoint of the LWB.
声明46、发明构思的实施例包括根据声明45所述的方法,其中,将响应从由装置公开的所述至少一个VF中的VF的响应转换成由端点公开的所述多个PF中的PF的响应步骤包括:基于由端点公开的所述多个PF中的PF的第一基址寄存器(BAR)和由装置公开的所述至少一个VF中的VF的第二BAR,修改响应中的地址。Statement 46. An embodiment of the inventive concept includes a method according to statement 45, wherein the step of converting a response from a response of a VF in the at least one VF disclosed by the device to a response of a PF in the multiple PFs disclosed by the endpoint includes: modifying an address in the response based on a first base address register (BAR) of a PF in the multiple PFs disclosed by the endpoint and a second BAR of a VF in the at least one VF disclosed by the device.
声明47、发明构思的实施例包括根据声明45所述的方法,其中,将由装置公开的所述至少一个VF中的VF映射到由LWB的端点公开的所述多个PF中的PF的步骤包括:使用LWB的APP-RP中的配置表,将由装置公开的所述至少一个VF中的VF映射到由LWB的端点公开的所述多个PF中的PF。Statement 47. An embodiment of the inventive concept includes a method according to statement 45, wherein the step of mapping a VF in the at least one VF disclosed by the device to a PF in the multiple PFs disclosed by the endpoint of the LWB includes: using a configuration table in the APP-RP of the LWB, mapping a VF in the at least one VF disclosed by the device to a PF in the multiple PFs disclosed by the endpoint of the LWB.
声明48、发明构思的实施例包括根据声明44所述的方法,其中,将请求从由端点公开的所述多个PF中的PF转换成由装置公开的所述至少一个VF中的VF的步骤包括:基于由端点公开的所述多个PF中的PF的第一基址寄存器(BAR)和由装置公开的所述至少一个VF中的VF的第二BAR,修改请求中的地址。Statement 48. An embodiment of the inventive concept includes a method according to statement 44, wherein the step of converting a request from a PF among the multiple PFs exposed by the endpoint to a VF among the at least one VF exposed by the device includes: modifying an address in the request based on a first base address register (BAR) of a PF among the multiple PFs exposed by the endpoint and a second BAR of a VF among the at least one VF exposed by the device.
声明49、发明构思的实施例包括根据声明44所述的方法,其中,将由LWB的端点公开的所述多个PF中的PF映射到由装置公开的所述至少一个VF中的VF的步骤包括:使用LWB的APP-RP中的配置表,将由LWB的端点公开的所述多个PF中的PF映射到由装置公开的所述至少一个VF中的VF。Statement 49. An embodiment of the inventive concept includes a method according to statement 44, wherein the step of mapping a PF among the multiple PFs disclosed by an endpoint of the LWB to a VF among the at least one VF disclosed by the device includes: using a configuration table in an APP-RP of the LWB, mapping a PF among the multiple PFs disclosed by an endpoint of the LWB to a VF among the at least one VF disclosed by the device.
声明50、发明构思的实施例包括根据声明44所述的方法,其中,将请求发送到由装置公开的所述至少一个VF中的VF的步骤包括:Statement 50. An embodiment of the inventive concept comprises the method of statement 44, wherein the step of sending the request to a VF of the at least one VF exposed by the device comprises:
在装置和第二装置之中进行选择,第二装置至少部分地基于由LWB的端点公开的所述多个PF中的PF到由装置公开的所述至少一个VF中的VF的映射,来公开至少一个第二PF和至少一个第二VF;和selecting between the device and a second device, the second device exposing at least one second PF and at least one second VF based at least in part on a mapping of PFs in the plurality of PFs exposed by an endpoint of the LWB to VFs in the at least one VF exposed by the device; and
将请求发送到与装置相关联的APP-EP。The request is sent to the APP-EP associated with the device.
声明51、发明构思的实施例包括根据声明44所述的方法,所述方法还包括:Statement 51. An embodiment of the inventive concept comprises the method according to statement 44, wherein the method further comprises:
确定用于涉及装置的数据传送的信用;和determining a credit for a data transfer involving the device; and
向装置发出信用。Issues credit to the device.
声明52、发明构思的实施例包括根据声明51所述的方法,其中,向装置发出信用的步骤包括:将信用写入装置中的地址。Statement 52. An embodiment of the inventive concept comprises the method of statement 51 wherein the step of issuing a credit to the device comprises writing the credit to an address in the device.
声明53、发明构思的实施例包括根据声明51所述的方法,其中,向装置发出信用的步骤包括:装置从LWB中的地址读取信用。Statement 53. An embodiment of the inventive concept includes the method of statement 51 wherein the step of issuing a credit to the device includes the device reading the credit from an address in the LWB.
声明54、发明构思的实施例包括根据声明51所述的方法,其中,向装置发出信用的步骤包括:将消息从LWB发送到装置,消息包括信用。Statement 54. An embodiment of the inventive concept includes the method of statement 51 wherein the step of issuing credit to the device includes sending a message from the LWB to the device, the message including the credit.
声明55、发明构思的实施例包括根据声明35所述的方法,所述方法还包括:Statement 55. An embodiment of the inventive concept comprises the method according to statement 35, the method further comprising:
接收配置写入请求;和receiving a configuration write request; and
至少部分地基于配置写入请求来配置由LWB的端点公开的所述多个PF。The plurality of PFs exposed by endpoints of the LWB are configured based at least in part on the configuration write request.
声明56、发明构思的实施例包括根据声明55所述的方法,所述方法还包括:至少部分地基于配置写入请求,将由装置公开的所述至少一个PF和所述至少一个VF配置为与由LWB的端点公开的所述多个PF的配置镜像。Statement 56. An embodiment of the inventive concept includes the method according to statement 55, the method further comprising: configuring the at least one PF and the at least one VF disclosed by the device to mirror the configuration of the multiple PFs disclosed by the endpoint of the LWB at least in part based on the configuration write request.
声明57、发明构思的实施例包括根据声明55所述的方法,其中,接收配置写入请求的步骤包括:从主机接收配置写入请求。Statement 57. An embodiment of the inventive concept includes the method of statement 55 wherein the step of receiving a configuration write request includes receiving the configuration write request from a host.
声明58、发明构思的实施例包括根据声明55所述的方法,其中,接收配置写入请求的步骤包括:从装置接收配置写入请求。Statement 58. An embodiment of the inventive concept includes the method of statement 55, wherein the step of receiving a configuration write request comprises: receiving the configuration write request from a device.
声明59、发明构思的实施例包括根据声明58所述的方法,其中,至少部分地基于配置写入请求来配置由LWB的端点公开的所述多个PF的步骤包括:至少部分地基于从装置接收的配置写入请求,配置由端点公开的所述多个PF中的至少一个PF的能力。Statement 59. An embodiment of the inventive concept includes a method according to statement 58, wherein the step of configuring the multiple PFs exposed by the endpoint of the LWB based at least in part on a configuration write request includes: configuring the capabilities of at least one PF of the multiple PFs exposed by the endpoint based at least in part on a configuration write request received from the device.
声明60、发明构思的实施例包括根据声明55所述的方法,其中,至少部分地基于配置写入请求来配置由LWB的端点公开的所述多个PF的步骤包括:使用状态机来执行单根输入/输出虚拟化(SR-IOV)序列。Statement 60. An embodiment of the inventive concept includes the method of statement 55, wherein configuring the plurality of PFs exposed by an endpoint of the LWB based at least in part on a configuration write request comprises using a state machine to perform a single root input/output virtualization (SR-IOV) sequence.
声明61、发明构思的实施例包括根据声明35所述的方法,所述方法还包括:Statement 61. An embodiment of the inventive concept comprises the method according to statement 35, wherein the method further comprises:
接收配置读取请求;Receive a configuration read request;
确定装置的所述至少一个PF和所述至少一个VF的配置;和determining a configuration of the at least one PF and the at least one VF of a device; and
用装置的所述至少一个PF和所述至少一个VF的配置来响应配置读取请求。The configuration read request is responded to with the configuration of the at least one PF and the at least one VF of the device.
声明62、发明构思的实施例包括根据声明61所述的方法,其中,确定装置的所述至少一个PF和所述至少一个VF的配置的步骤包括:确定由装置的端点公开的所述多个PF的配置。Statement 62. An embodiment of the inventive concept includes the method of statement 61, wherein the step of determining the configuration of the at least one PF and the at least one VF of the device includes: determining the configuration of the plurality of PFs exposed by endpoints of the device.
声明63、发明构思的实施例包括根据声明61所述的方法,其中,确定装置的所述至少一个PF和所述至少一个VF的配置的步骤包括:向装置查询装置的所述至少一个PF和所述至少一个VF的配置。Statement 63. An embodiment of the inventive concept includes the method of statement 61, wherein the step of determining the configuration of the at least one PF and the at least one VF of the device includes: querying the device for the configuration of the at least one PF and the at least one VF of the device.
声明64、发明构思的实施例包括根据声明61所述的方法,其中,确定装置的所述至少一个PF和所述至少一个VF的配置的步骤包括:不向装置递送配置读取请求。Statement 64. An embodiment of the inventive concept comprises the method of statement 61 wherein the step of determining a configuration of the at least one PF and the at least one VF of the device comprises: not delivering a configuration read request to the device.
声明65、发明构思的实施例包括根据声明35所述的方法,所述方法还包括:使用LWB的应用层-端点(APP-EP)和应用层-根端口(APP-RP)动态地改变LWB的端点处的所述多个PF到由装置公开的所述至少一个PF和所述至少一个VF的映射。Statement 65. An embodiment of the inventive concept includes the method according to statement 35, the method further comprising: using an application layer-endpoint (APP-EP) and an application layer-root port (APP-RP) of the LWB to dynamically change the mapping of the multiple PFs at the endpoint of the LWB to the at least one PF and the at least one VF disclosed by the device.
声明66、发明构思的实施例包括根据声明65所述的方法,其中,使用LWB的应用层-端点(APP-EP)和应用层-根端口(APP-RP)动态地改变LWB的端点处的所述多个PF到由装置公开的所述至少一个PF和所述至少一个VF的映射的步骤包括:至少部分地基于针对由LWB的端点公开的所述多个PF中的至少一个PF的服务质量(QoS)策略的改变、存储参数、日、日的时间、或带宽使用,使用LWB的应用层-端点(APP-EP)和应用层-根端口(APP-RP)动态地改变LWB的端点处的所述多个PF到由装置公开的所述至少一个PF和所述至少一个VF的映射。Statement 66. An embodiment of the inventive concept includes a method according to statement 65, wherein the step of dynamically changing the mapping of the multiple PFs at the endpoint of the LWB to the at least one PF and the at least one VF disclosed by the device using the application layer-endpoint (APP-EP) and the application layer-root port (APP-RP) of the LWB includes: dynamically changing the mapping of the multiple PFs at the endpoint of the LWB to the at least one PF and the at least one VF disclosed by the device using the application layer-endpoint (APP-EP) and the application layer-root port (APP-RP) of the LWB based at least in part on a change in a quality of service (QoS) policy for at least one of the multiple PFs disclosed by the endpoint of the LWB, a storage parameter, a day, a time of day, or bandwidth usage.
声明67、发明构思的实施例包括根据声明35所述的方法,所述方法还包括:对装置的带宽进行节流。Statement 67. An embodiment of the inventive concept comprises the method of statement 35, further comprising: throttling the bandwidth of the device.
声明68、发明构思的实施例包括根据声明67所述的方法,所述方法还包括:测量由端点公开的所述多个PF中的至少一个PF使用的带宽。Statement 68. An embodiment of the inventive concept includes the method of statement 67, further comprising: measuring a bandwidth used by at least one of the plurality of PFs exposed by an endpoint.
声明69、发明构思的实施例包括根据声明67所述的方法,其中,对装置的带宽进行节流的步骤包括:在第一数据包与第二数据包之间引入包间间隙。Statement 69. An embodiment of the inventive concept comprises the method of statement 67 wherein throttling the bandwidth of the device comprises introducing an inter-packet gap between the first data packet and the second data packet.
声明70、发明构思的实施例包括根据声明67所述的方法,其中,对装置的带宽进行节流的步骤包括:至少部分地基于由主机设置的QoS策略、由装置设置的QoS策略、LWB的温度、LWB的功耗、SSD的温度和SSD的功耗中的一个来对装置的带宽进行节流。Statement 70. An embodiment of the inventive concept includes a method according to statement 67, wherein the step of throttling the bandwidth of the device includes throttling the bandwidth of the device based at least in part on a QoS policy set by the host, a QoS policy set by the device, a temperature of the LWB, power consumption of the LWB, a temperature of the SSD, and power consumption of the SSD.
声明71、发明构思的实施例包括根据声明70的方法,其中,至少部分地基于由主机设置的QoS策略、由装置设置的QoS策略、LWB的温度、LWB的功耗、SSD的温度和SSD的功耗中的一个来对装置的带宽进行节流的步骤包括:至少部分地基于LWB的温度、LWB的功耗、SSD的温度和SSD的功耗中的一个超过阈值来对装置的带宽进行节流。Statement 71. An embodiment of the inventive concept includes a method according to statement 70, wherein the step of throttling the bandwidth of the device based at least in part on a QoS policy set by a host, a QoS policy set by a device, a temperature of the LWB, a power consumption of the LWB, a temperature of the SSD, and a power consumption of the SSD includes: throttling the bandwidth of the device based at least in part on one of the temperature of the LWB, the power consumption of the LWB, the temperature of the SSD, and the power consumption of the SSD exceeding a threshold.
声明72、发明构思的实施例包括根据声明71所述的方法,所述方法还包括:至少部分地基于LWB的温度、LWB的功耗、SSD的温度和SSD的功耗中的一个下降到低于第二阈值来结束装置的带宽节流。Statement 72. An embodiment of the inventive concept includes the method of statement 71, further comprising ending bandwidth throttling of the device based at least in part on one of a temperature of the LWB, power consumption of the LWB, a temperature of the SSD, and power consumption of the SSD falling below a second threshold.
声明73、发明构思的实施例包括根据声明35所述的方法,所述方法还包括:Statement 73. An embodiment of the inventive concept comprises the method according to statement 35, wherein the method further comprises:
接收由LWB的端点公开的所述多个PF中的PF的QoS策略;和receiving a QoS policy of a PF of the plurality of PFs disclosed by an endpoint of the LWB; and
实施由LWB的端点公开的所述多个PF中的PF的QoS策略。A QoS policy of a PF in the plurality of PFs exposed by an endpoint of the LWB is implemented.
声明74、发明构思的实施例包括根据声明73所述的方法,其中,接收由LWB的端点公开的所述多个PF中的PF的QoS策略的步骤包括:从主机和装置中的一个接收由LWB的端点公开的所述多个PF中的PF的QoS策略。Statement 74. An embodiment of the inventive concept includes a method according to statement 73, wherein the step of receiving a QoS policy of a PF among the multiple PFs exposed by an endpoint of the LWB includes: receiving a QoS policy of a PF among the multiple PFs exposed by an endpoint of the LWB from one of a host and a device.
声明75、发明构思的实施例包括一种包括非暂时性存储介质的物品,非暂时性存储介质具有存储在其上的指令,当所述指令被机器执行时,使得:Statement 75. Embodiments of the inventive concept include an article comprising a non-transitory storage medium having stored thereon instructions that, when executed by a machine, cause:
使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF);enumerating at least one physical function (PF) exposed by the device using a root port of a lightweight bridge (LWB);
使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF);enumerating at least one virtual function (VF) exposed by the device using a root port of the LWB;
在LWB的端点处生成多个PF,以向主机公开;和generating a plurality of PFs at the endpoints of the LWB to be exposed to the host; and
使用LWB的应用层-端点(APP-EP)和应用层-根端口(APP-RP),将LWB的端点处的所述多个PF映射到由装置公开的所述至少一个PF和所述至少一个VF。The plurality of PFs at an endpoint of the LWB are mapped to the at least one PF and the at least one VF exposed by the device using an application layer-endpoint (APP-EP) and an application layer-root port (APP-RP) of the LWB.
声明76、发明构思的实施例包括根据声明75所述的物品,其中:Statement 76. An embodiment of the inventive concept comprises an article according to statement 75, wherein:
使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF)的步骤包括:在LWB启动时使用LWB的根端口来枚举由装置公开的所述至少一个PF;并且The step of using a root port of a lightweight bridge (LWB) to enumerate at least one physical function (PF) exposed by the device comprises: using the root port of the LWB to enumerate the at least one PF exposed by the device when the LWB is started; and
使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF)的步骤包括:在LWB启动时使用LWB的根端口来枚举由装置公开的所述至少一个VF。The step of enumerating at least one virtual function (VF) exposed by the device using a root port of the LWB includes enumerating the at least one VF exposed by the device using a root port of the LWB when the LWB is booted.
声明77、发明构思的实施例包括根据声明75所述的物品,其中:Statement 77. An embodiment of the inventive concept comprises an article according to statement 75, wherein:
使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF)的步骤包括:当装置连接到LWB时,使用LWB的根端口来枚举由装置公开的所述至少一个PF;并且The step of using a root port of a lightweight bridge (LWB) to enumerate at least one physical function (PF) exposed by the device comprises: when the device is connected to the LWB, using the root port of the LWB to enumerate the at least one PF exposed by the device; and
使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF)的步骤包括:当装置连接到LWB时,使用LWB的根端口来枚举由装置公开的所述至少一个VF。The step of enumerating at least one virtual function (VF) exposed by the device using a root port of the LWB includes enumerating the at least one VF exposed by the device using a root port of the LWB when the device is connected to the LWB.
声明78、发明构思的实施例包括根据声明75所述的物品,其中,装置包括固态驱动器(SSD)。Statement 78. An embodiment of the inventive concept comprises the article of statement 75, wherein the device comprises a solid state drive (SSD).
声明79、发明构思的实施例包括根据声明75所述的物品,其中:Statement 79. An embodiment of the inventive concept comprises an article according to statement 75, wherein:
所述多个PF包括多个外围组件互连快速(PCIe)PF;The plurality of PFs include a plurality of Peripheral Component Interconnect Express (PCIe) PFs;
所述至少一个物理功能PF包括至少一个PCIe PF;并且The at least one physical function PF comprises at least one PCIe PF; and
所述至少一个虚拟功能(VF)包括至少一个PCIe VF。The at least one virtual function (VF) includes at least one PCIe VF.
声明80、发明构思的实施例包括根据声明79所述的物品,其中:Statement 80. An embodiment of the inventive concept comprises the article of statement 79, wherein:
APP-EP包括PCIe APP-EP(PAPP-EP);并且APP-EP includes PCIe APP-EP (PAPP-EP); and
APP-RP包括PCIe APP-RP(PAPP-RP)。APP-RP includes PCIe APP-RP (PAPP-RP).
声明81、发明构思的实施例包括根据声明75所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:Statement 81. An embodiment of the inventive concept comprises the article of statement 75, the non-transitory storage medium having stored thereon further instructions that, when executed by a machine, cause:
从主机接收枚举;和Receive enumeration from the host; and
向主机公开LWB的端点处的所述多个PF。The plurality of PFs at the endpoints of the LWB are exposed to the host.
声明82、发明构思的实施例包括根据声明75所述的物品,其中:Statement 82. An embodiment of the inventive concept comprises an article according to statement 75, wherein:
使用轻量桥接器(LWB)的根端口来枚举由装置公开的至少一个物理功能(PF)的步骤包括:使用LWB的第二根端口来枚举由第二装置公开的至少一个第二PF;The step of using a root port of a lightweight bridge (LWB) to enumerate at least one physical function (PF) exposed by a device includes: using a second root port of the LWB to enumerate at least one second PF exposed by a second device;
使用LWB的根端口来枚举由装置公开的至少一个虚拟功能(VF)的步骤包括:使用LWB的第二根端口来枚举由第二装置公开的至少一个第二VF;和The step of using a root port of the LWB to enumerate at least one virtual function (VF) exposed by the device includes: using a second root port of the LWB to enumerate at least one second VF exposed by a second device; and
将所述多个PF映射到所述至少一个PF和所述至少一个VF的步骤包括:将所述多个PF映射到所述至少一个PF、所述至少一个VF、所述至少一个第二PF以及所述至少一个第二VF。Mapping the plurality of PFs to the at least one PF and the at least one VF includes mapping the plurality of PFs to the at least one PF, the at least one VF, the at least one second PF, and the at least one second VF.
声明83、发明构思的实施例包括根据声明82所述的物品,非暂时性存储介质具有存储在其上的进一步指令,当所述指令被机器执行时,使得:Statement 83. An embodiment of the inventive concept comprises the article of statement 82, the non-transitory storage medium having further instructions stored thereon, which, when executed by a machine, cause:
确定装置和第二装置的资源;和determining resources of the device and the second device; and
将装置和第二装置的资源聚合。Aggregate the resources of the device and the second device.
声明84、发明构思的实施例包括根据声明75所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:Statement 84. An embodiment of the inventive concept comprises the article of statement 75, the non-transitory storage medium having stored thereon further instructions that, when executed by a machine, cause:
在由端点公开的所述多个PF中的PF,从主机接收请求;receiving, at a PF among the plurality of PFs exposed by the endpoint, a request from a host;
将由LWB的端点公开的所述多个PF中的PF映射到由装置公开的所述至少一个VF中的VF;Mapping a PF of the plurality of PFs exposed by an endpoint of the LWB to a VF of the at least one VF exposed by the device;
将请求从由端点公开的所述多个PF中的PF转换成由装置公开的所述至少一个VF中的VF;和converting a request from a PF of the plurality of PFs exposed by an endpoint to a VF of the at least one VF exposed by a device; and
将请求发送到由装置公开的所述至少一个VF中的VF。A request is sent to a VF of the at least one VF exposed by the device.
声明85、发明构思的实施例包括根据声明84所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:Statement 85. An embodiment of the inventive concept comprises the article of statement 84, a non-transitory storage medium having stored thereon further instructions that, when executed by a machine, cause:
接收来自由装置公开的所述至少一个VF中的VF的对请求的响应;receiving a response to the request from a VF of the at least one VF disclosed by the device;
将由装置公开的所述至少一个VF中的VF映射到由LWB的端点公开的所述多个PF中的PF;Mapping a VF in the at least one VF exposed by the device to a PF in the plurality of PFs exposed by an endpoint of the LWB;
将响应从由装置公开的所述至少一个VF中的VF转换成由端点公开的所述多个PF中的PF;和converting a response from a VF in the at least one VF exposed by the device to a PF in the plurality of PFs exposed by the endpoint; and
经由由LWB的端点公开的所述多个PF中的PF,将响应发送到主机。The response is sent to the host via a PF among the plurality of PFs exposed by the endpoint of the LWB.
声明86、发明构思的实施例包括根据声明85所述的物品,其中,将响应从由装置公开的所述至少一个VF中的VF转换成由端点公开的所述多个PF中的PF的步骤包括:基于由端点公开的所述多个PF中的PF的第一基址寄存器(BAR)和由装置公开的所述至少一个VF中的VF的第二BAR,修改响应中的地址。Statement 86. An embodiment of the inventive concept includes an article according to statement 85, wherein the step of converting a response from a VF in the at least one VF disclosed by the device to a PF in the multiple PFs disclosed by the endpoint includes: modifying an address in the response based on a first base address register (BAR) of a PF in the multiple PFs disclosed by the endpoint and a second BAR of a VF in the at least one VF disclosed by the device.
声明87、发明构思的实施例包括根据声明85所述的物品,其中,将由装置公开的所述至少一个VF中的VF映射到由LWB的端点公开的所述多个PF中的PF的步骤包括:使用LWB的APP-RP中的配置表,将由装置公开的所述至少一个VF中的VF映射到由LWB的端点公开的所述多个PF中的PF。Statement 87. An embodiment of the inventive concept includes an article according to statement 85, wherein the step of mapping a VF in the at least one VF disclosed by the device to a PF in the multiple PFs disclosed by the endpoint of the LWB includes: using a configuration table in the APP-RP of the LWB, mapping a VF in the at least one VF disclosed by the device to a PF in the multiple PFs disclosed by the endpoint of the LWB.
声明88、发明构思的实施例包括根据声明84所述的物品,其中,将请求从由端点公开的所述多个PF中的PF转换成由装置公开的所述至少一个VF中的VF的步骤包括:基于由端点公开的所述多个PF中的PF的第一基址寄存器(BAR)和由装置公开的所述至少一个VF中的VF的第二BAR,修改请求中的地址。Statement 88. An embodiment of the inventive concept includes an article according to statement 84, wherein the step of converting a request from a PF in the multiple PFs exposed by the endpoint to a VF in the at least one VF exposed by the device includes: modifying an address in the request based on a first base address register (BAR) of a PF in the multiple PFs exposed by the endpoint and a second BAR of a VF in the at least one VF exposed by the device.
声明89、发明构思的实施例包括根据声明84所述的物品,其中,将由LWB的端点公开的所述多个PF中的PF映射到由装置公开的所述至少一个VF中的VF的步骤包括:使用LWB的APP-RP中的配置表,将由LWB的端点公开的所述多个PF中的PF映射到由装置公开的所述至少一个VF中的VF。Statement 89. An embodiment of the inventive concept includes an article according to statement 84, wherein the step of mapping a PF in the multiple PFs disclosed by an endpoint of the LWB to a VF in the at least one VF disclosed by the device includes: using a configuration table in an APP-RP of the LWB, mapping a PF in the multiple PFs disclosed by an endpoint of the LWB to a VF in the at least one VF disclosed by the device.
声明90、发明构思的实施例包括根据声明84所述的物品,其中,将请求发送到由装置公开的所述至少一个VF中的VF的步骤包括:Statement 90. An embodiment of the inventive concept comprises the article of statement 84, wherein the step of sending the request to a VF of the at least one VF exposed by the device comprises:
在装置和第二装置之中进行选择,第二装置至少部分地基于由LWB的端点公开的所述多个PF中的PF到由装置公开的所述至少一个VF中的VF的映射来公开至少一个第二PF和至少一个第二VF;和selecting between the device and a second device, the second device exposing at least one second PF and at least one second VF based at least in part on a mapping of PFs of the plurality of PFs exposed by an endpoint of the LWB to VFs of the at least one VF exposed by the device; and
将请求发送到与装置相关联的APP-EP。The request is sent to the APP-EP associated with the device.
声明91、发明构思的实施例包括根据声明84所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:Statement 91. An embodiment of the inventive concept comprises the article of statement 84, a non-transitory storage medium having stored thereon further instructions that, when executed by a machine, cause:
确定用于涉及装置的数据传送的信用;和determining a credit for a data transfer involving the device; and
向装置发出信用。Issues credit to the device.
声明92、发明构思的实施例包括根据声明91所述的物品,其中,向装置发出信用的步骤包括:将信用写入装置中的地址。Statement 92. An embodiment of the inventive concept comprises the article of statement 91 wherein the step of issuing credit to the device comprises writing the credit to an address in the device.
声明93、发明构思的实施例包括根据声明91所述的物品,其中,向装置发出信用的步骤包括:装置从LWB中的地址读取信用。Statement 93. An embodiment of the inventive concept comprises the article of statement 91 wherein the step of issuing a credit to the device comprises the device reading the credit from an address in the LWB.
声明94、发明构思的实施例包括根据声明91所述的物品,其中,向装置发出信用的步骤包括:将消息从LWB发送到装置,消息包括信用。Statement 94. An embodiment of the inventive concept comprises the article of statement 91, wherein the step of issuing credit to the device comprises sending a message from the LWB to the device, the message comprising the credit.
声明95、发明构思的实施例包括根据声明75所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:Statement 95. An embodiment of the inventive concept comprises the article of statement 75, a non-transitory storage medium having stored thereon further instructions that, when executed by a machine, cause:
接收配置写入请求;和receiving a configuration write request; and
至少部分地基于配置写入请求来配置由LWB的端点公开的所述多个PF。The plurality of PFs exposed by endpoints of the LWB are configured based at least in part on the configuration write request.
声明96、发明构思的实施例包括根据声明95所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:至少部分地基于配置写入请求,将由装置公开的所述至少一个PF和所述至少一个VF配置为与由LWB的端点公开的所述多个PF的配置镜像。Statement 96. An embodiment of the inventive concept includes an article according to statement 95, a non-transitory storage medium having more instructions stored thereon, which, when executed by a machine, cause: at least in part based on a configuration write request, configure the at least one PF and the at least one VF disclosed by the device to mirror the configuration of the multiple PFs disclosed by an endpoint of the LWB.
声明97、发明构思的实施例包括根据声明95所述的物品,其中,接收配置写入请求的步骤包括:从主机接收配置写入请求。Statement 97. An embodiment of the inventive concept comprises the article of statement 95, wherein the step of receiving the configuration write request comprises: receiving the configuration write request from a host.
声明98、发明构思的实施例包括根据声明95所述的物品,其中,接收配置写入请求的步骤包括:从装置接收配置写入请求。Statement 98. An embodiment of the inventive concept comprises the article of statement 95, wherein the step of receiving the configuration write request comprises: receiving the configuration write request from the device.
声明99、发明构思的实施例包括根据声明98所述的物品,其中,至少部分地基于配置写入请求来配置由LWB的端点公开的所述多个PF的步骤包括:至少部分地基于从装置接收的配置写入请求,配置由端点公开的所述多个PF中的至少一个PF的能力。Statement 99. An embodiment of the inventive concept includes an article according to statement 98, wherein the step of configuring the multiple PFs exposed by the endpoint of the LWB based at least in part on a configuration write request includes: configuring the capabilities of at least one PF of the multiple PFs exposed by the endpoint based at least in part on a configuration write request received from the device.
声明100、发明构思的实施例包括根据声明95所述的物品,其中,至少部分地基于配置写入请求来配置由LWB的端点公开的所述多个PF的步骤包括:使用状态机来执行单根输入/输出虚拟化(SR-IOV)序列。Statement 100. An embodiment of the inventive concept comprises an article according to statement 95, wherein the step of configuring the plurality of PFs exposed by the endpoints of the LWB based at least in part on the configuration write request comprises: using a state machine to perform a single root input/output virtualization (SR-IOV) sequence.
声明101、发明构思的实施例包括根据声明75所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:Statement 101. An embodiment of the inventive concept comprises the article of statement 75, a non-transitory storage medium having stored thereon further instructions that, when executed by a machine, cause:
接收配置读取请求;Receive a configuration read request;
确定装置的所述至少一个PF和所述至少一个VF的配置;和determining a configuration of the at least one PF and the at least one VF of a device; and
用装置的所述至少一个PF和所述至少一个VF的配置来响应配置读取请求。The configuration read request is responded to with the configuration of the at least one PF and the at least one VF of the device.
声明102、发明构思的实施例包括根据声明101所述的物品,其中,确定装置的所述至少一个PF和所述至少一个VF的配置的步骤包括:确定由装置的端点公开的所述多个PF的配置。Statement 102. An embodiment of the inventive concept comprises the article of claim 101, wherein the step of determining the configuration of the at least one PF and the at least one VF of the device comprises: determining the configuration of the plurality of PFs exposed by endpoints of the device.
声明103、发明构思的实施例包括根据声明101所述的物品,其中,确定装置的所述至少一个PF和所述至少一个VF的配置的步骤包括:向装置查询装置的所述至少一个PF和所述至少一个VF的配置。Statement 103. An embodiment of the inventive concept comprises the article of statement 101, wherein the step of determining the configuration of the at least one PF and the at least one VF of the device comprises: querying the device for the configuration of the at least one PF and the at least one VF of the device.
声明104、发明构思的实施例包括根据声明101所述的物品,其中,确定装置的所述至少一个PF和所述至少一个VF的配置的步骤包括:不向装置递送配置读取请求。Statement 104. An embodiment of the inventive concept comprises the article of statement 101, wherein the step of determining a configuration of the at least one PF and the at least one VF of the device comprises: not delivering a configuration read request to the device.
声明105、发明构思的实施例包括根据声明75所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:使用LWB的应用层-端点(APP-EP)和应用层-根端口(APP-RP)动态地改变LWB的端点处的所述多个PF到由装置公开的所述至少一个PF和所述至少一个VF的映射。Statement 105. An embodiment of the inventive concept includes an article according to statement 75, a non-transitory storage medium having more instructions stored thereon, which, when executed by a machine, cause: dynamically changing a mapping of the multiple PFs at an endpoint of the LWB to the at least one PF and the at least one VF exposed by the device using an application layer-endpoint (APP-EP) and an application layer-root port (APP-RP) of the LWB.
声明106、发明构思的实施例包括根据声明105所述的物品,其中,使用LWB的应用层-端点(APP-EP)和应用层-根端口(APP-RP)动态地改变LWB的端点处的所述多个PF到由装置公开的所述至少一个PF和所述至少一个VF的映射的步骤包括:至少部分地基于针对由LWB的端点公开的所述多个PF中的至少一个PF的服务质量(QoS)策略的改变、存储参数、日、日的时间、或带宽使用,使用LWB的应用层-端点(APP-EP)和应用层-根端口(APP-RP)动态地改变LWB的端点处的所述多个PF到由装置公开的所述至少一个PF和所述至少一个VF的映射。Statement 106. An embodiment of the inventive concept includes an article according to statement 105, wherein the step of dynamically changing the mapping of the multiple PFs at the endpoint of the LWB to the at least one PF and the at least one VF disclosed by the device using an application layer-endpoint (APP-EP) and an application layer-root port (APP-RP) of the LWB includes: dynamically changing the mapping of the multiple PFs at the endpoint of the LWB to the at least one PF and the at least one VF disclosed by the device using an application layer-endpoint (APP-EP) and an application layer-root port (APP-RP) of the LWB based at least in part on a change in a quality of service (QoS) policy for at least one of the multiple PFs disclosed by the endpoint of the LWB, a storage parameter, a day, a time of day, or bandwidth usage.
声明107、发明构思的实施例包括根据声明75所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:对装置的带宽进行节流。Statement 107. An embodiment of the inventive concept comprises the article of statement 75, the non-transitory storage medium having further instructions stored thereon, which when executed by the machine, cause: throttling bandwidth of the device.
声明108、发明构思的实施例包括根据声明107的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:测量由端点公开的所述多个PF中的至少一个PF使用的带宽。Statement 108. An embodiment of the inventive concept comprises an article according to statement 107, a non-transitory storage medium having further instructions stored thereon, which when executed by a machine, cause: measuring a bandwidth used by at least one of the plurality of PFs exposed by an endpoint.
声明109、发明构思的实施例包括根据声明107所述的物品,其中,对装置的带宽进行节流的步骤包括:在第一数据包与第二数据包之间引入包间间隙。Statement 109. An embodiment of the inventive concept comprises the article of statement 107, wherein throttling the bandwidth of the device comprises introducing an inter-packet gap between the first data packet and the second data packet.
声明110、发明构思的实施例包括根据声明107所述的物品,其中,对装置的带宽进行节流的步骤包括:至少部分地基于由主机设置的QoS策略、由装置设置的QoS策略、LWB的温度、LWB的功耗、SSD的温度和SSD的功耗中的一个来对装置的带宽进行节流。Statement 110. An embodiment of the inventive concept includes an article according to statement 107, wherein the step of throttling the bandwidth of the device includes: throttling the bandwidth of the device based at least in part on a QoS policy set by the host, a QoS policy set by the device, a temperature of the LWB, a power consumption of the LWB, a temperature of the SSD, and a power consumption of the SSD.
声明111、发明构思的实施例包括根据声明110的物品,其中,至少部分地基于由主机设置的QoS策略、由装置设置的QoS策略、LWB的温度、LWB的功耗、SSD的温度和SSD的功耗中的一个来对装置的带宽进行节流的步骤包括:至少部分地基于LWB的温度、LWB的功耗、SSD的温度和SSD的功耗中的一个超过阈值来对装置的带宽进行节流。Statement 111. An embodiment of the inventive concept includes an article according to statement 110, wherein the step of throttling the bandwidth of the device based at least in part on a QoS policy set by a host, a QoS policy set by a device, a temperature of the LWB, a power consumption of the LWB, a temperature of the SSD, and a power consumption of the SSD includes: throttling the bandwidth of the device based at least in part on one of the temperature of the LWB, the power consumption of the LWB, the temperature of the SSD, and the power consumption of the SSD exceeding a threshold.
声明112、发明构思的实施例包括根据声明111所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:至少部分地基于LWB的温度、LWB的功耗、SSD的温度和SSD的功耗中的一个下降到低于第二阈值来结束装置的带宽节流。Statement 112. An embodiment of the inventive concept includes an article according to statement 111, a non-temporary storage medium having more instructions stored thereon, which, when executed by a machine, causes: ending bandwidth throttling of the device based at least in part on one of the temperature of the LWB, the power consumption of the LWB, the temperature of the SSD, and the power consumption of the SSD falling below a second threshold.
声明113、发明构思的实施例包括根据声明75所述的物品,非暂时性存储介质具有存储在其上的更多指令,当所述更多指令被机器执行时,使得:Statement 113. An embodiment of the inventive concept comprises the article of statement 75, a non-transitory storage medium having stored thereon further instructions that, when executed by a machine, cause:
接收由LWB的端点公开的所述多个PF中的PF的QoS策略;和receiving a QoS policy of a PF of the plurality of PFs disclosed by an endpoint of the LWB; and
实施由LWB的端点公开的所述多个PF中的PF的QoS策略。A QoS policy of a PF in the plurality of PFs exposed by an endpoint of the LWB is implemented.
声明114、发明构思的实施例包括根据声明75所述的物品,其中,接收由LWB的端点公开的所述多个PF中的PF的QoS策略的步骤包括:从主机和装置中的一个接收由LWB的端点公开的所述多个PF中的PF的QoS策略。Statement 114. An embodiment of the inventive concept includes an article according to statement 75, wherein the step of receiving a QoS policy of a PF in the multiple PFs exposed by an endpoint of the LWB includes: receiving a QoS policy of a PF in the multiple PFs exposed by an endpoint of the LWB from one of a host and a device.
因此,鉴于在此描述的对实施例的广泛的各种置换,本具体实施方式和所附材料意在仅是说明性的,并且不应被视为限制发明的范围。因此,发明所要求权利的是可落入权利要求及其等同物的范围和精神内的所有这样的修改。Therefore, in view of the wide variety of permutations of the embodiments described herein, this detailed description and accompanying materials are intended to be illustrative only and should not be taken as limiting the scope of the invention. Therefore, what is claimed is all such modifications that may fall within the scope and spirit of the claims and their equivalents.
Claims (20)
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962865962P | 2019-06-24 | 2019-06-24 | |
US62/865,962 | 2019-06-24 | ||
US202062964114P | 2020-01-21 | 2020-01-21 | |
US62/964,114 | 2020-01-21 | ||
US16/846,271 | 2020-04-10 | ||
US16/846,271 US11809799B2 (en) | 2019-06-24 | 2020-04-10 | Systems and methods for multi PF emulation using VFs in SSD controller |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112131166A CN112131166A (en) | 2020-12-25 |
CN112131166B true CN112131166B (en) | 2024-07-16 |
Family
ID=73851757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010582886.0A Active CN112131166B (en) | 2019-06-24 | 2020-06-23 | Lightweight bridge circuit and operation method thereof |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7446167B2 (en) |
CN (1) | CN112131166B (en) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836238B2 (en) * | 2006-12-19 | 2010-11-16 | International Business Machines Corporation | Hot-plug/remove of a new component in a running PCIe fabric |
US20160154756A1 (en) * | 2014-03-31 | 2016-06-02 | Avago Technologies General Ip (Singapore) Pte. Ltd | Unordered multi-path routing in a pcie express fabric environment |
US10838852B2 (en) * | 2015-04-17 | 2020-11-17 | Samsung Electronics Co., Ltd. | System and method to extend NVME queues to user space |
CN106484492A (en) * | 2015-08-28 | 2017-03-08 | 杭州华为数字技术有限公司 | The method and system of configuration interface |
CN105721357B (en) * | 2016-01-13 | 2019-09-03 | 华为技术有限公司 | Switching equipment, peripheral component interconnection high-speed system and initialization method thereof |
US20170212579A1 (en) * | 2016-01-25 | 2017-07-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Storage Device With Power Management Throttling |
US10719474B2 (en) * | 2017-10-11 | 2020-07-21 | Samsung Electronics Co., Ltd. | System and method for providing in-storage acceleration (ISA) in data storage devices |
-
2020
- 2020-06-23 JP JP2020107708A patent/JP7446167B2/en active Active
- 2020-06-23 CN CN202010582886.0A patent/CN112131166B/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN112131166A (en) | 2020-12-25 |
JP2021002348A (en) | 2021-01-07 |
JP7446167B2 (en) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11809799B2 (en) | Systems and methods for multi PF emulation using VFs in SSD controller | |
JP7120943B2 (en) | A new SSD architecture for FPGA-based acceleration | |
US10713074B2 (en) | Method, apparatus, and system for accessing storage device | |
CN112099941B (en) | Method, device and system for implementing hardware accelerated processing | |
EP3457288B1 (en) | Computer system and storage access device | |
AU2013388031B2 (en) | Data processing system and data processing method | |
US9467512B2 (en) | Techniques for remote client access to a storage medium coupled with a server | |
CN112540941B (en) | Data forwarding chip and server | |
CN109445905B (en) | Virtual machine data communication method and system, and virtual machine configuration method and device | |
US12248708B2 (en) | System supporting virtualization of SR-IOV capable devices | |
US20230044609A1 (en) | System supporting virtualization of sr-iov capable devices | |
US11741039B2 (en) | Peripheral component interconnect express device and method of operating the same | |
CN117591450B (en) | Data processing system, method, equipment and medium | |
US20240273050A1 (en) | Network storage method, storage system, data processing unit, and computer system | |
CN118886043B (en) | Data transmission method, device, equipment and storage medium | |
JP2023528782A (en) | How network adapters process data and network adapters | |
US11544013B2 (en) | Array-based copy mechanism utilizing logical addresses pointing to same data block | |
US11003618B1 (en) | Out-of-band interconnect control and isolation | |
JP6760579B2 (en) | Network line card (LC) integration into host operating system (OS) | |
CN112131166B (en) | Lightweight bridge circuit and operation method thereof | |
US20230350824A1 (en) | Peripheral component interconnect express device and operating method thereof | |
KR20240035325A (en) | Data storage device operation method, storage apparatus and host | |
CN118245071A (en) | System installation method, device, equipment and readable storage medium |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |