REDUCCIÓN DE LATENCIA PARA MEMORIA TEMPORAL BASADA EN BUS COHERENTE DE MEMORIA TEMPORAL.

Un sistema que comprende: una pluralidad de agentes configurados para almacenar temporalmente datos,

en el que la pluralidad de agentes están acoplados a una interconexión; y una memoria temporal acoplada a la interconexión; en el que un primer agente de la pluralidad de agentes se configura para iniciar una transacción en la interconexión mediante la transmisión de una solicitud de memoria, y en el que otros agentes de la pluralidad de agentes son configurados para examinar la solicitud de memoria de la interconexión y proporcionar una respuesta en una fase de respuesta de la transacción en la interconexión, caracterizado porque la memoria temporal se configura para detectar un acierto para la solicitud de memoria y proporcionar datos para la transacción al primer agente antes de la fase de respuesta e independientemente de la respuesta

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/US2008/065977.

Solicitante: APPLE INC..

Nacionalidad solicitante: Estados Unidos de América.

Dirección: 1 INFINITE LOOP CUPERTINO CA 95014-2084 ESTADOS UNIDOS DE AMERICA.

Inventor/es: SUBRAMANIAN,Sridhar P. , GUNNA,Ramesh , LILLY,Brian P.

Fecha de Publicación: .

Fecha Solicitud PCT: 5 de Junio de 2008.

Clasificación Internacional de Patentes:

  • G06F12/08B4S

Clasificación PCT:

  • G06F12/08 FISICA.G06 CALCULO; CONTEO.G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 12/00 Acceso, direccionamiento o asignación en sistemas o arquitecturas de memoria (entrada digital a partir de, o salida digital hacia soportes de registro, p. ej. hacia unidades de almacenamiento de disco G06F 3/06). › en sistemas de memorias jerárquicas, p. ej. sistemas de memoria virtual.

Países PCT: Austria, Bélgica, Suiza, Alemania, Dinamarca, España, Francia, Reino Unido, Grecia, Italia, Liechtensein, Luxemburgo, Países Bajos, Suecia, Mónaco, Portugal, Irlanda, Eslovenia, Finlandia, Rumania, Chipre, Lituania, Letonia, Ex República Yugoslava de Macedonia, Albania.

PDF original: ES-2370749_T3.pdf

 


Fragmento de la descripción:

