BRPI0806756A2 - método e equipamento para ajustar polìticas de cache em um processador - Google Patents

método e equipamento para ajustar polìticas de cache em um processador Download PDF

Info

Publication number
BRPI0806756A2
BRPI0806756A2 BRPI0806756-2A BRPI0806756A BRPI0806756A2 BR PI0806756 A2 BRPI0806756 A2 BR PI0806756A2 BR PI0806756 A BRPI0806756 A BR PI0806756A BR PI0806756 A2 BRPI0806756 A2 BR PI0806756A2
Authority
BR
Brazil
Prior art keywords
cache
processor
memory
policy information
cache policy
Prior art date
Application number
BRPI0806756-2A
Other languages
English (en)
Inventor
Michael William Morrow
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0806756A2 publication Critical patent/BRPI0806756A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/12Replacement control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

MéTODO E EQUIPAMENTO PARA AJUSTAR POLìTICAS DE CACHE EM UM PROCESSADOR. De acordo com os métodos e equipamentos ensinados na presente invenção, políticas de armazenamento em cache de processador são determinadas com o uso de informações de política de cache associadas a um dispositivo de memória alvo acessado durante uma operação de memória. De acordo com uma modalidade de um processador, o processador compreende pelo menos um cache e uma unidade de gerenciamento de memória, O pelo menos um cache é configurado para armazenar informações locais ao processador. A unidade de gerenciamento de memória é configurada para ajustar uma ou mais políticas de cache para pelo menos um cache. A unidade de gerenciamento de memória ajusta uma ou mais políticas de cache com base em informações de política de cache associadas a um ou mais dispositivos de memória alvos configurados para armazenar informações usadas pelo processador.

Description

