[go: up one dir, main page]

JP7446167B2 - Lightweight bridge, article including it, and method using the same - Google Patents

Lightweight bridge, article including it, and method using the same Download PDF

Info

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
Application number
JP2020107708A
Other languages
Japanese (ja)
Other versions
JP2021002348A (en
JP2021002348A5 (en
Inventor
ピー.カチャレ ラムダス
ピー.ピント オスカー
フィシャー スティーブン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US16/846,271 external-priority patent/US11809799B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2021002348A publication Critical patent/JP2021002348A/en
Publication of JP2021002348A5 publication Critical patent/JP2021002348A5/ja
Application granted granted Critical
Publication of JP7446167B2 publication Critical patent/JP7446167B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical 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.

本発明の技術的思想の一実施形態によるSSDのVFを使ってLWB(Lightweight Bridge)によって露出されたPF(Physical Functions)をエミュレートすることができるLWBを含むマシンを示す。1 illustrates a machine including an LWB that can emulate physical functions (PF) exposed by a light bridge (LWB) using a VF of an SSD according to an embodiment of the technical idea of the present invention; 図1のマシンの追加詳細事項を示す。2 shows additional details of the machine of FIG. 1; 図1のSSDの詳細事項を示す。Details of the SSD in FIG. 1 are shown. 図4a~図4cは、本発明の技術的思想の多様な実施形態による図1のLWBを示す。4a-4c illustrate the LWB of FIG. 1 according to various embodiments of the inventive idea. 図4a~図4cは、本発明の技術的思想の多様な実施形態による図1のLWBを示す。4a-4c illustrate the LWB of FIG. 1 according to various embodiments of the inventive idea. 図4a~図4cは、本発明の技術的思想の多様な実施形態による図1のLWBを示す。4a-4c illustrate the LWB of FIG. 1 according to various embodiments of the inventive idea. 図4a~図4cの構成管理者の詳細事項を示す。Figures 4a to 4c show details of the configuration administrator. 図1のLWBによって露出されたPFと図1のSSDによって露出されたPF/VFとの間のマッピングを示す。2 shows a mapping between the PF exposed by the LWB of FIG. 1 and the PF/VF exposed by the SSD of FIG. 1. FIG. 図1のホストからの構成記録要請をプロセッシングする図1のLWBを示す。2 illustrates the LWB of FIG. 1 processing a configuration record request from the host of FIG. 1; 図1のホストからの構成判読要請をプロセッシングする図1のLWBを示す。2 illustrates the LWB of FIG. 1 processing a configuration reading request from the host of FIG. 1; LWB内でアドレス変換を処理する図4a~図4cのAPP-EP(Application Layer-End point)及びAPP-RP(Application Layer-Root Port)を示す。4A to 4C illustrate an APP-EP (Application Layer-End point) and an APP-RP (Application Layer-Root Port) that handle address translation within the LWB; 図1のLWB内で変更される図6のマッピングを示す。7 shows the mapping of FIG. 6 modified within the LWB of FIG. 1; FIG. 関連付けられたQoS(Quality of Service)ポリシーを有する図1のLWBによって露出されたPFを示す。2 shows a PF exposed by the LWB of FIG. 1 with an associated quality of service (QoS) policy; FIG. 図12a及び図12bは、帯域幅スロットリング(bandwidth throttling)を行う図1のLWBを示す。12a and 12b illustrate the LWB of FIG. 1 with bandwidth throttling. 図12a及び図12bは、帯域幅スロットリング(bandwidth throttling)を行う図1のLWBを示す。12a and 12b illustrate the LWB of FIG. 1 with bandwidth throttling. 図1のSSDにクレジットを発行する図1のLWBを示す。2 illustrates the LWB of FIG. 1 issuing credits to the SSD of FIG. 1; 図14a及び図14bは、本発明の技術的思想の一実施形態によって、図1のLWBが図1のSSDによって露出されたPF/VFを識別し、LWBからPFを露出させ、図1のLWBによって露出されたPFと図1のSSDによって露出されたPF/VFとの間のマッピングを生成する例示的な過程のフローチャートを示す。14a and 14b show that the LWB of FIG. 1 identifies the PF/VF exposed by the SSD of FIG. 1, exposes the PF from the LWB, and the LWB of FIG. 2 shows a flowchart of an example process of generating a mapping between a PF exposed by a PF and a PF/VF exposed by an SSD of FIG. 1 . 図14a及び図14bは、本発明の技術的思想の一実施形態によって、図1のLWBが図1のSSDによって露出されたPF/VFを識別し、LWBからPFを露出させ、図1のLWBによって露出されたPFと図1のSSDによって露出されたPF/VFとの間のマッピングを生成する例示的な過程のフローチャートを示す。14a and 14b show that the LWB of FIG. 1 identifies the PF/VF exposed by the SSD of FIG. 1, exposes the PF from the LWB, and the LWB of FIG. 2 shows a flowchart of an example process of generating a mapping between a PF exposed by a PF and a PF/VF exposed by an SSD of FIG. 1 . 図15a及び図15bは、図1のLWBが図1のホストから処理要請を受信する例示的な過程のフローチャートを示す。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. 図15a及び図15bは、図1のLWBが図1のホストから処理要請を受信する例示的な過程のフローチャートを示す。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. 図4a~図4cのAPP-EP及びAPP-RPが図1のホスト及び図1のSSD間でアドレスを変換する例示的な過程のフローチャートを示す。4 shows a flowchart of an exemplary process for the APP-EP and APP-RP of FIGS. 4a-4c to translate addresses between the host of FIG. 1 and the SSD of FIG. 1; FIG. 図1のLWBが図1のSSDにクレジットを発行する例示的な過程のフローチャートを示す。2 shows a flowchart of an exemplary process for the LWB of FIG. 1 to issue credits to the SSD of FIG. 1; 図1のLWBが構成記録要請を処理する例示的な過程のフローチャートを示す。2 illustrates a flowchart of an example process by which the LWB of FIG. 1 processes a configuration record request. 図1のLWBが構成判読要請を処理する例示的な過程のフローチャートを示す。2 illustrates a flowchart of an exemplary process by which the LWB of FIG. 1 processes a configuration read request. 図1のLWBがQoSポリシーを図1のLWBによって露出されたPFに関連させる例示的な過程のフローチャートを示す。2 shows a flowchart of an example process by which the LWB of FIG. 1 associates QoS policies with PFs exposed by the LWB of FIG. 1; 図1のLWBが図1のLWBによって露出されたPFと図1のSSDによって露出されたPF/VFのマッピングを動的に変更する例示的な過程のフローチャートを示す。2 shows a flowchart of an example process in which the LWB of FIG. 1 dynamically changes the mapping of the PF exposed by the LWB of FIG. 1 and the PF/VF exposed by the SSD of FIG. 1. 図22a及び図22bは、図1のLWBが帯域幅スロットリングを行う例示的な過程のフローチャートを示す。22a and 22b show a flowchart of an exemplary process by which the LWB of FIG. 1 performs bandwidth throttling. 図22a及び図22bは、図1のLWBが帯域幅スロットリングを行う例示的な過程のフローチャートを示す。22a and 22b show a flowchart of an exemplary process by which the LWB of FIG. 1 performs bandwidth throttling.

以下、本発明の実施形態を詳細に参照し、その例示は添付図面に示す。以下の開示を実施するための具体的な内容では、本発明の徹底的な理解ができるようにするために、多数の特定の詳細事項を説明する。しかし、当該技術分野の通常の技術者はこのような特定の詳細事項なしに本発明を実施することができるというのが理解されなければならない。他の場合で、公知の方法、過程、コンポーネント、回路及びネットワークは実施形態の様態を不必要にあいまいにしないように詳細に説明しない。 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 machine 105 that can be called a host. Machine 105 may include a processor 110. Processor 110 can be any of a variety of processors. For example, it may be an Intel Xeon, Celeron, Itanium, or Atom processor, an AMD Opteron processor, an ARM processor, etc. Although FIG. 1 shows a single processor 110 of machine 105, machine 105 can include multiple processors, each of which can be a single core or multi-core processor, and can be made in any desired combination.

また、マシン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を含むことができる。 Machine 105 may also include memory 115. The memory 115 includes flash memory, DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), persistent RAM, FRAM (Persistent Random Access Memory), and FRAM. RAM (Ferroelectric Random Access Memory) or MRAM (Magnetoresistive Random Access Memory) It may be any variety of memory such as NVRAM (Non-Volatile Random Access Memory). Also, memory 115 may be any desired combination of different memory types. Machine 105 can also include a memory controller 120 that can be used to manage access to memory 115.

また、マシン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 machine 105 can include an SSD (Solid State Drive) 125. The SSD 125 can be used to store data and the physical functions (PF) and virtual functions (VF) used by the processor 110 (and the software running thereon) to operate the various capabilities of the SSD 125. can be fully exposed. Although FIG. 1 shows an SSD 125, embodiments of the inventive concept may include any type of device that provides PF and VF. For example, other types of storage devices can be used in place of the SSD 125, such as hard disk drives that provide PF and VF, such as devices that provide basic functions other than data storage. In the remainder of this document, any references to SSD 125 include references to other types of devices that can provide PF/VF. In some embodiments of the technical idea of the present invention, the SSD 125 can be connected to a PCIe (Peripheral Component Interconnect Express) bus, and can provide a PCIe PF and VF. Embodiments of can use other interfaces. Processor 110 may execute a device driver 130 that may assist in accessing SSD 125.

SSD 125とマシン105の残り部分との間にはLWB 135が位置することができる。LWBはSSD 125とマシン105の残り部分との間のブリッジとして作用することができ、VFの代わりにPFとしてSSD 125の機能を露出させることができる。 LWB 135 may be located between SSD 125 and the remainder of machine 105. The LWB can act as a bridge between the SSD 125 and the rest of the machine 105, exposing the functionality of the SSD 125 as a PF instead of a VF.

図1はマシン105をサーバー(独立型又はラックサーバーであり得る)として示すが、本発明の技術的思想の実施形態は、限定なしに任意の所望類型のマシン105を含むことができる。例えば、マシン105は、デスクトップ型コンピュータ又はラップトップ型コンピュータ又は本発明の技術的思想の実施形態から利益が得られる任意の他のマシンに代替されることができる。また、マシン105は、特殊携帯用コンピュータマシン、タブレット型コンピュータ、スマートフォン及びその他のコンピュータマシンを含むことができる。また、SSD 125からのデータにアクセスすることができるアプリケーションは、マシン105から離隔されて任意の類型(有線、無線、グローバルなど)の一つ以上のネットワークを横断するネットワーク連結によってマシン105にアクセスすることができる他のマシンに位置し得る。 Although FIG. 1 depicts machine 105 as a server (which may be a stand-alone or rack server), embodiments of the inventive concept may include any desired type of machine 105 without limitation. For example, machine 105 may be replaced by a desktop or laptop computer or any other machine that would benefit from embodiments of the present invention. Machines 105 may also include specialized portable computer machines, tablet computers, smart phones, and other computer machines. Applications that can access data from the SSD 125 may also be remote from the machine 105 and access the machine 105 through network connections that traverse one or more networks of any type (wired, wireless, global, etc.). Can be located on other machines.

図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, machine 105 generally includes one or more processors 110, which may include a memory controller 120 and a clock 205, which may be used to orchestrate the operation of the components of device 105. Processor 110 may also be coupled to memory 115, which may include, by way of example, random access memory (RAM), read-only memory (ROM), or other state storage media. Processor 110 may also be coupled to a storage device 125 and a network connector 210, which may be, for example, an Ethernet connector or a wireless connector. Processor 110 can also be coupled to bus 215, which includes, among other components, a user interface 220 and an I/O interface that can be managed using I/O engine 225. Port can be attached.

図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 125 includes a HIL 305, an SSD controller 310, and various flash memory chips 315-1 through 315-8 ("flash memory storage") that can be incorporated into the various channels 320-1 through 320-4. ”) can be included. HIL 305 may manage communications between SSD 125 and other components (such as processor 110 of FIG. 1 and LWB 135 of FIG. 1). HIL 305 may also manage communications with devices that are separate from SSD 125, ie, not considered part of device 105, but that communicate with SSD 125, such as through one or more network connections. Such communications may include read requests to read data from the SSD 125, record requests to write data to the SSD 125, and delete requests to delete data from the SSD 125. HIL 305 can manage interfaces through only a single port, or can manage interfaces through multiple ports. Alternatively, SSD 125 can include multiple ports, each of which can have an individual HIL 305 to manage interfaces across its ports. Also, embodiments of the technical idea of the present invention can mix possibilities (e.g., an SSD with three ports has one HIL to manage one port and one HIL to manage the other two ports). and a second HIL for managing ports).

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内でデータが一ブロックから他のブロックに移動するとき、報告される必要がない。 SSD controller 310 may manage reading and recording operations, as well as garbage collection and other operations, on flash memory chips 315-1 through 315-8 using a flash memory controller (not shown in FIG. 3). SSD controller 310 may include FTL 325, flash controller 330, and endpoints 335. FTL manages the mapping of logical block addresses (LBA) (used by host 105 in FIG. 1) to physical block addresses (PBA) where data is actually stored on SSD 310. be able to. By using FTL 325, host 105 of FIG. 1 does not need to be informed when data moves from one block to another within SSD 125.

