[go: up one dir, main page]

BRPI1009228B1 - Cache configurável e método para configuração da mesma - Google Patents

Cache configurável e método para configuração da mesma Download PDF

Info

Publication number
BRPI1009228B1
BRPI1009228B1 BRPI1009228-5A BRPI1009228A BRPI1009228B1 BR PI1009228 B1 BRPI1009228 B1 BR PI1009228B1 BR PI1009228 A BRPI1009228 A BR PI1009228A BR PI1009228 B1 BRPI1009228 B1 BR PI1009228B1
Authority
BR
Brazil
Prior art keywords
cache
address
size
set index
bit
Prior art date
Application number
BRPI1009228-5A
Other languages
English (en)
Inventor
Christopher Edward Koob
Ajay Anant Ingle
Lucian Codrescu
Jian Shen
Original Assignee
Qualcomm Incorporated
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 Incorporated filed Critical Qualcomm Incorporated
Publication of BRPI1009228A2 publication Critical patent/BRPI1009228A2/pt
Publication of BRPI1009228B1 publication Critical patent/BRPI1009228B1/pt

Links

Images

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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

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)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

ARMAZENADOR CONFIGURÁVEL E MÉTODO PARA CONFIGURAÇÃO DO MESMO. Em uma modalidade particular, um armazenador é descrito e inclui um conjunto de estados de indicador que inclui uma área de indicador endereçável por um índice de conjunto. O conjunto de estados de indicador também inclui uma área de estado endereçável por um endereço de estado, em que o índice de conjunto e o endereço de estado inclui pelo menos um bit comum.

Description