"MÉTODO E EQUIPAMENTO PARA AJUSTAR POLÍTICAS DE CACHE EM UM PROCESSADOR"
FUNDAMENTOS
Campo da Invenção
A presente invenção refere-se geralmente a operações de armazenamento em cache em um processador e, particularmente, se refere à determinação de políticas de cache. Fundamentos
O desempenho do processador é aprimorado através da inclusão de um ou mais níveis de cache localmente em um processador para armazenar informações acessadas freqüentemente ou usadas mais recentemente. Uma cache do processador é uma memória rápida e pequena que armazena uma cópia de informações de seleção armazenadas na memória principal tal como DRAM ou uma unidade de disco rígido. Quando uma instrução acessa um local de memória, o processador primeiramente checa se o local de memória é repetido em uma cache local. Particularmente, o endereço associado ao acesso a memória é comparado a todos os indicadores em uma' cache. Se a memória desejada for localizada na cache, ocorre uma solicitação de cache. Por outro lado, ocorre uma perda de cache.
Quando uma solicitação de cache ocorre, o processador imediatamente lê ou escreve as informações tais como dados ou instruções na linha de cache identificada. No caso de uma perda de cache, as informações desejadas são recuperadas a partir de uma cache ou memória principal de nível mais alto. Ademais, uma nova entrada é convencionalmente alocada na cache para armazenar as informações recuperadas recentemente. A nova entrada compreende um indicador que identifica o endereço que ocasionou a perda de cache e uma cópia das informações recuperadas a partir da memória principal.
Para acomodar uma nova entrada de cache, uma entrada existente é desalojada da cache. O heurístico usado para escolher a entrada a ser desalojada de uma cache é baseado em uma política de substituição tal como primeira entrada, primeira saída ou menos usado recentemente. Outras políticas de cache (também chamadas de atributos de cache) são utilizadas também para determinar como uma cache é acessada, usada e mantida. Outras políticas de cache incluem políticas de escrita, políticas de alocação, políticas de nível de cache e políticas personalizadas.
As políticas de escrita determinam quando as informações escritas para um bloco de cache também são escritas na memória principal. Por exemplo, a cache e a memória principal são atualizadas ao mesmo tempo quando uma política de escrita direta é usada. Quando uma política de escrita de volta é empregada, a memória principal é atualizada somente quando o bloco de cache correspondente é substituído. Uma política de escrita única usa uma política de escrita direta para a primeira escrita em um bloco de cache específico e uma política de escrita de volta para escritas subsequentes no mesmo bloco.
Uma política de alocação de cache determina quando um bloco de cache é escrito. Por exemplo, se a política de alocação associada a um bloco de cache específico for "alocar em somente leitura", o bloco não é interrompido durante as escritas. Contrariamente, o bloco de cache é atualizado tanto durante as escritas como durante as leituras quando a política de alocação é "alocar em leitura e escrita". Para processadores com múltiplos níveis de caches tais como instrução em primeiro nível e caches de dados e ao menos uma cache de nível mais alto, uma política de nível de cache determina qual o nível de cache é usado para armazenar informações. Por exemplo, as instruções podem ser armazenadas em uma instrução de cache em primeiro nível enquanto outras informações podem ser armazenadas somente em uma cache em segundo nível.
As políticas de cache são convencionalmente armazenadas em uma tabela de paginação. A tabela de paginação é mantida na memória principal com as entradas mais recentemente usadas ou freqüentemente acessadas sendo armazenadas localmente em um processador, por exemplo, em um Translation Lookaside Buffer (TLB), ou Armazenador (Buffer) de Previsão de Tradução. Cada entrada da tabela de paginação mapeia um endereço virtual para um endereço físico correspondente. Particularmente, a tabela de paginação armazena uma lista de números de página virtual e números de página física correspondentes. Os números de página virtual identificam blocos respectivos de memória virtual alocados em processos que operam em um processador, enquanto os números de página física identificam os blocos de memória física correspondentes que contêm as informações reais usadas pelos processos.
Quando um processador acessa um local de memória específico, as entradas da tabela de paginação são procuradas usando a porção de número de página virtual do endereço virtual fornecido como parte do acesso. O número de página física é recuperado a partir da entrada de tabela de paginação correspondente. O número de página física e o deslocamento de página formam um endereço físico que é usado para acessar o local de memória desejado.
Se o local de memória desejado não estiver contido em uma cache do processador local, a memória principal é acessada. As informações da política de cache armazenadas na entrada de tabela de paginação determinam se as informações lidas ou escritas na memória principal como parte do acesso a memória são armazenadas localmente na cache e, caso isso ocorra, como as informações são mantidas na cache. Dessa forma, as políticas de cache são, convencionalmente, ajustadas e aplicadas em uma cache em uma base por página (ou por bloco) . Adicionalmente, as políticas de cache são, convencionalmente, programadas através do sistema operacional. Como tal, as políticas de cache são geralmente aplicadas em todos os processos que operam em um processador e podem resultar em ineficiências quando utilizadas por um tipo específico de dispositivo de memória principal. Por exemplo, uma política de alocação de cache de "alocar em somente leitura" pode aperfeiçoar a utilização da cache para alguns processos tais como aplicações gráficas exclusivamente.
SUMÁRIO DA INVENÇÃO
De acordo com os métodos e aparelho ensinados no presente documento, as políticas de armazenamento em cache do processador são determinadas com o uso de informações de política de cache associadas a um dispositivo de memória alvo acessado durante uma operação de memória específica. Assim, as operações de armazenamento em cache podem ser feitas sob medida para os ajustes do dispositivo de memória específico em vez de ajustes de política de cache gerais. O desempenho do processador é aprimorado através da determinação de políticas de cache para uma operação de memória atual com base nas informações de política de cache associadas ao dispositivo de memória alvo acessado durante a operação de memória.
De acordo com uma modalidade de um processador, o processador compreende ao menos uma cache e uma unidade de gerenciamento de memória. A ao menos uma cache é configurada para armazenar as informações locais ao processador. A unidade de gerenciamento de memória é configurada para ajustar uma ou mais políticas de cache para ao menos uma cache. A unidade de gerenciamento de memória ajusta as uma ou mais políticas de cache com base em informações de política de cache associadas a um ou mais dispositivos de memória alvo configurados para armazenar informações usadas pelo processador.
De acordo com uma modalidade de um sistema, o sistema compreende um processador que possui ao menos uma cache configurada para armazenar informações locais ao processador, ou um ou mais dispositivos de memória alvo acoplados no processador e uma unidade de gerenciamento de memória incluída no processador. Os um ou mais dispositivos de memória alvo são configurados para armazenar informações usadas pelo processador. A unidade de gerenciamento de memória é configurada para ajustar uma ou mais políticas de cache para a ao menos uma cache com base em informações de política de cache associadas a um ou mais dispositivos de memória alvo.
Obviamente, a presente invenção não se limita às características e vantagens supracitadas. Os versados na técnica irão reconhecer características e vantagens adicionais mediante a leitura da seguinte descrição detalhada e mediante a visualização dos desenhos em anexo.
BREVE DESCRIÇÃO DOS DESENHOS
A Figura 1 é um diagrama em bloco que ilustra uma modalidade de um sistema que inclui um processador que possui um conjunto de circuitos para determinar políticas de cache.
A Figura 2 é um diagrama em bloco que ilustra uma modalidade de um circuito decodificador de endereço para fornecer informações de política de cache associadas a um dispositivo de memória.
A Figura 3 é um diagrama em bloco que ilustra uma outra modalidade de um sistema que inclui um processador que possui um conjunto de circuitos para determinar as políticas de cache.
A Figura 4 é um diagrama em bloco que ilustra uma modalidade de conjunto de circuitos para determinar as políticas de cache em um processador.
A Figura 5 é um diagrama de fluxo lógico que ilustra uma modalidade da lógica de programa para determinar as políticas de cache em um processador.
A Figura 6 é um diagrama que ilustra como o conjunto de circuitos da Figura 4 determina as políticas de armazenamento em cache responsivas a uma operação de escrita exemplificativa.
A Figura 7 é um diagrama que ilustra como o conjunto de circuitos da Figura 4 determina as políticas de armazenamento em cache responsivas a uma operação de leitura exemplificativa.
DESCRIÇÃO DETALHADA
A Figura 1 ilustra uma modalidade de um sistema 10 que inclui um barramento 12 que acopla um processador 14 em um ou mais dispositivos periféricos 16 e a memória principal tal como uma unidade de disco rígido (HDD) 18 e DRAM tal como DRAM Sincrona (SDRAM) 20 e RAM Gráfica Sincrona (SGRAM) 22. O processador 14 inclui um núcleo de processador 24, caches de dados e instrução 26, 28, uma cache de segundo nível (L2) 30 e uma unidade de interface de barramento 32. O núcleo de processador 24 fornece controle centralizado de fluxo de instrução e execução de instrução. As caches de dados e instrução 26, 28 armazenam dados e instruções, respectivamente. A cache L2 30 fornece um armazenador (buffer) de memória de alta velocidade entre as caches de instrução e dados 26, 28 e a memória principal externa do processador 14 tal como HDD 18, SDRAM 20 e SGRAM 22. A unidade de interface de barramento 32 fornece um mecanismo para transferir dados, instruções, endereços e sinais de controle entre o processador 14 e os dispositivos externos em relação ao processador 14 tais como periféricos 16 e memória principal 18, 20, 22.
A memória principal 18, 20, 22 é representada como memória virtual em processos que operam no processador 14. Ou seja, as páginas da memória física são alocadas como memória virtual para uso em processos durante a execução dom programa. Uma tabela de paginação 34 é mantida na memória principal 18, 20, 22, por exemplo, conforme mostrada na Figura 1, para viabilizar o mapeamento entre espaços de endereço físico e virtual. Uma unidade de gerenciamento de memória (MMU) 36 incluída no processador 14 acessa a tabela de paginação 34 e manipula os acessos da memória emitidos pelo processador 14, incluindo gerenciamento de memória virtual, proteção de memória, controle de cache e arbitramento do barramento. Como parte do gerenciamento de memória virtual, a MMU 36 mantém o local das entradas da freqüente ou recentemente mencionadas (PTEs) no processador 14, por exemplo, em um Translation Lookaside Buffer (TLB) 38, ou Armazenador (Buffer) de Previsão de Tradução.
Quando o processador 14 acessa um local de memória desejado identificado por um endereço virtual, a MMU 36 acessa o TLB 38 para determinar se o TLB 38 contém uma entrada correspondente. Caso haja, o endereço virtual é traduzido em um endereço físico usando informações de tradução de endereço na entrada do TLB correspondente. Por outro lado, é feita uma busca na tabela de paginação 34 por uma entrada correspondente. De qualquer modo, a MMU 36 inicia uma operação de pesquisa de cache em uma das caches indicadas fisicamente 26, 28, 30 com base no endereço físico resultante. Se uma das caches 26, 28, 30 contiver o local de memória desejado, a linha de cache correspondente é acessada e o acesso a memória se completa, por exemplo, através da leitura ou escrita da linha de cache. Por outro lado, a MMU 36 inicia um acesso a memória à memória principal 18, 20, 22 para acessar o local de memória desejado.
A memória principal 18, 20, 22 é acessada através do fornecimento do endereço físico que identifica o local de memória desejado. O dispositivo de memória que contém o local de memória desejado é chamado na presente invenção de dispositivo de memória alvo. De acordo com as várias modalidades reveladas no presente documento, o dispositivo de memória alvo pode compreender qualquer módulo, dispositivo ou banco de memória endereçável incluído no sistema. Por exemplo, um dispositivo de memória alvo pode ser um dentre SDRAMs 20, SGRAMs 22 ou outro dispositivo de memória (não mostrado) dependendo do processo específico a ser executado pelo processador 14.
Em resposta a um acesso a memória externo, as informações de política de cache associadas ao dispositivo de memória alvo correspondente são fornecidas para um circuito de ajuste de política de cache 40 incluído na ou associado à MMU 36. O circuito de ajuste de política de cache 40 determina os ajustes de política de cache para a operação de memória atual com base nas informações de política de cache associadas ao dispositivo de memória alvo correspondente. Deste modo, quando o processador 14 acessa um local de memória externo específico, as políticas de cache são adaptadas ao dispositivo de memória alvo correspondente que contém o local de memória desejado.
Por exemplo, se uma operação de memória for direcionada a um dos dispositivos SGRAM 22, a política de alocação de cache associada ao dispositivo SGRAM alvo pode ser "alocar em somente leitura" quando as funções do dispositivo alvo como um armazenamento temporário de quadro de vídeo para uma aplicação multimídia. 0 processador 14 pode escrever freqüentemente para o dispositivo SGRAM alvo durante a execução de uma aplicação multimídia, mas raramente ler a partir do dispositivo. Dessa forma, a política de alocação de cache do dispositivo SGRAM alvo pode indicar "alocar em somente leitura" apara aprimorar o desempenho do processador. As informações de política de cache do dispositivo de memória alvo também podem indicar uma política de substituição, política de escrita, política de alocação, política de nível de cache e/ou uma ou mais políticas personalizadas específicas.
Em uma modalidade, as informações de política de cache associadas a um dispositivo de memória alvo são fornecidas por um controlador de memória 42 que fornece uma interface entre o barramento 12 e os vários dispositivos DRAM 20, 22 conforme mostrado na Fiqura 1. De acordo com esta modalidade, o controlador de memória 42 inclui um circuito decodificador de endereço 44 para decodificar os endereços da memória física fornecidos pelo processador 14 como parte dos acessos da memória (por exemplo, leituras ou escritas). As informações de política de cache qeradas pelo circuito decodificador de endereço 44 são uma função da memória física endereço fornecida como parte de um acesso a memória específico. O endereço físico identifica o dispositivo de memória que contém o local de memória que é o alvo da operação de memória atual. A Figura 2 ilustra uma modalidade do circuito decodificador de endereço 44. De acordo com esta modalidade, o circuito decodificador 44 inclui um decodif icador de endereço 4 6, um multiplexador 48 e uma tabela 50 que possui várias entradas 52 associadas aos respectivos dispositivos de memória 20, 22 suportados pelo controlador de memória 42. Cada entrada da tabela 52 contém informações de política de cache associadas a um dispositivo de memória correspondente.
Quando o processador 14 acessa a memória externa, o endereço físico incluído como parte do acesso identifica um dos dispositivos de memória 20, 22 suportado pelo controlador de memória 42. 0 decodificador de endereço 4 6 decodifica o endereço físico, fazendo com que o multiplexador 48 selecione a entrada 52 que contém as informações de política de cache associadas ao dispositivo de memória alvo identificado pelo endereço físico. O controlador de memória 42 fornece as informações de política de cache selecionadas para a MMU 36 através do barramento 12 e a unidade de interface de barramento 32 (por exemplo, conforme mostrado pela linha tracejada que parte do circuito decodif icador de endereço 44 até a MMU 36 na Figura 1). 0 circuito de ajuste de política de cache 40 usa as informações de política de cache recebidas para ajustar as políticas de cache para a operação de memória atual. Deste modo, as políticas de cache podem ser ajustadas em uma base por linha de cache como uma função do dispositivo de memória alvo.
Em uma outra modalidade, as informações de política de cache são fornecidas por um circuito decodificador de endereço 54 incluído no processador 14, conforme mostrado na Figura 3. De acordo com esta modalidade, o circuito decodificador de endereço 54 fornece informações de política de cache com base em endereços virtuais ou endereços físicos, por exemplo, conforme previamente descrito e de acordo com a Figura 2. Ainda em uma outra modalidade, um ou mais dos dispositivos de memória 20, 22 suportados pelo controlador de memória 42, armazenam suas informações de política de cache, por exemplo, em um registrador de ID de dispositivo ou outro registrador (não mostrado). Quando um dispositivo de memória alvo é acessado pelo controlador de memória 42, as informações de política de cache são fornecidas para o controlador 42 e encaminhadas para o processador 14, conforme previamente descrito. Alternativamente, as informações de política de cache são fornecidas para o processador 14 sem solicitação, por exemplo, automaticamente durante a inicialização do sistema ou mediante a reinicialização do processador 14. Adicionalmente, o processador 14 pode armazenar as informações de política de cache adaptadas mediante o recebimento, dessa forma, evitando a necessidade de solicitar as mesmas informações quando o dispositivo de memória alvo correspondente é subseqüentemente acessado. Em vez disso, o processador 14 recupera internamente e usa as informações de política de cache adaptadas. Independentemente, o circuito de ajuste de política de cache 40 usa as informações de política de cache do dispositivo de memória alvo para ajustar as políticas de cache durante as operações de memória.
A Figura 4 ilustra uma modalidade do circuito de ajuste de política de cache 40 incluído na ou associado à MMU 36. De acordo com esta modalidade, o circuito de ajuste de política de cache 40 includes conjunto de circuitos de seleção 56 para ajustar as políticas de cache direcionadas a uma operação de memória atual. Em mais detalhes, uma entrada de tabela de paginação (PTE) 58 que corresponde ao endereço virtual fornecido como parte de um acesso a memória é recuperada tanto a partir do TLB 38 como a partir da tabela de paginação 34 (por exemplo, conforme mostrado pela linha tracejada a partir da tabela de paginação 34 até a MMU 36 na Figura 1). O endereço virtual é traduzido em um endereço físico correspondente com base na informação de tradução de endereço 60 armazenada na PTE 58 correspondente onde o endereço físico identifica o local de memória desejado.
Se o local de memória desejado não for localizado em uma das caches do processador 26, 28, 30, a MMU 36 inicia um acesso a memória externo. Em resposta à solicitação, o controlador de memória 42 identifica o dispositivo de memória alvo que contém o local de memória desejado com base no endereço físico traduzido. O processador 14 obtém acesso ao dispositivo de memória alvo através do controlador de memória 42. O dispositivo de memória alvo executa a operação de memória desejada (por exemplo, uma leitura ou escrita). Além disso, as informações de política de cache associadas ao dispositivo de memória alvo são fornecidas ao circuito de ajuste de política de cache 40 e armazenadas em um armazenador 62 como parte da operação de memória, por exemplo, conforme ilustrado pela Etapa 100 da Figura 5.
O conjunto de circuitos de seleção 56 processa as informações de política de cache 64 recuperadas a partir da PTE 58 correspondente e as informações de política de cache do dispositivo de memória alvo armazenadas no armazenador 62, por exemplo, conforme ilustrado pela Etapa 102 da Figura 5. As informações de política de cache 64 recuperadas a partir da PTE 58 correspondente são sobrescritas com as informações do dispositivo alvo e usadas como os ajustes de política de cache atuais. Entretanto, se nenhuma informação de política de cache for fornecida para o dispositivo de memória alvo, as informações de política de cache 64 recuperadas a partir da PTE 58 correspondente são usadas em vez disso.
Um exemplo simplesmente ilustrativo de como o circuito de ajuste de política de cache 40 determina as políticas de armazenamento em cache é ilustrado na Figura 6. O núcleo de processador 24 emite uma solicitação de escrita de memória para o endereço virtual X. A MMU 36 recupera a PTE correspondente tanto do TLB 38 como da tabela de paginação 34 e usa isto para converter o endereço virtual X para um endereço físico X' correspondente. A MMU 36, então, sonda uma ou mais das caches fisicamente indicadas 26, 28, 30 usando o endereço físico X'. Neste exemplo, nenhuma das caches 26, 28, 30 contém o local de memória desejado conforme indicado por uma perda de cache. Conseguentemente, a MMU 36 emite uma solicitação de escrita de memória externa para o controlador de memória 42 com base no endereço físico X1 . O controlador de memória 42 seleciona o dispositivo de memória alvo que contém o local de memória identificado pelo endereço físico X1. O dispositivo de memória alvo executa a operação de escrita desejada e informa ao controlador 42 que a escrita está completa.
Adicionalmente, o endereço físico X1 é decodificado e as informações de política de cache correspondentes ao dispositivo de memória alvo recuperadas conforme previamente descrito, por exemplo, pelo circuito decodificador de endereço 44 ou 54. Alternativamente, o dispositivo de memória alvo fornece suas informações de política de cache para o controlador de memória 42. Independentemente, a MMU 36 é notificada sobre o fato de que a operação de escrita está completa. Adicionalmente, o circuito de ajuste de política de cache 40 fornece as informações de política de cache do dispositivo de memória alvo. Neste exemplo, as informações de política de cache indicam "alocar em somente leitura." Dessa forma, a operação de escrita se completa no processador 14 e a MMU 36 não aloca uma linha de cache em uma das caches do processador 26, 28, 30.
A Figura 7 continua a ilustração exemplificativa mostrando uma solicitação de leitura subsequente emitida pelo núcleo de processador 24 no mesmo endereço virtual X. Recall, as informações de política de cache do dispositivo de memória alvo indicam "alocar em somente leitura" para o local de memória identificado pelo endereço físico X'. Portanto, nenhuma linha de cache foi previamente alocada para o endereço físico X'. Como tal, uma perda de cache ocorre durante a operação de leitura presente.
Adicionalmente, quando o dispositivo de memória alvo completa a operação de leitura, esta não é completada no processador 14, pois as informações de política de cache do dispositivo alvo indicam que uma linha de cache deve ser alocada. Dessa forma, o circuito de ajuste de política de cache 40 ajusta a política de alocação de cache atual de modo que a MMU 36 instrui umas das caches do processador 26, 28, 30 para alocar uma linha de cache para o endereço físico X'. Adicionalmente, uma política de nível de cache associada ao dispositivo de memória alvo pode indicar qual nível de cache deve alocar uma linha de cache, por exemplo, um dentre caches de primeiro nível 26, 28 ou cache L2 30. Outras políticas de cache também podem ser ajustadas com base nas informações de política de cache do dispositivo alvo. De qualquer maneira, os dados correspondentes são também fornecidos para o núcleo de processador 24 para processamento.
Tendo em mente a faixa de variações e aplicações supracitadas, deve ficar entendido que a presente invenção não se limita à descrição mencionada anteriormente, nem está limitada aos desenhos em anexo. Contrariamente, a presente invenção é limitada somente pelas seguintes reivindicações e seus equivalentes legais.