フラッシュコントローラー330は、フラッシュチップ315-1~315-8へのデータ記録及びそれからのデータ判読を管理することができる。エンドポイント335は、(図1のホスト105又は図1のLWB 135などの)さらに他のデバイス上のルートポートに連結されることができるSSD 125に対するエンドポイントとして動作することができる。 The flash controller 330 can manage data recording to and reading from the flash chips 315-1 to 315-8. Endpoint 335 can act as an endpoint to SSD 125, which can be coupled to a root port on yet another device (such as host 105 in FIG. 1 or LWB 135 in FIG. 1).

図3はSSD 125が8個のフラッシュメモリチップ315-1~315-8が4個のチャネル320-1~320-4に組み込まれたもののように示されているが、本発明の技術的思想の実施形態は、複数のフラッシュメモリチップが複数のチャネルに組み込まれたものをサポートすることができる。同様に、図3はSSDの構造を示したが、他の記憶デバイス(例えば、ハードディスクドライブ)は類似の潜在的利点を有する異なる構造を使って具現することができる。 Although FIG. 3 shows the SSD 125 as having eight flash memory chips 315-1 to 315-8 incorporated into four channels 320-1 to 320-4, the technical idea of the present invention Embodiments of can support multiple flash memory chips integrated into multiple channels. Similarly, although FIG. 3 shows the structure of an SSD, other storage devices (eg, hard disk drives) can be implemented using different structures with similar potential benefits.

図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, LWB 135 is shown as including endpoint 405, APP-EP 410, APP-RP 415 and root port 420. Endpoint 405 can be used to communicate with the root port of another device, such as host 105 in FIG. In Figure 4a, endpoint 405 is shown as using a PCIe 3rd generation interface that exposes 16 PFs to upstream devices and has 4 lanes that can be used to communicate with upstream devices. . Thus, the interface to host 105 in FIG. 1 may be a PCIe 3 generation interface with four lanes, as illustrated by interface 425. Similarly, root port 420 can communicate with other device endpoints, such as SSD 125. Thus, the interface to SSD 125 may be a PCIe 3 generation interface with four lanes, as illustrated by interface 430. In FIG. 4a, root port 420 is shown as using a PCIe generation 3 interface with four lanes that can be used to communicate with downstream devices. In FIG. 4a, root port 420 is shown as having one PF and 15 VFs enumerated by SSD 125, and endpoint 405 is shown as exposing 16 PFs. One PF exposed by endpoint 405 corresponds to each function (physical or virtual) exposed by SSD 125.

