ES2642829T3 - Sistema y procedimiento para estructuras extendidas de interconexión de componentes periféricos exprés - Google Patents

Sistema y procedimiento para estructuras extendidas de interconexión de componentes periféricos exprés Download PDF

Info

Publication number
ES2642829T3
ES2642829T3 ES14816848.7T ES14816848T ES2642829T3 ES 2642829 T3 ES2642829 T3 ES 2642829T3 ES 14816848 T ES14816848 T ES 14816848T ES 2642829 T3 ES2642829 T3 ES 2642829T3
Authority
ES
Spain
Prior art keywords
pcie
extended
space
host
rcep
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES14816848.7T
Other languages
English (en)
Inventor
Wesley Shao
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2642829T3 publication Critical patent/ES2642829T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI 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)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

Una topología extendida de interconexión de componentes periféricos exprés (PCIe), que comprende: una estructura PCIe anfitrión (100, 504) que comprende un complejo raíz anfitrión (102, 502), teniendo la estructura PCIe anfitrión (100, 504) un primer conjunto de números de bus y un primer espacio de entrada/salida con mapeo de memoria (MMIO) en una unidad central de proceso (CPU) anfitrión; y una estructura PCIe extendida (118, 510) que comprende un punto extremo de complejo raíz (RCEP) (106, 508) como parte de un punto extremo de la estructura PCIe anfitrión (100, 504), donde el RCEP (106, 508) es un puente entre la estructura PCIe extendida (118, 510) y la estructura PCIe anfitrión (100, 504), teniendo la estructura PCIe extendida (118, 510) un segundo conjunto de números de bus y un segundo espacio MMIO diferente del primer conjunto de números de bus y del primer espacio MMIO, respectivamente; donde segundo espacio MMIO está mapeado al primer espacio MMIO; y el RCEP (106, 508) está configurado para aislar los fallos originados en la estructura PCIe extendida (118, 510).

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Sistema y procedimiento para estructuras extendidas de interconexion de componentes perifericos expres SECTOR TECNICO
La presente invencion se refiere, en general, a la industria informatica; y mas espedficamente a sistemas, procedimientos, productos de programa informatico y aparatos para estructuras extendidas de interconexion de componentes perifericos expres (PCIe, peripheral component interconnect express).
ANTECEDENTES
La interconexion de componentes perifericos expres (PCIe) es un estandar de bus informatico de expansion en serie de alta velocidad ampliamente utilizado para acoplar diversos dispositivos de hardware (por ejemplo, dispositivos de almacenamiento, tarjetas de red, tarjetas de sonido y similares) a una unidad central de proceso (CPU, central processing unit) anfitrion. Dado que las configuraciones de memoria de la CPU anfitrion pueden ser espedficas por fabricante, PCIe proporciona un estandar de entrada/salida (I/O, input/output) para conectar diversos dispositivos a la CPU. PCIe permite diversas mejoras sobre los estandares de bus anteriores (por ejemplo, PCI y PCI-eXtended). Por ejemplo, PCIe permite generalmente una mayor capacidad maxima del bus del sistema, una menor cantidad de patillas I/O, una menor dimension del bus, funcionalidad nativa de conexion en caliente y otras ventajas.
Un problema con el estandar de bus PCIe es que cada estructura PCIe esta limitada a una cantidad finita de recursos. Por ejemplo, cada espacio de memoria de direcciones de 32 bits de la estructura PCIe no puede superar los 4 GB de tamano, y cada estructura puede tener solamente un maximo de 256 numeros de bus. Dado que PCIe funciona en conexiones en serie punto a punto, estas limitaciones constrinen directamente el numero maximo de nodos (es decir, dispositivos) que se pueden acoplar a una estructura PCIe. Es decir, los numeros de bus para diversos dispositivos no pueden solapar, y cada dispositivo acoplado requiere un conjunto de numeros de bus unicos para funcionar. Varios numeros de bus en una estructura PCIe pueden estar reservados para usos particulares (por ejemplo, numeros de bus internos de los conmutadores PCIe, funcionalidad de conexion en caliente o similares), limitando adicionalmente el numero de numeros de bus disponibles.
Ademas, la aparicion de un fallo en cualquier componente acoplado a una estructura PCIe puede impactar sobre cualesquiera otros componentes acoplados mas arriba o mas abajo del componente averiado. A medida que aumenta el numero de componentes y de controladores de software acoplados a la estructura PCIe, el tratamiento de los fallos se complica y la propagacion de cualesquiera fallos puede conducir a un colapso de todo el sistema.
El documento US 2011/0131362 A1 describe un punto extremo integrado que tiene un puerto virtual acoplado entre una estructura de arriba y una estructura de dispositivo integrado que incluye una logica multifuncion para manejar diversas funciones para uno o varios bloques de propia intelectual (IP, intellectual property) acoplados a la estructura de dispositivo integrado. La estructura de dispositivo integrado tiene un canal principal para comunicar datos e informacion de comandos entre el bloque IP y la estructura de arriba, y un canal de banda lateral para comunicar informacion de banda lateral entre el bloque IP y la logica multifuncion.
COMPENDIO DE LA INVENCION
Estos y otros problemas se resuelven o evitan en general, y se consiguen en general ventajas tecnicas, mediante realizaciones preferidas de la presente invencion, que proporcionan una estructura extendida de interconexion de componentes perifericos expres.
De acuerdo con una realizacion de ejemplo, una topologfa de interconexion de componentes perifericos expres incluye una estructura PCIe anfitrion que comprende un complejo rafz anfitrion. La estructura PCIe anfitrion incluye un primer conjunto de numeros de bus y un primer espacio de entrada/salida con mapeo a memoria (MMIO, memory mapped input/output) en una unidad central de proceso (CPU) anfitrion. Ademas, esta dispuesta una estructura PCIe extendida, que incluye un punto extremo de complejo rafz (RCEP, root complex endpoint) como parte de un punto extremo de la estructura PCIe anfitrion, donde el RCEP es un puente entre la estructura PCIe extendida y la estructura PCIe anfitrion. La estructura PCIe extendida incluye asimismo un segundo conjunto de numeros de bus y un segundo espacio MMIO, respectivamente separado del primer conjunto de numeros de bus y del primer espacio MMIO. El segundo espacio MMIO esta mapeado al primer espacio MMIO y el RCEP esta configurado para aislar fallos originados en la estructura PCIe extendida.
De acuerdo con otra realizacion de ejemplo, proporcionada como antecedente para comprender la invencion, una topologfa de interconexion de componentes perifericos expres (PCIe) incluye una estructura PCIe extendida. La estructura PCIe extendida incluye un punto extremo de complejo rafz (RCEP). El RCEP esta configurado para ser parte de un punto extremo de una estructura PCIe de primer nivel. Ademas, la estructura PCIe extendida comprende un espacio de entrada/salida con mapeo a memoria (MMIO) y un conjunto de numeros de bus.
De acuerdo con otra realizacion mas de ejemplo, un procedimiento para conectar perifericos incluye proporcionar un punto extremo de complejo rafz (RCEP) que aloja una estructura extendida de interconexion de componentes perifericos expres (PCIe) como parte de un punto extremo de una estructura PCIe anfitrion, donde el RCEP es un
5
10
15
20
25
30
35
40
45
50
55
puente entre la estructura PCIe extendida y la estructura PCIe anfitrion. La estructura PCIe extendida tiene un primer espacio MMIO que esta separado de un segundo espacio MMIO de la estructura PCIe anfitrion. El procedimiento comprende ademas mapear el primer espacio MMIO al segundo espacio MMIO. El procedimiento comprende ademas interceptar, mediante el RCEP, la aparicion de fallos mas abajo en la estructura PCIe extendida.
BREVE DESCRIPCION DE LOS DIBUJOS
Para una comprension mas completa de la presente invencion, y de las ventajas de la misma, se hace referencia a continuacion a las siguientes descripciones, tomadas junto con los dibujos adjuntos, en los cuales:
la figura 1 es un diagrama de bloques de una estructura de interconexion de componentes perifericos expres (PCIe) de acuerdo con varias realizaciones de ejemplo;
las figuras 2A y 2B son diagramas de bloques de mapeo y direccionamiento del espacio de configuracion PCIe para una estructura extendida, de acuerdo con diversas realizaciones de ejemplo;
las figuras 3A y 3B son diagramas de bloques de mapeo y direccionamiento del espacio de memoria de 32 bits para una estructura extendida, de acuerdo con diversas realizaciones de ejemplo.
las figuras 4A y 4B son diagramas de bloques de mapeo y direccionamiento del espacio de memoria de 64 bits para una estructura extendida, de acuerdo con diversas realizaciones de ejemplo; y
la figura 5 es un diagrama de sistema, de un sistema informatico que tiene estructuras PCIe, de acuerdo con diversas realizaciones de ejemplo.
DESCRIPCION DETALLADA DE REALIZACIONES ILUSTRATIVAS
A continuacion se discuten en mayor detalle realizaciones de ejemplo que abarcan diversos aspectos de la innovacion conseguida. Sin embargo, se debera apreciar que la presente invencion da a conocer muchos conceptos aplicables unicos y nuevos, que se pueden realizar en una amplia variedad de contextos espedficos. Por consiguiente, las realizaciones espedficas descritas en la presente memoria son tan solo ilustrativas de maneras espedficas de realizar, utilizar e implementar diversos aspectos de la presente invencion, y no limitan necesariamente el alcance de la misma, salvo que se reivindique lo contrario.
Las siguientes diversas realizaciones a modo de ejemplo se describen en un contexto espedfico, a saber, una estructura estandar de bus de interconexion de componentes perifericos expres (PCIe). Sin embargo, tal como se apreciara, dichas realizaciones de ejemplo se pueden extender asimismo a otras estructuras (por ejemplo, topologfas de arbol invertido con restricciones de recursos).
Tal como se describe en la presente memoria, un complejo rafz es una estructura de hardware que sirve como puente entre una estructura PCIe y una unidad central de proceso (CPU) anfitrion. El complejo rafz puede estar integrado como parte de la CPU. Por ejemplo, la figura 5 muestra un complejo rafz 502 como parte de la CPU 500. El complejo rafz gestiona y transmite diversas solicitudes entre la CPU y los dispositivos (por ejemplo, los dispositivos 506 y 508) conectados a la misma estructura PCIe (por ejemplo, la estructura PCIe 504). El complejo rafz mapea asimismo varios dispositivos conectados (incluyendo posiciones de almacenamiento de los dispositivos, tales como registros y posiciones de memoria) sobre el espacio de memoria de la PCIe. Estos tipos de mapeo y espacio de memoria se conocen como espacio de entrada/salida con mapeo a memoria (MMIO).
Asimismo, tal como se utiliza en la presente memoria, el espacio MMIO puede incluir una parte de memoria direccionable que utiliza direcciones de 32 bits, que esta limitada generalmente a los primeros 4 GB del espacio MMIO. El espacio MMIO puede incluir ademas una parte de memoria direccionable que utiliza direcciones de 64 bits, que se pueden mapear al espacio MMIO sobre los primeros 4 GB. Varias realizaciones de ejemplo descritas en la presente memoria incluyen una o varias estructuras adicionales de hardware de complejo rafz, como parte de los puntos extremos de la estructura PCIe anfitrion. Anadiendo funcionalidades de complejo rafz a puntos extremos (denominados punto extremo de complejo rafz (RCEP)) se pueden conectar estructuras PCIe adicionales para formar las estructuras PCIe extendidas que no se limitan a los recursos finitos de la PCIe anfitrion.
Por ejemplo, la figura 5 muestra un RCEP 508 y una estructura PCIe extendida 510 que conectan puntos extremos adicionales (por ejemplo, los dispositivos 512 y 514) a la CPU anfitrion 500. De acuerdo con varias realizaciones a modo de ejemplo, estos RCEP pueden ser utilizados para aislar fallos con el fin de que no contaminen dispositivos o estructuras limftrofes. Ademas, otras realizaciones de ejemplo dan a conocer que los RCEP y las estructuras PCIe extendidas pueden ser compatibles con controladores de dispositivos perifericos existentes; eliminando de ese modo la necesidad de actualizaciones de software para controladores de dispositivos existentes.
La figura 1 muestra un diagrama de bloques de una estructura PCIe de primer nivel 100 conectada a una estructura PCIe extendida 118, de acuerdo con varias realizaciones a modo de ejemplo. La estructura PCIe 100 puede incluir un complejo rafz anfitrion 102 que gestiona y transmite diversas solicitudes entre la CPU anfitrion y diversos dispositivos conectados a la estructura PCIe 100. Generalmente, el complejo rafz 102 posee un conjunto de 256 numeros de bus unicos y espacio MMIO, y mapea varios dispositivos conectados (incluyendo sus registros
5
10
15
20
25
30
35
40
45
50
55
60
asociados y/o hardware de memoria) a su espacio MMIO. Ademas, el complejo ra^z 102 puede incluir una parte rafz 103, que es una estructura de puente de hardware que permite conexiones PCI a PCI entre la CPU anfitrion y los dispositivos conectados a la estructura PCIe 100 (por ejemplo, los puntos extremos 106 y 108). Aunque la figura 1 muestra el complejo rafz 102 teniendo solamente un puerto rafz 103, un tfpico complejo rafz 102 puede tener multiples puertos ra^z 103 (por ejemplo, entre cuatro y seis puertos rafz).
Tal como se muestra en la figura 1, el complejo rafz 102 esta conectado electricamente a los puntos extremos 106 y 108 a traves del puerto rafz 103 y del conmutador 104. Habitualmente, los puntos extremos 106 y 108 son estructuras que terminan la estructura PCIe 100. Dichos puntos extremos 106 y 108 pueden incluir dispositivos de almacenamiento, dispositivos de red, tarjetas de sonido, tarjetas de video y similares. Se muestra tambien en la figura 1 un conmutador 104, que puede incluir por lo menos un puerto de arriba (puerto 104A) y numerosos puertos de abajo (por ejemplo, puertos 104B) que interconectan diversos puntos extremos (por ejemplo, 106 y 108) al complejo rafz 102. Tal como se utiliza en general en la presente memoria, un puerto de arriba se refiere a un puerto que esta dirigido hacia el complejo rafz anfitrion (por ejemplo, el complejo rafz 102) mientras que un puerto de abajo se refiere a un puerto que esta dirigido alejandose del mismo.
El conmutador 104 puede incluir buses internos que permiten conectar multiples dispositivos a un solo puerto rafz 103 manteniendo al mismo tiempo una conexion en serie punto a punto utilizada por el estandar PCIe. Aunque la figura 1 muestra solamente un conmutador 104 que conecta dos puntos extremos 106 y 108 al puerto rafz 103, varias realizaciones a modo de ejemplo contemplan multiples puertos rafz conectados a cualquier numero de conmutadores, donde cada conmutador se puede conectar a cualquier numero variable de puntos extremos. Alternativamente, o conjuntamente, un puerto rafz 103 puede estar conectado directamente a un punto extremo. Por consiguiente, la configuracion mostrada en la figura 1 y otras figuras de la presente memoria, tiene solamente propositos ilustrativos y no pretende limitar o reducir de otro modo el alcance de la presente invencion, salvo que se reivindique explfcitamente lo contrario.
Tal como se muestra en la figura 1, el punto extremo 106 puede ser un punto extremo de complejo rafz (RCEP) de acuerdo con realizaciones a modo de ejemplo, que proporciona un puente de hardware entre la estructura PCIe extendida 118 y una estructura PCIe de primer nivel 100. Es decir, el RCEP 106 puede alojar una estructura PCIe extendida 118. De acuerdo con dichas realizaciones, el RCEP 106 puede ser similar, en construccion y logica, a un complejo rafz anfitrion (por ejemplo, el complejo rafz 102). De este modo, el RCEP 106 puede incluir su propio conjunto de numeros de bus, espacio de configuracion PCIe, y espacio MMIO -diferentes de los del complejo rafz 102. Por lo tanto, se pueden conectar dispositivos adicionales al RCEP 106 incluso cuando el complejo rafz 102 no tiene la cantidad suficiente de recursos disponibles (por ejemplo, numeros de bus).
Por ejemplo, los puntos extremos 114 y 116 se pueden conectar electricamente al RCEP 106 a traves del conmutador 112 y del puerto rafz 110. Tal como se ha indicado anteriormente, los puntos extremos 114 y 116 pueden ser casi cualquier tipo de dispositivos perifericos, incluyendo dispositivos de almacenamiento, dispositivos de red, tarjetas de sonido, tarjetas de video y similares. De manera similar a las estructuras PCIe anteriores, los puntos extremos 114 y 116 pueden simplemente terminar la estructura PCIe extendida 118. Alternativamente, y de acuerdo con realizaciones a modo de ejemplo, los puntos extremos 114 y/o 116 pueden incluir otro RCEP que tenga su propio conjunto de numeros de bus y espacio MMIO; por lo tanto, formando otra estructura PCIe extendida. Por consiguiente, los RCEP anaden esencialmente funcionalidad de puerta de enlace a un punto extremo PCIe; y por lo tanto, teoricamente, permiten acoplar un numero virtualmente ilimitado de nodos al complejo rafz anfitrion.
Aunque la figura 1 muestra la estructura PCIe extendida 118 teniendo solamente un punto rafz 110, un conmutador 112 y dos puntos extremos 114 y 116, diversas realizaciones pueden incluir una estructura PCIe extendida con multiples puertos rafz, multiples conmutadores por estructura extendida y multiples puntos extremos por conmutador.
De acuerdo con realizaciones a modo de ejemplo, el MMIO del RCEP 106 puede incluir una parte direccionable que utiliza direcciones de 32 bits (denominada espacio de memoria de 32 bits) y una parte que utiliza direcciones de 64 bits (denominada espacio de memoria de 64 bits). De acuerdo con dichas realizaciones, el espacio de configuracion PCIe, el espacio de memoria de 32 bits y el espacio de memoria de 64 bits del RCEP 106 se pueden mapear al espacio MMIO de 64 bits de un estructura PCIe anfitrion 100 (es decir, la parte del espacio MMIO de la estructura PCIe 100 que es direccionable utilizando direcciones de 64 bits). Por lo tanto, de acuerdo con dichas realizaciones, se puede acceder al RCEP 106 desde el espacio MMIO de una estructura PCIe anfitrion 100. El mapeo y la enumeracion de la estructura extendida del RCEP 106 se pueden realizar utilizando controladores de punto extremo asociados con el RCEP 106, tal como se explica en mayor detalle a continuacion.
De acuerdo con otras realizaciones a modo de ejemplo, el RCEP 106 puede incluir asimismo un mecanismo de tratamiento de fallos que resuelve cualesquiera fallos que se produzcan en sus dispositivos situados abajo (por ejemplo, los puntos extremos 114 y 116). Por lo tanto, en dichas realizaciones, los fallos pueden ser contenidos por el RCEP 106 y no se propagan hacia arriba a la estructura PCIe 100, y el RCEP 106 puede actuar como una barrera de fallos. Ademas, el RCEP 106 puede generar una interrupcion de error para notificar cualesquiera fallos al complejo rafz anfitrion 102. El dichas realizaciones, estas interrupciones de error pueden ser utilizadas como un mecanismo de notificacion, y cualesquiera fallos PCIe que se produzcan en los dispositivos de abajo del RCEP 106 puede ser tratados por el RCEP 106 y no pasados hacia arriba al complejo rafz anfitrion 102. Los detalles
5
10
15
20
25
30
35
40
45
50
55
60
espedficos relativos a la notificacion de interrupciones y el tratamiento de fallos pueden ser espedficos de cada implementacion y variar entre plataformas informaticas/complejos ra^z. Por ejemplo, los actuales estandares PCIe dejan los detalles de implementacion relativos a como el complejo ra^z trata los fallos, abiertos a diferentes implementaciones que vanan por fabricante, de plataformas informaticas/complejos rafz. Por lo tanto, los detalles de implementacion de los mecanismos de tratamiento de fallos y notificacion de errores del RCEP 106 pueden, analogamente, estar abiertos a diferentes implementaciones en funcion de las configuraciones aplicables de plataforma informatica/complejo rafz.
El mapeo y al acceso al espacio de configuracion PCIe para la estructura extendida 118 se pueden realizar utilizando cualquier configuracion adecuada. Por ejemplo, las figuras 2A y 2B muestran un ejemplo de mapeo y acceso de espacio de configuracion PCIe de acuerdo con realizaciones a modo de ejemplo, que soporta la utilizacion de MMIO para acceder al espacio de configuracion PCI. Generalmente, el espacio de direcciones ffsicas 200 es el espacio de direcciones ffsicas de la CPU anfitrion, que puede tener, por ejemplo, 2n-1 octetos de tamano (donde "n" es el numero de bits de direccion ffsica implementados por la CPU anfitrion). Tal como se muestra, el espacio de direcciones ffsicas 200 puede incluir una parte del espacio 202 direccionable mediante direcciones ffsicas de 32 bits, con una parte restante 204 direccionable mediante direcciones ffsicas de 64 bits. En dicha realizacion, la parte 202 puede ocupar los primeros 4 GB de espacio de direcciones 200, mientras que la parte 204 puede ocupar el resto del espacio de direcciones 200. Por otra parte, la parte 204 puede incluir ademas una parte asignada a un espacio MMIO de 64 bits 206 de la estructura PCIe anfitrion, de primer nivel (por ejemplo, la estructura PCIe 100). Por supuesto, se contemplan en la presente memoria otras asignaciones de memoria, configuraciones y mapeos del espacio MIMO a la estructura PCIe; y por lo tanto, cualquier implementacion espedfica descrita en la presente memoria se utiliza solamente con fines ilustrativos -salvo que se reivindique expffcitamente lo contrario.
De acuerdo con realizaciones a modo de ejemplo, la totalidad (o cualquier parte) de las funciones de un dispositivo conectado a la estructura PCIe 100, o la estructura extendida 118, se pueden mapear a sus propios 256 MB dedicados del espacio de configuracion de la respectiva estructura. Dicho espacio puede ser direccionable, por ejemplo, conociendo los numeros de funcion de bus PCI de 8 bits, dispositivo de 5 bits y funcion de 3 bits para una funcion de dispositivo particular. Este tipo de direccionamiento de funciones se puede denominar en la presente memoria direccionamiento de bus/dispositivo/funcion (BDF), que permite un total de 256 numeros de bus, 32 dispositivos y 8 funciones para cada estructura PCIe. Generalmente, en dichas realizaciones, el numero de dispositivo se puede ajustar a 0 de acuerdo con las estructuras estandar de bus de PCIe debido a la estructura de la conexion punto a punto en serie del PCIe. Ademas, de acuerdo con dichas realizaciones, cada funcion de dispositivo se puede habilitar para 4 KB de registros de configuraciones.
Tal como se muestra, el espacio de configuracion PCIe para la estructura PCIe de primer nivel (por ejemplo, estructura 100) puede ocupar 256 MB del espacio de direcciones 208 en parte del espacio 202. En dichas realizaciones, el espacio de configuracion PCIe para la PCIe extendida (por ejemplo, la estructura extendida 118) se puede mapear a 256 MB del espacio de direcciones 210 en el espacio MMIO de 64 bits 206. Ademas, cualesquiera transacciones MMIO en el espacio de direcciones 208 o 210 pueden ser tratadas como transacciones de acceso de configuracion PCIe para la estructura anfitrion PCIe 100 o bien la estructura extendida 118, respectivamente, mediante su correspondiente complejo rafz.
En dichas realizaciones, las direcciones del espacio de configuracion PCIe extendido 210 se pueden iniciar en el valor base 212. Por lo tanto, los registros del espacio de configuracion de una funcion de dispositivo PCIe situada en un numero de bus B, numero de dispositivo D y numero de funcion F se pueden iniciar, por ejemplo, en Base + (B + D + F)*4K. Alternativamente, se contemplan asimismo otras configuraciones adecuadas para direccionar registros de espacio de dispositivos, y la descripcion de direccionamiento BDF en este caso se utiliza solamente con fines ilustrativos.
La figura 2B muestra un formato de ejemplo de direccion ffsica de dispositivo PCIe 220 de acuerdo con realizaciones de ejemplo. El formato 220 puede incluir un campo de base 222 (situado, por ejemplo, entre los bits n-1 y 28), un campo de bus 224 (situado, por ejemplo, entre los bits 27 y 20), un campo de dispositivo 226 (situado, por ejemplo, entre los bits 19 y 15) y un campo de funcion 228 (situado, por ejemplo, entre los bits 14 y 12). Ademas, en dichas realizaciones, los bits 11 a 0 pueden contener un desplazamiento del registro de espacio de configuracion (por ejemplo, en el interior del dispositivo) al que se esta accediendo, que se puede incluir, por ejemplo, con fines de alineamiento de memoria.
El mapeo y acceso al espacio de memoria de 32 bits para la estructura PCIe extendida 118 se puede realizar utilizando cualquier configuracion adecuada. Por ejemplo, las figuras 3A y 3B muestran un ejemplo de mapeo y acceso al espacio de memoria de 32 bits PCIe, de acuerdo con realizaciones a modo de ejemplo. Generalmente, el acceso al espacio de memoria de 32 bits se puede utilizar para bancos de registros de dispositivo a los que se puede acceder con direcciones de 32 bits. En dichas realizaciones, las transacciones correspondientes se pueden marcar como acceso a espacio de memoria PCIe de 32 bits, por ejemplo, en una cabecera de paquete PCIe. Por supuesto, se contemplan en la presente memoria otras asignaciones de memoria, configuraciones y mapeo del espacio MIMO a la estructura PCIe; y por lo tanto, cualquier implementacion espedfica descrita en la presente memoria se utiliza solamente con fines ilustrativos -salvo que se reivindique expffcitamente lo contrario.
5
10
15
20
25
30
35
40
45
50
55
60
Bajo los estandares PCIe actuales, el tamano maximo para un espacio de direcciones de 32 bits es de 4 GB. Ademas, de acuerdo con los actuales estandares PCIe, en ciertas plataformas informaticas (por ejemplo, plataformas x86), la memoria de 32 bits para la estructura PCIe de primer nivel 100 se puede compartir con su espacio de configuracion PCIe y, por lo tanto, puede tener solamente 256 MB de tamano.
De acuerdo con realizaciones a modo de ejemplo, la estructura PCIe extendida 118 puede tener su propio espacio de memoria de 32 bits diferente del espacio de direcciones ffsicas 200 de la CPU anfitrion. Ademas, tal como se muestra en la figura 3A, el RCEP 106 puede mapear el espacio de direcciones de 32 bits de la estructura extendida 118 a una ventana de direcciones de 64 bits superior en el espacio MMIO de 64 bits 206 del anfitrion, tal como se muestra mediante el espacio de memoria 302. El dichas realizaciones, el espacio de memoria 302 puede ser independiente del espacio de memoria de 32 bits 300 para la estructura de primer nivel (por ejemplo, la estructura PCIe 100). Ademas, el espacio de memoria 300 puede estar situado en el espacio direccionable de 32 bits 202 de la CPU anfitrion, que puede estar dentro del mismo espacio de 4G inferior que el espacio de configuracion PCIe 208. Tal como se muestra, el espacio de memoria 302 se inicia en una direccion base 304 y puede tener hasta 4 GB de tamano. Por lo tanto, de acuerdo con dichas realizaciones, un banco de registros de dispositivo (por ejemplo, el banco de registros 308) se puede direccionar conociendo un desplazamiento apropiado (por ejemplo, desplazamiento 306) del banco de registros. Es decir, la direccion del banco de registros 308 puede ser base 304 + desplazamiento 306. Alternativamente, se contemplan asimismo otros esquemas adecuados para direccionar el banco de registros 308.
La figura 3B muestra formatos 310 y 312 de direccion ffsica de bancos de registros para el espacio de direcciones de anfitrion y el espacio de direcciones de estructura extendida, respectivamente, de acuerdo con realizaciones de ejemplo. El formato 310 puede incluir un campo de base 314 (por ejemplo, ocupando los bits n-1 a 32) y un campo de desplazamiento 316 (por ejemplo, ocupando los bits 31 a 0). El dichas realizaciones, el formato 310 puede ser utilizado para direccionar un banco de registros de dispositivo mapeado al espacio MMIO 206. El formato 312 puede contener solamente un campo de desplazamiento 318 (por ejemplo, ocupando 32 bits) para direccionar el banco de registros de dispositivo en la estructura extendida (por ejemplo, estructura 118). Ademas, antes de poner un paquete PCIe en la estructura extendida 118, el RCEP 106 puede vaciar el formato 310 de 32 bits superior (que puede tener 64 bits de longitud) y marcar el paquete PCIe vaciado como un paquete de direcciones de 32 bits.
El mapeo y acceso al espacio de memoria de 64 bits para la estructura PCIe extendida 118 se puede realizar utilizando cualquier configuracion adecuada. Por ejemplo, las figuras 4A y 4B muestran un ejemplo de mapeo y acceso al espacio de memoria de 64 bits, de acuerdo con realizaciones a modo de ejemplo. Generalmente, el espacio de memoria de 64 bits se puede utilizar para bancos de registros de dispositivo a los que se puede acceder con direcciones de 64 bits o direcciones de 32 bits. Se debe observar que si se asigna un intervalo de 32 bits a una direccion de 64 bits, el hardware PCIe puede utilizar un esquema de configuracion de espacio de memoria PCI de 32 bits para acceder (por ejemplo, la configuracion descrita en las figuras 3A y 3B). En dichas realizaciones, las transacciones correspondientes se pueden marcar como acceso a espacio de memoria PCIe de 64 bits en una cabecera de paquete PCIe. Ademas, por razones historicas, el espacio de memoria de 64 bits puede estar situado generalmente sobre los 4 GB inferiores del espacio de direcciones ffsicas. Por supuesto, se contemplan en la presente memoria otras asignaciones de memoria, configuraciones y mapeo del espacio MIMO a la estructura PCIe; y por lo tanto, cualquier implementacion espedfica descrita en la presente memoria se utiliza solamente con fines ilustrativos -salvo que se reivindique explfcitamente lo contrario.
En dichas realizaciones, la estructura PCIe extendida 118 puede tener su propio espacio de memoria de 64 bits diferente del espacio de direcciones ffsicas 200 de la CPU anfitrion. Tal como se muestra en la figura 4A, el RCEP 106 puede mapear el espacio de direcciones de 64 bits de la estructura extendida 118 al espacio MMIO de 64 bits 206 de la CPU anfitrion, tal como se muestra mediante el espacio de memoria 402. Ademas, el espacio de memoria 402 puede ser independiente del espacio de memoria PCIe de 64 bits 400 de la estructura de primer nivel 100, que puede estar asimismo situado en el espacio MMIO de 64 bits 206. En estas realizaciones, el espacio de memoria 402 se puede iniciar en una direccion base 404 y puede tener, por ejemplo, un tamano de m veces 4 GB (de m es una constante, que significa que este espacio 402 puede tener un tamano de una o varias veces 4 GB). Ademas, un banco de registros de dispositivo (por ejemplo, el banco de registros 408) puede ser direccionado conociendo un desplazamiento apropiado (por ejemplo, el desplazamiento 406) del banco de registros. De este modo, de acuerdo con dichas realizaciones, una direccion del banco de registros 408 puede ser base 404 + desplazamiento 406. Alternativamente, se contemplan asimismo otros esquemas adecuados para direccionar el banco de registros 408.
La figura 4B muestra formatos 410 y 416/418 de direcciones ffsicas del banco de registros para el espacio de direcciones de la CPU anfitrion y el espacio de direcciones de la estructura extendida, respectivamente, de acuerdo con realizaciones de ejemplo. El formato 410 puede incluir un campo de base 412 (por ejemplo, ocupando los bits n- 1 a p) y un campo de desplazamiento 414 (por ejemplo, ocupando los bits p-1 a 0). El valor de la constante p puede ser de 32 + ln(m), que se puede redondear al siguiente valor entero superior. El formato 410 se puede utilizar para direccionar un banco de registros de dispositivo mapeado al espacio MMIO de 64 bits 206.
En ciertas realizaciones a modo de ejemplo, direccionar el banco de registros de dispositivo en la estructura extendida 118 se puede realizar utilizando el formato 416. Por ejemplo, el formato 416 se puede utilizar si la direccion ffsica de base esta alineada en tamano con la configuracion del espacio de memoria de la estructura
5
10
15
20
25
30
35
40
45
50
55
60
extendida 118. Utilizando el formato 416, el RCEP 106 puede vaciar los bits superiores (por ejemplo, bits 63 a p) del formato 410 para formar una direccion de 64 bits para la estructura extendida 118. En otras realizaciones a modo de ejemplo, el formato 418 puede ser utilizado si la direccion ffsica de base no esta alineada en tamano con el espacio de memoria de la estructura extendida 118. En dichas realizaciones, para compensar el desalineamiento de las direcciones ffsicas, se puede anadir un desplazamiento 420 a la direccion de base 422 del sistema de 64 bits. Ademas, si la direccion de base esta por lo menos alineada en 4 GB (por ejemplo, los 32 bits inferiores son 0), el ajuste de tamano puede llevarse a cabo solamente para los 32 bits superiores de la direccion de base.
En una realizacion a modo de ejemplo, el espacio de configuracion PCIe 210, el espacio de memoria de 32 bits 302 y el espacio de memoria de 64 bits 402 de la estructura extendida 118 pueden solapar en la CPU anfitrion. En dichas realizaciones, el RCEP 106 puede solicitar a la CPU anfitrion una ventana de mapeo comun lo suficientemente grande para acomodar todos los intervalos de direcciones deseados (por ejemplo, espacios 210, 302 y 402), y el RCEP 106 puede a continuacion dividir la ventana de mapeo comun como se requiera, en varios intervalos de direcciones deseados.
De acuerdo con realizaciones a modo de ejemplo, la estructura extendida 118 puede soportar interrupciones de dispositivo, que se pueden tratar utilizando cualquier procedimiento adecuado. Por ejemplo, la estructura extendida 118 puede utilizar una configuracion de interrupcion senalizada por mensaje (MSI, message signaled interrupt). En dichas realizaciones, las MSI que se originan en dispositivos conectados a la estructura extendida 118 (por ejemplo, los puntos extremos 114 y 116) se pueden suministrar a puertos rafz aplicables (por ejemplo, el puerto rafz 110), de acuerdo con el estandar de bus PCIe. Ademas, el puerto rafz 110 del RCEP 106 puede tener una ventana de direcciones preasignada para MSI. En dichas realizaciones, cuando una direccion de escritura de memoria coincide con la ventana de direcciones MSI preasignada, la transaccion se puede reconocer como una interrupcion. Ademas, el puerto rafz 110 puede recoger todas las MSI que se originan en sus estructuras situadas mas abajo, y depositarlas en una cola (donde la cola puede estar situada en la memoria de la CPU anfitrion en el espacio de direcciones ffsicas 200). El puerto rafz 110 puede senalizar a continuacion una interrupcion independiente, que puede ser asimismo una MSI, a su puerto rafz de arriba (por ejemplo, el puerto rafz anfitrion 103). El puerto rafz anfitrion 102 puede activar a continuacion un gestor de software apropiado, en funcion de la interrupcion recibida. Un gestor de interrupcion del puerto rafz 110 del RCEP 106 puede examinar a continuacion la cola MSI en la memoria principal, determinar el dispositivo de origen (por ejemplo, el punto extremo 114 o 116) y despachar el gestor de interrupciones apropiado del controlador del dispositivo. Por supuesto, en la presente memoria se contemplan otros esquemas para manejar interrupciones de dispositivo; y por lo tanto, cualquier implementacion espedfica descrita en la presente memoria se utiliza solamente con fines ilustrativos -salvo que se reivindique expffcitamente lo contrario.
De acuerdo con otras realizaciones a modo de ejemplo, la estructura extendida 118 puede soportar asimismo acceso directo a memoria (DMA, direct memory access), que se puede tratar utilizando cualquier procedimiento adecuado. En dichas realizaciones, las transacciones DMA pueden incluir solicitudes de lectura, finalizaciones de lectura y solicitudes de escritura. Los paquetes PCIe pueden llevar una direccion ffsica de sistema o una direccion virtual de IO (entrada/salida) traducida por una IOMMU (unidad de gestion memoria de entrada/salida (input/output memory management unit)). Ademas, los ID de solicitante PCIe pueden ser por estructura. De este modo, el ID de solicitante se puede sustituir por el ID del RCEP 106 cuando una solicitud atraviesa una delimitacion de estructura PCIe y sube a una estructura PCIe anfitrion 100. Es decir, en la estructura extendida 118, el ID de solicitante puede ser el ID del dispositivo de punto extremo (por ejemplo, el punto extremo 114 o 116). Cuando la solicitud es transmitida hacia arriba al complejo rafz 102, el ID de solicitante se puede sustituir por el ID del RCEP 106.
En dichas realizaciones, las escrituras DMA se refieren al desplazamiento de datos de un dispositivo (por ejemplo, el punto extremo 114 o 116) a la memoria de la CPU anfitrion. El RCEP 106 puede sustituir el ID de dispositivo con el ID del RCEP 106 cuando la solicitud se pasa hacia arriba mediante el RCEP 106 al complejo rafz 102 y a la CPU anfitrion. Ademas, las lecturas DMA se refieren al desplazamiento de datos desde la memoria de la CPU anfitrion al dispositivo. En dichas realizaciones, el RCEP 106 puede utilizar un marcador de hardware para rastrear todas las solicitudes de lectura asignando etiquetas de transaccion (por ejemplo, como parte de paquetes de solicitud) para las transacciones a la estructura 100. Estas etiquetas de transaccion se pueden vincular a entradas de marcador del RCEP 106 y pueden ser utilizadas para registrar los ID de solicitante de paquetes de solicitud de lectura originados en la estructura extendida 118. La finalizacion de los datos recibidos por el RCEP 106 desde el complejo rafz 102 puede llevar la misma etiqueta de transaccion que la correspondiente solicitud de lectura, segun dichas realizaciones. Por lo tanto, en dichas realizaciones, se pueden utilizar etiquetas de transaccion para cotejarlas con entradas de marcador para determinar el ID de dispositivo apropiado utilizado en la estructura extendida 118. Por supuesto, se contemplan en la presente memoria otros esquemas para manejar solicitudes DMA; y por lo tanto, cualquier implementacion espedfica descrita en la presente memoria se utiliza solamente con fines ilustrativos - salvo que se reivindique expffcitamente lo contrario.
Por lo tanto, utilizando los diversos mecanismos de acceso a configuracion PCIe, acceso de memoria, DMA e interrupciones, descritos en las realizaciones a modo de ejemplo de los parrafos anteriores, se pueden utilizar dispositivos RCEP para alojar estructuras PCIe extendidas y dispositivos adicionales conectados (por ejemplo, dispositivos RCEP adicionales y/o dispositivos perifericos) en un complejo rafz anfitrion. Los dispositivos RCEP pueden ser similares a una ffpica logica de complejo rafz PCIe. Cada estructura PCIe extendida puede tener su propio espacio MMIO y un conjunto de numeros de bus. Por lo tanto, el numero total de dispositivos que se pueden
5
10
15
20
25
acoplar a todos los conectados a una CPU anfitrion puede no limitarse a la cantidad de numeros de bus disponibles de la estructura PCIe anfitrion. En dichas realizaciones, el espacio MMIO de cada estructura extendida se puede mapear al espacio MMIO de 64 bits de su estructura padre (por ejemplo, la estructura padre para la estructura extendida 118 es la estructura de primer nivel 100) para facilitar el acceso. Ademas, la enumeracion de estructura de las estructuras extendidas se puede conseguir por medio del controlador de dispositivo de punto extremo RCEP. En dichas realizaciones, cada RCEP puede tratar los fallos que se originan en la estructura de complejo rafz extendida aplicable. Por lo tanto, se puede conseguir el aislamiento de los fallos, de tal modo que los fallos de estructuras mas abajo pueden ser interceptados en el lfmite de la estructura de una estructura PCIe extendida y no propagarse hacia arriba.
De acuerdo con realizaciones a modo de ejemplo, casi cualquier dispositivo periferico (por ejemplo tarjetas de sonido, tarjetas de video, controladores de red, tarjetas de memoria y similares) se puede conectar a la estructura extendida y no tiene que cambiar su software controlador. En dichas realizaciones, la estructura PCIe extendida interactua con los dispositivos perifericos del mismo modo que una estructura PCIe de primer nivel. Ademas, el software de la CPU anfitrion (por ejemplo, un sistema operativo) y los controladores de RCEP se pueden modificar y/o crear para establecer mapeo de registros, mapeo de direcciones DMA, implementar gestores de interrupciones a traves del RCEP, y otras funciones similares. Por lo tanto, no es necesario que los dispositivos perifericos sean notificados de que estan conectados a una estructura PCIe extendida en lugar de a una estructura PCIe de primer nivel. De este modo, la estructura PCIe extendida y el RCEP pueden ser compatibles con controladores de dispositivo periferico existentes.
Aunque esta invencion se ha descrito haciendo referencia realizaciones ilustrativas a modo de ejemplo, esta descripcion no se debera interpretar en sentido limitativo. Diversas modificaciones y combinaciones de las realizaciones ilustrativas a modo de ejemplo, asf como otras realizaciones de la invencion, seran evidentes para los expertos en la materia tras hacer referencia a la descripcion. Por lo tanto, se preve que las reivindicaciones adjuntas abarquen cualesquiera de dichas modificaciones o realizaciones.