Claims (20)

1. Método para determinar políticas de cache, compreendendo as etapas de: receber informações de política de cache associadas a um ou mais dispositivos de memória alvos configurados para armazenar informações usadas por um processador; e ajustar uma ou mais políticas de cache com base nas informações de política de cache.
2. Método, de acordo com a reivindicação 1, em que receber as informações de política de cache compreende receber informações de política de cache não solicitadas.
3. Método, de acordo com a reivindicação 1, em que receber as informações de política de cache compreende: orientar um acesso a memória a um dos dispositivos de memória alvos; e receber informações de política de cache em resposta ao acesso a memória.
4. Método, de acordo com a reivindicação 3, em que receber informações de política de cache responsivas ao acesso a memória compreende receber informações de política de cache fornecidas pelo dispositivo de memória alvo para o qual o acesso a memória é orientado.
5. Método, de acordo com a reivindicação 3, em que receber informações de política de cache responsivas ao acesso a memória compreende receber informações de política de cache fornecidas por um decodificador de endereço com base em um endereço associado ao acesso a memória.
6. Método, de acordo com a reivindicação 3, em que ajustar uma ou mais políticas de cache compreende: acessar uma entrada da tabela de paginação associada ao acesso a memória; e sobrescrever uma ou mais políticas de cache indicadas pela entrada de tabela de paginação com as informações de política de cache recebidas em resposta ao acesso a memória.
7. Processador, compreendendo: pelo menos um cache configurado para armazenar informações locais ao processador; e uma unidade de gerenciamento de memória configurada para ajustar uma ou mais políticas de cache para pelo menos um cache com base em informações de política de cache associadas a um ou mais dispositivos de memória alvos configurados para armazenar informações usadas pelo processador.
8. Processador, de acordo com a reivindicação -7, em que a unidade de gerenciamento de memória é configurada para processar informações de política de cache não solicitadas.
9. Processador, de acordo com a reivindicação -7, em que a unidade de gerenciamento de memória é configurada para orientar um acesso a memória a um dos dispositivos de memória alvos e processar· informações de política de cache recebidas em resposta ao acesso a memória.
10. Processador, de acordo com a reivindicação -9, em que a unidade de gerenciamento de memória é configurada para processar informações de política de cache fornecidas pelo dispositivo de memória alvo para o qual o acesso a memória é orientado.
11. Processador, de acordo com a reivindicação -9, em que a unidade de gerenciamento de memória é configurada para processar informações de política de cache fornecidas por um decodificador de endereço com base em um endereço associado ao acesso a memória.
12. Processador, de acordo com a reivindicação 11, em que o decodif icador de endereço está incluído no processador.
13. Processador, de acordo com a reivindicação 9, em que a unidade de gerenciamento de memória é configurada para acessar uma entrada de tabela de paginação associada ao acesso a memória e sobrescrever uma ou mais políticas de cache indicadas pela entrada de tabela de paginação com as informações de política de cache recebidas em resposta ao acesso a memória.
14. Sistema, compreendendo: um processador possuindo pelo menos um cache configurado para armazenar informações locais ao processador; um ou mais dispositivos de memória alvos acoplados ao processador e configurados para armazenar informações usadas pelo processador; e uma unidade de gerenciamento de memória incluída no processador e configurada para ajustar uma ou mais políticas de cache para pelo menos um cache com base em informações de política de cache associadas a um ou mais dispositivos de memória alvos.
15. Sistema, de acordo com a reivindicação 14, em que a unidade de gerenciamento de memória é configurada para processar informações de política de cache não solicitadas.
16. Sistema, de acordo com a reivindicação 14, em que a unidade de gerenciamento de memória é configurada para orientar um acesso a memória a um dos dispositivos de memória alvos e processar informações de política de cache recebidas em resposta ao acesso a memória.
17. Sistema, de acordo com a reivindicação 16, em que a unidade de gerenciamento de memória é configurada para processar informações de política de cache fornecidas pelo dispositivo de memória alvo para o qual o acesso a memória é orientado.
18. Sistema, de acordo com a reivindicação 16, compreendendo adicionalmente um decodificador de endereço configurado para fornecer as informações de política de cache com base em um endereço associado ao acesso a memória.
19. Sistema, de acordo com a reivindicação 18, em que o decodif icador de endereço está incluído no processador.
20. Sistema, de acordo com a reivindicação 16, em que a unidade de gerenciamento de memória é configurada para acessar uma entrada de tabela de paginação acessada em resposta ao acesso a memória e sobrescrever uma ou mais políticas de cache indicadas pela entrada de tabela de paginação com as informações de política de cache recebidas em resposta ao acesso a memória.
BRPI0806756-2A 2007-01-24 2008-01-24 método e equipamento para ajustar polìticas de cache em um processador BRPI0806756A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/626,434 2007-01-24
US11/626,434 US7949834B2 (en) 2007-01-24 2007-01-24 Method and apparatus for setting cache policies in a processor
PCT/US2008/051953 WO2008092032A1 (en) 2007-01-24 2008-01-24 Method and apparatus for setting cache policies in a processor