エンドポイント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への通信方式との間には関係がないことができる。 Endpoint 405 may communicate with APP-EP 410, which in turn may communicate with APP-RP 415. APP-EP 410 and APP-RP 415 can manage the translation of information between endpoint 405 and root port 420. FIG. 4a shows details of how endpoint 405 communicates with APP-EP 410, how APP-EP 410 communicates with APP-RP 415, or how APP-RP 415 communicates with root port 420. No, since any desired communication mechanism can be used. For example, endpoint 405, APP-EP 410, APP-RP 415, and root port 420 may have PCIe or other interfaces such as an AXI (Advanced eXtensible Interface) bus that has the desired version of the interface and includes the desired number of data bus widths. It is possible to communicate using the bus. Alternatively, endpoint 405, APP-EP 410, APP-RP 415, and root port 420 may communicate using a proprietary messaging scheme using any desired bus/interface. Embodiments of the inventive concept may also include other communication mechanisms between the endpoint 405, APP-EP 410, APP-RP 415, and root port 420. There may be no relationship between the internal communication methods of LWB 135 and the communication methods from LWB 135 to host 105 or SSD 125 of FIG.

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-RP 415 may include a configuration table 435. Configuration table 435 may store configuration information about LWB 135. Examples of such configuration information include the mapping between the PF exposed by endpoint 405 and the PF/VF provided by SSD 125 (and determined by enumeration via root port 420). Can be done. Additionally, the configuration information stored in the configuration table 435 may include information about a QoS policy (also referred to as an SLA (Service Level Agreement)) that may be related to a particular PF exposed by the endpoint 405. . Configuration manager 440 can store information in configuration table 435 for use in configuring LWB 135 . The configuration manager 440 can also be used to determine information about the functionality exposed by the SSD 125, providing similar (or the same) functionality (but using only PF rather than PF and VF). Endpoint 405 can be programmed to: Although the details of what the configuration manager 440 does may depend on the specific functionality provided by the SSD 125 (the configuration manager 440 may end up providing a set of PFs that match the PFs and VFs provided by the SSD 125), The principle is generally to determine the configuration of the individual PFs/VFs exposed by the SSD 125, and set the appropriate number of PFs exposed by the endpoint 405. It can be summarized as follows: and configuring these PFs to match the configuration of the PF/VFs exposed by SSD 125.

図4aはAPP-EP 410及びAPP-RP 415を個別コンポーネントとして示すが、本発明の技術的思想の実施形態はこれらの両コンポーネントを単一コンポーネントに結合することができる(前述したように、APP-EP 410及びAPP-RP 415の両者の機能を処理する責任がある)。実際に、LWB 135の全体は互いに通信する別個のコンポーネントではなくて単一ユニットに具現されることができる。LWB 135(だけでなく、エンドポイント405、APP-EP 410、APP-RP 415、ルートポート420及び構成管理者440)は任意の所望方式を使って具現することができる。本発明の技術的思想の実施形態は、他の可能性の中でも、適切なソフトウェアを有する汎用プロセッサ、FPGA(Field Programmable Gate Array)、ASIC(Application-Specific Integrated Circuit)、GPU(Graphics Processing Unit)及びGPGPU(General Purpose GPU)を使ってLWB 135(及び/又はそのコンポーネントを個別的に及び/又は集合的に)具現することができる。 Although FIG. 4a shows APP-EP 410 and APP-RP 415 as separate components, embodiments of the present inventive concept may combine both of these components into a single component (as previously discussed, APP-EP 410 and APP-RP 415 - responsible for handling the functionality of both the EP 410 and the APP-RP 415). In fact, the entire LWB 135 may be embodied in a single unit rather than separate components communicating with each other. LWB 135 (as well as endpoint 405, APP-EP 410, APP-RP 415, root port 420, and configuration manager 440) may be implemented using any desired scheme. Embodiments of the technical idea of the invention can be implemented on general-purpose processors, FPGAs (Field Programmable Gate Arrays), ASICs (Application-Specific Integrated Circuits), GPUs (Graphics Pros) with suitable software, among other possibilities. cessing Unit) and LWB 135 (and/or its components individually and/or collectively) may be implemented using a General Purpose GPU (GPGPU).

図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 root port 420 is shown as having one PF and 15 VFs enumerated from SSD 125, SSD 125 may expose any number (0 or more) of PFs and VFs. Yes (every exposed VF depends in part on the PF's hardware, but there must be at least one exposed PF that provides the hardware for any exposed VF). Similarly, although endpoint 405 is shown as exposing 16 PFs, endpoint 405 can expose any number (zero or more) of PFs to host 105 in FIG. Note that while endpoint 405 exposes the same number of total capabilities as SSD 125, there does not need to be a one-to-one correspondence between the capabilities exposed by SSD 125 and the capabilities exposed by endpoint 405. For example, some functions exposed by SSD 125 may not have a corresponding PF exposed by endpoint 405, or a single PF exposed by endpoint 405 may have multiple functions exposed by SSD 125 (physical and/or virtual). As an example of the former, a recording request can be communicated to only one SSD at a time, which leaves the ability to support recording requests to non-selected SSDs that have no corresponding PF exposed by the endpoint 405. As an example of the latter, in an embodiment of the inventive concept where the LWB 135 is coupled to multiple SSDs (as shown in FIG. Although only one PF can be exposed to the host 105 of FIG. 1 by the endpoint 405, a request by the host 105 of FIG. 1 to perform garbage collection is transmitted to all SSDs coupled to the LWB 135. Can be done.

同様な方式で、図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 LWB 135 communicating with host 105 (via interface 425) and SSD 125 (via interface 430) of FIG. 1 using PCIe3 generation with four lanes. Other embodiments of the inventive concept may use other generations of PCIe buses/interfaces, or other numbers of lanes, or other types of buses, such as AXI (Advanced eXtensible Interface) buses. . For example, FIG. 4b is similar to FIG. 4a except that interface 425 and interface 430 use PCIe3 generation with eight lanes instead of four.

本発明の技術的思想の一部実施形態で、単一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 single SSD 125 may not provide sufficient functionality for the host 105 of FIG. For example, if the SSD 125 of FIGS. 4a and 4b provides only one PF and seven VFs, thereby not providing a particular functionality desired by the host 105 of FIG. It can be replaced by another device. Alternatively, LWB 135 can be coupled to multiple devices, as shown in Figure 4c.

図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, LWB 135 is shown coupled to SSDs 125-1 and 125-2 via interfaces 430-1 and 430-2, respectively. Since SSDs 125-1 and 125-2 each provide 1 PF and 7 VFs (as seen from root ports 420-1 and 420-2), neither SSD 125-1 nor 125-2 It is not possible to provide 16 functions individually. However, SSD 125-1 and SSD 125-2 together provide 16 functions. Therefore, by aggregating the resources (exposed functions, etc.) of SSDs 125-1 and 125-2, LWB 135 can provide a total of 16 PFs without a single SSD providing all functions. can do.

図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 LWB 135 includes only one endpoint 405, two APP-EPs 410-1 and 410-2, APP-RPs 415-1 and 415-2 and a root port 420-1, respectively. and 420-2. In this manner, LWB 135 can aggregate the functionality provided by SSDs 125-1 and 125-2 to expose all 16 functionality from a single endpoint (endpoint 405). However, LWB 135 may also include a multiplexer/demultiplexer 445 because the various PFs exposed by endpoint 405 may be mapped to functions on SSDs 125-1 and 125-2. Multiplexer/demultiplexer 445 sends requests related to a particular exposed PF of endpoint 405 to an appropriate PF with a communication path coupled to SSD 125-1 or 125-2 providing the corresponding PF or VF. APP-EP 410-1 or 410-2. Although FIGS. 4a and 4b do not show the multiplexer/demultiplexer 445 (as there is only one SSD 125 coupled to the LWB 135), the concept of the present invention is that the LWB 135 is coupled to only one SSD 125. In embodiments, LWB 135 may still include a multiplexer/demultiplexer 445. While the multiplexer/demultiplexer 445 may not add any functionality, there is also no real cost associated with including the multiplexer/demultiplexer 445 (although the LWB 135 only connects to a single device). If it is not possible, there is no benefit to including a multiplexer/demultiplexer).

本発明の技術的思想の実施形態は、ただ露出された機能の他に、資源を集約(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), LWB 135 can The host 105 of FIG. 1 can be provided with a 16 lane PCIe third generation bus/interface. In the same manner, the bandwidth provided by each of SSD 125-1 and 125-2 is aggregated, and the LWB reports the same bandwidth as the sum of the bandwidth provided separately by SSD 125-1 and 125-2, respectively. (advertise). Embodiments of the inventive concept may also aggregate other resources of functionality, PCIe lanes or bandwidth.

図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, LWB 135 is shown separately from SSD 125. However, embodiments of the inventive concept may combine these two devices into a single unit. That is, SSD 125 may include within its case LWB 135 located in front of HIL 305 in FIG. 3 (or at least in front of SSD controller 310 in FIG. 3). Embodiments of the inventive concept are not limited to including LWB 135 within a single SSD. Additionally, a single housing containing multiple SSDs may include the LWB 135 to achieve the implementation shown in FIG. 4c. For the purposes of this document, the term “connected” or similar terminology refers to the term “connected” or similar terms because it physically shares any hardware with the device, or because the LWB 135 is physically connected to the SSD 125. , refers to any device that communicates with LWB 135, regardless of which interface it is connected to.

