ES2357308T3 - Almacenamiento en memoria caché en el procesado de datos. - Google Patents

Almacenamiento en memoria caché en el procesado de datos. Download PDF

Info

Publication number
ES2357308T3
ES2357308T3 ES06743880T ES06743880T ES2357308T3 ES 2357308 T3 ES2357308 T3 ES 2357308T3 ES 06743880 T ES06743880 T ES 06743880T ES 06743880 T ES06743880 T ES 06743880T ES 2357308 T3 ES2357308 T3 ES 2357308T3
Authority
ES
Spain
Prior art keywords
cache
data
instruction
page
main memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06743880T
Other languages
English (en)
Inventor
Rabin Ezra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Application granted granted Critical
Publication of ES2357308T3 publication Critical patent/ES2357308T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Procesador de datos que comprende: una memoria principal (130); una memoria caché (140) de instrucciones y una memoria caché (150) de datos dispuestas, cada una de ellas, como una pluralidad de páginas de memoria caché; una lógica (110) de recuperación de instrucciones que se puede hacer funcionar para buscar en la memoria caché (140) de instrucciones una instrucción requerida; y si la instrucción requerida no está presente en la memoria caché (140) de instrucciones, para buscar en la memoria caché (150) de datos; si la instrucción requerida está presente en la memoria caché de datos para recuperar la página que comprende la instrucción requerida desde la memoria caché de datos hacia la memoria caché de instrucciones, y si la instrucción requerida no está presente en la memoria caché (150) de datos, para recuperar la página que comprende la instrucción requerida desde la memoria principal (130) hacia la memoria caché (140) de instrucciones; una lógica (110) de escritura de datos que se puede hacer funcionar para escribir un valor de datos en la página pertinente de la memoria caché (150) de datos en una dirección de datos y, si la misma página está representada también en la memoria caché (140) de instrucciones, para escribir ese valor de datos en la dirección correspondiente de esa página en la memoria caché (140) de instrucciones; y una lógica (110) de control de memorias caché que se puede hacer funcionar para transferir páginas desde la memoria caché (150) de datos hacia la memoria principal (130), en el que valores de datos almacenados en la memoria caché (140) de instrucciones no se vuelven a escribir nunca en la memoria principal.

Description

