BRPI0906426B1 - Tradução de endereço dinâmica com gerenciamento de quadro - Google Patents
Tradução de endereço dinâmica com gerenciamento de quadro Download PDFInfo
- Publication number
- BRPI0906426B1 BRPI0906426B1 BRPI0906426-5A BRPI0906426A BRPI0906426B1 BR PI0906426 B1 BRPI0906426 B1 BR PI0906426B1 BR PI0906426 A BRPI0906426 A BR PI0906426A BR PI0906426 B1 BRPI0906426 B1 BR PI0906426B1
- Authority
- BR
- Brazil
- Prior art keywords
- address
- storage
- bit
- bits
- translation
- Prior art date
Links
Images
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/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Machine Translation (AREA)
- Storage Device Security (AREA)
- Devices For Executing Special Programs (AREA)
- Medicines Containing Material From Animals Or Micro-Organisms (AREA)
Abstract
TRADUÇÃO DE ENDEREÇO DINÂMICA COM GERENCIAMENTO DE QUADRO. São descritas uma chave de conjunto e uma função de gerenciamento de limpeza de quadro definidas para uma arquitetura de máquina de um sistema de computador. Em uma concretização, uma instrução de máquina é obtida que identifica um primeiro e segundo registro geral. É obtido do primeiro registro geral um campo de tamanho de quadro indicando se o quadro de armazenamento é um dentro um bloco de dados grande ou um bloco pequeno. É obtido do segundo registro geral um endereço de operando de um quadro de armazenamento mediante o qual a instrução deve ser realizada. Se o quadro de armazenamento é um bloco pequeno, a instrução é realizada somente no bloco pequeno. Se o quadro de armazenamento indicado é um bloco de dados grande, um endereço de operando de um primeiro bloco de dados inicial dentro do bloco de dados grande é obtido a partir do segundo registro geral. A instrução de gerenciamento de quadro é realizada em todos os blocos começando do primeiro bloco inicial.
Description
[0001] A presente invenção refere-se de modo geral a sistemas e metodos para tradugao de um enderego virtual em um sistema de computador e, mais particularmente, a sistemas e metodos que executam uma fungao de gerenciamento de quadro em um sistema de computador capaz de tradugao de enderego virtual.
[0002] A Tradugao Dinamica de Enderego prove a capacidade de interromper a execugao de um programa em um momento arbitrario, gravar ele e seus dados em armazenamento auxiliar, tal como um dispositivo de armazenamento de acesso direto, e, em um momento posterior, retornar o programa e os dados a diferentes locais no armazenamento principal para a retomada da execugao. A transferencia do programa e de seus dados entre o armazenamento principal e o auxiliar pode ser realizado em partes, e o retorno das informagoes para o armazenamento principal pode ocorrer em resposta a uma tentativa da CPU em acessa-las no momento necessario para execugao. Essas fungoes podem ser realizadas sem alteragao ou inspegao do programa e de seus dados, nao requerem qualquer convengao de programagao especifica no programa realocado e nao atrapalham a execute do programa, exceto quanto ao atraso de tempo envolvido.
[0003] Com suporte apropriado por um sistema operacional, a facilidade de tradugao dinamica de enderego pode ser usada para prover a um usuario um sistema em que o armazenamento parece ser maior do que o armazenamento principal que esta disponivel na configuragao. Esse armazenamento principal aparente e geralmente referido como armazenamento virtual, e os enderegos usados para designar locais no armazenamento virtual sao geralmente referidos como enderegos virtuais. O armazenamento virtual de um usuario pode exceder o tamanho do armazenamento principal que esta disponivel na configuragao e normalmente e mantido no armazenamento auxiliar. O armazenamento virtual e considerado como sendo composto de blocos de dados, geralmente chamados de paginas (tambem referidos como segmentos e regioes). Apenas os mais recentemente referidos a paginas do armazenamento virtual sao designados a ocupar blocos de armazenamento fisico principal. Quando o usuario se refere a paginas de armazenamento virtual que nao aparecem no armazenamento principal, elas sao trazidas em substituigao a paginas no armazenamento principal que tem menos probabilidade de ser necessarias. Em alguns casos, o armazenamento virtual e atribudo ao armazenamento principal por um longo periodo de tempo (ou permanentemente), independentemente se o armazenamento e referenciado. A troca de paginas de armazenamento pode ser realizada pelo sistema operacional sem o conhecimento do usuario.
[0004] Os programas usam enderegos (ou enderegos virtuais) para acessar o armazenamento virtual. O programa pode pesquisar e carregar (fetch) instrugoes do armazenamento virtual ou carregar dados ou armazenar dados do armazenamento virtual usando enderegos virtuais. Os enderegos virtuais associados a uma gama de armazenamentos virtuais definem um espago de enderego. Com suporte apropriado por um sistema operacional, a facilidade de tradugao dinamica de enderego pode ser usada para prover uma variedade de espagos de enderego. Esses espagos de enderego podem ser usados para prover graus de isolamento entre usuarios. Tal suporte pode consistir em espagos de enderego completamente diferentes para cada usuario, provendo assim isolamento completo, ou uma area compartilhada pode ser provida por mapeamento de uma porgao de cada espago de enderego para uma area unica de armazenamento comum. Ainda, instrugoes sao providas as quais permitem que um programa semiprivilegiado acesse mais de um espago de enderego.
[0005] A tradugao dinamica de enderego prove a tradugao de enderegos virtuais de varios espagos de enderego diferentes. Esses espagos de enderego sao chamados de espago de enderego primario, espago de enderego secundario e espagos de enderego especificos de registro de Acesso. Um programa privilegiado pode tambem fazer com que o espago de enderego de pagina inicial seja acessado. A tradugao dinamica de enderego pode ser especificada para instrugao e enderegos de dados gerados pela CPU.
[0006] E necessaria uma facilidade de tradugao dinamica de enderego melhorada que possa prover funcionalidade, capacidade e protegees adicionais ate agora desconhecidas na tecnica.
[0007] Sao providas uma configuragao de chave e uma clara fungao de gerenciamento de quadro definida para uma arquitetura de maquina de um sistema de computador tendo uma hierarquia de tabelas de tradugao usadas para tradugao do enderego virtual em um enderego real ou absoluto de um bloco de dados na memoria ou armazenamento principal. Enderegos reais podem ser submetidos a prefixagao para formar um enderego absoluto.
[0008] Em uma concretizagao exemplificativa, uma instrugao de maquina e obtida contendo um codigo de operagao (opcode) uma instrugao de gerenciamento de quadro tendo um primeiro campo identificando um primeiro registro geral e um segundo campo identificando um segundo registro geral. E obtido para o primeiro registro geral um campo de gerenciamento de quadro com um campo de chave tendo uma pluralidade de bits de protegao de acesso e um campo indicador de tamanho de bloco. Um enderego de operando de um quadro de armazenamento, no qual a instrugao de maquina deve ser executada, e obtido do segundo registro geral. O enderego de operando e um enderego absoluto para um grande bloco de dados ou um enderego real para um pequeno bloco de dados. Se a fungao de configuragao de chave de armazenamento for habilitada, os bits de protegao de acesso de armazenamento de cada chave de armazenamento associada ao bloco de dados determinado sao configurados para um valor dos bits de protegao de acesso do campo de chave. Se a fungao de limpeza estiver habilitada, cada bloco de dados enderegado pelo enderego de operando e limpo configurando todos os bytes de cada bloco de dados para zero.
[0009] Em outra concretizagao, a chave de armazenamento possui bits de protegao de armazenamento, os bits de referencia de armazenamento e bits de troca de armazenamento. O campo de chave tem um bit de protegao de pesquisa e carregamento, um bit de referencia e um bit de troca. O bloco grande de dados e maior do que o bloco pequeno de dados. Para o bloco pequeno de dados, um enderego de operando do bloco pequeno de dados tendo uma chave de armazenamento com uma pluralidade de bits de protegao de acesso de armazenamento e obtido a partir do segundo registro geral. Os bits de protegao de acesso do campo de chave sao configurados nos bits de protegao de acesso de armazenamento da chave de armazenamento.
[0010] A invenção sera descrita a seguir em conexao com algumas concretizagoes ilustradas. Deve ser entendido que varias alteragoes e modificagoes podem ser feitas por aqueles versados na tecnica sem se afastar do espirito ou escopo da invenção.
[0011] As figuras anexas, em que numeros de referenda iguais se referem a elementos identicos ou funcionalmente similares em todas as vistas separadas e que, juntamente com a descrigao detalhada abaixo, sao incorporadas em e formam parte da especificagao, servem para ilustrar mais detalhadamente varias concretizagoes e explicar varios principles e vantagens, todos de acordo coma presente invenção. As caracteristicas e vantagens acima e outras caracteristicas e vantagens do assunto divulgado neste documento se tornarao evidentes a partir da descrigao detalhada a seguir tomada em conjunto com os desenhos anexos, em que:
[0012] A figura 1 ilustra uma concretizaao de um sistema de computador hospedeiro, em que tradugao dinamica de enderego melhorada sera realizada;
[0013] A figura 2 prove um exemplo de sistema de computador hospedeiro emulado que emula o sistema de computador hospedeiro de uma arquitetura hospedeira;
[0014] A figura 3 ilustra uma concretizagao de como a palavra de status do programa e usada para determinar o ASCE efetivo para tradugao dinamica de enderego do enderego virtual;
[0015] A figura 4 ilustra uma concretizagao em que o ASCE efetivo determinado na figura 3 e usado para determinar a tabela de tradugao mais alta na hierarquia de tabelas de tradugao usada na tradugao do enderego virtual;
[0016] A figura 5A ilustra uma concretizagao do processo de tradugao dinamica de enderego de um enderego virtual usando uma hierarquia de tabelas de tradugao para o nivel de tabela de segmento;
[0017] A figura 5B ilustra uma continuagao da tradugao dinamica de enderego da figura 5A, em que o controle de formato (FC) de Entrada de Tabela de Segmento (STE) e zero;
[0018] A figura 5C ilustra uma continuagao da tradugao dinamica de enderego da figura 5A, em que o controle de formato (FC) de Entrada de Tabela de Segmento (STE) e um;
[0019] A figura 6 ilustra um fluxograma de uma concretizaao de tradugao dinamica de enderego melhorada (eDAT) para obter um campo de controle de formato em uma entrada de tabela de segmento;
[0020] A figura 7 ilustra uma continuagao do fluxograma do no 614 da figura 6;
[0021] A figura 8 ilustra uma continuagao do fluxograma do no 616 da figura 6;
[0022] A figura 9 ilustra um fluxograma de uma concretizagao de uma Fungao de Execugao de Gerenciamento de quadro (PFMF), em que as chaves de armazenamento indicadas sao configuradas;
[0023] A figura 10 ilustra um fluxograma de uma concretizagao de uma Fungao de Execugao de Gerenciamento de quadro (PFMF), em que os quadros indicados sao limpos.
[0024] Deve ser entendido que as afirmagoes feitas na especificagao do presente pedido nao necessariamente limitam qualquer uma das invengoes reivindicadas. Alem disso, algumas afirmagoes podem se aplicar a algumas caracteristicas da invenção, mas nao a outras. Salvo indicagao em contrario, elementos no singular podem estar no plural e vice-versa sem perda de generalidade.
[0025] Uma pessoa ordinariamente versada na tecnica seria prontamente familiar com armazenamento de endereamento em um ambiente computacional e usando bits em um campo de enderego ou registro para indicar diferentes estados e atuagao nesses estados. Alem disso, uma pessoa de medianamente versada na tecnica teria conhecimento na tecnica de programas de computador e conhecimento sobre os trabalhos e inter-relacionamentos entre componentes dos sistemas de computador.
[0026] E provida uma concretizagao exemplificativa de uma facilidade de Tradugao Dinamica de Enderego melhorada (DAT). Quando a facilidade de DAT melhorada e instalada e habilitada, a tradugao DAT pode produzir um enderego real de quadro de pagina ou um enderego absoluto de quadro de segmento, determinado pelo controle de formato de Entrada de Tabela de Segmento (STE) na entrada de tabela de segmento. Como usado neste documento, o termo “DAT melhorada se aplica” significa que todas as seguintes etapas sao verdadeiras: 1) A facilidade de EDAT esta instalada; 2) A facilidade de EDAT e habilitada atraves de bit de controle de registro 0 (CR0) 40; e, 3) O enderego e traduzido por meio de entrada de tabela por DAT.
[0027] Quando DAT melhorada se aplica, a seguinte fungao adicional esta disponivel no processo de DAT: um bit de protegao de DAT e adicionado a entradas de tabela de regiao, provendo fungao similar aos bits de protegao de DAT nas entradas de tabela de pagina e segmento.
[0028] Um controle de formato de STE e adicionado a entrada de tabela de segmento. Quando o controle de formato de STE e zero, DAT prossegue como atualmente definido, exceto que uma sobreposigao no registro de alteragao na entrada de tabela de pagina indica se a configuragao do bit de troca pode ser ignorada para a pagina.
[0029] Quando o controle de formato de STE e um, a entrada de tabela de segmento tambem contem o seguinte: - Um enderego absoluto de quadro de segmento (em vez de uma origem de tabela de pagina) especificando o local de armazenamento absoluto do bloco de 1 megabyte. - Bits de controle de acesso e um bit de protegao de pesquisa e carregamento que opcionalmente podem ser usados no lugar dos bits correspondentes nas chaves de armazenamento individual dos segmentos. - Um bit que determina a validade dos bits de controle de acesso e um bit de protegao de pesquisa e carregamento na entrada de tabela de segmento. - Uma sobreposigao no registro de alteragao que indica se a configuragao do bit de troca pode ser ignorada nas chaves de armazenamento individual dos segmentos.
[0030] Em referencia a figura 1, componentes representativos de um sistema de computador hospedeiro 100 sao representados. Outros arranjos de componentes podem tambem ser empregados em um sistema de computador que e bem conhecido na tecnica.
[0031] O ambiente computacional hospedeiro e preferencialmente baseado na z/Architecture® oferecida por International Business Machines Corporation (IBM®), Armonk, Nova York. A z/Architecture® e mais completamente descrita em: z/Architecture® Principles of Operation, IBM® Pub. N°. SA22-7832-05, 6aEdigao, (Abril, 2007), que e incorporado por referencia em sua totalidade neste documento. Ambientes computacionais com base na z/Architecture® incluem, por exemplo, eServer e zSeries®, ambos da IBM®.
[0032] O computador hospedeiro representativo 100 compreende uma ou mais CPUs 101 em comunicagao com armazenamento principal (memoria do computador 102) bem como interfaces de E/S para dispositivos de armazenamento 111 e redes 110 para comunicagao com outros computadores ou redes de area de armazenamento (SANs) e semelhantes. A CPU pode ter Facilidade de Tradugao Dinamica de Enderego (DAT) (fungao ou unidade) 103 para transformar enderegos de programa (enderegos virtuais) em enderego real de memoria. Uma facilidade de DAT tipicamente inclui o Buffer de tradugao look-aside (TLB) 107 para armazenamento temporario (caching) de tradugoes, de modo que acessos posteriores ao bloco de memoria de computador 102 nao gerem atrasos de tradugao de enderego. Tipicamente, uma memoria cache 109 e empregada entre a memoria de computador 102 e o processador 101. A memoria cache 109 pode ser hierarquica tendo uma memoria cache grande disponivel para mais de uma CPU e memorias cache menores e mais rapidas (nivel inferior) entre a memoria cache grande e cada CPU. Em algumas implementagoes, as memorias cache de nivel inferior sao divididas para prover memorias cache de nivel inferior separadas para pesquisa e carregamento de instrugoes e acessos de dados. Em uma concretizagao, uma instrugao e pesquisada e carregada da memoria 102 por uma unidade de pesquisa e carregamento de instrugao 104 atraves de uma memoria cache 109. A instrugao e decodificada em uma unidade de decodificagao de instrugao (106) e enviada (com outras instrugoes em algumas concretizagoes) a unidades de execugao de instrugao 108. Tipicamente, varias unidades de execugao 108 sao empregadas, por exemplo, uma unidade de execugao aritmetica, uma unidade de execugao de virgula flutuante e uma unidade de execugao de instrugao de ramificagao. A instrugao e executada pela unidade de execute, acessando operandos a partir de memoria ou Registros especificos de instrugoes conforme necessario. Se um operando tiver que ser acessado (carregado ou armazenado) da memoria 102, uma unidade de armazenamento de carga 105 tipicamente usa o acesso sob controle da instrugao sendo executada.
[0033] Em uma concretizagao, a invenção pode ser praticada por software (geralmente referido como Codigo Interno Licenciado, Firmware, Microcodigo, Milicodigo, Pico- codigo e semelhantes, qualquer um dos quais deve ser consistente com a presente invenção). O codigo de programa de software que incorpora a presente invenção e tipicamente acessado pelo processador, tambem conhecido como CPU (Unidade de Processamento Central) 101, do sistema de computador 100 a partir de meios de armazenamento de longo prazo 111, tais como uma unidade de CD-ROM, unidade de banda magnetica ou disco rigido. O codigo de programa de software pode ser incorporado em qualquer uma de uma variedade de mdias conhecidas para uso com um sistema de processamento de dados, tais como um disco flexivel, disco rigido ou CD- ROM. O codigo pode ser distribudo em tais mdias ou pode ser distribudo a usuarios a partir da memoria de computador 102 ou armazenamento de um sistema de computador em uma rede 110 a outros sistemas de computador para uso por usuarios desses outros sistemas.
[0034] Alternativamente, o codigo de programa pode ser incorporado na memoria 102 e acessado pelo processador 101 usando o barramento de processador. Tal codigo de programa inclui um sistema operacional que controla a fungao e interagao dos varios componentes de computador e um ou mais programas de aplicativo. O codigo de programa e normalmente paginado a partir de meios de armazenamento compactos 111 a memoria de alta velocidade 102, o que estiver disponivel para processamento pelo processador 101. As tecnicas e metodos para incorporagao do codigo de programa de software na memoria, em meios fisicos, e/ou distribuigao de codigo de software atraves de redes sao bem conhecidos e nao serao discutidos em detalhes neste documento. O codigo de programa, quando criado e armazenado em um meio tangivel (incluindo, mas nao limitado a, modulos de memoria eletronica (RAM), memoria flash, discos compactos (CDs), DVDs, Banda Magnetica e semelhantes, e geralmente referido como um “produto de programa de computador”. O meio de produto de programa de computador e tipicamente legivel por um circuito de processamento preferivelmente em um sistema de computador para execugao pelo circuito de processamento.
[0035] Na figura 2, um exemplo de um sistema de computador hospedeiro emulado 201 e provido, o qual emula um sistema de computador hospedeiro 100 de uma arquitetura hospedeira. No sistema de computador hospedeiro emulado 21, o processador hospedeiro (CPUs) 208 e um processador hospedeiro emulado (ou processador hospedeiro virtual) e compreende um processador de emulapao 207 tendo uma arquitetura de conjunto de instrugao nativo diferente daquela do processador 101 do Computador hospedeiro 100. O sistema de computador hospedeiro emulado 201 tem memoria 202 acessivel ao processador de emulapao 207. Na concretizagao exemplificativa, a memoria 207 e dividida em uma porpao de memoria de computador hospedeiro 102 e uma porpao de rotinas de emulapao 203 (rotinas que proveem a emulapao podem ser parte da memoria hospedeira. A memoria de computador hospedeiro 102 esta disponivel para programas do computador hospedeiro emulado 201 de acordo com a arquitetura de computador hospedeiro. O processador de emulapao 207 executa instrupoes nativas de um conjunto de instrupoes de arquitetura de uma arquitetura diferente daquela do processador emulado 208, as instrupoes nativas obtidas de memoria de rotinas de emulapao 203, e pode acessar uma instrupao de hospedeiro para execupao de um programa na memoria de computador hospedeiro 102 empregando uma ou mais instrupoes obtidas em uma rotina de Sequencia & Acesso/Decodificapao que pode decodificar as instrupoes de hospedeiro acessadas para determinar uma rotina de execute de instrugao nativa para emular a fungao da instrugao de hospedeiro acessada.
[0036] Outras facilidades que sao definidas para a arquitetura do sistema de computador hospedeiro 100 podem ser emuladas por Rotinas de Facilidades de Arquitetura, incluindo facilidades, tais como memoria cache de processador e suporte de Registros de Uso Geral, Registros de Controle, Tradugao Dinamica de Enderegos e Subsistema de E/S, por exemplo. As rotinas de emulagao podem tambem aproveitar a fungao disponivel no processador de emulagao 207 (tais como Registros Gerais e tradugao dinamica de enderegos virtuais) para melhorar o desempenho das rotinas de emulagao. Hardware Especial e Motores de Descarga podem tambem ser providos para auxiliar o processador 207 na emulagao da fungao do computador hospedeiro 100.
[0037] Em uma concretizagao, uma funcionalidade de instrugao de programa de CPU se comunica com uma pluralidade de Registros por um barramento de comunicagao. O barramento de comunicagao pode ser interno ou externo a CPU. Alguns Registros podem ser somente de leitura. Outro hardware e/ou software pode tambem ler/gravar para um ou mais dos Registros acessiveis pela CPU. Um codigo de operagao de instrugao (opcode) determina que tipo de registro deve ser usado em qualquer operagao de instrugao de maquina particular.
[0038] Instrugoes podem designar informagoes em um ou mais de 16 Registros gerais. Os Registros gerais podem ser usados como Registros de enderego de base e Registros de indice em enderego aritmetico e como acumuladores em operagoes logicas e aritmeticas. Cada registro contem 64 posigoes de bits. Os Registros gerais sao identificados pelos numeros 0-15 e sao designados por um campo R de quatro bits em uma instrugao. Algumas instrugoes proveem enderegamento de varios Registros gerais tendo varios campos R. Para algumas instrugoes, o uso de um registro geral especifico esta implicado em vez de explicitamente designado por um campo R da instrugao.
[0039] Para algumas operagoes, os bits 32-63 ou bits 0-63 de dois Registros gerais adjacentes sao acoplados, provendo um formato de 64-bit ou 128-bit, respectivamente. Nessas operagoes, o programa pode designar um registro de numero par, que contem os 32 ou 64 bits mais a esquerda (ordem alta). O registro de numero mais alto seguinte contem os 32 ou 64 bits mais a direita (ordem baixa). Alem de seu uso como acumuladores em operagoes logicas e aritmeticas, 15 dos 16 Registros gerais sao tambem usados como enderego de base e Registros de indice na geragao de enderegos. Nesses casos, os Registros sao representados por um campo X ou campo B de quatro bits em uma instrugao. Um valor de zero no campo X ou campo B especifica que nenhuma base ou indice deve ser aplicado, e, assim, o registro geral 0 nao pode ser designado como contendo um enderego de base ou indice.
[0040] Os Registros de controle proveem a manutengao e manipulagao de informagoes de controle fora da palavra de status de programa. A CPU possui 16 Registros de controle, cada um tendo 64 posigoes de bit. As posigoes de bit nos Registros sao atribudas a facilidades particulares no sistema, tal como registro de evento de programa, e sao usadas para especificar que uma operagao pode ocorrer ou para fornecer informagoes especiais requeridas pela facilidade. Os Registros de controle sao identificados pelos numeros 0-15 e sao representados por campos R de quatro bits nas instrugoes LOAD CONTROL e STORE CONTROL. Varios Registros de controle podem ser enderegados por essas instrugoes.
[0041] O registro de controle 1 contem o Elemento De Controle de Espago de Enderego Primario (PASCE). Em uma concretizagao, o registro de controle 1 tem um dos seguintes dois formatos, dependendo do bit de controle de espago real (R) no registro:
[0042] Os campos selecionados no Elemento de Controle de Espago de Enderego Primario (PASCE) sao alocados como seguem:
[0043] Origem de Tabela de Segmento ou Tabela de Regiao Primaria: Os bits 0-51 da designagao de tabela de segmento ou tabela de regiao primaria no registro de controle 1, com 12 zeros adicionados a direita, formam um enderego de 64 bits que designa o inicio da tabela de segmento ou tabela de regiao primaria. E imprevisivel se o enderego e real ou absoluto. Essa tabela e chamada de tabela de segmento ou tabela de regiao primaria uma vez que e usada para traduzir enderegos virtuais no espago de enderego primario.
[0044] Controle de Espago Real Primario (R) : Se o bit 58 do registro de controle 1 for zero, o registro contem uma designagao de tabela de segmento ou tabela de regiao. Se o bit 58 for um, o registro contem uma designagao de espago real. Quando o bit 58 e um, um valor do bit de segmento comum em uma representagao de buffer de tradugao look-aside da entrada de tabela de segmento impede a entrada e a copia de tabela de pagina de buffer de tradugao look-aside que ela representa de serem usadas ao traduzir referencias para o espago de enderego primario, mesmo com uma correspondencia entre a origem de token no registro de controle 1 e a origem de tabela na entrada de buffer de tradugao look-aside.
[0045] Controle de Tipo de Designagao Primaria (DT): Quando R e zero, o tipo de designagao de tabela no registro de controle 1 e especificado pelos bits 60 e 61 no registro, como segue:
[0046] Quando R e zero, os bits 60 e 61 devem ser 11 binario quando uma tentativa e feita de utilizar o PASCE para traduzir um enderego virtual em que o bit mais a esquerda esta nas posigoes de bit 0-10 do enderego. Da mesma forma, os bits 60 e 61 devem ser 11 ou 10 binario quando o bit mais a esquerda esta nas posigoes de bit 11-21 do enderego, e eles devem ser 11, 10 ou 01 binario quando o bit mais a esquerda esta nas posigoes de bit 22-32 do enderego. Ao contrario, uma excegao do tipo ASCE e reconhecida.
[0047] Comprimento de Tabela de Segmento ou Tabela de Regiao Primaria (TL): Os bits 62 e 63 da designagao de tabela de regiao primaria ou designagao de tabela de segmento no registro de controle 1 especificam o comprimento da tabela de segmento ou tabela de regiao primaria em unidades de 4.096 bytes, tornando assim o comprimento da tabela de segmento ou tabela de regiao variavel em varias das 512 entradas. O comprimento da tabela de segmento ou tabela de regiao primaria, em unidades de 4.096 bytes, e um mais do que o valor de TL. Os conteudos do campo de comprimento sao usados para estabelecer se a porgao do enderego virtual (RFX, RSX, RTX ou SX) a ser traduzida por meio da tabela designa uma entrada que fique dentro da tabela.
[0048] Origem de Token de Espago Real Primario: Bits 0-51 da designagao de espago real primario no registro de controle 1, com 12 zeros adicionados a direita, formam um enderego de 64 bits que pode ser usado na formagao e utilizagao de entradas de buffer de tradugao look-aside que proveem uma tradugao real igual a virtual para referencias ao espago de enderego primario. Embora esse enderego seja usado somente como um token e nao seja usado para executar uma referencia de armazenamento, ele ainda deve ser um enderego valido; ao contrario, uma entrada incorreta de buffer de tradugao look-aside pode ser usada quando os conteudos de registro de controle 1 sao usados.
[0049] Os seguintes bits de registro de controle 1nao sao atribudos e sao ignorados: bits 52, 53 e 59 se o registro contem uma designagao de tabela de regiao ou designagao de tabela de segmento, e bits 52, 53 e 59-63 se o registro contem uma designagao de espago real.
[0050] O registro de controle 7 contem o Elemento de Controle de Enderego de Espago Secundario (SASCE). Em uma concretizagao, o registro de controle 7 tem um dos seguintes dois formatos, dependendo do bit de controle de espago real (R) no registro:
[0051] O registro de controle 13 contem o Elemento de Controle de Espago de Enderego de Pagina Inicial (HASCE. Em uma concretizagao, o registro de controle 13 tem um dos seguintes dois formatos, dependendo do bit de controle de espago real (R) no registro:
[0052] A CPU tem 16 Registros de acesso numerados de 0-15. Um registro de acesso consiste em posigoes de 32 bits contendo uma especificagao indireta de um ASCE. Um ASCE e um parametro usado pelo mecanismo de tradugao dinamica de enderego (DAT) para traduzir referencias a um espago de enderego correspondente. Quando a CPU esta em um modo chamado modo de registro de acesso (controlado por bits na palavra de status de programa), um campo de instrugao B, usado para especificar um enderego logico para uma referenda de operando de armazenamento, designa um registro de acesso, e o ASCE especificado pelo registro de acesso e usado pela DAT para a referencia sendo feita. Para algumas instrugoes, um campo R e usado em vez de um campo B. Instrugoes sao providas para carregamento e armazenamento dos conteudos dos Registros de acessos e para mover os conteudos de um registro de acesso para outro.
[0053] Cada um dos Registros de acesso 1-15 pode designar qualquer espago de enderego, incluindo o espago de instrugao atual (o espago de enderego primario). O registro de acesso 0 designa o espago de instrugao primaria. Quando um dos Registros de acesso 1-15 e usado para designar um espago de enderego, a CPU determina qual espago de enderego e representado por tradugao dos conteudos do registro de acesso. Quando o registro de acesso 0 e usado para designar um espago de enderego, a CPU trata o registro de acesso como designagao do espago de instrugao primaria, e nao examina os conteudos reais do registro de acesso. Portanto, os 16 Registros de acessos podem designar, a qualquer momento, o espago de instrugao primaria e um maximo de 15 outros espagos.
[0054] A palavra de status de programa inclui o enderego de instrugao, codigo de condigao e outras informagoes usadas para controlar o sequenciamento de instrugao e para determinar o estado da CPU. A palavra de status de programa ativa ou de controle e chamada de palavra de status de programa atual. Ela rege o programa que estiver sendo atualmente executado.
[0055] A CPU tem uma capacidade de interrupgao, a qual permite que a CPU troque rapidamente para outro programa em resposta a condigoes excepcionais e estimulos externos. Quando uma interrupgao ocorre, a CPU coloca a palavra de status de programa atual em um local de armazenamento atribudo, chamado de local de palavra de status de programa antigo, para a classe de interrupgao particular. A CPU pesquisa e carrega uma nova palavra de status de programa a partir de um segundo local de armazenamento atribudo. Essa nova palavra de status de programa determina o programa seguinte a ser executado. Ao finalizar o processamento da interrupgao, o programa que gerencia a interrupgao pode recarregar a palavra de status de programa antiga, tornando- a novamente a palavra de status de programa atual, de modo que o programa interrompido possa continuar.
[0056] Essas sao as seis classes de interrupgao: externa, E/S, verificagao de maquina, programa, reinicializagao e chamada de supervisor. Cada classe tem um par distinto de palavra de status de programa antiga e novos locais de palavra de status de programa permanentemente atribudos no armazenamento real.
[0057] A palavra de status de programa atual na CPU contem informagoes necessarias para a execugao do programa atualmente ativo. A palavra de status de programa tem 128 bits de comprimento e inclui o enderego de instrugao, codigo de condigao e outros campos de controle. Em geral, a palavra de status de programa e usada para controlar o sequenciamento de instrugao e para manter e indicar boa parte do status da CPU em relagao ao programa esta sendo atualmente executado. Informagoes de status e controle adicionais estao contidas em Registros de controle e armazenamento locais permanentemente atribudos. O status da CPU pode ser alterado carregando uma nova palavra de status de programa ou parte de uma palavra de status de programa.
[0058] O controle e alterado durante uma interrupgao da CPU armazenando a palavra de status de programa atual, de modo a preservar o status da CPU e, em seguida, carregando uma nova palavra de status de programa. A execugao de LOAD PSW ou LOAD PSW EXTENDED, ou a conclusao bem sucedida da sequencia de carregamento de programa inicial, introduz uma nova palavra de status de programa. O enderego de instrugao e atualizado por execugao de instrugao sequencial e substitudo por ramificagoes bem sucedidas. Outras instrugoes sao providas as quais operam em uma porgao da palavra de status de programa.
[0059] Uma palavra de status de programa nova ou modificada se torna ativa (ou seja, as informagoes introduzidas na palavra de status de programa atual assumem controle da CPU) quando a interrupgao ou a execugao de uma instrugao que altera a palavra de status de programa esta concluda. A interrupgao para registro de Evento de Programa (PER) associada a uma instrugao que altera a palavra de status de programa ocorre sob controle da mascara PER que e efetiva no inicio da operagao. Os bits 0-7 da palavra de status de programa sao coletivamente referidos como a mascara do sistema. Em uma concretizagao, a palavra de status de programa tem o seguinte formato:
[0060] O seguinte e um breve resumo das fungoes de campos selecionados de palavras de status de programa.
[0061] Modo DAT (T): O bit 5 controla se ocorre tradugao dinamica de enderego implicita de enderegos logicos e de instrugao usados para acessar armazenamento. Quando o bit 5 e zero, a DAT esta desligada e enderegos logicos e de instrugao sao tratados como enderegos reais. Quando o bit 5 e um, a DAT esta ligada, e o mecanismo de tradugao dinamica de enderego e invocado.
[0062] Chave PSW: Os bits 8-11 formam a chave de acesso para referencias de armazenamento pela CPU. Se a referencia estiver sujeita a protegao controlada por chave, a chave PSW e combinada com a chave de armazenamento quando informagoes sao armazenadas ou quando informagoes sao pesquisadas e carregadas de um local que e protegido contra pesquisa e carregamento. No entanto, para um dos operandos de cada uma de MOVE TO PRIMARY, MOVE TO SECONDARY, MOVE WITH KEY, MOVE WITH SOURCE KEY e MOVE WITH DESTINATION KEY, uma chave de acesso especificada como um operando e usada em vez da chave PSW.
[0063] Controle de Espago de Enderego (AS): Os bits 16 e 17, em conjunto com o bit 5 da Palavra de status de Programa, controla o modo de tradugao.
[0064] Codigo de Condigao (CC): Os bits 18 e 19 sao os dois bits do codigo de condigao. O codigo de condigao e configurado para 0, 1, 2 ou 3, dependendo do resultado obtido na execugao de determinadas instrugoes. A maioria das operagoes logicas e aritmeticas, bem como algumas outras operagoes, definem o codigo de condigao. A instrugao BRANCH ON CONDITION pode especificar qualquer selegao dos valores de codigo de condigao como um criterio para ramificagao.
[0065] Enderego de instrugao: Os bits 64-127 da palavra de status de programa sao o enderego de instrugao. Esse enderego designa o local do byte mais a esquerda da instrugao seguinte a ser executada, a menos que a CPU esteja no estado de espera (o bit 14 da palavra de status de programa e um).
[0066] Para fins de enderegamento de armazenamento principal, tres tipos basicos de enderego sao reconhecidos: absoluto, real e virtual. Os enderegos sao distinguidos na base das transformagoes que sao aplicadas ao enderego durante um acesso de armazenamento. A tradugao de enderego converte um enderego virtual em um enderego real. A prefixagao converte um enderego real em um enderego absoluto. Alem dos tres tipos basicos de enderegos, tipos adicionais sao definidos, os quais sao tratados como um ou outro dos tres tipos basicos, dependendo da instrugao e do modo atual.
[0067] Um enderego absoluto e o enderego atribudo a um local de armazenamento principal. Um enderego absoluto e usado para um acesso de armazenamento sem quaisquer transformagoes realizadas nele. O subsistema de canal e todas as CPUs na configuragao se referem a um local de armazenamento principal compartilhado usando o mesmo enderego absoluto. O armazenamento principal disponivel sao geralmente enderegos absolutos contiguos atribudos comegando em 0, e os enderegos sao atribudos em blocos de 4kilobytes completos complete em limites integrais. Uma excegao e reconhecida quando uma tentativa e feita de utilizar um enderego absoluto em um bloco que nao tenha sido atribudo a locais fisicos. Em alguns modelos, controles de reconfiguragao de armazenamento podem ser providos, os quais permitem ao operador alterar a correspondencia entre enderegos absolutos e locais fisicos. No entanto, a qualquer momento, um local fisico nao e associado a mais do que enderego absoluto. O armazenamento que consiste em locais de byte sequenciados de acordo com seus enderegos absolutos e referido como armazenamento absoluto.
[0068] Um enderego real identifica um local no armazenamento real. Quando um enderego real e usado para um acesso para o armazenamento principal, ele e convertido, por meio de prefixagao, para formar um enderego absoluto. A qualquer momento, existe um mapeamento de enderego real para enderego absoluto para cada CPU na configuragao. Quando um enderego real e usado por uma CPU para acessar o armazenamento principal, ele pode ser convertido para um enderego absoluto por prefixagao. A transformagao particular e definida pelo valor no registro de prefixo para a CPU. O armazenamento que consiste em locais de byte sequenciados de acordo com seus enderegos reais e referido como armazenamento real.
[0069] Um enderego virtual identifica um local no armazenamento virtual. Quando um enderego virtual e usado para um acesso ao armazenamento principal, ele e traduzido por meio de tradugao dinamica de enderego, seja em um enderego real que pode ser submetido a prefixagao para formar um enderego absoluto ou diretamente em um enderego absoluto.
[0070] Um enderego virtual primario e um enderego virtual que deve ser traduzido por meio do Elemento de Controle de Espago de Enderego Primario (PASCE). Enderegos logicos sao tratados como enderegos virtuais primarios quando no modo de espago primario. Enderegos de instrugao sao tratados como enderegos virtuais primarios quando no modo de espago primario, modo de espago secundario ou modo de registro de acesso. O primeiro enderego de operando de MOVE TO PRIMARY e o segundo enderego de operando de MOVE TO SECONDARY sao tratados como enderegos virtuais primarios.
[0071] Um enderego virtual secundario e um enderego virtual que deve ser traduzido por meio do Elemento de Controle de Enderego de Espago Secundario (SASCE). Enderegos logicos sao tratados como enderegos virtuais secundarios quando no modo de espago secundario. O segundo enderego de operando de MOVE TO PRIMARY e o primeiro enderego de operando de MOVE TO SECONDARY sao tratados como enderegos virtuais secundarios.
[0072] Um enderego virtual especificado por AR e um enderego virtual que deve ser traduzido por meio de um Elemento de Controle de Espago de Enderego especificado por registro de Acesso. Enderegos logicos sao tratados como enderegos especificados por AR quando no modo de registro de acesso.
[0073] Um enderego virtual de pagina inicial e um enderego virtual que deve ser traduzido por meio do Elemento de Controle de Espago de Enderego de Pagina Principal (HASCE). Enderegos logicos e enderegos de instrugao sao tratados como enderegos virtuais de pagina principal quando no modo de espago de pagina principal.
[0074] Enderegos de instrugao usados para pesquisar e carregar instrugoes do armazenamento sao chamados de enderegos de instrugao. Os enderegos de instrugao sao tratados como enderegos reais no modo real, como enderegos virtuais primarios no modo de espago primario, modo de espago secundario ou modo de registro de acesso, e como enderegos virtuais de pagina principal no modo de espago de pagina principal. O enderego de instrugao na palavra de status de programa atual e o enderego alvo de EXECUTE sao enderegos de instrugao.
[0075] Em algumas situagoes, e conveniente usar o termo “enderego efetivo”. Um enderego efetivo e o enderego que existe antes de qualquer transformagao por tradugao dinamica de enderego ou prefixagao ser realizada. Um enderego efetivo pode ser especificado diretamente em um registro ou pode resultar de aritmetica de enderego. Aritmetica de enderego e a adigao da base e deslocamento ou da base, indice e deslocamento.
[0076] A prefixagao prove a capacidade de atribuir a faixa de enderegos reais 0-8191 a um bloco diferente no armazenamento absoluto para cada CPU, permitindo assim que mais de uma CPU compartilhando o armazenamento principal opere simultaneamente com um minimo de interferencia, especialmente no processamento de interrupgoes. A prefixagao faz com que enderegos reais na faixa 0-8191 correspondam um para um ao bloco de enderegos absolutos de 8K bytes (a area de prefixo) identificados pelo valor nas posigoes de bit 050 do registro de prefixo para uma CPU, e o bloco de enderegos reais identificados por aquele valor no registro de prefixo para corresponder um para um a enderegos absolutos 0-8191. Os enderegos reais remanescentes sao os mesmos que os enderegos absolutos correspondentes. Essa transformagao permite que cada CPU acesse todo o armazenamento principal, incluindo os primeiros 8K bytes e os locais representados pelos Registros de prefixo de outras CPUs.
[0077] O prefixo e uma quantidade de 51-bits contida nas posigoes de bit 0-50 do registro de prefixo. Em uma concretizagao, o registro de prefixo tem o seguinte formato:
[0078] Quando prefixagao e aplicada, o enderego real e transformado em um enderego absoluto usando uma das seguintes regras, dependendo dos bits 0-50 do enderego real: Bits 0-50 do enderego, se forem todos zeros, sao substitudos com bits 0-50 do prefixo. Bits 0-50 do enderego, se forem iguais aos bits 0-50 do prefixo, sao substitudos com zeros. Bits 0-50 do enderego, se nem todos forem zeros e nem iguais aos bits 0-50 do prefixo, permanecem inalterados.
[0079] Apenas o enderego apresentado para armazenamento e traduzido por prefixagao. Os conteudos da fonte do enderego permanecem inalterados.
[0080] A distingao entre enderegos reais e absolutos e feita mesmo quando o registro de prefixo contem todos os zeros, em cujo caso um enderego real e seu enderego absoluto correspondente sao identicos.
[0081] A relagao entre enderegos reais e absolutos e graficamente representada como segue: (1) Enderegos reais em que os bits 0-50 sao iguais aos bits 0-50 do prefixo para esta CPU (A ou B (2) Enderegos absolutos do bloco que contem para esta CPU (A ou B) os locais reais 0-8191
[0082] Um espago de enderego e uma sequencia consecutiva de numeros inteiros (enderegos virtuais); juntamente com os parametros de transformagao especificos que permitem que cada numero seja associado a um local de 5 bytes no armazenamento. A sequencia inicia em zero e prossegue da esquerda para a direita.
[0083] Quando um enderego virtual e usado por uma CPU para acessar o armazenamento principal, e primeiramente convertido, por meio de tradugao dinamica de enderego (DAT), para um enderego real ou absoluto. Enderegos reais podem ser ainda submetidos a prefixagao para formar um enderego absoluto. DAT pode usar uma primeira tabela de regiao, segunda tabela de regiao, terceira tabela de regiao, tabela de segmento e uma tabela de pagina como parametros de transformagao. A designagao (origem e comprimento) da tabela de nivel mais alto para um espago de enderego especifico e chamada de um Elemento de Controle de Espago de Enderego (ASCE), e e encontrado para uso por DAT em um registro de controle ou como especificado por um registro de acesso. Alternativamente, o ASCE para um espago de enderego pode ser uma designagao de espago real, que indica que DAT e para traduzir o enderego virtual simplesmente tratando-o como um enderego real e sem usar quaisquer tabelas.
[0084] DAT usa, em diferentes momentos, o ASCE em diferentes Registros de controle ou especificado pelos Registros de acessos. A escolha e determinada pelo modo de tradugao especificado na palavra de status de programa atual. Quatro modos de tradugao estao disponiveis: modo de espago primario, modo de espago secundario, modo de registro de acesso e modo de espago de pagina principal. Diferentes espagos de enderego sao enderegaveis dependendo do modo de tradugao.
[0085] A qualquer momento em que a CPU estiver no modo de espago primario ou modo de espago secundario, a CPU pode traduzir enderegos virtuais pertencentes a dois espagos de enderego — o espago de enderego primario e o espago de enderego secundario. A qualquer momento em que a CPU estiver no modo de registro de acesso, ela pode traduzir enderegos virtuais de ate 16 espagos de enderego — o espago de enderego primario e ate 15 espagos de enderego especificados por AR. A qualquer momento em que a CPU estiver no modo de espago de pagina principal, ela pode traduzir enderegos virtuais do espago de enderego de pagina inicial.
[0086] O espago de enderego primario e identificado como tal porque consiste em enderegos virtuais primarios, que sao traduzidos por meio do Elemento de Controle de Espago de Enderego Primario (PASCE). Da mesma forma, o espago de enderego secundario consiste em enderegos virtuais secundarios traduzidos por meio do Elemento de Controle de Enderego de Espago Secundario (SASCE). Os espagos de enderego especificados por AR consistem em enderegos virtuais especificados por AR traduzidos por meio do Elemento de Controle de Espago de Enderego Especificado por AR (ASCE especificado por AR), e o espago de enderego de pagina inicial consiste em enderegos virtuais de pagina principal traduzidos por meio do Elemento de Controle de Espago de Enderego de Pagina Principal (HASCE). Os ASCEs primarios e secundarios estao nos Registros de controle 1 e 7, respectivamente. Os ASCEs especificados por AR podem estar nos Registros de controle 1 e 7, ou em entradas de tabela chamadas de segundas entradas de tabela de ASN. O HASCE esta no registro de controle 13.
[0087] A tradugao dinamica de enderego e o processo de tradugao de um enderego virtual (durante uma referenda de armazenamento, por exemplo) no enderego de memoria principal correspondente (enderego real ou enderego absoluto na concretizagao). O enderego virtual pode ser um enderego virtual primario, enderego virtual secundario, enderego virtual especificado por registro de Acesso ou um enderego virtual de pagina principal. Esses enderegos sao traduzidos por meio do PASCE, SASCE, ASCE especificado por AR ou o HASCE, respectivamente. Apos selegao do ASCE apropriado, o processo de tradugao e o mesmo para todos os quatro tipos de enderego virtual.
[0088] Um enderego efetivo e o enderego (enderego virtual) que existe antes de qualquer transformagao por tradugao dinamica de enderego ou prefixagao ser realizada. Os tres bits na palavra de status de programa que controlam a tradugao dinamica de enderego sao o bit 5, o bit do modo de DAT e os bits 16 e 17, os bits de controle de espago de enderego. Quando o bit do modo de DAT e zero, entao, DAT esta desligada e a CPU esta no modo real. Quando o bit do modo de DAT e um, entao, DAT esta ligada e a CPU esta no modo de tradugao representado pelos bits de controle de espago de enderego: binario 00 designa o modo de espago primario, binario 01 designa o modo de registro de acesso, binario 10 designa o modo de espago secundario e binario 11 designa o modo de espago de pagina principal. Os varios modos sao mostrados abaixo juntamente com o tratamento dos enderegos em cada modo.
[0089] A palavra de status de programa e uma palavra de 128 bits, que, em parte, prove 2 bits que indicam o modo de endereamento. Em uma concretizagao, o bit 31 e o bit de Modo de Enderegamento Estendido (EA) e o bit 32 e o bit de Modo de Enderegamento de Base (BA). Esses dois bits indicam o tamanho de enderegos. O estado de cada um desses dois bits e binario (1 ou 0). Se o bit de EA for 0 e o bit de BA for 0, entao, enderegamento de 24 bits e indicado. Se o enderegamento de 24 bits for indicado, os bits 40-63 de uma palavra de 64 bits (uma entidade de 64 bits e geralmente chamada de palavra dupla) e onde o enderego esta localizado. Quando o enderego de instrugao ocupa os segundos 64 bits de uma entidade de 128 bits (uma palavra quadrupla), as posigoes de bit na palavra de status de programa sao como seguem. Em um modo de 24 bits, o enderego de instrugao esta nos bits 104-127 da palavra de status de programa. No modo de 31 bits, o enderego de instrugao esta nos bits 97-127 da palavra de status de programa. No modo de 64 bits, o enderego de instrugao esta nos bits 64-127 da palavra de status de programa. Se o bit de EA for 0 e o bit de BA for 1, entao, o endereamento de 31 bits e indicado. A palavra de 64 bits adequada contem um enderego de 31 bits localizado nas posigoes de bits 33-63. Se o bit de EA for 1 e o bit de BA for 1, entao, os bits 0-63, que sao os 64 bits inteiros, de uma palavra de 64 bits contem o enderego. Ao contrario, uma condigao de excegao e indicada. Uma vez que o modo de enderegamento tenha sido obtido, o ASCE precisa ser determinado.
[0090] Referencia e agora feita a figura 3 que ilustra uma concretizagao de como a palavra de status de programa e usada para determinar o Elemento de Controle de Espago de Enderego (ASCE) efetivo para tradugao dinamica de enderego do enderego virtual. O ASCE pode especificar, por exemplo, um espago de enderego de 2 Gigabytes (Giga = 230). Ou pode especificar, por exemplo, um espago de enderego de 4 Terabytes (Tera = 240), 8 Petabytes (Peta = 250) ou 16 Exabytes (Exa = 260). Ou, pode especificar uma designagao de espago real. Uma designagao de espago real faz com que o enderego virtual seja tratado como um enderego real no armazenamento sem referenciar uma ou mais tabelas de tradugao de enderego.
[0091] A palavra de status de programa 300 contem um bit de tradugao (T) 302 e bits de Espago de Enderego (AS) 304. Em 306, se o bit de tradugao (T) for zero, entao, o enderego e um enderego real 326. Se, em 308, o Espago de Enderego (AS) for igual a zero (binario 00), entao, o ASCE efetivo para esse enderego virtual e o Elemento de Controle de Espago de Enderego Primario (PASCE) 310. Se, em 312, o Espago de Enderego (AS) for igual a um (binario 01), entao, o ASCE efetivo e o registro de Elemento de Controle de Espago de Enderego especificado por registro de Acesso 314. Se, em 316, um Espago de Enderego (AS) for igual a dois (binario 10), entao, o ASCE efetivo e o Elemento de Controle de Enderego de Espago Secundario (SASCE) 318. Ao contrario, o Espago de Enderego (AS) igual a tres (binario 11) e o ASCE efetivo e o Elemento de Controle de Espago de Enderego de Pagina Principal (HASCE) 322.
[0092] Apos a selegao do ASCE efetivo, o processo de tradugao dinamica de enderego e preferencialmente o mesmo para todos os quatro tipos de enderegos virtuais.
[0093] Uma designagao de tabela de segmento ou designagao de tabela de regiao faz com que a tradugao seja executada por meio de tabelas estabelecidas pelo sistema operacional em armazenamento real ou absoluto. Uma designagao de espago real faz com que o enderego virtual simplesmente seja tratado como um enderego real, sem o uso de tabelas no armazenamento.
[0094] No processo de tradugao quando usando uma designagao de tabela de segmento ou uma designagao de tabela de regiao, tres tipos de unidades de informagoes sao reconhecidos — regioes, segmentos e paginas. Uma regiao e um bloco de enderegos virtuais sequenciais abrangendo 2Gigabytes e comegando em um limite de 2Gigabytes. Um segmento e um bloco de enderegos virtuais sequenciais abrangendo 1Megabyte e comegando em um limite de 1Megabyte. Uma pagina e um bloco de enderegos virtuais sequenciais abrangendo 4Kilobytes e comegando em um limite de 4Kilobytes. Formato de Enderego Virtual
[0095] A tradugao de um enderego virtual pode envolver referenciar uma pluralidade de tabelas de tradugao de uma hierarquia de tabelas de tradugao para obter um enderego real ou absoluto. O enderego real pode ser ainda submetido a uma operagao de prefixagao para formar um enderego absoluto. O enderego virtual contem indices para entradas em tabelas de tradugao na hierarquia de tabelas de tradugao. O enderego virtual, por conseguinte, e dividido em quatro campos principais. Os bits 0-32 sao chamados de indice de regiao (RX), os bits 33-43 sao chamados de indice de segmento (SX), os bits 44-51 sao chamados de indice de pagina (PX) e os bits 52-63 sao chamados de indice de byte (BX). Em uma concretizagao, o enderego virtual tem o seguinte formato:
[0096] Como determinado pelo ASCE, um espago de enderego virtual pode ser um espago de 2 Gigabytes que consiste em uma regiao, ou pode ser ate um espago de 16 Exabytes que consiste em regioes de ate 8 Gigabytes. A parte de RX de um enderego virtual que se aplica a um espago de enderego de 2 Gigabytes deve ser toda de zeros; ao contrario, uma excegao e reconhecida. A parte RX de um enderego virtual e sozinha dividida em tres campos. Os bits 0-10 sao chamados de primeiro indice de regiao (RFX), os bits 11-21 sao chamados de segundo indice de regiao (RSX) e os bits 22-32 sao chamados de terceiro indice de regiao (RTX) . Em uma concretizagao, os bits 0-32 do enderego virtual tem o seguinte formato:
[0097] Um enderego virtual, em que o RTX e a parte significante mais a esquerda (um enderego de 42 bits), e capaz de enderegar 4 Terabytes (2048 regioes), um em que o RSX e a parte significante mais a esquerda (um enderego de 53 bits) e capaz de enderegar 8 Petabytes ((4.193.044 regioes), e um em que o RFX e a parte significante mais a esquerda (um enderego de 64 bits) e capaz de enderegar 16 Exabytes (8.589.934.592 regioes).
[0098] Um enderego virtual em que o RX e zero pode ser traduzido em enderegos reais por meio de duas tabelas de tradugao: uma tabela de segmento e uma tabela de pagina. Com a facilidade EDAT habilitada, a tradugao pode ser concluda com somente a tabela de segmento. O RFX pode ser nao zero, em cujo caso uma primeira tabela de regiao, uma segunda tabela de regiao e terceira tabela de regiao sao requeridas. Se o RFX e zero, mas o RSX puder ser nao zero, a segunda tabela de regiao e terceira tabela de regiao sao requeridas. Se o RFX e RSX sao zero, mas o RTX puder ser nao zero, a terceira tabela de regiao e requerida.
[0099] Uma excegao e reconhecida se o ASCE para um espago de enderego nao designar o nivel mais alto de tabela (comegando com a primeira tabela de regiao e continuando para baixo para a tabela de segmento) necessario para traduzir uma referenda para o espago de enderego. Tradugao Dinamica do Enderego Virtual
[0100] Referencia e agora feita a figura 4 ilustrando uma concretizaao em que o ASCE efetivo determinado na figura 3 e usado para determinar a primeira tabela de tradugao na hierarquia de tabelas de tradugao usadas na tradugao do enderego virtual.
[0101] Em uma concretizagao, o registro de controle 1 (CR1) contem o PASCE. O registro de controle 7 (CR7) contem o SASCE. O registro de controle 13 (CR13) contem o HASCE e uma Segunda Entrada de Tabela de Espago de Enderego (ASTE) que e derivada pelo processo de Tradugao de registro de Acesso (ART) contem um Elemento de Controle de Espago de Enderego especificado por AR. Um ASCE efetivo 400 e selecionado de um desses locais.
[0102] Uma primeira porgao do ASCE efetivo 400 contem uma origem de tabela 402 que contem um enderego de origem designando uma primeira tabela de regiao, uma segunda tabela de regiao, uma terceira tabela de regiao ou uma tabela de segmento. A origem de tabela (bits 0..51) e anexa com 12 binario zero para formar um enderego de origem de 64 bits da tabela de tradugao mais alta na hierarquia de tabelas de tradugao a ser usado na tradugao do enderego virtual. O ASCE efetivo 400 tambem contem um bit de controle de espago real (R) 404 e bits DT 406. Se o bit de controle de espago real (R) e zero, entao, os bits DT sao decodificados pelo seletor 408 para determinar qual enderego de origem particular e a origem de tabela 402. Se os bits DT sao iguais a tres (binario 11), entao, a origem de tabela 402 designa uma primeira tabela de regiao 410. Se os bits DT sao iguais a dois (binario 10), entao, a origem de tabela 402 designa a segunda tabela de regiao 412. Se os bits DT sao iguais a um (binario 01), entao, a origem de tabela 402 designa a terceira tabela de regiao 414. Ao contrario, se os bits DT sao iguais a zero (binario 00), entao, a origem de tabela 402 designa a tabela de segmento 416.
[0103] Uma primeira tabela de regiao, segunda tabela de regiao ou terceira tabela de regiao e geralmente referida simplesmente como uma tabela de regiao. Da mesma forma, uma designagao de primeira tabela de regiao, designagao de segunda tabela de regiao ou designagao de terceira tabela de regiao e geralmente referida como uma designagao de tabela de regiao. As tabelas de pagina, segmento e regiao refletem a atribuigao atual de armazenamento real. Pagina e um termo usados para a atribuigao de armazenamento virtual. Armazenamento real e alocado em blocos fixos. Paginas nao precisam ser adjacentes no armazenamento real ainda que atribudas a um conjunto de enderegos virtuais sequenciais.
[0104] Quando o ASCE usado em uma tradugao e uma designagao de primeira tabela de regiao, o processo de tradugao consiste em uma consulta multinivel usando, por exemplo, uma primeira tabela de regiao, uma segunda tabela de regiao, uma terceira tabela de regiao, uma tabela de segmento e, opcionalmente, uma tabela de pagina. Essas tabelas residem em armazenamento real ou absoluto. Quando o ASCE e uma designagao de segunda tabela de regiao, designagao de terceira tabela de regiao ou designagao de tabela de segmento, as consultas nos niveis de tabelas acima do nivel designado sao omitidas, e as proprias tabelas de nivel mais alto sao omitidas.
[0105] Referencia e agora feita a figura 5A ilustrando uma concretizagao de tradugao de enderego dinamico de um enderego virtual usando uma hierarquia de tabelas de tradugao.
[0106] O ASCE efetivo 400 da figura 4 contem os bits de Tipo de Designagao (DT) 406. Se o bit de controle de espago real (R) 404 do ASCE e zero, entao, os bits DT sao decodificados pelo seletor 408 para determinar qual enderego de origem a origem de tabela 402 designa. Se o bit de controle de espago real (R) e um, entao, tradugao dinamica de enderego ocorre como mostrado no no D 564 na figura 5B.
[0107] Se os bits DT sao iguais a tres (binario 11) no seletor 408, entao, a primeira tabela designada na hierarquia de tabelas de tradugao e uma primeira tabela de regiao. A origem de tabela 402 e aritmeticamente adicionada, em 502, com uma porgao de Primeiro indice de Regiao (RFX) 508 do enderego virtual para entrada na primeira tabela de regiao de referencia 506 em uma primeira tabela de regiao. A origem de tabela (com 12 zeros adicionados a direita ou multiplicada por 4096) e adicionada ao produto do indice 30 multiplicado por 8 (ou o indice com tres zeros adicionados a direita). A entrada de primeira tabela de regiao contem uma origem de segunda tabela de regiao 504 para uma tabela seguinte inferior na hierarquia de tabelas de tradugao usadas na tradugao. A tabela seguinte inferior a primeira tabela de regiao e a segunda tabela de regiao. Se o bit invalido (I) da entrada de primeira tabela de regiao e igual a um, entao, a entrada de primeira tabela de regiao e invalida e nao pode ser usada na tradugao. Uma condigao de excegao e indicada.
[0108] Se os bits DT sao iguais a dois (binario 10) no seletor 408, entao, a primeira tabela designada na hierarquia de tabelas de tradugao e a segunda tabela de regiao. A origem de tabela 402 e aritmeticamente adicionada, em 510, com uma porgao de Segundo indice de Regiao (RSX) 516 do enderego virtual para entrada de segunda tabela de regiao de referencia 514 na segunda tabela de regiao. A origem de tabela (com 12 zeros adicionados a direita ou multiplicada por 4096) e adicionada ao produto do indice multiplicado por 8 (ou o indice com tres zeros adicionados a direita) . A entrada de segunda tabela de regiao contem uma origem de terceira tabela de regiao 512 para uma tabela seguinte inferior na hierarquia de tabelas de tradugao usada na tradugao. A tabela seguinte inferior a segunda tabela de regiao e a terceira tabela de regiao. Se o bit invalido (I) da entrada de segunda tabela de regiao e igual a um, entao, a entrada de segunda tabela de regiao e invalida e uma condigao de excegao e indicada.
[0109] Se os bits DT sao iguais a um (binario (01) no seletor 408, entao, a primeira tabela designada na hierarquia de tabelas de tradugao e a terceira tabela de regiao. A origem de tabela 402 e aritmeticamente adicionada, em 518, com uma porgao de Terceiro indice de Regiao (RTX) 524 do enderego virtual para entrada de terceira tabela de regiao de referencia 522 em uma terceira tabela de regiao. A origem de tabela (com 12 zeros adicionados a direita ou multiplicada por 4096) e adicionada ao produto do indice multiplicado por 8 (ou o indice com tres zeros adicionados a direita). A entrada de terceira tabela de regiao contem uma origem de tabela de segmento 520 para uma tabela seguinte inferior na hierarquia de tabelas de tradugao usadas na tradugao. A tabela seguinte inferior a terceira tabela de regiao e a tabela de segmento. Se o bit invalido (I) da entrada de terceira tabela de regiao e igual a um, entao, a entrada de terceira tabela de regiao e invalida e uma condigao de excegao e indicada.
[0110] Se os bits DT sao iguais a zero (binario (00) no seletor 408, entao, a primeira tabela designada na hierarquia de tabelas de tradugao e a tabela de segmento. A origem de tabela 402 e aritmeticamente adicionada, em 526, com uma porgao de segmento indice (SX) 532 do enderego virtual para entrada de tabela de segmento de referencia 530 em uma tabela de segmento. A origem de tabela (com 12 zeros adicionados a direita ou 30 multiplicada por 4096) e adicionada ao produto do indice multiplicado por 8 (ou o indice com tres zeros adicionados a direita). A entrada de tabela de segmento contem um enderego de origem para uma tabela de pagina ou um enderego absoluto de quadro de segmento (SFAA), ambos mostrados em 528. Se o bit invalido (I) da entrada de tabela de segmento e igual a um, entao, a entrada de tabela de segmento e invalida e uma condigao de excegao e indicada.
[0111] Em 538, o bit de controle de formato de STE (FC) da tabela de segmento e examinado. Se o controle de formato de STE e um, entao, a entrada de tabela de segmento 530 contem um enderego absoluto de quadro de segmento (SFAA) 552 e tradugao dinamica de enderego continua com referencia ao no 562 na figura 5C. Ao contrario, a entrada de tabela de segmento obtida da tabela de segmento contem um enderego de origem de tabela de pagina e tradugao dinamica de enderego continua com referencia ao no 560 na figura 5B.
[0112] Com referencia agora a figura 5B, se o controle de formato de STE na entrada de tabela de segmento e zero, entao, a entrada de tabela de segmento obtida da tabela de segmento contem um enderego de origem para a tabela seguinte inferior na hierarquia de tabelas de tradugao. A tabela seguinte inferior a tabela de segmento e uma tabela de pagina. A origem de tabela de pagina 528, obtida da entrada de tabela de segmento 530 da figura 5A, e aritmeticamente adicionada, em 538, com uma porgao de indice de Pagina (PX) 534 do enderego virtual para a entrada de tabela de pagina de referencia 542 em uma tabela de pagina. A entrada de tabela de pagina contem um enderego real de quadro de pagina (PFRA) 546. Quando os bits mais a esquerda do enderego real de quadro de pagina sao concatenados, em 548, com uma porgao de indice de byte (BX) 536 do enderego virtual, um enderego real de 64 bits 550 e obtido. O enderego real de 64 bits pode ser ainda submetido a uma operagao de prefixagao para formar um enderego absoluto. O enderego virtual traduzido faz referencia a um bloco de dados de 4Kilobytes (4096 bytes) desejado na memoria ou armazenamento principal.
[0113] Preferencialmente, informagoes usadas na tradugao dinamica de um enderego virtual para um enderego de memoria sao armazenadas em um marcador de entrada de buffer de tradugao look-aside junto com o enderego do bloco de memoria associados ao enderego virtual. Acesso de armazenamento subsequente pode rapidamente traduzir um enderego virtual comparando informagoes de ASCE e informagoes de enderego virtual com marcadores de buffer de tradugao look-aside. Caso um marcador seja aquele do enderego virtual, o enderego de buffer de tradugao look-aside do bloco de memoria pode ser usado em vez de executar o acesso sequencial lento de cada tabela de tradugao envolvida. Em uma concretizagao, o enderego real de quadro de pagina (PFRA) junto com um marcador consistindo em, por exemplo, o ASCE e as porgoes RX, SX e PX do enderego virtual sao armazenados em uma entrada do buffer de tradugao look-aside 544. Tradugao subsequente desse enderego virtual e apos derivada das informagoes armazenadas no buffer de tradugao look-aside.
[0114] Com referencia agora a figura 5C, se o controle de formato de STE na entrada de tabela de segmento 530 e um, entao, a entrada de tabela de segmento contem um enderego absoluto de quadro de segmento (SFAA) 552. Quando os bits mais a esquerda do enderego absoluto de quadro de segmento sao concatenados, em 554, com uma porgao de indice de pagina 534 e uma porgao de indice de byte 536 do enderego virtual, um enderego absoluto de 64 bits 556 e obtido. O enderego virtual traduzido faz referencia a bloco grande de dados desejado no armazenamento principal ou memoria. O bloco grande de dados tem pelo menos 1 megabyte (1.048.576 bytes) de tamanho.
[0115] Em uma concretizagao, o enderego absoluto de quadro de segmento (SFAA) junto com as porgoes RX e SX do enderego virtual sao armazenados no buffer de tradugao lookaside 544. A tradugao subsequente desse enderego virtual e, apos, derivada das informagoes armazenadas no buffer de tradugao look-aside.
[0116] Concretizagoes das varias entradas de tabela de tradugao na hierarquia de tabelas de tradugao usadas na tradugao sao como seguem.
[0117] O termo “entrada de tabela de regiao” significa uma entrada de primeira tabela de regiao, entrada de segunda tabela de regiao ou entrada de terceira tabela de regiao. A entradas pesquisadas e carregadas da primeira tabela de regiao, segunda tabela de regiao e terceira tabela de regiao possuem os seguintes formatos. O nivel (primeiro, segundo ou terceiro) da tabela contendo uma entrada e identificado pelos bits de tipo de tabela (TT) na entrada.
[0118] Em uma concretizaao, os formatos da entrada de primeira tabela de regiao, entrada de segunda tabela de regiao e entrada de terceira tabela de regiao sao como seguem:
[0119] Origem de Segunda Tabela de Regiao, Origem de Terceira Tabela de Regiao e Origem de Tabela de Segmento: Uma entrada de primeira tabela de regiao contem uma origem de segunda tabela de regiao. Uma entrada de segunda tabela de regiao contem uma origem de terceira tabela de regiao. Uma entrada de terceira tabela de regiao contem uma origem de tabela de segmento. A seguinte descripao se aplica a cada uma das tres origens de tabela. Os bits 0-51 da entrada, com 12 zeros adicionados a direita, formam um enderego de 64 bits que designa o inicio da tabela seguinte de nivel inferior.
[0120] Bit de protegao de DAT (P): Quando DAT melhorada se aplica, o bit 54 e tratado como sendo OR'ed com o bit de protegao de DAT em cada entrada de tabela de regiao subsequente, entrada de tabela de segmento e, quando aplicavel, entrada de tabela de pagina usada na tradugao. Dessa forma, quando o bit e um, protegao de DAT se aplica a toda a regiao ou regioes especificadas pela entrada de tabela de regiao. Quando a facilidade de DAT melhorada nao esta instalada, ou quando a facilidade esta instalada, mas o controle de habilitagao de DAT melhorada e zero, o bit 54 da entrada de tabela de regiao e ignorado.
[0121] Deslocamento de Segunda Tabela de Regiao, Deslocamento de Terceira Tabela de Regiao e Deslocamento de Tabela de Segmento (TF): Uma entrada de primeira tabela de regiao contem um deslocamento de segunda tabela de regiao. Uma entrada de segunda tabela de regiao contem um deslocamento de terceira tabela de regiao. Uma entrada de terceira tabela de regiao contem um deslocamento de tabela de segmento. A seguinte descrigao se aplica a cada um dos tres deslocamentos de tabela. Os bits 56 e 57 da entrada especificam o comprimento de uma porgao da tabela seguinte de nivel inferior que esta ausente no inicio da tabela, ou seja, os bits especificam o local da primeira entrada realmente existente na tabela seguinte de nivel inferior. Os bits especificam o comprimento da porgao ausente em unidades de 4.096 bytes, tornando assim o comprimento da porgao ausente variavel em varias das 512 entradas. O comprimento da porgao ausente, em unidades de 4.096 bytes, e igual ao valor TF. O conteudo do campo deslocado, em conjunto com o campo de comprimento, os bits 62 e 63, sao usados para estabelecer se a porgao do enderego virtual (RSX, RTX ou SX) a ser traduzida por meio da tabela seguinte de nivel inferior designa uma entrada que realmente existe na tabela.
[0122] Bit de Regiao Invalido (I): O bit 58 em uma entrada de primeira tabela de regiao ou entrada de segunda tabela de regiao controla se o conjunto de regioes associadas a entrada esta disponivel. O bit 58 em uma entrada de terceira tabela de regiao controla se a unica regiao associada a entrada esta disponivel. Quando o bit 58 e zero, a tradugao de enderego prossegue usando a entrada de tabela de regiao. Quando o bit e um, a entrada nao pode ser usada para tradugao.
[0123] Bits de Tipo de Tabela (TT): Os bits 60 e 61 da entrada de primeira tabela de regiao, entrada de segunda tabela de regiao e entrada de terceira tabela de regiao identificam o nivel da tabela contendo a entrada, como a seguir: os bits 60 e 61 devem identificar o nivel de tabela correto, considerando o tipo de designagao de tabela que e o ASCE sendo usado na tradugao e o numero de niveis de tabela que foram usados ate entao; ao contrario, uma excegao de especificagao de tradugao e reconhecida. A seguinte tabela mostra os bits de tipo de tabela:
[0124] Comprimento de Segunda Tabela de Regiao, Comprimento de Terceira Tabela de Regiao e Comprimento de Tabela de Segmento (TL): Uma entrada de primeira tabela de regiao contem um comprimento de segunda tabela de regiao. Uma entrada de segunda tabela de regiao contem um comprimento de terceira tabela de regiao. Uma entrada de terceira tabela de regiao contem um comprimento de tabela de segmento. A seguinte descrigao se aplica a cada um dos tres comprimentos de tabela. Os bits 62 e 63 da entrada especificam o comprimento da tabela seguinte de nivel inferior em unidades de 4.096 bytes, tornando assim o comprimento da tabela variavel em varios de 512 entradas. O comprimento da tabela seguinte de nivel inferior, em unidades de 4.096 bytes, e um superior ao valor TL. O conteudo do campo de comprimento, em conjunto com o campo de deslocamento, os bits 56 e 57, sao usados para estabelecer se a porgao do enderego virtual (RSX, RTX ou SX) a ser traduzida por meio da tabela seguinte de nivel inferior designa uma entrada que realmente existe na tabela. Todas as outras posigoes de bit da entrada de tabela de regiao sao reservadas para possiveis extensoes futuras e devem conter zeros; ao contrario, o programa pode nao operar compativelmente no futuro. Quando DAT melhorada se aplica, as posigoes de bit reservadas da entrada de tabela de regiao devem conter zeros mesmo se a tabela entrada for invalida.
[0125] Quando DAT melhorada nao se aplica, ou quando DAT melhorada se aplica e o controle de formato de STE, o bit 53 da entrada de tabela de segmento e zero, a entrada pesquisada e carregada da tabela de segmento, em uma concretizagao, tem o seguinte formato:
[0126] Quando DAT melhorada se aplica e o controle de formato de STE e um, a entrada pesquisada e carregada da tabela de segmento, em uma concretizagao, tem o seguinte formato:
[0127] Os campos selecionados na entrada de tabela de segmento sao alocados como a seguir:
[0128] Origem de Tabela de Pagina: Quando DAT melhorada nao se aplica, ou quando DAT melhorada se aplica mas o controle de formato de STE, bit 53 da entrada de tabela de segmento, e zero, os bits 0-52, com 11 zeros adicionados a direita, formam um enderego de 64 bits que designa o inicio de uma tabela de pagina. E imprevisivel se o enderego e real ou absoluto.
[0129] Enderego Absoluto de Quadro de Segmento (SFAA): Quando DAT melhorada se aplica e o controle de formato de STE e um, os bits 0-43 da entrada, com 20 zeros adicionados a direita, formam o enderego absoluto de 64 bits do segmento.
[0130] Controle de Validade de ACCF (AV): Quando DAT melhorada se aplica e o controle de formato de STE e um, o bit 47 sao os bits de controle de acesso e o controle de validade de bit de protegao de pesquisa e carregamento (ACCF). Quando o controle de AV e zero, os bits 48-52 da entrada de tabela de segmento sao ignorados. Quando o controle de AV e um, os bits 48-52 sao usados como descrito abaixo.
[0131] Bits de Controle de Acesso (ACC): Quando DAT melhorada se aplica, o controle de formato de STE e um, e o controle de AV e um, os bits 48-51 da entrada de tabela de segmento contem os bits de controle de acesso que podem ser usados para qualquer verificagao de acesso controlado por chave que se aplica ao enderego.
[0132] Bit de Protegao de Pesquisa e Carregamento (F): Quando DAT melhorada se aplica, o controle de formato de STE e um, e o controle de AV e um, o bit 52 da entrada de tabela de segmento contem o bit de protegao de pesquisa e carregamento que pode ser usado para qualquer verificagao de acesso controlado por chave que se aplica ao enderego.
[0133] Controle de Formato de STE (FC): Quando DAT melhorada se aplica, o bit 53 e o controle de formato para a entrada de tabela de segmento, como segue: Quando o bit FC e zero, os bits 0-52 da entrada formam a origem de tabela de pagina e o bit 55 e reservado.
[0134] Quando o bit FC e um, os bits 0-43 da entrada formam o enderego absoluto de quadro de segmento, o bit 47 e o controle de validade de ACCF, os bits 48-51 sao os bits de controle de acesso, o bit 52 e o bit de protegao de pesquisa e carregamento e o bit 55 e a sobreposigao no registro de alteragao. Quando DAT melhorada nao se aplica, o bit 53 e ignorado.
[0135] Bit de protegao de DAT (P): O bit 54, quando um, indica que a protegao de DAT se aplica ao segmento inteiro.
[0136] Quando DAT melhorada nao se aplica, o bit 54 e tratado como sendo OR'ed com o bit de protegao de DAT na entrada de tabela de pagina usada na tradugao.
[0137] Quando DAT melhorada se aplica, o bit de protegao de DAT em qualquer e todas as entradas de tabela de regiao usadas na tradugao sao tratados como sendo OR'ed com o bit de protegao de DAT na entrada de tabela de segmento; quando o controle de formato de STE e zero, o bit de protegao de DAT no STE e ainda tratados como sendo OR'ed com o bit de protegao de DAT na entrada de tabela de pagina.
[0138] Sobreposigao no registro de Alteragao (CO): Quando DAT melhorada se aplica, e o controle de formato de STE e um, o bit 55 da entrada de tabela de segmento e a sobreposigao no registro de alteragao para o segmento. Quando DAT melhorada nao se aplica, ou quando DAT melhorada se aplica mas o controle de formato de STE e zero, o bit 55 da entrada de tabela de segmento e ignorado.
[0139] Bit de Segmento Invalido (I): O bit 58 controla se o segmento associado a entrada de tabela de segmento esta disponivel.
[0140] Quando o bit e zero, a tradugao de enderego prossegue usando a entrada de tabela de segmento.
[0141] Quando o bit e um, a entrada de tabela de segmento nao pode ser usada para tradugao.
[0142] Bit de Segmento Comum (C): O bit 59 controla o uso das copias de buffer de tradugao look-aside da entrada de tabela de segmento. Quando DAT melhorada nao se aplica ou quando DAT melhorada se aplica mas o controle de formato e zero, o bit 59 tambem controla o uso das copias de buffer de tradugao look-aside da tabela de pagina representada pela entrada de tabela de segmento.
[0143] Um zero identifica um segmento privado; nesse caso, a entrada de tabela de segmento e qualquer tabela de pagina que ela designa pode ser usada somente em associagao com a origem de tabela de segmento que designa a tabela de segmento em que a entrada de tabela de segmento reside.
[0144] O um identifica um segmento comum; nesse caso, a entrada de tabela de segmento e qualquer tabela de pagina que ela designa pode continuar a ser usada para tradugao de enderegos correspondentes ao indice de segmento, ainda que uma tabela de segmento diferente seja especificada.
[0145] No entanto, copias de buffer de tradugao lookaside da entrada de tabela de segmento e qualquer tabela de pagina para um segmento comum nao sao usaveis se o controle de espago privado, o bit 55, for um no ASCE usado na tradugao ou se aquele ASCE for uma designagao de espago real. O bit de segmento comum devem ser zero se a entrada de tabela de segmento for pesquisada e carregada do armazenamento durante a tradugao quando o controle de espago privado e um no ASCE sendo usado. Ao contrario, uma excegao de especificagao de tradugao e reconhecida.
[0146] Bits de Tipo de Tabela (TT): Os bits 60 e 61 da entrada de tabela de segmento sao 00 binario para identificar o nivel da tabela contendo a entrada. Os significados de todos os valores possiveis de bits 60 e 61 em uma entrada de tabela de regiao ou entrada de tabela de segmento sao como seguem:
[0147] Os bits 60 e 61 devem identificar o nivel de tabela correto, considerando o tipo de designagao de tabela que e o ASCE sendo usado na tradugao e o numero de niveis de tabela que foram utilizados ate entao; ao contrario, uma excegao de especificagao de tradugao e reconhecida. Todas as outras posigoes de bit da entrada de tabela de segmento sao reservadas para possiveis extensoes futuras e devem conter zeros; ao contrario, o programa pode nao operar compativelmente no futuro. Quando DAT melhorada se aplica, as posigoes de bit reservadas da entrada de tabela de segmento devem conter zeros mesmo se a entrada de tabela for invalida.
[0148] Em uma concretizaao, a entrada pesquisada e carregada da tabela de pagina tem o seguinte formato:
[0149] Os campos selecionados na entrada de tabela de pagina sao alocados como a seguir:
[0150] Enderego Real de Quadro de Pagina (PFRA): Os bits 0-51 proveem os bits mais a esquerda de um enderego de armazenamento real. Quando esses bits sao concatenados com o campo de indice de byte de 12 bits do enderego virtual na direita, um enderego real de 64 bits e obtido.
[0151] Bit de Pagina Invalido (I): O bit 53 controla se a pagina associada a entrada de tabela de pagina esta disponivel. Quando o bit e zero, a tradugao de enderego prossegue usando a entrada de tabela de pagina. Quando o bit e um, a entrada de tabela de pagina nao pode ser usada para tradugao.
[0152] Bit de Protegao de DAT (P): O bit 54 controla se os acessos de armazenamento podem ser feitos na pagina.Esse mecanismo de protegao e adicional aos mecanismos de protegao controlada por chave e protegao de enderego inferior. O bit nao tem efeito nos acessos de pesquisa e carregamento. Se o bit e zero, armazenamentos sao permitidos na pagina, sujeitos as seguintes restrigoes adicionais:
[0153] O bit de protegao de DAT sendo zero na entrada de tabela de segmento usada na tradugao.
[0154] Quando DAT melhorada se aplica, o bit de protegao de DAT sendo zero em todas as entradas de tabela de regiao usadas na tradugao.
[0155] A entrada de tabela selecionada por meio do ASCE efetivo designa a tabela seguinte de nivel inferior a ser usada. Se a tabela atual for uma primeira tabela de regiao, segunda tabela de regiao ou terceira tabela de regiao, a porgao seguinte do enderego virtual (segundo indice de regiao, terceiro indice de regiao ou indice de segmento, respectivamente) e verificado contra os campos de deslocamento de tabela e comprimento de tabela na entrada de tabela atual, e e adicionado a origem na entrada para selecionar uma entrada na tabela seguinte de nivel inferior. Se a entrada selecionada na tabela seguinte estiver fora de sua tabela, como determinado pelos campos de deslocamento de tabela e comprimento de tabela na entrada de tabela atual, ou se o bit I for um na entrada selecionada, uma excegao de segunda tradugao de regiao, terceira tradugao de regiao ou tradugao de segmento e reconhecida, dependendo do nivel da tabela seguinte. Se os bits de tipo de tabela na entrada selecionada nao indicam o nivel de tabela esperado, uma excegao de especificagao de tradugao e reconhecida.
[0156] O processamento de porgoes do enderego virtual por meio de niveis sucessivos de tabela continua ate a entrada de tabela de segmento ter sido selecionada. A entrada de tabela de segmento contem um bit de protegao de pagina que se aplica a todas as paginas no segmento especificado.
[0157] A porgao de indice de pagina do enderego virtual e adicionada a origem de tabela de pagina na entrada de tabela de segmento para selecionar uma entrada na tabela de pagina. Se o I bit e um na entrada de tabela de pagina, uma excegao de tradugao de pagina e reconhecida. A entrada de tabela de pagina contem os bits mais a esquerda do enderego real que representa a tradugao do enderego virtual, e contem um bit de protegao de pagina que se aplica somente a pagina especificada pela entrada de tabela de pagina.
[0158] O campo de indice de byte do enderego virtual e usado inalterado como as posigoes de bit mais a direita do enderego real.
[0159] A fim de eliminar o atraso associado a referencias a tabelas de tradugao no armazenamento real ou absoluto, as informagoes pesquisadas e carregadas das tabelas normalmente sao tambem colocadas em um buffer especial, o buffer de tradugao look-aside, e tradugoes subsequentes envolvendo as mesmas entradas de tabela podem ser realizadas usando as informagoes registradas no buffer de tradugao look-aside. O buffer de tradugao look-aside pode tambem gravar tradugoes reais iguais virtuais relacionadas a uma designagao de espago real.
[0160] Sempre que acesso ao armazenamento real ou absoluto for feito durante o processo de tradugao de enderego com a finalidade de pesquisar e carregar uma entrada de uma tabela de regiao, tabela de segmento ou tabela de pagina, protegao controlada por chave nao se aplica.
[0161] O controle de DT, os bits 60-61 do ASCE efetivo, especifica ambos o tipo de designagao de tabela do ASCE e a porgao do enderego virtual que deve ser traduzida por meio da tabela designada, como segue:
[0162] Quando os bits 60 e 61 possuem o valor 11 binario, a primeira porgao de indice de regiao do enderego virtual, em conjunto com a primeira origem de tabela de regiao contida no ASCE, e usada para selecionar uma entrada da primeira tabela de regiao. O enderego de 64 bits da entrada de primeira tabela de regiao em armazenamento real ou absoluto e obtida anexando 12 zeros a direita dos bits 051 da designagao de primeira tabela de regiao e adicionando o primeiro indice de regiao com tres zeros mais a direita e 50 zeros mais a esquerda. Como parte do processo de consulta de primeira tabela de regiao, os bits 0 e 1 do enderego virtual (que sao os bits 0 e 1 do primeiro indice de regiao) sao comparados contra o comprimento de tabela, os bits 62 e 63 da designagao de primeira tabela de regiao, para estabelecer se a entrada enderegada esta dentro da primeira tabela de regiao. Se o valor no campo de comprimento de tabela e menor do que o valor nas posigoes de bit correspondentes do enderego virtual, uma excegao de primeira tradugao de regiao e reconhecida. A comparagao contra o comprimento de tabela pode ser omitida se o equivalente de uma entrada de primeira tabela de regiao no buffer de tradugao look-aside e usado na tradugao. A entrada pesquisada e carregada da primeira tabela de regiao designa o inicio e especifica o deslocamento e comprimento da segunda tabela de regiao correspondente.
[0163] Quando os bits 60 e 61 do ASCE possuem o valor 10 binario, a segunda porgao de indice de regiao do enderego virtual, em conjunto com a origem de segunda tabela de regiao contida no ASCE, e usada para selecionar uma entrada da segunda tabela de regiao. Os bits 11 e 12 do enderego virtual (que sao os bits 0 e 1 do segundo indice de regiao) sao comparados contra o comprimento de tabela no ASCE. Se o valor no campo de comprimento de tabela e menor do que o valor nas posigoes de bit correspondentes do enderego virtual, uma excegao de segunda tradugao de regiao e reconhecida. A comparagao contra o comprimento de tabela pode ser omitida se o equivalente de uma entrada de segunda tabela de regiao no buffer de tradugao look-aside e usado na tradugao. O processo de consulta de segunda tabela de regiao e, de outra forma, o mesmo que processo de consulta de primeira tabela de regiao; a entrada pesquisada e carregada da segunda tabela de regiao designa o inicio e especifica o deslocamento e comprimento da terceira tabela de regiao correspondente.
[0164] Quando os bits 60 e 61 do ASCE possuem o valor 01 binario, a porgao de terceiro indice de regiao do enderego virtual, em conjunto com a origem de terceira tabela de regiao contida no ASCE, e usada para selecionar uma entrada da terceira tabela de regiao. Os bits 22 e 23 do enderego virtual (que sao os bits 0 e 1 do terceiro indice de regiao) sao comparados contra o comprimento de tabela no ASCE. Se o valor no campo de comprimento de tabela e menor do que o valor nas posigoes correspondentes de bit do enderego virtual, uma excegao de terceira tradugao de regiao e reconhecida. O processo de consulta de terceira tabela de regiao e, de outra forma, o mesmo que o processo de consulta de primeira tabela de regiao, incluindo a verificagao dos bits de tipo de tabela na entrada de terceira tabela de regiao. A entrada pesquisada e carregada da terceira tabela de regiao designa o inicio e especifica o deslocamento e comprimento da tabela de segmento correspondente.
[0165] Quando os bits 60 e 61 do ASCE possuem o valor 00 binario, a porgao de indice de segmento do enderego virtual, em conjunto com a origem de tabela de segmento contida no ASCE, e usada para selecionar uma entrada da tabela de segmento. Os bits 33 e 34 do enderego virtual (que sao os bits 0 e 1 do indice de segmento) sao comparados contra o comprimento de tabela no ASCE. Se o valor no campo de comprimento de tabela for menor do que o valor nas posigoes correspondentes de bit do enderego virtual, uma excegao de tradugao de segmento e reconhecida. A comparagao contra o comprimento de tabela pode ser omitida se o equivalente de uma entrada de tabela de segmento no buffer de tradugao look-aside for usado na tradugao. O processo de consulta de tabela de segmento e, de outra forma, o mesmo que o processo de consulta de primeira tabela de regiao, incluindo a verificagao dos bits de tipo de tabela na entrada de tabela de segmento. O processamento e como segue:
[0166] Quando DAT melhorada nao se aplica, ou quando DAT melhorada se aplica mas o controle de formato de STE e zero, a entrada pesquisada e carregada da tabela de segmento designa o inicio da tabela de pagina correspondente, e o processamento continua como descrito em “Consulta de Tabela de Pagina” abaixo.
[0167] Quando DAT melhorada se aplica e o controle de formato de STE e um, a entrada pesquisada e carregada da tabela de segmento contem os bits mais a esquerda do enderego absoluto de quadro de segmento. Se o bit de protegao de DAT e um em qualquer entrada de tabela de regiao usada na tradugao ou na entrada de tabela de segmento, e a referencia de armazenamento para a qual a tradugao esta sendo realizada e um armazenamento, uma excegao de protegao e reconhecida.
[0168] Quando o ASCE efetivo e uma designagao de tabela de regiao, uma entrada de tabela de regiao e selecionada conforme descrito na segao anterior. Em seguida, os conteudos da entrada selecionada e da porgao de indice seguinte do enderego virtual sao usados para selecionar uma entrada na tabela seguinte de nivel inferior, que pode ser outra tabela de regiao ou uma tabela de segmento. Quando a entrada de tabela selecionada por meio do ASCE e uma entrada de primeira tabela de regiao, a porgao de segundo indice de regiao do enderego virtual, em conjunto com a origem de segunda tabela de regiao contida na entrada de primeira tabela de regiao, e usada para selecionar uma entrada da segunda tabela de regiao. O enderego de 64 bits da entrada de segunda tabela de regiao no armazenamento real ou absoluto e obtido anexando 12 zeros a direita dos bits 0-51 da entrada de primeira tabela de regiao e adicionando o segundo indice de regiao com tres 20 zeros mais a direita e 50 zeros mais a esquerda.
[0169] Ao formar o enderego de uma entrada de segunda tabela de regiao, terceira tabela de regiao e tabela de segmento, e imprevisivel se a prefixagao, se houver, e aplicada a origem de tabela respectiva contida na entrada de tabela de nivel mais alto antes da adigao do valor de indice de tabela, ou a prefixagao e aplicada ao enderego de entrada de tabela, que e formado pela adigao da origem de tabela e valor de indice de tabela.
[0170] Como parte do processo de consulta de segunda tabela de regiao, os bits 11 e 12 do enderego virtual (que sao bits 0 e 1 do segundo indice de regiao) sao comparados contra o deslocamento de tabela, os bits 56 e 57 da entrada de primeira tabela de regiao, e contra o comprimento de tabela, os bits 62 e 63 da entrada de primeira tabela de regiao, para estabelecer se a entrada enderegada esta dentro da segunda tabela de regiao. Se o valor no campo de deslocamento de tabela for maior do que valor nas posigoes de bit correspondentes do enderego virtual, ou se o valor no campo de comprimento de tabela for menor do que o valor nas posigoes correspondentes do bit do enderego virtual, uma excegao de segunda tradugao de regiao e reconhecida.
[0171] A segunda tabela de regiao designa o inicio e especifica o deslocamento e comprimento da terceira tabela de regiao correspondente.
[0172] Quando a entrada de tabela selecionada por meio do ASCE e uma entrada de segunda tabela de regiao, ou se uma entrada de segunda tabela de regiao foi selecionada por meio dos conteudos de uma entrada de primeira tabela de regiao, a porgao de terceiro indice de regiao do enderego virtual, em conjunto com a origem de terceira tabela de regiao contida na entrada de segunda tabela de regiao, e usada para selecionar uma entrada da terceira tabela de regiao. Os bits 22 e 23 do enderego virtual (que sao os bits 0 e 1 do terceiro indice de regiao) sao comparados contra o deslocamento de tabela e comprimento de tabela na entrada de segunda tabela de regiao. Uma excegao de terceira tradugao de regiao e reconhecida se o deslocamento de tabela for maior do que os bits 22 e 23 ou se o comprimento de tabela for menor do que os bits 22 e 23. O processo de consulta de terceira tabela de regiao e, ao contrario, o mesmo que o processo de consulta de segunda tabela de regiao. A entrada pesquisada e carregada da terceira tabela de regiao designa o inicio e especifica o deslocamento e comprimento da tabela de segmento correspondente.
[0173] Quando a entrada de tabela selecionada por meio do ASCE e uma entrada de terceira tabela de regiao ou se a entrada de terceira tabela de regiao tiver sido selecionada por meio dos conteudos da entrada de segunda tabela de regiao, a porgao de indice de segmento do enderego virtual, em conjunto com a origem de tabela de segmento contida na entrada de terceira tabela de regiao, e usada para selecionar uma entrada da tabela de segmento. Os bits 33 e 34 do enderego virtual (que sao os bits 0 e 1 do indice de segmento) sao comparados contra o deslocamento de tabela e comprimento de tabela na entrada de terceira tabela de regiao. Uma excegao de tradugao de segmento e reconhecida se o deslocamento de tabela for maior do que bits 33 e 34 ou se o comprimento de tabela for menor do que bits 33 e 34. Uma excegao de especificagao de tradugao e reconhecida se (1) o controle de espago privado, bit 55, no ASCE for um e (2) o bit de segmento comum, bit 59, na entrada pesquisada e carregada da tabela de segmento for um. O processo de consulta de tabela de segmento e, ao contrario, o mesmo que o processo de consulta de segunda tabela de regiao. O processamento e como segue:
[0174] Quando DAT melhorada nao se aplica, ou quando DAT melhorada se aplica mas o controle de formato de STE e zero, a entrada pesquisada e carregada da tabela de segmento designa o inicio da tabela de pagina correspondente, o processamento continua como descrito em “Consulta de Tabela de Pagina” abaixo.
[0175] Quando DAT melhorada se aplica e o controle de formato de STE e um, a entrada pesquisada e carregada da tabela de segmento contem os bits mais a esquerda do enderego absoluto de quadro de segmento. Se o bit de protegao de DAT for um em qualquer entrada de tabela de regiao usada na tradugao ou na entrada de tabela de segmento e a referencia de armazenamento para a qual a tradugao esta sendo realizada e um armazenamento, uma excegao de protegao e reconhecida.
[0176] Quando DAT melhorada nao se aplica, ou quando DAT melhorada se aplica mas o controle de formato de STE e zero, a porgao de indice de pagina do enderego virtual, em conjunto com a origem de tabela de pagina contida na entrada de tabela de segmento, e usada para selecionar uma entrada da tabela de pagina.
[0177] O enderego de 64 bits da entrada de tabela de pagina no armazenamento real ou absoluto e obtido anexando zeros a direita da origem de tabela de pagina e adicionando o indice de pagina, com tres zeros mais a direita e 53 zeros mais a esquerda anexados. A execugao da posigao de bit 0 nao pode ocorrer.
[0178] A entrada pesquisada e carregada da tabela de pagina indica a disponibilidade da pagina e contem os bits mais a esquerda do enderego real de quadro de pagina. O bit de pagina invalida, o bit 53, e inspecionado para estabelecer se a pagina correspondente esta disponivel. Se esse bit for um, uma excegao de tradugao de pagina e reconhecida. Se a posigao de bit 52 contem um, uma excegao de especificagao de tradugao e reconhecida. Quando DAT melhorada nao se aplica, ou DAT melhorada se aplica e o controle de formato de STE e zero, uma excegao de especificagao de tradugao e tambem reconhecida se a posigao de bit 55 contem o um. Se o bit de protegao de DAT for um na entrada de tabela de segmento usada na tradugao, na entrada de tabela de pagina ou, quando DAT melhorada se aplica, em qualquer entrada de tabela de regiao usada durante a tradugao, e a referencia de armazenamento para a qual a tradugao esta sendo executada for um armazenamento, uma excegao de protegao e reconhecida.
[0179] Quando o ASCE efetivo e uma designagao de espago real, os bits 0-63 do enderego virtual sao usados diretamente como o enderego de armazenamento real. O enderego real pode ser ainda submetido a prefixagao para formar um enderego absoluto. Quando o ASCE efetivo nao e uma designagao de espago real e nenhuma excegao no processo de tradugao e encontrada, as seguintes condigoes se aplicam:
[0180] Quando a DAT melhorada nao se aplica, ou quando DAT melhorada se aplica mas o controle de formato de STE e zero, o enderego real de quadro de pagina e obtido da entrada de tabela de pagina. O enderego real de quadro de pagina e a porgao de indice de byte do enderego virtual sao concatenados, com o enderego real de quadro de pagina formando a parte mais a esquerda. O resultado e o enderego de armazenamento real que corresponde ao enderego virtual. O enderego real pode ser ainda submetido a prefixagao para formar um enderego absoluto.
[0181] Quando DAT melhorada se aplica e o controle de formato de STE e um, o enderego absoluto de quadro de segmento e as porgoes de indice de pagina e indice de byte do enderego virtual sao concatenadas, da esquerda para a direita, respectivamente, para formar o enderego absoluto que corresponde ao enderego virtual.
[0182] Enderego de invalidos e formatos invalidos podem fazer com que excegoes sejam reconhecidas durante o processo de tradugao. As excegoes sao reconhecida quando informagoes contidas nas entradas de tabela sao usadas para tradugao e e descobertas incorretas.
[0183] Referencia e agora feita a figura 6 que ilustra um fluxograma de uma concretizagao de tradugao dinamica de enderego para o ponto de obtengao de um campo de controle de formato a partir de uma entrada de tabela de segmento.
[0184] Em 602, um enderego virtual a ser traduzido e obtido. Em 604, o enderego de origem da tabela de tradugao mais alta usado na tradugao do enderego virtual e obtido. O enderego de origem da primeira tabela de tradugao usado na tradugao depende do ASCE e dos bits DT. Em 606, uma porgao do enderego virtual e usada para fazer referencia a tabela de entrada apropriada na tabela de tradugao. Se, em 608, a entrada pesquisada e carregada da tabela de tradugao nao e uma entrada de tabela de segmento, entao, a tabela de segmento na hierarquia de tabelas de tradugao ainda nao foi referida. Nesse caso, em 610, a origem de uma tabela seguinte inferior na hierarquia de tabelas de tradugao e obtida da entrada de tabela. A porgao apropriada do enderego virtual e usada para referencia a entrada de tabela correspondente na tabela seguinte inferior usada na tradugao.
[0185] Por exemplo, se o enderego de origem de tabela da primeira tabela de tradugao a ser usado na tradugao for uma primeira tabela de regiao, entao, a porgao RFX do enderego virtual e usada para referencia a uma entrada de primeira tabela de regiao com a primeira tabela de regiao. Se o enderego de origem de tabela e para uma segunda tabela de regiao, entao, a porgao RSX do enderego virtual e usada para referencia a uma entrada de segunda tabela de regiao dentro da segunda tabela de regiao. Se o enderego de origem de tabela e para uma terceira tabela de regiao, entao, a porgao RTX do enderego virtual e usada para referencia a uma entrada de terceira tabela de regiao dentro da terceira tabela de regiao. Se o enderego de origem de tabela e para uma tabela de segmento, entao, a porgao SX do enderego virtual e usada para referencia a uma entrada de tabela de segmento dentro da tabela de segmento. Tabelas sucessivas sao referenciadas ate que a entrada de tabela de segmento tiver sido pesquisada e carregada.
[0186] Uma vez que a entrada de tabela de segmento tiver sido pesquisada e carregada, o bit de controle de formato de entrada de tabela de segmento (STE) e examinado, em 612, para determinar se o controle de formato esta habilitado para esse enderego virtual particular. Se o controle de formato de STE e zero, entao, a tradugao dinamica de enderego ocorre com relagao ao no 614. Se o controle de formato de STE for um, entao, a tradugao dinamica de enderego ocorre com relagao ao no 616.
[0187] Referencia e agora feita a figura 7 que ilustra uma continuagao do fluxograma do no 614 da figura 6 quando o controle de formato de STE e zero.
[0188] Em 710, um enderego de origem para uma tabela de pagina e obtida da entrada de tabela de segmento. Em 712, uma porgao PX do enderego virtual e usada para referencia a uma entrada de tabela de pagina na tabela de pagina. Em 714, um enderego real de quadro de pagina (PFRA) e obtido da entrada de tabela de pagina. Um bit invalido (I) e obtido da entrada de tabela de pagina. Se, em 716, o bit invalido (I) for um, entao, em 718, a tradugao do enderego virtual nao pode continuar usando essa entrada de tabela de pagina porque a entrada foi marcada como sendo invalida. A tradugao adicional do enderego virtual usando essa entrada de tabela de pagina e interrompida 722. Se, em 716, o bit invalido (I) e zero, entao, em 720, o enderego real de quadro de pagina (PFRA) e combinado com uma porgao BX do enderego virtual para gerar um enderego real. O enderego real pode ser ainda submetido a uma operagao de prefixagao para formar um enderego absoluto. Em 724, o enderego real e usado para acessar um bloco de dados enderegado pelo enderego virtual traduzido.
[0189] Referencia e agora feita a figura 8 que ilustra uma continuagao do fluxograma do no 616 da figura 6.
[0190] Em 810, um enderego absoluto de quadro de segmento (SFAA) e obtido de uma porgao da entrada de tabela de segmento. Um bit invalido (I) e obtido da entrada de tabela de segmento. Se, em 812, o bit invalido (I) for um, entao, em 814, tradugao adicional do enderego virtual nao pode prosseguir usando a entrada de tabela de segmento porque foi marcada como sendo invalida. Em uma concretizagao, um codigo de excegao e retornado a entidade de programa que requer tradugao. Tradugao adicional desse enderego virtual usando essa entrada de tabela de segmento e interrompida 818.
[0191] Se, em 812, o bit invalido (I) e zero, entao, em 816, o enderego absoluto de quadro de segmento (SFAA) e combinado com a porgao PX e BX do enderego virtual para gerar um enderego absoluto a um bloco grande de dados desejado no armazenamento principal ou na memoria. Em 820, o bloco grande de dados desejado enderegado pelo enderego virtual traduzido e acessado.
[0192] Em cada entrada de tabela, o bit invalido e examinado para determinar a validade da entrada de tabela obtida. Outros mecanismos de protegao de tradugao que protegem o bloco de dados enderegado pelo enderego virtual traduzido sao discutidos com mais detalhes neste documento.
[0193] Em outra concretizagao, informagoes de restripao sao obtidas da entrada de tabela de tradugao. As informagoes de restrigao sao usadas para restringir o acesso a uma porgao restrita da faixa de enderego virtual. O acesso ao bloco grande de dados desejado enderegado pelo enderego traduzido e, apos, permitido somente a porgao restrita da faixa de enderego. As informagoes de restrigao sao qualquer uma de um deslocamento de tabela ou um comprimento de tabela.
[0194] Em ainda outra concretizagao, informagoes usadas na tradugao do enderego virtual sao armazenadas em pelo menos um buffer de tradugao look-aside. Uma tradugao subsequente de um enderego virtual subsequente em um enderego absoluto do bloco de dados no armazenamento principal e realizada usando as informagoes armazenadas do buffer de tradugao look-aside em vez da hierarquia de tabelas de tradugao.
[0195] Em ainda outra concretizagao, se a tradugao nao for nativa a arquitetura de maquina, uma rotina de software predeterminada e identificada para emulagao da tradugao. A rotina de software predeterminada contem uma pluralidade de instrugoes. A rotina de software predeterminada e executada.
[0196] Uma vez que o enderego virtual tiver sido traduzido usando a facilidade de DAT melhorada, como descrito neste documento, o bloco de dados desejado na memoria ou armazenamento principal enderegado pelo enderego virtual traduzido pode ser submetido a mecanismo de protegao adicional.
[0197] A fungao de protegao de DAT controla o acesso ao armazenamento virtual usando o bit de protegao de DAT em cada entrada de tabela de pagina e entrada de tabela de segmento, e, quando a facilidade de DAT melhorada esta instalada, em cada entrada de tabela de regiao. Ela prove protegao contra armazenamento inadequado.
[0198] O bit de protegao de DAT (bit 54) da entrada de tabela de pagina controla se o armazenamento e permitido na pagina de 4Kilobytes correspondente. Quando o bit e zero, pesquisar e carregar e armazenamento sao permitidos; quando o bit e um, somente pesquisar e carregar e permitido. Quando uma tentativa e feita de armazenamento em uma pagina protegida, os conteudos da pagina permanecem inalterados, a unidade de operagao ou a execugao da instrugao e suprimida, e uma interrupgao de programa para protegao ocorre.
[0199] O bit de protegao de DAT (bit 54) da entrada de tabela de segmento controla se o armazenamento e permitido no segmento de 1Megabyte correspondente, como segue:
[0200] Quando DAT melhorada nao se aplica, ou quando DAT melhorada se aplica e o controle de formato de STE e zero, o bit de protegao de DAT da entrada de tabela de segmento e tratado como sendo OR'ed na posigao de bit de protegao de DAT de cada entrada na tabela de pagina representada pela entrada de tabela de segmento. Dessa forma, quando o bit de protegao de entrada de tabela de segmento de DAT e um, o efeito e como se o bit de protegao de DAT fosse um em cada entrada na tabela designada de pagina.
[0201] Quando DAT melhorada se aplica e o controle de formato de STE e um, o bit de protegao de DAT da entrada de tabela de segmento controla se o armazenamento e permitido no segmento de 1Megabyte correspondente. Quando o bit e zero, tanto pesquisar e carregar e armazenamento sao permitidos; quando o bit e um, apenas pesquisar e carregar e permitido. Quando uma tentativa e feita de armazenamento em um segmento protegido, os conteudos do segmento permanecem inalterados, a unidade de operagao ou a execugao da instrugao e suprimida, e uma interrupgao de programa para protegao ocorre.
[0202] Quando DAT melhorada se aplica, o bit de protegao de DAT da entrada de tabela de regiao controla se o armazenamento e permitido na regiao(s) correspondente. O bit de protegao de DAT em uma entrada de tabela de regiao e tratado como sendo OR'ed na posigao de bit de protegao de DAT de qualquer entrada de tabela de regiao subsequente e entrada de tabela de segmento que e usada na tradugao. Quando o bit de controle de formato de STE e zero, o bit de protegao de DAT e ainda propagado para a entrada de tabela de pagina.
[0203] A protegao de DAT se aplica a todas as referencias do tipo armazenamento que usam um enderego virtual.
[0204] Quando protegao controlada por chave se aplica a um acesso de armazenamento, um armazenamento e permitido somente quando a chave de armazenamento corresponde a chave de acesso associada a solicitagao de acesso de armazenamento; uma pesquisa e carregamento e permitida quando as chaves se correspondem ou quando o bit de protegao de pesquisa e carregamento da chave de armazenamento e zero. As chaves sao ditas correspondentes quando os quatro bits de controle de acesso da chave de armazenamento sao iguais a chave de acesso ou quando a chave de acesso e zero. A agao de protegao e resumida como segue.
[0205] Quando o acesso a armazenamento e iniciado pela CPU e protegao controlada por chave se aplica, a chave PSW e a chave de acesso, exceto que a chave de acesso e especificada em um registro geral para o primeiro operando de MOVE TO SECONDARY e MOVE WITH DESTINATION KEY, para o segundo operando de MOVE TO PRIMARY, MOVE WITH KEY e MOVE WITH SOURCE KEY, e tanto para o primeiro ou o segundo operando de MOVE PAGE. A chave PSW ocupa as posigoes de bit 8-11 da palavra de status de programa atual.
[0206] Quando o acesso a CPU e proibido por causa de protegao controlada por chave, a execugao da instrugao e terminada, e uma interrupgao de programa para uma excegao de protegao ocorre. No entanto, a unidade de operagao ou a execugao da instrugao pode ser suprimida.
[0207] A chave de armazenamento e associada a cada bloco de armazenamento de 4Kilobytes que esta disponivel na configuragao. As chaves de armazenamento nao sao parte de armazenamento enderegavel. Em uma concretizagao, a chave de armazenamento tem o seguinte formato:
[0208] As posigoes de bit na chave de armazenamento sao alocados como a seguir:
[0209] Bits de Controle de Acesso (ACC): Se uma referencia e sujeita a protegao controlada por chave, os quatro bits de controle de acesso sao combinados com a chave de acesso de quatro bits quando as informagoes sao armazenadas e quando as informagoes sao pesquisadas e carregadas de um local que e protegido contra pesquisa e carregamento.
[0210] Bit de Protegao de Pesquisa e Carregamento (F): Se uma referencia e sujeita a protegao controlada por chave, o bit de protegao de pesquisa e carregamento controla se a protegao controlada por chave se aplica a referencias do tipo pesquisa e carregamento: um zero indica que somente referencias do tipo armazenamento sao monitoradas e que pesquisa e carregamento com qualquer chave de acesso e permitido; um indica que protegao controlada por chave se aplica a ambos pesquisa e carregamento e armazenamento.
[0211] Bit de Referencia (R) : o bit de referencia normalmente e configurado para um toda vez que um local no o bloco de armazenamento correspondente e referido a armazenamento ou a pesquisa e carregamento de informagoes.
[0212] Bit de Troca (C): o bit de troca e configurado para um todas as vezes que informagoes sao armazenadas em um local no bloco de armazenamento correspondente.
[0213] Quando DAT melhorada se aplica, as seguintes condigoes adicionais estao em efeito:
[0214] Quando o controle de formato de STE (FC, bit 53 da entrada de tabela de segmento usado durante a tradugao) e zero, o bit 55 da entrada de tabela de pagina usado durante a tradugao e a sobreposigao no registro de alteragao (CO) para a pagina. Quando o bit CO na entrada de tabela de pagina e um, registro de alteragao e imprevisivel para qualquer operagao de armazenamento na pagina.
[0215] Quando o bit de controle de formato (FC) na entrada de tabela de segmento e um, o seguinte se aplica: - A posigao de bit 47 da entrada de tabela de segmento contem o controle de validade de ACCF. O controle de validade de ACCF determina a validade dos bits de protegao de pesquisa e carregamento e de controle de acesso no STE. Quando o controle de validade de ACCF e zero, protegao controlada por chave usa os bits de protegao de pesquisa e carregamentos e de controle de acesso na chave de armazenamento para o bloco de 4K bytes correspondente ao enderego. - Quando o controle de validade de ACCF e um, as posigoes de bit 48-52 da entrada de tabela de segmento contem os bits de controle de acesso e o bit de protegao de pesquisa e carregamento para o segmento. Ao determinar a acessibilidade para um operando de armazenamento, e imprevisivel se os bits 48-52 do STE ou os bits 0-4 das chaves de armazenamento individuais os blocos de 4K bytes que compoem o segmento sao examinados.
[0216] O bit 55 da entrada de tabela de segmento e a sobreposigao no registro de alteragao (CO) para o segmento. Quando o bit CO na entrada de tabela de segmento e um, e imprevisivel se o bit de troca e configurado para qualquer operagao de armazenamento no segmento.
[0217] Referencias a chave de armazenamento sao tratadas como a seguir:
[0218] Sempre que uma referencia a armazenamento e feita e protegao controlada por chave se aplica a referencia, os quatro bits de controle de acesso e o bit de protegao de pesquisa e carregamento associados ao local de armazenamento sao inspecionados simultaneamente e simultaneamente com a referencia ao local de armazenamento. Quando (1) DAT melhorada nao se aplica, (2) DAT melhorada se aplica mas o armazenamento e acessado por meio da entrada de tabela de segmento, em que o controle de formato de STE e zero, ou (3) DAT melhorada se aplica, o armazenamento e acessado por meio de uma entrada de tabela de segmento, em que o controle de formato de STE e um, mas o controle de validade de ACCF e zero, os bits de controle de acesso e o bit de protegao de pesquisa e carregamento estao nos bits 0-4 da chave de armazenamento para o bloco de 4K bytes. Quando DAT melhorada se aplica e o armazenamento e acessado por meio de uma entrada de tabela de segmento, em que ambos o controle de formato de STE e o controle de validade de ACCF sao um, e imprevisivel se os bits 0-4 da chave de armazenamento ou os bits 48-52 da entrada de tabela de segmento proveem os bits de controle de acesso e bit de protegao de pesquisa e carregamento. Alem disso, quando a entrada de tabela de segmento prove os bits de controle de acesso e bit de protegao de pesquisa e carregamento, uma copia armazenada no buffer de tradugao look-aside pode ser usada.
[0219] Quando DAT melhorada se aplica, e (a) o controle de formato de STE e zero e a sobreposigao no registro de alteragao e um na entrada de tabela de pagina usada por DAT, ou (b) o controle de formato de STE e um e a sobreposigao no registro de alteragao e um na entrada de tabela de segmento usada por DAT, e imprevisivel se a CPU configura o bit de troca ao executar uma operagao de armazenamento. A sobreposigao no registro de alteragao pode ser armazenada em buffer na copia de buffer de tradugao lookaside do PTE ou STE.
[0220] Quando a caracteristica de SSKE condicional nao esta instalada, a instrugao SET STORAGE KEY EXTENDED faz com que todos os sete bits estejam simultaneamente na chave de armazenamento. Quando a caracteristica de SSKE condicional esta instalada, a instrugao SET STORAGE KEY EXTENDED pode ser usada para toda ou porgoes da chave de armazenamento com base em criterios especificados por programa.
[0221] A instrugao INSERT STORAGE KEY EXTENDED prove uma imagem consistente dos bits 0-6 da chave de armazenamento para um bloco de 4K bytes. Da mesma forma, as instrugoes INSERT VIRTUAL STORAGE KEY e TEST PROTECTION proveem uma imagem consistente dos bits de controle de acesso e do bit de protegao de pesquisa e carregamento.
[0222] A instrugao RESET REFERENCE BIT EXTENDED modifica apenas o bit de referencia. Todos os outros bits da chave de armazenamento permanecem inalterados. O bit de referencia e o bit de troca sao examinados simultaneamente para configurar o codigo de condigao.
[0223] O registro de referencias provido pelo bit de referencia nao e necessariamente preciso. No entanto, na maioria das situagoes, o registro de referencia coincide aproximadamente com a referencia de armazenamento relacionada. O bit de troca pode ser configurado nos casos em que nenhum armazenamento ocorreu.
[0224] Como observado por CPUs, a chave de armazenamento pesquisa e carrega e armazena devido a instrugoes que explicitamente manipulam uma chave de armazenamento (INSERT STORAGE KEY EXTENDED, INSERT VIRTUAL STORAGE KEY, RESET REFERENCE BIT EXTENDED e SET STORAGE KEY EXTENDED) sao ordenados entre eles e entre referencias de operando de armazenamento como se os acessos de chave de armazenamento fossem eles mesmos pesquisa e carregamento e armazenamentos de operando de armazenamento, respectivamente.
[0225] Chaves de armazenamento podem ser configuradas por meio de uma instrugao SET STORAGE KEY EXTENDED (SSKE). Em uma concretizagao, a instrugao SSKE tem
[0226] A chave de armazenamento para um ou mais blocos de 4K bytes e substituda pelo valor no primeiro registro de operando. Quando a facilidade de SSKE condicional esta instalada, certas fungoes da operagao de configuragao de chave podem ser ignoradas. Quando a facilidade de SSKE condicional nao esta instalada ou quando a facilidade de SSKE condicional esta instalada e ambos os MR e MC do campo M3 sao zero, a chave de armazenamento o bloco de 4K bytes que e enderegado pelos conteudos de registro geral R2 e substituda por bits do registro geral R1. A instrugao e concluda sem alteragao do codigo de condigao.
[0227] Quando a facilidade de SSKE condicional esta instalada e um ou ambos os bits MR e MC sao um, os bits de controle de acesso, bit de protegao de pesquisa e carregamento e, opcionalmente, o bit de referencia e bit de troca da chave de armazenamento que e enderegados pelos conteudos de registro geral R2 sao comparados com bits correspondentes no registro geral R1. Se os bits comparados forem iguais, entao, nenhuma alteragao e feita a chave; ao contrario, os bits selecionados da chave sao substitudos pelos bits correspondentes no registro geral R1. A chave de armazenamento antes de qualquer modificagao e inserida no registro geral R1, e o resultado e indicado pelo codigo de condigao.
[0228] Quando a facilidade de DAT melhorada esta instalada, as operagoes acima podem ser repetidas para as chaves de armazenamentos de varios blocos de 4K bytes dentro do mesmo bloco de 1MB, sujeito ao controle do controle de bloco multiplo, descrito abaixo. Em uma concretizagao, o campo M3 tem o seguinte formato:
[0229] Os bits do campo M3 sao definidos como a seguir:
[0230] Reservado: Bit 0 e reservado.
[0231] Mascara de Atualizagao de Bit de Referencia (MR) : O bit MR, bit 1 do campo M3, controla se as atualizagdes ao bit de referencia na chave de armazenamento podem ser ignoradas, como descrito abaixo.
[0232] Mascara de Atualizagao do Bit de Troca (MC): O bit MC, bit 2 do campo M3, controla se as atualizagdes ao bit de troca na chave de armazenamento podem ser ignoradas, como descrito abaixo.
[0233] Controla de Bloco Multiplo (MB): O bit MB, bit 3 do campo M3, controla se a chave de armazenamentos para varios blocos de armazenamento de 4K bytes pode ser configurada, como descrito em Configuragao de Chaves de Armazenamentos em Varios Blocos de 4K Bytes.
[0234] Quando a facilidade de DAT melhorada nao esta instalada, a posigao de bit 3 do campo M3 e reservada. Quando a facilidade de SSKE condicional esta instalada, o processamento e como segue:
[0235] Quando ambos os MR e MC, os bits 1 e 2 do campo M3, sao zero, a instrugao e concluda como se a facilidade de SSKE condicional nao estivesse instalada. A chave de armazenamento para o bloco de 4K bytes que e enderegado pelos conteudos de registro geral R2 e substituda por bits do registro geral R1, e a instrugao e concluda sem alterar o codigo de condigao.
[0236] Quando um ou ambos os bits MR e MC sao um, o processamento e como segue:
[0237] Antes de qualquer modificagao, os conteudos da chave de armazenamento para o bloco de 4K bytes que e enderegado pelo registro geral R2 sao colocados nas posigoes de bit 48-54 do registro geral R1, e o bit 55 do registro geral R1 e configurado para zero. Os bits 0-47 e 56-63 do registro permanecem inalterados. Se um codigo de bloco de verificagao (CBC) invalido e detectado ao pesquisar e carregar a chave de armazenamento, entao, (a) toda a chave de armazenamento para o bloco de 4K bytes e substituda pelos bits 56-62 do registro geral R1, (b) os conteudos das posigoes de bit 48-55 do registro geral R1 sao imprevisiveis e (c) a instrugao e concluda por configuragao do codigo de condigao 3.
[0238] Os bits de controle de acesso e bit de protegao de pesquisa e carregamento da chave de armazenamento para o bloco de 4K bytes designado sao comparados com os campos correspondentes nos bits 56-60 do registro geral R1. Se os campos respectivos nao forem iguais, toda a chave de armazenamento para o bloco de 4K bytes e substituda por bits do registro geral R1, e a instrugao e concluda por configuragao do codigo de condigao 1. Quando os bits de protegao de pesquisa e carregamento e de controle de acesso na chave de armazenamento sao iguais aos bits respectivos no registro geral R1, o processamento continua como descrito abaixo.
[0239] Quando ambos os bits MR e MC sao um, a instrugao e concluda configurando o codigo de condigao 0. A chave de armazenamento permanece inalterada nesse caso.
[0240] Quando o bit MR e zero e o bit MC e um, entao, o bit de referencia da chave de armazenamento para o bloco de 4k bytes designado e comparado com o bit 61 do registro geral R1. Se os bits sao iguais, a instrugao e concluda configurando o codigo de condigao 0. A chave de armazenamento permanece inalterada nesse caso. Se os bits nao forem iguais, entao, (a) toda a chave de armazenamento para o bloco de 4k bytes designado e substituda pelos bits no registro geral R1 e a instrugao e concluda configurando codigo de condigao 1; ou (b) o bit de referencia para a chave de armazenamento e substitudo pelo bit 61 do registro geral R1, o bit de troca para a chave e imprevisivel, e a instrugao e concluda configurando codigo de condigao 2. E imprevisivel se o codigo de condigao 1 ou 2 e configurado.
[0241] Quando o bit MC e zero e o bit MR e um, entao, o bit de troca da chave de armazenamento para o bloco de 4k bytes designado e comparado com o bit 62 do registro geral R1. Se os bits forem iguais, a instrugao e concluda configurando o codigo de condigao 0. A chave de armazenamento permanece inalterada nesse caso. Se os bits nao forem iguais, entao, (a) toda a chave de armazenamento para o bloco de 4k bytes designado e substituda pelos bits no registro geral R1, e a instrugao e concluda configurando o codigo de condigao 1; ou (b) o bit de troca para a chave de armazenamento e substitudo pelo bit 62 do registro geral R1, o bit de referencia para a chave e imprevisivel, e a instrugao e concluda configurando o codigo de condigao 2. E imprevisivel se o codigo de condigao 1 ou 2 e configurado.
[0242] Quando a facilidade de DAT melhorada nao esta instalada ou quando a facilidade esta instalada mas o controle de bloco multiple e zero, o registro geral R2 contem um enderego real. Quando a facilidade de DAT melhorada esta instalada e o controle de bloco multiplo e um, o registro geral R2 contem um enderego absoluto. No modo de enderegamento de 24 bits, os bits 40-51 do registro geral R2 designam um bloco de 4K bytes em armazenamento real ou absoluto, e os bits 0-39 e 52-63 do registro sao ignorados. No modo de enderegamento de 31 bits, os bits 33-51 do registro geral R2 designam um bloco de 4K bytes em armazenamento real ou absoluto, e os bits 0-32 e 52-63 do registro sao ignorados. No modo de enderegamento de 64 bits, os bits 0-51 do registro geral R2 designam um bloco de 4K bytes em armazenamento real ou absoluto, e os bits 52-63 do registro sao ignorados. Porque este e um enderego real ou absoluto, o enderego designando o bloco de armazenamento nao esta sujeito a tradugao dinamica de enderego. A referencia a chave de armazenamento nao esta sujeita a uma excegao de protegao.
[0243] O novo valor de chave de armazenamento de sete bits, ou bits selecionados do mesmo, e obtido das posigoes de bit 56-62 do registro geral R1. Os conteudos das posigoes de bit 0-55 e 63 do registro sao ignorados. Quando a facilidade de SSKE condicional esta instalada, e um ou ambos os bits MR e MC sao um, a posigao de bit 63 deve conter um zero; ao contrario, o programa pode nao operar compativelmente no futuro.
[0244] Uma fungao de serializagao e verificagao de ponto de controle e realizada antes da operagao comegar e novamente apos a operagao ser concluda, exceto que, quando a facilidade de SSKE condicional esta instalada e o codigo de condigao resultante e 0, e imprevisivel se uma fungao de serializagao e verificagao de ponto de controle e realizada apos a conclusao da operagao. Para qualquer acesso de armazenamento, por qualquer CPU ou programa de canal, concludo para o bloco de 4K bytes designado antes ou apos a configuragao da chave por essa instrugao, a configuragao associada dos bits de referencia e troca para um na chave de armazenamento para o bloco tambem e concluda antes ou apos, respectivamente, a execugao dessa instrugao.
[0245] Quando a facilidade de DAT melhorada nao esta instalada, ou quando a facilidade esta instalada, mas o controle de bloco multiple e zero, a chave de armazenamento para um unico bloco de 4K bytes e configurada, como descrito acima. Quando a facilidade de DAT melhorada esta instalada e o controle de bloco multiplo e um, as chaves de armazenamentos para varios blocos de 4K bytes dentro de um bloco de 1Megabyte podem ser configuradas, comegando com o bloco especificado pelo segundo enderego de operando, e continuando a direita com cada bloco sucessivo ate o limite seguinte de 1Megabyte. Nesse caso, SET STORAGE KEY EXTENDED e interrompivel e o processamento e como segue:
[0246] Quando uma interrupgao ocorre (que nao aquela apos o termino), o registro geral R2 foi atualizado, de modo que a instrugao, quando re-executada, prossegue no ponto de interrupgao. Se um ou ambos os bits MR ou MC forem um, o codigo de condigao e imprevisivel; ao contrario, o codigo de condigao e inalterado.
[0247] Quando a instrugao e concluda sem interrupgao, o registro geral R2 foi atualizado para o limite seguinte de 1Megabyte. Se um ou ambos os bits MR ou MC forem um, o codigo de condigao 3 e configurado; ao contrario, o codigo de condigao e inalterado.
[0248] Em qualquer um dos dois casos acima, quando um ou ambos os bits MR ou MC sao um, os bits 48-55 do registro geral R1 sao imprevisivel. Quando processamento de bloco multiple ocorre e os campos R1 e R2 designam o mesmo registro, o segundo enderego de operando e colocado no registro. Quando processamento de bloco multiplo ocorre nos modos de enderegamento de 24 bits ou 31 bits, os bits mais a esquerda que nao sao parte do enderego nas posigoes de bit 32-63 do registro geral R2 sao definidos como zero; os bits 0-31 do registro sao inalterados.
[0249] Quando a facilidade de SSKE condicional nao esta instalada, ou quando ambos os bits MR e MC do campo M3 sao zero, o codigo de condigao permanece inalterado. Quando a facilidade de SSKE condicional esta instalada, e um ou ambos os bits MR e MC sao um, o codigo de condigao e definido como segue: 0 - Chave de armazenamento nao configurada 1 - Chave de armazenamento totalmente configurada 2 - Chave de armazenamento parcialmente configurada 3 - Chave de armazenamento totalmente configurada; bits 48-55 do registro geral R1 sao imprevisivel. Exceqdes de Programa - Enderegamento (enderego especificado pelo registro geral R2) - Operagao Privilegiada
[0250] O registro de alteragao prove informagoes como que paginas devem ser salvas no armazenamento auxiliar quando elas sao substitudas no armazenamento principal. O registro de alteragao usa o bit de troca, (bit 6), da chave de armazenamento. O bit de troca e configurado para um todas as vezes que um acesso de armazenamento fizer com que os conteudos do bloco de armazenamento correspondente sejam alterados, e um de (a) DAT melhorada nao se aplica ou (b) DAT melhorada se aplica, e um dos seguintes e verdadeiro: - O controle de formato de STE na entrada de tabela de segmento usada por DAT e zero, e a sobreposigao no registro de alteragao (CO) na entrada de tabela de pagina usada por DAT e zero. - O controle de formato de STE na entrada de tabela de segmento usada por DAT e um, e a sobreposigao no registro de alteragao (CO) na entrada de tabela de segmento usada por DAT e zero.
[0251] Um acesso de armazenamento que nao altera os conteudos de armazenamento pode ou nao configurar o bit de troca para um. O bit de troca nao e configurado para um para uma tentativa de armazenamento se o acesso for proibido. Em particular:
[0252] Para a CPU, um acesso de armazenamento e proibido sempre que uma excepao de acesso existir para aquele acesso, ou sempre que uma excepao existir que seja de prioridade superior a prioridade de uma excepao de acesso para aquele acesso.
[0253] Para o subsistema de canal, um acesso de armazenamento e proibido sempre que uma violapao de protepao controlada por chave existir para aquele acesso.
[0254] O registro de alterapao e sempre ativo e ocorre para todos os acessos de armazenamento ao armazenamento, incluindo aqueles feitos por qualquer CPU (exceto quando suprimidos pela sobreposipao no registro de alterapao, descrito neste documento), qualquer facilidade de operador ou o subsistema de canal. Ocorre para referencias implicitas feitas pela maquina, tais como aquelas sao parte de interruppoes.
[0255] O registro de alterapao nao ocorre para os operandos das seguintes instrupoes uma vez que eles diretamente modificam uma chave de armazenamento sem modificar um local de armazenamento:
[0256] - RESET REFERENCE BIT EXTENDED
[0257] - SET STORAGE KEY EXTENDED (o bit de troca e configurado para um valor especificado).
[0258] Os bits de troca que tenham sido alterados de zero para um nao sao necessariamente restaurados para zero na retentativa da CPU.
[0259] O bit de troca de chave de armazenamento e configurado para um toda vez que um acesso de armazenamento faz com que os conteudos do bloco de armazenamento correspondente sejam alterados. Um acesso de armazenamento que nao altera os conteudos de armazenamento pode ou nao configurar o bit de troca para um. O bit de troca nao e configurado para um em uma tentativa de armazenamento se o acesso for proibido. Sobreposigao no registro de alteragao permite que a configuragao do bit de troca da chave de armazenamento seja ignorada.
[0260] Quando DAT melhorada se aplica e o enderego virtual e traduzido por meio de entradas de tabela de DAT, uma sobreposigao no registro de alteragao (CO) e provida no bit 55 de ambas a entrada de tabela de segmento e a entrada de tabela de pagina. Quando o bit de controle de formato de STE (FC) 53 da entrada de tabela de segmento e zero, a sobreposigao no registro de alteragao na entrada de tabela de pagina se aplica. Quando a sobreposigao no registro de alteragao no PTE e zero, o registro de alteragao ocorre para operagoes de armazenamento para o bloco de 4K byte. Quando a sobreposigao no registro de alteragao e um, e imprevisivel se o registro de alteragao ocorre para operagoes de armazenamento para o bloco de 4K byte. Quando o controle de formato de STE e um, a sobreposigao no registro de alteragao no STE se aplica. Quando a sobreposigao do registro de alteragao no STE e zero, o registro de alteragao ocorre para operagoes de armazenamento em qualquer um dos 256 blocos de 4K bytes do segmento. Quando a sobreposigao no registro de alteragao no STE e um, e imprevisivel se o registro de alteragao ocorre a qualquer um dos 256 blocos de 4K bytes do segmento.
[0261] A sobreposigao no registro de alteragao nao se aplica a enderegos reais ou absolutos, ou a um enderego virtual que e traduzido por meio de uma designagao de espago real.Formato da Instrugao PFMF
[0262] Submetida aos controles no primeiro registro de operando, a fungao de gerenciamento de quadro e realizada para o quadro de armazenamento representado pelo segundo enderego de operando. Os conteudos do registro geral R1 sao como seguem:
[0263] Indicagoes de fungao de gerenciamento de quadro: As posigoes de bit 44-47 do registro geral R1 contem as indicagoes de fungao de gerenciamento de quadro (FMFI), como seguem:
[0264] Configuragao de Controle de Chave (SK): O bit 46 controla se a chave de armazenamento para cada bloco de 4K bytes no quadro e configurada a partir dos bits 56-62 do registro geral R1. Quando o controle de SK e zero, as chaves nao sao configuradas; quando o controle de SK e um, as chaves sao configuradas.
[0265] Limpeza de Controle de Quadro (CF): O bit 47 controla se o quadro e configurado para zero. Quando o controle de CF e zero, nenhuma operagao de limpeza e realizada. Quando o controle de CF e um, o quadro e limpo para zero.
[0266] Indicagao de Uso (UI): A posigao de bit 48 do registro geral R1 contem a indicagao de uso (UI). Quando o bit 48 e zero, isso indica que o programa nao antecipa o uso imediato do quadro. Quando o bit 48 e um, isso indica que o programa antecipa o uso do quadro no futuro proximo.
[0267] Codigo de Tamanho de Quadro (FSC): Os bits 49-51 do registro geral R1 contem o codigo de tamanho de quadro (FSC), como segue:
[0268] Mascara de Atualizagao de Bit de Referencia (MR): Quando a configuragao do controle de chave, o bit 46 do registro geral R1, e um, o bit 53 do registro geral R1 controla se as atualizagoes ao bit de referencia na chave de armazenamento podem ser ignoradas, como descrito abaixo.
[0269] Mascara de Atualizagao de Bit de Troca (MC): Quando a configuragao do controle de chave, o bit 46 do registro geral R1, e um, o bit 54 do registro geral R1 controla se as atualizagoes ao bit de troca na chave de armazenamento podem ser ignoradas.
[0270] O tratamento dos bits MR e MC e identico ao tratamento dos bits correspondentes do campo M3 da instrugao SET STORAGE KEY EXTENDED, exceto que o registro geral R1 nao e atualizado com os conteudos da chave anterior, e o codigo de condigao nao e alterado.
[0271] Chave: Quando a configuragao de controle de chave, o bit 46 do registro geral R1, e um, os bits 56-62 do registro contem a chave de armazenamento a ser configurada para cada bloco de 4K bytes no quadro, com os bits de protegao de acesso, bit de protegao de pesquisa e carregamento, bit de referencia e bit de troca nas posigoes de bit 56-59, 60, 61, e 62, respectivamente.
[0272] O registro geral R2 contem o enderego real ou absoluto do quadro de armazenamento em que a fungao de gerenciamento de quadro deve ser executada. Quando o codigo de tamanho de quadro designa um bloco de 4K byte, o segundo enderego de operando e real; quando o codigo de tamanho de quadro designa um bloco de 1M byte, o segundo enderego de operando e absoluto. O tratamento do enderego no registro geral R2 depende do modo de enderegamento. No modo de enderegamento de 24 bits, os conteudos das posigoes de bit 40-51 do registro, com 12 zeros mais a direita, sao o enderego, e os bits 0-39 e 52-63 no registro sao ignorados. No modo de enderegamento de 31 bits, os conteudos das posigoes de bit 33-51 do registro, com 12 zeros mais a direita, sao o enderego, e os bits 0-32 e 52-63 no registro sao ignorados. No modo de endereamento de 64 bits, os conteudos das posigoes de bit 0-51 do registro, com 12 zeros mais a direita, sao o enderego, e os bits 52-63 no registro sao ignorados.
[0274] Quando o codigo de tamanho de quadro e 0, as fungoes de gerenciamento de quadro especificadas sao executadas para o quadro de 4K bytes especificado pelo segundo operando. O registro geral R2 nao e modificado nesse caso.
[0275] Quando o codigo de tamanho de quadro e 1, as fungoes de gerenciamento de quadro especificadas sao realizadas para um ou mais blocos de 4K bytes dentro do quadro de 1M byte, comegando com o bloco especificado pelo segundo enderego de operando, e continuando a direita com cada bloco sucessivo ate o limite seguinte de 1M byte.
[0276] Nesse caso, a Execugao da Fungao de Gerenciamento de quadro e interrompivel, o processamento e como segue:
[0277] Quando uma interrupgao ocorre (que nao aquela apos o termino), o segundo enderego de operando no registro geral R2 e atualizado pelo numero de blocos de 4K bytes processado, de modo que a instrugao, quando reexecutada, prossegue no ponto de interrupgao.
[0278] Quando a instrugao e concluda sem interrupgao, o segundo enderego de operando no registro geral R2 e atualizado para o limite seguinte de 1M byte.
[0279] Quando o codigo de tamanho de quadro e 1 nos modos de enderegamento de 24 bits ou 31 bits, os bits mais a esquerda que nao sao parte do enderego nas posigoes de bit 32-63 do registro geral R2 sao definidos como zero; os bits 0-31 do registro sao inalterados.
[0280] Quando o controle de limpeza de quadro e um, referencias para o armazenamento principal dentro do segundo operando nao sao necessariamente referencias de acesso unico e nao sao necessariamente executadas em uma diregao da esquerda para a direita como observado por outras CPUs e por programas de canal. A operagao de limpeza nao e submetida a protegao controlada por chave.
[0281] Quando o controle de chave de armazenamento e um, a operagao para cada bloco de 4K bytes e similar aquela descrita em relagao ao SSKE, exceto que, quando as chaves para varios blocos sao configuradas, o codigo de condigao e os conteudos de registro geral R1 sao inalterados. Uma fungao de serializagao e sincronizagao de ponto de controle e realizada antes de a operagao comegar e novamente apos a operagao ser concluda, exceto que, quando os sete bits de todas as chaves de armazenamento a serem configuradas sao os mesmos dos bits 56-62 do registro geral R1, ou quando os bits MR e MC permitem que todas as chaves de armazenamentos permanegam inalteradas, e imprevisivel se as operaqoes de serializagao e sincronizagao de ponto de controle sao executadas apos a operagao ser concluda. E imprevisivel se a operagao de limpeza de quadro ou configuragao de chave e realizada primeiro quando ambos os respectivos controles sao um. Desde que nao haja nenhum outro acesso ao armazenamento por outras CPUs ou o subsistema de canal, os resultados finais da instrugao refletem o valor chave especificado incluindo os valores de R e C especificados quando MR e MC sao zero.
[0282] Uma excegao de especificagao e reconhecida e a operagao e suprimida por qualquer uma das seguintes condigoes:
[0283] Os bits 32-45, 52, 55 ou 63 do registro geral R1 nao sao zero.
[0284] O codigo de tamanho de quadro especifica um valor reservado.
[0285] Codigo de Condigao: O codigo permanece inalterado.
[0286] Referencia e agora feita a figura 9 ilustrando uma concretizaao de um fluxograma da Fungao de Execugao de Gerenciamento de quadro, em que as chaves de armazenamento associadas sao configuradas de acordo com a instrugao.
[0287] Em 910, uma instrugao de maquina definida para a arquitetura de maquina e obtida. A instrugao de maquina contem um codigo de operagao para uma instrugao de gerenciamento de quadro. A instrugao de maquina tem um primeiro campo identificando um primeiro registro geral e um segundo campo identificando um segundo registro geral. Em 912, um enderego de um primeiro bloco inicial de dados dentro de um bloco grande de dados na memoria ou armazenamento principal e obtido do segundo registro geral. Em 914, informagoes de gerenciamento de quadro sao obtidas do primeiro registro geral. As informagoes de gerenciamento de quadro tem um campo de chave com um primeiro conjunto de bits de protegao de acesso. Para um bloco grande de data, um segundo enderego de operando de um primeiro bloco inicial de dados do bloco grande de dados e obtido do segundo registro geral. O bloco grande de dados tem uma pluralidade de blocos pequenos de dados. Cada um dos blocos pequenos tem uma chave de armazenamento correspondente tendo bits de protegao de acesso de armazenamento. Em 916, para o bloco grande de dados, os bits de protegao de acesso do campo de chave sao configurados nos bits de protegao de acesso de armazenamentos de cada chave associada ao bloco grande. Para o bloco pequeno de dados, um enderego de operando de um primeiro bloco pequeno inicial de dados e obtido do segundo registro geral. Cada bloco de dados tem uma chave de armazenamento correspondente. A chave de armazenamento tem bits de protegao de acesso de armazenamento. Os bits de protegao de acesso sao configurados nos bits de protegao de acesso de armazenamento da chave de armazenamento para o bloco pequeno.
[0288] Referencia e agora feita a figura 10 que ilustra um fluxograma de uma concretizagao da Fungao de Execugao de Gerenciamento de quadro, em que os quadros indicados sao limpos.
[0289] Em 1010, uma instrugao de maquina definida para a arquitetura de maquina e obtida. A instrugao de maquina contem um codigo de operagao para uma instrugao de gerenciamento de quadro. A instrugao de maquina tem um primeiro campo identificando um primeiro registro geral e um segundo campo identificando um segundo registro geral. Em 1012, Informagoes claras de quadro tendo um campo de tamanho de quadro sao obtidas do primeiro registro geral. Em 1014, uma determinagao e feita sobre se o campo de tamanho de quadro indica que um quadro de armazenamento e um de um bloco pequeno de dados na memoria ou um bloco grande de dados na memoria. Em 1016, um segundo enderego de operando do quadro de armazenamento em que a instrugao de maquina deve ser executada e obtido do segundo registro geral. O segundo enderego de operando e um enderego real de um bloco pequeno de dados na memoria ou um enderego absoluto de um bloco grande de dados na memoria. Em 1018, se o quadro de armazenamento indicado for um bloco pequeno de dados, entao, o bloco pequeno de dados e limpo configurando todos os bytes do bloco pequeno para zero. Se o quadro de armazenamento indicado for um bloco grande de dados, um enderego de operando de um primeiro bloco inicial de dados do bloco grande de dados e obtido do segundo registro geral. O bloco grande de dados tem uma primeira pluralidade de blocos pequenos de dados. Em 1020, cada um dos blocos pequenos e limpo configurando todos os bytes de dados para zero iniciando com o primeiro bloco inicial de dados.
[0290] Em outra concretizagao da fungao de gerenciamento de quadro, uma indicagao de tamanho de bloco e obtida de um campo da instrugao de maquina ou um campo do primeiro registro geral. Com base na indicagao de tamanho de bloco, uma determinagao e feita sobre se o operando enderegado e um do bloco grande de dados ou do bloco pequeno de dados. O enderego de operando e um enderego absoluto do bloco grande de dados ou o enderego real do bloco pequeno de dados. O enderego real e sujeito a prefixagao para determinar o enderego absoluto. Para o bloco grande de dados, um enderego de um bloco seguinte de dados e salvo no segundo registro geral. O bloco seguinte de dados e um bloco de dados seguinte ao primeiro bloco de dados. O enderego do bloco seguinte de dados e determinado encontrando um limite do bloco grande de dados ou em resposta a um evento de interrupgao de programa.
[0291] Em ainda outra concretizagao da fungao de gerenciamento de quadro, o campo de gerenciamento de quadro tem um campo de controle de referencia e um campo de controle de alteragao. O campo de chave tem um bit de protegao de pesquisa e carregamento, um bit de troca e um bit de referencia. A chave de armazenamento tem um bit de protegao de pesquisa e carregamento de armazenamento, um bit de referencia de armazenamento e um bit de troca de armazenamento. Se o campo de controle de referencia e o campo de controle de alteragao nao estao habilitados, o bit de protegao de pesquisa e carregamento, o bit de referencia e o bit de troca do campo de chave sao configurados em bits de protegao de pesquisa e carregamento de armazenamentos, os bits de referencia de armazenamento e bits de troca de armazenamento correspondentes da chave de armazenamento associada. Se o campo de controle de referencia ou o campo de controle de alteragao estiver habilitado e os bits de protegao de acesso do campo de chave nao for igual aos bits de protegao de acesso de armazenamento da chave de armazenamento ou o bit de protegao nao e igual ao bit de protegao de armazenamento, o bit de protegao de pesquisa e carregamento, o bit de referencia e o bit de troca do campo de chave sao configurados nos bits de protegao de pesquisa e carregamento de armazenamento, os bits de referencia de armazenamento e bits de troca de armazenamento correspondentes de cada armazenamento associado.
[0292] Em outra concretizagao, se a instrugao de maquina nao e nativa a arquitetura de instrugao de maquina do processador, a instrugao de maquina e interpretada para identificar uma rotina de software predeterminada para emulagao de uma operagao da instrugao de maquina. A rotina de software predeterminada contem uma pluralidade de instrugoes. A rotina de software predeterminada e executada.
[0293] Se o bit e um, os armazenamentos sao desabilitados. Quando nenhuma condigao de excegao com maior prioridade existir, uma tentativa de armazenar quando o bit de protegao de DAT e um faz uma excegao de protegao ser reconhecida. O bit de protegao de DAT na entrada de tabela de segmento e tratado como sendo OR'ed com o bit 54 ao determinar se a protegao de DAT se aplica a pagina. Quando DAT melhorada se aplica, o bit de protegao de DAT em qualquer entrada de tabela de regiao usada na tradugao e tambem tratado como sendo OR'ed com o bit 54 ao determinar se a protegao de DAT se aplica.
[0294] Sobreposigao no registro de Alteragao (CO): Quando DAT melhorada nao se aplica, o bit 55 da entrada de tabela de pagina deve conter zero; ao contrario, uma excegao de especificagao de tradugao e reconhecida como parte da execugao de uma instrugao usando aquela entrada para tradugao de enderego. Quando DAT melhorada se aplica e o controle de formato de STE e zero, o bit 55 da entrada de tabela de pagina e a sobreposigao no registro de alteragao para a pagina.
[0295] A posigao de bit 52 da entrada deve conter zero; ao contrario, uma excegao de especificagao de tradugao e reconhecida como parte da execugao de uma instrugao usando aquela entrada para tradugao de enderego. As posigoes de bit 56-63 nao sao atribudas e sao ignoradas.
[0296] Esta segao descreve o processo de tradugao sendo realizado implicitamente antes de um enderego virtual ser usado para acessar o armazenamento principal.
[0297] A tradugao de um enderego virtual e controlada pelo bit do modo de DAT e bits de controle de espago de enderego na palavra de status de programa e pelos ASCEs nos Registros de controle 1, 7 e 13 e como especificado pelos Registros de acesso. Quando o ASCE usado em uma tradugao e uma designagao de primeira tabela de regiao, a tradugao e realizada por meio de uma primeira tabela de regiao, segunda tabela de regiao, terceira tabela de regiao, tabela de segmento e tabela de pagina, todas as quais residem no armazenamento real ou absoluto. Quando o ASCE e um tipo de nivel inferior de designagao de tabela (designagao de segunda tabela de regiao, designagao de terceira tabela de regiao ou designagao de tabela de segmento), a tradugao e realizada por meio apenas dos niveis de tabela comegando com o nivel designado, e os bits de enderego virtual que, se nao zero, requerem o uso um nivel ou niveis superiores de tabela devem ser todos zero; ao contrario, uma excegao do tipo ASCE e reconhecida. Quando o ASCE e uma designagao de espago real, o enderego virtual e tratado como um enderego real, e as entradas de tabela no armazenamento real ou absoluto nao sao usadas.
[0298] O ASCE usado para uma tradugao de enderego particular e chamado de ASCE efetivo. Por conseguinte, quando um enderego virtual primario e traduzido, os conteudos de registro de controle 1 sao usados como o ASCE efetivo. Da mesma forma, para um enderego virtual secundario, os conteudos de registro de controle 7 sao usados; para um enderego virtual especificado por AR, o ASCE especificado pelo registro de acesso e usado; e para um enderego virtual de pagina inicial, os conteudos de registro de controle 13 sao usados.
[0299] Quando o controle de espago real no ASCE efetivo e zero, o tipo de designagao no ASCE especifica o tipo de designagao de tabela: primeira tabela de regiao, segunda tabela de regiao, terceira tabela de regiao ou tabela de segmento. A porgao correspondente do enderego virtual (primeiro indice de regiao, segundo indice de regiao, terceiro indice de regiao ou indice de segmento) e verificada contra o campo de comprimento de tabela na designagao, e e adicionado a origem na designagao para selecionar uma entrada na tabela designada. Se a entrada selecionada esta fora de sua tabela, como determinado pelo campo de comprimento de tabela na designagao, ou se o bit I e um na entrada selecionada, uma excegao na primeira tradugao de regiao, segunda tradugao de regiao, terceira tradugao de regiao ou tradugao de segmento e reconhecida, dependendo do nivel de tabela especificado pela designagao. Se os bits de tipo de tabela na entrada selecionada nao indicam o nivel de tabela esperado, uma excepao de especificagao de tradugao e reconhecida.
[0300] Embora a z/Architecture da IBM® seja mencionada neste documento, um ou mais aspectos da presente invenção sao igualmente aplicaveis a outras arquiteturas de maquina e/ou ambientes de computagao empregando entidades paginaveis ou constructos similares.
[0301] Implementagoes comerciais da facilidade eDAT e outros formatos, instrugoes e atributos divulgados neste documento podem ser implementados em hardware ou por programadores, tais como programadores de sistema operacional, gravados em, por exemplo, linguagem de montagem. Tais instrugoes de programagao podem ser armazenadas em um meio de armazenamento destinado a ser executado nativamente em um ambiente computacional, tal como o servidor z da IBM® System, ou alternativamente em maquinas executando outras arquiteturas. As instrugoes podem ser emuladas em servidores IBM® existentes e futuros e em outras maquinas ou mainframes. Elas podem ser executadas em maquinas, em que a execugao e, geralmente, em um modo de emulagao.
[0302] Um ou mais aspectos da presente invenção sao igualmente aplicaveis a, por exemplo, emulagao de maquina virtual, em que uma ou mais entidades paginaveis (por exemplo, hospedes) executam em um ou mais processadores. Como exemplo, hospedes paginaveis sao definidos pela arquitetura de Execugao Interpretativa de Inicio (SIE) descrita em “IBM® System/370 Extended Architecture”, IBM® Pub. N°. SA22-7095 (1985), que e incorporada aqui por referencia em sua totalidade.
[0303] No modo de emulagao, a instrugao especifica sendo emulada e decodificada e uma sub-rotina e executada para implementar a instrugao individual, como em uma sub- rotina ou driver, ou alguma outra tecnica e usada para prover um driver para o hardware especifico, conforme e de conhecimento daqueles versados na tecnica apos compreensao da presente descrigao. Varias tecnicas de emulagao de software e hardware sao descritas em varias patentes dos Estados Unidos, incluindo: 5.551.013, 5.574.873, 5.790.825, 6.009.261, 6.308.255 e 6.463.582, cada uma das quais e aqui incorporada por referencia. Muitos outros ensinamentos ainda ilustram uma variedade de formas de se alcangar a emulagao de um conjunto de instrugoes com arquitetura para uma maquina alvo.
[0304] As varias concretizagoes descritas neste documento sao apenas exemplos. Podem ocorrer muitas variates a tais concretizagoes sem se afastar do espirito da presente invenção.
[0305] Uma ou mais das capacidades da presente invenção podem ser implementadas em software, firmware, hardware ou alguma combinagao dos mesmos. Aspectos da invenção sao beneficos a muitos tipos de ambientes, incluindo outros ambientes que possuem uma pluralidade de zonas e ambientes nao divididos. Alem disso, pode nao haver nenhum complexo de processador central, mas sim, varios processadores acoplados juntos. Varios aspectos aqui descritos sao aplicaveis a ambientes de processador unico.
[0306] Embora ambientes particular sejam descritos neste documento, novamente, muitas variagoes a esses ambientes podem ser implementadas sem se afastar do espirito da presente invenção. Por exemplo, se o ambiente e dividido de forma logica, entao, mais ou menos divisoes logicas podem ser includas no ambiente. Alem disso, pode haver varios complexos de processamento central acoplados juntos. Essas sao somente algumas das variagoes que podem ser feitas sem se afastar do espirito da presente invenção. Adicionalmente, outras variagoes sao possiveis.
[0307] Embora o termo “pagina” seja usado para se referir a uma area de armazenamento de tamanho fixo ou de tamanho predefinido, o tamanho de uma pagina pode variar. Da mesma forma, o tamanho de um bloco pode variar. Pode haver diferentes tamanhos de blocos e/ou paginas. Uma pagina pode ser equivalente a um bloco. Outras estruturas podem ser alternativamente usadas ou, ao contrario, implementadas atraves de software e/ou hardware. Alem disso, nos exemplos descritos neste documento, pode haver muitas variagoes, incluindo, sem limitagao, palavras ou enderegos de diferentes tamanhos; um numero diferente de bits; bits em uma ordem diferente; mais, menos ou diferentes bits; mais, menos ou diferentes campos; campos em uma ordem diferente; diferentes tamanhos de campos etc. Novamente, esses sao providos apenas como exemplos. Muitas variagces sao possiveis.
[0308] Uma unidade de processamento inclui entidades paginaveis, tais como processador hospede, hospedeiro, outros processadores, emuladores, maquinas virtuais e/ou outros constructos similares. Um buffer inclui uma area de armazenamento e/ou memoria, bem como diferentes tipos de estruturas de dados incluindo, sem limitagao, matrizes ou entidades paginaveis. A tabela pode incluir tambem outras estruturas de dados. Uma instrugao pode se referir a outros registros. Alem disso, uma pagina, um segmento e/ou uma regiao podem ser de varios tamanhos diferentes daqueles descritos neste documento.
[0309] Um ou mais aspectos da presente invenção podem ser includos em um artigo de fabricagao (por exemplo, um ou mais produtos de programa de computador) tendo, por exemplo, meios legiveis por maquina ou usaveis por computador. Os meios tem neles incorporados, por exemplo, logica ou meios de codigo de programa legivel por computador (por exemplo, instrugoes, codigo, comandos etc.) para prover e facilitar as capacidades da presente invenção. O artigo de fabricagao pode ser includo como parte de um sistema de computador ou vendido separadamente. Adicionalmente, pelo menos um dispositivo de armazenamento de programa legivel por uma maquina incorporando pelo menos um programa de instrugoes executaveis pela maquina para executar as capacidades da presente invenção pode ser provido.
[0310] Os fluxogramas apresentados neste documento sao ilustrativos. Podem ocorrer muitas variagoes a esses diagramas ou as etapas ou operagoes descritas sem se afastar do espirito da invenção. Por exemplo, as etapas podem ser realizadas em uma ordem diferente ou etapas podem ser adicionadas, excludas ou modificadas. Todas essas alteragoes sao consideradas parte da invenção conforme reivindicada.
[0311] Embora concretizagoes tenham sido apresentadas e descritas em detalhes neste documento, sera evidente para aqueles versados na tecnica relevante que varias modificagoes, adigoes, substituigoes e semelhantes podem ser feitas sem se afastar do espirito da invenção e essas sao, portanto, consideradas parte do escopo da invenção como definida nas reivindicagoes a seguir.
Claims (7)
1. Metodo para executar uma funqao de gerenciamento de quadros em um processador (101) capaz de traduzir um endereqo virtual em um endereqo traduzido de um bloco de dados na memoria principal em um sistema de computador (100) de uma arquitetura de maquina tendo uma hierarquia de tabelas de traduqao (410, 412, 414, 416) utilizadas para a traduqao do referido endereqo virtual, a referida funqao de gerenciamento de quadro definida para a referida arquitetura da maquina, o metodo caracterizado pelo fato de que compreende: obter uma instrução de maquina que contem um opcode para uma chave de armazenamento de conjunto e instrução de limpeza; e executar a instrução de maquina que compreende: - obter um campo de gerenciamento de quadros com um campo de chave compreendendo uma pluralidade bits de proteqao de acesso e um campo indicador de tamanho de bloco; - obter um endereqo do operando de um quadro de armazenamento sobre o qual a referida instrução de maquina deve ser executada, o referido endereqo do operando sendo um dentre um endereqo de um bloco de dados grande e um endereqo para um bloco de dados pequeno; em resposta a uma funqao de chave de armazenamento de conjunto ser ativada, configurar bits de proteqao de acesso de armazenamento de cada chave de armazenamento associada com o dito bloco de dados determinado para um valor dos referidos bits de proteqao de acesso, do referido campo chave; e em resposta a uma funqao de limpeza ser ativada, limpar cada bloco de dados endereqado pelo referido endereqo do operando, definindo todos os bytes de cada bloco de dados para zero.
2. Metodo, de acordo com a reinvindicação 1, caracterizado pelo fato de que a instrução de maquina ainda compreende um primeiro campo identificando um primeiro registro geral e um segundo campo identificando de um segundo registro geral; o referido campo de gerenciamento de quadro com um campo de chave compreendendo uma pluralidade de bits de proteqao de acesso e um campo indicador de tamanho de bloco, sao obtidos a partir referido primeiro registro geral, e em que o dito endereqo do operando do quadro de armazenamento no qual a referida instrução de maquina deve ser executada e obtido a partir do segundo registro geral, onde o referido endereqo do operando e um de um endereqo absoluto para um bloco de dados grande e um endereqo real para um bloco de dados pequeno, o referido endereqo real estando sujeito a um prefixo.
3. Metodo, de acordo com a reinvindicação 1, caracterizado pelo fato de que a dita chave de armazenamento compreende ainda bits de proteqao de armazenamento, os bits de referencia de armazenamento e bits de mudanqa de armazenamento, e em que o dito campo de chave ainda compreende um bit de proteqao de busca, um bit de referencia, e um bit de mudanqa, e em que o dito bloco de dados grande e maior do que o referido bloco de dados pequeno, o referido bloco de dados pequeno ainda inclui: - obter do referido segundo registro geral um endereqo do operando do referido bloco de dados pequeno, o referido bloco de dados pequeno tendo uma chave de armazenamento constituda por uma pluralidade de bits de armazenamento de proteqao de acesso; e configurar os referidos bits de proteqao de acesso do referido campo de chave nos referidos bits de proteqao de acesso de armazenamento da chave de armazenamento.
4. Metodo, de acordo com a reinvindicação 3, caracterizado pelo fato de que, para o referido bloco de dados grande, salvar o endereqo de um proximo bloco de dados no referido segundo registro geral, o referido proximo bloco de dados sendo um bloco de dados seguinte ao referido bloco de dados grande.
5. Metodo, de acordo com a reinvindicação 1, caracterizado pelo fato de que o campo de gerenciamento de quadros ainda compreende um indicador de chave de armazenamento de conjunto e um indicador de armazenamento de limpeza, onde a etapa de determinaqao compreende ainda, se o indicador de chave de armazenamento de conjunto esta ativado, a funqao de chave de armazenamento de conjunto e ativada, se o indicador de armazenamento de conjunto nao esta habilitado, a funqao de chave de armazenamento de conjunto nao e habilitada, se o indicador de armazenamento de limpeza esta ativado, a funqao de limpeza e ativada e se o indicador de armazenamento de limpeza nao esta habilitado, a funqao de limpeza nao e habilitada.
6. Metodo, de acordo com a reinvindicação 1, caracterizado pelo fato de que a instrução de maquina nao e nativa para a arquitetura de instrução de maquina do processador, compreendendo ainda: interpretar a instrução de maquina para identificar uma determinada rotina de software para emular o funcionamento da instrução de maquina, a rotina de software predeterminada inclui uma pluralidade de instruqoes; e executar a rotina de software predeterminada.
7. Sistema caracterizado pelo fato de que compreende meios adaptados para a realizaqao de todas as etapas do metodo como definido em qualquer uma das reivindicaqoes 1 a 6.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/972,725 US8417916B2 (en) | 2008-01-11 | 2008-01-11 | Perform frame management function instruction for setting storage keys and clearing blocks of main storage |
| US11/972,725 | 2008-01-11 | ||
| PCT/EP2009/050051 WO2009087134A1 (en) | 2008-01-11 | 2009-01-05 | Dynamic address translation with frame management |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI0906426A2 BRPI0906426A2 (pt) | 2016-10-11 |
| BRPI0906426B1 true BRPI0906426B1 (pt) | 2020-12-01 |
Family
ID=40428033
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0906426-5A BRPI0906426B1 (pt) | 2008-01-11 | 2009-01-05 | Tradução de endereço dinâmica com gerenciamento de quadro |
Country Status (16)
| Country | Link |
|---|---|
| US (1) | US8417916B2 (pt) |
| EP (1) | EP2229631B1 (pt) |
| JP (1) | JP4815539B2 (pt) |
| KR (1) | KR101310412B1 (pt) |
| CN (1) | CN101911024B (pt) |
| AT (1) | ATE551653T1 (pt) |
| BR (1) | BRPI0906426B1 (pt) |
| CA (1) | CA2701086C (pt) |
| CY (1) | CY1112694T1 (pt) |
| DK (1) | DK2229631T3 (pt) |
| ES (1) | ES2381428T3 (pt) |
| IL (1) | IL206847A (pt) |
| PL (1) | PL2229631T3 (pt) |
| PT (1) | PT2229631E (pt) |
| SI (1) | SI2229631T1 (pt) |
| WO (1) | WO2009087134A1 (pt) |
Families Citing this family (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8117417B2 (en) | 2008-01-11 | 2012-02-14 | International Business Machines Corporation | Dynamic address translation with change record override |
| US8041923B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Load page table entry address instruction execution based on an address translation format control field |
| US8151083B2 (en) | 2008-01-11 | 2012-04-03 | International Business Machines Corporation | Dynamic address translation with frame management |
| US8103851B2 (en) | 2008-01-11 | 2012-01-24 | International Business Machines Corporation | Dynamic address translation with translation table entry format control for indentifying format of the translation table entry |
| US8041922B2 (en) * | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Enhanced dynamic address translation with load real address function |
| US8082405B2 (en) * | 2008-01-11 | 2011-12-20 | International Business Machines Corporation | Dynamic address translation with fetch protection |
| US8019964B2 (en) | 2008-01-11 | 2011-09-13 | International Buisness Machines Corporation | Dynamic address translation with DAT protection |
| US8677098B2 (en) | 2008-01-11 | 2014-03-18 | International Business Machines Corporation | Dynamic address translation with fetch protection |
| US8335906B2 (en) * | 2008-01-11 | 2012-12-18 | International Business Machines Corporation | Perform frame management function instruction for clearing blocks of main storage |
| US8037278B2 (en) | 2008-01-11 | 2011-10-11 | International Business Machines Corporation | Dynamic address translation with format control |
| US8086811B2 (en) | 2008-02-25 | 2011-12-27 | International Business Machines Corporation | Optimizations of a perform frame management function issued by pageable guests |
| US8176279B2 (en) | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Managing use of storage by multiple pageable guests of a computing environment |
| US8095773B2 (en) | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
| US8806179B2 (en) * | 2009-12-15 | 2014-08-12 | International Business Machines Corporation | Non-quiescing key setting facility |
| JP4915756B2 (ja) * | 2009-12-16 | 2012-04-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アドレス変換を高速化する方法及びシステム |
| US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
| US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
| US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
| GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
| DE102013216885B4 (de) | 2013-08-26 | 2025-03-27 | Volkswagen Aktiengesellschaft | Fahrzeugsitz mit einer Massageeinrichtung und mindestens einer Heizeinrichtung zur Umsetzung einer "Hot-Stone"-Massagefunktion" |
| US9996349B2 (en) * | 2015-01-27 | 2018-06-12 | International Business Machines Corporation | Clearing specified blocks of main storage |
| EP3497624A1 (en) * | 2016-08-13 | 2019-06-19 | Intel Corporation | Apparatuses, methods, and systems for neural networks |
| US11500665B2 (en) * | 2018-08-30 | 2022-11-15 | Micron Technology, Inc. | Dynamic configuration of a computer processor based on the presence of a hypervisor |
| US11182507B2 (en) | 2018-08-30 | 2021-11-23 | Micron Technology, Inc. | Domain crossing in executing instructions in computer processors |
| US11481241B2 (en) | 2018-08-30 | 2022-10-25 | Micron Technology, Inc. | Virtual machine register in a computer processor |
| CN110837372B (zh) * | 2019-11-04 | 2021-01-26 | 贵阳动视云科技有限公司 | 汇编代码清除混淆的方法、装置、介质及设备 |
| CN112965724B (zh) * | 2021-03-22 | 2024-06-07 | 中国信息安全测评中心 | 一种固件的装载基址范围的确定方法及系统 |
Family Cites Families (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
| JP2635058B2 (ja) | 1987-11-11 | 1997-07-30 | 株式会社日立製作所 | アドレス変換方式 |
| US5058003A (en) | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
| US5237668A (en) | 1989-10-20 | 1993-08-17 | International Business Machines Corporation | Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media |
| US5617554A (en) | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
| JPH0715667B2 (ja) | 1992-02-14 | 1995-02-22 | 株式会社日立製作所 | データ処理装置 |
| JP3137747B2 (ja) | 1992-07-09 | 2001-02-26 | 株式会社リコー | 昇華型熱転写用受像シート |
| WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
| US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
| US5845331A (en) | 1994-09-28 | 1998-12-01 | Massachusetts Institute Of Technology | Memory system including guarded pointers |
| US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
| GB2325061B (en) * | 1997-04-30 | 2001-06-06 | Advanced Risc Mach Ltd | Memory access protection |
| US6009261A (en) | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
| US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
| US6463582B1 (en) | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
| DE10002120B4 (de) | 1999-02-13 | 2006-04-20 | International Business Machines Corp. | Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung |
| US7069412B2 (en) | 1999-02-17 | 2006-06-27 | Elbrus International | Method of using a plurality of virtual memory spaces for providing efficient binary compatibility between a plurality of source architectures and a single target architecture |
| FR2814557B1 (fr) * | 2000-09-27 | 2002-12-27 | Gemplus Card Int | Protection contre l'exploitation abusive d'une instruction dans une memoire |
| US6574706B2 (en) | 2001-02-28 | 2003-06-03 | International Business Machines Corporation | Managing unvirtualized data pages in real storage |
| US6985951B2 (en) | 2001-03-08 | 2006-01-10 | International Business Machines Corporation | Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment |
| US7299243B2 (en) | 2001-09-19 | 2007-11-20 | Bmc Software, Inc. | System and method for controlling free space distribution by key range within a database |
| US7120746B2 (en) | 2002-09-09 | 2006-10-10 | International Business Machines Corporation | Technique for data transfer |
| US7703097B2 (en) | 2002-11-15 | 2010-04-20 | International Business Machines Corporation | Auto-commit processing in an IMS batch application |
| US7530067B2 (en) | 2003-05-12 | 2009-05-05 | International Business Machines Corporation | Filtering processor requests based on identifiers |
| US7284100B2 (en) | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
| US7020761B2 (en) | 2003-05-12 | 2006-03-28 | International Business Machines Corporation | Blocking processing restrictions based on page indices |
| US6996698B2 (en) | 2003-05-12 | 2006-02-07 | International Business Machines Corporation | Blocking processing restrictions based on addresses |
| US7234037B2 (en) | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
| US8214622B2 (en) | 2004-05-27 | 2012-07-03 | International Business Machines Corporation | Facilitating management of storage of a pageable mode virtual environment absent intervention of a host of the environment |
| US7941799B2 (en) | 2004-05-27 | 2011-05-10 | International Business Machines Corporation | Interpreting I/O operation requests from pageable guests without host intervention |
| US8387049B2 (en) | 2005-07-15 | 2013-02-26 | International Business Machines Corporation | Facilitating processing within computing environments supporting pageable guests |
| US7464249B2 (en) | 2005-07-26 | 2008-12-09 | International Business Machines Corporation | System and method for alias mapping of address space |
| JP4469783B2 (ja) | 2005-11-28 | 2010-05-26 | 株式会社東芝 | メモリ保護装置、メモリ保護システムおよびメモリ保護方法 |
| JP5073417B2 (ja) | 2007-08-27 | 2012-11-14 | 株式会社ディスコ | チャックテーブル |
| US8019964B2 (en) | 2008-01-11 | 2011-09-13 | International Buisness Machines Corporation | Dynamic address translation with DAT protection |
| US8335906B2 (en) | 2008-01-11 | 2012-12-18 | International Business Machines Corporation | Perform frame management function instruction for clearing blocks of main storage |
| US8082405B2 (en) | 2008-01-11 | 2011-12-20 | International Business Machines Corporation | Dynamic address translation with fetch protection |
| US8103851B2 (en) | 2008-01-11 | 2012-01-24 | International Business Machines Corporation | Dynamic address translation with translation table entry format control for indentifying format of the translation table entry |
| US8151083B2 (en) | 2008-01-11 | 2012-04-03 | International Business Machines Corporation | Dynamic address translation with frame management |
| US8041923B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Load page table entry address instruction execution based on an address translation format control field |
| US8041922B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Enhanced dynamic address translation with load real address function |
| US8677098B2 (en) | 2008-01-11 | 2014-03-18 | International Business Machines Corporation | Dynamic address translation with fetch protection |
| US8117417B2 (en) | 2008-01-11 | 2012-02-14 | International Business Machines Corporation | Dynamic address translation with change record override |
| US8037278B2 (en) | 2008-01-11 | 2011-10-11 | International Business Machines Corporation | Dynamic address translation with format control |
| US8095773B2 (en) | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
-
2008
- 2008-01-11 US US11/972,725 patent/US8417916B2/en active Active
-
2009
- 2009-01-05 PL PL09700560T patent/PL2229631T3/pl unknown
- 2009-01-05 CN CN2009801017401A patent/CN101911024B/zh active Active
- 2009-01-05 BR BRPI0906426-5A patent/BRPI0906426B1/pt active IP Right Grant
- 2009-01-05 ES ES09700560T patent/ES2381428T3/es active Active
- 2009-01-05 AT AT09700560T patent/ATE551653T1/de active
- 2009-01-05 CA CA2701086A patent/CA2701086C/en active Active
- 2009-01-05 SI SI200930236T patent/SI2229631T1/sl unknown
- 2009-01-05 KR KR1020107014444A patent/KR101310412B1/ko active Active
- 2009-01-05 EP EP09700560A patent/EP2229631B1/en active Active
- 2009-01-05 JP JP2010541764A patent/JP4815539B2/ja active Active
- 2009-01-05 PT PT09700560T patent/PT2229631E/pt unknown
- 2009-01-05 WO PCT/EP2009/050051 patent/WO2009087134A1/en not_active Ceased
- 2009-01-05 DK DK09700560.7T patent/DK2229631T3/da active
-
2010
- 2010-07-07 IL IL206847A patent/IL206847A/en active IP Right Grant
-
2012
- 2012-04-20 CY CY20121100375T patent/CY1112694T1/el unknown
Also Published As
| Publication number | Publication date |
|---|---|
| IL206847A0 (en) | 2010-12-30 |
| EP2229631A1 (en) | 2010-09-22 |
| US20090187724A1 (en) | 2009-07-23 |
| BRPI0906426A2 (pt) | 2016-10-11 |
| US8417916B2 (en) | 2013-04-09 |
| JP2011509471A (ja) | 2011-03-24 |
| WO2009087134A1 (en) | 2009-07-16 |
| PL2229631T3 (pl) | 2012-11-30 |
| SI2229631T1 (sl) | 2012-05-31 |
| KR20100101616A (ko) | 2010-09-17 |
| CY1112694T1 (el) | 2016-02-10 |
| ATE551653T1 (de) | 2012-04-15 |
| CN101911024A (zh) | 2010-12-08 |
| EP2229631B1 (en) | 2012-03-28 |
| DK2229631T3 (da) | 2012-05-07 |
| KR101310412B1 (ko) | 2013-09-23 |
| JP4815539B2 (ja) | 2011-11-16 |
| ES2381428T3 (es) | 2012-05-28 |
| CN101911024B (zh) | 2012-11-14 |
| PT2229631E (pt) | 2012-05-11 |
| IL206847A (en) | 2013-07-31 |
| CA2701086A1 (en) | 2009-07-16 |
| CA2701086C (en) | 2017-09-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI0906426B1 (pt) | Tradução de endereço dinâmica com gerenciamento de quadro | |
| US10977190B2 (en) | Dynamic address translation with access control in an emulator environment | |
| ES2406056T3 (es) | Traducción dinámica de direcciones con control de formato | |
| US9244856B2 (en) | Dynamic address translation with translation table entry format control for identifying format of the translation table entry | |
| ES2381432T3 (es) | Traducción dinámica de direcciones con calificador con excepción de traducción | |
| US9158711B2 (en) | Creating a program product or system for executing a perform frame management instruction | |
| US8019964B2 (en) | Dynamic address translation with DAT protection | |
| US9003134B2 (en) | Emulation of a dynamic address translation with change record override on a machine of another architecture | |
| US8082405B2 (en) | Dynamic address translation with fetch protection | |
| US8335906B2 (en) | Perform frame management function instruction for clearing blocks of main storage | |
| US20120011341A1 (en) | Load Page Table Entry Address Instruction Execution Based on an Address Translation Format Control Field | |
| WO2009087131A1 (en) | Dynamic address translation with load real address |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B11A | Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing | ||
| B04C | Request for examination: application reinstated [chapter 4.3 patent gazette] | ||
| 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] | ||
| B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
| B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 01/12/2020, OBSERVADAS AS CONDICOES LEGAIS. |




