上述したように、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 host 105 of FIG. 1 must implement SR-IOV software in order to access the exposed VFs. This SR-IOV software adds delay to communication with the device. However, since the SR-IOV sequence used to manage access to a device's VF is previously known, the SR-IOV sequence can be implemented using a state machine, and the host 105 in FIG. The burden of having to use SR-IOV to access VFs can be reduced. Also, since the state machine can be implemented using hardware, using the state machine in the LWB 135 instead of the SR-IOV software in the host 105 of FIG. 1 can reduce the delay in request processing. . Using a state machine within the LWB 135 to implement the SR-IOV sequence essentially offloads the entire burden of the SR-IOV protocol from the host to the device. In other words, host 105 of FIG. 1 may not be able to know if any implementation of SR-IOV exists in the device with which host 105 of FIG. 1 communicates.

図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 configuration manager 440 of FIGS. 4a-4c. The configuration manager 440 may include a single root input/output virtualization (SR-IOV) sequence 505 and a state machine 510. SR-IOV sequence 505 may be a sequence implemented in SR-IOV software within host 105 of FIG. 1 and may be performed using state machine 510. The SR-IOV sequence 505 can be stored in a ROM (Read-only memory) within the configuration manager 440. The state machine 510, together with the LWB 135 itself and its components shown in FIGS. 4a-4c, can be implemented using a general purpose processor, FPGA, ASIC, GPU or GPGPU, among other possibilities. .

図6は図1のLWB 135によって露出されたPFと図1のSSD 125(又は図4cのSSD 125-1及び125-2)によって露出されたPF/VFとの間のマッピングを示す。図6で、PF 605は図1のLWB 135によって露出されたPFである(より具体的に、図4a~図4cのエンドポイント405によって露出されたPF)。一方、PF/VF 610は図1のSSD 125によって露出される機能(物理的及び仮想の両方)である。そして、マッピング615は、PF 605とPF/VF 610との間のマッピングを示すことができる。図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 LWB 135 of FIG. 1 and the PF/VF exposed by SSD 125 of FIG. 1 (or SSD 125-1 and 125-2 of FIG. 4c). In FIG. 6, PF 605 is the PF exposed by LWB 135 of FIG. 1 (more specifically, the PF exposed by endpoint 405 of FIGS. 4a-4c). PF/VF 610, on the other hand, is the functionality (both physical and virtual) exposed by SSD 125 in FIG. Mapping 615 may then indicate the mapping between PF 605 and PF/VF 610. Although the configuration administrator 440 of FIGS. 4a-4c can use any desired mechanism to determine which PFs in PF 605 are mapped to which PFs/VFs in PF/VF 610, FIG. The mapping shown is illustrative and fundamentally arbitrary. The mapping may be implemented by considering guidance and/or policy set by the host 105 in FIG. 1 (or a BaseBoard Management Controller (BMC) in the host 105 in FIG. 1) or the SSD 125 in FIG. can.

図7は図1のホスト105からの構成記録要請をプロセッシングする図1のLWB 135を示す。図7で、図1のLWB 135(より具体的に、エンドポイント405)は構成記録要請705を受信することができる。そして、エンドポイント405は構成記録要請705をローカルで処理し、構成記録要請705に含まれた全ての変更を遂行することができる。 FIG. 7 illustrates LWB 135 of FIG. 1 processing configuration record requests from host 105 of FIG. In FIG. 7, LWB 135 (more specifically, endpoint 405) of FIG. 1 may receive a configuration record request 705. The endpoint 405 can then process the configuration record request 705 locally and perform any changes included in the configuration record request 705.

構成記録要請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 configuration record request 705 may not require changes to SSD 125. For example, a QoS policy set by host 105 in FIG. 1 may only affect the PF exposed by endpoint 405 and does not require any changes within SSD 125. However, in some situations, the configuration record request 705 may request modification of the SSD 125. For example, a configuration record request may change data about basic functionality of the SSD 125, rather than data that can only be managed by the LWB 135 of FIG. In that situation, endpoint 705 may communicate configuration record request 705 to SSD 125 via root port 420 (as indicated by dotted arrows 710 and 715). The configuration record request 705 is communicated to the root port 420 via the APP-EP 410 of FIGS. 4a-4c and the APP-RP 415 of FIGS. 4a-4c, or via the configuration manager 440 of FIGS. 4a-4c. can be done. The configuration table 435 of FIGS. 4a and 4b can be used to determine whether the configuration record request 705 must also be applied to the SSD 125 (if the configurations of the endpoint 405 and SSD 125 are mirrored to each other). ).

図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 configuration record request 705. However, once the details of the configuration record request 705 are known, changes to the endpoint 405 (and possibly the SSD 125) can be easily accomplished.

上述したように、エンドポイント405とSSD 125の構成は互いにミラーリングすることが好ましい。しかし、前述したように、エンドポイント405のみに適用される(又はエンドポイント405がこのような変更を処理することができるからSSD 125には重要ではない)一部の構成があり得る。構成変更がSSD 125に重要ではない場合、このような構成変更がSSD 125に伝達される必要はない。 As mentioned above, the configurations of endpoint 405 and SSD 125 preferably mirror each other. However, as mentioned above, there may be some configurations that apply only to endpoint 405 (or are not important to SSD 125 since endpoint 405 can handle such changes). If configuration changes are not important to SSD 125, such configuration changes need not be communicated to SSD 125.

図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, configuration record request 705 is described as originating from host 105 of FIG. However, embodiments of the inventive concept may support SSD 125 requesting configuration changes of endpoint 405 of FIGS. 4a-4c. That is, the SSD 125 of FIG. 1 can dynamically request changes to the configuration, features, or capabilities of the PF exposed by the endpoint 405 of FIGS. 4a-4c from the host 105 of FIG. 1 during runtime. . For example, SSD 125 of FIG. 1 can increase or decrease the number of interrupt vectors for the PF exposed by endpoint 405 of FIGS. 4a-4c. Such changes can be made by the host 105 of FIG. 1 (via the LWB 135 of FIG. 1) using a higher level storage communication protocol such as Non-Volatile Memory Express (NVMe). This may be due to changes in application requirements communicated to SSD 125.

図8は図1のホスト105から構成判読要請をプロセッシングする図1のLWB 135を示す。図8で、エンドポイント405は、図1のホスト105から構成判読要請805を受信することができる。エンドポイント405は、要請された構成情報を読み出し、これを構成情報810として図1のホスト105にリターンすることができる。 FIG. 8 illustrates the LWB 135 of FIG. 1 processing configuration read requests from the host 105 of FIG. In FIG. 8, endpoint 405 may receive a read configuration request 805 from host 105 of FIG. Endpoint 405 can read the requested configuration information and return it as configuration information 810 to host 105 of FIG.

図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 configuration record request 705 of FIG. 7, the configuration reading request 805 can be communicated to the SSD 125 to be read from the SSD 125. Accordingly, the configuration read request 805 can be transmitted to the root port 420 and the SSD 125 as configuration read requests 815 and 820, respectively, and the configuration information 810 is returned as configuration information 825 and 830. However, because the configuration of the endpoint 405 should mirror the configuration of the SSD 125, it may not be necessary to communicate the read configuration request 805 to the SSD 125 to determine the requested configuration information. Also, like the configuration record request 705 of FIG. 7, the configuration reading request 805 can be sent via the APP-EP 410 of FIGS. 4a-4c and the APP-RP 415 of FIGS. 4a-4c, or configuration manager 440 to root port 420.

図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, address 905 may be an address received from host 105 of FIG. 1 (eg, an NVMe register that host 105 of FIG. 1 requests to read). The APP-EP 410 can then pull a host BAR (Base address register) 910 for the PF that is invoked by the host 105 of FIG. The APP-RP 415 may then add an SSD BAR 915 for the PF/VF to which the requested PF of the endpoint 405 of FIGS. 4a-4c is mapped, thus generating an SSD address 920. be able to. In this manner, APP-EP 410 and APP-RP 415 can translate addresses from the host's perspective into addresses that can be processed by SSD 125 of FIG.

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-RP 415 can subtract SSD BAR 915 from SSD address 920, and APP-EP 410 can generate host address 905 by adding host BAR 910.