Publications (1)

Publication Number Publication Date
BRPI0806756A2 true BRPI0806756A2 (pt) 2011-09-13

Family

ID=39456426

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0806756-2A BRPI0806756A2 (pt) 2007-01-24 2008-01-24 método e equipamento para ajustar polìticas de cache em um processador

Country Status (11)

Country Link
US (1) US7949834B2 (pt)
EP (1) EP2115599B1 (pt)
JP (1) JP5313168B2 (pt)
KR (1) KR101079970B1 (pt)
CN (1) CN101589374B (pt)
BR (1) BRPI0806756A2 (pt)
CA (1) CA2674868C (pt)
MX (1) MX2009007948A (pt)
RU (1) RU2427892C2 (pt)
TW (1) TWI446166B (pt)
WO (1) WO2008092032A1 (pt)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239634B2 (en) * 2007-06-05 2012-08-07 Nec Corporation Input/output control based on information specifying input/output issuing source and input/output priority
US8393008B2 (en) * 2008-05-21 2013-03-05 Microsoft Corporation Hardware-based output protection of multiple video streams
US8151077B1 (en) * 2008-06-30 2012-04-03 Emc Corporation Application aware cache management
US8504776B2 (en) * 2008-08-29 2013-08-06 Infineon Technologies Ag Device and method for controlling caches
US8464011B2 (en) * 2008-10-27 2013-06-11 Advanced Micro Devices, Inc. Method and apparatus for providing secure register access
US8161246B2 (en) * 2009-03-30 2012-04-17 Via Technologies, Inc. Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
CN101866321B (zh) * 2010-06-13 2012-03-21 北京北大众志微系统科技有限责任公司 一种高速缓存管理策略的调整方法及系统
US9652560B1 (en) * 2011-07-18 2017-05-16 Apple Inc. Non-blocking memory management unit
US8954704B2 (en) 2011-08-12 2015-02-10 International Business Machines Corporation Dynamic network adapter memory resizing and bounding for virtual function translation entry storage
US20130042238A1 (en) * 2011-08-12 2013-02-14 International Business Machines Corporation Optimized Virtual Function Translation Entry Memory Caching
US10042750B2 (en) 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US10133488B2 (en) * 2014-03-17 2018-11-20 Primaryio, Inc. Apparatus and method for cache provisioning, configuration for optimal application performance
US10146437B2 (en) 2014-03-17 2018-12-04 Primaryio, Inc. Tier aware caching solution to increase application performance
US9715455B1 (en) * 2014-05-05 2017-07-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Hint selection of a cache policy
DE112016002356B4 (de) 2015-05-27 2024-02-29 Google Inc. Datenspeichersystemarchitektur
US20170255569A1 (en) * 2016-03-01 2017-09-07 Qualcomm Incorporated Write-allocation for a cache based on execute permissions
US10019404B2 (en) * 2016-04-20 2018-07-10 Allone Solution Co., Ltd. Accessing method for accessing hybrid hard-disk drive
US10402336B2 (en) * 2017-03-31 2019-09-03 Intel Corporation System, apparatus and method for overriding of non-locality-based instruction handling

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340046A (ja) * 1989-07-06 1991-02-20 Hitachi Ltd キャッシュメモリ制御方式および情報処理装置
US5325504A (en) * 1991-08-30 1994-06-28 Compaq Computer Corporation Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
ZA954460B (en) * 1994-09-30 1996-02-05 Intel Corp Method and apparatus for processing memory-type information within a microprocessor
AU5854796A (en) * 1995-05-10 1996-11-29 3Do Company, The Method and apparatus for managing snoop requests using snoop advisory cells
US5946713A (en) * 1997-08-18 1999-08-31 Intel Corporation Memory attribute palette
JPH1173368A (ja) * 1997-08-28 1999-03-16 Seiko Epson Corp メモリモジュール、情報処理装置の制御方法および記録媒体
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
US6434669B1 (en) * 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
US7328328B2 (en) * 2002-02-19 2008-02-05 Ip-First, Llc Non-temporal memory reference control mechanism
US7496966B1 (en) * 2002-04-18 2009-02-24 Advanced Micro Devices, Inc. Method and apparatus for controlling operation of a secure execution mode-capable processor in system management mode
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
US7353334B2 (en) * 2002-08-19 2008-04-01 Aristos Logic Corporation Method of increasing performance and manageability of network storage systems using optimized cache setting and handling policies
US7039756B2 (en) * 2003-04-28 2006-05-02 Lsi Logic Corporation Method for use of ternary CAM to implement software programmable cache policies
JP4765249B2 (ja) * 2003-11-18 2011-09-07 セイコーエプソン株式会社 情報処理装置およびキャッシュメモリ制御方法
JP4009306B2 (ja) * 2003-11-18 2007-11-14 松下電器産業株式会社 キャッシュメモリおよびその制御方法
JP2005267497A (ja) * 2004-03-22 2005-09-29 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置、その制御方法及び磁気ディスク記憶装置
JP2006185284A (ja) * 2004-12-28 2006-07-13 Renesas Technology Corp データ処理装置
GB2422926B (en) * 2005-02-04 2008-10-01 Advanced Risc Mach Ltd Data processing apparatus and method for controlling access to memory
US7472225B2 (en) * 2005-06-20 2008-12-30 Arm Limited Caching data
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives

Also Published As

Publication number Publication date
MX2009007948A (es) 2009-08-07
WO2008092032A1 (en) 2008-07-31
CN101589374A (zh) 2009-11-25
US20080177952A1 (en) 2008-07-24
CA2674868C (en) 2015-02-03
KR20090108716A (ko) 2009-10-16
RU2427892C2 (ru) 2011-08-27
JP5313168B2 (ja) 2013-10-09
JP2010517179A (ja) 2010-05-20
RU2009131695A (ru) 2011-02-27
KR101079970B1 (ko) 2011-11-04
TW200842572A (en) 2008-11-01
TWI446166B (zh) 2014-07-21
EP2115599B1 (en) 2017-07-19
US7949834B2 (en) 2011-05-24
EP2115599A1 (en) 2009-11-11
CA2674868A1 (en) 2008-07-31
CN101589374B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
BRPI0806756A2 (pt) método e equipamento para ajustar polìticas de cache em um processador
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US20040117588A1 (en) Access request for a data processing system having no system memory
CN112631962B (zh) 存储管理装置、存储管理方法、处理器和计算机系统
US20040117587A1 (en) Hardware managed virtual-to-physical address translation mechanism
CN101606134B (zh) 地址转换方法和设备
EP2416251B1 (en) A method of managing computer memory, corresponding computer program product, and data storage device therefor
CN114761934B (zh) 增强用于将虚拟地址转换为物理地址的mmu tlb的系统和方法
US20050050278A1 (en) Low power way-predicted cache
JP2012532381A (ja) 凝集された小さいページを用いて拡張されたページサイズ
JP2014078248A (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
JP2007504552A (ja) プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ
US20150039836A1 (en) Methods and apparatus related to data processors and caches incorporated in data processors
US7330959B1 (en) Use of MTRR and page attribute table to support multiple byte order formats in a computer system
US20050055528A1 (en) Data processing system having a physically addressed cache of disk memory
US7017024B2 (en) Data processing system having no system memory
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
US20040117590A1 (en) Aliasing support for a data processing system having no system memory
GB2307319A (en) Dual-directory virtual cache
US7685372B1 (en) Transparent level 2 cache controller
US20040117583A1 (en) Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme
US20040117589A1 (en) Interrupt mechanism for a data processing system having hardware managed paging of disk data

Legal Events

Date Code Title Description
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]

Free format text: MANTIDO O INDEFERIMENTO UMA VEZ QUE NAO FOI APRESENTADO RECURSO DENTRO DO PRAZO LEGAL