Campo da Invenção
[0001]A presente descrição é geralmente direcionada a uma cache configurável e ao método de configuração do mesmo.
Descrição da Técnica Anterior
[0002]Avanços na tecnologia têm resultado em dispositivos de computação menores e mais poderosos. Por exemplo, existe atualmente uma variedade de dispositivos de computação pessoal portáteis, incluindo dispositivos de computação sem fio, tal como telefones sem fio portáteis, assistentes digitais pessoais (PDAs), e dispositivos de paging (alerta) que são pequenos, leves e facilmente transportados pelos usuários. Mais especificamente, os telefones sem fio portáteis, tal como telefones celulares, telefones de Protocolo de Internet (IP), podem comunicar pacotes de voz e dados através das redes sem fio. Adicionalmente, muitos desses telefones sem fio incluem outros tipos de dispositivos que são incorporados aos mesmos. Por exemplo, os telefones sem fio podem incluir também uma câmera digital, uma câmera de vídeo digital, um gravador digital, e um aparelho de reprodução de arquivos de áudio. Além disso, tais telefones sem fio podem processar instruções executáveis, incluindo aplicativos de software, tal como aplicativo de navegação na rede, que podem ser utilizados para acessar a Internet. Como tal, esses telefones sem fio podem incluir capacidades de computação significativas.
[0003]Os processadores de sinal digital (DSPs), processadores de imagem, e outros dispositivos de processamento são frequentemente utilizados em dispositivos de computação pessoal portáteis e operam em conjunto com um ou mais caches. Uma cache é normalmente uma copia dos dados que existem em algum outro lugar em uma hierarquia de memória.Em alguns casos, a cache pode ter apenas a copia "mais atualizada" dos dados no sistema. Um componente típico de uma cache é uma memória de dados. Essa memória de dados é dividida em linhas de cache, em que cada linha de armazenamento temporário é uma copia de uma parte singular (e contígua) da memória do sistema. Outro componente típico de uma cache é uma forma de associação de um endereço de memória do sistema comuma linha decache particular. Essa forma de associação deum endereçode memória de sistema com uma linha de cacheparticular éfrequentemente chamada de indicador. Outro componente típico de uma cache é um estado para indicar se uma linha de cache é válida, modificada, própria ou similar.
Sumário da Invenção
[0004]Uma cache pode ser redimensionado pela modificação do tamanho de uma linha de armazenamento temporário sem alterar o número de indicadores da cache. O mapeamento entre os tamanhos de cache diferentes pode ser realizado pela mudança de um local de um índice dentro de um endereço de memória para uma consulta a cache. Como um exemplo, um par de multiplexadores pode selecionar bits de endereço com base no tamanho da cache para mudar a localização do índice durante uma operação de consulta.
[0005]Em uma modalidade particular, um aparelho é descrito e inclui uma cache possuindo um conjunto de estados de indicador. O conjunto de estados de indicador inclui uma área de indicador endereçável por um índice de conjunto. O conjunto de estados de indicador também inclui uma área de estado endereçável por um endereço de estado, em que o índice de conjunto e o endereço de estado incluem pelo menos um bit comum.
[0006] Em outra modalidade, um método é descrito e inclui o recebimento de um endereço em um conjunto de estados de indicador de uma cache, em que a cache é configurável para ter um dentre um primeiro tamanho e um segundo tamanho que é maior do que o primeiro tamanho. O método também inclui a identificação de uma primeira parte do endereço como um índice de conjunto, utilizando o índice determinado para localizar pelo menos um campo de indicador do conjunto de indicador, e identificando uma segunda parte do endereço para comparar com um valor armazenado em pelo menos um campo de indicador. O método inclui adicionalmente a localização de pelo menos um campo de estado do conjunto de estados de indicador que é associado com um campo de indicador particular que combina a segunda parte e identifica uma linha de cache com base em uma comparação de uma terceira parte do endereço com pelo menos dois bits de situação do pelo menos um campo de estado. O método também inclui a recuperação da linha de cache, em que uma primeira localização da primeira parte do endereço e uma segunda localização da segunda parte do endereço são selecionadas com base no fato de se a cache é configurada para ter o primeiro tamanho ou o segundo tamanho, e onda a primeira parte do endereço possui o mesmo número de bits quando a cache possui o primeiro tamanho e quando a cache possui o segundo tamanho.
[0007]Em outra modalidade, um método é descrito e inclui a alteração de um tamanho de uma cache. O método também inclui a mudança de um local de uma parte de índice de conjunto de um endereço de dados para ser recuperado a partir da cache em resposta à alteração do tamanho da cache, em que um comprimento de bit da parte de índice de conjunto não é alterado quando a localização é alterada.
[0008]Em outra modalidade, um meio legível por computador é descrito. O meio legível por computador consubstancia de forma tangível instruções executáveis por computador que são executáveis para fazer com que um computador mude uma cache de uma primeira configuração possuindo um primeiro tamanho de área de dados para uma segunda configuração possuindo um segundo tamanho de área de dados, pelo aumento de uma quantidade de dados associada com cada registro de um conjunto de dados da cache e mantendo um primeiro número de registros do conjunto de dados que são endereçáveis através de um índice de conjunto, e pela manutenção de um segundo número de registros do conjunto de dados associados com cada valor do índice de conjunto. As instruções executáveis por computador são adicionalmente executáveis para fazer com queocomputador mudeuma faixa de bitsdeumendereçode memória para indexar um conjunto de estados de indicador queéassociado com oconjunto de dados,emque a faixade bits para indexar o conjunto de estados de indicador é alterada com base na alteração da cache da primeira configuração para a segunda configuração.
[0009] Uma vantagem em particular fornecida pelas modalidades descritas é que um mapeamento configurável entre os indicadores e as linhas da cache é fornecido para suportar a utilização maior de indicador para múltiplas configurações RAM de dados, de modo que à medida que a RAM de dados é configurada para corresponder a 100% da cache, 50% da cache, ou 25% da cache, o tamanho da linha de cache é reduzido por uma quantia equivalente.
[0010] Outra vantagem fornecida pelas modalidades descritas é que o número de indicadores disponíveis é substancialmente maximizado, de forma barata e eficiente, à medida que a RAM de dados disponível para o armazenamento temporário é reduzida, que é de importância particular em um ambiente de processador de múltiplas sequências e baixa energia onde considerações de localidade de dados tradicionais podem não se manter. A cache com mais indicadores é uma cache de maior rendimento, visto que os conflitos de espaço de endereço são reduzidos.
[0011] Outros aspectos, vantagens e características da presente descrição se tornarão aparentes após a revisão de todo o pedido, incluindo as seções a seguir: Breve Descrição dos Desenhos, Descrição Detalhada e Reivindicações.
Breve Descrição dos Desenhos
[0012] A figura 1 é um diagrama de blocos de uma modalidade ilustrativa particular de um sistema de cache configurável possuindo um conjunto de estados de indicador, múltiplas formas e uma área de dados de cache acoplada ao conjunto de estados de indicador;
[0013] A figura 2 é um diagrama de blocos de outra modalidade ilustrativa particular de um sistema de cache configurável possuindo um conjunto de estados de indicador, múltiplas formas, e uma área de dados de cache acoplada ao conjunto de estados de indicador;
[0014] A figura 3 é um diagrama de blocos de uma modalidade ilustrativa particular de um registro de endereço de memória para a consulta da cache e alteração de um índice de conjunto;
[0015] A figura 4 é um diagrama de blocos de uma modalidade ilustrativa particular de um registro de endereço de memória para a consulta de cache e conjunto de circuitos de seleção e conjunto de circuitos de indexação utilizados para gerar um índice de conjunto;
[0016] A figura 5 é um fluxograma de uma primeira modalidade ilustrativa de um método para configurar uma cache configurável;
[0017] A figura 6 é um fluxograma de uma segunda modalidade ilustrativa de um método para configurar uma cache configurável;
[0018] A figura 7 é um fluxograma de uma terceira modalidade ilustrativa de um método para configurar uma cache configurável;
[0019] A figura 8 é um diagrama de blocos de uma modalidade particular de um dispositivo de comunicação portátil incluindo um módulo de cache configurável; e
[0020] A figura 9 é um fluxograma de dados de uma modalidade ilustrativa particular de um processo de fabricação para fabricar os dispositivos eletrônicos que incluem dispositivos de armazenamento temporário configuráveis.
Descrição Detalhada da Invenção
[0021] Com referência à figura 1, uma modalidade ilustrativa particular de um sistema de cache configurável 100 possuindo um conjunto de estados de indicador 108, múltiplas vias 120 e uma área de dados de cache 110 acoplado ao conjunto de estados de indicador 108 é ilustrada. O sistema de cache configurável 100 inclui uma cache configurável 106 e um endereço 102. A cache configurável 106 inclui o conjunto de estados de indicador 108 acoplado à área de dados de cache 110. A área de dados de cache 110 inclui uma ou mais linhas de cache 112. A área de dados de cache 110 é configurável para ter um primeiro tamanho de cache correspondendo a uma primeira configuração de cache ou para ter um segundo tamanho de cache correspondendo a uma segunda configuração de cache, em que o segundo tamanho de cache é maior do que o primeiro tamanho de cache, como ilustrado na figura 1. A área de dados da cache 110 inclui múltiplas vias 120 associadas com cada valor de um índice de conjunto, tal como o índice determina 1 122 ou índice de conjunto 2 124. As múltiplas vias 120 permitem que a área de dados da cache 110 armazene múltiplos valores de dados para cada valor de índice de conjunto. A área de dados da cache 110 possui o mesmo número de vias 120 na primeira configuração da cache e na configuração da segunda cache, como ilustrado na figura 1.
[0022] O conjunto de estados de indicador 108 inclui uma área de indicador 116 endereçável pelo índice de conjunto, tal como o índice de conjunto 1 122 ou o índice de conjunto 2 124 ilustrados associados com o endereço 102. O conjunto de estados de indicador 108 também inclui uma área de estado 118 endereçável por um endereço de estado 126. Cada uma das linhas de cache 112 é associada com um endereço de indicador 128. Como ilustrado na figura 1, o índice de conjunto 2 124 e o endereço de estado 126 incluem pelo menos um bit comum 104, tal como um bit de endereço comum. O índice de conjunto 1 122 e o endereço de estado 126 incluem pelo menos dois bits comuns 104, tal como dois bits de endereço comum. Em uma modalidade particular, o número de bits comuns 104, tal como os bits de endereço comum, entre o índice de conjunto 122, 124 e o endereço de estado 126 varia dependendo do tamanho da cache configurável 106. Em uma modalidade particular, o endereço de estado 126 e o índice de conjunto 1 122 incluem dois bits comuns 104 em uma primeira configuração e o endereço de estado 126 e o índice de conjunto 2 124 incluem um bit comum 104 em uma segunda configuração. O conjunto de estados de indicador 108 também inclui um ou mais conjuntos 114. Em uma modalidade particular, o conjunto de estados de indicador 108 possui o mesmo tamanho de um conjunto 114 na primeira configuração de cache e na segunda configuração de cache.
[0023] Como ilustrado na figura 1, cada uma das linhas da cache 112 inclui um ou mais segmentos ou setores 112a, 112b. Quando a área de dados da cache 110 possui o primeiro tamanho de cache, cada uma das linhas da cache 112, inclui um segmento ou setor 112a, Quando a área de dados de cache 110 possui o segundo tamanho da cache, cada uma das linhas da cache 112 inclui dois segmentos ou setores 112a,112b. Em uma modalidade particular, a área de dados da cache 110 pode ter o mesmo tamanho de segmento de linha de cache na primeira configuração da cache e na segunda configuração da cache. Em uma modalidade alternativa, a área de dados da cache 110 possui um número predeterminado de fileiras que são endereçáveis pelo índice de conjunto122,124. A área dedadosdacache 110 pode ser configuradaparaarmazenar pelomenosumprimeironúmero de linhas de cache 112 associadas com cada fileira em uma primeira configuração e um segundo número de linhas de cache 112 associado com cada fileira em uma segunda configuração, em que o segundo número de linhas da cache 112 é maior do que o primeiro número de linhas de cache 112.
[0024]Pode haver uma relação entre o tamanho da linha da cache, o tamanho da memória de dados e o número de indicadores. Essa relação pode ser expressa pela fórmula: número de indicadores = tamanho da memória de dados/tamanho de linha de cache.
[0025]A partir dessa fórmula, pode-se observar que o aumento no tamanho da linha da cache, enquanto se mantém o tamanho da memória de dados constante, pode diminuir o número de indicadores. A redução do número de indicadores pode exigir menos armazenamento físico, no entanto, a redução do número de indicadores implica no fato de menos localizações de memória singulares (ou faixas) poderem ser contidas na cache. Como um exemplo extremo, considera-se uma cache de 32 bytes que possuem apenas um único indicador. Todos os 32 bytes são uma cópia de uma parte contígua da memória do sistema. Em contraste, se a cache tiver 8 indicadores, 8 regiões de 4 bytes não relacionadas podem ser contidas na cache. Por extensão, uma única região contígua de 32 bytes também pode ser armazenada em tal cache.
[0026] Em alguns casos, a parte de memória de dados de uma cache pode não ser constante, mas pode ser configurável, como no sistema de cache configurável 100 da figura 1, em que uma parte pode ser reservada para a cache e outra parte pode ter um tamanho de linha de cache fixo e um mapeamento fixo entre os indicadores e as linhas da cache. No entanto, se o tamanho de tal cache for reduzido, o número de linhas da cache e o número de indicadores são reduzidos por essa quantidade. Por exemplo, em uma cache L2 onde as memórias de acesso randômico (RAM) são organizadas em 4 bancos, com cada banco possuindo seu próprio conjunto de indicadores, se a RAM de dados for configurada como 50% da cache e 50% TCM, então os indicadores no TCM não estão mais disponíveis para a cache.
[0027] Pelo ajuste do tamanho de linha de cache juntamente com o tamanho da memória de dados, o sistema de cache configurável 100 da figura 1 permite que o número de indicadores permaneça substancialmente o mesmo. Como resultado disso, um mapeamento configurável entre os indicadores e as linhas da cache é fornecido para suportar uma maior utilização do indicador para múltiplas configurações de RAM de dados, de modo que a RAM de dados seja configurada de modo a ser 100% da cache, 50% da cache ou 25% da cache, o tamanho da linha da cache é reduzido por uma quantia equivalente. Adicionalmente, o número de indicadores disponíveis é substancialmente maximizado, de uma forma barata e eficiente, à medida que a RAM disponível para o armazenamento temporário é reduzida. Isso pode ter importância particular em um ambiente de processador de múltiplas sequências e baixa energia onde as considerações de localidade de dados tradicionais podem não ser aplicáveis.A cache com mais indicadores pode ser uma cache de maior desempenho, visto que os conflitos de espaço de endereço são reduzidos.
[0028] Com referência à figura 2, uma modalidade ilustrativa particular de um sistema de cache configurável 200 possuindo um conjunto de estados de indicador 208, múltiplas vias 220, e uma área de dados 210 acoplada ao conjunto de estados de indicador 208 é ilustrada. O sistema de cache configurável 200 inclui uma cache configurável 206, um registro de endereço de memória 202 para armazenar um endereço de memória; um conjunto de circuitos de indexação 224, um conjunto de circuitos de comparação 226, um conjunto de circuitos de validação 228, e um conjunto de circuitos de seleção 230. A cache configurável 206 inclui um conjunto de estados de indicador 208 acoplado à área de dados 210.A área de dados 210 inclui uma ou mais linhas de cache 212. A área de dados 210 é configurável para ter um primeiro tamanho de cache correspondente a uma primeira configuração de cache ou para ter um segundo tamanho de cache correspondendo a uma segunda configuração de cache, em que o segundo tamanho de cache é maior do que o primeiro tamanho de cache, ou para ter um terceiro tamanho de cache correspondendo a uma terceira configuração de cache, em que o terceiro tamanho de cache é maior do que o segundo tamanho de cache, como ilustrado na figura 2. A área de dados 210 inclui múltiplas vias 220 associadas com cada valor de um índice de conjunto. As múltiplas vias 220 permitem que a área de dados 210 armazene múltiplos valores de dados correspondendo a cada valor de índice de conjunto. A área de dados 210 tem o mesmo número de vias 220 na primeira configuração de cache e na segunda configuração de cache e na terceira configuração de cache, como ilustrado na figura 2.
[0029] O conjunto de estados de indicador 208 inclui uma área de indicador 216 endereçável pelo índice de conjunto. O conjunto de estados de indicador 208 também inclui uma área de estado 218 endereçável por um endereço de estado. Cada uma das linhas de cache 212 é endereçável por um endereço de indicador. O conjunto de estados de indicador 208 também inclui um ou mais conjuntos 214. Em uma modalidade particular, o conjunto de estados de indicador 208 pode ter o mesmo tamanho que um conjunto 214 na primeira configuração de cache e na segunda configuração de cache e na terceira configuração de cache.
[0030] Em uma modalidade particular, a área de dados 210 possui um número predeterminado de conjuntos para armazenar os dados que são acessíveis através do índice de conjunto e do conjunto de estados de indicador 208. Em uma primeira configuração de cache, cada um dentre o número predeterminado de conjuntos da área de dados 210 pode ser configurado para armazenar uma primeira quantidade de dados. Em uma segunda configuração de cache de dados, cada um dentre um número predeterminados de conjuntos de área de dados 210 pode ser configurado para armazenar uma segunda quantidade de dados.
[0031] Em uma modalidade particular, o conjunto de circuitos de indexação 224 é acoplado ao registro de endereço de memória 202 para identificar múltiplos registros de indicador do conjunto de estados de indicador 208 utilizando o índice de conjunto. Por exemplo, o conjunto de circuitos de indexação 224 pode acessar o conjunto de estados de indicador 208 e localizar e identificar múltiplos registros de indicador correspondendo ao índice de conjunto recebido a partir do registro de endereço de memória 202. O conjunto de circuitos de indexação também pode ser acoplado ao conjunto de circuitos de seleção por uma conexão de dois bits, como ilustrado na figura 2.
[0032] Em uma modalidade particular, o conjunto de circuitos de comparação 226 é acoplado ao registro de endereço de memória 202 para comparar um valor de indicador dos registros de múltiplos indicadores identificados com uma parte de indicador do endereço de memória. Por exemplo, o conjunto de circuitos de comparação 226 pode acessar o conjunto de estados de indicador 208 e comparar os valores de indicador dos múltiplos registros de indicador identificados pelo conjunto de circuitos de indexação 224 com as partes de indicador respectivas do endereço de memória recebido a partir do registro de endereço de memória 202.
[0033] Em uma modalidade particular, o conjunto de circuitos de validação 228 é acoplado ao registro de endereço de memória 202 para decodificar o endereço de estado e para comparar o endereço de estado decodificado com bits de validação 222 de um conjunto identificado do número predeterminado de conjuntos da área de dados 210. O conjunto de circuitos de validação 228 pode acessar o conjunto de estados de indicador 208 e comparar os bits de validação 222 com a parte de endereço de estado decodificada do endereço de memória recebido a partir do registro de endereço de memória 202. O conjunto de circuitos de validação 228 pode ser acoplado ao registro de endereço de memória 202 por uma conexão de dois bits, como ilustrado na figura 2. Os bits de validação 222 podem incluir 4 bits de estado, como ilustrado na figura 2.
[0034] Em uma modalidade particular, o conjunto de circuitos de seleção 230 é acoplado ao registro de endereço de memória 202 e ao conjunto de circuitos de indexação 224 para incluir seletivamente um bit particular do endereço de memória no índice de conjunto na primeira configuração da cache e para não incluir o bit particular no índice de conjunto na segunda configuração da cache, como será descrito em maiores detalhes abaixo com relação à figura 4. O conjunto de circuitos de seleção 230 pode ser acoplado ao conjunto de circuitos de indexação 224 por uma conexão de dois bits, como ilustrado na figura 2. Em uma modalidade particular, o conjunto de circuitos de seleção 230 inclui um multiplexador, tal como o multiplexador 406 ilustrado na figura 4, possuindo uma entrada acoplada para receber pelo menos um bit comum, como ilustrado em 424 na figura 4, e possuindo uma saída acoplada à área de indicador 216, como ilustrado em 416 na figura 4. O multiplexador pode ser configurado para fornecer seletivamente o pelo menos um bit comum como uma entrada selecionável para o índice de conjunto, tal como o índice determinado 408 ilustrado na figura 4.
[0035]Com referência à figura 3, uma modalidade ilustrativa particular de um registro de endereço de memória para a consulta da cache 302 e um índice de conjunto de mudança 306,312,320 é ilustrado em 300. O índice de conjunto de mudança 306,312 e 320 permite o endereçamento para a cache utilizando o mesmo número de conjuntos para três configurações de tamanho de cache diferentes. Em uma modalidade particular, o registro de endereço de memória para a consulta de cache 302 é o endereço 102 da figura 1 ou o registro de endereço de memória 202 da figura 2.
[0036]O índice de conjunto 306 varia por 9 bits do bit 13 ao bit 5, compartilhando dois bits comuns 308 (bit 5 e bit 6) com uma parte de estado 324 do endereço, em que a parte de estado 324 varia por dois bits, do bit 6 ao bit 5. Uma partede indicador 304doendereço varia do bit 31 para o bit 14.
[0037]A mudança com uma mudança de 1 bit, como indicado pela seta 314,fornece o índicedeconjunto 312, que varia através de 9 bits, do bit 14 ao bit 6, compartilhando um bit comum 316 (bit 6) com a parte de estado 324 do endereço. Nesse caso, o bit 5 da parte de estado 324 do endereço pode ser utilizado para rotular os dois segmentos ousetores de linha da cache, de modoque a cache possuindo oíndicedeconjunto312 possaser odobro do tamanho da cache possuindo o índice de conjunto 306. Uma parte de indicador 310 do endereço varia do bit 31 ao bit 15, com um bit menos significativo adicionado igual a zero que pode ser concatenado aos bits 31:15.
[0038]A mudança com outra mudança de 1 bit, como indicado pela seta 322, fornece o índice de conjunto 320, que varia através de 9 bits do bit 15 ao bit 7, não compartilhando qualquer bit em comum com a parte de estado 324 do endereço. Nesse caso, ambos o bit 5 e o bit 6 da parte de estado 324 do endereço podem ser utilizados par rotular quatro segmentos ou setores da linha da cache, de modo que a cache possuindo o índice de conjunto 320 pode ser o dobro do tamanho da cache possuindo o índice de conjunto312.Uma parte de indicador318do endereçovaria do bit 31 para o bit 16, com dois bits menos significativos iguais azero adicionadosque podemserconcatenados para bits 31:16.
[0039]O tamanho total da cache pode ser fornecido pelo produto do número de conjuntos vezes o número de vias vezes o tamanho da linha de cache vezes o número de segmentos ou setor. O número de conjuntos indexadosporumíndice de conjunto de 9 bits é29 =512. Para umacache de 4 vias possuindo umtamanhode linha de cache de 32 bits, o tamanho total da cache é 512 vezes 4 vezes 32 ou cerca de 64 quilobits (kbit) para a cache possuindo o índice de conjunto 306, em que a cache possui apenas um segmento ou setor para cada linha de cache. Para a cache possuindo o índice de conjunto 312, em que a cache possui dois segmentos ou setores para cada linha de cache, o tamanho total da cache é de cerca de 128 kbit. Para a cache possuindo o índice de conjunto 320, em que a cache possui quatro segmentos ou setores para cada linha de cache, o tamanho total da cache é de cerca de 256 kbit.
[0040] Com referência á figura 4, uma modalidade ilustrativa particular de um registro de endereço de memória para a consulta de cache 402 e o conjunto de circuitos de seleção 426 e o conjunto de circuitos de indexação 428 utilizados para gerar um índice de conjunto 408 é ilustrado em 400. O sistema 400 pode ser utilizado para determinar o índice de conjunto de mudança 306, 312, 320 do sistema de registro 300 da figura 3. O sistema 400 pode ser implementado no sistema de cache configurável 100 da figura 1 ou o sistema de cache configurável 200 da figura 2.
[0041] O registro de endereço de memória para consulta de cache 402 é configurado para armazenar valores de 32 bits, rotulados a partir de um bit menos significativo (LSB), bit 9, para um bit mais significativo (MSB), bit 31. Um multiplexador 404 recebe o bit 15 do registro de endereço de memória para consulta de cache 402 como uma entrada, como indicado em 418, e o bit 6 como outra entrada, como indicado por 422. O multiplexador 404 envia o bit 15 ou o bit 6 para o índice de conjunto 408, como indicado em 412. A saída do multiplexador 404 é controlada por um controle de tamanho de cache 430 ao longo de uma linha de dois bits 410. Um multiplexador 406 recebe o bit 14 como uma entrada, como indicado por 420, e o bit 5 como outra entrada, como indicado por 424. O multiplexador 406 envia o bit 14 ou o bit 5 para o índice de conjunto 408, como indicado por 416. A saída do multiplexador 406 é controlada pelo tamanho da cache 430 ao longo da linha de dois bits 410. O índice de conjunto 408 recebe os bits do registro de endereço de memória para a consulta da cache 402 variando do bit 13 para o bit 7 ao longo de uma linha de 7 bits 414.
[0042] Quando o multiplexador 404 envia o bit 6 o multiplexador 406 envia o bit 5, então o índice de conjunto 408 corresponde ao índice de conjunto 306 da figura 3. Quando o multiplexador 404 envia o bit 6 e o multiplexador 406 envia o bit 14, então o índice de conjunto 408 corresponde ao índice de conjunto 312 da figura 3, em que a cache possuindo o índice de conjunto 312 pode ter o dobro do tamanho da cache possuindo o índice de conjunto 306. Quando o multiplexador 404 envia o bit 15 e o multiplexador 406 envia o bit 14, então o índice de conjunto 408 corresponde ao índice de conjunto 320 da figura 3, em que a cache possuindo o índice de conjunto 320 pode ser o dobro do tamanho da cache possuindo o índice de conjunto 312 e pode ser quatro vezes o tamanho da cache possuindo o índice de conjunto 306.
[0043] Com referência à figura 5, um fluxograma de uma primeira modalidade ilustrativa de um método para configurar uma cache configurável é ilustrado em 500. O método 500 inclui o recebimento de um endereço em um conjunto de estados de indicador de uma cache, em que a cache é configurável para ter um dentre um primeiro tamanho e um segundo tamanho que é maior do que o primeiro tamanho, em 502. Por exemplo, o endereço 102 pode ser recebido no conjunto de estados de indicador 108 da cache configurável 106, em que a área de dados da cache 110 da cache configurável 106 é configurável para ter um dentre o primeiro tamanho e o segundo tamanho que é maior do que o primeiro tamanho, como ilustrado na figura 1. O método 500 também inclui a identificação de uma primeira parte do endereço como um índice de conjunto e, 504. Por exemplo, uma primeira parte do endereço 102 pode ser identificada como o índice de conjunto 1 122 ou uma primeira parte do endereço 102 pode ser identificada como o índice de conjunto 2 124, como ilustrado na figura 1. De forma similar, uma primeira parte do endereço no registro de endereço de memória para a consulta de cache 302 pode ser identificada como o índice de conjunto 306, ou como o índice de conjunto 312, ou como o índice de conjunto 320, como ilustrado na figura 3.
[0044] O método 500 inclui adicionalmente a utilização do índice de conjunto para localizar pelo menos um campo de indicador do conjunto de estados de indicador em 506. Por exemplo, o índice de conjunto 1 122 ou o índice de conjunto 2 124 pode ser utilizado para localizar pelo menos uma área de indicador 116 do conjunto de estados de indicador 108 ilustrado na figura 1. O método 500 também inclui a identificação de uma segunda parte do endereço para comparar com um valor armazenado no pelo menos um campo de indicador em 508. Por exemplo, uma segunda parte do endereço 102 pode ser identificada como o indicador 128 que pode ser comparado com um valor armazenado na pelo menos uma área de indicador 116 da figura 1. O método 500 inclui adicionalmente a localização de pelo menos um campo de estado do conjunto de estados de indicador que é associado com um campo de indicador particular que combina a segunda parte em 510. Por exemplo, pelo menos uma área de estado 118 do conjunto de estados de indicador 108 pode ser localizada e pode ser associada com uma área de indicador particular 116 que combina com o indicador 128 da figura 1.
[0045] O método 500 também inclui a identificação de uma linha de cache baseada em uma comparação de uma terceira parte do endereço com pelo menos dois bits de situação do pelo menos um campo de estado, em 512. Por exemplo, uma das linhas de cache 112 pode ser identificada com base em uma comparação da parte de endereço de estado 126 do endereço 102 com pelo menos dois bits de situação da pelo menos uma área de estado 118 do conjunto de estados de indicador 108 da figura 1. O método 500 inclui adicionalmente a recuperação da linha da cache, em 514, em que uma primeira localização da primeira parte do endereço e uma segunda localização da segunda parte do endereço são selecionadas com base no fato de se a cache é configurada para ter o primeiro tamanho ou o segundo tamanho e onde a primeira parte do endereço possui um mesmo número de bits quando a cache possui o primeiro tamanho e quando a cache possui o segundo tamanho. Por exemplo, a linha identificada dentre as linhas da cache 112 pode ser recuperada, em que uma primeira localização da parte do índice de conjunto (o índice de conjunto 1 122 ou o índice de conjunto 2 124) do endereço 102 e uma segunda localização da parte do indicador 128 do endereço 102 pode ser selecionada com base no fato de se a área de dados da cache 110 é configurada para ter o primeiro tamanho ou o segundo tamanho e onde a parte do índice de conjunto (o índice de conjunto 1 122 ou o índice de conjunto 2 124) do endereço 102 tem o mesmo número de bits quando a área de dados da cache 110 possui o primeiro tamanho e quando a área de dados da cache 110 possui o segundo tamanho.
[0046] Em uma modalidade particular, a cache é adicionalmente configurável para ter um terceiro tamanho que é maior do que o segundo tamanho. Por exemplo, a área de dados 210 da cache configurável 206 pode ser adicionalmente configurável para ter um terceiro tamanho que é maior do que o segundo tamanho, como ilustrado na figura 2. Em uma modalidade particular, a primeira parte do endereço se sobrepõe por dois bits da terceira parte do endereço quando a cache é configurada para ter o primeiro tamanho, em que a primeira parte do endereço se sobrepõe a um único bit da terceira parte do endereço quando a cache é configurada para ter o segundo tamanho, e em que a primeira parte do endereço não se sobrepõe a qualquer bit da terceira parte do endereço quando a cache é configurada para ter o terceiro tamanho. Por exemplo, como descrito acima, o índice de conjunto 306 da figura 3 se sobrepõe a dois bits 308 do endereço de estado 324 quando a cache é configurada para ter o primeiro tamanho (64 kbit), em que o índice de conjunto 312 se sobrepõe a um único bit 316 do endereço de estado 324 quando a cache é configurada para ter o segundo tamanho (128 kbit) e onde o índice de conjunto 320 não se sobrepõe a qualquer bit do endereço de estado 324 quando a cache é configurada para ter o terceiro tamanho (256 kbit).
[0047] Com referência à figura 6, um fluxograma de uma segunda modalidade ilustrativa de um método para configurar uma cache configurável é ilustrado em 600. O método 600 inclui a alteração de um tamanho de uma cache em 602. Por exemplo, a área de dados de cache 110 da cache configurável 106 da figura 1 pode ser alterada a partir do primeiro tamanho para o segundo tamanho, ou do segundo tamanho para o primeiro tamanho. De forma similar, a área de dados 210 da cache configurável 206 da figura 2 pode ser alterada do primeiro tamanho para o segundo tamanho, ou do segundo tamanho para o terceiro tamanho, ou do primeiro tamanho para o terceiro tamanho, ou do segundo tamanho para o primeiro tamanho, ou do terceiro tamanho para o segundo tamanho, ou do terceiro tamanho para o primeiro tamanho.
[0048] O método 600 também inclui a mudança de uma localização de uma parte de índice de conjunto de um endereço de dados a ser recuperado a partir da cache em resposta à alteração do tamanho da cache, em que um comprimento de bit da parte de índice de conjunto não é alterado quando a localização é alterada em 604. Por exemplo, o índice de conjunto 306 da figura 3 pode ser alterado como ilustrado pela seta 314 para a localização do índice de conjunto 312 em resposta à alteração do tamanho da cache de 64 kbit para 128 kbit, em que ambos o índice de conjunto 306 e o índice de conjunto 312 possuem um comprimento de bit de 9 bits. De forma similar, o índice de conjunto 312 da figura 3 pode ser alterado como ilustrado pela seta 322 para a localização do índice de conjunto 320 em resposta à alteração do tamanho da cache de 128 kbit para 256 kbit, em que ambos o índice de conjunto 312 e o índice de conjunto 320 possuem um comprimento de bit de 9 bits.
[0049] Em uma modalidade particular, a parte de índice de conjunto do endereço se sobrepõe a pelo menos um bit de uma parte de endereço de estado do endereço quando a cache é configurada para ter um primeiro tamanho ou quando a cache é configurada para ter um segundo tamanho que é maior do que o primeiro tamanho. Por exemplo, o índice de conjunto 306 da figura 3 se sobrepõe pelo menos a um bit 308 do endereço de estado 324 quando a cache é configurada para ter um primeiro tamanho de cerca de 64 kbit e o índice de conjunto 312 se sobrepõe a pelo menos um bit 316 do endereço de estado 324 quando a cache é configurado para ter um segundo tamanho de cerca de 128 kbit.
[0050] Em uma modalidade particular, a cache é adicionalmente configurável para ter um terceiro tamanho que é maior do que o segundo tamanho. Por exemplo, a área de dados 210 da cache de dados temporário configurado 206 pode ser adicionalmente configurável para ter um terceiro tamanho que é maior do que o segundo tamanho, como ilustrado na figura 2. Em uma modalidade particular, a parte de índice de conjunto do endereço se sobrepõe a dois bits da parte de endereço de estado do endereço quando a cache é configurada para ter o primeiro tamanho, em que a parte de índice de conjunto do endereço se sobrepõe a um único bit da parte de endereço de estado do endereço quando a cache é configurada para ter o segundo tamanho, e em que a parte de índice de conjunto do endereço não se sobrepõe a qualquer bit da parte de endereço de estado do endereço quando a cache é configurada para ter o terceiro tamanho. Por exemplo, como descrito acima, o índice de conjunto 306 da figura 3 se sobrepõe a dois bits 308 do endereço de estado 324 quando a cache é configurada para ter o primeiro tamanho (64 kbit), em que o índice de conjunto 312 se sobrepõe a um único bit 316 do endereço de estado 324 quando a cache é configurada para ter o segundo tamanho (128 kbit) e onde o índice de conjunto 320 não se sobrepõe a qualquer bit do endereço de estado 324 quando a cache é configurada para ter o terceiro tamanho (256 kbit).
[0051] Com referência à figura 7, um fluxograma de uma terceira modalidade ilustrativa de um método para configurar uma cache configurável é ilustrado em 700. O método 700 inclui a alteração de uma cache de uma primeira configuração possuindo um primeiro tamanho de área de dados para uma segunda configuração possuindo um segundo tamanho de área de dados, pelo aumento de uma quantidade de dados associada com cada registro de um conjunto de dados da cache e manutenção de um primeiro número de registros do conjunto de dados que são endereçáveis através de um índice de conjunto, e pela manutenção de um segundo número de registros do conjunto de dados associado com cada valor do índice de conjunto em 702. Por exemplo, a cache configurável 106 da figura 1 pode ter a área de dados de cache 110 alterada a partir do primeiro tamanho para o segundo tamanho pela adição dos setores ou segmentos de linha de cache 112b para os setores ou segmentos de linha de cache 112a de cada uma das linhas de cache 112.
[0052] O método 700 também inclui a alteração de uma faixa de bits de um endereço de memória para indexar um conjunto de estados de indicador que é associado com o conjunto de dados, em que a faixa de bits para indexar o conjunto de estados de indicador é alterada com base na alteração da cache da primeira configuração para a segunda configuração em 704. Por exemplo, o índice de conjunto 306 da figura 3 pode ser alterado como ilustrado pela seta 314 para a localização do índice de conjunto 312 em resposta à alteração do tamanho da cache de 64 kbit para 128 kbit, em que ambos o índice de conjunto 306 e o índice de conjunto 312 indexam um conjunto de estados de indicador que é associado com um conjunto de dados, tal como o conjunto de estados de indicador 108 da figura 1 que é associado com a área de dados de cache 110.
[0053] Em uma modalidade particular, o método 700 inclui adicionalmente a configuração de registros de controle para um par de multiplexadores que recebem, cada um, pelo menos uma entrada a partir da faixa de bits para indexar o conjunto de estados de indicador e que enviam, cada um, um bit selecionável para o índice de conjunto. Por exemplo, o multiplexador 404 da figura 4 e o multiplexador 406 podem ter suas respectivas entradas de controle determinadas pelo controle do tamanho da cache 430 ao longo da linha de dois bits 410. Como descrito acima, o multiplexador 404 e o multiplexador 406 podem receber, cada um, pelo menos uma entrada de uma faixa de bits para indexar um conjunto de estados de indicador, tal como o conjunto de estados de indicador 108 da figura 1 ou o conjunto de estados de indicador 208 da figura 2, e podem, cada um, enviar um bit selecionável para o índice de conjunto 408.
[0054] Em uma modalidade particular, o método 700 inclui adicionalmente a alteração da cache da segunda configuração possuindo o segundo tamanho de área de dados para uma terceira configuração possuindo um terceiro tamanho de área de dados, pelo aumento da quantidade de dados associada com cada conjunto de um conjunto de dados da cache e mantendo o primeiro número de entradas do conjunto de dados que são endereçáveis através do índice de conjunto, e pela manutenção do segundo número de entradas do conjunto de dados associado com cada valor do índice de conjunto. Por exemplo, a cache configurável 206 da figura 2 pode ter a área de dados 210 alterada do segundo tamanho para o terceiro tamanho pela adição de setores ou segmentos de linha de cache adicionais aos setores ou segmentos de linha de cache existentes de cada uma das linhas de cache 212. O método 700 pode incluir adicionalmente a mudança da faixa de bits do endereço de memória para indexar o conjunto de estados de indicador que é associado com o conjunto de dados, em que a faixa de bits para indexar o conjunto de estados de indicador é alterada em resposta à alteração da cache da segunda configuração para a terceira configuração. Por exemplo, o índice de conjunto 312 da figura 3 pode ser alterado como ilustrado pela seta 322 no local do índice de conjunto 320 em resposta à alteração de tamanho da cache de 128 kbit para 256 kbit, em que ambos o índice de conjunto 312 e o índice de conjunto 320 indexam um conjunto de estados de indicador que é associado com um conjunto de dados, tal como o conjunto de estados de indicador 208 da figura 2 que é associado com a área de dados 210.
[0055] Uma cache configurável operando de acordo com os métodos das figuras de 5 a 7 ou de acordo com outras modalidades descritas aqui pode ser incorporado em uma variedade de dispositivos eletrônicos, tal como um telefone móvel, um set-top box, um computador, um assistente digital pessoal (PDA), um reprodutor de musica, um reprodutor de vídeo, qualquer outro dispositivo que armazena ou recuperar os dados ou instruções de computador, ou qualquer combinação dos mesmos.
[0056] A figura 8 é um diagrama de blocos da modalidade particular de um sistema 800 incluindo um módulo de cache configurável 864. O sistema 800 pode ser implementado em um dispositivo eletrônico portátil e inclui um processador de sinal 810, tal como um processador de sinal digital (DSP), acoplado a uma memória 832. O sistema 800 inclui o módulo de cache configurável 864. Em um exemplo ilustrativo, o módulo de cache configurável 864 inclui qualquer um dos sistemas das figuras de 1 a 4, opera de acordo com qualquer uma das modalidades das figuras de 5 a 7, ou qualquer combinação dos mesmos. O módulo de cache configurável 864 pode estar no processador de sinal 810 ou pode ser um dispositivo ou conjunto de circuitos (não ilustrado) separado. Em uma modalidade particular, a cache configurável 106 da figura 1 é acessível a um processador de sinal digital. Por exemplo, como ilustrado na figura 8, o módulo de cache configurável 864 é acessível ao DSP 810 e o processador de sinal digital 810 é configurado para acessar dados ou instruções de programa armazenados no módulo de cache configurável 864. O pelo menos um bit comum 104 da figura 1 pode corresponder a um bit predeterminado de um endereço de memória, tal como o endereço 102, que é recebido na cache configurável 106 em conjunto com a operação de consulta da cache realizada no processador de sinal digital 810.
[0057] Uma interface de câmera 868 é acoplada ao processador de sinal 810 e também é acoplada a uma câmera, tal como uma câmera de vídeo 870. O controlador de exibição 826 é acoplado ao processador de sinal 810 e a um dispositivo de exibição 828. Um codificador/decodificador (CODEC) 834 pode ser acoplado também ao processador de sinal 810. Um alto falante 836 e um microfone 838 pode ser acoplado ao CODEC 834. Uma interface sem fio 840 pode ser acoplada ao processador de sinal 810 e a uma antena sem fio 842 de modo que os dados sem fio sejam recebidos através da antena 842 e interface sem fio 840 pode ser fornecida para o processador 810.
[0058] O processador de sinal 810 pode ser configurado para executar as instruções executáveis por computador 866 armazenadas em um meio legível por computador, tal como a memória 832, que são executáveis para fazer com que um computador, tal como o processador 810, faça com que o módulo de cache configurável 864 mude uma cache de uma primeira configuração possuindo um primeiro tamanho de área de dados para uma segunda configuração possuindo um segundo tamanho de área de dados, pelo aumento de uma quantidade de dados associada com cada entrada de um conjunto de dados da cache e mantendo um primeiro número de entradas do conjunto de dados que são endereçáveis através de um índice de conjunto, e pela manutenção de um segundo número de entradas do conjunto de dados associado com cada valor do índice de conjunto. As instruções executáveis por computador são adicionalmente executáveis para fazer com que o módulo de cache configurável 864 mude uma faixa de bits de um endereço de memória para indexar um conjunto de estados de indicador que é associado com o conjunto de dados, em que a faixa de bits para indexar o conjunto de estados de indicador é alterada com base na alteração da cache da primeira configuração para a segunda configuração.
[0059] Em uma modalidade particular, o processador de sinal 810, o controlador de exibição 826, a memória 832, o CODEC 834, a interface sem fio 840, e a interface de câmera 868 são incluídos em um sistema em pacote ou sistema em dispositivo de chip 822. Em uma modalidade particular, um dispositivo de entrada 830 e um suprimento de energia 844 são acoplados ao sistema no dispositivo de chip 822. Ademais, em uma modalidade particular, como ilustrado na figura 8, o dispositivo de exibição 828, o dispositivo de entrada 830, o alto falante 836, o microfone 838, a antena sem fio 842, a câmera de vídeo 870, e o suprimento de energia 844 são externos ao dispositivo de sistema no chip 822. No entanto, cada um dos dispositivos de exibição 828, o dispositivo de entrada 830, o alto falante 836, o microfone 838, a antena sem fio 842, a câmera de vídeo 879, e o suprimento de energia 844 podem ser acoplados a um componente do dispositivo de sistema no chip 822, tal como uma interface ou um controlador.
[0060] Os dispositivos e funcionalidades descritos acima podem ser implementados pelo fornecimento de informação de desenho e configurado em arquivos de computador (por exemplo, RTL, GDSII, GERBER, etc.) armazenados na mídia legível por computador. Alguns ou todos os arquivos podem ser fornecidos para os fabricantes que fabricam dispositivos com base em tais arquivos. Os produtos resultantes incluem discos (wafers) semicondutores que são então cortadas em pastilha semicondutora e empacotadas em um chip semicondutor. Os chips são então empregados em dispositivos descritos acima. A figura 9 apresenta uma modalidade ilustrativa particular de um processo de fabricação do dispositivo eletrônico 900.
[0061] A informação de dispositivo físico 902 é recebida no processo de fabricação 900, tal como um computador de pesquisa 906. A informação de dispositivo físico 902 pode incluir a informação de desenho representando pelo menos uma propriedade física de um dispositivo semicondutor, tal como os componentes da cache configurada da figura 1, os componentes da cache configurável da figura 2, ou qualquer combinação dos mesmos. Por exemplo, a informação de dispositivo físico 902 pode incluir parâmetros físicos, características de material e informação de estrutura que são registrados através de uma interface de usuário 904 acoplada ao computador de pesquisa 906. O computador de pesquisa 906 inclui um processador 908, tal como um ou mais núcleos de processamento, acoplados a um meio legível por computador, tal como a memória 910. A memória 910 pode armazenar instruções legíveis por computador que são executáveis para fazer com que o processador 908 transforme a informação de dispositivo físico 902 para se conformar a um formato de arquivo e para gerar um arquivo de biblioteca 912.
[0062] Em uma modalidade particular, o arquivo de biblioteca 912 inclui pelo menos um arquivo de dados incluindo a informação de desenho transformada. Por exemplo, o arquivo de biblioteca 912 pode incluir uma biblioteca de arquivos de dados correspondendo aos dispositivos semicondutores incluindo os componentes da cache configurável da figura 1, os componentes da cache configurável da figura 2, ou qualquer combinação dos mesmos, que é fornecido para uso com uma ferramenta de automatização de desenho eletrônico (EDA) 920.
[0063] O arquivo de biblioteca 912 pode ser utilizado em conjunto com a ferramenta de EDA 920 em um computador de desenho 914 que inclui um processador 916, tal como os um ou mais núcleos de processamento, acoplados a uma memória 918. A ferramenta de EDA 920 pode ser armazenada como instruções executáveis por processador na memória 918 para permitir que um usuário do computador de desenho 914 desenhe um circuito utilizando os componentes da cache configurável da figura 1, os componentes da cache configurável da figura 2, ou qualquer combinação dos mesmos, do arquivo de biblioteca 912. Por exemplo, um usuário do computador de desenho 914 pode registrar informação de desenho de circuito 922 através de uma interface de usuário 924 acoplada ao computador de desenho 914. A informação de desenho de circuito 922 pode incluir informação de desenho representando pelo menos uma propriedade física de um dispositivo semicondutor, tal como os componentes da cache configurável da figura 1, os componentes da cache configurável da figura 2, ou qualquer combinação dos mesmos. Para ilustrar isso, a propriedade do desenho de circuito pode incluir identificação de circuitos e relações particulares com outros elementos em um desenho de circuito, informação de posicionamento, informação de tamanho de acessório, informação de interconexão, ou outra informação representando uma propriedade física de um dispositivo semicondutor.
[0064]O computador de desenho 914 pode ser configurado para transformar a informação de desenho, incluindoainformação de desenhode circuito 922,parase conformaraum formatodearquivo. Para se ilustrarisso, o formato de arquivo pode incluir um formato de arquivo binário de base de dados representando os formatos geométricos planos, rótulos de texto, e outra informação sobre umlayout de circuito em umformatohierárquico, tal como o formato de arquivo de Sistema de Dados Gráfico (GDSII).O computador de desenho914 pode ser configurado para gerar um arquivo de dados incluindo a informação de desenho transformado, tal como o arquivo GDSI 926 que inclui a informação que descreve a cache configurável da figura 1, a cache configurável da figura 2, ou qualquer combinação dos mesmos, em adição a outros circuitos ou informação. Para se ilustrar isso, o arquivo de dados pode incluir informação correspondente a um sistema em chip (SOC) que inclui a cache configurável da figura 1 e que também inclui circuitos eletrônicos adicionais e componentes dentro do SOC.
[0065]O arquivo GDSII 926 pode ser recebido em um processo de fabricação 928 para fabricar a cache configurável da figura 1, a cache configurável da figura 2, o SOC, ou qualquer combinação dos mesmos, de acordo com a informação transformada no arquivo GDSII 926. Por exemplo, um processo de fabricação de dispositivo pode incluir o fornecimento do arquivo GDSII 926 para um fabricante da máscara 930 para criar uma ou mais máscaras, tal como máscaras a serem utilizadas para o processamento de fotolitografia, ilustrado como uma máscara representativa 932. A máscara 932 pode ser utilizada durante o processo de fabricação para gerar uma ou mais pastilhas 934, que podem ser testados e separados em matrizes, tal como uma matriz representativa 936. A matriz 936 inclui um circuito incluindo a cache configurável da figura 1, a cache configurável da figura 2, ou qualquer combinação dos mesmos.
[0066]A matriz 936 pode ser fornecida para um processo de empacotamento 938 onde a matriz 936 é incorporada em um pacote representativo 940. Por exemplo, o pacote 940 pode incluir uma única matriz 936 ou múltiplas matrizes, tal como a disposição de sistema em pacote (SiP). O pacote 940 pode ser configurado para se conformar a um ou mais padrões ou especificações, tal como os padrões do Conselho de Engenharia de Dispositivo de Elétron Conjunto (JEDEC).
[0067]A informação referente ao pacote 940 pode ser distribuída para vários projetistas de produto, tal como através de uma biblioteca de componente armazenada em um computador 946. O computador 946 pode incluir um processador 948, tal como um ou mais núcleos de processamento, acoplados a uma memória 950. Uma ferramenta de painel de circuito impresso (PCB) pode ser armazenada como instruções executáveis por processador na memória 950 para processar ainformaçãodeprojetodePCB942 recebida de um usuário docomputador946 atravésdeumainterface de usuário 944. A informação de projeto de PCB 942 pode incluir informação de posicionamento físico de um dispositivo semicondutor empacotado em um painel de circuito, o dispositivo semicondutor empacotado correspondendo ao pacote 940 incluindo a cache configurável da figura 1, a cache configurável da figura 2, ou qualquer combinação dos mesmos.
[0068] O computador 946 pode ser configurado para transformar a informação de projeto de PCB 942 para gerar um arquivo de dados, tal como um arquivo GERBER 952 com dados que inclui a informação de posicionamento físico de um dispositivo semicondutor empacotado em um painel de circuito, além do layout das conexões elétricas tal como resíduos ou vias, em que o dispositivo semicondutor empacotado corresponde ao pacote 940 incluindo a cache configurável da figura 1, a cache configurável da figura 2, ou qualquer combinação dos mesmos. Em outras modalidades, o arquivo de dados gerado pela informação de desenho de PCB transformado pode ter um formato além de um formato GERBER.
[0069] O arquivo GERBER 952 pode ser recebido em um processo de montagem de painel 954 e utilizado para criar PCBs, tal como o PCB representativo 956, que são fabricados de acordo com a informação de desenho armazenada dentro do arquivo GERBER 952. Por exemplo, o arquivo GERBER 952 pode ser carregado para uma ou mais máquinas para realização de várias etapas de um processo de produção de PCB.O PCB 956 pode ser preenchido com componentes eletrônicos incluindo o pacote 940 para formar um conjunto de circuitos impressos representativo (PCA) 958.
[0070]O PCA 958 pode ser recebido em um processo de fabricação de produto 960 e integrado a um ou mais dispositivos eletrônicos, tal como um primeiro dispositivo eletrônico representativo 962 e um segundo dispositivo eletrônico representativo 964. Como um exemplo não limitador ilustrativo, o primeiro dispositivo eletrônico representativo 962, o segundo dispositivo eletrônico representativo 964 ou ambos podem ser selecionados a partir do grupo de uma caixa de decodificação, um aparelho de musica, um aparelho de vídeo, uma unidade de entretenimento, um dispositivo de navegação, um dispositivo de comunicações, um assistente digital pessoal (PDA), uma unidade de dados de localização fixa, e um computador. Como outro exemplo não limitador ilustrativo, um ou mais dos dispositivos eletrônicos 962 e 964 podem ser unidades remotas, tal como telefones móveis, unidades de sistemas de comunicação pessoal portáteis (PCS), unidades de dados portáteis tal como assistentes de dados pessoais, dispositivos ativados com o sistema de posicionamento global (GPS), dispositivos de navegação, unidades de dados de localização fixa tal como um equipamento de leitura de medição, ou qualquer outro dispositivo que armazene ou recupere dados ou instruções de computador, ou qualquer combinação dos mesmos. Apesar de uma ou mais das figuras de 1 a 8 poderem ilustrar unidades remotas de acordo com os ensinamentos da descrição, a descrição não está limitada a essas unidades ilustradas. As modalidades da descrição podem ser empregadas de forma adequada em qualquer dispositivo que inclua um conjunto de circuitos integrados ativo incluindo a memória e um conjunto de circuitos em chip.
[0071]Dessa forma, a cache configurável da figura 1, a cache configurável da figura 2, ou qualquer combinação dos mesmos, podem ser fabricados, processados e incorporados em um dispositivo eletrônico, como descrito no processo ilustrativo 900. Um ou mais aspectos das modalidades descritas com relação às figuras de1 a 8 podem ser incluídos em vários estágios deprocessamento,talcomo dentro do arquivo de biblioteca912, arquivo GDSII926, e o arquivo GERBER 952, além de armazenado na memória 910 do computador de pesquisa 906, memória 910 do computador de desenho 914, e memória 950 do computador 946, a memória de um ou mais outros computadores ou processadores (não ilustrados) utilizados em vários estágios, tal como o do processo de montagem de painel 954, e também incorporados em uma ou mais outras modalidades físicas, tal como a máscara 932, a matriz 936, o pacote 940, PCA 958, outros produtos tal como circuitos de protótipo ou dispositivos (não ilustrados), ou qualquer combinação dos mesmo. Apesar de vários estágios representativos de produção de um desenho de dispositivo físico para um produto final serem apresentados, em outras modalidades menos estágios podem ser utilizados ou estágios adicionais podem ser incluídos. De forma similar, o processo 900 pode ser realizado por uma única entidade, ou por uma ou mais entidades realizando os vários estágios do processo 900.
[0072]Os versados na técnica apreciarão que os vários blocos lógicos ilustrativos, configurações, módulos, circuitos e etapas de algoritmo descritos com relação às modalidades descritas aqui podem ser implementados como hardware eletrônico, software de computador, ou uma combinação de ambos. Para se ilustrar claramente essa capacidade de intercâmbio de hardware e software, vários componentes, blocos, configurações, módulos circuitos e etapas ilustrativos foram descritos acima geralmente em termos de sua funcionalidade. Se tal funcionalidade é implementada como hardware ou software depende da aplicação em particular e das restrições de desenho impostas ao sistema como um todo. Os versados na técnica podem implementar a funcionalidade descrita de várias formas para cada aplicação em particular, mas tais decisões de implementação não devem ser interpretadas como responsáveis pelo distanciamento do escopo da presente descrição.
[0073] As etapas de um método ou algoritmo descritas com relação às modalidades descritas aqui podem ser consubstanciadas diretamente em hardware, em um módulo de software executado por um processador, ou em uma combinação dos dois. Um módulo de software pode residir em uma memória de acesso randômico (RAM), memória flash, memória de leitura apenas (ROM), memória de leitura apenas programável (PROM), memória de leitura apenas programável e eliminável (EPROM), memória de leitura apenas eletricamente programável e eliminável (EEPROM), registros, disco rígido, disco removível, memória de leitura apenas de disco compacto (CD-ROM), ou qualquer outra forma de meio de armazenamento conhecido da técnica. Um meio de armazenamento ilustrativo é acoplado ao processador de modo que o processador possa ler informação a partir de e escrever informação no meio de armazenamento.Na alternativa, o meio de armazenamento pode ser integral ao processador. O processador e o meio de armazenamento podem residir em um circuito integrado específico de aplicativo (ASIC). O ASIC pode residir em um dispositivo de computação ou um terminal de usuário. Na alternativa, o processador e o meio de armazenamento podem residir como componentes discretos em um dispositivo de computação ou terminal de usuário.
[0074] A descrição anterior das modalidades descritas é fornecida para permitir que qualquer pessoa versada na técnica crie ou faça uso das modalidades descritas. Várias modificações a essas modalidades serão prontamente aparentes dos versados na técnica, e os princípios genéricos definidos aqui podem ser aplicados a outras modalidades sem se distanciar do espírito ou escopo da descrição. Dessa forma, a presente descrição não deve ser limitada às modalidades ilustradas aqui, mas deve ser acordado o escopo mais amplo consistente com os princípios e características de novidade como definido pelas reivindicações a seguir.