図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 LWB 135 of FIG. There are various reasons why mapping 615 can be changed. For example, storage parameters 1005 can trigger changes to mapping 615. For example, when the available capacity on a particular SSD falls below a threshold amount of free space, new recording requests may be transmitted to other SSDs coupled to LWB 135 in Figure 1, such as SSD 125-2 in Figure 4c. can be done. Alternatively, the date 1010 or the time of the date 1015 can trigger a change to the mapping 615. For example, peak hours for a particular request on a particular host 105 may be between 6:30 a.m. and 8:00 a.m., and between 5:00 p.m. and 9:00 p.m. The bandwidth associated with the PF may increase during certain times and decrease at other times. The date 1010 and date time 1015 can be generalized with any date and/or time related trigger without having to be specified using existing or known date/time values. For example, even if the specific time such a request begins is not known (the duration of a sporting event is approximately known, but can be shorter or longer depending on the event itself), moving home when a sporting competition ends Fans can request directions using their smartphone's GPS application. Bandwidth usage 1020 itself may also trigger changes to mapping 615, for example, to maintain a balanced load on the SSD coupled to LWB 135 of FIG. 1. Finally, a change 1025 in the QoS policy (referred to as policy in the figure) can trigger a change in the mapping 615. For example, adding a new QoS policy may require changes to the feature mapping method. Embodiments of the inventive concept may also include other triggers for changing the mapping 615. Regardless of the trigger, as a result of the change, mapping 615 can be replaced by mapping 1030, which still represents the PF exposed by endpoint 405 in FIGS. 4a-4c as exposed by SSD 125 in FIG. It maps to PF/VF, but probably in another arrangement.

図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 endpoint 405 of FIGS. 4a-4c) is shown with a single QoS policy 1105 associated with the exposed PF. However, embodiments of the inventive concept may include exposed PFs with any number of associated QoS policies. For example, some PFs exposed by endpoints 405 in FIGS. 4a-4c may not have associated QoS policies. Other PFs exposed by endpoint 405 in FIGS. 4a-4c may have more than one associated QoS policy.

図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 QoS policy 1105 associated with the PF exposed by the endpoint 405 of FIGS. 4a-4c, the LWB 135 of FIG. 1 can enforce that QoS policy according to its specifications. In other words, the details of how the LWB 135 of FIG. 1 enforces a particular QoS policy may not be discussed here since specifications may vary widely. However, as an example, a QoS policy 1105 may specify a maximum (and/or minimum) bandwidth for a particular PF (thus ensuring that a particular PF receives a fair share of the bandwidth). or ensure that a specific PF is allocated a specified bandwidth). 1 by preventing communications using the corresponding PF/VF on the SSD 125 of FIG. 1 from exceeding the maximum bandwidth, or the PF/VF on the SSD 125 of FIG. By ensuring that communications using the PF reserve a minimum bandwidth for exposed PFs, the LWB 135 of FIG. 1 can ensure that the QoS policy 1105 is satisfied.

図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 LWB 135 of FIG. 1 can enforce the QoS policy 1105, verifying that the policy is appropriate is not possible if the host 105 of FIG. 1 (or the SSD 125 of FIG. 1 requests enforcement of the policy). According to SSD 125) in FIG. For example, assume that the maximum bandwidth of SSD 125 in FIG. 1 is 100 Gb/s and that a total of 16 functions (PF and VF) are supported. If the host assigns a QoS policy that guarantees a minimum of 10 GB/s of bandwidth to each PF exposed by LWB 135, the total allocated bandwidth is 160 GB/s, which exceeds the capabilities of SSD 125 in Figure 1. exceed. As a result, some PFs cannot satisfy the associated QoS policy. Therefore, while the LWB 135 in FIG. 1 enforces the QoS policy 1105, the LWB 135 may combine it with other QoS policies assigned to various PFs without checking whether the QoS policies 1105 can all be enforced at the same time.

したがって、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. LWB 135 of FIG. 1 may do the former and not the latter. However, just because a set of QoS policies cannot be enforced simultaneously does not mean that there will come a time when no individual QoS policy will be satisfied. For example, considering again that the SSD 125 of FIG. 1 provides a total bandwidth of 10 GB/s, the host 105 of FIG. Assume that we specify a QoS policy that guarantees a minimum bandwidth of 6 GB/s to each PF. Collectively, both QoS policies cannot be satisfied because each PF is "reserved" 6 GB/s of the available 10 GB/s bandwidth of SSD 125 in FIG. However, if it is known that it is logically (or physically) impossible to call both functions at the same time (for example, one function may read data on the SSD 125 in FIG. In connection with recording data to 125 and other functions, SSD 125 of FIG. 1 performs an internal consistency check that prevents SSD 125 of FIG. 1 from responding to other functions until the consistency check is completed. host 105 of FIG. 1 can specify both QoS policies together. Even if they cumulatively exceed the bandwidth provided by SSD 125 in Figure 1, both policies will never be enforced at the same time, thus causing a logical rather than an actual (or more accurately, potential) conflict. There is only a conflict of interest.

上述したように、図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 LWB 135 of FIG. 1 sometimes has a particular PF exposed by, for example, the endpoint 405 of FIGS. Bandwidth throttling may need to be performed to prevent the use of bandwidth. 12a and 12b illustrate the LWB 135 of FIG. 1 performing bandwidth throttling. In FIG. 12a, LWB 135 is shown as receiving "high" or "large" bandwidth 1205 from host 105 of FIG. If this bandwidth is too large for any reason, LWB 135 may throttle the bandwidth to SSD 125 in FIG. 1, as shown as "low" or "small" bandwidth 1210. Figure 12b shows the opposite situation. LWB 135 may have "high" or "large" bandwidth 1215 with SSD 125 of FIG. 1, but may throttle bandwidth 1220 with host 105 of FIG. Thus, if the available bandwidth of the SSD 125 of FIG. 1 is higher than the maximum bandwidth of the SLA configured for the PF, the LWB 135 may throttle the bandwidth.

本発明の技術的思想の実施形態は、さまざまな理由で帯域幅スロットリングを遂行することができる。(図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 endpoint 405 of FIGS. 4a-4c can be throttled if the bandwidth for that PF is too large.) What is the QoS policy 1105 of FIG. 11? Alternatively, other reasons for bandwidth throttling may include temperature or power consumption. For example, if the temperature of LWB 135 (or SSD 125 in FIG. 1) becomes too high (ie, exceeds some threshold), LWB 135 may throttle its bandwidth to reduce the temperature. Then, if the temperature drops enough (which can mean dropping below the original threshold, or dropping below some other threshold that is lower than the original threshold), the LWB 135 may discontinue bandwidth throttling. Can be done. Power consumption is the same as temperature, except that LWB 135 (or SSD 125 in Figure 1) power consumption can trigger bandwidth throttling, and a reduced power consumption threshold releases bandwidth throttling. Bandwidth throttling can be triggered by a method. These thresholds may be stored somewhere within LWB 135. Yet another reason why the bandwidth may be throttled may be because of the priority set for the exposed PF by the endpoint 405 of FIGS. 4a-4c. If different PFs are used, the bandwidth of the lower priority PF may be throttled in favor of the bandwidth of the higher priority PF.

帯域幅をスロットリングするさらに他の理由は、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 LWB 135 can provide. Thus, although host 105 of FIG. 1 and LWB 135 may communicate using a higher overall bandwidth, LWB 135 does not ensure that the service provided is greater than that guaranteed to host 105 of FIG. , the bandwidth to the host 105 of FIG. 1 can be limited. In other words, the LWB 135 may limit or determine a limit on the maximum storage bandwidth for the PF based on an SLA or pricing plan.

図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 host 105 of FIG. 1 or the SSD 125 of FIG. Must be kept in mind. For example, the delay can be controlled to some extent to favor a PF with a lower target delay than a PF with a higher target delay.

LWB 135は、図4a~図4cのエンドポイント405によって個別的に露出されたそれぞれのPFによって消費された帯域幅(又は他の資源)を測定及びモニタリングすることができる。帯域幅は、両方向に、つまりホストからデバイスに(ホスト記録動作)及びデバイスからホストに(ホスト判読動作)測定及びモニタリングすることができる。また、帯域幅スロットリングは独立的にいずれか一方向に遂行することができる。帯域幅(又は他の資源)スロットリングは測定された帯域幅及びQoSポリシー設定の両者の結果として遂行することができる。 LWB 135 may measure and monitor the bandwidth (or other resources) consumed by each PF individually exposed by endpoint 405 of FIGS. 4a-4c. Bandwidth can be measured and monitored in both directions: from host to device (host recording operations) and from device to host (host reading operations). Also, bandwidth throttling can be performed independently in either direction. Bandwidth (or other resource) throttling can be accomplished as a result of both measured bandwidth and QoS policy settings.

図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 SSD 125 of FIG. Credits are one way that LWB 135 can manage the amount of bandwidth used by SSD 125. Given a particular request, LWB 135 can issue a particular number of credits 1305, each credit 1305 indicating a particular amount of data that SSD 125 is capable of transmitting. Thus, the number of credits 1305 issued by LWB 135 can control the bandwidth of SSD 125. LWB 135 may issue enough (or nearly enough or other desired number) credits 1305 to cover data transmissions. When the SSD 125 transmits data, credits 1305 are used to transmit the data. If SSD 125 does not have available credits, SSD 125 cannot transmit data until new credits are issued.

クレジット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の帯域幅スロットリングを中断することができる。 Credits 1305 can be issued in any desired manner. In some embodiments of the present invention, LWB 135 may transmit credits 1305 to SSD 125 via a message, which may be a proprietary message, for example. In other embodiments of the inventive concept, the LWB 135 may record the credit 1305 to a specific address on the SSD 125, such as a reserved address in the NVMe address space. In yet another embodiment of the inventive concept, LWB 135 may record credit 1305 to an address within LWB 135 (again, possibly a reserved address). The SSD 125 can then read the address to know which credits 1305 are available. Using credits 1305 is one way to throttle the bandwidth of SSD 125. By limiting the number of credits 1305 issued to SSD 125, SSD 125 can be prevented from downloading all the data needed for a particular transaction within a given time unit. By reducing the bandwidth of SSD 125, SSD 125 can experience reduced power consumption and/or lower temperatures. Eventually, once the power consumption and/or temperature falls to an acceptable level (which can be different than the level at which bandwidth throttling can begin, as discussed above with reference to FIG. 12), the LWB 135 Bandwidth throttling can be interrupted.

他の実施形態で、LWB 135は、帯域幅スロットリングを達成するために、データ伝送パケットの間に遊休期間を挿入することができる。測定された帯域幅(又は他の資源)及びQoSポリシー設定に基づいてデータパケットのパケット間隔を調整することにより、LWB 135は個別PFに対して帯域幅制限を達成するか、又は全てのPFに対して集合的に達成することができる。 In other embodiments, LWB 135 may insert idle periods between data transmission packets to achieve bandwidth throttling. By adjusting the inter-packet spacing of data packets based on measured bandwidth (or other resources) and QoS policy settings, the LWB 135 can achieve bandwidth limits for individual PFs or for all PFs. can be achieved collectively.

図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 SSD 125 of FIG. 1, exposes the PF from the LWB 135, and FIG. 2 shows a flowchart of an example process for generating a mapping between the PF exposed by LWB 135 of FIG. 1 and the PF/VF exposed by SSD 125 of FIG. At block 1405 of FIG. 14a, the LWB 135 of FIG. 1 may enumerate the PFs and VFs exposed by the SSD 125 of FIG. At block 1410, LWB 135 of FIG. 1 may generate the PF exposed by LWB 135 of FIG. 1 (more specifically, the PF exposed by endpoint 405 of FIGS. 4a-4c). Note that the number of PFs generated by LWB 135 of FIG. 1 is not necessarily the same as the number of PFs and VFs exposed by SSD 125 of FIG. A particular feature exposed by SSD 125 in FIG. 1 may not have a corresponding PF exposed by LWB 135 in FIG. 1, and a single PF exposed by LWB 135 in FIG. It can be mapped to multiple PFs/VFs of the SSD 125. At block 1415, LWB 135 of FIG. 1 may determine if there are other connected devices to enumerate (eg, SSD 125-2 of FIG. 4c). If so, the process can return to block 1405 to enumerate the PF and VF of the next device.

連結された全てのデバイスが羅列されたと仮定すれば、ブロック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 LWB 135 of FIG. 1 transfers the PF exposed by the endpoint 405 of FIGS. and other connected devices) to the exposed PFs and VFs. At block 1425, LWB 135 of FIG. 1 may determine other resources, such as bandwidth, for SSD 125 of FIG. At block 1430, the LWB 135 of FIG. 1 may aggregate the resources of all connected devices. In this manner, LWB 135 of FIG. 1 is believed to provide higher overall resources than any individual device.

