CN102722458A - I/ O (input/output) remapping method and device for plurality of shared systems - Google Patents

I/ O (input/output) remapping method and device for plurality of shared systems Download PDF

Info

Publication number
CN102722458A
CN102722458A CN2012101728445A CN201210172844A CN102722458A CN 102722458 A CN102722458 A CN 102722458A CN 2012101728445 A CN2012101728445 A CN 2012101728445A CN 201210172844 A CN201210172844 A CN 201210172844A CN 102722458 A CN102722458 A CN 102722458A
Authority
CN
China
Prior art keywords
address
root node
base address
transaction packet
sequence number
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.)
Granted
Application number
CN2012101728445A
Other languages
Chinese (zh)
Other versions
CN102722458B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201210172844.5A priority Critical patent/CN102722458B/en
Publication of CN102722458A publication Critical patent/CN102722458A/en
Application granted granted Critical
Publication of CN102722458B publication Critical patent/CN102722458B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a direct I/ O (input/output) remapping method for a plurality of virtualized shared systems. The method comprises the following steps: 1, extracting an I/ O device function base address definition, recording a mapping relation between a base address register number and a base address number corresponding to an address window defined by the I/ O device function base address definition; 2, performing writing storage on a function base address in a main control root node PCIe domain, and establishing a mapping relationship from the function base address number to the base address in the main control root node PCIe domain; 3, performing writing storage on a device function ID (identification) mapping relationship, and establishing a mapping relationship between ID numbers of a device function in the main control root node PCIe domain and a subordinate root node PCIe domain; 4, performing writing storage on a function base address in the subordinate root node PCIe domain, and establishing a mapping relationship from a base address in the subordinate root node PCIe domain to a function base address number corresponding to the base address; and 5, performing direct I/ O remapping, and remapping a subordinate root node and an I/O device affair package.

Description