Reducción de latencia para memoria temporal basada en bus coherente de memoria temporal Campo de la invención Esta invención se refiere a procesadores y sistemas coherentes que incluyen procesadores. Descripción de la Técnica Relacionada Los sistemas informáticos por lo general han implementado uno o más niveles de memoria temporal para reducir la latencia de memoria. Las memorias temporales son memorias más pequeñas y de mayor velocidad que la memoria en el sistema de memoria principal. Por lo general, las memorias temporales almacenan datos utilizados recientemente. Por ejemplo, las memorias temporales a menudo se implementan para el acceso del procesador y almacenan datos leídos/escritos recientemente por los procesadores en los sistemas informáticos. Las memorias temporales a veces también se implementan para otros dispositivos de alta velocidad en el sistema informático. Además de almacenar datos utilizados recientemente, las memorias temporales pueden utilizarse para almacenar datos previamente capturados que se espera que sean utilizados por el procesador (u otro dispositivo). Las memorias temporales almacenan copias de datos que también se almacenan en la memoria principal. En sistemas multiprocesador e incluso en sistemas de un único procesador en los que otros dispositivos acceden a la memoria principal pero no acceden a una determinada memoria temporal, se plantea la cuestión de la coherencia de memoria temporal. Es decir, un productor de datos determinado puede escribir una copia de los datos en la memoria temporal, y se retrasa la actualización a la copia de la memoria principal. En memorias temporales de escritura a través de memoria temporal, una operación de escritura es enviada a memoria en respuesta a la escritura a la línea de memoria temporal, pero la escritura se retrasa en el tiempo. En una memoria temporal de reescritura, las escrituras se efectúan en la memoria temporal y no se reflejan en la memoria hasta que el bloque de memoria temporal actualizada se sustituya en la memoria temporal (y se vuelve a escribir a la memoria principal en respuesta a la sustitución). Debido a que las actualizaciones en la memoria principal no se han efectuado en el momento en que las actualizaciones se efectúan en la memoria temporal, un consumidor de datos determinado puede leer la copia de datos en la memoria principal y obtener datos "antiguos" (datos que aún no ha sido actualizados). Una copia almacenada temporalmente en una memoria temporal distinta a la que se acopla un productor de datos también puede tener datos antiguos. Además, si múltiples productores de datos están escribiendo en las mismas ubicaciones de memoria, diferentes consumidores de datos podían observar las escrituras en diferentes órdenes. La coherencia de memoria temporal soluciona estos problemas al asegurar que se pueden mantener varias copias de los mismos datos (desde la misma ubicación de memoria) evitando "datos antiguos" y mediante el establecimiento de un orden "global" de lecturas/escrituras en las ubicaciones de memoria por diferentes productores/consumidores. Si a una escritura le sigue una lectura en el orden global, la lectura de datos refleja la escritura. Los esquemas de coherencia de memoria temporal crean una sobrecarga en las operaciones de lectura/escritura de memoria. Por lo general, las memorias temporales efectuarán un seguimiento de un estado de sus copias de acuerdo con el esquema de coherencia. Por ejemplo, el conocido esquema Modificado, Exclusivo, Compartido, No válido (MESI) incluye un estado modificado (la copia se modifica con respecto a la memoria principal y otras copias); un estado exclusivo (la copia es la única copia además de la memoria principal); un estado compartido (puede haber una o más copias además de la copia de la memoria principal); y el estado no válido (la copia no es válida). El esquema MOESI agrega un estado En Propiedad en el que la memoria temporal es responsable de proporcionar los datos para una solicitud (ya sea volviendo a escribir en la memoria principal antes de proporcionar los datos al solicitante, o proporcionando directamente los datos al solicitante), pero puede haber otras copias en otras memorias temporales. Así, la sobrecarga del esquema de coherencia de memoria temporal incluye las comunicaciones entre las memorias temporales para mantener o actualizar el estado de coherencia. Estas comunicaciones pueden aumentar la latencia de las operaciones de lectura/escritura de memoria. La sobrecarga es dependiente de la estructura del sistema informático. Más concretamente, la sobrecarga depende de la forma de interconexión entre las distintas memorias temporales y los productores/consumidores de datos. En un sistema de bus compartido, con frecuencia se suele implementar el examen para mantener la coherencia. Una solicitud de memoria dada transmitida en el bus es capturada por otras memorias temporales, que comprueban si una copia de los datos solicitados se encuentra almacenada en la memoria temporal. Las memorias temporales pueden actualizar el estado de sus copias (y proporcionar los datos, si la memoria temporal tiene la copia más actualizada). En general, en un EP1280062 divulga un sistema que comprende una pluralidad de agentes configurados para almacenar temporalmente datos, en el que la pluralidad de agentes están acoplados a una interconexión y una memoria temporal acoplada a la interconexión, en el que se configura un primer agente de la 2   pluralidad de agentes para iniciar una transacción en la interconexión mediante la transmisión de una solicitud de memoria, y en el que otros agentes de la pluralidad de agentes están configurados para examinar la solicitud de memoria de la interconexión y proporcionar una respuesta en una fase de respuesta de la transacción en la interconexión, y en el que la memoria temporal está configurada para detectar un acierto para la solicitud de memoria y proporcionar datos para la transacción al primer agente, en caso de que no se afirme una señal exclusiva. sistema de examen, los agentes de examen proporcionan una respuesta en la fase de respuesta de la transacción. Una fuente para la memoria temporal de datos puede determinarse de la respuesta (p. ej., el sistema de memoria principal o una memoria temporal con una copia más coherente). Debido a que la respuesta de examen se utiliza para determinar la fuente de los datos para una transacción de memoria, la transferencia de datos se retrasa a la respuesta de examen, y así se puede aumentar la latencia de memoria en casos en los que los datos podrían de otra manera ser proporcionados antes de la respuesta de examen (p. ej., debido a un acierto de memoria temporal). Resumen de la invención En una forma de realización, un sistema comprende una pluralidad de agentes acoplados a una interconexión y una memoria temporal acoplada a la interconexión. La pluralidad de agentes están configurados para almacenar datos temporalmente. Un primer agente de la pluralidad de agentes está configurado para iniciar una transacción en la interconexión mediante la transmisión de una solicitud de memoria, y otros agentes de la pluralidad de agentes están configurados para examinar la solicitud de memoria de la interconexión. Los otros agentes proporcionan una respuesta en una fase de respuesta de la transacción en la interconexión. La memoria temporal está configurada para detectar un acierto para la solicitud de memoria y proporcionar datos para la transacción al primer agente antes de la fase de respuesta e independientemente de la respuesta. En un sistema que comprende una pluralidad de agentes acoplados a una interconexión y una memoria temporal acoplada a la interconexión, en el que la pluralidad de agentes también están configurados para almacenar datos temporalmente, se contempla un procedimiento. El procedimiento comprende iniciar una transacción mediante la transmisión de una solicitud de memoria en la interconexión de un primer agente de la pluralidad de agentes; examinar la solicitud de memoria de la interconexión por otros agentes de la pluralidad de agentes; proporcionar una respuesta en una fase de respuesta de la transacción en la interconexión por los otros agentes; detectar un acierto para la solicitud de memoria en la memoria temporal; y proporcionar datos para la transacción al primer agente antes de la fase de respuesta e independientemente de la respuesta, proporcionándose los datos por la memoria temporal en respuesta a la detección del acierto. En otra forma de realización, un sistema comprende una pluralidad de agentes configurados para almacenar datos temporalmente, en el que la pluralidad de agentes están acoplados a una interconexión; y una memoria temporal acoplada a la interconexión. La memoria temporal y la pluralidad de agentes están configurados para mantener estados de coherencia tal que, si la memoria... [Seguir leyendo]

 