ブロック1435で、図1のLWB 135は、図1のホスト105から羅列要請(enumeration request)を受信することができる。ブロック1440で、図1のLWB 135は、図4a~図4cのエンドポイント405のPFを露出させることにより、図1のホスト105の羅列要請に応答することができる。 At block 1435, LWB 135 of FIG. 1 may receive an enumeration request from host 105 of FIG. At block 1440, the LWB 135 of FIG. 1 may respond to the enumeration request of the host 105 of FIG. 1 by exposing the PF of the endpoint 405 of FIGS. 4a-4c.

図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 block 1505, the LWB 135 of FIG. 1 may receive a request from the host 105 of FIG. 1 at any PF exposed by the endpoint 405 of FIGS. 4a-4c. Which PF the request goes to and which function the PF indicates is irrelevant to the analysis. At block 1510, the LWB 135 of FIG. 1 may map the PF to which the request is directed to a PF or VF of the SSD 125 of FIG. be able to). At block 1515, LWB 135 may select SSD 125 of FIG. 1 as the device that includes a PF or VF that maps to the PF exposed by endpoint 405 of FIGS. 4a-4c. Block 1515 can only be a problem if LWB 135 of FIG. 1 is coupled to multiple devices as shown in FIG. 4c. If there are multiple devices, multiple APP-EPs 410-1 and 410-2 in FIG. 4c can receive the request. In embodiments of the inventive concept in which only one device can be coupled to the LWB 135 of FIG. 1 (if the LWB 135 includes only one APP-EP 410 of FIGS. Since only one SSD 125 is coupled to LWB 135 in FIG. 1), block 1515 can be omitted as indicated by dotted line 1520.

適切なデバイス及び適切な目的地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 block 1525, the LWB 135 of FIG. 1 may convert the request into a request for the identified PF/VF. This may include, for example, address translation as described above with reference to FIG. 9 (and discussed below with reference to FIG. 16). At block 1530 (FIG. 15b), the LWB 135 of FIG. 1 may transmit the translated request to the identified PF/VF of the identified device.

ブロック1535で、図1のLWB 135は、識別されたデバイスの識別されたPF/VFから応答を受信することができる。ブロック1540で、図1のLWB 135は、識別されたデバイスのPF/VFを図4a~図4cのエンドポイント405によって露出されたPFにマッピングすることができる(例えば、図4a~図4cの構成テーブル435を使ってマッピングを遂行することができる)。ブロック1545で、図1のLWB 135は応答を図1のホスト105に対する応答に変換することができる。最後に、ブロック1550で、図1のLWB 135は、図4a~図4cのエンドポイント405の露出されたPFからのように応答をホストにさらに伝送することができる。 At block 1535, LWB 135 of FIG. 1 may receive a response from the identified PF/VF of the identified device. At block 1540, the LWB 135 of FIG. 1 may map the identified device's PF/VF to the PF exposed by the endpoint 405 of FIGS. 4a-4c (e.g., the configuration of FIGS. 4a-4c). The mapping can be accomplished using table 435). At block 1545, LWB 135 of FIG. 1 may convert the response into a response for host 105 of FIG. Finally, at block 1550, the LWB 135 of FIG. 1 may further transmit the response to the host, such as from the exposed PF of the endpoint 405 of FIGS. 4a-4c.

図16は図4a~図4cのAPP-EP及びAPP-RPが図1のホスト105及び図1のSSD 125間でアドレスを変換する例示的な過程のフローチャートを示す。図16で、ブロック1605で、図4a~図4cのAPP-EP 410は図1のホスト105からの要請に含まれたアドレスからホストBARを引くことができ、ブロック1610で、図4a~図4cのAPP-RP 415はブロック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 host 105 of FIG. 1 and the SSD 125 of FIG. 1. 16, at block 1605, the APP-EP 410 of FIGS. 4a-4c may subtract the host BAR from the address included in the request from the host 105 of FIG. 1, and at block 1610, the APP-EP 410 of FIGS. APP-RP 415 may add the device BAR to the address determined in block 1605.