La presente invención se refiere al almacenamiento en memoria caché en el procesado de datos.
A continuación se describirá un problema a título de ejemplo con respecto a la emulación de un microprocesador particular, aunque se observará que la invención presenta una aplicabilidad mucho más amplia.
Los núcleos de microprocesador se usan en varias aplicaciones tales como terminales particulares del televisor 5 y el sistema de entretenimiento informático familiar Playstation 2™ (PS2) de SonyRTM. En el procesador de entrada/salida (IOP) de la PS2, el núcleo está provisto de 2 Megabytes de memoria principal y una memoria caché muy pequeña. Hace uso de la denominada “escritura directa” de la memoria caché, en la que cualquier información escrita por el procesador en una posición de memoria caché se escribe también en la memoria principal subyacente. Esto significa que la información nueva se escribe en la memoria caché en el caso de que sea necesario leerla de nuevo en 10 un futuro próximo, pero la propia operación de escritura no se almacena en memoria caché ya que sigue siendo necesario cada vez un acceso a la memoria principal. Una ventaja de esta disposición es que permite implementar más fácilmente un código de programa automodificable. La técnica anterior es el documento US 2002/0010837, que da a conocer un sistema y un método de memoria caché para controlar esta última.
Se ha propuesto que el IOP se emule mediante un procesador de emulación que tiene una memoria interna 15 demasiado pequeña para proporcionar los 2 MB de la memoria del IOP. Se puede acceder a una memoria externa, aunque esto se realiza únicamente a través de un controlador de DMA. Para permitir que la emulación funcione a una velocidad útil, se requiere por lo tanto una estrategia de almacenamiento en memoria caché, ya que los accesos a una memoria externa en el sistema de emulación que usa el controlador de DMA son lentos. Para reducir el número de accesos a la memoria externa que son necesarios, la estrategia de almacenamiento en memoria caché debería incluir el 20 almacenamiento en memoria caché de escrituras de datos así como de lecturas de datos. No obstante, esto significaría que el código automodificable no se puede emular fácilmente.
La presente invención proporciona un procesador de datos según la reivindicación 1 adjunta a la presente memoria.
La invención proporciona una forma eficaz de acceder a datos e instrucciones al mismo tiempo que se reduce 25 la necesidad de acceder a una memoria principal.
Vista desde un segundo aspecto, la presente invención proporciona un método de procesado de datos según la reivindicación 10 adjunta a la presente memoria.
Otros aspectos de la invención incluyen software de ordenador que comprende un código de programa para llevar a cabo este método; y un soporte (por ejemplo, un medio de transmisión o un soporte de almacenamiento) por 30 medio del cual se proporciona dicho código de programa.
En las reivindicaciones adjuntas se definen otros diversos aspectos y características de la invención. A continuación se describirán formas de realización de la invención, únicamente a título de ejemplo, haciendo referencia a los dibujos adjuntos, en los que:
la Figura 1 ilustra esquemáticamente un sistema de procesado de datos; 35
la Figura 2 ilustra esquemáticamente un sistema de procesado de datos que usa memorias caché de datos y de instrucciones;
la Figura 3 es un diagrama de flujo esquemático referente a una operación para leer una instrucción;
la Figura 4 es un diagrama de flujo esquemático referente a una operación para escribir un valor de datos; y
la Figura 5 es un diagrama de flujo esquemático referente a una operación para leer un valor de datos. 40
La Figura 1 ilustra esquemáticamente un sistema de procesado de datos del que se va a realizar una emulación. El sistema comprende un procesador 10 que lee datos e instrucciones desde, y escribe datos e instrucciones modificadas en, una memoria principal 20.
La siguiente descripción se refiere a una técnica para la emulación del funcionamiento del sistema de la Figura 1 que usa un procesador cuya memoria local es demasiado pequeña para contener una imagen de la memoria principal 45 20 del sistema del que se va a realizar la emulación. Debido a esta restricción, se debe utilizar una estrategia de memoria caché.
La Figura 2 ilustra esquemáticamente la disposición de emulación. Las técnicas de emulación son en general bien conocidas, y, por claridad, se omiten las características que no son relevantes directamente para la presente forma de realización. La emulación conlleva un procesador de emulación que ejecuta un software de emulación escrito en un 50 lenguaje nativo para el procesador de emulación, de manera que se ejecuta un grupo de dichas instrucciones nativas para emular el tratamiento de una instrucción en el sistema emulado. En la descripción que se ofrece a continuación, el
término “instrucción” se referirá a una instrucción en el sistema emulado, y no a una instrucción nativa del software de emulación.
Haciendo referencia a la Figura 2, un procesador 110 que ejecuta un software 120 de emulación accede a una memoria principal 130 a través de una memoria caché (I) 140 de instrucciones y una memoria caché (D) 150 de datos. La razón de usar la memoria caché I y la memoria caché D es que la memoria local para el procesador 110 es 5 demasiado pequeña para contener una imagen de la memoria principal 20 del sistema emulado, y se debe acceder a la memoria principal 130 asociada al procesador 110 a través de un acceso DMA caro (es decir, que consume mucho tiempo).
La memoria caché I 140 es de correspondencia directa para obtener más velocidad de acceso y contiene 8 páginas de memoria de 4 kilobytes cada una de ellas (es decir, cada página contiene diversas líneas de memoria 10 caché). En esta forma de realización se usa un número reducido de páginas de memoria de gran tamaño para conseguir que el proceso de comprobación de un acierto de memoria caché resulte más eficaz. Las páginas de memoria de gran tamaño amortizan los accesos lentos a la memoria. Se pueden leer páginas de memoria desde la memoria principal 130 hacia la memoria caché I 140, y el procesador puede leer instrucciones de la memoria caché I 140. No obstante, los valores almacenados en la memoria caché I 140 no se vuelven a escribir nunca en la memoria principal 130. 15
Las transferencias hacia y desde memorias caché se realizan página a página. De modo similar, la búsqueda de una memoria caché, para detectar si la misma contiene un elemento de datos requerido, se lleva a cabo detectando si la página que contiene ese elemento está contenida en la memoria caché.
La memoria caché D 150 es totalmente asociativa para reducir la denominada “hiperpaginación” – es decir, un cambio rápido de las páginas de la memoria caché – y contiene nuevamente 8 páginas de 4 kilobytes cada una de ellas. 20 Cuando se va a leer una página nueva hacia la memoria caché D desde la memoria principal 130, una página a la que se ha accedido menos recientemente, almacenada en la memoria caché D, se vuelve a escribir en la memoria principal (si la misma se ha cambiado desde que se leyó de la memoria principal). Por lo tanto, si el procesado modifica cualquier dato almacenado en la memoria caché D, la modificación queda contenida en la memoria caché D 150 hasta que esa página se vuelva a escribir en la memoria principal 130. 25
A continuación se describirá la interacción de la memoria caché D y la memoria caché I haciendo referencia a diagramas de flujo mostrados en las figuras 3 a 5.
La Figura 3 es un diagrama de flujo esquemático referente a una operación para leer una instrucción.
En una etapa 200, el procesador 110 intenta acceder a la instrucción requerida desde la memoria caché I 140. Si la instrucción requerida está presente en la memoria caché I 140, el control se traslada a una etapa 210 en la que se 30 lee la instrucción desde la memoria caché I y la misma se traslada al procesador 110 para su tratamiento según la manera habitual. A continuación, el proceso finaliza.
No obstante, si la instrucción requerida no estaba en la memoria caché I 140, se realiza a continuación una comprobación en relación con si la instrucción requerida es parte de la información almacenada en la memoria caché D 150. Esta prueba se representa mediante una etapa 220. Si la instrucción requerida está realmente en la memoria caché 35 D, entonces la página completa se copia desde la memoria caché D a la memoria caché I en una etapa 230. Obsérvese que esto simplemente puede sobrescribir una página en la memoria caché I, ya que los datos de la memoria caché I no se vuelven a escribir nunca en la memoria principal 130. Desde la etapa 230, el control se traslada nuevamente a la etapa 210, en la que la instrucción requerida se lee de la memoria caché I y el procesado finaliza.
No obstante, si la instrucción requerida no está ni en la memoria caché I (etapa 200) ni en la memoria caché D 40 (etapa 220), entonces, en una etapa 240, la página que contiene la instrucción requerida se lee desde la memoria principal hacia la memoria caché I 140, sobrescribiendo una página de la memoria caché I. El control se traslada nuevamente a la etapa 210, y el proceso finaliza.
La Figura 4 es un diagrama de flujo esquemático referente a una operación para escribir un valor de datos.
En una etapa 310, el procesador 110 escribe un valor de datos en la memoria caché D 150. Tal como se ha 45 descrito anteriormente, esto se usará finalmente para actualizar la memoria principal 130, aunque puede que ello no ocurra hasta que la página pertinente se deba sobrescribir en la memoria caché D.
En una etapa 320, se realiza una detección en relación con si la página que contiene el valor de datos recién escrito está también contenida en la memoria caché I. En caso afirmativo, entonces, en una etapa 330, el nuevo valor de datos se escribe también en la posición pertinente de la memoria caché I, y el proceso finaliza. No obstante, si la página 50 pertinente no estaba contenida en la memoria caché I, el proceso simplemente finalizaría en ese momento.
La Figura 5 es un diagrama de flujo esquemático referente a una operación para leer un valor de datos. En una etapa 400, el procesador 110 intenta acceder al valor de datos desde la memoria caché D 150. Si la dirección requerida está almacenada en memoria caché en la D 150, entonces el valor requerido se lee de la memoria caché D en una etapa 410, y el proceso finaliza. No obstante, si la página necesaria no está en la memoria caché D, entonces, en una 55
etapa 420, la página menos usada recientemente se escribe de nuevo (si fuera necesario, es decir, si la misma ha sido modificada) desde la memoria caché D hacia la memoria principal 130, y, en una etapa 430, la página que contiene la dirección de memoria requerida se lee desde la memoria principal 130 hacia la memoria caché D 150. A continuación, el control se traslada nuevamente a la etapa 410, y el proceso finaliza.
Usando la estrategia anterior, aun cuando la información almacenada en la memoria caché I 140 no se escribe 5 de nuevo nunca directamente en la memoria principal 130, y en la presente forma de realización no se proporciona ninguna instrucción o función de invalidación de la memoria caché I, si el procesador 110 ejecuta el código denominado automodificable de manera que instrucciones almacenadas en la memoria principal 130 se van a sobrescribir con instrucciones generadas por medio de la ejecución de las propias instrucciones, no existe ninguna posibilidad de que se produzca una inconsistencia en el código a ejecutar. Cuando se va a sobrescribir una instrucción, el valor nuevo se 10 escribe en la memoria caché D y, si esa página está almacenada también en la memoria caché I, se escribe en la memoria caché I. Por lo tanto, la memoria caché I se mantiene actualizada con todos los cambios. En el momento en el que se va a acceder a una instrucción, si la misma no está en la memoria caché I, se busca en la memoria caché D antes que la memoria principal. Por lo tanto, cualquier cambio que no se haya escrito de nuevo todavía en la memoria principal 130 seguirá estando en la memoria caché D, y las instrucciones modificadas se transferirán desde la memoria 15 caché D a la memoria caché I.