Claims (29)

1.Método, caracterizado pelo fato de que compreende: alterar (602) um tamanho de uma cache, a cache incluindo um conjunto de estados de indicador (108), em que o conjunto de estados de indicador (108) compreende um conjunto de estados de indicador (108) endereçável por pelo menos a parte de índice de conjunto e uma área de estado endereçável pela parte de endereço de estado do endereço, em que a parte de índice de conjunto e a parte de endereço de estado do endereço incluem pelo menos um bit comum; e mudar (604) uma localização de uma parte de índice de conjunto de um endereço de dados a ser recuperado a partir da cache em resposta à alteração do tamanho da cache, em que um comprimento de bit da parte de índice de conjunto não é alterado quando a localização é mudada, e em que a parte de índice de conjunto é configurável para se sobrepor a pelo menos um bit de uma parte de endereço de estado do endereço.
2.Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a parte de índice de conjunto se sobrepõe a pelo menos um bit da parte de endereço de estado do endereço quando a cache é configurada para ter um primeiro tamanho ou quando a cache é configurada para ter um segundo tamanho que é maior do que o primeiro tamanho.
3.Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a cache é configurável adicionalmente para ter um terceiro tamanho que é maior do que o segundo tamanho.
4.Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a parte de índice de conjunto se sobrepõe a dois bits da parte de endereço de estado do endereço quando a cache é configurada para ter o primeiro tamanho, em que a parte de índice de conjunto se sobrepõe a um único bit da parte de endereço de estado do endereço quando a cache é configurada para ter o segundo tamanho, e em que a parte de índice de conjunto não se sobrepõe a quaisquer bits da parte de endereço de estado do endereço quando a cache é configurada para ter o terceiro tamanho.
5.Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a alteração do tamanho da cache é realizada por um processador de um dispositivo eletrônico.
6.Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a alteração do tamanho da cache e a mudança da localização da parte de índice de conjunto do endereço de dados a ser recuperado a partir da cache são realizadas em um processador integrado em um dispositivo eletrônico.
7.Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um bit da parte de endereço de estado do endereço é sobreposto quando o tamanho da cache é menor ou igual a um tamanho particular.
8.Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a parte de índice de conjunto e a parte de endereço de estado incluem dois bits comuns.
9.Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um número de bits comuns entre a parte de índice de conjunto e a parte de endereço de estado do endereço varia dependendo do tamanho da cache.
10.Aparelho, caracterizado pelo fato de que compreende: meios para alterar um tamanho de uma cache em um processador, a cache incluindo um conjunto de estados de indicador (108), em que o conjunto de estados de indicador (108) compreende um conjunto de estados de indicador (108) endereçável por pelo menos a parte de índice de conjunto e uma áreade estadoendereçável pelaparte de endereçode estado doendereço,em que a parte de índice de conjunto e a parte de endereço de estado do endereço incluem pelo menos um bit comum; e meios para mudar uma localização de uma parte de índice de conjunto de um endereço de dados a ser recuperado a partir da cache em resposta à alteração do tamanho da cache, em que um comprimento de bit da parte de índice de conjunto não é alterado quando a localização é mudada, e em que a parte de índice de conjunto é configurável para se sobrepor a um bit de uma parte de endereço de estado do endereço; em que pelo menos um dentre os meios para alterar o tamanho da cache ou os meios para mudar a localização da parte de índice de conjunto é implementado por hardware.
11.Aparelho, de acordo com a reivindicação 10, caracterizado pelofato de que compreende adicionalmente: meios de processamento para processar dados ou instruções armazenados na cache; e meios de comunicação sem fio para receber dados sem fio, os meios de comunicação sem fio acoplados aos meios de processamento.
12.Aparelho, de acordo com a reivindicação 10, caracterizado pelo de que o processador é integrado em pelo menos uma pastilha semicondutora.
13.Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que compreende adicionalmente um dispositivo selecionado a partir do grupo que consiste de um set-top box, um reprodutor de música, um reprodutor de vídeo, uma unidade de entretenimento, um dispositivo de navegação, um dispositivo de comunicações, um assistente digital pessoal, PDA, uma unidade de dados de localização fixa e um computador, nos quais a cache é integrada.
14.Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o bit da parte de endereço de estado do endereço é sobreposto quando o tamanho da cache é menor ou igual a um tamanho particular.
15.Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o bit da parte de endereço de estado do endereço é sobreposto quando a cache é configurada para ter um primeiro tamanho ou quando a cache é configurada para ter um segundo tamanho que é maior do que o primeiro tamanho.
16.Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que a parte de índice de conjunto na localização mudada se sobrepõe ao bit da parte de endereço de estado do endereço e um bit adicional da parte de endereço de estado do endereço.
17.Memória legível por computador caracterizada pelo fato de que contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 1 a 9.
18.Método, caracterizado pelo fato de que compreende: uma primeira etapa para alterar um tamanho de uma cache, a cache incluindo um conjunto de estados de indicador (108), em que o conjunto de estados de indicador (108) compreende um conjunto de estados de indicador (108) endereçável por pelo menos a parte de índice de conjunto e uma áreade estadoendereçável pelaparte de endereçode estado doendereço,em que a parte de índice de conjunto e a parte de endereço de estado do endereço incluem pelo menos um bit comum; e uma segunda etapa para mudar uma localização de uma parte de índice de conjunto de um endereço de dados a ser recuperado a partirdacache emrespostaà alteraçãodo tamanho da cache, em que um comprimento de bit da parte de índice de conjunto nãoéalteradoquando a localização é mudada, em que parte de índice de conjunto é configurável para se sobrepor ao pelo menos um bit de uma parte de endereço de estado do endereço quando a parte de índice de conjunto está na localização mudada.
19.Método, de acordo com a reivindicação 18, caracterizado pelo fato de a primeira etapa e a segunda etapa são realizadas em um processador integrado em um dispositivo eletrônico.
20.Método, de acordo com a reivindicação 18, caracterizado pelo fato de que a parte de índice de conjunto não se sobrepõe a quaisquer bits da parte de endereço de estado do endereço antes de mudar a localização da parte de índice de conjunto.
21.Método, de acordo com a reivindicação 18, caracterizado pelo fato de que a cache é configurável adicionalmente para possuir um dentre um primeiro tamanho, um segundo tamanho ou um terceiro tamanho, em que o terceiro tamanho é maior do que o segundo tamanho, e em que o segundo tamanho é maior do que o primeiro tamanho.
22.Método, de acordo com a reivindicação 21, caracterizado pelo fato de a parte de índice de conjunto se sobrepõe a dois bits da parte de endereço de estado do endereço quando a cache é configurada para ter o primeiro tamanho, em que a parte de índice de conjunto se sobrepõe a um único bit da parte de endereço de estado do endereço quando a cache é configurada para ter o segundo tamanho, e em que a parte de índice de conjunto não se sobrepõe a quaisquer bits da parte de endereço de estado do endereço quando a cache é configurada para ter o terceiro tamanho.
23.Aparelho, caracterizado pelo fato de que compreende: uma cache incluindo um conjunto de estados de indicador (108), e em que o conjunto de estados de indicador (108) compreende um conjunto de estados de indicador (108) endereçável por pelo menos a parte de índice de conjunto e uma área de estado endereçável por pelo menos a parte de endereço de estado do endereço, em que a parte de índice de conjunto e a parte de endereço de estado incluem pelo menos um bit comum; e um processador acoplado à cache, em que o processador é configurado para: mudar uma localização de uma parte de índice de conjunto de um endereço de dados a ser recuperado a partir da cache em resposta à alteração do tamanho da cache, em que um comprimento de bit da parte de índice de conjunto não é alterado quando a localização é mudada, em que a parte de índice de conjunto é configurável para se sobrepor a pelo menos um bit de uma parte de endereço de estado do endereço.
24.Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que o pelo menos um bit da parte de endereço de estado do endereço é sobreposto quando o tamanho da cache é menor do que um tamanho particular.
25.Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que mudar a localização da parte de índice de conjunto não altera um valor do endereço.
26.Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que a localização da parte de índice de conjunto identifica um conjunto de bits a ser incluído na parte de índice de conjunto.
27.Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que compreende adicionalmente um multiplexador possuindo uma entrada acoplada para receber o pelo menos um bit comum e possuindo uma saída acoplada ao conjunto de estados de indicador (108), em que o multiplexador é configurável para seletivamente fornecer o pelo menos um bit comum como uma entrada selecionável à parte de índice de conjunto.
28.Aparelho, de acordo com a reivindicação 27, caracterizado pelo fato de que a parte de endereço de estado do endereço e a parte de índice de conjunto incluem dois bits comuns em uma primeira configuração e um bit comum em uma segunda configuração.
29.Memória legível por computador caracterizada pelo fato de que contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 18 a 22.
BRPI1009228-5A 2009-03-03 2010-03-03 Cache configurável e método para configuração da mesma BRPI1009228B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/397,185 2009-03-03
US12/397,185 US8266409B2 (en) 2009-03-03 2009-03-03 Configurable cache and method to configure same
PCT/US2010/026106 WO2010102048A1 (en) 2009-03-03 2010-03-03 Configurable cache and method to configure same