逆アドレス変換、つまり図1のSSD 125から図1のホスト105への変換を省略することができることに留意する。図1のSSD 125は、いずれか任意のデバイスと同様に、図1のホスト105によって使われる全体アドレスを受信することができる。よって、図1のSSD 125によって提供されるアドレスは、変換なしに図1のホスト105内の特定アドレスにアクセスするのに使うことができる。しかし、仮に、図1のSSD 125が図1のホスト105の全体アドレスを有しなかったら、図4a~図4cのAPP-RP 415が図1のSSD 125からの要請に含まれたアドレスからデバイスBARを引き、そして、図4a~図4cのAPP-EP 410がそのアドレスにホストBARを追加することで、アドレス変換を逆に遂行することができる。 Note that the reverse address translation, ie, from the SSD 125 of FIG. 1 to the host 105 of FIG. 1, can be omitted. SSD 125 of FIG. 1, like any arbitrary device, can receive the global address used by host 105 of FIG. Thus, the address provided by SSD 125 of FIG. 1 can be used to access a particular address within host 105 of FIG. 1 without translation. However, if the SSD 125 of FIG. 1 does not have the entire address of the host 105 of FIG. 1, the APP-RP 415 of FIGS. The address translation can be accomplished in reverse by subtracting the BAR and then having the APP-EP 410 of FIGS. 4a-4c add the host BAR to that address.

図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 credits 1305 to the SSD 125 of FIG. In FIG. 17, at block 1705, the LWB 135 of FIG. 1 may measure or monitor the bandwidth consumed by the individual PF exposed by the endpoint 405 of FIGS. 4a-4c. At block 1710, LWB 135 of FIG. 1 may determine credits 1305 of FIG. 13 to issue to SSD 125 of FIG. Such credits may be determined by the bandwidth consumed by the PF exposed by endpoint 405 in FIGS. 4a-4c and the amount of data that SSD 125 in FIG. 1 must transmit. SSD 125 of FIG. 1 may use such credits to transmit data to or from SSD 125 of FIG. 1. In this regard, numerous options exist for conveying credits 1305 of FIG. 13 to SSD 125 of FIG. 1. At block 1715, LWB 135 of FIG. 1 may record credit 1305 of FIG. 13 to the address of SSD 125 of FIG. Alternatively, at block 1720, the LWB 135 may record the credit 1305 of FIG. 13 to the address of the LWB 135 of FIG. 1, and the SSD 125 of FIG. can be read. Alternatively, at block 1725, LWB 135 of FIG. 1 may transmit the message to SSD 125 of FIG. The message may include credits 1305 in FIG.

図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 LWB 135 of FIG. 1 processes configuration record request 705. In FIG. 18, at block 1805, the LWB 135 of FIG. 1 may receive the configuration record request 705 of FIG. Configuration record request 705 of FIG. 7 may be received from host 105 of FIG. 1 or SSD 125 of FIG. At block 1810, the LWB 135 of FIG. 1 (more specifically, the configuration administrator 440 of FIGS. 4a-4c) sends the PF exposed by the endpoint 405 of FIGS. 4a-4c to the configuration record request 705 of FIG. It can be configured as specified by At block 1815, LWB 135 of FIG. 1 may use state machine 510 of FIG. 5 and SR-IOV sequence 505 of FIG. 5 to accomplish this configuration. Finally, at block 1820, LWB 135 of FIG. 1 determines that the configuration of the PF/VF exposed by SSD 125 of FIG. 1 mirrors the configuration of the PF exposed by endpoint 405 of FIGS. 4a-4c. can be guaranteed. This may include transmitting the configuration record request 705 of FIG. 7 to the SSD 125 of FIG. 1, as indicated by dotted arrows 710 and 715. Block 1820 is optional, as indicated by dotted line 1825, since configuration record request 705 of FIG. 7 may not need to be transmitted to SSD 125 of FIG.

図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 LWB 135 of FIG. 1 processes configuration read request 805. FIG. 19 depicts a flowchart of an exemplary process by which LWB 135 of FIG. 1 processes configuration read request 805. 19, at block 1905, the LWB 135 of FIG. 1 may receive the configuration reading request 805 of FIG. The read configuration request 805 of FIG. 8 may be received from the host 105 of FIG. 1 or the SSD 125 of FIG. ). Here, there are some alternatives. At block 1910, the LWB 135 of FIG. 1 (more specifically, the configuration manager 440 of FIGS. 4a-4c) may determine the configuration of the PF exposed by the endpoint 405 of FIGS. 4a-4c. In an embodiment of the inventive concept in which block 1910 is used, the configuration of the PF exposed by SSD 125 in FIG. 1 mirrors the configuration of the PF exposed by endpoint 405 in FIGS. 4a-4c. It may not be necessary to interrogate the SSD 125 of FIG. 1 for the exposed PF/VF configuration since it is possible to interrogate the SSD 125 of FIG. but). Alternatively, at block 1915, the LWB 135 of FIG. 1 may communicate the configuration reading request 805 of FIG. 8 to the SSD 125 of FIG. Configuration information 810 of FIG. 8 may be received (indicated by dotted arrows 825 and 830 in FIG. 8). Either way, at block 1920, LWB 135 of FIG. 1 may return configuration information 810 of FIG. 8 to the requestor.

図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 LWB 135 of FIG. 1 associates QoS policy 1105 with a PF exposed by LWB 135 of FIG. 20, at block 2005, the LWB 135 of FIG. 1 may receive the QoS policy 1105 of FIG. 11 from a source, which may be the host 105 of FIG. 1 or the SSD 125 of FIG. Then, at block 2010, the LWB 135 of FIG. 1 may associate the policy with the identified PF exposed by the endpoint 405 of FIGS. 4a-4c and may appropriately implement the policy.

図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 LWB 135 of FIG. 1 dynamically changes the mapping between the PF exposed by the LWB 135 of FIG. 1 and the PF/VF exposed by the SSD 125 of FIG. show. 21, at block 2105, the LWB 135 of FIG. 1 selects the storage parameters 1005 of FIG. 10, the date 1010 of FIG. It can be identified whether the change 1025 has been changed. At block 2110, the LWB 135 of FIG. 1 may dynamically change the mapping 615 of FIG. 6 between the PF 605 of FIG. 6 and the PF/VF 610 of FIG. 6 in response to the sensed change. can.

図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 block 2205, the LWB 135 of FIG. 1 may be determined by the QoS policy 1105 of FIG. 11, the LWB 135 of FIG. 1, or the temperature or power consumption of the SSD 125 of FIG. At block 2210, the LWB 135 of FIG. 1 stores whether bandwidth throttling is applicable, e.g., the temperature or power consumption of the LWB 135 of FIG. 1 or the SSD 125 of FIG. It can be determined by comparing with a threshold value.

帯域幅スロットリングが適用可能な場合、ブロック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 block 2215, LWB 135 of FIG. 1 may throttle the bandwidth of SSD 125 of FIG. This throttling may be accomplished by limiting the number of credits 1305 of FIG. 13 issued to SSD 125 of FIG. 1. Then, at block 2220 (FIG. 22b), the LWB 135 of FIG. 1 uses the same QoS policy 1105 of FIG. 11 that triggered the bandwidth throttling at block 2210 of FIG. QoS policy) or the temperature or power consumption of LWB 135 in FIG. 1 or SSD 125 in FIG. At block 2225, the LWB 135 of FIG. 1 determines that the new temperature or power consumption of the QoS policy 1105 of FIG. 11, the LWB 135 of FIG. 1, or the SSD 125 of FIG. You can decide how much you have spent. If bandwidth throttling is still applicable, control may return to block 2220 to again check if a change has occurred that may terminate bandwidth throttling. Otherwise, at block 2230, LWB 135 of FIG. 1 may discontinue bandwidth throttling.

図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との間のマッピングを具現する。
Statement 1. One embodiment of the technical idea of the present invention includes a Lightweight Bridge (LWB) circuit, and the LWB circuit includes:
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)を含む。 Statement 2. One embodiment of the technical idea of the present invention includes an LWB circuit according to Statement 1, where the device includes an 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 statement 1, where the device includes an LWB circuit.

陳述4.本発明の技術的思想の一実施形態は陳述1によるLWB回路を含み、ここで、LWB回路は前記デバイスに連結される。 Statement 4. One embodiment of the inventive concept includes an LWB circuit according to statement 1, where the LWB circuit is coupled to the device.

陳述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 statement 1, where the APP-EP and APP-RP can be implemented in a single component.

陳述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 Statement 1, where the LWB circuit includes an FPGA (Field Programmable Gate Array), an ASIC (Application-Specific Integrated Circuit), a general-purpose processor, a GPU (Graphic csProcessing unit) and a general-purpose GPU (GPGPU).