Claims (11)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Una topologfa extendida de interconexion de componentes perifericos expres (PCIe), que comprende:
    una estructura PCIe anfitrion (100, 504) que comprende un complejo rafz anfitrion (102, 502), teniendo la estructura PCIe anfitrion (100, 504) un primer conjunto de numeros de bus y un primer espacio de entrada/salida con mapeo de memoria (MMIO) en una unidad central de proceso (CPU) anfitrion; y
    una estructura PCIe extendida (118, 510) que comprende un punto extremo de complejo rafz (RCEP) (106, 508) como parte de un punto extremo de la estructura PCIe anfitrion (100, 504), donde el RCEP (106, 508) es un puente entre la estructura PCIe extendida (118, 510) y la estructura PCIe anfitrion (100, 504), teniendo la estructura PCIe extendida (118, 510) un segundo conjunto de numeros de bus y un segundo espacio MMIO diferente del primer conjunto de numeros de bus y del primer espacio MMIO, respectivamente;
    donde segundo espacio MMIO esta mapeado al primer espacio MMIO; y
    el RCEP (106, 508) esta configurado para aislar los fallos originados en la estructura PCIe extendida (118, 510).
  2. 2. La topologfa PCIe segun la reivindicacion 1, en la que un espacio de memoria de 32 bits de la estructura PCIe extendida (118, 510) esta mapeado a un espacio MMIO de 64 bits del primer espacio MMIO,
    en el que un espacio de memoria de 64 bits de la estructura PCIe extendida (118, 510) esta mapeado a un espacio MMIO de 64 bits del primer espacio MMIO; o
    en el que un espacio de configuracion PCIe de la estructura PCIe extendida (118, 510) esta mapeado a un espacio MMIO de 64 bits del primer espacio MMIO.
  3. 3. La topologfa de PCIe segun la reivindicacion 2, en la que cada funcion de dispositivo de la estructura PCIe extendida (118, 510) esta mapeada a cuatro kilobytes respectivos del espacio MMIO de 64 bits.
  4. 4. La topologfa de PCIe segun la reivindicacion 2, en la que registros de configuracion para cada funcion de dispositivo asociada con la estructura PCIe extendida (118, 510) estan configurados para ser direccionados utilizando direccionamiento de base/dispositivo/funcion.
  5. 5. La topologfa de PCIe segun la reivindicacion 1, en la que el segundo conjunto de numeros de bus incluye hasta (256) numeros de bus unicos para la estructura PCIe extendida (118, 510).
  6. 6. La topologfa de PCIe segun la reivindicacion 1, en la que la estructura PCIe extendida (118, 510) interactua con un dispositivo periferico del mismo modo que la estructura PCIe anfitrion (100, 504).
  7. 7. Un procedimiento para conectar un dispositivo periferico, que comprende:
    alojar, mediante un punto extremo de complejo rafz (RCEP) (106, 508) como parte de un punto extremo de una estructura PCIe anfitrion (100, 504), una estructura extendida de interconexion de componentes perifericos expres (PCIe) (118, 510), donde el RCeP (106, 508) es un puente entre la estructura PCIe extendida (118, 510) y la estructura PCIe anfitrion (100, 504), donde la estructura PCIe extendida (118, 510) tiene un primer espacio MMIO que es diferente de un segundo espacio MMIO de la estructura PCIe anfitrion (100, 504); y
    mapear el primer espacio MMIO al segundo espacio MMIO;
    interceptar, mediante el RCEP (106, 508), fallos que se producen mas abajo en la estructura PCIe extendida (118, 510).
  8. 8. El procedimiento segun la reivindicacion 7, en el que la estructura PCIe extendida (118, 510) comprende ademas un primer conjunto de hasta 256 numeros de bus unicos, que es diferente de un segundo conjunto de numeros de bus de la estructura PCIe anfitrion.
  9. 9. El procedimiento segun la reivindicacion 7, que comprende ademas mapear un espacio de configuracion PCIe, un espacio de memoria de 32 bits y un espacio de memoria de 64 bits de la estructura PCIe extendida (118, 510) al segundo espacio MMIO.
  10. 10. El procedimiento segun la reivindicacion 7, que comprende ademas tratar, mediante el dispositivo RCEP (106, 508), interrupciones de dispositivo originadas en la estructura PCIe extendida (118, 510) utilizando interrupciones senalizadas por mensaje (MSIs).
  11. 11. El procedimiento segun la reivindicacion 7, que comprende ademas manejar una solicitud de acceso directo a memoria (DMA) procedente de un dispositivo conectado a la estructura PCIe extendida (118, 510) mediante sustituir un ID de dispositivo de origen en una solicitud DMA con un ID de RCEP cuando la solicitud DMA se transmite hacia arriba a la estructura PCIe anfitrion (100, 504).
