Instrucciones de almacenamiento/almacenamiento de bloque para la comunicación con adaptadores.
Un procedimiento para ejecutar dentro de un circuito de procesamiento,
que comprende un medio de almacenamiento legible por ordenador, legible por dicho circuito de procesamiento e instrucciones de almacenamiento para su ejecución por dicho circuito de procesamiento, una instrucción de almacenamiento que comprende un campo de código de operación que identifica una instrucción de almacenamiento en adaptador, un primer campo que identifica una primera ubicación que incluye los datos a ser almacenados en un adaptador, un segundo campo que identifica una segunda ubicación, cuyos contenidos incluyen un descriptor de función que identifica el adaptador, un designación de un espacio de direcciones dentro del adaptador en el que deben almacenarse los datos, y un desplazamiento dentro del espacio de direcciones, para almacenar datos en un adaptador, en el que el procedimiento comprende las etapas de:
obtener una instrucción máquina a ser ejecutada, en el que la instrucción máquina está definida para su ejecución por un ordenador según una arquitectura de ordenador; y ejecutar la instrucción máquina, en el que la ejecución comprende:
usar el descriptor de función para obtener una entrada de la tabla de funciones asociada con el adaptador;
obtener una dirección de datos del adaptador usando al menos uno de entre la información en la entrada de la tabla de funciones y el desplazamiento; y
almacenar los datos desde la primera ubicación en una ubicación específica en el espacio de direcciones identificado por la designación del espacio de direcciones, en el que la ubicación específica es identificada por la dirección de datos del adaptador.
Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2010/067028.
Solicitante: INTERNATIONAL BUSINESS MACHINES CORPORATION.
Nacionalidad solicitante: Estados Unidos de América.
Dirección: NEW ORCHARD ROAD ARMONK, NY 10504 ESTADOS UNIDOS DE AMERICA.
Inventor/es: GREINER,Dan, FARRELL,Mark, CRADDOCK,DAVID, GREGG,THOMAS.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- G06F13/38 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 13/00 Interconexión o transferencia de información u otras señales entre memorias, dispositivos de entrada/salida o unidades de procesamiento (circuitos de interfaz para dispositivos de entrada/salida específicos G06F 3/00; sistemas multiprocesadores G06F 15/16). › Transferencia de informaciones, p. ej. sobre un bus (G06F 13/14 tiene prioridad).
- G06F9/312 G06F […] › G06F 9/00 Disposiciones para el control por programa, p. ej. unidades de control (control por programa para dispositivos periféricos G06F 13/10). › Control de operaciones de carga, de registro o de borrado.
PDF original: ES-2523878_T3.pdf
Fragmento de la descripción:
Instrucciones de almacenamiento/almacenamiento de bloque para la comunicación con adaptadores Antecedentes
Esta invención se refiere, en general, al procesamiento de entradas/salidas de un entorno informático y, en particular, a facilitar la comunicación con los adaptadores del entorno informático.
Un entorno informático puede Incluir uno o más tipos de dispositivos de entrada/salida, incluyendo diversos tipos de adaptadores. Un tipo de adaptador es un adaptador de tipo interconexión de componentes periféricos (Peripheral Component Interconnect, PCI) o de tipo Interconexión de componentes periféricos express (Peripheral Component Interconnect Express, PCIe). Este adaptador incluye uno o más espacios de direcciones usados en la comunicación de datos entre el adaptador y el sistema al cual está conectado el adaptador. La especificación PCI está disponible en la World Wlde Web en www.pclslg.com/home .
La patente US N° 6.74.831, presentada el 9 de Marzo de 24, Avery, "Method and Apparatus for Converting Address Information Between PCI Bus Protocol and a Message-Passing Queue-Oriented Bus Protocol", describe que las operaciones de carga/almacenamlento PCI y las operaciones DMA se implementan a través de pares de colas de trabajo en una arquitectura de bus orientada a colas, con intercambio de mensajes. El espacio de direcciones PCI se divide en segmentos y cada segmento, a su vez, se divide en regiones. A cada segmento se le asigna una cola de trabajo independiente. Una primera parte de una dirección PCI es comparada con los rangos de direcciones representados por los segmentos y usados para seleccionar un segmento de memoria y su cola de trabajo correspondiente. Una entrada en la cola de trabajo contiene una segunda parte de la dirección PCI que especifica una región dentro del segmento seleccionado que es asignada a un dispositivo PCI especifico. En una realización, las operaciones de carga/almacenamlento PIO se Implementan seleccionando una cola de trabajo asignada a las operaciones PIO y creando una entrada de cola de trabajo con la dirección PCI de un registro en un dispositivo PCI y un puntero a los datos PIO. La entrada en la cola de trabajo es enviada a un puente PCI donde la dirección PCI es extraída y usada para programar el registro de dispositivo apropiado con los datos usando el puntero de datos. Las transferencias DMA son ¡mplementadas también seleccionando una cola de trabajo por medio de una comparación de una parte de la dirección PCI generada por el dispositivo PCI con una tabla de rangos de direcciones y seleccionando una cola de trabajo que proporciona servicio al rango de direcciones. Se crea una entrada de cola de trabajo con el resto de la dirección PCI y un puntero a los datos DMA. Se usa una operación RDMA para realizar la transferencia DMA. Los datos de región y página son usados en conexión con una tabla de protección de traducción en el adaptador de canal de servidor para acceder a la memoria física y realizar la transferencia DMA.
La patente US N° 7.613.847, presentada el 3 de Noviembre de 29, Kjos et al, "Partially Virtualizing an E/S Device for Use by Virtual Machines", describe un sistema de ordenador que comprende un ordenador físico y un monitor de máquina virtual ejecutable en el ordenador físico y configurado para crear una emulación de al menos un sistema operativo huésped adaptado para controlar el ordenador físico. El sistema de ordenador comprende además un servidor ejecutable en el ordenador físico que gestiona los recursos físicos acoplados al ordenador físico en nombre del monitor de máquina virtual y el al menos un sistema operativo huésped. El servidor está adaptado para virtualizar un espacio de direcciones de a configuración de interconexión de componentes periféricos (PCI) de manera que el al menos un sistema operativo huésped controla los dispositivos de entrada/salida (E/S) PCI directamente y en ausencia de emulación E/S.
En algunos sistemas, tales como los descritos en la publicación de patente internacional WO 2/41157 A2, una parte de un espacio de direcciones de la unidad central de procesamiento (CPU) acoplada al adaptador es asignada a un espacio de direcciones del adaptador permitiendo que las instrucciones de CPU que acceden al almacenamiento manipulen directamente los datos en el espacio de direcciones del adaptador.
Breve sumario
Según un aspecto de la presente invención, se proporciona una capacidad para facilitar la comunicación con los adaptadores, tales como adaptadores PCI o PCIe. Se proporcionan y usan para la comunicación instrucciones de control diseñadas específicamente para la comunicación de datos desde y hacia los adaptadores.
La provisión de un producto de programa de ordenador para ejecutar una instrucción de almacenamiento para almacenar datos en un adaptador supera los inconvenientes de la técnica anterior y proporciona una serle de ventajas. El producto de programa de ordenador Incluye un medio de almacenamiento legible por ordenador, legible por un circuito de procesamiento, e instrucciones de almacenamiento para su ejecución por el circuito de procesamiento para realizar un procedimiento. El procedimiento incluye, por ejemplo, obtener una instrucción
máquina para su ejecución, en el que la Instrucción máquina está definida para su ejecución por un ordenador según una arquitectura de ordenador, en el que la instrucción máquina incluye, por ejemplo, un campo de código de operación que identifica una instrucción de almacenamiento en adaptador; un primer campo que identifica una primera ubicación que incluye los datos a ser almacenados en un adaptador; un segundo campo que identifica una 5 segunda ubicación, cuyos contenidos incluyen un descriptor de función que identifica el adaptador, una
designación de un espacio de direcciones dentro del adaptador en el que deben almacenarse los datos, y un desplazamiento dentro del espacio de direcciones; y ejecutar la instrucción máquina, en el que la ejecución incluye usar el descriptor de función para obtener una entrada de la tabla de funciones asociada con el adaptador; obtener una dirección de datos del adaptador usando al menos uno de entre la información en la entrada de la tabla de 1 funciones y el desplazamiento; y almacenar datos desde la primera ubicación en una ubicación específica en el espacio de direcciones identificado por la designación del espacio de direcciones, la ubicación específica identificada por la dirección de datos del adaptador.
Además, se proporciona un producto de programa de ordenador para ejecutar una instrucción de almacenamiento de bloque para almacenar datos en un adaptador. El producto de programa de ordenador incluye un medio de 15 almacenamiento legible por ordenador, legible por un circuito de procesamiento, e instrucciones de
almacenamiento para su ejecución por el circuito de procesamiento para realizar un procedimiento. El procedimiento incluye, por ejemplo, obtener una instrucción máquina para su ejecución, en el que la instrucción máquina está definida para su ejecución por un ordenador según una arquitectura de ordenador, en el que la instrucción máquina incluye, por ejemplo, un campo de código de operación que identifica una instrucción de 2 almacenamiento de bloque en el adaptador; en el que un primer campo identifica una primera ubicación, cuyos contenidos incluyen un descriptor de función que identifica un adaptador, y una designación de un espacio de direcciones dentro del adaptador en el que deben almacenarse los datos; un segundo campo que identifica una segunda ubicación que incluye un desplazamiento dentro del espacio de direcciones; un tercer campo que identifica una tercera ubicación que incluye una dirección en la memoria que incluye los datos a ser almacenados 25 en el adaptador; y ejecutar la instrucción máquina, en el que la ejecución incluye usar el descriptor de función para obtener una entrada de la tabla de funciones asociada con el adaptador; obtener una dirección de datos del adaptador usando la información en la entrada de la tabla de funciones y el desplazamiento; y almacenar los datos obtenidos desde la memoria en la dirección en el tercer campo en una ubicación específica en el espacio de direcciones identificado por la designación del espacio de direcciones, la ubicación específica identificada por la 3 dirección de datos del adaptador.
También se describen y reivindican en la presente memoria procedimientos y sistemas relacionados con uno o más aspectos de la presente invención.
Las técnicas de la presente invención permiten conseguir características y ventajas adicionales. Otras realizaciones y aspectos de la invención se describen en detalle en la presente memoria, y se consideran parte de 35 la... [Seguir leyendo]
Reivindicaciones:
1. Un procedimiento para ejecutar dentro de un circuito de procesamiento, que comprende un medio de almacenamiento legible por ordenador, legible por dicho circuito de procesamiento e instrucciones de almacenamiento para su ejecución por dicho circuito de procesamiento, una instrucción de almacenamiento que comprende un campo de código de operación que identifica una instrucción de almacenamiento en adaptador, un primer campo que identifica una primera ubicación que incluye los datos a ser almacenados en un adaptador, un segundo campo que identifica una segunda ubicación, cuyos contenidos incluyen un descriptor de función que identifica el adaptador, un designación de un espacio de direcciones dentro del adaptador en el que deben almacenarse los datos, y un desplazamiento dentro del espacio de direcciones, para almacenar datos en un adaptador, en el que el procedimiento comprende las etapas de:
obtener una instrucción máquina a ser ejecutada, en el que la instrucción máquina está definida para su ejecución por un ordenador según una arquitectura de ordenador; y ejecutar la instrucción máquina, en el que la ejecución comprende:
usar el descriptor de función para obtener una entrada de la tabla de funciones asociada con el adaptador;
obtener una dirección de datos del adaptador usando al menos uno de entre la información en la entrada de la tabla de funciones y el desplazamiento; y
almacenar los datos desde la primera ubicación en una ubicación específica en el espacio de direcciones identificado por la designación del espacio de direcciones, en el que la ubicación específica es identificada por la dirección de datos del adaptador.
2. Procedimiento según la reivindicación 1, en el que el espacio de direcciones a acceder es un espacio de memoria o un espacio de E/S, y en el que la obtención de la dirección de datos comprende el uso de uno o más parámetros de la entrada de la tabla de funciones para obtener la dirección de datos.
3. Procedimiento según la reivindicación 2, en el que el uso de uno o más parámetros comprende sumar un valor de un registro de dirección base de la entrada de la tabla de funciones al desplazamiento para obtener la dirección de datos.
4. Procedimiento según la reivindicación 1, en el que los contenidos de la segunda ubicación incluyen una cantidad de datos a almacenar.
5. Un sistema de ordenador para ejecutar una instrucción de almacenamiento para almacenar datos en un adaptador, en el que dicho sistema de ordenador comprende:
una memoria;
un procesador en comunicación con la memoria;
el procesador operable para obtener una instrucción máquina para su ejecución, en el que la instrucción máquina está definida para su ejecución en un ordenador según una arquitectura de ordenador, en el que la instrucción máquina comprende:
un campo de código de operación que identifica una instrucción de almacenamiento en adaptador;
un primer campo que identifica una primera ubicación que incluye los datos a ser almacenados en un adaptador;
un segundo campo que identifica una segunda ubicación, cuyos contenidos incluyen un descriptor de función que identifica el adaptador, una designación de un espacio de direcciones dentro del adaptador en el que deben almacenarse los datos, y un desplazamiento dentro del espacio de direcciones; y
el procesador operable para ejecutar la instrucción máquina, en el que la ejecución comprende:
usar el descriptor de función para obtener una entrada de la tabla de funciones asociada con el adaptador;
obtener una dirección de datos del adaptador usando al menos uno de entre la información en la entrada de la tabla de funciones y el desplazamiento; y
almacenar los datos desde la primera ubicación en una ubicación específica en el espacio de direcciones identificado por la designación del espacio de direcciones, en el que la ubicación específica es identificada por la dirección de datos del adaptador.
6. Sistema de ordenador según la reivindicación 5, en el que el espacio de direcciones a ser accedido es uno de 5 entre un espacio de memoria o un espacio de E/S, y en el que la obtención de la dirección de datos comprende el
uso de uno o más parámetros de la entrada de la tabla de funciones para obtener la dirección de datos.
7. Sistema de ordenador según la reivindicación 6, en el que el uso de uno o más parámetros comprende sumar un valor de un registro de dirección base de la entrada de la tabla de funciones al desplazamiento para obtener la dirección de datos.
8. Sistema de ordenador según la reivindicación 5, en el que los contenidos de la segunda ubicación incluyen una
cantidad de datos a almacenar.
9. Un programa de ordenador cargado en un sistema de ordenador según la reivindicación 5 para realizar todas las etapas del procedimiento según una cualquiera de las reivindicaciones 1 a 4.
Patentes similares o relacionadas:
Dispositivo electrónico y procedimiento de realización de comunicación híbrida con dispositivo electrónico externo, del 3 de Junio de 2020, de SAMSUNG ELECTRONICS CO., LTD.: Un dispositivo electrónico que comprende: un primer circuito de comunicación que realiza comunicación inalámbrica utilizando un primer protocolo de comunicación; […]
Módulo de interfaz física, del 13 de Mayo de 2020, de NAGRAVISION S.A.: Un sistema en chip (SYS) que comprende un primer módulo (PER) y un segundo módulo (PROC), el primer módulo (PER) que comprende una primera interfaz física […]
Procedimiento, dispositivo y sistema para transferencia de paquetes en NVME sobre tejido, del 22 de Abril de 2020, de HUAWEI TECHNOLOGIES CO., LTD.: Un dispositivo de transferencia y procesamiento en memoria no volátil exprés sobre tejido, NVMe sobre tejido, en el que el dispositivo […]
Dispositivo de conmutación, sistema de interconexión de componentes periféricos rápida y procedimiento de inicialización del mismo, del 13 de Noviembre de 2019, de HUAWEI TECHNOLOGIES CO., LTD.: Un dispositivo de conmutación que comprende: múltiples puertos de Interconexión de Componentes Periféricos rápidos, PCIe, aguas arriba , […]
Método de desconexión de enlace entre un equipo PCIe y un concentrador y dispositivo que utiliza este último, del 14 de Agosto de 2019, de HUAWEI TECHNOLOGIES CO., LTD.: Un método para desconectar un enlace entre un dispositivo de Interconexión de Componente Periférico Exprés, PCIe, y un concentrador, en donde el dispositivo […]
Método y sistema para poner dispositivos funcionales a disposición de participantes de reuniones, del 4 de Julio de 2019, de BARCO N.V.: 1. Un sistema para conectar un dispositivo de procesamiento a un dispositivo funcional conectado a, o en, una unidad base de una red de comunicaciones, teniendo el dispositivo […]
Interfaz serie de capa de enlace a capa física (PHY), del 21 de Marzo de 2019, de QUALCOMM INCORPORATED: Un circuito integrado, IC, que comprende: un circuito de capa de enlace ; un puente de enlace acoplado operativamente al […]
Sistema informático y procedimiento para acceder a un dispositivo de punto extremo del mismo, del 20 de Marzo de 2019, de HUAWEI TECHNOLOGIES CO., LTD.: Un sistema informático , que comprende un subsistema informático y un subsistema de gestión , en el que el subsistema informático comprende una unidad de […]