陳述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 statement 1, 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;
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 Statement 1, and further includes a configuration manager for configuring APP-EP and APP-RP.

陳述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)し、ホストに構成情報をリターンすることができる。 Statement 14. An embodiment of the technical idea of the present invention includes an LWB circuit according to statement 9, where the APP-EP intercepts a configuration read request from a host and returns configuration information to the host. can do.

陳述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)を含む。 Statement 16. An embodiment of the technical idea of the present invention includes an LWB circuit according to Statement 9, where a configuration manager configures a ROM (Read Only Memory) and a ROM (Read Only Memory) for implementing an SR-IOV (Single Root Input/Output Virtualization) sequence. Contains a 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 statement 1, where:
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 statement 1,
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 statement 1, wherein a plurality of PFs exposed by the endpoint, at least one PF and at least one VF exposed by the device. The mapping between can be changed dynamically.

陳述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 statement 1, where the LWB circuit can implement bandwidth throttling.

陳述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 Statement 1, where the LWB circuit can implement a QoS policy on a PF of a plurality of PFs exposed by a device.

陳述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 Statement 1, wherein the LWB circuit configures multiple PFs exposed by an endpoint based at least in part on a configuration record request received from a device. At least one capability can be configured.

陳述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に対するマッピングを動的に変更する段階を引き起こす命令語をさらに記憶している。 Statement 105. An embodiment of the technical idea of the present invention includes an article according to statement 75, wherein the non-transitory storage medium, when executed by a machine, APP-EP and APP-EP of the LWB. further storing instruction words that cause dynamically changing a mapping of a plurality of PFs at an endpoint of the LWB to at least one PF and at least one VF exposed by the device using an APP-RP; are doing.

陳述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 statement 105, wherein the devices of a plurality of PFs at endpoints of the LWB are exposed by the device using APP-EP and APP-RP 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 based at least in part on a quality of service (QoS) policy change, using APP-EP and APP-RP of the LWB to at least The method includes dynamically changing mapping for one PF and at least one VF.

陳述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の電力消費に少なくとも部分的に基づいて前記デバイスに対する帯域幅をスロットリングする段階を含む。 Statement 110. One embodiment of the inventive concept includes an article according to statement 107, wherein throttling bandwidth for the device comprises a QoS policy set by the host, a QoS policy set by the device. , throttling bandwidth for the 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.

陳述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 statement 110, 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.

陳述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 host 110 processor 115 memory 120 memory controller 125 storage device (e.g. SSD)
130 Device Driver 135 Lightweight Bridge (LWB)
405 Endpoint 410 APP-EP
415 APP-RP
420 Root Port 425, 430 Interface 435 Configuration Table 440 Configuration Manager 445 Multiplexer/Demultiplexer 505 SR-IOV Sequence 510 State Machine

Claims (20)

ホストに連結され、第1物理機能(Physical Function、PF)及び第2PFを露出させるエンドポイント、
デバイスに連結されるルートポートであって、前記デバイスが当該ルートポートに第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.
前記APP-EP及び前記APP-RPを構成するためのコンフィギュレーションマネージャをさらに含む、請求項1に記載のブリッジ回路。 The bridge circuit of claim 1, further comprising a configuration manager for configuring the APP-EP and the APP-RP. 前記APP-RPは、前記エンドポイントによって露出された前記第1PF及び前記第2PFと前記デバイスによって露出された前記第3PF及び前記VFとの間のマッピングを記憶する構成テーブルのための記憶部を含む、請求項2に記載のブリッジ回路。 The APP-RP includes a storage unit for a configuration table that stores 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. , The bridge circuit according to claim 2. 前記コンフィギュレーションマネージャは、前記デバイスによって露出された前記第3PF及び前記VFを羅列し(enumerate)、前記デバイスによって露出された前記第3PF及び前記VFに少なくとも部分的に基づいて、前記エンドポイントによって露出された前記第1PF及び前記第2PFを生成する、請求項2に記載のブリッジ回路。 The configuration manager enumerates the third PF and the VF exposed by the device, and enumerates the third PF and the VF exposed by the endpoint based at least in part on the third PF and the VF exposed by the device. The bridge circuit according to claim 2, wherein the bridge circuit generates the first PF and the second PF. 前記コンフィギュレーションマネージャは、前記デバイスの第1構成が前記エンドポイントの第2構成をミラーリングすることを保障する、請求項2に記載のブリッジ回路。 3. The bridge circuit of claim 2, wherein the configuration manager ensures that a first configuration of the device mirrors a second configuration of the endpoint. 前記コンフィギュレーションマネージャは、SR-IOV(Single Root Input/Output Virtualization)シーケンスを具現するためのROM(Read Only Memory)及び状態マシン(state machine)を含む、請求項2に記載のブリッジ回路。 The bridge circuit of claim 2, wherein the configuration manager includes a ROM (Read Only Memory) and a state machine for implementing an SR-IOV (Single Root Input/Output Virtualization) sequence. 第2APP-EP及び第2APP-RP、
第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.
当該ブリッジ回路は、前記デバイス及び前記第2デバイスの資源を集約(aggregate)する、請求項7に記載のブリッジ回路。 8. The bridge circuit according to claim 7, wherein the bridge circuit aggregates resources of the device and the second device. 当該ブリッジ回路は、帯域幅スロットリング(bandwidth throttling)を具現する、請求項1に記載のブリッジ回路。 The bridge circuit of claim 1, wherein the bridge circuit implements bandwidth throttling. 当該ブリッジ回路は、前記ホストに設定されたポリシー、前記デバイスによって設定されたポリシー、当該ブリッジ回路の温度、当該ブリッジ回路の電力消費、前記デバイスの温度、又は前記デバイスの電力消費に少なくとも部分的に基づいて帯域幅スロットリングを具現する、請求項9に記載のブリッジ回路。 The bridge circuit is at least partially responsive to a policy set on the host, a policy set by the device, a temperature of the bridge circuit, a power consumption of the bridge circuit, a temperature of the device, or a power consumption of the device. 10. The bridge circuit of claim 9, implementing bandwidth throttling based on. 当該ブリッジ回路は、前記エンドポイントによって露出された前記第1PF上にQoSポリシーを具現する、請求項1に記載のブリッジ回路。 The bridge circuit of claim 1, wherein the bridge circuit implements a QoS policy on the first PF exposed by the endpoint . ブリッジを具現するプロセッサが実行する方法であって、
前記ブリッジのルートポートを使ってデバイスによって露出された第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.
前記ブリッジの前記ルートポートを使って前記デバイスによって露出された前記第1PFを羅列する段階は、前記ブリッジの第2ルートポートを使って第2デバイスによって露出された第4PFを羅列することを含み、
前記ブリッジの前記ルートポートを使って前記デバイスによって露出された前記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デバイスの資源を決定する段階、及び
前記デバイス及び前記第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で前記ホストからの要請を受信する段階、
前記ブリッジの前記エンドポイントによって露出された前記第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:
前記デバイスに対して帯域幅をスロットリング(bandwidth throttling)する段階をさらに含む、請求項12に記載の方法。 13. The method of claim 12, further comprising bandwidth throttling to the device. 前記デバイスに対して帯域幅をスロットリングする段階は、前記ホストによって設定されたQoSポリシー、前記デバイスによって設定されたQoSポリシー、前記ブリッジの温度、前記ブリッジの電力消費、前記デバイスの温度、又は前記デバイスの電力消費、のうちの1つに少なくとも部分的に基づいて前記デバイスに対して帯域幅をスロットリングすることを含む、請求項17に記載の方法。 Throttling bandwidth for the device may be based on a QoS policy set by the host, a QoS policy set by the device, a temperature of the bridge, power consumption of the bridge, a temperature of the device, or a QoS policy set by the device. 18. The method of claim 17, comprising throttling bandwidth to the device based at least in part on one of the following: power consumption of the device. 命令を格納した非一時的記憶媒体を含む物品(article)であって、
前記命令は、ブリッジを具現するプロセッサによって実行されるとき、
前記ブリッジのルートポートを使ってデバイスによって露出された第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.
前記ブリッジの前記ルートポートを使って前記デバイスによって露出された前記第1PFを羅列する段階は、前記ブリッジの第2ルートポートを使って第2デバイスによって露出された第4PFを羅列することを含み、
前記ブリッジの前記ルートポートを使って前記デバイスによって露出された前記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.
JP2020107708A 2019-06-24 2020-06-23 Lightweight bridge, article including it, and method using the same Active JP7446167B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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