ES14816848.7T 2013-06-28 2014-06-28 Sistema y procedimiento para estructuras extendidas de interconexión de componentes periféricos exprés Active ES2642829T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201313931640 2013-06-28
US13/931,640 US9135200B2 (en) 2013-06-28 2013-06-28 System and method for extended peripheral component interconnect express fabrics
PCT/CN2014/081070 WO2014206356A2 (en) 2013-06-28 2014-06-28 System and method for extended peripheral component interconnect express fabrics

Publications (1)

Publication Number Publication Date
ES2642829T3 true ES2642829T3 (es) 2017-11-20

Family

ID=52116806

Family Applications (3)

Application Number Title Priority Date Filing Date
ES19161784T Active ES2884848T3 (es) 2013-06-28 2014-06-28 Sistema y procedimiento para estructuras extendidas PCI exprés
ES14816848.7T Active ES2642829T3 (es) 2013-06-28 2014-06-28 Sistema y procedimiento para estructuras extendidas de interconexión de componentes periféricos exprés
ES17182017T Active ES2741100T3 (es) 2013-06-28 2014-06-28 Sistema y procedimiento para estructuras extendidas de PCI exprés

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES19161784T Active ES2884848T3 (es) 2013-06-28 2014-06-28 Sistema y procedimiento para estructuras extendidas PCI exprés

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES17182017T Active ES2741100T3 (es) 2013-06-28 2014-06-28 Sistema y procedimiento para estructuras extendidas de PCI exprés