Reivindicaciones:

una pluralidad de agentes configurados para almacenar temporalmente datos, en el que la pluralidad de agentes están acoplados a una interconexión; y una memoria temporal acoplada a la interconexión; en el que un primer agente de la pluralidad de agentes se configura para iniciar una transacción en la interconexión mediante la transmisión de una solicitud de memoria, y en el que otros agentes de la pluralidad de agentes son configurados para examinar la solicitud de memoria de la interconexión y proporcionar una respuesta en una fase de respuesta de la transacción en la interconexión, caracterizado porque la memoria temporal se configura para detectar un acierto para la solicitud de memoria y proporcionar datos para la transacción al primer agente antes de la fase de respuesta e independientemente de la respuesta. 2. El sistema según la reivindicación 1, en el que, incluso si uno o más de los otros agentes detectan un acierto para la solicitud de memoria, el uno o más de los otros agentes no proporcionan datos si la memoria temporal detecta el acierto. 3. El sistema según la reivindicación 1 en el que la transacción resulta en un estado de memoria temporal en el primer agente que causaría que el primer agente proporcionara datos en respuesta a un examen posterior, y en el que la memoria temporal es configurada para invalidar los datos de una entrada de memoria temporal que almacena los datos en respuesta a la transacción. 4. El sistema según la reivindicación 1 en el que la pluralidad de agentes, en respuesta al desalojo de un bloque de memoria temporal que se encuentra en un estado exclusivo pero no modificado, son configurados para generar una transacción de reescritura para el bloque de memoria temporal. 5. El sistema según la reivindicación 4 en el que la memoria temporal es configurada para asignar una entrada de memoria temporal en respuesta a la transacción de reescritura y aceptar el bloque de memoria temporal en la entrada. 6. El sistema según la reivindicación 1 que comprende adicionalmente un árbitro de datos configurado para arbitrar las solicitudes para una interconexión de datos, y en el que la memoria temporal está acoplada al árbitro de datos y, en respuesta a la recepción de la solicitud de memoria de la interconexión, la memoria temporal es configurada para arbitrar de forma especulativa la interconexión de datos. 7. El sistema según la reivindicación 6 en el que el árbitro de datos es configurado para conceder la interconexión de datos a la memoria temporal, y en el que la memoria temporal es configurada para transmitir una indicación de cancelación en el bus de datos para indicar al primer agente que la especulación fue incorrecta y que el primer agente debe ignorar los datos. 8. El sistema según la reivindicación 1 en el que la memoria temporal es configurada para proporcionar una respuesta temprana al primer agente, antes de la fase de respuesta, para indicar que la memoria temporal proporcionará los datos. 9. El sistema según la reivindicación 1 en el que la memoria temporal es acoplada para recibir la solicitud de memoria de la interconexión antes que la pluralidad de agentes. 10. Un procedimiento para operar un sistema que comprende una pluralidad de agentes acoplados a una interconexión y una memoria temporal acoplada a la interconexión, en el que la pluralidad de agentes también están configurados para almacenar temporalmente datos, comprendiendo el procedimiento: iniciar una transacción mediante la transmisión de una solicitud de memoria en la interconexión de un primer agente de la pluralidad de agentes; examinar la solicitud de memoria de la interconexión por otros agentes de la pluralidad de agentes; proporcionar una respuesta en una fase de respuesta de la transacción en la interconexión por los otros agentes; detectar un acierto para la solicitud de memoria en la memoria temporal; y proporcionar datos de la transacción al primer agente antes de la fase de respuesta e independientemente de la respuesta, proporcionando la memoria temporal los datos en respuesta a la detección del acierto. 11   11. El procedimiento según la reivindicación 10 en el que, incluso si uno o más de los otros agentes detectan un acierto para la solicitud de memoria, el uno o más de los otros agentes no proporcionan datos si la memoria temporal detecta el acierto. 12. El procedimiento según la reivindicación 10 que comprende adicionalmente: almacenar los datos de la transacción en el primer agente; almacenar un estado de memoria temporal en el primer agente que causaría que el primer agente proporcionara datos en respuesta a un posterior examen en el primer agente; e invalidar los datos de una entrada de memoria temporal que almacena los datos en la memoria temporal en respuesta a la transacción de memoria. 13. El procedimiento según la reivindicación 10 que comprende adicionalmente: desalojar un bloque de memoria temporal que se encuentra en un estado exclusivo pero no modificado de uno de la pluralidad de agentes; y generar una transacción de reescritura para el bloque de memoria temporal; la asignación por parte de la memoria temporal de una entrada de memoria temporal en respuesta a la transacción de reescritura; y aceptar el bloque de memoria temporal en la entrada. 14. El procedimiento según la reivindicación 10 que comprende adicionalmente la memoria temporal solicitando de forma especulativa una interconexión de datos en respuesta a la recepción de la solicitud de memoria de la interconexión antes de detectar el acierto. 15. El procedimiento según la reivindicación 10 que comprende adicionalmente proporcionar una respuesta temprana desde la memoria temporal al primer agente, antes de la fase de respuesta, para indicar que la memoria temporal proporcionará los datos. 12   Memoria temporal L2 Acierto, L2 Acierto Temprano 13   14 Conc   Conc   16 Examen Conceder Examen   Examen Examen 17

 