Claims (14)

  1. REIVINDICACIONES
    1. Procesador de datos que comprende:
    una memoria principal (130);
    una memoria caché (140) de instrucciones y una memoria caché (150) de datos dispuestas, cada una de ellas, como una pluralidad de páginas de memoria caché; 5
    una lógica (110) de recuperación de instrucciones que se puede hacer funcionar para buscar en la memoria caché (140) de instrucciones una instrucción requerida; y si la instrucción requerida no está presente en la memoria caché (140) de instrucciones, para buscar en la memoria caché (150) de datos; si la instrucción requerida está presente en la memoria caché de datos para recuperar la página que comprende la instrucción requerida desde la memoria caché de datos hacia la memoria caché de instrucciones, y si la instrucción requerida no está presente en la memoria caché 10 (150) de datos, para recuperar la página que comprende la instrucción requerida desde la memoria principal (130) hacia la memoria caché (140) de instrucciones;
    una lógica (110) de escritura de datos que se puede hacer funcionar para escribir un valor de datos en la página pertinente de la memoria caché (150) de datos en una dirección de datos y, si la misma página está representada también en la memoria caché (140) de instrucciones, para escribir ese valor de datos en la dirección 15 correspondiente de esa página en la memoria caché (140) de instrucciones; y
    una lógica (110) de control de memorias caché que se puede hacer funcionar para transferir páginas desde la memoria caché (150) de datos hacia la memoria principal (130),
    en el que valores de datos almacenados en la memoria caché (140) de instrucciones no se vuelven a escribir nunca en la memoria principal. 20
  2. 2. Procesador de datos según la reivindicación 1, en el que la memoria caché de instrucciones es de correspondencia directa y la memoria caché de datos es totalmente asociativa.
  3. 3. Procesador de datos según la reivindicación 1 ó 2, en el que transferencias hacia o desde una memoria caché se llevan a cabo basándose en un esquema de página a página.
  4. 4. Procesador de datos según la reivindicación 3, en el que la lógica de recuperación de instrucciones se 25 puede hacer funcionar para buscar en la memoria caché de instrucciones y en la memoria caché de datos detectando si una página requerida está contenida en la memoria caché respectiva.
  5. 5. Procesador de datos según la reivindicación 3 ó 4, en el que la lógica de control de memorias caché está dispuesta para transferir una página de datos a la que menos se ha accedido recientemente, desde la memoria caché de datos hacia la memoria principal cuando se va a escribir una página recién requerida en la memoria caché de datos y 30 esa página a la que menos se ha accedido recientemente contiene datos que han sido modificados.
  6. 6. Procesador de datos según cualquiera de las reivindicaciones anteriores, en el que cada una de las memorias caché contiene 32 kilobytes dispuestos en forma de 8 páginas de 4 kilobytes cada una de ellas.
  7. 7. Procesador de datos según cualquiera de las reivindicaciones anteriores, que comprende una lógica de ejecución de instrucciones para ejecutar instrucciones. 35
  8. 8. Procesador de datos según la reivindicación 7, en el que la lógica de ejecución de instrucciones comprende una disposición de procesado de datos que ejecutan software para la emulación de la ejecución de las instrucciones.
  9. 9. Procesador de datos según cualquiera de las reivindicaciones anteriores, no proporcionando el procesador de datos una función de invalidación de entradas en la memoria caché de instrucciones. 40
  10. 10. Método de procesado de datos en un sistema que tiene una memoria principal (130), y una memoria caché (140) de instrucciones y una memoria caché (150) de datos dispuestas, cada una de ellas, como una pluralidad de páginas de memoria caché;
    comprendiendo el método las etapas siguientes:
    buscar (200) en la memoria caché de instrucciones una instrucción requerida; 45
    si la instrucción requerida no está presente en la memoria caché (140) de instrucciones, buscar (220) en la memoria caché (150) de datos; si la instrucción requerida está presente en la memoria caché de datos, recuperar la página que comprende la instrucción requerida desde la memoria caché de datos hacia la memoria caché de instrucciones;
    si la instrucción requerida no está presente en la memoria caché de datos, recuperar (240) la página que comprende la instrucción requerida desde la memoria principal (130) hacia la memoria caché (140) de instrucciones;
    cuando se va a escribir un valor de datos, escribir (310) ese valor de datos en la página pertinente de la memoria caché (150) de datos en una dirección de datos y, si la misma página está representada también en la memoria caché (140) de instrucciones, escribir (330) ese valor de datos en la dirección correspondiente de esa página 5 en la memoria caché (140) de instrucciones; y
    transferir páginas desde la memoria caché (150) de datos hacia la memoria principal (130),
    en el que valores de datos almacenados en la memoria caché (140) de instrucciones no se vuelven a escribir nunca en la memoria principal.
  11. 11. Software de ordenador que comprende código de programa para llevar a cabo un método según la 10 reivindicación 10.
  12. 12. Soporte mediante el cual se proporciona código de programa según la reivindicación 11.
  13. 13. Soporte según la reivindicación 12, siendo el soporte un medio de transmisión.
  14. 14. Soporte según la reivindicación 13, siendo el soporte un soporte de almacenamiento.