Country Status (12)

Country Link
US (7) US9135200B2 (es)
EP (5) EP3540604B1 (es)
JP (2) JP6325665B2 (es)
KR (2) KR101835851B1 (es)
CN (4) CN105359124B (es)
AU (1) AU2014301745B2 (es)
DE (1) DE202014011596U1 (es)
DK (1) DK3273358T3 (es)
ES (3) ES2884848T3 (es)
HU (2) HUE037146T2 (es)
NO (1) NO3027015T3 (es)
WO (1) WO2014206356A2 (es)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135200B2 (en) 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
ES2656464T3 (es) * 2013-09-11 2018-02-27 Huawei Technologies Co., Ltd. Procedimiento, sistema informático y aparato de procesamiento de fallo
CN104285218B (zh) 2013-12-31 2017-02-15 华为技术有限公司 一种扩展PCIe总线域的方法和装置
US9507740B2 (en) * 2014-06-10 2016-11-29 Oracle International Corporation Aggregation of interrupts using event queues
US20180107535A1 (en) * 2014-12-31 2018-04-19 International Business Machines Corporation Vault redundancy reduction within a dispersed storage network
US10656866B2 (en) * 2014-12-31 2020-05-19 Pure Storage, Inc. Unidirectional vault synchronization to support tiering
US20180101434A1 (en) * 2014-12-31 2018-04-12 International Business Machines Corporation Listing types in a distributed storage system
US20180107728A1 (en) * 2014-12-31 2018-04-19 International Business Machines Corporation Using tombstone objects to synchronize deletes
US10114688B2 (en) * 2015-02-16 2018-10-30 Dell Products L.P. System and method for peripheral bus device failure management
US10698849B2 (en) * 2015-03-11 2020-06-30 Apple Inc. Methods and apparatus for augmented bus numbering
CN104898775A (zh) * 2015-05-20 2015-09-09 浪潮电子信息产业股份有限公司 计算装置、存储装置、网络交换设备及计算机体系架构
US9978247B2 (en) 2015-09-24 2018-05-22 Microsoft Technology Licensing, Llc Smart fabric that detects events and generates notifications
US20170091013A1 (en) * 2015-09-28 2017-03-30 Netapp, Inc. Pcie error reporting and throttling
CN106713183B (zh) * 2015-10-30 2020-03-17 新华三技术有限公司 网络设备的接口板以及该网络设备和报文转发方法
CN105700967A (zh) * 2016-01-08 2016-06-22 华为技术有限公司 一种外设部件内部互联PCIe设备及其检测方法
CN105701051B (zh) * 2016-01-15 2019-10-15 华为技术有限公司 一种热插拔方法、主机控制器、主机及PCIe桥设备
WO2018058625A1 (zh) 2016-09-30 2018-04-05 华为技术有限公司 一种检测报文反压的方法及装置
CN106502941A (zh) * 2016-11-25 2017-03-15 北京兆芯电子科技有限公司 输入输出扩展器、计算机系统以及其配置方法
CN108363670B (zh) * 2017-01-26 2020-07-14 华为技术有限公司 一种数据传输的方法、装置、设备和系统
US10394468B2 (en) * 2017-02-23 2019-08-27 International Business Machines Corporation Handling data slice revisions in a dispersed storage network
US10698686B2 (en) 2017-11-14 2020-06-30 International Business Machines Corporation Configurable architectural placement control
US10761751B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Configuration state registers grouped based on functional affinity
US10558366B2 (en) 2017-11-14 2020-02-11 International Business Machines Corporation Automatic pinning of units of memory
US10496437B2 (en) 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10761983B2 (en) * 2017-11-14 2020-09-01 International Business Machines Corporation Memory based configuration state registers
US10664181B2 (en) 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
US10642757B2 (en) 2017-11-14 2020-05-05 International Business Machines Corporation Single call to perform pin and unpin operations
US10901738B2 (en) 2017-11-14 2021-01-26 International Business Machines Corporation Bulk store and load operations of configuration state registers
US10635602B2 (en) 2017-11-14 2020-04-28 International Business Machines Corporation Address translation prior to receiving a storage reference using the address to be translated
CN107992438A (zh) * 2017-11-24 2018-05-04 郑州云海信息技术有限公司 一种服务器及在服务器内灵活配置PCIe拓扑的方法
JP6635209B2 (ja) * 2018-04-18 2020-01-22 富士通クライアントコンピューティング株式会社 情報処理システム
CN109002591B (zh) * 2018-06-26 2021-11-09 郑州云海信息技术有限公司 一种从服务器主板端调整PCIe拓扑的方法和系统
JP7115128B2 (ja) * 2018-08-07 2022-08-09 富士通株式会社 情報処理装置、ブート方法及びブートプログラム
CN109408454B (zh) * 2018-11-01 2021-10-22 郑州云海信息技术有限公司 一种芯片管理的方法以及相关装置
WO2020132962A1 (zh) * 2018-12-26 2020-07-02 华为技术有限公司 安全元件、数据处理装置及数据处理方法
JP6700564B1 (ja) * 2018-12-28 2020-05-27 富士通クライアントコンピューティング株式会社 情報処理システム
US11016795B2 (en) * 2019-01-31 2021-05-25 EMC IP Holding Company, LLC System and method for virtualizing hot-swappable PCIe devices for virtual machines
CN109902038B (zh) * 2019-02-21 2020-12-29 杭州迪普科技股份有限公司 一种PCIe总线地址空间分配方法及装置
JP6574917B1 (ja) * 2019-05-20 2019-09-11 富士通クライアントコンピューティング株式会社 情報処理システム、及び中継装置
US11558296B2 (en) * 2020-09-18 2023-01-17 Serialtek, Llc Transaction analyzer for peripheral bus traffic
US11593026B2 (en) 2020-03-06 2023-02-28 International Business Machines Corporation Zone storage optimization using predictive protocol patterns
CN111651397B (zh) * 2020-05-09 2022-11-15 山东浪潮科学研究院有限公司 一种访问PXIe外设模块的方法和设备
NL2025607B1 (en) 2020-05-18 2021-12-03 Microsoft Technology Licensing Llc Retrieving diagnostic information from a pci express endpoint
CN111858407B (zh) * 2020-07-14 2021-12-07 中航航空电子有限公司 高速外围设备互连系统内的通信方法及高速外围设备互连系统
CN111930660B (zh) * 2020-07-30 2022-04-15 长沙景嘉微电子股份有限公司 Pcie通路配置方法、装置、终端和介质
US11836059B1 (en) 2020-12-14 2023-12-05 Sanblaze Technology, Inc. System and method for testing non-volatile memory express storage devices
US20250021510A1 (en) * 2021-12-16 2025-01-16 Nec Corporation Information processing device, and method for controlling information processing device
US11971839B2 (en) * 2022-07-20 2024-04-30 Vmware, Inc. Exposing PCIE configuration spaces as ECAM compatible
CN116414759B (zh) * 2023-06-09 2023-09-29 深圳中安辰鸿技术有限公司 计算机交换系统及地址分配、枚举、数据分发方法
US20250110907A1 (en) * 2023-09-28 2025-04-03 Mellanox Technologies, Ltd. Scalable and configurable non-transparent bridges
US12554666B2 (en) 2023-09-28 2026-02-17 Mellanox Technologies, Ltd. Scalable and configurable non-transparent bridges
CN120234049A (zh) * 2023-12-28 2025-07-01 杭州阿里云飞天信息技术有限公司 操作系统启动方法、设备和存储介质

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6983339B1 (en) * 2000-09-29 2006-01-03 Intel Corporation Method and apparatus for processing interrupts of a bus
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
US8463969B2 (en) * 2005-06-30 2013-06-11 Intel Corporation Extended message signal interrupt
JP4828899B2 (ja) * 2005-09-21 2011-11-30 株式会社リコー 情報処理装置および記憶デバイス共有方法
US7793010B2 (en) 2005-11-22 2010-09-07 Lsi Corporation Bus system with multiple modes of operation
US8189573B2 (en) 2005-12-22 2012-05-29 Intel Corporation Method and apparatus for configuring at least one port in a switch to be an upstream port or a downstream port
US7660922B2 (en) * 2006-05-12 2010-02-09 Intel Corporation Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports
US7506084B2 (en) 2006-10-17 2009-03-17 International Business Machines Corporation Method for communicating with an I/O adapter using cached address translations
US7617377B2 (en) 2006-10-17 2009-11-10 International Business Machines Corporation Splitting endpoint address translation cache management responsibilities between a device driver and device driver services
US8271604B2 (en) * 2006-12-19 2012-09-18 International Business Machines Corporation Initializing shared memories for sharing endpoints across a plurality of root complexes
US7836238B2 (en) 2006-12-19 2010-11-16 International Business Machines Corporation Hot-plug/remove of a new component in a running PCIe fabric
US7813366B2 (en) * 2006-12-19 2010-10-12 International Business Machines Corporation Migration of a virtual endpoint from one virtual plane to another
US7836129B2 (en) 2006-12-19 2010-11-16 International Business Machines Corporation Communication between host systems using a queuing system and shared memories
JP5058615B2 (ja) * 2007-01-25 2012-10-24 エヌイーシーコンピュータテクノ株式会社 ノード制御装置および情報処理装置
US7562176B2 (en) * 2007-02-28 2009-07-14 Lsi Corporation Apparatus and methods for clustering multiple independent PCI express hierarchies
CN101052013B (zh) * 2007-05-22 2011-09-28 杭州华三通信技术有限公司 一种网络设备内部管理通道实现的方法及系统
US20090063894A1 (en) * 2007-08-29 2009-03-05 Billau Ronald L Autonomic PCI Express Hardware Detection and Failover Mechanism
US7752346B2 (en) * 2007-12-21 2010-07-06 Aprius, Inc. Universal routing in PCI-Express fabrics
US7934033B2 (en) * 2008-03-25 2011-04-26 Aprius, Inc. PCI-express function proxy
JP2011517497A (ja) * 2008-03-25 2011-06-09 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. Pcieのsr−iov機能をレガシー機能として現出するように変換するシステム及び方法
US8838867B2 (en) 2008-12-24 2014-09-16 Nuon, Inc. Software-based virtual PCI system
US8103810B2 (en) 2008-05-05 2012-01-24 International Business Machines Corporation Native and non-native I/O virtualization in a single adapter
WO2009139489A1 (ja) 2008-05-16 2009-11-19 日本電気株式会社 Pciエクスプレススイッチ、pciエクスプレスシステム、及びネットワーク制御方法
US9015446B2 (en) * 2008-12-10 2015-04-21 Nvidia Corporation Chipset support for non-uniform memory access among heterogeneous processing units
US8144582B2 (en) 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US7873068B2 (en) * 2009-03-31 2011-01-18 Intel Corporation Flexibly integrating endpoint logic into varied platforms
US8521915B2 (en) * 2009-08-18 2013-08-27 Fusion-Io, Inc. Communicating between host computers and peripheral resources in an input/output (I/O) virtualization system
US9229859B2 (en) 2009-09-25 2016-01-05 Hewlett Packard Enterprise Development Lp Mapping non-prefetchable storage locations into memory mapped input/output space
US8539134B2 (en) 2010-02-15 2013-09-17 International Business Machines Corporation PCI express multiplier device
JP5764919B2 (ja) * 2010-12-16 2015-08-19 株式会社リコー 通信機器および通信システム
US8938567B2 (en) * 2010-03-11 2015-01-20 Ricoh Company, Limited Communication apparatus, communication system and adapter
GB2478727B (en) * 2010-03-15 2013-07-17 Advanced Risc Mach Ltd Translation table control
JP2011199419A (ja) * 2010-03-17 2011-10-06 Ricoh Co Ltd 画像形成装置、画像形成方法、およびプログラム
JP2011227539A (ja) * 2010-04-15 2011-11-10 Ricoh Co Ltd 画像処理装置
US8443126B2 (en) * 2010-09-22 2013-05-14 Wilocity, Ltd. Hot plug process in a distributed interconnect bus
US8677176B2 (en) 2010-12-03 2014-03-18 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US8521941B2 (en) * 2010-12-28 2013-08-27 Plx Technology, Inc. Multi-root sharing of single-root input/output virtualization
JP5903801B2 (ja) * 2011-08-23 2016-04-13 富士通株式会社 通信装置およびid設定方法
JP5682829B2 (ja) 2011-09-01 2015-03-11 日本電気株式会社 情報処理装置
JP2013088879A (ja) 2011-10-13 2013-05-13 Kyocera Document Solutions Inc 情報処理装置
US9128920B2 (en) * 2011-11-30 2015-09-08 Marvell World Trade Ltd. Interrupt handling systems and methods for PCIE bridges with multiple buses
US20140223061A1 (en) * 2011-12-19 2014-08-07 Keng Lai Yap System and deterministic method for servicing msi interrupts using direct cache access
JP2013196593A (ja) * 2012-03-22 2013-09-30 Ricoh Co Ltd データ処理装置、データ処理方法及びプログラム
WO2014000271A1 (zh) * 2012-06-29 2014-01-03 华为技术有限公司 一种pcie交换系统、装置及交换方法
TW201411358A (zh) 2012-09-10 2014-03-16 Accusys Inc 透過PCIe介面連接於一主機系統的儲存裝置和方法
US9189441B2 (en) * 2012-10-19 2015-11-17 Intel Corporation Dual casting PCIE inbound writes to memory and peer devices
US8995302B1 (en) * 2013-01-16 2015-03-31 Pmc-Sierra Us, Inc. Method and apparatus for translated routing in an interconnect switch
CN103095463B (zh) * 2013-02-01 2016-08-03 福建星网锐捷网络有限公司 Pcie交换网系统和通信方法
US9298658B2 (en) 2013-02-26 2016-03-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Using PCI-E extended configuration space to send IOCTLS to a PCI-E adapter
US9405688B2 (en) 2013-03-05 2016-08-02 Intel Corporation Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture
US8806098B1 (en) 2013-03-15 2014-08-12 Avalanche Technology, Inc. Multi root shared peripheral component interconnect express (PCIe) end point
US9286258B2 (en) * 2013-06-14 2016-03-15 National Instruments Corporation Opaque bridge for peripheral component interconnect express bus systems
CA2915767A1 (en) * 2013-06-18 2014-12-24 Cygnet Biosciences B.V. New macrocyclic amidinourea derivatives, methods of preparation and uses thereof as chitinase inhibitors
US9135200B2 (en) 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics

Also Published As

Publication number Publication date
CN114817103A (zh) 2022-07-29
EP3540604A1 (en) 2019-09-18
JP2016526727A (ja) 2016-09-05
US20210216485A1 (en) 2021-07-15
EP4137953A1 (en) 2023-02-22
US20150347339A1 (en) 2015-12-03
EP3933604B1 (en) 2023-09-20
DE202014011596U1 (de) 2023-01-12
EP4137953C0 (en) 2024-08-07
US20200110722A1 (en) 2020-04-09
EP2997483A4 (en) 2016-07-06
JP6325665B2 (ja) 2018-05-16
HUE037146T2 (hu) 2018-08-28
US11429550B2 (en) 2022-08-30
EP4137953B1 (en) 2024-08-07
KR20180026570A (ko) 2018-03-12
HUE044846T2 (hu) 2019-11-28
US20150006780A1 (en) 2015-01-01
EP3540604B1 (en) 2021-05-19
CN108268412B (zh) 2022-04-05
CN108268412A (zh) 2018-07-10
EP3933604A1 (en) 2022-01-05
EP2997483B1 (en) 2017-08-23
WO2014206356A2 (en) 2014-12-31
ES2884848T3 (es) 2021-12-13
EP2997483A2 (en) 2016-03-23
AU2014301745B2 (en) 2017-04-20
US11954058B2 (en) 2024-04-09
WO2014206356A3 (en) 2015-04-23
US20180300277A1 (en) 2018-10-18
US10417160B2 (en) 2019-09-17
DK3273358T3 (da) 2019-08-05
NO3027015T3 (es) 2018-04-07
EP3273358B1 (en) 2019-05-15
US20180300276A1 (en) 2018-10-18
KR20160014062A (ko) 2016-02-05
KR101835851B1 (ko) 2018-04-19
US10922259B2 (en) 2021-02-16
US10210124B2 (en) 2019-02-19
CN105359124A (zh) 2016-02-24
JP6790015B2 (ja) 2020-11-25
ES2741100T3 (es) 2020-02-10
JP2018125028A (ja) 2018-08-09
CN115129638A (zh) 2022-09-30
AU2014301745A1 (en) 2016-01-07
US9135200B2 (en) 2015-09-15
US20220276976A1 (en) 2022-09-01
CN105359124B (zh) 2018-03-13
EP3273358A1 (en) 2018-01-24
KR101906525B1 (ko) 2018-10-10
US10216676B2 (en) 2019-02-26

Similar Documents

Publication Publication Date Title
ES2642829T3 (es) Sistema y procedimiento para estructuras extendidas de interconexión de componentes periféricos exprés
ES2640452T3 (es) Método y aparato para extender el dominio de bus PCIE
US10592455B1 (en) Computer interconnect isolation
JPWO2015194534A1 (ja) スイッチ装置とコンピュータシステムと方法並びにプログラム