WO2016066073A1 - 支持sr-iov的存储资源访问方法、存储控制器及存储设备 - Google Patents
支持sr-iov的存储资源访问方法、存储控制器及存储设备 Download PDFInfo
- Publication number
- WO2016066073A1 WO2016066073A1 PCT/CN2015/092877 CN2015092877W WO2016066073A1 WO 2016066073 A1 WO2016066073 A1 WO 2016066073A1 CN 2015092877 W CN2015092877 W CN 2015092877W WO 2016066073 A1 WO2016066073 A1 WO 2016066073A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- resource
- storage
- destination
- host
- storage sub
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Definitions
- the present invention relates to the field of communications technologies, and in particular, to a storage resource access method, a storage controller, and a storage device that support a single root input/output virtualized SR-IOV.
- SR-IOV Single Root I/O Virtualization
- PCIe Peripheral Component Interconnect
- the PCIe Solid State Driver features high bandwidth, high IOPS (Input/Output Operations Per Second), low latency, and high hardware potential.
- the current technology does not provide an implementation method for supporting storage devices (such as PCIe SSD) to support SR-IOV, so that existing storage devices cannot support SR-IOV, and hardware resource sharing cannot be better realized to improve storage resources in storage devices. Utilization.
- storage devices such as PCIe SSD
- the embodiment of the present invention provides a storage resource access method, a storage controller, and a storage device that support the SR-IOV, and is used to solve the problem that the storage device existing in the prior art cannot implement hardware resource sharing to improve storage resources in the storage device.
- the problem of utilization is used to solve the problem that the storage device existing in the prior art cannot implement hardware resource sharing to improve storage resources in the storage device. The problem of utilization.
- an embodiment of the present invention provides a controller implementation method for supporting single input/output virtualization, which is performed by a storage controller in a storage device, where the storage device further includes a storage medium, and the storage controller is used by the storage controller. Connecting the host and the storage medium respectively, wherein the host runs a virtual machine monitor and one or more virtual machines, wherein the storage controller includes a physical function PF and one or more virtual functions VF associated with the PF, the PF directly communicating with the virtual machine monitor Each of the VFs is in direct communication with one of the virtual machines, the method comprising:
- the child resource performs an operation corresponding to the host command.
- the host includes a memory
- the memory includes at least one queue
- at least one of the PF or the VF respectively corresponds to one or more different queues ;
- the receiving host command sent by the virtual machine to the destination VF or sent by the virtual machine monitor to the destination PF includes:
- the host learns to put the host command into the queue in the host memory, initiate a direct memory access DMA operation, and the destination VF or the destination PF corresponds to the queue in the host memory. Get the host command in the queue.
- the storage controller further includes a plurality of interrupt resources, where the multiple interrupt resources are allocated to a queue in the host memory And causing one or more of the queues to correspond to one interrupt resource, the method further includes:
- the destination queue of the destination VF or the destination PF is: in the host memory The destination VF or the queue corresponding to the destination PF in the queue.
- the interrupt resource is an MSI-x interrupt, and each of the queues in the host memory corresponds to one MSI-x interrupt.
- the host command includes a storage identifier for identifying the storage sub-resource a resource relative identifier ID, where the storage sub-resource in the resource allocation table is identified by an absolute identifier of the storage sub-resource;
- the searching for the resource allocation table according to the destination VF or the destination PF, and corresponding to the destination VF or the destination VF according to the mapping relationship between the storage sub-resource in the resource allocation table and the PF or the VF includes:
- the correspondence between the absolute IDs finds the storage sub-resource absolute ID corresponding to the storage sub-resource relative ID carried in the host command, and operates on the storage sub-resource corresponding to the found storage sub-resource absolute ID.
- the storing the sub-resource according to the preset allocation principle At least one of the PF and the VF, and maintaining a resource allocation table includes:
- the PF is used to perform a global storage controller function
- the global storage controller function includes: Firmware Download or At least one of the implementation of the Firmware Active command, the implementation of the Format command, or the shutdown function of the full disk reset.
- an embodiment of the present invention provides a storage controller that supports a single root input/output virtualization, where the storage controller is configured to respectively connect a host and a storage medium, where the host runs a virtual machine monitor and One or more virtual machines, the storage controller including a physical function PF and one or more virtual functions VF associated with the PF, the VF directly communicating with the virtual machine monitor, each of the The VF communicates directly with one of the virtual machines, including:
- An integration module configured to integrate the storage medium into a unified storage resource, and divide the unified storage resource into multiple storage sub-resources;
- an allocation module configured to allocate the storage sub-resource divided by the integration module to at least one of the PF and the VF according to a preset allocation principle, and maintain a resource allocation table, where the resource allocation
- the table includes a mapping relationship between the storage sub-resource and the PF and at least one of the VFs;
- a receiving module configured to receive a host command sent by the virtual machine to the destination VF or sent by the virtual machine monitor to the destination PF;
- An operation module configured to search the resource allocation table according to the destination VF or the destination PF, and according to the mapping relationship between the storage sub-resource in the resource allocation table and the PF or the VF, the destination PF or the The storage sub-resource corresponding to the destination VF performs an operation corresponding to the host command received by the receiving module.
- the host includes a memory
- the memory includes at least one queue
- at least one of the PF or the VF respectively corresponds to one or more different queues ;
- the receiving module is specifically configured to:
- the host learns to put the host command into the queue in the host memory, initiate a direct memory access DMA operation, and the destination VF or the destination PF corresponds to the queue in the host memory. Get the host command in the queue.
- the storage controller further includes a plurality of interrupt resources, where the multiple interrupt resources are allocated to a queue in the host memory So that one or more of the queues correspond to one interrupt resource;
- the storage controller further includes:
- a transmission module configured to transmit, by the DMA operation, a controller command that needs to be sent to the host to a memory in the host;
- a notification module configured to notify the host to acquire a controller command by using an interrupt resource corresponding to the destination VF or the destination queue of the destination PF;
- the destination queue of the destination VF or the destination PF is: the destination VF in the queue in the host memory or the queue corresponding to the destination PF.
- the interrupt resource is an MSI-x interrupt
- each of the queues in the host memory corresponds to one MSI-x interrupt.
- the host command includes a storage identifier for identifying the storage sub-resource a resource relative identifier ID, where the storage sub-resource in the resource allocation table is identified by an absolute identifier of the storage sub-resource;
- the operation module is specifically configured to:
- the correspondence between the absolute IDs finds the storage sub-resource absolute ID corresponding to the storage sub-resource relative ID carried in the host command, and operates on the storage sub-resource corresponding to the found storage sub-resource absolute ID.
- the allocating module is specifically configured to:
- the PF is used to perform a global storage controller function
- the global storage controller function includes: implementation of a Firmware Download or Firmware Active command, implementation of a Format command, or a shutdown function of a full disk reset.
- an embodiment of the present invention provides a storage device, including: a storage controller and a storage medium;
- the storage controller is connected to the storage medium and is configured to be connected to an external host, so that the host reads and writes data in the storage medium through the storage controller, where the host runs virtual machine monitoring And one or more virtual machines, the storage controller including a physical function PF and one or more virtual functions VF associated with the PF, the PF directly communicating with the virtual machine monitor, each The VF performs direct communication with one of the virtual machines;
- the storage controller is used to:
- the child resource performs an operation corresponding to the host command.
- the host includes a memory
- the memory includes at least one queue
- at least one of the PF or the VF respectively corresponds to one or more different queues ;
- the storage controller is configured to: when receiving the host command sent by the virtual machine to the destination VF or the virtual machine monitor to send to the destination PF, specifically:
- the storage controller further includes a plurality of interrupt resources, where the multiple interrupt resources are allocated to a queue in the host memory, such that one or more of the The queue corresponds to an interrupt resource, and the storage controller is further configured to:
- the destination queue of the destination VF or the destination PF is: the destination VF in the queue in the host memory or the queue corresponding to the destination PF.
- the interrupt resource is an MSI-x interrupt, and each of the queues in the host memory corresponds to one MSI-x interrupt.
- the host command includes a storage identifier for identifying the storage sub-resource a resource relative identifier ID, where the storage sub-resource in the resource allocation table is identified by an absolute identifier of the storage sub-resource;
- the storage controller is configured to search the resource allocation table according to the destination VF or the destination PF, and use the mapping relationship between the storage sub-resource in the resource allocation table and the PF or the VF to target the PF or the When the storage sub-resource corresponding to the destination VF performs an operation corresponding to the host command, it is specifically used to:
- the correspondence between the absolute IDs finds the storage sub-resource absolute ID corresponding to the storage sub-resource relative ID carried in the host command, and operates on the storage sub-resource corresponding to the found storage sub-resource absolute ID.
- the storage controller is configured to use the storage sub-resource according to a preset allocation principle When at least one of the PF and the VF is allocated and a resource allocation table is maintained, Specifically used for:
- an embodiment of the present invention provides a storage system, where the storage system includes a host, and the storage device in any one of the possible implementations of the third aspect or the third aspect.
- the storage medium in the storage device is integrated and allocated, and the storage sub-resource corresponding to the VF or PF receiving the command is operated according to the command sent by the virtual machine or the virtual machine monitor.
- the implementation of how the storage device implements the SR-IOV support is provided, thereby improving the utilization of the storage resources in the storage device and improving the performance of the storage device.
- FIG. 1 is a schematic structural diagram of a system of a PCIe SSD according to an embodiment of the present invention
- FIG. 2 is a schematic flowchart of an embodiment of a method for accessing a storage resource supporting SR-IOV according to an embodiment of the present disclosure
- FIG. 3 is a schematic flowchart diagram of another embodiment of a method for accessing an SR-IOV-enabled storage resource according to an embodiment of the present disclosure
- FIG. 4 is a schematic diagram of mapping of NAND Flash resources according to an embodiment of the present invention.
- FIG. 5 is a schematic structural diagram of an embodiment of a storage controller supporting an SR-IOV according to an embodiment of the present disclosure
- FIG. 6 is a schematic structural diagram of another embodiment of a storage controller supporting an SR-IOV according to an embodiment of the present invention.
- FIG. 7 is a schematic structural diagram of still another embodiment of a storage controller according to an embodiment of the present disclosure.
- FIG. 8 is a schematic structural diagram of a storage device according to an embodiment of the present invention.
- the controller implementation method supporting single root input/output virtualization described in the embodiments of the present invention may be performed by a storage controller in a storage device.
- the storage device may be a solid state hard disk SSD, and the SSD includes a storage controller (SSD controller) and a storage medium (also referred to as “storage resource” or “physical storage resource”, specifically, NAND Flash.
- the storage controller is connected to the storage medium, and is also connected to the host (can be connected to the host through a high-speed interface such as PCIe), so that the host reads and writes data in the storage medium through the storage controller.
- the host in the embodiment of the present invention may be a server, or a PC, or another computing unit that needs to connect to the storage device.
- the host includes a virtual machine monitor VMM, one or more virtual machine VMs (including VM0, VM1, VM2, ... VM n, where n is a natural number).
- the above storage controller includes a PF and one or more VFs associated with the PF (such as VF0, VF1, VF2, ..., VFn, etc. as shown in the figure, where n is a natural number).
- the host and the storage controller can communicate based on the NVMe protocol, and the PF directly communicates with the virtual machine monitor, and each VF directly communicates with a virtual machine, for example, the PF can be connected to the virtual machine.
- the monitor VMM performs direct communication, VF1 can communicate directly with VM1, and VF2 can communicate directly with VM2.
- the direct communication technology between the above PF and the virtual machine monitor, and between the VF and the VM is a technique well known to those skilled in the art, and will not be specifically described herein.
- the method for accessing a storage resource supporting SR-IOV described in the embodiment of the present invention includes:
- the storage device in the embodiment of the present invention may be a PCIe SSD (that is, an SSD with an interface of a PCIe interface), and the storage medium included in the storage device may be a NAND Flash.
- the storage controller in order to better allocate the storage medium in the PCIe SSD to the PF and each VF, can integrate the storage medium in the PCIe SSD into a unified storage resource, and divide the unified storage resource into multiple storage sub-resources. To allocate the plurality of storage sub-resources to the PF and the respective VFs.
- the memory controller can map the NAND Flash into a single logical space (ie, SSD logical space) through a Flash Translation Layer (FTL) technology, and use an absolute logical block address (Logical Block Address, LBA), for example: Abs_Start_LBA ⁇ Abs_End_LAB; wherein the single logical space is a unified storage resource obtained by integrating NAND Flash.
- LBA Logical Block Address
- the single logical space is divided into different segments, that is, the single logical space is divided into multiple LBA ranges, and each segment (ie, each LBA range)
- the size of the NS may be the same or different, and is not limited herein.
- the NS obtained by dividing the single logical space is a storage sub-resource obtained by dividing the unified storage resource.
- the storage controller can record the absolute LBA range of each NS in the above single logical space (ie, the global logical space), and thus can allocate the above NSs to the PF or VF.
- the foregoing may be performed according to a preset allocation principle.
- the storage sub-resource is allocated to the PF or VF and maintains a resource allocation table.
- the storage controller may allocate the storage sub-resource to the PF and the VF according to the allocation command sent by the virtual machine monitor, where the resource allocation table includes a mapping relationship between the storage sub-resource and the PF or the VF.
- the resource allocation table further includes identifier information of the PF, and identifier information of each VF associated with the PF.
- the storage controller can establish the identification information of the PF and assign it to the PF.
- the mapping relationship of the storage medium is to query the storage medium allocated to the PF by using the identification information of the PF.
- the storage controller may also establish a mapping relationship between the identification information of the VF and the storage medium allocated to the VF, so as to query the storage medium allocated to the VF by using the identification information of the VF.
- the storage controller may allocate the storage sub-resource to the PF and the VF according to an allocation command sent by the virtual machine monitor.
- the “host command” is a command sent by the host, such as an I/O command. Specifically, it can be sent by a virtual machine running in the host or a virtual machine monitor.
- the host described in this embodiment includes a memory.
- the host includes at least one queue in the memory, and the PF or VF corresponds to one or more different queues.
- a virtual machine or a virtual machine monitor sends a host command, it can be sent by using a queue.
- a virtual machine or a virtual machine monitor sends a host command, which queue is used, the data corresponding to the host command is written to the storage space corresponding to the queue.
- the virtual machine or the virtual machine monitor in the host can put the host command into the queue corresponding to the destination VF or the destination PF in the host memory, and then notify the storage controller to obtain the host command from the queue of the host memory.
- the storage controller After the storage controller learns that the host puts the host command in the queue in the host memory, it can initiate a direct memory access (DMA) operation, and obtain the queue corresponding to the destination VF or the destination PF in the queue of the host memory.
- DMA direct memory access
- the virtual machine monitor sends a command to the PF in a direct mode.
- the storage controller receives the host command through the queue corresponding to the destination PF, the storage device obtains the identifier information of the PF.
- the function module for implementing PCIe communication in the memory controller adopts the SR-IOV pass-through mode, and can know which VF (for example, VF1), that is, the destination VF, is directly connected to the I/O command sent by the virtual machine, and thus can be in the PCIe message.
- the control field adds the identification information of the VF1 (for example, the ID of the VF1), and sends the packet carrying the identification information of the VF1 to the processing module in the storage controller.
- the processing module in the storage controller can parse the PCIe packet carrying the VF1 identification information from the PCIe. Obtain the identification information of VF1 in the packet.
- the resource allocation table may be queried according to the identifier information of the PF or the identifier information of the VF, and the PF is obtained by searching from the resource allocation table.
- the storage sub-resource of the VF may further perform operations corresponding to the host command on the storage sub-resource corresponding to the PF or the storage sub-resource corresponding to the VF.
- the storage controller obtains the storage sub-resource corresponding to the PF (specifically, it can be NS), the data in the NS can be transferred to the physical memory address of the host through DMA.
- the storage controller may generate a controller command in response to the host command, and transfer the controller command to the memory in the host through the DMA, and send the interrupt through the interrupt resource corresponding to the destination PF or the destination queue of the destination VF. Inform the host to get the controller command.
- the foregoing PF may be used to perform a global storage controller function in the foregoing NVMe protocol.
- the above-mentioned global storage controller functions include: implementation of Firmware Download or Firmware Active command, implementation of Format command, or shutdown function of full disk reset.
- the VF is used to implement a lightweight SSD controller function, including a disk IO function and a small portion of the SSD control function, and the above global functions can only be implemented in the PF.
- the host interface protocol NVMe is used as an example.
- the commands such as Firmware Download and Firmware Active are global commands. They are only implemented in PF. VF does not support.
- VF will fail.
- both PF and VF can support the secure erase of the Namespace, and the corresponding Lhang Format for the LBA Format is only supported by the PF.
- the VF resets only its own related resources, including the IO queue. After receiving the shutdown command, the PF must notify the entire disk to reset, in addition to resetting its own resources, including the backend NAND Flash. Management table items are saved.
- the PF in the storage controller can also be used to implement the function of single root I/O virtualization, the query, the allocation of the storage medium in the storage device, and the maintenance of the resource allocation table.
- the virtual machine monitor in the host can load the PF driver, enable the SR-IOV function, create a management queue, and send a resource query command to the PF through the PF driver management queue. After receiving the query command, the PF can The storage medium, the interrupt resource, and the status of the queue resource included in the storage device are returned to the virtual machine monitor.
- the virtual machine monitor receives the storage medium interrupt resource returned by the PF and After the status of the queue resource, the allocation command may be sent to the PF, and the PF may parse the allocation command, and divide the unified storage resource into multiple storage sub-resources according to the foregoing allocation command, thereby allocating the storage sub-resource, the queue resource, and the interrupt resource allocation.
- the PF may parse the allocation command, and divide the unified storage resource into multiple storage sub-resources according to the foregoing allocation command, thereby allocating the storage sub-resource, the queue resource, and the interrupt resource allocation.
- the storage controller may integrate the storage medium in the storage device into a unified storage resource, divide the unified storage resource into multiple storage sub-resources, and then, the storage sub-resources according to the allocation command sent by the host. Assigned to the PF or VF, saves the mapping relationship between the storage sub-resource and the PF or VF to the resource allocation table.
- the resource allocation table may be queried according to the identifier of the PF or the VF that receives the command, and the storage sub-resource is operated according to the mapping relationship between the sub-resource and the PF or the VF.
- the method described in the embodiment of the present invention can support a single input/output virtualization technology to improve the I/O performance of the storage device and the utilization of the storage resources in the storage device.
- an embodiment of the present invention provides a storage resource access method supporting SR-IOV, including:
- the controller implementation method for supporting single root input/output virtualization described in the embodiment of the present invention may be performed by a storage controller, where, as shown in FIG. 1 , the structural relationship between the foregoing storage controller and the host and the storage medium may be The foregoing description of the first embodiment of the controller implementation method for supporting a single input/output virtualization provided by the embodiment of the present invention is not described herein again.
- the specific implementation process of the storage medium in the storage device is integrated into a unified storage resource and the unified storage resource is divided into multiple storage sub-resources in the embodiment of the present invention. Step S101 will not be repeated here.
- FIG. 4 is a schematic diagram of mapping of NAND Flash resources described in the embodiment of the present invention.
- the storage controller maps the NAND Flash into a single logical space (SSD logical space) through the FTL technology function, which is denoted as Abs_NS, and represents the range of a single logical space (ie, unified storage resources) with the starting point and the end point of the absolute LBA, for example, :Abs_Start_LBA ⁇ Abs_End_LAB.
- the storage controller may divide the above single logical space into N according to a preset division rule (N is self
- N is self
- the LBA range of different sizes or the LBA range of the same size, the LBA range of different sizes will be exemplified below
- the segment NS which can be recorded as Abs_NS1, Abs_NS2, Abs_NS3, ..., Abs_NSn, etc.
- a single logical space may be first divided into N NSs, and the position of each NS in the above single logical space (ie, an absolute logical space address), including a starting position and a ending position, as shown in Table 1:
- Abs_NS absolute space
- Start_LBA starting position
- End_LAB terminating position
- the storage controller may divide the single logical space into N (for example, 6) sizes according to a preset division rule. Different NS, and record the starting position and ending position of each NS, as shown in Table 2 below:
- Abs_NS Start_LBA starting position
- End_LAB terminating position
- Abs_NS1 0x0000000 0x7ffffff Abs_NS2 0x8000000 0xfffff Abs_NS3 0x1000000 0x17fffff Abs_NS4 0x1800000 0x1ffffff Abs_NS5 0x2000000 0x2fffff Abs_NS6 0x3000000 0x3ffffffffff
- the storage controller may also associate a queue in the host memory with the foregoing PF or VF, so that the PF or the VF corresponds to at least one NS and at least one queue (that is, at least one of the queues in the host memory), and each The queues correspond to a different interrupt resource.
- the NS or queue corresponding to the PF or VF may be marked with NS IDs or Queue IDs.
- S202 Assign the storage sub-resource to the PF and the VF according to a preset allocation principle. At least one of, and maintaining a resource allocation table, wherein the resource allocation table includes a mapping relationship between the storage sub-resource and the PF and at least one of the VFs.
- the storage controller allocates the storage sub-resource to at least one of the PF or the VF, and the specific implementation process of the maintenance of the resource allocation table can be referred to step S102 in the first embodiment of the present invention, and details are not described herein again.
- the resource allocation table may further include: a mapping relationship between the identifier information of the PF or the VF and the queue resource and the interrupt resource allocated to the PF or the VF, where the queue resource is specifically PCIe.
- the identifier information (specifically, the queue number) of the queue in the host memory corresponding to the PF or VF in the SSD.
- each queue corresponds to a different interrupt resource, so that each PF corresponds to at least one interrupt resource, and each VF corresponds to at least one interrupt resource.
- the correspondence between the PF or the VF and the queue in the host memory may be specifically represented by the correspondence between the PF or the VF and the queue number of the queue in the host memory, and the corresponding relationship may also be changed according to the specific application scenario.
- the queue number of the queue in the host memory can be redistributed according to the specific application scenario, and the corresponding PF or VF is changed.
- the PF in the storage controller can view all storage media and interrupt resources in the PCIe SSD, and resource information such as queues in the host memory corresponding to the PF or the VF.
- the interrupt resource may be an extended MSI-x interrupt of a Message Signaled Interrupt (MSI), and each queue in the host memory corresponds to an MSI-x interrupt.
- MSI Message Signaled Interrupt
- the foregoing interrupt resources may also be an MSI interrupt, and each queue in the host memory corresponds to an MSI interrupt, and the specific manifestation of the foregoing interrupt resources is not limited herein.
- the storage controller allocates the storage sub-resource and the interrupt resource, and establishes a correspondence between the queue (specifically, the I/O queue) in the host memory and the PF or the VF, and the PF can be used according to the virtual machine.
- the allocation command sent by the monitor allocates the above storage sub-resource, I/O queue resource (such as the queue number of the I/O queue) or the interrupt resource to the PF and the VF.
- the foregoing allocation command may include a preset allocation principle, and the PF may allocate an NS to a PF according to the foregoing preset allocation principle, and save the mapping relationship between the NS and the PF in the resource allocation table.
- the PF may also allocate one or more NSs to one VF according to a preset allocation principle (the NS assigned to the VF is an absolute logical space of the VF), and save the mapping relationship between the NS and the VF to the resource.
- the allocation table assign an NS to multiple VFs according to the preset allocation principle, that is, Different VFs can share the same NS and save the mapping relationship between the NS and each VF in the resource allocation table.
- the storage controller can allocate an I/O queue resource and its corresponding interrupt resource in the PCIe SSD to the PF or VF according to the preset allocation principle, and map the I/O queue to the PF or VF.
- the storage controller may allocate a queue number of one or more queues in the host memory and its corresponding interrupt resource to a VF according to a preset allocation principle, and one or more I/Os in the host memory.
- the mapping relationship between the queue number of the queue and the VF, or the mapping relationship between the one or more interrupt resources and the VF is saved in the resource allocation table.
- the resource allocation table further includes identifier information of the PF and identifier information of each VF associated with the PF.
- the storage controller may establish a mapping relationship between the identifier information of the PF and the queue number or the interrupt resource of the NS, the I/O queue allocated to the PF, and query the NS and I/O queues allocated to the PF by using the identifier information of the PF. Queue number or interrupt resource.
- the storage controller may also establish a mapping relationship between the identification information of the VF and the queue number or the interrupt resource of the NS, the I/O queue allocated to the PF, and query the NS and the I/O allocated to the VF by using the identifier information of the VF.
- the queue number or interrupt resource of the queue As shown in Table 3 below:
- the foregoing destination VF is a VF that directly communicates with the virtual machine
- the PF is a PF that directly communicates with the virtual machine monitor.
- the storage controller receives the host command sent by the virtual machine or the virtual machine monitor.
- step S104 For a specific implementation process of the storage controller to query the resource allocation table according to the identification information of the destination PF or the destination VF, refer to step S104 in the first embodiment of the present invention, and details are not described herein.
- the virtual machine may first send a query command to the storage controller, and request the storage controller to query the state information of the physical resource of the PCIe SSD.
- the above query command carries the identification information of the destination PF or the destination VF.
- the storage controller can query the resource allocation table according to the identification information of the destination PF or the destination VF, and determine the capability entry of the destination PF or the destination VF, including the storage medium, I/O queue resources, and interrupt resources that can be occupied by the destination PF or the destination VF.
- the virtual machine 1 can query the storage controller for the capability entry of the VF1, as shown in Table 4 below:
- the capability table of the VF1 may be used. After the item is sent to the VF1, the VF1 can obtain the resource information such as the NS, the I/O queue, and the interrupt, and the resource information such as the NS, the I/O queue, and the interrupt can be recorded to establish the NS and I.
- the relative ID of the /O queue and interrupt resources may be used.
- VF1 can establish the relative ID of the NS (ie, storage sub-resource) that it can occupy, the relative ID of the I/O queue, and the relative ID of the interrupt resource, such as: VF1: [NS1, NS2, NS3], [IO1, IO2, IO3], [IRQ1, IRQ2, IRQ3], where [NS1, NS2, NS3] is the relative logical space of VF1.
- NS storage sub-resource
- VF2 can request the PF to query its capability table entry, and establish its relative ID of the NS that can be occupied, the relative ID of the I/O queue, and the relative ID of the interrupt resource, such as: VF2: [NS 1, NS2] , [IO1, IO2], [IRQ1, IRQ2].
- the I/O command may be sent to the storage controller, where the I/O command includes the identifier information of the VF requested by the virtual machine, and the corresponding VF.
- the NS relative ID (NS1 or NS2 or NS3) corresponding to VF1 the relative ID (IO1 or IO2 or IO3) of the I/O queue corresponding to VF1
- the storage controller may query the resource allocation table according to the identification information of the VF, and obtain all NSs (Abs_NS2, Abs_NS3, Abs_NS4) corresponding to the VF (for example, VF1) from the resource allocation table, and all I/ O queue resources (Abs_Q2, Abs_Q3, Abs_Q4), and all interrupt resources (Abs_IRQ2, Abs_IRQ3, Abs_IRQ4). Further, based on the correspondence between the storage sub-resource relative ID and the storage sub-resource absolute ID, the NS corresponding to the NS1 (Abs_NS2) is obtained from all the NSs corresponding to the VF1, and the same reason.
- the storage controller may obtain the I/O queue resource (Abs_Q2) corresponding to the IO1 from all the I/O queue resources corresponding to the VF1 according to the correspondence between the relative ID of the I/O queue and the absolute ID of the I/O queue, according to the interrupt resource.
- the correspondence between the ID and the absolute ID of the interrupt resource is obtained from the interrupt resources corresponding to the VF1, and the interrupt resource (Abs_IRQ2) corresponding to the IRQ1 is obtained.
- the data of the NS may be transferred to the physical memory address of the host through DMA.
- the controller command that responds to the host command can be sent to the host through the I/O queue resource corresponding to the PF.
- the controller command can be generated, and the controller command is DMA-into the host memory, and the interrupt is sent to the host through the interrupt resource corresponding to the queue, and the host can extract the controller command from the host queue.
- the storage controller may integrate the storage medium in the PCIe SSD into a unified storage resource, divide the unified resource into multiple storage sub-resources, and then allocate the storage sub-resource to the PF according to the allocation information sent by the host. And VF, save the mapping relationship between the storage sub-resource and the PF or VF to the resource allocation table.
- the resource allocation table may be queried according to the identification information of the destination PF or the destination VF, according to the mapping relationship between the storage sub-resource and the PF or the VF.
- the PF and the storage sub-resource corresponding to the destination VF operate.
- the method described in the embodiment of the present invention can support a single input/output virtualization technology to improve the I/O performance of the storage device and the utilization of the storage resources in the storage device.
- an embodiment of the present invention provides a storage controller supporting SR-IOV, including:
- the integration module 10 is configured to integrate the storage medium in the storage device into a unified storage resource, and divide the unified storage resource into multiple storage sub-resources.
- the allocating module 20 is configured to allocate the storage sub-resource divided by the integration module to at least one of the PF and the VF according to a preset allocation principle, and maintain a resource allocation table, where the resource is configured
- the allocation table includes a mapping relationship between the storage sub-resource and at least one of the PF and the VF.
- the receiving module 30 is configured to receive a host command sent by the virtual machine to the destination VF or sent by the virtual machine monitor to the destination PF.
- the operation module 40 is configured to search the resource allocation table according to the destination VF or the destination PF, and use the mapping relationship between the storage sub-resource in the resource allocation table and the PF or the VF to target the PF or the The storage sub-resource corresponding to the destination VF performs an operation corresponding to the host command received by the receiving module.
- the storage controller supporting the single input/output virtualization provided by the embodiment of the present invention is the storage controller 200 described in the foregoing embodiment, the storage controller 200 and the host 100,
- the storage controller 200 described in the foregoing embodiment, the storage controller 200 and the host 100,
- the connection relationship of the storage medium 300 refer to the foregoing description, and details are not described herein again.
- the storage device described in the embodiment of the present invention may be a PCIe SSD, and the storage medium included in the storage device may be a NAND Flash.
- the specific implementation manners of the modules in the storage controller described in the embodiments of the present invention can be referred to the steps S101-S104 in the first embodiment of the present invention, and details are not described herein again.
- the storage controller may integrate the storage medium in the PCIe SSD into a unified storage resource, divide the unified storage resource into multiple storage sub-resources, and then, multiple storage sub-resources according to the allocation information sent by the host. Assigned to the PF or VF, saves the mapping relationship between the storage sub-resource and the PF or VF to the resource allocation table.
- the resource allocation table may be queried according to the identifier of the PF or the VF that receives the command, and the storage sub-resource is operated according to the mapping relationship between the sub-resource and the PF or the VF.
- the method described in the embodiment of the present invention can support a single input/output virtualization technology to improve the I/O performance of the storage device and the utilization of the storage resources in the storage device.
- an embodiment of the present invention provides a storage controller supporting SR-IOV.
- the storage controller described in the embodiment of the present invention includes:
- the integration module 10 is configured to integrate the storage medium in the storage device into a unified storage resource, and divide the unified storage resource into multiple storage sub-resources.
- the allocating module 50 is configured to allocate the storage sub-resource divided by the integration module to at least one of the PF and the VF according to a preset allocation principle, and maintain a resource allocation table, where the resource is configured
- the allocation table includes a mapping relationship between the storage sub-resource and at least one of the PF and the VF.
- the receiving module 60 is configured to receive a host command sent by the virtual machine to the destination VF or sent by the virtual machine monitor to the destination PF.
- the operation module 80 is configured to search the resource allocation table according to the destination VF or the destination PF, and use the mapping relationship between the storage sub-resource in the resource allocation table and the PF or the VF to target the PF or the The storage sub-resource corresponding to the destination VF performs an operation corresponding to the host command received by the receiving module.
- the foregoing receiving module 60 may be implemented by the receiving module 30 described in the foregoing embodiment, and may also be specifically used to:
- the host learns to put the host command into the queue in the host memory, initiate a direct memory access DMA operation, and the destination VF or the destination PF corresponds to the queue in the host memory. Get the host command in the queue.
- the storage controller provided by the embodiment of the present invention further includes:
- the transmission module 90 is configured to transmit, by the DMA operation, a controller command that needs to be sent to the host to a memory in the host;
- the notification module 70 is configured to notify the host to acquire a controller command by using an interrupt resource corresponding to the destination VF or the destination queue of the destination PF.
- the foregoing operation module 80 may be implemented by using the operation module 40 described in the foregoing embodiment, and may also be specifically used to:
- the correspondence between the absolute IDs finds the storage sub-resource absolute ID corresponding to the storage sub-resource relative ID carried in the host command, and operates on the storage sub-resource corresponding to the found storage sub-resource absolute ID.
- the foregoing allocation module 50 may be implemented by the distribution module 20 described in the foregoing embodiment, and may also be specifically used to:
- the storage controller described in the embodiment of the present invention is specifically the storage controller as described in FIG. 1 , and the structure relationship between the foregoing storage controller and the host and the storage medium may be referred to the support single root provided by the embodiment of the present invention.
- the first embodiment of the controller implementation method of input/output virtualization is described in the foregoing Rong, no longer repeat here.
- each module in the storage controller described in the embodiment of the present invention may perform the specific implementation manner of each module described in the foregoing Embodiment 3. Further, the implementation described in the foregoing Embodiment 2 may also be performed. For the specific implementation, refer to steps S201-S205 in the foregoing Embodiment 2, and details are not described herein again.
- the storage controller may integrate the storage medium in the PCIe SSD into a unified storage resource, divide the unified resource into multiple storage sub-resources, and then allocate the storage sub-resource to the PF according to the allocation information sent by the host. And VF, save the mapping relationship between the storage sub-resource and the PF or VF to the resource allocation table.
- the resource allocation table may be queried according to the identification information of the destination PF or the destination VF, according to the mapping relationship between the storage sub-resource and the PF or the VF.
- the PF and the storage sub-resource corresponding to the destination VF operate.
- the storage controller described in the embodiments of the present invention can support a single input/output virtualization technology to improve the I/O performance of the storage device and the utilization of storage resources in the storage device.
- an embodiment of the present invention provides a memory controller 1000 including a processing chip 1001 and its accessory circuit 1002.
- the processing chip 1001 may include a Field-Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC).
- the FPGA or the ASIC may have a built-in storage medium 1003 or may be externally connected to the storage medium 1003.
- the FPGA chip or the ASIC chip may be programmed to complete the receiving and receiving request of the host, and perform various access and control on the Flash chipset.
- the above-mentioned storage controller 1000 can be used to implement the method for implementing the SR-IOV-supporting controller provided by the embodiment of the present invention.
- the specific implementations described in the second embodiment are not described herein again.
- an embodiment of the present invention provides a storage device 800, including a storage controller 801 and a storage medium 802, where the storage controller 801 is configured to:
- the resource allocation table is searched according to the destination VF or the destination PF, and the operation corresponding to the host command is performed on the storage sub-resource corresponding to the destination PF or the destination VF according to the mapping relationship between the storage sub-resource and the PF or the VF in the resource allocation table.
- the host includes a memory
- the memory includes at least one queue, and at least one of the PF or the VF respectively corresponds to one or more different queues;
- the storage controller When the storage controller is used to receive a host command sent by the virtual machine to the destination VF or the virtual machine monitor and sent to the destination PF, the storage controller is specifically configured to:
- the host After the host learns to put the host command into the queue in the host memory, it initiates a direct memory access DMA operation, and obtains a host command from the queue corresponding to the destination VF or the destination PF in the queue in the host memory.
- the storage controller further includes multiple interrupt resources, and multiple interrupt resources are allocated to the queue in the host memory, so that one or more queues correspond to one interrupt resource, and the storage controller is further used for :
- the destination queue of the destination VF or the destination PF is the destination VF or the queue corresponding to the destination PF in the queue in the host memory.
- the interrupt resource is an MSI-x interrupt
- each queue in the host memory corresponds to one MSI-x interrupt
- the host command includes a storage sub-resource relative identifier ID for identifying the storage sub-resource, and the storage sub-resource in the resource allocation table is identified by the storage sub-resource absolute ID;
- the storage controller is configured to search the resource allocation table according to the destination VF or the destination PF, according to the resource allocation.
- the mapping between the storage sub-resource and the PF or the VF in the table is performed on the storage sub-resource corresponding to the destination PF or the destination VF, the operation is specifically performed on:
- the storage sub-resource corresponding to the destination VF or the destination PF is found according to the mapping relationship between the storage sub-resource and the PF or the VF in the resource allocation table, and is found and carried according to the correspondence between the storage sub-resource relative ID and the storage sub-resource absolute ID.
- the storage sub-resource absolute ID corresponding to the storage sub-resource relative ID in the host command operates on the storage sub-resource corresponding to the found storage sub-resource absolute ID.
- the storage controller when the storage controller allocates the storage sub-resource to at least one of the PF and the VF according to a preset allocation principle, and maintains a resource allocation table, the storage controller is specifically configured to:
- a storage sub-resource is allocated to a plurality of VFs according to a preset allocation principle, and a mapping relationship between the storage sub-resources and the respective VFs is saved to the resource allocation table.
- the embodiment of the present invention provides a storage system, including a host, and a storage device provided in Embodiment 6.
- the structure of the device may be referred to FIG. 1 and FIG. 8. A detailed description is given in the embodiment, and details are not described herein.
- the storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
| Abs_NS(绝对逻辑空间) | Start_LBA(起始位置) | End_LAB(终止位置) |
| Abs_NS1 | Abs_Start_LBA1 | Abs_End_LAB1 |
| Abs_NS2 | Abs_Start_LBA2 | Abs_End_LAB2 |
| Abs_NS3 | Abs_Start_LBA3 | Abs_End_LAB3 |
| …… | ...... | …… |
| Abs_NS | Start_LBA(起始位置) | End_LAB(终止位置) |
| Abs_NS1 | 0x0000000 | 0x7ffffff |
| Abs_NS2 | 0x8000000 | 0xfffffff |
| Abs_NS3 | 0x1000000 | 0x17ffffff |
| Abs_NS4 | 0x1800000 | 0x1fffffff |
| Abs_NS5 | 0x2000000 | 0x2ffffff |
| Abs_NS6 | 0x3000000 | 0x3ffffff |
| 资源 | 数量 |
| NS | 3 |
| I/O队列 | 3 |
| 中断 | 3 |
Claims (20)
- 一种支持SR-IOV的存储资源访问方法,由存储设备中的存储控制器执行,所述存储设备还包括存储介质,所述存储控制器用于分别连接主机以及所述存储介质,其中,所述主机运行有虚拟机监控器以及一个或多个虚拟机,所述存储控制器中包括物理功能PF以及与所述PF关联的一个或多个虚拟功能VF,所述PF与所述虚拟机监控器进行直接通信,每个所述VF与一个所述虚拟机进行直接通信,其特征在于,所述方法包括:将所述存储介质整合为统一存储资源,并将所述统一存储资源划分为多个存储子资源;根据预设分配原则将所述存储子资源分配给所述PF和所述VF中的至少一个,并维护一个资源分配表,其中,所述资源分配表包括存储子资源与所述PF以及所述VF中的至少一个的映射关系;接收所述虚拟机发送给目的VF或者所述虚拟机监控器发送给目的PF的主机命令;根据所述目的VF或目的PF查找所述资源分配表,根据所述资源分配表中的存储子资源与所述PF或者所述VF的映射关系对所述目的PF或者所述目的VF对应的存储子资源进行与所述主机命令对应的操作。
- 如权利要求1所述的方法,其特征在于,所述主机包括内存,所述内存包括至少一个队列,所述PF或者所述VF中的至少一个分别对应一个或多个不同的所述队列;所述接收所述虚拟机发送给目的VF或者所述虚拟机监控器发送给目的PF的主机命令包括:当获知所述主机将所述主机命令放到所述主机内存中的所述队列后,发起直接内存存取DMA操作,从所述主机内存中的队列中所述目的VF或者所述目的PF对应的队列中获取所述主机命令。
- 如权利要求2所述的方法,其特征在于,所述存储控制器还包括多个 中断资源,所述多个中断资源被分配给所述主机内存中的队列,使得一个或多个所述队列对应一个中断资源,所述方法还包括:通过所述DMA操作将需要发送给所述主机的控制器命令传输到主机中的内存;通过与所述目的VF或者所述目的PF的目的队列对应的中断资源通知所述主机去获取控制器命令;其中,所述目的VF或者所述目的PF的目的队列为:所述主机内存中的队列中所述目的VF或者所述目的PF对应的队列。
- 如权利要求3所述的方法,其特征在于:所述中断资源为MSI-x中断,所述主机内存中每个所述队列对应一个MSI-x中断。
- 如权利要求1-4任一所述的方法,其特征在于:所述主机命令中包括用于标识所述存储子资源的存储子资源相对标识ID,所述资源分配表中的存储子资源用存储子资源绝对ID来标识;所述根据所述目的VF或目的PF查找所述资源分配表,根据所述资源分配表中的存储子资源与所述PF或者所述VF的映射关系对所述目的VF或者所述目的VF对应的存储子资源进行与所述主机命令对应的操作包括:根据所述资源分配表中的存储子资源与所述PF或者所述VF的映射关系找到与所述目的VF或所述目的PF对应的存储子资源,并根据存储子资源相对ID与存储子资源绝对ID之间的对应关系找到与携带在所述主机命令中的存储子资源相对ID对应的存储子资源绝对ID,对与找到的存储子资源绝对ID对应的存储子资源进行操作。
- 如权利要求1-5任一所述的方法,其特征在于,所述根据预设分配原则将所述存储子资源分配给所述PF和所述VF中的至少一个,并维护一个资源分配表包括:根据预设分配原则将至少一个所述存储子资源分配给一个所述PF,并将 所述存储子资源与所述PF的映射关系保存至所述资源分配表;或者根据预设分配原则将至少一个所述存储子资源分配给一个所述VF,并将所述至少一个所述存储子资源与所述VF的映射关系保存至所述资源分配表;或者根据预设分配原则将一个所述存储子资源分配给多个所述VF,并将所述存储子资源与各个所述VF的映射关系保存至所述资源分配表。
- 如权利要求1-6任一所述的方法,其特征在于:所述PF用于执行全局性的存储控制器功能;其中,所述全局性的存储控制器功能包括:Firmware Download或者Firmware Active命令的实现、Format命令的实现,或者全盘复位的关机功能中的至少一种。
- 一种支持SR-IOV的存储控制器,所述存储控制器用于分别连接主机以及存储介质,其中,所述主机运行有虚拟机监控器以及一个或多个虚拟机,所述存储控制器中包括物理功能PF以及与所述PF关联的一个或者多个虚拟功能VF,所述VF与所述虚拟机监控器进行直接通信,每个所述VF与一个所述虚拟机进行直接通信,其特征在于,包括:整合模块,用于将所述存储介质整合为统一存储资源,并将所述统一存储资源划分为多个存储子资源;分配模块,用于根据预设分配原则将所述整合模块所划分的所述存储子资源分配给所述PF和所述VF中的至少一个,并维护一个资源分配表,其中,所述资源分配表包括存储子资源与所述PF以及所述VF中的至少一个的映射关系;接收模块,用于接收所述虚拟机发送给目的VF或者所述虚拟机监控器发送给目的PF的主机命令;操作模块,用于根据所述目的VF或目的PF查找所述资源分配表,根据所述资源分配表中的存储子资源与所述PF或者所述VF的映射关系对所述目的PF或者所述目的VF对应的存储子资源进行与所述接收模块接收到的所述 主机命令对应的操作。
- 如权利要求8所述的存储控制器,其特征在于,所述主机包括内存,所述内存包括至少一个队列,所述PF或者所述VF中的至少一个分别对应一个或多个不同的所述队列;所述接收模块具体用于:在获知所述主机将所述主机命令放到所述主机内存中的所述队列后,发起直接内存存取DMA操作,从所述主机内存中的队列中所述目的VF或者所述目的PF对应的队列中获取所述主机命令。
- 如权利要求9所述的方法,其特征在于,所述存储控制器还包括多个中断资源,所述多个中断资源被分配给所述主机内存中的队列,使得一个或多个所述队列对应一个中断资源;所述存储控制器还包括:传输模块,用于通过所述DMA操作将需要发送给所述主机的控制器命令传输到主机中的内存;通知模块,用于通过与所述目的VF或者所述目的PF的目的队列对应的中断资源通知所述主机去获取控制器命令;其中,所述目的VF或者所述目的PF的目的队列为:所述主机内存中的队列中所述目的VF或者所述目的PF对应的队列。
- 如权利要求10所述的存储控制器,其特征在于,所述中断资源为MSI-x中断,所述主机内存中每个所述队列对应一个MSI-x中断。
- 如权利要求8-11任一所述的存储控制器,其特征在于,所述主机命令中包括用于标识所述存储子资源的存储子资源相对标识ID,所述资源分配表中的存储子资源用存储子资源绝对ID来标识;所述操作模块具体用于:根据所述资源分配表中的存储子资源与所述PF或者所述VF的映射关系 找到与所述目的VF或所述目的PF对应的存储子资源,并根据存储子资源相对ID与存储子资源绝对ID之间的对应关系找到与携带在所述主机命令中的存储子资源相对ID对应的存储子资源绝对ID,对与找到的存储子资源绝对ID对应的存储子资源进行操作。
- 如权利要求8-12任一所述的存储控制器,其特征在于,所述分配模块具体用于:根据预设分配原则将至少一个所述存储子资源分配给一个所述PF,并将所述存储子资源与所述PF的映射关系保存至所述资源分配表;或者根据预设分配原则将至少一个所述存储子资源分配给一个所述VF,并将所述至少一个所述存储子资源与所述VF的映射关系保存至所述资源分配表;或者根据预设分配原则将一个所述存储子资源分配给多个所述VF,并将所述存储子资源与各个所述VF的映射关系保存至所述资源分配表。
- 如权利要求8-13任一所述的存储控制器,其特征在于,所述PF用于执行全局性的存储控制器功能;其中,所述全局性的存储控制器功能包括:Firmware Download或者Firmware Active命令的实现、Format命令的实现,或者全盘复位的关机功能中的至少一种。
- 一种存储设备,其特征在于,包括:存储控制器以及存储介质;所述存储控制器与所述存储介质相连,并且用于与外部的主机相连,以使所述主机通过所述存储控制器读写所述存储介质中的数据,所述主机运行有虚拟机监控器以及一个或多个虚拟机,所述存储控制器中包括物理功能PF以及与所述PF关联的一个或多个虚拟功能VF,所述PF与所述虚拟机监控器进行直接通信,每个所述VF与一个所述虚拟机进行直接通信;所述存储控制器用于:将所述存储介质整合为统一存储资源,并将所述统一存储资源划分为多个 存储子资源;根据预设分配原则将所述存储子资源分配给所述PF和所述VF中的至少一个,并维护一个资源分配表,其中,所述资源分配表包括存储子资源与所述PF以及所述VF中的至少一个的映射关系;接收所述虚拟机发送给目的VF或者所述虚拟机监控器发送给目的PF的主机命令;根据所述目的VF或目的PF查找所述资源分配表,根据所述资源分配表中的存储子资源与所述PF或者所述VF的映射关系对所述目的PF或者所述目的VF对应的存储子资源进行与所述主机命令对应的操作。
- 如权利要求15所述的存储设备,其特征在于,所述主机包括内存,所述内存包括至少一个队列,所述PF或者所述VF中的至少一个分别对应一个或多个不同的所述队列;所述存储控制器用于所述接收所述虚拟机发送给目的VF或者所述虚拟机监控器发送给目的PF的主机命令时,具体用于:当获知所述主机将所述主机命令放到所述主机内存中的所述队列后,发起直接内存存取DMA操作,从所述主机内存中的队列中所述目的VF或者所述目的PF对应的队列中获取所述主机命令。
- 如权利要求16的存储设备,其特征在于,所述存储控制器还包括多个中断资源,所述多个中断资源被分配给所述主机内存中的队列,使得一个或多个所述队列对应一个中断资源,所述存储控制器还用于:通过所述DMA操作将需要发送给所述主机的控制器命令传输到主机中的内存;通过与所述目的VF或者所述目的PF的目的队列对应的中断资源通知所述主机去获取控制器命令;其中,所述目的VF或者所述目的PF的目的队列为:所述主机内存中的队列中所述目的VF或者所述目的PF对应的队列。
- 如权利要求17所存储设备,其特征在于,所述中断资源为MSI-x中断,所述主机内存中每个所述队列对应一个MSI-x中断。
- 如权利要求15-18任一所述的存储设备,其特征在于,所述主机命令中包括用于标识所述存储子资源的存储子资源相对标识ID,所述资源分配表中的存储子资源用存储子资源绝对ID来标识;所述存储控制器用于根据所述目的VF或目的PF查找所述资源分配表,根据所述资源分配表中的存储子资源与所述PF或者所述VF的映射关系对所述目的PF或者所述目的VF对应的存储子资源进行与所述主机命令对应的操作时,具体用于:根据所述资源分配表中的存储子资源与所述PF或者所述VF的映射关系找到与所述目的VF或所述目的PF对应的存储子资源,并根据存储子资源相对ID与存储子资源绝对ID之间的对应关系找到与携带在所述主机命令中的存储子资源相对ID对应的存储子资源绝对ID,对与找到的存储子资源绝对ID对应的存储子资源进行操作。
- 如权利要求15-19任一所述的存储设备,其特征在于,所述存储控制器用于根据预设分配原则将所述存储子资源分配给所述PF和所述VF中的至少一个,并维护一个资源分配表时,具体用于:根据预设分配原则将至少一个所述存储子资源分配给一个所述PF,并将所述存储子资源与所述PF的映射关系保存至所述资源分配表;或者根据预设分配原则将至少一个所述存储子资源分配给一个所述VF,并将所述至少一个所述存储子资源与所述VF的映射关系保存至所述资源分配表;或者根据预设分配原则将一个所述存储子资源分配给多个所述VF,并将所述存储子资源与各个所述VF的映射关系保存至所述资源分配表。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP15855076.4A EP3214553B1 (en) | 2014-10-31 | 2015-10-26 | Storage resource access method supporting sr-iov, storage controller and storage device |
| BR112017009045-7A BR112017009045B1 (pt) | 2014-10-31 | 2015-10-26 | Método de acesso de recurso de armazenamento suportado por virtualização de entrada/saída de raiz única sr-iov, controlador de armazenamento suportado por virtualização de entrada/saída de raiz única e dispositivo de armazenamento |
| US15/581,095 US10534552B2 (en) | 2014-10-31 | 2017-04-28 | SR-IOV-supported storage resource access method and storage controller and storage device |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201410607052.5 | 2014-10-31 | ||
| CN201410607052.5A CN104461958B (zh) | 2014-10-31 | 2014-10-31 | 支持sr-iov的存储资源访问方法、存储控制器及存储设备 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/581,095 Continuation US10534552B2 (en) | 2014-10-31 | 2017-04-28 | SR-IOV-supported storage resource access method and storage controller and storage device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016066073A1 true WO2016066073A1 (zh) | 2016-05-06 |
Family
ID=52908040
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2015/092877 Ceased WO2016066073A1 (zh) | 2014-10-31 | 2015-10-26 | 支持sr-iov的存储资源访问方法、存储控制器及存储设备 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US10534552B2 (zh) |
| EP (1) | EP3214553B1 (zh) |
| CN (1) | CN104461958B (zh) |
| BR (1) | BR112017009045B1 (zh) |
| WO (1) | WO2016066073A1 (zh) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104461958B (zh) * | 2014-10-31 | 2018-08-21 | 华为技术有限公司 | 支持sr-iov的存储资源访问方法、存储控制器及存储设备 |
| US10838852B2 (en) | 2015-04-17 | 2020-11-17 | Samsung Electronics Co., Ltd. | System and method to extend NVME queues to user space |
| US11036533B2 (en) | 2015-04-17 | 2021-06-15 | Samsung Electronics Co., Ltd. | Mechanism to dynamically allocate physical storage device resources in virtualized environments |
| JP6516860B2 (ja) * | 2015-10-26 | 2019-05-22 | 株式会社日立製作所 | 計算機システム、及び、アクセス制御方法 |
| CN106648877B (zh) * | 2015-10-28 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 资源申请、释放方法及装置 |
| CN105808167B (zh) * | 2016-03-10 | 2018-12-21 | 深圳市杉岩数据技术有限公司 | 一种基于sr-iov的链接克隆的方法、存储设备及系统 |
| CN107515775B (zh) * | 2016-06-15 | 2021-11-19 | 华为技术有限公司 | 一种数据传输方法及装置 |
| CN112347012B (zh) * | 2016-06-20 | 2024-07-23 | 北京忆芯科技有限公司 | 支持SR-IOV的NVMe控制器及方法 |
| CN107894913B (zh) * | 2016-09-30 | 2022-05-13 | 超聚变数字技术有限公司 | 一种计算机系统和存储访问装置 |
| CN108614671B (zh) * | 2016-12-12 | 2023-02-28 | 北京忆恒创源科技股份有限公司 | 基于命名空间的键-数据访问方法与固态存储设备 |
| US10318334B2 (en) * | 2017-07-07 | 2019-06-11 | Netronome Systems, Inc. | Virtio relay |
| US20190167579A1 (en) * | 2017-10-27 | 2019-06-06 | Pulmatrix Operating Company, Inc. | Itraconazole dry powders |
| CN110096355B (zh) * | 2018-01-29 | 2024-04-09 | 阿里巴巴集团控股有限公司 | 一种共享资源分配方法、装置和设备 |
| US10592463B2 (en) * | 2018-03-05 | 2020-03-17 | Samsung Electronics Co., Ltd. | SSD architecture for FPGA based acceleration |
| KR102755199B1 (ko) * | 2018-03-13 | 2025-01-17 | 삼성전자주식회사 | 가상 환경에서의 물리적 스토리지 장치 자원을 동적으로 할당하는 메커니즘 |
| CN108958884B (zh) * | 2018-06-22 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种虚拟机管理的方法及相关装置 |
| CN110752937B (zh) * | 2018-07-23 | 2022-04-15 | 中兴通讯股份有限公司 | 一种物理功能复用方法、装置和计算机存储介质 |
| US11074013B2 (en) * | 2018-08-07 | 2021-07-27 | Marvell Asia Pte, Ltd. | Apparatus and methods for providing quality of service over a virtual interface for solid-state storage |
| US11656775B2 (en) | 2018-08-07 | 2023-05-23 | Marvell Asia Pte, Ltd. | Virtualizing isolation areas of solid-state storage media |
| US11010314B2 (en) | 2018-10-30 | 2021-05-18 | Marvell Asia Pte. Ltd. | Artificial intelligence-enabled management of storage media access |
| US11194750B2 (en) * | 2018-12-12 | 2021-12-07 | Micron Technology, Inc. | Memory sub-system with multiple ports having single root virtualization |
| US11481118B2 (en) | 2019-01-11 | 2022-10-25 | Marvell Asia Pte, Ltd. | Storage media programming with adaptive write buffer release |
| CN109902033B (zh) * | 2019-02-13 | 2023-03-14 | 山东华芯半导体有限公司 | 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 |
| US12271322B2 (en) | 2019-06-24 | 2025-04-08 | Samsung Electronics Co., Ltd. | Multi-function flexible computational storage device |
| US11704059B2 (en) | 2020-02-07 | 2023-07-18 | Samsung Electronics Co., Ltd. | Remote direct attached multiple storage function storage device |
| CN111651269A (zh) * | 2020-05-18 | 2020-09-11 | 青岛镕铭半导体有限公司 | 实现设备虚拟化的方法、装置及计算机可读存储介质 |
| US11323285B1 (en) * | 2020-08-28 | 2022-05-03 | Earthsystems Technologies, Inc. | Architecture for a multichannel geophysical data acquisition system and method of use |
| CN113296884B (zh) * | 2021-02-26 | 2022-04-22 | 阿里巴巴集团控股有限公司 | 虚拟化方法、装置、电子设备、介质及资源虚拟化系统 |
| US20250291709A1 (en) * | 2024-03-12 | 2025-09-18 | Sandisk Technologies Llc | Method for supporting increased logical capacity using thin provisioning without increasing dram size |
| CN120447838B (zh) * | 2025-06-27 | 2025-09-19 | 苏州元脑智能科技有限公司 | 存储系统、方法、装置、电子设备、介质及产品 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102801806A (zh) * | 2012-08-10 | 2012-11-28 | 薛海强 | 一种云计算系统及云计算资源管理方法 |
| CN104049912A (zh) * | 2014-05-23 | 2014-09-17 | 上海爱数软件有限公司 | 基于虚拟化平台的分布式存储管理方法 |
| CN104461958A (zh) * | 2014-10-31 | 2015-03-25 | 杭州华为数字技术有限公司 | 支持sr-iov的存储资源访问方法、存储控制器及存储设备 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US1415796A (en) * | 1922-05-09 | Pbocess of treating lead-zinc sulphide dues | ||
| BE794948A (fr) * | 1972-02-02 | 1973-08-02 | Raychem Corp | Dispositif de connexion pour cables coaxiaux |
| US9389895B2 (en) | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
| US8473947B2 (en) * | 2010-01-18 | 2013-06-25 | Vmware, Inc. | Method for configuring a physical adapter with virtual function (VF) and physical function (PF) for controlling address translation between virtual disks and physical storage regions |
| US8719817B2 (en) * | 2010-03-25 | 2014-05-06 | Vmware, Inc. | Virtualization intermediary/virtual machine guest operating system collaborative SCSI path management |
| US9135044B2 (en) * | 2010-10-26 | 2015-09-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Virtual function boot in multi-root I/O virtualization environments to enable multiple servers to share virtual functions of a storage adapter through a MR-IOV switch |
| US9135101B2 (en) * | 2013-03-01 | 2015-09-15 | Avago Technologies General Ip (Singapore) Pte Ltd | Virtual function timeout for single root input/output virtualization controllers |
| US9003071B2 (en) * | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
| TWI556174B (zh) * | 2014-03-05 | 2016-11-01 | 威盛電子股份有限公司 | 虛擬功能分配系統、方法及其管理主機 |
| WO2016026131A1 (zh) * | 2014-08-22 | 2016-02-25 | 上海交通大学 | 一种基于 numa 高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
| GB201415796D0 (en) * | 2014-09-07 | 2014-10-22 | Technion Res & Dev Foundation | Logical-to-physical block mapping inside the disk controller: accessing data objects without operating system intervention |
-
2014
- 2014-10-31 CN CN201410607052.5A patent/CN104461958B/zh active Active
-
2015
- 2015-10-26 WO PCT/CN2015/092877 patent/WO2016066073A1/zh not_active Ceased
- 2015-10-26 EP EP15855076.4A patent/EP3214553B1/en active Active
- 2015-10-26 BR BR112017009045-7A patent/BR112017009045B1/pt active IP Right Grant
-
2017
- 2017-04-28 US US15/581,095 patent/US10534552B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102801806A (zh) * | 2012-08-10 | 2012-11-28 | 薛海强 | 一种云计算系统及云计算资源管理方法 |
| CN104049912A (zh) * | 2014-05-23 | 2014-09-17 | 上海爱数软件有限公司 | 基于虚拟化平台的分布式存储管理方法 |
| CN104461958A (zh) * | 2014-10-31 | 2015-03-25 | 杭州华为数字技术有限公司 | 支持sr-iov的存储资源访问方法、存储控制器及存储设备 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP3214553A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN104461958A (zh) | 2015-03-25 |
| CN104461958B (zh) | 2018-08-21 |
| EP3214553B1 (en) | 2019-12-11 |
| US20170235510A1 (en) | 2017-08-17 |
| BR112017009045B1 (pt) | 2022-12-27 |
| EP3214553A4 (en) | 2017-10-25 |
| US10534552B2 (en) | 2020-01-14 |
| BR112017009045A2 (zh) | 2018-07-03 |
| EP3214553A1 (en) | 2017-09-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2016066073A1 (zh) | 支持sr-iov的存储资源访问方法、存储控制器及存储设备 | |
| US10180843B2 (en) | Resource processing method and device for a multi-core operating system | |
| US10423361B2 (en) | Virtualized OCSSDs spanning physical OCSSD channels | |
| US9465760B2 (en) | Method and apparatus for delivering MSI-X interrupts through non-transparent bridges to computing resources in PCI-express clusters | |
| US9690739B2 (en) | Method and apparatus for extending PCIe domain | |
| US20190155548A1 (en) | Computer system and storage access apparatus | |
| CN108351829B (zh) | 用于输入/输出计算资源控制的系统和方法 | |
| CN111880750A (zh) | 磁盘读写资源的分配方法、装置、设备及存储介质 | |
| WO2017066944A1 (zh) | 一种存储设备访问方法、装置和系统 | |
| US20140006659A1 (en) | Driver-assisted base address register mapping | |
| CN103942087A (zh) | 虚拟机热迁移方法及相关装置和集群系统 | |
| CN108027642A (zh) | 用于隔离输入/输出计算资源的系统和方法 | |
| US11016817B2 (en) | Multi root I/O virtualization system | |
| WO2015180598A1 (zh) | 对存储设备的访问信息处理方法和装置、系统 | |
| WO2016119468A1 (zh) | 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备 | |
| AU2015402888B2 (en) | Computer device and method for reading/writing data by computer device | |
| US11150928B2 (en) | Hypervisor translation bypass | |
| CN106155910B (zh) | 一种实现内存访问的方法、装置和系统 | |
| WO2023221847A1 (zh) | 基于虚拟机设备直通的数据访问方法、设备以及系统 | |
| WO2015055117A1 (zh) | 一种内存访问的方法、设备和系统 | |
| JP2018508869A (ja) | 仮想化環境におけるストレージリソース管理 | |
| US20250085999A1 (en) | Inter-core communication method and apparatus, computer equipment and computer-readable storage medium | |
| WO2016065613A1 (zh) | 访问文件的方法、分布式存储系统和网络设备 | |
| CN107851062A (zh) | 一种主机集群中缓存管理方法及主机 | |
| WO2016197947A1 (zh) | 一种分页式地址空间管理方法以及控制器 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15855076 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| REEP | Request for entry into the european phase |
Ref document number: 2015855076 Country of ref document: EP |
|
| REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112017009045 Country of ref document: BR |
|
| ENP | Entry into the national phase |
Ref document number: 112017009045 Country of ref document: BR Kind code of ref document: A2 Effective date: 20170428 |
