BRPI0617527A2 - atualizaÇço de méltiplos nÍveis de campo de buffers de previsço de traduÇço (tlbs) - Google Patents
atualizaÇço de méltiplos nÍveis de campo de buffers de previsço de traduÇço (tlbs) Download PDFInfo
- Publication number
- BRPI0617527A2 BRPI0617527A2 BRPI0617527-9A BRPI0617527A BRPI0617527A2 BR PI0617527 A2 BRPI0617527 A2 BR PI0617527A2 BR PI0617527 A BRPI0617527 A BR PI0617527A BR PI0617527 A2 BRPI0617527 A2 BR PI0617527A2
- Authority
- BR
- Brazil
- Prior art keywords
- tlb
- translation information
- address
- level tlb
- address translation
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
<B>ATUALIZAÇçO DE MULTIPLOS NÍVEIS DE CAMPO DE BUFFERS DE PREVISçO DE TRADUÇçO (TLBs) <D>Um equipamento inclui uma memória configurada para armazenar dados, um TLB de nível mais baixo, um TLB de nível mais alto e um controlador de TLB. O TLB de nível mais baixo e o TLB de nível mais alto são configurados para armazenar uma pluralidade de entradas, cada uma das entradas contendo informações de tradução de endereço que permitem que um endereço virtual seja traduzido em um endereço físico correspondente. O controlador de TLB recupera de uma tabela de páginas na memória informações de tradução de endereço para um endereço virtual desejado, se o endereço virtual desejado gerar uma perda de TLB do TLB de nível mais baixo e do TLB de nível mais alto. Utilizando uma única instrução de gravação em TLB, o controlador de TLB atualiza tanto o TLB de nível mais baixo quanto o TLB de nível mais alto por meio da gravação das informações de tradução de endereço, recuperadas da tabela de páginas, no TLB de nível mais baixo assim como no TLB de nível mais alto.
Description
"ATUALIZAÇÃO DE MÚLTIPLOS NÍVEIS DE CAMPO DE BUFFERS DEPREVISÃO DE TRADUÇÃO (TLBs)"
A presente invenção refere-se a buffers deprevisão de tradução (TLBs).
FUNDAMENTOS
Em um processador que suporta memória virtualpaginada, os dados podem ser especificados utilizando-seendereços virtuais (também referidos como endereços"efetivos" ou "lineares") que ocupam um espaço de endereçosvirtuais do processador. O espaço de endereços virtuaispode ser tipicamente maior que o tamanho da memória físicareal do sistema. O sistema operacional no processador podegerenciar a memória física em blocos de tamanho fixochamados páginas.
Para traduzir endereços de página virtuais emendereços de página físicos, o processador pode buscartabelas de páginas armazenadas na memória do sistema, quepode conter as informações de tradução de endereçonecessárias. Uma vez que estas buscas (ou "passeios pelatabela de páginas") podem envolver tipicamente acessos àmemória, a menos que os dados da tabela de páginas estejamem uma cache de dados, estas buscas podem ser demoradas.
O processador pode, portanto, realizar traduçãode endereços utilizando um ou mais buffers de previsão detradução (TLBs). Um TLB é uma cache de tradução deendereços, isto é, uma pequena cache que armazenamapeamentos recentes de endereços virtuais em endereçosfísicos. O processador pode armazenar em cache o endereçofísico no TLB, após realizar a busca de tabela de páginas ea tradução de endereço. O conteúdo de um TLB pode incluirtipicamente endereços de página virtuais comumentereferidos, assim como o endereço de página físico associadoa eles. Podem existir TLBs separados para endereços deinstrução (referidos como "TLB de instruções" ou "I-TLB") epara endereços de dados (referidos como "data-TLB" ou "D-TLB").
De modo a aumentar a eficiência dos acessos aTLB, múltiplos níveis de TLBs podem ser utilizados eimplementados, por analogia a múltiplos níveis de cache dememória. Um TLB de nível mais baixo pode ser tipicamentemenor e mais rápido, comparado com um ou mais TLBs de nívelmais alto. Quando ocorre uma perda de TLB tanto em um TLBde nível mais baixo quanto em um TLB de nível mais alto, oTLB de nível mais alto pode ser tipicamente atualizado,como resultado de um passeio pela tabela de páginas.
Geralmente, o TLB de nível mais baixo pode nãoser atualizado com as informações de tradução de endereçorecuperadas da tabela de páginas na memória física. Umareferência subseqüente ao TLB de nível mais baixoresultaria então em uma perda de TLB, o que exige uma buscado TLB de nível mais alto para as informações de traduçãode endereço desejadas. Pode haver, contudo, uma latênciaindesejável que está associada à perda no TLB de nível maisbaixo e à busca resultante do TLB de nível mais alto
SUMÁRIO
Um meio legível por computador tem nelearmazenadas instruções legíveis por computador para umprocessador. As instruções, quando lidas e implementadaspelo processador, fazem o processador acessar uma memóriafísica para recuperar informações de tradução de endereçopara um endereço virtual que geram um sinal de perda de TLBtanto para um TLB de nível mais baixo quanto para um TLB denível mais alto. As instruções também fazem o processadoratualizar tanto o TLB de nível mais baixo quanto o TLB denível mais alto utilizando uma única instrução de gravaçãono TLB, por meio de gravação das informações de tradução deendereço recuperadas da memória tanto no TLB de nível maisbaixo quanto no TLB de nível mais alto.
Um método para atualizar mais de iam nível de TLBinclui acessar uma memória para recuperar informações detradução de endereço para um endereço virtual. 0 métodoinclui atualizar tanto um TLB de nível mais baixo quanto umTLB de nível mais alto utilizando uma única instrução degravação no TLB, por meio da gravação das informações detradução de endereço recuperadas da memória tanto no TLB denível mais baixo quanto no TLB de nível mais alto.
Um equipamento inclui uma memória; um TLB denível mais baixo e um TLB de nível mais alto; e umcontrolador de TLB. 0 TLB de nível mais baixo e o TLB denível mais alto são configurados para armazenar umapluralidade de entradas, cada uma das entradas contendoinformações de tradução de endereço que permitem a traduçãode um endereço virtual em um endereço físicocorrespondente. 0 controlador de TLB é configurado pararecuperar da memória informações de tradução de endereçopara um endereço virtual desejado, se o endereço virtualdesejado gerar uma perda de TLB do TLB de nível mais baixoe do TLB de nível mais alto. O controlador de TLB éadicionalmente configurado para atualizar tanto o TLB denível mais baixo quanto o TLB de nível mais alto utilizandouma única instrução de gravação no TLB, por meio dagravação das informações de tradução de endereçorecuperadas da memória tanto no TLB de nível mais baixoquanto no TLB de nível mais alto utilizando a única
BBEVE DESCRIÇÃO DOS DESENHOS
A Figura 1 mostra esquematicamente um TLB quefunciona em um sistema de memória virtual.A Figura 2 é um diagrama esquemático de umexemplo de um sistema de tradução de endereços tendo um TLBde nivel mais alto e um TLB de nivel mais baixo e de umcontrolador de TLB configurado para atualizar ambos osníveis de TLB como um resultado de uma única operação degravação de TLB.
A Figura 3 é um fluxograma esquemático que mostraum método para atualizar mais de um nível de TLB.
DESCRIÇÃO DETALHADA
A descrição detalhada apresentada a seguir emconexão com os desenhos anexos pretende descrever diversasmodalidades de um método e um sistema configurados paraatualizar múltiplos níveis de TLB, mas não pretenderepresentar as únicas modalidades possíveis. A descriçãodetalhada inclui detalhes específicos, de modo a permitirum entendimento completo do que é descrito. Os versados natécnica devem entender, contudo, que estes detalhesespecíficos podem não ser incluídos em algumas dasmodalidades descritas. Em alguns casos, estruturas ecomponentes notoriamente conhecidos são mostrados em formade diagrama de blocos, de modo que sejam ilustrados maisclaramente os conceitos que estão sendo explicados.
A Figura 1 mostra esquematicamente ofuncionamento, em um sistema de memória virtual, de umbuffer de previsão de tradução (TLB) 10, em conjunto comuma tabela de páginas 20 incluída em uma memória física 30.Conforme sabido na técnica, em sistemas de memóriavirtuais, mapeamentos (ou traduções) podem ser tipicamenterealizados entre um espaço de endereços virtuais (ou"lineares") e um espaço de endereços físicos. Um espaço deendereços virtuais refere-se tipicamente ao conjunto detodos os endereços virtuais 22 gerados por um processador.Um espaço de endereços físicos refere-se tipicamente aoconjunto de todos os endereços físicos para os dados queresidem na memória física 30, isto é, os endereços quepodem ser providos em um barramento de memória paragravação em, ou leitura de, uma localização específica namemória física 30.
Em um sistema de memória virtual paginada, pode-se presumir que os dados são compostos de unidades decomprimento fixo comumente referidos como páginas 31. 0espaço de endereços virtuais e o espaço de endereçosfísicos podem ser divididos em blocos de endereços depágina contíguos, cada endereço de página virtual provendoum número de página virtual e cada endereço de páginafísico correspondente indicando a localização dentro damemória 30 de uma página 31 de dados específica. Um tamanhode página típico pode ser de cerca de 4 kbytes, porexemplo, embora sistemas de memória paginada virtualdiferentes possam utilizar tamanhos de página diferentes. Atabela de páginas 20 na memória física 30 pode conter osendereços de página físicos que correspondem a todos osendereços de página virtuais do sistema de memória virtual,isto é, pode conter os mapeamentos entre endereços depágina virtuais e os endereços de página físicoscorrespondentes, para todos os endereços de página virtuaisno espaço de endereços virtuais. Tipicamente, a tabela depáginas 20 pode conter uma pluralidade de entradas detabela de páginas (PTEs) 21, cada PTE 21 indicando umapágina 31 na memória física 30 que corresponde a umendereço virtual específico.
Acessar as PTEs 21 armazenadas na tabela depáginas 20 na memória física 30 pode exigir transações debarramento de memória, que podem ser dispendiosas em termosde tempo de ciclo do processador e consumo de energia. 0número de transações de barramento de memória pode serreduzido acessando-se o TLB 10, em vez da memória física30. Conforme explicado anteriormente, o TLB 10 é uma cachede tradução de endereços que armazena mapeamentos recentesentre endereços virtuais e físicos. O TLP 10 contémtipicamente um subconjunto dos mapeamentos de endereços devirtuais para físicos que são armazenados na tabela depáginas 20. Um TLB 10 pode conter tipicamente umapluralidade de entradas de TLB 12. Cada entrada de TLB 12pode ter um campo de indicador (tag) 14 e um campo de dados16. O campo de indicador 14 pode incluir alguns dos bits deordem mais alta dos endereços de página virtuais como umindicador. O campo de dados 16 pode indicar o endereço depágina físico que corresponde ao endereço de página virtualindicado.
Quando uma instrução tem um endereço virtual 22que precisa ser traduzido em um endereço físicocorrespondente, durante a execução de um programa, o TLB 10pode ser acessado para a consulta do endereço virtual 22entre as entradas de TLB armazenadas no TLB 10. 0 endereçovirtual 22 inclui tipicamente um número de página virtual,que pode ser utilizado no TLB 10 para consulta do endereçode página físico correspondente.
Se o TLB 10 contiver, entre suas entradas de TLB,o endereço de página físico específico correspondente aonúmero de página virtual contido no endereço virtual 22apresentado ao TLB, um "acerto" (hit) de TLB ocorre, e oendereço de página físico pode ser recuperado do TLB 10. Seo TLB 10 não contiver o endereço de página físicoespecífico correspondente ao número de página virtual noendereço virtual 22 apresentado ao TLB, uma "perda" de TLBocorre, e pode ser necessário realizar uma consulta àtabela de páginas 20 na memória física 30. Uma vez que oendereço de página físico é determinado a partir da tabelade páginas 20, o endereço de página físico correspondenteao endereço de página virtual pode ser carregado no TLB 10,e o TLB 10 pode ser acessado mais uma vez com o endereço depágina virtual 22. Uma vez que o endereço de página físicodesejado tenha sido carregado no TLB 10, o acesso ao TLBresulta em um "acerto" de TLB desta vez, e o endereço depágina físico recém-carregado pode ser gerado em uma saídado TLB 10.
A Figura 2 é um diagrama funcional de um exemplode um sistema de tradução de endereços 100, que éconfigurado para atualizar mais de um nível de TLB comoresultado de uma única operação de gravação no TLB. Em umavisão geral, o sistema de tradução de endereços 100 podeincluir um TLB de nível mais baixo 110; um TLB de nívelmais alto 115; e um controlador de TLB 140 que controla ofuncionamento tanto do TLB de nível mais baixo 110 quantodo TLB de nível mais alto 115. O sistema de tradução deendereços 100 pode ser conectado a uma memória física 130,que pode incluir uma tabela de páginas 120. O controladorde TLB 140 pode ser parte de uma CPU (unidade central deprocessamento) em um processador. Alternativamente, ocontrolador de TLB 140 pode ser localizado dentro de umnúcleo de processador e/ou próximo da CPU de umprocessador. O controlador de TLB 140 pode incluir umsoftware de gerenciamento de TLB, que controla os acessos aambos os níveis de TLB.
Por analogia com os múltiplos níveis de cache quesão comumente utilizados em caches de memória, por exemplo,a eficiência das operações de tradução de endereço pode seraumentada com a utilização do TLB de nível mais baixo 110em conjunto com o TLB de nível mais alto. O TLB de nívelmais baixo 110 pode ser tipicamente menor que o TLB denível mais alto 115 e pode conter menos entradas de TLB,provendo assim um tempo de acesso curto aos dados deendereço utilizados com freqüência. Embora, parasimplificar, apenas um único TLB de nivel mais alto 115seja mostrado na Figura 2, deve ficar entendido que umapluralidade de TLBs de nivel mais alto pode ser incluida nosistema de tradução de endereços 100, cada nivel aumentadode TLB sendo tipicamente maior que o nivel anterior de TLBe tendo um número progressivamente crescente de entradas deTLB.O software de gerenciamento de TLBs nocontrolador de TLB 130 pode fazer com que o TLB de nivelmais baixo 110 seja inicialmente acessado e buscado, paraprocurar uma informação de tradução de endereço para umendereço virtual desejado, conforme indicado na Figura 2por uma seta rotulada com o número de referência 111. Se umacerto de TLB ocorrer no TLB de nivel mais baixo 110, osoftware no controlador de TLB 130 pode fazer com que oresultado de busca seja recuperado, conforme indicado pelaseta rotulada com o número de referência 112. Se uma perdade TLB ocorrer no TLB de nivel mais baixo 110, o softwarepode implementar uma busca do TLB de nivel mais alto 115. Abusca do TLB de nivel mais alto 115 é indicada na Figura 2por uma seta rotulada com o número de referência 113. O TLBde nivel mais alto 115 pode conter tipicamente muito maisentradas de TLB, comparado ao TLB de nivel mais baixo 110.Se a busca 113 do TLB de nivel mais alto 115resultar em um acerto de TLB, o resultado da busca pode serrecuperado e carregado no TLB de nivel mais baixo, conformeindicado na Figura 2 por uma seta rotulada com o número dereferência 116. A busca 113 do TLB de nivel mais alto 115pode, ainda, resultar em uma perda, e neste caso o softwareno controlador de TLB 140 pode implementar uma busca databela de páginas 120 na memória física 130, de modo arecuperar as informações de endereço de página fisicodesejadas. A busca da tabela de páginas 120 é indicada naFigura 2 por uma seta rotulada com o número de referência117.
Se a página desejada não existir na memóriafisica 130, as informações de tradução de endereçorelevantes podem ser carregadas da tabela de páginas 120 noTLB de nível mais alto 115. Isto significa que asinformações de tradução de endereço desejadas (isto é, o mapeamento entre o endereço virtual e o endereço físicocorrespondente) podem ser gravadas no TLB de nível maisalto 115, conforme indicado na Figura 2 por uma setarotulada com um o número de referência 121. Se a páginadesejada não estiver presente na memória 130, uma falha depágina pode ocorrer, e o sistema operacional pode sernotificado com uma exceção.
Uma vez que o TLB de nível mais alto 115 éatualizado, o software de gerenciamento de TLB pode fazercom que o controlador de TLB 140 repita o processo de referência de TLB. A instrução tendo o endereço virtual queproduziu inicialmente uma perda em ambos os TLBs (110 e115) pode ser buscada novamente (re-fetched) , e todo oprocesso de referência de TLB pode ser executado novamente,começando com o TLB de nível mais baixo 110. Se o TLB de nível mais baixo 110 não foratualizado, e apenas o TLB de nível mais alto 120 foratualizado com as informações de tradução de endereçorecuperadas da tabela de páginas 120, uma perda de TLBocorrerá no TLB de nível mais baixo 110, no processo de referência de TLB subseqüente. Como um resultado, serianecessária uma busca do TLB de nível mais alto 115, de modoa recuperar as informações de tradução de endereçodesejadas. Uma latência indesejável estaria associada àperda no TLB de nível mais baixo 110 e com a buscaresultante do TLB de nível mais alto 115.
Na modalidade mostrada do sistema de tradução deendereços 100, o controlador de TLB 140 inclui um softwareque faz o controlador de TLB 140 atualizar tanto o TLB denível mais baixo 110 quanto o TLB de nível mais alto 115utilizando as informações de tradução de endereço que foramrecuperadas da tabela de páginas 120. Em particular, osoftware no controlador de TLB 140 faz com que asinformações de tradução de endereço, recuperadas da tabelade páginas 120, sejam gravadas em ambos os níveis de TLB,como resultado de uma única instrução de gravação no TLB.Na Figura 2, a atualização do TLB de nível mais baixo 110 éindicada por uma seta rotulada com o número de referência119. Na modalidade mostrada, o controlador de TLB 140 éconfigurado para permitir uma atualização do TLB de nívelmais baixo 110, sempre que ocorra uma atualização 121 doTLB de nível mais alto 115.
Como resultado da atualização do TLB de nívelmais baixo 110 assim como do TLB de nível mais alto 115,pode ocorrer agora um acerto de TLB, em vez de uma perda deTLB, quando é tentado o acesso ao TLB de primeiro nível 110pela segunda vez, isto é, após a instrução que contém oendereço virtual (que estava perdido em ambos os níveis deTLB durante os acessos iniciais dos TLBs) ser buscadanovamente. Desta maneira, a necessidade de realizar outrabusca do TLB de nível mais alto 115 pode ser evitada. Alémdisto, pode ser eliminada a latência associada a uma perdano TLB de nível mais baixo 110 durante o segundo (repetido)processo de referência TLB, e com a busca resultante do TLBde nível mais alto 120.
Conforme mostrado na Figura 2, o controlador deTLB 140 pode incluir um registrador de controle 143, quetem um bit de configuração 145. O bit de configuração 145pode controlar se a operação de gravação no TLB (indicadapelo número de referência 121) deve ser executada ou não. Obit de configuração 145 pode também selecionar em quaisniveis de TLB a única operação de gravação em TLB deve serrealizada, de modo que os niveis selecionados de TLB com asinformações de tradução de endereço recuperadas da tabelade páginas sejam atualizados.
Em outra modalidade (não mostrada) do controladorde TLB 140, a seleção dos niveis de TLB nos quais asinformações de tradução de endereço recuperadas sãogravadas pode ser controlada pelo valor que é gravado apartir da tabela de páginas. Em outras palavras, o valorrecuperado da tabela de páginas pode conter, além dasinformações de tradução de endereço desejadas, informaçõesreferentes à seleção de niveis de TLB nos quais a operaçãode gravação em TLB para as informações de tradução deendereço recuperadas será executada.
O controlador de TLB 140 pode conter um meiolegível por computador tendo nele armazenadas instruçõeslegíveis por computador. Estas instruções legíveis porcomputador, quando lidas e executadas por um processador,podem fazer com que o processador acesse a tabela depáginas 120 na memória física 130 para recuperar asinformações de tradução de endereço para um endereçovirtual que geraram uma falha de TLB tanto do TLB de nívelmais baixo 110 quanto do TLB de nível mais alto 115. Asinstruções legíveis por computador podem fazer com que oprocessador grave as informações de tradução de endereçoque foram recuperadas da tabela de páginas 120 tanto no TLBde nível mais baixo 110 quanto no TLB de nível mais alto115, atualizando assim ambos os níveis de TLB, em respostaà única instrução de gravação no TLB.O controlador de TLB 140 pode incluir umregistrador de controle 143 tendo um bit de configuração145. 0 meio legível por computador pode ter nelearmazenadas instruções legíveis por computador adicionais,as quais, quando lidas e implementadas pelo processador,podem fazer com que o bit de configuração 145 determine sedeve ou não ocorrer a operação de gravação em TLB que gravaas informações de tradução de endereço recuperadas no TLBde nível mais baixo e no TLB de nível mais alto.
0 meio legível por computador pode ter nelearmazenadas instruções legíveis por computador adicionais,as quais, quando lidas e implementadas pelo processador,podem fazer com que o bit de configuração 145 selecione, apartir de uma pluralidade de níveis de TLB dentro doprocessador, dois ou mais níveis de TLB que serãoatualizados como resultado de uma única instrução degravação no TLB. Em outras palavras, estas instruçõeslegíveis por computador adicionais podem fazer com que obit de configuração selecione tais níveis de TLB nos quaisdevem ser gravadas as informações de tradução de endereçorecuperadas da tabela de páginas, como resultado da únicainstrução de gravação no TLB.
0 meio legível por computador pode ter nelearmazenadas instruções legíveis por computador adicionaisque, quando lidas e implementadas pelo processador, podemfazer com que o processador leia, a partir das informaçõesde tradução de endereço recuperadas da tabela de páginas,informações adicionais referentes a uma seleção de dois oumais níveis de TLB que serão atualizados, como resultado deuma única instrução de gravação no TLB. Em outras palavras,estas instruções legíveis por computador adicionais, quandolidas e implementadas pelo processador, podem fazer com queo processador leia, a partir das informações de tradução deendereço recuperadas propriamente ditas, a seleção dosniveis de TLB nos quais as informações de tradução deendereço recuperadas devem ser gravadas.
O meio legível por computador pode ter nelearmazenadas instruções legíveis por computador adicionaisque, quando lidas e implementadas pelo processador, podemfazer com que o processador acesse inicialmente o TLB denível mais baixo 110 para buscar informações de tradução deendereço para um endereço virtual desejado e para acessar ebuscar o TLB de nível mais alto 115 se as informações detradução de endereço para o endereço virtual desejadoestiverem perdidas do TLB de nível mais baixo 110, isto é,se o endereço virtual desejado gerar uma perda de TLBquando apresentado ao TLB de nível mais baixo 110. Asinstruções legíveis por computador adicionais podem tambémfazer com que o processador acesse a tabela de páginas 120na memória física 130 para recuperar as informações detradução de endereço para o endereço virtual desejado, seas informações de tradução de endereço estiverem perdidasdo TLB de nível mais alto 115, isto é, se o endereçovirtual desejado gerar uma perda de TLB quando apresentadoao TLB de nível mais alto 115.
Embora a modalidade do sistema de tradução deendereços 100 mostrado na Figura 2 mostre apenas doisníveis de TLB, outras modalidades (não mostradas) desistemas de tradução de endereços podem incluir mais dedois níveis de TLB. Estes sistemas de. tradução de endereçospodem incluir uma pluralidade de níveis de TLB, cada nívelde TLB incluindo entradas de TLB que podem armazenarinformações de tradução de endereço para endereçosvirtuais. O controlador de TLB nestes sistemas de traduçãode endereços pode ser configurado para acessar cada um dosvários níveis de TLB por sua vez, começando do nível de TLBmais baixo e progredindo para o nível de TLB mais alto. Ocontrolador de TLB pode ser configurado para acessar atabela de páginas na memória física, se as informações detradução de endereço para um endereço virtual desejadoestiverem perdidas em toda a pluralidade de níveis de TLB,e para recuperar as informações de tradução de endereçopara o endereço virtual desejado da tabela de páginas namemória física. 0 controlador de TLB pode ser tambémconfigurado para atualizar todos dentre a pluralidade deníveis de TLB com as informações de tradução de endereçoque foram recuperadas da tabela de páginas na memóriafísica.
A Figura 3 é um fluxograma de um método 300 paraatualizar mais de um nível de TLB. O método 300 começa naetapa 302. Na etapa 304, pode-se buscar uma instrução demodo que a execução da instrução possa começar. Na etapa306, um endereço virtual pode ser gerado para a instruçãobuscada. Na etapa 308, um controlador de TLB pode acessarum TLB de nível mais baixo, de modo a buscar no TLB denível mais baixo informações de tradução de endereço para oendereço virtual gerado na etapa 306. Se as informações detradução de endereço não existirem no TLB de nível maisbaixo, o controlador de TLB pode recuperar as informaçõesde tradução de endereço do TLB de nível mais baixo, naetapa 309. Se as informações de tradução de endereçodesejadas não existirem no TLB de nível mais baixo, entãopode ocorrer uma perda de TLB. O controlador de TLB podereceber uma indicação de uma perda de TLB do TLB de nívelmais baixo, isto é, receber um sinal de "perda de TLB". Ocontrolador de TLB pode então continuar para verificar umTLB de nível mais alto na etapa 310, de modo a determinarse a entrada desejada existe no TLB de nível mais alto.Se as informações de tradução de endereçodesejadas existirem no TLB de nivel mais alto, ocontrolador de TLB pode recuperar as informações detradução de endereço do TLB de nível mais alto, na etapa311. Se as informações de tradução de endereço desejadasnão existirem no TLB de nível mais alto, uma perda de TLBpode ocorrer no TLB de nível mais alto. 0 controlador deTLB pode receber uma indicação da perda de TLB do TLB denível mais alto, isto é, receber um sinal de "perda de TLB"do TLB de nível mais alto. 0 controlador de TLB pode entãoprosseguir, na etapa 312, para acessar a memória física demodo a buscar a tabela de páginas para a entrada desejada.
Se as informações de tradução de endereço desejadas foremencontradas na tabela de páginas, o controlador de TLB poderecuperar as informações da tabela de páginas, na etapa314. Se as informações de tradução de endereço na foremencontradas na tabela de páginas, o controlador de TLB podefazer com que ocorra uma falha de página, na etapa 313.
Após o controlador de TLB recuperar a entradadesejada da tabela de páginas na etapa 314, o controladorde TLB pode gravar as informações de tradução de endereço(recuperadas da tabela de páginas) tanto no TLB de nívelmais baixo quanto no TLB de nível mais alto na etapa 316,pela execução de uma única instrução de gravação no TLB. Emoutras palavras, o controlador de TLB pode atualizar ambosos níveis de TLB executando a única instrução de gravaçãono TLB. Todo o processo de referência de TLB pode ser entãoexecutado mais uma vez, começando da etapa 318, na qual ainstrução pode ser novamente buscada. Na etapa 320, o TLBde nível mais baixo pode ser acessado mais uma vez. Destavez, uma vez que o TLB de nível mais baixo já foiatualizado com as informações de tradução de endereçorecuperadas da tabela de páginas, pode ocorrer um acerto deTLB. O controlador de TLB pode recuperar as informações detradução de endereço desejadas do TLB de nível mais baixo,na etapa 322.
O método 300 pode incluir o ato (não mostrado) deler um bit de configuração no controlador de TLB paradeterminar quais niveis de TLB devem ser atualizadosutilizando a única instrução de gravação no TLB. O método300 pode incluir o ato (não mostrado) de ler o valorrecuperado da tabela de páginas para determinar quaisniveis de TLB devem ser atualizados utilizando uma únicainstrução de gravação no TLB.
Embora o método mostrado na Figura 3 mostreapenas dois niveis de TLB (isto é, um TLB de nivel maisbaixo e um TLB de nivel mais alto) , outros métodos deatualização (não mostrados) de TLBs podem envolver mais dedois niveis de TLB.
Em resumo, foram descritos um sistema e um métodopara eliminar a latência que está associada a uma perda emum TLB de nivel mais baixo que ocorre durante uma novabusca de uma instrução, a perda sendo causada pela nãoatualização do TLB de nivel mais baixo quando o TLB denivel mais alto é atualizado. A perda no TLB de nivel maisbaixo exige uma busca em um TLB de nivel mais alto, queresulta em latência adicional. Pela atualização do TLB denivel mais baixo ao mesmo tempo que o TLB de nivel maisalto é atualizado, uma referência subseqüente ao TLB denivel mais baixo produz um acerto em vez de uma perda,evitando-se a necessidade de introduzir a entrada do TLB denivel mais alto.
A descrição anterior das modalidades reveladas éapresentada para permitir que qualquer pessoa versada natécnica fabrique ou utilize o método e o sistema descritosacima. Diversas modificações nestas modalidades serãoprontamente evidentes aos versados na técnica, e osprincípios genéricos aqui definidos podem ser aplicados aoutras modalidades sem que se abandone o espírito ou oescopo do que foi descrito. Assim, o método e o sistemadescritos acima não pretendem estar limitados àsmodalidades aqui mostradas, mas devem receber o escopototal compatível com as reivindicações, nas quais areferência a um elemento no singular não pretendesignificar "um(a) e apenas um(a)", a menos que assimespecificamente afirmado, mas, em vez disso, "ura(a) oumais". Todos os equivalentes estruturais e funcionais doselementos das diversas modalidades descritas ao longo destadescrição que são conhecidos ou venham a ser posteriormenteconhecidos dos versados na técnica são expressamente aquiincorporados e pretendem ser abrangidos pelasreivindicações.
Claims (13)
1. Meio legível por computador tendo nelearmazenadas instruções legíveis por computador para umprocessador, em que as instruções, quando lidas eimplementadas pelo processador, fazem o processador:acessar uma memória física para recuperarinformações de tradução de endereço para um endereçovirtual que geram um sinal de perda de buffer de previsãode tradução (TLB) tanto para um TLB de nível mais baixoquanto para um TLB de nível mais alto; eatualizar tanto o TLB de nível mais baixo quantoo TLB de nível mais alto utilizando uma única instrução degravação no TLB, por meio da gravação das informações detradução de endereço recuperadas da memória tanto no TLB denível mais baixo quanto no TLB de nível mais alto.
2. Meio legível por computador, de acordo com areivindicação 1, no qual o meio legível por computador temnele armazenadas instruções legíveis por computadoradicionais para o processador, e no qual as instruçõesadicionais, quando lidas e implementadas pelo processador,fazem com que o processador acesse inicialmente o TLB denível mais baixo para buscar uma informação de tradução deendereço para um endereço virtual, de modo a acessar ebuscar um TLB de nível mais alto se o endereço virtualgerar uma perda de TLB do TLB de nível mais baixo, e paraacessar um tabela de páginas na memória física de modo arecuperar as informações de tradução de endereço para oendereço virtual desejado, se o endereço virtual gerar umaperda de TLB do TLB de nível mais alto.
3. Meio legível por computador, de acordo com areivindicação 1, no qual o processador inclui umregistrador de controle tendo um bit de configuração noqual o meio legível por computador tem nele armazenadasinstruções legíveis por computador adicionais para oprocessador, e no qual as instruções adicionais, quandolidas e implementadas pelo processador, fazem com que o bitde configuração determine se uma operação de gravação emTLB das informações de tradução de endereço recuperadasdeve ou não ocorrer.
4. Meio legível por computador, de acordo com areivindicação 3, no qual o processador inclui umapluralidade de níveis de TLB, e no qual as instruçõesadicionais, quando lidas e implementadas pelo processador,fazem com que o bit de configuração selecione, dentre apluralidade de níveis de TLB, o TLB de nível mais baixo e oTLB de nível mais alto a serem atualizados em resposta àúnica instrução de gravação no TLB.
5. Meio legível por computador, de acordo com areivindicação 1, no qual o processador inclui umapluralidade de níveis de TLB, no qual o meio legível porcomputador tem nele armazenadas instruções legíveis porcomputador adicionais para o processador, e no qual asinstruções adicionais, quando lidas e implementadas peloprocessador, fazem com que o processador utilize asinformações de tradução de endereço recuperadas da memóriapara selecionar, a partir da pluralidade de níveis de TLB,o TLB de nível mais baixo e o TLB de nível mais alto aserem atualizados em resposta à única instrução de gravaçãono TLB.
6. Método para atualizar mais de um nível de TLB,o método que compreende:acessar uma memória para recuperar informações detradução de endereço para um endereço virtual; eatualizar tanto um TLB de nível mais baixo quantoum TLB de nível mais alto utilizando uma única instrução degravação no TLB, por meio da gravação das informações detradução de endereço recuperadas da memória tanto no TLB denivel mais baixo quanto no TLB de nível mais alto.
7. Método, de acordo com a reivindicação 6,compreendendo adicionalmente o ato de receber do TLB denível mais baixo e do TLB de nível mais alto uma indicaçãode uma perda de TLB para um endereço virtual.
8. Método, de acordo com a reivindicação 5,compreendendo adicionalmente o ato de acessar o TLB denível mais baixo e o TLB de nível mais alto de modo abuscar informações de tradução de endereço para o endereçovirtual, as informações de tradução de endereço permitindoque o endereço virtual seja traduzido em um endereçofísico.
9. Método, de acordo com a reivindicação 6, noqual a memória é configurada para armazenar dados em umapluralidade de páginas, em que a memória contém uma tabelade páginas configurada para armazenar informações sobre umalocalização dentro da memória de cada uma da pluralidade depáginas, e no qual o ato de acessar a memória de modo arecuperar as informações de tradução de endereço compreenderecuperar as informações de tradução de endereço da tabelade páginas.
10. Equipamento compreendendo:uma memória;um buffer de previsão de tradução (TLB) de nívelmais baixo e um TLB de nível mais alto, o TLB de nível maisbaixo e o TLB de nível mais alto sendo configurados paraarmazenar uma pluralidade de entradas, cada uma dasentradas contendo informações de tradução de endereço quepermitem que um endereço virtual seja traduzido em umendereço físico correspondente; e,um controlador de TLB configurado para recuperarda memória uma informação de tradução de endereço para umendereço virtual desejado, se o endereço virtual desejadogerar uma perda de TLB do TLB de nível mais baixo e do TLBde nível mais alto, o controlador de TLB adicionalmenteconfigurado para atualizar tanto o TLB de nível mais baixoquanto o TLB de nível mais alto utilizando uma únicainstrução de gravação no TLB, por meio da gravação dasinformações de tradução de endereço recuperadas da memóriatanto no TLB de nível mais baixo quanto no TLB de nívelmais alto utilizando a única instrução de gravação no TLB.
11. Equipamento, de acordo com a reivindicação-10, no qual a memória é configurada para armazenar dados emuma pluralidade de páginas, e no qual a memória contém umatabela de páginas configurada para armazenar informaçõessobre uma localização dentro da memória de cada uma dentrea pluralidade de páginas.
12. Equipamento, de acordo com a reivindicação-10, no qual o controlador de TLB é adicionalmenteconfigurado para acessar inicialmente o TLB de nível maisbaixo de modo a buscar as informações de tradução deendereço desejadas, para acessar e buscar o TLB de nívelmais alto se as informações de tradução desejadas foremperdidas no TLB de nível mais baixo, e para acessar amemória de modo a recuperar as informações de tradução deendereço desejadas, se as informações de tradução desejadasestiverem perdidas TLB de nível mais alto.
13. Equipamento, de acordo com a reivindicação-10, no qual o controlador de TLB compreende um registradorde controle tendo um bit de configuração, e no qual o bitde configuração é configurado para selecionar, a partir deuma pluralidade de níveis de TLB, o TLB de nível mais baixoe o TLB de nível mais alto a serem atualizados utilizandouma única instrução de gravação em TLB.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/254,898 US20070094476A1 (en) | 2005-10-20 | 2005-10-20 | Updating multiple levels of translation lookaside buffers (TLBs) field |
| US11/254,898 | 2005-10-20 | ||
| PCT/US2006/060134 WO2007048134A1 (en) | 2005-10-20 | 2006-10-20 | Updating multiple levels of translation lookaside buffers (tlbs) field |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| BRPI0617527A2 true BRPI0617527A2 (pt) | 2011-07-26 |
Family
ID=37808178
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0617527-9A BRPI0617527A2 (pt) | 2005-10-20 | 2006-10-20 | atualizaÇço de méltiplos nÍveis de campo de buffers de previsço de traduÇço (tlbs) |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US20070094476A1 (pt) |
| EP (1) | EP1941374A1 (pt) |
| JP (1) | JP2009512943A (pt) |
| KR (1) | KR20080063512A (pt) |
| CN (1) | CN101326499A (pt) |
| BR (1) | BRPI0617527A2 (pt) |
| IL (1) | IL190972A0 (pt) |
| WO (1) | WO2007048134A1 (pt) |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE112005003736T5 (de) * | 2005-12-29 | 2008-11-13 | Intel Corporation, Santa Clara | Virtueller Übersetzungspuffer |
| US8397049B2 (en) * | 2009-07-13 | 2013-03-12 | Apple Inc. | TLB prefetching |
| US8386748B2 (en) * | 2009-10-29 | 2013-02-26 | Apple Inc. | Address translation unit with multiple virtual queues |
| EP2546748A1 (en) * | 2010-03-09 | 2013-01-16 | Fujitsu Limited | Information processing device, information processing method, and program |
| CN102360339A (zh) * | 2011-10-08 | 2012-02-22 | 浙江大学 | 一种提高tlb利用效率的方法 |
| CN102866957B (zh) * | 2012-07-31 | 2014-07-30 | 中国人民解放军国防科学技术大学 | 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 |
| CN104239237B (zh) * | 2013-06-20 | 2017-07-14 | 华为技术有限公司 | 一种tlb管理方法及装置 |
| US11106596B2 (en) * | 2016-12-23 | 2021-08-31 | Advanced Micro Devices, Inc. | Configurable skewed associativity in a translation lookaside buffer |
| US10127159B1 (en) * | 2017-07-13 | 2018-11-13 | International Business Machines Corporation | Link consistency in a hierarchical TLB with concurrent table walks |
| CN110941565B (zh) * | 2018-09-25 | 2022-04-15 | 北京算能科技有限公司 | 用于芯片存储访问的内存管理方法和装置 |
| US11243891B2 (en) * | 2018-09-25 | 2022-02-08 | Ati Technologies Ulc | External memory based translation lookaside buffer |
| CN112631962B (zh) * | 2019-09-24 | 2024-11-01 | 阿里巴巴集团控股有限公司 | 存储管理装置、存储管理方法、处理器和计算机系统 |
| CN117355816A (zh) | 2021-08-20 | 2024-01-05 | 英特尔公司 | 用于设备转译后备缓冲器预转译指令和对输入/输出存储器管理单元协议的扩展的装置、方法和系统 |
| CN114281720B (zh) * | 2021-12-14 | 2022-09-02 | 海光信息技术股份有限公司 | 处理器、用于处理器的地址翻译方法、电子设备 |
| US12287739B2 (en) * | 2022-12-09 | 2025-04-29 | Advanced Micro Devices, Inc. | Accessing a cache based on an address translation buffer result |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0138675A3 (en) * | 1983-09-22 | 1986-12-30 | Digital Equipment Corporation | Virtual address mapping using a 2-level translation buffer |
| JPH0642213B2 (ja) * | 1986-02-20 | 1994-06-01 | 富士通株式会社 | アドレス変換方式 |
| JPH08137756A (ja) * | 1994-11-07 | 1996-05-31 | Fuji Xerox Co Ltd | アドレス変換バッファ機構 |
| US6418521B1 (en) * | 1998-12-23 | 2002-07-09 | Intel Corporation | Hierarchical fully-associative-translation lookaside buffer structure |
| US6625714B1 (en) * | 1999-12-17 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Parallel distributed function translation lookaside buffer |
| US6553477B1 (en) * | 2000-11-06 | 2003-04-22 | Fujitsu Limited | Microprocessor and address translation method for microprocessor |
| EP1296237A1 (en) * | 2001-09-25 | 2003-03-26 | Texas Instruments Incorporated | Data transfer controlled by task attributes |
| EP1522923A3 (fr) * | 2003-10-08 | 2011-06-22 | STMicroelectronics SA | Architecture de processeur à plusieurs contextes d'exécution simultanés |
| US7426626B2 (en) * | 2005-08-23 | 2008-09-16 | Qualcomm Incorporated | TLB lock indicator |
-
2005
- 2005-10-20 US US11/254,898 patent/US20070094476A1/en not_active Abandoned
-
2006
- 2006-10-20 KR KR1020087011891A patent/KR20080063512A/ko not_active Ceased
- 2006-10-20 JP JP2008536650A patent/JP2009512943A/ja active Pending
- 2006-10-20 WO PCT/US2006/060134 patent/WO2007048134A1/en not_active Ceased
- 2006-10-20 EP EP06846129A patent/EP1941374A1/en not_active Withdrawn
- 2006-10-20 CN CNA200680046048XA patent/CN101326499A/zh active Pending
- 2006-10-20 BR BRPI0617527-9A patent/BRPI0617527A2/pt not_active IP Right Cessation
-
2008
- 2008-04-17 IL IL190972A patent/IL190972A0/en unknown
Also Published As
| Publication number | Publication date |
|---|---|
| CN101326499A (zh) | 2008-12-17 |
| KR20080063512A (ko) | 2008-07-04 |
| WO2007048134A1 (en) | 2007-04-26 |
| EP1941374A1 (en) | 2008-07-09 |
| US20070094476A1 (en) | 2007-04-26 |
| JP2009512943A (ja) | 2009-03-26 |
| IL190972A0 (en) | 2008-12-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7426626B2 (en) | TLB lock indicator | |
| US8239657B2 (en) | Address translation method and apparatus | |
| US5586283A (en) | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer | |
| US5003459A (en) | Cache memory system | |
| JP3718302B2 (ja) | 命令取り出し方法および装置 | |
| US4825412A (en) | Lockout registers | |
| BRPI0710171A2 (pt) | cache de instruções marcada virtualmente com comportamento marcado fisicamente | |
| JPH04232551A (ja) | 多重仮想アドレス変換方法及び装置 | |
| BRPI0806756A2 (pt) | método e equipamento para ajustar polìticas de cache em um processador | |
| BRPI0617527A2 (pt) | atualizaÇço de méltiplos nÍveis de campo de buffers de previsço de traduÇço (tlbs) | |
| JP2014078248A (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
| JPH0628262A (ja) | ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法 | |
| KR20180008507A (ko) | 캐시 태그 압축을 위한 방법 및 장치 | |
| TW201617886A (zh) | 指令快取記憶體轉譯管理 | |
| EP3553665A1 (en) | Non-volatile memory access method, device, and system | |
| BR112020023084A2 (pt) | pontos de interrupção de reprodução de rastreamento baseados em cache usando bits de campos de tags reservados | |
| EP0173909A2 (en) | Look-aside buffer least recently used marker controller | |
| US12596653B2 (en) | Memory migration and page fault avoidance | |
| US20250094353A1 (en) | Memory Migration and Page Fault Avoidance | |
| JPH01106149A (ja) | 情報処理装置 | |
| MX2008005091A (en) | Caching memory attribute indicators with cached memory data | |
| JPS583175A (ja) | 仮想記憶制御装置 | |
| JPH0245847A (ja) | 仮想アドレスキャッシュ制御装置 | |
| JPH02287740A (ja) | コンピュータシステムおよびキャッシュメモリの無効化方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B08F | Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette] |
Free format text: REFERENTE AS 4A E 5A ANUIDADES. |
|
| B08K | Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette] |
Free format text: REFERENTE AO DESPACHO 8.6 PUBLICADO NA RPI 2161 DE 05/06/2012. |