Sistema de computadora, procesador integrado y método de control de caché para procesador integrado
Descripción general
 Proporcione un rendimiento superior y un procesador integrado compatible hacia atrás. ] Controlador de memoria caché 108 del procesador 101, para captar la dirección física de la memoria 114 que corresponde a cada entrada de la memoria caché 106, una información del circuito 130 incluyendo cada línea de caché que indica si válido o sucio, el maestro del bus de sustitución 122 es un ciclo de memoria Un circuito 134 para determinar si se ejecutó y un circuito 132 para determinar si se produjo un golpe de caché durante ese ciclo. Cuando el maestro de bus alternativo 122 genera un ciclo de escritura y se produce un golpe de caché, los datos se envían desde el caché 106 si la línea correspondiente está sucia. Cuando se produce un ciclo de lectura y se produce un acierto, los datos se escriben tanto en la memoria 114 como en la memoria caché 106, y la información sucia en la memoria caché 106 se actualiza posiblemente.
Campo técnico
La presente invención se refiere a un sistema informático que utiliza un procesador integrado que tiene un subsistema de memoria caché. La invención también se refiere a un mecanismo de transferencia de bus utilizado en un procesador integrado.
La arquitectura de la computadora basada en caché generalmente se asocia con un mecanismo de transferencia de bus dedicado para admitir el uso eficiente de la memoria caché y mantener la integridad de los datos. La memoria caché es una unidad de memoria de alta velocidad ubicada entre la memoria del sistema más lenta y el procesador en la jerarquía de memoria del sistema informático para mejorar la tasa de transferencia efectiva de la memoria y mejorar el rendimiento del sistema en consecuencia . Su nombre se relaciona con el hecho de que una pequeña unidad de memoria caché está escondida de manera inherente, invisible para el usuario, y el usuario es consciente de solo la memoria más grande del sistema. El almacenamiento en caché generalmente se realiza con un dispositivo de memoria semiconductor que tiene una velocidad comparable a la velocidad del procesador, mientras que la memoria del sistema utiliza técnicas más baratas y más lentas. El concepto de almacenamiento en caché se prepara para la posibilidad de que el microprocesador reutilice los datos seleccionados en la memoria del sistema almacenando una copia de los datos seleccionados en la memoria caché.
La memoria caché típicamente incluye una pluralidad de secciones de memoria, cada una de las cuales almacena 'líneas' o bloques de dos o más palabras de datos. Para los sistemas basados ​​en el microprocesador más general del modelo 80486, la línea consta de cuatro 'palabras dobles' (cada palabra doble contiene 4 bytes de 8 bits). Cada línea está etiquetada con una etiqueta de dirección que identifica de forma única de qué línea de memoria del sistema es una copia. Cuando la solicitud de lectura para una nueva palabra (o una nueva palabra doble o un nuevo byte) se genera en el procesador, si una instrucción que sería datos y comparación de etiquetas de direcciones está hecho, una copia de la palabra solicitada en la memoria caché Se juzga si está en la línea. Si hay alguno, los datos se usan directamente de la memoria caché. Este evento se llama lectura de caché 'hit'. De lo contrario, la línea que contiene la palabra solicitada se lee de la memoria del sistema y se almacena en la memoria caché. La palabra solicitada se suministra simultáneamente al procesador. Este evento se llama 'error' de lectura de caché.
Además de usar la memoria caché para leer datos, el procesador también puede escribir datos directamente en la memoria caché en lugar de en la memoria del sistema. Si el procesador desea escribir datos en la memoria, se realiza una comparación de etiqueta de dirección para determinar si la línea a escribir está en la memoria caché. Si esa línea está en la memoria caché, los datos se escriben directamente en la línea. Este evento se llama 'escribir' en la memoria caché. Como se describirá con más detalle a continuación, en muchos sistemas, los datos de la línea 'bit sucio' se configuran. El bit sucio indica que los datos almacenados en la línea están sucios (es decir, modificados) y, por lo tanto, esta línea se ha modificado antes de que se elimine o sobrescriba de la memoria caché. Los datos deben escribirse en la memoria del sistema.
Si los datos de la línea se va a escribir no está en la memoria caché, la línea se obtiene de la memoria del sistema en la memoria caché, situado en el libro o los datos que permitan la escrita en la memoria caché, o los datos en la memoria del sistema . Este evento se llama 'error' de caché. La línea sobrescrita o copiada de la memoria caché cuando se almacenan datos nuevos en la memoria caché se denomina bloque víctima o línea sacrificial.
La memoria caché se puede optimizar de acuerdo con varias técnicas diferentes. Un aspecto que afecta el rendimiento del sistema y la complejidad del diseño es el proceso de escritura iniciado por un procesador o maestro de bus alternativo. Como se explicó anteriormente, puede haber dos copias de un código de datos o instrucciones particular, es decir, ya que puede haber copias duplicadas en la memoria caché una por una en la memoria del sistema, ya sea memoria del sistema o memoria caché Una escritura en la unidad de memoria puede provocar una falta de coincidencia entre las dos unidades de almacenamiento. Por ejemplo, considere el caso donde los mismos datos se almacenan inicialmente en una dirección predeterminada tanto en la memoria caché como en la memoria del sistema. A partir de entonces, cuando el procesador inicia un ciclo de escritura y almacena un nuevo elemento de datos en una dirección predeterminada, se produce un 'acierto' de escritura en la memoria caché y el procesador emite nuevos datos a la memoria caché en la dirección predeterminada Escribir Como los datos se cambian en la memoria caché pero no se cambian en la memoria del sistema, la memoria caché y la memoria del sistema se vuelven inconsistentes. De manera similar, en un sistema con un maestro de bus alternativo, el ciclo de escritura a la memoria del sistema mediante el maestro de bus alternativo cambia los datos en la memoria del sistema pero no cambia los datos en la memoria caché. De nuevo, la memoria caché y la memoria del sistema se vuelven inconsistentes.
La falta de coincidencia entre la memoria caché y la memoria del sistema durante la escritura del procesador se puede prevenir o solucionar mediante la implementación de una de varias técnicas de uso común. En la primera técnica, la caché de 'escritura simultánea' garantiza la coherencia entre la memoria caché y la memoria del sistema escribiendo los mismos datos tanto en la memoria caché como en la memoria del sistema. El contenido de la memoria caché y la memoria del sistema son siempre los mismos, por lo tanto, los dos sistemas de almacenamiento son consistentemente consistentes. En la segunda técnica, la memoria caché 'write-back' escribe solo en la memoria caché y establece el bit 'sucio' para procesar la escritura del procesador indicando la entrada de caché modificada por el procesador. Más tarde, cuando se reemplaza la entrada de caché 'sucia' o cambiada durante el ciclo de 'reemplazo de caché', los datos modificados se vuelven a grabar en la memoria del sistema.
La falta de correspondencia entre la memoria caché y la memoria del sistema durante la operación de escritura por el maestro de bus alternativo se maneja de forma algo diferente. Para los sistemas que utilizan el esquema de caché de escritura no simultánea, cuando los maestros de bus alternativos intentan escribir datos en la memoria del sistema, es necesario determinar si algunas líneas de datos en la memoria caché deben invalidarse o escribirse nuevamente. Se puede implementar una de las diversas técnicas de monitoreo de buses o 'espionaje' para determinar la cantidad de buses. Una de esas técnicas implementadas dentro del sistema basado en 80486 se llama protocolo 'MESI'. Para un sistema que usa el protocolo MESI, cuando un maestro de bus alternativo intenta escribir datos en la memoria del sistema, el controlador de caché determina si los datos en la línea correspondiente se incluyen en la memoria caché. Si la línea correspondiente no está incluida en la memoria caché, el controlador de caché no realizará más operaciones y podrá completar el ciclo de escritura iniciado por el maestro de bus alternativo. Por otro lado, si los datos de la línea correspondiente están incluidos en la memoria caché, el controlador de caché evalúa si los datos de la línea están sucios o limpios. Si la línea está limpia, el controlador de caché marca la línea como no válida y se puede completar la transferencia de datos desde el maestro de bus alternativo a la memoria del sistema. Los datos en esa línea deben marcarse como no válidos porque los datos modificados (y, por lo tanto, los más recientes) solo se encuentran actualmente en la memoria del sistema (una vez completado el ciclo de escritura por el maestro de bus alternativo) . En cambio, si los datos en esa línea están sucios, el controlador de caché inicia un ciclo de escritura de snoop, que hace que el maestro de bus alternativo 'retroceda' y libere el control del bus del sistema. El controlador de caché hace que la línea completa de datos sucios en la memoria caché se vuelva a escribir en la memoria del sistema. Se puede lograr un ciclo de reescritura de snoop realizando un ciclo de escritura de ráfaga en la memoria del sistema. Como es bien sabido por los expertos en la técnica, durante la fase de datos del ciclo de ráfaga, se inserta una nueva palabra (o doble palabra) entre cada uno de varios ciclos de reloj consecutivos sin interponer una fase de dirección Para la memoria del sistema. El ciclo de ráfaga más rápido (sin estado de espera) requiere dos ciclos de reloj (un reloj para la dirección y un reloj para la palabra correspondiente) para la primera palabra y la palabra siguiente solicita un reloj posterior Cada ciclo se escribe en una dirección secuencial. Cuando el controlador de caché completa la escritura de la línea sucia, la línea se marca como limpia (no cambiada).
Una vez que se completa el ciclo de escritura de snoop, el maestro de bus alternativo nuevamente domina el bus del sistema y el ciclo de escritura mediante el maestro de bus alternativo se ejecuta nuevamente. En este punto, se pueden escribir nuevos datos en la memoria del sistema. El controlador de caché que observa la escritura en la ubicación de memoria limpia por el maestro de bus alternativo invalida la línea de caché aquí como se describió anteriormente. El ciclo de escritura de snoop garantiza que la coherencia de los datos se mantenga incluso si la escritura de datos del maestro de bus alternativo no incluye toda la línea de caché.
Las incoherencias entre la memoria caché y la memoria del sistema durante la operación de lectura por el maestro de bus alternativo se procesan de la misma manera. Cuando el maestro de bus alternativo intenta leer datos de la memoria del sistema, el controlador de caché determina si la línea de datos correspondiente se incluye en la memoria caché. línea correspondiente está incluido en la memoria caché, y si la línea correspondiente está sucio, Snoop ciclo de escritura no simultánea es iniciada por el controlador de memoria caché, que autobús alternativo comunicados maestros de control de bus de sistema de back-off-vida o muerte que . El controlador de caché hace que la línea completa de datos sucios en la memoria caché se vuelva a escribir en la memoria del sistema. Después de que se complete el ciclo de escritura atrás, el maestro de bus alternativo nuevamente domina el bus del sistema, y ​​se reanuda el ciclo de lectura mediante el maestro de bus alternativo. En este punto, los datos en la memoria del sistema se pueden leer.
Cuando se realiza el ciclo de recuperación de snoop como se describió anteriormente durante las operaciones de lectura y escritura del maestro de bus alternativo para mantener la integridad de los datos, el ancho de banda del bus local de la CPU disminuye. Esto se debe a que el maestro de bus alternativo tiene que esperar a que se complete el ciclo de escritura regresiva antes de ejecutar la transferencia de datos deseada. Por lo tanto, es deseable proporcionar un sistema en el que la coherencia de la memoria caché se mantenga sin requerir una operación de escritura de retroceso.
En los últimos años, se han desarrollado procesadores integrados para reemplazar los microprocesadores previamente separados y los periféricos asociados en los sistemas informáticos. procesador integrado, entre otras cosas, un microprocesador, por ejemplo un controlador de memoria, un controlador de DMA, el temporizador y un circuito integrado que realiza ambas funciones con varios dispositivos periféricos, tales como una unidad de interfaz de bus. La introducción de un procesador integrado permite una reducción en el costo total, el tamaño y el peso del sistema informático y, en muchos casos, mejora las características de rendimiento del sistema informático. Los procesadores integrados que implementan el conjunto de instrucciones compatible con el tipo 80486 generalmente usan el protocolo MESI consistente con sus partes separadas correspondientes. Esto garantiza la compatibilidad con dispositivos periféricos como controladores de memoria y dispositivos de E / S diseñados para su uso en sistemas basados ​​en 80486. Desafortunadamente, el uso del protocolo descrito anteriormente dentro de un procesador integrado limita el rendimiento general del sistema informático. Esto se debe a que se debe tratar el ciclo de escritura de snoop, lo que limita el ancho de banda del bus local de la CPU. Por lo tanto, es deseable proporcionar un procesador integrado compatible con el periférico externo 80486 mientras se logra un alto rendimiento de todo el sistema.
Antecedentes de la técnica
Medios para resolver el problema
Efecto de la invención
La figura 1 es un diagrama de bloques de un sistema informático que incluye un procesador integrado que usa un controlador de caché según la presente invención.
La figura 2 es un diagrama de bloques que muestra el flujo de datos en el sistema informático de la figura 1 en la aparición de un ciclo de escritura por el maestro de bus alternativo.
La figura 3 es un diagrama de bloques que muestra el flujo de datos en el sistema informático de la figura 1 en el momento en que el maestro de bus alternativo produce un ciclo de escritura.
La figura 4 es un diagrama de bloques que muestra el flujo de datos en el sistema informático de la figura 1 en la aparición de un ciclo de lectura por el maestro de bus alternativo.
La figura 5 es un diagrama de flujo que muestra el funcionamiento del controlador de caché de la figura 1.
100 Sistema informático
101 Procesador integrado
102 CPU core
106 memoria caché
108 Controlador de caché
Unidad de interfaz de bus 110
114 Memoria del sistema
116 Controlador de memoria
122 Maestro de bus alternativo
130 Etiqueta de dirección y circuito lógico de estado
132 Circuito comparador
134 Circuito de control Snoop
Reclamo
Un sistema informático que incluye un bus del sistema, una memoria del sistema y un maestro de bus alternativo acoplado al bus del sistema, en el que el maestro del bus puede ejecutar un ciclo de memoria en el bus del sistema, el sistema informático Comprende además un procesador integrado, comprendiendo el procesador integrado: una unidad de interfaz de bus que acopla el bus del sistema a un bus local, una memoria caché operativamente acoplada al bus local, una memoria caché acoplada a la memoria caché Un controlador de memoria del sistema operativamente acoplado al bus local y la memoria del sistema y que controla el almacenamiento y recuperación de datos en la memoria del sistema, y ​​un procesador operativamente acoplado a la memoria caché y al bus local. Dijo C Y un controlador de caché para controlar el almacenamiento y la lectura de datos en la memoria, en donde el controlador de caché puede almacenar una pluralidad de direcciones de línea que indican una pluralidad de líneas de datos que se almacenarán en la memoria caché, Un circuito lógico de etiqueta capaz de almacenar al menos un bit sucio asociado con cada línea y un circuito comparador acoplado al circuito lógico de etiqueta para determinar si se ha producido un golpe de caché entre los ciclos de memoria especificados, Y un circuito de control snoop acoplado al circuito comparador, en el que el circuito de control snoop es capaz de inhibir el controlador de memoria durante un ciclo de lectura asociado con datos de caché sucios.
2. El sistema informático de acuerdo con la reivindicación 1, en el que el ciclo de lectura es iniciado por el maestro de bus alternativo.
3. El sistema informático según la reivindicación 1, en el que el maestro de bus alternativo es un puente de bus.
4. El sistema informático de la reivindicación 1, en el que el circuito de control de snoop hace que los datos de caché sucia se activen en el bus local en respuesta al ciclo de memoria.
5. El método de la reivindicación 1, en el que el circuito de control de fisgoneo es además operable para enclavar datos a almacenar en una ubicación de memoria correspondiente de la memoria caché durante una operación de escritura del maestro de bus alternativo. Sistema informático.
6. El sistema informático de la reivindicación 5, en el que los datos se enclavan simultáneamente en el controlador de memoria.
7. El sistema informático de la reivindicación 6, en el que la línea de caché está marcada limpia por el circuito lógico de etiqueta cuando el ciclo de escritura incluye una línea de caché completa.
8. Un procesador integrado, que comprende: un núcleo de CPU, un bus operativamente acoplado a dicho núcleo de CPU y capaz de transferir señales de datos, una memoria caché operativamente acoplada a dicho bus; operativamente acoplado al bus, una memoria del sistema para controlar el almacenamiento y la lectura de los datos en la memoria del sistema, en el que y un dispositivo de reemplazo bus maestro acoplado al bus, el dispositivo maestro de reemplazo, un ciclo de memoria en el bus En el que dicho procesador integrado comprende además un controlador de caché acoplado operativamente a dicha memoria caché y dicho bus para controlar el almacenamiento y la recuperación de datos en dicha memoria caché, pudiendo funcionar dicho controlador de caché para: Una pluralidad de líneas que indican una pluralidad de líneas de datos que se almacenarán en la memoria caché Un circuito lógico de etiqueta capaz de almacenar al menos un bit sucio asociado a cada línea y capaz de almacenar al menos un bit sucio, un circuito lógico de etiqueta acoplado al circuito lógico de etiqueta y que tiene un golpe de caché Y un circuito de control snoop acoplado al circuito comparador, en el que el circuito de control snoop inhibe el controlador de memoria durante un ciclo de lectura asociado con datos de caché sucios Puede ser procesador integrado.
9. El procesador integrado de la reivindicación 8, en el que el ciclo de lectura es iniciado por el maestro de bus alternativo.
10. El procesador integrado de la reivindicación 8, en el que el maestro de bus alternativo es un puente de bus.
11. El procesador integrado de la reivindicación 8, en el que el circuito de control de fisgoneo hace que los datos de caché sucia se activen en el bus local en respuesta al ciclo de memoria.
12. El método de la reivindicación 8, en el que el circuito de control de fisgoneo es además capaz de enclavar datos para ser almacenados en una ubicación de memoria correspondiente de la memoria caché durante una operación de escritura del maestro de bus alternativo. Procesador integrado.
13. El procesador integrado de la reivindicación 12, en el que los datos se enclavan simultáneamente en el controlador de memoria.
14. El procesador integrado de la reivindicación 13, en el que la línea de caché está marcada limpia por el circuito lógico de etiqueta cuando el ciclo de escritura incluye una línea de caché completa.
Almacenar una pluralidad de direcciones de línea que indican una pluralidad de líneas de datos en la memoria caché, almacenar una pluralidad de bits sucios asociados con cada dirección de línea, transferir datos de la memoria del sistema al maestro de bus alternativo , Detectando el ciclo de memoria en el controlador de caché, determinando si una línea correspondiente está en la memoria caché, si la línea correspondiente está sucia Determinar si la línea correspondiente está en la memoria caché y si la línea está sucia, la memoria del sistema para proporcionar datos de la dirección solicitada al maestro de bus alternativo Prohibir Y una etapa de proporcionar los datos correspondientes a la dirección solicitada a Shumemori, el método de control de caché para el procesador integrado.
Dibujo :
Application number :1997-006679
Inventors :アドバンスト?マイクロ?ディバイシズ?インコーポレイテッド
Original Assignee :ジョセフ?エイ?ベイリー、スティーブ?エル?ベルト