ES06743880T 2005-05-09 2006-05-05 Almacenamiento en memoria caché en el procesado de datos. Active ES2357308T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0509420 2005-05-09
GB0509420A GB2426082B (en) 2005-05-09 2005-05-09 Memory caching in data processing

Publications (1)

Publication Number Publication Date
ES2357308T3 true ES2357308T3 (es) 2011-04-25

Family

ID=34685298

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06743880T Active ES2357308T3 (es) 2005-05-09 2006-05-05 Almacenamiento en memoria caché en el procesado de datos.

Country Status (8)

Country Link
US (1) US20070073971A1 (es)
EP (1) EP1880276B1 (es)
JP (1) JP4666511B2 (es)
AU (1) AU2006245560A1 (es)
DE (1) DE602006017355D1 (es)
ES (1) ES2357308T3 (es)
GB (1) GB2426082B (es)
WO (1) WO2006120408A2 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552283B2 (en) 2006-01-20 2009-06-23 Qualcomm Incorporated Efficient memory hierarchy management
US8943273B1 (en) * 2008-08-14 2015-01-27 Marvell International Ltd. Method and apparatus for improving cache efficiency
US8255629B2 (en) * 2009-06-22 2012-08-28 Arm Limited Method and apparatus with data storage protocols for maintaining consistencies in parallel translation lookaside buffers
JP5644539B2 (ja) * 2011-01-25 2014-12-24 日本電気株式会社 プロセッサ、情報処理装置、情報処理方法及びシステム起動プログラム
US10073656B2 (en) * 2012-01-27 2018-09-11 Sandisk Technologies Llc Systems and methods for storage virtualization
US10346095B2 (en) * 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5829187A (ja) * 1981-08-14 1983-02-21 Nec Corp キヤツシユメモリ制御装置
JPS6022376B2 (ja) * 1980-08-28 1985-06-01 日本電気株式会社 キャッシュメモリ制御装置
JPS60123936A (ja) * 1983-12-07 1985-07-02 Fujitsu Ltd バッフア記憶制御方式
EP0156307A3 (en) * 1984-03-30 1988-04-20 Four-Phase Systems Inc. Pipelined processor having dual cache memories
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
DE3751642T2 (de) * 1986-10-17 1996-09-05 Amdahl Corp Verwaltung von getrennten Befehls- und Operanden-Cachespeichern
JPS63240650A (ja) * 1987-03-28 1988-10-06 Toshiba Corp キヤツシユメモリ装置
US5214770A (en) * 1988-04-01 1993-05-25 Digital Equipment Corporation System for flushing instruction-cache only when instruction-cache address and data-cache address are matched and the execution of a return-from-exception-or-interrupt command
JPH02109150A (ja) * 1988-10-18 1990-04-20 Mitsubishi Electric Corp 命令キャッシュメモリ制御装置
JPH0423148A (ja) * 1990-05-18 1992-01-27 Fujitsu Ltd キャッシュ制御装置
JPH05324469A (ja) * 1992-04-02 1993-12-07 Nec Corp キャッシュ・メモリを内蔵したマイクロプロセッサ
JPH0816390A (ja) * 1994-07-01 1996-01-19 Hitachi Ltd マイクロプロセッサ
JP3693503B2 (ja) * 1998-07-15 2005-09-07 株式会社日立製作所 命令キャッシュへの書き込み機構を備えたプロセッサ
US7360028B1 (en) * 2000-05-05 2008-04-15 Sun Microsystems, Inc. Explicit store-to-instruction-space instruction for self-modifying code and ensuring memory coherence between instruction cache and shared memory using a no-snoop protocol
JP2002007212A (ja) * 2000-06-19 2002-01-11 Sony Corp キャッシュ・メモリ・システム及びキャッシュ・メモリ制御方法