Publications (2)

Publication Number Publication Date
BRPI1009228A2 BRPI1009228A2 (pt) 2016-03-15
BRPI1009228B1 true BRPI1009228B1 (pt) 2020-12-01

Family

ID=42112122

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI1009228-5A BRPI1009228B1 (pt) 2009-03-03 2010-03-03 Cache configurável e método para configuração da mesma

Country Status (8)

Country Link
US (3) US8266409B2 (pt)
EP (1) EP2404241A1 (pt)
JP (2) JP5357277B2 (pt)
KR (2) KR101293613B1 (pt)
CN (3) CN104572503B (pt)
BR (1) BRPI1009228B1 (pt)
TW (3) TWI418982B (pt)
WO (1) WO2010102048A1 (pt)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266409B2 (en) 2009-03-03 2012-09-11 Qualcomm Incorporated Configurable cache and method to configure same
EP2261805B1 (en) * 2009-06-12 2013-07-31 Siemens Aktiengesellschaft Method for storing real time values
US8595441B1 (en) * 2010-01-04 2013-11-26 Marvell Israel (M.I.S.L) Ltd. Cache operations using transformed indexes
CN102541754A (zh) * 2010-12-27 2012-07-04 北京国睿中数科技股份有限公司 用于对存储器进行配置的系统和方法
US8890601B2 (en) * 2011-11-11 2014-11-18 Qualcomm Incorporated Method, system, and circuit with a driver output interface having a common mode connection coupled to a transistor bulk connection
US20130173881A1 (en) * 2011-12-29 2013-07-04 You-Chang Hsiao Circuit for setting a plurality of blocks as an in-system programming area and a data buffer area and method therefore
CN102541761B (zh) * 2012-01-17 2014-10-22 苏州国芯科技有限公司 应用于嵌入式芯片的只读高速缓冲存储器
US9058268B1 (en) * 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
US8886886B2 (en) * 2012-09-28 2014-11-11 Apple Inc. System cache with sticky removal engine
CN103019959B (zh) * 2012-11-21 2016-05-04 中国科学院声学研究所 一种指令高速缓冲存储器
US9087561B2 (en) * 2012-12-21 2015-07-21 Advanced Micro Devices, Inc. Hybrid cache
US9165650B2 (en) * 2013-02-07 2015-10-20 Qualcomm Incorporated Hybrid dynamic-static encoder with optional hit and/or multi-hit detection
CN103546802B (zh) * 2013-10-15 2017-07-25 深圳Tcl新技术有限公司 动态调整缓存的方法及显示终端
US9239788B2 (en) * 2013-10-24 2016-01-19 Qualcomm Incorporated Split write operation for resistive memory cache
US9304929B2 (en) * 2013-10-24 2016-04-05 Mediatek Singapore Pte. Ltd. Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device
US9398297B2 (en) * 2013-11-04 2016-07-19 Intel Corporation Integral image coding
US9430394B2 (en) * 2013-12-12 2016-08-30 Mediatek Singapore Pte. Ltd. Storage system having data storage lines with different data storage line sizes
CN104731519B (zh) * 2013-12-20 2018-03-09 晨星半导体股份有限公司 快取存储器管理装置及应用该快取存储器管理装置的动态影像系统及方法
KR102317248B1 (ko) * 2014-03-17 2021-10-26 한국전자통신연구원 캐시의 부분연관 재구성을 이용한 캐시 제어 장치 및 캐시 관리 방법
US9779025B2 (en) * 2014-06-02 2017-10-03 Micron Technology, Inc. Cache architecture for comparing data
KR102354848B1 (ko) * 2014-11-28 2022-01-21 삼성전자주식회사 캐시 메모리 장치 및 이를 포함하는 전자 시스템
US9916251B2 (en) 2014-12-01 2018-03-13 Samsung Electronics Co., Ltd. Display driving apparatus and cache managing method thereof
WO2016092345A1 (en) * 2014-12-13 2016-06-16 Via Alliance Semiconductor Co., Ltd. Logic analyzer for detecting hangs
US10528345B2 (en) * 2015-03-27 2020-01-07 Intel Corporation Instructions and logic to provide atomic range modification operations
US9916252B2 (en) * 2015-05-19 2018-03-13 Linear Algebra Technologies Limited Systems and methods for addressing a cache with split-indexes
US20170046167A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Predicting memory instruction punts in a computer processor using a punt avoidance table (pat)
CN106708747A (zh) * 2015-11-17 2017-05-24 深圳市中兴微电子技术有限公司 一种存储器切换方法及装置
US9747041B2 (en) * 2015-12-23 2017-08-29 Intel Corporation Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device
KR101780586B1 (ko) * 2016-03-16 2017-09-21 고려대학교 산학협력단 모놀리식 3d 집적 구조 기반 캐시메모리
CN105843360B (zh) * 2016-03-23 2018-06-12 中国电子科技集团公司第三十八研究所 一种降低指令高速缓冲存储器功耗的装置及方法
US10152276B2 (en) * 2016-07-18 2018-12-11 Winbond Electronics Corporation Memory device including data processor and program method of same
US20180088829A1 (en) * 2016-09-29 2018-03-29 Qualcomm Incorporated Area efficient architecture for multi way read on highly associative content addressable memory (cam) arrays
US10599566B2 (en) * 2016-11-29 2020-03-24 Qualcomm Incorporated Multi-mode cache invalidation
US10409614B2 (en) 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
EP3776188B1 (en) * 2018-03-31 2025-04-30 Micron Technology, Inc. Conditional branching control for a multi-threaded, self- scheduling reconfigurable computing fabric
CN109801655B (zh) * 2018-12-19 2020-10-13 成都海光集成电路设计有限公司 标签存储位读出比较电路以及标签数据读出比较电路
TWI706250B (zh) * 2019-02-26 2020-10-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
US12182035B2 (en) 2019-03-15 2024-12-31 Intel Corporation Systems and methods for cache optimization
EP4270201A3 (en) 2019-03-15 2024-01-31 INTEL Corporation Memory controller management techniques
DK3938890T3 (da) 2019-03-15 2025-09-22 Intel Corp Arkitektur for sparsomme blokoperationer på et systolisk array
CN110147330B (zh) * 2019-05-23 2023-09-01 深圳市创维软件有限公司 一种字模数据的缓存方法、装置、设备和存储介质
US11663746B2 (en) 2019-11-15 2023-05-30 Intel Corporation Systolic arithmetic on sparse data
US11861761B2 (en) 2019-11-15 2024-01-02 Intel Corporation Graphics processing unit processing and caching improvements
US11507174B2 (en) * 2020-02-25 2022-11-22 Qualcomm Incorporated System physical address size aware cache memory
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US12462186B2 (en) * 2020-05-29 2025-11-04 Advanced Micro Devices, Inc. Stacked dies for machine learning accelerator
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11507516B2 (en) 2020-08-19 2022-11-22 Micron Technology, Inc. Adaptive cache partitioning
US12105628B2 (en) * 2021-10-19 2024-10-01 Electronics And Telecommunications Research Institute Apparatus and method for managing cache memory including cache lines with variable cache line configuration
KR20230075914A (ko) * 2021-11-23 2023-05-31 삼성전자주식회사 프로세싱 장치 및 이의 동작 방법과 전자 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4315312A (en) * 1979-12-19 1982-02-09 Ncr Corporation Cache memory having a variable data block size
US5257360A (en) * 1990-03-23 1993-10-26 Advanced Micro Devices,Inc. Re-configurable block length cache
US5586303A (en) * 1992-02-12 1996-12-17 Integrated Device Technology, Inc. Structure and method for providing a cache memory of selectable sizes
US5721874A (en) 1995-06-16 1998-02-24 International Business Machines Corporation Configurable cache with variable, dynamically addressable line sizes
US5857214A (en) 1995-12-18 1999-01-05 Advanced Micro Devices, Inc. Microprocessor with a fixed cache size selected from a predesigned set of sizes
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US6865646B2 (en) 2001-12-31 2005-03-08 Intel Corporation Segmented distributed memory module cache
US7406579B2 (en) 2002-12-17 2008-07-29 International Business Machines Corporation Selectively changeable line width memory
CN1714347A (zh) * 2002-12-17 2005-12-28 国际商业机器公司 选择性可变行宽存储器
US7191320B2 (en) * 2003-02-11 2007-03-13 Via Technologies, Inc. Apparatus and method for performing a detached load operation in a pipeline microprocessor
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7133997B2 (en) 2003-12-22 2006-11-07 Intel Corporation Configurable cache
KR100714933B1 (ko) * 2005-05-17 2007-05-07 인터내셔널 비지네스 머신즈 코포레이션 선택성이 있는 가변 라인 폭 메모리
US7861055B2 (en) 2005-06-07 2010-12-28 Broadcom Corporation Method and system for on-chip configurable data ram for fast memory and pseudo associative caches
JP4364166B2 (ja) * 2005-06-30 2009-11-11 株式会社東芝 キャッシュ装置
US7913003B2 (en) * 2006-02-24 2011-03-22 Intel Corporation Reclaim algorithm for fast edits in a nonvolatile file system
US20090006754A1 (en) 2007-06-28 2009-01-01 Luick David A Design structure for l2 cache/nest address translation
US20090006803A1 (en) * 2007-06-28 2009-01-01 David Arnold Luick L2 Cache/Nest Address Translation
US8266409B2 (en) 2009-03-03 2012-09-11 Qualcomm Incorporated Configurable cache and method to configure same

Also Published As

Publication number Publication date
US8719503B2 (en) 2014-05-06
TW201106158A (en) 2011-02-16
US20100228941A1 (en) 2010-09-09
TWI516932B (zh) 2016-01-11
JP2013257902A (ja) 2013-12-26
US8266409B2 (en) 2012-09-11
TWI418982B (zh) 2013-12-11
KR101293613B1 (ko) 2013-08-13
CN104598395B (zh) 2017-10-31
EP2404241A1 (en) 2012-01-11
BRPI1009228A2 (pt) 2016-03-15
US20140208027A1 (en) 2014-07-24
KR20110127733A (ko) 2011-11-25
CN102341794A (zh) 2012-02-01
TW201415228A (zh) 2014-04-16
CN104598395A (zh) 2015-05-06
US20120265943A1 (en) 2012-10-18
KR20130080868A (ko) 2013-07-15
JP5357277B2 (ja) 2013-12-04
JP5650821B2 (ja) 2015-01-07
KR101293623B1 (ko) 2013-08-13
CN104572503A (zh) 2015-04-29
JP2012519334A (ja) 2012-08-23
CN102341794B (zh) 2015-02-11
TWI548992B (zh) 2016-09-11
TW201610681A (zh) 2016-03-16
WO2010102048A1 (en) 2010-09-10
US8943293B2 (en) 2015-01-27
CN104572503B (zh) 2018-07-03

Similar Documents

Publication Publication Date Title
BRPI1009228B1 (pt) Cache configurável e método para configuração da mesma
EP2486488B1 (en) Accessing a multi-channel memory system having non-uniform page sizes
JP5509344B2 (ja) 参照セルを選択するためのシステムおよび方法
US9436606B2 (en) System and method to defragment a memory
BR112013002528B1 (pt) Geração de estado não reversível em uma célula de bits que possui uma primeira junção túnel magnética e uma segunda junção túnel magnética
WO2010102134A1 (en) Apparatus and method to translate virtual addresses to physical addresses in a base plus offset addressing mode
EP3074869B1 (en) Bit recovery system
US9250998B2 (en) Cache structure with parity-protected clean data and ECC-protected dirty data

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: G06F 12/08 , G06F 17/50

Ipc: G06F 12/0802 (2016.01), G06F 12/0864 (2016.01), G0

B07A Technical examination (opinion): publication of technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 01/12/2020, OBSERVADAS AS CONDICOES LEGAIS.