A kind of I/O that is used for many shared systems remaps method and apparatus
Technical field
The present invention relates to the I/O Intel Virtualization Technology, the I/O that particularly relates to the many virtual shared systems of I/O remaps method and apparatus.
Background technology
PCIe (the Peripheral Component Interface Express) sign of functions of the equipments in system all uses one to be indicated by Bus number (BUS)/device number (Device)/function ID number (B/D/F) that number (Function) forms usually.After system powered on, system initialization software was at first enumerated I/O equipment all in the system according to the ID route and is found and initial configuration, had also distributed its ID in the PCIe territory number for functions of the equipments simultaneously and its address window that is shone upon etc.After device initialize was accomplished, upper layer software (applications)s such as system software and driver can be directed to equipment through ID or address route.In the many virtual shared systems of I/O, for fear of system's competition and conflict, I/O equipment can be used by a plurality of root nodes, but can only be by a root node control.When system powered on, the I/O functions of the equipments were at first by its ID number and address window in main control root node PCIe territory of main control root node initial configuration.When functions of the equipments are assigned to the subordinate root node when using, uses the equipment placeholder of virtual functions of the equipments, and accept ID number and address window in the local PCIe territory of subordinate root node distribution as subordinate root node PCIe territory.Therefore, use the visit of ID number of local PCIe territory functions of the equipments being carried out, need remap, could realize that the subordinate root node directly visits I/O equipment with the address for the subordinate root node.
Summary of the invention
For addressing the above problem, the invention provides a kind of direct I/O that is used for the many virtual shared systems of I/O and remap method, comprising:
Step 1, the definition of I/O functions of the equipments base address is extracted, and writes down the mapping relations between each base address register sequence number base address sequence number corresponding with the address window of its definition;
Step 2, storage is write in the functional group address in the main control root node PCIe territory, sets up functional group address sequence number to its mapping in the base address in main control root node PCIe territory;
Step 3, functions of the equipments ID mapping relations are write storage, the mapping between ID number in main control root node PCIe territory and subordinate root node PCIe territory of apparatus for establishing function;
Step 4, storage is write in the functional group address in the subordinate root node PCIe territory, sets up the mapping of the base address in subordinate root node PCIe territory to its corresponding functional group address sequence number;
Step 5, directly I/O remaps, and the transaction packet of subordinate root node and I/O equipment room is remapped operation.
The said direct I/O that is used for the many virtual shared systems of I/O remaps method, and step 1 also comprises:
It is in the main control root node system discovery stage that the definition of said base address is extracted; Obtain in the I/O functions of the equipments configuration space through each base address register (Base Address Register; BAR) the address window type of definition, and extract the corresponding base address mask of each address window;
Said base address mask, which position that is used in reference to address in the fixed system configured address window is a fixed bit, can extract corresponding base address, memory access address through said base address mask;
According to the tactic sequence number of BAR register number, each function of the same type in I/O equipment is identical with number to the address window type of system's application to the address window number of system's application for said base address sequence number, the function that is used for indication equipment.
The described direct I/O that is used for the many virtual shared systems of I/O remaps method, and said step 2 also comprises:
It is at main control root node system initialization configuration phase that storage is write in functional group address in the said main control root node PCIe territory; Through resolving the configuration transaction bag; The functional group address sequence number of indicating in the extraction transaction packet is write the corresponding base address of sequence number, the said functional group of storage address as allocation index.
Said functional group address sequence number is combined by the functions of the equipments p in base address sequence number k and the main control root node PCIe territory, and (k, p) base address of indication is that system is that function number is n base address of p distribution in the equipment to functional group address sequence number.
The said direct I/O that is used for the many virtual shared systems of I/O remaps method, and step 3 also comprises:
It is to carry out equipment I/O resources allocation stage at the main control root node that said functions of the equipments ID mapping relations are write storage; Distribute transaction packet through analyzing device; Extract the functions of the equipments of indicating in the transaction packet in the function in main control root node PCIe territory number as allocation index; Write the data item that storage number is made up of the root node under said function sign ID and the function of said function in affiliated root node PCIe territory, the mapping between in subordinate root node PCIe territory ID number of apparatus for establishing function in main control root node PCIe territory ID number and its.
The described direct I/O that is used for the many virtual shared systems of I/O remaps method, and said step 4 also comprises:
It is in the subordinate root node PCIe of the system rescanning stage that storage is write in functional group address in the said subordinate root node PCIe territory; Through resolving the configuration transaction bag; The functional group address sequence number of indicating in the extraction transaction packet is write the corresponding base address of sequence number, the said functional group of storage address as allocation index.
The said direct I/O that is used for the many virtual shared systems of I/O remaps method, and step 5 also comprises:
It is in the process that subordinate root node and I/O equipment communicate that said direct I/O remaps; The descending transaction packet based on the ID route of subordinate root node initiation is carried out descending ID to remap; The descending transaction packet based on the address route of subordinate root node initiation is carried out the address remap, the transaction packet of functions of the equipments initiation is carried out up ID remap.
The said direct I/O that is used for the many virtual shared systems of I/O remaps method, and step 1 also comprises:
Step 71, system powers on, the start address of initialization BAR register offset pointer, initialization base address sequence number, initialization 64 bit address application identifiers turn to step 72;
Step 72 receives the transaction packet of sending from the main control root node; If receive the transaction packet that the main control root node is sent, turn to step 73;
Step 73, transaction packet is judged; The transaction packet that parsing receives if this transaction packet is to the configurable write request package of the register write complete 1 of BAR register offset pointer appointment, turns to step 74; Otherwise change step 72;
Step 74, the completion bag of the band data that reception I/O equipment is sent; If receive the completion bag of the band data of sending from I/O equipment, turn to step 75;
Step 75, the application IP addresses type is judged; Resolve the data segment of accomplishing bag, the application IP addresses type of this BAR definition is judged; If this BAR is not used for application IP addresses, then turn to step 78; If this BAR definition is 64 bit address, then turn to step 76; Otherwise, turn to step 77;
Step 76; Low L position with data segment content record base address mask of sequence number correspondence to the base address; Enable 64 bit address application identifiers, and write down address window bit wide type and the mapping relations of base address sequence number of the BAR definition of current BAR register offset pointer and indication thereof, turn to step 78;
Step 77, the record data section is upgraded base address sequence number and 64 bit address application identifiers; If 64 current application identifiers do not enable, designation data section content is the mask of 32 base address, then the high L position of data segment content is recorded the low L position of the corresponding base address mask of base address sequence number; Otherwise the data segment content is mask high 32 of 64 corresponding base address of base address sequence number, then data segment is recorded the high 32 of the corresponding base address mask of base address sequence number; Write down address window bit wide type and the mapping relations of base address sequence number of the BAR definition of current BAR register offset pointer and indication thereof, upgrade the base address sequence number then and add 1, and the 64 bit address application identifiers that reset, turn to step 78;
Step 78 is upgraded BAR register offset pointer and is pointed to next BAR register, turns to step 79;
Step 79, BAR register offset pointer availability deciding; Judge whether the register that current BAR register offset pointer is pointed to still is the BAR in the configuration space, if then turn to step 72; Otherwise turn to step 710;
Step 710 finishes, and sign has been accomplished base address definition leaching process.
The said direct I/O that is used for the many virtual shared systems of I/O remaps method, and step 2 also comprises:
Step 81 receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the main control root node, turns to step 82;
Step 82, descending transaction packet is judged; The transaction packet of being sent by the main control root node that parsing receives if this transaction packet is the configuration transaction bag, turns to step 83;
Step 83; Obtain and resolve in the configuration transaction bag configurable write bag to BAR register write non-complete 1; The base address that to extract the target device function number in the transaction packet, the BAR register skew that will dispose and the said data segment content of data segment content be system configuration turns to step 84;
Step 84 according to the mapping relations that base address definition leaching process obtains, is obtained corresponding base address sequence number and the address window bit wide type of BAR register skew, turns to step 85;
Step 85, address window bit wide type decision; The address window bit wide type that determination step 84 obtains if that indicate this BAR definition is low 32 of 64 bit address, is then deposited the base address of extraction, turns to step 81 then; If indication is 32 high 32 for address or 64 bit address, then turn to step 86;
Step 86 is write the storage base address; If 32 bit address, then the data segment that extracts is stored into by in function number and the base address sequence number designated memory locations; If 64 bit address, the data segment height bit pattern that base address of then step 105 being deposited and step 83 are extracted is stored into by in function number and the base address sequence number designated memory locations; Turn to step 81.
The said direct I/O that is used for the many virtual shared systems of I/O remaps method, and step 4 also comprises:
Step 91 receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the subordinate root node, turns to step 92;
Step 92, descending transaction packet is judged; The transaction packet of being sent by the subordinate root node that parsing receives if this transaction packet is based on the ID transaction packet, turns to step 93;
Step 93, descending ID remaps; To turn to step 94 based on converting ID number in main control root node PCIe territory of its correspondence for the ID in the transaction packet of ID route number into;
Step 94 is obtained and resolves in the configuration transaction bag configurable write bag to BAR register write non-complete 1, extracts the target device function number in the transaction packet, the BAR register skew that will dispose and the base address of data segment content indication, turns to step 95;
Step 95 according to the mapping relations that base address definition leaching process obtains, is obtained corresponding base address sequence number and the address window bit wide type of BAR register skew, turns to step 96;
Step 96, address window bit wide type decision; The address window bit wide type that determination step 95 obtains if that indicate this BAR definition is low 32 of 64 bit address, is then deposited the base address of extraction, turns to step 91 then; If indication is 32 high 32 for address or 64 bit address, then turn to step 97;
Step 97 is write the storage base address; If 32 bit address, then the data segment that extracts is stored into by in function number and the base address sequence number designated memory locations; If 64 bit address, the data segment height bit pattern that base address of then step 96 being deposited and step 94 are extracted is stored into by in function number and the base address sequence number designated memory locations; Turn to step 91.
The described direct I/O that is used for the many virtual shared systems of I/O remaps method, and said step 5 comprises:
Said descending ID remaps, refer to the I/O functions of the equipments at ID number of subordinate root node PCIe territory to its coupling conversion of ID number in main control root node PCIe territory;
Said address remaps, and refers to the coupling conversion to the address of its correspondence in main control root node PCIe territory of target access address that the subordinate root node sends;
Said up ID remaps, refer to the I/O functions of the equipments at ID number of main control root node PCIe territory to its coupling conversion of ID number in subordinate root node PCIe territory.
The described direct I/O that is used for the many virtual shared systems of I/O remaps method, and said descending ID remaps and comprises:
Step 111 receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the subordinate root node, turns to step 112;
Step 112, the transaction packet type decision is if based on the transaction packet of ID route, turn to step 113;
Step 113 is extracted initiation root node ID that indicates in the transaction packet and the functions of the equipments that will visit number, and with its combination as the data content that will compare; Exact-match lookup; Obtain these functions of the equipments function number in main control root node PCIe territory,, turn to step 114 if there is occurrence; Otherwise change step 115;
Step 114 is rewritten in the transaction packet functions of the equipments ID number, the address of using the output of CAM coupling, i.e. and function among the main control root node PCIe of indication number is rewritten in the transaction packet functions of the equipments ID number, turns to step 111 after having operated;
Step 115, the root node of indicating to transaction packet returns unsupported transaction packet, has operated the back and has changeed step 111.
The described direct I/O that is used for the many virtual shared systems of I/O remaps method, and said address remaps and comprises:
Step 121 receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the subordinate root node, turns to step 122;
Step 122, descending transaction packet is judged; The transaction packet of being sent by the subordinate root node that parsing receives if this transaction packet is based on the address transaction packet, turns to step 123;
Step 123 is resolved the transaction packet based on the address route that receives, and extracts the target access address of indicating in the transaction packet, turns to step 124;
Step 124 is obtained the base address; All K base address masks that write down in target access address and the base address definition leaching process are carried out and operation, obtain K base address, turn to step 125;
Step 125, functional group address sequence number matched and searched; K the BAR base address that step 124 is obtained be as comparing data, and the exact-match lookup that walks abreast obtains the functional group address sequence number of target access matching addresses; If there is occurrence, turns to step 126, otherwise turn to step, 129;
Step 126, base address and base address mask matches are searched; Use the functional group address sequence number of coupling output, obtain the coupling base address of said functional group address sequence number correspondence in main control root node PCIe territory and the base address mask of base address sequence number coupling, turn to step 127;
Step 127, the target access address output decoding of coupling; According to the coupling base address that obtains, coupling base address mask,, obtain the coupling target access address of target access map addresses in the main control root node PCIe territory in the subordinate root node PCIe territory together with the target access address that step 123 is extracted; Turn to step 128 after having operated;
Step 129, use that step 127 obtains coupling target access address, rewrite target access address in the transaction packet; Turn to step 121 after having operated;
Step 129, the root node of indicating to transaction packet returns a unsupported transaction packet, and operation turns to step 121 after accomplishing.
The described direct I/O that is used for the many virtual shared systems of I/O remaps method, and said up ID remaps and comprises:
Step 131 receives and sends out transaction packet from the I/O functions of the equipments, as receives transaction packet, turns to step 132;
Step 132, the I/O functions of the equipments of extraction transaction packet indication ID number; If transaction packet is a request package, the request person of establishing who indicates in extraction request transaction bag ID number; If if transaction packet is to accomplish bag, extracts and accomplish completion person ID number that indicates in the transaction packet, turn to step 133;
Function in the step 133, I/O functions of the equipments of use extracting ID number is number as allocation index, obtains corresponding root node sign ID and function number; If the non-main control root node of the root node that obtains sign ID ID turns to step 134; Otherwise, explain that the root node under the transaction packet is the main control root node, need not carry out the ID conversion, turn to step 135;
Step 134 uses the root node sign ID that obtains to record in the transaction packet; If transaction packet is a request package, the function that then use to obtain number is revised in the transaction packet requestor ID number; If transaction packet for accomplishing bag, then uses the function that obtains number to revise in the transaction packet completion person ID number, turn to step 131 after having operated;
Step 135 uses main control root node sign ID to rewrite transaction packet; The sign ID of main control root node is recorded in the transaction packet, turn to step 131 after having operated.
The present invention discloses a kind of direct I/O that is used for the many virtual shared systems of I/O and remaps device, comprising:
ID remaps module; Said ID remaps module content addressable storage CAM and simple two-port RAM; Exact-match lookup through CAM is realized ID number in subordinate root node PCIe territory of I/O functions of the equipments to its mapping of ID number in main control root node PCIe territory, realizes that through write-read RAM memory element ID number in main control root node PCIe territory of I/O functions of the equipments is to its mapping of ID number in subordinate root node PCIe territory;
The address remaps module, and said address remaps module and is used to realize I/O mapping address window to its main control root node PCIe territory I/O mapping address window conversion of I/O functions of the equipments in subordinate root node PCIe territory;
Wherein, comprise Bus number, device number, function number for ID number.
The described direct I/O that is used for the many virtual shared systems of I/O remaps device, and CAM and RAM that said ID remaps in the module comprise:
Number as allocation index, the data item of cell stores comprises two parts: a part is the root node sign ID under these functions of the equipments with the function of I/O functions of the equipments, and a part is the function number in the root node PCIe territory of these functions of the equipments under it.
The said I/O that is used for the many virtual shared systems of I/O remaps device, and the address remaps module and comprises:
Base address definition extraction module; Said base address mask is through resolving base address register (the Base Address Register of configuration device function; BAR) transaction packet; Obtain the address window type of I/O functions of the equipments, extract the corresponding base address mask of each address window, and write down the mapping relations between each base address register sequence number base address sequence number corresponding with the address window of its definition through each BAR definition;
Functional group address sequence number matching module; CAM storage array that the CAM that it is P that said functional group address sequence number matching module comprises N the degree of depth forms and coupling output selection module; Each CAM stores in the same I/O equipment base address BAR of same base address sequence correspondence in all functions, realizes the mapping of functional group pairing with it address, the base address sequence number in the subordinate root node PCIe territory;
Module is searched in the base address, and said base address is searched module and comprised the simple two-port RAM that the degree of depth is Q, through write-read RAM memory element, realizes the mapping of functional group address sequence number to its base address in main control root node PCIe territory;
The output decoding module; Base address and corresponding base address mask thereof become the target access address in the main control root node PCIe territory with the target access address translation in the subordinate root node PCIe territory in the main control root node PCIe territory that said output decoding module goes out according to matched and searched;
Wherein, the address window number of N (N ≤6) indication equipment function application, the number of function in the P indication equipment, Q represent that system assignment gives the number of the base address of the address window of all functions in the equipment.
The described direct I/O that is used for the many virtual shared systems of I/O remaps device, and said functional group address sequence number matching module comprises:
Said CAM storage array is to be allocation index with functional group address sequence number, and stored data items comprises two parts: a part is the subordinate root node ID under the I/O functions of the equipments; A part is the base address that the subordinate root node distributes; Wherein, the base address sequence number in the sequence number of functional group address is selected the CAM that will store, and the function in the sequence number of functional group address number is selected the CAM storage unit that will store; Said CAM storage array has N comparing data input port; Corresponding one of each CAM, said cam array are in the Data Matching stage, and input is extracted N the different comparing data item that obtains by the target access address of subordinate root node through N different base address mask; Carry out matched and searched concurrently, export N corresponding matching result;
Module is selected in said coupling output; If there is (only having one) occurrence in N matching result of CAM storage array output; Then select output by the output match address of the CAM that has occurrence (be function p with and the functional group address sequence number formed of corresponding base address sequence number n, simultaneously matching identification is put 1; Otherwise, matching identification is put 0.
The described direct I/O that is used for the many virtual shared systems of I/O remaps device, and the RAM that search in the module said base address comprises:
With functional group address sequence number is allocation index, and stored data items is the base address that the main control root node distributes.
Beneficial effect of the present invention is that a kind of direct I/O that is used for the many virtual shared systems of I/O remaps method and apparatus.This direct I/O remaps method and apparatus; The mode that remaps through hardware; Realized functions of the equipments in subordinate root node PCIe territory ID number with address window to its corresponding ID number mapping with address window in the main control root node PCIe territory; And then realized that root node directly visits and operate the functions of the equipments resource that it is assigned to; Provide during the physical I of sharing at accessing operation for each root node simultaneously/O equipment and isolated and protection, other I/O resources outside can not the accessing operation assigned I/O resource of root node.
Description of drawings
Fig. 1 is the structural representation of the many virtual shared systems of I/O;
Fig. 2 is the synoptic diagram of root node and I/O devices communicating;
Fig. 3 is the structural representation that ID remaps module;
Fig. 4 is that descending ID remaps process flow diagram flow chart;
Fig. 5 is that up ID remaps process flow diagram flow chart;
Fig. 6 is the structural representation that the address remaps module;
Fig. 7 is the process flow diagram of base address definition leaching process;
Fig. 8 is the process flow diagram of writing storing process of the functional group address in main control root node PCIe territory;
Fig. 9 is the process flow diagram of writing storing process of the functional group address in subordinate root node PCIe territory;
Figure 10 is the process flow diagram that the address remaps process;
Figure 11 is the structural representation that remaps module to the address of SR-IOV equipment;
Figure 12 is the process flow diagram that direct I/O remaps method.
Embodiment
Provide embodiment of the present invention below, the present invention has been made detailed description in conjunction with accompanying drawing.
In order to realize that each subordinate root node is directly visited and operated the I/O functions of the equipments that it is assigned in the many virtual shared systems of I/O,, the present invention proposes a kind of direct I/O and remap method and apparatus to obtain I/O performance near this machine.Said direct I/O remaps method and apparatus, through the mode that hardware remaps, has realized functions of the equipments corresponding ID number mapping with the address window of mapping I/O in subordinate root node and main control root node PCIe territory.Said direct I/O remaps method, and is shown in figure 12, may further comprise the steps:
A) definition of the base address of I/O functions of the equipments is extracted; Finger is in the main control root node system discovery stage; Obtain the I/O functions of the equipments through each base address register (Base Address Register; BAR) the address window type of definition is extracted the corresponding base address mask of each address window, and is write down the mapping relations between each base address register sequence number base address sequence number corresponding with the address window of its definition; Wherein, It is fixed bit that said base address mask is used for indicating which position of the address window address of system configuration; The root node address of using of communicating by letter with the I/O functions of the equipments is to add the concrete reference address that skew constitutes by base address BAR; Base address mask through record can extract the corresponding base address BAR of reference address; Said base address sequence number be used for the indication equipment function to the address window number of system's application according to the tactic sequence number of BAR register number, each function of the same type in I/O equipment is identical with number to the address window type of system's application;
B) storage is write in the functional group address in the main control root node PCIe territory; Functional group address storage in the said main control root node PCIe territory refers to that at main control root node system initialization configuration phase through resolving the configuration transaction bag, the functional group address sequence number of indicating in the extraction transaction packet is as allocation index; Write the corresponding base address of sequence number, the said functional group of storage address; Wherein, said functional group address sequence number is combined by the functions of the equipments p in base address sequence number k and the main control root node PCIe territory; (k, p) base address of indication is that system is that function number is n base address of p distribution in the equipment to functional group address sequence number.;
C) functions of the equipments ID mapping relations are write storage; Said functions of the equipments ID mapping relations are write storage and are referred to carry out equipment I/O resources allocation stage at the main control root node; Distribute transaction packet through analyzing device; Extract the functions of the equipments of indicating in the transaction packet in the function in main control root node PCIe territory number as allocation index; Write root node sign ID and said function the function in affiliated root node PCIe territory of storage under the said function number, the mapping between in subordinate root node PCIe territory ID number of apparatus for establishing function in main control root node PCIe territory ID number and its;
D) storage is write in the functional group address in the subordinate root node PCIe territory; Functional group address in the said subordinate root node PCIe territory is write storage and is referred in the subordinate root node PCIe of the system rescanning stage; Through resolving the configuration transaction bag; The functional group address sequence number of indicating in the extraction transaction packet is write the corresponding base address of sequence number, the said functional group of storage address as allocation index;
E) directly I/O remaps; Said direct I/O remap finger when the subordinate root node to I/O equipment find with use in; The descending transaction packet based on the ID route of subordinate root node initiation is carried out descending ID to remap; The descending transaction packet based on the address route of subordinate root node initiation is carried out the address remap, the transaction packet of functions of the equipments initiation is carried out up ID remap.
Fig. 1 has described the structural representation of the many virtual shared systems of I/O.The many virtual shared systems of I/O mainly comprise three parts: root node subsystem, I/O equipment subsystem and the virtual shared control unit of Duo Gen I/O.The many virtual shared control units of I/O are coupled root node subsystem and I/O equipment subsystem through the PCIe interface protocol, realize that the I/O device resource is directly shared by a plurality of root nodes.
Root node subsystem in many virtual shared systems of I/O comprises a plurality of root nodes; Each root node of each root node is a single PCIe environment; It by root complex (Root Complex, RC) and the CPU that connects group (CPU set) and internal memory (Mem) composition.Wherein, operation have the root node of PCIe management related software be referred to as the main control root node (Master Root Node, mRN), the main control root node has only one (hereinafter uses the mRN0 sign), all the I/O device resources in management and the distribution system; Other root nodes be called the subordinate root node (Slave Root Node, sRN), that the subordinate root node can have is a plurality of (hereinafter uses sRN1, sRN2 ..., sRNn sign), and, have the independent right to use of certain I/O resource according to the distribution of main control root node.(Virtual Machine, VM), (Virtual Machine Manager VMM) is responsible for dispatching office and distributes the I/O resource that obtains used for each VM the Virtual Machine Manager program can to move a plurality of isomorphisms or isomery virtual machine on the root node.
I/O equipment subsystem in many virtual shared systems of I/O comprises a plurality of I/O equipment; Each I/O equipment possesses the ability that service is provided for a plurality of virtual machines simultaneously; Can be to comprise a physical function (Physical Function; PF) and corresponding a plurality of virtual functions (Virtual Function, SR-IOV equipment VF) or comprise a plurality of PF and the SR-IOV equipment of corresponding a plurality of VF also can be multi-functional I/O equipment etc.The I/O equipment subsystem is to belong to this single PCIe environment of main control root node.
The virtual shared control unit of many I/O in many virtual shared systems of I/O is made up of several PCIe upstream ports (PCIe Upstream Port), the many root switch of PCIe and three parts of several PCIe downstream ports (PCIe Downstream Port).Wherein, the many virtual shared control units of I/O have connected a plurality of root nodes through the PCIe upstream port, and it is in one the many PCIe environment; The many root switch of PCIe, essence are by the switch of N+M port of a plurality of PCI bridges foundation, through set up the Virtual PC Ie switch of a 1+M port for each root node, realize that each root node is connected with the logic of M I/O equipment; The PCIe downstream port; The PCIe controller and direct two funtion parts of the virtual interfacing equipment of I/O that comprise the PCIe port type definition in accord with PCI-Express fundamental norms; Be responsible for the interconnection with the I/O equipment subsystem, realize that each root node directly visits physical I/O functions of the equipments.
Fig. 2 has described the synoptic diagram of root node and I/O devices communicating, and root node and I/O devices communicating are nothing more than three kinds of modes: the read-write of I/O register, DMA (Direct Memory Access) data-moving, interrupt event notice.Said I/O register mainly is divided into two types; One type is the configuration space registers that is used for carrying out equipment disposition, initialization and fault property fault processing only for system initialization software and fault processing software, and one type is that other function softwares such as driver are used for the device control status register of open operation equipment.
Root node often comes directed through the position of I/O equipment in the PCIe tree topology for the read and write access of I/O configuration of devices space register, as visiting through the ID that number is made up of Bus number, device number and function.Root node can pass through the mode of MMIO (Memory Mapped I/O, memory-mapped I/O) for the visit of the state of a control register of I/O equipment.When system initialization; System is according to BAR register (BAR in the configuration space head of I/O functions of the equipments; Base Address Register) the demand assignment memory address window of definition, and the base address (hereinafter to be referred as the internal memory base address) of this memory address window write back to the BAR register.Root node adds that through this base address the register skew that will visit can be directed to this functions of the equipments control corresponding status register.
Said DMA data-moving is divided into two kinds of situation: a kind of is that root node is write data in the internal memory, notifies I/O equipment to fetch data to the memory address of appointment then; A kind of I/O of being equipment is deposited data in the root node specified memory, and equipment is initiated an interrupt event notice root node after accomplishing has data arrives, and root node is done handled after receiving interrupt notification again.DMA data-moving essence is the memory read-write operation, and interrupt event essence also is an internal memory write operation, and operated memory address is to have been write in the I/O equipment control corresponding status register through the register read WriteMode by root node.
In the many virtual shared systems of I/O, when system powers on, all root nodes all attempt to enumerate find all functions in the I/O equipment and initial configuration its in PCIe territory separately ID number with and the base register BAR of application mapping address window.This will cause system competition, cause the I/O equipment can not operate as normal, more can't realize I/O equipment sharing between a plurality of root nodes.For addressing this problem, proposed to use the virtual interfacing equipment of a kind of direct I/O to assist and realized many shared methods of I/O equipment.Wherein, physical I/O equipment is by main control root node initial configuration and allocation manager; When the I/O functions of the equipments were distributed each subordinate root node, logic virtual functions mirror image LVF was as the equipment placeholder of subordinate root node, the initial configuration that receives and store the subordinate root node in the virtual interfacing equipment of direct I/O of use correspondence.In another piece invention application relevant (many virtual shared system of I/O and method), detailed description is arranged about the explanation of this method with the present invention.
Yet; What when subordinate root node access means, use is ID number and address in the local PCIe territory; Directly the virtual interfacing equipment of I/O need carry out ID number and the conversion of mapping address of I/O functions of the equipments between subordinate root node PCIe territory and main control root node PCIe territory; Could the visit of subordinate root node be sent to corresponding physical I/O functions of the equipments, realization subordinate root node is directly visited the purpose of I/O equipment.Said ID and address translation comprise three kinds of situation: ID number of subordinate root node PCIe territory ID number conversion to main control root node PCIe territory in the following line transaction is referred to as descending ID and remaps; ID number of main control root node PCIe territory ID number conversion in the last line transaction to subordinate root node PCIe territory; Being referred to as up ID remaps; The I/O mapping address window in subordinate root node PCIe territory is referred to as the address and remaps to the I/O mapping address window conversion in main control root node PCIe territory in the following line transaction.And for the affairs of up use address route, like DMA and interrupt event notice, because the address of their operation is its subordinate root node and distributes, be exactly the memory address of this locality that can discern of subordinate root node originally, therefore need not do address translation.
Fig. 3 has described the structural representation that ID remaps module.ID remaps module and comprises content addressed storage array (Content Addressable Memory is CAM) with simple two-port RAM.Wherein, ID remaps the exact-match lookup of module through CAM and realizes ID number in subordinate root node PCIe territory of I/O functions of the equipments to its mapping of ID number in main control root node PCIe territory, realizes that through write-read RAM memory element ID number in main control root node PCIe territory of I/O functions of the equipments is to its mapping of ID number in subordinate root node PCIe territory.
ID remaps the CAM in the module; Utilize the continuity of the function number (FunNo_m) of I/O functions of the equipments in main control node PCIe territory; With it as writing memory address index (CAM_WrAddr); Storage by the subordinate root node ID (RNID_s) under this function with and function in the subordinate root node PCIe territory data item (CAM_Din) that number (FunNo_s) forms, and then realize that (RNID_s is FunNo_s) to the mapping of FunNo_m.Carry out equipment I/O resources allocation stage at the main control root node; Distribute transaction packet through analyzing device; Extract the functions of the equipments of indicating in the transaction packet in the function number (FunNo_m) in main control root node PCIe territory as allocation index (CAM_WrAddr); Write root node sign ID (RNID_s) and said function the function number (FunNo_s) in affiliated root node PCIe territory of storage under the said function, ID number in main control root node PCIe territory of apparatus for establishing function is to its mapping of ID number in subordinate root node PCIe territory; When receiving the descending transaction packet of the use ID route that the subordinate root node sends; Resolve through it being carried out transaction packet; The function of the target device function of extracting the subordinate root node ID (RNID_s) of the initiation affairs of indicating in the transaction packet and will visiting number (FunNo_s) is searched coupling as wanting comparing data item input (CMP_Din) to the memory contents of CAM accurately.If there is occurrence, CAM output matching identification symbol (Match_flag) and this occurrence address stored (CAM_Dout), promptly the target device function is in the function number (FunNo_m) in main control root node PCIe territory, and then realizes that descending ID remaps.
Up ID replay firing table RAM; Utilize the continuity of the function number (FunNo_m) of functions of the equipments in main control node PCIe territory; With its write address (RAM_WrAddr) as RAM; Storage by the subordinate root node ID (RNID_s) under this function number with and function in the subordinate root node PCIe territory data item (RAM_Din) that number (FunNo_s) forms, and then realize that FunNo_m is to (RNID_s, mapping FunNo_s).Carry out equipment I/O resources allocation stage at the main control root node; Distribute transaction packet through analyzing device; Extract the functions of the equipments of indicating in the transaction packet in the function number (FunNo_m) in main control root node PCIe territory as allocation index (RAM_WrAddr); Write root node sign ID (RNID_s) and said function the function number (FunNo_s) in affiliated root node PCIe territory of storage under the said function, ID number in subordinate root node PCIe territory of apparatus for establishing function is to its mapping of ID number in main control root node PCIe territory; When receiving from up transaction packet that I/O equipment is sent; Resolve through it being carried out transaction packet; Extract the function number (FunNo_m) that the functions of the equipments of affairs are initiated in wherein indication, and read the RAM storage list, according to RAM output (RAM_Dout) as the address (RAM_RdAddr) of reading of RAM; Be affiliated subordinate root node ID (RNID_s) of functions of the equipments and the function number (FunNo_s) in subordinate root node PCIe territory thereof, and then realize that up ID remaps.
Fig. 4 has described descending ID and has remapped process, and concrete steps are following:
A) receive the transaction packet of sending from root node, the root node ID that initiates transaction packet is resolved judgement,, turn to step b) if the initiation root node of transaction packet indication is the subordinate root node;
B) transaction packet type decision is if based on the transaction packet of ID route, turn to step c);
C) the descending ID replay firing table CAM of inquiry; Extract the initiation root node ID that indicates in the transaction packet with and the functions of the equipments that will visit number, and with its combination as the data content that will compare, import descending ID replay firing table CAM and carry out exact-match lookup; If there is occurrence, turn to step d); Otherwise turn to step e);
D) rewrite in the transaction packet functions of the equipments ID number, the address of using the output of CAM coupling, i.e. function among the main control root node PCIe of indication number is rewritten in the transaction packet functions of the equipments ID number, turns to step a) after having operated;
E) root node to the transaction packet indication returns a unsupported transaction packet, and operation turns to step a) after accomplishing.
Fig. 6 has described up ID and has remapped process, and concrete steps are following:
A) receive the transaction packet of sending from the I/O functions of the equipments,, turn to step b) if receive transaction packet;
B) extract I/O functions of the equipments ID number of transaction packet indication.If transaction packet is a request package, the request person of establishing who indicates in extraction request transaction bag ID number; If if transaction packet is to accomplish bag, extracts and accomplish completion person ID number that indicates in the transaction packet, turn to step c);
C) the up ID replay firing table RAM of inquiry, the function in the I/O functions of the equipments of use extracting ID number is number for reading allocation index, reads RAM output root node and identifies the data item that ID and function number combine.If the non-main control root node of the root node sign ID ID of RAM output turns to step d); Otherwise, explain that the root node under the transaction packet is the main control root node, need not carry out the ID conversion, turn to step e);
D) use the content of RAM output to rewrite transaction packet.The root node sign ID of RAM output is recorded in the transaction packet; If transaction packet is a request package, then use the function number of RAM output, revise in the transaction packet requestor ID number; If transaction packet, is then used the function number of RAM output for accomplishing bag, revise in the transaction packet completion person ID number, turn to step a) after having operated;
E) use main control root node sign ID to rewrite transaction packet.The sign ID of main control root node is recorded in the transaction packet, turn to step a) after having operated.
As indicated above; The base address of the memory address window of BAR register definitions in the functions of the equipments configuration space and record application; The state of a control register of the memory address access means function of root node through distributing to functions of the equipments, and then the communicating by letter of realization and functions of the equipments.The configuration space of each functions of the equipments comprises 6 32 BAR register, can apply for obtaining maximum 6 32 address spaces or 3 64 s' address space, perhaps is less than 6 32 the BAR addresses and the combination of 64 bit address space.For all functions in the same I/O equipment, its BAR demand configuration is identical, the address window number that promptly need apply for, and the size of each address window is the same; Just in same PCIe territory, the base address of the assigned address window of each BAR address record is different in the functions of the equipments.As use FunNo to represent the function number of an equipment, and the address window number that each function need be applied for uses BAR_id to indicate, and entire equipment will be obtained BAR_id*FuncNo different BAR address by the configuration of main control root node so.In like manner, when the functional configuration in the equipment was given the subordinate root node, the subordinate root node distributed BAR_id BAR address, and the BAR address that different subordinate root nodes distributes for the different functions in the same functions of the equipments might be the same.In order to realize that the subordinate root node can pass through the direct access means function in address, need carry out the address and remap, promptly the address window of each function in subordinate root node PCIe territory arrives its conversion at the address window in main control root node PCIe territory in the equipment.
Fig. 8 has described and has utilized CAM and RAM to realize that the address remaps the structural representation of module.Said address remaps structure and mainly comprises four parts: the one, and base address definition extraction module; Through resolving base address register (the Base Address Register of configuration device function; BAR) transaction packet; Obtain the address window type of I/O functions of the equipments through each BAR definition; Extract the corresponding base address mask (BAR_mask) of each address window, and write down the mapping relations between each base address register sequence number base address sequence number (BAR_id) corresponding with the address window of its definition; The 2nd, functional group address sequence number matching module; The CAM storage array of the CAM that to comprise BAR_id the degree of depth be FuncNo_m and coupling output chooser module; Each CAM stores the corresponding base address BAR of all functions FuncNo_m same base address sequence BAR_id in the same I/O equipment; Realize base address (BAR_s) and its affiliated functional group address sequence number (BAR_id, mapping FuncNo_m) in the subordinate root node PCIe territory; The 3rd, module is searched in the base address; Comprise the ram memory cell that the degree of depth is BAR_id*FuncNo_m; Through write-read RAM memory element, realize that function number is FuncNo_m, the base address sequence number is searching of base address (BAR_m) of BAR_id in main control root node PCIe territory; The 4th, the output decoding module; Base address BAR_m and corresponding coupling base address mask Match_BAR_mask thereof according to matched and searched goes out translate into the target access address (DstAddr_m) in the main control root node PCIe territory with the target access address (DstAddr_s) in the subordinate root node PCIe territory.Through the relay cooperation of these four modules, accomplished the conversion that the target access address is mapped in main control root node PCIe territory in the subordinate root node PCIe territory to it, realize that finally the subordinate root node is through the direct visit of address route to functions of the equipments.
Base address definition extraction module; At main control root node system initialization configuration phase,, check whether each BAR has defined address window through resolving the configuration transaction bag; If defined address window; Resolve the types such as bit wide, size of its defined address window, extract the address window number (BAR_id) of all BAR definition and the base address mask of each address window (BAR0_mask ... And write down the mapping relations between each base address register sequence number base address sequence number (BAR_id) corresponding BARn_mask), with the address window of its definition.Because the address window of one 64 bit wide is the base address of being distributed by two BAR definition and register system; Through the address window bit wide type and the corresponding relation of base address sequence number (BAR_id) of base address register number and definition thereof, can write down the complete base location of appropriate address window by the base address sequence number.Fig. 9 has described base address definition leaching process, may further comprise the steps:
A) system powers on, the start address of initialization BAR register offset pointer, and initialization base address sequence number, initialization 64 bit address application identifiers turn to step b).
B) receive the transaction packet of sending from the main control root node.If receive the transaction packet that the main control root node is sent, turn to step c).
C) transaction packet is judged.The transaction packet that parsing receives if this transaction packet is to the configurable write request package of the register write complete 1 of BAR register offset pointer appointment, turns to step d); Otherwise turn to step b).
D) receive the completion bag of the band data that I/O equipment sends.If receive the completion bag of the band data of sending from I/O equipment, turn to step e).
E) the application IP addresses type is judged.Resolve the data segment of accomplishing bag, the application IP addresses type of this BAR definition is judged.If this BAR is not used for application IP addresses, then turn to step h); If this BAR definition is 64 bit address, then turn to step f); Otherwise, turn to step g).
F) with the low L position of data segment content record to the corresponding base address mask of base address sequence number; Enable 64 bit address application identifiers, and write down address window bit wide type and the mapping relations of base address sequence number of the BAR definition of current BAR register offset pointer and indication thereof.Turn to step h).
G) record data section is upgraded base address application serial and 64 bit address applications sign.If 64 current application identifiers do not enable, designation data section content is the mask of 32 base address, then the high L position of data segment content is recorded the low L position of the corresponding base address mask of base address sequence number; Otherwise the data segment content is coding high 32 of 64 corresponding base address of base address sequence number, then data segment is recorded the high 32 of the corresponding base address mask of base address sequence number.Write down address window bit wide type and the mapping relations of base address sequence number of the BAR definition of current BAR register offset pointer and indication thereof, upgrade the base address sequence number then and add 1, and the 64 bit address application identifiers that reset, turn to step h).
H) upgrade BAR register offset pointer and point to next BAR register, turn to step I);
I) BAR register offset pointer availability deciding.Judge whether the register that current BAR register offset pointer is pointed to still is the BAR in the configuration space, if then turn to b); Otherwise turn to j).
J) finish.Sign has been accomplished base address definition leaching process.
Cam array in the functional group address sequence number matching module shown in Figure 8; With functional group address sequence number (BAR_id; FunNo_m) be allocation index (CAM_WrAddr); Stored data items (CAM_Din) comprises two parts: a part is the subordinate root node ID (RNID_s) under the I/O functions of the equipments, and a part is the base address (BAR_s) that the subordinate root node distributes.Wherein, base address sequence number (BAR_id) in the sequence number of functional group address selects the CAM that will store, the function in the sequence number of functional group address number (FunNo_m) to select the CAM storage unit that will store.Said CAM storage array have N comparing data input port (CMP_Din0, CMP_Din1 ..., CMP_Dinn), corresponding one of each CAM.When receive that the subordinate root node sends based on the transaction packet of address route the time, resolve through it being carried out packet, extract the target access address that transaction packet will be visited.Then with its through base address definition extraction module obtain BAR_id BAR base address (BAR0_s, BAR1_s ... BARn_s), and it is imported respectively as data inputs (CMP_Din) relatively carry out accurate matched and searched among the CAM, obtains N and mate and export the result; Comprise matching identification (Match_flag0 ..., Match_flagn) and match address (Match_Addr0;, Match_Addrn).If there is (only having one) occurrence in the N of CAM storage array coupling output result; The OPADD of then selecting this CAM by coupling output chooser module in the sequence number matching module of functional group address as coupling output (be the base address of said target access address corresponding by function MatchedFunNo_m with and the functional group address sequence number formed of corresponding base address sequence number MatchedBAR_id, simultaneously matching identification Match_flag is put 1; Otherwise Match_flag puts 0 with matching identification.
Figure 10 has described functional group address sequence number matching module and has write the process of storing the functional group address in the main control root node PCIe territory, comprises the steps:
A receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the subordinate root node, turns to step b);
The descending transaction packet of b is judged.The transaction packet of being sent by the subordinate root node that parsing receives if this transaction packet is based on the ID transaction packet, turns to step c);
The descending ID of c remaps.To turn to step d) based on converting ID number in main control root node PCIe territory of its correspondence for the ID in the transaction packet of ID route number into.
D obtains and resolves in the configuration transaction bag configurable write bag to BAR register write non-complete 1, extracts the target device function number in the transaction packet, the skew of BAR register and the data segment content (being the base address of system configuration) that will dispose, and turns to step e);
E defines extraction module according to the base address, obtains corresponding base address sequence number and the address window bit wide type of BAR register skew, turns to step f);
F address window bit wide type decision.Determination step e) the address window bit wide type of obtaining if that indicate this BAR definition is low 32 of 64 bit address, is then deposited the base address of extraction, turns to step a) then; If indication is 32 high 32 for address or 64 bit address, then turn to step g);
G writes the storage base address.If 32 bit address, then the data segment that extracts is stored in the CAM unit by function number and base address sequence number appointment; If 64 bit address, the data segment height bit pattern that base address of then step f) being deposited and step d) are extracted is stored in the CAM unit by function number and base address sequence number appointment; Turn to step a).
The RAM in the module is searched in base address shown in Figure 8, and (BAR_id FunNo_m) is allocation index (RAM_WrAddr), and stored data items (RAM_Din) is the base address (BAR_m) that the main control root node distributes with functional group address sequence number.Obtain the functional group address sequence number (BAR_id of coupling through base address sequence number matching module when the base address of target access address; FuncNo_m); Input RAM reads address (RAM_RdAddr), and corresponding to obtain RAM output (RAM_Dout) promptly be the base address (BAR_m) of the base address correspondence of target access address in main control root node PCIe territory.
Figure 11 has described the base address and has searched the process that module is write the functional group address in the storage subordinate root node PCIe territory, comprises the steps:
A receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the main control root node, turns to step b);
The descending transaction packet of b is judged.The transaction packet of being sent by the main control root node that parsing receives if this transaction packet is the configuration transaction bag, turns to step c);
C obtains and resolves in the configuration transaction bag configurable write bag to BAR register write non-complete 1, extracts the target device function number in the transaction packet, the skew of BAR register and the data segment content (being the base address of system configuration) that will dispose, and turns to step d);
D defines extraction module according to the base address, obtains corresponding base address sequence number and the address window bit wide type of BAR register skew, turns to step e);
E address window bit wide type decision.Determination step d) the address window bit wide type of obtaining if that indicate this BAR definition is low 32 of 64 bit address, is then deposited the base address of extraction, turns to step 81 then; If indication is 32 high 32 for address or 64 bit address, then turn to step 86;
F writes the storage base address.If 32 bit address, then the data segment that extracts is stored in the ram cell by function number and base address sequence number appointment; If 64 bit address, the data segment height bit pattern that base address of then step 85 being deposited and step 83 are extracted is stored in the ram cell by function number and base address sequence number appointment; Turn to step a).
The target access address that Figure 12 has described in the subordinate root node PCIe territory remaps process to the address in main control root node PCIe territory, may further comprise the steps:
A receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the subordinate root node, turns to step b);
The descending transaction packet of b is judged.The transaction packet of being sent by the subordinate root node that parsing receives if this transaction packet is based on the address transaction packet, turns to step c);
C resolves the transaction packet based on the address route that receives, and extracts the target access address of indicating in the transaction packet, turns to step d);
D obtains the base address.All N base address masks that write down in target access address and the base address definition extraction module are carried out and operation, obtain N base address, turn to step e);
E functional group address sequence number matched and searched.N the BAR base address that step d) is obtained be as comparing data, and the exact-match lookup that each CAM in the input cam array walks abreast obtains the functional group address sequence number of coupling.If there is occurrence, turns to step f), otherwise turn to step I);
F base address and base address mask matches are searched.Use the functional group address sequence number of coupling output, read RAM, obtain the coupling base address of said functional group address sequence number correspondence in main control root node PCIe territory; According to base address definition extraction module information recorded, obtain the base address mask of said base address sequence number coupling simultaneously, turn to step g);
The target access address output decoding of g coupling.With the coupling base address that obtains, coupling base address mask; Target access address together with the step c) extraction; Through output decoding, can obtain the coupling target access address of target access map addresses in the main control root node PCIe territory in the subordinate root node PCIe territory.Turn to step h after having operated);
The step g) of using h obtain coupling target access address, rewrite target access address in the transaction packet.Turn to step a) after having operated;
I returns a unsupported transaction packet to the root node of transaction packet indication, and operation turns to step a) after accomplishing.
Especially, for SR-IOV equipment, the address that Fig. 8 describes remaps modular structure can its corresponding simplified.The VF of SR-IOV equipment itself does not possess the ability of application memory address, and 6 BAR in the VF configuration space head are effect not, and its needed address is by definition of SR-IOV expanded function and application in its corresponding PF configuration space.Similar with conventional equipment, 6 definition also 32 BAR register VF BARb (b=0,1 of register system addresses distributed window's base address are also arranged in the SR-IOV expanded function register ..., 5).Different with conventional equipment is, to the size of the address window of VF BARb definition, system will distribute a bulk of continuous memory address to supply all VF uses, and its base address is write among the VF BARb in the SR-IOV expanded function register.In other words; For VFunNo virtual work ability arranged; The address window number that each VF needs is the SR-IOV of VFBAR_id; System only distributes VFBAR_id base address to be written in the VF_BARb register of SR-IOV expanded function register in the configuration space, rather than distributes BAR_id*VFunNo base address to write respectively in the corresponding BAR register of each VF configuration space head.What VF BARb write down is the base address of b the BAR address of VF0, and other VFv (v=1,2 ..., start address BARb VFunNo-1) calculates through formula VF BARb+ (v-1) * (VF BARb range size) and obtains.
Fig. 9 has described and has utilized CAM and RAM to realize the structural representation that SR-IOV functions of the equipments address remaps, and only considers that here SR-IOV equipment has only a PF and a plurality of VF.This address remaps structure and mainly comprises four parts: the one, and base address definition extraction module; Through resolving base address register (the Base Address Register of configuration device function; BAR) transaction packet; Obtain the address window type that VF defines through each BAR in the equipment; Extract the corresponding base address mask (VFBAR_mask) of each address window, and write down the mapping relations between each base address register sequence number base address sequence number (VFBAR_id) corresponding with the address window of its definition; The 2nd, functional group address sequence number matching module; The CAM storage array of the CAM that to comprise BAR_id the degree of depth be FunNo_m and coupling output chooser module; Each CAM stores the corresponding base address BAR of all functions FuncNo_m same base address sequence BAR_id in the same I/O equipment; Realize base address (BAR_s) and its affiliated functional group address sequence number (BAR_id, mapping FuncNo_m) in the subordinate root node PCIe territory; The 3rd, module is searched in the base address, comprises the ram memory cell that the degree of depth is VFBAR_id, through write-read RAM memory element, realizes that the base address sequence number is searching of base address (BAR_m) of VFBAR_id in main control root node PCIe territory; The 4th, the output decoding module; Function number (MatchedFunNo_m), base address BAR_m and corresponding mask MatchedVFBAR_mask thereof according to matched and searched goes out translate into the target access address (DstAddr_m) in the main control root node PCIe territory with the target access address (DstAddr_s) in the subordinate root node PCIe territory.
The present invention discloses a kind of direct I/O that is used for the many virtual shared systems of I/O and remaps device, comprising:
ID remaps module; Said ID remaps module content addressable storage CAM and simple two-port RAM; Exact-match lookup through CAM is realized ID number in subordinate root node PCIe territory of I/O functions of the equipments to its mapping of ID number in main control root node PCIe territory, realizes that through write-read RAM memory element ID number in main control root node PCIe territory of I/O functions of the equipments is to its mapping of ID number in subordinate root node PCIe territory;
The address remaps module, and said address remaps module and is used to realize that the I/O functions of the equipments arrive its conversion at the I/O mapping address window in main control root node PCIe territory at the I/O mapping address window in subordinate root node PCIe territory;
Wherein, comprise Bus number, device number, function number for ID number.
The described direct I/O that is used for the many virtual shared systems of I/O remaps device, and CAM and RAM that said ID remaps in the module comprise:
Number as allocation index, the data item of cell stores comprises two parts: a part is the root node sign ID under these functions of the equipments with the function of I/O functions of the equipments, and a part is the function number in the root node PCIe territory of these functions of the equipments under it.
The described I/O that is used for the many virtual shared systems of I/O remaps device, and said address remaps module and comprises:
Base address definition extraction module; Said base address mask is through resolving base address register (the Base Address Register of configuration device function; BAR) transaction packet; Obtain the address window type of I/O functions of the equipments, extract the corresponding base address mask of each address window, and write down the mapping relations between each base address register sequence number base address sequence number corresponding with the address window of its definition through each BAR definition;
Functional group address sequence number matching module; CAM storage array that the CAM that it is P that said functional group address sequence number matching module comprises N the degree of depth forms and coupling output selection module; Each CAM stores in the same I/O equipment base address BAR of same base address sequence correspondence in all functions, realizes the mapping of functional group pairing with it address, the base address sequence number in the subordinate root node PCIe territory;
Module is searched in the base address, and said base address is searched module and comprised the simple two-port RAM that the degree of depth is Q, through write-read RAM memory element, realizes the mapping of functional group address sequence number to its base address in main control root node PCIe territory;
The output decoding module; Base address and corresponding base address mask thereof become the target access address in the main control root node PCIe territory with the target access address translation in the subordinate root node PCIe territory in the main control root node PCIe territory that said output decoding module goes out according to matched and searched;
Wherein, the address window number of N (N ≤6) indication equipment function application, the number of function in the P indication equipment, Q represent that system assignment gives the number of the base address of the address window of all functions in the equipment.
The described direct I/O that is used for the many virtual shared systems of I/O remaps device, and said functional group address sequence number matching module comprises:
Said CAM storage array is to be allocation index with functional group address sequence number, and stored data items comprises two parts: a part is the subordinate root node ID under the I/O functions of the equipments; A part is the base address that the subordinate root node distributes; Wherein, the base address sequence number in the sequence number of functional group address is selected the CAM that will store, and the function in the sequence number of functional group address number is selected the CAM storage unit that will store; Said CAM storage array has N comparing data input port; Corresponding one of each CAM, said cam array are in the Data Matching stage, and input is extracted N the different comparing data item that obtains by the target access address of subordinate root node through N different base address mask; Carry out matched and searched concurrently, export N corresponding matching result;
Module is selected in said coupling output; If there is (only having one) occurrence in N matching result of CAM storage array output; Then select output by the output match address of the CAM that has occurrence (be function p with and the functional group address sequence number formed of corresponding base address sequence number n, simultaneously matching identification is put 1; Otherwise, matching identification is put 0.
The described direct I/O that is used for the many virtual shared systems of I/O remaps device, and the RAM that search in the module said base address comprises:
With functional group address sequence number is allocation index, and stored data items is the base address that the main control root node distributes.
Those skilled in the art can also carry out various modifications to above content under the condition that does not break away from the definite the spirit and scope of the present invention of claims.Therefore scope of the present invention is not limited in above explanation, but confirm by the scope of claims.

Claims (18)

1. a direct I/O who is used for the many virtual shared systems of I/O remaps method, it is characterized in that, comprising:
Step 1, the definition of I/O functions of the equipments base address is extracted, and writes down the mapping relations between each base address register sequence number base address sequence number corresponding with the address window of its definition;
Step 2, storage is write in the functional group address in the main control root node PCIe territory, sets up functional group address sequence number to its mapping in the base address in main control root node PCIe territory;
Step 3, functions of the equipments ID mapping relations are write storage, the mapping between ID number in main control root node PCIe territory and subordinate root node PCIe territory of apparatus for establishing function;
Step 4, storage is write in the functional group address in the subordinate root node PCIe territory, sets up the mapping of the base address in subordinate root node PCIe territory to its corresponding functional group address sequence number;
Step 5, directly I/O remaps, and the transaction packet of subordinate root node and I/O equipment room is remapped operation.
2. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 1 remaps method, it is characterized in that said step 1 also comprises:
It is in the main control root node system discovery stage that the definition of said base address is extracted; Obtain in the I/O functions of the equipments configuration space through each base address register (Base Address Register; BAR) the address window type of definition, and extract the corresponding base address mask of each address window;
Said base address mask, which position that is used in reference to address in the fixed system configured address window is a fixed bit, can extract corresponding base address, memory access address through said base address mask;
According to the tactic sequence number of BAR register number, each function of the same type in I/O equipment is identical with number to the address window type of system's application to the address window number of system's application for said base address sequence number, the function that is used for indication equipment.
3. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 1 remaps method, it is characterized in that said step 2 also comprises:
It is at main control root node system initialization configuration phase that storage is write in functional group address in the said main control root node PCIe territory; Through resolving the configuration transaction bag; The functional group address sequence number of indicating in the extraction transaction packet is write the corresponding base address of sequence number, the said functional group of storage address as allocation index.
Said functional group address sequence number is combined by the functions of the equipments p in base address sequence number k and the main control root node PCIe territory, and (k, p) base address of indication is that system is that function number is n base address of p distribution in the equipment to functional group address sequence number.
4. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 1 remaps method, it is characterized in that said step 3 also comprises:
It is to carry out equipment I/O resources allocation stage at the main control root node that said functions of the equipments ID mapping relations are write storage; Distribute transaction packet through analyzing device; Extract the functions of the equipments of indicating in the transaction packet in the function in main control root node PCIe territory number as allocation index; Write the data item that storage number is made up of the root node under said function sign ID and the function of said function in affiliated root node PCIe territory, the mapping between in subordinate root node PCIe territory ID number of apparatus for establishing function in main control root node PCIe territory ID number and its.
5. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 1 remaps method, it is characterized in that said step 4 also comprises:
It is in the subordinate root node PCIe of the system rescanning stage that storage is write in functional group address in the said subordinate root node PCIe territory; Through resolving the configuration transaction bag; The functional group address sequence number of indicating in the extraction transaction packet is write the corresponding base address of sequence number, the said functional group of storage address as allocation index.
6. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 1 remaps method, it is characterized in that said step 5 also comprises:
It is in the process that subordinate root node and I/O equipment communicate that said direct I/O remaps; The descending transaction packet based on the ID route of subordinate root node initiation is carried out descending ID to remap; The descending transaction packet based on the address route of subordinate root node initiation is carried out the address remap, the transaction packet of functions of the equipments initiation is carried out up ID remap.
7. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 1 remaps method, it is characterized in that said step 1 also comprises:
Step 71, system powers on, the start address of initialization BAR register offset pointer, initialization base address sequence number, initialization 64 bit address application identifiers turn to step 72;
Step 72 receives the transaction packet of sending from the main control root node; If receive the transaction packet that the main control root node is sent, turn to step 73;
Step 73, transaction packet is judged; The transaction packet that parsing receives if this transaction packet is to the configurable write request package of the register write complete 1 of BAR register offset pointer appointment, turns to step 74; Otherwise turn to step 72;
Step 74, the completion bag of the band data that reception I/O equipment is sent; If receive the completion bag of the band data of sending from I/O equipment, turn to step 75;
Step 75, the application IP addresses type is judged; Resolve the data segment of accomplishing bag, the application IP addresses type of this BAR definition is judged; If this BAR is not used for application IP addresses, then turn to step 78; If this BAR definition is 64 bit address, then turn to step 76; Otherwise, turn to step 77;
Step 76; Low L position with data segment content record base address mask of sequence number correspondence to the base address; Enable 64 bit address application identifiers, and write down address window bit wide type and the mapping relations of base address sequence number of the BAR definition of current BAR register offset pointer and indication thereof, turn to step 78;
Step 77, the record data section is upgraded base address sequence number and 64 bit address application identifiers; If 64 current application identifiers do not enable, designation data section content is the mask of 32 base address, then the high L position of data segment content is recorded the low L position of the corresponding base address mask of base address sequence number; Otherwise the data segment content is mask high 32 of 64 corresponding base address of base address sequence number, then data segment is recorded the high 32 of the corresponding base address mask of base address sequence number; Write down address window bit wide type and the mapping relations of base address sequence number of the BAR definition of current BAR register offset pointer and indication thereof, upgrade the base address sequence number then and add 1, and the 64 bit address application identifiers that reset, turn to step 78;
Step 78 is upgraded BAR register offset pointer and is pointed to next BAR register, turns to step 79;
Step 79, BAR register offset pointer availability deciding; Judge whether the register that current BAR register offset pointer is pointed to still is the BAR in the configuration space, if then turn to step 72; Otherwise turn to step 710;
Step 710 finishes, and sign has been accomplished base address definition leaching process.
8. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 1 remaps method, it is characterized in that said step 2 also comprises:
Step 81 receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the main control root node, turns to step 82;
Step 82, descending transaction packet is judged; The transaction packet of being sent by the main control root node that parsing receives if this transaction packet is the configuration transaction bag, turns to step 83;
Step 83; Obtain and resolve in the configuration transaction bag configurable write bag to BAR register write non-complete 1; The base address that to extract the target device function number in the transaction packet, the BAR register skew that will dispose and the said data segment content of data segment content be system configuration turns to step 84;
Step 84 according to the mapping relations that base address definition leaching process obtains, is obtained corresponding base address sequence number and the address window bit wide type of BAR register skew, turns to step 85;
Step 85, address window bit wide type decision; The address window bit wide type that determination step 84 obtains if that indicate this BAR definition is low 32 of 64 bit address, is then deposited the base address of extraction, turns to step 81 then; If indication is 32 high 32 for address or 64 bit address, then turn to step 86;
Step 86 is write the storage base address; If 32 bit address, then the data segment that extracts is stored into by in function number and the base address sequence number designated memory locations; If 64 bit address, the data segment height bit pattern that base address of then step 85 being deposited and step 83 are extracted is stored into by in function number and the base address sequence number designated memory locations; Turn to step 81.
9. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 1 remaps method, it is characterized in that said step 4 also comprises:
Step 91 receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the subordinate root node, turns to step 92;
Step 92, descending transaction packet is judged; The transaction packet of being sent by the subordinate root node that parsing receives if this transaction packet is based on the ID transaction packet, turns to step 93;
Step 93, descending ID remaps; To turn to step 94 based on converting ID number in main control root node PCIe territory of its correspondence for the ID in the transaction packet of ID route number into;
Step 94 is obtained and resolves in the configuration transaction bag configurable write bag to BAR register write non-complete 1, extracts the target device function number in the transaction packet, the BAR register skew that will dispose and the base address of data segment content indication, turns to step 95;
Step 95 according to the mapping relations that base address definition leaching process obtains, is obtained corresponding base address sequence number and the address window bit wide type of BAR register skew, turns to step 96;
Step 96, address window bit wide type decision; The address window bit wide type that determination step 95 obtains if that indicate this BAR definition is low 32 of 64 bit address, is then deposited the base address of extraction, turns to step 91 then; If indication is 32 high 32 for address or 64 bit address, then turn to step 97;
Step 97 is write the storage base address; If 32 bit address, then the data segment that extracts is stored into by in function number and the base address sequence number designated memory locations; If 64 bit address, the data segment height bit pattern that base address of then step 96 being deposited and step 94 are extracted is stored into by in function number and the base address sequence number designated memory locations; Turn to step 91.
10. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 1 remaps method, it is characterized in that said step 5 comprises:
Said descending ID remaps, refer to the I/O functions of the equipments at ID number of subordinate root node PCIe territory to its coupling conversion of ID number in main control root node PCIe territory;
Said address remaps, and refers to the coupling conversion to the address of its correspondence in main control root node PCIe territory of target access address that the subordinate root node sends;
Said up ID remaps, refer to the I/O functions of the equipments at ID number of main control root node PCIe territory to its coupling conversion of ID number in subordinate root node PCIe territory.
11. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 10 remaps method, it is characterized in that, said descending ID remaps and comprises:
Step 111 receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the subordinate root node, turns to step 112;
Step 112, the transaction packet type decision is if based on the transaction packet of ID route, turn to step 113;
Step 113; Extract the initiation root node ID that indicates in the transaction packet with and the functions of the equipments that will visit number; And with its combination as the data content that will compare, exact-match lookup obtains the function of these functions of the equipments in main control root node PCIe territory number; If there is occurrence, turn to step 114; Otherwise turn to step 115;
Step 114 is rewritten in the transaction packet functions of the equipments ID number, the address of using the output of CAM coupling, i.e. and function among the main control root node PCIe of indication number is rewritten in the transaction packet functions of the equipments ID number, turns to step 111 after having operated;
Step 115, the root node of indicating to transaction packet returns a unsupported transaction packet, and operation turns to step 111 after accomplishing.
12. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 10 remaps method, it is characterized in that said address remaps and comprises:
Step 121 receives the transaction packet of sending from root node, and the root node ID that initiates transaction packet is resolved judgement, if the initiation root node of transaction packet indication is the subordinate root node, turns to step 122;
Step 122, descending transaction packet is judged; The transaction packet of being sent by the subordinate root node that parsing receives if this transaction packet is based on the address transaction packet, turns to step 123;
Step 123 is resolved the transaction packet based on the address route that receives, and extracts the target access address of indicating in the transaction packet, turns to step 124;
Step 124 is obtained the base address; All K base address masks that write down in target access address and the base address definition leaching process are carried out and operation, obtain K base address, turn to step 125;
Step 125, functional group address sequence number matched and searched; K the BAR base address that step 124 is obtained be as comparing data, and the exact-match lookup that walks abreast obtains the functional group address sequence number of target access matching addresses; If there is occurrence, turns to step 126, otherwise turn to step, 129;
Step 126, base address and base address mask matches are searched; Use the functional group address sequence number of coupling output, obtain the coupling base address of said functional group address sequence number correspondence in main control root node PCIe territory and the base address mask of base address sequence number coupling, turn to step 127;
Step 127, the target access address output decoding of coupling; According to the coupling base address that obtains, coupling base address mask,, obtain the coupling target access address of target access map addresses in the main control root node PCIe territory in the subordinate root node PCIe territory together with the target access address that step 123 is extracted; Turn to step 128 after having operated;
Step 129, use that step 127 obtains coupling target access address, rewrite target access address in the transaction packet; Turn to step 121 after having operated;
Step 129, the root node of indicating to transaction packet returns a unsupported transaction packet, and operation turns to step 121 after accomplishing.
13. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 10 remaps method, it is characterized in that, said up ID remaps and comprises:
Step 131 receives the transaction packet of sending from the I/O functions of the equipments, if receive transaction packet, turns to step 132;
Step 132, the I/O functions of the equipments of extraction transaction packet indication ID number; If transaction packet is a request package, the request person of establishing who indicates in extraction request transaction bag ID number; If if transaction packet is to accomplish bag, extracts and accomplish completion person ID number that indicates in the transaction packet, turn to step 133;
Function in the step 133, I/O functions of the equipments of use extracting ID number is number as allocation index, obtains corresponding root node sign ID and function number; If the non-main control root node of the root node that obtains sign ID ID turns to step 134; Otherwise, explain that the root node under the transaction packet is the main control root node, need not carry out the ID conversion, turn to step 135;
Step 134 uses the root node sign ID that obtains to record in the transaction packet; If transaction packet is a request package, the function that then use to obtain number is revised in the transaction packet requestor ID number; If transaction packet for accomplishing bag, then uses the function that obtains number to revise in the transaction packet completion person ID number, turn to step 131 after having operated;
Step 135 uses main control root node sign ID to rewrite transaction packet; The sign ID of main control root node is recorded in the transaction packet, turn to step 131 after having operated.
14. a direct I/O who is used for the many virtual shared systems of I/O remaps device, it is characterized in that, comprising:
ID remaps module; Said ID remaps module content addressable storage CAM and simple two-port RAM; Exact-match lookup through CAM is realized ID number in subordinate root node PCIe territory of I/O functions of the equipments to its mapping of ID number in main control root node PCIe territory, realizes that through write-read RAM memory element ID number in main control root node PCIe territory of I/O functions of the equipments is to its mapping of ID number in subordinate root node PCIe territory;
The address remaps module, and said address remaps module and is used to realize that the I/O functions of the equipments arrive its conversion at the I/O mapping address window in main control root node PCIe territory at the I/O mapping address window in subordinate root node PCIe territory;
Wherein, comprise Bus number, device number, function number for ID number.
15. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 14 remaps device, it is characterized in that, CAM and RAM that said ID remaps in the module comprise:
Number as allocation index, the data item of cell stores comprises two parts: a part is the root node sign ID under these functions of the equipments with the function of I/O functions of the equipments, and a part is the function number in the root node PCIe territory of these functions of the equipments under it.
16. the I/O that is used for the many virtual shared systems of I/O as claimed in claim 14 remaps device, it is characterized in that, said address remaps module and comprises:
Base address definition extraction module; Said base address mask is through resolving base address register (the Base Address Register of configuration device function; BAR) transaction packet; Obtain the address window type of I/O functions of the equipments, extract the corresponding base address mask of each address window, and write down the mapping relations between each base address register sequence number base address sequence number corresponding with the address window of its definition through each BAR definition;
Functional group address sequence number matching module; CAM storage array that the CAM that it is P that said functional group address sequence number matching module comprises N the degree of depth forms and coupling output selection module; Each CAM stores in the same I/O equipment base address BAR of same base address sequence correspondence in all functions, realizes the mapping of functional group pairing with it address, the base address sequence number in the subordinate root node PCIe territory;
Module is searched in the base address, and said base address is searched module and comprised the simple two-port RAM that the degree of depth is Q, through write-read RAM memory element, realizes the mapping of functional group address sequence number to its base address in main control root node PCIe territory;
The output decoding module; Base address and corresponding base address mask thereof become the target access address in the main control root node PCIe territory with the target access address translation in the subordinate root node PCIe territory in the main control root node PCIe territory that said output decoding module goes out according to matched and searched;
Wherein, the address window number of N (N ≤6) indication equipment function application, the number of function in the P indication equipment, Q represent that system assignment gives the number of the base address of the address window of all functions in the equipment.
17. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 16 remaps device, it is characterized in that, said functional group address sequence number matching module comprises:
Said CAM storage array is to be allocation index with functional group address sequence number, and stored data items comprises two parts: a part is the subordinate root node ID under the I/O functions of the equipments; A part is the base address that the subordinate root node distributes; Wherein, the base address sequence number in the sequence number of functional group address is selected the CAM that will store, and the function in the sequence number of functional group address number is selected the CAM storage unit that will store; Said CAM storage array has N comparing data input port; Corresponding one of each CAM, said cam array are in the Data Matching stage, and input is extracted N the different comparing data item that obtains by the target access address of subordinate root node through N different base address mask; Carry out matched and searched concurrently, export N corresponding matching result;
Module is selected in said coupling output; If there is (only having one) occurrence in N matching result of CAM storage array output; Then select output by the output match address of the CAM that has occurrence (be function p with and the functional group address sequence number formed of corresponding base address sequence number n, simultaneously matching identification is put 1; Otherwise, matching identification is put 0.
18. the direct I/O that is used for the many virtual shared systems of I/O as claimed in claim 16 remaps device, it is characterized in that the RAM that search in the module said base address comprises:
With functional group address sequence number is allocation index, and stored data items is the base address that the main control root node distributes.
CN201210172844.5A 2012-05-29 2012-05-29 I/ O (input/output) remapping method and device for plurality of shared systems Active CN102722458B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210172844.5A CN102722458B (en) 2012-05-29 2012-05-29 I/ O (input/output) remapping method and device for plurality of shared systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210172844.5A CN102722458B (en) 2012-05-29 2012-05-29 I/ O (input/output) remapping method and device for plurality of shared systems

Publications (2)

Publication Number Publication Date
CN102722458A true CN102722458A (en) 2012-10-10
CN102722458B CN102722458B (en) 2015-01-07

Family

ID=46948230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210172844.5A Active CN102722458B (en) 2012-05-29 2012-05-29 I/ O (input/output) remapping method and device for plurality of shared systems

Country Status (1)

Country Link
CN (1) CN102722458B (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246626A (en) * 2013-05-07 2013-08-14 中国人民解放军国防科学技术大学 Non-prefetching accessing and storing space expanding method of PCI (peripheral component interconnect) bridge of large-scale I/O (input/output) sharing system
CN103353861A (en) * 2013-06-18 2013-10-16 中国科学院计算技术研究所 Method and device for realizing pooling of distributed I/O (Input/Output) resources
CN103778018A (en) * 2014-01-16 2014-05-07 江苏华丽网络工程有限公司 Method for PCIE (Peripheral Component Interface Express) virtualized management
CN105554540A (en) * 2015-12-31 2016-05-04 深圳国微技术有限公司 Method and device for achieving network interface in conditional access module
CN105868000A (en) * 2016-06-14 2016-08-17 上海交通大学 Method for parallelly processing data in extensible manner for network I/O (input/output) virtualization
CN106027423A (en) * 2016-05-20 2016-10-12 北京百度网讯科技有限公司 Shared network of PCIe (Peripheral Component Interconnect-Express) device and data transmission method thereof
TWI556174B (en) * 2014-03-05 2016-11-01 威盛電子股份有限公司 System and method for assigning virtual functions and management host thereof
CN108292267A (en) * 2015-12-26 2018-07-17 英特尔公司 Bus-device-the predictive of functional address space is enumerated
CN109324899A (en) * 2018-09-10 2019-02-12 中国电子科技集团公司电子科学研究院 Addressing method, device and main controlled node based on the pond PCIe hardware resource
CN110688328A (en) * 2019-09-27 2020-01-14 山东华芯半导体有限公司 Configurable remapping implementation method of AXI bus sub-host mapping set
CN110990318A (en) * 2019-11-11 2020-04-10 福州瑞芯微电子股份有限公司 PCIe bus address expansion method, device, equipment and medium
CN113296884A (en) * 2021-02-26 2021-08-24 阿里巴巴集团控股有限公司 Virtualization method, virtualization device, electronic equipment, virtualization medium and resource virtualization system
CN113704142A (en) * 2021-09-02 2021-11-26 海飞科(南京)信息技术有限公司 On-chip storage address remapping circuit
CN115098426A (en) * 2022-06-22 2022-09-23 深圳云豹智能有限公司 PCIE (peripheral component interface express) equipment management method, interface management module, PCIE system, equipment and medium
CN117076409A (en) * 2023-10-18 2023-11-17 苏州元脑智能科技有限公司 File sharing method, device, system, electronic equipment and storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI616759B (en) * 2016-08-10 2018-03-01 創義達科技股份有限公司 Apparatus assigning controller and apparatus assigning method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206623A (en) * 2006-12-19 2008-06-25 国际商业机器公司 System and method for migration of a virtual endpoint from one virtual plane to another
US20090089464A1 (en) * 2007-09-27 2009-04-02 Sun Microsystems, Inc. Modular i/o virtualization for blade servers
CN101609235A (en) * 2008-06-16 2009-12-23 三星电子株式会社 Lcd

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206623A (en) * 2006-12-19 2008-06-25 国际商业机器公司 System and method for migration of a virtual endpoint from one virtual plane to another
US20090089464A1 (en) * 2007-09-27 2009-04-02 Sun Microsystems, Inc. Modular i/o virtualization for blade servers
CN101609235A (en) * 2008-06-16 2009-12-23 三星电子株式会社 Lcd

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246626A (en) * 2013-05-07 2013-08-14 中国人民解放军国防科学技术大学 Non-prefetching accessing and storing space expanding method of PCI (peripheral component interconnect) bridge of large-scale I/O (input/output) sharing system
CN103353861A (en) * 2013-06-18 2013-10-16 中国科学院计算技术研究所 Method and device for realizing pooling of distributed I/O (Input/Output) resources
CN103353861B (en) * 2013-06-18 2016-06-29 中国科学院计算技术研究所 Realize method and the device of distributed I/O resource pool
CN103778018A (en) * 2014-01-16 2014-05-07 江苏华丽网络工程有限公司 Method for PCIE (Peripheral Component Interface Express) virtualized management
CN103778018B (en) * 2014-01-16 2018-05-04 深圳艾迪宝智能系统有限公司 A kind of method for PCIE virtual managements
TWI556174B (en) * 2014-03-05 2016-11-01 威盛電子股份有限公司 System and method for assigning virtual functions and management host thereof
US9684530B2 (en) 2014-03-05 2017-06-20 Via Technologies, Inc. System and method for assigning virtual functions and management host thereof
CN108292267B (en) * 2015-12-26 2023-11-03 英特尔公司 Method, system and apparatus for configuring a device
CN108292267A (en) * 2015-12-26 2018-07-17 英特尔公司 Bus-device-the predictive of functional address space is enumerated
CN105554540A (en) * 2015-12-31 2016-05-04 深圳国微技术有限公司 Method and device for achieving network interface in conditional access module
CN106027423A (en) * 2016-05-20 2016-10-12 北京百度网讯科技有限公司 Shared network of PCIe (Peripheral Component Interconnect-Express) device and data transmission method thereof
CN105868000B (en) * 2016-06-14 2019-02-19 上海交通大学 A kind of expansible data processing method of parallelization for network I/O virtualization
CN105868000A (en) * 2016-06-14 2016-08-17 上海交通大学 Method for parallelly processing data in extensible manner for network I/O (input/output) virtualization
CN109324899B (en) * 2018-09-10 2022-05-20 中国电子科技集团公司电子科学研究院 Addressing method and device based on PCIe (peripheral component interface express) pooled hardware resources and master control node
CN109324899A (en) * 2018-09-10 2019-02-12 中国电子科技集团公司电子科学研究院 Addressing method, device and main controlled node based on the pond PCIe hardware resource
CN110688328A (en) * 2019-09-27 2020-01-14 山东华芯半导体有限公司 Configurable remapping implementation method of AXI bus sub-host mapping set
CN110990318A (en) * 2019-11-11 2020-04-10 福州瑞芯微电子股份有限公司 PCIe bus address expansion method, device, equipment and medium
CN113296884A (en) * 2021-02-26 2021-08-24 阿里巴巴集团控股有限公司 Virtualization method, virtualization device, electronic equipment, virtualization medium and resource virtualization system
CN113296884B (en) * 2021-02-26 2022-04-22 阿里巴巴集团控股有限公司 Virtualization method, virtualization device, electronic equipment, virtualization medium and resource virtualization system
CN113704142B (en) * 2021-09-02 2022-06-14 海飞科(南京)信息技术有限公司 On-chip storage address remapping circuit
CN113704142A (en) * 2021-09-02 2021-11-26 海飞科(南京)信息技术有限公司 On-chip storage address remapping circuit
CN115098426A (en) * 2022-06-22 2022-09-23 深圳云豹智能有限公司 PCIE (peripheral component interface express) equipment management method, interface management module, PCIE system, equipment and medium
CN115098426B (en) * 2022-06-22 2023-09-12 深圳云豹智能有限公司 PCIE equipment management method, interface management module, PCIE system, equipment and medium
CN117076409A (en) * 2023-10-18 2023-11-17 苏州元脑智能科技有限公司 File sharing method, device, system, electronic equipment and storage medium
CN117076409B (en) * 2023-10-18 2024-02-02 苏州元脑智能科技有限公司 File sharing method, device, system, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN102722458B (en) 2015-01-07

Similar Documents

Publication Publication Date Title
CN102722458A (en) I/ O (input/output) remapping method and device for plurality of shared systems
CN102707991B (en) The many virtual shared method and systems of I/O
CN102819447B (en) Direct I/O virtualization method and device used for multi-root sharing system
CN105993009B (en) The method and apparatus that MSI-X is interrupted are transmitted by computing resource of the non-transparent bridge into PCIe cluster
US8683110B2 (en) I/O system and I/O control method
EP3273358B1 (en) System and method for extended pci express fabrics
US8386654B2 (en) System and method for transforming PCIe SR-IOV functions to appear as legacy functions
CN102722414B (en) Input/output (I/O) resource management method for multi-root I/O virtualization sharing system
EP3264280B1 (en) Method and apparatus for extending pcie domain
US8806098B1 (en) Multi root shared peripheral component interconnect express (PCIe) end point
CN101739283B (en) Computer and method for virtual system to directly access computer hardware
US8918568B2 (en) PCI express SR-IOV/MR-IOV virtual function clusters
US10162780B2 (en) PCI express switch and computer system using the same
US9317446B2 (en) Multi-level paging and address translation in a network environment
US20110206051A1 (en) I/o bus system
KR101003102B1 (en) Memory assignmen method for multi-processing unit, and memory controller using the same
CN105320628A (en) Adaptation device, system and method for enabling single I/O device to be shared by multiple root nodes
JP5365847B2 (en) Configuration processing method and computer system of physical device in virtualization apparatus
CN101751352A (en) Chipset support for binding and migrating hardware devices among heterogeneous processing units
CN105893289B (en) Memory maps I/O Address distribution method, device and computer system
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
CN103455438A (en) Internal memory management method and equipment
CN109933434A (en) Electronic device and the method for extending peripheral equipment
TWI615720B (en) Resource allocation system, apparatus allocation controller, and apparatus recognizing method
CN105389275B (en) Virtual PC Ie PCI Bridge welding systems based on AMBA frameworks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant