ES2687609T3 - Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo - Google Patents

Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo Download PDF

Info

Publication number
ES2687609T3
ES2687609T3 ES16180277.2T ES16180277T ES2687609T3 ES 2687609 T3 ES2687609 T3 ES 2687609T3 ES 16180277 T ES16180277 T ES 16180277T ES 2687609 T3 ES2687609 T3 ES 2687609T3
Authority
ES
Spain
Prior art keywords
access
pcie
processor
terminal
proxy
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
ES16180277.2T
Other languages
English (en)
Inventor
Ge DU
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 ES2687609T3 publication Critical patent/ES2687609T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/28DMA
    • G06F2213/2802DMA using DMA transfer descriptors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)
  • Power Sources (AREA)
  • Hardware Redundancy (AREA)

Abstract

Un proxy de acceso, en donde el proxy de acceso se aplica a un sistema informático, el sistema informático comprende un procesador (110) y un bus de interconexión de componentes periféricos exprés, PCIe, y el bus PCIe está conectado, al menos, a un terminal PCIe (130); el proxy de acceso (160) está conectado al procesador (110) y al terminal PCIe (130); y el proxy de acceso (160) está configurado para recibir desde el procesador una solicitud de acceso al terminal PCIe y devolverle al procesador un mensaje de respuesta a la solicitud de acceso con el fin de permitir que el procesador (110) determine si se ha completado la tarea correspondiente a la solicitud de acceso, acceder al terminal PCIe (130) de acuerdo con la solicitud de acceso, enviarle al procesador (110) un primer mensaje de notificación o un segundo mensaje de notificación, en donde el primer mensaje de notificación indica que el acceso al terminal PCIe se ha realizado con éxito, de tal modo que el procesador (110) obtiene el resultado del acceso al recibir el primer mensaje de notificación, el segundo mensaje de notificación indica que el acceso al terminal PCIe ha fallado, de tal modo que al recibir el segundo mensaje de notificación el procesador (110) ejecuta el procesamiento subsiguiente a un fallo de acceso.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCIÓN
Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo
Campo técnico
Los modos de realización de la presente invención están relacionados con el campo de las tecnologías de computación y, en particular, con un método de acceso a un terminal de interconexión de componentes periféricos exprés, un sistema informático y un equipo.
Antecedentes
Una Interconexión de Componentes Periféricos Exprés (Peripheral Component Interconnect Express, PCIe) es un bus (canal compartido de comunicación) de alto rendimiento de un sistema que se utiliza en una plataforma de cálculo y comunicación. El bus PCIe es ampliamente utilizado en el sistema de interconexión de una unidad central de procesamiento (central processing unit, CPU) y un dispositivo periférico, y funciona como un canal de servicio principal en un dispositivo de cálculo y almacenamiento. Puede haber múltiples tipos de dispositivos periféricos que se interconectan con una CPU a través de un bus PCIe, tales como un dispositivo tarjeta de interfaz de red o un disco de estado sólido (Solid State Disk, SSD). En este documento, tales dispositivos se denominan terminales PCIe.
El bus PCIe es ampliamente utilizado como interfaz de bus de un servidor o un sistema de almacenamiento. A consecuencia de una necesidad en línea de ampliación y mantenimiento de capacidad, esto es, una necesidad de conexión/desconexión en caliente, durante la operación normal de un sistema, es necesario que un terminal PCIe se instale o retire sin apagarlo. La conexión/desconexión actual en caliente de un PCIe sigue el siguiente proceso de operación: un operador inicia una solicitud de conexión/desconexión en caliente pulsando un botón; después de detectar un evento de conexión/desconexión en caliente, un controlador de conexión/desconexión en caliente notifica a todas las unidades que puedan acceder al terminal PCIe que dejen de acceder al terminal PCIe, y desinstala los recursos del terminal PCIe en el que es necesario realizar la conexión/desconexión en caliente; y, a continuación, el terminal PCIe se apaga y el operador extrae el terminal PCIe.
Con el fin de garantizar el funcionamiento normal del sistema, es necesario notificar previamente la conexión/desconexión en caliente actual de un terminal PCIe. Sin embargo, en los últimos años, el bus PCIe ha evolucionado progresivamente desde la interconexión interna del sistema hasta la interconexión entre sistemas, y la utilización de, por ejemplo, cables externos, ha aumentado. Los cables se desconectan fácilmente de forma anómala y, en consecuencia, se produce una situación en la que un terminal PCIe se desconecta de forma anómala sin notificación previa. Además, cada vez más se da la situación en la que un usuario conecta directamente un disco de estado sólido SSD a un sistema. El usuario puede insertar o extraer el disco SSD sin previo aviso debido a un hábito del usuario. En la situación mencionada en la que el terminal PCIe se desconecta de forma anómala y repentina, si la CPU ha iniciado las instrucciones de lectura y escritura para el terminal PCIe, las instrucciones en curso permanecerán en estado de espera para ser ejecutadas; y cuando las instrucciones para acceder al terminal PCIe desde la CPU se acumulan de forma continua hasta un cierto límite, la CPU considera que todo el sistema se encuentra en un estado anómalo y notifica un error de excepción de comprobación de equipo (Machine check exception, MCE). Como resultado, se produce un reinicio de todo el sistema.
Resumen
Los modos de realización de la presente invención proponen un método para acceder a un terminal de interconexión de componentes periféricos exprés, un sistema informático y un equipo, para evitar un reinicio generado por un procesador después de que un terminal PCIe se apague de forma anómala.
En un primer aspecto, un modo de realización de la presente invención proporciona un sistema informático que incluye:
un procesador; y
un bus de interconexión de componentes periféricos exprés PCIe, configurado para conectar un terminal PCIe, en donde:
el sistema informático incluye, además, un proxy (servidor intermedio) de acceso y el proxy de acceso está conectado al procesador y al terminal PCIe;
el procesador está configurado para recibir una instrucción de acceso, en donde la instrucción de acceso le indica al procesador que acceda al terminal PCIe a través del proxy de acceso; y le envía al proxy de acceso una solicitud de acceso basada en la instrucción de acceso, en donde la solicitud de acceso le indica al proxy de acceso que acceda al terminal PCIe; y
el proxy de acceso está configurado para enviarle al procesador un mensaje de respuesta a la solicitud de acceso
5
10
15
20
25
30
35
40
45
50
después de recibir la solicitud de acceso enviada por el procesador.
En relación con el primer aspecto, en una primera forma posible de implementación, el sistema informático incluye además: un controlador del terminal PCIe, configurado para generar la instrucción de acceso de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta al proxy de acceso; y
el procesador está configurado específicamente para recibir la instrucción de acceso generada por el controlador del terminal PCIe.
En relación con el primer aspecto, en una segunda forma posible de implementación, el sistema informático incluye además: un controlador de un terminal PCIe y un sistema operativo anfitrión (host), en donde:
el controlador del terminal PCIe está configurado para pasarle el control al sistema operativo anfitrión con el fin de acceder al terminal PCIe;
el sistema operativo anfitrión recibe una respuesta a la invocación del controlador del terminal PCIe, y genera la instrucción de acceso de acuerdo con la interfaz predeterminada de acceso al terminal PCIe, y la interfaz predeterminada de acceso al terminal PCIe apunta al proxy de acceso; y
el procesador está configurado específicamente para recibir la instrucción de acceso generada por el sistema operativo anfitrión.
En relación con el primer aspecto, la primera forma posible de implementación del primer aspecto, o el segundo método posible de implementación del primer aspecto, en un tercer método posible de implementación el proxy de acceso está configurado, además, para acceder al terminal PCIe de acuerdo con la solicitud de acceso.
En un segundo aspecto se proporciona un método para acceder a un terminal de interconexión de componentes periféricos exprés PCIe, en donde el terminal PCIe está conectado a un procesador de un sistema informático a través de un bus PCIe, que incluye:
recibir, por parte del procesador, una instrucción de acceso, en donde la instrucción de acceso le indica al procesador que acceda al terminal PCIe a través de un proxy de acceso;
enviar, por parte del procesador, una solicitud de acceso al proxy de acceso de acuerdo con la instrucción de acceso, en donde la solicitud de acceso le indica al proxy de acceso que acceda al terminal PCIe; y
recibir, por parte del procesador, un mensaje de respuesta a la solicitud de acceso enviado por el proxy de acceso.
En relación con el segundo aspecto, en una primera forma posible de implementación, el procesador recibe la instrucción de acceso generada por el controlador del terminal PCIe de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada para acceder al terminal PCIe apunta al proxy de acceso; alternativamente, el procesador recibe la instrucción de acceso generada por el sistema operativo anfitrión de acuerdo con la interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta al proxy de acceso. En relación con el segundo aspecto o la primera forma posible de implementación del segundo aspecto, en una segunda forma posible de implementación, la instrucción de acceso le indica específicamente al procesador que acceda al terminal PCIe utilizando un controlador de acceso directo a memoria (Direct Memory Access, DMA); y
el procesador le envía una petición de migración de datos al controlador de DMA de acuerdo con la instrucción de acceso, en donde la petición de migración de datos le indica al controlador de DMA que transfiera unos datos determinados de la memoria del controlador PCIe a la memoria del sistema informático, o transfiera unos datos determinados de la memoria del sistema informático a la memoria del terminal PCIe.
En relación con el segundo aspecto, la primera forma posible de implementación del segundo aspecto, o el segundo método posible de implementación del segundo aspecto, en una tercera forma posible de implementación, el método incluye, además:
recibir, por parte del procesador, un primer mensaje de notificación enviado por el proxy de acceso, en donde el primer mensaje de notificación indica que el proxy de acceso ha accedido con éxito al terminal PCIe; y
recibir, por parte del procesador, el resultado del acceso de acuerdo con el primer mensaje de notificación.
En relación con el segundo aspecto, la primera forma posible de implementación del segundo aspecto o el segundo método posible de implementación del segundo aspecto, en una cuarta forma posible de implementación, el método incluye, además:
recibir, por parte del procesador, un segundo mensaje de notificación enviado por el proxy de acceso, en donde el segundo mensaje de notificación indica que el proxy de acceso no ha podido acceder al terminal PCIe; y
5
10
15
20
25
30
35
40
45
ejecutar, por parte del procesador, el procesamiento subsiguiente a un fallo de acceso de acuerdo con el segundo mensaje de notificación.
En relación con el cuarto método posible de implementación del segundo aspecto, en un quinto método posible de implementación, el procesamiento subsiguiente al fallo de acceso incluye:
determinar, por parte del procesador, un motivo por el que el proxy de acceso no puede acceder al terminal PCIe, y si el motivo del fallo de acceso es que el terminal PCIe al que se desea acceder se ha desconectado de forma anómala, interrumpir, por parte del procesador, el acceso al terminal PCIe.
En un tercer aspecto se proporciona un ordenador, que incluye:
un procesador; y
una memoria, configurada para almacenar una instrucción de ejecución para el ordenador, en donde:
cuando el ordenador se encuentra en ejecución, el procesador ejecuta la instrucción de ejecución para el ordenador almacenada en la memoria y se comunica con un dispositivo externo al ordenador de acuerdo con una interfaz de comunicaciones, con el fin de que el ordenador ejecute un método para acceder al terminal de interconexión de componentes periféricos exprés PCIe de acuerdo con el segundo aspecto.
En un cuarto aspecto se proporciona un medio legible por ordenador, que incluye: una instrucción de ejecución para el ordenador, en donde el ordenador ejecuta un método para acceder a un terminal de interconexión de componentes periféricos PCIe de acuerdo con el segundo aspecto cuando un procesador del ordenador ejecuta la instrucción de ejecución para el ordenador.
En un quinto aspecto se proporciona un método para acceder a un terminal de interconexión de componentes periféricos PCIe, en donde el terminal PCIe está conectado a un procesador de un sistema informático a través de un bus PCIe, que incluye:
recibir una instrucción de invocación, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe; y
generar una instrucción de acceso de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta a un proxy de acceso, y la instrucción de acceso se utiliza para indicarle al procesador que acceda al terminal PCIe a través del proxy de acceso.
En un sexto aspecto se proporciona un equipo para acceder a un terminal de interconexión de componentes periféricos exprés PCIe, que incluye:
un módulo de recepción, configurado para recibir una instrucción de invocación, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe; y
un módulo de generación, configurado para generar una instrucción de acceso para acceder al terminal PCIe de acuerdo con una interfaz predeterminada para acceder al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta al proxy de acceso y la instrucción de acceso se utiliza para indicarle al procesador que acceda al terminal PCIe a través del proxy de acceso.
En un séptimo aspecto se proporciona un ordenador, que incluye:
un procesador; y
una memoria, configurada para almacenar una instrucción de ejecución para el ordenador, en donde:
cuando el ordenador se encuentra en ejecución, el procesador ejecuta la instrucción de ejecución para el ordenador almacenada en la memoria, de tal modo que el ordenador ejecuta el siguiente método:
recibir una instrucción de invocación, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe; y
generar una instrucción de acceso para acceder al terminal PCIe de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta al proxy de acceso y la instrucción de acceso se utiliza para indicarle al procesador que acceda al terminal PCIe a través del proxy de acceso.
En un octavo aspecto se proporciona un medio legible por ordenador, que incluye: una instrucción de ejecución para el ordenador, en donde el ordenador aplica el siguiente método cuando el procesador del ordenador ejecuta la instrucción de ejecución para el ordenador:
recibir una instrucción de invocación, en donde la instrucción de invocación indica que es necesario acceder al
5
10
15
20
25
30
35
40
45
terminal PCIe; y
generar una instrucción de acceso para acceder al terminal PCIe de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta al proxy de acceso y la instrucción de acceso se utiliza para indicarle al procesador que acceda al terminal PCIe a través del proxy de acceso.
En un noveno aspecto se proporciona un proxy de acceso, en donde el proxy de acceso se utiliza con el sistema informático, el sistema informático incluye un procesador y un bus de interconexión de componentes periféricos exprés PCIe, y el bus PCIe está conectado al menos a un terminal PCIe;
el proxy de acceso está conectado al procesador y al terminal PCIe; y
el proxy de acceso está configurado para confinar el acceso directo entre el procesador y el terminal PCIe, recibir una solicitud de acceso al terminal PCIe desde el procesador y devolverle al procesador un mensaje de respuesta a la solicitud de acceso.
En un décimo aspecto se proporciona un intercambiador PCIe, en donde el intercambiador PCIe se utiliza con el sistema informático, el sistema informático incluye un procesador y un bus de interconexión de componentes periféricos exprés PCIe, y el bus PCIe está conectado al menos a un terminal PCIe;
un puerto de flujo ascendente del intercambiador PCIe está conectado al procesador a través del bus PCIe y el puerto de flujo descendente del intercambiador PCIe está conectado al terminal PCIe a través del bus PCIe; y
el proxy de acceso de acuerdo con el noveno aspecto está integrado en el intercambiador PCIe.
En un undécimo aspecto se proporciona un método para asignar recursos a un terminal de interconexión de componentes periféricos exprés PCIe al que accede el sistema informático, que incluye:
reservar un subconjunto específico de recursos para cada puerto de acceso al terminal PCIe, en donde el subconjunto específico es mayor o igual que la cantidad de recursos requeridos para el terminal PCIe; y
asignar a cada puerto, de acuerdo con el subconjunto específico de recursos reservados, el subconjunto específico de recursos reservados para acceder al terminal PCIe.
De acuerdo con el undécimo aspecto, en una primera forma posible de implementación, el subconjunto específico es la cantidad de recursos requeridos por el tipo de terminal PCIe que requiere la cantidad máxima de recursos.
De acuerdo con el undécimo aspecto o la primera forma posible de implementación del undécimo aspecto, en una segunda forma posible de implementación, el terminal PCIe al que accede el sistema informático y un procesador constituyen un campo PCIe, en donde el campo PCIe está configurado con un árbol PCIe correspondiente; y
el método incluye, además: registrar, en el árbol PCIe, el subconjunto específico de recursos asignados a cada puerto de acceso al terminal PCIe.
De acuerdo con la segunda forma posible de implementación del undécimo aspecto, en una tercera forma posible de implementación, el método incluye:
cuando cada terminal PCIe se encuentra desconectado del sistema informático, reservar el subconjunto específico de recursos que están asignados a cada puerto de acceso al terminal PCIe y se registran en el árbol PCIe.
En un duodécimo aspecto, se proporciona un sistema informático, que incluye:
un procesador; y
un bus de interconexión de componentes periféricos exprés PCIe, configurado para conectar un terminal PCIe;
un sistema básico de entrada-salida BIOS, configurado para reservar un subconjunto específico de recursos para cada puerto de acceso al terminal PCIe, en donde el subconjunto específico es mayor o igual que la cantidad de recursos requeridos por el terminal PCIe; y
un módulo de administración PCIe, configurado para asignar, de acuerdo con el subconjunto específico de recursos reservados por el BIOS, el subconjunto específico de recursos reservado para cada puerto de acceso al terminal PCIe.
En los modos de realización de la presente invención, un procesador ya no accede directamente a un terminal PCIe al que se desea acceder, sino que completa el acceso utilizando un proxy de acceso. El proxy de acceso es capaz de confinar el impacto ocasionado por una desconexión anómala del terminal PCIe y devolverle al procesador un mensaje de respuesta a una solicitud de acceso, de modo que las tareas almacenadas en el procesador no se acumulen debido al tiempo de espera y como resultado el procesador evita un reinicio por MCE.
5
10
15
20
25
30
35
40
45
50
En los modos de realización de la presente invención, el sistema reserva y asigna un subconjunto específico de recursos a un puerto para acceder a un terminal PCIe, por lo que el procesador no comprueba el terminal PCIe cuando el terminal PCIe accede al sistema. Ello evita un reinicio de todo el sistema debido a un error de MCE que se puede producir cuando el terminal PCIe accede al sistema informático.
Breve descripción de los dibujos
Con el fin de ilustrar de forma más clara las soluciones técnicas contenidas en los modos de realización de la presente invención, a continuación se introducen brevemente los dibujos adjuntos requeridos para describir los modos de realización o la técnica anterior.
La FIG. 1 es un diagrama de la composición de un sistema informático de acuerdo con un modo de realización de la presente invención;
la FIG. 2 es un diagrama de la composición de los módulos de programa incluidos en una memoria de acuerdo con un modo de realización de la presente invención;
la FIG. 3 es un diagrama de la composición de otro sistema informático de acuerdo con un modo de realización de la presente invención;
la FIG. 4 es un diagrama de la composición de otro sistema informático de acuerdo con un modo de realización de la presente invención;
la FIG. 5 es un diagrama de flujo de un método de acuerdo con un modo de realización de la presente invención;
la FIG. 6 es un diagrama de flujo de otro método de acuerdo con un modo de realización de la presente invención;
la FIG. 7 es un diagrama de flujo de otro método de acuerdo con un modo de realización de la presente invención;
la FIG. 8 es un diagrama de flujo de otro método de acuerdo con un modo de realización de la presente invención;
la FIG. 9 es un diagrama de flujo de otro método de acuerdo con un modo de realización de la presente invención;
la FIG. 10 es un diagrama de flujo de otro método de acuerdo con un modo de realización de la presente invención;
la FIG. 11 es un diagrama de la composición de un equipo para acceder a un terminal PCIe de acuerdo con un modo de realización de la presente invención; y
la FIG. 12 es un diagrama de la composición de un ordenador de acuerdo con un modo de realización de la presente invención.
Descripción de los modos de realización
Los modos de realización de la presente invención proporcionan un método para acceder a un terminal de interconexión de componentes periféricos exprés, un sistema informático y un equipo. Cuando es necesario realizar una operación de conexión/desconexión en caliente en un terminal PCIe, es posible que no se le notifique al sistema con antelación el procesamiento y la conexión entre el terminal PCIe y el procesador se desconecte directamente. En ese instante no existe en el procesador un riesgo de reinicio por MCE. En los modos de realización de la presente invención, una situación en la que el terminal PCIe se extrae directamente del sistema o se encuentra desconectado debido a un error se denomina globalmente desconexión anómala de la central del terminal PCIe.
Arquitectura del sistema en un modo de realización de la presente invención
La FIG. 1 es un diagrama de la composición de un sistema informático de acuerdo con un modo de realización de la presente invención. El sistema informático que se ilustra en la FIG. 1 incluye una CPU 110, una memoria 120 y un terminal PCIe 130. El terminal PCIe 130 está conectado a la CPU 110 a través de un bus PCIe 140 y se puede insertar en o extraer del sistema informático. El terminal PCIe 130 incluye múltiples tipos, tales como una unidad 131 de procesamiento de gráficos, una tarjeta 132 de interfaz de red, un disco 133 de estado sólido y un componente 134 de aceleración de vídeo. La memoria 120 está configurada para almacenar datos, en donde los datos almacenados pueden ser datos obtenidos por la CPU desde un dispositivo externo o también pueden ser datos del programa que permiten que la CPU opere. En particular, en la memoria se pueden almacenar uno o más módulos de programa, y la CPU 110 ejecuta una operación relacionada basada en una instrucción de ejecución para el ordenador de un módulo de programa. En el sistema informático que se ilustra en la FIG. 1, el terminal PCIe 130 y la CPU 110 constituyen un campo PCIe, y todos los dispositivos en el campo PCIe se conectan a la CPU 110 a través del bus PCIe 140 y son controlados por la CPU 110.
En la arquitectura del sistema que se ilustra en la FIG. 1, tal como se ilustra en la FIG. 2, los módulos de programa almacenados en la memoria 120 pueden incluir específicamente un módulo 121 de aplicación, un módulo 122 de control y un sistema operativo anfitrión (Host Operating System, HOS) 123. El módulo 121 de aplicación genera una
5
10
15
20
25
30
35
40
45
50
55
60
solicitud de acceso a un terminal PCIe. El módulo 122 de control puede pasarle el control a una interfaz correspondiente del HOS 123 (si el HOS proporciona una interfaz de acceso) de acuerdo con la solicitud del módulo de aplicación para acceder al terminal PCIe. El HOS 123 genera una instrucción de acceso de acuerdo con, en respuesta a, la invocación por parte del controlador, de modo que la CPU accede o controla el terminal PCIe correspondiente de acuerdo con la instrucción de acceso. En general, un terminal PCIe se corresponde con un controlador (desde luego, es posible que un controlador se corresponda con múltiples terminales PCIe, siempre que se asegure que cada terminal PCIe esté equipado con un controlador correspondiente). Por ejemplo, de acuerdo con la arquitectura del sistema que se ilustra en la FIG. 1, los controladores de los terminales PCIe en la memoria 120 pueden incluir un controlador 122-1 de la unidad de procesamiento de gráficos, un controlador 122-2 de la tarjeta de interfaz de red NIC, un controlador 122-3 del disco de estado sólido SSD, y un controlador 122-4 del componente de aceleración de video.
Por ejemplo, si el módulo de aplicación genera una solicitud de acceso a un disco de estado sólido SSD, de acuerdo con el método actual para acceder a un terminal PCIe por parte de la CPU, el controlador 122-3 del SSD invoca al HOS 123 después de recibir la respuesta a la invocación por el módulo 121 de aplicación; el HOS 123 genera una instrucción de acceso para la CPU 110 de acuerdo con una interfaz de acceso configurada por defecto, en donde la instrucción de acceso incluye una instrucción del dispositivo SSD 133 al que se desea acceder y el requisito de operación relacionado; la CPU 110 le envía una solicitud de acceso al SSD 133 de acuerdo con la instrucción de acceso del controlador 122-3 del SSD, con el fin de solicitar acceso a un registro del SSD 133; si el SSD 133 se ha desconectado de forma anómala, la CPU 110 no recibirá desde el SSD 133 un mensaje de respuesta a la solicitud de acceso de la CPU 110, y en ese instante la CPU considera que la tarea de acceso no se ha completado; y si dichas tareas incompletas se acumulan en la CPU hasta un cierto límite, la CPU considera que todo el sistema se encuentra en un estado anómalo y notifica un error de MCE para su reinicio.
En este modo de realización de la presente invención cambia el método para acceder a un terminal PCIe por parte de la CPU. La CPU ya no accede directamente al terminal PCIe, sino que accede al terminal PCIe a través de un tercero. Tal como se ilustra en la FIG. 1, en este modo de realización de la presente invención se incorpora al sistema un proxy 160 de acceso, en donde el proxy 160 de acceso se utiliza en lugar de la CPU 110 para acceder al terminal PCIe y confinar el impacto en la CPU 110 de una desconexión anómala del terminal PCIe. Tal como se ilustra en la FIG. 1, la CPU 110 ya no utiliza la línea 1 para acceder al SSD 133, sino que utiliza la línea 2 y la línea 3 (la línea 1 es la Línea 1 que se ilustra en la figura, la línea 2 es la Línea 2 que se ilustra en la figura, la línea 3 es la Línea 3 que se ilustra en la figura, y las líneas de puntos de Línea 1 -3 que se ilustran en la figura no son conexiones reales, sino que se utilizan únicamente para ilustrar visualmente las líneas de flujo de señal entre cada uno de los módulos de la composición). La CPU 110 recibe en primer lugar la instrucción de acceso, en donde la instrucción de acceso le indica a la CPU que acceda al SSD 133 a través del proxy 160 de acceso. A continuación, la CPU 110 le envía la solicitud de acceso al proxy 160 de acceso a través de la línea 2. El proxy 160 de acceso le devuelve a la CPU 110 a través de la línea 2 un mensaje de respuesta a la solicitud de acceso. A continuación, el proxy de acceso realiza el acceso al terminal PCIe de acuerdo con la solicitud de acceso, esto es, realiza operaciones de lectura y escritura en el registro del SSD 133 a través de la línea 3. De este modo, en un aspecto, como la CPU 110 no genera una relación de señal directa con el terminal PCIe 130, para la CPU 110 resulta invisible si el terminal PCIe 130 está desconectado, esto es, el terminal PCIe no afecta al procesamiento del servicio de la CPU 110; en otro aspecto, el proxy 160 de acceso proporcionado por este modo de realización de la presente invención es capaz de devolverle a la CPU 110 un mensaje de respuesta después de recibir desde la CPU 110 la instrucción de acceso, de modo que siempre se puede recibir el correspondiente mensaje de respuesta a la solicitud de acceso enviada por la CPU 110. Por consiguiente, las tareas de acceso de la CPU 110 no se acumulan como consecuencia de no haberse completado dichas tareas, no se genera un error de MCE y se evita el reinicio del sistema activado por la CPU.
En este modo de realización de la presente invención se puede modificar el método para acceder a un terminal PCIe por parte de la CPU actualizando o mejorando un controlador correspondiente al terminal PCIe. Cuando esto se implementa reconstruyendo el controlador correspondiente al terminal PCIe, en primer lugar se configura una interfaz de acceso en el controlador correspondiente al terminal PCIe, en donde la interfaz de acceso predeterminada apunta al proxy de acceso; y cuando el controlador correspondiente al terminal PCIe determina que es necesario acceder al terminal PCIe, el controlador del terminal PCIe genera una instrucción de acceso de la CPU en relación con la interfaz de acceso predeterminada, en donde la instrucción de acceso le indica a la CPU que acceda al terminal PCIe a través del proxy de acceso.
Adicionalmente, el cambio del método para acceder a un terminal PCIe por parte de la CPU se puede implementar de acuerdo con otro método. Por ejemplo, el cambio se implementa modificando el HOS. En primer lugar se configura una interfaz de acceso en el HOS, en donde la interfaz de acceso predeterminada apunta al proxy de acceso. Cuando se determina que es necesario acceder al terminal PCIe, el controlador del terminal PCIe aún invoca al HOS para acceder al terminal PCIe. Después de que el HOS reciba la instrucción de invocación enviada por el terminal PCIe, como se ha predeterminado que la interfaz para acceder al terminal PCIe configurado en el HOS apunte al proxy de acceso, el HOS genera la instrucción de acceso, en donde la instrucción de acceso le indica a la CPU que acceda al terminal PCIe a través del proxy de acceso.
A continuación se describen las funciones y las formas de implementación detalladas del proxy de acceso de acuerdo con este modo de realización de la presente invención. El proxy de acceso de acuerdo con este modo de
5
10
15
20
25
30
35
40
45
50
55
60
realización de la presente invención incluye una función de confinamiento y una función de proxy de acceso. Funcionando como módulo de confinamiento, el proxy de acceso tiene que asegurar su independencia del terminal PCIe, así como asegurar su independencia de la CPU. Para mantener la independencia del terminal PCIe es necesario garantizar que el proxy de acceso no se pueda extraer directamente con el terminal PCIe y, por consiguiente, el proxy de acceso y el terminal PCIe deben pertenecer a dispositivos diferentes en la configuración física; para mantener la independencia de la CPU, se asegura esencialmente que el proxy de acceso tenga un procesador independiente. Cuando el procesador del proxy de acceso es independiente de la CPU del sistema, incluso si se extrae directamente el terminal PCIe, un impacto en el módulo proxy de acceso no contaminará a la CPU. Funcionando como módulo proxy, el proxy de acceso necesita realizar el acceso al terminal PCIe y devolver un mensaje de respuesta a una solicitud de acceso recibida desde la CPU, en donde el mensaje de respuesta a la solicitud de acceso puede ser una respuesta de confirmación, una respuesta de rechazo, o una respuesta de fallo. No obstante, cualquiera que sea el tipo de mensaje de respuesta, el mensaje le indica a la CPU que se ha recibido la solicitud de acceso enviada por la CPU. Después de recibir el mensaje de respuesta la CPU determina que la tarea actual se ha completado, y puede poner a cero el temporizador iniciado para la tarea. De este modo, el mecanismo de la CPU de puesta a cero del temporizador de tareas se comporta de forma normal, y los otros mensajes no se acumulan debido a la expiración del tiempo de espera, evitándose de este modo un reinicio por MCE generado por la CPU.
A partir de la consideración de las funciones del proxy de acceso, el proxy de acceso también se puede configurar en el sistema de múltiples formas. En la arquitectura del sistema que se ilustra en la FIG. 1, el proxy 160 de acceso se configura en el sistema informático como un dispositivo independiente y de nueva incorporación, y el proxy de acceso se conecta a la CPU y al terminal PCIe a través del bus PCIe. Por otro lado, el proxy 160 de acceso también se puede empaquetar con un dispositivo existente en el campo PCIe para su implementación. Por ejemplo, el proxy 160 de acceso se empaqueta con la CPU como firmware.
En este modo de realización de la presente invención el proxy de acceso se puede implementar mediante un hardware ya existente. Por ejemplo, el proxy de acceso se implementa utilizando un controlador de acceso directo a memoria (Direct Memory Access, DMA). El proxy de acceso también se puede implementar mediante un nuevo hardware. Por ejemplo, en un dispositivo de hardware que dispone de un procesador independiente se instala un módulo de software que tiene una función de proxy de acceso.
Como en este modo de realización de la presente invención el proxy de acceso tiene que devolverle a la CPU un mensaje de respuesta a la solicitud de acceso, en la forma concreta de implementación existen diferentes maneras de implementar la función del proxy de acceso. Una de las formas de implementación consiste en asegurar que la conexión entre el proxy de acceso y la CPU está asegurada, esto es, la relación de conexión entre los dos no se desconectará, o que el proxy de acceso no se puede conectar/desconectar en caliente de la CPU. Por ejemplo, un dispositivo de hardware en el que se ha cargado el proxy de acceso o un dispositivo de hardware que se utiliza para implementar el proxy de acceso se suelda a una placa de circuito impreso PCB conectada a la CPU, o una interfaz para conectar el dispositivo de hardware en el que se ha cargado el proxy de acceso o el dispositivo de hardware que se utiliza para implementar el proxy de acceso y el procesador se han fijado mediante un conector.
La FIG. 3 ilustra un sistema informático de acuerdo con otro modo de realización de la presente invención.
En el sistema informático que se ilustra en la FIG. 3, excepto la CPU, el bus PCIe y el terminal PCIe que se ilustran en la FIG. 1, se incluye además un intercambiador PCIe 150. Un puerto de flujo ascendente del intercambiador PCIe 150 está conectado a la CPU 110 a través de un bus PCIe 140, y un puerto de flujo descendente proporciona un puerto PCIe para cada unos de los terminales PCIe, en donde cada uno de los puertos PCIe se conecta a un terminal PCIe a través del bus PCIe 140. El intercambiador PCIe 150 está configurado para encaminar en el flujo descendente los datos hacia el puerto PCIe correspondiente y encaminar en el flujo ascendente hacia la CPU 110 los datos desde cada uno de los puertos PCIe independientes. En el modo de realización que se ilustra en la FIG. 3, se configura un nuevo proxy 160 de acceso dentro del intercambiador PCIe 150, y el proxy 160 de acceso de este modo de realización se implementa utilizando un controlador de DMA. El terminal PCIe 130 se conecta al intercambiador PCIe 150 a través del bus PCIe 140. Como el intercambiador PCIe 150 y el terminal PCIe 130 pertenecen a dispositivos diferentes, la extracción directa de cualquier terminal PCIe no provoca la extracción del intercambiador PCIe 150 del sistema, esto es, se asegura que con la extracción del terminal PCIe no se elimina el proxy 160 de acceso, implementándose de este modo la independencia del proxy 160 de acceso y el del terminal PCIe 130. Adicionalmente, en este modo de realización, como el controlador de DMA tiene un procesador independiente, si se extrae directamente cualquier terminal PCIe e incluso se afecta el acceso al terminal PCIe desde el DMA, el DMA confina el impacto. Independientemente de si el acceso al terminal PCIe se realiza con éxito, se garantiza que el DMA le devuelve a la CPU 110 un mensaje de respuesta a la solicitud de acceso enviada por la CPU 110, evitándose de este modo el problema de reinicio por MCE activado por la CPU.
Se continúa utilizando a modo de ejemplo la generación por parte de un módulo de aplicación de una solicitud de acceso a un disco 133 de estado sólido SSD. La CPU 110 recibe una instrucción de acceso generada por un controlador 122-3 del disco de estado sólido SSD, en donde la instrucción de acceso le indica a la CPU 110 que acceda al disco 133 de estado sólido SSD utilizando el DMA. La CPU 110 le envía una petición de migración de datos al DMA de acuerdo con la instrucción de acceso del controlador 122-3 del disco de estado sólido SSD, en
5
10
15
20
25
30
35
40
45
50
55
donde la petición de migración de datos le indica al controlador de DMA que transfiera unos datos determinados de la memoria del terminal PCIe a la memoria del sistema informático, o que transfiera unos datos determinados de la memoria del sistema informático a la memoria del terminal PCIe. Después de recibir de la CPU 110 la petición de migración de datos, el DMA le devuelve a la CPU 110 un mensaje de respuesta a la petición de migración de datos, realiza la transferencia de datos en el disco 133 de estado sólido SSD, y después de completar la transferencia de datos le devuelve a la CPU 110 un mensaje de notificación de haber completado el acceso con el fin de indicarle a la CPU 110 que puede recibir el resultado del acceso.
Además, como en este modo de realización de la presente invención el DMA está integrado en el intercambiador PCIe 150, el intercambiador PCIe 150 se puede soldar, además, en una placa de circuito impreso PCB conectada a la CPU 110, o la interfaz para conectar el intercambiador PCIe 150 y la CPU 110 se fija mediante el uso de un terminal. De este modo se asegura que el DMA integrado en el intercambiador PCIe 150 no se pueda extraer del sistema y, por consiguiente, asegura que el DMA siempre sea capaz de devolver a la CPU un mensaje de respuesta a una solicitud de acceso.
La FIG. 4 ilustra un sistema informático de acuerdo con otro modo de realización de la presente invención.
El modo de realización que se ilustra en la FIG. 4 es diferente del modo de realización que se ilustra en la FIG. 3 en que un proxy 160 de acceso se ha incorporado recientemente en una CPU 110, en donde el proxy 160 de acceso puede implementarse utilizando un controlador de DMA. El proxy 160 de acceso se integra dentro de la CPU 110, esto es, se asegura que el proxy 160 de acceso no se elimine con la eliminación de un terminal PCIe, implementando así la independencia del servidor proxy 160 de acceso y el terminal PCIe 130. Además, en este modo de realización, como el controlador de DMA tiene un procesador independiente, si se elimina directamente cualquier terminal PCIe e incluso se afecta el acceso al terminal PCIe del DMA, el DMA confina el impacto para que la CPU 110 no se vea afectada. Independientemente de si el acceso al terminal PCIe se ha realizado con éxito, se garantiza que el DMA devuelve a la CPU 110 un mensaje de respuesta a la solicitud de acceso enviada por la CPU 110, evitando así un problema de reinicio por MCE iniciado por la CPU. Un método de acceso detallado en este modo de realización es consistente con los descritos en los modos de realización que se ilustran en la FIG. 1 y la FIG. 3, y por lo tanto, no se proporcionan más detalles en la presente solicitud.
En los modos de realización de la presente invención, en el sistema informático que se ilustra en las FIG. 1, 3 ó 4 se puede implementar un método para acceder a un terminal PCIe. Sin embargo, lo que se ilustra en las FIG. 1, 3 ó 4 es solo un ejemplo aplicable a los modos de realización de la presente invención pero no constituye una limitación específica a la aplicación de la presente invención. En el documento de esta solicitud no se describen otros modos de realización o escenarios de aplicación del sistema. Por otro lado, las configuraciones del proxy de acceso en el sistema que se ilustra en las FIG. 1, 3 ó 4 son solo ejemplos. Aquellos experimentados en la técnica pueden ubicar, además, el proxy de acceso recién incorporado en los modos de realización de la presente invención en otra posición del sistema o utilizar otros medios técnicos para la implementación de acuerdo con el principio técnico de los modos de realización de la presente invención.
La CPU 110 que se ilustra en las FIG. 1, 3 ó 4 también es solo un ejemplo. Por ejemplo, puede ser un circuito integrado específico. No importa en qué forma, implementa una función de procesador en un sistema informático. El sistema informático en los modos de realización de la presente invención puede ser un servidor de cálculo, o puede ser un servidor que gestiona rutas, como un conmutador. Una forma de implementación detallada del sistema informático no está limitada en este modo de realización de la presente invención.
Proceso para acceder a un terminal PCIe
A continuación, se describe un proceso para acceder a un terminal PCIe de acuerdo con un modo de realización de la presente invención, en donde el proceso se implementa mediante un proxy de acceso recién incorporado a un sistema informático. Tal como se ilustra en la FIG. 5, en este modo de realización de la presente invención un proceso para acceder a un terminal PCIe incluye:
S501: Una CPU recibe una instrucción de acceso, en donde la instrucción de acceso le indica a la CPU que acceda al terminal PCIe mediante el proxy de acceso del sistema informático.
En particular, la instrucción de acceso puede ser generada por un controlador del terminal PCIe. Como el controlador del terminal PCIe ha configurado previamente el proxy de acceso como interfaz para acceder al terminal PCIe, cuando un módulo de aplicación de una capa superior genera una solicitud de acceso a un terminal PCIe, el controlador del terminal PCIe genera un instrucción de acceso para acceder al terminal PCIe, en donde la instrucción de acceso le indica a la CPU que acceda al terminal PCIe al que se desea acceder a través del proxy de acceso del sistema informático. Alternativamente, la instrucción de acceso también puede ser generada por el HOS del sistema informático. El HOS ha configurado previamente el proxy de acceso como interfaz para acceder al terminal PCIe. Cuando el módulo de aplicación de la capa superior genera una solicitud de acceso a un terminal PCIe, el controlador del terminal PCIe invoca al HOS y el HOS genera la instrucción de acceso de acuerdo con la interfaz de acceso predeterminada, en donde la instrucción de acceso le indica a la CPU que acceda al terminal PCIe al que se desea acceder a través del proxy de acceso del sistema informático.
S502: La CPU le envía una solicitud de acceso al proxy de acceso de acuerdo con la instrucción de acceso, en donde la solicitud de acceso le indica al proxy de acceso que acceda al terminal PCIe.
S503: Después de recibir la solicitud de acceso enviada por la CPU el proxy de acceso le devuelve a la CPU un mensaje de respuesta a la solicitud de acceso.
5 El mensaje de respuesta a la solicitud de acceso puede ser una respuesta de confirmación, una respuesta de rechazo o una respuesta de fallo. Sin embargo, cualquiera que sea el tipo de mensaje de respuesta, el mensaje le indica a la CPU que se ha recibido la solicitud de acceso enviada por la CPU. Después de recibir el mensaje de respuesta la CPU determina que la tarea actual se ha completado y puede poner a cero el temporizador iniciado para la tarea. De este modo, el mecanismo de la CPU de puesta a cero del temporizador de tareas se comporta de 10 forma normal.
En el proceso, la CPU no accede directamente a un terminal PCIe al que se desea acceder, sino que completa el acceso mediante un proxy de acceso. El proxy de acceso es capaz de confinar el impacto ocasionado por una desconexión anómala del terminal PCIe y el proxy de acceso le devuelve a la CPU un mensaje de respuesta a la solicitud de acceso, de modo que las tareas almacenadas en la CPU no se acumulan debido a la expiración del 15 tiempo de espera, evitándose de este modo un reinicio por MCE para la CPU.
Además, tal como se ilustra en la FIG. 6, en otro modo de realización del proceso de la presente invención, el proceso para que un proxy de acceso acceda a un terminal PCIe incluye:
S601-S603: Estos pasos son los mismos que los pasos S501-S503 y, por consiguiente, no se proporcionan más detalles en la presente solicitud.
20 S604: El proxy de acceso inicia una operación de acceso al terminal PCIe de acuerdo con la solicitud de acceso de
la CPU.
S605: El proxy de acceso determina si la operación de acceso iniciada para el terminal PCIe se ha ejecutado con éxito; si la operación de acceso se ha realizado con éxito, continúa en el paso 606; y si la operación de acceso ha fallado, continúa en el paso 608.
25 S606: El proxy de acceso le envía a la CPU un primer mensaje de notificación de que el acceso se ha completado.
S607: Después de recibir el primer mensaje de notificación la CPU recibe el resultado del acceso.
Posteriormente, en función del resultado del acceso la CPU puede notificarle al módulo de la capa superior que el acceso se ha completado.
S608: El proxy de acceso le envía a la CPU un segundo mensaje de notificación de un fallo de acceso.
30 S609: Después de recibir el segundo mensaje de notificación la CPU ejecuta el procesamiento subsiguiente al fallo
de acceso.
En particular, el procesamiento subsiguiente a un fallo de acceso incluye: determinar el motivo por el que el proxy de acceso no ha podido acceder al terminal PCIe; si el motivo del fallo de acceso es que el terminal PCIe al que se desea acceder se ha desconectado de forma anómala, interrumpir, por parte de la CPU, el acceso al terminal PCIe; 35 y si el motivo del fallo de acceso es que ha fallado el proxy de acceso, reiniciar, por parte de la CPU, el proxy de acceso, o enviar una notificación indicando que el proxy de acceso ha fallado, con el fin de rectificar el fallo del proxy de acceso.
Después de interrumpir el acceso al terminal PCIe, la CPU puede, además, notificarle al módulo de capa superior que interrumpa el acceso al terminal PCIe.
40 El proceso describe un método para acceder a un terminal PCIe en este modo de realización de la presente invención. En dicho método un proxy de acceso, en lugar de la CPU, accede al terminal PCIe y le devuelve a la CPU un mensaje de respuesta a la solicitud de acceso, evitando de este modo un reinicio de todo el sistema debido a un error de MCE generado por la CPU. Además, cuando el proxy de acceso no consigue acceder al terminal PCIe, el proxy de acceso le notifica a la CPU un mensaje de fallo de acceso. La CPU realiza un diagnóstico del fallo y cuando 45 se determina que el fallo de acceso se debe a una desconexión anómala del terminal PCIe al que se desea acceder, se interrumpe el acceso al terminal PCIe al que se desea acceder, evitándose de este modo el consumo inútil de recursos que se produce cuando el sistema continúa intentando repetidamente accesos que no se pueden completar con éxito.
En combinación con el modo de realización del sistema informático que se ilustra en las FIG. 3 ó 4, cuando se 50 implementa un proxy de acceso utilizando un controlador de DMA, un módulo de aplicación de una capa superior genera una solicitud de operación de lectura para un SSD, en la FIG. 7 se ilustra un proceso específico de acceso, que incluye:
5
10
15
20
25
30
35
40
45
50
S701: La CPU de un sistema informático recibe una instrucción de acceso, en donde la instrucción de acceso incluye una interfaz de acceso y un contenido del acceso, la interfaz de acceso apunta al controlador de DMA, el contenido del acceso indica que el objeto de acceso es el SSD y el acceso es una operación de lectura, e indica la dirección de origen de la operación de lectura; y el contenido del acceso puede indicar además la longitud de la operación de lectura, aunque, generalmente, la longitud de la operación de lectura puede estar sujeta a una longitud por defecto en el sistema.
Cuando un terminal del flujo ascendente genera una solicitud de operación de lectura para el dispositivo SSD, un controlador del dispositivo SSD recibe en respuesta a la invocación por parte del terminal del flujo ascendente, y genera, una instrucción de acceso para acceder a un terminal PCIe de acuerdo con la interfaz de acceso predeterminada.
El método de implementación detallado de la instrucción de acceso enviada por el controlador a la CPU puede ser además de otra forma. Por ejemplo, la instrucción de acceso incluye informaciones que indican que el objeto de acceso es el SSD y el acceso es una operación de lectura e indica una dirección de inicio de la operación de lectura; además, a la instrucción de acceso se le añade una información para indicar el acceso al SSD que se deberá implementar mediante el controlador de DMA.
S702: La CPU le envía una petición de migración de datos al controlador de DMA de acuerdo con la instrucción de acceso, en donde la petición de migración de datos se utiliza para indicarle al controlador de DMA que transfiera unos datos determinados de la memoria del terminal PCIe a la memoria del sistema informático.
En particular, después de recibir la instrucción de acceso del controlador del SSD, la CPU solicita de la memoria del sistema informático una dirección de destino de la operación de lectura y, después de recibir la dirección de destino de la operación de lectura, le envía la petición de migración de datos al controlador de DMA, en donde la petición de migración de datos indica la dirección de origen, la dirección de destino y la longitud de la operación de lectura, con el fin de indicarle al controlador de DMA que transfiera datos de la longitud indicado para la operación de lectura desde la dirección de origen de la operación de lectura a la dirección de destino de la operación de lectura.
S703: Después de recibir la petición de migración de datos de la CPU el controlador de DMA le devuelve a la CPU un mensaje de respuesta a la petición de migración de datos, y después de recibir el mensaje de respuesta a la petición de migración de datos la CPU no cuenta el tiempo de espera para la petición de migración de datos, con el fin de asegurar que otros mensajes almacenados en la CPU no darán lugar a que la CPU genere un reinicio por MCE debido a la acumulación.
S704: El controlador de DMA inicia una solicitud de lectura para el dispositivo SSD, en donde la solicitud de lectura incluye la dirección de origen de la operación de lectura, y la operación de lectura se utiliza para solicitar que se lea en la memoria intermedia del controlador de DMA el valor de un registro correspondiente a la dirección de origen de la operación de lectura.
S705: El controlador de DMA determina si la solicitud de lectura se ha ejecutado con éxito; si la solicitud de lectura se ha ejecutado con éxito, continúa en el paso 706; y si la solicitud de lectura no se ha ejecutado con éxito, continúa en el paso 709.
S706: El controlador de DMA graba los datos en la dirección de destino de la operación de lectura dentro de su propia memoria intermedia de acuerdo con la solicitud de escritura.
S707: El controlador de DMA le envía a la CPU un primer mensaje de notificación, en donde el primer mensaje de notificación puede ser específicamente una primera interrupción MSI (Message Signaled Interrupts, MSI) para notificarle a la CPU que el acceso se ha completado.
S708: Después de recibir el primer mensaje de interrupción MSI la CPU lee los datos de la dirección de destino de la operación de lectura y puede notificarle al controlador del dispositivo de SSD que el acceso se ha completado.
S709: El controlador de DMA le envía a la CPU un segundo mensaje de notificación, en donde el segundo mensaje de notificación puede ser específicamente una segunda interrupción MSI para notificarle a la CPU que el acceso ha fallado.
S710: Después de recibir el segundo mensaje de interrupción MSI la CPU ejecuta el procesamiento subsiguiente a un fallo de acceso.
En particular, el procesamiento subsiguiente a un fallo de acceso puede incluir: iniciar un diagnóstico del controlador de DMA para determinar si ha fallado el controlador de DMA;
si el controlador de DMA ha fallado, reiniciar, por parte de la CPU, el controlador de DMA o enviar una notificación indicando que el controlador de DMA ha fallado, con el fin de recuperar el fallo del controlador de DMA; y
si el controlador de DMA no ha fallado, determinar que la causa del fallo de acceso es que el dispositivo SSD se ha desconectado de forma anómala, e interrumpir, por parte de la CPU, el acceso al dispositivo SSD.
5
10
15
20
25
30
35
40
45
50
Por otro lado, la CPU puede además indicarle al controlador del dispositivo SSD que interrumpa el acceso al dispositivo SSD.
En otro aspecto, haciendo referencia al modo de realización del sistema informático que se ilustra en las FIG. 3 ó 4, cuando se implementa un proxy de acceso utilizando un controlador de DMA, un módulo de aplicación de una capa superior genera una solicitud de operación de escritura para el SSD, en la FIG. 8 se ilustra un proceso específico de acceso, que incluye:
S801: La CPU recibe una instrucción de acceso generada por el controlador del SSD, en donde la instrucción de acceso incluye la interfaz de acceso y el contenido del acceso, la interfaz de acceso apunta al controlador de DMA y el contenido del acceso indica que el objeto del acceso es el dispositivo SSD y el acceso es una operación de escritura, e indica la dirección de origen y la dirección de destino de la operación de escritura.
El método de implementación detallado de la instrucción de acceso enviada por el controlador a la CPU puede ser además de otra forma. Por ejemplo, la instrucción de acceso incluye informaciones que indican que el objeto de acceso es el SSD y el acceso es una operación de escritura, e indica la dirección de origen y la dirección de destino de la operación de escritura; adicionalmente, en la instrucción de acceso se agrega una nueva indicación para indicar el acceso al SSD que se deberá implementar mediante el controlador de DMA.
S802: La CPU le envía al controlador de DMA una solicitud de acceso de acuerdo con la instrucción de acceso del controlador del SSD, en donde la petición de migración de datos se utiliza para indicarle al controlador de DMA que transfiera unos datos determinados de la memoria del sistema informático a la memoria del terminal PCIe.
En particular, después de recibir la instrucción de acceso del controlador del SSD la CPU le envía al controlador de DMA una petición de migración de datos, en donde la petición de migración de datos indica la dirección de origen, la dirección de destino y la longitud de la operación de escritura, con el fin de indicarle al controlador de DMA que transfiera datos de la longitud indicada para la operación de escritura desde la dirección de origen de la operación de escritura a la dirección de destino de la operación de escritura.
S803: Después de recibir la petición de migración de datos de la CPU el controlador de DMA le devuelve a la CPU un mensaje de respuesta a la petición de migración de datos.
S804: El controlador de DMA inicia una solicitud de lectura de la dirección de origen de la operación de escritura con el fin de leer los datos de la dirección de origen en un memoria intermedia del controlador de DMA.
S805: Después de leer los datos de la dirección de origen en su propia memoria intermedia el controlador de DMA inicia una solicitud de escritura en el dispositivo SSD, en donde la solicitud de escritura incluye la dirección de destino de la operación de escritura y la solicitud de escritura se utiliza para grabar los datos de la memoria intermedia del controlador de DMA en un registro que corresponde a la dirección de destino.
S806: El controlador de DMA determina si la solicitud de escritura se ha ejecutado con éxito; si la solicitud de escritura se ha ejecutado con éxito, continúa en el paso 807; y si la solicitud de escritura no se ha ejecutado con éxito, continúa en el paso 809.
S807: El controlador de DMA inicia una primera interrupción MSI (Message Signaled Interrupts, MSI) para la CPU con el fin de notificarle a la CPU que el acceso se ha completado.
S808: Después de recibir el primer mensaje de interrupción MSI la CPU detecta que la operación de escritura se ha completado y puede además notificarle al controlador del dispositivo SSD que el acceso se ha completado.
S809: El controlador de DMA inicia una segunda interrupción MSI para la CPU con el fin de notificarle a la CPU que el acceso ha fallado.
S810: Después de recibir el segundo mensaje de interrupción MSI la CPU ejecuta el procesamiento subsiguiente a un fallo de acceso.
En particular, el procesamiento subsiguiente a un fallo de acceso puede incluir: iniciar un diagnóstico en el controlador de DMA para determinar si ha fallado el controlador de DMA;
si el controlador de DMA ha fallado, reiniciar, por parte de la CPU, el controlador de DMA o enviar una notificación indicando que el controlador de DMA ha fallado, con el fin de recuperar el fallo del controlador de DMA; y
si el controlador de DMA no ha fallado, determinar que la causa del fallo de acceso es que el dispositivo SSD se ha desconectado de forma anómala, e interrumpir, por parte de la CPU, el acceso al dispositivo SSD.
Además, la CPU también puede indicarle al controlador del dispositivo SSD que interrumpa el acceso al dispositivo SSD.
En los modos de realización de la presente invención, los procesos que se ilustran en las FIG. 7 y 8 describen
5
10
15
20
25
30
35
40
45
50
procesos del método para que un controlador de DMA complete la lectura o escritura en un dispositivo SSD. En el método de lectura o escritura, el controlador de DMA, en lugar de la CPU, accede al terminal PCIe y le devuelve a la CPU un mensaje de respuesta a la solicitud de acceso, con el fin de que la CPU no genere un error de MCE y así evitar un reinicio de todo el sistema. Además, cuando el controlador de DMA no consigue transferir los datos desde el dispositivo SSD, el controlador de DMA le notifica a la CPU un mensaje de fallo de acceso, la CPU realiza un diagnóstico del fallo y, cuando determina que el fallo de acceso se debe a que el dispositivo SSD se ha extraído directamente del sistema o ha fallado, se interrumpe el acceso al dispositivo SSD, evitando de este modo el consumo inútil de recursos que se produce cuando el sistema continúa intentando repetidamente accesos que no se pueden completar con éxito.
Adicionalmente, en este modo de realización de la presente invención se puede modificar el método para que la CPU acceda a un terminal PCIe actualizando o mejorando el controlador que corresponde al terminal PCIe o el sistema operativo anfitrión. Si el controlador correspondiente al terminal PCIe se utiliza para modificar el método para que la CPU acceda a un terminal PCIe, se puede incluir el siguiente proceso:
S901: El controlador del terminal PCIe recibe una instrucción de invocación de un módulo de aplicación de una capa superior, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe.
S902: El controlador correspondiente al terminal PCIe genera una instrucción de acceso de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta a un proxy de acceso y la instrucción de acceso se utiliza para indicarle a la CPU que acceda al terminal PCIe a través del proxy de acceso.
Si para modificar el método para que una CPU acceda a un terminal PCIe se ha configurado el sistema operativo anfitrión, se puede incluir el siguiente proceso:
S1001: El controlador correspondiente al terminal PCIe recibe una instrucción de invocación de un módulo de aplicación de una capa superior, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe.
S1002: El controlador correspondiente al terminal PCIe invoca al sistema operativo anfitrión, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe.
S1003: El sistema operativo anfitrión genera una instrucción de acceso de acuerdo con una interfaz predeterminada para acceder al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta a un proxy de acceso, y la instrucción de acceso se utiliza para indicarle a la CPU que acceda al terminal PCIe a través del proxy de acceso.
Equipo en un modo de realización de la presente invención
Tal como se ilustra en la FIG. 11, un equipo para acceder a un terminal de Interconexión de Componentes Periféricos Exprés PCIe proporcionado en un modo de realización de la presente invención incluye:
un módulo 1101 de recepción, configurado para recibir una instrucción de invocación, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe; y
un módulo 1102 de generación, configurado para generar, de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, una instrucción de acceso para acceder al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta a un proxy de acceso y la instrucción de acceso se utiliza para indicarle a la CPU que acceda al terminal PCIe a través del proxy de acceso.
En particular, el equipo de acceso puede ser el controlador del terminal PCIe o el sistema operativo anfitrión del sistema informático.
La FIG. 12 es un diagrama de composición de la estructura de un ordenador de acuerdo con un modo de realización de la presente invención. En este modo de realización de la presente invención el ordenador puede incluir:
un procesador 1201, una memoria 1202, un bus 1204 del sistema y una interfaz 1205 de comunicaciones. La CPU 1201, la memoria 1202 y la interfaz 1205 de comunicaciones conectan y completan las comunicaciones entre las mismas mediante el bus 1204 del sistema.
En este modo de realización de la presente invención el procesador 1201 puede ser una unidad de procesamiento central de un solo núcleo o múltiples núcleos, o un circuito integrado específico, o está configurado como uno o más circuitos integrados.
La memoria 1202 puede ser una memoria RAM de alta velocidad o puede ser una memoria no volátil (non-volatil memory) como, por ejemplo, al menos una memoria de disco magnético.
La memoria 1202 está configurada para almacenar una instrucción 1203 de ejecución para el ordenador. En
5
10
15
20
25
30
35
40
45
50
55
particular, la instrucción 1203 de ejecución para el ordenador puede incluir un código de programa.
Cuando el ordenador se encuentra en ejecución, el procesador 1201 ejecuta la instrucción 1203 de ejecución para el ordenador y se puede ejecutar el proceso del método que se ilustra en una cualquiera de las FIG. 5 a 10.
Sistema informático para acceder a un terminal PCIe
Cuando se extrae un terminal PCIe de un sistema informático, es posible que más tarde se vuelva a insertar en el sistema informático. Por otro lado, también se da el caso de que se necesite conectar un nuevo terminal PCIe a un sistema informático en funcionamiento. Por ejemplo, como resultado de la popularidad de los dispositivos SSD, cada vez sucede con más frecuencia que un usuario inserta o extrae directamente un dispositivo SSD. En la técnica anterior, cuando se enciende cualquier terminal PCIe y se conecta al sistema, la CPU inicia un proceso de exploración y asignación de recursos al terminal PCIe; en el proceso de exploración del terminal PCIe recién encendido por parte de la CPU, si el terminal PCIe se extrae directamente del sistema, es posible que la CPU notifique un error de MCE, lo cual provoca un reinicio del sistema. Para evitar este problema, este modo de realización de la presente invención propone una nueva solución para asignar recursos a un terminal PCIe en la que, cuando el terminal PCIe se acaba de encender y está conectado al sistema, la CPU no necesita explorar o asignar recursos al terminal PCIe recién activado.
Durante el arranque del sistema informático, el sistema básico de entrada-salida (Basic Input-Output System, BIOS) tiene que reservar recursos para cada dispositivo del sistema. Para el terminal PCIe, el BIOS explora cada uno de los puertos para acceder al terminal PCIe. Cuando se localiza un terminal PCIe mediante exploración, el BIOS lee el registro correspondiente del terminal PCIe y reserva los recursos correspondientes en función de las necesidades del terminal PCIe; por ejemplo, reserva los recursos del bus y los recursos de dirección de memoria. En términos específicos, el puerto de acceso a un terminal PCIe que se describe en este modo de realización de la presente invención puede ser un puerto de enlace descendente de un intercambiador PCIe o un puerto de enlace descendente de un northbridge (puente norte) del sistema.
En la solución que se proporciona en este modo de realización de la presente invención para asignar recursos a un terminal PCIe, el método de reserva de recursos del BIOS del sistema informático es diferente al de la técnica anterior. Durante el arranque del sistema informático, el BIOS no reserva recursos en función de los requisitos reales del terminal PCIe localizado mediante la exploración, sino que reserva un subconjunto específico de recursos para cada uno de los puertos de acceso al terminal PCIe, en donde el subconjunto específico es mayor o igual que la cantidad de recursos que necesita el terminal PCIe y, preferentemente, el subconjunto específico puede ser la cantidad de recursos requerida por el tipo de terminal PCIe que requiere la cantidad máxima de recursos. Por ejemplo, el BIOS explora cada puerto de acceso a un terminal PCIe en el sistema informático, e independientemente de si mediante la exploración se encuentra un terminal PCIe, e independientemente de qué tipo de terminal PCIe se encuentra mediante la exploración, especifica que el tipo de terminal PCIe que requiere la cantidad máxima de recursos puede acceder posteriormente a cada uno de los puertos de acceso a un terminal PCIe. Si en el sistema actual se pueden usar 10 tipos de terminales PCIe y el que requiere la cantidad máxima de recursos es un dispositivo SSD que requiere 10M de recursos de memoria que no se pueden asignar previamente, y 3 buses PCIe, el BIOS reserva para cada puerto de acceso a un terminal PCIe unos recursos de 10M que no se pueden asignar previamente y 3 recursos de bus PCIe.
En segundo lugar, después de que el BIOS haya reservado los recursos, un módulo de administración PCIe del sistema informático permite que todos los terminales PCIe gestionados por una CPU en el sistema informático y el intercambiador PCIe constituyan un campo PCIe y configura un árbol PCIe correspondiente para el campo PCIe, en donde el árbol PCIe se utiliza para describir cada una de las capas de relaciones de conexión desde cada uno de los terminales PCIe del campo PCIe a la CPU, y el estado de la configuración de recursos de cada uno de los terminales PCIe. Como el BIOS ha reservado un subconjunto específico de recursos para cada puerto de acceso a un terminal PCIe, al cargar cada puerto de acceso a un terminal PCIe el módulo de administración PCIe no analiza los requisitos reales de cantidad de recursos del terminal PCIe del puerto, sino que asigna los recursos de acuerdo con una condición de reserva de recursos del BIOS, esto es, asigna un subconjunto específico de recursos reservados por el BIOS a cada puerto de acceso a un terminal PCIe, y registra el estado de asignación del subconjunto específico de recursos en el árbol PCIe.
Además, cuando un terminal PCIe falla o se encuentra desconectado del sistema informático, cuando se determina que el terminal PCIe está desconectado el módulo de administración PCIe no libera el subconjunto específico de recursos asignados al terminal PCIe que se encuentra desconectado. Por otro lado, la arquitectura del árbol PCIe permanece inalterada, esto es, la relación de conexión y el estado de la configuración de recursos del terminal PCIe desconectado se mantienen en el árbol PCIe. De este modo, como los recursos y la relación de conexión del terminal PCIe se han configurado en el campo PCIe, cuando el terminal PCIe se enciende y accede al campo PCIe, el módulo de administración PCIe le notifica al controlador correspondiente que el terminal PCIe está encendido y el terminal PCIe completa el acceso al campo PCIe del sistema informático. En esta solución, cuando el terminal PCIe se encuentra encendido, la CPU no necesita explorar el terminal PCIe, evitándose de este modo un reinicio de todo el sistema debido a un error de MCE que se pudiera producir cuando el terminal PCIe accede al sistema informático.
5
10
15
20
25
30
35
40
45
50
Las personas con un conocimiento normal de la técnica pueden entender que cada uno de los aspectos de la presente invención o una forma posible de implementación de cada uno de dichos aspectos se pueden implementar específicamente como un sistema, un método o un producto de programa para ordenador. Por lo tanto, cada uno de los aspectos de la presente invención o formas posibles de implementación de cada uno de dichos aspectos puede adoptar la forma de un modo de realización totalmente hardware, un modo de realización totalmente software (incluyendo firmware, software residente y similares) o un modo de realización que combine software y hardware, el cual, en la presente solicitud, se designa colectivamente como "circuito", "módulo" o "sistema". Además, cada uno de los aspectos de la presente invención o formas posibles de implementación de cada uno de los aspectos pueden adoptar la forma de producto de programa para ordenador, en donde el producto de programa para ordenador se refiere a un código de programa legible por ordenador en un medio legible por ordenador.
El medio legible por ordenador puede ser un medio de señales legibles por ordenador o un medio de memoria legible por ordenador. El medio de memoria legible por ordenador incluye, pero no se limita a, un sistema, un dispositivo o equipo electrónico, magnético, óptico, electromagnético, infrarrojo o semiconductor, o cualquier combinación apropiada de los mismos, tal como una memoria de acceso aleatorio (RAM), una memoria de solo lectura, una memoria de solo lectura programable y borrable (EPROM o memoria Flash), una fibra óptica, y una memoria portátil de solo lectura (CD-ROM).
El procesador de un ordenador lee el código de programa legible por ordenador almacenado en el medio legible por ordenador, de modo que el procesador es capaz de ejecutar las acciones funcionales estipuladas en cada paso o combinaciones de cada uno de los pasos de un diagrama de flujo, y se constituye un equipo que implementa las acciones funcionales estipuladas en cada bloque o una combinación de bloques del diagrama de bloques.
El código del programa legible por ordenador puede ser ejecutado completamente en el ordenador de un usuario, ejecutado parcialmente en el ordenador del usuario, ejecutado parcialmente en el ordenador del usuario y ejecutado parcialmente en un ordenador remoto cuando funciona como un paquete de software independiente, o ejecutado completamente en el ordenador remoto o en un servidor. También se debe observar que, en algunas soluciones de implementación alternativas, las funciones indicadas en cada paso en el diagrama de flujo o en cada bloque de un diagrama de bloques pueden no tener lugar en la secuencia indicada en el diagrama de flujo o en el diagrama. Por ejemplo, dependiendo de las funciones involucradas, dos pasos o dos bloques que se muestran uno tras otro, en la práctica se pueden ejecutar al mismo tiempo, o en ocasiones los bloques se ejecutan en una secuencia inversa.
Las personas con un conocimiento normal de la técnica pueden ser conscientes de que, en combinación con los ejemplos descritos en los modos de realización que se divulgan en esta memoria descriptiva, las unidades y los pasos de algoritmo se pueden implementar mediante un hardware electrónico, o una combinación de software para ordenador y hardware electrónico. El que las funciones se lleven a cabo mediante hardware o software depende de las aplicaciones particulares y las condiciones de restricción de diseño de las soluciones técnicas.
A continuación se proporcionan modos de realización adicionales de la presente invención. Se debe tener en cuenta que la numeración utilizada en la siguiente sección no tiene por qué responder necesariamente a la numeración utilizada en las secciones anteriores.
Modo de realización 1. Un sistema informático que comprende: un procesador; y
un bus de interconexión de componentes periféricos exprés PCIe, configurado para conectar un terminal PCIe, en donde:
el sistema informático incluye además un proxy de acceso y el proxy de acceso conecta el procesador y el terminal PCIe;
el procesador está configurado para recibir una instrucción de acceso, en donde la instrucción de acceso le indica al procesador que acceda al terminal PCIe a través del proxy de acceso; y enviar una solicitud de acceso al proxy de acceso de acuerdo con la instrucción de acceso, en donde la solicitud de acceso le indica al proxy de acceso que acceda al terminal PCIe; y
el proxy de acceso está configurado para, después de recibir la solicitud de acceso enviada por el procesador, enviarle al procesador un mensaje de respuesta a la solicitud de acceso.
Modo de realización 2. El sistema informático de acuerdo con el modo de realización 1, en donde el sistema informático comprende, además:
un controlador del terminal PCIe, configurado para recibir una instrucción de invocación para acceder al terminal PCIe, y generar una instrucción de acceso de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada para acceder al terminal PCIe apunta al proxy de acceso; y
el procesador está configurado específicamente para recibir la instrucción de acceso generada por el controlador del
5
10
15
20
25
30
35
40
45
terminal PCIe.
Modo de realización 3. El sistema informático de acuerdo con el modo de realización 1, que comprende además: un controlador del terminal PCIe y un sistema operativo anfitrión, en donde:
el controlador del terminal PCIe está configurado para recibir una instrucción de invocación para acceder al terminal PCIe e invocar al sistema operativo anfitrión con el fin de acceder al terminal PCIe;
el sistema operativo anfitrión está configurado para responder a la invocación realizada por el controlador del terminal PCIe y generar una instrucción de acceso de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta al acceso proxy; y
el procesador está configurado específicamente para recibir la instrucción de acceso generada por el sistema operativo anfitrión.
Modo de realización 4. El sistema informático de acuerdo con uno cualquiera de los modos de realización 1-3, en donde el proxy de acceso está configurado, además, para acceder al terminal PCIe de acuerdo con la solicitud de acceso.
Modo de realización 5. El sistema informático de acuerdo con el modo de realización 4, en donde el proxy de acceso se ha implementado mediante un controlador de acceso directo a memoria DMA;
la configuración del procesador para enviarle al proxy de acceso una solicitud de acceso de acuerdo con la instrucción de acceso es como sigue:
el procesador está configurado específicamente para enviarle al controlador de DMA una petición de migración de datos de acuerdo con la instrucción de acceso; y
la configuración del proxy de acceso para acceder al terminal PCIe de acuerdo con la solicitud de acceso es como sigue:
el controlador de DMA está configurado específicamente para, de acuerdo con la petición de migración de datos, transferir unos datos determinados de la memoria del terminal PCIe a la memoria del sistema informático, o transferir unos datos determinados de la memoria del sistema informático a la memoria del terminal PCIe.
Modo de realización 6. El sistema informático de acuerdo con los modos de realización 4 ó 5, en donde:
el proxy de acceso está configurado, además, para enviarle al procesador un primer mensaje de notificación, en donde el primer mensaje de notificación indica que el acceso al terminal PCIe se ha realizado con éxito; y
el procesador está configurado, además, para recibir el resultado del acceso después de haber recibido el primer mensaje de notificación.
Modo de realización 7. El sistema informático de acuerdo con el modo de realización 4 ó 5, en donde:
el proxy de acceso está configurado, además, para enviarle al procesador un segundo mensaje de notificación, en donde el segundo mensaje de notificación indica que el acceso al terminal PCIe ha fallado; y
el procesador está configurado, además, para ejecutar el procesamiento subsiguiente a un fallo de acceso después de recibir el segundo mensaje de notificación.
Modo de realización 8. El sistema informático de acuerdo con el modo de realización 7, en donde la configuración adicional del procesador para ejecutar el procesamiento subsiguiente a un fallo de acceso después de recibir el segundo mensaje de notificación es como sigue:
el procesador está configurado para determinar, después de recibir el segundo mensaje de notificación, el motivo del fallo del proxy de acceso al acceder al terminal PCIe; y
si el motivo del fallo de acceso es que el terminal PCIe se ha desconectado de forma anómala, el procesador está configurado para interrumpir el acceso al terminal PCIe.
Modo de realización 9. El sistema informático de acuerdo con el modo de realización 8, que comprende además: un módulo de administración PCIe, en donde:
el módulo de administración PCIe está configurado para recibir una notificación indicando que el terminal PCIe se ha desconectado de forma anómala y reservar los recursos asignados para el terminal PCIe.
Modo de realización 10. El sistema informático de acuerdo con uno cualquiera de los modos de realización 1-9, en donde el proxy de acceso está empaquetado con el procesador.
5
10
15
20
25
30
35
40
45
50
Modo de realización 11. El sistema informático de acuerdo con uno cualquiera de los modos de realización 1-9, en donde el proxy de acceso se encuentra conectado de forma fija al procesador; y
el proxy de acceso está configurado para enviarle al procesador un mensaje de respuesta a la solicitud de acceso a través de la conexión fija con el procesador.
Modo de realización 12. El sistema informático de acuerdo con el modo de realización 11, en donde la conexión de forma fija del proxy de acceso al procesador comprende: el proxy de acceso está soldado en una placa de circuito impreso conectada al procesador o el proxy de acceso está conectado de forma fija al procesador utilizando un firmware de conexión.
Modo de realización 13. El sistema informático de acuerdo con los modos de realización 1-9, en donde el sistema informático comprende, además: un intercambiador PCIe, en donde un puerto de flujo ascendente del intercambiador PCIe está conectado al procesador a través del bus PCIe, y un puerto de flujo descendente del intercambiador PCIe está conectado al terminal PCIe a través del bus PCIe.
Modo de realización 14. El sistema informático de acuerdo con el modo de realización 13, en donde el proxy de acceso está empaquetado en el intercambiador PCIe.
Modo de realización 15. El sistema informático de acuerdo con el modo de realización 14, en donde el intercambiador PCIe está soldado en una placa de circuito impreso conectada al procesador o el intercambiador PCIe está conectado de forma fija al procesador utilizando un firmware de conexión.
Modo de realización 16. Un método para acceder a un terminal de interconexión de componentes periféricos exprés PCIe, en donde el procesador del sistema informático está conectado al terminal PCIe a través de un bus PCIe, que comprende:
recibir, por parte del procesador, una instrucción de acceso, en donde la instrucción de acceso le indica al procesador que acceda al terminal PCIe a través de un proxy de acceso;
enviar, por parte del procesador, una solicitud de acceso al proxy de acceso de acuerdo con la instrucción de acceso, en donde la solicitud de acceso le indica al proxy de acceso que acceda al terminal PCIe; y
recibir, por parte del procesador, un mensaje de respuesta a la solicitud de acceso enviada por el proxy de acceso.
Modo de realización 17. El método de acuerdo con el modo de realización 16, en donde la recepción de la instrucción de acceso por parte del procesador comprende:
recibir, por parte del procesador, la instrucción de acceso generada por el controlador del terminal PCIe de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta al proxy de acceso; o
recibir, por parte del procesador, la instrucción de acceso generada por el sistema operativo anfitrión de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta al proxy de acceso.
Modo de realización 18. El método de acuerdo con el modo de realización 16 ó 17, en donde el proxy de acceso se ha implementado mediante un controlador de acceso directo a memoria DMA, y la instrucción de acceso le indica específicamente al procesador que acceda al terminal PCIe utilizando el controlador de DMA; y
el envío, por parte del procesador, de una solicitud de acceso al proxy de acceso de acuerdo con la instrucción de acceso comprende:
enviar, por parte del procesador, una petición de migración de datos al controlador de DMA de acuerdo con la instrucción de acceso, en donde la petición de migración de datos le indica al controlador de DMA que transfiera los datos especificados de la memoria del controlador PCIe a la memoria del sistema informático o transfiera unos datos específicos de la memoria del sistema informático a la memoria del terminal PCIe.
Modo de realización 19. El método de acuerdo con el modo de realización 18, en donde la instrucción de acceso indica, además, que el tipo de acceso es una operación de lectura, e indica una dirección de origen de la operación de lectura y la longitud de la operación de lectura; y
el envío, por parte del procesador, de una petición de migración de datos al controlador de DMA de acuerdo con la instrucción de acceso comprende:
recibir, por parte del procesador, la dirección de destino de la operación de lectura reservada por la memoria del sistema informático; y
enviar, por parte del procesador, la petición de migración de datos al controlador de DMA, en donde la petición de
5
10
15
20
25
30
35
40
45
50
migración de datos incluye la dirección de origen de la operación de lectura, la dirección de destino de la operación de lectura y la longitud de la operación de lectura, con el fin de indicarle al controlador de DMA que transfiera datos de la longitud indicada para la operación de lectura desde la dirección de origen de la operación de lectura a la dirección de destino de la operación de lectura.
Modo de realización 20. El método de acuerdo con el modo de realización 18, en donde la instrucción de acceso indica además que el tipo de acceso es una operación de escritura, e indica la dirección de origen de la operación de escritura, la dirección de destino de la operación de escritura, y una longitud de la operación de escritura; y
el envío, por parte del procesador, de la petición de migración de datos al controlador de DMA de acuerdo con la instrucción de acceso comprende:
enviar, por parte del procesador, la petición de migración de datos al controlador de DMA, en donde la petición de migración de datos incluye la dirección de origen de la operación de escritura, la dirección de destino de la operación de escritura y la longitud de la operación de escritura, con el fin de indicarle al controlador de DMA que transfiera datos de la longitud indicada para la operación de escritura desde la dirección de origen de la operación de escritura a la dirección de destino de la operación de escritura.
Modo de realización 21. El método de acuerdo con uno cualquiera de los modos de realización 16-20, que comprende, además:
recibir, por parte del procesador, un primer mensaje de notificación enviado por el proxy de acceso, en donde el primer mensaje de notificación indica que el proxy de acceso ha accedido con éxito al terminal PCIe; y
recibir, por parte del procesador, el resultado del acceso de acuerdo con el primer mensaje de notificación.
Modo de realización 22. El método de acuerdo con uno cualquiera de los modos de realización 16-20, que comprende, además:
recibir, por parte del procesador, un segundo mensaje de notificación enviado por el proxy de acceso, en donde el segundo mensaje de notificación indica que el proxy de acceso no ha conseguido acceder al terminal PCIe; y
ejecutar, por parte del procesador, el procesamiento subsiguiente a un fallo de acceso de acuerdo con el segundo mensaje de notificación.
Modo de realización 23. El método de acuerdo con el modo de realización 22, en donde el procesamiento de ejecución subsiguiente a un fallo de acceso comprende:
determinar, por parte del procesador, el motivo por el que el proxy de acceso no ha conseguido acceder al terminal PCIe, y si el motivo del fallo de acceso es que el terminal PCIe se ha desconectado de forma anómala, interrumpir el acceso al terminal PCIe por parte del procesador.
Modo de realización 24. El método de acuerdo con el modo de realización 23, que comprende, además:
recibir una notificación indicando que el terminal PCIe se ha desconectado de forma anómala y reservar los recursos asignados para el terminal PCIe.
Modo de realización 25. Un ordenador, que comprende: un procesador, una memoria, un bus y una interfaz de comunicaciones, en donde:
la memoria está configurada para almacenar una instrucción de ejecución para el ordenador, el procesador está conectado a la memoria a través del bus y cuando el ordenador se encuentra en ejecución, el procesador ejecuta la instrucción de ejecución para el ordenador almacenada en la memoria, de modo que el ordenador ejecuta el método de acceso de acuerdo con una cualquiera de las reivindicaciones 16-24.
Modo de realización 26. Un medio legible por ordenador, que comprende una instrucción de ejecución para el ordenador, en donde, cuando el procesador del ordenador ejecuta la instrucción de ejecución para el ordenador, el ordenador ejecuta el método de acceso de acuerdo con una cualquiera de las reivindicaciones 16-24.
Modo de realización 27. Un método para acceder a un terminal de interconexión de componentes periféricos exprés PCIe, en donde el terminal PCIe está conectado al procesador de un sistema informático a través de un bus PCIe, que comprende:
recibir una instrucción de invocación, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe; y
generar una instrucción de acceso de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta a un proxy de acceso, y la instrucción de acceso se utiliza para indicarle al procesador que acceda al terminal PCIe a través del proxy de acceso.
5
10
15
20
25
30
35
40
45
50
Modo de realización 28. El método de acuerdo con el modo de realización 27, en donde la recepción de la instrucción de invocación comprende:
recibir, por parte del controlador del terminal PCIe, la instrucción de invocación; y
consecuentemente, la generación de la instrucción de acceso de acuerdo con una interfaz predeterminada de acceso al terminal PCIe comprende:
generar, por parte del controlador del terminal PCIe, la instrucción de acceso para acceder al terminal PCIe de acuerdo con la interfaz predeterminada de acceso al terminal PCIe.
Modo de realización 29. El método de acuerdo con el modo de realización 27, en donde la recepción de la instrucción de invocación comprende:
recibir, por parte del sistema operativo anfitrión del sistema informático, la instrucción de invocación del controlador del terminal PCIe; y
consecuentemente, la generación de la instrucción de acceso de acuerdo con una interfaz predeterminada de acceso al terminal PCIe comprende:
generar, por parte del sistema operativo anfitrión, la instrucción de acceso para acceder al terminal PCIe de acuerdo con la interfaz predeterminada de acceso al terminal PCIe
Modo de realización 30. Un equipo para acceder a un terminal de interconexión de componentes periféricos exprés PCIe, que comprende:
un módulo de recepción, configurado para recibir una instrucción de invocación, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe; y
un módulo de generación, configurado para generar una instrucción de acceso de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta a un proxy de acceso, y la instrucción de acceso se utiliza para indicarle al procesador que acceda el terminal PCIe a través del proxy de acceso.
Modo de realización 31. El equipo de acuerdo con el modo de realización 30, en donde el equipo de acceso es el controlador del terminal PCIe o el sistema operativo anfitrión del sistema informático.
Modo de realización 32. Un ordenador, que comprende: un procesador, una memoria, un bus y una interfaz de comunicaciones, en donde:
la memoria está configurada para almacenar una instrucción de ejecución para el ordenador, el procesador está conectado a la memoria a través del bus y, cuando el ordenador se encuentra en ejecución, el procesador ejecuta la instrucción de ejecución para el ordenador almacenada en la memoria y, de este modo, el ordenador ejecuta el método que consiste en:
recibir una instrucción de invocación, en donde la instrucción de invocación indica que es necesario acceder al terminal PCIe; y
generar una instrucción de acceso para acceder al terminal PCIe de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta al proxy de acceso, y la instrucción de acceso se utiliza para indicarle al procesador que acceda al terminal PCIe a través del proxy de acceso.
Modo de realización 33. Un medio legible por ordenador, que comprende: una instrucción de ejecución para el ordenador, en donde, cuando un procesador del ordenador ejecuta la instrucción de ejecución para el ordenador el ordenador ejecuta el método que consiste en:
recibir una instrucción de invocación, en donde la instrucción de invocación indica que es necesario acceder a un terminal PCIe; y
generar una instrucción de acceso para acceder al terminal PCIe de acuerdo con una interfaz predeterminada de acceso al terminal PCIe, en donde la interfaz predeterminada de acceso al terminal PCIe apunta a un proxy de acceso, y la instrucción de acceso se utiliza para indicarle al procesador que acceda al terminal PCIe a través del proxy de acceso.
Modo de realización 34. Un proxy de acceso, en donde el proxy de acceso se utiliza en un sistema informático, el sistema informático comprende un procesador y un bus de interconexión de componentes periféricos exprés PCIe, y el bus PCIe está conectado, al menos, a un terminal PCIe;
el proxy de acceso está conectado al procesador y al terminal PCIe; y
5
10
15
20
25
30
35
40
45
el proxy de acceso está configurado para recibir desde el procesador una solicitud de acceso al terminal PCIe, y devolverle al procesador un mensaje de respuesta a la solicitud de acceso, con el fin de confinar el acceso entre el procesador y el terminal PCIe.
Modo de realización 35. El proxy de acceso de acuerdo con el modo de realización 34, en donde el proxy de acceso está configurado, además, para acceder al terminal PCIe de acuerdo con la solicitud de acceso.
Modo de realización 36. El proxy de acceso de acuerdo con el modo de realización 34 ó 35, en donde el proxy de acceso se ha implementado mediante un controlador de acceso directo a memoria (Direct Memory Access, DMA); y
el controlador de DMA está configurado específicamente para recibir una petición de migración de datos enviada por el procesador y, de acuerdo con la petición de migración de datos, transferir unos datos específicos de la memoria del controlador PCIe a la memoria del sistema informático, o transferir unos datos específicos de la memoria del sistema informático a la memoria del terminal PCIe.
Modo de realización 37. El proxy de acceso de acuerdo con el modo de realización 34, 35 ó 36, en donde el proxy de acceso está configurado, además, para enviarle al procesador un primer mensaje de notificación, en donde el primer mensaje de notificación indica que el acceso al terminal PCIe se ha realizado con éxito; o enviarle al procesador un segundo mensaje de notificación, en donde el segundo mensaje de notificación indica que el acceso al terminal PCIe ha fallado.
Modo de realización 38. Un intercambiador PCIe, en donde el intercambiador PCIe se utiliza en un sistema informático, el sistema informático comprende un procesador y un bus de interconexión de componentes periféricos exprés PCIe, y el bus PCIe está conectado, al menos, a un terminal PCIe;
un puerto de flujo ascendente del intercambiador PCIe está conectado al procesador a través del bus PCIe, y un puerto de flujo descendente del intercambiador PCIe está conectado al terminal PCIe a través del bus PCIe; y
el proxy de acceso de acuerdo con uno cualquiera de los modos de realización 34-37 está integrado en el intercambiador PCIe.
Modo de realización 39. Un método para asignar recursos a un terminal de interconexión de componentes periféricos exprés PCIe que accede a un sistema informático, que comprende:
reservar un subconjunto específico de recursos para un puerto de acceso al terminal PCIe, en donde el subconjunto específico de recursos es mayor o igual a la cantidad de recursos requeridos por el terminal PCIe; y
asignar, de acuerdo con el subconjunto específico de recursos reservados, el subconjunto específico de recursos reservados al puerto de acceso al terminal PCIe.
Modo de realización 40. El método de acuerdo con el modo de realización 39, en donde el subconjunto específico de recursos es la cantidad de recursos requerida por el tipo de terminal PCIe que requiere la cantidad máxima de recursos en el sistema informático.
Modo de realización 41. El método de acuerdo con el modo de realización 39 ó 40, en donde el terminal PCIe que accede al sistema informático y el procesador constituyen un campo PCIe y se configura el árbol PCIe correspondiente para el campo PCIe; y
el método comprende, además: registrar en el árbol PCIe el subconjunto específico de recursos asignados al puerto de acceso al terminal PCIe.
Modo de realización 42. El método de acuerdo con el modo de realización 41, que comprende además:
cuando el terminal PCIe se encuentra desconectado del sistema informático, reservar el subconjunto específico de recursos asignados al puerto de acceso al terminal PCIe y registrados en el árbol PCIe.
Modo de realización 43. Un sistema informático que comprende:
un procesador;
un bus de interconexión de componentes periféricos exprés PCIe, configurado para conectar un terminal PCIe;
un sistema básico de entrada-salida BIOS, configurado para reservar un subconjunto específico de recursos para un puerto de acceso al terminal PCIe, en donde el subconjunto específico de recursos es mayor o igual que la cantidad de recursos requerida por el terminal PCIe; y
un módulo de administración PCIe configurado para, de acuerdo con el subconjunto específico de recursos reservados por el BIOS, asignarle al puerto de acceso al terminal PCIe el subconjunto específico de recursos reservados.
Modo de realización 44. El sistema informático de acuerdo con el modo de realización 43, en donde el subconjunto específico es la cantidad de recursos requerida por el tipo de terminal PCIe que requiere la cantidad máxima de recursos en el sistema informático.
Modo de realización 45. El sistema informático de acuerdo con los modos de realización 43 ó 44, en donde el 5 terminal PCIe que accede al sistema informático y el procesador constituyen un campo PCIe, y se configura el árbol PCIe correspondiente para el campo PCIe; y
el módulo de administración PCIe está configurado, además, para registrar en el árbol PCIe el subconjunto específico de recursos asignados al puerto de acceso al terminal PCIe.
Modo de realización 46. El sistema informático de acuerdo con el modo de realización 45, en donde el módulo de 10 administración PCIe está configurado además para:
cuando el terminal PCIe se encuentra desconectado del sistema informático, reservar el subconjunto específico de recursos asignados al puerto de acceso al terminal PCIe y registrados en el árbol PCIe.

Claims (6)

  1. 5
    10
    15
    20
    25
    30
    35
    REIVINDICACIONES
    1. Un proxy de acceso, en donde el proxy de acceso se aplica a un sistema informático, el sistema informático comprende un procesador (110) y un bus de interconexión de componentes periféricos exprés, PCIe, y el bus PCIe está conectado, al menos, a un terminal PCIe (130);
    el proxy de acceso (160) está conectado al procesador (110) y al terminal PCIe (130); y
    el proxy de acceso (160) está configurado para recibir desde el procesador una solicitud de acceso al terminal PCIe y devolverle al procesador un mensaje de respuesta a la solicitud de acceso con el fin de permitir que el procesador (110) determine si se ha completado la tarea correspondiente a la solicitud de acceso, acceder al terminal PCIe (130) de acuerdo con la solicitud de acceso, enviarle al procesador (110) un primer mensaje de notificación o un segundo mensaje de notificación, en donde el primer mensaje de notificación indica que el acceso al terminal PCIe se ha realizado con éxito, de tal modo que el procesador (110) obtiene el resultado del acceso al recibir el primer mensaje de notificación, el segundo mensaje de notificación indica que el acceso al terminal PCIe ha fallado, de tal modo que al recibir el segundo mensaje de notificación el procesador (110) ejecuta el procesamiento subsiguiente a un fallo de acceso.
  2. 2. El proxy de acceso de acuerdo con la reivindicación 1, en donde el proxy de acceso se implementa mediante un controlador de acceso directo a memoria, Direct Memory Access, DMA; y
    el controlador de DMA está configurado específicamente para recibir una petición de migración de datos enviada por el procesador y, de acuerdo con la petición de migración de datos, transferir unos datos específicos de la memoria del terminal PCIe a la memoria del sistema informático, o transferir unos datos específicos de la memoria del sistema informático a la memoria del terminal PCIe.
  3. 3. El proxy de acceso de acuerdo con la reivindicación 1, en donde el proxy de acceso (160) está empaquetado con el procesador (110).
  4. 4. El proxy de acceso de acuerdo con la reivindicación 1, en donde el proxy de acceso (160) está conectado de forma fija al procesador (110); y
    el proxy de acceso (160) está configurado para enviarle al procesador el mensaje de respuesta a la solicitud de acceso utilizando la conexión fija con el procesador.
  5. 5. El proxy de acceso de acuerdo con la reivindicación 4, en donde la conexión fija del proxy de acceso (160) al procesador (110) comprende: el proxy de acceso (160) está soldado en una placa de circuito impreso que está conectada al procesador.
  6. 6. Un intercambiador PCIe, en donde el intercambiador PCIe se aplica a un sistema informático, el sistema informático comprende un procesador y un bus de interconexión de componentes periféricos exprés PCIe, y el bus PCIe está conectado, al menos, a un terminal PCIe;
    un puerto de flujo ascendente del intercambiador PCIe está conectado al procesador a través del bus PCIe y un puerto de flujo descendente del intercambiador PCIe está conectado al terminal PCIe a través del bus PCIe; y
    el proxy de acceso de acuerdo con una cualquiera de las reivindicaciones 1-2 está integrado en el intercambiador PCIe.
ES16180277.2T 2013-05-02 2013-05-02 Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo Active ES2687609T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP16180277.2A EP3173936B1 (en) 2013-05-02 2013-05-02 Computer system, method for accessing peripheral component interconnect express endpoint device, and apparatus
PCT/CN2013/075088 WO2014176775A1 (zh) 2013-05-02 2013-05-02 一种计算机系统、高速外围组件互联端点设备的访问方法、和装置

Publications (1)

Publication Number Publication Date
ES2687609T3 true ES2687609T3 (es) 2018-10-26

Family

ID=51135815

Family Applications (3)

Application Number Title Priority Date Filing Date
ES13792568.1T Active ES2610978T3 (es) 2013-05-02 2013-05-02 Sistema informático, método de acceso y aparato para un dispositivo de punto final de interconexión de componentes periféricos exprés
ES16180277.2T Active ES2687609T3 (es) 2013-05-02 2013-05-02 Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo
ES18155911T Active ES2866156T3 (es) 2013-05-02 2013-05-02 Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés, y equipo

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES13792568.1T Active ES2610978T3 (es) 2013-05-02 2013-05-02 Sistema informático, método de acceso y aparato para un dispositivo de punto final de interconexión de componentes periféricos exprés

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES18155911T Active ES2866156T3 (es) 2013-05-02 2013-05-02 Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés, y equipo

Country Status (10)

Country Link
US (3) US8782317B1 (es)
EP (3) EP3385854B1 (es)
JP (1) JP5953573B2 (es)
KR (1) KR101539878B1 (es)
AU (1) AU2013263866B2 (es)
BR (1) BR112013033792B1 (es)
CA (1) CA2833940C (es)
ES (3) ES2610978T3 (es)
WO (1) WO2014176775A1 (es)
ZA (1) ZA201308948B (es)

Families Citing this family (155)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
CN104126181A (zh) * 2011-12-30 2014-10-29 英特尔公司 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换
JP5953573B2 (ja) * 2013-05-02 2016-07-20 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. ペリフェラル・コンポーネント・インターコネクト・エクスプレス・エンドポイントデバイスにアクセスするためのコンピュータシステム、方法、および装置
US9552323B1 (en) * 2013-07-05 2017-01-24 Altera Corporation High-speed peripheral component interconnect (PCIe) input-output devices with receive buffer management circuitry
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10229085B2 (en) 2015-01-23 2019-03-12 Hewlett Packard Enterprise Development Lp Fibre channel hardware card port assignment and management method for port names
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
CN105938461B (zh) * 2015-07-31 2019-02-19 杭州迪普科技股份有限公司 一种dma数据传输方法、装置以及网络设备
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
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
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
CN105824622B (zh) * 2016-03-11 2020-04-24 联想(北京)有限公司 数据处理方法及电子设备
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
CN108733479B (zh) * 2017-04-24 2021-11-02 上海宝存信息科技有限公司 卸载固态硬盘卡的方法以及使用该方法的装置
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10223318B2 (en) 2017-05-31 2019-03-05 Hewlett Packard Enterprise Development Lp Hot plugging peripheral connected interface express (PCIe) cards
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
CN107957885B (zh) * 2017-12-01 2021-02-26 麒麟软件有限公司 一种基于飞腾平台的pcie链路设备待机与恢复方法
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
CN108509155B (zh) * 2018-03-31 2021-07-13 深圳忆联信息系统有限公司 一种远程访问磁盘的方法和装置
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11017071B2 (en) * 2018-08-02 2021-05-25 Dell Products L.P. Apparatus and method to protect an information handling system against other devices
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10846155B2 (en) * 2018-10-16 2020-11-24 Samsung Electronics Co., Ltd. Method for NVMe SSD based storage service using RPC and gRPC tunneling over PCIe +
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
CN109684084A (zh) * 2018-12-12 2019-04-26 浪潮(北京)电子信息产业有限公司 一种总线资源的分配方法、系统及相关组件
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
JP7326863B2 (ja) * 2019-05-17 2023-08-16 オムロン株式会社 転送装置、情報処理装置、および、データ転送方法
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
CN111767242B (zh) * 2020-05-28 2022-04-15 西安广和通无线软件有限公司 Pcie设备控制方法、装置、计算机设备和存储介质
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
CN113868181B (zh) * 2021-09-30 2023-07-21 苏州浪潮智能科技有限公司 一种存储设备pcie链路协商方法、系统、设备及介质
EP4213007A3 (en) * 2021-12-24 2023-09-27 Samsung Electronics Co., Ltd. Storage device having deduplication manager, method of operating the same, and method of operating storage system including the same
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630076A (en) * 1995-05-05 1997-05-13 Apple Computer, Inc. Dynamic device matching using driver candidate lists
KR100244778B1 (ko) * 1997-07-19 2000-02-15 윤종용 정상 동작중인 시스템에 보드를 실장 또는 탈장하는 회로
US7152167B2 (en) 2002-12-11 2006-12-19 Intel Corporation Apparatus and method for data bus power control
US7404047B2 (en) 2003-05-27 2008-07-22 Intel Corporation Method and apparatus to improve multi-CPU system performance for accesses to memory
US7484045B2 (en) 2004-03-30 2009-01-27 Intel Corporation Store performance in strongly-ordered microprocessor architecture
US7484016B2 (en) * 2004-06-30 2009-01-27 Intel Corporation Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
US7543094B2 (en) 2005-07-05 2009-06-02 Via Technologies, Inc. Target readiness protocol for contiguous write
US7546487B2 (en) * 2005-09-15 2009-06-09 Intel Corporation OS and firmware coordinated error handling using transparent firmware intercept and firmware services
JP4809166B2 (ja) * 2006-09-06 2011-11-09 株式会社日立製作所 リモートi/oを構成する計算機システム及びi/oデータ転送方法
US7657663B2 (en) 2006-12-19 2010-02-02 International Business Machines Corporation Migrating stateless virtual functions from one virtual plane to another
US7836238B2 (en) * 2006-12-19 2010-11-16 International Business Machines Corporation Hot-plug/remove of a new component in a running PCIe fabric
US7835391B2 (en) 2007-03-07 2010-11-16 Texas Instruments Incorporated Protocol DMA engine
US8141094B2 (en) * 2007-12-03 2012-03-20 International Business Machines Corporation Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions
US7934033B2 (en) * 2008-03-25 2011-04-26 Aprius, Inc. PCI-express function proxy
CN101763221B (zh) * 2008-12-24 2013-01-30 成都市华为赛门铁克科技有限公司 一种存储方法、存储系统及控制器
CN101631083B (zh) * 2009-08-07 2012-04-04 成都市华为赛门铁克科技有限公司 设备接管方法和装置及双控系统
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
JP5953573B2 (ja) * 2013-05-02 2016-07-20 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. ペリフェラル・コンポーネント・インターコネクト・エクスプレス・エンドポイントデバイスにアクセスするためのコンピュータシステム、方法、および装置

Also Published As

Publication number Publication date
JP5953573B2 (ja) 2016-07-20
ZA201308948B (en) 2016-01-27
EP3173936A1 (en) 2017-05-31
AU2013263866B2 (en) 2016-02-18
EP3173936B1 (en) 2018-07-18
CA2833940A1 (en) 2014-11-02
CA2833940C (en) 2018-12-04
EP2811413A1 (en) 2014-12-10
US8782317B1 (en) 2014-07-15
KR20150005854A (ko) 2015-01-15
JP2015519665A (ja) 2015-07-09
US20140331000A1 (en) 2014-11-06
EP3385854B1 (en) 2021-01-27
WO2014176775A1 (zh) 2014-11-06
CN104335194A (zh) 2015-02-04
US10025745B2 (en) 2018-07-17
US20150234772A1 (en) 2015-08-20
EP2811413B1 (en) 2016-10-19
ES2866156T3 (es) 2021-10-19
US9477632B2 (en) 2016-10-25
ES2610978T3 (es) 2017-05-04
KR101539878B1 (ko) 2015-07-27
BR112013033792B1 (pt) 2018-12-04
BR112013033792A2 (pt) 2017-02-07
EP2811413A4 (en) 2014-12-10
AU2013263866A1 (en) 2014-12-04
EP3385854A1 (en) 2018-10-10

Similar Documents

Publication Publication Date Title
ES2687609T3 (es) Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo
JP6140303B2 (ja) 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム
US8346997B2 (en) Use of peripheral component interconnect input/output virtualization devices to create redundant configurations
ES2830355T3 (es) Procedimiento, dispositivo y sistema para implementar el procesamiento de aceleración de hardware
US9760455B2 (en) PCIe network system with fail-over capability and operation method thereof
JP5541275B2 (ja) 情報処理装置および不正アクセス防止方法
US8078764B2 (en) Method for switching I/O path in a computer system having an I/O switch
US10635609B2 (en) Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
US8156376B2 (en) Method, device and system for storing data in cache in case of power failure
WO2018028219A1 (zh) 设备仲裁的方法和设备
CN114817105A (zh) 设备枚举的方法、装置、计算机设备以及存储介质
CN116382913A (zh) 资源分配装置、方法、电子设备和存储介质
JP2013130999A (ja) マルチコアプロセッサ