ES2761927T3 - Método y aparato para extender el dominio PCIE - Google Patents
Método y aparato para extender el dominio PCIE Download PDFInfo
- Publication number
- ES2761927T3 ES2761927T3 ES17166632T ES17166632T ES2761927T3 ES 2761927 T3 ES2761927 T3 ES 2761927T3 ES 17166632 T ES17166632 T ES 17166632T ES 17166632 T ES17166632 T ES 17166632T ES 2761927 T3 ES2761927 T3 ES 2761927T3
- Authority
- ES
- Spain
- Prior art keywords
- address
- pcie device
- domain
- extended domain
- access
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/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; CALCULATING OR 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; CALCULATING OR 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 acceder a un dominio de interconexión de componente periférico exprés PCIe, en donde el método se utiliza para un sistema que comprende un dominio primario y un dominio extendido, en donde el dominio primario comprende un complejo raíz y un dispositivo PCIe, 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 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz en el dominio extendido; y el método comprende: recibir (S601), por el dispositivo de punto extremo de complejo raíz, un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una dirección objetivo de acceso; realizar (S602), mediante el dispositivo de punto extremo de complejo raíz, la traducción de dirección en la dirección objetivo de acceso de conformidad con un mapeado de dirección, para obtener una dirección objetivo de acceso traducida, en la que el mapeado de dirección se guarda previamente en el dispositivo de punto extremo de complejo raíz; y enviar (S603), por el dispositivo de punto extremo de complejo raíz, un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye el cuerpo del mensaje y la dirección objetivo de acceso traducida.
Description
DESCRIPCIÓN
Método y aparato para extender el dominio PCIE
CAMPO DE LA INVENCIÓN
Las formas de realización de la presente invención se refieren a tecnologías informáticas, y en particular, a un método y un aparato para extender un dominio PCIe.
ANTECEDENTES DE LA INVENCIÓN
Una tecnología de bus de Interconexión de Componente Periférico Express (Peripheral Component Interconnect Express, PCIe) es una tecnología de bus de alto rendimiento que se utiliza para la interconexión entre un procesador y un dispositivo periférico. Un bus de PCIe utiliza una conexión serie, punto a punto, puede proporcionar una más alta velocidad de conexión con menos líneas 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 portátil, un servidor, una estación de comunicaciones y una estación de trabajo, y dispositivos similares.
Un dominio PCIe suele incluir un complejo raíz (Root Complex), un conmutador (Switch), un punto extremo (Endpoint) y un puente (PCIe bridge). El complejo raíz se utiliza para la conexión entre un procesador y un dispositivo de entrada/salida I/O; el conmutador soporta comunicaciones de análogos entre diferentes puntos extremos; el puente se utiliza para conectar el PCIe a otro bus de PCI estándar (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 máximo, 256 buses PCIe; cada bus PCIe incluye 32 números de dispositivo PCIe como máximo; cada número de dispositivo incluye ocho números de función como máximo; cada número de función corresponde a un dispositivo PCIe como máximo. Por lo tanto, un sistema de dominio PCIe existente, el número de dispositivos PCIe está restringido por 256 buses.
El documento US 8429325 B1 se refiere a un conmutador PCIe para enrutar paquetes exprés en una interconexión de componentes periféricos. El conmutador PCIe comprende una pluralidad de puertos que incluyen un puerto origen y una pluralidad de puertos de destino, comprendiendo el puerto origen un punto extremo no transparente origen asociado con un dominio de jerarquía de bus origen, estando el punto extremo no transparente origen configurado para recibir un paquete de demanda que incluye una dirección de destino y un identificador de demandante. El conmutador PCIe está configurado para identificar una entrada en una tabla de traducción de direcciones basada en la dirección de destino, incluyendo dicha entrada una dirección base traducida y un identificador de dominio de destino que identifica un dominio de jerarquía de bus de destino desde entre una pluralidad de dominios de jerarquía de bus de destino, para generar un identificador del demandante traducido para identificar el identificador del demandante y el dominio de jerarquía del bus origen, para generar una dirección traducida utilizando la dirección base traducida de la entrada en la tabla de traducción de direcciones, y para generar un paquete de demanda traducido basado en el paquete de demanda, incluyendo el paquete de demanda traducido el identificador del demandante traducido y la dirección traducida. El conmutador PCIe comprende, además, una interconexión no transparente acoplada a la pluralidad de puertos y configurada para enrutar el paquete de demanda traducido a un punto extremo no transparente de destino asociado con el dominio de jerarquía del bus de destino en un puerto de destino de la pluralidad de puertos basado en el identificador del dominio de destino.
SUMARIO DE LA INVENCIÓN
Las formas de forma de realización de la presente invención están definidas por las reivindicaciones. Se dan a conocer un método y un aparato para acceder a un dominio de interconexión de componente periférico exprés PCIe, que puede extender un dominio PCIe.
En las formas de realización de la presente invención, una dirección de espacio de configuración puede asignarse a un dispositivo PCIe en un dominio extendido a partir de una dirección de memoria de un dispositivo de punto extremo de complejo raíz, 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 puede establecerse, y un número 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 número 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 dirección de espacio de configuración y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un registro de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, que pone en práctica el acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, realiza una extensión de un dominio de PCIe y resuelve un problema en la técnica anterior de que un dominio PCIe no puede extenderse, de modo que el número de dispositivos PCIe en un sistema no esté restringido por 256 buses, con lo que se realiza la comunicación para el dominio extendido.
En las formas de realización de la presente invención, el dispositivo de punto extremo de complejo raíz puede recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación mutua entre un dominio primario y un dominio extendido; realizar una traducción de dirección sobre una dirección objetivo de acceso del paquete de acceso en conformidad con un mapeado de dirección previamente salvaguardado, a modo de ejemplo, traducir una dirección de
memoria del dominio primario en una dirección de memoria del dominio extendido; y enviar un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye una dirección 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 extensión de un dominio de PCIe, y se pone en práctica una comunicación entre el dominio extendido y el dominio primario.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Para describir las soluciones técnicas en las formas de realización de la presente invención con mayor claridad, a continuación se describen brevemente los dibujos adjuntos requeridos para describir las formas de realización o la técnica anterior. Evidentemente, los dibujos adjuntos en la siguiente descripción ilustran simplemente algunas formas de realización de la presente invención y un experto en esta técnica puede obtener todavía 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 realización de la presente invención;
La Figura 2 es un diagrama de flujo de un método en conformidad con una forma de realización de la presente invención;
La Figura 3A y la Figura 3B son un diagrama de flujo de otro método en conformidad con una forma de realización de la presente invención;
La Figura 4 es un diagrama de asignación de una dirección de memoria en conformidad con una forma de realización de la presente invención;
La Figura 5 ilustra un árbol de recursos de entrada/salida mapeados en memoria de un dominio extendido en conformidad con una forma de realización de la presente invención;
La Figura 6 es un diagrama de flujo de un aparato en conformidad con una forma de realización de la presente invención;
La Figura 7 es un diagrama de composición de un aparato en conformidad con una forma de realización de la presente invención;
La Figura 8 es un diagrama de composición de otro aparato en conformidad con una forma de realización de la presente invención; y
La Figura 9 es un diagrama de composición estructural esquemático de otro aparato en conformidad con una forma de realización de la presente invención.
DESCRIPCIÓN DETALLADA DE LAS FORMAS DE REALIZACIÓN
Las formas de realización de la presente invención dan a conocer un método y un aparato para extender un dominio de PCIe, que puede extender un dominio de PCIe, poner en práctica una comunicación entre un dominio de PCIe primario y el dominio de PCIe extendido, y resolver un problema en la técnica anterior de que un dominio PCIe no se puede extender, de modo que el número de dispositivos PCIe en un sistema no esté restringido por 256 buses. La Figura 1 ilustra un ejemplo de un sistema en las formas de realización de la presente invención. El sistema incluye un dominio PCIe primario 100 (brevemente referido como un dominio primario 100 posteriormente por conveniencia de descripción) y el dominio primario 100 incluye un complejo raíz (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 raíz 102 está conectado a un puerto de flujo ascendente 104A del conmutador 104 utilizando un puerto raíz 103; puertos de flujo descendente 104B y 104C del conmutador 104 están conectados al dispositivo de punto extremo 106 y al dispositivo de punto extremo 108; el complejo raíz 102 puede integrarse en una unidad CPU 101 en el sistema, y la unidad CPU 101 puede ser un conjunto de múltiples unidades CPUs. El complejo raíz 102 está 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 configuración, un paquete de acceso de interrupciones señalizadas 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 está 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 raíz único. Los dispositivos de punto extremo 106 y 108 tienen funciones de iniciación de una demanda y de realización de la gestión de transacción 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 realización, el dominio primario 100 puede incluir, además, múltiples conmutadores; y cada conmutador puede conectarse a uno o más 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 raíz 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 instrucción del sistema, la unidad CPU 101 puede cargar un controlador de dispositivo del complejo raíz 102, y asignar una dirección 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 comunicación mutua entre la unidad CPU 101 y los dispositivos PCIe en el dominio primario y la comunicación mutua entre los dispositivos PCIe en el dominio primario. Más concretamente, las direcciones de memoria asignada a los dispositivos PCIe en el dominio primario pueden clasificarse en cuatro tipos, esto es, una dirección de espacio de configuración, una dirección MMIO, una dirección MSI y una dirección DMA; por lo tanto, la unidad CPU 101 puede realizar un acceso de espacio de configuración y un acceso MMIO de los dispositivos PCIe en el dominio primario utilizando las direcciones de espacio de configuración 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 práctica un acceso mutuo entre los dispositivos PCIe; los dispositivos PCIe en el dominio primario pueden demandar también interrupciones señalizadas por mensaje desde la unidad CPU utilizando direcciones MSI.
Además, por conveniencia de descripción, 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 máximo, y el número de dispositivos PCIe en el dominio primario está restringido por 256 buses.
En las formas de realización de la presente invención, para extender un dominio PCIe de modo que el número de dispositivos PCIe en el sistema no esté restringido, se realiza una ampliación de función 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 raíz (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 descripción), en donde el RCEP 106 sirve como un dispositivo de punto extremo en el dominio primario 100 y sirve también como un complejo raíz en el dominio extendido 118, es decir, el RCEP 106 no solamente puede iniciar un paquete de acceso y completar la gestión de transacción de PCIe, sino que también puede gestionar y reenviar un paquete de acceso entre el dominio extendido 118 y el dominio primario 100, con lo que se realiza una conexión de comunicación entre el dominio primario y el dominio extendido. Según 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 más dispositivos de punto extremo en el dominio extendido y dos dispositivos de punto extremo se utilizan como un ejemplo en las formas de realización de la presente invención). Los dispositivos de punto extremo 114 y 116 están conectados a un dispositivo puente 110 en el RCEP 106 utilizando el conmutador 112. Pueden existir múltiples puertos raíces 110 y múltiples conmutadores 112 en el dominio extendido 118, y la Figura 1 es solamente un ejemplo de las formas de realización de la presente invención. 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 extensión utilizando el RCEP en el sistema, y el número de dispositivos PCIe en el sistema puede aumentarse, de modo que el número de dispositivos PCIe en el sistema no esté restringido por 256 buses.
Además, en el sistema ilustrado en la Figura 1, el RCEP 106 está 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 realización de la presente invención, un controlador de dispositivos del RCEP 106 puede configurarse también a este respecto. A continuación, cuando se ejecuta una instrucción del sistema, a modo de ejemplo, la ejecución de una instrucción de un sistema operativo o un sistema de entrada/salida básico 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 dirección de espacio de configuración al dispositivo PCIe en el dominio extendido a partir de una dirección de memoria del RCEP 106, estableciendo 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 asignando un número de bus a un 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 acceder, utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, a un registro de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, con lo que se pone en práctica un acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, se realiza la extensión de un dominio PCIe, se realiza la comunicación entre la unidad CPU o el dominio primario y el dominio extendido, y se resuelve el problema en la técnica anterior de que un dominio PCIe no puede extenderse, de modo que el número de dispositivos PCIe en el sistema no esté restringido por 256 buses.
Además, en las formas de realización de la presente invención, puede realizarse también una ampliación de la función en el RCEP 106, de modo que el RCEP 106 pueda ejecutar el método siguiente: recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación mutua entre el dominio primario y el dominio extendido; realizar una traducción de dirección sobre una dirección objetivo de acceso del paquete de acceso en conformidad con un mapeado de dirección previamente salvaguardado, a modo de ejemplo, traducir una dirección de memoria del dominio primario en una dirección de memoria del dominio extendido; y enviar un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye una dirección 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 práctica la comunicación entre la unidad CPU en el sistema o el dominio primario y el dominio extendido.
Para conocer más detalles de una manera de puesta en práctica específica, es preciso referirse a las formas de realización siguientes.
Método para extender un dominio PCIe
Con referencia al sistema ilustrado en la Figura 1, una forma de realización de la presente invención da a conocer un método para extender un dominio PCIe. Según se ilustra en la Figura 2, el método se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo raíz 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 raíz 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz en el dominio extendido. El método incluye:
S201: Asignar una dirección de espacio de configuración al dispositivo PCIe en el dominio extendido a partir de una dirección de memoria del RCEP.
Un dominio de PCIe se extiende utilizando el RCEP en el sistema, y el RCEP está 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 dirección de memoria puede asignarse como la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido a partir de la dirección 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 configuración, la dirección de espacio de configuración 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 configuración posterior del dispositivo PCIe en el dominio extendido.
S202: Establecer 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.
El dominio extendido incluye el segundo conjunto de bus; cada número de bus en el segundo conjunto de bus puede incluir 32 números de dispositivo como máximo; cada número de dispositivo puede incluir 8 números de función como máximo; un número de bus/número de dispositivo/número de función (Bus number/Device number/Function number, BDF) en el dominio extendido puede determinarse en conformidad con el número de bus, el número de dispositivo y el número de función.
Puesto que cada número de función corresponde a un dispositivo PCIe como máximo, un registro de espacio de configuración 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 configuración del dispositivo PCIe en el dominio extendido. Por lo tanto, se establece una correspondencia entre la dirección de espacio de configuración y el BDF, es decir, una correspondencia entre la dirección de espacio de configuración y el registro de espacio de configuración del dispositivo PCIe en el dominio extendido se establece a este respecto de modo que el acceso de espacio de configuración del dispositivo PCIe en el dominio extendido pueda realizarse de conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF y utilizando la dirección de espacio de configuración 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 número de bus a un 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, en 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 de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido.
El número de bus se asigna a partir del segundo conjunto de bus al dispositivo PCIe descubierto en el dominio extendido; un número de dispositivo (Device Number) y un número de función (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 número de bus, con el fin de determinar una dirección de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, de modo que cuando un acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido se realice posteriormente, se puede realizar una traducción de dirección de conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF y utilizando la dirección de espacio de configuración 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 configuración 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 práctica el acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido.
En esta forma de realización de la presente invención, la dirección de espacio de configuración se asigna al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del RCEP, la correspondencia entre la dirección de
espacio de configuración y el número de bus/número de dispositivo/número de función BDF que se establece a este respecto y el número 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 número 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 dirección de espacio de configuración y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, el registro de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, que pone en práctica el acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, realiza la extensión de un dominio PCIe, pone en práctica la comunicación entre la unidad CPU o el dominio primario y el dominio extendido, y resuelve un problema en la técnica anterior de que un dominio PCIe no puede extenderse, de modo que el número de dispositivos PCIe en el sistema no esté restringido por 256 buses.
Formas de realización específicas
Con referencia al sistema ilustrado en la Figura 1, una forma de realización de la presente invención da a conocer un método para extender un dominio PCIe. Según se ilustra en la Figura 3A y la Figura 3B, el método se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo raíz 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 raíz 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz en el dominio extendido; el método puede ejecutarse por una unidad CPU en el sistema, y el método incluye:
S301: Asignar una dirección de espacio de configuración al dispositivo PCIe en el dominio extendido a partir de una dirección de memoria del RCEP.
El RCEP está 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 dirección como una primera dirección de memoria del dispositivo PCIe en el dominio a partir de la dirección de memoria del RCEP; cuando una dirección objetivo incluida en un paquete de acceso está en un intervalo de direcciones de la primera dirección 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 dirección de memoria del RCEP incluye una dirección de espacio de configuración del RCEP y una dirección MMIO del RCEP, y en correspondencia, la primera dirección de memoria del dispositivo PCIe en el dominio extendido puede incluir una primera dirección de espacio de configuración (brevemente referida como una dirección de espacio de configuración del dispositivo PCIe en el dominio siguiente) y una primera dirección MMIO. Cuando la dirección objetivo está en un intervalo de direcciones de la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido, ello indica que el acceso de espacio de configuración del dispositivo PCIe en el dominio ha de realizarse; cuando la dirección objetivo está en un intervalo de direcciones de la primera dirección 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 asignación de dirección, la dirección de espacio de configuración puede asignarse a partir de la dirección 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 configuración 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 máximo; cada bus tiene 32 números de dispositivo como máximo; cada número de dispositivo incluye 8 números de función como máximo; cada número de función está asociado con un dispositivo PCIe como máximo, una magnitud del espacio de configuración de cada dispositivo PCIe es 4K; por lo tanto, un valor máximo de una magnitud de una dirección de espacio de configuración 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 número de dispositivos PCIe en el dominio extendido no pueda determinarse, una dirección de espacio de configuración que tiene una magnitud de 256 M puede asignarse al dispositivo PCIe en el dominio extendido. A modo de ejemplo, según se ilustra en la Figura 4, la dirección MMIO del RCEP es [8G, 12G] y la dirección de espacio de configuración asignada al dispositivo PCIe en el dominio extendido puede ser [8G 256M, 8G+ 512M].
El método anterior es una manera de puesta en práctica opcional. Por supuesto, en otra forma de realización, una dirección de espacio de configuración puede asignarse al dispositivo PCIe en el dominio extendido a partir de otra dirección de memoria del RCEP, y la magnitud de la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido posiblemente no es 256M, lo que no está limitado en esta forma de realización de la presente invención.
S302: Establecer una correspondencia entre la dirección de espacio de configuración y un BDF.
El dispositivo PCIe en el dominio extendido corresponde a un BDF, y un registro de espacio de configuración 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 configuración del dispositivo PCIe en el dominio extendido. Por lo tanto, se establece la correspondencia entre la dirección de espacio de configuración y el BDF, es decir, una correspondencia entre la dirección
de espacio de configuración y el registro de espacio de configuración del dispositivo PCIe en el dominio extendido se establece a este respecto, de modo que, posteriormente, el registro de espacio de configuración del dispositivo PCIe en el dominio extendido pueda ser objeto de acceso de conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF y utilizando la dirección de espacio de configuración, con el fin de descubrir del dispositivo PCIe en el dominio extendido.
El establecimiento de la correspondencia entre la dirección de espacio de configuración y el BDF puede referirse para establecer una correspondencia entre cada dirección de memoria de 4K en la dirección de espacio de configuración y cada BDF en el dominio extendido. Más concretamente, cuando la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido es [dirección inicial, dirección inicial 256M], [dirección inicial, dirección inicial 4K] puede corresponder a BDF = 00:00.0 en el dominio extendido, y [dirección inicial 4K, dirección inicial 8K] puede corresponder a BDF = 00:00.1, y por analogía [dirección inicial 256M - 4K, dirección inicial 256M] corresponde a BDF = FF:1 F:7. A modo de ejemplo, según se ilustra en la Figura 4, la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido es [8G 256M, 8G 512M], y se establece una correspondencia entre la dirección espacio de configuración y el BDF, de modo que la dirección de espacio de configuración [8G 256M, 8G 256M 4K] corresponde a BDF = 00:00.0, lo que indica que una dirección de espacio de configuración del dispositivo PCIe asociado con la 0-ésima función del 0-ésimo dispositivo en el 0-ésimo 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 Bd F = 00:00.3 y por analogía, [8G 512M - 4K, 8G 512M] corresponde a BDF = FF:1 F.7.
En esta forma de realización de la presente invención, la correspondencia anterior entre la dirección de espacio de configuración y el BDF es solamente a modo de ejemplo, y por supuesto, se puede establecerse otra correspondencia entre la dirección de espacio de configuración y el BDF, lo que no está limitado en esta forma de realización de la presente invención.
S303: Salvaguardar la correspondencia entre la dirección de espacio de configuración y el BDF en el RCEP, de modo que el RCEP pueda realizar la traducción de dirección en conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF, para poner en práctica el acceso de espacio de configuración del dispositivo PCIe en el dominio extendido.
Cuando la unidad CPU realiza el acceso de espacio de configuración 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 después de que el RCEP realice la traducción de dirección sobre una dirección objetivo de acceso del paquete de acceso; de este modo, la correspondencia entre la dirección de espacio de configuración 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 traducción de dirección en conformidad con la correspondencia posteriormente, lo que se pone en práctica el acceso de espacio de configuración del dispositivo PCIe en el dominio extendido.
Más concretamente, cuando la unidad CPU en el sistema realiza un acceso de espacio de configuración del dispositivo PCIe en el dominio extendido en conformidad con una instrucción del dispositivo PCIe en el dominio primario o de un sistema operativo, la unidad CPU envía el paquete de acceso, en donde la dirección objetivo de acceso del paquete de acceso es la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido. La dirección de espacio de configuración del dispositivo PCIe en el dominio extendido pertenece a la dirección memoria del RCEP; por lo tanto, el paquete de acceso se envía al RCEP, y después de recibir el paquete de acceso, el RCEP realiza una traducción de dirección utilizando la correspondencia salvaguardada entre la dirección de espacio de configuración y el BDF, para obtener por medio de traducción el BDF del dispositivo PCIe en el dominio extendido, es decir, una dirección objetivo de acceso traducida, de modo que el RCEP pueda enviar el paquete de acceso al registro de espacio de configuración del dispositivo PCIe en el dominio extendido utilizando el BDF del dispositivo PCIe en el dominio extendido, con lo que se pone en práctica el acceso de espacio de configuración del dispositivo PCIe en el dominio extendido.
S304: Descubrir el dispositivo PCIe en el dominio extendido utilizando la dirección de espacio de configuración, y asignar un número de bus para el dispositivo PCIe descubierto en el dominio extendido.
El RCEP está 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 configuración del dispositivo PCIe en el dominio extendido en conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF y utilizando la dirección de espacio de configuración, para descubrir el dispositivo PCIe en el dominio extendido y asignar un número de bus o una dirección de memoria MMIO al dispositivo PCIe descubierto en el dominio extendido.
La unidad CPU en el sistema no ha asignado un número 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 dirección de espacio de configuración, a los registros de espacio de configuración 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 número de bus al dispositivo PCIe, con el fin de determinar el BDF del dispositivo PCIe, de modo que un registro de espacio de configuración del dispositivo PCIe pueda ser objeto de acceso utilizando el BDF del dispositivo PCIe.
Más concretamente, la unidad CPU en el sistema puede enviar, utilizando la dirección de espacio de configuración, un mensaje de consulta de dispositivo al registro de espacio de configuración del dispositivo PCIe que corresponde al BDF correspondiente a la dirección de espacio de configuración, 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 número 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 número de bus al dispositivo puente en el dominio extendido a partir de los números de bus que no son asignados en el segundo conjunto de bus; si el dispositivo PCIe es un dispositivo de punto extremo, un número de bus asignado al dispositivo de punto extremo en el dominio extendido puede ser el mismo que un número de bus de un dispositivo puente conectado al dispositivo de punto extremo. El descubrimiento del dispositivo PCIe en el dominio extendido y la asignación del número de bus al dispositivo PCIe en el dominio extendido se puede realizar por medio de enumeración de bus, de modo que, después de que se asigne un número de bus al dispositivo PCIe descubierto en el dominio extendido, puede determinarse un b Df del dispositivo PCIe descubierto en el dominio extendido, es decir, una dirección de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido se determina a este respecto. Posteriormente, la unidad CPU puede realizar, utilizando la dirección de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, un acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido.
En una forma de realización 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 número de bus a partir del segundo conjunto de bus para el dispositivo PCIe descubierto en el dominio extendido.
a) Inicializar un número de bus enumerado, un número de dispositivo enumerado, un número de función enumerado y un número de bus asignado. A modo de ejemplo, durante la inicialización, se establece el número de bus enumerado = 00, el número de dispositivo enumerado = 00, y el número de función 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 número de bus es 00, el número de dispositivo es 00 y el número de función es 0, y un número de bus asignado a un dispositivo PCIe descubierto primero en el dominio extendido es: el número de bus asignado = 00.
b) Adquirir, en conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF, la dirección de espacio de configuración correspondiente al BDF y enviar un mensaje de consulta de dispositivo utilizando la dirección de espacio de configuración que corresponde al BDF, de modo que el RCEP envíe, en conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF, el mensaje de consulta de dispositivo a un registro de espacio de configuración 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 enumeración; o si existe el dispositivo PCIe, realizar la etapa d) para asignar un número de bus. A modo de ejemplo, el mensaje de consulta de dispositivo se envía a un registro de identificación de Proveedor VendorId y un registro de identificación de dispositivo DeviceId del dispositivo PCIe correspondiente a BDF = 00:00.0; si el mensaje reenviado es de todos Fs (indicado por una notación hexadecimal), ello indica que no existe el dispositivo y se realiza la etapa c) para continuar la enumeración; de no ser así, ello indica que existe el dispositivo y se realiza la etapa d) para asignar un número de bus 00 al dispositivo PCIe descubierto y se determina que el número de dispositivo del dispositivo PCIe descubierto en el bus 00 es 00 y el número de función es 0.
c) Si no existe el dispositivo, cambiar el número de bus enumerado, el número de dispositivo enumerado o el número de función 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 número de bus, número de dispositivo o número de función. A modo de ejemplo, se establece que el número de bus enumerado = 00, el número de dispositivo enumerado = 00 y el número de función 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 número de función 1 del número de dispositivo 00 del número de bus 00.
d) Si existe el dispositivo, lo que indica que un dispositivo PCIe es descubierto en el dominio extendido, determinar, además, 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 número de bus de un dispositivo de puente montado en el dispositivo PCIe descubierto en el dominio extendido como un número de bus del dispositivo de punto extremo, mantener el número de bus asignado sin cambiar, y cambiar el número de bus enumerado, el número de dispositivo enumerado o el función de función enumerado, con lo que se actualiza el BDF y reenviar para realizar la etapa b), con el fin de continuar la enumeración para descubrir un dispositivo PCIe en el dominio extendido; si el dispositivo PCIe descubierto en el dominio extendido es un dispositivo puente, asignar un número de bus al dispositivo puente en el dominio extendido a partir de números de bus que no se asignan en el segundo conjunto de bus, actualizar el número de bus asignado, mantener el número de bus enumerado sin cambiar, y actualizar el número de dispositivo enumerado y el número de función enumerado, con lo que se actualiza el
BDF y reenviar para realizar la etapa b), con el fin de determinar si un dispositivo PCIe está montado, o no, en el puente, y asignar un segundo bus al dispositivo montado en el puente.
Además, si el dispositivo PCIe en el dominio extendido soporta una función de virtualización de raíz única, un número de bus puede reservarse para el dispositivo de punto extremo a partir de los números 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 número de bus reservado.
Además, el registro de espacio de configuración del dispositivo PCIe en el dominio extendido puede consultarse además, para obtener información de atributos del dispositivo PCIe en el dominio extendido, lo que incluye una magnitud de un registro de dirección 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 dirección de dominio primario virtual pueda asignarse al dispositivo PCIe en el dominio extendido de conformidad con la información de atributos del dispositivo PCIe en el dominio extendido, con posterioridad. A modo de ejemplo, la dirección de espacio de configuración 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 configuración en escritura se envía a un registro de espacio de configuración del dispositivo de punto extremo utilizando la dirección de espacio de configuración, con el fin de la escritura de FFFFFFFF en el registro de espacio de configuración del dispositivo de punto extremo, y la información de atributos del dispositivo de punto extremo puede determinarse en conformidad con el mensaje objeto de lectura.
S305: Asignar, a partir de la dirección de memoria del RCEP, una primera dirección MMIO para el dispositivo PCIe descubierto en el dominio extendido.
Después de que el dispositivo PCIe en el dominio extendido sea descubierto, la primera dirección MMIO puede asignarse, a partir de las direcciones MMIO excepto la dirección 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 dirección MMIO, el acceso de MMIO del dispositivo PCIe descubierto en el dominio extendido, en donde una magnitud de una primera dirección MMIO asignada a cada dispositivo PCIe puede ser una magnitud de un registro de dirección de base (Base Address Register) de cada dispositivo PCIe.
Más concretamente, puede realizarse un acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, con el fin de adquirir la magnitud del registro de dirección de base de cada dispositivo PCIe, y luego, se asigna una dirección como la primera dirección MMIO de cada dispositivo PCIe en conformidad con la magnitud del registro de dirección de base de cada dispositivo PCIe a partir de las direcciones MMIO del RCEP que no están asignadas. Pueden existir múltiples dispositivos PCIe en el dominio extendido; por lo tanto, cuando la primera dirección MMIO se asigna al dispositivo PCIe descubierto en el dominio extendido, la primera dirección 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 dirección MMIO al dispositivo; cuando se determina que un dispositivo objetivo correspondiente a BDF = 07:03.0 existe, la primera dirección MMIO se asigna al dispositivo; o la primera dirección MMIO puede asignarse al dispositivo PCIe en el dominio extendido después de que todos los dispositivos PCIe en el dominio se descubran, lo que no está limitado en esta forma de realización de la presente invención.
Además, una dirección inicial de la primera dirección MMIO del dispositivo PCIe descubierto en el dominio extendido puede salvaguardarse, además, en el registro de direcciones de base de cada dispositivo PCIe, de modo que la primera dirección 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 dirección MMIO y una segunda dirección MMIO del dispositivo PCIe descubierto en el dominio extendido, para asignar la segunda dirección MMIO al dispositivo PCIe descubierto en el dominio extendido.
Antes de que se asigne la segunda dirección MMIO al dispositivo PCIe descubierto en el dominio extendido, puede establecerse primero el mapeado entre la primera dirección MMIO y la segunda dirección MMIO del dispositivo PCIe descubierto en el dominio extendido, con el fin de efectuar el mapeado de la segunda dirección MMIO del dispositivo PCIe descubierto en el dominio extendido para el dominio primario, y luego, la segunda dirección MMIO del dispositivo PCIe descubierto en el dominio extendido se determina en conformidad con el mapeado entre la primera dirección MMIO y la segunda dirección MMIO, de modo que la unidad CPU pueda poner en práctica, en conformidad con el mapeado entre la primera dirección MMIO y la segunda dirección MMIO y utilizando la primera dirección MMIO el acceso MMIO del dispositivo PCIe descubierto en el dominio extendido, en donde la segunda dirección MMIO es diferente de la primera dirección MMIO, pertenece a un recurso de dirección de memoria en el dominio extendido, y es diferente de una dirección de memoria del dispositivo PCIe en el dominio primario.
A modo de ejemplo, según se ilustra en la Figura 4, la primera dirección MMIO del dispositivo PCIe descubierto en el dominio extendido puede ser [9G, 10G], en donde [9G, 9G 4M] es una primera dirección MMIO de un dispositivo PCIe
112A en el dominio extendido, [9G 1000M, 10G] es una primera dirección MMIO y la segunda dirección MMIO del dispositivo PCIe 116 en el dominio extendido, y el mapeado entre la primera dirección MMIO del dispositivo PCIe en el dominio extendido se establece como un desplazamiento de dirección de 4G, de modo que una segunda dirección de espacio de configuración asignada al dispositivo PCIe descubierto en el dominio extendido puede ser [5G, 6G], en donde [5G, 5G 4M] es una segunda dirección MMIO del dispositivo PCIe 112A en el dominio extendido y [5G 1000M, 6G] es una segunda dirección MMIO del dispositivo PCIe 116 en el dominio extendido.
S307: Salvaguardar el mapeado de correspondencia entre la primera dirección MMIO y la segunda dirección MMIO en el RCEP, de modo que el RCEP pueda realizar una traducción de dirección en conformidad con el mapeado, con lo que se pone en práctica 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 después de que el RCEP realice una traducción de dirección en una dirección objetivo de acceso del paquete de acceso; por lo tanto, el mapeado establecido entre la primera dirección MMIO y la segunda dirección MMIO puede salvaguardarse en el RCEP, a modo de ejemplo, salvaguardarse en un registro del RCEP, de modo que el RCEP pueda realizar la traducción de dirección en conformidad con el mapeado con posterioridad, con lo que se realiza el acceso MMIO del dispositivo PCIe en el dominio extendido.
Más concretamente, cuando la unidad CPU en el sistema realiza el acceso MMIO del dispositivo PCIe en el dominio extendido en conformidad con una instrucción del dispositivo PCIe en el dominio primario o una instrucción de un sistema operativo, la unidad CPU envía un paquete de acceso al RCEP, en donde una dirección objetivo de acceso del paquete de acceso es la primera dirección MMIO del dispositivo PCIe en el dominio extendido; después de que el RCEP reciba el paquete de acceso, el RCEP realiza una traducción de dirección sobre la dirección objetivo utilizando el mapeado salvaguardado entre la primera dirección MMIO y la segunda dirección MMIO, para obtener, mediante la traducción, la segunda dirección MMIO del dispositivo PCIe en el dominio extendido, es decir, una dirección 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 dirección 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 dirección MMIO del dispositivo PCIe, con el fin de obtener la primera dirección MMIO del dispositivo PCIe en el dominio extendido utilizando el identificador del dispositivo PCIe en el dominio extendido, para realizar un acceso MMIO.
Después de asignar la primera dirección MMIO al dispositivo PCIe en el dominio extendido, la unidad CPU en el sistema puede establecer, además, la correspondencia entre la primera dirección 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 dirección 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 está limitado en esta forma de realización de la presente invención.
S309: Establecer y salvaguardar un árbol de recursos de MMIO del dominio extendido en conformidad con la primera dirección MMIO del dispositivo PCIe en el dominio extendido.
La unidad CPU del sistema puede establecer, además, el árbol de recursos de MMIO del dominio extendido en conformidad con la primera dirección MMIO del dispositivo PCIe en el dominio extendido, y salvaguardar el árbol de recursos de MMIO del dominio extendido, de modo que, posteriormente, un primer recurso de dirección MMIO del dominio extendido pueda gestionarse utilizando el árbol de recursos MMIO del dominio extendido, a modo de ejemplo, el árbol de recursos MMIO establecido del dispositivo PCIe en el dominio extendido puede ser según se ilustra en la Figura 5. Puede determinarse de conformidad con la Figura que una primera dirección MMIO asignada al dispositivo puente 112A es [9G, 9G 4M] y una primera dirección MMIO asignada a un dispositivo de punto extremo 114 es [9G 6M, 9G 20M]. Además, el árbol de recursos MMIO del dominio extendido puede incluir, además, información de atributos del dispositivo PCIe en el dominio extendido, a modo de ejemplo, si una longitud de una dirección 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 dirección MSI al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del RCEP, y asignar una segunda dirección MSI al dispositivo PCIe en el dominio extendido en conformidad con la primera dirección MSI, con el fin de poner en práctica un acceso MSI del dispositivo PCIe en el dominio extendido en conformidad con un mapeado de correspondencia entre la primera dirección MSI y la segunda dirección MSI.
Además, la unidad CPU en el sistema puede asignar, además, la primera dirección MSI y la segunda dirección MSI al dispositivo PCIe en el dominio extendido, y salvaguardar el mapeado entre la primera dirección MSI y la segunda dirección
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 interrupción.
Más concretamente, una dirección puede asignarse como la primera dirección MSI del dispositivo PCIe en el dominio extendido a partir de direcciones MMIO del RCEP que no están asignadas, el mapeado entre la primera dirección MSI y la segunda dirección MSI del dispositivo PCIe en el dominio extendido puede establecerse, y luego, la segunda dirección MSI del dispositivo PCIe en el dominio extendido puede obtenerse en conformidad con el mapeado establecido. A modo de ejemplo, según se ilustra en la Figura 4, la primera dirección MSI y la segunda dirección 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 dirección MSI y la segunda dirección MSI del dispositivo PCIe en el dominio extendido es un desplazamiento de dirección de 4G.
Cuando el dispositivo PCIe en el dominio extendido necesita demandar interrupciones señalizadas por mensaje desde el sistema, el dispositivo PCIe solicita primero la segunda dirección MSI desde el RCEP, y envía un paquete de acceso al RCEP en conformidad con la segunda dirección MSI, en donde la dirección objetivo de acceso del paquete de acceso pertenece a un intervalo de direcciones de la segunda dirección MSI. El RCEP realiza la traducción de dirección en conformidad con el mapeado entre la primera dirección MSI y la segunda dirección MSI del dispositivo PCIe en el dominio extendido, para obtener una dirección objetivo de acceso traducida que pertenece a la primera dirección MSI. El RCEP determina que el acceso de MSI del dispositivo PCIe en el dominio extendido necesita realizarse, y demanda interrupciones señalizadas por mensaje desde la unidad CPU en el sistema. Las interrupciones señalizadas por mensaje pueden enrutarse al complejo raíz en el dominio primario en conformidad con la dirección 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 después de la etapa S301, lo que no está limitado en esta forma de realización de la presente invención.
S311: Asignar una primera dirección DMA al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del RCEP, y asignar una segunda dirección DMA al dispositivo PCIe en el dominio extendido en conformidad con la primera dirección DMA, para realizar el acceso de DMA del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera dirección DMA y la segunda dirección DMA.
Además, la unidad CPU en el sistema puede asignar, además, la primera dirección DMA y la segunda dirección DMA al dispositivo PCIe en el dominio extendido, y salvaguardar el mapeado entre la primera dirección DMA y la segunda dirección 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 comunicación mutua entre dispositivos PCIe por medio del acceso DMA.
Más concretamente, la unidad CPU en el sistema puede asignar una dirección como una primera dirección DMA del dispositivo PCIe en el dominio extendido a partir de las direcciones MMIO del RCEP que no están asignadas, establecer el mapeado entre la primera dirección DMA y la segunda dirección DMA del dispositivo PCIe en el dominio extendido, y luego, obtener la segunda dirección DMA del dispositivo PCIe en el dominio extendido en conformidad con el mapeado establecido. A modo de ejemplo, según se ilustra en la Figura 4, la primera dirección DMA y la segunda dirección DMA asignadas al dispositivo PCIe en el dominio extendido pueden ser [10G, 11G] y [6G, 7G] respectivamente, y el mapeado entre la primera dirección DMA y la segunda dirección DMA del dispositivo PCIe en el dominio extendido puede ser un desplazamiento de dirección de 4g . Cuando el dispositivo PCIe en el dominio extendido necesita realizar un acceso DMA, el dispositivo PCIe solicita la segunda dirección DMA desde el RCEP, y envía un paquete de acceso al RCEP en conformidad con la segunda dirección DMA que se solicita, en donde una dirección objetivo de acceso del paquete de acceso pertenece a un intervalo de dirección de la segunda dirección DMA. El RCEP realiza una traducción de dirección de conformidad con el mapeado entre la primera dirección DMA y la segunda dirección DMA del dispositivo PCIe en el dominio extendido y la dirección objetivo de acceso traducida obtenida pertenece a la primera dirección DMA. El RCEP determina que el acceso DMA del dispositivo PCIe en el dominio extendido necesita realizarse, asigna la primera dirección DMA al dispositivo PCIe en el dominio extendido a partir de la primera dirección DMA, y envía el paquete de acceso a la primer dirección DMA asignada, con lo que se realice el acceso DMA del dispositivo PCIe en el dominio extendido.
Esta etapa puede realizarse antes de la etapa S301 o después de la etapa S301, lo que no está limitado en esta forma de realización de la presente invención.
S312: Inicializar el dispositivo PCIe descubierto en el dominio extendido.
El RCEP 106 está 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 básico 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 instrucción del sistema de entrada/salida básico o una instrucción del sistema operativo, el dispositivo PCIe descubierto en el dominio extendido después de que el dispositivo PCIe en el dominio extendido sea descubierto, de modo que el dispositivo PCIe en el dominio extendido esté preparado y pueda utilizarse con normalidad.
Más concretamente, después de que se determine el dispositivo PCIe en el dominio extendido, puede realizarse un acceso de espacio de configuración del dispositivo PCIe en el dominio extendido, con el fin de adquirir información de configuración del dispositivo PCIe en el dominio extendido, y se realiza una configuración correspondiente en el registro de espacio de configuración del dispositivo PCIe en el dominio extendido en conformidad con la información de configuración, a modo de ejemplo, los registros de espacio de configuración que corresponden a las funciones tales como interrupciones, gestión de la energía, 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, además, un controlador de dispositivo previamente configurado para un controlador de dispositivos del dispositivo PCIe en el dominio extendido, y cargar el controlador del dispositivo. Más 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 configuración 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 configuración de los dispositivos PCIe en el dominio extendido (es decir, un acceso de espacio de configuración de los dispositivos PCIe en el dominio extendido se realiza utilizando la primera dirección de espacio de configuración 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 función de sondeo del controlador de dispositivos A; si la función no detecta ningún 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 realización de la presente invención, la dirección de espacio de configuración se asigna al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del RCEP, se establece la correspondencia entre la dirección de espacio de configuración y el número de bus/número de dispositivo/número de función BDF, y el número 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 número 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 dirección de espacio de configuración y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, el registro de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, que pone en práctica el acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, completa la extensión de un dominio de PCIe, establece la comunicación entre la unidad CPU o el dominio primario y el dominio extendido, y resuelve el problema de la técnica anterior de que un dominio de PCIe no pueda extenderse de modo que el número de dispositivos PCIe en el sistema no esté restringido por 256 buses.
Además, la primera dirección MMIO y la segunda dirección MMIO pueden asignarse además al dispositivo PCIe descubierto en el dominio extendido, con el fin de realizar, en conformidad con el mapeado entre la primera dirección MMIO y la segunda dirección MMIO, un acceso MMIO del dispositivo PCIe descubierto en el dominio extendido. Además, la primera dirección MSI y la segunda dirección MSI pueden asignarse, asimismo, al dispositivo PCIe en el dominio extendido, con el fin de realizar, en conformidad con el mapeado entre la primera dirección MSI y la segunda dirección MSI, un acceso MSI del dispositivo PCIe en el dominio extendido. Además, la primera dirección DMA y la segunda dirección DMA pueden asignarse, además, al dispositivo PCIe en el dominio extendido, con el fin de realizar, en conformidad con el mapeado entre la primera dirección DMA y la segunda dirección DMA, un acceso DMA del dispositivo PCIe en el dominio extendido.
Método para acceder a un dominio de PCIe
Con referencia a la arquitectura del sistema ilustrada en la Figura 1, una forma de realización de la presente invención da a conocer un método para acceder a un dominio de PCIe. Según se ilustra en la Figura 6, el método se utiliza para un sistema que incluye un dominio primario y un dominio extendido, en donde el dominio primario incluye un complejo raíz 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 raíz 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz en el dominio extendido; el método incluye:
S601: El RCEP recibe un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una dirección objetivo de acceso.
El RCEP aísla 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 comunicación 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 raíz en el dominio primario, y el complejo raíz en el dominio primario envía el paquete de acceso al RCEP en conformidad con una dirección 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 envía un paquete de acceso al RCEP, en donde el paquete de acceso incluye un cuerpo de mensaje y una dirección objetivo de acceso.
S602: El RCEP realiza una traducción de dirección sobre la dirección objetivo de acceso en conformidad con un mapeado de dirección previamente salvaguardado, para obtener una dirección 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 dirección de memoria solamente del dispositivo PCIe en el dominio primario, tal como una dirección 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 dirección de memoria solamente del dispositivo PCIe en el dominio extendido, tal como una segunda dirección MMIO o una segunda dirección MSI; por lo tanto, el RCEP puede salvaguardar previamente un mapeado de dirección entre la dirección memoria o un BDF del dispositivo PCIe en el dominio extendido y la dirección de memoria del RCEP, y traducir la dirección objetivo de acceso en la dirección 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 práctica el acceso del dispositivo PCIe en el dominio extendido, o traducir la dirección objetivo de acceso en la dirección de memoria del RCEP, con el fin de realizar el acceso del dominio primario o la unidad CPU utilizando el RCEP.
S603: El RCEP envía un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye el cuerpo de mensaje y una dirección objetivo de acceso traducida.
El cuerpo de mensaje es objeto de lectura y escritura de los datos de acceso u otra instrucción de operación del paquete de acceso. El RCEP puede generar, en conformidad con el cuerpo de mensaje y de la dirección objetivo de acceso traducida, el paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye la dirección objetivo de acceso traducida y el cuerpo del mensaje. El RCEP puede enviar el paquete de acceso analógico, para realizar un acceso mutuo entre la unidad CPU o el dominio primario y el dominio extendido.
En esta forma de realización de la presente invención, el RCEP puede recibir el paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación entre el dominio primario y el dominio extendido; realizar una traducción de dirección sobre la dirección objetivo de acceso del paquete de acceso en conformidad con el mapeado de dirección previamente salvaguardado, a modo de ejemplo, traducir la dirección de memoria del dominio primario y en la dirección de memoria del dominio extendido, para obtener la dirección objetivo de acceso traducida; y enviar el paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye la dirección 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 comunicación entre la CPU en el sistema o el dominio primario y el dominio extendido, completar la extensión de un dominio de PCIe en el sistema, realizar una comunicación de un dominio extendido de PCIe, y resolver un problema en la técnica anterior de que un dominio de PCIe no puede extenderse, de modo que el número de dispositivos PCIe en el sistema no esté restringido por 256 buses.
Además, el paquete de acceso puede ser un paquete para realizar un acceso de espacio de configuración 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 dirección de espacio de configuración del dispositivo PCIe en el dominio extendido como la dirección objetivo de acceso del paquete de acceso, en donde la dirección de espacio de configuración pertenece a la dirección de memoria del RCEP, y luego, el paquete de acceso se envía la RCEP. El RCEP realizar la traducción de dirección en conformidad con una correspondencia entre la dirección de espacio de configuración y un BDF del dispositivo PCIe en el dominio extendido, para obtener el BDF del dispositivo PCIe en el dominio extendido, es decir, la dirección objetivo de acceso traducida. El RCEP puede generar el paquete de acceso analógico en conformidad con la dirección objetivo de acceso traducida y el cuerpo del mensaje del paquete de acceso y envía el paquete de acceso analógico a un registro de espacio de configuración del dispositivo PCIe en el dominio extendido utilizando la dirección objetivo de acceso traducida para poner en práctica un acceso de espacio de configuración del dispositivo PCIe en el dominio extendido.
Además, 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 dirección MMIO del dispositivo PCIe en el dominio extendido composición ola dirección objetivo de acceso del paquete de acceso, en donde la primera dirección MMIO pertenece a la dirección de memoria del RCEP, y luego, el paquete de acceso se envía al RCEP. El RCEP realiza una traducción de dirección en conformidad con un mapeado entre la primera dirección MMIO y una segunda dirección MMIO del dispositivo PCIe en el dominio extendido, con el fin de obtener la segunda dirección MMIO del dispositivo PCIe en el dominio extendido, es decir, la dirección objetivo de acceso traducida. El RCEP genera el paquete de acceso analógico en conformidad con la dirección objetivo de acceso traducida y el cuerpo del mensaje del paquete de acceso y envía el paquete de acceso analógico al dispositivo PCIe en el dominio extendido utilizando la dirección objetivo de acceso traducida, para poner en práctica un acceso MMIO del dispositivo PCIe en el dominio extendido.
Además, el paquete de acceso puede ser un paquete para solicitar interrupciones señalizadas 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 dirección MSI desde el RCEP, utilizar la segunda dirección MSI, que se obtiene por medio de solicitud, como la dirección objetivo de acceso del paquete de acceso y enviar el paquete de acceso al RCEP. El RCEP realizar la traducción de dirección en conformidad con un mapeado entre una primera dirección MSI y la segunda dirección MSI del dispositivo PCIe en el dominio extendido, con el fin de obtener la primera dirección MSI del dispositivo PCIe en el dominio extendido, es decir, la dirección objetivo de acceso traducida, en donde la primera dirección MSI pertenece a la dirección de memoria del RCEP. El RCEP genera el paquete de acceso analógico en conformidad con la dirección 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 raíz en el dominio primario utilizando la dirección objetivo de acceso traducida y luego, se envía a la CPU en el sistema, para realizar un acceso MSI del dispositivo PCIe en el dominio extendido.
Además, 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 dirección DMA desde el RCEP, utilizar la segunda dirección DMA, que se obtiene por medio de solicitud, como la dirección objetivo de acceso del paquete de acceso, y enviar el paquete de acceso al RCEP. El RCEP realiza una traducción de dirección en conformidad con un mapeado entre una primera dirección DMA y la segunda dirección DMA del dispositivo PCIe en el dominio extendido, para obtener la primera dirección DMA del dispositivo PCIe en el dominio extendido, es decir, la dirección objetivo de acceso traducida, en donde la primera dirección DMA pertenece a la dirección de memoria del RCEP. El RCEP genera el paquete de acceso analógico en conformidad con la dirección objetivo de acceso traducida y el cuerpo del mensaje del paquete de acceso y solicita una dirección DMA del dominio primario a partir del complejo raíz en el dominio primario utilizando la dirección 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 realización del aparato de la presente invención
Con referencia a la arquitectura del sistema ilustrada en la Figura 1, una forma de realización de la presente invención da a conocer un aparato para acceder a un dominio de PCIe. Según 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 raíz 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 raíz en el dominio extendido. El aparato puede ser dispositivo de punto extremo de complejo raíz 106 en el sistema ilustrado en la Figura 1 y el aparato puede incluir una unidad de asignación de dirección de primer tipo 701 y una unidad de asignación de bus 702.
La unidad de asignación de dirección de primer tipo 701 está configurada para asignar una dirección de espacio de configuración al dispositivo PCIe en el dominio extendido a partir de una dirección de memoria del RCEP, y establecer una correspondencia entre la dirección de espacio de configuración y un BDF, a modo de ejemplo, asignar una dirección como la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido a partir de una dirección 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 configuración, la dirección de espacio de configuración 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 realizar, posteriormente, un acceso de espacio de configuración del dispositivo PCIe en el dominio extendido. Además, la unidad de asignación de dirección de primer tipo 701 puede salvaguardar también la correspondencia entre la dirección de espacio de configuración y el BDF en el dispositivo de punto extremo de complejo raíz, de modo que el dispositivo de punto extremo de complejo raíz pueda realizar una traducción de dirección en conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF, con el fin de poner en práctica un acceso de espacio de configuración de un dispositivo PCIe descubierto en el dominio extendido.
La unidad de asignación de bus 702 está configurada para asignar, a partir del segundo conjunto de bus, un número de bus para el 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, en 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 de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido.
Además, el aparato puede incluir, además:
una unidad de determinación 703, configurada para descubrir el dispositivo PCIe en el dominio extendido, utilizando la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido y la correspondencia entre la dirección de espacio de configuración y el BDF, en donde la unidad CPU en el sistema no asigna un número 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 determinación 703 puede acceder a los registros de espacio de configuración de dispositivos PCIe correspondientes a todos los BDF que puedan existir en el dominio extendido utilizando la dirección de espacio de configuración, 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 asignación de bus 702 pueda asignar, en conformidad con el dispositivo PCIe descubierto en el dominio extendido por la unidad de determinación 703, un número de bus del dispositivo PCIe descubierto en el dominio extendido; y
una unidad de asignación de dirección de segundo tipo 704, configurada para asignar una primera dirección MMIO a partir de la dirección de memoria del RCEP para el dispositivo PCIe descubierto en el dominio extendido, a modo de ejemplo, asignar la primera dirección MMIO a partir de la dirección MMIO del RCEP para el dispositivo PCIe descubierto en el dominio extendido, y asignar, en conformidad con la primera dirección MMIO, una segunda dirección MMIO al dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en práctica, en conformidad con un mapeado entre la primera dirección MMIO y la segunda dirección MMIO, un acceso MMIO del dispositivo PCIe, descubierto en el dominio extendido, en donde concretamente, la unidad de asignación de dirección de segundo tipo 704 puede determinar una magnitud de un registro de dirección de base del dispositivo PCIe descubierto en el dominio extendido, y asignar, en conformidad con la magnitud del registro de dirección de base del dispositivo PCIe descubierto en el dominio extendido, la primera dirección MMIO en el dispositivo PCIe descubierto en el dominio extendido, y luego, establecer el mapeado entre la primera dirección MMIO y la segunda dirección MMIO y asignar, en conformidad con el mapeado entre la primera dirección MMIO y la segunda dirección MMIO, la segunda dirección MMIO para el dispositivo PCIe descubierto en el dominio extendido.
Además, la unidad de asignación de dirección de segundo tipo 704 puede salvaguardar, además, el mapeado entre la primera dirección MMIO y la segunda dirección MMIO en el RCEP, de modo que el RCEP pueda realizar una traducción de dirección en conformidad con el mapeado entre la primera dirección MMIO y la segunda dirección MMIO, con el fin de poner en práctica un acceso MMIO del dispositivo PCIe descubierto en el dominio extendido. Además, el aparato puede incluir, además.
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 dirección 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 dirección MMIO del dispositivo PCIe descubierto en el dominio extendido, para realizar un acceso MMIO.
La unidad de salvaguarda 705 puede establecer y salvaguardar, además, un árbol de recursos MMIO del dominio extendido en conformidad con la primera dirección MMIO del dispositivo PCIe descubierto en el dominio extendido después de que la unidad de asignación de dirección de segundo tipo 704 asigne la primera dirección MMIO al dispositivo PCIe en el dominio extendido, de modo que un primer recurso de dirección MMIO del dominio extendido pueda gestionarse utilizando el árbol de recursos MMIO del dominio extendido, posteriormente, en donde el árbol de recursos de MMIO del dominio extendido, puede incluir, además, información de atributos del dispositivo PCIe en el dominio extendido, a modo de ejemplo, si una longitud de una dirección 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 dirección de base del dispositivo PCIe en el dominio extendido.
Además, el aparato puede incluir, además:
una unidad de asignación de dirección de tercer tipo 706, configurada para asignar una primera dirección de interrupciones señalizadas por mensaje al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del dispositivo de punto extremo de complejo raíz, y asignar una segunda dirección de interrupciones señalizadas por mensaje al dispositivo PCIe en el dominio extendido en conformidad con la primera dirección de interrupciones señalizadas por mensaje, con el fin de realizar un acceso de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera dirección de interrupciones señalizadas por mensaje y la segunda dirección de interrupciones señalizadas por mensaje.
Además, el aparato puede incluir, además:
una unidad de asignación de dirección de cuarto tipo 707, configurada para asignar una primera dirección de acceso directo en memoria al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del dispositivo de punto extremo de complejo raíz, y asignar una segunda dirección de acceso directo en memoria al dispositivo PCIe en el dominio extendido en conformidad con la primera dirección 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 dirección de acceso directo en memoria y la segunda dirección de acceso directo en memoria.
Además, el aparato puede incluir, además.
una unidad de inicialización 708, configurada para inicializar el dispositivo PCIe descubierto en el dominio extendido, en donde específicamente, después de que la unidad de determinación 703 descubra el dispositivo PCIe en el dominio extendido, se pueda realizar un acceso de espacio de configuración del dispositivo PCIe en el dominio extendido, para adquirir información de configuración del dispositivo PCIe en el dominio extendido y luego, se realiza una configuración
correspondiente en un registro de espacio de configuración del dispositivo PCIe en el dominio extendido en conformidad con la información de configuración, a modo de ejemplo, registros de espacio de configuración correspondientes a funciones tales como interrupciones, gestión de la energía, VPD de datos de productos vitales e IO virtualizado del dispositivo PCIe en el dominio extendido se configuran a este respecto, para completar la inicialización del dispositivo PCIe descubierto en el dominio extendido con lo que se permite que el dispositivo PCIe descubierto en el dominio extendido esté preparado para un funcionamiento normal.
En esta forma de realización de la presente invención, la unidad de asignación de dirección de primer tipo 701 puede asignar la dirección de espacio de configuración al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del RCEP, y establecer la correspondencia entre la dirección de espacio de configuración y el número de bus/número de dispositivo/número de función BDF y la unidad de asignación de bus 702 puede asignar el número de bus a partir del segundo conjunto de bus del dominio extendido al dispositivo PCIe descubierto en el dominio extendido, en donde el número 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 dirección de espacio de configuración y el BDF y utilizando el BDF del dispositivo PCIe descubierto en el dominio extendido, un registro de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, que pone en práctica el acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, completa la extensión de un dominio PCIe, pone en práctica la comunicación entre la unidad CPU o el dominio primario y el dominio extendido y resuelve un problema en la técnica anterior de que un dominio PCIe no pueda extenderse, de modo que el número de dispositivos PCIe en el sistema no esté restringido a 256 buses.
Además, la unidad de asignación de dirección de segundo tipo 704 puede asignar, además, la primera dirección MMIO y la segunda dirección MMIO al dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en práctica, en conformidad con el mapeado entre la primera dirección MMIO y la segunda dirección MMIO, un acceso MMIO del dispositivo PCIe descubierto en el dominio extendido. Además, la unidad de asignación de dirección de tercer tipo puede asignar, además, la primera dirección MSI y la segunda dirección MSI al dispositivo PCIe en el dominio extendido, con el fin de poner en práctica, en conformidad con el mapeado entre la primera dirección MSI y la segunda dirección MSI, un acceso MSI del dispositivo PCIe en el dominio extendido. Además, la unidad de asignación de dirección de cuarto tipo 707 puede asignar, además, la primera dirección DMA y la segunda dirección DMA al dispositivo PCIe en el dominio extendido, con el fin de poner en práctica, en conformidad con el mapeado entre la primera dirección DMA y la segunda dirección 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 realización de la presente invención da a conocer un aparato para acceder a un dominio de PCIe. Según 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 raíz 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 raíz en el dominio extendido. El aparato puede ser un dispositivo de punto extremo de complejo raíz 106 en el sistema ilustrado en la Figura 1 y el aparato puede incluir una unidad de recepción 801, una unidad de traducción 802 y una unidad de envío 803.
La unidad de recepción 801 está configurada para recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una dirección objetivo de acceso.
La unidad de traducción 802 está configurada para realizar una traducción de dirección sobre la dirección objetivo de acceso en conformidad con un mapeado de dirección previamente salvaguardado, para obtener una dirección objetivo de acceso traducida. A modo de ejemplo, la unidad de traducción 802 puede traducir la dirección objetivo de acceso en una dirección MMIO o un BDF del dispositivo PCIe en el dominio extendido, para poner en práctica un acceso al dispositivo PCIe en el dominio extendido, o traducir la dirección objetivo de acceso en una dirección de memoria del RCEP (a modo de ejemplo, una primera dirección MSI o una primera dirección DMA del dispositivo en el dominio extendido) para realizar un acceso al dominio primario o a una unidad CPU.
La unidad de envío 803 está configurada para enviar un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye el cuerpo del mensaje y la dirección objetivo de acceso traducida. El cuerpo del mensaje es objeto de lectura y escritura de datos de acceso u otra instrucción de operación del paquete de acceso. La unidad de envío 803 puede generar o adquirir, en conformidad con el cuerpo del mensaje y la dirección objetivo de acceso traducida, el paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye la dirección objetivo de acceso traducida y el cuerpo del acceso. La unidad de envío 803 puede enviar el paquete de acceso analógico, para realizar un acceso mutuo entre la unidad CPU o el dominio primario y el dominio extendido.
Más concretamente, la dirección objetivo de acceso puede ser una dirección de espacio de configuración del dispositivo PCIe en el dominio extendido, de modo que la unidad de traducción 802 pueda realizar una traducción de dirección en la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido en conformidad con una correspondencia entre la dirección de espacio de configuración 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 envío 803 puede enviar, en conformidad con el BDF del dispositivo PCIe en el dominio extendido y el cuerpo del mensaje, el paquete de acceso analógico correspondiente al paquete de acceso, para poner en práctica el acceso de espacio de configuración del dispositivo PCIe en el dominio extendido.
La dirección objetivo de acceso puede ser una primera dirección MMIO del dispositivo PCIe en el dominio extendido, de modo que la unidad de traducción 802 puede realizar una traducción de dirección sobre la primera dirección MMIO del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera dirección MMIO y una segunda dirección MMIO del dispositivo PCIe en el dominio extendido, para obtener la segunda dirección MMIO del dispositivo PCIe en el dominio extendido; la unidad de envío 803 puede enviar, en conformidad con la segunda dirección MMIO del dispositivo PCIe en el dominio extendido y el cuerpo del mensaje, el paquete de acceso analógico correspondiente al paquete de acceso, para poner en práctica el acceso MMIO del dispositivo PCIe en el dominio extendido.
La dirección objetivo de acceso puede ser una segunda dirección MSI del dispositivo PCIe en el dominio extendido, de modo que la unidad de traducción 802 puede realizar una traducción de dirección en la segunda dirección MSI del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre una primera dirección MSI y la segunda dirección MSI del dispositivo PCIe en el dominio extendido, para obtener la primera dirección MSI del dispositivo PCIe en el dominio extendido; la unidad de envío 803 puede enviar, en conformidad con la primera dirección MSI del dispositivo PCIe en el dominio extendido y el cuerpo del mensaje, el paquete de acceso analógico correspondiente al paquete de acceso, para poner en práctica el acceso de MSI del dispositivo PCIe en el dominio extendido.
La dirección objetivo de acceso puede ser una segunda dirección DMA del dispositivo PCIe en el dominio extendido, de modo que la unidad de traducción 802 pueda realizar una traducción de dirección sobre la segunda dirección DMA del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre una primera dirección DMA y la segunda dirección DMA del dispositivo PCIe en el dominio extendido, para obtener la primera dirección DMA del dispositivo PCIe en el dominio extendido; la unidad de envío 803 puede enviar, en conformidad con la primera dirección DMA del dispositivo PCIe en el dominio extendido y el cuerpo del mensaje, el paquete de acceso analógico correspondiente al paquete de acceso, para poner en práctica un acceso DMA del dispositivo PCIe en el dominio extendido.
En esta forma de realización de la presente invención, la unidad de recepción 801 puede recibir el paquete de acceso, en donde el paquete de acceso es un paquete para una comunicación mutua entre el dominio primario y el dominio extendido, la unidad de traducción 802 puede realizar una traducción de dirección sobre la dirección objetivo de acceso del paquete de acceso en conformidad con un mapeado de dirección previamente salvaguardado, para obtener la dirección objetivo de acceso traducida y el paquete de acceso analógico correspondiente al paquete de acceso se envía, en donde el paquete de acceso analógico incluye la dirección objetivo de acceso traducida, de modo que el complejo raíz 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 comunicación entre la unidad CPU en el sistema o el dominio primario y el dominio extendido, completar la extensión de un dominio de PCIe en el sistema, realizar una comunicación de un dominio PCIe extendido y resolver un problema en la técnica anterior de que un dominio de PCIe no pueda extenderse, de modo que el número de dispositivos PCIe en el sistema no esté restringido por 256 buses.
La Figura 9 es un diagrama de composición estructural esquemático de un aparato para extender un dominio PCIe en conformidad con una forma de realización de la presente invención. 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 raíz 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 raíz 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz 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 están conectados y realizan una comunicación mutua utilizando el bus del sistema 904.
El procesador 901 puede ser una unidad central de procesamiento de núcleo único o de múltiples núcleos, un circuito integrado específico de la aplicación o uno o más circuitos integrados configurados para poner en práctica esta forma de realización de la presente invención.
La memoria 902 puede ser una memoria RAM de alta velocidad o una memoria no volátil (non-volatile memory), tal como al menos una memoria de disco magnético.
La memoria 902 está configurada para memorizar una instrucción ejecutable por ordenador 903. Más concretamente, la instrucción ejecutable por ordenador 903 puede incluir un código de programa.
Cuando el aparato para extender un dominio de PCIe funciona, el procesador 901 ejecuta la instrucción ejecutable por ordenador 903 y puede realizar el procedimiento del método ilustrado en la Figura 2 o la Figura 3A y la Figura 3B.
Una forma de realización de la presente invención da a conocer un aparato para acceder a un dominio PCIe y un diagrama de composición estructural esquemático 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 raíz 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 raíz 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz 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 están conectados y realizar una comunicación mutua utilizando el bus del sistema 904.
El procesador 901 puede ser una unidad central de procesamiento de núcleo único o de múltiples núcleos, un circuito integrado específico de la aplicación o uno o más circuitos integrados configurados para poner en práctica esta forma de realización de la presente invención.
La memoria 902 puede ser una memoria RAM de alta velocidad o una memoria no volátil (non-volatile memory), tal como al menos una memoria de disco magnético.
La memoria 902 está configurada para memorizar una instrucción ejecutable por ordenador 903. Más concretamente, la instrucción ejecutable por ordenador 903 puede incluir un código de programa.
Cuando funciona el aparato, el procesador 901 realiza la instrucción ejecutable por ordenador 903 y puede realizar el procedimiento del método ilustrado en la Figura 4 o el procedimiento del método descrito a continuación.
S901: Recibir un paquete de acceso, en donde el paquete de acceso es un paquete para una comunicación mutua entre el dominio primario y el dominio extendido, el paquete de acceso incluye un cuerpo de mensaje y una dirección objetivo de acceso, la dirección objetivo de acceso es una dirección de espacio de configuración del dispositivo PCIe en el dominio extendido, una primera dirección MMIO del dispositivo PCIe en el dominio extendido, una segunda dirección MSI del dispositivo PCIe en el dominio extendido, o una segunda dirección DMA del dispositivo PCIe en el dominio extendido, y la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido y la primera dirección MMIO del dispositivo PCIe en el dominio extendido pertenecen a la dirección de memoria del RCEP.
S902: Realizar una traducción de dirección sobre la dirección objetivo de acceso en conformidad con un mapeado de dirección, para obtener una dirección objetivo de acceso traducida, en donde el mapeado de dirección es previamente salvaguardado en el RCEP, y el mapeado de dirección incluye una correspondencia entre la dirección de espacio de configuración y un BDF del dispositivo PCIe en el dominio extendido, un mapeado entre la primera dirección MMIO y una segunda dirección MMIO del dispositivo PCIe en el dominio extendido, un mapeado entre una primera dirección MSI y la segunda dirección MSI del dispositivo PCIe en el dominio extendido, o un mapeado entre una primera dirección DMA y la segunda dirección DMA del dispositivo PCIe en el dominio extendido.
S903: Enviar un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye el cuerpo del mensaje y la dirección objetivo divo de acceso traducida.
Un experto en esta técnica puede tender que cada aspecto de la presente invención o una posible manera de puesta en práctica de cada aspecto puede realizarse específicamente como un sistema, un método o un producto de programa informático. Por lo tanto, cada aspecto de la presente invención o una posible manera de puesta en práctica posible de cada aspecto puede utilizar formas de hardware solamente en sus formas de realización, formas de realización de solamente software (incluyendo firmware, software residente y similares), o formas de realización con una combinación de software y hardware, que se refieren uniformemente como “circuito”, “módulo” o “sistema” en la presente descripción. Además, cada aspecto de la idea inventiva o la posible manera de puesta en práctica de cada aspecto puede adoptar una forma de un producto de programa informático, en donde el producto de programa informático se refiere a un código de programa legible por ordenador memorizado en un soporte legible por ordenador.
El soporte legible por ordenador puede ser un soporte de señal legible por ordenador o un soporte de memorización legible por ordenador. El soporte de memorización legible por ordenador incluye, sin limitación, a un dispositivo, sistema o aparato electrónico, magnético, óptico, electromagnético, 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 instantánea), una fibra óptica y una memoria de solamente lectura de disco compacto (CD-ROM).
Un procesador en un ordenador efectúa la lectura del código de programa legible por ordenador almacenado en el soporte de memorización legible por ordenador, de modo que el procesador pueda realizar una función y una acción especificada en cada etapa o una combinación de etapas en un diagrama de flujo; se genera un aparato para poner en práctica una función y una acción especificada en cada bloque o una combinación de bloques en un diagrama de bloques.
Todo código de programa legible por ordenador puede ejecutarse en un ordenador de usuario, o algunos pueden ejecutarse en un ordenador de usuario como un paquete informático autónomo, o algunos pueden ejecutarse en un ordenador de usuario mientras que algunos se ejecutan en un ordenador distante, o la totalidad del código puede ejecutarse en un ordenador distante o en un servidor. Conviene señalar que, en algunas soluciones de realización 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 ilustración, que son dependientes de una función implicada, podrán, de hecho, ejecutarse prácticamente al mismo tiempo o estos bloques pueden ejecutarse, a veces, en orden inverso.
A continuación, se proporcionan ejemplos adicionales útiles para entender el contenido de la presente invención. Conviene señalar que la numeración utilizada en la siguiente sección no necesariamente tiene que cumplir con la numeración utilizada en las secciones anteriores.
Ejemplo 1. 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 y un dominio extendido, en donde
el dominio primario comprende un complejo raíz y un dispositivo PCIe, 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 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz en el dominio extendido; y
el método comprende:
asignar, 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 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 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.
Ejemplo 2. El método según el ejemplo 1, en donde el método comprende, además:
asignar, a partir de la dirección de memoria del dispositivo de punto extremo de complejo raíz, una primera dirección de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido; y
asignar, en conformidad con la primera dirección de entrada/salida mapeada en memoria, una segunda dirección de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en práctica, en conformidad con un mapeado de correspondencia entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria, un acceso de entrada/salida mapeado en memoria del dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 3. El método según el ejemplo 2, en donde la dirección de memoria del dispositivo de punto extremo de complejo raíz se refiere, más concretamente, a una dirección de entrada/salida mapeada en memoria del dispositivo de punto extremo de complejo raíz.
Ejemplo 4. El método según el ejemplo 2 o 3, en donde después de la asignación de 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, el método comprende, además:
descubrir el dispositivo PCIe en el dominio extendido utilizando la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido y la correspondencia entre la dirección de espacio de configuración y el BDF.
Ejemplo 5. El método según cualquier de los ejemplos 2 a 4, en donde el método comprende, además:
salvaguardar la correspondencia entre la dirección de espacio de configuración y el BDF en el dispositivo de punto extremo de complejo raíz, de modo que el dispositivo de punto extremo de complejo raíz pueda realizar una traducción de dirección en conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF, para poner en práctica un acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 6. El método según cualquier de los ejemplos 2 a 5, en donde la asignación, en conformidad con la primera dirección de entrada/salida mapeada en memoria, de una segunda dirección de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido comprende:
establecer el mapeado de correspondencia entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria; y
asignar, en conformidad con el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria, la segunda dirección de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 7. El método según el ejemplo 6, en donde el método comprende, además:
determinar una magnitud de un registro de dirección de base del dispositivo PCIe descubierto en el dominio extendido; y
la asignación de una primera dirección de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido comprende: la asignación, en conformidad con la magnitud del registro de dirección de base del dispositivo PCIe descubierto en el dominio extendido, de la primera dirección de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 8. El método según el ejemplo 6 o 7, en donde el método comprende, además:
almacenar el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria en el dispositivo de punto extremo de complejo raíz, de modo que el dispositivo de punto extremo de complejo raíz pueda realizar la traducción de direcciones de conformidad con el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria, para poner en práctica el acceso de entrada/salida mapeado en memoria del dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 9. El método según cualquiera de los ejemplos 6 a 8, en donde el método comprende, además:
establecer y almacenar una correspondencia entre un identificador del dispositivo PCIe descubierto en el dominio extendido y la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe descubierto en el dominio extendido, con el fin de obtener, de conformidad con el identificador del dispositivo PCIe descubierto en el dominio extendido, la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe descubierto en el dominio extendido, para realizar el acceso de entrada/salida mapeado en memoria.
Ejemplo 10. El método según los ejemplos 6 a 9, en donde después de la asignación de una primera dirección de entrada/salida mapeada en memoria al dispositivo PCIe en el dominio extendido, el método comprende, además:
establecer y almacenar un árbol de recursos de entrada/salida mapeado en memoria del dominio extendido de conformidad con la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 11. El método según cualquier de los ejemplos 1 a 10, en donde el método comprende, además:
la asignación de una primera dirección de interrupciones señalizadas por mensaje al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del dispositivo de punto extremo de complejo raíz; y
la asignación de una segunda dirección de interrupciones señalizadas por mensaje al dispositivo PCIe en el dominio extendido en conformidad con la primera dirección de interrupciones señalizadas por mensaje, con el fin de poner en práctica un acceso de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera dirección de interrupciones señalizadas por mensaje y la segunda dirección de interrupciones señalizadas por mensaje.
Ejemplo 12. El método según cualquier de los ejemplos 1 a 10, en donde el método comprende, además:
asignar una primera dirección de acceso directo en memoria al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del dispositivo de punto extremo de complejo raíz; y
asignar una segunda dirección de acceso directo en memoria al dispositivo PCIe en el dominio extendido en conformidad con la primera dirección de acceso directo en memoria, con el fin de poner en práctica un acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera dirección de acceso directo en memoria y la segunda dirección de acceso directo en memoria.
Ejemplo 13. El método según uno cualquiera de los ejemplos 1 a 12, en donde el método comprende, además:
adquirir, al realizar el acceso al espacio de configuración en el dispositivo PCIe descubierto en el dominio extendido, la información de configuración del dispositivo PCIe descubierto en el dominio extendido; y
configurar, de conformidad con la información de configuración del dispositivo PCIe descubierto en el dominio extendido, un registro de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido, con el fin de inicializar el dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 14. Un método para acceder a un dominio de interconexión de componente periférico exprés PCIe, en donde el método se utiliza para un sistema que comprende un dominio primario y un dominio extendido, en donde
el dominio primario comprende un complejo raíz y un dispositivo PCIe, 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 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz en el dominio extendido; y
el método comprende:
recibir, por el dispositivo de punto extremo de complejo raíz, un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una dirección objetivo de acceso;
realizar, por el dispositivo de punto extremo de complejo raíz, una traducción de dirección sobre la dirección objetivo de acceso en conformidad con un mapeado de dirección, con el fin de obtener una dirección objetivo de acceso traducida, en donde el mapeado de dirección es salvaguardado previamente en el dispositivo de punto extremo de complejo raíz; y enviar, por el dispositivo de punto extremo de complejo raíz, un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye el cuerpo del mensaje y la dirección objetivo de acceso traducida.
Ejemplo 15. El método según el ejemplo 14, en donde la dirección objetivo de acceso es una dirección de espacio de configuración del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es 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 del dispositivo PCIe en el dominio extendido; y
la realización, por el dispositivo de punto extremo de complejo raíz, de una traducción de dirección en la dirección objetivo de acceso en conformidad con el mapeado de dirección, con el fin de obtener una dirección objetivo de acceso traducida comprende:
la realización, por el dispositivo de punto extremo de complejo raíz, de una traducción de dirección en la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido en conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF del dispositivo PCIe en el dominio extendido, con el fin de obtener el BDF del dispositivo PCIe en el dominio extendido.
Ejemplo 16. El método según el ejemplo 14, en donde la dirección objetivo de acceso es una primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es una mapeado entre la primera dirección de entrada/salida mapeada en memoria y una segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido; y
la realización, por el dispositivo de punto extremo de complejo raíz, de una traducción de dirección sobre la dirección objetivo de acceso en conformidad con un mapeado de dirección, para obtener una dirección objetivo de acceso traducida, comprende:
realizar, por el dispositivo de punto extremo de complejo raíz, una traducción de dirección sobre la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, para obtener la segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido.
Ejemplo 17. El método según el ejemplo 14, en donde la dirección objetivo de acceso es una segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre una primera dirección de interrupciones señalizadas por mensaje y la segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido; y
la realización, por el dispositivo de punto extremo de complejo raíz, de una traducción de dirección sobre la dirección objetivo de acceso en conformidad con un mapeado de dirección, con el fin de obtener una dirección objetivo de acceso traducida, comprende:
realizar, por el dispositivo de punto extremo de complejo raíz, una traducción de dirección sobre la segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera dirección de interrupciones señalizadas por mensaje y la segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido, para obtener la primera dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido.
Ejemplo 18. El método según el ejemplo 14, en donde la dirección objetivo de acceso es una segunda dirección de acceso directo en memoria del dispositivo PCIe en el dominio extendido y el mapeado de dirección es un mapeado entre una primera dirección de acceso directo en memoria y la segunda dirección de acceso directo en memoria del dispositivo PCIe en el dominio extendido; y
la realización, por el dispositivo de punto extremo de complejo raíz, de una traducción de dirección sobre la dirección objetivo de acceso en conformidad con un mapeado de dirección, para obtener una dirección objetivo de acceso traducida, comprende:
realizar, por el dispositivo de punto extremo de complejo raíz, una traducción de dirección sobre la segunda dirección de acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con el mapeado entre la primera dirección de acceso directo en memoria y la segunda dirección de acceso directo en memoria del dispositivo PCIe en el dominio extendido, para obtener la primera dirección de acceso directo en memoria del dispositivo PCIe en el dominio extendido.
Ejemplo 19. Un aparato para extender un dominio de Interconexión de Componente Periférico Express PCIe, en donde el aparato se utiliza para un sistema que comprende un dominio primario y un dominio extendido, en donde
el dominio primario comprende un complejo raíz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y
el 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 raíz en el dominio extendido; y
el aparato comprende:
una unidad de asignación de dirección de primer tipo, configurada para asignar 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 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
una unidad de asignación de bus, que asigna, a partir del segundo conjunto de bus, un número de bus a un 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, en 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 de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 20. El aparato según el ejemplo 19, en donde el aparato comprende, además:
una unidad de asignación de dirección de segundo tipo, configurada para asignar, a partir de la dirección de memoria del dispositivo de punto extremo de complejo raíz, una primera dirección de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido y asignar, en conformidad con la primera dirección de entrada/salida mapeada en memoria, una segunda dirección de entrada/salida mapeada en memoria para el dispositivo PCIe descubierto en el dominio extendido, con el fin de poner en práctica, en conformidad con un mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria, un acceso de entrada/salida mapeado en memoria del dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 21. El aparato según el ejemplo 20, en donde la dirección de memoria del dispositivo de punto extremo de complejo raíz se refiere concretamente a una dirección de entrada/salida mapeada en memoria del dispositivo de punto extremo de complejo raíz.
Ejemplo 22. El aparato según el ejemplo 19 o 20, en donde el aparato comprende, además:
una unidad de determinación, configurada para descubrir el dispositivo PCIe en el dominio extendido utilizando la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido y la correspondencia entre la dirección de espacio de configuración y el BDF.
Ejemplo 23. El aparato según uno cualquiera de los ejemplos 20 a 22, en donde la unidad de asignación de direcciones de primer tipo está configurada, además, para almacenar la correspondencia entre la dirección de espacio de configuración y el BDF en el dispositivo de punto extremo de complejo raíz, de modo que el dispositivo de punto extremo de complejo raíz pueda realizar la traducción de direcciones de conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF, para poner en práctica el acceso de espacio de configuración del dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 24. El aparato según cualquier de los ejemplos 20 a 23, en donde la unidad de asignación de dirección de segundo tipo está específicamente configurada para establecer el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria, y asignar, en conformidad con el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en
memoria, la segunda dirección de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 25. El aparato según el ejemplo 24, en donde la unidad de asignación de dirección de segundo tipo está configurada específicamente para determinar una magnitud de un registro de dirección de base del dispositivo PCIe descubierto en el dominio extendido, y asignar, en conformidad con la magnitud del registro de dirección de base del dispositivo PCIe descubierto en el dominio extendido, la primera dirección de entrada/salida mapeada en memoria al dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 26. El aparato según el ejemplo 24 o 25, en donde la unidad de asignación de direcciones de segundo tipo está configurada, además, para almacenar el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria en el dispositivo de punto extremo de complejo raíz, de modo que el dispositivo de punto extremo de complejo raíz puede realizar la traducción de direcciones de conformidad con el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria, para poner en práctica el acceso de entrada/salida mapeada en memoria del dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 27. El aparato según uno cualquiera de los ejemplos 24 a 26, en donde el aparato comprende, además:
una unidad de almacenamiento, configurada para establecer y almacenar una correspondencia entre un identificador del dispositivo PCIe descubierto en el dominio extendido y la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe descubierto en el dominio extendido, con el fin de obtener, de conformidad con el identificador del dispositivo PCIe descubierto en el dominio extendido, la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe descubierto en el dominio extendido, para realizar el acceso de entrada/salida mapeado en memoria.
Ejemplo 28. El aparato según uno cualquiera de los ejemplos 24 a 27, en donde la unidad de almacenamiento se configura, además para: después de que la unidad de asignación de direcciones de segundo tipo asigne la primera dirección de entrada/salida mapeada en memoria al dispositivo PCIe en el dominio extendido, establecer y guardar un árbol de recursos de entrada/salida mapeado en memoria del dominio extendido de conformidad con la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe descubierto en el dominio extendido.
Ejemplo 29. El aparato según cualquier de los ejemplos 19 a 28, en donde el aparato comprende, además:
una unidad de asignación de dirección de tercer tipo, configurada para asignar una primera dirección de interrupciones señalizadas por mensaje al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del dispositivo de punto extremo de complejo raíz, y asignar una segunda dirección de interrupciones señalizadas por mensaje al dispositivo PCIe en el dominio extendido en conformidad con la primera dirección de interrupciones señalizadas por mensaje, con el fin de poner en práctica un acceso de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera dirección de interrupciones señalizadas por mensaje y la segunda dirección de interrupciones señalizadas por mensaje.
Ejemplo 30. El aparato según cualquier de los ejemplos 19 a 28, en donde el aparato comprende, además:
una unidad de asignación de dirección de cuarto tipo, configurada para asignar una primera dirección de acceso directo en memoria al dispositivo PCIe en el dominio extendido a partir de la dirección de memoria del dispositivo de punto extremo de complejo raíz, y asignar una segunda dirección de acceso directo en memoria al dispositivo PCIe en el dominio extendido en conformidad con la primera dirección de acceso directo en memoria, con el fin de poner en práctica un acceso directo en memoria del dispositivo PCIe en el dominio extendido en conformidad con un mapeado entre la primera dirección de acceso directo en memoria y la segunda dirección de acceso directo en memoria.
Ejemplo 31. Un aparato para acceder a un dominio de interconexión de componente periférico exprés PCIe, en donde el aparato se utiliza para un sistema que comprende un dominio primario y un dominio extendido, en donde
el dominio primario comprende un complejo raíz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y
el 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 raíz en el dominio extendido; y
el aparato comprende:
una unidad de recepción, configurada para recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una dirección objetivo de acceso;
una unidad de traducción, configurada para realizar una traducción de dirección sobre la dirección objetivo de acceso en conformidad con un mapeado de dirección previamente salvaguardado, para obtener una dirección objetivo de acceso traducida; y
una unidad de envío, configurada para enviar un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye el cuerpo del mensaje y la dirección objetivo de acceso traducida.
Ejemplo 32. El aparato según el ejemplo 31, en donde la dirección objetivo de acceso es una dirección de espacio de configuración del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es una correspondencia entre la dirección de espacio de configuración y BDF de número de bus/número de dispositivo/número de función del dispositivo PCIe en el dominio extendido; y
la unidad de traducción está configurada concretamente para realizar la traducción de dirección en la dirección de espacio de configuración del dispositivo PCIe en el dominio extendido de conformidad con la correspondencia entre la dirección de espacio de configuración y el BDF del dispositivo PCIe en el dominio extendido, para obtener el BDF del dispositivo PCIe en el dominio extendido.
Ejemplo 33. El aparato según el ejemplo 31, en donde la dirección objetivo de acceso es una primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre la primera dirección de entrada/salida mapeada en memoria y una segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido; y
la unidad de traducción está configurada concretamente para realizar la traducción de dirección en la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido de conformidad con el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria de salida del dispositivo PCIe en el dominio extendido, para obtener la segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido.
Ejemplo 34. El aparato según el ejemplo 31, en donde la dirección objetivo de acceso es una segunda dirección de interrupciones señalizada por mensaje del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre una primera dirección de interrupciones señalizada por mensaje y la segunda dirección de interrupciones señalizada por mensaje del dispositivo PCIe en el dominio extendido; y
la unidad de traducción está configurada concretamente para realizar la traducción de dirección en la segunda dirección de interrupciones señalizada por mensaje del dispositivo PCIe en el dominio extendido de conformidad con el mapeado entre la primera dirección de interrupciones señalizada por mensaje y la segunda dirección de interrupciones señalizada por mensaje del dispositivo PCIe en el dominio extendido, para obtener la primera dirección de interrupciones señalizada por mensaje del dispositivo PCIe en el dominio extendido.
Ejemplo 35. El aparato según el ejemplo 31, en donde la dirección objetivo de acceso es una segunda dirección de acceso de memoria directa del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre una primera dirección de acceso a memoria directa y la segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido; y
la unidad de traducción está configurada concretamente para realizar la traducción de dirección en la segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido de conformidad con el mapeado entre la primera dirección de acceso a memoria directa y la segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido, para obtener la primera dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido.
Ejemplo 36. Un aparato para extender un dominio de interconexión de componente periférico exprés PCIe, en donde el aparato se utiliza para un sistema que comprende un dominio primario y un dominio extendido, en donde
el dominio primario comprende un complejo raíz y un dispositivo PCIe, 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 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz en el dominio extendido; y
el aparato comprende un procesador, una memoria, un bus y una interfaz de comunicaciones, en donde
la memoria está configurada para almacenar una instrucción ejecutable por ordenador, el procesador está conectado a la memoria utilizando el bus, y cuando funciona el aparato de inicialización, el procesador ejecuta la instrucción ejecutable por ordenador almacenada en la memoria, de modo que el aparato de inicialización realice el método para extender un dominio PCIe de conformidad con uno cualquiera de los ejemplos 1 a 13.
Ejemplo 37. Un aparato para acceder a un dominio de interconexión de componente periférico exprés PCIe, en donde el aparato se utiliza para un sistema que comprende un dominio primario y un dominio extendido, en donde
el dominio primario comprende un complejo raíz y un dispositivo PCIe, 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 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz en el dominio extendido; y
el aparato comprende un procesador, una memoria, un bus y una interfaz de comunicaciones, en donde
la memoria está configurada para almacenar una instrucción ejecutable por ordenador, el procesador está conectado a la memoria utilizando el bus, y cuando funciona el aparato de inicialización, el procesador ejecuta la instrucción ejecutable por ordenador almacenada en la memoria, de modo que el aparato de inicialización realice el método para acceder a un dominio PCIe según cualquiera de los ejemplos 14 a 18.
Ejemplo 38. Un medio legible por ordenador, que comprende una instrucción ejecutable por ordenador, en donde cuando un procesador de un ordenador ejecuta la instrucción ejecutable por ordenador, el ordenador realiza el método para extender un dominio de interconexión de componente periférico exprés PCIe, de conformidad con cualquiera de los ejemplos 1 a 13.
Ejemplo 39. Un medio legible por ordenador, que comprende una instrucción ejecutable por ordenador, en la que cuando un procesador de un ordenador ejecuta la instrucción ejecutable por ordenador, el ordenador realiza el método para acceder a un dominio de interconexión de componente periférico exprés PCIe, de conformidad con cualquiera de los ejemplos 14 a 18.
Un experto en esta técnica puede entender que, en combinación con los ejemplos descritos en las formas de realización dadas a conocer en esta especificación, las etapas de algoritmos y unidades pueden realizarse mediante hardware electrónico o una combinación de programas informáticos y hardware electrónico. El hecho de que las funciones se realicen por hardware o software depende de aplicaciones particulares y de condiciones limitadoras del diseño de las soluciones técnicas. Un experto en esta técnica puede utilizar diferentes métodos para realizar las funciones descritas para cada aplicación particular, pero no debe considerarse que la puesta en práctica vaya más allá del alcance de la presente invención.
Las descripciones anteriores simplemente son maneras de puesta en práctica específicas de la presente invención, pero no están previstas para limitar el alcance de protección de la presente invención. Cualquier variación o sustitución fácilmente consideradas por un experto en esta técnica dentro del alcance técnico dado a conocer en la presente invención deberá caer dentro del alcance de protección de la presente invención. Por lo tanto, el alcance de protección de la presente invención estará sujeto al alcance de protección de las reivindicaciones adjuntas.
Claims (12)
1. Un método para acceder a un dominio de interconexión de componente periférico exprés PCIe, en donde el método se utiliza para un sistema que comprende un dominio primario y un dominio extendido, en donde
el dominio primario comprende un complejo raíz y un dispositivo PCIe, 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 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 raíz es el dispositivo PCIe en el dominio primario y un complejo raíz en el dominio extendido; y
el método comprende:
recibir (S601), por el dispositivo de punto extremo de complejo raíz, un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una dirección objetivo de acceso;
realizar (S602), mediante el dispositivo de punto extremo de complejo raíz, la traducción de dirección en la dirección objetivo de acceso de conformidad con un mapeado de dirección, para obtener una dirección objetivo de acceso traducida, en la que el mapeado de dirección se guarda previamente en el dispositivo de punto extremo de complejo raíz; y
enviar (S603), por el dispositivo de punto extremo de complejo raíz, un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye el cuerpo del mensaje y la dirección objetivo de acceso traducida.
2. Método según la reivindicación 1, en donde la dirección objetivo de acceso es una dirección de espacio de configuración del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es una correspondencia entre la dirección de espacio de configuración y BDF de número de bus/número de dispositivo/número de función del dispositivo PCIe en el dominio extendido; y
la realización (S602), por el dispositivo de punto extremo de complejo raíz, de la traducción de dirección en la dirección objetivo de acceso de conformidad con un mapeado de dirección, para obtener una dirección objetivo de acceso traducida que comprende:
realizar, mediante el dispositivo de punto extremo de complejo raíz, la traducción de dirección en la dirección del espacio de configuración del dispositivo PCIe en el dominio extendido de conformidad con la correspondencia entre la dirección del espacio de configuración y el BDF del dispositivo PCIe en el dominio extendido, para obtener el BDF del dispositivo PCIe en el dominio extendido.
3. El método según la reivindicación 1, en donde la dirección objetivo de acceso es una primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre la primera dirección de entrada/salida mapeada en memoria y una segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido; y
la realización (S602), por el dispositivo de punto extremo de complejo raíz, de la traducción de dirección en la dirección objetivo de acceso de conformidad con un mapeado de dirección, para obtener una dirección objetivo de acceso traducida que comprende:
realizar, mediante el dispositivo de punto extremo de complejo raíz, la traducción de dirección en la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido de conformidad con el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, para obtener la segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido.
4. El método según la reivindicación 1, en donde la dirección objetivo de acceso es una segunda dirección de interrupciones señalizada por mensaje del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre una primera dirección de interrupciones señalizadas por mensaje y la segunda dirección de interrupciones señalizada por mensaje del dispositivo PCIe en el dominio extendido; y
la realización (S602), por el dispositivo de punto extremo de complejo raíz, de la traducción de dirección en la dirección objetivo de acceso de conformidad con un mapeado de dirección, para obtener una dirección objetivo de acceso traducida que comprende:
realizar, mediante el dispositivo de punto extremo de complejo raíz, la traducción de dirección en la segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido de conformidad con el mapeado entre la primera dirección de interrupciones señalizadas por mensaje y la segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido, para obtener la primera dirección de interrupciones señalizadas por
mensaje del dispositivo PCIe en el dominio extendido.
5. El método según la reivindicación 1, en donde la dirección objetivo de acceso es una segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre una primera dirección de acceso a memoria directa y la segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido; y
la realización (S602), por el dispositivo de punto extremo de complejo raíz, de la traducción de dirección en la dirección objetivo de acceso de conformidad con un mapeado de dirección, para obtener una dirección objetivo de acceso traducida que comprende:
realizar, mediante el dispositivo de punto extremo de complejo raíz, la traducción de dirección en la segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido de conformidad con el mapeado entre la primera dirección de acceso a memoria directa y la segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido, para obtener la primera dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido.
6. Un medio legible por ordenador, que comprende una instrucción ejecutable por ordenador, en donde:
cuando un procesador de un ordenador ejecuta la instrucción ejecutable por ordenador, el ordenador realiza el método de conformidad con cualquiera de las reivindicaciones 1 a 5.
7. Un producto de programa informático, cuando el producto de programa informático se ejecuta en un ordenador, el ordenador realiza el método de conformidad con cualquiera de las reivindicaciones 1 a 5.
8. Un aparato para acceder a un dominio de interconexión de componente periférico exprés PCIe, en donde el aparato es para un sistema que comprende un dominio primario y un dominio extendido, en donde
el dominio primario comprende un complejo raíz y un dispositivo PCIe, en donde el dispositivo PCIe en el dominio primario tiene un primer conjunto de bus; y
el 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 raíz en el dominio extendido; y
el aparato comprende:
una unidad receptora (801), configurada para recibir un paquete de acceso, en donde el paquete de acceso es un paquete para la comunicación mutua entre el dominio primario y el dominio extendido, y el paquete de acceso incluye un cuerpo de mensaje y una dirección objetivo de acceso;
una unidad de traducción (802), configurada para realizar la traducción de la dirección en la dirección objetivo de acceso de conformidad con un mapeado de dirección previamente memorizado, para obtener una dirección objetivo de acceso traducida; y
una unidad de envío (803), configurada para enviar un paquete de acceso analógico correspondiente al paquete de acceso, en donde el paquete de acceso analógico incluye el cuerpo del mensaje y la dirección objetivo de acceso traducida.
9. El aparato según la reivindicación 8, en donde la dirección objetivo de acceso es una dirección de espacio de configuración del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es una correspondencia entre la dirección de espacio de configuración y un BDF de número de bus/número de dispositivo/número de función del dispositivo PCIe en el dominio extendido; y
la unidad de traducción (802) está configurada concretamente para realizar la traducción de dirección en la dirección del espacio de configuración del dispositivo PCIe en el dominio extendido de conformidad con la correspondencia entre la dirección del espacio de configuración y el BDF del dispositivo PCIe en el dominio extendido, para obtener el BDF del dispositivo PCIe en el dominio extendido.
10. El aparato según la reivindicación 8, en donde la dirección objetivo de acceso es una primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre la primera dirección de entrada/salida mapeada en memoria y una segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido; y
la unidad de traducción (802) está configurada concretamente para realizar la traducción de dirección en la primera dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido de conformidad con el mapeado entre la primera dirección de entrada/salida mapeada en memoria y la segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido, para obtener la segunda dirección de entrada/salida mapeada en memoria del dispositivo PCIe en el dominio extendido.
11. El aparato según la reivindicación 8, en donde la dirección objetivo de acceso es una segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre una primera dirección de interrupciones señalizadas por mensaje y la segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido; y
la unidad de traducción (802) está configurada concretamente para realizar la traducción de dirección en la segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido de conformidad con el mapeado entre la primera dirección de interrupciones señalizadas por mensaje y la segunda dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido, para obtener la primera dirección de interrupciones señalizadas por mensaje del dispositivo PCIe en el dominio extendido.
12. El aparato según la reivindicación 8, en donde la dirección objetivo de acceso es una segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido, y el mapeado de dirección es un mapeado entre una primera dirección de acceso a memoria directa y la segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido; y
la unidad de traducción (802) está configurada concretamente para realizar la traducción de dirección en la segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido de conformidad con el mapeado entre la primera dirección de acceso a memoria directa y la segunda dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido, para obtener la primera dirección de acceso a memoria directa del dispositivo PCIe en el dominio extendido.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17166632.4A EP3264280B1 (en) | 2013-12-31 | 2013-12-31 | Method and apparatus for extending pcie domain |
PCT/CN2013/091227 WO2015100672A1 (zh) | 2013-12-31 | 2013-12-31 | 一种扩展PCIe总线域的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2761927T3 true ES2761927T3 (es) | 2020-05-21 |
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 Before (1)
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 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9690739B2 (es) |
EP (5) | EP2927812B1 (es) |
CN (1) | CN104285218B (es) |
ES (2) | ES2640452T3 (es) |
NO (1) | NO2927812T3 (es) |
WO (1) | WO2015100672A1 (es) |
Families Citing this family (50)
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 |
US10191852B2 (en) | 2016-02-29 | 2019-01-29 | Apple Inc. | Methods and apparatus for locking at least a portion of a shared memory resource |
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 |
US11614986B2 (en) * | 2018-08-07 | 2023-03-28 | Marvell Asia Pte Ltd | Non-volatile memory switch with host isolation |
JP7115128B2 (ja) * | 2018-08-07 | 2022-08-09 | 富士通株式会社 | 情報処理装置、ブート方法及びブートプログラム |
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 | 华为技术有限公司 | 一种端点设备的管理方法、装置及系统 |
CN112306624A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 一种信息处理方法、物理机和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 |
CN111679997B (zh) * | 2020-05-29 | 2023-06-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多个pci/pci-e接口系统的设备管理方法 |
CN113986800A (zh) * | 2020-07-10 | 2022-01-28 | 华为技术有限公司 | 多处理器系统及配置多处理器系统的方法 |
CN111858407B (zh) * | 2020-07-14 | 2021-12-07 | 中航航空电子有限公司 | 高速外围设备互连系统内的通信方法及高速外围设备互连系统 |
CN114153771A (zh) * | 2020-08-18 | 2022-03-08 | 许继集团有限公司 | 一种pcie总线系统及ep设备获取总线上其它设备信息的方法 |
CN118056191A (zh) * | 2021-06-09 | 2024-05-17 | 安法布里卡公司 | 具有可配置传输的多平面、多协议存储器交换机构造 |
US20230057698A1 (en) * | 2021-08-23 | 2023-02-23 | Nvidia Corporation | Physically distributed control plane firewalls with unified software view |
US11914543B2 (en) * | 2021-12-06 | 2024-02-27 | Arm Limited | PCIe communications |
CN115114219B (zh) * | 2022-07-22 | 2023-10-20 | 深圳星云智联科技有限公司 | 一种pci-e拓扑方法、装置、设备及存储介质 |
CN115543894B (zh) * | 2022-11-30 | 2023-05-26 | 苏州浪潮智能科技有限公司 | 存储系统、数据处理方法及装置、存储介质及电子设备 |
CN116303148B (zh) * | 2023-05-17 | 2023-08-22 | 北京中科网威信息技术有限公司 | 多插槽设备网卡探测方法、装置、电子设备及存储介质 |
CN116644010A (zh) * | 2023-06-09 | 2023-08-25 | 广东浪潮智慧计算技术有限公司 | 一种数据处理方法、装置、设备及介质 |
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 ES ES13899977.6T patent/ES2640452T3/es active Active
- 2013-12-31 CN CN201380002531.8A patent/CN104285218B/zh active Active
- 2013-12-31 EP EP13899977.6A patent/EP2927812B1/en active Active
- 2013-12-31 EP EP17166632.4A patent/EP3264280B1/en active Active
- 2013-12-31 NO NO13899977A patent/NO2927812T3/no unknown
- 2013-12-31 EP EP19186711.8A patent/EP3629186B1/en active Active
- 2013-12-31 EP EP22155035.3A patent/EP4092540B1/en active Active
- 2013-12-31 WO PCT/CN2013/091227 patent/WO2015100672A1/zh active Application Filing
- 2013-12-31 ES ES17166632T patent/ES2761927T3/es active Active
- 2013-12-31 EP EP22155193.0A patent/EP4089544B1/en active Active
-
2015
- 2015-06-26 US US14/752,099 patent/US9690739B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN104285218A (zh) | 2015-01-14 |
EP4089544B1 (en) | 2024-01-31 |
NO2927812T3 (es) | 2017-12-30 |
EP2927812A1 (en) | 2015-10-07 |
EP4089544A1 (en) | 2022-11-16 |
EP3264280A1 (en) | 2018-01-03 |
EP3264280B1 (en) | 2019-09-18 |
WO2015100672A1 (zh) | 2015-07-09 |
EP2927812A4 (en) | 2016-04-13 |
US9690739B2 (en) | 2017-06-27 |
CN104285218B (zh) | 2017-02-15 |
EP3629186B1 (en) | 2022-02-23 |
EP4092540A1 (en) | 2022-11-23 |
EP2927812B1 (en) | 2017-08-02 |
EP4092540B1 (en) | 2024-01-31 |
ES2640452T3 (es) | 2017-11-03 |
US20150293873A1 (en) | 2015-10-15 |
EP3629186A1 (en) | 2020-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2761927T3 (es) | Método y aparato para extender el dominio PCIE | |
US9423958B2 (en) | System and method for managing expansion read-only memory and management host thereof | |
US8683110B2 (en) | I/O system and I/O control method | |
US9824050B2 (en) | Shared PCIe end point system including a PCIe switch and method for initializing the switch | |
ES2642829T3 (es) | Sistema y procedimiento para estructuras extendidas de interconexión de componentes periféricos exprés | |
US8103810B2 (en) | Native and non-native I/O virtualization in a single adapter | |
JP7510935B2 (ja) | 周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) | |
US20180189191A1 (en) | Multi-level paging and address translation in a network environment | |
US10467179B2 (en) | Method and device for sharing PCIe I/O device, and interconnection system | |
CN105653481B (zh) | 基于PCIe总线的数据传输方法和装置 | |
JP5011584B2 (ja) | ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート | |
TW202034183A (zh) | 通信裝置、資訊處理系統及通信方法 | |
JP2020173603A (ja) | デバイス通信制御モジュールおよびデバイス通信制御方法 | |
CN105389275B (zh) | 基于AMBA架构的虚拟PCIe‑PCI桥接系统 | |
TW201824016A (zh) | 資源分配系統、設備分配控制器以及設備識別方法 |