Patentes similares o relacionadas:

Método y aparato para almacenar en caché, del 3 de Junio de 2020, de TELEFONAKTIEBOLAGET LM ERICSSON (PUBL): Un método para habilitar el almacenamiento en caché de una sección de un archivo multimedia en un Equipo de Usuario, UE , conectado […]

Procedimiento y aparato para gestionar memoria caché en sistema de comunicación, del 15 de Enero de 2020, de SAMSUNG ELECTRONICS CO., LTD.: Un procedimiento para gestionar una memoria caché por una estación base, BS, en un sistema de comunicación inalámbrica, comprendiendo el procedimiento: […]

Método y aparato para un acceso a memoria basado en hilos en un procesador multihilo, del 11 de Septiembre de 2019, de QUALCOMM INCORPORATED: Método para acceder a una memoria por un procesador multihilo , comprendiendo el método: determinar un identificador de hilo asociado a un […]

Dispositivo de inspección de anomalías, unidad central de procesamiento y método de inspección de anomalías, del 7 de Agosto de 2019, de MITSUBISHI HEAVY INDUSTRIES, LTD.: Una unidad de inspección de fallos provista para una unidad central de procesamiento conectada a una unidad de gestión de memoria , comprendiendo la unidad […]

Método y dispositivo para procesar datos, del 12 de Junio de 2019, de ZTE CORPORATION: Un método para procesar datos, que comprende: después de recibir datos introducidos por un bus de datos, de acuerdo con una indicación de destino de los datos y una indicación […]

Imagen de 'Actualización de resultados de consulta de base de datos almacenados…'Actualización de resultados de consulta de base de datos almacenados en memoria caché, del 29 de Mayo de 2019, de AMADEUS S.A.S.: Un método de actualización de unos resultados de consulta de base de datos precalculados en un sistema de base de datos distribuido , […]

Uso de compresión de memoria para reducir la carga de compromiso de memoria, del 6 de Mayo de 2019, de Microsoft Technology Licensing, LLC: Un método de reducir una cantidad de compromiso de memoria para un programa en un dispositivo de cálculo , comprendiendo el método: determinar […]

Sistema de almacenamiento distribuido, del 24 de Abril de 2019, de Soon-Shiong, Patrick: Un sistema de almacenamiento distribuido que comprende: una base de datos de co 5 ntenido que almacena datos de contenido digital que comprenden […]

Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .