MX2008005091A - Indicadores de atributos de memoria cache con datos de memoria almacenados en memoria cache - Google Patents
Indicadores de atributos de memoria cache con datos de memoria almacenados en memoria cacheInfo
- Publication number
- MX2008005091A MX2008005091A MXMX/A/2008/005091A MX2008005091A MX2008005091A MX 2008005091 A MX2008005091 A MX 2008005091A MX 2008005091 A MX2008005091 A MX 2008005091A MX 2008005091 A MX2008005091 A MX 2008005091A
- Authority
- MX
- Mexico
- Prior art keywords
- cache
- address
- memory
- page
- tlb
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 41
- 238000013519 translation Methods 0.000 claims description 21
- 238000013475 authorization Methods 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 9
- 239000000872 buffer Substances 0.000 claims description 5
- 230000014616 translation Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000002650 habitual effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Abstract
Un sistema de procesamiento puede incluir una memoria configurada para almacenar datos en una pluralidad de páginas, un TLB, y una memoria cachéque incluye una pluralidad de líneas caché;cada página en la memoria puede incluir una pluralidad de líneas de memoria;la memoria cachépuede permitir, cuando se presenta una dirección virtual a la memoria caché, una línea cachéde comparación para que sea identificada desde la pluralidad de líneas caché, la línea de comparación tiene una dirección de comparación que compara la dirección virtual;la memoria cachése puede configurar para permitir que uno o más atributos de página, de una página ubicada en la dirección de comparación, sean recuperados de la memoria cachéy o del TLB, almacenando adicionalmente en cada una de las líneas cachéun atributo de página de la línea de datos almacenada en la línea caché.
Description
INDICADORES DE ATRIBUTOS DE MEMORIA CACHE CON DATOS DE MEMORIA ALMACENADOS EN MEMORIA CACHE
CAMPO DE LA INVENCIÓN
La presente invención se refiere a memorias caché .
ANTECEDENTES DE LA INVENCIÓN
En un sistema de procesamiento que soporta memoria virtual paginada, los datos pueden ser especificados utilizando direcciones virtuales (también denominadas como direcciones "efectivas" o "lineales") que ocupan un espacio de dirección virtual del sistema de procesamiento. El espacio de dirección virtual por lo regular puede ser más grande que el tamaño de la memoria física real en el sistema. El sistema operativo en el sistema de procesamiento puede administrar la memoria fisica en bloques de tamaño fijo denominados páginas. Para traducir las direcciones de página virtual en direcciones de página fisica, el sistema de procesamiento puede buscar cuadros de páginas almacenados en la memoria del sistema, la cual puede contener la información de traducción de direcciones necesaria. Un
cuadro de páginas por lo regular puede ser más bien grande en tamaño, debido a que puede contener una lista de todas las direcciones de páginas físicas para todas las direcciones de páginas virtuales generadas por el sistema de procesamiento. También, las búsquedas del cuadro de páginas (o "indagaciones de cuadro de páginas") pueden involucrar accesos de memoria, los cuales pueden consumir tiempo. El sistema de procesamiento entonces puede realizar la traducción de la dirección utilizando una o más memorias intermedias de traducción anticipada (TLB) , las cuales por lo regular contienen un subconjunto de las entradas en el cuadro de páginas. Una TLB es una memoria caché de traducción de dirección, es decir, una memoria caché pequeña que almacena mapeos recientes de direcciones virtuales a direcciones físicas. El sistema de procesamiento puede almacenar en memoria caché una dirección fisica en la TLB, después de realizar una búsqueda de cuadro de página y una traducción de dirección. Una TLB por lo regular puede contener una pluralidad de entradas TLB, cada entrada TLB contiene una dirección de página virtual y una dirección de página fisica correspondiente. Cuando una TLB recibe una dirección de página virtual, la TLB puede buscar sus entradas para ver si
alguna de las direcciones de página virtual almacenadas en memoria caché en alguna de estas entradas coincide con la dirección de página virtual recibida. Si la dirección de página virtual presentada a la TLB no coincide con una dirección de página virtual almacenada en cualquiera de las entradas TLB, puede ocurrir un "acierto" de TLB; de otra manera, puede ocurrir una "pérdida" de TLB. Debido a que cada búsqueda TLB consume energía y tiempo de computadora, pudiera ser deseable reducir la frecuencia de los accesos de la TLB. Una TLB también puede almacenar información referente a uno o más atributos de memoria, además de información referente a las traducciones de dirección virtual a fisica. Estos atributos de memoria pueden, por ejemplo, incluir características de protección de entradas de memoria, tal como autorizaciones de lectura/escritura/ejecución. Los atributos de memoria almacenados en una TLB pueden ser accesados antes, o en paralelo con el acceso a la memoria caché. El almacenamiento de estos atributos de memoria en la TLB, además de almacenar la información de traducción de dirección virtual a fisica, puede incrementar el número de bits que se requiere almacenar en memoria caché en cada entrada TLB. Mientras más bits tienen que ser accesados, más lenta se vuelve la búsqueda
en la TLB, y consume más energía.
SUMARIO DE LA INVENCIÓN
Un sistema de procesamiento puede incluir una memoria configurada para almacenar datos en una pluralidad de páginas, cada página tiene una pluralidad de lineas. El sistema de procesamiento además puede incluir una memoria intermedia de traducción anticipada (TLB) , y una memoria caché que incluye una pluralidad de lineas caché. Cada una de las lineas caché se puede configurar para almacenar una dirección de una de las lineas de memoria, y para almacenar una linea de datos ubicada en la dirección. La memoria caché se puede configurar para permitir que, cuando una dirección virtual es presentada a la memoria caché, se identifique una linea caché de coincidencia entre la pluralidad de lineas caché, la linea caché de coincidencia tiene una dirección de coincidencia que coincide con la dirección virtual presentada a la memoria caché. La memoria caché se puede configurar para permitir que un atributo de página de una página ubicada en la dirección de coincidencia sea recuperado de la memoria caché sin tener acceso a la TLB a fin de recuperar el atributo de página, almacenando de manera adicional en cada una de las lineas
caché un atributo de página de la linea de datos almacenada en la linea caché. Un método puede incluir, tener acceso a una memoria caché utilizando una dirección virtual de una linea de datos. El método además puede incluir, recuperar a partir de la memoria caché un atributo de página para la linea de datos, sin tener acceso a la TLB para recuperar el atributo de página.
BREVE DESCRIPCIÓN DE LAS FIGURAS
La figura 1 ilustra una memoria intermedia de traducción anticipada (TLB) en el contexto de un sistema de memoria virtual. La figura 2 ilustra una modalidad de un sistema de procesamiento. La figura 3A ilustra una TLB que tiene entradas TLB que están configuradas para almacenar uno o más atributos de memoria. La figura 3B ilustra una entrada TLB configurada para almacenar únicamente información de traducción de dirección, y no atributos de memoria. La figura 4A ilustra acceso de memoria caché en una memoria caché. La figura 4B ilustra una memoria caché
configurada para almacenar atributos de memoria como bits extra en sus lineas caché.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
La descripción detallada que se establece a continuación en conexión con las figuras anexas, pretende describir varias modalidades de un sistema de procesamiento, pero no pretende representar las únicas modalidades posibles. La descripción detallada incluye detalles específicos a fin de permitir un completo entendimiento de lo que se describe. Sin embargo, aquellos expertos en la técnica deberán apreciar que detalles específicos pueden no ser incluidos en algunas de las modalidades del sistema de procesamiento. En algunos casos, estructuras y componentes muy conocidos se muestran en forma de diagrama de bloques a fin de ilustrar de manera más clara los conceptos que se están explicando . La figura 1 ilustra de manera esquemática una memoria intermedia de traducción anticipada (TLB) en el contexto de un sistema de memoria virtual que incluye una memoria fisica 30 y un cuadro de páginas 20. En los sistemas de memoria virtual, los mapeos (o traducciones) por lo regular se pueden ejecutar entre un espacio de
dirección virtual (o "lineal") de una computadora (denominado como el conjunto de todas las direcciones virtuales generadas por la computadora) y un espacio de dirección fisica de la memoria de computadora. La dirección fisica de una pieza de datos indica la ubicación real dentro de la memoria fisica 30 de la pieza de datos, y se puede proveer en un enlace de memoria para escribir en, o leer desde la ubicación particular en la memoria fisica 30. En un sistema de memoria virtual paginado, los datos pueden ser visualizados como agrupados en bloques de memoria de longitud fija comúnmente denominados como páginas 31. Por ejemplo, si la unidad direccionable más pequeña de memoria es un byte, y un conjunto de direcciones secuenciales se refiere a un conjunto de bytes de memoria secuenciales, entonces una página se puede definir como un bloque de bytes de memoria secuenciales que están comprendidos de un número particular de bytes. Las páginas pueden estar compuestas de un número de bytes que es una potencia de dos (por ejemplo, 212 = 4096 bytes, o 4 KB) . Las páginas se pueden ubicar en la memoria de manera que el comienzo de cada página queda "alineado" con el tamaño de página, es decir, la dirección del primer byte en la página se puede dividir de manera uniforme entre el número de bytes que
comprenden la página. Por lo tanto, si el tamaño de las páginas es 2N bytes, entonces los N bits de orden bajo de la dirección de página (es decir, la dirección del primer byte en la página) puede ser siempre de ceros. Los bits restantes en la dirección, es decir, los bits más importantes, se pueden denominar como el "número de página" . Tanto el espacio de dirección virtual como el espacio de dirección fisica se pueden dividir en páginas, y el mapeo de direcciones virtuales en direcciones físicas se puede lograr mediante el mapeo del número de página virtual al número de página fisica y concatenando los N bits de orden inferior de la dirección virtual al número de página fisica. Es decir, direcciones de bytes virtuales y físicas correspondientes siempre pueden tener los mismos N bits de orden bajo, en donde N es log (2) del tamaño de página en bytes. Por lo tanto, el espacio de dirección virtual y el espacio de dirección fisica se pueden dividir en bloques de direcciones contiguas, cada dirección virtual provee un número de página virtual, y cada número de página fisica correspondiente indica la ubicación dentro de la memoria 30 de una página particular 31 de datos. El cuadro de páginas 20 en la memoria fisica 30 puede contener los números de páginas físicas correspondientes a todos los números de páginas
virtuales del sistema de memoria virtual, es decir, puede contener los mapeos entre las direcciones de páginas virtuales y las direcciones de páginas físicas correspondientes, para todas las direcciones de páginas virtuales en el espacio de dirección virtual. Por lo regular, el cuadro de páginas 20 puede contener una pluralidad de entradas de cuadros de páginas (PTE) 21, cada PTE 21 señala a una página 31 en la memoria fisica 30 que corresponde a una dirección virtual particular. El acceso a las PTE 21 almacenadas en el cuadro de páginas 20 en la memoria fisica 30 por lo regular puede requerir transacciones del enlace de memoria, las cuales pueden resultar costosas en términos de tiempo de ciclo de procesador y consumo de energía. El número de transacciones del enlace de memoria se puede reducir teniendo acceso a la TLB 10, en lugar de la memoria fisica 30. La TLB 10 por lo regular contiene un subconjunto de los mapeos de direcciones virtuales a físicas que están almacenados en el cuadro de páginas 20. Una pluralidad de entradas TLB 12 por lo regular se puede contener en una TLB 10. Cuando una instrucción tiene una dirección virtual 22 que necesita ser traducida en una dirección fisica correspondiente, durante la ejecución de un programa, la TLB 10 por lo regular puede ser accesada
para buscar la dirección virtual 22 entre las entradas TLB 12 almacenadas en la TLB 10. La dirección virtual 22 por lo regular puede estar contenida dentro de un registro de direcciones. Tal como se muestra en la figura 1, cada entrada TLB 12 puede tener un campo de etiqueta 14 y un campo de datos 16. El campo de etiqueta 14 puede especificar el número de página virtual, y el campo de datos 16 puede indicar el número de página fisica correspondiente a la página virtual etiquetada. Si la TLB 10 encuentra, entre sus entradas TLB, el número de página fisica particular correspondiente al número de página virtual contenido en la dirección virtual 22 presentada a la TLB, entonces ocurre un "acierto" de TLB, y la dirección de página fisica puede ser recuperada del campo de datos 16 de la TLB 10. Si la TLB 10 no contiene la dirección de página fisica particular correspondiente al número de página virtual en la dirección virtual 22 presentada a la TLB, entonces ocurre una "pérdida" de TLB, y se pudiera ejecutar una búsqueda del cuadro de páginas 20 en la memoria fisica 30. La figura 2 es un diagrama de un sistema de procesamiento 100 que incluye un conjunto de registros de propósito general 105, una TLB 110, una memoria caché virtualmente etiquetada 125, y una memoria fisica principal 130. Los registros de propósito general 105
pueden estar contenidos dentro de un CPU 117 en el sistema de procesamiento 100. En la modalidad ilustrada, la TLB 110 también se muestra como ubicada dentro del CPU 117, aunque en otras modalidades, la TLB 100 puede estar ubicada dentro de una unidad de administración de memoria separada (MMU) (que no se muestra) , la cual se puede ubicar ya sea fuera o dentro del CPU. La memoria 130 incluye un cuadro de páginas 120, que se describió en conjunto con la figura 1. La memoria caché 125 es una cantidad pequeña de memoria rápida que se puede utilizar para mantener los datos que son utilizados con mayor frecuencia por el sistema de procesamiento 100. Debido a la localidad de referencia, la cual puede ser un atributo de muchos programas de computadora, la memoria caché 125 de manera efectiva puede acortar la latencia inherente en la mayoría de los accesos de memoria. Las memorias caché por lo general funcionan seleccionando cierto número de lineas candidatas de entre la memoria caché y comparando las etiquetas de dirección almacenadas con cada linea para la dirección de memoria deseada. Si las lineas candidatas no comprenden todas las lineas en la memoria caché, entonces se utiliza cierto método de selección, por lo regular utilizando algunos bits de la dirección fisica o virtual. Si el método de
selección utiliza únicamente bits de la dirección virtual, la memoria caché se dice que está "virtualmente indexada". Si el método utiliza bits de la dirección fisica (traducida), se dice que la memoria caché está "físicamente indexada". También, las etiquetas de dirección almacenadas con cada linea caché pueden ser la dirección virtual o la dirección fisica. Las memorias caché que utilizan la dirección fisica para indexar o etiquetar deben, por supuesto, traducir la dirección virtual en la dirección fisica antes de que pueda ser utilizada. Las memoria caché virtualmente indexadas, virtualmente etiquetadas (VIVT) no necesitan producir una dirección fisica a partir de una virtual antes de tener acceso a la memoria caché y determinar si existen datos deseados presentes. La memoria caché 125, en la modalidad ilustrada del sistema de procesamiento 100, es una memoria caché virtualmente etiquetada. Se deberla apreciar que en otras modalidades del sistema de procesamiento 100, se pueden utilizar memorias caché que no están virtualmente etiquetadas ni tampoco virtualmente indexadas . El conjunto de registros 105 por lo regular incluye una pluralidad de registros de dirección, un ejemplo de lo cual se muestra como el registro de dirección 122. Tal como se explicó anteriormente en
conjunto con la figura 1, el registro de dirección 122 puede presentar una dirección virtual a la TLB 110, la cual puede buscar dentro de la pluralidad de sus entradas TLB, para descubrir si cualquiera de sus entradas TLB tiene una etiqueta que coincida con la dirección virtual presentada por el registro de dirección 122. Si la búsqueda produce como resultado una coincidencia TLB, es decir, se descubre una entrada TLB que contiene la dirección fisica correspondiente a la dirección virtual en el registro de dirección 122, se puede entonces tener acceso a la memoria caché 125, para ubicar los datos que tienen la dirección fisica recuperada de la TLB 110. La mayor parte del tiempo, los datos por lo regular pueden ser recuperados de la memoria caché 125, aunque en ocasiones los datos pueden no haber sido almacenados en la memoria caché 125, y entonces se puede tener acceso a la memoria principal 130. Se puede tener acceso a la TLB 110 antes, o en paralelo con un acceso a la memoria caché 125. El acceso a la memoria caché virtualmente etiquetada 125 se ilustra de manera funcional en la figura 2 utilizando una flecha con guiones que envia una dirección virtual desde el registro de dirección 122 a la memoria caché 125. La figura 3A ilustra una TLB 180 y un registro de direcciones virtuales ejemplares 22. La TLB 180 por lo
regular contiene un número de filas o lineas de entradas TLB, una entrada TLB ejemplar se ilustra utilizando el número de referencia 182. El registro de direcciones virtuales ilustrado 22 es un registro de 32 bits, aunque los registros de direcciones en general pueden tener un número de bits superior o inferior a 32. El registro de direcciones 22 puede incluir información de compensación de página en sus bits de orden más bajo e información de dirección de número de página en sus bits de orden más elevado. El número de página especifica en cuál de la pluralidad de páginas se encuentra los datos deseados en la memoria principal 30. La compensación de página especifica el lugar dentro de la página particular (que está ubicada en el número de página especificado en los bits de orden más elevado del registro de direcciones 22) en que está ubicada la palabra o bytes deseado. El registro de direcciones 22 puede ser un registro de 32 bits, en donde los bits de orden más bajo (bits 9 a 0 en este ejemplo) contienen la información de compensación de página; y los bits de orden más elevado, concretamente los bits 31 a 10, contienen la información del número de página. Un comparador 190 puede comparar los campos de etiqueta de las entradas TLB 182 con la dirección virtual que se muestra en los 0 a 11, para ver si la dirección virtual
indicada por el campo de etiqueta de cualquiera de las entradas TLB 182 en la TLB 180 coincide con la dirección virtual indicada por los bits de orden más elevado en el registro de direcciones 22. La información de compensación de página puede no necesitar ser traducida, debido a que es la misma tanto en un ambiente virtual como un ambiente físico. Aunque una TLB básicamente es una memoria caché de los mapeos de dirección virtual a fisica de un sistema de procesamiento, en una TLB se puede volver habitual almacenar en memoria caché uno o más atributos de memoria que quedan definidos por la región fisica o página, además de la información de traducción de dirección. Estos atributos de memoria pueden incluir, por ejemplo, autorizaciones de lectura, escritura y ejecución. El almacenamiento de uno o más atributos de memoria en la entrada TLB 182 se muestra en la figura 3A utilizando lineas con guiones. Una TLB puede tener una estructura de múltiples niveles (que no se muestra), en donde una TLB relativamente pequeña se utiliza para la mayoría de los accesos de memoria, y el respaldo es proporcionado por una o más TLB de nivel más elevado y más grandes que se van a utilizar cuando se pierda la TLB del primer nivel. Si las pérdidas ocurren de manera sucesiva en todas las
TLB del nivel más elevado, el cuadro de páginas en la memoria principal pudiera ser accesado, es decir, la búsqueda de una traducción de dirección puede continuar hasta que se encuentra una entrada de traducción válida. La reducción del número de bits que se requiere para almacenamiento en memoria caché en cada entrada TLB es deseable, debido a que mientras mayor es la cantidad de bits que tienen que ser accesados, más lenta se vuelve la búsqueda en la TLB, y consume más energía. De hecho, si el número de bits a los que se requiere tener acceso desde la TLB se puede reducir a cero para algunas configuraciones, entonces la TLB se podria remover, o por lo menos podria no ser accesada con frecuencia, ahorrando potencialmente energía, área y complejidad. En una memoria caché virtualmente etiquetada, virtualmente indexada, tal como se muestra en el sistema de procesamiento 100 en la figura 2, una búsqueda de memoria caché puede no requerir traducción de dirección a menos que los datos deseados no se encuentren en la memoria caché, es decir, ocurra una pérdida de memoria caché. En este caso, la única cosa que se pudiera requerir que la TLB produjera de forma convencional, para cada búsqueda de memoria caché, puede ser los atributos de memoria requeridos para ejecutar la instrucción para el acceso a la memoria, es decir, las autorizaciones de
leetura/escritura/ejecución. En una modalidad de un sistema de procesamiento, estos atributos de memoria no son almacenados en una TLB sino más bien en una ubicación alterna. La figura 3B ilustra una entrada TLB 112 en la TLB 110 utilizada en el sistema de procesamiento 100 (que se muestra en la figura 2) . Tal como se puede apreciar a partir de la figura 3B, la entrada TLB 110 está configurada para almacenar únicamente información de traducción de dirección (en los campos ETIQUETA y DATOS) y no en atributos de memoria. La figura 4A ilustra de manera esquemática el acceso de memoria caché en una memoria caché 220. Las memorias caché se pueden dividir en segmentos más pequeños denominados lineas. Cada linea caché 228 en una memoria caché por lo regular contiene una etiqueta de dirección que indica una dirección de memoria que especifica una ubicación particular dentro de la memoria principal, y una copia de los datos que se ubica en la memoria principal en la dirección de memoria contenida en esa linea caché. El procedimiento de etiquetación e indexación para la memoria caché es similar al procedimiento de etiquetación e indexación para la TLB, debido a que una TLB básicamente es una memoria caché de mapeos de dirección. La memoria caché 220 se puede configurar para
permitir el acceso caché utilizando una dirección virtual. En otras palabras, cuando una dirección virtual es presentada a la memoria caché 220, la memoria caché 220 se puede configurar para permitir que una linea caché de coincidencia sea identificada a partir de la pluralidad de lineas caché. La linea caché de coincidencia puede ser la linea caché cuya etiqueta de dirección indica una dirección que coincide con la dirección virtual presentada a la memoria caché. La memoria caché se puede configurar para permitir que uno o más atributos de página de una página ubicada en la dirección de coincidencia sean recuperados de la memoria caché, y no de la TLB. Esto se puede realizar almacenando en cada linea caché un atributo de página de la página de datos almacenada en la linea caché, además de la etiqueta de dirección y los datos. Tal como se aprecia en la figura 4A, los bits del orden más bajo en un registro de dirección 210 presentado a la memoria caché 220 pueden contener información relacionada con la compensación dentro de una linea caché particular 228. La información de compensación se puede utilizar para seleccionar un byte dentro de una linea caché de múltiples bytes 228. Para lineas caché de byte sencillo, no se necesitarla utilizar bits para la compensación. Los siguientes bytes
proporcionan información de Índice para seleccionar una linea caché particular (o conjunto de lineas caché) dentro de todas las lineas caché en la memoria caché. Por último, los bits de dirección en la porción de etiqueta de la linea caché se pueden utilizar para ejecutar una revisión de etiqueta contra las etiquetas en las lineas caché 228 en la memoria caché 220. En una memoria caché virtualmente etiquetada, virtualmente indexada, ni la etiqueta ni el Índice tienen que ser traducidos, y pueden operar de manera concurrente con la TLB. En una memoria caché físicamente etiquetada, virtualmente indexada, la dirección virtual en un registro de dirección se puede utilizar para tener acceso a la linea en la memoria caché, y la dirección física se puede utilizar para etiquetado. En la memoria caché físicamente etiquetada, virtualmente indexada, la indexación puede ocurrir de manera concurrente con la TLB u otra unidad de administración de memoria, pero la salida de la TLB (u otra unidad de administración de memoria) puede ser necesaria para la revisión de etiqueta . En una modalidad del sistema de procesamiento 100, los atributos de memoria son almacenados como bits extra en las lineas caché de la memoria caché. La figura 4B ilustra de manera esquemática una memoria caché 125,
utilizada en una modalidad del sistema de procesamiento 100 (que se muestra en la figura 2). Tal como se aprecia en la figura 4B, en lugar de almacenar los atributos de memoria en una TLB, éstos son almacenados en la memoria caché extendiendo las lineas caché para contener no sólo la dirección y la copia de los datos, sino también los atributos para cada linea caché. Cada línea caché 135 en la figura 4B está configurada para almacenar uno o más atributos de memoria como bits extra en la línea caché. Estos atributos de memoria pueden incluir criterios de autorización tales como si la autorización puede ser otorgada para llevar a cabo una operación en los datos, por ejemplo, si los datos pueden ser accesados para que sean leídos, o si nuevos datos pueden ser escritos en los datos existentes, o si una instrucción (por ejemplo SUMAR o MULTIPLICAR) puede ser ejecutada utilizando los datos existentes. Los atributos de memoria también pueden proporcionar información referente a si la autorización para una operación puede ser otorgada a un modo operativo particular (por ejemplo, un "supervisor" o modo privilegiado, en contraste con un "usuario" o modo no privilegiado) . En otras palabras, los atributos de memoria pueden indicar si se permite el acceso de un usuario a los datos almacenados en esa linea caché
particular, o si únicamente tiene acceso permitido el supervisor. Además de leer/escribir/ejecutar y autorizaciones de modo de usuario/supervisor, los atributos de memoria también pueden proporcionar otros tipos de información, incluyendo pero no limitado a, información referente a la capacidad de memoria caché y política de asignación de escritura para otros niveles de memoria caché entre la memoria caché mencionada y la memoria del sistema real. En un sistema de procesamiento que tiene una memoria caché de instrucciones virtualmente etiquetadas, virtualmente indexadas, sólo a manera de ejemplo, el CPU sólo tendría acceso a una TLB a fin de obtener los atributos de autorización de lectura/escritura/ejecución y compararlos contra las características de la aplicación que solicitó la búsqueda y carga de la instrucción. Al colocar una copia de estos atributos en cada línea caché, se puede eliminar la necesidad de una búsqueda TLB en las búsquedas y cargas de instrucciones que genera una coincidencia en la memoria caché. Una búsqueda de TLB pudiera ser necesaria únicamente para rellenar una línea caché de instrucciones, mediante el acceso al siguiente nivel de memoria, debido a que los atributos de manera eventual tendrían que ser utilizados a fin de autorizar la aplicación en funcionamiento para ejecutar las
instrucciones buscadas y cargadas (y la dirección traducida seria necesaria para tener acceso a la memoria fisica) . Se deberá apreciar que la memoria caché 220 no se limita a una memoria caché de instrucciones virtualmente etiquetadas, virtualmente indexadas. Se puede utilizar cualquier memoria caché que permita el acceso a través de una dirección virtual. En resumen, los atributos de memoria antes descritos son almacenados como bits extra en cada línea de una memoria caché, y no son almacenados en una TLB, obviando la necesidad de recuperar esos atributos de la TLB, por lo menos en un primer nivel. El hecho de evitar la necesidad de almacenar estos atributos en una TLB, puede tener como resultado una menor potencia, área y/o complejidad del sistema en general. La descripción anterior de las modalidades descritas se proporciona para permitir a cualquier experto en la técnica hacer o utilizar el sistema de procesamiento antes descrito. Diversas modificaciones a estas modalidades serán fácilmente aparentes para aquellos expertos en la técnica, y los principios genéricos aquí definidos se pueden aplicar a otras modalidades sin apartarse del espíritu o alcance de lo que se ha descrito. Por lo tanto, el sistema de
procesamiento no pretende quedar limitado a las modalidades aqui mostradas, sino que se le acordará el alcance completo consistente con las reivindicaciones, en donde la referencia a un elemento en el singular no pretende decir "uno y únicamente uno" a menos que específicamente asi se estipule, sino más bien "uno o más". Todos los equivalentes estructurales y funcionales a los elementos de las diversas modalidades que se describen en esta descripción, que son conocidos o que posteriormente se volverán del conocimiento para aquellos expertos en la técnica, quedan expresamente incorporados en la presente invención por referencia y pretenden quedar abarcados por las reivindicaciones. Además, nada de lo aqui descrito pretende quedar dedicado al público sin considerar si dicha descripción está explícitamente recitada en las reivindicaciones. Ningún elemento reclamado se interpretará bajo las disposiciones de 35 U.S.C. §112, párrafo sexto, a menos que el elemento sea expresamente mencionado utilizando la frase "medios para" o, en el caso de un método reclamado, el elemento sea recitado utilizando la frase "paso para".
Claims (20)
1.- Un sistema de procesamiento que comprende: una memoria configurada para almacenar datos en una pluralidad de páginas, cada página incluye una pluralidad de lineas; una memoria intermedia de traducción anticipada (TLB) ; una memoria caché que incluye una pluralidad de lineas caché, cada una de las líneas caché configurada para almacenar una dirección de una de las líneas de memoria, y para almacenar una linea de datos ubicada en dicha dirección; en donde la memoria caché está configurada para permitir que, cuando una dirección virtual es presentada a la memoria caché, una linea caché de coincidencia sea identificada a partir de la pluralidad de líneas caché, la línea caché de coincidencia tiene una dirección de coincidencia que coincide con la dirección virtual presentada a la memoria caché; y en donde la memoria caché está configurada para permitir que un atributo de página, de una página ubicada en dicha dirección de coincidencia, sea recuperado de la memoria caché sin tener acceso a la TLB a fin de recuperar el atributo de página, almacenando adicionalmente en cada una de las lineas caché un atributo de página de la linea de datos almacenada en dicha linea caché.
2. - El sistema de procesamiento de conformidad con la reivindicación 1, caracterizado porque por lo menos algunas de las lineas caché están configuradas para almacenar una etiqueta de dirección que es una etiqueta de dirección virtual.
3.- El sistema de procesamiento de conformidad con la reivindicación 1, caracterizado porque por lo menos algunas de las lineas caché están configuradas para almacenar una etiqueta de dirección que es una etiqueta de dirección física.
4. - El sistema de procesamiento de conformidad con la reivindicación 1, caracterizado porque por lo menos algunas de las lineas caché en la memoria caché son accesadas por un Índice virtual que permite a una o más líneas caché ser seleccionadas de entre la pluralidad de las líneas caché.
5.- El sistema de procesamiento de conformidad con la reivindicación 1, caracterizado porque por lo menos algunas de las lineas caché en la memoria caché son accesadas por un Índice fisico que permite que una o más líneas caché sean seleccionadas de entre la pluralidad de líneas caché.
6.- El sistema de procesamiento de conformidad con la reivindicación 1, caracterizado porque uno de los atributos de página comprende un criterio de autorización que indica si una autorización puede ser otorgada para que una operación se lleve a cabo en la página de datos ubicada en una dirección indicada por la etiqueta de dirección de la línea caché que tiene dichos atributos de página .
7. - El sistema de procesamiento de conformidad con la reivindicación 6, caracterizado porque la operación comprende por lo menos una de una operación de lectura, una operación de escritura, y una operación de ejecución .
8. - El sistema de procesamiento de conformidad con la reivindicación 6, caracterizado porque el criterio de autorización además indica si la autorización para la operación puede ser otorgada a un operador.
9.- El sistema de procesamiento de conformidad con la reivindicación 6, caracterizado porque el operador comprende por lo menos uno de un usuario y un supervisor.
10.- El sistema de procesamiento de conformidad con la reivindicación 1, que además comprende: una pluralidad de niveles adicionales de memoria caché, y en donde uno de los atributos de página comprende un criterio de capacidad para almacenamiento en memoria caché que indica si los datos, ubicados en una dirección fisica correspondiente a una dirección virtual de una de las lineas caché que tiene dichos atributos de memoria, pueden ser almacenados en uno o más de los niveles adicionales de memoria caché.
11.- El sistema de procesamiento de conformidad con la reivindicación 1, caracterizado porque los datos almacenados por lo menos en algunas de la pluralidad de páginas comprenden una o más instrucciones.
12.- El sistema de procesamiento de conformidad con la reivindicación 1, caracterizado porque la memoria contiene un cuadro de páginas que contiene una pluralidad de entradas de cuadro de páginas, y en donde cada entrada de cuadro de páginas está configurada para almacenar un mapeo entre una dirección virtual y una dirección física de una de la pluralidad de páginas.
13.- El sistema de procesamiento de conformidad con la reivindicación 12, caracterizado porque la TLB incluye una pluralidad de entradas TLB, en donde cada una de las entradas TLB está configurada para almacenar información de traducción de dirección para una traducción de una dirección virtual en una dirección física de una de las páginas, y en donde la TLB incluye un subconjunto de la pluralidad de entradas de cuadros de páginas .
14.- El sistema de procesamiento de conformidad con la reivindicación 13, caracterizado porque cada una de las entradas TLB está configurada para almacenar únicamente la información de traducción de dirección y no cualquier atributo de página.
15.- Un método que comprende: tener acceso a una memoria caché utilizando una dirección virtual de una linea de datos; y recuperar de la memoria caché un atributo de página para la linea de datos, sin tener acceso a la TLB para recuperar el atributo de página.
16.- El método de conformidad con la reivindicación 15, caracterizado porque el acto de tener acceso a la memoria caché comprende el acto de tener acceso a una memoria caché virtualmente etiquetada.
17.- El método de conformidad con la reivindicación 15, caracterizado porque el acto de tener acceso a la memoria caché comprende el acto de tener acceso a una memoria caché físicamente etiquetada.
18.- El método de conformidad con la reivindicación 15, caracterizado porque el acto de tener acceso a la memoria caché comprende el acto de tener acceso a una memoria caché virtualmente indexada.
19.- El método de conformidad con la reivindicación 15, caracterizado porque el acto de tener acceso a la memoria caché comprende el acto de tener acceso a una memoria caché físicamente indexada.
20.- El método de conformidad con la reivindicación 15, caracterizado porque el acto de almacenar un atributo de memoria comprende el acto de almacenar un criterio de autorización que indica si una autorización puede ser otorgada para una operación que va a ser llevada a cabo en los datos ubicados en la dirección fisica correspondiente a la dirección virtual de la línea caché.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11254873 | 2005-10-20 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| MX2008005091A true MX2008005091A (es) | 2008-09-02 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5475055B2 (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
| EP1934753B1 (en) | Tlb lock indicator | |
| US8082416B2 (en) | Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure | |
| US7917725B2 (en) | Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer | |
| US7783859B2 (en) | Processing system implementing variable page size memory organization | |
| CN101606134B (zh) | 地址转换方法和设备 | |
| US20050013183A1 (en) | Load control | |
| US20170286296A1 (en) | Managing synonyms in virtual-address caches | |
| US7779214B2 (en) | Processing system having a supported page size information register | |
| US20160140042A1 (en) | Instruction cache translation management | |
| US20120173843A1 (en) | Translation look-aside buffer including hazard state | |
| US20070094476A1 (en) | Updating multiple levels of translation lookaside buffers (TLBs) field | |
| US6567907B1 (en) | Avoiding mapping conflicts in a translation look-aside buffer | |
| US6766435B1 (en) | Processor with a general register set that includes address translation registers | |
| US20140006747A1 (en) | Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure | |
| MX2008005091A (es) | Indicadores de atributos de memoria cache con datos de memoria almacenados en memoria cache |