PT2229630E - Tradução de endereços dinâmica com controlo de formato - Google Patents
Tradução de endereços dinâmica com controlo de formato Download PDFInfo
- Publication number
- PT2229630E PT2229630E PT97002133T PT09700213T PT2229630E PT 2229630 E PT2229630 E PT 2229630E PT 97002133 T PT97002133 T PT 97002133T PT 09700213 T PT09700213 T PT 09700213T PT 2229630 E PT2229630 E PT 2229630E
- Authority
- PT
- Portugal
- Prior art keywords
- address
- translation
- bit
- bits
- entry
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
ΡΕ2229630 1
DESCRIÇÃO "TRADUÇÃO DE ENDEREÇOS DINÂMICA COM CONTROLO DE FORMATO"
CAMPO DA INVENÇÃO A presente invenção relaciona-se na generalidade com sistemas e métodos para traduzir um endereço virtual num sistema computacional e, mais particularmente, com sistemas e métodos de tradução de um endereço virtual para um endereço real ou absoluto de um bloco de dados num sistema computacional tendo uma funcionalidade de tradução de endereços dinâmica em que ocorre a tradução de endereço virtual por via de uma hierarquia de tabelas de tradução.
ANTECEDENTES DA INVENÇÃO A Tradução de Endereços Dinâmica proporciona a capacidade para interromper a execução de um programa num momento arbitrário, guardá-lo e os seus dados em armazenamento auxiliar, tal como um dispositivo de armazenamento de acesso directo, e num momento posterior retornar o programa e os dados para diferentes localizações de armazenamento principais para reatamento da execução. A transferência do programa e dos seus dados entre o armazenamento principal e o auxiliar pode ser realizada de forma fragmentada, e o retorno da informação para o armazenamento 2 ΡΕ2229630 principal pode ter lugar em resposta a uma tentativa da CPU para a ela aceder no momento em que é necessária para execução. Estas funções podem ser realizadas sem alteração ou verificação do programa e dos seus dados, não requerem qualquer convenção de programação explicita no programa transferido, e não perturbam a execução do programa excepto durante o intervalo de tempo envolvido.
Com suporte apropriado de um sistema operativo, a funcionalidade de tradução de endereços dinâmica pode ser utilizado para proporcionar a um utilizador um sistema em que o armazenamento parece ser maior do que o armazenamento principal que está disponível na configuração. Este armazenamento principal aparente é frequentemente referido como armazenamento virtual, e os endereços utilizados para designar localizações no armazenamento virtual são frequentemente referidos como endereços virtuais. 0 armazenamento virtual de um utilizador pode exceder muito a dimensão do armazenamento principal que está disponível na configuração e normalmente é mantido em armazenamento auxiliar. 0 armazenamento virtual é considerado como sendo composto de blocos de dados, vulgarmente chamados de páginas (também referidos como segmentos e regiões). Apenas os mais recentemente referidos a páginas do armazenamento virtual são designados para ocuparem blocos do armazenamento físico principal. À medida que o utilizador se refere a páginas do armazenamento virtual que não aparecem no armazenamento principal, elas são trazidas para este para substituírem páginas no armazenamento principal que serão provavelmente 3 ΡΕ2229630 menos necessárias. Em alguns casos, o armazenamento virtual é atribuído ao armazenamento principal durante um longo período de tempo (ou permanentemente), independentemente de quando o armazenamento seja referenciado. A troca de páginas do armazenamento pode ser realizada pelo sistema operativo sem o conhecimento do utilizador.
Os programas utilizam endereços (ou endereços virtuais) para aceder ao armazenamento virtual. 0 programa pode procurar e carregar instruções a partir do armazenamento virtual ou carregar dados ou armazenar dados a partir do armazenamento virtual utilizando endereços virtuais. Os endereços virtuais associados a uma gama de armazenamento virtual definem um espaço de endereçamento. Com suporte apropriado pelo sistema operativo, a funcionalidade de tradução de endereço dinâmico pode ser utilizada para proporcionar um número de espaços de endereçamento. Estes espaços de endereçamento podem ser utilizados para proporcionar graus de isolamento entre utilizadores. Tal suporte pode consistir de espaço de endereçamento completamente diferente para cada utilizador, proporcionando assim o isolamento completo, ou pode ser proporcionada uma área partilhada pelo estabelecimento de correspondências entre uma porção de cada espaço de endereçamento com uma única área de armazenamento comum. Da mesma forma, são proporcionadas instruções que permitem a um programa semi-privilhegiado aceder a mais do que um de tais espaços de endereçamento. 4 ΡΕ2229630 A tradução de endereços dinâmica proporciona a tradução de endereços virtuais a partir de múltiplos espaços de endereçamento diferentes. Estes espaços de endereçamento são chamados de espaço de endereçamento primário, espaço de endereçamento secundário, e espaços de endereçamento especificados pelo Registo de Acesso. Um programa privilegiado pode também originar a que o espaço de endereçamento da raiz seja acedido. A tradução de endereço dinâmica pode ser especificada para instruções e dados de endereços gerados pela CPU. 0 que é necessário é uma funcionalidade de tradução de endereço dinâmica melhorada que proporcione funcionalidade, capacidade e protecção adicionais até agora desconhecidas nesta arte. A Patente dos Estados Unidos US 4992936 divulga um método para a tradução de um endereço virtual num endereço traduzido de um bloco de dados, de acordo com a porção pré-caracterizada da Reivindicação 1.
SUMÁRIO DA INVENÇÃO 0 que é proporcionado é um método como reivindicado na Reivindicação 1 e correspondentes sistema e programa de computador para uma funcionalidade de tradução de endereço dinâmica melhorada que traduza um endereço virtual num endereço real ou absoluto de um bloco de dados desejado no armazenamento principal de um sistema compu- 5 ΡΕ2229630 tacional tendo uma arquitectura da máquina com uma hierarquia de tabelas de tradução utilizadas para a tradução. Os endereços reais podem ser sujeitos a prefixação para formar um endereço absoluto.
Numa forma de realização de exemplo, é primeiro obtido um endereço virtual a ser traduzido e é obtido um endereço de origem inicial de uma tabela de tradução da hierarquia de tabelas de tradução. Uma porção índice do endereço virtual é utilizada para referenciar uma entrada na tabela de tradução. É realizada uma determinação se um campo de controlo de formato na entrada da tabela de tradução estiver validado. Se o campo de controlo de formato estiver validado, é obtido um endereço de quadro de um grande bloco de dados no armazenamento principal a partir da entrada da tabela de tradução. 0 grande bloco de dados inclui um bloco de pelo menos 1 Megabyte de dimensão. 0 endereço de quadro é então combinado com uma porção deslocada do endereço virtual para formar o endereço traduzido de um bloco de dados desejado dentro do grande bloco de dados no armazenamento principal. 0 grande bloco de dados desejado endereçado pelo endereço traduzido é então acedido. Numa outra forma de realização, é obtido um campo de entrada de tabela inválido a partir da entrada de tabela de tradução. É iniciada uma acção de excepção se o correspondente campo de entrada de tabela inválido estiver activado.
Numa outra forma de realizaçao, é obtida 6 ΡΕ2229630 informação de restrição a partir da entrada da tabela de tradução. A informação de restrição é utilizada para restringir o acesso a uma porção restrita do grande bloco. 0 acesso ao desejado grande bloco de dados endereçado pelo endereço traduzido é então permitido apenas à porção restringida do bloco de dados. A invenção será em seguida descrita em ligação com certas formas de realização ilustradas. Deverá ser entendido que várias alterações e modificações podem ser realizadas pelos peritos na arte sem haver afastamento do objectivo da invenção.
BREVE DESCRIÇÃO DOS DESENHOS
As Figuras acompanhantes onde números de referência semelhantes se referem a elementos idênticos ou funcionalmente similares através das vistas separadas e que conjuntamente com a descrição detalhada abaixo estão incorporadas e fazem parte da especificação, servem para ilustrar adicionalmente várias formas de realização e para explicar vários princípios e vantagens todos em concordância com a presente invenção. A Figura 1 ilustra uma forma de realização de um sistema de computador hospedeiro em que será realizada a tradução de endereço dinâmica melhorada; A Figura 2 proporciona um sistema de computador 7 ΡΕ2229630 hospedeiro emulado de exemplo que emula o sistema de computador hospedeiro de uma arquitectura de hospedeiro; A Figura 3 ilustra uma forma de realização de como a palavra de estado do programa é utilizada para determinar a ASCE efectiva para a tradução de endereço dinâmica do endereço virtual; A Figura 4 ilustra uma forma de realização em que a ASCE efectiva determinada na Figura 3 é utilizada para determinar a mais elevada tabela de tradução na hierarquia das tabelas de tradução utilizada na tradução do endereço virtual; A Figura 5A ilustra uma forma de realização do processo da tradução de endereço dinâmica de um endereço virtual utilizando uma hierarquia de tabelas de tradução para o nivel da tabela de segmentos; A Figura 5B ilustra uma continuação da tradução de endereço dinâmica da Figura 5A em que o controlo do formato (FC) da Entrada da Tabela de Segmentos (STE) é zero; A Figura 5C ilustra uma continuação da tradução de endereço dinâmica da Figura 5A em que o controlo de formato (FC) da Entrada da Tabela de Segmentos (STE) é um; A Figura 6 ilustra um fluxograma de uma forma de ΡΕ2229630 realização da tradução de endereço dinâmica melhorada (eDAT) para obter um campo de controlo de formato numa entrada de tabela de segmentos; A Figura 7 ilustra uma continuação do fluxograma a partir do nodo 614 da Figura 6; A Figura 8 ilustra uma continuação do fluxograma a partir do nodo 614 da Figura 6; A Figura 9 ilustra um fluxograma de uma forma de realização da determinação do nível da protecção da DAT a ser aplicado a um bloco de dados desejado endereçado pelo endereço virtual traduzido; A Figura 10 ilustra uma continuação do fluxograma a partir do nodo 822 da Figura 8 determinando o nível de protecção do controlo de acesso a ser aplicado a um bloco de dados desejado endereçado pelo endereço virtual traduzido; A Figura 11 ilustra uma continuação do fluxograma a partir do nodo 822 da Figura 8 determinando o nível de protecção da pesquisa e carregamento a ser aplicado a um bloco de dados desejado endereçado pelo endereço virtual traduzido; A Figura 12 ilustra uma continuação do fluxograma a partir do nodo 822 da Figura 8 em que é obtido um campo 9 ΡΕ2229630 de alteraçao de sobreposição de gravaçao a partir de uma entrada da tabela de segmentos; A Figura 13 ilustra 0 formato do registo de controlo i; A Figura 14 ilustra o formato do registo de controlo 7; A Figura 15 ilustra o formato do registo de controlo 13; A Figura 16 ilustra o formato da palavra de estado do programa; A Figura 17 ilustra o formato do registo de prefixo; A Figura 18 ilustra o formato do endereço virtual; A Figura 19 ilustra o formato do RX do endereço virtual; A Figura 20 ilustra o formato das entradas da tabela de região; A Figura 21 ilustra o formato I de uma entrada da tabela de segmentos; 10 ΡΕ2229630 A Figura 22 ilustra o formato II de uma entrada da tabela de segmentos; A Figura 23 ilustra o formato de uma entrada da tabela de páginas; A Figura 24 ilustra um formato da chve de armazenamento; A Figura 25 ilustra o formato da instrução SSKE; e A Figura 26 ilustra o formato do campo M3.
DESCRIÇÃO DETALHADA
Deverá ser entendido que as afirmações feitas na especificação do presente requerimento não limitam necessariamente qualquer das várias invenções reivindicadas. Além disso, algumas afirmações podem aplicar-se a algumas caracteristicas da invenção mas não a outras. A menos que indicado de outra forma, elementos no singular podem estar no plural e vice-versa sem perda de generalidade.
Um perito médio nesta arte estará prontamente familiar com o armazenamento de endereços num ambiente computacional e na utilização de bits num registo ou campo de endereço para indicar estados diferentes e actuar sobre 11 ΡΕ2229630 esses estados. Adicionalmente, um perito médio nesta arte será conhecedor na arte da programação de computadores e conhecedor acerca do funcionamento e interligações entre componentes de sistemas de computadores.
VISTA GERAL 0 que é proporcionado é uma forma de realização de exemplo de uma funcionalidade de Tradução de Endereço Dinâmica (DAT) melhorada. Quando a funcionalidade de DAT melhorada está instalada e activada, a tradução DAT pode produzir tanto um endereço real de quadro de página como um endereço absoluto de quadro de segmento, determinado pelo controlo de formato da Entrada de Tabela de Segmentos (STE) na entrada da tabela de segmentos. Como aqui se utiliza, o termo "DAT melhorada aplica-se" significa que tudo do que se segue é verdade: 1) A funcionalidade EDAT está instalada; 2) A funcionalidade EDAT está activada por via do bit 40 do registo de controlo 0 (CRO); e, 3) O endereço é traduzido por meio de entradas na tabela DAT.
Quando a DAT melhorada é aplicada, está disponível no processo DAT a seguinte função adicional:
Um bit de protecção da DAT é adicionado às entradas da tabela de região, proporcionando uma função similar à dos bits de protecção da DAT nas entradas da tabela de segmentos e de página. 12 ΡΕ2229630 É adicionado um controlo de formato STE à entrada da tabela de segmentos. Quando o controlo do formato STE é zero, a DAT prossegue como estiver correntemente definido, excepto quando uma alteração de sobreposição de gravação na entrada da tabela de página indique quando uma definição do bit de alteração possa ser curto-circuitado para a página.
Quando o controlo do formato STE é um, a entrada da tabela de segmentos também contém o seguinte: - Um endereço absoluto do quadro de segmentos (em vez de uma origem da tabela de página) especificando a localização de armazenamento absoluta do bloco de 1 Mega- byte. - Bits de controlo de acesso e um bit de pro-tecção da pesquisa e carregamento que podem ser opcionalmente utilizados em lugar dos bits correspondentes nas chaves de armazenamento individuais do segmento. - Um bit que determina a validade dos bits de controlo de acesso e um bit de protecção da pesquisa e carregamento na entrada da tabela de segmentos. - Uma alteração de sobreposição de gravação que indica qual configuração do bit de alteração pode ser curto-circuitado nas chaves do armazenamento individual dos segmentos. 13 ΡΕ2229630
Sistema de Computador Hospedeiro
Com referência à Figura 1, são descritos componentes representativos de um sistema de computador hospedeiro 100. Podem também ser empregues outros arranjos de componentes num sistema computacional os quais são bem conhecidos na arte. 0 ambiente de computação de hospedeiro é preferencialmente baseado na z/Architecture® oferecido pela International Business Machines Corporation (IBM®), Armonk, Nova Iorque. A z/Architecture® está mais completamente descrita em: z/Architecture® Principies of Operation, IBM® Pub. N.° SA22-7832-05, 6a Edição, (Abril de 2007). Os ambientes de computação baseados na z/Architecture® incluem, por exemplo, eServer e zSeries®, ambos por IBM®. O computador hospedeiro representativo 100 inclui uma ou mais CPUs 101 em comunicação com o armazenamento principal (memória do computador 102) bem como interfaces I/0 para dispositivos de armazenamento 111 e redes 110 para comunicação com outros computadores ou redes locais de armazenamento (SANs) e semelhantes. A CPU pode ter a funcionalidade de Tradução de Endereço Dinâmica (DAT) (função ou unidade) 103 para transformar endereços de programa (endereços virtuais) em endereços reais de memória. Uma funcionalidade de DAT inclui tipicamente uma memória intermédia de consulta da tradução 107 para colocar em "cache" traduções de forma a que acessos ulteriores ao 14 ΡΕ2229630 bloco da memória do computador 102 não requeiram o atraso da tradução de endereço. Tipicamente é empregue uma "cache" 109 entre a memória do computador 102 e o Processador 101. A "cache" 109 pode ser hierárquica tendo uma "cache" grande disponível a mais do que uma CPU e "caches" menores, mais rápidas (nível inferior) entre a "cache" grande e cada CPU. Em algumas implementações as "caches" de nível inferior são separadas para proporcionarem "caches" de baixo nível separadas para a pesquisa e carregamento de instruções e acesso a dados. Numa forma de realização, uma instrução é pesquisada e carregada a partir da memória 102 por uma unidade de pesquisa e carregamento de instruções 104 por via de uma "cache" 109. A instrução é descodificada numa unidade de descodificação de instruções (106) e despachada (com outras instruções em algumas formas de realização) para as unidades de execução de instruções 108. Tipicamente, são empregues várias unidades de execução 108, por exemplo uma unidade de execução aritmética, uma unidade de execução em vírgula flutuante e uma unidade de execução de instruções ramificada. As instruções são executadas pela unidade de execução, acedendo a operandos a partir de registos especificados para instruções ou de memória conforme o necessário. Se um operando é para ser acedido (carregado ou armazenado) a partir da memória 102, uma unidade de carregamento armazenamento 105 trata tipicamente do acesso sob controlo da instrução a ser executada.
Numa forma de realização, a invenção pode ser praticada por software (algumas vezes referido como Licen- 15 ΡΕ2229630 sed Internai Code (LIC), firmware, micro-código, mili-códi-go, pico-código e semelhantes, qualquer dos quais poderá ser consistentes com a presente invenção) . 0 código do programa do software que dá forma à presente invenção é tipicamente acedido pelo processador também conhecido como a CPU (Unidade Central de Processamento) 101 do sistema computacional 100 a partir do meio de armazenamento a longo termo 111, tal como uma unidade de CD-ROM, unidade de fita magnética ou unidade de disco rigido. O código do programa de software pode tomar forma sob qualquer uma de uma variedade de meios conhecidos para utilização com um sistema de processamento de dados, tal como uma disquete, disco rigido, ou CD-ROM. O código pode ser distribuído através de tais meios, ou pode ser distribuído para os utilizadores a partir da memória do computador 102 ou armazenamento de um sistema computacional através de uma rede 110 para outros sistemas computacionais para utilização pelos utilizadores de tais outros sistemas.
Alternativamente, o código do programa pode tomar forma na memória 102, e ser acedido pelo processador 101 utilizando o barramento do processador. Tal código de programa inclui um sistema operativo que controla a função e a interacção dos vários componentes do computador e um ou mais programas de aplicações. O código de programa é normalmente paginado a partir do meio de armazenamento denso 111 para a memória de alta velocidade 102 onde está disponível para processamento pelo processador 101. As técnicas e métodos para dar forma ao código do programa de 16 ΡΕ2229630 software na memória, ou meio físico, e/ou distribuir o código de software via rede são bem conhecidas e não serão aqui mais discutidas. 0 código de programa, quando criado e armazenado num meio palpável (incluindo mas não limitado a módulos de memória electrónicos (RAM), memória "flash", discos compactos (CDs), DVDs, fita magnética e semelhantes são frequentemente referidos como "produto de programa de computador". 0 meio do produto de programa de computador é tipicamente legível por um circuito de processamento preferencialmente num sistema computacional para execução pelo circuito de processamento.
Na Figura 2, é proporcionado um exemplo de sistema computacional hospedeiro emulado 201 que emula um sistema computacional hospedeiro 100 de uma arquitectura de hospedeiro. No sistema computacional hospedeiro emulado 201, o processador hospedeiro (CPUs) 208 é um processador hospedeiro emulado (ou processador hospedeiro virtual) e inclui um processador de emulação 207 tendo uma arquitectura do conjunto de instruções nativas diferente da utilizada pelo processador 101 do computador hospedeiro 100. O sistema computacional hospedeiro emulado 201 tem memória 202 acessível ao processador de emulação 207. Na forma de realização de exemplo, a memória 207 está dividida numa porção de memória de computador hospedeiro 102 e numa porção de rotinas de emulação 203 (rotinas que proporcionam à emulação fazer parte da memória de hospedeiro). A memória do computador hospedeiro 102 está disponível para os programas do computador hospedeiro emulado 201 de acordo com a arquitectura do computador hospedeiro. O processador 17 ΡΕ2229630 de emulação 207 executa instruções nativas de um conjunto de instruções arquitectado de uma arquitectura diferente da do processador de emulado 208, as instruções nativas obtidas a partir da memória de rotinas de emulação 203, e pode aceder a instruções de hospedeiro para execução a partir de um programa na memória do computador hospedeiro 102 empregando uma ou mais instruções obtidas numa rotina de Sequência & Acesso/Descodificação que pode descodificar a ou as instruções acedidas para determinar uma rotina de execução de instrução nativa para emular a função da instrução de hospedeiro acedida.
Outras funcionalidades que são definidas para a arquitectura do sistema de computador hospedeiro 100 podem ser emuladas por Rotinas de Funcionalidades Arquitectadas, incluindo funcionalidades tais como Registos de Utilização Geral, Registos de Controlo, Tradução de Endereço Dinâmica, e Sub-sistema de E/S de suporte e "cache" do processador por exemplo. As rotinas de emulação podem também tirar partido de funções disponíveis no processador de emulação 207 (tais como Registos Gerais e tradução dinâmica de endereços virtuais) para melhorar o rendimento das rotinas de emulação. Podem também ser disponibilizados hardware especial e Motores de Descarga para auxiliarem o processador 207 na emulação da função do computador hospedeiro 100.
Processador e Registos do Computador
Numa forma de realização, uma funcionalidade das instruções do programa da CPU comunica com uma pluralidade 18 ΡΕ2229630 de registos através de um barramento de comunicação. 0 barramento de comunicação pode ser interno ou externo à CPU. Alguns registos podem ser apenas de leitura. Outro hardware e/ou software pode também ler/escrever num ou mais dos registos acessíveis à CPU. Um código de instrução de operação ("opcode") determina que tipo de registo é para ser utilizado em qualquer operação de instrução máquina particular.
Registos Gerais
As instruções podem designar informação em um ou mais de 16 registos gerais. Os registos gerais podem ser utilizados como registos de endereços base e registos de índice em aritmética de endereços e como acumuladores em operações gerais aritméticas e lógicas. Cada registo contém 64 bits de posições. Os registos gerais são identificados pelos números 0-15 e são designados por um campo R de quatro bits numa instrução. Algumas instruções proporcionam o endereçamento de múltiplos registos gerais através de vários camppos R. Para algumas instruções, a utilização de um registo geral específico está implícita em vez de ser explicitamente designada por um campo R da instrução.
Para algumas operações, são acoplados tanto os bits 32-63 como os bits 0-63 de dois registos gerais adjacentes, proporcionando um formato de 64 bits ou de 128 bits, respectivamente. Nestas operações, o programa deve designar um registo com número par, que contém os bits 32 19 ΡΕ2229630 ou 64 mais à esquerda (ordem mais elevada) . 0 registo com número mais elevado a seguir contém os bits 32 ou 64 mais à direita (ordem baixa). Adicionalmente à sua utilização como acumuladores em operações gerais aritméticas e lógicas, 15 dos 16 registos gerais são também utilizados como endereços base e registos de índice na geração de endereços. Nestes casos, os registos são designados por um campo B ou campo X de quatro bits numa instrução. Um valor de zero no campo B ou X especifica que não é para ser aplicado base ou índice, e, assim, o registo geral 0 não pode ser designado como contendo um endereço base ou índice.
Registos de Controlo
Os registos de controlo proporcionam a manutenção e manipulação da informação de controlo fora da palavra de estado do programa. A CPU tem 16 registos de controlo, tendo cada um posições de 64 bits. As posições dos bits nos registos são atribuídas a funcionalidades particulares no sistema, tais como gravação de eventos do programa, e são utilizadas tanto para especificar que uma operação pode ter lugar como para fornecer informação especial requerida pela funcionalidade. Os registos de controlo são identificados pelos números 0-15 e são designados por campos R de quatro bits nas instruções LOAD CONTROL e STORE CONTROL. Podem ser endereçados múltiplos registos de controlo por estas instruções. 20 ΡΕ2229630
Registo de Controlo 1 0 registo de controlo 1 contém o Elemento de Controlo do Espaço de Endereços Primário (PASCE). Numa forma de realização, o registo de controlo 1 tem um de dois formatos como ilustrado na Figura 13, dependendo do bit de controlo de espaço real (R) no registo.
Campos seleccionados no Elemento de Controlo do Espaço de Endereço Primário (PASCE) são atribuídos como se segue:
Tabela de Região Primária ou Origem da Tabela de Segmentos: Os bits 0-51 da designação da tabela de região primária ou da tabela de segmentos no registo de controlo 1, com 12 zeros apensos na direita, formam um endereço de 64 bits que designa o início da tabela de região primária ou da tabela de segmentos. É imprevisível quando o endereço é real ou absoluto. Esta tabela é chamada a tabela de região primária ou tabela de segmentos dado que é utilizada para traduzir endereços virtuais no espaço de endereços primário.
Controlo do Espaço Real Primário (R): Se o bit 58 do registo de controlo 1 é zero, o registo contém uma designação de tabela de região ou tabela de segmentos. Se o bit 58 é um, o registo contém uma designação de espaço real. Quando o bit 58 é um, um valor um do bit do segmento comum numa representação da memória intermédia de consulta 21 ΡΕ2229630 da tradução de uma entrada de tabela de segmentos previne que a entrada e a tabela de página da memória intermédia de consulta da tradução cópia que ela designa seja utilizada aquando da tradução de referências ao espaço de endereço primário, mesmo com uma correspondência entre o símbolo origem no registo de controlo 1 e a tabela de origem na entrada da memória intermédia de consulta da tradução.
Controlo do Tipo de Designação Primário (DT) :
Quando R é zero, o tipo de designação de tabela no registo de controlo 1 é especificado pelos bits 60 e 61 no registo, como se segue:
Bits de controlo do Tipo de Designação Primário (DT) 60 e 61 Tipo de Designação 11 Primeira Tabela de Região 10 Segunda Tabela de Região 01 Terceira Tabela de Região 00 Tabela de segmentos
Quando R é zero, os bits 60 e 61 deverão ser 11 em binário quando é feita uma tentativa para utilizar o PASCE para traduzir um endereço virtual no qual o bit um mais à esquerda está nas posições de bits 0-10 do endereço. Similarmente, os bits 60 e 61 deverão 11 ou 10 em binário quando o bit um mais à esquerda está nas posições de bits 11-21 do endereço, e eles deverão ser 11, 10, ou 01 em binário quando o bit um mais à esquerda estiver nas 22 ΡΕ2229630 posiçoes de bits 22-32 do endereço. De outra forma, é reconhecida uma excepção do tipo ASCE.
Comprimento da Tabela de Região Primária ou
Tabela de Segmentos (TL): Os bits 62 e 63 da designação da tabela de região primária ou da designação da tabela de segmentos no registo de controlo 1 especificam o comprimento da tabela de região primária ou da tabela de segmentos em unidades de 4 096 bytes, tornando assim o comprimento da tabela de região ou da tabela de segmentos variável em múltiplos de 512 entradas. O comprimento da tabela de região primária ou da tabela de segmentos, em unidades de 4 096 bytes, é um a mais do que o valor de TL. Os conteúdos do campo do comprimento são utilizados para estabelecer quando a porção do endereço virtual (RFX, RSX, RTX, ou SX) a ser traduzida por meio da tabela designam uma entrada que cai dentro da tabela.
Origem do Símbolo do Espaço Real Primário: Os bits 0-51 da designação do espaço real primário no registo de controlo 1, com 12 zeros apensos à direita, formam um endereço de 64 bits que pode ser utilizado na formação e utilização de entradas da memória intermédia de consulta da tradução que proporcionam uma equiparável virtual tradução real para referências ao espaço de endereços primário. Embora este endereço seja utilizado apenas como um símbolo e não seja utilizado para realizar uma referência de armazenamento, ele deverá mesmo assim ser um endereço válido; de outra forma, pode ser utilizada uma entrada da 23 ΡΕ2229630 memória intermédia de consulta da tradução incorrecta quando os conteúdos do registo de controlo 1 são utilizados.
Os seguintes bits do registo de controlo 1 não são atribuídos e são ignorados: bits 52, 53, e 59 se o registo contém uma designação de tabela de região ou designação de tabela de segmentos, e bits 52, 53 e 59-63 se o registo contém uma designação de espaço real.
Registo de Controlo 7 0 registo de controlo 7 contém o Elemento de
Controlo do Espaço de Endereços Secundário (SASCE). Numa forma de realização, o registo de controlo 7 tem um de dois formatos como ilustrado na Figura 14, dependendo do bit de controlo do espaço real (R) no registo.
Registo de Controlo 13 0 registo de controlo 13 contém o Elemento de
Controlo do Espaço de Endereços Origem (HASCE). Numa forma de realização, o registo de controlo 13 tem um de dois formatos como ilustrado na Figura 15, dependendo do bit de controlo do espaço real (R) no registo.
Registos de Acesso A CPU tem 16 registos de acesso numerados de - 24 - ΡΕ2229630 0-15. Um registo de acesso consiste de 32 bit posições contendo uma especificação indirecta de um ASCE. Um ASCE é um parâmetro utilizado pelo mecanismo de tradução de endereço dinâmica (DAT) para traduzir referências para um espaço de endereços correspondente. Quando a CPU está num modo chamado modo de acesso a registo (controlado por bits na palavra de estado do programa), um campo de instrução B, utilizado para especificar um endereço lógico para uma referência de armazenamento de operando, designa um registo de acesso, e o ASCE especificado pelo registo de acesso é utilizado pela DAT para a referência a ser efectuada. Para algumas instruções é utilizado um campo R em vez de um campo B. São disponibilizadas instruções para carregar e armazenar os conteúdos dos registos de acesso e para mover os conteúdos de um registo de acesso para outro.
Cada um dos registos de acesso 1-15 pode designar qualquer espaço de endereços, incluindo o actual espaço de instruções (o espaço de endereços primário). O registo de acesso 0 designa o espaço de instruções primário. Quando um dos registos de acesso 1-15 é utilizado para designar um espaço de endereços, a CPU determina qual espaço de endereços é designado traduzindo os conteúdos do registo de acesso. Quando o registo de acesso 0 é utilizado para designar um espaço de endereços, a CPU trata o registo de acesso como designando o espaço de instruções primário, e não examina os conteúdos actuais do registo de acesso. Portanto, os 16 registos de acesso podem designar, em cada momento, o espaço de instruções primário e um máximo de outros 15 espaços. 25 ΡΕ2229630
Palavra de Estado do Programa (PSW) A palavra de estado do programa inclui o endereço de instrução, código de condição, e outras informações utilizadas para controlar a seguência de instruções e para determinar o estado da CPU. A palavra activa ou de controlo do estado do programa é chamada a palavra de estado do programa corrente. Ela governa o programa a ser executado no momento. A CPU tem uma capacidade de interrupção, gue permite à CPU de mudar rapidamente para outro programa em resposta a condições excepcionais e estímulos externos. Quando ocorre uma interrupção, a CPU coloca a corrente palavra de estado do programa numa localização de armazenamento atribuída, chamada localização da palavra de estado do programa antiga, para a classe particular de interrupção. A CPU pesquisa e carrega uma nova palavra de estado do programa a partir de uma segunda localização de armazenamento atribuída. Esta nova palavra de estado do programa determina o próximo programa a ser executado. Quando ela tenha acabado de processar a interrupção, o programa que trata da interrupção pode recarregar a palavra de estado do programa antiga, tornando-a de novo a actual palavra de estado do programa, de forma que o programa interrompido pode continuar.
Existem seis classes de interrupção: externa, 26 ΡΕ2229630 1/0, verificação da máquina, programa, reinicio, e chamada de supervisor. Cada classe tem um par distinto de localizações da palavra de estado do programa antiga e da palavra de estado do programa actual atribuídas permanentemente no armazenamento real.
Palavra de Estado do Programa Corrente A palavra de estado do programa corrente na CPU contém informação requerida para a execução do programa correntemente activo. A palavra de estado do programa tem 128 bits de comprimento e inclui o endereço de instrução, código de condição, e outros campos de controlo. Em geral, a palavra de estado do programa é utilizada para controlar a sequência de instruções e para manter e indicar a maioria do estado da CPU em relação ao programa a ser executado correntemente. Informação adicional e de estado está contida em registos de controlo e em localizações de armazenamento permanentemente atribuídas. 0 estado da CPU pode ser alterado carregando uma nova palavra de estado do programa ou parte de uma palavra de estado do programa. 0 controlo é comutado durante uma interrupção da CPU pelo armazenamento da palavra de estado do programa corrente, de forma a preservar o estado da CPU, e carregando então uma nova palavra de estado do programa. A execução de LOAD PSW ou de LOAD PSW EXTENDED, ou a conclusão com sucesso da sequência de carregamento de programa inicial, introduz uma nova palavra de estado do 27 ΡΕ2229630 programa. 0 endereço de instrução é actualizado pela execução de instruções sequencial e substituída por ramos bem sucedidos. São disponibilizadas outras instruções que operam sobre uma porção da palavra de estado do programa.
Uma palavra de estado do programa nova ou modificada torna-se activa (ou seja, a informação introduzida na palavra de estado do programa corrente assume o controlo da CPU) quando a interrupção ou a execução de uma instrução que altere a palavra de estado do programa estiver completada. A interrupção para o Registo de Eventos do Programa (PER) associada a uma instrução que altera a palavra de estado do programa ocorre sob o controlo da máscara PER que está activa no início da operação. Os bits 0-7 da palavra de estado do programa são colectivamente referidos como a máscara do sistema. Numa forma de realização, a palavra de estado do programa tem o formato que está ilustrado na Figura 16. O que se segue é um resumo breve das funções de campos seleccionados da palavra de estado do programa.
Modo DAT (T): O bit 5 controla quando tem lugar a tradução de endereço dinâmica implícita de endereços lógicos e de instruções para aceder ao armazenamento. Quando o bit 5 é zero, DAT está desligado e os endereços lógicos e de instruções são tratados como endereços reais. Quando o bit 5 é um, DAT está ligada, e é invocado o mecanismo de tradução de endereços dinâmica. 28 ΡΕ2229630
Chave PSW: Os bits 8-11 formam a chave de acesso para referências de armazenamento pela CPU. Se a referência é sujeita à protecção controlada por chave, a Chave PSW é feita corresponder com uma chave de armazenamento quando informação é armazenada ou quando informação é pesquisada e carregada a partir de uma localização que está protegida contra a pesquise e carregamento. No entanto, para um dos operandos de cada um de MOVE TO PRIMARY, MOVE TO SECUNDARY, MOVE WITH KEY, MOVE WITH SOURCE KEY, e MOVE WITH DESTINATION KEY, é utilizada uma chave de acesso especificada como um operando em vez da Chave PSW.
Controlo de Espaço de Endereço (AS): Os bits 16 e 17, em conjunção com o bit 5 da Palavra de Estado do Programa, controlam o modo de tradução. Código de Condição (CC) : Os bits 18 e 19 são os dois bits do código de condição. 0 código de condição é definido como 0, 1, 2, ou 3, dependendo do resultado obtido na execução de certas instruções. A maioria das operações aritméticas e lógicas, bem como algumas outras operações, definem o código de condição. A instrução BRANCH ON CONDITION pode especificar qualquer selecção dos valores de código de condição como um critério para ramificação.
Endereço de Instrução: Os bits 64-127 da palavra de estado do programa são o endereço de instrução. Este endereço designa a localização do byte mais à esquerda da 29 ΡΕ2229630 próxima instrução a ser executada, a menos que a CPU esteja no estado de espera (o bit 14 da palavra de estado do programa é um).
Tipos e Formatos de Endereços
Para os propósitos de endereçamento do local de armazenamento principal, são reconhecidos três tipos básicos de endereços: absoluto, real, e virtual. Os endereços são distinguidos na base das transformações que são aplicadas ao endereço durante o acesso ao armazenamento. A tradução do endereço converte um endereço virtual num endereço real. A prefixação converte um endereço real num endereço absoluto. Em adição aos três tipos de endereços básicos, são definidos tipos adicionais que são tratados como um ou outro dos três tipos básicos, dependendo da instrução e do modo actual.
Endereço Absoluto
Um endereço absoluto é o endereço atribuído a uma localização no armazenamento principal. Um endereço absoluto é utilizado para um acesso ao armazenamento sem qualquer transformação realizada sobre ele. 0 subsistema de canal e todas as CPUs na configuração se referem a uma localização partilhada no armazenamento principal utilizando o mesmo endereço absoluto. 0 armazenamento principal disponível é usualmente atribuído aos endereços absolutos contíguos começando em 0, e os endereços são atribuídos em 30 ΡΕ2229630 blocos completos de 4 kilobytes com limites inteiros. Uma excepção é reconhecida quando é feita uma tentativa para utilizar um endereço absoluto num bloco que não tenha sido atribuído a localizações físicas. Em alguns modelos, podem ser proporcionados controlos de reconfiguração do armazenamento que permitem ao operador alterar a correspondência entre endereços absolutos e localizações físicas. No entanto, em qualquer dado momento, uma localização física não está associada a mais do que um endereço absoluto. 0 armazenamento consistindo de localizações de bytes sequen-ciadas de acordo com os seus endereços absolutos é referido como armazenamento absoluto.
Endereço Real
Um endereço real identifica uma localização no armazenamento real. Quando é utilizado um endereço real para um acesso ao armazenamento principal, ele é convertido, por meio de prefixação, para formar um endereço absoluto. Em qualquer instante existe um mapeamento do endereço real para um endereço absoluto para cada CPU na configuração. Quando é utilizado um endereço real por uma CPU para aceder ao armazenamento principal, ele pode ser convertido num endereço absoluto pela prefixação. A transformação particular é definida pelo valor no registo de prefixo para a CPU. 0 armazenamento consistindo de localizações de bytes sequenciados de acordo com os seus endereços reais é referido como armazenamento real. 31 ΡΕ2229630
Endereço Virtual
Um endereço virtual identifica uma localização no armazenamento virtual. Quando é utilizado um endereço virtual para um acesso ao armazenamento principal, ele é traduzido por meio da tradução de endereço dinâmica, quer num endereço real que pode ser sujeito a prefixação para formar um endereço absoluto, ou directamente para um endereço absoluto.
Endereço Virtual Primário
Um endereço virtual primário é um endereço virtual que é para ser traduzido por meio do Elemento de Controlo do Espaço de Endereços Primário (PASCE). Os endereços lógicos são tratados como endereços virtuais primários quando no modo de espaço primário. Os endereços de instruções são tratados como endereços virtuais primários quando no modo de espaço primário, modo de espaço secundário, ou modo de registo de acesso. 0 primeiro endereço de operando de MOVE TO PRIMARY e o segundo endereço de operando de MOVE TO SECUNDARY são tratados como endereços virtuais primários.
Endereço Virtual Secundário
Um endereço virtual secundário é um endereço virtual que é para ser traduzido por meio do Elemento de Controlo do Espaço de Endereço Secundário (SASCE). Os 32 ΡΕ2229630 endereços lógicos são tratados como endereços virtuais secundários quando no modo de espaço secundário. 0 segundo endereço de operando de MOVE TO PRIMARY e o primeiro endereço de operando de MOVE TO SECUNDARY são tratados como endereços virtuais secundários.
Endereço Virtual Especificado AR
Um endereço virtual especificado AR é um endereço virtual que é para ser traduzido por meio de um Elemento de Controlo do Espaço de Endereço Especificado com Registo de Acesso. Os endereços lógicos são tratados como endereços especificados AR quando no modo de registo de acesso.
Endereço Virtual de Origem
Um endereço virtual de origem é um endereço virtual que é para ser traduzido por meio do Elemento de Controlo do Espaço de Endereço de Origem (HASCE). Os endereços lógicos e os endereços de instruções são tratados como endereços virtuais de origem quando no modo de espaço de origem.
Endereço de Instruções
Os endereços utilizados para pesquisar e carregar instruções a partir do armazenamento são chamados de endereços de instruções. Os endereços de instruções são tratados como endereços reais no modo real, endereços 33 ΡΕ2229630 virtuais primários no modo de espaço primário, modo de espaço secundário, ou modo de registo de acesso, e como endereços virtuais de origem no modo de espaço de origem. 0 endereço de instrução na corrente palavra de estado do programa e o endereço alvo de EXECUTE são endereços de instrução.
Endereço Efectivo
Em algumas situações, é conveniente utilizar o termo "endereço efectivo". Um endereço efectivo é o endereço que existe antes que seja realizada qualquer transformação pela tradução de endereço dinâmica ou pela prefixação. Um endereço efectivo pode ser especificado directamente num registo ou pode resultar a partir de aritmética de endereço. A aritmética de endereço é a adição da base e deslocamento da base, índice, e deslocamento.
Prefixação A prefixação proporciona a capacidade para atribuir a gama de endereços reais 0-8191 a um bloco diferente no armazenamento absoluto para cada CPU, permitindo assim que mais do que uma CPU partilhem o armazenamento principal para operarem concorrentemente com um mínimo de interferências, especialmente no processamento de interrupções. A prefixação origina endereços reais na gama de 0-8191 para corresponderem de um-para-um com o bloco de 8K bytes de endereços absolutos (a área de prefixação) 34 ΡΕ2229630 identificado pelo valor nas posições de bit 0-50 do registo de prefixo para a CPU, e o bloco de endereços reais identificado por esse valor no registo de prefixo para corresponder de um-para-um com os endereços absolutos 0-8191. Os endereços reais restantes são os mesmos como os correspondentes endereços absolutos. Esta transformação permite a cada CPU aceder à totalidade do armazenamento principal, incluindo os primeiros 8K bytes e as localizações designadas pelos registos de prefixo de outras CPUs. O prefixo é numa quantidade de 51 bits contidos nas posições de bits 0-50 do registo de prefixo. Numa forma de realização, o registo de prefixo tem o formato como ilustrado na Figura 17.
Quando é aplicada a prefixação, o endereço real é transformado num endereço absoluto utilizando uma das seguintes regras, dependendo dos bits 0-50 do endereço real:
Os bits 0-50 do endereço, se todos a zero, são substituídos com os bits 0-50 do prefixo.
Os bits 0-50 do endereço, se iguais aos bits 0-50 do prefixo, são substituídos com zeros.
Os bits 0-50 do endereço, se não são todos zero e não são iguais aos bits 0-50 do prefixo, permanecem inalterados. 35 ΡΕ2229630
Apenas o endereço apresentado para armazenamento é traduzido por prefixação. 0 conteúdo da fonte do endereço permanece inalterado. A distinção entre endereços reais e absolutos é efectuada mesmo quando o registo de prefixo contém apenas zeros, caso em que um endereço real e o seu correspondente endereço absoluto são idênticos.
Um espaço de endereços é uma sequência consecutiva de números inteiros (endereços virtuais); conjuntamente com os parâmetros de transformação específicos que permitem que cada número seja associado a uma localização de byte no armazenamento. A sequência começa a zero e prossegue da esquerda para a direita.
Quando um endereço virtual é utilizado por uma CPU para aceder ao armazenamento principal, é primeiro convertido, por meio da tradução de endereço dinâmica (DAT), num endereço real ou absoluto. Os endereços reais podem ainda sujeitos a prefixação para formarem um endereço absoluto. A DAT pode utilizar uma tabela de priemira região, tabela de segunda região, tabela de terceira região, tabela de segmentos, e uma tabela de página como parâmetros de transformação. A designação (origem e comprimento) da tabela de nível mais elevado para um espaço de endereços específico é chamada de um Elemento de Controlo do Espaço de Endereços (ASCE), e é encontrado para 36 ΡΕ2229630 utilização pela DAT num registo de controlo ou como especificado por um registo de acesso. Alternativamente, o ASCE para um espaço de endereço pode ser uma designação de espaço real, o que indica que a DAT é para traduzir o endereço virtual simplesmente tratando-o como um endereço real e sem utilizar quaisquer tabelas. A DAT utiliza, em momentos diferentes, o ASCE em diferentes registos de controlo ou especificado pelos registos de acesso. A escolha é determinada pelo modo de tradução especificado na corrente palavra de estado do programa. Estão disponíveis quatro modos de tradução: modo de espaço primário, modo de espaço secundário, modo de registo de acesso, e modo de espaço de origem. São endereçáveis diferentes espaços de endereços dependendo do modo de tradução.
Em qualquer instante quando a CPU está no modo de espaço primário ou no modo de espaço secundário, a CPU pode traduzir endereços virtuais pertencentes a dois espaços de endereços - o espaço de endereços primário e o espaço de endereços secundário. Em qualquer instante quando a CPU está no modo de registo de acesso, ela pode traduzir endereços virtuais de até 16 espaços de endereços - o espaço de endereços primário e até 15 espaços de endereços especificados AR. Em qualquer instante quando a CPU está no modo de espaço de origem, ela pode traduzir endereços virtuais do espaço de endereços de origem. 37 ΡΕ2229630 0 espaço de endereços primário é identificado como tal porque ele consiste de endereços virtuais primários, que são traduzidos por meio do Elemento de Controlo do Espaço de Endereços Primário (PASCE). Similarmente, o espaço de endereços secundário consiste de endereços virtuais secundários traduzidos por meio do Elemento de Controlo do Espaço de Endereços Secundário (SASCE). Os espaços de endereços especificados AR consistem de endereços virtuais especificados AR traduzidos por meio do Elemento de Controlo do Espaço de Endereços Especificado como Registo de Acesso (ASCE especificado como AR) , e o espaço de endereços origem consiste de endereços virtuais de origem traduzidos por meio do Elemento de Controlo do Espaço de Endereços Origem (HASCE). Os ASCEs primário e secundário estão nos registos de controlo 1 e 7, respectivamente. Os ASCEs especificados como AR podem estar nos registos de controlo 1 e 7, ou nas entradas de tabela chamadas entradas de tabela secundárias ASN. 0 HASCE está no registo de controlo 13.
Tradução de Endereço Dinâmica A tradução de endereço dinâmica é o processo de tradução de um endereço virtual (durante uma referência de armazenamento, por exemplo) no correspondente endereço de memória principal (endereço real ou endereço absoluto na forma de realização). Os endereços virtuais podem ser um 38 ΡΕ2229630 endereço virtual primário, endereço virtual secundário, endereço virtual especificado como Registo de Acesso, ou um endereço virtual de origem. Estes endereços são traduzidos por meio do PASCE, SASCE, ASCE especificado como AR, ou o HASCE, respectivamente. Após selecção do ASCE apropriado, o processo de tradução é o mesmo para todos os quatro tipos de endereços virtuais.
Modo de Tradução de Endereços
Um endereço efectivo é o endereço (endereço virtual) que existe antes que seja realizada qualquer transformação pela tradução de endereços dinâmica ou pela prefixação. Os três bits na palavra de estado do programa que controlam a tradução de endereços dinâmica são o bit 5, o bit de modo de DAT, e os bits 16 e 17, os bits de controlo do espaço de endereços. Quando o bit de modo de DAT é zero, então a DAT está desligada, e a CPU está no modo real. Quando o bit de modo de DAT é um, então a DAT está ligada, e a CPU está no modo de tradução designado pelos bits de controlo do espaço de endereços: 00 em binário designa o modo de espaço primário, 01 em binário designa o modo de registo de acesso, 10 em binário designa o modo de espaço secundário, e 11 em binário designa o modo de espaço de origem. Os vários modos estão apresentados abaixo, conjuntamente com o tratamento dos endereços em cada modo. ΡΕ2229630 39
Modos de Tradução
Bit PSW DKT Mndo Tratamento do Endereço 5 16 17 Endereços cfe Instrução Endereços lógicos 0 0 0 Desligada Modo Real Real Real 0 0 1 Desligada Modo Real Real Real 0 1 0 Desligada Mudo Real Real Real 0 1 1 Desligada Modo Real Real Real 1 0 0 Ligada Modo de Espaço Primário Virtual Primário Virtual Primário 1 0 1 Ligada Mudo de Registo de Acesso Virtual Primário Virtual especificado AR 1 1 0 Ligada Mudo de Espaço Secundário Virtual Primário Virtual Secundário 1 1 1 Ligada Mudo de Espaço de Origem Virtual de Origem Virtual de Origem A Palavra de Estado do Programa é uma palavra com 128 bits que, em parte, proporciona 2 bits que indicam o modo de endereçamento. Numa forma de realização, o bit 31 é o bit do Modo de Endereçamento Extendido (EA) e o bit 32 é o bit do Modo de Endereçamento de Base (BA) . Estes dois bits indicam a dimensão dos endereços. 0 estado de cada um destes dois bits é binário (1 ou 0) . Se o bit EA é 0 e o bit BA é 0 então é indicado o endereçamento de 24 bits. Se está indicado o endereçamento de 24 bits, os bits 40-63 de uma palavra de 64 bits (uma entidade de 64 bits é comummente chamada de palavra dupla) é onde o endereço está localizado. Onde o endereço de instrução ocupa os segundos 64 bits de uma entidade de 128 bits (uma palavra quádrupla), as posições dos bits na palavra de estado do programa são como se segue. No modo de 24 bits, o endereço de instrução está nos bits 104-127 da palavra de estado do programa. No modo de 31 bits, o endereço de instrução está nos bits 97-127 da palavra de estado do programa. No modo 40 ΡΕ2229630 de 64 bits, o endereço de instrução está nos bits 64-127 da palavra de estado do programa. Se o bit EA é 0 e o bit BA é 1 então é indicado o endereçamento de 31 bits. A palavra de 64 bits apropriada contém um endereço de 31 bits localizado nos bits nas posições 33-63. Se o bit EA é 1 e o bit BA é 1 então os bits 0-63, que são a totalidade dos 64 bits, de uma palavra de 64 bits contêm o endereço. De outra forma, é indicada uma condição de excepção. Uma vez tenha sido obtido o modo de endereçamento, precisa de ser determinado o ASCE.
Elemento de Controlo do Espaço de Endereços (ASCE) É agora feita referência à Figura 3 que ilustra uma forma de realização de como a Palavra de Estado do Programa é utilizada para determinar o Elemento de Controlo do Espaço de Endereços (ASCE) efectivo para a tradução de endereço dinâmica do endereço virtual. 0 ASCE pode especificar, por exemplo, um espaço de endereços de 2 Gigabytes (Giga = 230) . Ou, ele pode especificar, por exemplo, um espaço de endereços de 4 Terabytes (Tera = 240) , 8 Petabytes (Peta= 250) , ou um espaço de endereços de 16 Exabytes (Exa= 260) . Ou, ele pode especificar uma designação de espaço real. Uma designação de espaço real origina que o endereço virtual seja tratado como um endereço real no armazenamento sem referenciar uma ou mais tabelas de tradução de endereços. 41 ΡΕ2229630 A Palavra de Estado do Programa 300 contém um bit de tradução (T) 302 e bits de Espaço de Endereços (AS) 304. Em 306, se o bit de tradução (T) é zero então o endereço é um endereço real 326. Se, em 308, o Espaço de Endereços (AS) é igual a zero (00 em binário) então o ASCE efectivo para este endereço virtual é o Elemento de Controlo do Espaço de Endereços Primário (PASCE) 310. Se, em 312, o Espaço de Endereços (AS) é igual a um (01 em binário) então o ASCE efeectivo é o Elemento de Controlo do Espaço de Endereços especificado como Registo de Acesso 314. Se, em 316, um Espaço de Endereço (AS) é igual a dois (10 em binário) então o ASCE efectivo é o Elemento de Controlo do Espaço de Endereços Secundário (SASCE) 318. De outra forma, o Espaço de Endereços (AS) é igual a três (11 em binário) e o ASCE efectivo é o Elemento de Controlo do Espaço de Endereços de Origem (HASCE) 322.
Após selecção do ASCE efectivo, o processo de tradução de endereço dinâmica é preferencialmente o mesmo para todos os quatro tipos de endereços virtuais.
Uma designação de tabela de segmentos ou designação de tabela de região origina a tradução a ser realizada por meio de tabelas estabelecidas pelo sistema operativo no armazenamento real ou absoluto. Uma designação de espaço real origina que o endereço virtual seja tratado simplesmente como um endereço real, sem a utilização de tabelas de armazenamento. 42 ΡΕ2229630
No processo de tradução quando se utiliza uma designação de tabela de segmentos ou uma designação de tabela de região, são reconhecidos três tipos de unidades de informação - regiões, segmentos, e páginas. Uma região é um bloco de endereços virtuais sequenciais ocupando 2 Gigabytes e começando numa extremidade de 2 Gigabytes. Um segmento é um bloco de endereços virtuais sequenciais ocupando 1 Megabytes e começando numa extremidade de 1 Megabyte. Uma página é um bloco de endereços virtuais sequenciais ocupando 4 kilobytes e começando numa extremidade de 4 kilobytes.
Formato de Endereço Virtual A tradução de um endereço virtual pode envolver a referenciação de uma pluralidade de tabelas de tradução de uma hierarquia de tabelas de tradução para se obter um endereço real ou absoluto. 0 endereço real pode ser adicionalmente sujeito a uma operação de prefixação para formar um endereço absoluto. 0 endereço virtual contém indices para entradas em tabelas de tradução na hierarquia de tabelas de tradução. 0 endereço virtual, concordantemente, está dividido em quatro campos principais. Os bits 0-32 são chamados a região de índice (RX), os bits 33-43 são chamados 0 índice de segmento (SX), os bits 44-51 são chamados o índice de página (PX), e os bits 52-63 são chamados o índice de byte (BX). Numa forma de realização, o endereço virtual tem o formato como se ilustra na Figura 43 ΡΕ2229630
Conforme determinado pelo seu ASCE, um espaço de endereços virtual pode ser um espaço de 2 Gigabytes consistindo de uma região, ou pode ser um espaço de até 16 Exabytes consistindo de regiões de até 8 Gigabytes. A parte RX de um endereço virtual aplicando-se a um espaço de 2 Gigabytes deverá ser toda de zeros; de outra forma é reconhecida uma excepção. A parte RX de um endereço virtual é ela própria dividida em três campos. Os bits 0-10 são chamados de primeiro índice de região (RFX), os bits 11-21 são chamados de segundo índice de região (RSX), e os bits 22-32 são chamados de terceiro índice de região (RTX). Numa forma de realização, os bits 0-32 do endereço virtual têm o formato como se ilustra na Figura 19.
Um endereço virtual no qual a RTX é a parte significativa mais à esquerda (um endereço de 42 bits) é capaz de endereçar 4 Terabytes (2048 regiões), um no qual a RSX é a parte significativa mais à esquerda (um endereço de 53 bits) é capaz de endereçar 8 Petabytes (4 193 044 regiões), e um no qual a RFX é a parte significativa mais à esquerda (um endereço de 64 bits) é capaz de endereçar 16 Exabytes (8 589 934 592 regiões).
Um endereço virtual no qual a RX é zero pode ser traduzido num endereço real por meio de duas tabelas de tradução: uma tabela de segmentos e uma tabela de páginas. Com a funcionalidade EDAT activada, a tradução pode ser completada com apenas a tabela de segmentos. A RFX pode ser 44 ΡΕ2229630 não zero, caso em que são requeridas uma primeira tabela de regiões, uma segunda tabela de regiões, e uma terceira tabela de regiões. Se a RFX é zero, mas a RSX pode ser não zero, são requeridas uma segunda tabela de regiões e uma terceira tabela de regiões. Se a RFX e a RSX são zero, mas a RTX pode ser não zero, é requerida uma terceira tabela de regiões. É reconhecida uma excepção se o ASCE para um espaço de endereços não designa o nivel de tabela mais elevado (começando com a primeira tabela de regiões e continuando para baixo para a tabela de segmentos) necessário para traduzir uma referência para o espaço de endereços.
Tradução Dinâmica do Endereço Virtual É agora feita referência à Figura 4 ilustrando uma forma de realização em que o ASCE efectivo determinado na Figura 3 é utilizado para determinar a primeira tabela de tradução na hierarquia de tabelas de tradução utilizadas na tradução do endereço virtual.
Numa forma de realização, o registo de controlo 1 (CRI) contém o PASCE. 0 registo de controlo 7 (CR7) contém o SASCE. 0 registo de controlo 13 (CR13) contém o HASCE, e uma Entrada de uma Segunda Tabela de Espaço de Endereços (ASTE) que é derivada pelo processo de Tradução de Registo de Acesso (ART) contém um Elemento de Controlo do Espaço de 45 ΡΕ2229630
Endereços especificado como Registo de Acesso. Um ASCE efectivo 400 é selecionado a partir de uma destas localizações .
Uma primeira porção do ASCE efectivo 400 contém uma origem de tabela 402 a qual contém um endereço de origem designando quer uma primeira tabela de regiões, uma segunda tabela de regiões, uma terceira tabela de regiões, ou uma tabela de segmentos. A origem de tabela (bits 0-15) é apensa com 12 zeros em binário para formar um endereço de origem de 64 bits da tabela de tradução mais elevada na hierarquia de tabelas de tradução a serem utilizadas na tradução do endereço virtual. O ASCE efectivo 400 também contém um bit de controlo do espaço real (R) 404 e bits DT 406. Se o bit de controlo do espaço real (R) é zero então os bits DT são descodificados pelo selector 408 para determinar qual endereço de origem particular é a origem de tabela 402. Se os bits DT são iguais a três (11 em binário) então a origem de tabela 402 designa uma primeira tabela de regiões 410. Se os bits DT são iguais a dois (10 em binário) então a origem de tabela 402 designa uma segunda tabela de regiões 412. Se os bits DT são iguais a um (01 em binário) então a origem de tabela 402 designa uma terceira tabela de regiões 414. De outra forma, se os bits DT são iguais a zero (00 em binário) então a origem de tabela 402 designa uma tabela de segmentos 416. A primeira tabela de regiões, a segunda tabela de regiões, ou a terceira tabela de regiões são algumas vezes referidas simplesmente como uma tabela de regiões. 46 ΡΕ2229630
Similarmente, uma designação de primeira tabela de regiões, uma designação de segunda tabela de regiões, ou uma designação de terceira tabela de regiões são algumas vezes referidas como uma designação de tabela de regiões. As tabelas de região, de segmento, e de página reflectem a atribuição corrente do armazenamento real. Página é um termo utilizado para a atribuição de armazenamento virtual. 0 armazenamento real é distribuído em blocos fixos. As páginas não necessitam de ser adjacentes no armazenamento real mesmo embora atribuídas a um conjunto de endereços virtuais sequenciais.
Quando o ASCE utilizado numa tradução é uma designação de primeira tabela de regiões, o processo de tradução consiste numa pesquisa em multi-nível utilizando, por exemplo, uma primeira tabela de regiões, uma segunda tabela de regiões, uma terceira tabela de regiões, uma tabela de segmentos, e opcionalmente uma tabela de páginas. Estas tabelas residem no armazenamento real ou absoluto. Quando o ASCE é uma designação de segunda tabela de regiões, uma designação de terceira tabela de regiões, ou uma designação de tabela de segmentos, as pesquisas nos níveis de tabelas acima do nível designado são omitidas, e as próprias tabelas de nível mais elevado são omitidas. É agora feita referência à Figura 5a ilustrando uma forma de realização da tradução de endereços dinâmica de um endereço virtual utilizando uma hierarquia de tabelas de tradução. 47 ΡΕ2229630 0 ASCE efectivo 400 da Figura 4 contém os bits de Tipo de Designação (DT) 406. Se o bit de controlo do espaço real (R) 404 do ASCE é zero então os bits DT são descodificados pelo selector 408 para determinar qual tabela de origem o endereço de origem 402 designa. Se o bit de controlo do espaço real (R) é um então a tradução de endereço dinâmica tem lugar como se mostra no nodo D 564 na Figura 5B.
Se os bits DT são igual a três (11 em binário) no selector 408 então a primeira tabela designada na hierarquia de tabelas de tradução é uma primeira tabela de regiões. A tabela de origem 402 é adicionada aritmeticamente, em 502, com uma porção do Primeiro índice de Região (RFX) 508 do endereço virtual para referenciar a entrada da primeira tabela de regiões 506 numa primeira tabela de regiões. A origem da tabela (quer com 12 zeros apensos à direita, ou multiplicada por 4096) é adicionada ao produto do índice multiplicado por 8 (ou o índice com três zeros apensos à direita). A entrada da primeira tabela de regiões contém uma origem de segunda tabela de regiões 504 para uma seguinte tabela inferior na hierarquia de tabelas de tradução utilizadas na tradução. A tabela inferior a seguir à primeira tabela de regiões é a segunda tabela de regiões. Se o bit inválido (I) da entrada da primeira tabela de regiões é igual a um então a entrada da primeira tabela de regiões é inválido e não pode ser utilizado na tradução. É indicada uma condição de excepção. 48 ΡΕ2229630
Se os bits DT são iguais a dois (10 em binário) no selector 408 então a primeira tabela designada na hierarquia de tabelas de tradução é uma segunda tabela de regiões. A origem da tabela 402 é adicionada aritmetica-mente, em 510, com uma porção do Segundo índice de Região (RSX) 516 do endereço virtual para referenciar a entrada de segunda tabela de regiões 514 numa segunda tabela de regiões. A origem da tabela (quer com 12 zeros apensos à direita, ou multiplicada por 4096) é adicionada ao produto do indice multiplicado por 8 (ou o índice com três zeros apensos à direita). A entrada de segunda tabela de regiões contém uma origem de uma terceira tabela de regiões 512 para uma tabela inferior seguinte na hierarquia de tabelas de tradução utilizadas na tradução. A tabela inferior seguinte à segunda tabela de regiões é a terceira tabela de regiões. Se o bit inválido (I) da entrada da segunda tabela de regiões é igual a um então a entrada da segunda tabela de regiões é inválido e é indicada uma condição de excepção.
Se os bits DT são iguais a um (01 em binário) no selector 408 então a primeira tabela designada na hierarquia de tabelas de tradução é uma terceira tabela de regiões. A origem da tabela 402 é adicionada aritme- ticamente, em 518, com uma porção do Terceiro índice de
Região (RTX) 524 do endereço virtual para referenciar a entrada de terceira tabela de regiões 522 numa terceira tabela de regiões. A origem da tabela (quer com 12 zeros apensos à direita, ou multiplicada por 4096) é adicionada 49 ΡΕ2229630 ao produto do índice multiplicado por 8 (ou o índice com três zeros apensos à direita). A entrada de terceira tabela de regiões contém uma origem de uma tabela de segmentos 520 para uma tabela inferior seguinte na hierarquia de tabelas de tradução utilizadas na tradução. A tabela inferior seguinte à terceira tabela de regiões é a tabela de segmentos. Se o bit inválido (I) da entrada da terceira tabela de regiões é igual a um então a entrada da terceira tabela de regiões é inválida e é indicada uma condição de excepção.
Se os bits DT são iguais a zero (00 em binário) no selector 408 então a primeira tabela designada na hierarquia de tabelas de tradução é uma tabela de segmentos. A origem da tabela 402 é adicionada aritmeticamente, em 526, com uma porção do índice de Segmentos (SX) 532 do endereço virtual para referenciar a entrada da tabela de segmentos 530 numa tabela de segmentos. A origem da tabela (quer com 12 zeros apensos à direita, ou multiplicada por 4096) é adicionada ao produto do índice multiplicado por 8 (ou o índice com três zeros apensos à direita) . A entrada da tabela de segmentos contém quer um endereço de origem para uma tabela de páginas ou um endereço absoluto de um quadro de segmentos (SFAA), ambos mostrados em 528. Se o bit inválido (I) da entrada da tabela de segmentos é igual a um então a entrada da tabela de segmentos é inválida e é indicada uma condição de excepção.
Em 538 é examinado o bit de controlo de formato 50 ΡΕ2229630 STE (FC) da tabela de segmentos. Se o controlo de formato STE é um então a entrada da tabela de segmentos 530 contém um endereço absoluto de quadro de segmentos (SFAA) 552 e a tradução de endereços dinâmica continua com referência ao nodo 562 na Figura 5C. De outra forma, a entrada da tabela de segmentos obtida a partir da tabela de segmentos contém um endereço de origem de tabela de páginas e a tradução de endereços dinâmica continua com referência ao nodo 560 na Figura 5B.
Sendo agora feita referência à Figura 5B. Se o controlo de formato STE na entrada da tabela de segmentos é zero então a entrada da tabela de segmentos obtida a partir da tabela de segmentos contém um endereço de origem para a tabela inferior seguinte na hierarquia de tabelas de tradução. A tabela inferior seguinte à tabela de segmentos é uma tabela de páginas. A origem da tabela de páginas 528, obtida a partir da entrada da tabela de segmentos 530 da Figura 5A, é adicionada aritmeticamente, em 538, com uma porção do índice de Página (PX) 534 do endereço virtual para referenciar a entrada da tabela de páginas 542 numa tabela de páginas. A entrada da tabela de páginas contém um endereço real de quadro de página (PFRA) 546. Quando os bits mais à esquerda do endereço real de quadro de página são concatenados, em 548, com uma porção do byte de índice (BX) 536 do endereço virtual, é obtido um endereço real de 64 bits 550. O endereço real de 64 bits pode ser sujeito adicionalmente a uma operação de prefixação para formar um endereço absoluto. O endereço virtual traduzido referencia 51 ΡΕ2229630 um bloco de 4 kilobytes desejado (4096 bytes) de dados no armazenamento ou memória principais.
Preferencialmente, a informação utilizada na tradução dinâmica de um endereço virtual para um endereço de memória é armazenada numa etiqueta de entrada para uma memória intermédia de consulta da tradução conjuntamente com o endereço do bloco de memória associado ao endereço virtual. 0 acesso ao armazenamento subsequente pode rapidamente traduzir um endereço virtual comparando a informação do ASCE e a informação do endereço virtual com as etiquetas da memória intermédia de consulta da tradução. Se é encontrada uma etiqueta que é a do endereço virtual, os endereços na memória intermédia de consulta da tradução do bloco de memória podem ser utilizados em vez de se realizar o acesso sequencial lento de cada tabela de tradução envolvida. Numa forma de realização, o endereço real do quadro de página (PFRA) conjuntamente com uma etiqueta consistindo de, por exemplo, do ASCE e das porções do RX, SX, e PX dos endereços virtuais são armazenados numa entrada da memória intermédia de consulta da tradução 544. A subsequente tradução deste endereço virtual é depois derivada a partir da informação armazenada na memória intermédia de consulta da tradução.
Sendo agora feita referência à Figura 5C. Se o controlo de formato STE na entrada da tabela de segmentos 530 é um então a entrada da tabela de segmentos contém um endereço absoluto de quadro de segmentos (SFAA) 552. Quando 52 ΡΕ2229630 os bits mais à esquerda do endereço absoluto de quadro de segmentos são concatenados, em 554, com uma porção do índice de página 534 e uma porção do byte de índice 536 do endereço virtual, é obtido um endereço absoluto de 64 bits 556. 0 endereço virtual traduzido referencia um grande bloco de dados desejado no armazenamento ou memória principal. 0 grande bloco de dados tem pelo menos 1
Megabyte (1 048 576 bytes) de dimensão.
Numa forma de realização, o endereço absoluto de quadro de segmentos (SFAA) conjuntamente com as porções RX e SX do endereço virtual são armazenados numa memória intermédia de consulta da tradução 544. A subsequente tradução deste endereço virtual é então derivada a partir da informação armazenada na memória intermédia de consulta da tradução.
Formatos da Entrada da Tabela de Tradução
As formas de realização das várias entradas da tabela de tradução na hierarquia de tabelas de tradução utilizadas na tradução são como se segue.
Entradas da Tabela de Regiões O termo "entrada de tabela de regiões" significa uma entrada de uma primeira tabela de regiões, uma entrada de uma segunda tabela de regiões, ou uma entrada de uma terceira tabela de regiões. As entradas pesquisadas e 53 ΡΕ2229630 carregadas a partir da primeira tabela de regiões, da segunda tabela de regiões, e da terceira tabela de regiões têm os seguintes formatos. 0 nivel (primeiro, segundo, ou terceiro) da tabela contendo uma entrada é identificado pelos bits do tipo de tabela (TT) na entrada.
Numa forma de realização, os formatos da entrada da primeira tabela de regiões, da entrada de segunda tabela de regiões, e da entrada da terceira tabela de regiões são como ilustrado na Figura 20.
Segunda Tabela Origem de Região, Terceira Tabela Origem de Região, e Tabela de Origem de Segmentos: Uma entrada de primeira tabela de região contém uma segunda tabela de origem de região. Uma entrada de segunda tabela de região contém uma terceira tabela de origem de região. Uma entrada de terceira tabela de região contém uma tabela de origem de segmentos. A seguinte descrição aplica-se a cada uma das três tabelas de origem. Os bits 0-51 da entrada, com 12 zeros apensos à direita, formam um endereço de 64 bits que designa o começo da seguinte tabela de nivel inferior.
Bit de Protecção DAT (P) : Quando se aplica a DAT melhorada, o bit 54 é tratado como sendo sujeito à operação lógica OU com o bit de protecção da DAT em cada subsequente entrada de tabela de região, entrada de tabela de segmentos, e, quando aplicável, entrada de tabela de página utilizada na tradução. Assim, quando o bit é um, aplica-se 54 ΡΕ2229630 a protecção da DAT a toda a região ou regiões especificadas pela entrada da tabela de região. Quando a funcionalidade DAT melhorada não está instalada, ou quando a funcionalidade está instalada mas o controlo de activação da DAT melhorada é zero, o bit 54 da entrada da tabela de região é ignorado.
Deslocamento da Segunda Tabela de Região, Deslocamento da Terceira Tabela de Região, e Deslocamento da Tabela de Segmentos (TF): Uma entrada de primeira tabela de região contém um deslocamento de segunda tabela de região. Uma entrada de segunda tabela de região contém um deslocamento de terceira tabela de região. Uma entrada de terceira tabela de região contém um deslocamento de tabela de segmentos. A seguinte descrição aplica-se a cada um dos três deslocamentos de tabela. Os bits 56 e 57 da entrada especificam o comprimento de uma porção da seguinte tabela de nivel mais baixo que está a faltar no inicio da tabela, ou seja, os bits especificam a localização da primeira entrada existindo actualmente na seguinte tabela de nivel mais baixo. Os bits especificam o comprimento da porção em falta em unidades de 4 096 bytes, tornando assim o comprimento da porção em falta variável em múltiplos de 512 entradas. O comprimento da porção em falta, em unidades de 4 096 bytes, é igual ao valor de TF. Os conteúdos do campo de deslocamento, em conjunção com o campo de comprimento, bits 62 e 63, são utilizados para estabelecer quando a porção do endereço virtual (RSX, RTX, ou SX) a ser traduzida por meio da seguinte tabela de nivel mais baixo designa uma entrada que actualmente existe na tabela. 55 ΡΕ2229630
Bit Inválido de Região (I): 0 bit 58 numa entrada de primeira tabela de região ou entrada de segunda tabela de região controla quando o conjunto de regiões associadas à entrada está disponível. 0 bit 58 numa entrada de terceira tabela de região controla quando a única região associada à entrada está disponível. Quando o bit 58 é zero, a tradução de endereço prossegue utilizando a entrada de tabela de região. Quando o bit é um, a entrada não pode ser utilizada para tradução.
Bits de Tipo de Tabela (TT) : Os bits 6 0 e 61 da entrada da primeira tabela de região, entrada da segunda tabela de região, e da entrada de terceira tabela de região identificam o nível da tabela contendo a entrada, como se segue: Os bits 60 e 61 devem identificar o nível de tabela correcto, considerando o tipo de designação de tabela que é o ASCE a ser utilizado na tradução e o número de níveis de tabelas que tenham até agora sido utilizados; de outra forma, é reconhecida uma excepção de especificação de tradução. A seguinte tabela mostra os bits de tipo de tabela:
Bits de Tipo de Tabela para Entradas de Tabela de Região
Bits 60 e 61 Nível da Tabela de Região 11 Primeiro 10 Segundo 01
Terceiro 56 ΡΕ2229630
Comprimento da Segunda Tabela de Região, Comprimento da Terceira Tabela de Região, e Comprimento da Tabela de Segmentos (TL): Uma entrada de primeira tabela de região contém um comprimento de segunda tabela de região. Uma entrada de segunda tabela de região contém um comprimento de terceira tabela de região. Uma entrada de terceira tabela de região contém um comprimento de tabela de segmentos. A seguinte descrição aplica-se a cada um dos três comprimentos de tabela. Os bits 62 e 63 da entrada especificam o comprimento da seguinte tabela de nivel mais baixo em unidades de 4 096 bytes, fazendo assim o comprimento da tabela variável em múltiplos de 512 entradas. O comprimento da seguinte tabela de nivel mais baixo, em unidades de 4 096 bytes, é mais um do que o valor de TL. Os conteúdos do campo de comprimento, em conjunção com o campo de deslocamento, bits 56 e 57, são utilizados para estabelecer quando a porção do endereço virtual (RSX, RTX, ou SX) a ser traduzida por meio da seguinte tabela de nivel mais baixo designa uma entrada que actualmente existe na tabela. Todas as outras posições de bits da entrada da tabela de região são reservadas para possíveis extensões futuras e deverão conter zeros; de outra forma, o programa pode não operar compativelmente no futuro. Quando se aplica a DAT melhorada, as posições de bits reservadas da entrada de tabela de região deverão conter zeros mesmo se a entrada de tabela é inválida. 57 ΡΕ2229630
Entradas de Tabela de Segmentos
Quando a DAT melhorada não se aplica, ou quando a DAT melhorada se aplica e o controlo de formato STE, bit 53 da entrada de tabela de segmentos é zero, a entrada pesquisada e carregada a partir da tabela de segmentos, numa forma de realização, tem o formato como se ilustra na Figura 21.
Quando a DAT melhorada se aplica e o controlo de formato STE é um, a entrada pesquisada e carregada a partir da tabela de segmentos, numa forma de realização, tem o formato como se ilustra na Figura 22.
Campos seleccionados na entrada de tabela de segmentos são atribuídos como se segue:
Tabela de Página de Origem: Quando a DAT melhorada não se aplica, ou quando a DAT melhorada se aplica mas o controlo de formato STE, bit 53 da entrada de tabela de segmentos, é zero, os bits 0-52, com 11 zeros apensos à direita, formam um endereço de 64 bits que designa o início de uma tabela de páginas. É imprevisível quando o endereço é real ou absoluto.
Endereço Absoluto de Quadro de Segmentos (SFAA):
Quando a DAT melhorada se aplica e o controlo de formato STE é um, os bits 0-43 da entrada, com 20 zeros apensos à direita, formam o endereço absoluto de 64 bits do segmento. 58 ΡΕ2229630
Controlo de Validade de ACCF (AV) : Quando a DAT melhorada se aplica e o controlo de formato STE é um, o bit 47 é o bit de controlo de acesso e bit de controlo de validade da protecção de pesquisa e carregamento (ACCF). Quando o controlo AV é zero, os bits 48-52 da entrada da tabela de segmentos são ignorados. Quando o controlo AV é um, os bits 48-52 são utilizados como se descreve abaixo.
Bits de Controlo de Acesso (ACC) : Quando a DAT melhorada se aplica, o controlo de formato STE é um, e o controlo AV é um, os bits 48-51 da entrada de tabela de segmentos contêm os bits de controlo de acesso que podem ser utilizados para qualquer acesso controlado por chave verificar que se aplica ao endereço.
Bit de Protecção de Pesquisa e Carregamento (F):
Quando a DAT melhorada se aplica, o controlo de formato STE é um, e o controlo AV é um, o bit 52 da entrada de tabela de segmentos contém o bit de protecção da pesquisa e carregamento que pode ser utilizado para qualquer acesso controlado por chave verificar que se aplica ao endereço.
Controlo de Formato STE (FC): Quando a DAT melhorada se aplica, o bit 53 é o controlo de formato para a entrada de tabela de segmentos, como se segue:
Quando o bit FC é zero, os bits 0-52 da entrada formam a tabela de página de origem, e o bit 55 está reservado. 59 ΡΕ2229630
Quando o bit FC é um, os bits 0-43 da entrada formam o endereço absoluto do quadro de segmentos, o bi 47 é o controlo de validade ACCF, os bits 48-51 são os bits de controlo de acesso, o bit 52 é o bit de protecção da pesquisa e carregamento, e o bit 55 é a alteração de sobreposição de gravação. Quando a DAT melhorada não se aplica, o bit 53 é ignorado.
Bit de Protecção de DAT (P) : O bit 54, quando é um, indica que a protecção de DAT se aplica ao segmento inteiro.
Quando a DAT melhorada não se aplica, o bit 54 é tratado como sendo sujeito à operação lógica OU com o bit de protecção da DAT na entrada da tabela de páginas utilizada na tradução.
Quando a DAT melhorada se aplica, o bit de protecção da DAT em qualquer e em todas as entradas de tabelas de região utilizadas na tradução é tratado como sendo sujeito à operação lógica OU com o bit de protecção da DAT na entrada da tabela de segmentos; quando o controlo de formato STE é zero, o bit de protecção da DAT no STE é adicionalmente tratado como sendo sujeito à operação lógica OU com o bit de protecção da DAT na entrada da tabela de páginas.
Alteração de Sobreposição de Gravação (CO) :
Quando a DAT melhorada se aplica, e o controlo de formato 60 ΡΕ2229630 STE é um, o bit 55 da entrada de tabela de segmentos é o bit de alteração de sobreposição de gravação para o segmento. Quando a DAT não se aplica, ou quando a DAT se aplica mas o controlo de formato STE é zero, o bit 55 da entrada de tabela de segmentos é ignorado.
Bit Inválido de Segmento (I) : O bit 58 controla quando o segmento associado à entrada de tabela de segmentos está disponível.
Quando o bit é zero, a tradução de endereço prossegue utilizando a entrada de tabela de segmentos.
Quando o bit é um, a entrada de tabela de segmentos não pode ser utilizado para a tradução.
Bit de Segmento Comum (C) : O bit 59 controla a utilização das cópias da memória intermédia de consulta da tradução da entrada de tabela de segmentos. Quando a DAT melhorada não se aplica ou quando a DAT melhorada se aplica mas o controlo de formato é zero, o bit 59 também controla a utilização das cópias da memória intermédia de consulta da tradução da tabela de páginas designada pela entrada de tabela de segmentos.
Um zero identifica um segmento privado; neste caso, a entrada de tabela de segmentos e qualquer tabela de páginas que ela designe podem ser utilizadas apenas em associação com a tabela de segmentos de origem que designa 61 ΡΕ2229630 a tabela de segmentos na qual a entrada de tabela de segmentos reside.
Um um identifica um segmento comum; neste caso, a entrada de tabela de segmentos e qualquer tabela de páginas que ela designe pode continuar a ser utilizada para a tradução de endereços correspondendo ao índice de segmentos, mesmo embora seja especificada uma diferente tabela de segmentos.
No entanto, as cópias da memória intermédia de consulta da tradução da entrada de tabela de segmentos e qualquer tabela de páginas para um segmento comum não são utilizáveis se o controlo de espaço privado, bit 55, é um no ASCE utilizado na tradução ou se esse ASCE é uma designação de espaço real. 0 bit de segmento comum deverá ser zero se a entrada de tabela de segmentos é pesquisada e carregada a partir do armazenamento durante uma tradução quando o espaço de controlo privado é um no ASCE a ser utilizando. De outra forma, é reconhecida uma excepção de especificação de tradução.
Bits de Tipo de Tabela (TT) : Os bits 60 e 61 da entrada de tabela de segmentos são 00 em binário para identificar o nível da tabela contendo a entrada. Os significados de todos os possíveis valores dos bits 60 e 61 numa entrada de tabela de região ou entrada de tabela de segmentos são como se segue: ΡΕ2229630 62
Bits de Tipo de Tabela 60 60 e 61 Nível da Tabela 11 Primeira região 10 Segunda região 01 Terceira região 00 Segmento
Os bits 60 e 61 deverão identificar o nível de tabela correcto, considerando a designação de tipo de tabela que é o ASCE a ser utilizado na tradução e o número de níveis de tabela que tenham até então sido utilizados; de outra forma, é reconhecida uma excepção de especificação de tradução. Todas as outras posições de bits da entrada de tabela de segmentos são reservadas para possíveis futuras extensões e deverão conter zeros; de outra forma o programa pode não operar compativelmente no futuro. Quando se aplica a DAT melhorada, as posições reservadas de bits da entrada de tabela de segmentos deverão conter zeros mesmo se a entrada de tabela é inválida.
Entradas de Tabela de Página
Numa forma de realização, a entrada pesquisada e carregada a partir da tabela de página tem o formato como ilustrado na Figura 23.
Campos seleccionados na entrada de tabela de página são localizados como se segue: 63 ΡΕ2229630
Endereço Real de Quadro de Página (PFRA): Os bits 0-51 proporcionam os bits mais à esquerda de um endereço de armazenamento real. Quando estes bits são concatenados com o campo de índice de byte de 12 bits do endereço virtual à direita, é obtido um endereço real.
Bit Inválido de Página (I) : O bit 53 controla quando a página associada à entrada de página está disponível. Quando o bit é zero, a tradução de endereço prossegue utilizando a entrada de tabela de página. Quando o bit é um, a entrada de tabela de página não pode ser utilizada para a tradução.
Bit de Protecção da DAT (P) : O bit 54 controla quando pode ser efectuado o acesso a armazenamento na página. Este mecanismo de protecção é uma adição aos mecanismos de protecção controlada por chave e de protecção de endereço baixo. O bit não tem efeito no acesso a pesquisa e carregamento. Se o bit é zero, são permitidos armazenamentos na página, sujeitos aos seguintes constrangimentos adicionais: O bit de protecção da DAT ser zero na entrada de tabela de segmentos utilizada na tradução.
Quando a DAT melhorada se aplica, o bit de protecção da DAT ser zero em todas a entradas de tabela de região utilizadas na tradução. 64 ΡΕ2229630
Outros mecanismos de protecção
Se o bit é um, os armazenamentos não são permitidos. Quando não existem condições de excepção de prioridade mais elevada, uma tentativa para armazenar quando o bit de protecção da DAT é um origina uma excepção de protecção a ser reconhecida. 0 bit de protecção da DAT na entrada de tabela de segmentos é tratado como sendo sujeito à operação lógica OU com o bit 54 quando se determina quando a protecção da DAT se aplica à página. Quando se aplica a DAT melhorada, o bit de protecção da DAT em quaisquer entradas de tabela de região utilizadas na tradução são também tratados como sendo sujeitos à operação lógica OU com o bit 54 quando se determina se se aplica a protecção da DAT.
Alteração de Sobreposição de Gravação (CO) :
Quando não se aplica a DAT melhorada, o bit 55 da entrada de tabela de página deverá conter zero; de outra forma, é reconhecida uma excepção de especificação de tradução como parte da execução de uma instrução utilizando essa entrada para a tradução de endereço. Quando se aplica a DAT melhorada e o controlo de formato STE é zero, o bit 55 da entrada de tabela de página é o de alteração de sobreposição de gravação para a página. 0 bit da posição 52 da entrada deverá conter zero; de outra forma, é reconhecida uma excepção de 65 ΡΕ2229630 especificação de tradução como parte da execução de uma instrução utilizando essa entrada para a tradução de endereço. Os bits das posições 56-63 não estão atribuídos e são ignorados.
Outra forma de Realização da Tradução Dinâmica
Esta secção descreve o processo de tradução como ele é realizado implicitamente antes de um endereço virtual ser utilizado para aceder ao armazenamento principal. A tradução de um endereço virtual é controlada pelo bit de modo de DAT e pelos bits de controlo do espaço de endereços na palavra de estado do programa e pelos ASCEs nos registos de controlo 1, 7, e 13 e como especificado pelos registos de acesso. Quando o ASCE utilizado numa tradução é uma designação de primeira tabela de região, a tradução é realizada por meio de uma primeira tabela de região, segunda tabela de região, terceira tabela de região, tabela de segmentos, e tabela de página, todas as quais residem no armazenamento real ou absoluto. Quando o ASCE é uma designação de tabela de tipo de nível mais baixo (designação de segunda tabela de região, designação de terceira tabela de região, ou designação de tabela de segmentos) a tradução é realizada por meio de apenas os níveis de tabela começando com o nível designado, e os bits de endereço virtual que iriam, se não forem zeros, requerer a utilização de um nível ou níveis mais elevados de tabela deverão ser todos zeros; de outra forma, é reconhecida uma 66 ΡΕ2229630 excepção do tipo ASCE. Quando o ASCE é uma designação de espaço real, o endereço virtual é tratado como um endereço real, e as entradas de tabela no armazenamento real ou absoluto não são utilizadas. 0 ASCE utilizado para uma particular tradução de endereço é chamada com o ASCE efectivo.
Concordantemente, quando um endereço virtual primário é traduzido, os conteúdos do registo de controlo 1 são utilizados como o ASCE efectivo. Similarmente, para um endereço virtual secundário, são utilizados os conteúdos do registo de controlo 7; para um endereço virtual especificado como AR, é utilizado o ASCE especificado pelo registo de acesso; e para um endereço virtual de origem, são utilizados os conteúdos do registo de controlo 13.
Quando o controlo de espaço real no ASCE efectivo é zero, o tipo de designação no ASCE especifica o tipo de designação de tabela: primeira tabela de região, segunda tabela de região, terceira tabela de região, ou tabela de segmentos. A porção correspondente do endereço virtual (índice de primeira região, índice de segunda região, índice de terceira região, ou índice de segmento) é verificada em relação ao campo de comprimento de tabela na designação, e é adicionada à origem na designação para seleccionar uma entrada na tabela designada. Se a entrada seleccionada está fora da tabela, conforme o determinado pelo campo de comprimento de tabela na designação, ou se o 67 ΡΕ2229630 bit I é um na entrada seleccionada, é reconhecida uma excepção de tradução de primeira região, de tradução de segunda região, de tradução de terceira região, ou de tradução de segmento, dependendo do nível de tabela especificado pela designação. Se os bits de tipo de tabela na entrada seleccionada não indicam o nível de tabela esperado, é reconhecida uma excepção de especificação de tradução. A entrada de tabela seleccionada por meio do ASCE efectivo designa o seguinte nível mais baixo de tabela a ser utilizado. Se a tabela corrente é uma primeira tabela de região, segunda tabela de região, ou terceira tabela de região, a porção seguinte do endereço virtual (índice segunda região, índice de terceira região, ou índice de segmento, respectivamente) é verificada em relação ao deslocamento da tabela e aos campos de comprimento de tabela na corrente entrada de tabela, e é adicionada à origem na entrada para seleccionar uma entrada na seguinte tabela de nível mais baixo. Se a entrada seleccionada na tabela seguinte está fora da sua tabela, conforme o determinado pelo deslocamento de tabela e campos de comprimento de tabela na entrada de tabela corrente, ou se o bit I é um na entrada seleccionada, é reconhecida uma excepção de tradução de segunda região, de tradução de terceira região, ou de tradução de segmento, dependendo do nível da tabela seguinte. Se os bits de tipo de tabela na entrada seleccionada não indicam o nível de tabela esperado, é reconhecida uma excepção de especificação de tradução. 68 ΡΕ2229630 0 processamento de porções dos endereços virtuais por meio de sucessivos níveis de tabelas continua até que uma entrada de tabela de segmentos tenha sido seleccionada. A entrada de tabela de segmentos contém um bit de protecção de página que se aplica a todas as páginas no segmento especificado. A porção de índice de página do endereço virtual é adicionada à tabela de página de origem na entrada de tabela de segmentos para seleccionar uma entrada na tabela de página. Se o bit I é um na entrada de tabela de página, é reconhecida uma excepção de tradução de página. A entrada de tabela de página contém os bits mais à esquerda do endereço real que representa a tradução do endereço virtual, e contém um bit de protecção de página que se aplica apenas à página especificada pela entrada de tabela de página. 0 campo de índice de byte do endereço virtual é utilizado inalterado como as posições de bits mais à direita do endereço real.
De forma a eliminar o atraso associado a referências a tabelas de tradução no armazenamento real ou absoluto, a informação pesquisada e carregada a partir das tabelas é normalmente também colocada numa memória intermédia especial, a memória intermédia de consulta da tradução, e subsequentes traduções envolvendo as mesmas 69 ΡΕ2229630 entradas de tabela podem ser realizadas utilizando a informação registada na memória intermédia de consulta da tradução. A memória intermédia de consulta da tradução pode também registar equivalentes virtuais de traduções de reais relacionados com uma designação de espaço real.
Sempre que é efectuado acesso ao armazenamento real ou absoluto durante o processo de tradução de endereço para o propósito de pesquisar e carregar uma entrada a partir de uma tabela de região, tabela de segmentos, ou tabela de página, não se aplica a protecção controlada por chave.
Consulta muna Tabela Designada por um ASCE 0 controlo DT, bits 60-61 do ASCE efectivo, especifica tanto o tipo de designação de tabela do ASCE como a porção do endereço virtual que é para ser traduzida por meio da tabela designada, como se segue:
Tradução por meio de Tabela Designada
Bits 60 e 61 Tipo de Designação 11 Primeira Tabela de Região 10 Segunda Tabela de Região 01 Terceira Tateia de Região 00 Tateia de Segmentos
Porção de Endereço Virtual Traduzida pela Tabela
Primeiro índice de Região (bits 0-10) Segundo índice de Região (bits 11-21) Terceiro índice de Região (bits 22-32) índice de Segmentos (bits 33-43)
Quando os bits 60 e 61 têm o valor 11 em binário a porção do primeiro índice de região do endereço virtual 70 ΡΕ2229630 em conjunção com a primeira tabela de região de origem contida no ASCE, é utilizada para seleccionar uma entrada a partir da primeira tabela de região. 0 endereço de 64 bits da entrada da primeira tabela de região no armazenamento real ou absoluto é obtido apendendo 12 zeros à direita dos bits 0-51 da designação de primeira tabela de região e adicionando o primeiro índice de região com os três mais à direita e os 50 mais à esquerda zeros apensos. Como parte do processo de consulta de primeira tabela de região, os bits 0 e 1 do endereço virtual (que são os bits 0 e 1 do primeiro índice de região) são comparados com o comprimento da tabela, bits 62 e 63 da designação da primeira tabela de região, para estabelecer quando a entrada endereçada está dentro da primeira tabela de região. Se o valor no campo de comprimento de tabela é menor do que o valor nas correspondentes posições de bits do endereço virtual, é reconhecida uma excepção de primeira tradução de região. A comparação com o comprimento da tabela pode ser omitida se o equivalente de uma entrada de primeira tabela de região na memória intermédia de consulta de tradução é utilizado na tradução. A entrada pesquisada e carregada a partir da primeira tabela de região designa o início e especifica o deslocamento e comprimento da correspondente segunda tabela de região.
Quando os bits 60 e 61 do ASCE têm o valor 10 em binário, a porção do segundo índice de região do endereço virtual, em conjunção com a segunda tabela de região de origem contida no ASCE, é utilizada para seleccionar uma 71 ΡΕ2229630 entrada a partir da segunda tabela de região. Os bits 11 e 12 do endereço virtual (os quais são os bits 0 e 1 do segundo índice de região) são comparados com o comprimento de tabela no ASCE. Se o valor no campo de comprimento de tabela é menor do que o valor nas correspondentes posições de bits do endereço virtual, é reconhecida uma excepção de segunda tradução de região. A comparação com o comprimento de tabela pode ser omitida se o equivalente de uma entrada de segunda tabela de região na memória intermédia de consulta da tradução é utilizado na tradução. 0 processo de consulta de segunda tabela de região é, por outro lado, o mesmo do processo de consulta de primeira tabela de região; a entrada pesquisada e carregada a partir da segunda tabela de região designa o início e especifica o deslocamento e comprimento da correspondente terceira tabela de região.
Quando os bits 60 e 61 do ASCE têm o valor 01 em binário, a porção do terceiro índice de região do endereço virtual, em conjunção com a terceira tabela de região de origem contida no ASCE, é utilizada para seleccionar uma entrada a partir da terceira tabela de região. Os bits 22 e 23 do endereço virtual (que são os bits 0 e 1 do terceiro índice de região) são comparados com o comprimento de tabela no ASCE. Se o valor no campo de comprimento de tabela é menor do que o valor nas correspondentes posições de bits do endereço virtual, é reconhecida uma excepção de terceira tradução de região. 0 processo de consulta de terceira tabela de região é, de outro modo, o mesmo do processo de consulta de primeira tabela de região, 72 ΡΕ2229630 incluindo a verificação dos bits de tipo de tabela na entrada de terceira tabela de região. A entrada pesquisada e carregada a partir da terceira tabela de região designa o inicio e especifica o deslocamento e comprimento da tabela de segmentos correspondente.
Quando os bits 60 e 61 do ASCE têm o valor 00 em binário, a porção do índice de segmento do endereço virtual, em conjunção com a tabela de segmentos de origem contida no ASCE, é utilizada para seleccionar uma entrada a partir da tabela de segmentos. Os bits 33 e 34 do endereço virtual (os quais são os bits 0 e 1 do índice de segmento) são comparados com o comprimento de tabela no ASCE. Se o valor no campo de comprimento de tabela é menor do que o valor nas correspondentes posições de bits do endereço virtual, é reconhecida uma excepção de tradução de segmento. A comparação com o comprimento de tabela pode ser omitido se o equivalente de uma entrada de tabela de segmentos na memória intermédia de consulta da tradução é utilizado na tradução. O processo de consulta de tabela de segmentos é, de outro modo, o mesmo do processo de consulta de primeira tabela de região, incluindo a verificação dos bits de tipo de tabela na entrada de tabela de segmentos. O processamento é como se segue:
Quando a DAT melhorada não se aplica, ou quando a DAT melhorada se aplica mas o controlo de formato STE é zero, a entrada pesquisada e carregada a partir da tabela de segmentos designa o início da tabela de página corres- 73 ΡΕ2229630 pondente, e o processamento continua como descrito em "Consulta de Tabela de Página", abaixo.
Quando a DAT melhorada se aplica e o controlo de formato STE é um, a entrada pesquisada e carregada a partir da tabela de segmentos contém os bits mais à esquerda do endereço absoluto do quadro de segmentos. Se o bit de protecção da DAT é um tanto em qualquer entrada de tabela de região utilizada na tradução como na entrada de tabela de segmentos, e a referência de armazenamento para a qual a tradução está a ser realizada é um armazenador, é reconhecida uma excepção de protecção.
Consulta numa Tabela Designada por uma Entrada de Tabela de Região
Quando o ASCE efectivo é uma designação de tabela de região, é seleccionada uma entrada de tabela de região como descrito na secção precedente. Então os conteúdos da entrada seleccionada e a porção do índice seguinte do endereço virtual são utilizados para seleccionar uma entrada na seguinte tabela de nível mais baixo, que pode ser outra tabela de região ou uma tabela de segmentos. Quando a entrada de tabela seleccionada por meio do ASCE é uma entrada de uma primeira tabela de região, a porção do segundo índice de região do endereço virtual, em conjunção com a segunda tabela de região de origem contida na entrada da primeira tabela de região, é utilizada para seleccionar uma entrada a partir a segunda tabela de região. 0 endereço 74 ΡΕ2229630 de 64 bits da entrada da segunda tabela de região no armazenamento real ou absoluto é obtido apendendo 12 zeros à direita dos bits 0-51 da entrada da primeira tabela de região e adicionando o segundo índice de região com três mais à direita e 50 mais à esquerda zeros apensos.
Quando se forma o endereço de uma entrada de segunda região, terceira região, ou tabela de segmentos, é imprevisível qual a prefixação, se alguma, é aplicada à respectiva tabela de origem contida na entrada de tabela de nível mais elevado antes da adição do valor de índice de tabela, ou é aplicada prefixação ao endereço de entrada de tabela que é formado pela adição da tabela de origem e do valor de índice de tabela.
Como parte do processo de consulta de segunda tabela de região, os bits 11 e 12 do endereço virtual (que são os bits 0 e 1 do segundo índice de região) são comparados com o deslocamento da tabela, bits 56 e 57 da entrada de primeira tabela de região, e com o comprimento de tabela, bits 62 e 63 da entrada da primeira tabela de região, para estabelecer se a entrada endereçada está dentro da segunda tabela de região. Se o valor no campo de deslocamento da tabela é maior do que o valor nas correspondentes posições de bits do endereço virtual, ou se o valor no campo de comprimento de tabela é menor do que o valor nas correspondentes posições de bits do endereço virtual, é reconhecida uma excepção de segunda tradução de região. 75 ΡΕ2229630 A segunda tabela de região designa o inicio e especifica o deslocamento e comprimento da correspondente terceira tabela de região.
Quando a entrada de tabela seleccionada por meio do ASCE é uma entrada de segunda tabela de região, ou se uma entrada de segunda tabela de região tenha sido seleccionada por meio dos conteúdos de uma entrada de primeira tabela de região, a porção do terceiro índice de região do endereço virtual, em conjunção com a terceira tabela de região de origem contida na entrada da segunda tabela de região, é utilizada para seleccionar uma entrada a partir da terceira tabela de região. Os bits 22 e 23 do endereço virtual (que são os bits 0 e 1 do terceiro índice de região) são comparados com o deslocamento de tabela e o comprimento de tabela na entrada da segunda tabela de região. É reconhecida uma excepção de terceira tradução de região se o deslocamento de tabela é maior do que os bits 22 e 23 ou se o comprimento de tabela é menor do que os bits 22 e 23. 0 processo de consulta de terceira tabela de região é, de outra forma, o mesmo do do processo de consulta de segunda tabela de região. A entrada pesquisada e carregada a partir da terceira tabela de região designa o início e especifica o deslocamento e comprimento da correspondente tabela de segmentos.
Quando a entrada de tabela selecionada por meio do ASCE é uma entrada de terceira tabela de região, ou se 76 ΡΕ2229630 uma entrada de terceira tabela de região tiver : selecionada por meio dos conteúdos de uma entrada segunda tabela de região, a porção do índice de segmentos do endereço virtual, em conjunção com a tabela de segmentos de origem contida na entrada de terceira tabela de região, é utilizado para selecionar uma entrada a partir da tabela de segmentos. Os bits 33 e 34 do endereço virtual (que são os bits 0 e 1 do índice de segmentos) são comparados com o deslocamento de tabela e o comprimento de tabela na entrada da terceira tabela de região. É reconhecida uma excepção de tradução de segmento se o deslocamento de tabela é maior do que os bits 33 e 34 ou se o comprimento de tabela é menor do que os bits 33 e 34. É reconhecida uma excepção de especificação de tradução se (1) o controlo de espaço privado, bit 55, no ASCE é um e (2) o bit de segmento comum, bit 59, na entrada pesquisada e carregada a partir da tabela de segmentos é um. 0 processo de consulta de tabela de segmentos é, de outra forma, o mesmo do do processo de consulta de segunda tabela de região. 0 processamento é como se segue:
Quando a DAT melhorada não se aplica, ou quando a DAT melhorada se aplica mas o controlo de formato STE é zero, a entrada pesquisada e carregada a partir da tabela de segmentos designa o início da correspondente tabela de página, e o processamento continua como descrito em "Consulta de Tabela de Página", abaixo.
Quando a DAT melhorada se aplica e o controlo de 77 ΡΕ2229630 formato STE é um, a entrada pesquisada e carregada a partir da tabela de segmentos contém os bits mais à esquerda do endereço absoluto do quadro de segmentos. Se o bit de protecção da DAT é um quer em qualquer entrada de tabela de região utilizada na tradução ou na entrada de tabela de segmentos, e a referência de armazenamento para a qual a tradução esteja a ser realizada é um armazenamento, é reconhecida uma excepção de protecção.
Consulta de Tabela de Página
Quando a DAT melhorada não se aplica, ou quando a DAT melhorada se aplica mas o controlo de formato STE é zero, a porção do índice de página do endereço virtual, em conjunção com a tabela de página de origem contida na entrada de tabela de segmentos, é utilizada para seleccionar uma entrada a partir da tabela de página. 0 endereço de 64 bits da entrada de tabela de página no armazenamento real ou absoluto é obtido apendendo 11 zeros à direita da tabela de página de origem e adicionando o índice de página, com três mais à direita e 53 mais à esquerda zeros apensos. Pode ocorrer um bit de transporte do bit de posição 0. A entrada pesquisada e carregada a partir da tabela de página indica a disponibilidade da página e contém os bits mais à esquerda do endereço real de quadro de página. O bit inválido de página, bit 53, é 78 ΡΕ2229630 inspeccionado para estabelecer quando a página correspondente está disponível. Se este bit é um, é reconhecida uma excepção de tradução de página. Se o bit da posição 52 contém um um, é reconhecida uma excepção de especificação de tradução. Quando a DAT melhorada não se aplica, ou a DAT melhorada se aplica e o controlo de formato STE é zero, é também reconhecida uma excepção de especificação de tradução se o bit da posição 55 contém um um. Se o bit de protecção da DAT é um tanto na entrada de tabela de segmentos utilizada na tradução, na entrada de tabela de página, ou, quando se aplica a DAT melhorada, em qualquer entrada de rabela de região utilizada durante a tradução, e a referência para armazenamento para a qual a tradução está a ser realizada é um armazenamento, é reconhecida uma excepção de protecção.
Formação dos Endereços Real e Absoluto
Quando o ASCE efectivo é uma designação de espaço real, os bits 0-63 do endereço virtual são utilizados directamente como o endereço de armazenamento real. O endereço real pode ser adicionalmente sujeito a prefixação para formar um endereço absoluto. Quando o ASCE efectivo não é uma designação de espaço real e não são encontradas excepções no processo de tradução, aplicam-se as seguintes condições:
Quando a DAT melhorada não se aplica, ou quando se aplica a DAT melhorada mas o controlo de formato STE é 79 ΡΕ2229630 zero, o endereço real de quadro de página é obtido a partir da entrada de tabela de página. 0 endereço real de quadro de página e a porção do índice de byte do endereço virtual são concatenados, com o endereço real de quadro de página formando a parte mais à esquerda. 0 resultado é o endereço de armazenamento real que corresponde ao endereço virtual. 0 endereço real pode ser adicionalmente sujeito a prefixação para formar um endereço absoluto.
Quando a DAT melhorada se aplica e o controlo de formato STE é um, o endereço absoluto de quadro de segmento e as porções do índice de página e do índice de byte do endereço virtual são concatenadas, da esquerda para a direita, respectivamente, para formar o endereço absoluto que corresponde ao endereço virtual.
Reconhecimento de vim Excepção durante a Tradução
Endereços inválidos e formatos inválidos podem causar excepções a serem reconhecidas durante o processo da tradução. As excepções são reconhecidas quando a informação contida em entradas de tabelas é utilizada para a tradução e se verifica estar incorrecta. É agora feita referência à Figura 6 que ilustra um fluxograma de uma forma de realização da tradução de endereços dinâmica até ao ponto de se obter um campo de controlo de formato a partir de uma entrada de tabela de segmentos. 80 ΡΕ2229630
Em 602, é obtido um endereço virtual para ser traduzido. Em 604, é obtido o endereço de origem para a tabela de tradução mais elevada utilizada na tradução do endereço virtual. O endereço de origem da primeira tabela de tradução utilizada na tradução depende do ASCE e dos bits DT. Em 606, é utilizada uma porção do endereço virtual para referenciar a entrada de tabela apropriada na tabela de tradução. Se, em 608, a entrada pesquisada e carregada a partir da tabela de tradução não é uma entrada de tabela de segmentos então a tabela de segmentos na hierarquia de tabelas de tradução ainda não tinha sido referenciada. Neste caso, em 610, a origem de uma seguinte tabela mais baixa na hierarquia de tabelas de tradução é obtida a partir da entrada da tabela. A porção apropriada do endereço virtual é utilizada para referenciar a entrada de tabela correspondente na tabela seguinte mais baixa utilizada na tradução.
Por exemplo, se o endereço da origem da tabela da primeira tabela de tradução a ser utilizada na tradução é uma primeira tabela de região então a porção RFX do endereço virtual é utilizada para referenciar uma entrada de primeira tabela de região com a primeira tabela de região. Se o endereço da origem da tabela é para uma segunda tabela de região então a porção RSX do endereço virtual é utilizada para referenciar uma entrada de uma segunda tabela de região dentro da segunda tabela de região. Se o endereço da origem da tabela é para uma 81 ΡΕ2229630 terceira tabela de região então a porção RTX do endereço virtual é utilizada para referenciar uma entrada de terceira tabela de região dentro da terceira tabela de região. Se o endereço da origem da tabela é para uma tabela de segmentos então a porção SX do endereço virtual é utilizada para referenciar uma entrada de tabela de segmentos dentro da tabela de segmentos. São referenciadas sucessivas tabelas até que a entrada de tabela de segmentos tenha sido pesquisada e carregada.
Uma vez a entrada de tabela de segmentos tenha sido pesquisada e carregada, é examinado o bit de controlo de formato da entrada de tabela de segmentos (STE), em 612, para determinar se o controlo de formato está activado para este particular endereço virtual. Se o controlo de formato STE é zero então a tradução de endereço dinâmica ocorre a respeito do nodo 614. Se o controlo de formato STE é um então a tradução de endereço dinâmica ocorre com respeito ao nodo 616.
Tradução de Endereço Dinâmica (Controlo de Formato STE é zero) É agora feita referência à Figura 7 que ilustra uma continuação do fluxograma a partir do nodo 614 da Figura 6 quando o controlo de formato STE é zero.
Em 710, é obtido um endereço de origem para uma tabela de página a partir da entrada de tabela de 82 ΡΕ2229630 segmentos. Em 712, uma porção PX do endereço virtual é utilizada para referenciar uma entrada de tabela de página na tabela de página. Em 714, é obtido um endereço real de quadro de página (PFRA) a partir da entrada de tabela de página, è obtido um bit Inválido (I) a partir da entrada de tabela de página. Se, em 716, o bit Inválido (I) é um então, em 718, a tradução do endereço virtual não pode continuar utilizando esta entrada de tabela de página devido à entrada ter sido marcada como sendo inválida. Tradução adicional do endereço virtual utilizando esta entrada de tabela de página para 722. Se, em 716, o bit Inválido (I) é zero então, em 720, o endereço real de quadro de página (PFRA) é combinado com uma porção BX do endereço virtual para gerar um endereço real. O endereço real pode ser adicionalmente sujeito a uma operação de prefixação para formar um endereço absoluto. Em 724, o endereço real é utilizado para aceder a um bloco de dados endereçado pelo endereço virtual traduzido.
Tradução de Endereço Dinâmica (Controlo de Formato STE é vim) É agora feita referência à Figura 8 que ilustra uma continuação do fluxograma a partir do nodo 616 da Figura 6.
Em 810, é obtido um endereço absoluto de quadro de segmentos (SFAA) a partir de uma porção da entrada da tabela de segmentos. É obtido um bit Inválido (I) a partir 83 ΡΕ2229630 da entrada de tabela de segmentos. Se, em 812, o bit Inválido (I) é um então, em 814, a tradução adicional do endereço virtual não pode prosseguir utilizando a entrada de tabela de segmentos porque esta tinha sido marcada como sendo inválida. Numa forma de realização, é devolvido um código de excepção para a entidade de programa requerendo a tradução. A tradução adicional deste endereço virtual utilizando esta entrada de tabela de segmentos pára 818.
Se, em 812, o bit Inválido (I) é zero então, o endereço absoluto de quadro de segmentos (SFAA) é combinado com a porção PX e BX do endereço virtual para gerar um endereço absoluto para um grande bloco de dados desejado no armazenamento principal ou na memória. Em 820, é acedido o grande bloco de dados desejado endereçado pelo endereço virtual traduzido.
Em cada entrada de tabela, o bit Inválido é examinado para determinar a validade da entrada de tabela obtida. São aqui discutidos adicionalmente outros mecanismos de protecção de tradução que protegem o bloco de dados endereçado pelo endereço virtual traduzido.
Numa outra forma de realização, é obtida informação restritiva a partir da entrada de tabela de tradução. A informação restritiva é utilizada para restringir o acesso a uma porção restrita da gama de endereços virtuais. O acesso ao grande bloco de dados desejado endereçado pelo endereço traduzido é subsequen- 84 ΡΕ2229630 temente permitido apenas à porção restrita da gama de endereços. A informação restritiva é qualquer uma de um deslocamento de página ou de um comprimento de página.
Numa ainda outra forma de realização, a informação utilizada na tradução de um endereço virtual é armazenada em pelo menos uma memória intermédia de consulta de tradução. Uma tradução subsequente de um subsequente endereço virtual para um endereço absoluto de um bloco de dados no armazenamento principal é realizada utilizando a informação armazenada a partir da memória intermédia de consulta da tradução em vez da hierarquia de tabelas de tradução.
Numa ainda outra forma de realização, se a tradução não é nativa na arquitectura da máquina, uma rotina pré-determinada de software é identificada para emular a tradução. A rotina pré-determinada de software contém uma pluralidade de instruções. A rotina pré-determinada de software é executada.
Protecção do Bloco de Dados Endereçado
Uma vez o endereço virtual tenha sido traduzido utilizando a funcionalidade DAT melhorada, como aqui descrito, o bloco de dados desejado no armazenamento principal ou na memória endereçada pelo endereço virtual traduzido pode ser sujeito a mecanismo de protecção adicional. 85 ΡΕ2229630
Protecção da DAT A função de protecção da DAT controla o acesso ao armazenamento virtual utilizando o bit de protecção da DAT em cada entrada de tabela de página e entrada de tabela de segmentos, e, quando a funcionalidade de DAT melhorada está instalada, em cada entrada de tabela de região. Ela proporciona protecção contra o armazenamento inapropriado. 0 bit de protecção da DAT (bit 54) da entrada de tabela de página controla se o armazenamento é permitido na correspondente página de 4 kilobytes. Quando o bit é zero, tanto a pesquisa e carregamento como o armazenamento são permitidos; quando o bit é um, apenas é permitida a pesquisa e carregamento. Quando é feita uma tentativa par armazenar numa página protegida, os conteúdos da página permanecem inalterados, a unidade de operação ou a execução da instrução são suprimidas, e tem lugar uma interrupção do programa para protecção. 0 bit de protecção da DAT (bit 54) da entrada de tabela de segmentos controla quando o armazenamento é permitido no correspondente segmento de 1 Megabytes, como se segue:
Quando a DAT melhorada não se aplica, ou quando a DAT melhorada se aplica e o controlo de formato STE é zero, o bit de protecção da DAT da entrada de tabela de segmentos 86 ΡΕ2229630 é tratado como sendo sujeito à operação lógica OU para a posição do bit de protecção da DAT de cada entrada na tabela de página designada pela entrada de tabela de segmentos. Desta forma, quando o bit de protecção da DAT da entrada de tabela de segmentos é um, o efeito é como se o bit de protecção da DAT fosse um em cada entrada na tabela de página designada.
Quando a DAT melhorada se aplica e o controlo de formato STE é um, o bit de protecção da DAT da entrada de tabela de segmentos controla quando o armazenamento é permitido no correspondente segmento de 1 Megabytes. Quando o bit é zero, tanto a pesquisa e carregamento como o armazenamento são permitidos; quando o bit é um, apenas a pesquisa e carregamento é permitida. Quando é feita uma tentativa para armazenar num segmento protegido, os conteúdos do segmento permanecem inalterados, a unidade de operação ou a execução da instrução é suprimida, e tem lugar uma interrupção do programa para protecção.
Quando a DAT melhorada se aplica, o bit de protecção da DAT da entrada de tabela de região, controla quando o armazenamento é permitido na ou nas correspondentes regiões. 0 bit de protecção da DAT numa entrada de tabela de região é tratado como sendo sujeito à operação lógica OU para a posição do bit de protecção da DAT de qualquer subsequente entrada de tabela de região e entrada de tabela de segmentos que tenha sido utilizada na tradução. Quando o bit de controlo de formato STE é zero, o 87 ΡΕ2229630 bit de protecçao da DAT é adicionalmente propagado para a entrada de tabela de página. A protecção da DAT aplica-se a todas as referências do tipo armazenar que utilizam um endereço virtual. É agora feita referência à Figura 9 que ilustra um fluxograma de uma forma de realização da obtenção do bit de protecção da DAT a partir da entrada de tabela de segmentos utilizada na tradução.
Em 902, é obtido um endereço virtual para ser traduzido. Em 904, é obtida a origem de uma primeira tabela de tradução utilizada na tradução do endereço virtual. Em 906, é utilizada uma porção do endereço virtual para referenciar uma entrada numa tabela de tradução de uma maneira previamente discutida. Em 908, é gerado um endereço real ou absoluto a partir tanto do endereço absoluto de quadro de segmentos (SFAA) como do endereço real de quadro de página (PFRA).
Em 910, é obtido um bit de protecção da DAT (P) a partir de cada entrada das tabelas de tradução utilizadas na tradução do endereço virtual. Deverá ser entendido que o nivel efectivo da protecção da DAT é o resultado da operação lógica OU de múltiplos bits P obtidos a partir de cada uma das entradas de tabelas utilizadas na tradução. Em 912, o bit de protecção da DAT é examinado para determinar 88 ΡΕ2229630 quando o bloco de dados endereçado pelo endereço virtual traduzido está protegido de DAT. Se, em 912, o bit de protecção da DAT (P) é zero então, em 914, são permitidas operações de armazenamento para o bloco de dados endereçado pelo endereço virtual traduzido. Se, em 912, o bit de protecção da DAT (P) é um então, em 916, as operaçãoes de armazenamento são impedidas para o bloco de dados endereçado pelo endereço virtual traduzido. Alternativamente, é aplicado um nível de protecção indicado pelo campo de protecção da DAT a todas as referências do tipo armazenar que utilizam o endereço virtual. Se o campo de protecção da DAT está activado então é indicada uma condição de excepção de protecção se um armazenamento é tentado no bloco de dados desejado endereçado pelo endereço virtual traduzido.
Protecção Controlada por Chave
Quando a protecção controlada por chave se aplica a um acesso de armazenamento, um armazenamento é apenas permitido quando a chave de armazenamento corresponde à chave de acesso associada ao pedido para acesso de armazenamento; uma pesquisa e carregamento é permitida quando a chave corresponde ou quando o bit de protecção da pesquisa e carregamento da chave de armazenamento é zero. As chaves são ditas que correspondentes quando os quatro bits de controlo de acesso da chave de armazenamento são iguais à chave de acesso, ou quando a chave de acesso é zero. A acção de protecção está resumida como se segue: ΡΕ2229630 89
Resumo da Acção de Protecção
Ctondições Ξ Permitido o Acesso ao Armazenamento Bit de Protecção da Pesquisa e Càrre-gamento da Chave de Armazenamento Relação da Chave Pesquisa e Carregamento Armazenar 0 Corresponde Sim Sim 0 Não Corresponde Sim Não 1 Corresponde Sim Sim 1 Não Corresponde Não Não Explicação: Corresponde Sim Os quatro bits de controlo de acesso da chave de armazenamento são iguais à chave de acesso, ou a chave de acesso é zero. 0 acesso é permitido Não 0 acesso não é permitido. Na pesquisa e carregamento, a informação não é tornada disponível para o programa; no armazenamento, os conteúdos da localização de armazenamento não são alterados
Quando o acesso ao armazenamento é iniciado pela CPU e se aplica a protecção controlada por chave, a chave PSW é a chave de acesso, excepto que a chave de acesso é especificada num registo geral para o primeiro operando de MOVE TO SECUNDARY e MOVE WITH DESTINATION KEY, para O segundo operando de MOVE TO PRIMARY, MOVE WITH KEY, e MOVE WITH SOURCE KEY, e para tanto o primeiro como o segundo operando de MOVE PAGE. A chave PSW ocupa as posições de bits 8-11 da corrente palavra de estado do programa.
Quando um acesso da CPU é proibido devido à protecção controlada por chave, a execução da instrução é terminada, e tem lugar uma interrupção do programa para uma excepção de protecção. No entanto, a unidade de operação ou a execução da instrução podem ser suprimidas. 90 ΡΕ2229630
Chaves de Armazenamento
Uma chave de armazenamento é associada a cada bloco de 4 kilobytes de armazenamento que está disponível na configuração. As chaves de armazenamento não são parte do armazenamento endereçável. Numa forma de realização, a chave de armazenamento tem o formato como se ilustra na Figura 24.
As posições de bits na chave de armazenamento sao atribuídas como se segue:
Bits de Controlo de Acesso (ACC): Se uma referência é sujeita a protecção controlada por chave, os quatro bits de controlo de acesso são feitos corresponder com a chave de acesso de quatro bits quando a informação é armazenada e quando a informação é pesquisada e carregada a partir de uma localização que está protegida contra a pesquisa e carregamento.
Bit de Protecção da Pesquisa e Carregamento (F) :
Se uma referência é sujeita a protecção controlada por chave, o bit de protecção da pesquisa e carregamento controla quando a protecção controlada por chave se aplica a referências do tipo pesquisa e carregamento: um zero indica que apenas as referências do tipo armazenar são monitorizadas e que a pesquisa e carregamento com qualquer chave de acesso é permitida; um um indica que a protecção 91 ΡΕ2229630 controlada por chave se aplica tanto à pesquisa e carregamento como ao armazenamento.
Bit de Referência (R): 0 bit de referência normalmente é colocada em um de cada vez que uma localização no correspondente bloco de armazenamento é referida quer para o armazenamento quer para a pesquisa e carregamento de informação.
Bit de Alteração (C): 0 bit de alteração é colocado em um de cada vez que informação é armazenada numa localização no correspondente bloco de armazenamento.
Quando a DAT melhorada se aplica, estão efectivas as seguintes condições adicionais:
Quando o controlo de formato STE (FC, bit 53 da entrada de tabela de segmentos utilizada durante a tradução) é zero, o bit 55 da entrada de tabela de página utilizada durante a tradução é o bit de alteração de sobreposição de gravação (CO) para a página. Quando o bit CO na entrada de tabela de página é um, a alteração de gravação é imprevisível para quaisquer operações de armazenamento para a página.
Quando o bit de controlo de formato (FC) na entrada de tabela de segmentos é um, aplica-se o seguinte: A posição de bit 47 da entrada de tabela de 92 ΡΕ2229630 segmentos contém o controlo de validade ACCF. 0 controlo de validade ACCF determina a validade dos bits do controlo de acesso e da protecção de pesquisa e carregamento no STE. Quando o controlo de validade ACCF é zero, a protecção controlada por chave utiliza os bits de controlo de acesso e de protecção da pesquisa e carregamento na chave de armazenamento para o bloco de 4 Kilobytes i correspondente ao endereço. Quando o controlo de validade ACCF é um, as posições de bits 48-52 da entrada de tabela de segmentos contêm os bits de controlo de acesso e o bit de protecção da pesquisa e carregamento para o segmento. Quando se determina a acessibilidade para um operando de armazenamento, é imprevisível quais dos bits 48-52 do STE ou dos bits 0-4 das chaves de armazenamento individuais para os blocos de 4 kilobytes compondo o segmento são examinados. O bit 55 da entrada de tabela de segmentos é a alteração de sobreposição de gravação (CO) para o segmento. Quando o bit CO na entrada de tabela de segmentos é um, é imprevisível como o bit de alteração é definido para quaisquer operações de armazenamento para o segmento.
Acessos de Chave de Armazenamento
As referências para as chaves de armazenamento são manipuladas como se segue: 93 ΡΕ2229630
Sempre que é feita uma referência ao armazenamento e se aplica a protecção controlada por chave para a referência, os quatro bits de controlo de acesso e o bit de protecção da pesquisa e carregamento associadoa à localização de armazenamento são inspeccionados concorrentemente e concorrentemente com a referência à localização do armazenamento. Quando (1) a DAT melhorada não se aplica, (2) a DAT melhorada se aplica mas o armazenamento é acedido por meio de uma entrada de tabela de segmentos na qual o controlo de formato STE é zero, ou (3) a DAT melhorada se aplica, o armazenamento é acedido por meio de uma entrada de tabela de segmentos na qual o controlo de formato STE é um, mas o controlo de validade ACCF é zero, os bits de controlo de acesso e o bit de protecção da pesquisa e carregamento estão nos bits 0-4 da chave de armazenamento para o bloco de 4 kilobytes. Quando a DAT melhorada se aplica e o armazenamento é acedido por meio de uma entrada de tabela de segmentos na qual ambos o controlo de formato STE e o controlo de validade ACCF são um, é imprevisível quais dos bits 0-4 da chave de armazenamento ou bits 48-52 da entrada de tabela de segmentos proporcionam os bits de controlo de acesso e o bit de protecção da pesquisa e carregamento. Além disso, quando a entrada de tabela de segmentos proporciona os bits de controlo de acesso e o bit de protecção da pesquisa e carregamento, pode ser utilizada uma cópia numa memória intermédia proveniente da memória intermédia de consulta de tradução. 94 ΡΕ2229630
Quando se aplica a DAT melhorada, e quer (a) o controlo de formato STE é zero, e a alteração de sobreposição de gravação é um na entrada de tabela de página utilizada pela DAT, ou (b) o controlo de formato STE é um, e a alteração de sobreposição de gravação é um na entrada de tabela de segmentos utilizada pela DAT, é imprevisível como a CPU define o bit de alteração quando realiza a operação de armazenamento. A alteração de sobreposição de gravação pode ser colocada numa memória intermédia na cópia da memória intermédia de consulta da tradução do PTE ou STE.
Quando a funcionalidade condicional SSKE não está instalada, a instrução SET STORAGE KEY EXTENDED origina que todos os sete bits a sejam definidos concorrentemente na chave de armazenamento. Quando a funcionalidade SSKE condicional está instalada, a instrução SET STORAGE KEY EXTENDED pode ser utilizada para definir a totalidade ou porções da chave de armazenamento com base em critérios especificados pelo programa. A instrução INSERT STORAGE KEY EXTENDED proporciona uma imagem consistente dos bits 0-6 da chave de armazenamento para um bloco de 4 kilobytes. Similarmente, as instruções INSERT VIRTUAL STORAGE KEY e TEST PROTECTION proporcionam uma imagem consistente dos bits de controlo de acesso e do bit de protecção da pesquisa e carregamento. A instrução RESET REFERENCE BIT EXTENDED modifica 95 ΡΕ2229630 apenas o bit de referência. Todos os outros bits da chave de armazenamento permanecem inalterados. 0 bit de referência e o bit de alteração são examinados concorrentemente para definir o código de condição. 0 registo de referências proporcionado pelo bit de referência não é necessariamente rigoroso. No entanto, na maioria das situações, o registo de referência coincide aproximadamente com a referência de armazenamento relacionada. 0 bit de alteração pode ser definido nos casos em que não tenha ocorrido armazenamento.
Como observado por outras CPUs, a pesquisa e carregamento e armazenamento pela chave de armazenamento devido a instruções que explicitamente manipulam uma chave de armazenamento (INSERT STORAGE KEY EXTENDED, INSERT VIRTUAL STORAGE KEY, RESET REFERENCE BIT EXTENDED, e SET STORAGE KEY EXTENDED) são ordenadas entre elas e entre as referências a operandos de armazenamento como se os acessos da chave de armazenamento fossem elas próprias pesquisas e carregamentos e armazenamentos de operandos de armazenamento, respectivamente.
Controlo de Àcesso e Protecção da Pesquisa e Carregamento (ACC/F) ou memória por via de pesquisa e
Um bloco de dados no armazenamento principais podem ser adicionalmente protegidos bits de controlo de acesso e protecção da 96 ΡΕ2229630 carregamento proporcionados na entrada de tabela de segmentos.
Validade de Acesso (AV) e Controlo de Acesso (ACC) É agora feita referência à Figura 10 que ilustra uma forma de realização de um fluxograma determinando a protecção de controlo de acesso a ser aplicada a um desejado bloco de dados endereçado pelo endereço virtual traduzido. A tradução de endereço dinâmica prossegue até ao ponto em que uma entrada de tabela de segmentos tenha sido pesquisade e carregada a partir de uma tabela de segmentos utilizada na tradução como descrito na Figura 6 para o nodo 616. A tradução de endereço continua como descrito na Figura 8 para o nodo 822 em que tenha sido obtido um endereço absoluto para um bloco de dados desejado no armazenamento ou memória. O fluxo da Figura 10 inicia-se no nodo 822.
Em 1002, é obtido um campo de validade de acesso (AV) a partir da entrada de tabela de segmentos. Em 1004, é efectuada uma determinação sobre se o campo de validade de acesso na entrada de tabela de segmentos está activado (AV= 1) . Se o campo de validade de acesso é zero então o campo de controlo de acesso (ACC) na entrada de tabela de segmentos não é válido. Em 1006, os bits do campo de 97 ΡΕ2229630 controlo de acesso são ignorados. Se o campo de validade de acesso está activado, então o campo de controlo de acesso é válido. Em 1008, os bits do campo de controlo de acesso são obtidos a partir da entrada de tabela de segmentos. Em 1010, é aplicado o nível de protecção do controlo de acesso indicado pelo campo ACC na entrada de tabela de segmentos ao bloco de dados desejado endereçado pelo endereço virtual traduzido.
Numa outra forma de realização, as operações de armazenamento no bloco de dados desejado são permitidas apenas se o campo de controlo de acesso corresponde a uma chave de acesso proporcionada por uma entidade do programa tal como uma Palavra de Estado do Programa ou um operando de uma instrução do programa a ser executada. Uma excepção de protecção é indicada preferencialmente se um armazenamento for tentado no bloco de dados desejado e o campo de controlo de acesso não corresponde à chave de acesso.
Numa ainda outra forma de realização, se o campo de validade de acesso está activado, é indicada uma excepção de protecção se uma operação de pesquisa e carregamento ou uma operação de armazenamento é tentada no bloco de memória desejado e o campo de controlo de acesso de segmento não corresponde ao campo de controlo de acesso do programa. 98 ΡΕ2229630
Validade de Acesso (AV) e Protecção de Pesquisa e Carregamento (F) É agora feita referência à Figura 11 que ilustra uma forma de realização de um fluxograma de determinação da protecção da pesquisa e carregamento a ser aplicada a um bloco de dados desejado endereçado pelo endereço virtual traduzido. A tradução de endereço dinâmica prossegue até ao ponto em que uma entrada de tabela de segmentos tenha sido pesquisada e carregada a partir de uma tabela de segmentos utilizada na tradução como descrito na Figura 6 para o nodo 616. A tradução de endereço continua como descrito na Figura 8 para o nodo 822 em que tenha sido obtido um endereço absoluto para um bloco de dados desejado no armazenamento ou memória. 0 fluxo da Figura 11 inicia-se no nodo 822.
Em 1102, é obtido um campo de validade de acesso (AV) a partir da entrada de tabela de segmentos. Em 1104, é feita uma determinação sobre se o campo de validade de acesso na entrada de tabela de segmentos está activado (AV=1) . Se, em 1104, o campo de validade de acesso é zero então, em 1106, o bit de protecção da pesquisa e carregamento é ignorado. Se, em 1104, o campo de validade de acesso está activado então, em 1108, é obtido o bit de protecção da pesquisa e carregamento a partir da entrada de tabela de segmentos. Em 1110, é aplicado o nível de 99 ΡΕ2229630 protecção da pesquisa e carregamento indicado pelo campo F na entrada de tabela de segmentos ao bloco de dados desejado endereçado pelo endereço virtual traduzido. As operações de pesquisa e carregamento a partir do bloco de dados endereçado pelo endereço virtual traduzido são permitidas apenas se o campo de protecção da pesquisa e carregamento corresponde a uma chave de acesso. A chave de acesso é proporcionada por uma Palavra de Estado do Programa ou um operando de uma instrução do programa a ser executada. As operações de pesquisa e carregamento a partir do bloco de dados desejado são permitidas apenas se quer o campo de protecção da pesquisa e carregamento esteja desactivado ou se ambos os campos de protecção da pesquisa e carregamento esteja activado e o campo de controlo de acesso associado ao endereço virtual seja igual à chave de acesso. Se a chave de acesso é zero, são permitidas as pesquisas e carregamento a partir do bloco de dados desejado.
Numa ainda outra forma de realização, se a chave de acesso do programa é zero, são permitidas operações de armazenar para o bloco de memória desejado e operações de pesquisa e carregamento a partir do bloco de memória desejado.
Numa ainda outra forma de realização, se o campo de validade de acesso e o campo de protecção da pesquisa e carregamento estão activados, é indicada uma excepção de protecção em resposta a uma operação de pesquisa e 100 ΡΕ2229630 carregamento a ser tentada a partir do bloco de memória desejado e o campo de controlo de acesso de segmento não corresponder ao campo de controlo de acesso do programa. SET STORAGE KEY EXTENDED (SSKE)
As chaves de armazenamento podem ser definidas por meio de uma instrução SET STORAGE KEY EXTENDED (SSKE). Numa forma de realização, a instrução SSKE tem o formato como se ilustra na Figura 25. A chave de armazenamento para um ou mais blocos de 4 kilobytes é substituída pelo valor no registo do primeiro operando. Quando a funcionalidade SSKE condicional está instalada, certas funções da operação de definição da chave podem ser ultrapassadas. Quando a funcionalidade SSKE condicional não está instalada, ou quando a funcionalidade SSKE condicional está instalada e ambos os bits MR e MC do campo M3 são zero, a chave de armazenamento para o bloco de 4 kilobytes que é endereçado pelos conteúdos do registo geral R2 é substituída por bits provenientes do registo geral RI. A instrução completa-se sem alteração do código de condição.
Quando a funcionalidade SSKE condicional está instalada e um ou ambos os bits MR e MC são um, os bits de controlo de acesso, bit de protecção da pesquisa e carregamento, e, opcionalmente, o bit de referência e o bit de alteração da chave de armazenamento que é endereçada 101 ΡΕ2229630 pelo conteúdo do registo geral R2 são comparados com os bits correspondentes no registo geral RI. Se os bits comparados são iguais, então não é feita alteração à chave; de outra forma, bits seleccionados da chave são substituídos pelos bits correspondentes no registo geral Rl. A chave de armazenamento antes de qualquer modificação é inserida no registo geral Rl, e o resultado é indicado pelo código de condição.
Quando a funcionalidade DAT melhorada está instalada, as operações acima podem ser repetidas para as chaves de armazenamento de múltiplos blocos de 4 kilobytes dentro do mesmo bloco de 1 MBytes, sujeito ao controlo de controlos de múltiplos blocos, descritos abaixo. Numa forma de realização, o campo M3 tem o formato como se ilustra na Figura 26.
Os bits do campo M3 são definidos como se segue:
Reservado: O bit 0 está reservado. Máscara de Actualização do Bit de Referência (MR) : O bit MR, bit 1 do campo M3, controla quando actualizações do bit de referência na chave de armazenamento podem ser ultrapassadas, como se descreve abaixo. Máscara de Actualização do Bit de Alteração (MC): O bit MC, bit 2 do campo M3, controla quando actualizações ao bit de alteração na chave de armazenamento podem ser ultrapassadas, como se descreve abaixo. 102 ΡΕ2229630
Controlo de Múltiplos Blocos (MB) : O bit MB, bit 3 do campo M3, controla quando as chaves de armazenamento para múltiplos blocos de 4 kilobytes de armazenamento podem ser definidas, como se descreve em Definição de Chaves de Armazenamento em Múltiplos Blocos de 4 kilobytes.
Quando a funcionalidade DAT melhorada não está instalada, a posição de bit 3 do campo M3 está reservada. Quando a funcionalidade SSKE condicional está instalada, o processamento é como se segue:
Quando ambos os bits MR e MC, bits 1 e 2 do campo M3, são zero, a instrução completa-se como se a funcionalidade SSKE condicional não estivesse instalada. A chave de armazenamento para o bloco de 4 kilobytes que é endereçado pelo conteúdo do registo geral R2 é substituída por bits provenientes do registo geral Rl, e a instrução completa-se sem alterar o código de condição.
Quando qualquer um ou ambos os bits MR e MC são um, o processamento é como se segue:
Antes de qualquer modificação, os conteúdos da chave de armazenamento para o bloco de 4kbytes que está endereçado pelo registo geral R2 são colocados nas posições de bits 48-54 do registo geral Rl, e o bit 55 do registo geral Rl é definido como zero. Os bits 0-47 e 56-63 do registo permanecem inalterados. Se um código de verificação 103 ΡΕ2229630 de bloco (CBC) inválido é detectado quando se pesquisa e carreqa a chave de armazenamento, então (a) a chave de armazenamento inteira para o bloco de 4 kbytes é subs tituída pelos bits 56-62 do registo geral Rl, (b) os conteúdos dos bits das posições 48-55 do registo geral Rl são imprevisíveis, e (c) a instrução completa-se definindo o código de condição 3.
Os bits de controlo de acesso e o bit de pro- tecção da pesquisa e carregamento da chave de armazenamento para o bloco de 4 kbytes designado são comparados com os campos correspondentes nos bits 56-60 do registo geral Rl. Se os respectivos campos não são iguais, a chave de armazenamento inteira para o bloco de 4 kbytes é substituída por bits provenientes do registo geral Rl, e a instrução completa-se definido o código de condição 1.
Quando os bits do controlo de acesso e de protecção da pesquisa e carregamento na chave de armazenamento são iguais aos respectivos bits no registo geral Rl, o processamento continua como descrito abaixo.
Quando ambos os bits MR e MC são um, a instrução completa-se definido o código de condição 0. A chave de armazenamento permanece inalterada neste caso.
Quando o bit MR é zero e o bit MC é um, então o bit de referência da chave de armazenamento para o bloco de 4 kbytes designado é comparado com o bit 61 do registo geral Rl. Se os bits são iguais, a instrução completa-se 104 ΡΕ2229630 definindo o código de condição 0. A chave de armazenamento permanece inalterada neste caso. Se os bits não são iguais, então quer (a) a chave de armazenamento inteira para o bloco de 4 kbytes designado é substituída pelos bits no registo geral Rl, e a instrução completa-se definido o código de condição 1; ou (b) o bit de referência para a chave de armazenamento é substituído pelo bit 61 do registo geral Rl, o bit de alteração para a chave é imprevisível, e a instrução completa-se definido o código de condição 2. É imprevisível quando o código de condição 1 ou 2 é definido.
Quando o bit MC é zero e o bit MR é um, então o bit de alteração da chave de armazenamento para o bloco de 4kbytes designado é comparado com o bit 62 do registo geral Rl. Se os bits são iguais, a instrução completa-se definido o código de condição 0. A chave de armazenamento permanece inalterada neste caso. Se os bits não são iguais, então quer (a) a chave de armazenamento inteira para o bloco de 4 kbytes designado é substituída pelos bits no registo geral Rl, e a instrução completa-se definido o código de condição 1; ou (b) o bit de alteração para a chave de armazenamento é substituído pelo bit 62 do registo geral Rl, o bit de referência para a chave é imprevisível, e a instrução completa-se definido o código de condição 2. É imprevisível quando o código de condição 1 ou 2 é definido.
Quando a funcionalidade DAT melhorada não está instalada, ou quando a funcionalidade está instalada mas o controlo de múltiplos blocos é zero, o registo geral R2 105 ΡΕ2229630 contém um endereço real. Quando a funcionalidade DAT melhorada está instalada e o controlo de múltiplos blocos é um, o registo geral R2 contém um endereço absoluto. No modo de endereçamento de 24 bits, os bits 40-51 do registo geral R2 designam um bloco de 4 kbytes no armazenamento real ou absoluto, e os bits 0-39 e 52-63 do registo são ignorados. No modo de endereçamento de 31 bits, os bits 33-51 do registo geral R2 designam um bloco de 4 kbytes no armazenamento real ou absoluto, e os bits 0-32 e 52-63 do registo são ignorados. No modo de endereçamento de 64 bits, os bits 0-51 do registo geral R2 designam um bloco de 4 kbytes no armazenamento real ou absoluto, e os bits 52-63 do registo são ignorados. Devido a ser um endereço real ou absoluto, o endereço designando o bloco de armazenamento não está sujeito à tradução de endereço dinâmica. A referência à chave de armazenamento não é sujeita a uma excepção de protecção.
Os novos sete bits do valor da chave de armazenamento, ou bits seleccionados dela, são obtidos a partir dos bits das posições 56-62 de registo geral RI. Os conteúdos dos bits das posições 0-55 e 63 do registo são ignorados. Quando a funcionalidade SSKE condicional está instalada, e um ou ambos os bits MR e MC são um, o bit da posição 63 deverá conter um zero; de outra forma, o programa pode não operar compativelmente no futuro.
Uma função de serialização e de sincronização de ponto de controlo é realizada antes da operarção se iniciar 106 ΡΕ2229630 e novamente após a operação estar completada, excepto quando a funcionalidade SSKE condicional está instalada e o código de condição resultante for 0, é imprevisível quando é realizada uma função de serialização e de sincronização de ponto de controlo após a operação se completar. Para qualquer acesso de armazenamento, por qualquer CPU ou programa de canal, completada para o bloco de 4 kbytes designado quer antes ou após a definição da chave por esta instrução, a definição associada dos bits de referência e de alteração para um na chave de armazenamento para o bloco também é completada antes ou após, respectivamente, da execução desta instrução.
Definição de Chaves de Armazenamento em Múltiplos Blocos de 4 kbytes
Quando a funcionalidade DAT melhorada não está instalada, ou quando a funcionalidade está instalada, mas o controlo de múltiplos blocos é zero, a chave de armazenamento para um único bloco de 4 kbytes é definido, como descrito acima. Quando a funcionalidade DAT melhorada está instalada, e o controlo de múltiplos blocos é um, as chaves de armazenamento para múltiplos blocos de 4 kbytes dentro de um bloco de 1 Mbytes podem ser definidas, começando com o bloco especificado pelo endereço do segundo operando, e continuando para a direita com cada bloco sucessivo até ao seguinte limite de 1 Megabyte. Neste caso, SET STORAGE KEY EXTENDED é interruptível, e o processamento é como se segue: 107 ΡΕ2229630
Quando uma interrupção ocorre (diferente da que se segue à finalização), o registo geral R2 tenha sido actualizado de forma que a instrução, quando re-executada, recomeça no ponto de interrupção. Se um ou ambos os bits MR e MC são um, o código de condição é imprevisível; de outra forma, o código de condição é inalterado.
Quando a instrução se completa sem interrupção, o registo geral R2 tenha sido actualizado para o seguinte limite de 1 Megabytes. Se um ou ambos os bits MR ou MC são um, é definido o código de condição 3; de outra forma, o código de condição é inalterado.
Em qualquer dos dois casos acima, quando um ou ambos os bits MR ou MC são um, os bits 48-55 do registo geral RI são imprevisíveis.
Quando ocorre o processamento de múltiplos blocos e os campos RI e R2 designam o mesmo registo, o endereço do segundo operando é colocado no registo. Quando ocorre o processamento de múltiplos blocos nos modos de endereçamento de 24 bits ou de 31 bits, os bits mais à esquerda que não fazem parte do endereço nos bits das posições 32-63 do registo geral R2 são definidos como zeros; os bits 0-31 do registo são inalterados. Código de Condição Resultante:
Quando a funcionalidade SSKE condicional nao está 108 ΡΕ2229630 instalada, ou quando ambos os bits MR e MC do campo M3 são zero, o código de condição permanece inalterado. Quando a funcionalidade SSKE condicional está instalada, e um ou ambos os bits MR e MC são um, o código de condição é definido como se segue: 0 - Chave de armazenamento não definida 1 - Totalidade da chave de armazenamento definida 2 - Chave de armazenamento parcialmente definida 3 - Totalidade da chave de armazenamento definida; os bits 48-55 do registo geral RI são imprevisíveis.
Excepções de Programa:
Endereçamento (endereço especificado pelo registo geral R2)
Operação privilegiada
Alteração de Gravação A alteração de gravação proporciona informação de quais páginas têm que ser guardadas na memória auxiliar quando elas são substituídas no armazenamento principal. A alteração de gravação utiliza o bit de alteração, (bit 6), da chave de armazenamento. O bit de alteração é definido como um de cada vez que um acesso de armazenamento origina que os conteúdos do bloco de armazenamento correspondente sejam alterados, e quer (a) a DAT melhorada não se aplica, 109 ΡΕ2229630 ou (b) a DAT melhorada aplica-se, e qualquer dos seguintes é verdadeiro: 0 controlo de formato STE na entrada de tabela de segmentos utilizada pela DAT é zero, e a alteração de sobreposição de gravação (CO) na entrada de tabela de página utilizada pela DAT é zero. O controlo de formato STE na entrada de tabela de segmentos utilizada pela DAT é um, e a alteração de sobreposição de gravação (CO) na entrada da tabela de segmentos utilizada pela DAT é zero.
Um acesso de armazenamento que não altere os conteúdos do armazenamento pode ou não definir a bit de alteração para um. O bit de alteração não é definido como um para uma tentativa para armazenar se o acesso é proibido. Em particular:
Para a CPU, um acesso de armazenamento é proibido sempre que exista uma excepção de acesso para esse acesso, ou sempre que exista uma excepção que seja de prioridade mais elevada do que a prioridade de uma excepção de acesso para esse acesso.
Para o subsistema de canal, um acesso de armazenamento é proibido sempre que exista uma violação de protecção controlada por chave para esse acesso. 110 ΡΕ2229630 A alteração de gravação está sempre activa e tem lugar para todos os acessos de armazenamento para o armazenamento, incluindo aqueles feitos por qualquer CPU (excepto quando suprimidos pela alteração de sobreposição de gravação, aqui descrita), qualquer funcionalidade de operador, ou o subsistema de canal. Ela tem lugar para referências implícitas feitas pela máquina, tais como aquelas que fazem parte de interrupções. A alteração de gravação não tem lugar para os operandos das instruções seguintes dado que elas modificam directamente uma chave de armazenamento sem modificarem uma localização de armazenamento:
RESET REFERENCE BIT EXTENDED SET STORAGE KEY EXTENDED (bit de alteração é definido para um valor especificado).
Os bits de alteração que tenham sido alterados de zeros para uns não são necessariamente redefinidos para zeros no retorno da CPU.
Alteração de Sobreposição de Gravação (CO) O bit de alteração da chave de armazenamento é definido como um de cada vez que um acesso de armazenamento origine que os conteúdos do correspondente bloco de armazenamento sejam alterados. Um acesso de armazenamento 111 ΡΕ2229630 que não altere os conteúdos do armazenamento pode ou não definir o bit de alteração para um. 0 bit de alteração não é definido como um numa tentativa para armazenar se o acesso é proibido. A alteração de sobreposição de gravação permite que a definição do bit de alteração da chave de armazenamento seja ultrapassada.
Quando a DAT melhorada se aplica, e o endereço virtual é traduzido por meio de entradas de tabela de DAT, é proporcionada uma alteração de sobreposição de gravação (CO) no bit 55 de ambas as entrada de tabela de segmentos e entrada de tabela de página. Quando o controlo de formato STE (FC) bit 53 da entrada de tabela de segmentos é zero, aplica-se a alteraçao de sobreposição de gravação na entrada de tabela de página. Quando a alteração de sobreposição de gravação no PTE é zero, ocorre a alteração de gravação para operações de armazenamento para o bloco de 4 kbytes. Quando a alteração de sobreposição de gravação é um, é imprevisível quando ocorre a alteração de gravação para operações de armazenamento para o bloco de 4 kbytes. Quando o controlo de formato STE é um, aplica-se a alteração de sobreposição de gravação no STE. Quando a alteração de sobreposição de gravação no STE é zero, ocorre a alteração de gravação para operações de armazenamento para qualquer dos 256 blocos de 4 kbytes do segmento. Quando a alteração de sobreposição de gravação no STE é um, é imprevisível quando ocorre a alteração de gravação para qualquer dos 256 blocos de 4 kbytes do segmento. 112 ΡΕ2229630 A alteração de sobreposição de gravação não se aplica para endereços reais ou absolutos, ou para endereços virtuais que sejam traduzidos por meio de uma designação de espaço real. É agora feita referência à Figura 12 ilustrando um fluxograma de uma forma de realização da obtenção do campo da alteração de sobreposição de gravação a partir da entrada de tabela de segmentos utilizada na tradução de endereço dinâmica de um endereço virtual. A tradução de endereço dinâmica prossegue até ao ponto em que uma entrada de tabela de segmentos tenha sido pesquisada e carregada a partir de uma tabela de segmentos utilizada na tradução como descrito na Figura 8 para o nodo 822 em que tenha sido obtido um endereço absoluto para um bloco de dados desejado no armazenamento ou memória. 0 fluxo na Figura 12 inicia-se no nodo 822.
Em 1210, é obtido um campo de alteração de sobreposição de gravação (CO) a partir da entrada de tabela de segmentos utilizada na tradução. A alteração de sobreposição de gravação permite que haja sobreposição no bit de alteração da chave de armazenamento. Em 1212, é feita uma determinação sobre quando o acesso realizado sobre o bloco de dados desejado endereçado pelo endereço virtual traduzido é uma operação do tipo armazenar ou do tipo pesquisa e carregamento. Se o acesso é um acesso de pesquisa e carregamento então, em 1213, a definição do bit 113 ΡΕ2229630 de alteração não ocorre e não se aplica a alteração de sobreposição de gravação. Se o acesso foi uma operação do tipo armazenar então, em 1214, é feita uma determinação se a alteração de sobreposição de gravação na entrada de tabela de segmentos está permitida. Se, em 1214, a alteração de sobreposição de gravação não está activada então, em 1218, o bit de alteração da chave de armazenamento associada ao bloco desejado é definida como 1. Se, em 1214, a alteração de sobreposição de gravação está activada então, em 1216, o bit de alteração da chave de armazenamento associada não é definido. Em 1220, é feita uma indicação de que o bloco de dados desejado tenha sido modificado.
Numa outra forma de realização, se a DAT melhorada se aplica e o controlo de formato no STE não está activado, é obtida uma origem de uma tabela de página a partir da entrada de tabela de segmentos. Uma porção do índice de página do endereço virtual é utilizada para referenciar uma entrada de tabela de página na tabela de página. São obtidos um endereço real de quadro de página de u bloco de dados pequeno e um campo de alteração de sobreposição de página a partir da entrada de tabela de página. Cada bloco de dados pequeno tem uma chave de armazenamento associada contendo um bit de alteração. 0 bloco de dados pequeno é mais pequeno em tamanho do que o bloco de dados grande e consiste de um bloco de 4 kbytes (4096 bytes) de dados. Um endereço traduzido de um bloco de dados real desejado no armazenamento principal contém uma 114 ΡΕ2229630 combinação do endereço real de quadro de página e da porção de índice de byte do virtual. É feita uma determinação se foi efectuada uma operação do tipo armazenamento ou do tipo de pesquisa e carregamento para o bloco de dados real desejado. Se a operação de acesso foi uma operação do tipo pesquisa e carregamento então não se aplica a alteração de sobreposição de gravação. Se o acesso foi uma operação do tipo armazenar, então se o campo da alteração de sobreposição de gravação associado ao endereço virtual não está activado então o bit de alteração da chave de armazenamento associada ao bloco de 4 kbytes desejado é definido como 1. É proporcionada uma indicação de que o bloco de 4 kbytes tenha sido modificado.
Numa outra forma de realização, se o campo da alteração de sobreposição de gravação está activado, o bit de alteração da chave de armazenamento associada ao bloco de 4 kbytes desejado é imprevisível.
Implementação Comercial
Embora a z/Architecture pela IBM® seja aqui mencionada, um ou mais aspectos da presente invenção são igualmente aplicáveis a outras arquitecturas de máquinas e/ou ambientes computacionais empregando entidades pagináveis ou constructos similares.
As implementações comerciais da funcionalidade DATe e de outros formatos, instruções, e atributos aqui 115 ΡΕ2229630 divulgados podem ser implementados quer em hardware ou por programadores, tais como programadores de sistemas operativos, escrevendo em, por exemplo, linguagem assembler. Tais instruções de programação podem ser armazenadas num meio de armazenamento intencionadas para serem executadas de forma nativa num ambiente computacional tal como o servidor IBM® System z, ou alternativamente em máquinas executando outras arquitecturas. As instruções podem ser emuladas em servidores IBM® existentes e futuros e noutras máquinas ou unidades centrais. Elas podem ser executadas em máquinas onde a execução geral é num modo de emulação.
Um ou mais aspectos da presente invenção são igualmente aplicáveis a, por exemplo, emulação de máquina virtual, na qual uma ou mais entidades pagináveis (por exemplo, hóspede) são executadas em um ou mais processadores. Como um exemplo, hóspedes pagináveis são definidos pela arquitectura Start Interpretive Execution (SIE) descrita em "IBM® System/370 Extended Architecture", IBM® Pub. N.° SA22-7095 (1985).
No modo de emulação, a instrução especifica a ser emulada é descodificada, e é executada uma sub-rotina para implementar a instrução individual, como numa sub-rotina ou programa de controlo, ou alguma outra técnica é utilizada para proporcionar um programa de controlo para o hardware especifico, tal como está ao alcance da capacidade dos peritos na arte após a compreensão da sua descrição. Várias técnicas de emulação por software ou hardware estão 116 ΡΕ2229630 descritas em numerosas Patentes dos Estados Unidos incluindo: 5 551 013, 5 574 873, 5 790 825, 6 009 261, 6 308 255, e 6 463 582. Muitos outros ensinamentos ilustram adicionalmente uma variedade de formas de alcançar a emulação de um conjunto de instruções para uma máquina alvo.
Outras Variantes e Arquitecturas
As várias formas de realização aqui descritas são apenas exemplos. Podem haver muitas variações a estas formas de realização sem haver afastamento do objectivo da presente invenção.
Uma ou mais das capacidades da presente invenção podem ser implementadas em software, firmware, hardware, ou alguma combinação destes. Aspectos da invenção são benéficos para muitos tipos de ambientes, incluindo outros ambientes que tenham uma pluralidade de zonas, e ambientes não-compartimentados. Adicionalmente, podem não haver complexos de processador central, mas ainda, múltiplos processadores acoplados conjuntamente. Vários aspectos disto são aplicáveis a ambientes de processador único.
Embora ambientes particulares estejam aqui descritos, novamente, muitas variações a estes ambientes podem ser implementadas sem haver afastamento do objectivo da presente invenção. Por exemplo, se o ambiente está logicamente compartimentado, então mais ou menos compartimentos lógicos podem ser incluídos no ambiente. Além 117 ΡΕ2229630 disso, podem existir múltiplos complexos de processamento central acoplados conjuntamente. Estas são apenas algumas das variações que podem ser efectuadas sem haver afastamento do objectivo da presente invenção. Adicionalmente, outras variações são possíveis.
Embora o termo "página" seja utilizado para se referir a uma área de armazenamento de dimensão fixa ou de dimensão pré-definida, a dimensão de uma página pode variar. Similarmente, a dimensão de um bloco pode variar. Podem haver diferentes dimensões de blocos e/ou de páginas. Uma página pode ser eguivalente a um bloco. Outras estruturas podem ser alternativamente utilizadas ou de outra forma implementadas através de software e/ou de hardware. Além disso, nos exemplos aqui descritos, podem haver muitas variações, incluindo, mas não limitado a palavras ou endereços dimensionados diferentemente; um número de bits diferente; bits numa ordenação diferente; mais, menos ou diferentes bits; mais, menos ou diferentes campos; campos numa ordenação diferente; diferentes dimensões de campos; etc.. Novamente, estes são apenas proporcionados como um exemplo. Muitas variações são possíveis.
Uma unidade de processamento inclui entidades pagináveis, tais como hóspedes, hospedeiros, outros processadores, emuladores, máquinas virtuais, e/ou outros constructos similares. Uma memória intermédia inclui uma área de armazenamento e/ou memória bem como diferentes 118 ΡΕ2229630 tipos de estruturas de dados incluindo, mas não limitadas a, tabelas ou entidades pagináveis. Uma tabela pode incluir também outras estruturas de dados. Uma instrução pode referenciar outros registos. Mais ainda, uma página, um segmento, e/ou uma região podem ser de dimensões variáveis diferentes das aqui descritas.
Um ou mais aspectos da presente invenção podem ser incluídos num artigo de manufactura (por exemplo, um ou mais produtos de programa de computador) tendo, por exemplo, média utilizáveis por computador ou legíveis por máquina. 0 média tem nele realizado, por exemplo, meios de código de programa legível por computador ou lógica (por exemplo, instruções, código, comandos, etc.) para proporcionar e facilitar as capacidades da presente invenção. 0 artigo de manufactura pode ser incluído como uma parte de um sistema de computador ou vendido separadamente. Adicionalmente, pelo menos um dispositivo de armazenamento de programa legível por uma máquina dando corpo a pelo menos um programa de instruções executáveis pela máquina para realizar as capacidades que a presente invenção pode proporcionar.
Lisboa, 7 de maio de 2013
Claims (10)
- ΡΕ2229630 1 REIVINDICAÇÕES 1. Método para tradução de um endereço virtual para um endereço traduzido de um bloco de dados no armazenamento principal num sistema de computadores (100) de uma arquitectura de máquina tendo uma hierarquia de tabelas de tradução (410, 412, 414, 416) utilizadas para a tradução dos referidos endereços virtuais, o método incluindo: obter um endereço virtual a ser traduzido; obter um endereço de origem de uma tabela de tradução da referida hierarquia de tabelas de tradução; utilizar uma porção de índice do referido endereço virtual para referenciar uma entrada na referida tabela de tradução; caracterizado por determinar se um campo de controlo de formato na referida entrada de tabela de tradução está activa, em que um campo de controlo de formato não activo da entrada de tabela de tradução indica que a entrada de tabela de tradução inclui um endereço de outra tabela de tradução, e em que um campo de controlo de formato activado da entrada de tabela de tradução indica que a entrada de tabela de tradução inclui um endereço de quadro de um grande bloco de dados e bits de protecção de acesso para permitir o acesso ao grande bloco de dados, e 2 ΡΕ2229630 em que reage ao referido campo de controlo de formato não activado, realizando: obtendo a partir da referida entrada de tabela de tradução um endereço de origem de outra tabela de tradução da referida hierarquia de tabelas de tradução; utilizar uma porção de índice do referido endereço virtual para referenciar uma entrada na referida outra tabela de tradução e obtendo a partir da referida outra entrada de tabela um endereço de um pequeno quadro de um pequeno bloco de dados no armazenamento principal, sendo o referido pequeno bloco de dados mais pequeno do que o referido grande bloco de dados; combinar o referido endereço real de um pequeno quadro com uma porção deslocada do referido endereço virtual para formar um endereço real traduzido do referido pequeno bloco de dados no armazenamento principal, sendo o referido endereço real sujeito a prefixação; e com base na determinação que bits de controlo de acesso de uma chave de armazenamento associada ao referido pequeno bloco de dados desejado corresponde a uma chave de acesso associada a um pedido de acesso, aceder ao referido pequeno bloco de dados desejado no armazenamento principal endereçado pelo referido endereço traduzido; 3 ΡΕ2229630 que reage ao referido campo de controlo de formato estando activado, realizando: obter a partir da referida entrada de tabela de tradução um endereço de quadro de um grande bloco de dados no armazenamento principal, em que a referida entrada de tabela de tradução inclui um campo de controlo de acesso (ACC) e um bit de protecção de pesquisa e carregamento (F); combinar o referido endereço de quadro com uma porção deslocada do referido endereço virtual para formar um endereço absoluto traduzido de um desejado bloco de dados dentro do referido grande bloco de dados no armazenamento principal, em que o referido desejado bloco de dados consistindo de um ou mais bytes de dados, em que o referido endereço absoluto não está sujeito a prefixação; e baseado na determinação de que quer a chave de armazenamento ou o campo de controlo de acesso a entrada de tabela de tradução corresponde à chave de acesso associada a um pedido de acesso, aceder ao referido grande bloco de dados endereçado pelo referido endereço traduzido.
- 2. Método de acordo com a Reivindicação 1, que reage ao referido campo de controlo de formato estando activado, incluindo ainda a realização: obter a partir da referida entrada de tabela de 4 ΡΕ2229630 tradução, informação de restrição para restringir o referido acesso a uma porção restrita do referido grande bloco de dados; e restringir o referido acesso ao referido desejado grande bloco de dados endereçado pelo referido endereço traduzido apenas à referida porção restrita do referido grande bloco de dados.
- 3. Método de acordo com a Reivindicação 2, em que a referida informação de restrição inclui qualquer um de um deslocamento de tabela ou um comprimento de tabela.
- 4. Método de acordo com a Reivindicação 1, em que a hierarquia de tabelas de tradução consiste de uma ou mais de uma primeira tabela de regiões tendo uma entrada de primeira tabela de regiões para localizar uma segunda tabela de regiões, uma terceira tabela de regiões tendo uma entrada de terceira tabela de regiões para localizar uma tabela de segmentos, e uma tabela de segmentos tendo uma entrada de tabela de segmentos, o método incluindo ainda: começando com uma pré-determinada tabela de tradução da hierarquia de tabelas de tradução, pesquisar sequencialmente uma ou mais das entradas de tabela de tradução da hierarquia de tabelas de tradução até que seja encontrada uma entrada de tabela de tradução tendo um campo de controlo de formato activado, em que o endereço de origem da tabela de tradução da tabela de tradução tendo a 5 ΡΕ2229630 entrada de tabela de tradução tendo o campo de controlo de formato activado é o endereço de origem obtido da tabela de tradução da referida hierarquia de tabelas de tradução.
- 5. Método de acordo com a Reivindicação 1, incluindo adicionalmente: armazenar informação utilizada na referida tradução do referido endereço virtual em pelo menos uma memória intermédia de consulta da tradução; e realizar uma subsequente tradução de um endereço virtual subsequente para um referido endereço absoluto do referido bloco de dados no armazenamento principal utilizando a referida informação proveniente da referida memória intermédia de consulta da tradução em vez da referida hierarquia de tabelas de tradução.
- 6. Método de acordo com a Reivindicação 1, em que reage à referida tradução não sendo nativa na referida arquitectura de máquina, incluindo adicionalmente: identificar uma pré-determinada rotina de software para emular a referida tradução, incluindo a referida pré-determinada rotina de software uma pluralidade de instruções; e executar a referida rotina de software pré-determinada . 6 ΡΕ2229630
- 7. Método de acordo com a Reivindicação 1, em que o referido grande bloco de dados inclui um bloco de pelo menos 1 Megabyte de dimensão.
- 8. Método de acordo com a Reivindicação 1, em que quando o aceder ao referido grande bloco de dados é uma operação de armazenamento, o armazenamento é permitido apenas se o campo de controlo de acesso da entrada de tabela de tradução corresponde à chave de acesso associada ao pedido de acesso; e quando o aceder ao referido grande bloco de dados desejado é uma operação de pesquisa e carregamento, a pesquisa e carregamento é permitida com base num bit de protecção de pesquisa e carregamento da entrada de tabela de tradução, em que a pesquisa e carregamento é permitida se o bit de protecção da pesquisa e carregamento da entrada de tabela de tradução é 0 ou se o bit de protecção da pesquisa e carregamento da entrada de tabela de tradução é 1 e o campo de controlo de acesso da entrada de tabela de tradução corresponde à chave de acesso associada a um pedido de acesso.
- 9. Sistema incluindo meios adaptados para levar a cabo todos os passos do método de acordo com qualquer Reivindicação de método precedente. 7 ΡΕ2229630 instruções acordo com em que o sistema de
- 10. Programa de computador incluindo para levar a cabo todos os passos do método de qualquer Reivindicação de método precedente, referido programa de computador é executado num computadores. Lisboa, 7 de maio de 2013
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/972,706 US8037278B2 (en) | 2008-01-11 | 2008-01-11 | Dynamic address translation with format control |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| PT2229630E true PT2229630E (pt) | 2013-05-13 |
Family
ID=40481750
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PT97002133T PT2229630E (pt) | 2008-01-11 | 2009-01-05 | Tradução de endereços dinâmica com controlo de formato |
Country Status (12)
| Country | Link |
|---|---|
| US (1) | US8037278B2 (pt) |
| EP (1) | EP2229630B1 (pt) |
| JP (1) | JP5602638B2 (pt) |
| KR (1) | KR101419578B1 (pt) |
| CN (1) | CN101911022B (pt) |
| CY (1) | CY1113979T1 (pt) |
| DK (1) | DK2229630T3 (pt) |
| ES (1) | ES2406056T3 (pt) |
| PL (1) | PL2229630T3 (pt) |
| PT (1) | PT2229630E (pt) |
| SI (1) | SI2229630T1 (pt) |
| WO (1) | WO2009087132A1 (pt) |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| 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 |
| US8037278B2 (en) | 2008-01-11 | 2011-10-11 | International Business Machines Corporation | Dynamic address translation with format control |
| US8041922B2 (en) * | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Enhanced dynamic address translation with load real address function |
| US8417916B2 (en) * | 2008-01-11 | 2013-04-09 | International Business Machines Corporation | Perform frame management function instruction for setting storage keys and clearing blocks of main storage |
| US8117417B2 (en) | 2008-01-11 | 2012-02-14 | International Business Machines Corporation | Dynamic address translation with change record override |
| 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 |
| US8019964B2 (en) | 2008-01-11 | 2011-09-13 | International Buisness Machines Corporation | Dynamic address translation with DAT protection |
| US8151083B2 (en) | 2008-01-11 | 2012-04-03 | International Business Machines Corporation | Dynamic address translation with frame management |
| US8082405B2 (en) * | 2008-01-11 | 2011-12-20 | International Business Machines Corporation | Dynamic address translation with fetch protection |
| US8086811B2 (en) | 2008-02-25 | 2011-12-27 | International Business Machines Corporation | Optimizations of a perform frame management function issued by pageable guests |
| US8095773B2 (en) | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
| US8239667B2 (en) * | 2008-11-13 | 2012-08-07 | Intel Corporation | Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory |
| 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 |
| US9753860B2 (en) | 2012-06-14 | 2017-09-05 | International Business Machines Corporation | Page table entry consolidation |
| US9092359B2 (en) | 2012-06-14 | 2015-07-28 | International Business Machines Corporation | Identification and consolidation of page table entries |
| US9811472B2 (en) * | 2012-06-14 | 2017-11-07 | International Business Machines Corporation | Radix table translation of memory |
| 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 |
| US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
| US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
| US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
| GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
| EP3033682A4 (en) * | 2013-08-14 | 2017-04-05 | Skyera, LLC | Address translation for a non-volatile memory storage device |
| US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
| US9514058B2 (en) * | 2014-12-22 | 2016-12-06 | Texas Instruments Incorporated | Local page translation and permissions storage for the page window in program memory controller |
| WO2016154795A1 (en) | 2015-03-27 | 2016-10-06 | Intel Corporation | Efficient address translation |
| US9658792B2 (en) * | 2015-06-11 | 2017-05-23 | International Business Machines Corporation | Reserving a storage area and building page frame table entries |
| US11379371B2 (en) | 2019-11-07 | 2022-07-05 | Research & Business Foundation Sungkyunkwan University | Method and system with improved memory input and output speed |
| US11175984B1 (en) | 2019-12-09 | 2021-11-16 | Radian Memory Systems, Inc. | Erasure coding techniques for flash memory |
Family Cites Families (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4669043A (en) * | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
| US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
| JPS6417137A (en) * | 1987-07-13 | 1989-01-20 | Nippon Telegraph & Telephone | Control system for large-capacity page |
| JP2635058B2 (ja) * | 1987-11-11 | 1997-07-30 | 株式会社日立製作所 | アドレス変換方式 |
| US5008811A (en) * | 1988-02-10 | 1991-04-16 | International Business Machines Corp. | Control mechanism for zero-origin data spaces |
| US5058003A (en) * | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
| US5617554A (en) * | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
| AU6629894A (en) * | 1993-05-07 | 1994-12-12 | 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 |
| JPH10301848A (ja) * | 1997-04-28 | 1998-11-13 | Hitachi Ltd | 多重ページサイズを有する仮想記憶装置 |
| 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 |
| 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 |
| US7284100B2 (en) * | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
| US6996698B2 (en) * | 2003-05-12 | 2006-02-07 | International Business Machines Corporation | Blocking processing restrictions based on addresses |
| US7530067B2 (en) | 2003-05-12 | 2009-05-05 | International Business Machines Corporation | Filtering processor requests based on identifiers |
| US7020761B2 (en) * | 2003-05-12 | 2006-03-28 | International Business Machines Corporation | Blocking processing restrictions based on page indices |
| EP1517504B1 (en) * | 2003-09-19 | 2007-01-24 | Sun Microsystems, Inc. | Method and apparatus for protocol processing in a computer system applying memory address translation |
| US7234037B2 (en) | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
| US7941799B2 (en) * | 2004-05-27 | 2011-05-10 | International Business Machines Corporation | Interpreting I/O operation requests from pageable guests without host intervention |
| 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 |
| 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 | 株式会社東芝 | メモリ保護装置、メモリ保護システムおよびメモリ保護方法 |
| 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 |
| US8417916B2 (en) | 2008-01-11 | 2013-04-09 | International Business Machines Corporation | Perform frame management function instruction for setting storage keys and clearing blocks of main storage |
| US8151083B2 (en) | 2008-01-11 | 2012-04-03 | International Business Machines Corporation | Dynamic address translation with frame management |
| US8335906B2 (en) * | 2008-01-11 | 2012-12-18 | International Business Machines Corporation | Perform frame management function instruction for clearing blocks of main storage |
| US8041922B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Enhanced dynamic address translation with load real address function |
| US8037278B2 (en) | 2008-01-11 | 2011-10-11 | International Business Machines Corporation | Dynamic address translation with format control |
| US8117417B2 (en) | 2008-01-11 | 2012-02-14 | International Business Machines Corporation | Dynamic address translation with change record override |
| US8677098B2 (en) | 2008-01-11 | 2014-03-18 | International Business Machines Corporation | Dynamic address translation with fetch protection |
| 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 |
| 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 |
| 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,706 patent/US8037278B2/en active Active
-
2009
- 2009-01-05 EP EP09700213A patent/EP2229630B1/en active Active
- 2009-01-05 JP JP2010541762A patent/JP5602638B2/ja active Active
- 2009-01-05 ES ES09700213T patent/ES2406056T3/es active Active
- 2009-01-05 SI SI200930587T patent/SI2229630T1/sl unknown
- 2009-01-05 DK DK09700213.3T patent/DK2229630T3/da active
- 2009-01-05 WO PCT/EP2009/050049 patent/WO2009087132A1/en not_active Ceased
- 2009-01-05 PT PT97002133T patent/PT2229630E/pt unknown
- 2009-01-05 CN CN200980102001.4A patent/CN101911022B/zh active Active
- 2009-01-05 PL PL09700213T patent/PL2229630T3/pl unknown
- 2009-01-05 KR KR1020107015300A patent/KR101419578B1/ko active Active
-
2013
- 2013-05-02 CY CY20131100366T patent/CY1113979T1/el unknown
Also Published As
| Publication number | Publication date |
|---|---|
| PL2229630T3 (pl) | 2013-07-31 |
| CN101911022A (zh) | 2010-12-08 |
| DK2229630T3 (da) | 2013-05-06 |
| SI2229630T1 (sl) | 2013-06-28 |
| KR101419578B1 (ko) | 2014-07-25 |
| JP5602638B2 (ja) | 2014-10-08 |
| CN101911022B (zh) | 2012-10-10 |
| WO2009087132A1 (en) | 2009-07-16 |
| US8037278B2 (en) | 2011-10-11 |
| EP2229630A1 (en) | 2010-09-22 |
| US20090182964A1 (en) | 2009-07-16 |
| JP2011509469A (ja) | 2011-03-24 |
| KR20100095629A (ko) | 2010-08-31 |
| ES2406056T3 (es) | 2013-06-05 |
| CY1113979T1 (el) | 2016-07-27 |
| EP2229630B1 (en) | 2013-04-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| PT2229630E (pt) | Tradução de endereços dinâmica com controlo de formato | |
| US10977190B2 (en) | Dynamic address translation with access control in an emulator environment | |
| US9244856B2 (en) | Dynamic address translation with translation table entry format control for identifying format of the translation table entry | |
| BRPI0906426B1 (pt) | Tradução de endereço dinâmica com gerenciamento de quadro | |
| US8041923B2 (en) | Load page table entry address instruction execution based on an address translation format control field | |
| US8631216B2 (en) | Dynamic address translation with change record override | |
| US8082405B2 (en) | Dynamic address translation with fetch protection | |
| US8019964B2 (en) | Dynamic address translation with DAT protection | |
| PT2248025E (pt) | Conversão dinâmica de endereço com qualificador de excepção de conversão | |
| US20090182966A1 (en) | Dynamic address translation with frame management |