Also Published As

Publication number Publication date
EP1880276B1 (en) 2010-10-06
GB0509420D0 (en) 2005-06-15
GB2426082A (en) 2006-11-15
WO2006120408A3 (en) 2007-05-31
WO2006120408A2 (en) 2006-11-16
EP1880276A2 (en) 2008-01-23
AU2006245560A1 (en) 2006-11-16
JP4666511B2 (ja) 2011-04-06
JP2006318471A (ja) 2006-11-24
GB2426082B (en) 2007-08-15
US20070073971A1 (en) 2007-03-29
DE602006017355D1 (de) 2010-11-18

Similar Documents

Publication Publication Date Title
JP5030796B2 (ja) データ転送中にキャッシュへのアクセスを制限するシステムおよびその方法
US7290081B2 (en) Apparatus and method for implementing a ROM patch using a lockable cache
US10719448B2 (en) Cache devices with configurable access policies and control methods thereof
US9286221B1 (en) Heterogeneous memory system
CN109952567B (zh) 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置
ES2357308T3 (es) Almacenamiento en memoria caché en el procesado de datos.
EP1869557B1 (en) Global modified indicator to reduce power consumption on cache miss
US11119925B2 (en) Apparatus and method for managing capability metadata
US20090172314A1 (en) Code reuse and locality hinting
JP2007048296A (ja) 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム
JP5129023B2 (ja) キャッシュメモリ装置
US20080282054A1 (en) Semiconductor device having memory access mechanism with address-translating function
US20190286562A1 (en) Information processing apparatus, cache control apparatus and cache control method
US6766427B1 (en) Method and apparatus for loading data from memory to a cache
EP3147908A1 (en) Level 1 memory structure with a non-volatile memory and a buffer
JPH08123722A (ja) 情報処理システムにおける記憶制御方法および記憶制御装置