ES2640452T3 - Método y aparato para extender el dominio de bus PCIE - Google Patents
Método y aparato para extender el dominio de bus PCIE Download PDFInfo
- Publication number
- ES2640452T3 ES2640452T3 ES13899977.6T ES13899977T ES2640452T3 ES 2640452 T3 ES2640452 T3 ES 2640452T3 ES 13899977 T ES13899977 T ES 13899977T ES 2640452 T3 ES2640452 T3 ES 2640452T3
- Authority
- ES
- Spain
- Prior art keywords
- address
- pcie device
- domain
- extended domain
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral component interconnect [PCI]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
Un método para extender un dominio de Interconexión de Componente Periférico Express PCIe, en donde el método se utiliza para un sistema que comprende un dominio primario (100) y un dominio extendido (118), en donde el dominio primario comprende un complejo raíz (102) y un dispositivo PCIe (106), en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido comprende un dispositivo de punto extremo de complejo raíz (106) y un dispositivo PCIe (114, 116), en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, siendo el primer conjunto de bus diferente del segundo conjunto de bus, y el dispositivo de punto extremo de complejo raíz (106) es el dispositivo PCIe (106) en el dominio primario y un complejo raíz en el dominio extendido; y el método comprende: asignar (S201), una dirección de espacio de configuración al dispositivo PCIe en el dominio extendido a partir de una dirección de memoria del dispositivo de punto extremo de complejo raíz, y establecer (S202) una correspondencia entre la dirección de espacio de configuración y un número de bus/número de dispositivo/número de función BDF; y asignar (S203) a partir del segundo conjunto de bus, un número de bus al dispositivo PCIe descubierto en el dominio extendido, en donde el número de bus se utiliza para determinar un BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en práctica, de conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un acceso al espacio de configuración del dispositivo PCIe descubierto en el dominio extendido.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Metodo y aparato para extender el dominio de bus PCIE CAMPO DE LA INVENCION
Las formas de realizacion de la presente invencion se refieren a tecnologfas informaticas, y en particular, a un metodo y un aparato para extender un dominio PCIe.
ANTECEDENTES DE LA INVENCION
Una tecnologfa de bus de Interconexion de Componente Periferico Express (Peripheral Component Interconnect Express, PCIe) es una tecnologfa de bus de alto rendimiento que se utiliza para la interconexion entre un procesador y un dispositivo periferico. Un bus de PCIe utiliza una conexion serie, punto a punto, puede proporcionar una mas alta velocidad de conexion con menos lmeas de datos cuando se compara con un bus de PCI y se aplica ampliamente a un dispositivo incorporado de un ordenador de sobremesa, un ordenador portatil, un servidor, una estacion de comunicaciones y una estacion de trabajo, y dispositivos similares.
Un dominio PCIe suele incluir un complejo rafz (Root Complex), un conmutador (Switch), un punto extremo (Endpoint) y un puente (PCIe bridge). El complejo rafz se utiliza para la conexion entre un procesador y un dispositivo de entrada/salida I/O; el conmutador soporta comunicaciones de analogos entre diferentes puntos extremos; el puente se utiliza para conectar el PCIe a otro bus de PCI estandar (tal como PCI/PCI-X); el punto extremo es un dispositivo de punto extremo de PCIe, tal como un dispositivo de tarjeta de interfaz de red PCIe, un dispositivo de tarjeta de puerto serie o un dispositivo de tarjeta de almacenamiento. Sin embargo, en conformidad con las especificaciones de bus PCIe, un dominio PCIe tiene solamente, como maximo, 256 buses PCIe; cada bus PCIe incluye 32 numeros de dispositivo PCIe como maximo; cada numero de dispositivo incluye ocho numeros de funcion como maximo; cada numero de funcion corresponde a un dispositivo PCIe como maximo. Por lo tanto, un sistema de dominio PCIe existente, el numero de dispositivos PCIe esta restringido por 256 buses.
El documento US 8,429,325 B1 se refiere a un conmutador de interconexion de componente periferico expres (PCIe) que incluye puntos extremos no transparentes, cada uno de los cuales esta asociado con un dominio de jerarqrna de bus. Un punto extremo no transparente origen en un dominio de jerarqrna de bus origen recibe un paquete que incluye una direccion de destino y e identifica un dominio de jerarqrna de bus de destino que incluye un punto extremo no transparente de destino sobre la base de la direccion de destino. Ademas, el punto extremo no transparente origen traduce un identificador de demandante en el paquete a un identificador de demandante traducido y genera un paquete de demanda traducido que incluye el identificador de demandante traducido. El conmutador de PCIe encamina el paquete de demanda traducido al punto extremo no transparente de destino por intermedio de una interconexion no transparente en el conmutador PCIe.
SUMARIO DE LA INVENCION
Formas de realizacion de la presente invencion dan a conocer un metodo y un aparato para extender un dominio PCIe, que se puede extender a un dominio PCIe.
De conformidad con un primer aspecto de la idea inventiva, una forma de realizacion de la presente invencion da a conocer un metodo para extender un dominio PCIe, en donde el metodo se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido incluye un dispositivo de punto extremo de complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, siendo el primer conjunto de bus diferente del segundo conjunto de bus y el dispositivo de punto extremo de complejo rafz es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido; y el metodo incluye:
asignar una direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de una direccion de memoria del dispositivo de punto extremo de complejo rafz, y establecer una correspondencia entre la direccion de espacio de configuracion y un numero de bus/numero de dispositivo/numero de funcion BDF; y
asignar, a partir del segundo conjunto de bus, un numero de bus para un dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar un BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizar el BDF del dispositivo PCIe descubierto en el dominio extendido, un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido.
Con referencia al primer aspecto de la idea inventiva, en una primera manera de puesta en practica posible, el metodo incluye, ademas: asignar, a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz, una primera direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido; y
5
10
15
20
25
30
35
40
45
50
55
60
asignar, en conformidad con la primera direccion de entrada/salida mapeada en memoria, una segunda direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con un mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, un acceso de entrada/salida mapeado en memoria del dispositivo PCIe descubierto en el dominio extendido.
Con referencia a la primera manera de puesta en practica posible del primer aspecto de la idea inventiva, en una segunda manera de puesta en practica posible, la direccion de memoria del dispositivo de punto extremo de complejo rafz se refiere espedficamente a una direccion de entrada/salida mapeada en memoria del dispositivo de punto extremo de complejo rafz.
Con referencia a la primera posible manera de puesta en practica o la segunda manera de puesta en practica posible del primer aspecto de la idea inventiva, en una tercera manera de puesta en practica posible, despues de la asignacion de una direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de una direccion de memoria del dispositivo de punto extremo de complejo rafz, el metodo incluye, ademas: descubrir el dispositivo PCIe en el dominio extendido utilizando la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido y la correspondencia entre la direccion de espacio de configuracion y el BDF.
Con referencia a la primera manera de puesta en practica posible, la segunda manera de puesta en practica posible o la tercera manera de puesta en practica posible del primer aspecto, en una cuarta manera de puesta en practica posible, la asignacion, en conformidad con la primera direccion de entrada/salida mapeada en memoria, una segunda direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido incluye: establecer el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria; y asignar, en conformidad con el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, la segunda direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido.
Con referencia al primer aspecto o cualquiera de la primera a la cuarta maneras de puesta en practica posibles del primer aspecto, en una quinta manera de puesta en practica posible, el metodo incluye, ademas: asignar una primera direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz; y asignar una segunda direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de interrupciones senalizadas por mensaje, con el fin de poner en practica un acceso de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con una primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje.
Con referencia al primer aspecto o a cualquiera de la primera a la cuarta maneras de puesta en practica posibles del primer aspecto, en una sexta manera de puesta en practica posible, el metodo incluye, ademas: asignar una primera direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz; y asignar una segunda direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de acceso directo en memoria, con el fin de poner en practica el acceso directo en memoria del dispositivo PCIe en el dominio extendido de conformidad con un mapeado entre la primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria.
En conformidad con un segundo aspecto de la idea inventiva, una forma de realizacion de la presente invencion da a conocer un metodo para acceder a un dominio PCIe, en donde el metodo se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido incluye un dispositivo de punto extremo de complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, siendo el primer conjunto de bus diferente del segundo conjunto de bus, y el dispositivo de punto extremo de complejo rafz es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido; y
el metodo incluye:
recibir, por el dispositivo de punto extremo de complejo rafz, un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicacion mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una direccion objetivo de acceso;
realizar, por el dispositivo de punto extremo de complejo rafz, una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion, con el fin de obtener una direccion objetivo de acceso traducida, en donde el mapeado de direccion es previamente salvaguardado en el dispositivo de punto extremo de complejo rafz; y
5
10
15
20
25
30
35
40
45
50
55
60
65
enviar, por el dispositivo de punto extremo de complejo ra^z, un paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye el cuerpo de mensaje y la direccion objetivo de acceso traducida.
Con referencia al segundo aspecto, en una primera manera de puesta en practica posible, la direccion objetivo de acceso es una direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es una correspondencia entre la direccion de espacio de configuracion y un numero de bus/numero de dispositivo/numero de funcion BDF del dispositivo PCIe en el dominio extendido; y la realizacion, por el dispositivo de punto extremo de complejo rafz, de una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion, para obtener una direccion objetivo de acceso traducida que incluye: realizar, por el dispositivo de punto extremo de complejo rafz, una traduccion de direccion sobre la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF del dispositivo PCIe en el dominio extendido, para obtener el BDF del dispositivo PCIe en el dominio extendido.
Con referencia al segundo aspecto de la idea inventiva, en una segunda manera de puesta en practica posible, la direccion objetivo de acceso es una primera direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es un mapeado entre la primera direccion de entrada/salida mapeada en memoria y una segunda direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido; y la realizacion, por el dispositivo de punto extremo de complejo rafz, de una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion, para obtener una direccion objetivo de acceso traducida incluye: realizar, por el dispositivo de punto extremo de complejo rafz, una traduccion de direccion sobre la primera direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, para obtener la segunda direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido.
Con referencia al segundo aspecto, en una tercera manera de puesta en practica posible, la direccion objetivo de acceso es una segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es un mapeado entre una primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido; y la realizacion, por el dispositivo de punto extremo de complejo rafz, una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con el mapeado de direccion, para obtener una direccion objetivo de acceso traducida incluye: realizar, por el dispositivo de punto extremo de complejo rafz, una traduccion de direccion sobre la segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con el mapeado de direccion entre la primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido, para obtener la primera direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido.
Con referencia al segundo aspecto, en una cuarta manera de puesta en practica posible, la direccion objetivo de acceso es una segunda direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es un mapeado entre una primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido; y la realizacion, por el dispositivo de punto extremo de complejo rafz, de una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion, para obtener una direccion objetivo de acceso traducida, incluye: realizar, por el dispositivo de punto extremo de complejo rafz, una traduccion de direccion sobre la segunda direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria del dispositivo PCIe en dominio extendido, para obtener la primera direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido.
En conformidad con un tercer aspecto de la idea inventiva, una forma de realizacion de la presente invencion da a conocer un aparato para extender un dominio de Interconexion de Componente Periferico Express, PCIe, en donde el aparato se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye una complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido incluye el aparato y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, siendo el primer conjunto de bus diferente del segundo conjunto de bus, y el aparato es el dispositivo PCIe en el dominio primario y un conjunto de bus en el dominio extendido; y
el aparato incluye:
una unidad de asignacion de direccion de primer tipo, configurada para asignar una direccion de espacio de configuracion para el dispositivo PCIe en el dominio extendido a partir de una direccion de memoria de un dispositivo de punto extremo de complejo rafz, y establecer una correspondencia entre la direccion de espacio de direccion y un numero de bus/numero de dispositivo/numero de funcion bDF; y
una unidad de asignacion de bus, que asigna, a partir del segundo conjunto de bus, un numero de bus a un dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar un BDF del dispositivo
5
10
15
20
25
30
35
40
45
50
55
60
65
PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido.
Con referencia al tercer aspecto de la idea inventiva, en una primera manera de puesta en practica posible, el aparato incluye, ademas: una unidad de asignacion de direccion de segundo tipo, configurada para asignar, a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz, una primera direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido, y asignar, en conformidad con la primera direccion de entrada/salida mapeada en memoria, una segunda direccion de entrada/salida mapeada en memoria para el dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con un mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, un acceso de entrada/salida mapeado en memoria del dispositivo PCIe descubierto en el dominio extendido.
Con referencia a la primera manera de puesta en practica posible del tercer aspecto, en una segunda manera de puesta en practica posible, la direccion de memoria del dispositivo de punto extremo de complejo rafz se refiere, espedficamente, a una direccion de entrada/salida mapeada en memoria del dispositivo de punto extremo de complejo rafz.
Con referencia a la primera manera de puesta en practica posible o la segunda manera de puesta en practica posible del tercer aspecto, en una tercera manera de puesta en practica posible, el aparato incluye, ademas: una unidad de determinacion, configurada para descubrir el dispositivo PCIe en el dominio extendido utilizando la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido y la correspondencia entre la direccion de espacio de configuracion y el BDF.
Con referencia a la primera manera de puesta en practica posible, la segunda manera de puesta en practica posible o la tercer manera de puesta en practica posible del tercer aspecto, en una cuarta manera de puesta en practica posible, la unidad de asignacion de direccion de segundo tipo esta espedficamente configurada para establecer el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, y asignar, en conformidad con el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, la segunda direccion de entrada/salida mapeada en memoria para el dispositivo PCIe descubierto en el dominio extendido.
Con referencia al tercer aspecto o cualquiera de las primera a cuarta maneras de puesta en practica posibles del tercer aspecto, en una quinta manera de puesta en practica posible del tercer aspecto, el aparato incluye, ademas: una unidad de asignacion de direccion de tercer tipo, configurada para asignar una primera direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz, y asignar una segunda direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de interrupciones senalizadas por mensaje, para poner en practica un acceso de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje.
Con referencia al tercer aspecto o cualquiera de las primera a la cuarta maneras de puesta en practica posibles del tercer aspecto, en una sexta manera de puesta en practica posible, el aparato comprende, ademas: una unidad de asignacion de direccion de cuarto tipo, configurada para asignar una primera direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz, y asignar una segunda direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de acceso directo en memoria, con el fin de poner en practica un acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria.
En conformidad con un cuarto aspecto de la idea inventiva, una forma de realizacion de la presente invencion da a conocer un aparato para acceder a un dominio PCIe, en donde el aparato se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido incluye el aparato y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, siendo el primer conjunto de bus diferente del segundo conjunto de bus, y el aparato es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido; y el aparato incluye:
una unidad de recepcion, configurada para recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicacion mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una direccion objetivo de acceso;
una unidad de traduccion, configurada para realizar una traduccion de direccion sobre la direccion de acceso objetivo de acceso en conformidad con un mapeado de direccion pre-salvaguardado, para obtener una direccion objetivo de acceso traducida; y
5
10
15
20
25
30
35
40
45
50
55
60
65
una unidad de envfo, configurada para enviar un paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogo incluye el cuerpo de mensaje y la direccion objetivo de acceso traducida.
Con referencia al cuarto aspecto, en una primera manera de puesta en practica posible, la direccion objetivo de acceso es una direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es una correspondencia entre la direccion de espacio de configuracion y un numero de bus/numero de dispositivo/numero de funcion BDF del dispositivo PCIe en el dominio extendido; y la unidad de traduccion esta espedficamente configurada para realizar la traduccion de direccion sobre la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF del dispositivo PCIe en el dominio extendido, para obtener el BDF del dispositivo PCIe en el dominio extendido.
Con referencia al cuarto aspecto, en una segunda manera de puesta en practica posible, la direccion objetivo de acceso es una primera direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es un mapo entre la primera direccion de entrada/salida mapeada en memoria y una segunda direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido; y la unidad de traduccion esta espedficamente configurada para realizar una traduccion de direccion sobre la primera direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, para obtener la segunda direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido.
Con referencia al cuarto aspecto, en una tercera manera de puesta en practica posible, la direccion objetivo de acceso es una segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es un mapeado entre una primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido; y la unidad de traduccion esta espedficamente configurada para realizar una traduccion de direccion sobre la segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido, para obtener la primera direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido.
Con referencia al cuarto aspecto, en una cuarta manera de puesta en practica posible, la direccion objetivo de acceso es una segunda direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido y el mapeado de direccion es un mapeado entre una primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido; y la unidad de traduccion esta espedficamente configurada para realizar una traduccion de direccion sobre la direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con el mapeado del dispositivo PCIe en el dominio extendido, para obtener la primera direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido.
En las formas de realizacion de la presente invencion, una direccion de espacio de configuracion puede asignarse a un dispositivo PCIe en un dominio extendido a partir de una direccion de memoria de un dispositivo de punto extremo de complejo rafz, una correspondencia entre la direccion de espacio de configuracion y un numero de bus/numero de dispositivo/numero de funcion BDF puede establecerse, y un numero de bus puede asignarse a partir de un segundo conjunto de bus del dominio extendido a un dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar un BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de acceder, de conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un registro de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, que pone en practica el acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, realiza una extension de un dominio de PCIe y resuelve un problema en la tecnica anterior de que un dominio PCIe no puede extenderse, de modo que el numero de dispositivos PCIe en un sistema no este restringido por 256 buses, con lo que se realiza la comunicacion para el dominio extendido.
En las formas de realizacion de la presente invencion, el dispositivo de punto extremo de complejo rafz puede recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicacion mutua entre un dominio primario y un dominio extendido; realizar una traduccion de direccion sobre una direccion objetivo de acceso del paquete de acceso en conformidad con un mapeado de direccion previamente salvaguardado, a modo de ejemplo, traducir una direccion de memoria del dominio primario en una direccion de memoria del dominio extendido; y enviar un paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye una direccion objetivo de acceso traducida, de modo que el dominio primario pueda acceder a un dispositivo PCIe en el dominio extendido, o el dispositivo PCIe en el dominio pueda acceder al dominio primario, con lo que se realiza una extension de un dominio de PCIe, y se pone en practica una comunicacion entre el dominio extendido y el dominio primario.
BREVE DESCRIPCION DE LOS DIBUJOS
5
10
15
20
25
30
35
40
45
50
55
60
65
Para describir las soluciones tecnicas en las formas de realizacion de la presente invencion con mayor claridad, a continuacion se describen brevemente los dibujos adjuntos requeridos para describir las formas de realizacion o la tecnica anterior. Evidentemente, los dibujos adjuntos en la siguiente descripcion ilustran simplemente algunas formas de realizacion de la presente invencion y un experto en esta tecnica puede obtener todavfa otros dibujos a partir de estos dibujos adjuntos sin necesidad de esfuerzos creativos.
La Figura 1 es un diagrama de una arquitectura de sistema en conformidad con una forma de realizacion de la presente invencion;
La Figura 2 es un diagrama de flujo de un metodo en conformidad con una forma de realizacion de la presente invencion;
La Figura 3A y la Figura 3B son un diagrama de flujo de otro metodo en conformidad con una forma de realizacion de la presente invencion;
La Figura 4 es un diagrama de asignacion de una direccion de memoria en conformidad con una forma de realizacion de la presente invencion;
La Figura 5 ilustra un arbol de recursos de entrada/salida mapeados en memoria de un dominio extendido en conformidad con una forma de realizacion de la presente invencion;
La Figura 6 es un diagrama de flujo de un aparato en conformidad con una forma de realizacion de la presente invencion;
La Figura 7 es un diagrama de composicion de un aparato en conformidad con una forma de realizacion de la presente invencion;
La Figura 8 es un diagrama de composicion de otro aparato en conformidad con una forma de realizacion de la presente invencion; y
La Figura 9 es un diagrama de composicion estructural esquematico de otro aparato en conformidad con una forma de realizacion de la presente invencion.
DESCRIPCION DETALLADA DE LAS FORMAS DE REALIZACION
Las formas de realizacion de la presente invencion dan a conocer un metodo y un aparato para extender un dominio de PCIe, que puede extender un dominio de PCIe, poner en practica una comunicacion entre un dominio de PCIe primario y el dominio de PCIe extendido, y resolver un problema en la tecnica anterior de que un dominio PCIe no se puede extender, de modo que el numero de dispositivos PCIe en un sistema no este restringido por 256 buses. La Figura 1 ilustra un ejemplo de un sistema en las formas de realizacion de la presente invencion. El sistema incluye un dominio PCIe primario 100 (brevemente referido como un dominio primario 100 posteriormente por conveniencia de descripcion) y el dominio primario 100 incluye un complejo rafz (Root Complex, RC) 102, un conmutador (Switch) 104 y al menos un dispositivo de punto extremo de PCIe. La Figura 1 ilustra dos dispositivos de punto extremo PCIe, esto es, un dispositivo de punto extremo 106 y un dispositivo de punto extremo 108. El complejo rafz 102 esta conectado a un puerto de flujo ascendente 104A del conmutador 104 utilizando un puerto rafz 103; puertos de flujo descendente 104B y 104C del conmutador 104 estan conectados al dispositivo de punto extremo 106 y al dispositivo de punto extremo 108; el complejo rafz 102 puede integrarse en una unidad CPU 101 en el sistema, y la unidad CPU 101 puede ser un conjunto de multiples unidades CPUs. El complejo rafz 102 esta configurado para procesar y reenviar un paquete de acceso entre la unidad CPU 101 y los dispositivos de punto extremo 106 y 108, tal como un paquete de acceso de espacio de configuracion, un paquete de acceso de interrupciones senalizadas por mensaje (Message Signaled Interrupts, MSI), un paquete de acceso de entrada/salida mapeado en memoria (Memory Mapped Input/Output, MMIO) o un paquete de acceso directo en memoria (Direct Memory Access, DMA); el conmutador 104 esta configurado para enrutar el paquete de acceso de flujo descendente al dispositivo de punto extremo PCIe conectado al puerto de flujo descendente 104B o 104C y enrutar el paquete de acceso en flujo ascendente desde cada puerto de flujo descendente independiente a un complejo rafz unico. Los dispositivos de punto extremo 106 y 108 tienen funciones de iniciacion de una demanda y de realizacion de la gestion de transaccion de PCIe, y los dispositivos de punto extremo 106 y 108 pueden ser dispositivos de almacenamiento, adaptadores de redes o adaptadores de audio o dispositivos similares. En la Figura, un conmutador se utiliza como un ejemplo en el dominio primario 100; en otra forma de realizacion, el dominio primario 100 puede incluir, ademas, multiples conmutadores; y cada conmutador puede conectarse a uno o mas dispositivos de punto extremo PCIe.
Los dispositivos PCIe en el dominio primario pueden clasificarse en dos tipos: uno es un dispositivo puente, tal como el puerto rafz 103, el puerto de flujo ascendente 104A y los puertos de flujo descendente 104B y 104C; el otro es un dispositivo de punto extremo, tal como el dispositivo de punto extremo 106 y el dispositivo de punto extremo 108. Cuando se ejecuta una instruccion del sistema, la unidad CPU 101 puede cargar un controlador de dispositivo del complejo rafz 102, y asignar una direccion de memoria y un bus a un dispositivo puente y un dispositivo de punto extremo en el dominio primario en conformidad con el controlador de dispositivos, con lo que se realiza una comunicacion mutua entre la unidad CPU 101 y los dispositivos PCIe en el dominio primario y la comunicacion mutua entre los dispositivos PCIe en
5
10
15
20
25
30
35
40
45
50
55
60
65
el dominio primario. Mas concretamente, las direcciones de memoria asignada a los dispositivos PCIe en el dominio primario pueden clasificarse en cuatro tipos, esto es, una direccion de espacio de configuracion, una direccion MMIO, una direccion MSI y una direccion DMA; por lo tanto, la unidad CPU l0l puede realizar un acceso de espacio de configuracion y un acceso MMIO de los dispositivos PCIe en el dominio primario utilizando las direcciones de espacio de configuracion y direcciones MMIO de los dispositivos PCIe en el dominio primario, y los dispositivos PCIe en el dominio primario pueden realizar un acceso DMA utilizando las direcciones DMA asignadas, con lo que se pone en practica un acceso mutuo entre los dispositivos PCIe; los dispositivos PCIe en el dominio primario pueden demandar tambien interrupciones senalizadas por mensaje desde la unidad CPU utilizando direcciones MSI.
Ademas, por conveniencia de descripcion, un conjunto de buses asignado a los dispositivos PCIe en el dominio primario pueden referirse como un primer conjunto de bus. En conformidad con las especificaciones de PCIe, el primer conjunto de bus incluye 256 buses como maximo, y el numero de dispositivos PCIe en el dominio primario esta restringido por 256 buses.
En las formas de realizacion de la presente invencion, para extender un dominio PCIe de modo que el numero de dispositivos PCIe en el sistema no este restringido, se realiza una ampliacion de funcion en el dispositivo de punto extremo 106 en el sistema, de modo que el dispositivo de punto extremo 106 se convierta en un dispositivo de punto extremo de complejo rafz (Root Complex Endpoint, RCEP) 106; el dominio PCIe se extiende utilizando el RCEP 106, para obtener un dominio PCIe extendido 118 (brevemente referido como un dominio extendido 118 por conveniencia de descripcion), en donde el RCEP 106 sirve como un dispositivo de punto extremo en el dominio primario 100 y sirve tambien como un complejo rafz en el dominio extendido 118, es decir, el RCEP 106 no solamente puede iniciar un paquete de acceso y completar la gestion de transaccion de PCIe, sino que tambien puede gestionar y reenviar un paquete de acceso entre el dominio extendido 118 y el dominio primario 100, con lo que se realiza una conexion de comunicacion entre el dominio primario y el dominio extendido. Segun se ilustra en la Figura 1, el dominio extendido 118 puede incluir: el RCEP 106, un conmutador 112 y dispositivos de puntos extremos 114 y 116 (puede existir uno o mas dispositivos de punto extremo en el dominio extendido y dos dispositivos de punto extremo se utilizan como un ejemplo en las formas de realizacion de la presente invencion). Los dispositivos de punto extremo 114 y 116 estan conectados a un dispositivo puente 110 en el RCEP 106 utilizando el conmutador 112. Pueden existir multiples puertos rafces 110 y multiples conmutadores 112 en el dominio extendido 118, y la Figura 1 es solamente un ejemplo de las formas de realizacion de la presente invencion. Los dispositivos de punto extremo 114 y 116 y los dispositivos puente 112A, 112B y 112C en la Figura son dispositivos PCIe en el dominio extendido. El dominio extendido 118 se obtiene por medio de la extension utilizando el RCEp en el sistema, y el numero de dispositivos PCIe en el sistema puede aumentarse, de modo que el numero de dispositivos PCIe en el sistema no este restringido por 256 buses.
Ademas, en el sistema ilustrado en la Figura 1, el RCEP 106 esta aislado de los dispositivos PCIe en el dominio extendido en una manera de hardware, y por lo tanto, la unidad CPU 101 en el sistema o los dispositivos PCIe en el dominio primario no pueden comunicarse con el dominio extendido 118. Por lo tanto, en las formas de realizacion de la presente invencion, un controlador de dispositivos del RCEP 106 puede configurarse tambien a este respecto. A continuacion, cuando se ejecuta una instruccion del sistema, a modo de ejemplo, la ejecucion de una instruccion de un sistema operativo o un sistema de entrada/salida basico del sistema, la unidad CPU 101 puede cargar el controlador de dispositivos del RCEP 106 y puede ejecutar las operaciones siguientes de conformidad con el controlador de dispositivos del RCEP: asignar una direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de una direccion de memoria del RCEP 106, estableciendo una correspondencia entre la direccion de espacio de configuracion y un numero de bus/numero de dispositivo/numero de funcion BDF, y asignando un numero de bus a un dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar un BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de acceder, utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, a un registro de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, con lo que se pone en practica un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, se realiza la extension de un dominio PCIe, se realiza la comunicacion entre la unidad CPU o el dominio primario y el dominio extendido, y se resuelve el problema en la tecnica anterior de que un dominio PCIe no puede extenderse, de modo que el numero de dispositivos PCIe en el sistema no este restringido por 256 buses.
Ademas, en las formas de realizacion de la presente invencion, puede realizarse tambien una ampliacion de la funcion en el RCEP 106, de modo que el RCEP 106 pueda ejecutar el metodo siguiente: recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicacion mutua entre el dominio primario y el dominio extendido; realizar una traduccion de direccion sobre una direccion objetivo de acceso del paquete de acceso en conformidad con un mapeado de direccion previamente salvaguardado, a modo de ejemplo, traducir una direccion de memoria del dominio primario en una direccion de memoria del dominio extendido; y enviar un paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye una direccion objetivo de acceso traducida, de modo que el dominio primario o la unidad CPU puedan acceder a un dispositivo PCIe en el dominio extendido, o un dispositivo PCIe en el dominio extendido pueda acceder al dominio primario o la unidad CPU, con lo que se pone en practica la comunicacion entre la unidad CpU en el sistema o el dominio primario y el dominio extendido.
Para conocer mas detalles de una manera de puesta en practica espedfica, es preciso referirse a las formas de realizacion siguientes.
5
10
15
20
25
30
35
40
45
50
55
60
65
Metodo para extender un dominio PCIe
Con referencia al sistema ilustrado en la Figura 1, una forma de realizacion de la presente invencion da a conocer un metodo para extender un dominio PCIe. Segun se ilustra en la Figura 2, el metodo se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido incluye dispositivo de punto extremo de complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, siendo el primer conjunto de bus diferente del segundo conjunto de bus, y el dispositivo de punto extremo de complejo rafz es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido. El metodo incluye:
S201: Asignar una direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de una direccion de memoria del RCEP.
Un dominio de PCIe se extiende utilizando el RCEP en el sistema, y el RCEP esta aislado del dispositivo PCIe en el dominio extendido en una manera de hardware, de modo que una unidad CPU en el sistema o el dispositivo PCIe en el dominio primario no puede identificar el dispositivo PCIe en el dominio extendido. Por lo tanto, una direccion de memoria puede asignarse como la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del RCEP, con el fin de efectuar el mapeado de correspondencia del dispositivo PCIe en el dominio extendido para el dominio primario; cuando se realiza un acceso de espacio de configuracion, la direccion de espacio de configuracion puede representar, en el dominio primario, el dispositivo PCIe en el dominio extendido, de modo que la unidad CPU o el dispositivo PCIe en el dominio primario pueda identificar el dispositivo PCIe en el dominio extendido, lo que aporta conveniencia operativa al acceso de espacio de configuracion posterior del dispositivo PCIe en el dominio extendido.
S202: Establecer una correspondencia entre la direccion de espacio de configuracion y un numero de bus/numero de dispositivo/numero de funcion BDF.
El dominio extendido incluye el segundo conjunto de bus; cada numero de bus en el segundo conjunto de bus puede incluir 32 numeros de dispositivo como maximo; cada numero de dispositivo puede incluir 8 numeros de funcion como maximo; un numero de bus/numero de dispositivo/numero de funcion (Bus number/Device number/Function number, BDF) en el dominio extendido puede determinarse en conformidad con el numero de bus, el numero de dispositivo y el numero de funcion.
Puesto que cada numero de funcion corresponde a un dispositivo PCIe como maximo, un registro de espacio de configuracion del dispositivo PCIe en el dominio extendido puede ser objeto de acceso utilizando un BDF del dispositivo PCIe en el dominio extendido, es decir, se realiza un acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido. Por lo tanto, se establece una correspondencia entre la direccion de espacio de configuracion y el BDF, es decir, una correspondencia entre la direccion de espacio de configuracion y el registro de espacio de configuracion del dispositivo PCIe en el dominio extendido se establece a este respecto de modo que el acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido pueda realizarse de conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido, con el fin de descubrir el dispositivo PCIe en el dominio extendido.
S203: Asignar, a partir del segundo conjunto de bus, un numero de bus a un dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar un BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido.
El numero de bus se asigna a partir del segundo conjunto de bus al dispositivo PCIe descubierto en el dominio extendido; un numero de dispositivo (Device Number) y un numero de funcion (Function Number) del dispositivo PCIe descubierto en el dominio extendido son enumerados, y un BDF de cada dispositivo PCIe es diferente; por lo tanto, el BDF del dispositivo PCIe descubierto en el dominio extendido puede determinarse en conformidad con el numero de bus, con el fin de determinar una direccion de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, de modo que cuando un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido se realice posteriormente, se puede realizar una traduccion de direccion de conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando la direccion de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, con el fin de obtener el BDF del dispositivo PCIe descubierto en el dominio extendido y un registro de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido es objeto de acceso utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, con lo que se pone en practica el acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido.
En esta forma de realizacion de la presente invencion, la direccion de espacio de configuracion se asigna al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del RCEP, la correspondencia entre la direccion de
5
10
15
20
25
30
35
40
45
50
55
60
65
espacio de configuracion y el numero de bus/numero de dispositivo/numero de funcion BDF que se establece a este respecto y el numero de bus se asigna a partir del segundo conjunto de bus del dominio extendido al dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar el BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de acceder, en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, el registro de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, que pone en practica el acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, realiza la extension de un dominio PCIe, pone en practica la comunicacion entre la unidad CPU o el dominio primario y el dominio extendido, y resuelve un problema en la tecnica anterior de que un dominio PCIe no puede extenderse, de modo que el numero de dispositivos PCIe en el sistema no este restringido por 256 buses.
Formas de realizacion espedficas
Con referencia al sistema ilustrado en la Figura 1, una forma de realizacion de la presente invencion da a conocer un metodo para extender un dominio PCIe. Segun se ilustra en la Figura 3A y la Figura 3B, el metodo se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido incluye un dispositivo de punto extremo de complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, siendo el primer conjunto de bus diferente del segundo conjunto de bus, y el dispositivo de punto extremo de complejo rafz es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido; el metodo puede ejecutarse por una unidad CPU en el sistema, y el metodo incluye:
S301: Asignar una direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de una direccion de memoria del RCEP.
El RCEP esta aislado del dispositivo PCIe en el dominio extendido en una manera de hardware, de modo que la unidad CPU en el sistema no pueda determinar ni identificar el dispositivo PCIe en el dominio extendido. Por lo tanto, se puede asignar una direccion como una primera direccion de memoria del dispositivo PCIe en el dominio a partir de la direccion de memoria del RCEP; cuando una direccion objetivo incluida en un paquete de acceso esta en un intervalo de direcciones de la primera direccion de memoria, puede determinarse que el dispositivo PCIe en el dominio extendido ha de ser objeto de acceso, de modo que el dispositivo PCIe en el dominio extendido sea objeto de mapeado de correspondencia para el dominio primario y la unidad CPU pueda determinar o identificar el dispositivo PCIe en el dominio extendido.
La direccion de memoria del RCEP incluye una direccion de espacio de configuracion del RCEP y una direccion MMIO del RCEP, y en correspondencia, la primera direccion de memoria del dispositivo PCIe en el dominio extendido puede incluir una primera direccion de espacio de configuracion (brevemente referida como una direccion de espacio de configuracion del dispositivo PCIe en el dominio siguiente) y una primera direccion MMIO. Cuando la direccion objetivo esta en un intervalo de direcciones de la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido, ello indica que el acceso de espacio de configuracion del dispositivo PCIe en el dominio ha de realizarse; cuando la direccion objetivo esta en un intervalo de direcciones de la primera direccion MMIO del dispositivo PCIe en el dominio extendido, ello indica que el acceso MMIO del dispositivo PCIe en el dominio ha de realizarse.
En un proceso de asignacion de direccion, la direccion de espacio de configuracion puede asignarse a partir de la direccion MMIO del RCEP para el dispositivo PCIe en el dominio, de modo que la unidad CPU pueda identificar el dispositivo PCIe en el dominio con posterioridad, y realizar un acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido, con el fin de descubrir el dispositivo PCIe en el dominio.
En conformidad con las especificaciones de PCIe, cada dominio PCIe tiene 256 buses como maximo; cada bus tiene 32 numeros de dispositivo como maximo; cada numero de dispositivo incluye 8 numeros de funcion como maximo; cada numero de funcion esta asociado con un dispositivo PCIe como maximo, una magnitud del espacio de configuracion de cada dispositivo PCIe es 4K; por lo tanto, un valor maximo de una magnitud de una direccion de espacio de configuracion ocupada por el dispositivo PCIe en el dominio extendido es 256*32*8*4 = 256M. Por lo tanto, en un caso en el que el numero de dispositivos PCIe en el dominio extendido no pueda determinarse, una direccion de espacio de configuracion que tiene una magnitud de 256 M puede asignarse al dispositivo PCIe en el dominio extendido. A modo de ejemplo, segun se ilustra en la Figura 4, la direccion MMIO del RCEP es [8G, 12G] y la direccion de espacio de configuracion asignada al dispositivo PCIe en el dominio extendido puede ser [8G + 256M, 8g+ 512M].
El metodo anterior es una manera de puesta en practica opcional. Por supuesto, en otra forma de realizacion, una direccion de espacio de configuracion puede asignarse al dispositivo PCIe en el dominio extendido a partir de otra direccion de memoria del RCEP, y la magnitud de la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido posiblemente no es 256M, lo que no esta limitado en esta forma de realizacion de la presente invencion.
S302: Establecer una correspondencia entre la direccion de espacio de configuracion y un BDF.
5
10
15
20
25
30
35
40
45
50
55
60
65
El dispositivo PCIe en el dominio extendido corresponde a un BDF, y un registro de espacio de configuracion del dispositivo PCIe en el dominio extendido puede ser objeto de acceso utilizando el BDF del dispositivo PCIe en el dominio, es decir, se realiza un acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido. Por lo tanto, se establece la correspondencia entre la direccion de espacio de configuracion y el BDF, es decir, una correspondencia entre la direccion de espacio de configuracion y el registro de espacio de configuracion del dispositivo PCIe en el dominio extendido se establece a este respecto, de modo que, posteriormente, el registro de espacio de configuracion del dispositivo PCIe en el dominio extendido pueda ser objeto de acceso de conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando la direccion de espacio de configuracion, con el fin de descubrir del dispositivo PCIe en el dominio extendido.
El establecimiento de la correspondencia entre la direccion de espacio de configuracion y el BDF puede referirse para establecer una correspondencia entre cada direccion de memoria de 4K en la direccion de espacio de configuracion y cada BDF en el dominio extendido. Mas concretamente, cuando la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido es [direccion inicial, direccion inicial + 256M], [direccion inicial, direccion inicial + 4K] puede corresponder a BDF = 00:00.0 en el dominio extendido, y [direccion inicial + 4K, direccion inicial + 8K] puede corresponder a BDF = 00:00.1, y por analogfa [direccion inicial + 256M - 4K, direccion inicial + 256M] corresponde a BDF = FF:1F:7. A modo de ejemplo, segun se ilustra en la Figura 4, la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido es [8G + 256M, 8G + 512M], y se establece una correspondencia entre la direccion espacio de configuracion y el BDF, de modo que la direccion de espacio de configuracion [8G + 256M, 8G + 256M + 4K] corresponde a BDF = 00:00.0, lo que indica que una direccion de espacio de configuracion del dispositivo PCIe asociado con la 0-esima funcion del 0-esimo dispositivo en el 0-esimo bus es [8G + 256M, 8G + 256 M + 4k]; [8G + 256M + 4K, 8G + 256M + 8K] corresponde a BDF = 00:00.1; [8G + 256M + 8K, 8G + 256M + 12K] corresponde a BDF = 00:00.2; [8G + 256M + 12K, 8G + 256M + 16K] corresponde a BDF = 00:00.3 y por analogfa, [8G + 512M - 4K, 8G + 512M] corresponde a BDF = FF:1F.7.
En esta forma de realizacion de la presente invencion, la correspondencia anterior entre la direccion de espacio de configuracion y el BDF es solamente a modo de ejemplo, y por supuesto, se puede establecerse otra correspondencia entre la direccion de espacio de configuracion y el BDF, lo que no esta limitado en esta forma de realizacion de la presente invencion.
S303: Salvaguardar la correspondencia entre la direccion de espacio de configuracion y el BDF en el RCEP, de modo que el RCEP pueda realizar la traduccion de direccion en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF, para poner en practica el acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido.
Cuando la unidad CPU realiza el acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido, un paquete de acceso se enruta primero al dominio primario, y puede enviarse al dispositivo PCIe en el dominio extendido solamente despues de que el RCEP realice la traduccion de direccion sobre una direccion objetivo de acceso del paquete de acceso; de este modo, la correspondencia entre la direccion de espacio de configuracion y el BDF pueda salvaguardarse en el RCEP, a modo de ejemplo, salvaguardarse en un registro del RCEP, de modo que el RCEP pueda realizar la traduccion de direccion en conformidad con la correspondencia posteriormente, lo que se pone en practica el acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido.
Mas concretamente, cuando la unidad CPU en el sistema realiza un acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido en conformidad con una instruccion del dispositivo PCIe en el dominio primario o de un sistema operativo, la unidad CPU envfa el paquete de acceso, en donde la direccion objetivo de acceso del paquete de acceso es la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido. La direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido pertenece a la direccion memoria del RCEP; por lo tanto, el paquete de acceso se envfa al RCEP, y despues de recibir el paquete de acceso, el RCEP realiza una traduccion de direccion utilizando la correspondencia salvaguardada entre la direccion de espacio de configuracion y el BDF, para obtener por medio de traduccion el BDF del dispositivo PCIe en el dominio extendido, es decir, una direccion objetivo de acceso traducida, de modo que el RCEP pueda enviar el paquete de acceso al registro de espacio de configuracion del dispositivo PCIe en el dominio extendido utilizando el BDF del dispositivo PCIe en el dominio extendido, con lo que se pone en practica el acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido.
S304: Descubrir el dispositivo PCIe en el dominio extendido utilizando la direccion de espacio de configuracion, y asignar un numero de bus para el dispositivo PCIe descubierto en el dominio extendido.
El RCEP esta aislado del dispositivo PCIe en el dominio extendido en una manera de hardware, por lo tanto, el dispositivo PCIe en el dominio extendido es invisible para el sistema, y solamente el dispositivo PCIe en el dominio primario puede ser descubierto cuando se inicie el sistema. Por lo tanto, la unidad CPU en el sistema puede tener acceso al registro de espacio de configuracion del dispositivo PCIe en el dominio extendido en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando la direccion de espacio de configuracion, para descubrir el dispositivo PCIe en el dominio extendido y asignar un numero de bus o una direccion de memoria MMIO al dispositivo PCIe descubierto en el dominio extendido.
5
10
15
20
25
30
35
40
45
50
55
60
65
La unidad CPU en el sistema no ha asignado un numero de bus al dispositivo PCIe en el dominio extendido sin embargo, y no puede determinar un BDF de cada dispositivo PCIe en el dominio extendido, pero puede determinar todos los BDFs que pueden existir en el dominio extendido; por lo tanto, la unidad CPU puede acceder, utilizando la direccion de espacio de configuracion, a los registros de espacio de configuracion de los dispositivos PCIe que corresponden a todos los BDFs que puedan existir en el dominio extendido, con el fin de determinar si los dispositivos PCIe correspondientes a todos los BDF que puedan existir en el dominio extendido existen en una forma de hardware, es decir, descubrir el dispositivo PCIe en el dominio extendido. Cuando un dispositivo PCIe que corresponde a un determinado BDF existe en una forma de hardware, se asigna un numero de bus al dispositivo PCIe, con el fin de determinar el BDF del dispositivo PCIe, de modo que un registro de espacio de configuracion del dispositivo PCIe pueda ser objeto de acceso utilizando el BDF del dispositivo PCIe.
Mas concretamente, la unidad CPU en el sistema puede enviar, utilizando la direccion de espacio de configuracion, un mensaje de consulta de dispositivo al registro de espacio de configuracion del dispositivo PCIe que corresponde al BDF correspondiente a la direccion de espacio de configuracion, con el fin de descubrir el dispositivo PCIe en el dominio extendido, es decir, determinar el dispositivo PCIe que existe en el dominio extendido en una forma de hardware. Cuando se asigna un numero bus al dispositivo PCIe en el dominio extendido, un tipo de dispositivo PCIe en el dominio extendido puede determinarse primero, a modo de ejemplo, si el dispositivo PCIe es un dispositivo puente o un dispositivo de punto extremo de PCIe. Si el dispositivo PCIe es un dispositivo puente, puede asignarse un numero de bus al dispositivo puente en el dominio extendido a partir de los numeros de bus que no son asignados en el segundo conjunto de bus; si el dispositivo PCIe es un dispositivo de punto extremo, un numero de bus asignado al dispositivo de punto extremo en el dominio extendido puede ser el mismo que un numero de bus de un dispositivo puente conectado al dispositivo de punto extremo. El descubrimiento del dispositivo PCIe en el dominio extendido y la asignacion del numero de bus al dispositivo PCIe en el dominio extendido se puede realizar por medio de enumeracion de bus, de modo que, despues de que se asigne un numero de bus al dispositivo PCIe descubierto en el dominio extendido, puede determinarse un BDF del dispositivo PCIe descubierto en el dominio extendido, es decir, una direccion de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido se determina a este respecto. Posteriormente, la unidad CPU puede realizar, utilizando la direccion de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido.
En una forma de realizacion preferida, el dispositivo PCIe en el dominio extendido puede enumerarse utilizando las etapas siguientes, con el fin de descubrir el dispositivo PCIe en el dominio extendido, y asignar un numero de bus a partir del segundo conjunto de bus para el dispositivo PCIe descubierto en el dominio extendido.
a) Inicializar un numero de bus enumerado, un numero de dispositivo enumerado, un numero de funcion enumerado y un numero de bus asignado. A modo de ejemplo, durante la inicializacion, se establece el numero de bus enumerado = 00, el numero de dispositivo enumerado = 00, y el numero de funcion enumerado = 0, es decir, BDF = 00:00.0, lo que indica que un dispositivo PCIe en el dominio extendido se descubre comenzando a partir del momento en que el numero de bus es 00, el numero de dispositivo es 00 y el numero de funcion es 0, y un numero de bus asignado a un dispositivo PCIe descubierto primero en el dominio extendido es: el numero de bus asignado = 00.
b) Adquirir, en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF, la direccion de espacio de configuracion correspondiente al BDF y enviar un mensaje de consulta de dispositivo utilizando la direccion de espacio de configuracion que corresponde al BDF, de modo que el RCEP envfe, en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF, el mensaje de consulta de dispositivo a un registro de espacio de configuracion de un dispositivo PCIe que corresponde al BDF, y determina, en conformidad con un mensaje de respuesta de consulta de dispositivo reenviado, si el dispositivo PCIe que corresponde al BDF existe o no; y si no existe el dispositivo PCIe, realizar la etapa c) para continuar la enumeracion; o si existe el dispositivo PCIe, realizar la etapa d) para asignar un numero de bus. A modo de ejemplo, el mensaje de consulta de dispositivo se envfa a un registro de identificacion de Proveedor VendorId y un registro de identificacion de dispositivo DeviceId del dispositivo PCIe correspondiente a BDF = 00:00.0; si el mensaje reenviado es de todos Fs (indicado por una notacion hexadecimal), ello indica que no existe el dispositivo y se realiza la etapa c) para continuar la enumeracion; de no ser asf, ello indica que existe el dispositivo y se realiza la etapa d) para asignar un numero de bus 00 al dispositivo PCIe descubierto y se determina que el numero de dispositivo del dispositivo PCIe descubierto en el bus 00 es 00 y el numero de funcion es 0.
c) Si no existe el dispositivo, cambiar el numero de bus enumerado, el numero de dispositivo enumerado o el numero de funcion enumerado, con lo que se actualiza el BDF, y reenviar para realizar la etapa b), con el fin de determinar si un dispositivo PCIe en el dominio extendido existe, o no, en otro numero de bus, numero de dispositivo o numero de funcion. A modo de ejemplo, se establece que el numero de bus enumerado = 00, el numero de dispositivo enumerado = 00 y el numero de funcion enumerado = 1, es decir, el BDF actualizado = 00:00.1 y se realiza la etapa b), con el fin de determinar si existe, o no, un dispositivo PCIe correspondiente en el numero de funcion 1 del numero de dispositivo 00 del numero de bus 00.
d) Si existe el dispositivo, lo que indica que un dispositivo PCIe es descubierto en el dominio extendido, determinar, ademas, si un tipo de dispositivo del dispositivo PCIe descubierto en el dominio extendido es un dispositivo de punto extremo de PCIe o un dispositivo puente. Si el dispositivo PCIe descubierto en el dominio extendido es un dispositivo de punto extremo, utilizar un numero de bus de un dispositivo de puente montado en el dispositivo PCIe descubierto en el
5
10
15
20
25
30
35
40
45
50
55
60
65
dominio extendido como un numero de bus del dispositivo de punto extremo, mantener el numero de bus asignado sin cambiar, y cambiar el numero de bus enumerado, el numero de dispositivo enumerado o el funcion de funcion enumerado, con lo que se actualiza el BDF y reenviar para realizar la etapa b), con el fin de continuar la enumeracion para descubrir un dispositivo PCIe en el dominio extendido; si el dispositivo PCIe descubierto en el dominio extendido es un dispositivo puente, asignar un numero de bus al dispositivo puente en el dominio extendido a partir de numeros de bus que no se asignan en el segundo conjunto de bus, actualizar el numero de bus asignado, mantener el numero de bus enumerado sin cambiar, y actualizar el numero de dispositivo enumerado y el numero de funcion enumerado, con lo que se actualiza el BDF y reenviar para realizar la etapa b), con el fin de determinar si un dispositivo PCIe esta montado, o no, en el puente, y asignar un segundo bus al dispositivo montado en el puente.
Ademas, si el dispositivo PCIe en el dominio extendido soporta una funcion de virtualizacion de rafz unica, un numero de bus puede reservarse para el dispositivo de punto extremo a partir de los numeros de bus que no se asignan en el segundo conjunto de bus, de modo que, posteriormente, el dispositivo PCIe en el dominio extendido pueda realizar el procesamiento correspondiente utilizando el numero de bus reservado.
Ademas, el registro de espacio de configuracion del dispositivo PCIe en el dominio extendido puede consultarse ademas, para obtener informacion de atributos del dispositivo PCIe en el dominio extendido, lo que incluye una magnitud de un registro de direccion de base del dispositivo PCIe en el dominio extendido, un atributo del registro de direcciones de base, si el dispositivo es pre-recuperable (Prefetchable) y de forma similar, de modo que una direccion de dominio primario virtual pueda asignarse al dispositivo PCIe en el dominio extendido de conformidad con la informacion de atributos del dispositivo PCIe en el dominio extendido, con posterioridad. A modo de ejemplo, la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido puede determinarse en conformidad con el BDF del dispositivo PCIe en el dominio extendido, y un mensaje de acceso de espacio de configuracion en escritura se envfa a un registro de espacio de configuracion del dispositivo de punto extremo utilizando la direccion de espacio de configuracion, con el fin de la escritura de FFFFFFFF en el registro de espacio de configuracion del dispositivo de punto extremo, y la informacion de atributos del dispositivo de punto extremo puede determinarse en conformidad con el mensaje objeto de lectura.
S305: Asignar, a partir de la direccion de memoria del RCEP, una primera direccion MMIO para el dispositivo PCIe descubierto en el dominio extendido.
Despues de que el dispositivo PCIe en el dominio extendido sea descubierto, la primera direccion MMIO puede asignarse, a partir de las direcciones MMIO excepto la direccion MMIO asignada del RCEP, al dispositivo PCIe descubierto en el dominio extendido, con el fin de efectuar el mapeado de correspondencia del dispositivo PCIe en el dominio extendido para el dominio primario, de modo que, posteriormente, la unidad CPU del sistema pueda realizar, utilizando la primera direccion MMIO, el acceso de MMIO del dispositivo PCIe descubierto en el dominio extendido, en donde una magnitud de una primera direccion MMIO asignada a cada dispositivo PCIe puede ser una magnitud de un registro de direccion de base (Base Address Register) de cada dispositivo PCIe.
Mas concretamente, puede realizarse un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, con el fin de adquirir la magnitud del registro de direccion de base de cada dispositivo PCIe, y luego, se asigna una direccion como la primera direccion MMIO de cada dispositivo PCIe en conformidad con la magnitud del registro de direccion de base de cada dispositivo PCIe a partir de las direcciones MMIO del RCEP que no estan asignadas. Pueden existir multiples dispositivos PCIe en el dominio extendido; por lo tanto, cuando la primera direccion MMIO se asigna al dispositivo PCIe descubierto en el dominio extendido, la primera direccion MMIO puede asignarse al dispositivo PCIe en el dominio extendido cuando un dispositivo PCIe en el dominio extendido es descubierto en la etapa S304, a modo de ejemplo, cuando se determina en la etapa 304 que un dispositivo objetivo correspondiente a BDF = 07:01.0 existe, es decir, el dispositivo PCIe en el dominio extendido existe, se asigna la primera direccion MMIO al dispositivo; cuando se determina que un dispositivo objetivo correspondiente a BDF = 07:03.0 existe, la primera direccion MMIO se asigna al dispositivo; o la primera direccion MMIO puede asignarse al dispositivo PCIe en el dominio extendido despues de que todos los dispositivos PCIe en el dominio se descubran, lo que no esta limitado en esta forma de realizacion de la presente invencion.
Ademas, una direccion inicial de la primera direccion MMIO del dispositivo PCIe descubierto en el dominio extendido puede salvaguardarse, ademas, en el registro de direcciones de base de cada dispositivo PCIe, de modo que la primera direccion MMIO del dispositivo PCIe descubierto en el dominio extendido pueda adquirirse posteriormente accediendo al registro de direcciones de base del dispositivo PCIe descubierto en el dominio extendido.
S306: Establecer un mapeado de correspondencia entre la primera direccion MMIO y una segunda direccion MMIO del dispositivo PCIe descubierto en el dominio extendido, para asignar la segunda direccion MMIO al dispositivo PCIe descubierto en el dominio extendido.
Antes de que se asigne la segunda direccion MMIO al dispositivo PCIe descubierto en el dominio extendido, puede establecerse primero el mapeado entre la primera direccion MMIO y la segunda direccion MMIO del dispositivo PCIe descubierto en el dominio extendido, con el fin de efectuar el mapeado de la segunda direccion MMIO del dispositivo PCIe descubierto en el dominio extendido para el dominio primario, y luego, la segunda direccion MMIO del dispositivo
5
10
15
20
25
30
35
40
45
50
55
60
65
PCIe descubierto en el dominio extendido se determina en conformidad con el mapeado entre la primera direccion MMIO y la segunda direccion MMIO, de modo que la unidad CPU pueda poner en practica, en conformidad con el mapeado entre la primera direccion MMIO y la segunda direccion MMIO y utilizando la primera direccion MMIO el acceso MMIO del dispositivo PCIe descubierto en el dominio extendido, en donde la segunda direccion MMIO es diferente de la primera direccion MMIO, pertenece a un recurso de direccion de memoria en el dominio extendido, y es diferente de una direccion de memoria del dispositivo PCIe en el dominio primario.
A modo de ejemplo, segun se ilustra en la Figura 4, la primera direccion MMIO del dispositivo PCIe descubierto en el dominio extendido puede ser [9G, 10G], en donde [9G, 9G + 4M] es una primera direccion MMIO de un dispositivo PCIe 112A en el dominio extendido, [9G + 1000M, 10G] es una primera direccion MMIO y la segunda direccion MMIO del dispositivo PCIe 116 en el dominio extendido, y el mapeado entre la primera direccion MMIO del dispositivo PCIe en el dominio extendido se establece como un desplazamiento de direccion de 4G, de modo que una segunda direccion de espacio de configuracion asignada al dispositivo PCIe descubierto en el dominio extendido puede ser [5G, 6G], en donde [5G, 5G + 4M] es una segunda direccion MMIO del dispositivo PCIe 112A en el dominio extendido y [5G + 1000M, 6G] es una segunda direccion MMIO del dispositivo PCIe 116 en el dominio extendido.
S307: Salvaguardar el mapeado de correspondencia entre la primera direccion MMIO y la segunda direccion MMIO en el RCEP, de modo que el RCEP pueda realizar una traduccion de direccion en conformidad con el mapeado, con lo que se pone en practica el acceso MMIO del dispositivo PCIe en el dominio extendido.
Cuando la unidad CPU en el sistema realiza el acceso MMIO del dispositivo PCIe en el dominio extendido, un paquete de acceso se enruta primero al dominio primario, y puede enviarse al dispositivo PCIe en el dominio extendido solamente despues de que el RCEP realice una traduccion de direccion en una direccion objetivo de acceso del paquete de acceso; por lo tanto, el mapeado establecido entre la primera direccion MMIO y la segunda direccion MMIO puede salvaguardarse en el RCEP, a modo de ejemplo, salvaguardarse en un registro del RCEP, de modo que el RCEP pueda realizar la traduccion de direccion en conformidad con el mapeado con posterioridad, con lo que se realiza el acceso MMIO del dispositivo PCIe en el dominio extendido.
Mas concretamente, cuando la unidad CPU en el sistema realiza el acceso MMIO del dispositivo PCIe en el dominio extendido en conformidad con una instruccion del dispositivo PCIe en el dominio primario o una instruccion de un sistema operativo, la unidad CPU envfa un paquete de acceso al RCEP, en donde una direccion objetivo de acceso del paquete de acceso es la primera direccion MMIO del dispositivo PCIe en el dominio extendido; despues de que el RCEP reciba el paquete de acceso, el RCEP realiza una traduccion de direccion sobre la direccion objetivo utilizando el mapeado salvaguardado entre la primera direccion MMIO y la segunda direccion MMIO, para obtener, mediante la traduccion, la segunda direccion MMIO del dispositivo PCIe en el dominio extendido, es decir, una direccion objetivo de acceso traducida, de modo que el RCEP pueda enviar el paquete de acceso al dispositivo PCIe en el dominio extendido en conformidad con la direccion objetivo de acceso traducida, con lo que se realiza el acceso MMIO del dispositivo PCIe en el dominio extendido.
S308: Establecer y salvaguardar una correspondencia entre un identificador del dispositivo PCIe en el dominio extendido y la primera direccion MMIO del dispositivo PCIe, con el fin de obtener la primera direccion MMIO del dispositivo PCIe en el dominio extendido utilizando el identificador del dispositivo PCIe en el dominio extendido, para realizar un acceso MMIO.
Despues de asignar la primera direccion MMIO al dispositivo PCIe en el dominio extendido, la unidad CPU en el sistema puede establecer, ademas, la correspondencia entre la primera direccion MMIO del dispositivo PCIe en el dominio extendido y el identificador del dispositivo PCIe en el dominio extendido, de modo que posteriormente la unidad CPU en el sistema pueda obtener la primera direccion MMIO del dispositivo PCIe en el dominio extendido en conformidad con el identificador del dispositivo PCIe en el dominio extendido, con el fin de realizar el acceso MMIO del dispositivo PCIe en el dominio extendido.
El identificador del dispositivo PCIe en el dominio extendido puede ser el BDF del dispositivo PCIe en el dominio extendido, o un identificador ID de dispositivo o un identificador ID de Proveedor del dispositivo PCIe en el dominio extendido, lo que no esta limitado en esta forma de realizacion de la presente invencion.
S309: Establecer y salvaguardar un arbol de recursos de MMIO del dominio extendido en conformidad con la primera direccion MMIO del dispositivo PCIe en el dominio extendido.
La unidad CPU del sistema puede establecer, ademas, el arbol de recursos de MMIO del dominio extendido en conformidad con la primera direccion MMIO del dispositivo PCIe en el dominio extendido, y salvaguardar el arbol de recursos de MMIO del dominio extendido, de modo que, posteriormente, un primer recurso de direccion MMIO del dominio extendido pueda gestionarse utilizando el arbol de recursos MMIO del dominio extendido, a modo de ejemplo, el arbol de recursos MMIO establecido del dispositivo PCIe en el dominio extendido puede ser segun se ilustra en la Figura 5. Puede determinarse de conformidad con la Figura que una primera direccion MMIO asignada al dispositivo puente 112A es [9G, 9G + 4M] y una primera direccion MMIO asignada a un dispositivo de punto extremo 114 es [9G + 6m, 9G + 20M]. Ademas, el arbol de recursos MMIO del dominio extendido puede incluir, ademas, informacion de atributos del
5
10
15
20
25
30
35
40
45
50
55
60
65
dispositivo PCIe en el dominio extendido, a modo de ejemplo, si una longitud de una direccion de memoria del dispositivo PCIe en el dominio extendido es 32 bits o 64 bits, si el dispositivo PCIe en el dominio extendido es pre-recuperable, y la magnitud del registro de direcciones de base del dispositivo PCIe en el dominio extendido.
S310: Asignar una primera direccion MSI al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del RCEP, y asignar una segunda direccion MSI al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion MSI, con el fin de poner en practica un acceso MSI del dispositivo PCIe en el dominio extendido en conformidad con un mapeado de correspondencia entre la primera direccion mSi y la segunda direccion MSI.
Ademas, la unidad CPU en el sistema puede asignar, ademas, la primera direccion MSI y la segunda direccion MSI al dispositivo PCIe en el dominio extendido, y salvaguardar el mapeado entre la primera direccion MSI y la segunda direccion MSI del dispositivo PCIe en el dominio extendido en el RCEP, de modo que el dispositivo PCIe en el dominio extendido pueda realizar un acceso de MSI, es decir, se genera una interrupcion.
Mas concretamente, una direccion puede asignarse como la primera direccion MSI del dispositivo PCIe en el dominio extendido a partir de direcciones MMlO del RCEP que no estan asignadas, el mapeado entre la primera direccion MSI y la segunda direccion MSI del dispositivo PCIe en el dominio extendido puede establecerse, y luego, la segunda direccion MSI del dispositivo PCIe en el dominio extendido puede obtenerse en conformidad con el mapeado establecido. A modo de ejemplo, segun se ilustra en la Figura 4, la primera direccion MSI y la segunda direccion MSI asignada al dispositivo PCIe en el dominio extendido puede ser [8G + 513M, 9G - 1M] y [4G + 513M, 5G - 1M], respectivamente y el mapeado entre la primera direccion MSI y la segunda direccion MSI del dispositivo PCIe en el dominio extendido es un desplazamiento de direccion de 4G.
Cuando el dispositivo PCIe en el dominio extendido necesita demandar interrupciones senalizadas por mensaje desde el sistema, el dispositivo PCIe solicita primero la segunda direccion MSI desde el RCEP, y envfa un paquete de acceso al RCEP en conformidad con la segunda direccion MSI, en donde la direccion objetivo de acceso del paquete de acceso pertenece a un intervalo de direcciones de la segunda direccion MSI. El RCEP realiza la traduccion de direccion en conformidad con el mapeado entre la primera direccion MSI y la segunda direccion MSI del dispositivo PCIe en el dominio extendido, para obtener una direccion objetivo de acceso traducida que pertenece a la primera direccion MSI. El RCEP determina que el acceso de MSI del dispositivo PCIe en el dominio extendido necesita realizarse, y demanda interrupciones senalizadas por mensaje desde la unidad CPU en el sistema. Las interrupciones senalizadas por mensaje pueden enrutarse al complejo rafz en el dominio primario en conformidad con la direccion objetivo de acceso traducida y luego, enviarse a la unidad CPU, con el fin de completar el acceso de MSI del dispositivo PCIe en el dominio extendido.
Esta etapa puede realizarse antes de la etapa S301 o despues de la etapa S301, lo que no esta limitado en esta forma de realizacion de la presente invencion.
S311: Asignar una primera direccion DMA al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del RCEP, y asignar una segunda direccion DMA al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion DMA, para realizar el acceso de DMA del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion DMA y la segunda direccion DMA.
Ademas, la unidad CPU en el sistema puede asignar, ademas, la primera direccion DMA y la segunda direccion DMA al dispositivo PCIe en el dominio extendido, y salvaguardar el mapeado entre la primera direccion DMA y la segunda direccion DMA del dispositivo PCIe en el dominio extendido en el RCEP, de modo que el dispositivo PCIe en el dominio extendido pueda realizar el acceso de DMA, en donde el acceso de DMA se activa inicialmente por el dispositivo PCIe, y puede realizarse una comunicacion mutua entre dispositivos PCIe por medio del acceso DMA.
Mas concretamente, la unidad CPU en el sistema puede asignar una direccion como una primera direccion DMA del dispositivo PCIe en el dominio extendido a partir de las direcciones MMIO del RCEP que no estan asignadas, establecer el mapeado entre la primera direccion DMA y la segunda direccion DMA del dispositivo PCIe en el dominio extendido, y luego, obtener la segunda direccion DMA del dispositivo PCIe en el dominio extendido en conformidad con el mapeado establecido. A modo de ejemplo, segun se ilustra en la Figura 4, la primera direccion DMA y la segunda direccion DMA asignadas al dispositivo PCIe en el dominio extendido pueden ser [10G, 11G] y [6G, 7G] respectivamente, y el mapeado entre la primera direccion DMA y la segunda direccion DMA del dispositivo PCle en el dominio extendido puede ser un desplazamiento de direccion de 4G. Cuando el dispositivo PCIe en el dominio extendido necesita realizar un acceso DMA, el dispositivo PCIe solicita la segunda direccion DMA desde el RCEP, y envfa un paquete de acceso al RCEP en conformidad con la segunda direccion DMA que se solicita, en donde una direccion objetivo de acceso del paquete de acceso pertenece a un intervalo de direccion de la segunda direccion DMA. El RCEP realiza una traduccion de direccion de conformidad con el mapeado entre la primera direccion DMA y la segunda direccion DMA del dispositivo PCIe en el dominio extendido y la direccion objetivo de acceso traducida obtenida pertenece a la primera direccion DMA. El RCEP determina que el acceso DMA del dispositivo PCIe en el dominio extendido necesita realizarse, asigna la primera direccion dMa al dispositivo PCIe en el dominio extendido a partir de la primera direccion DMA, y envfa el paquete de acceso a la primer direccion DMA asignada, con lo que se realice el acceso DMA del dispositivo PCIe en el dominio extendido.
5
10
15
20
25
30
35
40
45
50
55
60
65
Esta etapa puede realizarse antes de la etapa S301 o despues de la etapa S301, lo que no esta limitado en esta forma de realizacion de la presente invencion.
S312: Inicializar el dispositivo PCIe descubierto en el dominio extendido.
El RCEP 106 esta aislado del dispositivo PCIe en el dominio extendido en una manera de hardware; por lo tanto, el dispositivo PCIe en el dominio extendido es invisible para el sistema, y un sistema de entrada/salida basico o un sistema operativo del sistema no pueden inicializar el dispositivo PCIe en el dominio extendido cuando se inicia el sistema. Por lo tanto, la unidad CPU en el sistema puede inicializar, en conformidad con una instruccion del sistema de entrada/salida basico o una instruccion del sistema operativo, el dispositivo PCIe descubierto en el dominio extendido despues de que el dispositivo PCIe en el dominio extendido sea descubierto, de modo que el dispositivo PCIe en el dominio extendido este preparado y pueda utilizarse con normalidad.
Mas concretamente, despues de que se determine el dispositivo PCIe en el dominio extendido, puede realizarse un acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido, con el fin de adquirir informacion de configuracion del dispositivo PCIe en el dominio extendido, y se realiza una configuracion correspondiente en el registro de espacio de configuracion del dispositivo PCIe en el dominio extendido en conformidad con la informacion de configuracion, a modo de ejemplo, los registros de espacio de configuracion que corresponden a las funciones tales como interrupciones, gestion de la energfa, VPD de datos de productos virtuales e IO virtualizada del dispositivo PCIe en el dominio extendido son configurados a este respecto, de modo que el dispositivo PCIe en el dominio extendido pueda funcionar con normalidad.
S313: Cargar un controlador del dispositivo PCIe descubierto en el dominio extendido.
La unidad CPU en el sistema puede buscar, ademas, un controlador de dispositivo previamente configurado para un controlador de dispositivos del dispositivo PCIe en el dominio extendido, y cargar el controlador del dispositivo. Mas concretamente, la unidad CPU puede adquirir un identificador de dispositivo correspondiente al controlador de dispositivos previamente configurado, tal como un identificador ID de dispositivo o un identificador ID de proveedor, e intentar la correspondencia del identificador del dispositivo con un identificador de dispositivo registrado en el registro de espacio de configuracion del dispositivo PCIe en el dominio extendido; si la correspondencia es satisfactoria, se determina que el controlador de dispositivos es el controlador de dispositivos del dispositivo PCIe en el dominio extendido, y se carga el controlador de dispositivos. A modo de ejemplo, un identificador ID de proveedor de un controlador de dispositivos A se utiliza para su correspondencia con los identificadores IDs de proveedores registrados en los registros de espacio de configuracion de los dispositivos PCIe en el dominio extendido (es decir, un acceso de espacio de configuracion de los dispositivos PCIe en el dominio extendido se realiza utilizando la primera direccion de espacio de configuracion del dominio extendido) uno por uno. Cuando el identificador ID del proveedor es coherente con un identificador ID de proveedor registrado en un dispositivo PCIe A en el dominio extendido, se solicita una funcion de sondeo del controlador de dispositivos A; si la funcion no detecta ningun error, se determina que el controlador de dispositivos A es el controlador de dispositivos del dispositivo PCIe A en el dominio extendido, y se repite el proceso anterior hasta que se determinen los controladores de dispositivos de todos los dispositivos PCIe en el dominio extendido.
En esta forma de realizacion de la presente invencion, la direccion de espacio de configuracion se asigna al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del RCEP, se establece la correspondencia entre la direccion de espacio de configuracion y el numero de bus/numero de dispositivo/numero de funcion BDF, y el numero de bus se asigna a partir del segundo conjunto de bus del dominio extendido al dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar el BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de acceder, de conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, el registro de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, que pone en practica el acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, completa la extension de un dominio de PCIe, establece la comunicacion entre la unidad CPU o el dominio primario y el dominio extendido, y resuelve el problema de la tecnica anterior de que un dominio de PCIe no pueda extenderse de modo que el numero de dispositivos PCIe en el sistema no este restringido por 256 buses.
Ademas, la primera direccion MMIO y la segunda direccion MMIO pueden asignarse ademas al dispositivo PCIe descubierto en el dominio extendido, con el fin de realizar, en conformidad con el mapeado entre la primera direccion MMIO y la segunda direccion MMIO, un acceso MMIO del dispositivo PCIe descubierto en el dominio extendido. Ademas, la primera direccion MSI y la segunda direccion MSI pueden asignarse, asimismo, al dispositivo PCIe en el dominio extendido, con el fin de realizar, en conformidad con el mapeado entre la primera direccion MSI y la segunda direccion MSI, un acceso MSI del dispositivo PCIe en el dominio extendido. Ademas, la primera direccion DMA y la segunda direccion DMA pueden asignarse, ademas, al dispositivo PCIe en el dominio extendido, con el fin de realizar, en conformidad con el mapeado entre la primera direccion dMa y la segunda direccion DMA, un acceso DMA del dispositivo PCIe en el dominio extendido.
Metodo para acceder a un dominio de PCIe
5
10
15
20
25
30
35
40
45
50
55
60
65
Con referencia a la arquitectura del sistema ilustrada en la Figura 1, una forma de realizacion de la presente invencion da a conocer un metodo para acceder a un dominio de PCIe. Segun se ilustra en la Figura 6, el metodo se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido incluye un dispositivo de punto extremo de complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus; el primer conjunto de bus es diferente del segundo conjunto de bus, y el dispositivo de punto extremo de complejo rafz es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido; el metodo incluye:
S601: El RCEP recibe un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicacion mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una direccion objetivo de acceso.
El RCEP afsla el dominio primario respecto al dominio extendido en una manera de hardware; por lo tanto, los paquetes de acceso del dominio primario y del dominio extendido necesitan reenviarse por el RCEP, y el RCEP puede recibir un paquete de acceso, en donde el paquete de acceso es un paquete de acceso para comunicacion mutua entre el dominio primario y el dominio extendido. A modo de ejemplo, cuando una unidad CPU en el sistema accede al dispositivo PCIe en el dominio extendido, un paquete de acceso se enruta primero al complejo rafz en el dominio primario, y el complejo rafz en el dominio primario envfa el paquete de acceso al RCEP en conformidad con una direccion objetivo de acceso del paquete de acceso; a modo de otro ejemplo, cuando el dispositivo PCIe en el dominio extendido tiene acceso al dominio primario o la unidad CPU, el dispositivo PCIe en el dominio extendido envfa un paquete de acceso al RCEP, en donde el paquete de acceso incluye un cuerpo de mensaje y una direccion objetivo de acceso.
S602: El RCEP realiza una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion previamente salvaguardado, para obtener una direccion objetivo de acceso traducida.
La unidad CPU en el sistema puede detectar solamente el dispositivo PCIe en el dominio primario, es decir, puede utilizar una direccion de memoria solamente del dispositivo PCIe en el dominio primario, tal como una direccion de memoria del RCEP, y el dispositivo PCIe en el dominio extendido puede detectar solamente otro dispositivo PCIe en el dominio extendido y el RCEP, es decir, puede utilizar una direccion de memoria solamente del dispositivo PCIe en el dominio extendido, tal como una segunda direccion MMIO o una segunda direccion MSI; por lo tanto, el RCEP puede salvaguardar previamente un mapeado de direccion entre la direccion memoria o un BDF del dispositivo PCIe en el dominio extendido y la direccion de memoria del RCEP, y traducir la direccion objetivo de acceso en la direccion de memoria o el BDF del dispositivo PCIe en el dominio extendido en conformidad con el mapeado de direcciones, con el fin de poner en practica el acceso del dispositivo PCIe en el dominio extendido, o traducir la direccion objetivo de acceso en la direccion de memoria del RCEP, con el fin de realizar el acceso del dominio primario o la unidad CPU utilizando el RCEP.
S603: El RCEP envfa un paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye el cuerpo de mensaje y una direccion objetivo de acceso traducida.
El cuerpo de mensaje es objeto de lectura y escritura de los datos de acceso u otra instruccion de operacion del paquete de acceso. El RCEP puede generar, en conformidad con el cuerpo de mensaje y de la direccion objetivo de acceso traducida, el paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye la direccion objetivo de acceso traducida y el cuerpo del mensaje. El RCEP puede enviar el paquete de acceso analogico, para realizar un acceso mutuo entre la unidad CPU o el dominio primario y el dominio extendido.
En esta forma de realizacion de la presente invencion, el RCEP puede recibir el paquete de acceso, en donde el paquete de acceso es un paquete para la comunicacion entre el dominio primario y el dominio extendido; realizar una traduccion de direccion sobre la direccion objetivo de acceso del paquete de acceso en conformidad con el mapeado de direccion previamente salvaguardado, a modo de ejemplo, traducir la direccion de memoria del dominio primario y en la direccion de memoria del dominio extendido, para obtener la direccion objetivo de acceso traducida; y enviar el paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye la direccion objetivo de acceso traducida, de modo que el dominio primario o la unidad CPU puedan acceder al dispositivo PCIe en el dominio extendido, o el dispositivo PCIe en el dominio extendido pueda acceder al dominio primario o la unidad CPU, con el fin de realizar una comunicacion entre la CPU en el sistema o el dominio primario y el dominio extendido, completar la extension de un dominio de PCIe en el sistema, realizar una comunicacion de un dominio extendido de PCIe, y resolver un problema en la tecnica anterior de que un dominio de PCIe no puede extenderse, de modo que el numero de dispositivos PCIe en el sistema no este restringido por 256 buses.
Ademas, el paquete de acceso puede ser un paquete para realizar un acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido por la unidad CPU en el sistema, de modo que la unidad CPU en el sistema adquiera una direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido como la direccion objetivo de acceso del paquete de acceso, en donde la direccion de espacio de configuracion pertenece a la direccion de memoria del RCEP, y luego, el paquete de acceso se envfa la RCEP. El RCEP realizar la traduccion de direccion en conformidad con
5
10
15
20
25
30
35
40
45
50
55
60
65
una correspondencia entre la direccion de espacio de configuracion y un BDF del dispositivo PCIe en el dominio extendido, para obtener el BDF del dispositivo PCIe en el dominio extendido, es dedr, la direccion objetivo de acceso traducida. El RCEP puede generar el paquete de acceso analogico en conformidad con la direccion objetivo de acceso traducida y el cuerpo del mensaje del paquete de acceso y envfa el paquete de acceso analogico a un registro de espacio de configuracion del dispositivo PCIe en el dominio extendido utilizando la direccion objetivo de acceso traducida para poner en practica un acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido.
Ademas, el paquete de acceso puede ser un paquete de acceso para realizar un acceso de MMIO del dispositivo PCIe en el dominio extendido por la unidad CPU en el sistema, de modo que la unidad CPU en el sistema adquiera una primera direccion MMIO del dispositivo PCIe en el dominio extendido composicion ola direccion objetivo de acceso del paquete de acceso, en donde la primera direccion MMIO pertenece a la direccion de memoria del RCEP, y luego, el paquete de acceso se envfa al RCEP. El RCEP realiza una traduccion de direccion en conformidad con un mapeado entre la primera direccion MMIO y una segunda direccion MMIO del dispositivo PCIe en el dominio extendido, con el fin de obtener la segunda direccion MMIO del dispositivo PCIe en el dominio extendido, es decir, la direccion objetivo de acceso traducida. El RCEP genera el paquete de acceso analogico en conformidad con la direccion objetivo de acceso traducida y el cuerpo del mensaje del paquete de acceso y envfa el paquete de acceso analogico al dispositivo PCIe en el dominio extendido utilizando la direccion objetivo de acceso traducida, para poner en practica un acceso MMIO del dispositivo PCIe en el dominio extendido.
Ademas, el paquete de acceso puede ser un paquete para solicitar interrupciones senalizadas por mensaje desde la unidad CPU en el sistema por el dispositivo PCIe en el dominio extendido, de modo que el dispositivo PCIe en el dominio extendido pueda solicitar una segunda direccion MSI desde el RCEP, utilizar la segunda direccion MSI, que se obtiene por medio de solicitud, como la direccion objetivo de acceso del paquete de acceso y enviar el paquete de acceso al RCEP. El RCEP realizar la traduccion de direccion en conformidad con un mapeado entre una primera direccion MSI y la segunda direccion MSI del dispositivo PCIe en el dominio extendido, con el fin de obtener la primera direccion MSI del dispositivo PCIe en el dominio extendido, es decir, la direccion objetivo de acceso traducida, en donde la primera direccion MSI pertenece a la direccion de memoria del RCEP. El RCEP genera el paquete de acceso analogico en conformidad con la direccion objetivo de acceso traducida y el cuerpo del mensaje del paquete de acceso, y el paquete de acceso de un tipo de MSI se enruta al complejo rafz en el dominio primario utilizando la direccion objetivo de acceso traducida y luego, se envfa a la CPU en el sistema, para realizar un acceso MSI del dispositivo PCIe en el dominio extendido.
Ademas, el paquete de acceso puede ser un paquete para realizar un acceso directo en memoria del sistema por el dispositivo PCIe en el dominio extendido. A modo de ejemplo, cuando el dispositivo PCIe en el dominio extendido se comunica con el dispositivo PCIe en el dominio primario, el acceso directo en memoria puede utilizarse, de modo que el dispositivo PCIe en el dominio extendido pueda solicitar una segunda direccion DMA desde el RCEP, utilizar la segunda direccion DMA, que se obtiene por medio de solicitud, como la direccion objetivo de acceso del paquete de acceso, y enviar el paquete de acceso al RCEP. El RCEP realiza una traduccion de direccion en conformidad con un mapeado entre una primera direccion DMA y la segunda direccion DMA del dispositivo PCIe en el dominio extendido, para obtener la primera direccion DMA del dispositivo PCIe en el dominio extendido, es decir, la direccion objetivo de acceso traducida, en donde la primera direccion DMA pertenece a la direccion de memoria del RCEP. El RCEP genera el paquete de acceso analogico en conformidad con la direccion objetivo de acceso traducida y el cuerpo del mensaje del paquete de acceso y solicita una direccion DMA del dominio primario a partir del complejo rafz en el dominio primario utilizando la direccion objetivo de acceso traducida para realizar un acceso DMA, con el fin de realizar un acceso DMA del dispositivo PCIe en el dominio extendido.
Formas de realizacion del aparato de la presente invencion
Con referencia a la arquitectura del sistema ilustrada en la Figura 1, una forma de realizacion de la presente invencion da a conocer un aparato para acceder a un dominio de PCIe. Segun se ilustra en la Figura 7, el aparato se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; el dominio extendido incluye el aparato y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, el primer conjunto de bus es diferente del segundo conjunto de bus y el aparato es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido. El aparato puede ser dispositivo de punto extremo de complejo rafz 106 en el sistema ilustrado en la Figura 1 y el aparato puede incluir una unidad de asignacion de direccion de primer tipo 701 y una unidad de asignacion de bus 702.
La unidad de asignacion de direccion de primer tipo 701 esta configurada para asignar una direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de una direccion de memoria del RCEP, y establecer una correspondencia entre la direccion de espacio de configuracion y un BDF, a modo de ejemplo, asignar una direccion como la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido a partir de una direccion MMIO del RCEP, con el fin de efectuar el mapeado del dispositivo PCIe en el dominio extendido al dominio primario; cuando se realiza un acceso de espacio de configuracion, la direccion de espacio de configuracion puede representar, en el dominio primario, el dispositivo PCIe en el dominio extendido, de modo que una unidad CPU en el sistema o el dispositivo PCIe en el dominio primario pueda identificar el dispositivo PCIe en el dominio extendido, lo que ayuda a
5
10
15
20
25
30
35
40
45
50
55
60
65
realizar, posteriormente, un acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido. Ademas, la unidad de asignacion de direccion de primer tipo 701 puede salvaguardar tambien la correspondencia entre la direccion de espacio de configuracion y el BDF en el dispositivo de punto extremo de complejo rafz, de modo que el dispositivo de punto extremo de complejo rafz pueda realizar una traduccion de direccion en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF, con el fin de poner en practica un acceso de espacio de configuracion de un dispositivo PCIe descubierto en el dominio extendido.
La unidad de asignacion de bus 702 esta configurada para asignar, a partir del segundo conjunto de bus, un numero de bus para el dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar un BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido.
Ademas, el aparato puede incluir, ademas:
una unidad de determinacion 703, configurada para descubrir el dispositivo PCIe en el dominio extendido, utilizando la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido y la correspondencia entre la direccion de espacio de configuracion y el BDF, en donde la unidad CPU en el sistema no asigna un numero de bus al dispositivo PCIe en el dominio extendido, y no se puede determinar un BDF de cada dispositivo PCIe en el dominio extendido, pero todos los BDFs que puedan existir en el dominio extendido pueden determinarse a este respecto. Por lo tanto, la unidad de determinacion 703 puede acceder a los registros de espacio de configuracion de dispositivos PCIe correspondientes a todos los BDF que puedan existir en el dominio extendido utilizando la direccion de espacio de configuracion, con el fin de determinar si los dispositivos PCIe correspondientes a todos los BDFs que puedan existir en el dominio extendido existen en una forma de hardware, es decir, descubrir el dispositivo PCIe en el dominio extendido, de modo que, posteriormente, la unidad de asignacion de bus 702 pueda asignar, en conformidad con el dispositivo PCIe descubierto en el dominio extendido por la unidad de determinacion 703, un numero de bus del dispositivo PCIe descubierto en el dominio extendido; y
una unidad de asignacion de direccion de segundo tipo 704, configurada para asignar una primera direccion MMIO a partir de la direccion de memoria del RCEP para el dispositivo PCIe descubierto en el dominio extendido, a modo de ejemplo, asignar la primera direccion MMIO a partir de la direccion MMIO del RCEP para el dispositivo PCIe descubierto en el dominio extendido, y asignar, en conformidad con la primera direccion MMIO, una segunda direccion MMIO al dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con un mapeado entre la primera direccion MMIO y la segunda direccion MMIO, un acceso MMIO del dispositivo PCIe, descubierto en el dominio extendido, en donde concretamente, la unidad de asignacion de direccion de segundo tipo 704 puede determinar una magnitud de un registro de direccion de base del dispositivo PCIe descubierto en el dominio extendido, y asignar, en conformidad con la magnitud del registro de direccion de base del dispositivo PCIe descubierto en el dominio extendido, la primera direccion MMIO en el dispositivo PCIe descubierto en el dominio extendido, y luego, establecer el mapeado entre la primera direccion MMIO y la segunda direccion MMIO y asignar, en conformidad con el mapeado entre la primera direccion MMIO y la segunda direccion MMIO, la segunda direccion MMIO para el dispositivo PCIe descubierto en el dominio extendido.
Ademas, la unidad de asignacion de direccion de segundo tipo 704 puede salvaguardar, ademas, el mapeado entre la primera direccion MMIO y la segunda direccion MMIO en el RCEP, de modo que el RCEP pueda realizar una traduccion de direccion en conformidad con el mapeado entre la primera direccion MMIO y la segunda direccion MMIO, con el fin de poner en practica un acceso MMIO del dispositivo PCIe descubierto en el dominio extendido. Ademas, el aparato puede incluir, ademas.
una unidad de salvaguarda 705, configurada para establecer y salvaguardar una correspondencia entre un identificador del dispositivo PCIe descubierto en el dominio extendido y la primera direccion MMIO del dispositivo PCIe descubierto en el dominio extendido, y obtener, en conformidad con el identificador del dispositivo PCIe descubierto en el dominio extendido, la primera direccion MMIO del dispositivo PCIe descubierto en el dominio extendido, para realizar un acceso MMIO.
La unidad de salvaguarda 705 puede establecer y salvaguardar, ademas, un arbol de recursos MMIO del dominio extendido en conformidad con la primera direccion MMIO del dispositivo PCIe descubierto en el dominio extendido despues de que la unidad de asignacion de direccion de segundo tipo 704 asigne la primera direccion MMIO al dispositivo PCIe en el dominio extendido, de modo que un primer recurso de direccion MMIO del dominio extendido pueda gestionarse utilizando el arbol de recursos MMIO del dominio extendido, posteriormente, en donde el arbol de recursos de MMIO del dominio extendido, puede incluir, ademas, informacion de atributos del dispositivo PCIe en el dominio extendido, a modo de ejemplo, si una longitud de una direccion de memoria del dispositivo PCIe en el dominio extendido es 32 bits o 64 bits, en donde el dispositivo PCIe en el dominio extendido es pre-recuperable y una magnitud de un registro de direccion de base del dispositivo PCIe en el dominio extendido.
Ademas, el aparato puede incluir, ademas:
5
10
15
20
25
30
35
40
45
50
55
60
65
una unidad de asignacion de direccion de tercer tipo 706, configurada para asignar una primera direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo ra^z, y asignar una segunda direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de interrupciones senalizadas por mensaje, con el fin de realizar un acceso de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje.
Ademas, el aparato puede incluir, ademas:
una unidad de asignacion de direccion de cuarto tipo 707, configurada para asignar una primera direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz, y asignar una segunda direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de acceso directo en memoria, con el fin de realizar un acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria.
Ademas, el aparato puede incluir, ademas.
una unidad de inicializacion 708, configurada para inicializar el dispositivo PCIe descubierto en el dominio extendido, en donde espedficamente, despues de que la unidad de determinacion 703 descubra el dispositivo PCIe en el dominio extendido, se pueda realizar un acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido, para adquirir informacion de configuracion del dispositivo PCIe en el dominio extendido y luego, se realiza una configuracion correspondiente en un registro de espacio de configuracion del dispositivo PCIe en el dominio extendido en conformidad con la informacion de configuracion, a modo de ejemplo, registros de espacio de configuracion correspondientes a funciones tales como interrupciones, gestion de la energfa, VPD de datos de productos vitales e IO virtualizado del dispositivo PCIe en el dominio extendido se configuran a este respecto, para completar la inicializacion del dispositivo PCIe descubierto en el dominio extendido con lo que se permite que el dispositivo PCIe descubierto en el dominio extendido este preparado para un funcionamiento normal.
En esta forma de realizacion de la presente invencion, la unidad de asignacion de direccion de primer tipo 701 puede asignar la direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del RCEP, y establecer la correspondencia entre la direccion de espacio de configuracion y el numero de bus/numero de dispositivo/numero de funcion BDF y la unidad de asignacion de bus 702 puede asignar el numero de bus a partir del segundo conjunto de bus del dominio extendido al dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar el BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de tener acceso, en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un registro de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, que pone en practica el acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido, completa la extension de un dominio PCIe, pone en practica la comunicacion entre la unidad CPU o el dominio primario y el dominio extendido y resuelve un problema en la tecnica anterior de que un dominio PCIe no pueda extenderse, de modo que el numero de dispositivos PCIe en el sistema no este restringido a 256 buses.
Ademas, la unidad de asignacion de direccion de segundo tipo 704 puede asignar, ademas, la primera direccion MMIO y la segunda direccion MMIO al dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con el mapeado entre la primera direccion MMIO y la segunda direccion MMIO, un acceso MMIO del dispositivo PCIe descubierto en el dominio extendido. Ademas, la unidad de asignacion de direccion de tercer tipo puede asignar, ademas, la primera direccion MSI y la segunda direccion MSI al dispositivo PCIe en el dominio extendido, con el fin de poner en practica, en conformidad con el mapeado entre la primera direccion MSI y la segunda direccion MSI, un acceso MSI del dispositivo PCIe en el dominio extendido. Ademas, la unidad de asignacion de direccion de cuarto tipo 707 puede asignar, ademas, la primera direccion DMA y la segunda direccion DMA al dispositivo PCIe en el dominio extendido, con el fin de poner en practica, en conformidad con el mapeado entre la primera direccion DMA y la segunda direccion DMA, un acceso DMA del dispositivo PCIe en el dominio extendido.
Con referencia a la arquitectura del sistema ilustrada en la Figura 1, una forma de realizacion de la presente invencion da a conocer un aparato para acceder a un dominio de PCIe. Segun se ilustra en la Figura 8, el aparato se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; el dominio extendido incluye el aparato y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, el primer conjunto de bus es diferente del segundo conjunto de bus, y el aparato es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido. El aparato puede ser un dispositivo de punto extremo de complejo rafz 106 en el sistema ilustrado en la Figura 1 y el aparato puede incluir una unidad de recepcion 801, una unidad de traduccion 802 y una unidad de envfo 803.
5
10
15
20
25
30
35
40
45
50
55
60
65
La unidad de recepcion 801 esta configurada para recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicacion mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una direccion objetivo de acceso.
La unidad de traduccion 802 esta configurada para realizar una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion previamente salvaguardado, para obtener una direccion objetivo de acceso traducida. A modo de ejemplo, la unidad de traduccion 802 puede traducir la direccion objetivo de acceso en una direccion MMIO o un BDF del dispositivo PCIe en el dominio extendido, para poner en practica un acceso al dispositivo PCIe en el dominio extendido, o traducir la direccion objetivo de acceso en una direccion de memoria del RCEP (a modo de ejemplo, una primera direccion MSI o una primera direccion DMA del dispositivo en el dominio extendido) para realizar un acceso al dominio primario o a una unidad CPU.
La unidad de envfo 803 esta configurada para enviar un paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye el cuerpo del mensaje y la direccion objetivo de acceso traducida. El cuerpo del mensaje es objeto de lectura y escritura de datos de acceso u otra instruccion de operacion del paquete de acceso. La unidad de envfo 803 puede generar o adquirir, en conformidad con el cuerpo del mensaje y la direccion objetivo de acceso traducida, el paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye la direccion objetivo de acceso traducida y el cuerpo del acceso. La unidad de envfo 803 puede enviar el paquete de acceso analogico, para realizar un acceso mutuo entre la unidad CPU o el dominio primario y el dominio extendido.
Mas concretamente, la direccion objetivo de acceso puede ser una direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido, de modo que la unidad de traduccion 802 pueda realizar una traduccion de direccion en la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido en conformidad con una correspondencia entre la direccion de espacio de configuracion y un BDF del dispositivo PCIe en el dominio extendido, con el fin de obtener el BDF del dispositivo PCIe en el dominio extendido; la unidad de envfo 803 puede enviar, en conformidad con el BDF del dispositivo PCIe en el dominio extendido y el cuerpo del mensaje, el paquete de acceso analogico correspondiente al paquete de acceso, para poner en practica el acceso de espacio de configuracion del dispositivo PCIe en el dominio extendido.
La direccion objetivo de acceso puede ser una primera direccion MMIO del dispositivo PCIe en el dominio extendido, de modo que la unidad de traduccion 802 puede realizar una traduccion de direccion sobre la primera direccion MMIO del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion MMIO y una segunda direccion MMIO del dispositivo PCIe en el dominio extendido, para obtener la segunda direccion MMIO del dispositivo PCIe en el dominio extendido; la unidad de envfo 803 puede enviar, en conformidad con la segunda direccion MMIO del dispositivo PCIe en el dominio extendido y el cuerpo del mensaje, el paquete de acceso analogico correspondiente al paquete de acceso, para poner en practica el acceso MMIO del dispositivo PCIe en el dominio extendido.
La direccion objetivo de acceso puede ser una segunda direccion MSI del dispositivo PCIe en el dominio extendido, de modo que la unidad de traduccion 802 puede realizar una traduccion de direccion en la segunda direccion MSI del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre una primera direccion MSI y la segunda direccion MSI del dispositivo PCIe en el dominio extendido, para obtener la primera direccion MSI del dispositivo PCIe en el dominio extendido; la unidad de envfo 803 puede enviar, en conformidad con la primera direccion mSi del dispositivo PCIe en el dominio extendido y el cuerpo del mensaje, el paquete de acceso analogico correspondiente al paquete de acceso, para poner en practica el acceso de MSI del dispositivo PCIe en el dominio extendido.
La direccion objetivo de acceso puede ser una segunda direccion DMA del dispositivo PCIe en el dominio extendido, de modo que la unidad de traduccion 802 pueda realizar una traduccion de direccion sobre la segunda direccion DMA del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre una primera direccion DMA y la segunda direccion DMA del dispositivo PCIe en el dominio extendido, para obtener la primera direccion DMA del dispositivo PCIe en el dominio extendido; la unidad de envfo 803 puede enviar, en conformidad con la primera direccion DMA del dispositivo PCIe en el dominio extendido y el cuerpo del mensaje, el paquete de acceso analogico correspondiente al paquete de acceso, para poner en practica un acceso DMA del dispositivo PCIe en el dominio extendido.
En esta forma de realizacion de la presente invencion, la unidad de recepcion 801 puede recibir el paquete de acceso, en donde el paquete de acceso es un paquete para una comunicacion mutua entre el dominio primario y el dominio extendido, la unidad de traduccion 802 puede realizar una traduccion de direccion sobre la direccion objetivo de acceso del paquete de acceso en conformidad con un mapeado de direccion previamente salvaguardado, para obtener la direccion objetivo de acceso traducida y el paquete de acceso analogico correspondiente al paquete de acceso se envfa, en donde el paquete de acceso analogico incluye la direccion objetivo de acceso traducida, de modo que el complejo rafz en el dominio primario o la unidad CPU pueda acceder al dispositivo PCIe en el dominio extendido, o el dispositivo PCIe en el dominio extendido pueda realizar un acceso DMA o un acceso MSI, para realizar una comunicacion entre la unidad CPU en el sistema o el dominio primario y el dominio extendido, completar la extension de un dominio de PCIe en el sistema, realizar una comunicacion de un dominio PCIe extendido y resolver un problema en la tecnica anterior de que
5
10
15
20
25
30
35
40
45
50
55
60
65
un dominio de PCIe no pueda extenderse, de modo que el numero de dispositivos PCIe en el sistema no este restringido por 256 buses.
La Figura 9 es un diagrama de composicion estructural esquematico de un aparato para extender un dominio PCIe en conformidad con una forma de realizacion de la presente invencion. El aparato para extender un dominio PCIe se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido incluye un dispositivo de punto extremo de complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, el primer conjunto de bus es diferente del segundo conjunto de bus y el dispositivo de punto extremo de complejo rafz es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido.
El aparato para extender un dominio de PCIe puede incluir un procesador 901, una memoria 902, un bus de sistema 904 y una interfaz de comunicaciones 905. El procesador 901, la memoria 902 y la interfaz de comunicaciones 905 estan conectados y realizan una comunicacion mutua utilizando el bus del sistema 904.
El procesador 901 puede ser una unidad central de procesamiento de nucleo unico o de multiples nucleos, un circuito integrado especfico de la aplicacion o uno o mas circuitos integrados configurados para poner en practica esta forma de realizacion de la presente invencion.
La memoria 902 puede ser una memoria RAM de alta velocidad o una memoria no volatil (non-volatile memory), tal como al menos una memoria de disco magnetico.
La memoria 902 esta configurada para memorizar una instruccion ejecutable por ordenador 903. Mas concretamente, la instruccion ejecutable por ordenador 903 puede incluir un codigo de programa.
Cuando el aparato para extender un dominio de PCIe funciona, el procesador 901 ejecuta la instruccion ejecutable por ordenador 903 y puede realizar el procedimiento del metodo ilustrado en la Figura 2 o la Figura 3A y la Figura 3B.
Una forma de realizacion de la presente invencion da a conocer un aparato para acceder a un dominio PCIe y un diagrama de composicion estructural esquematico del aparato se ilustra en la Figura 9. El aparato se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y el dominio extendido incluye un dispositivo de punto extremo de complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, el primer conjunto de bus es diferente del segundo conjunto de bus, y el dispositivo de punto extremo de complejo rafz es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido.
El aparato puede incluir un procesador 901, una memoria 902, un bus de sistema 904 y una interfaz de comunicaciones 905. El procesador 901, la memoria 902 y la interfaz de comunicaciones 905 estan conectados y realizar una comunicacion mutua utilizando el bus del sistema 904.
El procesador 901 puede ser una unidad central de procesamiento de nucleo unico o de multiples nucleos, un circuito integrado espedfico de la aplicacion o uno o mas circuitos integrados configurados para poner en practica esta forma de realizacion de la presente invencion.
La memoria 902 puede ser una memoria RAM de alta velocidad o una memoria no volatil (non-volatile memory), tal como al menos una memoria de disco magnetico.
La memoria 902 esta configurada para memorizar una instruccion ejecutable por ordenador 903. Mas concretamente, la instruccion ejecutable por ordenador 903 puede incluir un codigo de programa.
Cuando funciona el aparato, el procesador 901 realiza la instruccion ejecutable por ordenador 903 y puede realizar el procedimiento del metodo ilustrado en la Figura 4 o el procedimiento del metodo descrito a continuacion.
S901: Recibir un paquete de acceso, en donde el paquete de acceso es un paquete para una comunicacion mutua entre el dominio primario y el dominio extendido, el paquete de acceso incluye un cuerpo de mensaje y una direccion objetivo de acceso, la direccion objetivo de acceso es una direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido, una primera direccion MMIO del dispositivo PCIe en el dominio extendido, una segunda direccion MSI del dispositivo PCIe en el dominio extendido, o una segunda direccion DMA del dispositivo PCIe en el dominio extendido, y la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido y la primera direccion MMIO del dispositivo PCIe en el dominio extendido pertenecen a la direccion de memoria del RCEP.
S902: Realizar una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion, para obtener una direccion objetivo de acceso traducida, en donde el mapeado de direccion es previamente salvaguardado en el RCEP, y el mapeado de direccion incluye una correspondencia entre la direccion de espacio de
5
10
15
20
25
30
35
40
45
50
55
configuracion y un BDF del dispositivo PCIe en el dominio extendido, un mapeado entre la primera direccion MMIO y una segunda direccion MMIO del dispositivo PCIe en el dominio extendido, un mapeado entre una primera direccion MSI y la segunda direccion MSI del dispositivo PCIe en el dominio extendido, o un mapeado entre una primera direccion DMA y la segunda direccion DMA del dispositivo PCIe en el dominio extendido.
S903: Enviar un paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye el cuerpo del mensaje y la direccion objetivo divo de acceso traducida.
Un experto en esta tecnica puede tender que cada aspecto de la presente invencion o una posible manera de puesta en practica de cada aspecto puede realizarse espedficamente como un sistema, un metodo o un producto de programa informatico. Por lo tanto, cada aspecto de la presente invencion o una posible manera de puesta en practica posible de cada aspecto puede utilizar formas de hardware solamente en sus formas de realizacion, formas de realizacion de solamente software (incluyendo firmware, software residente y similares), o formas de realizacion con una combinacion de software y hardware, que se refieren uniformemente como “circuito”, “modulo” o “sistema” en la presente descripcion. Ademas, cada aspecto de la idea inventiva o la posible manera de puesta en practica de cada aspecto puede adoptar una forma de un producto de programa informatico, en donde el producto de programa informatico se refiere a un codigo de programa legible por ordenador memorizado en un soporte legible por ordenador.
El soporte legible por ordenador puede ser un soporte de senal legible por ordenador o un soporte de memorizacion legible por ordenador. El soporte de memorizacion legible por ordenador incluye, sin limitacion, a un dispositivo, sistema o aparato electronico, magnetico, optico, electromagnetico, de infrarrojos o de semiconductores, o cualquiera de sus combinaciones adecuada, tal como una memoria de acceso aleatorio (RAM), una memoria de solamente lectura (ROM), una memoria de solamente lectura programable borrable (EPROM o memoria instantanea), una fibra optica y una memoria de solamente lectura de disco compacto (CD-ROM).
Un procesador en un ordenador efectua la lectura del codigo de programa legible por ordenador almacenado en el soporte de memorizacion legible por ordenador, de modo que el procesador pueda realizar una funcion y una accion especificada en cada etapa o una combinacion de etapas en un diagrama de flujo; se genera un aparato para poner en practica una funcion y una accion especificada en cada bloque o una combinacion de bloques en un diagrama de bloques.
Todo codigo de programa legible por ordenador puede ejecutarse en un ordenador de usuario, o algunos pueden ejecutarse en un ordenador de usuario como un paquete informatico autonomo, o algunos pueden ejecutarse en un ordenador de usuario mientras que algunos se ejecutan en un ordenador distante, o la totalidad del codigo puede ejecutarse en un ordenador distante o en un servidor. Conviene senalar que, en algunas soluciones de realizacion alternativas, cada etapa en los diagramas de flujo o funciones especificadas en cada bloque en los diagramas de bloques puede no tener lugar en el orden ilustrado. A modo de ejemplo, dos etapas consecutivas o dos bloques en la ilustracion, que son dependientes de una funcion implicada, podran, de hecho, ejecutarse practicamente al mismo tiempo o estos bloques pueden ejecutarse, a veces, en orden inverso.
Un experto en esta tecnica puede entender que, en combinacion con los ejemplos descritos en las formas de realizacion dadas a conocer en esta especificacion, las etapas de algoritmos y unidades pueden realizarse mediante hardware electronico o una combinacion de programas informaticos y hardware electronico. El hecho de que las funciones se realicen por hardware o software depende de aplicaciones particulares y de condiciones limitadoras del diseno de las soluciones tecnicas. Un experto en esta tecnica puede utilizar diferentes metodos para realizar las funciones descritas para cada aplicacion particular, pero no debe considerarse que la puesta en practica vaya mas alla del alcance de la presente invencion.
Las descripciones anteriores simplemente son maneras de puesta en practica especficas de la presente invencion, pero no estan previstas para limitar el alcance de proteccion de la presente invencion. Cualquier variacion o sustitucion facilmente consideradas por un experto en esta tecnica dentro del alcance tecnico dado a conocer en la presente invencion debera caer dentro del alcance de proteccion de la presente invencion. Por lo tanto, el alcance de proteccion de la presente invencion estara sujeto al alcance de proteccion de las reivindicaciones adjuntas.
Claims (21)
- 5101520253035404550556065REIVINDICACIONES1. Un metodo para extender un dominio de Interconexion de Componente Periferico Express PCIe, en donde el metodo se utiliza para un sistema que comprende un dominio primario (100) y un dominio extendido (118), en dondeel dominio primario comprende un complejo rafz (102) y un dispositivo PCIe (106), en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; yel dominio extendido comprende un dispositivo de punto extremo de complejo rafz (106) y un dispositivo PCIe (114, 116), en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, siendo el primer conjunto de bus diferente del segundo conjunto de bus, y el dispositivo de punto extremo de complejo rafz (106) es el dispositivo PCIe (106) en el dominio primario y un complejo rafz en el dominio extendido; yel metodo comprende:asignar (S201), una direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de una direccion de memoria del dispositivo de punto extremo de complejo rafz, y establecer (S202) una correspondencia entre la direccion de espacio de configuracion y un numero de bus/numero de dispositivo/numero de funcion BDF; yasignar (S203) a partir del segundo conjunto de bus, un numero de bus al dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar un BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, de conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un acceso al espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido.
- 2. El metodo segun la reivindicacion 1, en donde el metodo comprende, ademas:asignar, a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz, una primera direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido; yasignar, en conformidad con la primera direccion de entrada/salida mapeada en memoria, una segunda direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con un mapeado de correspondencia entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, un acceso de entrada/salida mapeado en memoria del dispositivo PCIe descubierto en el dominio extendido.
- 3. El metodo segun la reivindicacion 2, en donde la direccion de memoria del dispositivo de punto extremo de complejo rafz se refiere, mas concretamente, a una direccion de entrada/salida mapeada en memoria del dispositivo de punto extremo de complejo rafz.
- 4. El metodo segun la reivindicacion 2 o 3, en donde despues de la asignacion de una direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de una direccion de memoria del dispositivo de punto extremo de complejo rafz, el metodo comprende, ademas:descubrir el dispositivo PCIe en el dominio extendido utilizando la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido y la correspondencia entre la direccion de espacio de configuracion y el BDF.
- 5. El metodo segun cualquiera de las reivindicaciones 2 a 4, en donde el metodo comprende, ademas:salvaguardar la correspondencia entre la direccion de espacio de configuracion y el BDF en el dispositivo de punto extremo de complejo rafz, de modo que el dispositivo de punto extremo de complejo rafz pueda realizar una traduccion de direccion en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF, para poner en practica un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido.
- 6. El metodo segun cualquiera de las reivindicaciones 2 a 5, en donde la asignacion, en conformidad con la primera direccion de entrada/salida mapeada en memoria, de una segunda direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido comprende:establecer el mapeado de correspondencia entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria; yasignar, en conformidad con el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, la segunda direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido.
- 7. El metodo segun la reivindicacion 6, en donde el metodo comprende, ademas:5101520253035404550556065determinar una magnitud de un registro de direccion de base del dispositivo PCIe descubierto en el dominio extendido; yla asignacion de una primera direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido comprende: la asignacion, en conformidad con la magnitud del registro de direccion de base del dispositivo PCIe descubierto en el dominio extendido, de la primera direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido.
- 8. El metodo segun cualquiera de las reivindicaciones 1 a 7, en donde el metodo comprende, ademas:la asignacion de una primera direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz; yla asignacion de una segunda direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de interrupciones senalizadas por mensaje, con el fin de poner en practica un acceso de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje.
- 9. El metodo segun cualquiera de las reivindicaciones 1 a 7, en donde el metodo comprende, ademas:asignar una primera direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz; yasignar una segunda direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de acceso directo en memoria, con el fin de poner en practica un acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria.
- 10. El metodo segun la reivindicacion 1 cuyo metodo comprende, ademas:recibir, por el dispositivo de punto extremo de complejo rafz, un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicacion mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una direccion objetivo de acceso;realizar, por el dispositivo de punto extremo de complejo rafz, una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion, con el fin de obtener una direccion objetivo de acceso traducida, en donde el mapeado de direccion es salvaguardado previamente en el dispositivo de punto extremo de complejo rafz; yenviar, por el dispositivo de punto extremo de complejo rafz, un paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye el cuerpo del mensaje y la direccion objetivo de acceso traducida.
- 11. El metodo segun la reivindicacion 10, en donde la direccion objetivo de acceso es una direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es una correspondencia entre la direccion de espacio de configuracion y un numero de bus/numero de dispositivo/numero de funcion BDF del dispositivo PCIe en el dominio extendido; yla realizacion, por el dispositivo de punto extremo de complejo rafz, de una traduccion de direccion en la direccion objetivo de acceso en conformidad con el mapeado de direccion, con el fin de obtener una direccion objetivo de acceso traducida comprende:la realizacion, por el dispositivo de punto extremo de complejo rafz, de una traduccion de direccion en la direccion de espacio de configuracion del dispositivo PCIe en el dominio extendido en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF del dispositivo PCIe en el dominio extendido, con el fin de obtener el BDF del dispositivo PCIe en el dominio extendido.
- 12. El metodo segun la reivindicacion 10, en donde la direccion objetivo de acceso es una primera direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es una mapeado entre la primera direccion de entrada/salida mapeada en memoria y una segunda direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido; yla realizacion, por el dispositivo de punto extremo de complejo rafz, de una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion, para obtener una direccion objetivo de acceso traducida, comprende:5101520253035404550556065realizar, por el dispositivo de punto extremo de complejo ra^z, una traduccion de direccion sobre la primera direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, para obtener la segunda direccion de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido.
- 13. El metodo segun la reivindicacion 10, en donde la direccion objetivo de acceso es una segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido, y el mapeado de direccion es un mapeado entre una primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido; yla realizacion, por el dispositivo de punto extremo de complejo rafz, de una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion, con el fin de obtener una direccion objetivo de acceso traducida, comprende:realizar, por el dispositivo de punto extremo de complejo rafz, una traduccion de direccion sobre la segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido, para obtener la primera direccion de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido.
- 14. El metodo segun la reivindicacion 10, en donde la direccion objetivo de acceso es una segunda direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido y el mapeado de direccion es un mapeado entre una primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido; yla realizacion, por el dispositivo de punto extremo de complejo rafz, de una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion, para obtener una direccion objetivo de acceso traducida, comprende:realizar, por el dispositivo de punto extremo de complejo rafz, una traduccion de direccion sobre la segunda direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido, para obtener la primera direccion de acceso directo en memoria del dispositivo PCIe en el dominio extendido.
- 15. Un aparato (106) para extender un dominio de Interconexion de Componente Periferico Express PCIe, en donde el aparato se utiliza para un sistema que comprende un dominio primario y un dominio extendido, en dondeel dominio primario comprende un complejo rafz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; yel dominio extendido comprende el aparato y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio extendido tiene un segundo conjunto de bus, siendo el primer conjunto de bus diferente del segundo conjunto de bus, y el aparato es el dispositivo PCIe en el dominio primario y un complejo rafz en el dominio extendido; yel aparato comprende:una unidad de asignacion de direccion de primer tipo (701), configurada para asignar una direccion de espacio de configuracion al dispositivo PCIe en el dominio extendido a partir de una direccion de memoria de un dispositivo de punto extremo de complejo rafz, y establecer una correspondencia entre la direccion de espacio de configuracion y un numero de bus/numero de dispositivo/numero de funcion BDF; yuna unidad de asignacion de bus (702), configurada para asignar, a partir del segundo conjunto de bus, un numero de bus a un dispositivo PCIe descubierto en el dominio extendido, en donde el numero de bus se utiliza para determinar un BDF del dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con la correspondencia entre la direccion de espacio de configuracion y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un acceso de espacio de configuracion del dispositivo PCIe descubierto en el dominio extendido.
- 16. El aparato segun la reivindicacion 15, en donde el aparato comprende, ademas:una unidad de asignacion de direccion de segundo tipo (704), configurada para asignar, a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz, una primera direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido y asignar, en conformidad con la primera direccion de entrada/salida mapeada en memoria, una segunda direccion de entrada/salida mapeada en memoria para el dispositivo51015202530354045PCIe descubierto en el dominio extendido, con el fin de poner en practica, en conformidad con un mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, un acceso de entrada/salida mapeado en memoria del dispositivo PCIe descubierto en el dominio extendido.
- 17. El aparato segun la reivindicacion 16, en donde la unidad de asignacion de direccion de segundo tipo esta especficamente configurada para establecer el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, y asignar, en conformidad con el mapeado entre la primera direccion de entrada/salida mapeada en memoria y la segunda direccion de entrada/salida mapeada en memoria, la segunda direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido.
- 18. El aparato segun la reivindicacion 17, en donde la unidad de asignacion de direccion de segundo tipo esta configurada especficamente para determinar una magnitud de un registro de direccion de base del dispositivo PCIe descubierto en el dominio extendido, y asignar, en conformidad con la magnitud del registro de direccion de base del dispositivo PCIe descubierto en el dominio extendido, la primera direccion de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido.
- 19. El aparato segun cualquiera de las reivindicaciones 15 a 18, en donde el aparato comprende, ademas:una unidad de asignacion de direccion de tercer tipo (706), configurada para asignar una primera direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz, y asignar una segunda direccion de interrupciones senalizadas por mensaje al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de interrupciones senalizadas por mensaje, con el fin de poner en practica un acceso de interrupciones senalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion de interrupciones senalizadas por mensaje y la segunda direccion de interrupciones senalizadas por mensaje.
- 20. El aparato segun cualquiera de las reivindicaciones 15 a 18, en donde el aparato comprende, ademas:una unidad de asignacion de direccion de cuarto tipo (707), configurada para asignar una primera direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido a partir de la direccion de memoria del dispositivo de punto extremo de complejo rafz, y asignar una segunda direccion de acceso directo en memoria al dispositivo PCIe en el dominio extendido en conformidad con la primera direccion de acceso directo en memoria, con el fin de poner en practica un acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera direccion de acceso directo en memoria y la segunda direccion de acceso directo en memoria.
- 21. El aparato segun la reivindicacion 15, cuyo aparato comprende, ademas:una unidad de recepcion, configurada para recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicacion mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una direccion objetivo de acceso;una unidad de traduccion, configurada para realizar una traduccion de direccion sobre la direccion objetivo de acceso en conformidad con un mapeado de direccion previamente salvaguardado, para obtener una direccion objetivo de acceso traducida; yuna unidad de envfo, configurada para enviar un paquete de acceso analogico correspondiente al paquete de acceso, en donde el paquete de acceso analogico incluye el cuerpo del mensaje y la direccion objetivo de acceso traducida.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2013/091227 WO2015100672A1 (zh) | 2013-12-31 | 2013-12-31 | 一种扩展PCIe总线域的方法和装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2640452T3 true ES2640452T3 (es) | 2017-11-03 |
Family
ID=52258899
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13899977.6T Active ES2640452T3 (es) | 2013-12-31 | 2013-12-31 | Método y aparato para extender el dominio de bus PCIE |
| ES17166632T Active ES2761927T3 (es) | 2013-12-31 | 2013-12-31 | Método y aparato para extender el dominio PCIE |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17166632T Active ES2761927T3 (es) | 2013-12-31 | 2013-12-31 | Método y aparato para extender el dominio PCIE |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US9690739B2 (es) |
| EP (5) | EP4089544B1 (es) |
| CN (1) | CN104285218B (es) |
| ES (2) | ES2640452T3 (es) |
| NO (1) | NO2927812T3 (es) |
| WO (1) | WO2015100672A1 (es) |
Families Citing this family (60)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9830289B2 (en) | 2014-09-16 | 2017-11-28 | Apple Inc. | Methods and apparatus for aggregating packet transfer over a virtual bus interface |
| US9971397B2 (en) | 2014-10-08 | 2018-05-15 | Apple Inc. | Methods and apparatus for managing power with an inter-processor communication link between independently operable processors |
| KR102255216B1 (ko) * | 2014-11-20 | 2021-05-24 | 삼성전자주식회사 | Pci 장치와 이를 포함하는 pci 시스템 |
| US10042794B2 (en) | 2015-06-12 | 2018-08-07 | Apple Inc. | Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link |
| ES2726302T3 (es) * | 2015-09-21 | 2019-10-03 | Huawei Tech Co Ltd | Sistema informático y procedimiento para acceder a un dispositivo de punto extremo del mismo |
| US10061707B2 (en) * | 2015-12-26 | 2018-08-28 | Intel Corporation | Speculative enumeration of bus-device-function address space |
| US10085214B2 (en) | 2016-01-27 | 2018-09-25 | Apple Inc. | Apparatus and methods for wake-limiting with an inter-device communication link |
| US10558580B2 (en) | 2016-02-29 | 2020-02-11 | Apple Inc. | Methods and apparatus for loading firmware on demand |
| US10877915B2 (en) | 2016-03-04 | 2020-12-29 | Intel Corporation | Flattening portal bridge |
| US10198364B2 (en) | 2016-03-31 | 2019-02-05 | Apple Inc. | Memory access protection apparatus and methods for memory mapped access between independently operable processors |
| US10775871B2 (en) | 2016-11-10 | 2020-09-15 | Apple Inc. | Methods and apparatus for providing individualized power control for peripheral sub-systems |
| US10551902B2 (en) * | 2016-11-10 | 2020-02-04 | Apple Inc. | Methods and apparatus for providing access to peripheral sub-system registers |
| CN106776382B (zh) * | 2016-12-02 | 2020-03-17 | 北京东土军悦科技有限公司 | 一种pcie设备的配置方法及装置 |
| CN111897751B (zh) * | 2017-01-26 | 2024-10-18 | 华为技术有限公司 | 一种数据传输的方法、装置、设备和系统 |
| US10402355B2 (en) | 2017-02-08 | 2019-09-03 | Texas Instruments Incorporated | Apparatus and mechanism to bypass PCIe address translation by using alternative routing |
| JP6704127B2 (ja) * | 2017-04-07 | 2020-06-03 | パナソニックIpマネジメント株式会社 | 情報処理装置 |
| CN107045486B (zh) * | 2017-04-12 | 2020-01-31 | 福州瑞芯微电子股份有限公司 | 一种PCIe安全域广播方法以及系统 |
| US10956245B1 (en) * | 2017-07-28 | 2021-03-23 | EMC IP Holding Company LLC | Storage system with host-directed error scanning of solid-state storage devices |
| US10346226B2 (en) | 2017-08-07 | 2019-07-09 | Time Warner Cable Enterprises Llc | Methods and apparatus for transmitting time sensitive data over a tunneled bus interface |
| US10331612B1 (en) | 2018-01-09 | 2019-06-25 | Apple Inc. | Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors |
| US11381514B2 (en) | 2018-05-07 | 2022-07-05 | Apple Inc. | Methods and apparatus for early delivery of data link layer packets |
| US10430352B1 (en) | 2018-05-18 | 2019-10-01 | Apple Inc. | Methods and apparatus for reduced overhead data transfer with a shared ring buffer |
| CN108777634B (zh) * | 2018-05-24 | 2021-05-07 | 许继电气股份有限公司 | 一种PCIe交换机及其端点地址空间分配方法 |
| CN108959127B (zh) | 2018-05-31 | 2021-02-09 | 华为技术有限公司 | 地址转换方法、装置及系统 |
| US10585699B2 (en) | 2018-07-30 | 2020-03-10 | Apple Inc. | Methods and apparatus for verifying completion of groups of data transactions between processors |
| JP7115128B2 (ja) * | 2018-08-07 | 2022-08-09 | 富士通株式会社 | 情報処理装置、ブート方法及びブートプログラム |
| US11614986B2 (en) * | 2018-08-07 | 2023-03-28 | Marvell Asia Pte Ltd | Non-volatile memory switch with host isolation |
| US11544000B2 (en) | 2018-08-08 | 2023-01-03 | Marvell Asia Pte Ltd. | Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services |
| US10719376B2 (en) | 2018-08-24 | 2020-07-21 | Apple Inc. | Methods and apparatus for multiplexing data flows via a single data structure |
| CN109324899B (zh) * | 2018-09-10 | 2022-05-20 | 中国电子科技集团公司电子科学研究院 | 基于PCIe池化硬件资源的编址方法、装置及主控节点 |
| US10789110B2 (en) | 2018-09-28 | 2020-09-29 | Apple Inc. | Methods and apparatus for correcting out-of-order data transactions between processors |
| US10838450B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Methods and apparatus for synchronization of time between independently operable processors |
| CN109343905B (zh) * | 2018-10-08 | 2021-07-06 | 郑州云海信息技术有限公司 | 一种pcie资源配置系统和方法 |
| CN109656630B (zh) * | 2018-12-27 | 2021-09-17 | 龙芯中科技术股份有限公司 | 配置空间的访问方法、装置、架构及储存介质 |
| US10853284B1 (en) * | 2019-07-22 | 2020-12-01 | Vmware, Inc. | Supporting PCI-e message-signaled interrupts in computer system with shared peripheral interrupts |
| CN112306913B (zh) * | 2019-07-30 | 2023-09-22 | 华为技术有限公司 | 一种端点设备的管理方法、装置及系统 |
| CN112306624B (zh) * | 2019-07-31 | 2024-11-22 | 华为技术有限公司 | 一种信息处理方法、物理机和pcie设备 |
| CN110795374B (zh) * | 2019-10-16 | 2021-06-11 | 苏州浪潮智能科技有限公司 | 一种设备访问的方法、装置及可读存储介质 |
| US11899550B2 (en) * | 2020-03-31 | 2024-02-13 | Advantest Corporation | Enhanced auxiliary memory mapped interface test systems and methods |
| CN112511424B (zh) * | 2020-05-15 | 2024-11-19 | 中兴通讯股份有限公司 | 转发和转发报文的方法、头节点、转发节点、存储介质 |
| CN111679997B (zh) * | 2020-05-29 | 2023-06-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多个pci/pci-e接口系统的设备管理方法 |
| CN113986800B (zh) * | 2020-07-10 | 2025-01-10 | 华为技术有限公司 | 多处理器系统及配置多处理器系统的方法 |
| CN114006875B (zh) * | 2020-07-13 | 2026-04-07 | 华为技术有限公司 | 扩展PCIe系统的方法、PCIe交换设备及PCIe系统 |
| CN111858407B (zh) * | 2020-07-14 | 2021-12-07 | 中航航空电子有限公司 | 高速外围设备互连系统内的通信方法及高速外围设备互连系统 |
| CN114153771A (zh) * | 2020-08-18 | 2022-03-08 | 许继集团有限公司 | 一种pcie总线系统及ep设备获取总线上其它设备信息的方法 |
| EP4352618A4 (en) | 2021-06-09 | 2025-04-23 | Enfabrica Corporation | Multi-level and multi-protocol storage switch with configurable transport |
| CN115617730A (zh) * | 2021-07-16 | 2023-01-17 | 超聚变数字技术有限公司 | Pcie设备管理方法、装置、计算机设备以及存储介质 |
| US12470518B2 (en) * | 2021-08-23 | 2025-11-11 | Nvidia Corporation | Physically distributed control plane firewalls with unified software view |
| CN115878529A (zh) * | 2021-09-26 | 2023-03-31 | 华为技术有限公司 | 分配pcie设备标识的方法、装置及相关设备 |
| US11914543B2 (en) * | 2021-12-06 | 2024-02-27 | Arm Limited | PCIe communications |
| US11797368B2 (en) * | 2022-01-27 | 2023-10-24 | Hewlett Packard Enterprise Development Lp | Attributing errors to input/output peripheral drivers |
| CN115114219B (zh) * | 2022-07-22 | 2023-10-20 | 深圳星云智联科技有限公司 | 一种pci-e拓扑方法、装置、设备及存储介质 |
| CN115525489B (zh) * | 2022-09-28 | 2025-08-29 | 苏州浪潮智能科技有限公司 | 一种pcie卡的寄存器数据自动获取方法、系统、装置及介质 |
| CN115543894B (zh) * | 2022-11-30 | 2023-05-26 | 苏州浪潮智能科技有限公司 | 存储系统、数据处理方法及装置、存储介质及电子设备 |
| CN116303148B (zh) * | 2023-05-17 | 2023-08-22 | 北京中科网威信息技术有限公司 | 多插槽设备网卡探测方法、装置、电子设备及存储介质 |
| CN116644010B (zh) * | 2023-06-09 | 2025-06-24 | 广东浪潮智慧计算技术有限公司 | 一种数据处理方法、装置、设备及介质 |
| US12499064B2 (en) | 2023-07-29 | 2025-12-16 | Nxp Usa, Inc. | System and method to facilitate access by a remote computer to a PCIe configuration space |
| US20250130967A1 (en) * | 2023-10-20 | 2025-04-24 | Stratus Technologies Ireland Ltd. | Systems and methods to preconfigure a hardware module |
| US12417154B1 (en) | 2025-01-22 | 2025-09-16 | Enfabrica Corporation | Input/output system interconnect redundancy and failover |
| CN121029665B (zh) * | 2025-10-29 | 2026-03-03 | 苏州元脑智能科技有限公司 | 数据处理装置及其控制方法、初始化方法和初始化装置 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6418494B1 (en) * | 1998-10-30 | 2002-07-09 | Cybex Computer Products Corporation | Split computer architecture to separate user and processor while retaining original user interface |
| US7334071B2 (en) * | 2005-05-25 | 2008-02-19 | Integrated Device Technology, Inc. | Expansion of cross-domain addressing for PCI-express packets passing through non-transparent bridge |
| US7836238B2 (en) | 2006-12-19 | 2010-11-16 | International Business Machines Corporation | Hot-plug/remove of a new component in a running PCIe fabric |
| US7562176B2 (en) * | 2007-02-28 | 2009-07-14 | Lsi Corporation | Apparatus and methods for clustering multiple independent PCI express hierarchies |
| CN101242371B (zh) * | 2008-03-14 | 2010-11-10 | 杭州华三通信技术有限公司 | 基于PCIe交换架构路由器堆叠的方法、系统和装置 |
| JP2011517497A (ja) * | 2008-03-25 | 2011-06-09 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | Pcieのsr−iov機能をレガシー機能として現出するように変換するシステム及び方法 |
| US20110167190A1 (en) * | 2008-09-02 | 2011-07-07 | Hung-Ming Lin | Apparatus and method for distant bus extended system |
| US8429325B1 (en) * | 2010-08-06 | 2013-04-23 | Integrated Device Technology Inc. | PCI express switch and method for multi-port non-transparent switching |
| US8930609B2 (en) | 2010-08-18 | 2015-01-06 | Intel Corporation | Method, apparatus, and system for manageability and secure routing and endpoint access |
| US20130346655A1 (en) * | 2012-06-22 | 2013-12-26 | Advanced Micro Devices, Inc. | Bus agent capable of supporting extended atomic operations and method therefor |
| CN103092798B (zh) | 2012-12-28 | 2016-05-25 | 华为技术有限公司 | 片上系统及总线下的访问设备的方法 |
| CN103117929B (zh) * | 2013-01-31 | 2015-12-23 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及系统 |
| US9135200B2 (en) | 2013-06-28 | 2015-09-15 | Futurewei Technologies, Inc. | System and method for extended peripheral component interconnect express fabrics |
| WO2015035574A1 (zh) * | 2013-09-11 | 2015-03-19 | 华为技术有限公司 | 一种故障处理的方法、计算机系统和装置 |
-
2013
- 2013-12-31 EP EP22155193.0A patent/EP4089544B1/en active Active
- 2013-12-31 WO PCT/CN2013/091227 patent/WO2015100672A1/zh not_active Ceased
- 2013-12-31 NO NO13899977A patent/NO2927812T3/no unknown
- 2013-12-31 ES ES13899977.6T patent/ES2640452T3/es active Active
- 2013-12-31 EP EP22155035.3A patent/EP4092540B1/en active Active
- 2013-12-31 ES ES17166632T patent/ES2761927T3/es active Active
- 2013-12-31 EP EP13899977.6A patent/EP2927812B1/en active Active
- 2013-12-31 CN CN201380002531.8A patent/CN104285218B/zh active Active
- 2013-12-31 EP EP19186711.8A patent/EP3629186B1/en active Active
- 2013-12-31 EP EP17166632.4A patent/EP3264280B1/en active Active
-
2015
- 2015-06-26 US US14/752,099 patent/US9690739B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| ES2761927T3 (es) | 2020-05-21 |
| EP3629186B1 (en) | 2022-02-23 |
| EP3264280A1 (en) | 2018-01-03 |
| EP3629186A1 (en) | 2020-04-01 |
| CN104285218A (zh) | 2015-01-14 |
| NO2927812T3 (es) | 2017-12-30 |
| EP4089544A1 (en) | 2022-11-16 |
| EP4092540A1 (en) | 2022-11-23 |
| WO2015100672A1 (zh) | 2015-07-09 |
| EP2927812A4 (en) | 2016-04-13 |
| EP2927812B1 (en) | 2017-08-02 |
| CN104285218B (zh) | 2017-02-15 |
| EP4092540B1 (en) | 2024-01-31 |
| US20150293873A1 (en) | 2015-10-15 |
| EP3264280B1 (en) | 2019-09-18 |
| EP4089544B1 (en) | 2024-01-31 |
| EP2927812A1 (en) | 2015-10-07 |
| US9690739B2 (en) | 2017-06-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2640452T3 (es) | Método y aparato para extender el dominio de bus PCIE | |
| ES2642829T3 (es) | Sistema y procedimiento para estructuras extendidas de interconexión de componentes periféricos exprés | |
| US8683110B2 (en) | I/O system and I/O control method | |
| US9423958B2 (en) | System and method for managing expansion read-only memory and management host thereof | |
| JP7744469B2 (ja) | 周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) | |
| JP6753412B2 (ja) | コンピュータ、デバイス割当管理方法及びプログラム | |
| CN105993009A (zh) | 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置 | |
| US9684530B2 (en) | System and method for assigning virtual functions and management host thereof | |
| US10467179B2 (en) | Method and device for sharing PCIe I/O device, and interconnection system | |
| CN105320628A (zh) | 使能单根i/o设备多根共享的适配装置、系统及方法 | |
| ES2726302T3 (es) | Sistema informático y procedimiento para acceder a un dispositivo de punto extremo del mismo | |
| JP2010152892A (ja) | ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート | |
| US9639489B2 (en) | I/O device sharing system and I/O device sharing method | |
| TWI791134B (zh) | 通信裝置、資訊處理系統及通信方法 | |
| CN108255597A (zh) | 基于物理功能的mac地址分配虚拟功能的mac地址方法 | |
| CN105389275B (zh) | 基于AMBA架构的虚拟PCIe‑PCI桥接系统 | |
| JP6597925B1 (ja) | 情報処理システム | |
| TWI615720B (zh) | 資源分配系統、設備分配控制器以及設備識別方法 |