JP7446167B2 - Lightweight bridge, article including it, and method using the same - Google Patents
Lightweight bridge, article including it, and method using the same Download PDFInfo
- Publication number
- JP7446167B2 JP7446167B2 JP2020107708A JP2020107708A JP7446167B2 JP 7446167 B2 JP7446167 B2 JP 7446167B2 JP 2020107708 A JP2020107708 A JP 2020107708A JP 2020107708 A JP2020107708 A JP 2020107708A JP 7446167 B2 JP7446167 B2 JP 7446167B2
- Authority
- JP
- Japan
- Prior art keywords
- exposed
- lwb
- endpoint
- bridge
- ssd
- 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
- 238000000034 method Methods 0.000 title claims description 112
- 230000003863 physical function Effects 0.000 claims description 521
- 238000013507 mapping Methods 0.000 claims description 82
- 230000006870 function Effects 0.000 claims description 57
- 230000015654 memory Effects 0.000 claims description 30
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 34
- 238000004891 communication Methods 0.000 description 18
- 238000013403 standard screening design Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 13
- 230000004044 response Effects 0.000 description 13
- 238000013519 translation Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 239000007787 solid Substances 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/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)
Description
本発明の技術的思想は、概して記憶デバイスに関し、より詳しくはPCIe(Peripheral Component Interconnect Express)仮想機能(Virtual Function、VF)をPCIe物理機能(Physical Function、PF)としてエミュレートすることに関する。 The technical idea of the present invention generally relates to storage devices, and more specifically to emulating a PCIe (Peripheral Component Interconnect Express) virtual function (VF) as a PCIe physical function (PF). Regarding.
PCIe(Peripheral Component Interconnect Express)デバイスのようなデバイスは、コンピュータシステムにおいて他の構成要素によってアクセス可能な多様な機能を露出させる。例えば、ホストプロセッサは、SSD(Solid State Drive)内で多様な動作を遂行するために、SSDによって露出されたこのような機能を使うことができる。このような機能はSSDに記憶されたデータで動作することができるかあるいはホストによって提供されたデータで動作することができる。一般に、デバイスによって露出される機能はデバイスの正常動作に係わるが、このような制限が要求されるものではない。例えば、SSDは伝統的にデータを記憶するのに使うが、仮にSSDにプロセッサが含まれた場合、ホストプロセッサからプロセッシングをオフロードするのに使うことができる。 Devices such as Peripheral Component Interconnect Express (PCIe) devices expose a variety of functionality that can be accessed by other components in a computer system. For example, a host processor can use such functionality exposed by a solid state drive (SSD) to perform various operations within the solid state drive. Such functionality can operate with data stored on the SSD or with data provided by the host. Generally, the functionality exposed by a device is relevant to the normal operation of the device, but such limitations are not required. For example, SSDs are traditionally used to store data, but if the SSD includes a processor, it can be used to offload processing from the host processor.
デバイスによって露出された機能は、開始の際(at startup)(又はデバイスのホット組込がサポートされる場合には組込の際)にデバイスを羅列する間に、ホストマシンによって発見されることができる。発見の一部として、ホストマシンは任意の露出された機能に関してデバイスに問い合わせることができ、その後にデバイスに対して利用可能な機能のリストに追加されることができる。 The functionality exposed by a device may be discovered by the host machine while enumerating the device at startup (or during installation if hot installation of the device is supported). can. As part of discovery, the host machine can query the device for any exposed capabilities, which can then be added to the list of capabilities available for the device.
機能は物理的及び仮想の2種のカテゴリーに分類される。物理機能(Physical Functions;PF)はデバイス内でハードウェアを使って具現することができる。PFの資源(resource)はデバイスによって提供される他のどのPFとも独立に管理及び構成されることができる。仮想機能(VF)は仮想化した機能と見なすことができる軽量機能(lightweight function)である。PFとは違い、VFは一般的に特定のPFに関連付けられ、一般的にその関連付けられたPFと(及び場合により、そのPFに関連付けられた他のVFとも)資源を共有する。 Functions are classified into two categories: physical and virtual. Physical functions (PF) can be implemented using hardware within a device. A PF's resources can be managed and configured independently of any other PFs provided by the device. A virtual function (VF) is a lightweight function that can be considered a virtualized function. Unlike PFs, VFs are generally associated with a particular PF and generally share resources with their associated PF (and possibly other VFs associated with that PF).
PFは互いに独立であり、VFはホストがVFにアクセスするためにSR-IOV(Single Root Input/Output Virtualization)の使用を必要とし得るので、デバイスがPFを露出させることが好ましい。しかし、PFは独立なので、別途のハードウェアを必要とし、デバイス内で要求される空間及びデバイスによって消費される電力を増加させ得る。SR-IOVプロトコルは、特に仮想化ユースケースの場合、ホストシステムソフトウェアスタックに複雑度を加え得る。 It is preferred that the device exposes the PF since the PFs are independent of each other and the VF may require the use of SR-IOV (Single Root Input/Output Virtualization) for the host to access the VF. However, since the PF is independent, it requires additional hardware and can increase the space required within the device and the power consumed by the device. The SR-IOV protocol can add complexity to the host system software stack, especially for virtualization use cases.
システムソフトウェアの複雑度を減らすことができるよう、PFのコスト要求を課すことなくPFをデバイスに提供する必要がある。 There is a need to provide PF to devices without imposing the cost requirements of PF so that system software complexity can be reduced.
本発明が解決しようとする課題は、システムソフトウェアの複雑度を減らすことができるよう、物理機能(Physical Functions;PF)のコスト要求を課すことなくPFをデバイスに提供することである。 The problem to be solved by the present invention is to provide a device with physical functions (PF) without imposing cost requirements so that the complexity of system software can be reduced.
前記課題を解決するための本発明の一実施形態によるWBL(lightweight bridge)回路は、ホストに連結され、複数の物理機能(Physical Function、PF)を露出させるエンドポイント、デバイスに連結されるルートポートであって、前記デバイスが当該ルートポートに少なくとも一つのPF及び少なくとも一つの仮想機能(Virtual Function、VF)を露出させるルートポート、及び前記ホストに露出された前記複数のPFと前記デバイスによって露出された前記少なくとも一つのPF及び前記少なくとも一つのVFとの間の変換のためのAPP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)を含み、前記APP-EP及び前記APP-RPは、前記エンドポイントによって露出された前記複数のPFと前記デバイスによって露出された前記少なくとも一つのPF及び前記少なくとも一つのVFとの間のマッピングを具現する。 To solve the above problems, a WBL (lightweight bridge) circuit according to an embodiment of the present invention includes an end point that is connected to a host and exposes a plurality of physical functions (PFs), and a root port that is connected to a device. A root port in which the device exposes at least one PF and at least one virtual function (VF) to the root port, and a plurality of PFs exposed to the host and exposed by the device. an APP-EP (Application Layer-End Point) and an APP-RP (Application Layer-Root Port) for conversion between the at least one PF and the at least one VF; APP-RP implements a 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(Lightweight Bridge)のルートポートを使ってデバイスによって露出された少なくとも一つの物理機能(Physical Function、PF)を羅列する段階、前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つの仮想機能(Virtual Function、VF)を羅列する段階、ホストに対する露出のために、前記LWBのエンドポイントで複数のPFを生成する段階、及び前記LWBのAPP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)を使用して、前記LWBの前記エンドポイントにある前記複数のPFを前記デバイスによって露出された前記少なくとも一つのPF及び前記少なくとも一つのVFにマッピングする段階を含む。 A method according to an embodiment of the present invention for solving the above problem includes the steps of enumerating at least one physical function (PF) exposed by a device using a root port of a light weight bridge (LWB). enumerating at least one virtual function (VF) exposed by the device using the root port of the LWB; generating a plurality of PFs at the endpoint of the LWB for exposure to a host; , and using an APP-EP (Application Layer-End point) and an APP-RP (Application Layer-Root Port) of the LWB, the plurality of PFs at the end points of the LWB are exposed by the device. The method includes mapping to the at least one PF and the at least one VF.
前記課題を解決するための本発明の一実施形態による物品は、命令を格納した前記非一時的記憶媒体を含み、前記命令は、マシン(machine)によって実行されるとき、LWB(Lightweight Bridge)のルートポートを使ってデバイスによって露出された少なくとも一つの物理機能(Physical Function、PF)を羅列する段階、前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つの仮想機能(Virtual Function、VF)を羅列する段階、ホストに対する露出のために、前記LWBのエンドポイントで複数のPFを生成する段階、及び前記LWBのAPP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)を使用して、前記LWBのエンドポイントにある前記複数のPFを前記デバイスによって露出された前記少なくとも一つのPF及び前記少なくとも一つのVFにマッピングする段階を引き起こす。 An article according to an embodiment of the present invention for solving the above problem includes the non-transitory storage medium storing instructions, and when the instructions are executed by a machine, the instructions are stored on a light bridge (LWB). enumerating at least one physical function (PF) exposed by the device using the root port; at least one virtual function (PF) exposed by the device using the root port of the LWB; generating a plurality of PFs at the end point of the LWB for exposure to a host; Root Port) to map the plurality of PFs at endpoints of the LWB to the at least one PF and the at least one VF exposed by the device.
本発明の一実施形態によれば、デバイスは、物理機能(Physical Functions;PF)のコスト要求を課すことなくシステムソフトウェアの複雑度を減らすことができる。 According to one embodiment of the invention, a device can reduce system software complexity without imposing physical functions (PF) cost requirements.
以下、本発明の実施形態を詳細に参照し、その例示は添付図面に示す。以下の開示を実施するための具体的な内容では、本発明の徹底的な理解ができるようにするために、多数の特定の詳細事項を説明する。しかし、当該技術分野の通常の技術者はこのような特定の詳細事項なしに本発明を実施することができるというのが理解されなければならない。他の場合で、公知の方法、過程、コンポーネント、回路及びネットワークは実施形態の様態を不必要にあいまいにしないように詳細に説明しない。 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 of the disclosure, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it is to be understood that one of ordinary skill in the art may practice the invention without these specific details. In other instances, well-known methods, processes, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
第1、第2などの用語をここで多様な構成要素を説明するために使うことがあるが、これらの構成要素はこれらの用語によって限定されないことが理解されなければならない。このような用語は一構成要素を他の構成要素と区別するために使う。例えば、本発明の範囲を逸脱することなく第1モジュールは第2モジュールと指称することができ、同様に第2モジュールは第1モジュールと指称することができる。 Although terms such as first, second, etc. may be used herein to describe various components, it is to be understood that these components are not limited by these terms. These terms are used to distinguish one component from another component. For example, a first module may be referred to as a second module, and likewise a second module may be referred to as a first module without departing from the scope of the invention.
ここで、本発明の説明に使用した用語は、単に、特定の実施形態を説明するためのものであり、本発明を限定しようとするものではない。本発明の説明及び添付の請求範囲に使用したような単数の形態は、文脈上明白に他に指示しない限り、複数の形態も含むものである。また、ここで使用した用語“及び/又は”は一つ以上の関連のリスト化した項目の任意の及び全ての可能な組合せを指称して含むものと理解される。本明細書で使う、“含む(comprise)”及び/又は“含む(comprising)”という用語は言及した特徴、整数、段階、動作、構成要素及び/又はコンポーネントの存在を特定するが、一つ以上の他の特徴、整数、段階、動作、構成要素、コンポーネント及び/又はこれらのグループの存在又は追加を排除しない。図面のコンポーネント及び特徴は必ずしも実際の縮尺比で示したものではない。 The terminology used herein to describe the invention is merely for the purpose of describing particular embodiments and is not intended to limit the invention. As used in the description of the invention and the appended claims, references to the singular form include the plural form as well, unless the context clearly dictates otherwise. Additionally, as used herein, the term "and/or" is understood to refer to and include any and all possible combinations of one or more of the associated listed items. As used herein, the terms "comprise" and/or "comprising" identify the presence of the referenced feature, integer, step, act, element, and/or component, but include one or more does not exclude the presence or addition of other features, integers, steps, acts, elements, components and/or groups thereof. The components and features in the drawings are not necessarily drawn to scale.
本発明の技術的思想の実施形態は、デバイスによってサポートされる仮想機能を使ってSSD(Solid State Drive)のようなデバイスで多数の物理機能をエミュレートする方法及びシステムを含む。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 in a device, such as a solid state drive (SSD), using virtual functions supported by the device. The SSD can have multiple NVMe controllers represented by multiple PCIe physical functions (PFs) or PCIe virtual functions (VFs). Each PF or VF provides an NVMe controller that can be used by the host NVMe driver to essentially perform data storage functions. Although the PF has real physical resources, virtual functions share resources with the PF. According to an embodiment of the technical idea of the present invention, a large number of PFs can be exposed to a host using a VF set in an SSD controller. That is, multiple PFs can be emulated by the device and VFs can be used internally. From the host's perspective, the host system software stack references multiple PCIe PFs and the NVMe controllers behind those PFs. Internally, embodiments of the inventive concept can map and convert all host accesses to PFs to VFs.
PCIe PFはいずれの他の機能(物理的又は仮想)とも独立である。すなわち、PFは、例えばメモリバッファーなどの、それら自身の専用の物理的資源を有する。デバイスが多数のPFをサポートすることは、根底にあるデバイスの論理領域、電力消費及び複雑度を増加させる。したがって、デバイス側での費用と複雑度を減らすために、PCIe仕様は仮想機能(VF)をサポートしている。VFはPFと物理的資源を共有し、全ての物理的側面でPFに依存する。このような物理的側面は、PCIeリンク制御、デバイス制御、電力管理などを含む。 PCIe PF is independent from any other functionality (physical or virtual). That is, PFs have their own dedicated physical resources, such as memory buffers. Supporting a large number of PFs for a device increases the logic area, power consumption, and complexity of the underlying device. Therefore, to reduce cost and complexity on the device side, the PCIe specification supports virtual functions (VFs). VF shares physical resources with PF and depends on PF for all physical aspects. Such physical aspects include PCIe link control, device control, power management, etc.
VFは、デバイス側での費用と複雑度を低めるが、VFは、システムソフトウェア側の複雑度を増加させる。システムソフトウェアは、VFと通信することができるように、SR-IOV(Single Root Input/Output Virtualization)プロトコルをサポートすることが必要である。この追加機能は時々追加遅延の側面でI/O性能を低下させる。よって、システムソフトウェアの観点ではPFを有することが好ましい。 Although VF reduces cost and complexity on the device side, VF increases complexity on the system software side. The system software needs to support the SR-IOV (Single Root Input/Output Virtualization) protocol so that it can communicate with the VF. This additional functionality sometimes degrades I/O performance in terms of additional delay. Therefore, from the viewpoint of system software, it is preferable to have a PF.
本発明の技術的思想の実施形態は、デバイスがSSDコントローラーでVFを使ってPFをエミュレートすることができるようにする。すなわち、ホストの観点からは、記憶デバイスSSDが多数のPFを有するように見える。しかし、デバイスの側面で、このようなPFはVFセットを使ってエミュレートすることができる。費用を減らすために、SSDコントローラーASICにPFとして多様な機能を実装する必要なくSSDのようなデバイスの機能を露出させるのに、軽量ブリッジ(Lightweight Bridge、LWB)を使うことができる。 Embodiments of the technical idea of the present invention enable a device to emulate a PF using a VF in an SSD controller. That is, from the host's perspective, the storage device SSD appears to have a large number of PFs. However, on the device side, such a PF can be emulated using a VF set. To reduce cost, a Lightweight Bridge (LWB) can be used to expose the functionality of a device such as an SSD without the need to implement various functions as a PF in the SSD controller ASIC.
LWBの例示的な具現で、たとえ根底にあるデバイスが一部又は大部分の機能をPFではなくVFで具現することができても、総16個の機能がまるで物理機能であるようにLWBによって露出されることができる。LWBは、ホストマシンとSSDコントローラー自体間のブリッジの役割を達成する。LWBは全体SSDデバイスの一部又は別個のコンポーネントで具現することができる。デバイスはSSDであってもよく、機能(1個のPF及び15個のVF)はSSDコントローラーのエンドポイントの一部で具現される。(また、SSDは、一般に、ホストインターフェース階層(host interface layer、HIL)、フラッシュ変換階層(flash translation layer、FTL)及びフラッシュメモリにアクセスするためのフラッシュコントローラー(flash controller、FC)を含むことができる)。 In an exemplary implementation of LWB, a total of 16 functions are implemented by LWB as if they were physical functions, even if the underlying device could implement some or most of the functions in VF rather than PF. Can be exposed. LWB accomplishes the role of a bridge between the host machine and the SSD controller itself. The LWB can be implemented as part of the overall SSD device or as a separate component. The device may be an SSD, and the functionality (1 PF and 15 VFs) is implemented as part of the endpoint of the SSD controller. (SSDs may also generally include a host interface layer (HIL), a flash translation layer (FTL), and a flash controller (FC) for accessing flash memory. ).
LWBは3世代PCIeバスの4個のレーン(lane)を使ってホストマシンと通信することができる反面、LWB内部通信は3世代PCIeバスの16個のレーンを使って具現することができる。しかし、本発明の技術的思想の実施形態は、任意の特定バージョンのPCIeバス(又は他のバス類型)の使用をサポートすることができ、ホストマシンとともに、かつ内部的に全て、制限なしに任意の所望速度又はレーン又は帯域幅をサポートすることができる。本説明でのPCIeレーン幅及び速度は単に例示のものであり、任意の組合せを同じ概念を用いて具現することができることが理解可能である。 The LWB can communicate with the host machine using four lanes of the 3rd generation PCIe bus, while LWB internal communication can be implemented using 16 lanes of the 3rd generation PCIe bus. However, embodiments of the inventive concept may support the use of any particular version of the PCIe bus (or other bus type), all with and internally with the host machine, without limitation, any desired speeds or lanes or bandwidths. It can be understood that the PCIe lane widths and speeds in this description are merely exemplary, and any combination can be implemented using the same concept.
SSDコントローラーがホストマシンのルートポート又はルートコンプレックスと通信する代わりに、SSDコントローラーはLWBのルートポートと通信することができる。SSDコントローラーは、この変更を認識しなくてもよく、LWBのルートポートからの通信をまるでホストマシンからの通信のように処理することができる。同様に、ホストマシンは、エンドポイントが(露出された機能を具現した)SSDコントローラーではないことを知ることなく、LWBのエンドポイントと通信することができる。SSDコントローラー又はホストマシンに係わる限り、これらが通信する当事者(本発明の技術的思想の実施形態で、LWB)はブラックボックスと見なすことができる。 Instead of the SSD controller communicating with the host machine's root port or root complex, the SSD controller can communicate with the LWB's root port. The SSD controller does not need to be aware of this change and can process communications from the root port of the LWB as if they were communications from the host machine. Similarly, a host machine can communicate with an LWB endpoint without knowing that the endpoint is not an SSD controller (implementing exposed functionality). As far as the SSD controller or the host machine is concerned, the party with which they communicate (LWB in the embodiment of the technical idea of the present invention) can be considered as a black box.
LWBのエンドポイントは、SSDコントローラーのエンドポイントと同数の機能を露出させることができる。しかし、このような機能の一部をVFで露出させる代わりに、LWBのエンドポイントは全ての機能をPFで露出させることができる。また、LWBは、PAPP-EP(PCIe Application Layer for End point)及びPAPP-RP(PCIe Application Layer for Root Port)を含むことができる。PAPP-EP及びPAPP-RPはLWBのエンドポイントによって露出されたPFからSSDコントローラーのエンドポイントによって露出された機能(物理的又は仮想)へのマッピングを管理することができる。PAPP-RPは、ホストに露出されたPFのPCIe構成空間をSSDコントローラーEPのPF及び/又はVFのPCIe構成空間にマッピングすることを助ける構成変換テーブルを含むことができる。また、このテーブルはLWBエンドポイントによって露出されたどのPFがSSDコントローラーエンドポイントによって露出されたどの機能にマッピングされるかだけではなく、マッピングに係わる他の情報を示すことができる(例えば、どのSSDコントローラーのアドレスが露出された機能に対するデータを記憶することができるか)。LWBのエンドポイントによって提供されるPCIe構成機能及び性能(capability)はSSDコントローラーのエンドポイントによって提供されるものと(たびたび)違うことができ、構成変換テーブルはこのような相違点を管理するのに役に立つことができる。また、PAPP-RPは、ホストに露出されたPFのメモリBAR(base address register)アドレス及びSSDコントローラーEPのPF及び/又はVFのBARの変換を処理することができる。また、PAPP-EP及び/又はPAPP-RPは、必要によって他のテーブルを含むことができる。ホスト露出されたPF及びSSDコントローラー内部PF/VFのマッピングは根本的に融通性があり、動的であり得る。マッピングは、ホスト及び/又はBMC(Board Management Controller)のような管理エンティティによって発行された特定のイベント及び/又はポリシー変更に基づいてランタイムの間に変更されることができる。このようなイベントの例としては、VM(Virtual Machine)マイグレーション、SLA、電力/性能スロットリング、日付、時間の変更などがある。 The LWB endpoint can expose the same number of functions as the SSD controller endpoint. However, instead of exposing some of these functions in VF, the LWB endpoint can expose all functions in PF. Further, the LWB can include PAPP-EP (PCIe Application Layer for End Point) and PAPP-RP (PCIe Application Layer for Root Port). PAPP-EP and PAPP-RP can manage the mapping from PFs exposed by LWB endpoints to functions (physical or virtual) exposed by SSD controller endpoints. The PAPP-RP may include a configuration translation table that helps map the PCIe configuration space of the host-exposed PF to the PCIe configuration space of the PF and/or VF of the SSD controller EP. Additionally, this table can indicate not only which PF exposed by the LWB endpoint is mapped to which function exposed by the SSD controller endpoint, but also other information related to the mapping (e.g. which SSD (Can controller addresses store data for exposed functions?) The PCIe configuration features and capabilities provided by the LWB endpoints can (often) differ from those provided by the SSD controller endpoints, and configuration translation tables help manage these differences. can be helpful. Additionally, the PAPP-RP may process the conversion of memory base address register (BAR) addresses of PFs exposed to the host and BARs of PFs and/or VFs of the SSD controller EP. Furthermore, PAPP-EP and/or PAPP-RP can include other tables as necessary. The mapping of host exposed PF and SSD controller internal PF/VF is fundamentally flexible and can be dynamic. The mapping may be changed during runtime based on specific events and/or policy changes issued by the host and/or a management entity such as a Board Management Controller (BMC). Examples of such events include virtual machine (VM) migration, SLA, power/performance throttling, date, time changes, etc.
PAPP-EP及びPAPP-RPは本発明の技術的思想の一部実施形態で別個のコンポーネントであり得るが、本発明の技術的思想の他の実施形態は単一具現でこれらのコンポーネント(及び潜在的にLWBのエンドポイント、ルートポート及び構成管理者)を具現することができる。例えば、LWBは、FPGA(Field Programmable Gate Array)又はASIC(Application-Specific Integrated Circuit)(可能な具現の二つの例示に過ぎない)を使って具現することができる。PAPP-EP及びPAPP-RPは、任意の所望メカニズムを使って通信することができる。例えば、特定の機能を呼び出し、結果をリターンするために、PAPP-EPとPAPP-RPとの間でデータを交換するのに使うことができる中間データフォーマットを定義することができる。 Although PAPP-EP and PAPP-RP may be separate components in some embodiments of the inventive idea, other embodiments of the inventive idea may include these components (and potentially LWB endpoints, root ports, and configuration managers) can be implemented in a specific manner. For example, the LWB can be implemented using a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC) (just two examples of possible implementations). PAPP-EP and PAPP-RP may communicate using any desired mechanism. For example, intermediate data formats can be defined that can be used to exchange data between PAPP-EP and PAPP-RP in order to call specific functions and return results.
また、LWBは構成管理者(コンフィギュレーションマネージャ)を含むことができる。構成管理者は、SSDコントローラーのエンドポイントによって提供される機能(PF及びVFの全て)を羅列することができる。そして、構成管理者は、その情報を、LWBのエンドポイントによって露出された機能を“定義”し、PAPP-RPで構成空間変換テーブルを構成することを助けるために使うことができる。一般に、構成管理者は主に開始の際(at startup)に使われる。しかし、ホストマシンは多様な機能に関して(LWBの)エンドポイントと通信するのに使われるインタラプトのようなPFのPCIe構成空間を変更することができ、又はホストマシンは特定の機能を活性化又は非活性化することができる。構成管理者は、必要によって、このような変更を支援するのに使われることができる。また、LWBは、同様のPCIe構成空間変更がSSDコントローラーに適切に伝達されることを保障する必要があり得る。すなわち、LWBは、ホストに露出されたPFと内部SSDコントローラーEPによって露出されたPF/VFとの間でPCIe構成ミラーリングを遂行する。よって、LWBは、SSDコントローラーによって露出された機能を管理することもできる。 The LWB may also include a configuration manager. The configuration administrator can enumerate the functions (all PFs and VFs) provided by the SSD controller's endpoints. The configuration administrator can then use that information to help "define" the functionality exposed by the LWB's endpoints and configure the configuration space translation table in PAPP-RP. Generally, configuration managers are used primarily at startup. However, the host machine can modify the PF's PCIe configuration space, such as interrupts used to communicate with (LWB) endpoints regarding various functions, or the host machine can activate or deactivate certain functions. Can be activated. A configuration administrator can be used to assist with such changes, if necessary. The LWB may also need to ensure that similar PCIe configuration space changes are properly communicated to the SSD controller. 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. Thus, the LWB can also manage the functions exposed by the SSD controller.
デバイス全体で2個のエンドポイント(LWBに一つ、SSDコントローラーに一つ)があるので、それぞれ固有の構成空間を維持する。潜在的な問題又は衝突を避けるためには、これらの構成空間が同期化しなければならない。ホストが構成記録命令を送るとき、LWBはLWBエンドポイントにおける構成空間をアップデートすることができる。また、構成記録命令は(PAPP-EP、PAPP-RP及びルートポートを介して)SSDのエンドポイントに伝達されることにより、SSDコントローラーのエンドポイントもアップデートされることができる。全てのホスト主導の構成記録命令がSSDコントローラーに反映されるのでなくてもよい。すなわち、ホスト構成空間変更の一部はバックエンドSSDコントローラーにそのまま反映されなくてもよい。例えば、ホストはLWB EPに電力管理変更を遂行することができるが、その変更又は同様の変更が、LWBによってSSDコントローラーEPに対して遂行されなくてもよい。 Since there are two endpoints across the device (one on the LWB and one on the SSD controller), each maintains its own configuration space. These configuration spaces must be synchronized to avoid potential problems or conflicts. When the host sends a configuration record command, the LWB can update the configuration space at the LWB endpoint. Also, the configuration recording command is communicated to the SSD endpoints (via PAPP-EP, PAPP-RP, and Root Port) so that the SSD controller endpoints can also be updated. It is not necessary that all host-initiated configuration recording commands are reflected in the SSD controller. That is, some changes to the host configuration space may not be directly reflected in the backend SSD controller. For example, the host may perform power management changes to the LWB EP, but that change or similar changes may not be performed by the LWB to the SSD controller EP.
ホストが構成判読命令を送るとき、当該命令はLWBのエンドポイントによって満たすことができる。LWBのエンドポイントは構成判読命令をPAPP-EPに伝達して、PAPP-EPが命令を終了することができ、二つの構成空間が同期化されているので、各構成空間のデータが同一のはずである(代案として、LWBのエンドポイントが構成判読命令をPAPP-EPに伝達せず、LWBのエンドポイントが構成判読命令に応答し、該当時点で命令を終了することができる。)。 When the host sends a configuration reading command, the command can be fulfilled by the LWB's endpoint. The endpoint of the LWB conveys the configuration reading command to the PAPP-EP so that the PAPP-EP can finish the command, and since the two configuration spaces are synchronized, the data in each configuration space should be the same. (Alternatively, the LWB endpoint does not communicate the configuration reading command to the PAPP-EP, and the LWB endpoint can respond to the configuration reading command and terminate the command at that point.)
LWBがメモリ判読又は記録トランザクションを受信する場合(LWBのエンドポイントを介してホストから、又はLWBのルート地点を介してSSDコントローラーから)、LWBはトランザクションを他の相手(適切な場合、ホスト又はSSDコントローラー)に伝達することができる。LWBは、PAPP-EP及び/又はPAPP-RPにあるBARテーブルを使って適切なアドレス変換を遂行することができる。ホストから受信されたトランザクションに対するこのようなアドレス変換の一例は、PAPP-EPが受信されたアドレスからPF BARを引くことができ、PAPP-RPがSSDコントローラーの正しいアドレスに到逹するために、そのアドレスにVF BARを追加することができるというものである。 When the LWB receives a memory read or record transaction (either from the host via the LWB's endpoint or from the SSD controller via the LWB's route point), the LWB transfers the transaction to the other party (the host or SSD, if appropriate). controller). The LWB can use the BAR table 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 a host is that PAPP-EP can subtract the PF BAR from the received address, and PAPP-RP can subtract its PF BAR from the received address to arrive at the correct address of the SSD controller. It is possible to add a VF BAR to an address.
また、本発明の技術的思想の実施形態は、マッピング、帯域幅制御などに使うことができるPAPP-EPとPAPP-RPとの間の選択的中間要素(optional intermediary element)を含むことができる。また、この選択的要素は、さまざまな理由で、帯域幅を可変的に“スロットリング”するのに使うことができる。例えば、LWBのエンドポイントによって露出される他の機能ごとにQoS要求又はSLA(Service Level Agreements)が違うことができる。低帯域幅QoSを有するPFは、もっと高いQoS帯域幅要求を有するPFに対して十分な帯域幅を保障するために、スロットリングされることができる。帯域幅をスロットリングする他の理由は電力又は温度を含むことができる。LWBはPF単位で帯域幅スロットリングを行うのに使われることができるか、ホスト及び/又はBMCのような管理エンティティの構成設定又はポリシー設定に基づいて全てのPFに対する帯域幅スロットリングを行うことができる。温度又は電力スロットリングの決定は上限及び下限の両閾値によることができる。電力使用量又は温度が上限を超えれば、ポリシーに基づいて全てのPF又は選択的PFに帯域幅スロットリングを適用することができる。帯域幅スロットリングは電力又は温度がそれぞれの下限閾値の下に下がるまで適用することができる。 Embodiments of the technical idea of the present invention may also include an optional intermediate element between PAPP-EP and PAPP-RP, which can be used for mapping, bandwidth control, etc. This optional element can also be used to variably "throttle" the bandwidth for various reasons. For example, QoS requirements or SLAs (Service Level Agreements) may be different for different functions exposed by the endpoints of the LWB. PFs with low bandwidth QoS can be throttled to ensure sufficient bandwidth for PFs with higher QoS bandwidth requirements. Other reasons for throttling bandwidth may include power or temperature. LWB can be used to perform bandwidth throttling on a per-PF basis, or for all PFs based on configuration or policy settings of management entities such as hosts and/or BMCs. Can be done. Temperature or power throttling decisions can be based on both upper and lower thresholds. If power usage or temperature exceeds the upper limit, bandwidth throttling can be applied to all PFs or selective PFs based on policy. Bandwidth throttling may be applied until power or temperature falls below the respective lower threshold.
本発明の技術的思想の前記実施形態で、SSDコントローラーのエンドポイントは1個のPF及び15個のVFを提供するものとして説明され、これはLWBのエンドポイントで16個の相異なるPFにマッピングされることができる。このような数は任意的である。SSDコントローラーのエンドポイントは多数のPF及びVFを提供することができ、これはLWBのエンドポイントで16個のPF又はそれより多いか少ないPFにマッピングされることができる。 In the above embodiment of the technical idea of the present invention, the endpoint of the SSD controller is described as providing one PF and 15 VFs, which is mapped to 16 different PFs in the endpoint of the LWB. can be done. Such number is arbitrary. The SSD controller endpoint can provide multiple PFs and VFs, which can be mapped to 16 PFs or more or fewer PFs at the LWB endpoint.
必要な場合、SSDコントローラーのVFは、LWB及び/又はSSDコントローラー内でなされた任意の適切な変更とともに、LWB内で適切にマイグレーションされることができる。よって、LWBのエンドポイントによって露出されたPFからSSDコントローラーによって露出された機能へのマッピングはランタイムの間に修正されることができるので、融通性がある。 If necessary, the SSD controller's VF can be appropriately migrated within the LWB, along with any appropriate changes made within the LWB and/or the SSD controller. Thus, there is flexibility as the mapping from the PFs exposed by the LWB endpoints to the functions exposed by the SSD controller can be modified during runtime.
LWB内部の通信は任意の所望技術を使って遂行することができる。例えば、エンドポイント、PAPP-EP、PAPP-RP及びルートポートの間で交換される情報はTLP(transaction level packet)プロトコルを使うことができる。 Communication within the LWB can be accomplished using any desired technology. For example, the information exchanged between the endpoint, PAPP-EP, PAPP-RP, and root port can use a transaction level packet (TLP) protocol.
デバイス自体はどのフォームファクターにもなることができる。例えば、SSDは、他の可能性の中で、U.2又はFHHL(Full Height、Half Length)フォームファクターを使ってパッケージされることができる。他の類型のデバイスは任意の所望フォームファクターで同様にパッケージされることができる。 The device itself can be of any form factor. For example, SSDs may be used in the U.S., among other possibilities. 2 or FHHL (Full Height, Half Length) form factors. Other types of devices can be similarly packaged in any desired form factor.
本発明の技術的思想の他の実施形態で、多数のSSDコントローラーを含むことができ、それぞれはさまざまな機能を提供する。例えば、各SSDコントローラーは、総8個の機能を提供することができる。LWBのエンドポイントとの間にマルチプレクサー/デマルチプレクサーが結合され得る。このマルチプレクサー/デマルチプレクサーは、特定の露出PFに関連したデータを、最終の実行のために適切なPAPP-EP/PAPPP-RP/RP/ルートポート/SSDコントローラーに伝送することができる。斯くして、単一LWBで、単一SSDコントローラーによって提供可能なものより多い機能を露出させることができる。 Other embodiments of the inventive concept may include multiple SSD controllers, each providing different functionality. For example, each SSD controller can provide a total of eight functions. A multiplexer/demultiplexer may be coupled between the LWB endpoints. This multiplexer/demultiplexer can transmit data related to a particular exposed PF to the appropriate PAPP-EP/PAPPP-RP/RP/Root Port/SSD controller for final execution. Thus, a single LWB can expose more functionality than can be provided by a single SSD controller.
それぞれのSSDコントローラーはLWBの別々のルートポートと通信することができ、それぞれのルートコントローラーは、PAPP-EP、PAPP-RP及び構成変換テーブルを含むそれ自身のスライスを有する。斯くして、一つのSSDコントローラーに関連した作動が、LWBの内部で、他のSSDコントローラーに関連した作動に影響を与えないことができる。 Each SSD controller can communicate with a separate root port of the LWB, and each root controller has its own slice containing the PAPP-EP, PAPP-RP and configuration translation table. In this way, operations associated with one SSD controller may not affect operations associated with other SSD controllers within the LWB.
このような本発明の技術的思想の実施形態は、例えば単一SSDコントローラー上のエンドポイントがホストマシンの全ての要求を満たさない場合に使うことができる。例えば、SSDコントローラーが8個のPCIeレーンのみサポートし、ホストは16個のレーンの帯域幅をサポートすることを望む場合、必要な帯域幅をサポートするために、複数のSSDコントローラーを使うことができる。もしくは、仮にSSDコントローラーが総8個の機能のみサポートし、ホストが16個の機能をサポートすることを希望する場合、必要な機能セットを提供するために複数のSSDコントローラーを使うことができる。すなわち、LWBは、単一多機能PCIe記憶デバイスとして適切な数のPAPP-EP/PAPP-RP/RPスライスを使って多くのSSDコントローラーをホストに連結するのに使うことができる。 Such embodiments of the inventive concept can be used, for example, when endpoints on a single SSD controller do not meet all the requirements of a host machine. For example, if an SSD controller only supports 8 PCIe lanes and the host wants to support 16 lanes of bandwidth, multiple SSD controllers can be used to support the required bandwidth. . Alternatively, if the SSD controller only supports a total of 8 features and the host wishes to support 16 features, multiple SSD controllers can be used to provide the required feature set. That is, the LWB can be used to couple many SSD controllers to a host using an appropriate number of PAPP-EP/PAPP-RP/RP slices as a single multi-function PCIe storage device.
本発明の技術的思想の他の実施形態と同様に、使用された数字は例示的なものであり、限定的なものではない。したがって、LWBのエンドポイントは任意類型のバス、該当バスの任意のバージョン及び該当バスの多くのレーンを使うことができ、LWBのエンドポイントは多くのPFを露出させることができ、それぞれのSSDコントローラーによって露出されるPFの数は変わることができ、内部バス類型、バージョン及び速度はSSDコントローラーに対する連結によって変わることができ(個別的に変わることができ)、LWBに連結されたSSDコントローラーの数は変わることができ(そして、LWBの異なる又は同じ経路地点に連結されることができ)、等々であることができる。 As with other embodiments of the inventive concept, the numbers used are illustrative and not limiting. Therefore, the LWB endpoint can use any type of bus, any version of the corresponding bus, and many lanes of the corresponding bus, and the LWB endpoint can expose many PFs, and each SSD controller The number of PFs exposed by the LWB can be changed, the internal bus type, version and speed can be changed by the connection to the SSD controller (can be changed individually), and the number of SSD controllers connected to the LWB can be changed by the connection to the SSD controller. (and can be coupled to different or the same route points of the LWB), and so on.
図1は本発明の技術的思想の一実施形態によるデバイスのVFを使ってLWB(Lightweight Bridge)によって露出されるPF(Physical Functions)をエミュレートすることができるLWBを含むマシンを示す。また、図1には、ホストと言えるマシン105が示されている。マシン105は、プロセッサ110を含むことができる。プロセッサ110は、任意の多様なプロセッサになることができる。例えば、Intel Xeon、Celeron、Itanium、又はAtomプロセッサ、AMD Opteronプロセッサ、ARMプロセッサなどであり得る。図1はマシン105の単一プロセッサ110を示し、マシン105は多数のプロセッサを含むことができ、それぞれは単一コア又は多重コアプロセッサであり得、任意の所望の組合せで作ることができる。
FIG. 1 shows a machine including an LWB that can emulate physical functions (PF) exposed by a light weight bridge (LWB) using a VF of a device according to an embodiment of the technical idea of the present invention. Also shown in FIG. 1 is a
また、マシン105は、メモリ115を含むことができる。メモリ115は、フラッシュメモリ、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、永続的RAM、FRAM(Persistent Random Access Memory)、FRAM(Ferroelectric Random Access Memory)又はMRAM(Magnetoresistive Random Access Memory)などのNVRAM(Non-Volatile Random Access Memory)のような任意の多様なメモリであり得る。また、メモリ115は、相異なるメモリ類型の任意の所望組合せであり得る。また、マシン105は、メモリ115に対するアクセスを管理するのに使うことができるメモリコントローラー120を含むことができる。
また、マシン105は、SSD(Solid State Drive)125を含むことができる。SSD 125はデータを記憶するのに使うことができ、SSD 125の多様な性能を作動させるために、プロセッサ110(及びそこで実行されるソフトウェア)によって使われる物理機能(PF)及び仮想機能(VF)の全てを露出させることができる。図1はSSD 125を示すが、本発明の技術的思想の実施形態はPF及びVFを提供する任意の類型のデバイスを含むことができる。例えば、データ記憶以外の基本機能を提供するデバイスのように、PF及びVFを提供するハードディスクドライブのような他の類型の記憶デバイスをSSD 125の代わりに使うことができる。本文書の残りの部分で、SSD 125についての任意の言及はPF/VFを提供することができる他の類型のデバイスについての言及を含むものである。本発明の技術的思想の一部実施形態で、SSD 125はPCIe(Peripheral Component Interconnect Express)バスに連結されることができ、PCIe PF及びVFを提供することができるが、本発明の技術的思想の実施形態は他のインターフェースを使うことができる。プロセッサ110は、SSD 125に対するアクセスを支援することができるデバイスドライバー130を実行することができる。
Further, the
SSD 125とマシン105の残り部分との間にはLWB 135が位置することができる。LWBはSSD 125とマシン105の残り部分との間のブリッジとして作用することができ、VFの代わりにPFとしてSSD 125の機能を露出させることができる。
図1はマシン105をサーバー(独立型又はラックサーバーであり得る)として示すが、本発明の技術的思想の実施形態は、限定なしに任意の所望類型のマシン105を含むことができる。例えば、マシン105は、デスクトップ型コンピュータ又はラップトップ型コンピュータ又は本発明の技術的思想の実施形態から利益が得られる任意の他のマシンに代替されることができる。また、マシン105は、特殊携帯用コンピュータマシン、タブレット型コンピュータ、スマートフォン及びその他のコンピュータマシンを含むことができる。また、SSD 125からのデータにアクセスすることができるアプリケーションは、マシン105から離隔されて任意の類型(有線、無線、グローバルなど)の一つ以上のネットワークを横断するネットワーク連結によってマシン105にアクセスすることができる他のマシンに位置し得る。
Although FIG. 1 depicts
図2は図1のマシンの追加詳細事項を示す。図2で、一般に、マシン105は、デバイス105のコンポーネントの作動を編成するのに使うことができるメモリコントローラー120及びクロック205を含むことができる一つ以上のプロセッサ110を含む。また、プロセッサ110は、例としてRAM(random access memory)、ROM(read-only memory)、又は他の状態記憶媒体を含むことができるメモリ115に連結されることができる。また、プロセッサ110は、記憶デバイス125及び例えばイーサネットコネクタ又は無線コネクタであり得るネットワークコネクタ210に連結されることができる。また、プロセッサ110は、バス215に連結されることができ、バス215には、数あるコンポーネントの中でもとりわけ、ユーザーインターフェース220、及びI/Oエンジン225を使って管理することができるI/Oインターフェースポートが付着することができる。
FIG. 2 shows additional details of the machine of FIG. In FIG. 2,
図3は図1のSSDの詳細事項を示す。図3で、SSD 125は、HIL 305、SSDコントローラー310、及び多様なチャネル320-1~320-4に組み込まれることができる多様なフラッシュメモリチップ315-1~315-8(“フラッシュメモリ記憶部”ともいう)を含むことができる。HIL 305は、SSD 125と他のコンポーネント(図1のプロセッサ110及び図1のLWB 135など)との間の通信を管理することができる。また、HIL 305は、SSD 125から離れたデバイス、つまりデバイス105の一部と見なされないが、例えば一つ以上のネットワーク連結によってSSD 125と通信するデバイスとの通信を管理することができる。このような通信は、SSD 125からデータを読み出すための判読要請、SSD 125にデータを書き込むための記録要請、及びSSD 125からデータを削除するための削除要請を含むことができる。HIL 305は、単一ポートのみを介してインターフェースを管理することができるか、又は多数のポートを介してインターフェースを管理することができる。代案として、SSD 125は多数のポートを含むことができ、これらのそれぞれはそのポートにわたってインターフェースを管理するために、個別HIL 305を有することができる。また、本発明の技術的思想の実施形態は可能性を混合することができる(例えば、3個のポートを有するSSDが、一つのポートを管理するための一つのHILと、他の2個のポートを管理するための第2のHILとを有することができる)。
FIG. 3 shows details of the SSD of FIG. In FIG. 3, the
SSDコントローラー310は、フラッシュメモリコントローラー(図3に図示せず)を使ってフラッシュメモリチップ315-1~315-8上でガーベジコレクション及び他の動作とともに判読及び記録動作を管理することができる。SSDコントローラー310は、FTL325、フラッシュコントローラー330及びエンドポイント335を含むことができる。FTLは(図1のホスト105によって使われる)論理ブロックアドレス(logical block address、LBA)を実際にSSD310上にデータが記憶された物理ブロックアドレス(physical block address、PBA)にマッピングすることを管理することができる。FTL325を使うことにより、図1のホスト105は、SSD 125内でデータが一ブロックから他のブロックに移動するとき、報告される必要がない。
フラッシュコントローラー330は、フラッシュチップ315-1~315-8へのデータ記録及びそれからのデータ判読を管理することができる。エンドポイント335は、(図1のホスト105又は図1のLWB 135などの)さらに他のデバイス上のルートポートに連結されることができるSSD 125に対するエンドポイントとして動作することができる。
The
図3はSSD 125が8個のフラッシュメモリチップ315-1~315-8が4個のチャネル320-1~320-4に組み込まれたもののように示されているが、本発明の技術的思想の実施形態は、複数のフラッシュメモリチップが複数のチャネルに組み込まれたものをサポートすることができる。同様に、図3はSSDの構造を示したが、他の記憶デバイス(例えば、ハードディスクドライブ)は類似の潜在的利点を有する異なる構造を使って具現することができる。
Although FIG. 3 shows the
図4a~図4cは本発明の技術的思想の多様な実施形態による図1のLWBを示す。図4aで、LWB 135は、エンドポイント405、APP-EP 410、APP-RP 415及びルートポート420を含むものとして示されている。エンドポイント405は、図1のホスト105のような他のデバイスのルートポートと通信するのに使うことができる。図4aで、エンドポイント405は、16個のPFをアップストリームデバイスに露出させ、アップストリームデバイスと通信するのに使うことができる4個のレーンを有するPCIe3世代インターフェースを使うものとして示されている。よって、図1のホスト105に対するインターフェースは、インターフェース425によって示したように、4個のレーンを有するPCIe3世代インターフェースであり得る。同様に、ルートポート420は、SSD 125のような他のデバイスのエンドポイントと通信することができる。よって、SSD 125に対するインターフェースは、インターフェース430によって示したように、4個のレーンを有するPCIe3世代インターフェースであり得る。図4aで、ルートポート420は、ダウンストリームデバイスと通信するのに使うことができる4個のレーンを有するPCIe3世代インターフェースを使うものとして示されている。図4aで、ルートポート420はSSD 125によって一つのPF及び15個のVFが羅列されたものとして示され、エンドポイント405は16個のPFを露出させるものとして示される。エンドポイント405によって露出された一つのPFはSSD 125によって露出されたそれぞれの機能(物理的又は仮想)に相応する。
4a to 4c illustrate the LWB of FIG. 1 according to various embodiments of the inventive concept. In FIG. 4a,
エンドポイント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(Advanced eXtensible Interface)バスのような他のバスを使って通信することができる。もしくは、エンドポイント405、APP-EP 410、APP-RP 415及びルートポート420は、任意の所望バス/インターフェースを使う独占メッセージング方式を使って通信することができる。また、本発明の技術的思想の実施形態は、エンドポイント405、APP-EP 410、APP-RP 415及びルートポート420の間の他の通信メカニズムを含むことができる。LWB 135の内部通信方式とLWB 135から図1のホスト105又はSSD 125への通信方式との間には関係がないことができる。
APP-RP 415は、構成テーブル435を含むことができる。構成テーブル435は、LWB 135についての構成情報を記憶することができる。このような構成情報の例は、エンドポイント405によって露出されたPFとSSD 125によって提供される(及びルートポート420を介しての羅列によって決定される)PF/VFとの間のマッピングを含むことができる。また、構成テーブル435に記憶された構成情報は、エンドポイント405によって露出された特定のPFに係わり得るQoSポリシー(SLA(Service Level Agreement)とも指称することができる)についての情報を含むことができる。構成管理者440は、構成テーブル435に情報を記憶してLWB 135を構成するのに使うことができる。また、構成管理者440は、SSD 125によって露出された機能についての情報を決定するのに使うことができ、類似の(又は同じ)機能(しかし、PF及びVFよりはPFのみ使う)を提供するようにエンドポイント405をプログラミングすることができる。構成管理者440が行うものの詳細事項はSSD 125によって提供される特定の機能によることができるが(構成管理者440はSSD 125によって提供されるPF及びVFと一致するPFセットを提供するようにエンドポイント405を構成することができるからである)、原則は一般的にSSD 125によって露出された個別PF/VFの構成を決定すること、エンドポイント405によって露出される適切な数のPFを設定すること、及びSSD 125によって露出されたPF/VFの構成と一致するようにこれらのPFを構成することに要約することができる。
APP-
図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(Field Programmable Gate Array)、ASIC(Application-Specific Integrated Circuit)、GPU(Graphics Processing Unit)及びGPGPU(General Purpose GPU)を使ってLWB 135(及び/又はそのコンポーネントを個別的に及び/又は集合的に)具現することができる。
Although FIG. 4a shows APP-
図4a(及び以下の図4b及び図4cでも同様)で、図示した任意の特定の数はただ例示的なものであり、本発明の技術的思想の実施形態は他の数を含むことができる。例えば、ルートポート420はSSD 125から羅列された1個のPF及び15個のVFを有するものとして示されているが、SSD 125は任意の数(0以上)のPF及びVFを露出させることができる(どの露出されたVFも一部PFのハードウェアに依存するが、どの露出されたVFに対してもハードウェアを提供する少なくとも一つの露出されたPFがなければならない)。同様に、エンドポイント405は16個のPFを露出させるものとして示されているが、エンドポイント405は任意の数(0以上)のPFを図1のホスト105に露出させることができる。エンドポイント405はSSD 125と同数の総機能を露出するが、SSD 125によって露出された機能とエンドポイント405によって露出された機能との間には一対一の対応が必要ではないことに留意する。例えば、SSD 125によって露出された一部の機能はエンドポイント405によって露出された対応PFを有しないか、エンドポイント405によって露出された単一PFはSSD 125によって露出された複数の機能(物理的及び/又は仮想)にマッピングされることができる。前者の例として、記録要請は一度に一つのSSDのみに伝達されることができ、これはエンドポイント405によって露出された対応PFがない非選択SSDに対する記録要請を支援する機能を残す。後者の例として、LWB 135が多数のSSDに連結される本発明の技術的思想の実施形態で(図4cに示したように)、たとえガーベジコレクションが遂行されるように要請するために、単一PFのみエンドポイント405によって図1のホスト105に露出されることができるが、図1のホスト105による、ガーベジコレクションを遂行しろという要請はLWB 135に連結された全てのSSDに伝送されることができる。
In FIG. 4a (and similarly in FIGS. 4b and 4c below), any specific numbers illustrated are merely exemplary; embodiments of the inventive concept may include other numbers. . For example, although
同様な方式で、図4aに示した特定製品の任意のバージョンはただ例示的なものであり、本発明の技術的思想の実施形態は他の製品又は他のバージョンの製品を使うことができる。例えば、図4aは4個のレーンがあるPCIe3世代を使用する(インターフェース425を介して)図1のホスト105及び(インターフェース430を介して)SSD 125と通信するLWB 135を示す。本発明の技術的思想の他の実施形態は、他の世代のPCIeバス/インターフェース、又は他の数のレーン、又はAXI(Advanced eXtensible Interface)バスのような他の類型のバスを使うことができる。例えば、図4bはインターフェース425とインターフェース430が4個の代わりに8個のレーンを有するPCIe3世代を使うという点を除き、図4aと同様である。
In a similar manner, any version of the specific product shown in FIG. 4a is merely exemplary, and embodiments of the inventive concept may use other products or other versions of the product. For example, FIG. 4a shows
本発明の技術的思想の一部実施形態で、単一SSD 125では、図1のホスト105のために、十分な機能を提供しないことがある。例えば、図4a及び図4bのSSD 125がただ1個のPFと7個のVFのみ提供し、それによって図1のホスト105が望む特定の機能を提供しなかったら、SSD 125を所望機能を提供する他のデバイスに交替することができる。代案として、LWB 135は、図4cに示したように、複数のデバイスに連結されることができる。
In some embodiments of the present invention, a
図4cで、LWB 135はそれぞれインターフェース430-1及び430-2を介してSSD 125-1及び125-2に連結されるものとして示されている。SSD 125-1及び125-2はそれぞれ1個のPF及び7個のVFを提供するので(ルートポート420-1及び420-2から分かるように)、SSD 125-1及び125-2のいずれも個別的に16個の機能を提供することができない。しかし、SSD 125-1及びSSD 125-2は一緒に16個の機能を提供する。よって、SSD 125-1及び125-2の資源(露出された機能など)を集約(aggregating)することにより、LWB 135は全ての機能を提供する単一SSDなしにも総16個のPFを提供することができる。
In FIG. 4c,
図4cから分かるように、LWB 135はただ一つのエンドポイント405を含み、それぞれ2個の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はまたマルチプレクサー/デマルチプレクサー445を含むことができる。マルチプレクサー/デマルチプレクサー445は、エンドポイント405の特定の露出されたPFに関連した要請を、対応するPF又はVFを提供するSSD 125-1又は125-2に連結される通信経路を持つ適切なAPP-EP 410-1又は410-2にルーティングすることができる。図4a及び図4bは(LWB 135に連結されたSSD 125のみあるので)マルチプレクサー/デマルチプレクサー445を示さないが、LWB 135が一つのSSD 125のみに連結される本発明の技術的思想の実施形態でLWB 135は依然としてマルチプレクサー/デマルチプレクサー445を含むことができる。マルチプレクサー/デマルチプレクサー445は何の機能も追加しないかもしれないが、マルチプレクサー/デマルチプレクサー445を含むことに関連した実際の費用もない(しかし、LWB 135が単一デバイスのみにしか連結することができない場合、マルチプレクサー/デマルチプレクサーを含むことは何の利点もない)。
As can be seen in Figure 4c, the
本発明の技術的思想の実施形態は、ただ露出された機能の他に、資源を集約(aggregate)することができるという点に留意する。例えば、図4cで、インターフェース430-1及び430-2はそれぞれ8個のレーンのPCIe3世代バス/インターフェースを含むことができる。しかし、SSD 125-1及び125-2を並列に使うことができるから(すなわち、SSD 125-1及び125-2の全てが同時に要請を処理することができる)、LWB 135はインターフェース425を介して図1のホスト105に16個のレーンのPCIe3世代バス/インターフェースを提供することができる。同じ方式で、SSD 125-1及び125-2のそれぞれによって提供される帯域幅を集約し、LWBがそれぞれSSD 125-1、125-2によって別に提供される帯域幅の和と同じ帯域幅を通知(advertise)することができる。また、本発明の技術的思想の実施形態は、機能、PCIeレーン又は帯域幅の他の資源を集約することができる。
It is noted that embodiments of the technical idea of the present invention can aggregate resources in addition to just exposed functions. For example, in FIG. 4c, interfaces 430-1 and 430-2 can each include eight lanes of PCIe 3 generation bus/interface. However, since SSDs 125-1 and 125-2 can be used in parallel (i.e., SSDs 125-1 and 125-2 can all process requests at the same time),
図4a及び図4bのように、図4cに示した任意の数字又はバージョンはただ例として使ったものであり、本発明の技術的思想の実施形態は他の数字又はバージョンをサポートすることができる。例えば、SSD 125-1及び125-2は同数の露出された機能(物理的及び/又は仮想)を提供する必要がなく、必ずしも同じ世代又は数のPCIeバス/インターフェースレーンを使わなければならない必要もない。 As in FIGS. 4a and 4b, any number or version shown in FIG. 4c is only used as an example, and embodiments of the technical idea of the present invention may support other numbers or versions. . For example, SSDs 125-1 and 125-2 do not need to provide the same number of exposed functions (physical and/or virtual) or necessarily use the same generation or number of PCIe bus/interface lanes. do not have.
図4a~図4cで、LWB 135はSSD 125と別個に示されている。しかし、本発明の技術的思想の実施形態は、これらの2個のデバイスを単一ユニットに結合することができる。すなわち、SSD 125は、図3のHIL 305の前(又は少なくとも図3のSSDコントローラー310の前)に位置するLWB 135を自分のケース内に含むことができる。本発明の技術的思想の実施形態は単一SSD内にLWB 135を含むものに制限されない。また、図4cに示した具現を達成するために、複数のSSDを含む単一ハウジングがLWB 135を含むことができる。この文書の目的上、“連結された(connected)”という用語又はこれと類似した用語は、任意のハードウェアをデバイスと物理的に共有するからであるか、又はLWB 135がSSD 125と物理的に区別されるから、どのインターフェースを介しての連結のためであるかにかわらわず、LWB 135と通信する任意のデバイスを意味するものである。
In FIGS. 4a-4c,
上述したように、VFを露出させるデバイスの問題点の一つは、露出されたVFにアクセスするために、図1のホスト105がSR-IOVソフトウェアを具現しなければならないことである。このSR-IOVソフトウェアは、デバイスとの通信に遅延を加える。しかし、デバイスのVFに対するアクセスを管理するのに使われるSR-IOVシーケンスは以前に知られているので、SR-IOVシーケンスは状態マシンを使って具現することができ、図1のホスト105がデバイスのVFにアクセスするためにSR-IOVを使わなければならないという負担を軽減することができる。また、状態マシンはハードウェアを使って具現することができるから、図1のホスト105内のSR-IOVソフトウェアの代わりにLWB 135内で状態マシンを使うことは要請処理の遅延を減らすことができる。SR-IOVシーケンスを具現するために、LWB 135内で状態マシンを使えば、ホストからデバイスまでSR-IOVプロトコルの全ての負担が根本的になくなり(offload)遮断される。言い替えれば、図1のホスト105は、図1のホスト105が通信するデバイス内にSR-IOVの何らかの具現が存在しても、それを知ることができなくてもよい。
As mentioned above, one of the problems with devices that expose VFs is that the
図5は図4a~図4cの構成管理者440の詳細事項を示す。構成管理者440は、SR-IOV(Single Root Input/Output Virtualization)シーケンス505及び状態マシン510を含むことができる。SR-IOVシーケンス505は図1のホスト105内のSR-IOVソフトウェアで具現されるシーケンスであり得、状態マシン510を使って遂行することができる。SR-IOVシーケンス505は、構成管理者440内のROM(Read-only memory)に記憶されることができる。状態マシン510は、LWB 135自体、及び図4a~図4cに示したそのコンポーネントと一緒に、他の可能性の中で、汎用プロセッサ、FPGA、ASIC、GPU又はGPGPUを使って具現することができる。
FIG. 5 shows details of the
図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との間のマッピングを示すことができる。図4a~図4cの構成管理者440はPF 605のどのPFがPF/VF 610のどのPF/VFにマッピングされるかを決定するために任意の所望メカニズムを使うことができるが、図6に示したマッピングは説明のためのものであり、根本的に任意的である。マッピングは、図1のホスト105(又は図1のホスト105内のBMC(BaseBoard Management Controller))又は図1のSSD 125によって設定された案内(guidance)及び/又はポリシーを考慮して具現することができる。
FIG. 6 shows the mapping between the PF exposed by
図7は図1のホスト105からの構成記録要請をプロセッシングする図1のLWB 135を示す。図7で、図1のLWB 135(より具体的に、エンドポイント405)は構成記録要請705を受信することができる。そして、エンドポイント405は構成記録要請705をローカルで処理し、構成記録要請705に含まれた全ての変更を遂行することができる。
FIG. 7 illustrates
構成記録要請705はSSD 125に対する変更を要求しないことができることに留意する。例えば、図1のホスト105によって設定されたQoSポリシーはエンドポイント405によって露出されたPFのみに影響を与えることができ、SSD 125内で何の変更も要求しない。しかし、一部状況で構成記録要請705はSSD 125の修正を要求することができる。例えば、構成記録要請は図1のLWB 135によってのみ管理可能なデータではなく、SSD 125の基本機能についてのデータを変更することができる。その状況で、エンドポイント705はルートポート420を介して(点線矢印710及び715で示したように)構成記録要請705をSSD 125に伝達することができる。構成記録要請705は、図4a~図4cのAPP-EP 410及び図4a~図4cのAPP-RP 415を介して、又は図4a~図4cの構成管理者440を介してルートポート420に伝達されることができる。図4a及び図4bの構成テーブル435は、構成記録要請705がSSD 125にも適用(apply)されなければならないかを決定するのに使うことができる(エンドポイント405とSSD 125の構成が互いにミラーリングされることを保障するため)。
Note that
図4a~図4cのように、エンドポイント405(及び場合によってはSSD 125)がどのように構成できるかについての詳細事項は構成記録要請705の詳細事項に大きく依存する。しかし、構成記録要請705の詳細事項が一度知られれば、エンドポイント405(及び場合によってはSSD 125)に対する変更は簡単に遂行することができる。
As in FIGS. 4a-4c, the details of how endpoint 405 (and possibly SSD 125) can be configured are highly dependent on the details of
上述したように、エンドポイント405とSSD 125の構成は互いにミラーリングすることが好ましい。しかし、前述したように、エンドポイント405のみに適用される(又はエンドポイント405がこのような変更を処理することができるからSSD 125には重要ではない)一部の構成があり得る。構成変更がSSD 125に重要ではない場合、このような構成変更がSSD 125に伝達される必要はない。
As mentioned above, the configurations of
図7で、構成記録要請705は図1のホスト105から始まるものとして説明される。しかし、本発明の技術的思想の実施形態は、図4a~図4cのエンドポイント405の構成変更をSSD 125が要請することをサポートすることができる。すなわち、図1のSSD 125は、ランタイムの間に図4a~図4cのエンドポイント405によって露出されたPFの構成、特徴又は能力に対する変更を図1のホスト105に動的に要請することができる。例えば、図1のSSD 125は、図4a~図4cのエンドポイント405によって露出されたPFに対する多数のインタラプトベクターを増加又は減少させることができる。このような変更は、NVMe(Non-Volatile Memory Express)のような上位水準の記憶通信プロトコル(storage communication protocol)を使って図1のホスト105によって(図1のLWB 135を介して)図1のSSD 125に通信されるアプリケーション要求事項の変更に起因することができる。
In FIG. 7,
図8は図1のホスト105から構成判読要請をプロセッシングする図1のLWB 135を示す。図8で、エンドポイント405は、図1のホスト105から構成判読要請805を受信することができる。エンドポイント405は、要請された構成情報を読み出し、これを構成情報810として図1のホスト105にリターンすることができる。
FIG. 8 illustrates the
図7の構成記録要請705のように、構成判読要請805は、SSD 125から判読されるように、SSD 125に伝達されることができる。よって、構成判読要請805は構成判読要請815及び820としてルートポート420及びSSD 125にそれぞれ伝達されることができ、構成情報825及び830として構成情報810がリターンされる。しかし、エンドポイント405の構成がSSD 125の構成をミラーリングしているはずであるので、要請された構成情報を決定するために構成判読要請805をSSD 125に伝達する必要がないことがあり得る。また、図7の構成記録要請705のように、構成判読要請805は、図4a~図4cのAPP-EP 410及び図4a~図4cのAPP-RP 415を介して、又は図4a~図4cの構成管理者440を介してルートポート420に伝達されることができる。
Like the
図9は、LWB 135内でアドレス(図中では住所と記す)変換を処理する図4a~図4cのAPP-EP(Application Layer-End point)410及び図4a~図4cのAPP-RP(Application Layer-Root Port)415を示す。図9で、アドレス905は図1のホスト105から受信されたアドレスであり得る(例えば、図1のホスト105が判読を要請するNVMeレジスター)。そして、APP-EP 410は、図1のホスト105によって適用(invoke)されるPFに対するホストBAR(Base address register)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 shows the APP-EP (Application Layer-End point) 410 of FIGS. 4a-4c and the APP-RP (Application Layer-End point) of FIGS. Layer-Root Port) 415. In FIG. 9,
SSDアドレスをホストの観点でのアドレスにさらに変換するために、このようなプロセスは反対に使うことができるという点を留意しなければならない。よって、APP-RP 415はSSDアドレス920からSSD BAR 915を引くことができ、APP-EP 410はホストBAR 910を加えることにより、ホストアドレス905を生成することができる。
It should be noted that such a process can be used in reverse to further convert the SSD address into an address from the host's perspective. Thus, APP-
図10は図1のLWB 135内で変更される図6のマッピングを示す。マッピング615が変更可能な理由はさまざまのものがある。例えば、記憶(ストレージ)パラメーター1005は、マッピング615に対する変更をトリガーすることができる。例えば、特定のSSD上の可用容量が空き空間の閾容量を下回ると、新しい記録要請は、図4cのSSD 125-2のように、図1のLWB 135に連結された他のSSDに伝送されることができる。代案として、日付1010又は日付の時間1015は、マッピング615に対する変更をトリガーすることができる。例えば、特定のホスト105で特定の要請に対するピーク時間は午前6:30と午前8:00との間、午後5:00と午後9:00との間であり得るので、このような要請を処理するPFに関連した帯域幅は該当時間の間に増加し、他の時間には減少することができる。日付1010及び日付の時間1015は、既存の又は公知の日付/時間値を使って特定しなくても、日付及び/又は時間に関連した任意のトリガーで一般化することができる。例えば、たとえそのような要請が始まる特定の時間は分からないが(スポーツイベント期間はおよそ知られているが、イベント自体によってより縮まるかより延びることができる)、スポーツ競技が終わるときに家に移動するファンはスマートフォンのGPSアプリケーションで道案内を要請することができる。帯域幅使用1020自体も、例えば、図1のLWB 135に連結されたSSDにかけたロードの均衡を維持するために、マッピング615に対する変更をトリガーすることができる。最後に、QoSポリシー(図中では政策と記す)の変更1025はマッピング615の変更をトリガーすることができる。例えば、新しいQoSポリシーの追加は機能マッピング方法の変更を要求することができる。また、本発明の技術的思想の実施形態は、マッピング615の変更のために他のトリガーを含むことができる。トリガーにかかわらず、変更の結果として、マッピング615はマッピング1030に代替されることができ、これは依然として図4a~図4cのエンドポイント405によって露出されたPFを図1のSSD 125によって露出されたPF/VFにマッピングするが、たぶん他の配列にてマッピングする。
FIG. 10 shows the mapping of FIG. 6 modified within
図11は関連付けられたQoS(Quality of Service)ポリシーを有する図1のLWBによって露出されたPFを示す。図11で、(図4a~図4cのエンドポイント405によって露出された)一つのPFが、露出されたPFに関連した単一QoSポリシー1105と一緒に示されている。しかし、本発明の技術的思想の実施形態は、任意の数の関連QoSポリシーを有する露出されたPFを含むことができる。例えば、図4a~図4cのエンドポイント405によって露出された一部PFは関連QoSポリシーを有しないこともある。図4a~図4cのエンドポイント405によって露出された他のPFは二つ以上の関連QoSポリシーを有することができる。
FIG. 11 shows a PF exposed by the LWB of FIG. 1 with an associated quality of service (QoS) policy. In FIG. 11, one PF (exposed by
図4a~図4cのエンドポイント405によって露出されたPFに関連したQoSポリシー1105が与えられれば、図1のLWB 135は、その仕様によって、そのQoSポリシーを施行することができる。言い換えれば、仕様が大きく違うことがあるので、図1のLWB 135がどのように特定のQoSポリシーを施行するかについての詳細事項はここで言及しないこともできる。しかし、例として、QoSポリシー1105は、特定のPFに対する最大(及び/又は最小)帯域幅を指定することができる(したがって、他のPFが帯域幅の公平な分配を受けることを特定のPFが妨げないように保障するか、特定のPFが指定の帯域幅を割り当てられるように保障する)。そして、図1のSSD 125上の対応するPF/VFを使う通信が最大帯域幅を超えることを防止することにより、又はPFに対応するPF/VF以外の図1のSSD 125上のPF/VFを使う通信が露出されたPFに対する最小帯域幅を確保することを保障することにより、図1のLWB 135はQoSポリシー1105が満たされるように保障することができる。
Given the
図1のLWB 135はQoSポリシー1105を施行することができるが、ポリシーが適切であるかを確認することは、図1のホスト105(又は図1のSSD 125がポリシーの適用を要請する場合、図1のSSD 125)による。例えば、図1のSSD 125の最大帯域幅が100Gb/秒であり、総16個の機能(PF及びVF)がサポートされると仮定する。ホストがLWB 135によって露出された各PFに最小10GB/秒の帯域幅を保障するQoSポリシーを割り当てる場合、割り当てられた総帯域幅は160GB/秒であり、これは図1のSSD 125の能力を超える。その結果、一部のPFは関連QoSポリシーを満たすことができない。よって、図1のLWB 135がQoSポリシー1105を施行するうち、LWB 135は多様なPFに割り当てられた他のQoSポリシーと組み合わせ、QoSポリシー1105が全て同時に施行できるかを検査しないことができる。
Although the
したがって、QoSポリシーを施行することとQoSポリシーをいつも施行することができるようにすることには違いがある。図1のLWB 135は前者を行い、後者を行わないことができる。しかし、ただ一連のQoSポリシーを同時に施行することができないというだけで、何の個別QoSポリシーも満たされないときが来るという意味ではない。例えば、図1のSSD 125が総10GB/秒の帯域幅を提供することを再び検討し、図1のホスト105が、図4a~図4cのエンドポイント405によって露出された2個の相異なるPFに対して、各PFに6GB/秒の最小帯域幅を保障するQoSポリシーを指定すると仮定する。それぞれのPFに図1のSSD 125の利用可能な10GB/秒の帯域幅のうち6GB/秒が“確保”されるから、集合的に、両QoSポリシーを満たすことはできない。しかし、両機能を同時に呼び出すことが論理的に(又は物理的に)不可能であることが分かっていれば(例えば、一つの機能は図1のSSD 125でデータを判読するか図1のSSD 125にデータを記録することに関連し、他の機能は図1のSSD 125が一貫性確認完了まで他の機能に応答することができないようにする内部一貫性確認を図1のSSD 125が実行することを含む場合)、図1のホスト105は両QoSポリシーを共に指定することができる。たとえ、図1のSSD 125で提供する帯域幅を累積して超えても、両ポリシーが同時に施行されることはなく、よって実際の(又はより正確に言えば潜在的な)衝突ではなくて論理的衝突があるのみである。
Therefore, there is a difference between enforcing a QoS policy and allowing a QoS policy to be enforced at all times.
上述したように、図1のLWB 135は時々、例えば、図4a~図4cのエンドポイント405によって露出された特定のPFが、図1のSSD 125の他の機能が過度に制限されるほど多くの帯域幅を使うことを防止するために、帯域幅スロットリングを遂行する必要があり得る。図12a及び図12bは帯域幅スロットリング(bandwidth throttling)を行う図1のLWB 135を示す。図12aで、LWB 135は図1のホスト105から“高い”又は“大きい”帯域幅1205を受信するものとして示されている。この帯域幅がどの理由でもあまりにも大きい場合、LWB 135は“低い”又は“小さい”帯域幅1210として示したように、図1のSSD 125に対する帯域幅をスロットルすることができる。図12bには、反対の状況を示す。LWB 135は図1のSSD 125との“高い”又は“大きい”帯域幅1215を有することができるが、図1のホスト105との帯域幅1220をスロットリングすることができる。よって、図1のSSD 125の可用帯域幅がPFに対して設定されたSLAの最大帯域幅より高い場合、LWB 135は帯域幅をスロットリングすることができる。
As discussed above, the
本発明の技術的思想の実施形態は、さまざまな理由で帯域幅スロットリングを遂行することができる。(図4a~図4cのエンドポイント405によって露出された特定のPFに関連した帯域幅を、そのPFに対する帯域幅があまりにも大きい場合にスロットリングすることができる)図11のQoSポリシー1105とは別に、帯域幅スロットリングの他の理由は温度又は電力消費を含むことができる。例えば、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 various reasons. (The bandwidth associated with a particular PF exposed by the
帯域幅をスロットリングするさらに他の理由は、QoS又はSLAを管理するためであり得る。例えば、図1のホスト105は、LWB 135が提供することができるものより低いレベルの帯域幅に対してのみ費用を支払っていることがあり得る。よって、図1のホスト105とLWB 135がもっと高い全体帯域幅を使って通信することはできるが、LWB 135は、提供されるサービスが図1のホスト105に保障されたものより大きくならないように、図1のホスト105に対する帯域幅を制限することができる。言い換えれば、LWB 135は、SLA又は価格計画に基づいてPFに対する最大記憶帯域幅を制限するか限度を決定することができる。
Yet another reason to throttle bandwidth may be to manage QoS or SLA. For example, host 105 in FIG. 1 may only be paying for a lower level of bandwidth than
図12a及び図12bは帯域幅について具体的に説明するが、他の資源は図1のホスト105又は図1のSSD 125との通信のために同様にモニタリングされ、スロットリングされることができることに留意しなければならない。例えば、遅延をある程度制御して、高いターゲット遅延のPFより低いターゲット遅延のPFを有利にさせることができる。
Although FIGS. 12a and 12b specifically discuss bandwidth, it is understood that other resources can be similarly monitored and throttled for communication with the
LWB 135は、図4a~図4cのエンドポイント405によって個別的に露出されたそれぞれのPFによって消費された帯域幅(又は他の資源)を測定及びモニタリングすることができる。帯域幅は、両方向に、つまりホストからデバイスに(ホスト記録動作)及びデバイスからホストに(ホスト判読動作)測定及びモニタリングすることができる。また、帯域幅スロットリングは独立的にいずれか一方向に遂行することができる。帯域幅(又は他の資源)スロットリングは測定された帯域幅及びQoSポリシー設定の両者の結果として遂行することができる。
図13は図1のSSD 125にクレジットを発行する図1のLWB 135を示す。クレジットは、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 LWB 135 of FIG. 1 issuing credits to
クレジット1305は任意の所望方式で発行することができる。本発明の技術的思想の一部の実施形態で、LWB 135は、例えば独占メッセージであり得るメッセージを介してクレジット1305をSSD 125に伝送することができる。本発明の技術的思想の他の実施形態で、LWB 135は、クレジット1305をSSD 125上の特定アドレス、例えばNVMeアドレス空間の予約されたアドレスに記録することができる。本発明の技術的思想のさらに他の実施形態で、LWB 135は、クレジット1305をLWB 135内のアドレス(再び、たぶん予約されたアドレス)に記録することができる。そして、SSD 125は、どのクレジット1305が利用可能であるかを知るためにアドレスを判読することができる。クレジット1305の使用はSSD 125の帯域幅をスロットリングする一つの方法である。SSD 125に発行されるクレジット1305の数を制限することにより、SSD 125は与えられた時間単位内で特定の取引に必要な全てのデータをダウンロードすることを防止することができる。SSD 125の帯域幅を減少させることにより、SSD 125は減少した電力消費及び/又はもっと低い温度を受けることができる。結局、電力消費及び/又は温度が許容可能な水準に落ちれば(図12を参照して前述したように、帯域幅スロットリングが始まることができるレベルと違うことができる)、LWB 135はSSD 125の帯域幅スロットリングを中断することができる。
他の実施形態で、LWB 135は、帯域幅スロットリングを達成するために、データ伝送パケットの間に遊休期間を挿入することができる。測定された帯域幅(又は他の資源)及びQoSポリシー設定に基づいてデータパケットのパケット間隔を調整することにより、LWB 135は個別PFに対して帯域幅制限を達成するか、又は全てのPFに対して集合的に達成することができる。
In other embodiments,
図14a及び図14bは、本発明の技術的思想の一実施形態によって、図1のLWBが図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)があるかを確認することができる。仮に、そうであれば、プロセスは次のデバイスのPF及びVFを羅列するために、ブロック1405に復帰することができる。
14a and 14b show that the LWB of FIG. 1 identifies the PF/VF exposed by the
連結された全てのデバイスが羅列されたと仮定すれば、ブロック1420(図14a)で、図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. 14a), the
ブロック1435で、図1のLWB 135は、図1のホスト105から羅列要請(enumeration request)を受信することができる。ブロック1440で、図1のLWB 135は、図4a~図4cのエンドポイント405のPFを露出させることにより、図1のホスト105の羅列要請に応答することができる。
At block 1435,
図15a及び図15bは、図1のLWBが図1のホストから処理要請を受信する例示的な過程のフローチャートを示す。図15で、ブロック1505で、図1のLWB 135は、図1のホスト105から図4a~図4cのエンドポイント405によって露出された何らかのPFでの要請を受信することができる。要請がどのPFに向かい、そのPFがどの機能を示すかは分析とは関連がない。ブロック1510で、図1のLWB 135は、要請が向かうPFを図1のSSD 125のPF又はVFにマッピングすることができる(例えば、図4a~図4cの構成テーブル435を使ってマッピングを遂行することができる)。ブロック1515で、LWB 135は、図4a~図4cのエンドポイント405によって露出されたPFにマッピングされるPF又はVFを含むデバイスとして図1のSSD 125を選択することができる。ブロック1515は、図1のLWB 135が図4cに示したように複数のデバイスに連結された場合にのみ問題となることができる。仮に、複数のデバイスがあれば、図4cの複数のAPP-EP 410-1及び410-2が要請を受信することができる。ただ一つのデバイスが図1のLWB 135に連結されることができる本発明の技術的思想の実施形態で(LWB 135が図4a及び図4bの一つのAPP-EP 410のみ含むか、図1のただ一つのSSD 125が図1のLWB 135に連結されているから)、ブロック1515は点線1520で示したように省略することができる。
15a and 15b show a flowchart of an exemplary process for the LWB of FIG. 1 to receive a processing request from the host of FIG. 1. In FIG. 15, at
適切なデバイス及び適切な目的地PF/VFが識別されれば、ブロック1525で、図1のLWB 135は要請を識別されたPF/VFに対する要請に変換することができる。これは、例えば図9を参照して前述したようなアドレス変換を含むことができる(及び図16を参照して後述する)。ブロック1530(図15b)で、図1のLWB 135は変換された要請を識別されたデバイスの識別されたPF/VFに伝送することができる。
Once the appropriate device and destination PF/VF are identified, at
ブロック1535で、図1のLWB 135は、識別されたデバイスの識別されたPF/VFから応答を受信することができる。ブロック1540で、図1のLWB 135は、識別されたデバイスのPF/VFを図4a~図4cのエンドポイント405によって露出されたPFにマッピングすることができる(例えば、図4a~図4cの構成テーブル435を使ってマッピングを遂行することができる)。ブロック1545で、図1のLWB 135は応答を図1のホスト105に対する応答に変換することができる。最後に、ブロック1550で、図1のLWB 135は、図4a~図4cのエンドポイント405の露出されたPFからのように応答をホストにさらに伝送することができる。
At
図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はブロック1605で決定されたアドレスにデバイスBARを追加することができる。
FIG. 16 shows a flowchart of an exemplary process for the APP-EP and APP-RP of FIGS. 4a-4c to translate addresses between the
逆アドレス変換、つまり図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-EP 410がそのアドレスにホストBARを追加することで、アドレス変換を逆に遂行することができる。
Note that the reverse address translation, ie, from the
図17は図1のLWBが図1のSSD 125にクレジット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からデータを伝送するために、このようなクレジットを使うことができる。このような点で、図1のSSD 125に図13のクレジット1305を伝達するための多数のオプションが存在する。ブロック1715で、図1のLWB 135は、図13のクレジット1305を図1のSSD 125のアドレスに記録することができる。代案として、ブロック1720で、LWB 135は図13のクレジット1305を図1のLWB 135のアドレスに記録することができ、図1のSSD 125は図1のLWB 135のそのアドレスから図13のクレジット1305を判読することができる。代案として、ブロック1725で、図1のLWB 135は、図1のSSD 125にメッセージを伝送することができる。メッセージは図13のクレジット1305を含むことができる。
FIG. 17 shows a flowchart of an exemplary process for the LWB of FIG. 1 to issue
図18は図1のLWB 135が構成記録要請705を処理する例示的な過程のフローチャートを示す。図18で、ブロック1805で、図1のLWB 135は図7の構成記録要請705を受信することができる。図7の構成記録要請705は図1のホスト105又は図1のSSD 125から受信されることができる。ブロック1810で、図1のLWB 135(より具体的に、図4a~図4cの構成管理者440)は、図4a~図4cのエンドポイント405によって露出されたPFを図7の構成記録要請705によって特定されるもののように構成することができる。ブロック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に伝送される必要がないことがあるから、ブロック1820は、点線1825で示したように、選択的(optional)である。
FIG. 18 depicts a flowchart of an exemplary process by which
図19は図1のLWB 135が構成判読要請805を処理する例示的な過程のフローチャートを示す。図19は図1のLWB 135が構成判読要請805を処理する例示的な過程のフローチャートを示す。図19で、ブロック1905で、図1のLWB 135は図8の構成判読要請805を受信することができる。図8の構成判読要請805は図1のホスト105又は図1のSSD 125から受信することができる(しかし、一般的に図8の構成判読要請805は図1のホスト105から受信することができる)。ここで、いくつかの代案がある。ブロック1910で、図1のLWB 135(より具体的に、図4a~図4cの構成管理者440)は図4a~図4cのエンドポイント405によって露出されたPFの構成を決定することができる。ブロック1910が使われる本発明の技術的思想の実施形態で、図1のSSD 125によって露出されたPFの構成は図4a~図4cのエンドポイント405によって露出されたPFの構成を反映しているはずであるので、露出されたPF/VF構成に対して図1のSSD 125を問い合わせる必要がないことがあり得る(図1のSSD 125にその露出されたPF/VFの構成に関して問い合わせることもできるが)。代案として、ブロック1915で、図1のLWB 135は、図8の点線矢印815、820で示したように、図1のSSD 125に図8の構成判読要請805を伝達することができ、応答として図8の構成情報810を受信することができる(図8の点線矢印825及び830で示す)。どちらにしても、ブロック1920で、図1のLWB 135は要請者(requestor)に図8の構成情報810をリターンすることができる。
FIG. 19 depicts a flowchart of an exemplary process by which
図20は図1のLWB 135がQoSポリシー1105を図1のLWB 135によって露出されたPFと関連させる例示的な過程のフローチャートを示す。図20で、ブロック2005で、図1のLWB 135は図1のホスト105又は図1のSSD 125であり得るソースから図11のQoSポリシー1105を受信することができる。そして、ブロック2010で、図1のLWB 135は、ポリシーを図4a~図4cのエンドポイント405によって露出される識別されたPFと連関させることができ、適切にポリシーを具現することができる。
FIG. 20 shows a flowchart of an exemplary process by which
図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/VF 610との間の図6のマッピング615を動的に変更することができる。
FIG. 21 is a flowchart of an exemplary process in which the
図22a及び図22bは図1のLWBが帯域幅スロットリングを行う例示的な過程のフローチャートを示す。図22aで、ブロック2205で、図1のLWB 135は、図11のQoSポリシー1105、図1のLWB 135、又は図1のSSD 125の温度又は電力消費によって決定することができる。ブロック2210で、図1のLWB 135は、帯域幅スロットリングが適用可能であるかを、例えば図1のLWB 135又は図1のSSD 125の温度又は電力消費を図1のLWB 135に記憶された閾値と比較することにより、決定することができる。
22a and 22b show a flowchart of an exemplary process by which the LWB of FIG. 1 performs bandwidth throttling. In FIG. 22a, at
帯域幅スロットリングが適用可能な場合、ブロック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のSSD 125の温度若しくは電力消費を決定することができる。ブロック2225で、図1のLWB 135は、図11のQoSポリシー1105、図1のLWB 135若しくは図1のSSD 125の新しい温度若しくは電力消費が、帯域幅スロットリングがそれ以上必要ではない水準に到逹したかを決定することができる。仮に、帯域幅スロットリングが依然として適用可能であれば、制御は、帯域幅スロットリングを終了することができる変更が発生したかを再び点検するために、ブロック2220に復帰することができる。そうでなければ、ブロック2230で、図1のLWB 135は帯域幅スロットリングを中止することができる。
If bandwidth throttling is applicable, at
図14a~図22bには本発明の一部の実施形態が示されている。しかし、当該技術分野の通常の技術者は、ブロック順の変更、ブロックの省略又は図面に示していないリンクを含ませることにより本発明のさらに他の実施形態も可能であることを認識することができるであろう。フローチャートのこのような全ての変形は明示的に説明されたかにかかわらず、本発明の実施形態のものと見なす。 Some embodiments of the invention are shown in Figures 14a-22b. However, one of ordinary skill in the art will appreciate that still other embodiments of the invention are possible by changing the order of the blocks, omitting blocks, or including links not shown in the drawings. It will be possible. All such variations of the flowcharts, whether explicitly described or not, are considered embodiments of the invention.
本発明の技術的思想の一実施形態は、既存の具現を超える技術的利点を含む。LWBはPFをホストマシンに露出させることができる。これは、ホストマシンがSSDのようなデバイスのVFにアクセスするためにSR-LOV(Single Root Input/Output Virtualization)ソフトウェアを実行する必要をなくす。また、LWBが別個のデバイスであり得、前記デバイスは複数のPFをサポートするための特定のハードウェアを必要としないから、前記デバイスは必ずしもハードウェアを修正しなければならないものでもない。事実上、たとえ単一ハウジングがLWBとデバイスの両者を含むとしても、そして、たとえLWBとデバイスが共有PCB上に実装されるとしても、LWBを含めることはデバイスに対して何のハードウェア変化も必要としないことができ、よって、複数のPFをサポートするためのハードウェアを含めるというよりは、VFを続けて提供するように、既存のSSDs(及び他のデバイス)がLWB及び未来のSSD(及び他のデバイス)とともに使われることを許容する(前記デバイスは、例えばデータ伝送を管理するためにクレジットの使用をサポートするために、ファームウエアアップデートを必要とし得るが、そのようなアップデートは既存のデバイス領域でも容易に遂行することができる)。追加として、LWBは複数のデバイスの資源を集めることができるから(aggregate)、LWBはどの個別デバイスが提供するものより良い全体パフォーマンスを提供することができる。 One embodiment of the technical idea of the present invention includes technical advantages over existing implementations. LWB can expose the PF to the host machine. This eliminates the need for the host machine to run SR-LOV (Single Root Input/Output Virtualization) software to access the VF of a device such as an SSD. The device also does not necessarily require hardware modification, since the LWB may be a separate device and the device does not require specific hardware to support multiple PFs. In effect, the inclusion of the LWB makes no hardware changes to the device, even if a single housing contains both the LWB and the device, and even if the LWB and device are implemented on a shared PCB. Existing SSDs (and other devices) can be integrated into LWB and future SSDs ( and other devices) (such devices may require firmware updates, e.g. to support the use of credits to manage data transmission, but such updates may (This can be easily accomplished in the device domain as well.) Additionally, because the LWB can aggregate the resources of multiple devices, the LWB can provide better overall performance than any individual device provides.
以下の論議は開示の特定様相を具現することができる適切なマシン又はマシンらについての手短で一般的な説明を提供するためのものである。マシン又はマシンらは、キーボード、マウスなどの従来の入力デバイスの入力だけではなく、他のマシンから受信された命令、バーチャルリアリティー(VR)環境との相互作用、生体測定のフィードバック、又は他の入力信号によって少なくとも部分的に制御することができる。ここで使われるとき、“マシン”という用語は、単一マシン、仮想マシン(virtual machine)、又は通信可能に連結されたマシンのシステム、仮想マシンら、又は一緒に作動するデバイスらを網羅する。例示的なマシンは、PC、ワークステーション、サーバー、携帯用コンピュータ、携帯用端末機(handheld devices)、電話機、タブレットなどだけではなく、例えば自動車、汽車、タクシーなどの個人又は大衆交通のような輸送デバイスを含む。 The following discussion is intended to provide a brief, general description of a suitable machine or machines capable of embodying certain aspects of the disclosure. The machine or machines can receive input from traditional input devices such as a keyboard, mouse, etc., as well as commands received from other machines, interaction with a virtual reality (VR) environment, biometric feedback, or other input. It can be controlled at least in part by a signal. As used herein, the term "machine" encompasses a single machine, a virtual machine, or a system of communicatively coupled machines, virtual machines, or devices operating together. Exemplary machines include PCs, workstations, servers, portable computers, handheld devices, telephones, tablets, etc., as well as personal or mass transportation vehicles such as cars, trains, taxis, etc. Including devices.
マシン又はマシンらは、プログラミング可能、又はプログラミング不可の論理デバイス又はアレイ、ASICs(Application Specific Integrated Circuits)、組込型コンピュータ、スマートカードなどの組込型コントローラーを含むことができる。前記マシン又はマシンらは、複数の遠隔マシンとして、例えばネットワークインターフェース、モデム、又は他の通信可能なカップリングを介しての一つ以上の接続を活用することができる。マシンは、イントラネット、インターネット、近距離通信網(local area networks)、広域通信網(wide area networks)などの物理的及び/又は論理的ネットワークの方式で互いに連結することができる。当該技術分野の通常の技術者は、ネットワーク通信が無線周波数(radio frequency)、衛星、マイクロ波、IEEE 802.11、ブルートゥース(登録商標)、可視光線、赤外線、ケーブル、レーザーなどを含む多様な有線及び/又は無線の短距離又は長距離搬送波及びプロトコルを活用することができるということを理解することができるであろう。 The machines or machines may include programmable or non-programmable logic devices or arrays, application specific integrated circuits (ASICs), embedded computers, embedded controllers such as smart cards. The machine or machines may utilize one or more connections as a plurality of remote machines, for example via a network interface, modem, or other communicative coupling. Machines may be coupled together in the form of physical and/or logical networks such as intranets, the Internet, local area networks, wide area networks, and the like. Those of ordinary skill in the art will appreciate that network communications can be implemented in a variety of wired formats, including radio frequency, satellite, microwave, IEEE 802.11, Bluetooth, visible light, infrared, cable, laser, etc. It will be appreciated that and/or wireless short-range or long-range carriers and protocols may be utilized.
本発明の実施形態は、マシンによってアクセスされるとき、結果として引き起こされる機械遂行作業又は機械が定義する抽象データ類型又は低水準のハードウェアコンテクストである、ファンクション、プロシージャ、データ構造、アプリケーションプログラムなどを含む関連データを参照するか、それにつなげて説明することができる。例えば、関連データは、例えばRAM、ROMなどの揮発性及び/又は非揮発性メモリ、又はハードドライブ、フロッピーディスク(登録商標)、光記録装置、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生体測定ストレージなどを含む他の記憶デバイスとそれに関連した記憶媒体に記憶されることができる。関連データは、パケット、シリアルデータ、並列データ、電波シグナルなどの形態として物理的及び/又はローカルネットワークを含む伝達環境(transmission environments)に引導されることができ、圧縮又は暗号化フォーマットで使うことができる。関連データは分散環境(distributed environment)に使うことができ、マシンアクセスに近くに及び/又は遠隔で記憶することができる。 Embodiments of the invention describe functions, procedures, data structures, application programs, etc. that, when accessed by a machine, result in machine-performed work or machine-defined abstract data types or low-level hardware contexts. You can refer to or explain related data that it contains. For example, the relevant data can be stored in volatile and/or non-volatile memories such as RAM, ROM, or hard drives, floppy disks, optical recording devices, tapes, flash memory, memory sticks, digital video discs, biological It may be stored in other storage devices and associated storage media, including measurement storage and the like. The relevant data can be introduced into transmission environments, including physical and/or local networks, in the form of packets, serial data, parallel data, radio signals, etc., and can be used in compressed or encrypted formats. can. Related data can be used in a distributed environment and can be stored close to machine access and/or remotely.
本発明の実施形態は、一つ以上のプロセッサによって遂行可能な命令語を含む類型の非一時的(non-transitory)マシン判読可能媒体を含むことができる。前記命令語はここで説明する要素を遂行するための命令を含む。 Embodiments of the invention may include non-transitory machine-readable media of the type that include instructions executable by one or more processors. The instruction words include instructions for performing the elements described herein.
開示の原理を敍述した実施形態を参照して説明したが、説明した実施形態はそのような原理から逸脱しない範囲内で配列及び詳細内容に対する修正が可能であり、どの所望の方法とも組合せることができることを認識することができる。そして、前述した論議は特定の実施形態に焦点を合わせたが、他の構成も考慮することができる。特に、“本発明の実施形態によって”のような表現をたとえここで使っても、このような文句は一般的に実施形態の可能性を参照するという意味であり、開示を特定の実施形態の構成に制限するためのものではない。ここで使うものように、このような用語は他の実施形態と結合することができる同一又は相異なる他の実施形態を参照することができる。 Although the principles of the disclosure have been described with reference to embodiments that illustrate the principles of the disclosure, the embodiments described are susceptible to modifications in arrangement and detail without departing from such principles and may be combined in any desired manner. be able to recognize what is possible. And, although the foregoing discussion has focused on particular embodiments, other configurations may also be considered. In particular, even if phrases such as "in accordance with embodiments of the invention" are used herein, such phrases are meant to refer generally to possible embodiments, and are not intended to limit disclosure to specific embodiments. It is not intended to limit the configuration. As used herein, such terms can refer to other embodiments, the same or different, which can be combined with other embodiments.
前述説明した実施形態はその開示を制限するものに解釈されてはいけない。たとえいくつかの実施形態を説明したが、当該技術分野の通常の技術者は、本発明の新しい教示と利点から実質的に逸脱しない範疇内でそのような実施形態の多くの修正が可能であるということを容易に認知することができる。よって、そのような全ての修正は請求項で定義したもののように本発明の範囲に含まれるものである。 The embodiments described above should not be construed as limiting the disclosure. Although several embodiments have been described, those of ordinary skill in the art will recognize that many modifications of such embodiments may be made without departing materially from the novel teachings and advantages of the present invention. This can be easily recognized. Accordingly, all such modifications are intended to be included within the scope of the invention as defined in the claims.
開示の実施形態は以下の陳述まで制限なしに拡張することができる。 The disclosed embodiments can be extended without limitation to the following statements.
陳述1.本発明の技術的思想の一実施形態は軽量ブリッジ(Lightweight Bridge、LWB)回路を含み、LWB回路は、
ホストに連結され、複数の物理機能(Physical Function、PF)を露出させるエンドポイント、
デバイスに連結されるルートポートであって、前記デバイスが当該ルートポートに少なくとも一つのPF及び少なくとも一つの仮想機能(Virtual Function、VF)を露出させるルートポート、及び
前記ホストに露出された複数のPFと前記デバイスによって露出された前記少なくとも一つのPF及び少なくとも一つのVFとの間で変換するためのAPP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)を含み、
前記APP-EP及びAPP-RPは、前記エンドポイントによって露出された前記複数のPFと前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFとの間のマッピングを具現する。
an endpoint that is connected to a host and exposes multiple physical functions (PFs);
a root port coupled to a device, the root port exposing at least one PF and at least one virtual function (VF) to the root port; and a plurality of PFs exposed to the host. and an APP-EP (Application Layer-End point) and an APP-RP (Application Layer-Root Port) for converting between the at least one PF and the at least one VF exposed by the device;
The APP-EP and APP-RP implement mapping between the plurality of PFs exposed by the endpoint and at least one PF and at least one VF exposed by the device.
陳述2.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、前記デバイスはSSD(Solid State Drive)を含む。
陳述3.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、前記デバイスはLWB回路を含む。
Statement 3. One embodiment of the technical idea of the present invention includes an LWB circuit according to
陳述4.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、LWB回路は前記デバイスに連結される。
Statement 4. One embodiment of the inventive concept includes an LWB circuit according to
陳述5.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、前記APP-EP及びAPP-RPは単一コンポーネントに具現されることができる。
Statement 5. One embodiment of the technical idea of the present invention includes an LWB circuit according to
陳述6.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、LWB回路は、FPGA(Field Programmable Gate Array)、ASIC(Application-Specific Integrated Circuit)、汎用プロセッサ、GPU(Graphics Processing Unit)及び汎用GPU(GPGPU)のうちの少なくとも一つを含む。
Statement 6. One embodiment of the technical idea of the present invention includes an LWB circuit according to
陳述7.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、
前記複数のPFは複数のPeripheral Component Interconnect Express(PCIe)PFを含み、
少なくとも一つのPFは少なくとも一つのPCIe PFを含み、
少なくとも一つの仮想機能(Virtual Function;VF)は少なくとも一つのPCIe VFを含む。
Statement 7. One embodiment of the technical idea of the present invention includes an LWB circuit according to
The plurality of PFs include a plurality of Peripheral Component Interconnect Express (PCIe) PFs,
the at least one PF includes at least one PCIe PF;
At least one virtual function (VF) includes at least one PCIe VF.
陳述8.本発明の技術的思想の一実施形態は陳述7によるLWB回路を含み、ここで、
前記APP-EPはPCIe APP-EP(PAPP-EP)を含み、
前記APP-RPはPCIe APP-RP(PAPP-RP)を含む。
Statement 8. One embodiment of the technical idea of the present invention includes an LWB circuit according to statement 7, where:
The APP-EP includes a PCIe APP-EP (PAPP-EP),
The APP-RP includes a PCIe APP-RP (PAPP-RP).
陳述9.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、APP-EP及びAPP-RPを構成するための構成管理者(コンフィギュレーションマネージャ)をさらに含む。
Statement 9. One embodiment of the technical idea of the present invention includes an LWB circuit according to
陳述10.本発明の技術的思想の一実施形態は陳述9によるLWB回路を含み、ここで、APP-RPは構成テーブルが前記エンドポイントに露出された複数のPFと前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFとの間のマッピングを記憶した構成テーブルのための記憶部を含むことができる。 Statement 10. An embodiment of the technical idea of the present invention includes an LWB circuit according to statement 9, where the APP-RP has a configuration table that includes a plurality of PFs exposed to the endpoint and at least one PF exposed by the device. and at least one virtual function (VF).
陳述11.本発明の技術的思想の一実施形態は陳述9によるLWB回路を含み、ここで、前記構成管理者は前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFを羅列することができ、デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFに少なくとも部分的に基づいて前記エンドポイントによって露出された複数のPFを生成することができる。 Statement 11. An embodiment of the technical idea of the present invention includes an LWB circuit according to statement 9, where the configuration manager can enumerate at least one PF and at least one VF exposed by the device, and the device A plurality of PFs exposed by the endpoint can be generated based at least in part on at least one PF and at least one VF exposed by the endpoint.
陳述12.本発明の技術的思想の一実施形態は陳述9によるLWB回路を含み、ここで、前記構成管理者はデバイスを構成することができる。 Statement 12. One embodiment of the inventive concept includes an LWB circuit according to statement 9, where the configuration manager can configure a device.
陳述13.本発明の技術的思想の一実施形態は陳述12によるLWB回路を含み、ここで、前記構成管理者は前記エンドポイントのホストから受信される構成記録要請(configuration write request)に少なくとも部分的に基づいて前記デバイスを構成することができる。 Statement 13. One embodiment of the inventive concept includes an LWB circuit according to statement 12, wherein the configuration manager performs a configuration write request based at least in part on a configuration write request received from the endpoint host. The device can be configured using the following methods.
陳述14.本発明の技術的思想の一実施形態は陳述9によるLWB回路を含み、ここで、前記APP-EPはホストから構成判読要請(configuration read request)を遮断(intercept)し、ホストに構成情報をリターンすることができる。
陳述15.本発明の技術的思想の一実施形態は陳述9によるLWB回路を含み、ここで、前記構成管理者はデバイスの第1構成がエンドポイントの第2構成をミラーリングするように保障することができる。 Statement 15. One embodiment of the inventive concept includes an LWB circuit according to statement 9, where the configuration manager can ensure that a first configuration of a device mirrors a second configuration of an endpoint.
陳述16.本発明の技術的思想の一実施形態は陳述9によるLWB回路を含み、ここで、構成管理者はSR-IOV(Single Root Input/Output Virtualization)シーケンスを具現するためのROM(Read Only Memory)及び状態マシン(state machine)を含む。
陳述17.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、
前記APP-EPはホストの要請によって受信したアドレスからエンドポイントによって露出されたPFのBAR(Base address register)を引くことができ、
前記APP-RPはデバイスによって露出されたVFのBARを前記APP-EPから受信したアドレスに加えることができる。
Statement 17. One embodiment of the technical idea of the present invention includes an LWB circuit according to
The APP-EP can derive the BAR (Base address register) of the PF exposed by the endpoint from the address received at the request of the host;
The APP-RP can add the BAR of the VF exposed by the device to the address received from the APP-EP.
陳述18.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、
第2APP-EP及び第2APP-RP、
少なくとも一つの第2PF及び少なくとも一つの第2VFを露出させる第2デバイス、及び
前記エンドポイントに配列/連結され、前記APP-EP及び第2APP-EPのそれぞれに連結されたマルチプレクサー/デマルチプレクサーをさらに含み、
前記第2APP-EP及び前記第2APP-RPは前記エンドポイントによって露出された複数のPFと前記第2デバイスによって露出された少なくとも一つの第2PF及び少なくとも一つの第2VFとの間に第2マッピングを具現する。
Statement 18. One embodiment of the technical idea of the present invention includes an LWB circuit according to
a second APP-EP and a second APP-RP,
a second device exposing at least one second PF and at least one second VF; and a multiplexer/demultiplexer arranged/coupled to the endpoint and coupled to each of the APP-EP and the second APP-EP. In addition, it includes
The second APP-EP and the second APP-RP provide a second mapping between a plurality of PFs exposed by the endpoint and at least one second PF and at least one second VF exposed by the second device. Realize.
陳述19.本発明の技術的思想の一実施形態は陳述18によるLWB回路を含み、ここで、前記LWB回路は前記デバイス及び前記第2デバイスの集合資源を提供する。 Statement 19. One embodiment of the inventive concept includes an LWB circuit according to statement 18, where the LWB circuit provides collective resources of the device and the second device.
陳述20.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、前記エンドポイントによって露出された複数のPFと前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFとの間のマッピングは動的に変更されることができる。
Statement 20. One embodiment of the technical idea of the present invention includes an LWB circuit according to
陳述21.本発明の技術的思想の一実施形態は陳述20によるLWB回路を含み、ここで、前記エンドポイントによって露出された複数のPFと前記デバイスによって露出される少なくとも一つのPF及び少なくとも一つのVFとの間のマッピングは、エンドポイントによって露出された複数のPFの少なくとも一つに対する記憶パラメーター、日付、日付の時間、帯域幅使用量、又はQoS(Quality of Service)ポリシー変更に少なくとも部分的に基づいて変わることができる。 Statement 21. One embodiment of the inventive concept includes an LWB circuit according to statement 20, wherein a plurality of PFs exposed by the endpoint and at least one PF and at least one VF exposed by the device. The mapping between changes based at least in part on storage parameters, date, time of date, bandwidth usage, or quality of service (QoS) policy changes for at least one of the plurality of PFs exposed by the endpoint. be able to.
陳述22.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、LWB回路は帯域幅スロットリング(bandwidth throttling)を具現することができる。
Statement 22. One embodiment of the technical idea of the present invention includes an LWB circuit according to
陳述23.本発明の技術的思想の一実施形態は陳述22によるLWB回路を含み、ここで、LWB回路はエンドポイントによって露出された複数のPFの少なくとも一つによって使用された帯域幅を測定することができる。 Statement 23. One embodiment of the inventive concept includes an LWB circuit according to statement 22, where the LWB circuit is capable of measuring the bandwidth used by at least one of the plurality of PFs exposed by the endpoint. .
陳述24.本発明の技術的思想の一実施形態は陳述22によるLWB回路を含み、ここで、LWB回路は、前記ホストに設定されたポリシー、前記デバイスによって設定されたポリシー、前記LWB回路の温度、前記LWBの電力消費、前記SSDの温度、又は前記SSDの電力消費に少なくとも部分的に基づいて帯域幅スロットリングを具現することができる。 Statement 24. An embodiment of the technical idea of the present invention includes an LWB circuit according to statement 22, where the LWB circuit has a policy set on the host, a policy set by the device, a temperature of the LWB circuit, and the LWB circuit according to statement 22. Bandwidth throttling may be implemented based at least in part on power consumption of the SSD, a temperature of the SSD, or a power consumption of the SSD.
陳述25.本発明の技術的思想の一実施形態は陳述24によるLWB回路を含み、ここで、前記LWB回路は帯域幅スロットリングをトリガーする閾値(threshold)のための記憶部をさらに含む。 Statement 25. One embodiment of the inventive concept includes an LWB circuit according to statement 24, where the LWB circuit further includes a storage for a threshold that triggers bandwidth throttling.
陳述26.本発明の技術的思想の一実施形態は陳述25によるLWB回路を含み、ここで、前記LWB回路は帯域幅スロットリングの終了をトリガーする第2閾値(threshold)のための記憶部をさらに含む。 Statement 26. One embodiment of the inventive concept includes an LWB circuit according to Statement 25, where the LWB circuit further includes a storage for a second threshold that triggers termination of bandwidth throttling.
陳述27.本発明の技術的思想の一実施形態は陳述22によるLWB回路を含み、ここで、LWB回路はデータ伝送のためにデバイスにクレジットを発行することができる。 Statement 27. One embodiment of the inventive concept includes an LWB circuit according to statement 22, where the LWB circuit can issue credits to devices for data transmission.
陳述28.本発明の技術的思想の一実施形態は陳述27によるLWB回路を含み、ここで、LWB回路は前記クレジットをデバイスのアドレスに記録することができる。 Statement 28. One embodiment of the inventive concept includes an LWB circuit according to statement 27, where the LWB circuit can record the credit to the address of the device.
陳述29.本発明の技術的思想の一実施形態は陳述27によるLWB回路を含み、ここで、デバイスはLWB回路アドレスから前記クレジットを判読することができる。 Statement 29. One embodiment of the inventive concept includes an LWB circuit according to statement 27, where a device can read the credit from the LWB circuit address.
陳述30.本発明の技術的思想の一実施形態は陳述27によるLWB回路を含み、ここで、LWB回路は前記クレジットをデバイスにメッセージにて伝送することができる。 Statement 30. One embodiment of the inventive concept includes an LWB circuit according to statement 27, where the LWB circuit can transmit the credit to a device in a message.
陳述31.本発明の技術的思想の一実施形態は陳述22によるLWB回路を含み、ここで、LWB回路は第1データパケットと第2データパケットとの間のパケット間隔(inter-packetgap)を導入することにより帯域幅スロットリングを具現することができる。 Statement 31. One embodiment of the technical idea of the present invention includes an LWB circuit according to statement 22, where the LWB circuit is configured to provide a Bandwidth throttling can be implemented.
陳述32.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、LWB回路はデバイスによって露出された複数のPFのPFにQoSポリシーを具現することができる。
Statement 32. One embodiment of the technical idea of the present invention includes an LWB circuit according to
陳述33.本発明の技術的思想の一実施形態は陳述32によるLWB回路を含み、ここで、前記ポリシーは、ホスト、BMC、又はデバイスの一つによって設定されることができる。 Statement 33. One embodiment of the inventive concept includes an LWB circuit according to statement 32, where the policy can be set by one of the host, BMC, or device.
陳述34.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、LWB回路は、デバイスから受信した構成記録要請に少なくとも部分的に基づいて、エンドポイントによって露出された複数のPFの少なくとも一つの性能(capability)を構成することができる。
Statement 34. One embodiment of the inventive concept includes an LWB circuit according to
陳述35.本発明の技術的思想の一実施形態は方法を含む。前記方法は、
軽量ブリッジ(Lightweight Bridge、LWB)のルートポートを使ってデバイスによって露出された少なくとも一つの物理機能(Physical Function、PF)を羅列する段階、
前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つの仮想機能(Virtual Function、VF)を羅列する段階、
ホストに対する露出のために前記LWBのエンドポイントで複数のPFを生成する段階、及び
前記LWBのAPP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)を使用し、前記LWBのエンドポイントにある前記複数のPFを前記デバイスによって露出された前記少なくとも一つのPF及び少なくとも一つのVFにマッピングする段階を含む。
Statement 35. One embodiment of the technical idea of the present invention includes a method. The method includes:
enumerating at least one physical function (PF) exposed by the 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 a plurality of PFs at end points of the LWB for exposure to a host; mapping the plurality of PFs at an endpoint of an LWB to the at least one PF and at least one VF exposed by the device.
陳述36.本発明の技術的思想の一実施形態は陳述35による方法を含み、ここで、
前記LWBのルートポートを使ってデバイスによって露出された少なくとも一つのPFを羅列する段階は、前記LWBの開始の際(at startup)、前記LWBのルートポートを使ってデバイスによって露出された少なくとも一つのPFを羅列する段階を含み、
前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階は、前記LWBの開始の際(at startup)、前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階を含む。
Statement 36. One embodiment of the inventive concept includes a method according to statement 35, where:
The step of enumerating at least one PF exposed by a device using the root port of the LWB includes enumerating at least one PF exposed by the device using the root port of the LWB at startup of the LWB. Including a step of listing PFs,
The step of enumerating at least one VF exposed by the device using the root port of the LWB includes the step of enumerating at least one VF exposed by the device using the root port of the LWB at startup of the LWB. The method includes the step of listing at least one VF.
陳述37.本発明の技術的思想の一実施形態は陳述35による方法を含み、ここで、
前記LWBのルートポートを使って前記デバイスによって露出された少なくとも一つのPFを羅列する段階は、デバイスがLWBに連結されるとき、前記LWBのルートポートを使ってデバイスによって露出された少なくとも一つのPFを羅列する段階を含み、
前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階は、デバイスがLWBに連結されるとき、前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階を含む。
Statement 37. One embodiment of the inventive concept includes a method according to statement 35, where:
The step of enumerating at least one PF exposed by the device using the root port of the LWB includes listing at least one PF exposed by the device using the root port of the LWB when the device is connected to the LWB. including the step of listing the
The step of enumerating at least one VF exposed by the device using the root port of the LWB includes enumerating at least one VF exposed by the device using the root port of the LWB when the device is coupled to the LWB. This includes a step of listing one VF.
陳述38.本発明の技術的思想の一実施形態は陳述35による方法を含み、ここで、前記デバイスはSSD(Solid State Drive)を含む。 Statement 38. One embodiment of the technical idea of the present invention includes a method according to statement 35, where the device includes a solid state drive (SSD).
陳述39.本発明の技術的思想の一実施形態は陳述35による方法を含み、ここで、
前記複数のPFは複数のPeripheral Component Interconnect Express(PCIe)PFを含み、
少なくとも一つのPFは少なくとも一つのPCIe PFを含み、
少なくとも一つのVFは少なくとも一つのPCIe VFを含む。
Statement 39. One embodiment of the inventive concept includes a method according to statement 35, where:
The plurality of PFs include a plurality of Peripheral Component Interconnect Express (PCIe) PFs,
the at least one PF includes at least one PCIe PF;
The at least one VF includes at least one PCIe VF.
陳述40.本発明の技術的思想の一実施形態は陳述39による方法を含み、ここで、
前記APP-EPはPCIe APP-EP(PAPP-EP)を含み、
前記APP-RPはPCIe APP-RP(PAPP-RP)を含む。
Statement 40. One embodiment of the technical idea of the present invention includes a method according to statement 39, where:
The APP-EP includes a PCIe APP-EP (PAPP-EP),
The APP-RP includes a PCIe APP-RP (PAPP-RP).
陳述41.本発明の技術的思想の一実施形態は陳述35による方法を含み、
前記ホストから羅列を受信する段階、及び
LWBのエンドポイントにある複数のPFをホストに露出させる段階をさらに含む。
Statement 41. One embodiment of the technical idea of the present invention includes a method according to statement 35,
The method further includes receiving an enumeration from the host, and exposing a plurality of PFs at endpoints of the LWB to the host.
陳述42.本発明の技術的思想の一実施形態は陳述35による方法を含み、
前記LWBのルートポートを使って前記デバイスによって露出された少なくとも一つのPFを羅列する段階は、前記LWBの第2ルートポートを使って第2デバイスによって露出された少なくとも一つの第2PFを羅列する段階を含み、
前記LWBのルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階は、前記LWBの前記第2ルートポートを使って前記第2デバイスによって露出された少なくとも一つの第2VFを羅列する段階を含み、
前記複数のPFを前記少なくとも一つのPF及び少なくとも一つのVFにマッピングする段階は、前記複数のPFを前記少なくとも一つのPF、少なくとも一つのVF、少なくとも一つの第2PF、及び少なくとも一つの第2VFにマッピングする段階を含む。
Statement 42. One embodiment of the technical idea of the present invention includes a method according to statement 35,
The step of enumerating at least one PF exposed by the device using the root port of the LWB includes the step of enumerating at least one second PF exposed by the second device using a second root port of the LWB. including;
The step of enumerating at least one VF exposed by the device using the root port of the LWB includes enumerating at least one second VF exposed by the second device using the second root port of the LWB. including the step of
The step of mapping the plurality of PFs to the at least one PF and at least one VF includes mapping the plurality of PFs to the at least one PF, at least one VF, at least one second PF, and at least one second VF. including the step of mapping.
陳述43.本発明の技術的思想の一実施形態は陳述42による方法を含み、
前記デバイス及び前記第2デバイスの資源を決定する段階、及び
前記デバイス及び前記第2デバイスの資源を集約(aggregating)する段階をさらに含む。
Statement 43. One embodiment of the technical idea of the present invention includes a method according to statement 42,
The method further includes: determining resources of the device and the second device; and aggregating resources of the device and the second device.
陳述44.本発明の技術的思想の一実施形態は陳述35による方法を含み、
前記エンドポイントによって露出された前記複数のPFの一つのPFでホストから要請を受信する段階、
前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFを前記デバイスによって露出された前記少なくとも一つのVFの前記一つのVFにマッピングする段階、
前記エンドポイントによって露出された前記複数のPFの前記PFからの要請を前記デバイスによって露出された前記少なくとも一つのVFの前記VFに変換する段階、及び
前記要請を前記デバイスによって露出された前記少なくとも一つのVFの前記VFに伝送する段階をさらに含む。
Statement 44. One embodiment of the technical idea of the present invention includes a method according to statement 35,
receiving a request from a host at one PF of the plurality of PFs exposed by the endpoint;
mapping the PF of the plurality of PFs exposed by the endpoint of the LWB to the one of the at least one VF exposed by the device;
converting a request from the PF of the plurality of PFs exposed by the endpoint into the VF of the at least one VF exposed by the device; The method further includes the step of transmitting data to the VFs of the two VFs.
陳述45.本発明の技術的思想の一実施形態は陳述44による方法を含み、
前記デバイスによって露出された少なくとも一つのVFの前記VFから前記要請に対する応答を受信する段階、
前記デバイスによって露出された少なくとも一つのVFの前記VFを前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFにマッピングする段階、
前記デバイスによって露出された前記少なくとも一つのVFの前記VFからの応答を前記エンドポイントによって露出された前記複数のPFの前記PFに変換する段階、及び
前記応答を前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFを介して前記ホストに伝送する段階をさらに含む。
Statement 45. One embodiment of the technical idea of the present invention includes a method according to statement 44,
receiving a response to the request from the VF of at least one VF exposed by the device;
mapping the VF of at least one VF exposed by the device to the PF of the plurality of PFs exposed by the endpoint of the LWB;
converting a response from the VF of the at least one VF exposed by the device to the PF of the plurality of PFs exposed by the endpoint; The method further includes transmitting data to the host via the PFs of the plurality of PFs.
陳述46.本発明の技術的思想の一実施形態は陳述45による方法を含み、ここで、前記デバイスによって露出された前記少なくとも一つのVFの前記VFからの応答を前記エンドポイントによって露出された前記複数のPFの前記PFに変換する段階は、前記エンドポイントによって露出された前記複数のPFの前記PFの第1BAR(Base address register)及び前記デバイスによって露出された少なくとも一つのVFの前記VFの第2BARに基づいて前記応答のアドレスを修正する段階を含む。 Statement 46. One embodiment of the inventive concept includes a method according to statement 45, wherein a response from the at least one VF exposed by the device is transmitted to the plurality of PFs exposed by the endpoint. The step of converting the PF to the PF of the plurality of PFs exposed by the endpoint is based on a first BAR (Base address register) of the PF of the plurality of PFs exposed by the endpoint and a second BAR of the VF of at least one VF exposed by the device. and modifying the address of the response.
陳述47.本発明の技術的思想の一実施形態は陳述45による方法を含み、ここで、前記デバイスによって露出された少なくとも一つのVFの前記VFを前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFにマッピングする段階は、前記デバイスによって露出された少なくとも一つのVFの前記VFを前記LWBのAPP-RPの構成テーブルを使って前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFにマッピングする段階を含む。 Statement 47. One embodiment of the inventive concept includes a method according to statement 45, wherein the VFs of at least one VF exposed by the device are replaced by the plurality of PFs exposed by the endpoints of the LWB. The step of mapping the VFs of at least one VF exposed by the device to the PFs of the plurality of PFs exposed by the endpoint of the LWB using a configuration table of an APP-RP of the LWB. It includes the step of mapping to PF.
陳述48.本発明の技術的思想の一実施形態は陳述44による方法を含み、ここで、前記エンドポイントによって露出された前記複数のPFの前記PFからの要請を前記デバイスによって露出された前記少なくとも一つのVFの前記VFに変換する段階は、前記エンドポイントによって露出された前記複数のPFの前記PFの第1BAR(Base address register)及び前記デバイスによって露出された少なくとも一つのVFの前記VFの第2BARに基づいて前記要請のアドレスを修正する段階を含む。 Statement 48. An embodiment of the technical idea of the present invention includes a method according to statement 44, wherein a request from the PF of the plurality of PFs exposed by the endpoint is transmitted to the at least one VF exposed by the device. The step of converting into the VF of the plurality of PFs exposed by the endpoint is based on a first base address register (BAR) of the PF of the plurality of PFs exposed by the endpoint and a second BAR of the VF of at least one VF exposed by the device. and modifying the address of the request.
陳述49.本発明の技術的思想の一実施形態は陳述44による方法を含み、ここで、前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFを前記デバイスによって露出された前記少なくとも一つのVFの一つのVFにマッピングする段階は、前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFを、前記LWBのAPP-RPの構成テーブルを使って前記デバイスによって露出された前記少なくとも一つのVFの一つのVFにマッピングする段階を含む。 Statement 49. An embodiment of the inventive concept includes a method according to statement 44, wherein the PF of the plurality of PFs exposed by the endpoint of the LWB is connected to the at least one VF exposed by the device. mapping the PF of the plurality of PFs exposed by the endpoint of the LWB to the at least one VF exposed by the device using a configuration table of an APP-RP of the LWB. mapping the two VFs to one VF.
陳述50.本発明の技術的思想の一実施形態は陳述44による方法を含み、ここで、前記要請を前記デバイスによって露出された前記少なくとも一つのVFの前記VFに伝送する段階は、
前記デバイス及び第2デバイスの中で選択する段階であって、前記第2デバイスは、前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFの前記デバイスによって露出された少なくとも一つのVFの前記VFへのマッピングの一部に基づいて少なくとも一つの第2PF及び少なくとも一つの第2VFを露出させる段階、及び
前記要請を前記デバイスに関連したAPP-EPに伝送する段階、
を含む。
Statement 50. An embodiment of the inventive concept includes a method according to statement 44, wherein transmitting the request to the VF of the at least one VF exposed by the device comprises:
selecting between the device and a second device, wherein the second device is selected from at least one VF exposed by the device of the PF of the plurality of PFs exposed by the endpoint of the LWB; exposing at least one second PF and at least one second VF based in part on the mapping of to the VF; and transmitting the request to an APP-EP associated with the device.
including.
陳述51.本発明の技術的思想の一実施形態は陳述44による方法を含み、
前記デバイスを含むデータ伝送のためのクレジットを決定する段階、及び
前記デバイスに前記クレジットを発行する段階、
をさらに含む。
Statement 51. One embodiment of the technical idea of the present invention includes a method according to statement 44,
determining credits for data transmission involving the device; and issuing the credits to the device;
further including.
陳述52.本発明の技術的思想の一実施形態は陳述51による方法を含み、ここで、前記デバイスに前記クレジットを発行する段階は、前記デバイスのアドレスに前記クレジットを記録する段階を含む。 Statement 52. One embodiment of the inventive concept includes a method according to statement 51, where issuing the credit to the device includes recording the credit to an address of the device.
陳述53.本発明の技術的思想の一実施形態は陳述51による方法を含み、ここで、前記デバイスに前記クレジットを発行する段階は、LWBのアドレスから前記クレジットを判読する段階を含む。 Statement 53. An embodiment of the inventive concept includes a method according to statement 51, where issuing the credit to the device includes resolving the credit from an address of an LWB.
陳述54.本発明の技術的思想の一実施形態は陳述51による方法を含み、ここで、前記デバイスに前記クレジットを発行する段階は、LWBからデバイスに前記クレジットを含むメッセージを伝送する段階を含む。 Statement 54. An embodiment of the inventive concept includes a method according to statement 51, where issuing the credit to the device includes transmitting a message including the credit from an LWB to the device.
陳述55.本発明の技術的思想の一実施形態は陳述35による方法を含み、
構成記録要請を受信する段階、及び
構成記録要請に少なくとも部分的に基づいて前記LWBの前記エンドポイントによって露出された複数のPFを構成する段階、
をさらに含む。
Statement 55. One embodiment of the technical idea of the present invention includes a method according to statement 35,
receiving a configuration record request; and configuring a plurality of PFs exposed by the endpoint of the LWB based at least in part on the configuration record request;
further including.
陳述56.本発明の技術的思想の一実施形態は陳述55による方法を含み、前記LWBの前記エンドポイントによって露出された前記複数のPFの構成をミラーリングするために、前記構成記録要請に少なくとも部分的に基づいて、前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFを構成する段階をさらに含む。 Statement 56. An embodiment of the technical idea of the present invention includes a method according to statement 55, based at least in part on the configuration record request to mirror the configuration of the plurality of PFs exposed by the endpoint of the LWB. The method further includes configuring at least one PF and at least one VF exposed by the device.
陳述57.本発明の技術的思想の一実施形態は陳述55による方法を含み、ここで、前記構成記録要請を受信する段階は、前記ホストから構成記録要請を受信する段階を含む。 Statement 57. One embodiment of the inventive concept includes a method according to statement 55, where the step of receiving the configuration record request includes receiving a configuration record request from the host.
陳述58.本発明の技術的思想の一実施形態は陳述55による方法を含み、ここで、前記構成記録要請を受信する段階は、前記デバイスから構成記録要請を受信する段階を含む。 Statement 58. One embodiment of the inventive concept includes a method according to statement 55, where the step of receiving a configuration recording request includes receiving a configuration recording request from the device.
陳述59.本発明の技術的思想の一実施形態は陳述58による方法を含み、ここで、前記構成記録要請に少なくとも部分的に基づいて前記LWBの前記エンドポイントによって露出された前記複数のPFを構成する段階は、前記デバイスから受信した構成記録要請に少なくとも部分的に基づいて、前記エンドポイントによって露出された前記複数のPFの少なくとも一つの性能(capability)を構成する段階を含む。 Statement 59. One embodiment of the inventive concept includes a method according to statement 58, wherein configuring the plurality of PFs exposed by the endpoint of the LWB based at least in part on the configuration record request. configuring a capability of at least one of the plurality of PFs exposed by the endpoint based at least in part on a configuration record request received from the device.
陳述60.本発明の技術的思想の一実施形態は陳述55による方法を含み、ここで、前記構成記録要請に少なくとも部分的に基づいて前記LWBの前記エンドポイントによって露出された前記複数のPFを構成する段階は、状態マシンを用いてSR-IOV(Single Root Input/Output Virtualization)シーケンスを実行する段階を含む。 Statement 60. One embodiment of the inventive concept includes a method according to statement 55, wherein configuring the plurality of PFs exposed by the endpoint of the LWB based at least in part on the configuration record request. The method includes executing a Single Root Input/Output Virtualization (SR-IOV) sequence using a state machine.
陳述61.本発明の技術的思想の一実施形態は陳述35による方法を含み、
構成判読要請を受信する段階、
前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)を決定する段階、及び
前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの設定によって構成判読要請に応答する段階、
をさらに含む。
Statement 61. One embodiment of the technical idea of the present invention includes a method according to statement 35,
receiving a configuration reading request;
determining a configuration of at least one PF and at least one VF of the device; and responding to a configuration reading request with a configuration of at least one PF and at least one VF of the device;
further including.
陳述62.本発明の技術的思想の一実施形態は陳述61による方法を含み、ここで、前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)を決定する段階は、前記デバイスの前記エンドポイントによって露出された前記複数のPFの構成を決定する段階を含む。 Statement 62. An embodiment of the technical idea of the present invention includes a method according to statement 61, wherein determining a configuration of at least one PF and at least one VF of the device includes the step of determining the configuration of the endpoint of the device. determining a configuration of the plurality of PFs exposed by the method.
陳述63.本発明の技術的思想の一実施形態は陳述61による方法を含み、ここで、前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)を決定する段階は、前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)に関してデバイスに問い合わせる(querying the device)段階を含む。 Statement 63. An embodiment of the technical idea of the present invention includes a method according to statement 61, wherein determining a configuration of at least one PF and at least one VF of the device includes determining the configuration of at least one PF and at least one VF of the device. The method includes querying the device regarding the configuration of the PF and at least one VF.
陳述64.本発明の技術的思想の一実施形態は陳述61による方法を含み、ここで、前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)を決定する段階は、前記構成判読要請を前記デバイスに伝達しない段階を含む。 Statement 64. An embodiment of the technical idea of the present invention includes a method according to statement 61, wherein determining a configuration of at least one PF and at least one VF of the device includes the step of determining the configuration of the at least one PF and at least one VF of the device. Includes a step of not communicating to the device.
陳述65.本発明の技術的思想の一実施形態は陳述35による方法を含み、前記LWBのAPP-EP及びAPP-RPを使用して、前記LWBのエンドポイントにある複数のPFの前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFに対するマッピングを動的に変更する段階をさらに含む。 Statement 65. An embodiment of the technical idea of the present invention includes a method according to statement 35, using APP-EP and APP-RP of the LWB to expose by the device of a plurality of PFs at the end points of the LWB. The method further includes dynamically changing mapping for at least one PF and at least one VF.
陳述66.本発明の技術的思想の一実施形態は陳述65による方法を含み、ここで、前記LWBのAPP-EP及びAPP-RPを使って前記LWBのエンドポイントにある複数のPFの前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFに対するマッピングを動的に変更する段階は、LWBのエンドポイントによって露出された複数のPFの少なくとも一つに対する記憶パラメーター、日付、日付の時間、帯域幅使用量、又はQoS(Quality of Service)ポリシー変更に少なくとも部分的に基づいて、前記LWBのAPP-EP及びAPP-RPを使って前記LWBのエンドポイントにある複数のPFの前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFに対するマッピングを動的に変更する段階を含む。 Statement 66. One embodiment of the technical idea of the present invention includes a method according to statement 65, wherein APP-EP and APP-RP of the LWB are used to expose by the device of a plurality of PFs at the endpoints of the LWB. Dynamically changing the mapping for the at least one PF and the at least one VF includes storage parameters, date, time of date, and bandwidth usage for at least one of the plurality of PFs exposed by the endpoint of the LWB. or at least one of the devices exposed by the device of a plurality of PFs at the endpoint of the LWB using the APP-EP and APP-RP of the LWB, based at least in part on a quality of service (QoS) policy change. The method includes dynamically changing mappings for one PF and at least one VF.
陳述67.本発明の技術的思想の一実施形態は陳述35による方法を含み、前記デバイスに対する帯域幅をスロットリングする段階をさらに含む。 Statement 67. One embodiment of the inventive concept includes a method according to statement 35, further including throttling bandwidth for the device.
陳述68.本発明の技術的思想の一実施形態は陳述67による方法を含み、ここで、前記エンドポイントによって露出された複数のPFの少なくとも一つによって使用された帯域幅を測定する段階をさらに含む。 Statement 68. One embodiment of the inventive concept includes a method according to statement 67, further comprising measuring a bandwidth used by at least one of a plurality of PFs exposed by the endpoint.
陳述69.本発明の技術的思想の一実施形態は陳述67による方法を含み、ここで、前記デバイスに対する帯域幅をスロットリングする段階は、第1データパケットと第2データパケットとの間のパケット間隔(inter-packetgap)を導入する段階を含む。 Statement 69. One embodiment of the inventive concept includes a method according to statement 67, wherein throttling bandwidth for the device comprises an interval between a first data packet and a second data packet. -packetgap).
陳述70.本発明の技術的思想の一実施形態は陳述67による方法を含み、ここで、前記デバイスに対する帯域幅をスロットリングする段階は、前記ホストによって設定されたQoSポリシー、前記デバイスによって設定されたQoSポリシー、前記LWB回路の温度、前記LWBの電力消費、前記SSDの温度、又は前記SSDの電力消費に少なくとも部分的に基づいてデバイスに対する帯域幅をスロットリングする段階を含む。 Statement 70. An embodiment of the technical idea of the present invention includes a method according to statement 67, wherein throttling bandwidth for the device comprises a QoS policy set by the host, a QoS policy set by the device. , throttling bandwidth for a device based at least in part on a temperature of the LWB circuit, a power consumption of the LWB, a temperature of the SSD, or a power consumption of the SSD.
陳述71.本発明の技術的思想の一実施形態は陳述70による方法を含み、ここで、前記ホストによって設定されたQoSポリシー、前記デバイスによって設定されたQoSポリシー、前記LWBの温度、前記LWBの電力消費、前記SSDの温度、又は前記SSDの電力消費に少なくとも部分的に基づいて前記デバイスに対する帯域幅をスロットリングする段階は、前記LWBの温度、前記LWBの電力消費、前記SSDの温度、又は前記SSDの電力消費が閾値(threshold)を超えることに少なくとも部分的に基づいて前記デバイスに対する帯域幅をスロットリングする段階を含む。 Statement 71. An embodiment of the technical idea of the present invention includes a method according to statement 70, wherein 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, Throttling bandwidth for the device based at least in part on the temperature of the SSD, or the power consumption of the SSD, may be based on the temperature of the LWB, the power consumption of the LWB, the temperature of the SSD, or the power consumption of the SSD. Throttling bandwidth for the device based at least in part on power consumption exceeding a threshold.
陳述72.本発明の技術的思想の一実施形態は陳述71による方法を含み、ここで、前記LWBの温度、前記LWBの電力消費、前記SSDの温度、又は前記SSDの電力消費が第2閾値(threshold)を下回ることに少なくとも部分的に基づいて前記デバイスに対する帯域幅スロットリングを終了する段階をさらに含む。 Statement 72. An embodiment of the technical idea of the present invention includes a method according to statement 71, wherein the temperature of the LWB, the power consumption of the LWB, the temperature of the SSD, or the power consumption of the SSD is a second threshold. terminating bandwidth throttling for the device based at least in part on the device becoming less than .
陳述73.本発明の技術的思想の一実施形態は陳述35による方法を含み、
前記LWBのエンドポイントによって露出された前記複数のPFのPFに対するQoSポリシーを受信する段階、及び
前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFに対するQoSポリシーを具現する段階、
をさらに含む。
Statement 73. One embodiment of the technical idea of the present invention includes a method according to statement 35,
receiving a QoS policy for the plurality of PFs exposed by the endpoint of the LWB; and implementing a QoS policy for the plurality of PFs exposed by the endpoint of the LWB.
further including.
陳述74.本発明の技術的思想の一実施形態は陳述73による方法を含み、ここで、前記LWBのエンドポイントによって露出された前記複数のPFのPFに対するQoSポリシーを受信する段階は、前記ホスト又は前記デバイスの一つから前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFに対するQoSポリシーを受信する段階を含む。 Statement 74. An embodiment of the technical idea of the present invention includes a method according to statement 73, wherein receiving a QoS policy for a PF of the plurality of PFs exposed by an endpoint of the LWB comprises receiving a QoS policy for the PF of the plurality of PFs exposed by the endpoint of the LWB from one of the PFs.
陳述75.本発明の技術的思想の一実施形態は非一時的記憶媒体(non-transitory storage medium)を含む物品(article)を含み、前記非一時的記憶媒体は、マシン(machine)によって実行されるとき、
軽量ブリッジ(Lightweight Bridge、LWB)のルートポートを使ってデバイスによって露出された少なくとも一つの物理機能(Physical Function、PF)を羅列する段階、
前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つの仮想機能(Virtual Function、VF)を羅列する段階、
ホストに露出させるために前記LWBのエンドポイントで複数のPFを生成する段階、及び
APP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)を使用して、前記LWBのエンドポイントにある前記複数のPFを前記デバイスによって露出された前記少なくとも一つのPF及び少なくとも一つのVFにマッピングする段階、
を引き起こす命令語を記憶している。
Statement 75. An embodiment of the technical idea of the present invention includes an article including a non-transitory storage medium, and when the non-transitory storage medium is executed by a machine:
enumerating at least one physical function (PF) exposed by the 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 a plurality of PFs at the end points of the LWB for exposure to a host; and using an APP-EP (Application Layer-End point) and an APP-RP (Application Layer-Root Port) to mapping the plurality of PFs at an endpoint to the at least one PF and at least one VF exposed by the device;
remembers the command word that causes
陳述76.本発明の技術的思想の一実施形態は陳述75による物品を含み、ここで、
前記LWBのルートポートを使ってデバイスによって露出された少なくとも一つのPFを羅列する段階は、前記LWBの開始の際(at startup)、前記LWBのルートポートを使ってデバイスによって露出された少なくとも一つのPFを羅列する段階を含み、
前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階は、前記LWBの開始の際(at startup)、前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階を含む
陳述77.本発明の技術的思想の一実施形態は陳述75による物品を含み、ここで、
前記LWBのルートポートを使ってデバイスによって露出された少なくとも一つのPFを羅列する段階は、前記デバイスが前記LWBに連結されるとき、前記LWBのルートポートを使って前記デバイスによって露出された少なくとも一つのPFを羅列する段階を含み、
前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階は、前記デバイスが前記LWBに連結されるとき、前記LWBの前記ルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階を含む。
Statement 76. One embodiment of the inventive concept includes an article according to statement 75, where:
The step of enumerating at least one PF exposed by a device using the root port of the LWB includes enumerating at least one PF exposed by the device using the root port of the LWB at startup of the LWB. Including a step of listing PFs,
The step of enumerating at least one VF exposed by the device using the root port of the LWB includes the step of enumerating at least one VF exposed by the device using the root port of the LWB at startup of the LWB. Statement 77. One embodiment of the inventive concept includes an article according to statement 75, where:
The step of enumerating at least one PF exposed by the device using the root port of the LWB includes enumerating at least one PF exposed by the device using the root port of the LWB when the device is coupled to the LWB. including a step of listing three PFs,
The step of enumerating at least one VF exposed by the device using the root port of the LWB includes enumerating at least one VF exposed by the device using the root port of the LWB when the device is coupled to the LWB. The method includes the step of listing at least one VF.
陳述78.本発明の技術的思想の一実施形態は陳述75による物品を含み、ここで、前記デバイスは、SSD(Solid State Drive)を含む。 Statement 78. One embodiment of the inventive concept includes an article according to statement 75, where the device includes a solid state drive (SSD).
陳述79.本発明の技術的思想の一実施形態は陳述75による物品を含み、ここで、
前記複数のPFは、複数のPeripheral Component Interconnect Express(PCIe)PFを含み、
前記少なくとも一つのPFは少なくとも一つのPCIe PFを含み、
前記少なくとも一つのVFは少なくとも一つのPCIe VFを含む。
Statement 79. One embodiment of the inventive concept includes an article according to statement 75, where:
The plurality of PFs include a plurality of Peripheral Component Interconnect Express (PCIe) PFs,
the at least one PF includes at least one PCIe PF;
The at least one VF includes at least one PCIe VF.
陳述80.本発明の技術的思想の一実施形態は陳述79による物品を含み、ここで、
前記APP-EPはPCIe APP-EP(PAPP-EP)を含み、
前記APP-RPはPCIe APP-RP(PAPP-RP)を含む。
Statement 80. One embodiment of the inventive concept includes an article according to statement 79, where:
The APP-EP includes a PCIe APP-EP (PAPP-EP),
The APP-RP includes a PCIe APP-RP (PAPP-RP).
陳述81.本発明の技術的思想の一実施形態は陳述75による物品を含み、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、
前記ホストから羅列を受信する段階、及び
前記LWBの前記エンドポイントにある複数のPFを前記ホストに露出させる段階、
を引き起こす命令語を記憶している。
Statement 81. An embodiment of the inventive concept includes an article according to statement 75, wherein the non-transitory storage medium, when executed by a machine, comprises:
receiving an enumeration from the host; and exposing a plurality of PFs at the endpoint of the LWB to the host.
remembers the command word that causes
陳述82.本発明の技術的思想の一実施形態は陳述75による物品を含み、ここで、
LWBのルートポートを使って前記デバイスによって露出された少なくとも一つのPFを羅列する段階は、前記LWBの第2ルートポートを使って第2デバイスによって露出された少なくとも一つの第2PFを羅列する段階を含み、
前記LWBのルートポートを使って前記デバイスによって露出された少なくとも一つのVFを羅列する段階は、前記LWBの前記第2ルートポートを使って前記第2デバイスによって露出された少なくとも一つの第2VFを羅列する段階を含み、
前記複数のPFを前記少なくとも一つのPF及び少なくとも一つのVFにマッピングする段階は、前記複数のPFを前記少なくとも一つのPF、前記少なくとも一つのVF、前記少なくとも一つの第2PF、及び前記少なくとも一つの第2VFにマッピングする段階を含む。
Statement 82. One embodiment of the inventive concept includes an article according to statement 75, where:
Enumerating at least one PF exposed by the device using a root port of the LWB includes enumerating at least one second PF exposed by the second device using a second root port of the LWB. including,
The step of enumerating at least one VF exposed by the device using the root port of the LWB includes enumerating at least one second VF exposed by the second device using the second root port of the LWB. including the step of
The step of 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 PF. and mapping to a second VF.
陳述83.本発明の技術的思想の一実施形態は陳述82による物品を含み、ここで、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、
前記デバイス及び前記第2デバイスの資源を決定する段階、及び
前記デバイス及び前記第2デバイスの資源を集約(aggregating)する段階、
を引き起こす命令語を記憶している。
Statement 83. One embodiment of the inventive concept includes an article according to statement 82, wherein the non-transitory storage medium, when executed by a machine, includes:
determining resources of the device and the second device; and aggregating resources of the device and the second device.
remembers the command word that causes
陳述84.本発明の技術的思想の一実施形態は陳述75による物品を含み、ここで、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、
前記エンドポイントによって露出された前記複数のPFの一つのPFで前記ホストからの要請を受信する段階、
前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFを前記デバイスによって露出された前記少なくとも一つのVFの一つのVFにマッピングする段階、
前記エンドポイントによって露出された前記複数のPFの前記PFからの要請を前記デバイスによって露出された前記少なくとも一つのVFの前記VFに変換する段階、及び
前記要請を前記デバイスによって露出された前記少なくとも一つのVFの前記VFに伝送する段階、
を引き起こす命令語を記憶している。
Statement 84. One embodiment of the inventive concept includes an article according to statement 75, wherein the non-transitory storage medium, when executed by a machine, includes:
receiving a request from the host at one PF of the plurality of PFs exposed by the endpoint;
mapping the PF of the plurality of PFs exposed by the endpoint of the LWB to one VF of the at least one VF exposed by the device;
converting a request from the PF of the plurality of PFs exposed by the endpoint into the VF of the at least one VF exposed by the device; transmitting to the VF of the two VFs;
remembers the command word that causes
陳述85.本発明の技術的思想の一実施形態は陳述84による物品を含み、ここで、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、
前記デバイスによって露出された少なくとも一つのVFの前記VFから前記要請に対する応答を受信する段階、
前記デバイスによって露出された少なくとも一つのVFの前記VFを前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFにマッピングする段階、
前記デバイスによって露出された前記少なくとも一つのVFの前記VFからの応答を前記エンドポイントによって露出された前記複数のPFの前記PFに変換する段階、及び
前記応答を前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFを介して前記ホストに伝送する段階、
を引き起こす命令語を記憶している。
Statement 85. One embodiment of the inventive concept includes an article according to statement 84, wherein the non-transitory storage medium, when executed by a machine:
receiving a response to the request from the VF of at least one VF exposed by the device;
mapping the VF of at least one VF exposed by the device to the PF of the plurality of PFs exposed by the endpoint of the LWB;
converting a response from the VF of the at least one VF exposed by the device to the PF of the plurality of PFs exposed by the endpoint; transmitting the information to the host via the PFs of the plurality of PFs;
remembers the command word that causes
陳述86.本発明の技術的思想の一実施形態は陳述85による物品を含み、ここで、前記デバイスによって露出された前記少なくとも一つのVFの前記VFからの応答を前記エンドポイントによって露出された前記複数のPFの前記PFに変換する段階は、前記エンドポイントによって露出された前記複数のPFの前記PFの第1BAR(Base address register)及び前記デバイスによって露出された少なくとも一つのVFの前記VFの第2BARに基づいて前記応答のアドレスを修正する段階を含む。 Statement 86. One embodiment of the inventive concept includes an article according to statement 85, wherein a response from the at least one VF exposed by the device is transmitted to the multiple PFs exposed by the endpoint. The step of converting the PF to the PF of the plurality of PFs exposed by the endpoint is based on a first BAR (Base address register) of the PF of the plurality of PFs exposed by the endpoint and a second BAR of the VF of at least one VF exposed by the device. and modifying the address of the response.
陳述87.本発明の技術的思想の一実施形態は陳述85による物品を含み、ここで、前記デバイスによって露出された少なくとも一つのVFの前記VFを前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFにマッピングする段階は、前記デバイスによって露出された少なくとも一つのVFの前記VFを前記LWBの前記APP-RPの構成テーブルを使って前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFにマッピングする段階を含む。 Statement 87. One embodiment of the inventive concept includes an article according to statement 85, wherein the VF of at least one VF exposed by the device is combined with the VF of the plurality of PFs exposed by the endpoint of the LWB. The step of mapping the VFs of at least one VF exposed by the device to the plurality of PFs exposed by the endpoint of the LWB using a configuration table of the APP-RP of the LWB. The method further includes mapping to the PF.
陳述88.本発明の技術的思想の一実施形態は陳述84による物品を含み、ここで、前記エンドポイントによって露出された前記複数のPFの前記PFからの要請を前記デバイスによって露出された前記少なくとも一つのVFの前記VFに変換する段階は、前記エンドポイントによって露出された前記複数のPFの前記PFの第1BAR(Base address register)及び前記デバイスによって露出された少なくとも一つのVFの前記VFの第2BARに基づいて前記要請のアドレスを修正する段階を含む。 Statement 88. One embodiment of the inventive concept includes an article according to statement 84, wherein a request from the PF of the plurality of PFs exposed by the endpoint is transmitted to the at least one VF exposed by the device. The step of converting into the VF of the plurality of PFs exposed by the endpoint is based on a first base address register (BAR) of the PF of the plurality of PFs exposed by the endpoint and a second BAR of the VF of at least one VF exposed by the device. and modifying the address of the request.
陳述89.本発明の技術的思想の一実施形態は陳述84による物品を含み、ここで、前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFを前記デバイスによって露出された前記少なくとも一つのVFの一つのVFにマッピングする段階は、前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFを前記LWBの前記APP-RPの構成テーブルを使って前記デバイスによって露出された前記少なくとも一つのVFの一つのVFにマッピングする段階を含む。 Statement 89. One embodiment of the inventive concept includes an article according to statement 84, wherein the PF of the plurality of PFs exposed by the endpoint of the LWB is connected to the at least one VF exposed by the device. mapping the PF of the plurality of PFs exposed by the endpoint of the LWB to the at least one VF exposed by the device using a configuration table of the APP-RP of the LWB. mapping the two VFs to one VF.
陳述90.本発明の技術的思想の一実施形態は陳述84による物品を含み、ここで、前記要請を前記デバイスによって露出された前記少なくとも一つのVFの前記VFに伝送する段階は、
前記デバイス及び第2デバイスの中で選択する段階であって、前記第2デバイスは、前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFの前記デバイスによって露出された少なくとも一つのVFの前記VFへのマッピングの一部に基づいて少なくとも一つの第2PF及び少なくとも一つの第2VFを露出させる段階、及び
前記要請を前記デバイスに関連したAPP-EPに伝送する段階、
を含む。
Statement 90. One embodiment of the inventive concept includes an article according to statement 84, wherein transmitting the request to the VF of the at least one VF exposed by the device comprises:
selecting between the device and a second device, wherein the second device is selected from at least one VF exposed by the device of the PF of the plurality of PFs exposed by the endpoint of the LWB; exposing at least one second PF and at least one second VF based in part on the mapping of to the VF; and transmitting the request to an APP-EP associated with the device.
including.
陳述91.本発明の技術的思想の一実施形態は陳述84による物品を含み、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、
前記デバイスが関与するデータ伝送のためのクレジットを決定する段階、及び
前記デバイスに前記クレジットを発行する段階、
を引き起こす命令語を記憶している。
Statement 91. One embodiment of the inventive concept includes an article according to statement 84, wherein the non-transitory storage medium, when executed by a machine:
determining credits for data transmissions involving the device; and issuing the credits to the device;
remembers the command word that causes
陳述92.本発明の技術的思想の一実施形態は陳述91による物品を含み、ここで、前記デバイスに前記クレジットを発行する段階は、前記デバイスのアドレスに前記クレジットを記録する段階を含む。 Statement 92. One embodiment of the inventive concept includes an article according to statement 91, where issuing the credit to the device includes recording the credit to an address of the device.
陳述93.本発明の技術的思想の一実施形態は陳述91による物品を含み、ここで、前記デバイスに前記クレジットを発行する段階は、前記LWBのアドレスから前記クレジットを判読する段階を含む。 Statement 93. One embodiment of the inventive concept includes an article according to statement 91, where issuing the credit to the device includes decoding the credit from the address of the LWB.
陳述94.本発明の技術的思想の一実施形態は陳述91による物品を含み、ここで、前記デバイスに前記クレジットを発行する段階は、前記LWBから前記デバイスに前記クレジットを含むメッセージを伝送する段階を含む。 Statement 94. An embodiment of the inventive concept includes an article according to statement 91, where issuing the credit to the device includes transmitting a message including the credit from the LWB to the device.
陳述95.本発明の技術的思想の一実施形態は陳述75による物品を含み、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、
構成記録要請を受信する段階、及び
構成記録要請に少なくとも部分的に基づいて、前記LWBの前記エンドポイントによって露出された複数のPFを構成する段階、
を引き起こす命令語を記憶している。
Statement 95. An embodiment of the inventive concept includes an article according to statement 75, wherein the non-transitory storage medium, when executed by a machine, comprises:
receiving a configuration record request; and configuring a plurality of PFs exposed by the endpoint of the LWB based at least in part on the configuration record request;
remembers the command word that causes
陳述96.本発明の技術的思想の一実施形態は陳述95による物品を含み、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、前記LWBの前記エンドポイントによって露出された前記複数のPFの構成をミラーリングするために、前記構成記録要請に少なくとも部分的に基づいて、前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFを構成する段階を引き起こす命令語を記憶している。 Statement 96. An embodiment of the inventive concept includes an article according to statement 95, wherein the non-transitory storage medium is configured to be used by the endpoint of the LWB when executed by a machine. Instruction words that cause configuring at least one PF and at least one VF exposed by the device based at least in part on the configuration record request to mirror the configuration of the plurality of exposed PFs. I remember.
陳述97.本発明の技術的思想の一実施形態は陳述95による物品を含み、ここで、前記構成記録要請を受信する段階は、前記ホストから構成記録要請を受信する段階を含む。 Statement 97. One embodiment of the inventive concept includes an article according to statement 95, where the step of receiving a configuration record request includes receiving a configuration record request from the host.
陳述98.本発明の技術的思想の一実施形態は陳述95による物品を含み、ここで、前記構成記録要請を受信する段階は、前記デバイスから構成記録要請を受信する段階を含む。 Statement 98. One embodiment of the inventive concept includes an article according to statement 95, where the step of receiving a configuration recording request includes receiving a configuration recording request from the device.
陳述99.本発明の技術的思想の一実施形態は陳述98による物品を含み、ここで、前記構成記録要請に少なくとも部分的に基づいて前記LWBの前記エンドポイントによって露出された前記複数のPFを構成する段階は、前記デバイスから受信した構成記録要請に少なくとも部分的に基づいて、前記エンドポイントによって露出された前記複数のPFの少なくとも一つの性能(capability)を構成する段階を含む。 Statement 99. One embodiment of the inventive concept includes an article according to statement 98, wherein configuring the plurality of PFs exposed by the endpoint of the LWB based at least in part on the configuration record request. configuring a capability of at least one of the plurality of PFs exposed by the endpoint based at least in part on a configuration record request received from the device.
陳述100.本発明の技術的思想の一実施形態は陳述95による物品を含み、ここで、前記構成記録要請に少なくとも部分的に基づいて前記LWBの前記エンドポイントによって露出された前記複数のPFを構成する段階は、状態マシンを用いてSR-IOV(Single Root Input/Output Virtualization)シーケンスを実行する段階を含む。 Statement 100. One embodiment of the inventive concept includes an article according to statement 95, wherein configuring the plurality of PFs exposed by the endpoint of the LWB based at least in part on the configuration record request. The method includes executing a Single Root Input/Output Virtualization (SR-IOV) sequence using a state machine.
陳述101.本発明の技術的思想の一実施形態は陳述75による物品を含み、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、
構成判読要請を受信する段階、
前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)を決定する段階、及び
前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの設定によって構成判読要請に応答する段階、
を引き起こす命令語をさらに記憶している。
Statement 101. An embodiment of the inventive concept includes an article according to statement 75, wherein the non-transitory storage medium, when executed by a machine, comprises:
receiving a configuration reading request;
determining a configuration of at least one PF and at least one VF of the device; and responding to a configuration reading request with a configuration of at least one PF and at least one VF of the device;
It also remembers command words that cause
陳述102.本発明の技術的思想の一実施形態は陳述101による物品を含み、ここで、前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)を決定する段階は、前記デバイスの前記エンドポイントによって露出された前記複数のPFの構成を決定する段階を含む。 Statement 102. An embodiment of the technical idea of the present invention includes an article according to statement 101, wherein determining a configuration of at least one PF and at least one VF of the device includes the step of determining the configuration of the at least one PF and at least one VF of the device. determining a configuration of the plurality of PFs exposed by the method.
陳述103.本発明の技術的思想の一実施形態は陳述101による物品を含み、ここで、前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)を決定する段階は、前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)についてデバイスに問い合わせる(querying the device)段階を含む。 Statement 103. One embodiment of the technical idea of the present invention includes an article according to statement 101, wherein determining a configuration of at least one PF and at least one VF of the device includes a configuration of at least one PF and at least one VF of the device. The method includes querying the device regarding the configuration of the PF and at least one VF.
陳述104.本発明の技術的思想の一実施形態は陳述101による物品を含み、ここで、前記デバイスの少なくとも一つのPF及び少なくとも一つのVFの構成(configuration)を決定する段階は、前記構成判読要請を前記デバイスに伝達しない段階を含む。 Statement 104. An embodiment of the technical idea of the present invention includes an article according to statement 101, where the step of determining a configuration of at least one PF and at least one VF of the device includes the step of determining the configuration of at least one PF and at least one VF of the device. Includes a step of not communicating to the device.
陳述105.本発明の技術的思想の一実施形態は陳述75による物品を含み、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、前記LWBのAPP-EP及びAPP-RPを使用して、前記LWBのエンドポイントにある複数のPFの前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFに対するマッピングを動的に変更する段階を引き起こす命令語をさらに記憶している。
陳述106.本発明の技術的思想の一実施形態は陳述105による物品を含み、ここで、前記LWBのAPP-EP及びAPP-RPを使って前記LWBのエンドポイントにある複数のPFの前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFに対するマッピングを動的に変更する段階は、LWBのエンドポイントによって露出された複数のPFの少なくとも一つに対する記憶パラメーター、日付、日付の時間、帯域幅使用量、又はQoS(Quality of Service)ポリシー変更に少なくとも部分的に基づいて、前記LWBのAPP-EP及びAPP-RPを使って、前記LWBのエンドポイントにある複数のPFの前記デバイスによって露出された少なくとも一つのPF及び少なくとも一つのVFに対するマッピングを動的に変更する段階を含む。
Statement 106. One embodiment of the inventive concept includes an article according to
陳述107.本発明の技術的思想の一実施形態は陳述75による物品を含み、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、前記デバイスに対する帯域幅をスロットリングする段階を引き起こす命令語をさらに記憶している。 Statement 107. One embodiment of the inventive concept includes an article according to statement 75, wherein the non-transitory storage medium, when executed by a machine, slots bandwidth to the device. It also remembers the command word that causes the ringing step.
陳述108.本発明の技術的思想の一実施形態は陳述107による物品を含み、ここで、前記エンドポイントによって露出された複数のPFの少なくとも一つによって使用された帯域幅を測定する段階をさらに含む。 Statement 108. One embodiment of the inventive concept includes an article according to statement 107, further comprising measuring a bandwidth used by at least one of a plurality of PFs exposed by the endpoint.
陳述109.本発明の技術的思想の一実施形態は陳述107による物品を含み、ここで、前記デバイスに対する帯域幅をスロットリングする段階は、第1データパケットと第2データパケットとの間のパケット間隔(inter-packetgap)を導入する段階を含む。 Statement 109. One embodiment of the inventive concept includes an article according to statement 107, wherein throttling bandwidth for the device comprises an interval between a first data packet and a second data packet. -packetgap).
陳述110.本発明の技術的思想の一実施形態は陳述107による物品を含み、ここで、前記デバイスに対する帯域幅をスロットリングする段階は、前記ホストによって設定されたQoSポリシー、前記デバイスによって設定されたQoSポリシー、前記LWB回路の温度、前記LWBの電力消費、前記SSDの温度、又は前記SSDの電力消費に少なくとも部分的に基づいて前記デバイスに対する帯域幅をスロットリングする段階を含む。
陳述111.本発明の技術的思想の一実施形態は陳述110による物品を含み、ここで、前記ホストによって設定されたQoSポリシー、前記デバイスによって設定されたQoSポリシー、前記LWBの温度、前記LWBの電力消費、前記SSDの温度、又は前記SSDの電力消費に少なくとも部分的に基づいて前記デバイスに対する帯域幅をスロットリングする段階は、前記LWBの温度、前記LWBの電力消費、前記SSDの温度、又は前記SSDの電力消費が閾値(threshold)を超えることに少なくとも部分的に基づいて前記デバイスに対する帯域幅をスロットリングする段階を含む。
Statement 111. An embodiment of the technical idea of the present invention includes an article according to
陳述112.本発明の技術的思想の一実施形態は陳述111による物品を含み、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、前記LWBの温度、前記LWBの電力消費、前記SSDの温度、又は前記SSDの電力消費が第2閾値(threshold)を下回ることに少なくとも部分的に基づいて前記デバイスに対する帯域幅スロットリングを終了する段階を引き起こす命令語をさらに記憶している。 Statement 112. An embodiment of the technical idea of the present invention includes an article according to statement 111, wherein the non-transitory storage medium, when executed by a machine, changes the temperature of the LWB, the temperature of the LWB, further storing instructions that cause terminating bandwidth throttling for the device based at least in part on the power consumption of the SSD, the temperature of the SSD, or the power consumption of the SSD being below a second threshold. are doing.
陳述113.本発明の技術的思想の一実施形態は陳述75による物品を含み、前記非一時的記憶媒体(non-transitory storage medium)は、マシン(machine)によって実行されるとき、
前記LWBのエンドポイントによって露出された前記複数のPFのPFに対するQoSポリシーを受信する段階、及び
前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFに対するQoSポリシーを具現する段階、
を引き起こす命令語をさらに記憶している。
Statement 113. An embodiment of the inventive concept includes an article according to statement 75, wherein the non-transitory storage medium, when executed by a machine, comprises:
receiving a QoS policy for the plurality of PFs exposed by the endpoint of the LWB; and implementing a QoS policy for the plurality of PFs exposed by the endpoint of the LWB.
It also remembers command words that cause
陳述114.本発明の技術的思想の一実施形態は陳述75による物品を含み、ここで、前記LWBのエンドポイントによって露出された前記複数のPFのPFに対するQoSポリシーを受信する段階は、前記ホスト又は前記デバイスの一つから前記LWBの前記エンドポイントによって露出された前記複数のPFの前記PFに対するQoSポリシーを受信する段階を含む。 Statement 114. An embodiment of the technical idea of the present invention includes an article according to statement 75, wherein receiving a QoS policy for a PF of the plurality of PFs exposed by an endpoint of the LWB comprises: receiving a QoS policy for the PF of the plurality of PFs exposed by the endpoint of the LWB from one of the PFs.
その結果、ここで敍述した実施形態に対する広範囲な置換(permutations)の観点で、この詳細な説明とそれに伴われる資料はただ例示であるだけであり、開示の範囲を制限するものと見なされてはいけない。したがって、本発明で主張するものは以下の請求範囲及び等価物の範囲及び思想の範囲内にある全ての修正が可能である。 As a result, in view of the wide range of permutations to the embodiments described herein, this detailed description and accompanying material are exemplary only and should not be construed as limiting the scope of the disclosure. should not. Accordingly, the claimed invention is susceptible to all modifications that come within the scope and spirit of the following claims and equivalents.
105 ホスト
110 プロセッサ
115 メモリ
120 メモリコントローラー
125 記憶デバイス(例えば、SSD)
130 デバイスドライバー
135 軽量ブリッジ(LWB)
405 エンドポイント
410 APP-EP
415 APP-RP
420 ルートポート
425、430 インターフェース
435 構成テーブル
440 構成管理者
445 マルチプレクサー/デマルチプレクサー
505 SR-IOVシーケンス
510 状態マシン
105
130
405
415 APP-RP
420
Claims (20)
デバイスに連結されるルートポートであって、前記デバイスが当該ルートポートに第3PF及び仮想機能(Virtual Function、VF)を露出させる、ルートポート、及び
前記ホストに露出された前記第1PF及び前記第2PFと前記デバイスによって露出された前記第3PF及び前記VFとの間の変換のためのAPP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)、
を含み、
前記APP-EP及び前記APP-RPは、前記エンドポイントによって露出された前記第1PF及び前記第2PFと前記デバイスによって露出された前記第3PF及び前記VFとの間のマッピングを具現する、
ブリッジ回路。 an endpoint coupled to the host and exposing a first physical function (PF) and a second physical function;
a root port coupled to a device, wherein the device exposes a third PF and a virtual function (VF) to the root port; and the first PF and the second PF exposed to the host. an APP-EP (Application Layer-End point) and an APP-RP (Application Layer-Root Port) for conversion between the third PF and the VF exposed by the device;
including;
The APP-EP and the APP-RP implement a mapping between the first PF and the second PF exposed by the endpoint and the third PF and the VF exposed by the device.
bridge circuit.
第4PF及び第2VFを露出させる第2デバイス、及び
前記エンドポイントに連結され且つ前記APP-EP及び前記第2APP-EPのそれぞれに連結されて配置されたマルチプレクサー/デマルチプレクサー、
をさらに含み、
前記第2APP-EP及び前記第2APP-RPは、前記エンドポイントによって露出された第5PF及び第6PFと前記第2デバイスによって露出された前記第4PF及び前記第2VFとの間に第2マッピングを具現する、請求項1に記載のブリッジ回路。 a second APP-EP and a second APP-RP,
a second device exposing a fourth PF and a second VF, and a multiplexer/demultiplexer coupled to the endpoint and arranged to be coupled to each of the APP-EP and the second APP-EP;
further including;
The second APP-EP and the second APP-RP implement a second mapping between the fifth PF and sixth PF exposed by the endpoint and the fourth PF and second VF exposed by the second device. The bridge circuit according to claim 1.
前記ブリッジのルートポートを使ってデバイスによって露出された第1物理機能(Physical Function、PF)を羅列する段階、
前記ブリッジの前記ルートポートを使って前記デバイスによって露出された仮想機能(Virtual Function、VF)を羅列する段階、
ホストに対する露出のために、前記ブリッジのエンドポイントで第2PF及び第3PFを生成する段階、及び
前記ブリッジのAPP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)を使用して、前記ブリッジの前記エンドポイントにある前記第2PF及び前記第3PFを前記デバイスによって露出された前記第1PF及び前記VFにマッピングする段階、
を含み、
前記ブリッジの前記エンドポイントにある前記第2PF及び前記第3PFと前記デバイスによって露出された前記第1PF及び前記VFとの間の前記マッピングは、前記ブリッジ内に記憶されるマッピングである、
方法。 A method performed by a processor embodying a bridge, the method comprising:
listing first physical functions (PF) exposed by the device using the root port of the bridge;
enumerating virtual functions (VFs) exposed by the device using the root port of the bridge;
generating a second PF and a third PF at an end point of the bridge for exposure to a host, and using an APP-EP (Application Layer-End point) and an APP-RP (Application Layer-Root Port) of the bridge; mapping the second PF and the third PF at the endpoint of the bridge to the first PF and the VF exposed by the device;
including;
the mapping between the second PF and the third PF at the endpoint of the bridge and the first PF and the VF exposed by the device is a mapping stored in the bridge ;
Method.
前記ブリッジの前記ルートポートを使って前記デバイスによって露出された前記VFを羅列する段階は、前記ブリッジの前記第2ルートポートを使って前記第2デバイスによって露出された第2VFを羅列することを含み、
前記第2及び前記第3PFを前記第1PF及び前記VFにマッピングする段階は、前記第2PF、前記第3PF、第5PF、及び第6PFを、前記第1PF、前記VF、前記第4PF、及び前記第2VFにマッピングすることを含む、
請求項12に記載の方法。 The step of enumerating the first PF exposed by the device using the root port of the bridge includes enumerating the fourth PF exposed by the second device using the second root port of the bridge,
Enumerating the VFs exposed by the devices using the root port of the bridge includes enumerating second VFs exposed by the second device using the second root port of the bridge. ,
The step of mapping the second and third PFs to the first PF and the VF includes mapping the second PF, the third PF, the fifth PF, and the sixth PF to the first PF, the VF, the fourth PF, and the fourth PF. including mapping to 2VF,
13. The method according to claim 12.
前記デバイス及び前記第2デバイスの前記資源を集約(aggregating)する段階、
をさらに含む、請求項13に記載の方法。 determining resources of the device and the second device; and aggregating the resources of the device and the second device.
14. The method of claim 13, further comprising:
前記ブリッジの前記エンドポイントによって露出された前記第2PFを前記デバイスによって露出された前記VFにマッピングする段階、
前記エンドポイントによって露出された前記第2PFからの前記要請を前記デバイスによって露出された前記VFに変換する段階、及び
前記要請を前記デバイスによって露出された前記VFに伝送する段階、
をさらに含む、請求項12に記載の方法。 receiving a request from the host at the second PF exposed by the endpoint;
mapping the second PF exposed by the endpoint of the bridge to the VF exposed by the device;
converting the request from the second PF exposed by the endpoint to the VF exposed by the device; and transmitting the request to the VF exposed by the device.
13. The method of claim 12, further comprising:
前記デバイスに前記クレジットを発行する段階、
をさらに含む、請求項15に記載の方法。 determining credits for data transmissions involving the device; and issuing the credits to the device;
16. The method of claim 15, further comprising:
前記命令は、ブリッジを具現するプロセッサによって実行されるとき、
前記ブリッジのルートポートを使ってデバイスによって露出された第1物理機能(Physical Function、PF)を羅列する段階、
前記ブリッジの前記ルートポートを使って前記デバイスによって露出された仮想機能(Virtual Function、VF)を羅列する段階、
ホストに対する露出のために、前記ブリッジのエンドポイントで第2PF及び第3PFを生成する段階、及び
前記ブリッジのAPP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)を使用して、前記ブリッジの前記エンドポイントにある前記第2PF及び前記第3PFを前記デバイスによって露出された前記第1PF及び前記VFにマッピングする段階、
を引き起こし、
前記ブリッジの前記エンドポイントにある前記第2PF及び前記第3PFと前記デバイスによって露出された前記第1PF及び前記VFとの間の前記マッピングは、前記ブリッジ内に記憶されるマッピングである、
物品。 An article comprising a non-transitory storage medium having instructions stored thereon, the article comprising:
When the instructions are executed by a processor embodying a bridge ,
listing first physical functions (PF) exposed by the device using the root port of the bridge;
enumerating virtual functions (VFs) exposed by the device using the root port of the bridge;
generating a second PF and a third PF at an end point of the bridge for exposure to a host, and using an APP-EP (Application Layer-End point) and an APP-RP (Application Layer-Root Port) of the bridge; mapping the second PF and the third PF at the endpoint of the bridge to the first PF and the VF exposed by the device;
cause
the mapping between the second PF and the third PF at the endpoint of the bridge and the first PF and the VF exposed by the device is a mapping stored in the bridge ;
Goods.
前記ブリッジの前記ルートポートを使って前記デバイスによって露出された前記VFを羅列する段階は、前記ブリッジの前記第2ルートポートを使って前記第2デバイスによって露出された第2VFを羅列することを含み、
前記第2PF及び前記第3PFを前記第1PF及び前記VFにマッピングする段階は、前記第2PF、前記第3PF、第5PF、及び第6PFを、前記第1PF、前記VF、前記第4PF、及び前記第2VFにマッピングすることを含む、
請求項19に記載の物品。 The step of enumerating the first PF exposed by the device using the root port of the bridge includes enumerating the fourth PF exposed by the second device using the second root port of the bridge,
Enumerating the VFs exposed by the devices using the root port of the bridge includes enumerating second VFs exposed by the second device using the second root port of the bridge. ,
The step of mapping the second PF and the third PF to the first PF and the VF includes mapping the second PF, the third PF, the fifth PF, and the sixth PF to the first PF, the VF, the fourth PF, and the fourth PF. including mapping to 2VF,
20. Article according to claim 19.
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 US11809799B2 (en) | 2019-06-24 | 2020-04-10 | Systems and methods for multi PF emulation using VFs in SSD controller |
US16/846,271 | 2020-04-10 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021002348A JP2021002348A (en) | 2021-01-07 |
JP2021002348A5 JP2021002348A5 (en) | 2023-06-27 |
JP7446167B2 true JP7446167B2 (en) | 2024-03-08 |
Family
ID=73851757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020107708A Active JP7446167B2 (en) | 2019-06-24 | 2020-06-23 | Lightweight bridge, article including it, and method using the same |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7446167B2 (en) |
CN (1) | CN112131166B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008152787A (en) | 2006-12-19 | 2008-07-03 | Internatl Business Mach Corp <Ibm> | Method, program and system for hot plugging component into communication fabric running in data processing system (system and method for hot plug/remove of new component in running pcie fabric) |
US20170212579A1 (en) | 2016-01-25 | 2017-07-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Storage Device With Power Management Throttling |
JP2018521402A (en) | 2016-01-13 | 2018-08-02 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Switching device, peripheral component interconnect express system, and initialization method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 CN CN202010582886.0A patent/CN112131166B/en active Active
- 2020-06-23 JP JP2020107708A patent/JP7446167B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008152787A (en) | 2006-12-19 | 2008-07-03 | Internatl Business Mach Corp <Ibm> | Method, program and system for hot plugging component into communication fabric running in data processing system (system and method for hot plug/remove of new component in running pcie fabric) |
JP2018521402A (en) | 2016-01-13 | 2018-08-02 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Switching device, peripheral component interconnect express 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 |
Also Published As
Publication number | Publication date |
---|---|
CN112131166A (en) | 2020-12-25 |
JP2021002348A (en) | 2021-01-07 |
CN112131166B (en) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11809799B2 (en) | Systems and methods for multi PF emulation using VFs in SSD controller | |
US10713074B2 (en) | Method, apparatus, and system for accessing storage device | |
CN110727617B (en) | Method and system for simultaneously accessing a two-wire SSD device via a PCIe EP and a network interface | |
US9178839B2 (en) | Sharing buffer space in link aggregation configurations | |
KR102568906B1 (en) | PCIe DEVICE AND OPERATING METHOD THEREOF | |
KR102570943B1 (en) | PCIe DEVICE AND OPERATING METHOD THEREOF | |
US20220300448A1 (en) | Peripheral component interconnect express device and method of operating the same | |
US12216599B2 (en) | Peripheral component interconnect express (PCIe) device method for delaying command operations based on generated throughput analysis information | |
US12248708B2 (en) | System supporting virtualization of SR-IOV capable devices | |
US20240273050A1 (en) | Network storage method, storage system, data processing unit, and computer system | |
US9229891B2 (en) | Determining a direct memory access data transfer mode | |
EP3959611B1 (en) | Intra-device notational data movement system | |
US11003618B1 (en) | Out-of-band interconnect control and isolation | |
US11347512B1 (en) | Substitution through protocol to protocol translation | |
JP6760579B2 (en) | Network line card (LC) integration into host operating system (OS) | |
JP7446167B2 (en) | Lightweight bridge, article including it, and method using the same | |
US10936219B2 (en) | Controller-based inter-device notational data movement system | |
JP2022087808A (en) | Storage Area Network Congestion endpoint notification methods, systems, and computer programs | |
US20200348874A1 (en) | Memory-fabric-based data-mover-enabled memory tiering system | |
US11513690B2 (en) | Multi-dimensional I/O service levels | |
US20250086025A1 (en) | Method of operating storage controller and electronic system | |
US8856481B1 (en) | Data processing system having host-controlled provisioning of data storage resources | |
US11281612B2 (en) | Switch-based inter-device notational data movement system | |
KR20240140354A (en) | Storage controller and operation method of electronic system | |
KR20230142095A (en) | Interface device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230619 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230619 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20230619 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231025 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240115 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7446167 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |