PT2229632E - Tradução de endereço dinâmico com proteção de procura - Google Patents

Tradução de endereço dinâmico com proteção de procura Download PDF

Info

Publication number
PT2229632E
PT2229632E PT97008296T PT09700829T PT2229632E PT 2229632 E PT2229632 E PT 2229632E PT 97008296 T PT97008296 T PT 97008296T PT 09700829 T PT09700829 T PT 09700829T PT 2229632 E PT2229632 E PT 2229632E
Authority
PT
Portugal
Prior art keywords
address
segment
storage
translation
bit
Prior art date
Application number
PT97008296T
Other languages
English (en)
Inventor
Lisa Heller
Damian Osisek
Charles Gainey Jr
Dan Greiner
Timothy Slegel
Erwin Pfeffer
Charles Webb
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of PT2229632E publication Critical patent/PT2229632E/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/654Look-ahead translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

ΡΕ2229632 1
DESCRIÇÃO
"TRADUÇÃO DE ENDEREÇO DINÂMICO COM PROTEÇÃO DE PROCURA" CAMPO DA INVENÇÃO A presente invenção diz respeito de uma forma geral a sistemas e métodos para traduzir um endereço virtual num sistema de computador e, mais especificamente, a sistemas e métodos de traduzir um endereço virtual num endereço real ou absoluto de um bloco de dados num sistema de computador possuindo uma instalação de tradução de endereço dinâmico em que a tradução de endereço virtual ocorre através de uma hierarquia de tabelas de tradução.
ANTECEDENTES DA INVENÇÃO
Tradução de Endereço Dinâmico proporciona a capacidade de interromper a execução de um programa num momento arbitrário, gravá-lo e os seus dados num armazenamento auxiliar, tal como um dispositivo de armazenamento de acesso direto, e mais tarde devolver o programa e os dados a diferentes localizações de armazenamento principal para recomeço da execução. A transferência de um programa e seus dados entre armazenamento principal e auxiliar pode ser realizada aos poucos, e a devolução da informação para o armazenamento 2 ΡΕ2229632 principal pode realizar-se em resposta a uma tentativa do CPU de aceder a ele no momento que é necessário para execução. Estas funções podem ser realizadas sem alteração ou inspeção do programa e seus dados, não requerem qualquer convenção de programação explícita no programa realocado, e não interferem com a execução do programa exceto no que diz respeito ao tempo de atraso envolvido.
Com apoio adequado de um sistema operativo, a instalação de tradução de endereço dinâmico pode ser usada 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 aparente armazenamento principal é muitas vezes referenciado como armazenamento virtual, e os endereços usados para designar localizações no armazenamento virtual são muitas vezes referenciados como endereços virtuais. 0 armazenamento virtual de um utilizador pode exceder em muito o tamanho do armazenamento principal que está disponível na configuração e normalmente é mantido no armazenamento auxiliar. Considera-se que o armazenamento virtual é composto por blocos de dados, normalmente denominados de páginas (também referenciados como segmentos e regiões). Apenas os mais recentemente referenciados como páginas do armazenamento virtual são atribuídos para ocupar blocos de armazenamento principal físico. À medida que o utilizador se refere a páginas de armazenamento virtual que não aparecem no armazenamento principal, elas são trazidos para substituir páginas no armazenamento principal cuja 3 ΡΕ2229632 probabilidade de serem necessárias é menor. Em alguns casos, armazenamento virtual é atribuído ao armazenamento principal por um longo período de tempo (ou permanentemente), independentemente do facto do armazenamento ser referenciado. A troca de páginas de armazenamento pode ser realizada pelo sistema operativo sem o conhecimento do utilizador.
Programas usam endereços (ou endereços virtuais) para aceder a armazenamento virtual. 0 programa pode procurar instruções a partir do armazenamento virtual ou carregar dados ou armazenar dados a partir do armazenamento virtual usando endereço virtual. Os endereços virtuais associados a uma gama de armazenamento virtual definem um espaço de endereçamento. Com apoio adequado de um sistema operativo, a instalação de tradução de endereço dinâmico pode ser usada para proporcionar um número de espaços de endereçamento. Estes espaços de endereçamento podem ser usados para proporcionar graus de isolamento entre utilizadores. Tal apoio pode consistir num espaço de endereçamento completamente diferente para cada utilizador, proporcionando assim isolamento completo, ou pode ser proporcionada uma área partilhada mapeando uma porção de cada espaço de endereçamento numa única área de armazenamento comum. São também proporcionadas instruções, o que permite um programa semi-privilegiado para aceder a mais do que um tal espaço de endereçamento.
Traduçao de endereço dinâmico proporciona a 4 ΡΕ2229632 tradução de endereço virtual a partir de múltiplos espaços de endereçamento diferentes. Estes espaços de endereçamento são denominados espaço de endereçamento primário, espaço de endereçamento secundário, e espaços de endereçamento especificado de Registo de Acesso. Um programa privilegiado também pode provocar o acesso ao espaço de endereçamento de inicio. Tradução de endereço dinâmico pode ser especificada para instrução e endereços de dados gerados pelo CPU.
Patente US nr. 4992936 ensina um método de tradução de endereço que pode endereçar seletivamente tanto uma página como ou um segmento. 0 que é necessário é uma instalação de tradução de endereço dinâmico melhorada que proporciona funcionalidade adicional, capacidade, e proteções até agora desconhecidas desta técnica.
SUMÁRIO DA INVENÇÃO 0 que é proporcionado é um método tal como reivindicado na reivindicação 1 e sistema correspondente, e programa de computador para uma instalação de tradução de endereço dinâmico melhorada que traduz um endereço virtual num endereço real ou absoluto de um bloco de dados pretendido no armazenamento principal de um sistema de computador possuindo uma arquitetura de máquina com uma hierarquia de tabela de traduções usada para tradução. 5 ΡΕ2229632
Endereços reais podem ser sujeitos a prefixação para formar um endereço absoluto.
Num exemplo de modelo de realização, são obtidos um endereço virtual para ser traduzido e um endereço original inicial de uma tabela de tradução da hierarquia das tabelas de tradução. A tabela de tradução consiste numa tabela de primeira região, uma tabela de segunda região, uma tabela de terceira região, ou uma tabela de segmento. Com base no endereço original inicial obtido, uma entrada da tabela de segmento é obtida a partir da tabela de segmento. A entrada da tabela de segmento é configurada para conter um campo de controlo de formato. Se uma instalação de DAT melhorada e o campo de controlo de formato estão ativados, determinar se um campo de validade de acesso na entrada da tabela de segmento está ativado. Se o campo de validade de acesso está ativado, a entrada da tabela de segmento contém adicionalmente um campo de controlo de acesso, um campo de proteção, e um endereço absoluto do segmento-trama de um grande bloco de dados no armazenamento principal. 0 grande bloco de dados é um bloco de pelo menos 1 Megabyte de tamanho. Se o campo de controlo de acesso está ativado, é permitido armazenar operações para o bloco de dados pretendido apenas se o campo de controlo de acesso corresponder uma chave de acesso de programa proporcionada quer pelo Program Status Word quer por um operando de uma instrução de programa a ser executada. São permitidas operações de procura do bloco de dados pretendido apenas se a chave de acesso do programa 6 ΡΕ2229632 associada ao endereço virtual for igual ao campo de controlo de acesso.
Ainda num outro modelo de realização, se o campo de validade de acesso estiver ativado, uma exceção de proteção é indicada em resposta a uma operação de procura ou a uma operação de armazenamento a ser tentada no bloco de memória pretendido e o campo de controlo de acesso do segmento não corresponde ao campo de controlo de acesso do programa.
BREVE DESCRIÇÃO DOS DESENHOS
As figuras em anexo onde números de referências idênticos dizem respeito a elementos idênticos ou funcionalmente similares através da vista separada e que em conjunto com a descrição detalhada em seguida são aqui incorporadas e formam parte da especificação, servem para ilustrar adicionalmente vários modelos de realização e para explicar vários princípios e vantagens todos de acordo com a presente invenção. FIG 1 ilustra um modelo de realização de um sistema de computador host em que a tradução de endereço dinâmico melhorada será realizada; FIG 2 proporciona um exemplo de sistema de computador host emulado que emula o sistema de computador host de uma arquitetura de host; 7 ΡΕ2229632 FIG 3 ilustra um modelo de realização de como o program status word é usado para determinar a ASCE eficaz para a tradução de endereço dinâmico do endereço virtual; FIG 4 ilustra um modelo de realização em que a ASCE eficaz determinada na FIG. 3 é usada para determinar a tabela de tradução mais elevada na hierarquia das tabelas de tradução usadas na tradução do endereço virtual; FIG 5A ilustra um modelo de realização do processo de tradução de endereço dinâmico a partir de um endereço virtual usando uma hierarquia das tabelas de tradução para o nivel da tabela de segmento; FIG 5B ilustra uma dinâmico da FIG. 5A entrada da tabela de continuação da tradução de endereço em que o controlo de formato (FC) da segmento (STE) é zero; FIG 5C ilustra uma continuação da tradução de endereço dinâmico da FIG. 5A em que o controlo de formato (FC) da entrada da tabela de segmento (STE) é um; FIG. 6 ilustra um diagrama de fluxo de um modelo de realização da tradução de endereço dinâmico melhorada (eDAT) para obter um campo de controlo de formato numa entrada da tabela de segmento; FIG 7 ilustra uma continuação do diagrama de fluxo a partir do nó 614 da FIG. 6; ΡΕ2229632 FIG 8 ilustra uma continuação do diagrama de fluxo a partir do nó 616 da FIG. 6; FIG 9 ilustra um diagrama de fluxo de um modelo de realização de determinar o nível da proteção DAT a ser aplicado a um bloco de dados pretendido endereçado pelo endereço virtual traduzido; FIG 10 ilustra uma continuação do diagrama de fluxo a partir do nó 822 da FIG. 8 determinando o nível de proteção do controlo de acesso a ser aplicado a um bloco de dados pretendido endereçado pelo endereço virtual traduzido; FIG 11 ilustra uma continuação do diagrama de fluxo a partir do nó 822 da FIG. 8 determinando o nível da proteção de procura a ser aplicado a um bloco de dados pretendido endereçado pelo endereço virtual traduzido; FIG 12 ilustra uma continuação do diagrama de fluxo a partir do nó 822 da FIG. 8 em que um campo de sobreposição de gravação de alteração é obtido a partir de uma entrada da tabela de segmento; FIG.13 ilustra a relação entre endereços real e absoluto; FIG 14 ilustra o formato do registo de controlo 1; FIG 15 ilustra o formato do registo de controlo 7; 9 ΡΕ2229632 FIG 16 ilustra o formato do registo de controlo 13; FIG 17 ilustra o formato program status word; FIG 18 ilustra o formato do registo de prefixo; FIG 19 ilustra o formato do endereço virtual; FIG 20 ilustra o formato do RX do endereço virtual; FIG 21 ilustra o formato das entradas da tabela de região; FIG 22 ilustra segmento; formato I de uma entrada da tabela de FIG 23 ilustra segmento; formato II de uma entrada da tabela de FIG 24 ilustra página; o formato de uma entrada da tabela de FIG 25 ilustra um formato chave de armazenamento; FIG 26 ilustra o formato da Instrução SSKE; e FIG 27 ilustra o formato do campo M3. 10 ΡΕ2229632
DESCRIÇÃO DETALHADA
Deve ser entendido que declarações feitas na especificação do presente pedido de patente não limitam necessariamente nenhuma das várias invenções reivindicadas. Além disso, algumas declarações podem aplicar-se a alguns aspetos inventivos mas não a outros. A não ser que seja indicado de outra maneira, elementos singulares podem estar no plural e vice-versa sem perda de generalidade.
Alguém com competências comuns nesta técnica estaria prontamente familiarizado com a ação de endereçar armazenamento num ambiente de computação e usando bits num campo de registo ou endereço para indicar estados diferentes e agir sobre esses estados. Adicionalmente, alguém com competências médias nesta técnica seria conhecedor da técnica de programa de computador e conhecedor dos trabalhos e inter-relações entre componentes do sistema de computadores.
VISÃO GERAL O que é proporcionado é um exemplo de modelo de realização de uma instalação de tradução de endereço dinâmico melhorada (DAT). Quando a instalação de DAT melhorada está instalada e ativada, a tradução de DAT pode produzir tanto um endereço real da trama da página quer um endereço absoluto da trama de segmento, determinado pelo controlo de formato da Entrada da Tabela de Segmento (STE) 11 ΡΕ2229632 na entrada da tabela de segmento. Como é aqui usado, o termo "DAT melhorada aplica-se" significa que o que se segue é verdadeiro: 1) A instalação EDAT está instalada; 2) A instalação EDAT está ativada via registo de controlo 0 (CRO) bit 40; e, 3) O endereço é traduzido através de meios das entradas da tabela DAT.
Quando DAT melhorada se aplica, a função adicional seguinte está disponível no processo DAT:
Um bit de proteção DAT é adicionado às entradas da tabela de região, providenciando função similar aos bits de proteção DAT no segmento e entradas da tabela de página.
Um controlo de formato STE é adicionado à entrada da tabela de segmento. Quando o controlo de formato STE é zero, DAT prossegue como está definido atualmente, exceto se uma sobreposição de gravação de alteração na entrada da tabela de página indica se a definição do bit de alteração pode ser ignorada para a página.
Quando o controlo de formato STE é um, a entrada da tabela de segmento também contém o seguinte:
Um endereço absoluto da trama de segmento (em vez de uma origem da tabela de página) especificando a localização de armazenamento absoluto do bloco de 1 Megabyte. 12 ΡΕ2229632
Bits de controlo de acesso e um bit de proteção de procura que opcionalmente pode ser usado em vez dos bits correspondentes nas chaves de armazenamento individual do segmento.
Um bit que determina a validade dos bits de controlo de acesso e um bit de proteção de procura na entrada da tabela de segmento.
Uma sobreposição de gravação de alteração que indica se a definição do bit de alteração pode ser ignorada nas chaves de armazenamento individual do segmento.
Sistema de Computador Host
Em referência à FIG. 1, componentes representativos de um sistema de computador host 100 são retratados. Outras combinações de componentes podem também ser empregues num sistema de computador que é bem conhecido da técnica. O ambiente de computação de host é preferencialmente baseado na z/Architecture® oferecida pela International Business Machines Corporation (IBM®), Armonk, Nova Iorque. A z/Architecture® é descrita mais completamente em: z/Architecture® Principies of Operation, IBM® Pub. Nr. SA22-7832-05, 6.a Edição, (Abril de 2007). Ambientes de computação baseados na 13 ΡΕ2229632 z/Architecture® incluem, por exemplo, eServer e zSeries®, ambos pela IBM®. 0 computador host representativo 100 compreende um ou mais CPUs 101 em comunicação com o armazenamento principal (memória de computador 102) assim como interfaces I/O para dispositivos de armazenamento 111 e redes 110 para comunicar com outros computadores ou redes de área de armazenamento (SANs) e similares. O CPU pode ter instalação de Tradução de Endereço Dinâmico (DAT) (função ou unidade) 103 para transformar endereços de programa (endereço virtual) em endereço real da memória. Uma instalação DAT tipicamente inclui um buffer lookaside de tradução 107 para capturar traduções de tal forma que acessos posteriores ao bloco da memória do computador 102 não requerem o atraso da tradução de endereço. Tipicamente uma cache 109 é empregue entre a memória de computador 102 e o Processador 101. A cache 109 pode ser hierárquica possuindo uma grande cache disponível para mais do que um CPU e caches mais pequenas, 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 divididas para proporcionar caches de nível inferior separadas para procurar instrução e aceder a dados. Num modelo de realização, uma instrução é procurada a partir da memória 102 por uma unidade de procura de instrução 104 através de uma cache 109. A instrução é descodificada numa unidade de descodificação de instrução (106) e despachada (com outras instruções em alguns modelos de realização) para unidades de execução de instrução 108. Tipicamente 14 ΡΕ2229632 várias unidades de execução 108 são empregues, por exemplo uma unidade de execução aritmética, uma unidade de execução de ponto flutuante e uma unidade de execução de instrução ramificada. A instrução é executada pela unidade de execução, acedendo operandos a partir de registos especificados de instrução ou memória como for necessário. Se um operando vai ser acedido (carregado ou armazenado) a partir da memória 102, uma unidade de armazenamento de carga 105 tipicamente suporta o acesso sob controlo da instrução a ser executada.
Num modelo de realização, a invenção pode ser praticada através de software (por vezes referenciado como Código Interno Licenciado (LIC), firmware, micro-código, mili-código, pico-código e similares, qualquer um dos quais seria consistente com a presente invenção). Código de programa de software que incorpora a presente invenção é tipicamente acedido pelo processador também conhecido como um CPU (Unidade de Processamento Central) 101 do sistema de computador 100 a partir dos meios de armazenamento de longo prazo 111, tal como uma unidade de CD-ROM, unidade de banda magnética ou disco rígido. O código do programa de software pode ser incorporado em qualquer um de uma variedade de meios conhecidos para utilização com um sistema de processamento de dados, tal como uma disquete, disco rígido, ou CD-ROM. O código pode ser distribuído em tais meios, ou pode ser distribuído por utilizadores a partir da memória de computador 102 ou armazenamento de um sistema de computador sobre uma rede 110 para outros sistemas de 15 ΡΕ2229632 computador para utilização por utilizadores dos tais outros sistemas.
Alternativamente, o código do programa pode ser incorporado na memória 102, e acedido pelo processador 101 usando o bus do processador. Tal código de programa inclui um sistema operativo que controla a função e interação dos vários componentes de computador e um ou mais programas de aplicação. O código de programa é normalmente paginado a partir de um meio de armazenamento denso 111 para memória de velocidade elevada 102 onde está disponível para processar através do processador 101. As técnicas e métodos para incorporar código do programa de software na memória, em meios físicos, e/ou distribuir código de software através de redes são bem conhecidas e não serão aqui mais discutidas. Código de programa, quando criado e armazenado num suporte material (incluído mas não se limitando a módulos de memória eletrónica (RAM), memória flash, discos compactos (CDs), DVDs, fita magnética e similares) é muitas vezes referenciado como um "produto de programa do computador". O meio do produto de programa de computador é tipicamente legível através de um processamento de circuito de preferência num sistema de computador para execução pelo processamento de circuito.
Na FIG. 2, é proporcionado um exemplo de sistema de computador host emulado 201 que emula um sistema de computador host 100 de uma arquitetura de host. No sistema de computador host emulado 201, o processador host (CPUs) 16 ΡΕ2229632 208 é um processador host emulado (ou processador host virtual) e compreende um processador de emulação 207 possuindo uma arquitetura de conjunto de instrução nativa diferente da que é usada pelo processador 101 do computador host 100. O sistema de computador host emulado 201 tem memória 202 acessível ao processador de emulação 207. No exemplo de modelo de realização, a memória 207 é dividida numa porção da memória do computador host 102 e numa porção da rotina de emulação 203 (rotinas que proporcionam a emulação podem fazer parte da memória host). A memória do computador host 102 está disponível para programas do computador host emulado 201 de acordo a arquitetura do computador host. O processador de emulação 207 executa instruções nativas de um conjunto de instruções arquitetadas de uma outra arquitetura que não a do processador emulado 208, as instruções nativas obtidas a partir da memória da rotina de emulação 203, e podem aceder a uma instrução host para execução a partir de um programa na memória do computador host 102 empregando uma ou mais instrução(ões) obtidas numa rotina de Sequência & Acesso/Descodificação que pode descodificar a(s) instrução(ões) host(s) acedida(s) para determinar uma rotina de execução de instrução nativa para emular a função da instrução host acedida.
Outras instalações que estão definidas para a arquitetura do sistema de computador host 100 podem ser emuladas por Rotinas de Instalações Arquitetadas, incluindo tais instalações como Registos de Propósito Geral, Registos 17 ΡΕ2229632 de Controlo, Tradução de Endereço Dinâmico, e apoio de Subsistema de 1/0 e cache de processador por exemplo. As rotinas de emulação também beneficiam da função disponível no processador de emulação 207 (tal como Registos Gerais e tradução dinâmica do endereço virtual) para melhorar o desempenho das rotinas de emulação. Hardware especial e Motores de Carga Sem Carga também podem ser proporcionados para assistir o processador 207 na emulação da função do computador host 100.
Processador de Computador e Registos
Num modelo de realização, uma funcionalidade de instrução de programa do CPU comunica com uma pluralidade de registos sobre um bus de comunicação. O bus de comunicação pode ser interno ou externo ao CPU. Alguns registos podem ser apenas de leitura. Outros hardware e/ou software também podem ler/escrever para um ou mais dos registos acessíveis pelo CPU. Um código de operação de instrução (opcode) determina que tipo de registo deve ser usado em qualquer operação da instrução da máquina em particular.
Registos Gerais
Instruções podem designar informação em um ou mais de 16 registos gerais. Os registos gerais podem ser usados como registo de endereço de base e índice de registos no endereço aritmético e como acumuladores em 18 ΡΕ2229632 aritmética geral e operações lógicas. Cada registo contém 64 posições de bit. Os registos gerais são identificados pelos números 0-15 e são designados por um campo R de quatro bit numa instrução. Algumas instruções proporcionam o endereçamento de múltiplos registos gerais através de posse de vários campos R. Para algumas instruções, o uso de um registo geral específico é implícito em vez do explícito designado por um campo R da instrução.
Para algumas operações, tanto 32-63 bits ou 0-63 bits de dois registos gerais adjacentes estão acoplados, fornecendo um formato de 64-bit ou 128-bit, respetivamente. Nestas operações, o programa deve designar um mesmo registo numerado, que contém os 32 ou 64 bits mais à esquerda (ordem superior). O próximo registo numerado mais elevado contém os 32 ou 64 bits mais à direita (ordem inferior) . Adicionalmente para o seu uso como acumuladores em aritmética geral e operações lógicas, 15 dos 16 registos gerais também são usados como endereço de base e registos de índice em geração de endereço. Nestes casos, os registos são designados por um campo B de quatro bits ou campo X numa instrução. Um valor de zero no campo B ou X especifica que nenhuma base ou índice deve ser aplicado, e, assim, registo geral 0 não pode ser designado como contendo um endereço de base ou índice.
Registos de Controlo
Os registos de controlo proporcionam a 19 ΡΕ2229632 manutenção e manipulação de informação de controlo fora do program status word. 0 CPU tem 16 registos de controlo, cada um possuindo posições de 64 bits. As posições do bit nos registos estão atribuídas a instalações específicas no sistema, tal como programa de gravação do evento, e são usadas quer para especificar que uma operação pode realizar-se quer para fornecer informação especial requerida pela instalação. 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. Múltiplos registos de controlo podem ser endereçados por estas instruções.
Registo de Controlo 1
Registo de controlo 1 contém o Elemento de Controlo do Espaço de Endereçamento Primário (PASCE). Num modelo de realização, registo de controlo 1 tem um de dois formatos tal como ilustrado na Fig. 14, dependendo no bit de controlo do espaço real (R) no registo:
Campos selecionados no Elemento de Controlo do Espaço de Endereçamento Primário (PASCE) são alocados como se segue:
Tabela da Região Primária ou Origem da Tabela de Segmento: Bits 0-51 da tabela da região primária ou designação da tabela de segmento no registo de controlo 1, com 12 zeros anexados à direita, formam um endereço de 64- 20 ΡΕ2229632 bits que designa o início da tabela da região primária ou tabela de segmento. É imprevisível se o endereço é real ou absoluto. Esta tabela é denominada a tabela da região primária ou tabela de segmento uma vez que é usada para traduzir endereços virtuais no espaço de endereçamento 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 tabela de região ou designação da tabela de segmento.
Se o bit 58 é um, o registo contém uma designação do espaço real.
Quando o bit 58 é um, um valor um do bit de segmento comum numa representação do buffer lookaside de tradução de uma entrada da tabela de segmento evita a entrada e a cópia da tabela de página do buffer lookaside de tradução se designa de ser usada quando está a traduzir referências para o espaço de endereçamento primário, mesmo com uma correspondência entre a origem do token no registo de controlo 1 e a tabela de origem entrada do buffer lookaside de tradução.
Controlo do Tipo de Designação Primária (DT) : Quando R é zero, o tipo de designação da tabela no registo de controlo 1 é especificado pelos bits 60 e 61 no registo, como se segue: 21 ΡΕ2229632
Bits 60 e 61 Tipo de Designação 11 Tabela de primeira região 10 Tabela de segunda região 01 Tabela de terceira região 00 Tabela de segmento
Bits de controlo do Tipo de Designação (DT) Primária
Quando R é zero, bits 60 e 61 têm de ser 11 binário quando é feita uma tentativa para usar o PASCE para traduzir um endereço virtual em que o bit um mais à esquerda está nas posições do bit 0-10 do endereço. Da mesma forma, bits 6 0 e 61 têm de ser binário 11 ou 10 quando o bit um mais à esquerda está nas posições do bit 11-21 do endereço, e eles têm de ser 11, 10, ou 01 binário quando o bit um mais à esquerda está nas posições do bit 22-32 do endereço. Caso contrário, uma exceção do tipo ASCE é reconhecida.
Tabela da Região Primária ou Comprimento da Tabela de Segmento (TL) : Bits 62 e 63 da designação da tabela da região primária ou designação da tabela de segmento no registo de controlo 1 específica o comprimento da tabela da região primária ou tabela de segmento em unidades de 4096 bytes, fazendo assim o comprimento da tabela de região ou tabela de segmento variável em múltiplos de 512 entradas. 0 comprimento da tabela da região primária ou tabela de segmento, em unidades de 4096 22 ΡΕ2229632 bytes, é um mais do que o valor TL. Os conteúdos do campo de comprimento são usados para estabelecer se a porção do endereço virtual (RFX, RSX, RTX, ou SX) a ser traduzido através da tabela designa uma entrada que cai dentro da tabela.
Origem do Token do Espaço Real Primário: Bits 0-51 da designação do espaço real primário no registo de controlo 1, com 12 zeros anexados à direita, formam um endereço de 64-bits que pode ser usado na formação e utilização de entradas de buffer de lookasides de tradução que proporcionam uma tradução virtual igual à real para referência ao espaço de endereçamento primário. Apesar deste endereço ser usado apenas como um Token e não ser usado para executar uma referência de armazenamento, deve ser ainda um endereço válido; caso contrário, uma entrada de buffer lookaside de tradução incorreta pode ser usada quando os conteúdos do registo de controlo 1 são usados.
Os seguintes bits do registo de controlo 1 não estão atribuídos e são ignorados: bits 52, 53, e 59 se o registo contém uma designação da tabela de região ou designação da tabela de segmento, e bits 52, 53 e 59-63 se o registo contém uma designação do espaço real.
Registo de Controlo 7
Registo de Controlo 7 contém o Elemento de Controlo do Espaço de Endereçamento Secundário (SASCE). Num 23 ΡΕ2229632 modelo de realização, o registo de controlo 7 tem um de dois formatos como ilustrado na Fig. 15, dependendo do bit de controlo do espaço real (R) no registo.
Registo de Controlo 13
Registo de Controlo 13 contém o Elemento de Controlo do Espaço de Endereçamento de Inicio (HASCE). Num modelo de realização, registo de controlo 13 tem um de dois formatos como ilustrado na Fig. 16, dependendo do bit de controlo do espaço real (R) no registo.
Registos de Acesso 0 CPU tem 16 registos de acesso numerados de 0-15. Um registo de acesso consiste em 32 posições do bit contendo uma especificação indireta de um ASCE. Um ASCE é um parâmetro usado pelo mecanismo de tradução de endereço dinâmico (DAT) para traduzir referências para um espaço de endereçamento correspondente. Quando o CPU está num modo denominado o modo de registo de acesso (controlado por bits no program status word) , um campo B de instrução, usado para especificar um endereço lógico para uma referência de operando de armazenamento, designa um registo de acesso, e o ASCE especificado pelo registo de acesso é usado pela DAT para a referência que está a ser feita. Para algumas instruções, um campo R é usado em vez de um campo B. São proporcionadas instruções para carregar e armazenar os - 24 - ΡΕ2229632 conteúdos dos registos de acesso e para mover os conteúdos de um registo de acesso para outro.
Cada um dos acessos dos registos 1-15 pode designar qualquer espaço de endereçamento, incluído o espaço de instrução atual (o espaço de endereçamento primário). Registo de acesso 0 designa o espaço de instrução primária. Quando um dos registos de acesso 1-15 é usado para designar um espaço de endereçamento, o CPU determina qual o espaço de endereçamento que está designado traduzindo os conteúdos do registo de acesso. Quando registo de acesso 0 é usado para designar um espaço de endereçamento, o CPU trata o registo de acesso enquanto designa o espaço de instrução primária, e não examina os conteúdos reais do registo de acesso. Por isso, os 16 registos de acesso podem designar, a qualquer altura, o espaço de instrução primária e um máximo de 15 outros espaços.
Program status word (PSW) 0 program status word inclui o endereço de instrução, código de condição, e outra informação usada para controlar a sequência de instrução e para determinar o estado do CPU. 0 program status word ativo ou controlador é denominado como o program status word atual. Governa o programa atualmente a ser executado. o CPU tem uma capacidade de interrupção, que 25 ΡΕ2229632 permite ao CPU mudar rapidamente para outro programa em resposta a condições excecionais e estímulos externos. Quando uma interrupção ocorre, o CPU coloca o program status word atual numa localização de armazenamento atribuída, denominada como localização do program status word antiga, para a classe de interrupção específica. 0 CPU procura um novo program status word A partir de uma segunda localização de armazenamento atribuída. Este novo program status word determina o próximo programa a ser executado. Quando acabar de processar a interrupção, o programa que está a tratar da interrupção pode carregar o program status word antigo, tornando-o novamente o atual program status word, para que o programa interrompido possa continuar.
Existem seis classes de interrupção: externa, I/0, verificação de máquina, programa, reiniciação, e chamada de supervisor. Cada classe tem um par diferente de localizações do program status word antigo e program status word recente permanentemente atribuída num armazenamento real.
Program Status Word Atual 0 program status word atual no CPU contém informação necessária para a execução do programa ativo atualmente. 0 program status word 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, o program status word é usado para controlar a instrução de sequência 26 ΡΕ2229632 e para assegurar e indicar muito do estado do CPU em relação ao programa atualmente a ser executado. Controlo adicional e informação do estado estão contidos em registos de controlo e localizações de armazenamento atribuídas permanentemente. 0 estado do CPU pode ser alterado carregando um novo program status word ou parte de um program status word.
Controlo é alterado durante uma interrupção do CPU armazenando o program status word atual, de tal forma que se preserve o estado do CPU, e depois carregando um novo program status word. A execução de LOAD PSW ou LOAD PSW EXTENDED, ou a conclusão de sucesso da sequência de carregamento do programa inicial, introduz um novo program status word. 0 endereço de instrução é atualizado através de execução de instrução sequencial e substituído por ramos bem-sucedidos. Outras instruções são proporcionadas as quais operam numa porção do program status word.
Um program status word novo ou modificado torna-se ativo (isto é, a informação introduzida no program status word atual assume controlo sobre o CPU) quando a interrupção ou a execução de uma instrução que altera o program status word está completa. A interrupção para Gravação de Evento de Programa (PER) associada a uma instrução que altera o program status word ocorre sob controlo da máscara PER que é eficaz no início da operação. Bits 0-7 do program status word são coletivamente referidos como a máscara do sistema. Num modelo de realização, o 27 ΡΕ2229632 program status word tem o formato como ilustrado na Fig. 17 . 0 que se segue é um breve sumário das funções dos campos do program status word selecionados.
Modo DAT (T) : Bit 5 controla se a tradução de endereço dinâmico implícita dos endereços lógico e de instrução usados para aceder a armazenamento, acontece.
Quando o bit 5 é zero, DAT está desligada e endereços lógicos e de instrução são tratados como endereços reais. Quando o bit 5 é um, DAT está ligado, e o mecanismo da tradução de endereço dinâmico é invocado.
Chave PSW: Bits 8-11 formam a chave de acesso para referências de armazenamento pelo CPU. Se a referência está sujeita a proteção controlada com chave, a Chave PSW é correspondida com uma chave de armazenamento quando a informação é armazenada ou quando a informação é procurada a partir de uma localização que é protegida contra a procura. Contudo, para um dos operandos de cada um de MOVE TO PRIMARY, MOVE TO SECONDARY, MOVE WITH KEY, MOVE WITH SOURCE KEY, e MOVE WITH DESTINATION KEY, uma chave de acesso especificada como um operando é usado ao invés da Chave PSW.
Controlo do Espaço de Endereçamento (AS): Bits 16 e 17, é conjunção com bit 5 do Program status word, controlam o modo de tradução. 28 ΡΕ2229632 Código de Condição (CC) : Bits 18 e 19 são os dois bits do código de condição. 0 código de condição é definido para 0, 1, 2, ou 3, dependendo dos resultados obtidos na execução de certas instruções. A maior parte das operações de aritmética e de lógica, assim como algumas outras operações, definem o código de condição. A instrução BRANCH ON CONDITION pode especificar qualquer seleção dos valores do código de condição como um critério para ramificação.
Endereço de Instrução: Bits 64-127 do program status word são o endereço de instrução. Este endereço designa a localização do byte mais à esquerda da próxima instrução a ser executada, a não ser que o CPU esteja em estado de espera (bit 14 do program status word é um).
Tipos de Endereço & Formatos
Para propósitos de endereçamento de armazenamento principal, três tipos básicos de endereços são reconhecidos: absoluto, real, e virtual. Os endereços são distinguidos com base nas transformações que são aplicadas ao endereço durante um acesso de armazenamento. A tradução de endereço converte um endereço virtual num endereço real. A prefixação converte um endereço real num endereço absoluto. Adicionalmente aos três tipos de endereço básico, tipos adicionais são definidos os quais são tratados como um ou outro dos três tipos básicos, dependendo da instrução e do modo atual. 29 ΡΕ2229632
Endereço Absoluto
Um endereço absoluto é o endereço atribuído a uma localização de armazenamento principal. Um endereço absoluto é usado para um acesso de armazenamento sem quaisquer transformações aí realizadas. 0 subsistema de canal e todos os CPUs na configuração referem-se a uma localização de armazenamento principal partilhada utilizando o mesmo endereço absoluto. Armazenamento principal disponível é normalmente atribuído de forma contígua ao endereço absoluto começando em 0, e os endereços são atribuídos em blocos de 4 Kilobytes completos em limites integrados. É reconhecida uma exceção quando é feita uma tentativa para usar 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 da reconfiguração de armazenamento que permitem ao operador alterar a correspondência entre endereço absoluto e localizações físicas. Contudo, em qualquer altura, uma localização física não é associada a mais do que um endereço absoluto. Armazenamento consistindo em localizações de byte sequenciadas de acordo com os seus endereços absolutos é referenciado como armazenamento absoluto.
Endereço Real
Um endereço real identifica uma localização no armazenamento real. Quando um endereço real é usado para um 30 ΡΕ2229632 acesso ao armazenamento principal, é convertido, através de meios de prefixação, para formar um endereço absoluto. A qualquer instante existe um endereço real para endereço absoluto mapeando por cada CPU na configuração. Quando um endereço real é usado por um CPU para aceder ao armazenamento principal, pode ser convertido num endereço absoluto por prefixação. Uma transformação especifica é definida pelo valor no registo de prefixo para o CPU. Armazenamento consistindo em localizações de bytes sequenciados de acordo com os seus endereços reais está referenciado como armazenamento real.
Endereço Virtual
Um endereço virtual identifica a localização em armazenamento virtual. Quando um endereço virtual é usado para um acesso ao armazenamento principal, é traduzido por meio da tradução de endereço dinâmico, quer para um endereço real que pode ser sujeito a prefixação para formar um endereço absoluto, quer diretamente para um endereço absoluto.
Endereço Primário Virtual
Um endereço primário virtual é um endereço virtual que é para ser traduzido através de Elemento de
Controlo do Espaço de Endereçamento Primário (PASCE). Endereços lógicos são tratados como endereços primários virtuais quando em modo de espaço primário. Endereços de instrução são tratados como endereços virtuais primários 31 ΡΕ2229632 quando no modo de espaço primário, modo de espaço secundário, ou modo de registo de acesso. 0 primeiro endereço do operando de MOVE TO PRIMARY e o segundo endereço do operando de MOVE TO SECONDARY 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 através do Elemento de Controlo do Espaço de Endereçamento Secundário (SASCE). Endereços lógicos são tratados como endereços virtuais secundários quando no modo do espaço secundário. 0 segundo endereço do operando do MOVE TO PRIMARY e o primeiro endereço do operando do MOVE TO SECONDARY 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 através de um Elemento de Controlo do Espaço de Endereçamento especificado de Registo de Acesso. Endereços lógicos são tratados como endereços especificados de AR quando no modo de registo de acesso.
Endereço Virtual de Inicio
Um endereço virtual de início é um endereço 32 ΡΕ2229632 virtual que é para ser traduzido através do Elemento de Controlo do Espaço de Endereçamento de Inicio (HASCE). Endereços lógicos e endereços de instrução são tratados como endereços virtuais de inicio quando no modo do espaço de inicio.
Endereço de Instrução
Endereços usados para procurar instruções a partir do armazenamento são denominados endereços de instrução. Endereços de instrução são tratados como endereços reais no modo real, como endereços virtuais primários no modo do espaço primário, modo do espaço secundário, ou modo de registo de acesso, e como endereço virtual de início no modo do espaço de inicio. 0 endereço de instrução no program status word atual e o endereço alvo do EXECUTE são endereços de instrução.
Endereço Eficaz
Nalgumas situações, é conveniente usar o termo "endereço eficaz." Um endereço eficaz é o endereço que existe antes de ser realizada qualquer transformação pela tradução de endereço dinâmico ou prefixação. Um endereço eficaz pode ser especificado diretamente num registo ou pode resultar do endereço aritmético. Aritmética do endereço é a adição da base e deslocamento ou da base, índice, e deslocamento. 33 ΡΕ2229632
Prefixação
Prefixação proporciona a capacidade para atribuir a gama dos endereços reais 0-8191 a um bloco diferente em armazenamento absoluto para cada CPU, permitindo assim mais do que um CPU a partilhar armazenamento principal para operar simultaneamente com um mínimo de interferência, especialmente no processamento de interrupções. Prefixação leva a que os endereços reais na gama 0-8191 correspondam um-para-um aos endereços absolutos do bloco de 8 Kbytes (a área prefixa) identificados pelo valor em posições do bit 0-50 do registo de prefixo para o CPU, e a que o bloco de endereços reais identificados pelo valor no registo de prefixo corresponda um-para-um aos endereços absolutos 0-8191. Os endereços reais restantes são os mesmos que os endereços absolutos correspondentes. Esta transformação permite a cada CPU aceder a todo o armazenamento principal, incluído os primeiros 8 Kbytes e as localizações designadas pelos registos prefixos de outros CPUs. O prefixo é uma quantidade de 51 bits contida nas posições de bit 0-50 do registo de prefixo. Num modelo de realização, o registo de prefixo tem o formato como ilustrado na Fig. 18.
Quando prefixação é aplicada, o endereço real é transformado num endereço absoluto usando uma das seguintes regras, dependendo dos bits 0-50 do endereço real: 34 ΡΕ2229632
Bits 0-50 do endereço, se forem todos zeros, são substituídos por bits 0-50 do prefixo.
Bits 0-50 do endereço, se iguais aos bits 0-50 do prefixo, são substituídos por zeros.
Bits 0-50 do endereço, se não forem todos zeros e não forem iguais aos bits 0-50 do prefixo, continuam inalterados.
Apenas o endereço apresentado para armazenamento é traduzido por prefixação. Os conteúdos da origem do endereço continuam inalterados. A distinção entre endereço real e absoluto é feita mesmo quando o registo de prefixo contém só zeros, caso em que um endereço real e seu endereço absoluto correspondente são idênticos. FIG. 13 ilustra a relação entre endereços real e absoluto.
Um espaço de endereçamento é uma sequência consecutiva de números inteiros (endereços virtuais); em conjunto com os parâmetros de transformação específicos que permitem que cada número seja ser associado a uma localização do byte no armazenamento. A sequência começa no zero e vai da esquerda para a direita. 35 ΡΕ2229632
Quando um endereço virtual é usado por um CPU para aceder ao armazenamento principal, é primeiro convertido, através da tradução de endereço dinâmico (DAT), num endereço real ou absoluto. Endereços reais pode ser adicionalmente sujeitos a prefixação para formar um endereço absoluto. DAT pode usar uma tabela de primeira região, tabela de segunda região, tabela de terceira região, tabela de segmento, 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çamento especifico é denominada um Elemento de Controlo do Espaço de Endereçamento (ASCE), e encontra-se para utilização pelo DAT num registo de controlo ou como especificado por um registo de acesso. Em alternativa, o ASCE para um espaço de endereçamento pode ser uma designação do espaço real, que indica que DAT é para traduzir o endereço virtual simplesmente tratando-o como um endereço real e sem usar quaisquer tabelas. DAT usa, 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 no program status word atual. Quatro modos de tradução estão disponíveis: modo do espaço primário, modo do espaço secundário, modo de registo de acesso, e modo do espaço de início. Espaços de endereçamento diferentes são endereçáveis dependendo do modo de tradução. 36 ΡΕ2229632 A qualquer instante quando o CPU está no modo do espaço primário ou modo do espaço secundário, o CPU pode traduzir endereços virtuais pertencendo a dois espaços de endereçamento — o espaço de endereçamento primário e o espaço de endereçamento secundário. A qualquer instante quando o CPU está no modo de registo de acesso, pode traduzir endereços virtuais até 16 espaços de endereçamento — o espaço de endereçamento primário e até 15 espaços de endereçamento especificados de AR. A qualquer instante quando o CPU está no modo do espaço de inicio, pode traduzir endereços virtuais do espaço de endereçamento de inicio.
0 espaço de endereçamento primário é identificado como tal porque consiste em endereços virtuais primários, que são traduzidos através do Elemento de Controlo do Espaço de Endereçamento Primário (PASCE). Similarmente, o espaço de endereçamento secundário consiste em endereços virtuais secundários traduzidos através do Elemento de Controlo do Espaço de Endereçamento Secundário (SASCE). Os espaços de endereço especificados de AR consistem nos endereços virtuais especificados de AR traduzidos através do Elemento de Controlo do Espaço de Endereçamento especificado do Registo de Acesso (ASCE especificado AR) , e o espaço de endereçamento de inicio consiste em endereços virtuais de inicio traduzidos através do Elemento de Controlo do Espaço de Endereçamento de Inicio (HASCE). Os ASCEs primários e secundários estão nos registos de controlo 1 e 7, respetivamente. Os AR 37 ΡΕ2229632 especificados ASCEs podem estar nos registos de controlo 1 e 7, ou nas entradas da tabela denominadas de entradas da segunda tabela AS. 0 HASCE está no registo de controlo 13.
Tradução de Endereço Dinâmico
Tradução de endereço dinâmico é o processo de traduzir um endereço virtual (durante uma referência de armazenamento, por exemplo) para o endereço de memória principal correspondente (endereço real ou endereço absoluto no modelo de realização). 0 endereço virtual pode ser um endereço virtual primário, endereço virtual secundário, endereço virtual especificado de Registo de Acesso, ou um endereço virtual de inicio. Estes endereços são traduzidos através do PASCE, SASCE, AR-especifiçado ASCE, ou o HASCE, respetivamente. Depois da seleção do ASCE apropriado, o processo de tradução é o mesmo para todos os quatro tipos de endereço virtual.
Modos de Tradução de Endereçamento
Um endereço eficaz é o endereço (endereço virtual) que existe antes de ser realizada qualquer transformação por tradução de endereço dinâmico ou prefixação. Os três bits no program status word que controlam a tradução de endereço dinâmico são o bit 5, o bit de modo DAT, e os bits 16 e 17, os bits de controlo do espaço de endereçamento. Quando o bit de modo DAT é zero, então DAT está desativado, e o CPU está no modo real. 38 ΡΕ2229632
Quando o bit de modo DAT é um, então DAT está ativado, e o CPU está em modo de tradução designado pelos bits de controlo do espaço de endereçamento: binário 00 designa o modo do espaço primário, binário 01 designa o modo de registo de acesso, binário 10 designa o modo do espaço secundário, e binário 11 designa o modo do espaço de inicio. Os vários modos são ilustrados adiante, em conjunto com o tratamento de endereço em cada modo. 39 ΡΕ2229632
Bit PSW DAT Modo Tratamento de endereços 5 16 17 Endereços de Instrução Endereços Lógicos 0 0 0 Off Modo real Real Real 0 0 1 Off Modo real Real Real 0 1 0 Off Modo real Real Real 0 1 1 Off Modo real Real Real 1 0 0 On Modo de espaço primário Virtual primário Virtual primário 1 0 1 On Modo de registo de acesso Virtual primário Virtual especificado de AR 1 1 0 On Modo de espaço secundário Virtual primário Virtual secundário 1 1 1 On Modo de espaço de inicio Virtual de início Virtual de início
Modos de Tradução 0 Program status word é uma palavra de 128 bits que, em parte, proporciona 2 bits que indicam o modo de endereçamento. Num modelo de realização, bit 31 é o bit de 40 ΡΕ2229632
Modo de Endereçamento Alargado (EA) e bit 32 é o bit de Modo de Endereçamento Base (BA). Estes dois bits indicam o tamanho 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 endereçamento de 24 bits. Se o endereçamento dos 24 bits é indicado, bits 40-63 de uma palavra de 64 bits (uma entidade de 64 bits é normalmente denominada uma palavra dupla) é onde o endereço está localizado. Quando o endereço de instrução ocupa os segundos 64 bits de uma entidade de 128 bits (uma quadrupla), as posições do bit no program status word são como se segue. No modo 24 bits, o endereço de instrução está nos bits 104-127 do program status word. No modo 31 bits, o endereço de instrução está nos bits 97- 127 do program status word. No modo 64 bits, o endereço de instrução está nos bits 64-127 do program status word Se o bit EA é 0 e o bit BA é 1 então endereçamento de 31 bits é indicado. A palavra de 64 bits apropriada contém um endereço de 31 bits localizado nas posições do bit 33-63. Se o bit EA é 1 e o bit BA é 1 então bits 0-63, que são os 64 bits completos, de uma palavra de 64 bits contém o endereço. Caso contrário, uma condição de exceção é indicada. Uma vez que o modo de endereçamento tenha sido obtido, o ASCE necessita de ser determinado.
Elemento de Controlo do Espaço de Endereçamento (ASCE)
Referência é agora feita à FIG. 3 que ilustra um modelo de realização de como o Program status word é usado para determinar o Elemento de Controlo do Espaço de 41 ΡΕ2229632
Endereçamento (ASCE) eficaz para tradução de endereço dinâmico do endereço virtual. 0 ASCE pode especificar, por exemplo, um espaço de endereçamento de 2 Gigabytes (Giga = 230) . Ou, pode especificar, por exemplo, 4 Terabytes (Tera = 240) , 8 Petabytes (Peta = 250) , ou um espaço de endereçamento de 16 Exabytes (Exa = 260) . Ou, pode especificar uma designação de espaço real. Uma designação de espaço real leva a que o endereço virtual seja tratado como um endereço real no armazenamento sem referenciar uma ou mais tabelas de traduções de endereços. 0 Program status word 300 contém um bit de tradução (T) 302 e bits de Espaço de Endereçamento (AS) 304. No 306, se o bit de tradução (T) é zero então o endereço é um endereço real 326. Se, no 308, o espaço de endereçamento (AS) é igual a zero (binário 00) então o ASCE eficaz para este endereço virtual é o Elemento de Controlo do Espaço de Endereçamento Primário (PASCE) 310. Se, em 312, o Espaço de Endereçamento (AS) é igual a um (binário 01) então o ASCE eficaz é o Elemento de Controlo do Espaço de Endereçamento especificado de Registo de Acesso 314. Se, no 316, um Espaço de Endereçamento (AS) é igual a dois (binário 10) então o ASCE eficaz é o Elemento de Controlo do Espaço de Endereçamento Secundário (SASCE) 318. Caso contrário, o espaço de endereçamento (AS) é igual a três (binário 11) e o ASCE eficaz é o Elemento de Controlo do Espaço de Endereçamento de Inicio (HASCE) 322.
Depois da seleção do ASCE eficaz, o processo de 42 ΡΕ2229632 traduçao de endereço dinâmico é de preferência o mesmo para todos os quatro tipos do endereço virtual.
Uma designação da tabela de segmento ou designação da tabela de região leva a que a tradução seja realizada através de tabelas estabelecidas pelo sistema operativo em armazenamento real ou absoluto. Uma designação do espaço real leva a que o endereço virtual seja simplesmente tratado como um endereço real, sem a utilização das tabelas em armazenamento.
No processo de tradução quando se está a usar uma designação da tabela de segmento ou uma designação da tabela de região, três tipos de unidades da informação são reconhecidos — regiões, segmentos, e páginas. Uma região é um bloco de endereço virtual sequencial abrangendo 2 Gigabytes e começando numa fronteira de 2 Gigabytes. Um segmento é um bloco de endereços virtuais sequenciais abrangendo 1 Megabyte e começando numa fronteira de 1
Megabyte. Uma página é um bloco de endereço virtual sequencial abrangendo 4 Kilobytes e começando numa fronteira de 4 Kilobytes.
Formato de Endereço Virtual
Tradução de um endereço virtual pode envolver a referência a uma pluralidade de tabelas de tradução de uma hierarquia de tabelas de tradução para obter um endereço real ou absoluto. 0 endereço real pode ser adicionalmente 43 ΡΕ2229632 sujeito a uma operação de prefixação para formar um endereço absoluto. 0 endereço virtual contém índices para entradas nas tabelas de tradução na hierarquia das tabelas de tradução • Concordantemente, o endereço virtual , é dividido em quatro campos principais. Bits 0-32 são denominados o índice de região (RX), bits 33-43 são denominados o índice de segmento (SX), bits 44-51 são denominados 0 índice de página (PX) , e bits 52-63 são denominados 0 índice de byte (BX). Num modelo de realização, 0 endereço virtual tem o formato tal como ilustrado na Fig. 19.
Como determinado pelo seu ASCE, um espaço de endereçamento virtual pode ser um espaço de 2 Gigabytes consistindo numa região, ou pode ser um espaço até 16 Exabytes consistindo em regiões até 8 Gigabytes. A parte de RX de um endereço virtual aplicado a um espaço de endereçamento de 2 Gigabytes devem ser só zeros; caso contrário, uma exceção é reconhecida. A parte de RX de um endereço virtual está ela própria dividida em três campos. Os bits 0-10 são denominados o índice de primeira região (RFX), bits 11-21 são denominados o índice de segunda região (RSX), e bits 22-32 são denominados o índice de terceira região (RTX). Num modelo de realização, bits 0-32 do endereço virtual têm o formato como ilustrado na Fig. 20 .
Um endereço virtual em que o RTX é a parte importante mais à esquerda (um endereço de 42-bit) é capaz 44 ΡΕ2229632 de endereçar 4 Terabytes (2048 regiões), uma em cada RSX é a parte importante mais à esquerda (um endereço de 53-bit) é capaz de endereçar 8 Petabytes (4193044 regiões), e um em que o RFX é a parte importante mais à esquerda (um endereço de 64-bits) é capaz de endereçar 16 Exabytes (8589934592 regiões).
Um endereço virtual em que o RX é zero pode ser traduzido em endereços reais através de duas tabela de tradução: uma tabela de segmento e uma tabela de página. Com a instalação EDAT ativada, a tradução pode ser completada apenas com a tabela de segmento. O RFX pode ser diferente de zero, em cujo caso são necessária uma tabela de primeira região, tabela de segunda região, e tabela de terceira região. Se o RFX é zero, mas o RSX pode ser diferente de zero, são necessária uma tabela de segunda região e uma tabela de terceira região. Se o RFX e RSX são zero, mas o RTX pode ser diferente de zero, a tabela de terceira região é necessária.
Uma exceção é reconhecida se o ASCE para um espaço de endereçamento não designar o nível mais elevado da tabela (começando com a tabela de primeira região e continuando para baixo para a tabela de segmento) necessário para traduzir uma referência para o espaço de endereçamento. 45 ΡΕ2229632
Tradução Dinâmica do Endereço Virtual É agora feita referência à FIG. 4 que ilustra um modelo de realização em que o ASCE eficaz determinado na Fig. 3 é usado para determinar a primeira tabela de tradução na hierarquia das tabelas de tradução usadas na tradução do endereço virtual.
Num modelo de realização, registo de controlo 1 (CRI) contém o PASCE. Registo de controlo 7 (CR7) contém o SASCE. Registo de controlo 13 (CR13) contém o HASCE, e uma Entrada do Espaço De Endereçamento Da Segunda Tabela (ASTE) que é derivada pelo processo de Tradução de Registo de Acesso (ART) contém um Elemento de Controlo do Espaço de Endereçamento especificado de Registo de Acesso. Um ASCE 400 eficaz é selecionado a partir de uma dessas localizações.
Uma primeira porção do ASCE 400 eficaz contém uma origem da tabela 402 a qual contém um endereço de origem designando se uma tabela de primeira região, uma tabela de segunda região, uma tabela de terceira região, ou uma tabela de segmento. A origem da tabela (bits 0..51) é acrescentada com 12 zeros binários para formar um endereço de origem de 64 bits da tabela de tradução mais elevada na hierarquia das tabelas de tradução para ser usada na tradução do endereço virtual. ASCE 400 eficaz 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 46 ΡΕ2229632 DT são descodificados pelo seletor 408 para determinar que endereço original particular é tabela de origem da tabela 402. Se os bits DT forem igual a três (binário 11) então origem da tabela 402 designa uma tabela de primeira região 410. Se os bits DT forem iguais a dois (binário 10) então origem da tabela 402 designa uma tabela de segunda região 412. Se os bits DT forem iguais a um (binário 01) então a origem da tabela 402 designa uma tabela de terceira região 414. Caso contrário, se os bits DT forem iguais a zero (binário 00) então origem da tabela 402 designa uma tabela de segmento 416.
Uma tabela de primeira região, tabela de segunda região, ou tabela de terceira região é por vezes referenciada simplesmente como uma tabela de região. Similarmente, uma designação da tabela de primeira região, designação da tabela de segunda região, ou designação da tabela de terceira região é por vezes referenciada como uma designação da tabela de região. As tabelas da região, segmento, e página refletem a atribuição atual do armazenamento real. Página é um termo usado para a atribuição do armazenamento virtual. Armazenamento real é alocado em blocos fixos. Páginas não necessitam de estar adjacentes no armazenamento real apesar de atribuídas a um conjunto de endereços virtuais sequenciais.
Quando o ASCE usado numa tradução é uma designação da tabela de primeira região, o processo de tradução consiste numa pesquisa multinível usando, por - 47 - ΡΕ2229632 exemplo, uma tabela de primeira região, uma tabela de segunda região, uma tabela de terceira região, uma tabela de segmento, e opcionalmente uma tabela de página. Estas tabelas encontram-se no armazenamento real ou absoluto. Quando o ASCE é uma designação da tabela de segunda região, designação da tabela de terceira região, ou designação da tabela de segmento, as pesquisas nos níveis das tabelas acima do nível designado são omissas, e as tabelas de nível mais elevado são elas mesmas omissas. É agora feita referência à FIG. 5A ilustrando um modelo de realização da tradução de endereço dinâmico de um endereço virtual usando uma hierarquia de tabelas de tradução. 0 ASCE 400 eficaz da FIG. 4 contém os bits do 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 seletor 408 para determinar que origem a origem da tabela de endereço 402 designa. Se o bit de controlo do espaço real (R) é um então a tradução de endereço dinâmico acontece como ilustrado no nó D 564 na Fig. 5B.
Se os bits DT são iguais a três (binário 11) no seletor 408 então a primeira tabela designada na hierarquia das tabelas de tradução é uma tabela de primeira região. Origem da tabela 402 é aritmeticamente adicionada, no 502, com uma porção de índice de Primeira Região (RFX) 508 do 48 ΡΕ2229632 endereço virtual para referenciar a entrada da tabela de primeira região 506 numa tabela de primeira região. A origem da tabela (quer com 12 zeros anexados à direita, quer multiplicada por 4096) é adicionada ao produto do índice multiplicado por 8 (ou o índice com três zeros anexados à direita). A entrada da tabela de primeira região contém uma origem da tabela de segunda região 504 para uma próxima tabela inferior na hierarquia das tabelas de tradução usadas na tradução. A próxima tabela inferior da tabela de primeira região é a tabela de segunda região. Se o bit inválido (I) da entrada da tabela de primeira região é igual a um então a entrada da tabela de primeira região é inválida e não pode ser usada na tradução. Uma condição de exceção é indicada.
Se os bits DT são iguais a dois (binário 10) no seletor 408 então a primeira tabela designada na hierarquia das tabelas de tradução é uma tabela de segunda região. Origem da tabela 402 é adicionada aritmeticamente, no 510, com uma porção do índice de Segunda Região (RSX) 516 do endereço virtual para referenciar a entrada da tabela de segunda região 514 numa tabela de segunda região. A origem da tabela (quer com 12 zeros anexados à direita, quer multiplicada por 4096) é adicionada ao produto do índice multiplicado por 8 (ou o índice com três zeros anexados à direita). A entrada da tabela de segunda região contém uma Origem da tabela de terceira região 512 para uma próxima tabela inferior na hierarquia das tabelas de tradução usadas na tradução. A próxima tabela inferior para a tabela 49 ΡΕ2229632 de segunda região é a tabela de terceira região. Se o bit inválido (I) da entrada da tabela de segunda região é igual a um então a entrada da tabela de segunda região é inválida e é indicada uma condição de exceção.
Se os bits DT são iguais a um (binário (01) no seletor 408 então a primeira tabela designada na hierarquia das tabelas de tradução é uma tabela de terceira região. Origem da tabela 402 é adicionada aritmeticamente, no 518, com uma porção do índice de Terceira Região (RTX) 524 do endereço virtual para referenciar a entrada da tabela de terceira região 522 numa tabela de terceira região. A origem da tabela (quer com 12 zeros anexados à direita, quer multiplicada por 4096) é adicionada ao produto do índice multiplicado por 8 (ou o índice com três zeros anexados à direita). A entrada da tabela de terceira região contém uma origem da tabela de segmento 520 para uma próxima tabela inferior na hierarquia das tabelas de tradução usadas na tradução. A próxima tabela inferior para a tabela de terceira região é a tabela de segmento. Se o bit inválido (I) da entrada da tabela de terceira região é igual a um então a entrada da tabela de terceira região é inválida e é indicada uma condição de exceção.
Se os bits DT são iguais a zero (binário (00) no seletor 408) então a primeira tabela designada na hierarquia das tabelas de tradução é uma tabela de segmento. Origem da tabela 402 é adicionada aritmeticamente, no 526, com uma porção do índice de 50 ΡΕ2229632
Segmento (SX) 532 do endereço virtual para referenciar a entrada da tabela de segmento 530 numa tabela de segmento. A origem da tabela (quer com 12 zeros anexados à direita, quer multiplicada por 4096) é adicionada ao produto do índice multiplicado por 8 (ou o índice com três zeros anexados à direita). A entrada da tabela de segmento contém quer um endereço original para uma tabela de página quer um endereço absoluto da trama de segmento (SFAA), ambos ilustrados no 528. Se o bit inválido (I) da entrada da tabela de segmento é igual a um então a entrada da tabela de segmento é inválida e é indicada uma condição de exceção.
No 538, o bit de controlo do formato (FC) STE da tabela de segmento é examinado. Se o controlo de formato STE é um então a entrada da tabela de segmento 530 contém um endereço absoluto da trama de segmento (SFAA) 552 e a tradução de endereço dinâmico continua em referência ao nó 562 na FIG. 5C. Caso contrário, a entrada da tabela de segmento obtida a partir da tabela de segmento contém um endereço de origem da tabela de página e a tradução de endereço dinâmico continua em referência ao nó 560 na Fig. 5B. É feita agora referência à FIG. 5B. Se o controlo de formato STE na entrada da tabela de segmento é zero então a entrada da tabela de segmento obtida a partir da tabela de segmento contém um endereço de origem para a próxima tabela inferior na hierarquia das tabelas de 51 ΡΕ2229632 tradução . A próxima tabela inferior para a tabela de segmento é uma tabela de página. A origem da tabela de página ! 528, obtida a partir da entrada da tabela de segmento 530 da FIG. 5A, é adicionada aritmeticamente, no 538, com uma porção índice de Página (PX) 534 do endereço virtual para referenciar a entrada da tabela de página 542 numa tabela de página. A entrada da tabela de página contém um endereço real da trama da página (PFRA) 546. Quando os bits mais à esquerda do endereço real da trama da página são concatenados, no 548, com uma porção do índice de byte (BX) 536 do endereço virtual, um endereço real de 64 bits 550 é obtido. O endereço real de 64 bits pode ser adicionalmente sujeito a uma operação de prefixação para formar um endereço absoluto. 0 endereço virtual traduzido referencia um bloco de dados pretendido de 4 Kilobytes (4096 bytes) no armazenamento principal ou memória.
De preferência, informação usada na tradução dinâmica de um endereço virtual para um endereço de memória é armazenada numa marca de entrada de buffer lookaside de tradução em conjunto com o endereço do bloco de memória associado ao endereço virtual. Acesso posterior ao armazenamento pode rapidamente traduzir um endereço virtual comparando a informação ASCE e informação de endereço virtual com marcas do buffer lookaside de tradução. Se se descobre que uma marca é a do endereço virtual, o endereço do buffer lookaside de tradução do bloco de memória pode ser usado em vez de realizar o acesso sequencial lento de cada tabela de tradução envolvida. Num modelo de 52 ΡΕ2229632 realização, o endereço real da trama da página (PFRA) em conjunto com uma marca consistindo em, por exemplo, as porções ASCE e RX, SX, e PX do endereço virtual são armazenadas numa entrada do buffer lookaside de tradução 544. Tradução posterior deste endereço virtual é consequentemente derivada a partir da informação armazenada no buffer lookaside de tradução.
Será agora feita referência à FIG. 5C. Se o controlo de formato STE na entrada da tabela de segmento 53 0 é um então a entrada da tabela de segmento contém um endereço absoluto da trama de segmento (SFAA) 552. Quando os bits mais à esquerda do endereço absoluto da trama de segmento são concatenados, no 554, com uma porção do índice de página 53 4 e uma porção do índice de byte 536 do endereço virtual, é obtido um endereço absoluto de 64-bits 556. O endereço virtual traduzido referencia um bloco de dados grande pretendido no armazenamento principal ou memória. O bloco de dados grande tem pelo menos 1 megabyte (1048576 bytes) de tamanho.
Num modelo de realização, o endereço absoluto da trama de segmento (SFAA) em conjunto com as porções RX e SX do endereço virtual são armazenados num buffer lookaside de tradução 544. Tradução posterior deste endereço virtual é consequentemente derivada a partir da informação armazenada no buffer lookaside de tradução. 53 ΡΕ2229632
Formatos de Entrada da Tabela de Tradução
Modelos de realização das várias entradas da tabela de tradução na hierarquia das tabelas de tradução usadas na tradução são como se segue.
Entradas da Tabela de Região 0 termo "entrada da tabela de região" significa uma entrada da tabela de primeira região, entrada da tabela de segunda região, ou entrada da tabela de terceira região. As entradas procuradas a partir da tabela de primeira região, tabela de segunda região, e tabela de terceira região tem os seguintes formatos. 0 nível (primeiro, segundo, ou terceiro) da tabela contendo uma entrada é identificado pelos bits do tipo da tabela (TT) na entrada.
Num modelo de realização, os formatos da entrada da tabela de primeira região, a entrada da tabela de segunda região, e a entrada da tabela de terceira região são como ilustrados na Fig. 21.
Origem da Tabela de Segunda Região, Origem da Tabela de Terceira Região, e Origem da Tabela de Segmento:
Uma entrada da tabela de primeira região contém uma origem da tabela de segunda região. Uma entrada da tabela de segunda região contém uma origem da tabela de terceira região. Uma entrada da tabela de terceira região contém uma origem da tabela de segmento. A descrição seguinte aplica- 54 ΡΕ2229632 se a cada uma das três origens da tabela. Bits 0-51 da entrada, com 12 zeros anexados à direita, formam um endereço de 64-bits que designa o início da próxima tabela de nível inferior.
Bit de Proteção DAT (P): Quando DAT melhorada se aplica, bit 54 é tratado como sendo OR com o bit de proteção DAT em cada entrada da tabela de região posterior, entrada da tabela de segmento, e, quando aplicável, entrada da tabela de página usada na tradução. Assim, quando o bit é um, proteção DAT aplica-se a toda região ou regiões especificadas pela entrada da tabela de região. Quando a instalação do DAT melhorada não está instalada, ou quando a instalação está instalada mas o controlo de ativação do DAT melhorada é zero, bit 54 da entrada da tabela de região é ignorado.
Desvio da Tabela de Segunda Região, Desvio da Tabela de Terceira Região, e Desvio da Tabela de Segmento (TF) : Uma entrada da tabela de primeira região contém um desvio da tabela de segunda região. Uma entrada da tabela de segunda região contém um desvio da tabela de terceira região. Uma entrada da tabela de terceira região contém um desvio da tabela de segmento. A descrição seguinte aplica-se a cada um dos três desvios da tabela. Bits 56 e 57 da entrada especificam o comprimento de uma porção da próxima tabela de nível inferior que está a faltar no início da tabela, ou seja, os bits especificam a localização da primeira entrada que realmente existe na próxima tabela de 55 ΡΕ2229632 nível inferior. Os bits especificam o comprimento da porção que falta em unidades de 4096 bytes, tornando assim o comprimento da porção que falta variável em múltiplos de 512 entradas. O comprimento da porção em falta, em unidades de 4096 bytes, é iqual ao valor TF. Os conteúdos do campo de desvio, em conjunto com o campo de comprimento, bits 62 e 63, são usados para estabelecer se a porção do endereço virtual (RSX, RTX, ou SX) a ser traduzida através da próxima tabela de nível inferior designa uma entrada que realmente existe na tabela.
Bit da Região Inválida (I): Bit 58 numa entrada da tabela de primeira região ou entrada da tabela de segunda região controla se o conjunto das regiões associadas com a entrada está disponível. Bit 58 numa entrada da tabela de terceira região controla se a única região associada com a entrada está disponível. Quando bit 58 é zero, tradução de endereço prossegue usando a entrada da tabela de região. Quando o bit é um, a entrada não pode ser usada para tradução.
Bits do Tipo de Tabela (TT) : Bits 6 0 e 61 da entrada da tabela de primeira região, entrada da tabela de segunda região, e entrada da tabela de terceira região identificam o nível da tabela contendo a entrada, como se segue: Bits 60 e 61 devem identificar o nível da tabela correto, considerando o tipo da designação da tabela que é o ASCE a ser usado na tradução e o número de níveis da tabela que foram até agora usados; caso contrário, uma 56 ΡΕ2229632 exceção da especificação da tradução é reconhecida. A seguinte tabela mostra os bits do tipo de tabela:
Bits 60 e 61 Nivel da Tabela de Região 11 Primeira 10 Segunda 01 Terceira
Bits do Tipo de Tabela para Entradas da tabela de região
Comprimento da Tabela de Segunda Região, Comprimento da Tabela de Terceira Região, e Comprimento da Tabela de Segmento (TL): Uma entrada da tabela de primeira região contém um comprimento da tabela de segunda região. Uma entrada da tabela de segunda região contém um comprimento da tabela de terceira região. Uma entrada da tabela de terceira região contém um comprimento da tabela de segmento. A seguinte descrição aplica-se a cada um dos três comprimentos de tabela. Bits 62 e 63 da entrada especificam o comprimento da próxima tabela de nivel inferior em unidades de 4096 bytes, tornando assim o comprimento da tabela variável em múltiplos de 512 entradas. O comprimento da próxima tabela de nivel inferior, em unidades de 4096 bytes, é um mais do que o valor TL. Os conteúdos do campo de comprimento, em conjunto com o campo de desvio, bits 56 e 57, são usados para estabelecer se a porção do endereço virtual (RSX, RTX, ou SX) a ser traduzida através da próxima tabela de nivel inferior designa uma entrada que realmente existe na 57 ΡΕ2229632 tabela. Todas as outras posições do bit da entrada da tabela da região são reservadas para possiveis extensões de futuro e deverão conter zeros; Caso contrário, o programa pode não funcionar de forma compatível no futuro. Quando DAT melhorada se aplica, as posições do bit reservadas da entrada da tabela de região deverão conter zeros mesmo que a entrada da tabela seja inválida.
Entradas da Tabela de Segmento
Quando DAT melhorada não se aplica, ou quando DAT melhorada se aplica e o controlo de formato STE, bit 53 da entrada da tabela de segmento é zero, a entrada procurada a partir da tabela de segmento, num modelo de realização, tem o formato como ilustrado na Fig. 22.
Quando DAT melhorada se aplica e o controlo de formato STE é um, a entrada procurada a partir da tabela de segmento, num modelo de realização, tem o formato como ilustrado na Fig. 23.
Campos selecionados na entrada da tabela de segmento são alocados como se segue:
Origem da Tabela de Página: Quando DAT melhorada não se aplica, ou quando DAT melhorada se aplica mas o controlo de formato STE, bit 53 da entrada da tabela de segmento, é zero, bits 0-52, com 11 zeros anexados à direita, formam um 58 ΡΕ2229632 endereço de 64-bits que designa o início de uma tabela de página. É imprevisível se o endereço é real ou absoluto.
Endereço Absoluto da Trama de Segmento (SFAA): Quando DAT melhorada se aplica e o controlo de formato STE é um, bits 0-43 da entrada, com 20 zeros anexados à direita, formam o endereço absoluto de 64-bits do segmento.
Controlo de Validade ACCF (AV): Quando a DAT melhorada se aplica e o controlo de formato STE é um, bit 47 é o bit de controlo de acesso e de controlo de validade da proteção da procura (ACCF). Quando o controlo AV é zero, bits 48-52 da entrada da tabela de segmento são ignorados. Quando o controlo AV é um, bits 48-52 são usados como descritos adiante.
Bits de Controlo de Acesso (ACC) : Quando DAT melhorada se aplica, o controlo de formato STE é um, e o controlo AV é um, bits 48-51 da entrada da tabela de segmento contêm os bits de controlo de acesso que podem ser usados para qualquer verificação de acesso controlado por chave que se aplica ao endereço.
Bit de Proteção de procura (F) : Quando DAT melhorada se aplica, o controlo de formato STE é um, e o controlo AV é um, bit 52 da entrada da tabela de segmento contém o bit de proteção de procura que pode ser usado para qualquer verificação de acesso controlado por chave que se aplica ao endereço. 59 ΡΕ2229632
Controlo de Formato STE (FC): Quando DAT melhorada se aplica, bit 53 é o controlo de formato para a entrada da tabela de segmento, como se segue:
Quando o bit FC é zero, bits 0-52 da entrada formam a origem da tabela de página, e o bit 55 é reservado.
Quando o bit FC é um, bits 0-43 da entrada formam o endereço absoluto da trama de segmento, bit 47 é o controlo de validade ACCF, bits 48-51 são os bits de controlo de acesso, bit 52 é o bit de proteção de procura, e bit 55 é a sobreposição da gravação de alteração. Quando DAT melhorada não se aplica, o bit 53 é ignorado.
Bit de Proteção DAT (P) : Bit 54, quando é um, indica que proteção DAT se aplica ao segmento inteiro.
Quando DAT melhorada não se aplica, bit 54 é tratado como sendo OR com o bit de proteção DAT na entrada da tabela de página usada na tradução.
Quando a DAT melhorada se aplica, o bit de proteção DAT em qualquer uma das entradas da tabela de região usadas na tradução é tratado como sendo OR com o bit de proteção DAT na entrada da tabela de segmento; quando o controlo de formato STE é zero, o bit de proteção DAT no STE é adicionalmente tratado como sendo OR com o bit de proteção DAT na entrada da tabela de página. 60 ΡΕ2229632
Sobreposição da Gravação de Alteração (CO): Quando DAT melhorada se aplica, e o controlo de formato STE é um, bit 55 da entrada da tabela de segmento é a sobreposição da gravação de alteração para o segmento. Quando DAT melhorada não se aplica, ou quando DAT melhorada se aplica mas o controlo de formato STE é zero, bit 55 da entrada da tabela de segmento é ignorado.
Bit de Segmento Inválido (I): Bit 58 controla se o segmento associado com a entrada da tabela de segmento está disponível.
Quando o bit é zero, a tradução do endereço prossegue usando a entrada da tabela de segmento.
Quando o bit é um, a entrada da tabela de segmento não pode ser usada para tradução.
Bit de Segmento Comum (C): Bit 59 controla o uso das cópias da buffer lookaside de tradução da entrada da tabela de segmento. Quando DAT melhorada não se aplica ou quando DAT melhorada se aplica mas o controlo de formato é zero, bit 59 também controla o uso das cópias do buffer lookaside de tradução da tabela de página designada pela entrada da tabela de segmento.
Um zero identifica um segmento privado; neste caso, a entrada da tabela de segmento e qualquer tabela de página que este designe pode ser usada apenas em associação 61 ΡΕ2229632 com a origem da tabela de segmento que designa a tabela de segmento em que a entrada da tabela de segmento reside.
Um um identifica um segmento comum; neste caso, a entrada da tabela de segmento e qualquer tabela de página que este designe pode continuar a ser usada para traduzir endereços correspondentes ao índice de segmento, apesar de uma tabela de segmento diferente ser especificada.
Contudo, cópias da buffer lookaside de tradução da entrada da tabela de segmento e qualquer tabela de página para um segmento comum nao são utilizáveis se o controlo do espaço privado, bit 55, é um no ASCE usado na tradução ou se esse ASCE é uma designação do espaço real. 0 bit de segmento comum deve ser zero se a entrada da tabela de segmento é procurada a partir do armazenamento durante uma tradução quando o controlo do espaço privado é um no ASCE que está a ser usado. Caso contrário, é reconhecida uma exceção da especificação da tradução.
Bits do Tipo de Tabela (TT) : Bits 6 0 e 61 da entrada da tabela de segmento são 00 binário para identificar o nível da tabela contendo a entrada. Os significados de todos os valores possíveis dos bits 60 e 61 numa entrada da tabela de região ou entrada da tabela de segmento são como se segue: ΡΕ2229632 62
Bits 60 : 61 Nível da Tabela 11 Primeira região 10 Segunda : região 01 Terceira região 00 Segmento
Bits do Tipo de Tabela 60, 61
Bits 60 e 61 devem identificar o nível da tabela correto, considerando o tipo da designação da tabela que é o ASCE a ser usado na tradução e o número dos níveis da tabela que têm sidos usados até agora; caso contrário, uma exceção da especificação da tradução é reconhecida. Todas as outras posições do bit da entrada da tabela de segmento são reservadas para possíveis extensões futuras e deverão conter zeros; caso contrário, o programa pode não operar de forma compatível no futuro. Quando DAT melhorada se aplica, as posições do bit da entrada da tabela de segmento reservadas deverão conter zeros mesmo que a entrada da tabela seja inválida.
Entradas da Tabela de Página
Num modelo de realização, a entrada procurada a partir da tabela de página tem o formato como ilustrado na Fig. 24.
Campos selecionados na entrada da tabela de página são alocados como se segue: 63 ΡΕ2229632
Endereço Real da Trama de Página (PFRA): Bits 0-51 proporcionam os bits mais à esquerda de um endereço de armazenamento real. Quando estes bits são concatenados com o campo do índice de byte de 12 bits do endereço virtual à direita, é obtido um endereço real de 64-bits.
Bit de Página Inválida (I): Bit 53 controla se a página associada com a entrada da tabela de página está disponível. Quando o bit é zero, tradução de endereço prossegue usando a entrada da tabela de página. Quando o bit é um, a entrada da tabela de página não pode ser usada para tradução.
Bit de Proteção DAT (P) : Bit 54 controla se acessos de armazenamento podem ser realizados na página. Este mecanismo de proteção é adicional aos mecanismos de proteção controlada por chave e proteção de endereço baixo. O bit não tem efeito nos acessos de procura. Se o bit é zero, os armazenamentos são permitidos para a página, sujeitos aos seguintes constrangimentos adicionais: O bit de proteção DAT é zero na entrada da tabela de segmento usada na tradução.
Quando DAT melhorada se aplica, o bit de proteção DAT é zero em todas as entradas da tabela de região usadas na tradução.
Outros mecanismos de proteção — 64 — ΡΕ2229632
Se o bit é um, não são permitidos armazenamentos. Quando não existem nenhumas condições de exceção de prioridade mais elevada, uma tentativa para armazenar quando o bit de proteção DAT é um leva a que uma exceção de proteção seja reconhecida. 0 bit de proteção DAT na entrada da tabela de segmento é tratado como sendo OR com o bit 54 quando determinando se a proteção DAT se aplica à página. Quando DAT melhorada se aplica, o bit de proteção DAT em qualquer entrada da tabela de região usada na tradução é também tratado como sendo OR com bit 54 quando está a determinar se a proteção DAT se aplica.
Sobreposição da Gravação de Alteração (CO) : Quando DAT melhorada nao se aplica, bit 55 da entrada da tabela de página deve conter zero; caso contrário, uma exceção da especificação da tradução é reconhecida como parte da execução de uma instrução usando essa entrada para tradução de endereço. Quando DAT melhorada se aplica e o controlo de formato STE é zero, bit 55 da entrada da tabela de página é a sobreposição da gravação de alteração para a página.
Posição do bit 52 da entrada deve conter zero; caso contrário, uma exceção da especificação da tradução é reconhecida como parte da execução de uma instrução usando essa entrada para tradução de endereço. Posições de bit 56-63 não são atribuídas e são ignoradas.
Outro Modelo de Realização da Tradução Dinâmica 65 ΡΕ2229632
Esta secção descreve o processo de tradução tal como é realizado implicitamente antes de um endereço virtual ser usado para aceder ao armazenamento principal.
Tradução de um endereço virtual é controlada pelo bit de modo DAT e bits de controlo do espaço de endereçamento no program status word e pelo ASCEs nos registos de controlo 1, 7, e 13 e como especificado pelos registos de acesso. Quando o ASCE usado numa tradução é uma designação da tabela de primeira região, a tradução é realizada através de uma tabela de primeira região, tabela de segunda região, tabela de terceira região, tabela de segmento, e tabela de página, sendo que todas elas residem em armazenamento real ou absoluto. Quando o ASCE é um tipo de nivel inferior da designação da tabela (designação da tabela de segunda região, designação da tabela de terceira região, ou designação da tabela de segmento) a tradução é realizada apenas através dos níveis de tabela que começam com o nível designado, e os bits do endereço virtual que irão, se diferentes de zero, necessitar de usar um nível ou níveis da tabela mais elevados devem ser todos zero; caso contrário, uma exceção do tipo ASCE é reconhecida. Quando o ASCE é uma designação do espaço real, o endereço virtual é tratado como um endereço real, e entradas da tabela em armazenamento real ou absoluto não são usadas. 0 ASCE usado para uma tradução de endereço particular é denominado o ASCE eficaz. Em conformidade, quando um endereço virtual primário é traduzido, os 66 ΡΕ2229632 conteúdos do registo de controlo 1 são usados como o ASCE eficaz. Similarmente, para um endereço virtual secundário, os conteúdos do registo de controlo 7 são usados; para um endereço virtual especificado de AR, o ASCE especificado pelo registo de acesso é usado; e para um endereço virtual de inicio, os conteúdos do registo de controlo 13 são usados.
Quando o controlo do espaço real no ASCE eficaz é zero, o tipo de designação no ASCE especifica o tipo de designação de tabela: tabela de primeira região tabela de segunda região, tabela de terceira região, ou tabela de segmento. A porção do endereço virtual correspondente (í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 do comprimento da tabela na designação, e é adicionada à origem na designação para selecionar uma entrada na tabela designada. Se a entrada selecionada está fora da sua tabela, como determinado pelo campo de comprimento da tabela na designação, ou se o bit I é um na entrada selecionada, é reconhecida uma exceção numa tradução da primeira região, tradução da segunda região, tradução da terceira região, ou tradução de segmento, dependendo do nível de tabela especificado pela designação. Se os bits do tipo de tabela na entrada selecionada não indicarem o nível da tabela esperado, uma exceção da especificação da tradução é reconhecida. A entrada da tabela selecionada através do ASCE eficaz designa a próxima tabela de nível inferior a ser 67 ΡΕ2229632 usada. Se a tabela atual é uma tabela de primeira região, tabela de segunda região, ou tabela de terceira região, a próxima porção do endereço virtual (índice de segunda região, índice de terceira região, ou índice de segmento, respetivamente) é verificada em relação ao desvio de tabela e campos de comprimento da tabela na entrada da tabela atual, e é adicionada à origem na entrada para selecionar uma entrada na próxima tabela de nível inferior. Se a entrada selecionada na próxima tabela está fora da sua tabela, tal como determinado pelo desvio de tabela e campos de comprimento da tabela na entrada da tabela atual, ou se o bit I é um na entrada selecionada, uma tradução da segunda região, tradução da terceira região, ou exceção da tradução de segmento é reconhecida, dependendo no nível da próxima tabela. Se os bits do tipo de tabela na entrada selecionada não indicarem o nível da tabela esperada, uma exceção da especificação da tradução é reconhecida.
Processamento das porções do endereço virtual através de níveis da tabela sucessivos continua até uma entrada da tabela de segmento ter sido selecionada. A entrada da tabela de segmento contém um bit de proteção da página que se aplica a todas páginas no segmento especificado. A porção do índice de página do endereço virtual é adicionada à origem da tabela de página na entrada da tabela de segmento para selecionar uma entrada na tabela de página. Se o bit I é um na entrada da tabela de página, uma 68 ΡΕ2229632 exceção da tradução da página é reconhecida. A entrada da tabela de página contém os bits mais à esquerda do endereço real que representam a tradução do endereço virtual, e contêm um bit de proteção da página que se aplica apenas à página especificada pela entrada da tabela de página. 0 campo de índice do byte do endereço virtual é usado inalterado como as posições do bit mais à direita do endereço real.
De forma a eliminar o atraso associado às referências às tabelas de tradução em armazenamento real ou absoluto, a informação procurada a partir das tabelas normalmente é também colocada num buffer especial, a buffer lookaside de tradução, e traduções subsequentes envolvendo as mesmas entradas da tabela podem ser realizadas utilizando a informação registada no buffer lookaside de tradução. 0 buffer lookaside de tradução também pode registar traduções virtuais iguais a reais relacionadas com uma designação do espaço real.
Sempre que é realizado acesso a armazenamento real ou absoluto durante o processo de tradução de endereço com o propósito de procurar uma entrada de uma tabela de região, tabela de segmento, ou tabela de página, a proteção controlada da chave não se aplica.
Pesquisa numa Tabela Designada por um ASCE 69 ΡΕ2229632 0 controlo DT, bits 60-61 do ASCE eficaz, especifica ambos os tipos de designação de tabela do ASCE e a porção do endereço virtual que é para ser traduzida através da tabela designada, como se segue:
Bits Tipo de Porção de Endereço Virtual Traduzida 60 e Designação pela Tabela 61 11 Tabela de índice de primeira região (bits 0-10) primeira região 10 Tabela de índice de segunda região (bits 11-21) segunda região 01 Tabela da índice de terceira região (bits 22-32) terceira região 00 Tabela de índice de segmento (bits 33-43) segmento
Tradução através da Tabela Designada
Quando os bits 60 e 61 têm o valor 11 binário, a porção do índice de primeira região do endereço virtual, no conjunto com a origem da tabela de primeira região contida no ASCE, é usada para selecionar uma entrada a partir da tabela de primeira região. O endereço de 64-bits da entrada da tabela de primeira região em armazenamento real ou 70 ΡΕ2229632 absoluto é obtido através da anexação de 12 zeros à direita dos bits 0-51 da designação da tabela de primeira região e adicionando ao índice de primeira região os três zeros anexados mais à direita e 50 mais à esquerda. Como parte da processo de pesquisa da tabela de primeira região, bits 0 e 1 do endereço virtual (que são bits 0 e 1 do índice de primeira região) são comparados em relação ao comprimento da tabela, bits 62 e 63 da designação da tabela de primeira região, para estabelecer se a entrada endereçada está dentro da tabela de primeira região. Se o valor no campo do comprimento da tabela é menor do que o valor nas posições correspondentes do bit do endereço virtual, uma exceção da tradução da primeira região é reconhecida. A comparação em relação ao comprimento da tabela pode ser omissa se o equivalente de uma entrada da tabela de primeira região na buffer lookaside de tradução é usado na tradução. A entrada procurada a partir da tabela de primeira região designa o início e especifica o desvio e comprimento da correspondente tabela de segunda região.
Quando bits 60 e 61 do ASCE têm o valor 10 binário, a porção do índice de segunda região do endereço virtual, em conjunto com a origem da tabela de segunda região contida no ASCE, é usada para selecionar uma entrada a partir da tabela de segunda região. Bits 11 e 12 do endereço virtual (que são bits 0 e 1 do índice de segunda região) são comparados em relação ao comprimento da tabela no ASCE. Se o valor no campo do comprimento da tabela é menor do que o valor nas posições correspondentes do bit do 71 ΡΕ2229632 endereço virtual, uma exceção da tradução da segunda região é reconhecida. A comparação com o comprimento da tabela pode ser omissa se o equivalente a uma entrada da tabela de segunda região no buffer lookaside de tradução for usado na tradução. Caso contrário o processo pesquisa da tabela de segunda região é o mesmo que o processo de pesquisa da tabela de primeira região; a entrada procurada a partir da região da tabela de segunda designa o inicio e especifica o desvio e comprimento da tabela de terceira região correspondente.
Quando bits 60 e 61 do ASCE têm o valor 01 binário, a porção do indice de terceira região do endereço virtual, em conjunto com a origem da tabela de terceira região contida no ASCE, é usada para selecionar uma entrada a partir da tabela de terceira região. Bits 22 e 23 do endereço virtual (que são bits 0 e 1 do indice de terceira região) são comparados com o comprimento da tabela no ASCE. Se o valor no campo do comprimento da tabela é menor do que o valor nas posições correspondentes do bit do endereço virtual, uma exceção da tradução da terceira região é reconhecida. Caso contrário o processo de pesquisa da tabela de terceira região é o mesmo que o processo de pesquisa da tabela de primeira região, incluindo a verificação dos bits do tipo de tabela na entrada da tabela de terceira região. A entrada procurada a partir da tabela de terceira região designa o inicio e especifica o desvio e comprimento da correspondente tabela de segmento. 72 ΡΕ2229632
Quando bits 60 e 61 do ASCE possuem o valor 00 binário, a porção do indice de segmento do endereço virtual, em conjunto com a origem da tabela de segmento contida no ASCE, é usada para selecionar uma entrada a partir da tabela de segmento. Bits 33 e 34 do endereço virtual (que são bits 0 e 1 do indice de segmento) são comparados em relação ao comprimento da tabela no ASCE. Se o valor na campo do comprimento da tabela for menos do que o valor nas posições correspondentes do bit do endereço virtual, uma exceção da tradução de segmento é reconhecida. A comparação em relação ao comprimento da tabela pode ser omissa se o equivalente a uma entrada da tabela de segmento no buffer lookaside de tradução for usado na tradução. O processo de pesquisa de tabela de segmento é caso contrário o mesmo que o processo de pesquisa da tabela de primeira região, incluindo a verificação dos bits do tipo de tabela na entrada da tabela de segmento. O processo é como se segue:
Quando DAT melhorada não se aplica, ou quando DAT melhorada se aplica mas o controlo de formato STE é zero, a entrada procurada a partir da tabela de segmento designa o inicio da tabela de página correspondente, e o processo continua como descrito na " Pesquisa da Tabela de Página", adiante.
Quando DAT melhorada se aplica e o controlo de formato STE é um, a entrada procurada a partir da tabela de segmento contém os bits mais à esquerda do endereço 73 ΡΕ2229632 absoluto da trama de segmento. Se o bit de proteção DAT é um qualquer de qualquer uma das entradas da tabela de região usadas na tradução ou na entrada da tabela de segmento, e a referência de armazenamento para a qual a tradução está a ser realizada é um armazenamento, uma exceção de proteção é reconhecida.
Pesquisa numa Tabela Designada por uma Entrada da Tabela de Região
Quando o ASCE eficaz é uma designação da tabela de região, uma entrada da tabela de região é selecionada como descrito na secção anterior. Então os conteúdos da entrada selecionada e a próxima porção de índice do endereço virtual são usados para selecionar uma entrada na próxima tabela de nível inferior, que pode ser outra tabela de região ou uma tabela de segmento. Quando a entrada da tabela selecionada através do ASCE é uma entrada da tabela de primeira região, a porção do índice de segunda região do endereço virtual, em conjunto com a origem da tabela de segunda região contida na entrada da tabela de primeira região, é usada para selecionar uma entrada a partir da tabela de segunda região. 0 endereço de 64-bits da entrada da tabela de segunda região em armazenamento real ou absoluto é obtido anexando 12 zeros à direita dos bits 0-51 da entrada da tabela de primeira região e adicionando ao índice de segunda região três zeros mais à direita e 50 zeros mais à esquerda. 74 ΡΕ2229632
Quando se forma o endereço de uma entrada da tabela de segunda região, de terceira região, ou de segmento, é imprevisível se a prefixação, se existir alguma, é aplicada à origem da tabela respetiva contida na entrada da tabela de nivel mais elevado antes da adição do valor do índice da tabela, ou se a prefixação é aplicada ao endereço da entrada da tabela que é formado pela adição da origem da tabela e valor do índice da tabela.
Como parte do processo de pesquisa da tabela de segunda região, bits 11 e 12 do endereço virtual (que são bits 0 e 1 do índice de segunda região) são comparados com o desvio de tabela, bits 56 e 57 da entrada da tabela de primeira região, e com o comprimento da tabela, bits 62 e 63 da entrada da tabela de primeira região, para estabelecer se a entrada do endereço está dentro da tabela de segunda região. Se o valor no campo de desvio da tabela for maior do que o valor nas posições do bit correspondente do endereço virtual, ou se o valor no campo do comprimento da tabela é menor do que o valor nas posições do bit correspondente do endereço virtual, uma exceção da tradução da segunda região é reconhecida. A tabela de segunda região designa o início e especifica o desvio e comprimento da tabela de terceira região correspondente.
Quando a entrada da tabela selecionada através do ASCE é uma entrada da tabela de segunda região, ou se 75 ΡΕ2229632 uma entrada da tabela de segunda região foi selecionada através dos conteúdos de uma entrada da tabela de primeira região, a porção do índice de terceira região do endereço virtual, em conjunto com a origem da tabela de terceira região contida na entrada da tabela de segunda região, é usada para selecionar uma entrada a partir da tabela de terceira região. Bits 22 e 23 do endereço virtual (que são bits 0 e 1 do índice de terceira região) são comparados com o desvio da tabela e comprimento da tabela na entrada da tabela de segunda região. Uma exceção da tradução da terceira região é reconhecida se o desvio da tabela for maior que os bits 22 e 23 ou se o comprimento da tabela for menor do que bits 22 e 23. Caso contrário o processo de pesquisa da tabela de terceira região é o mesmo que o processo de pesquisa da tabela de segunda região. A entrada procurada a partir da tabela de terceira região designa o início e especifica o desvio e comprimento da tabela de segmento correspondente.
Quando a entrada da tabela selecionada através do ASCE é uma entrada da tabela de terceira região, ou se uma entrada da tabela de terceira região foi selecionada através dos conteúdos de uma entrada da tabela de segunda região, a porção do índice de segmento do endereço virtual, em conjunto com a origem da tabela de segmento contida na entrada da tabela de terceira região, é usada para selecionar uma entrada a partir da tabela de segmento. Bits 33 e 34 do endereço virtual (que são bits 0 e 1 do índice de segmento) são comparados em relação ao desvio de tabela 76 ΡΕ2229632 e comprimento da tabela na entrada da tabela de terceira região. Uma exceção da tradução de segmento é reconhecida se o desvio de tabela for maior do que os bits 33 e 34 ou se o comprimento da tabela for menor do que os bits 33 e 34. Uma exceção da especificação da tradução é reconhecida se (1) o controlo do espaço privado, bit 55, no ASCE é um e (2) o bit de segmento comum, bit 59, na entrada procurada a partir da tabela de segmento é um. Caso contrário o processo de pesquisa da tabela de segmento é o mesmo que o processo de pesquisa da tabela de segunda regiã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 procurada a partir da tabela de segmento designa o inicio da tabela de página correspondente, e o processamento continua tal como descrito em "Pesquisa da Tabela de Página", adiante.
Quando a DAT melhorada se aplica e o controlo de formato STE é um, a entrada procurada a partir da tabela de segmento contém os bits mais à esquerda do endereço absoluto da trama de segmento. Se o bit de proteção DAT é um seja em qualquer entrada da tabela de região usada na tradução seja na entrada da tabela de segmento, e a referência de armazenamento para a qual a tradução está a ser realizada é um armazenamento, uma exceção de proteção é reconhecida. 77 ΡΕ2229632
Pesquisa da Tabela de Página
Quando DAT melhorada não se aplica, ou quando DAT melhorada se aplica mas o controlo de formato STE é zero, a porção do índice de página do endereço virtual, em conjunto com a origem da tabela de página contida na entrada da tabela de segmento, é usada para selecionar uma entrada da tabela de página. 0 endereço de 64-bits da entrada da tabela de página em armazenamento real ou absoluto é obtido anexando 11 zeros à direita da origem da tabela de página e adicionando ao índice de página, três zeros mais à direita e 53 zeros mais à esquerda. Não pode ocorrer uma execução da posição do bit 0. A entrada procurada a partir da tabela de página indica a disponibilidade da página e contém os bits mais à esquerda do endereço real da trama da página. O bit de página inválida, bit 53, é inspecionado para estabelecer se a página correspondente está disponível. Se este bit é um, uma exceção da tradução da página é reconhecida. Se posição do bit 52 contém um um, uma exceção da especificação da tradução é reconhecida. Quando DAT melhorada não se aplica, ou DAT melhorada se aplica e o controlo de formato STE é zero, uma exceção da especificação da tradução é também reconhecida se a posição do bit 55 contiver um um. Se o bit de proteção DAT é um quer na entrada da tabela de segmento usada na tradução, quer na entrada da tabela de página, ou, 78 ΡΕ2229632 quer quando DAT melhorada se aplica, em qualquer entrada da tabela de região usada durante a tradução, e a referência de armazenamento para a qual a tradução está a ser realizada é um armazenamento, uma exceção de proteção é reconhecida.
Formação do Endereço Real e Absoluto
Quando o ASCE eficaz é uma designação do espaço real, bits 0-63 do endereço virtual são usados diretamente 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 eficaz não é uma designação do espaço real e não são encontradas exceções no processo de tradução, aplicam-se as seguintes condições:
Quando a DAT melhorada não se aplica, ou quando DAT melhorada se aplica mas o controlo de formato STE é zero, o endereço real da trama da página é obtido a partir da entrada da tabela de página. O endereço real da trama da página e a porção do índice de byte do endereço virtual são concatenados, sendo que o endereço real da trama da página forma a parte mais à esquerda. O resultado é o endereço de armazenamento real que corresponde ao endereço virtual. O endereço real pode ser adicionalmente sujeito a prefixação para formar um endereço absoluto.
Quando DAT melhorada se aplica e o controlo de formato STE é um, o endereço absoluto da trama de segmento 79 ΡΕ2229632 e porções do índice de página e do índice de byte do endereço virtual são concatenados, da esquerda para direita, respetivamente, para formar o endereço absoluto que corresponde ao endereço virtual.
Reconhecimento das Exceções durante a Tradução
Endereços inválidos e formatos inválidos podem levar a que sejam reconhecidas exceções durante o processo de tradução. Exceções são reconhecidas quando informação contida nas entradas da tabela é usada para tradução e é considerada incorreta. É agora feita referência à FIG. 6 que ilustra um diagrama de fluxo de um modelo de realização da tradução de endereço dinâmico até ao ponto de obter um campo de controlo de formato a partir de uma entrada da tabela de segmento.
No 602, é obtido um endereço virtual para ser traduzido. No 604, é obtido o endereço de origem da tabela de tradução mais elevada usada na tradução do endereço virtual. O endereço de origem da primeira tabela de tradução usada na tradução depende dos bits ASCE e DT. No 606, uma porção do endereço virtual é usada para referenciar a entrada da tabela apropriada na tabela de tradução. Se, no 608, a entrada procurada a partir da tabela de tradução não é uma entrada da tabela de segmento então a tabela de segmento na hierarquia das tabelas de 80 ΡΕ2229632 tradução ainda não foi referenciada. Neste caso, no 610, a origem de uma próxima tabela de nivel inferior na hierarquia das tabelas de tradução é obtida a partir da entrada da tabela. A porção apropriada do endereço virtual é usada para fazer referência à entrada da tabela correspondente na próxima tabela inferior usada na tradução.
Por exemplo, se o endereço de origem da tabela da primeira tabela de tradução a ser usado na tradução é uma tabela de primeira região então a porção RFX do endereço virtual é usada para referenciar uma entrada da tabela de primeira região com a tabela de primeira região. Se o endereço de origem da tabela é para uma tabela de segunda região então a porção RSX do endereço virtual é usada para referenciar uma entrada da tabela de segunda região dentro da tabela de segunda região. Se o endereço de origem da tabela é para uma tabela de terceira região então a porção RTX do endereço virtual é usada para referenciar uma entrada da tabela de terceira região dentro da tabela de terceira região. Se o endereço de origem da tabela é para uma tabela de segmento então a porção SX do endereço virtual é usada para referenciar uma entrada da tabela de segmento dentro da tabela de segmento. Tabelas sucessivas são referenciadas até a entrada da tabela de segmento ter sido procurada.
Uma vez que a entrada da tabela de segmento tenha sido procurada, o bit de controlo de formato da 81 ΡΕ2229632 entrada da tabela de segmento (STE) é examinado, no 612, para determinar se o controlo de formato está ativado para este endereço virtual em particular. Se o controlo de formato STE é zero então a tradução de endereço dinâmico ocorre em relação ao nó 614. Se o controlo de formato STE é um então a tradução de endereço dinâmico ocorre em relação ao nó 616.
Tradução de Endereço Dinâmico (Controlo de Formato STE é zero) É agora feita referência à FIG. 7 que ilustra uma continuação do diagrama de fluxo a partir do nó 614 da FIG. 6 quando o controlo de formato STE é zero.
No 710, um endereço de origem para uma tabela de página é obtido a partir da entrada da tabela de segmento. No 712, uma porção PX do endereço virtual é usada para referenciar uma entrada da tabela de página na tabela de página. No 714, um endereço real da trama da página (PFRA) é obtido a partir da entrada da tabela de página. Um bit Inválido (I) é obtido a partir da entrada da tabela de página. Se, no 716, o bit Inválido (I) é um então, no 718, a tradução do endereço virtual não pode continuar usando esta entrada da tabela de página porque a entrada foi marcada como sendo inválida. Tradução adicional do endereço virtual usando esta entrada da tabela de página para 722. Se, no 716, o bit Inválido (I) é zero então, no 720, o endereço real da trama da página (PFRA) é combinado com uma 82 ΡΕ2229632 porção BX do endereço virtual para gerar um endereço real. 0 endereço real pode ser adicionalmente sujeito a uma operação de prefixação para formar um endereço absoluto. No 724, o endereço real é usado para aceder um bloco de dados endereçado pelo endereço virtual traduzido.
Tradução de Endereço Dinâmico (Controlo de Formato STE é um) É agora feita referência à FIG. 8 que ilustra uma continuação do diagrama de fluxo a partir do nó 616 da FIG. 6.
No 810, um endereço absoluto da trama de segmento (SFAA) é obtido a partir de uma porção da entrada da tabela de segmento. Um bit inválido (I) é obtido a partir da entrada da tabela de segmento. Se, no 812, o bit inválido (I) é um então, no 814, tradução adicional do endereço virtual não pode prosseguir usando a entrada da tabela de segmento porque foi marcada como sendo inválida. Num modelo de realização, um código de exceção é devolvido à entidade programa pedindo tradução. Tradução adicional deste endereço virtual usando esta entrada da tabela de segmento para 818.
Se, no 812, o bit inválido (I) é zero então, no 816, o endereço absoluto da trama de segmento (SFAA) é combinado com porções PX e BX do endereço virtual para gerar um endereço absoluto para um grande bloco de dados pretendido no armazenamento principal ou na memória. No 83 ΡΕ2229632 820, é acedido o grande bloco de dados pretendido endereçado pelo endereço virtual traduzido. A cada entrada da tabela, o bit inválido é examinado para determinar a validade da entrada da tabela obtida. Outros mecanismos de proteção de tradução que protegem o bloco de dados endereçado pelo endereço virtual traduzido são aqui discutidos adicionalmente.
Num outro modelo de realização, informação restrita é obtida a partir da entrada da tabela de tradução. A informação restrita é usada para restringir o acesso a uma porção restrita da gama de endereço virtual. O acesso ao grande bloco de dados pretendido endereçado pelo endereço traduzido é consequentemente permitido apenas à porção restrita da gama de endereço. A informação restrita é qualquer uma de um desvio de tabela ou de um comprimento de tabela.
Ainda num outro modelo de realização, informação usada na tradução do endereço virtual é armazenada em pelo menos um buffer lookaside de tradução. Uma tradução posterior de um endereço virtual posterior para um endereço absoluto do bloco de dados no armazenamento principal é realizada usando a informação armazenada a partir do buffer lookaside de tradução em vez da hierarquia das tabelas de tradução.
Ainda num outro modelo de realização, se a 84 ΡΕ2229632 tradução não é nativa para a arquitetura da máquina, uma rotina de software pré-determinada é identificada por emular a tradução. A rotina de software pré-determinada contém uma pluralidade de instruções. A rotina de software pré-determinada é executada.
Proteção do Bloco de Dados Endereçado
Uma vez que endereço virtual tenha sido traduzido usando a instalação da DAT melhorada, como aqui descrito, o bloco de dados pretendido no armazenamento principal ou memória endereçada pelo endereço virtual traduzido pode ser sujeito ao mecanismo de proteção adicional.
Proteção DAT A função de proteção de DAT controla o acesso ao armazenamento virtual usando o bit de proteção DAT em cada entrada da tabela de página e entrada da tabela de segmento, e, quando a instalação de DAT melhorada está instalada, em cada entrada da tabela de região. Proporciona proteção em relação a armazenamento impróprio. 0 bit de proteção DAT (bit 54) da entrada da tabela de página controla se o armazenamento é permitido para a página de 4 Kilobytes correspondente. Quando o bit é zero, são permitidos quer procura quer armazenamento; quando o bit é um, apenas é permitida procura. Quando é feita uma tentativa para armazenar numa página protegida, 85 ΡΕ2229632 os conteúdos da página mantêm-se inalterados, a unidade de operação ou a execução da instrução é suprimida, e ocorre uma interrupção de programa para proteção. 0 bit de proteção DAT (bit 54) entrada da tabela de segmento controla se é permitido armazenar no segmento de 1 Megabyte correspondente, como se segue:
Quando DAT melhorada não se aplica, ou quando DAT melhorada se aplica e o controlo de formato STE é zero, o bit de proteção DAT da entrada da tabela de segmento é tratado como sendo OR para a posição do bit de proteção DAT de cada entrada na tabela de página designada pela entrada da tabela de segmento. Assim, quando o bit de proteção DAT da entrada da tabela de segmento é um, o efeito é como se o bit de proteção DAT fosse um em cada entrada na tabela de página designada.
Quando DAT melhorada se aplica e o controlo de formato STE é um, o bit de proteção DAT da entrada da tabela de segmento controla se é permitido armazenar para o segmento de 1 Megabyte correspondente. Quando o bit é zero, tanto é permitido procurar como armazenar; quando o bit é um, é permitido apenas procurar. Quando é feita uma tentativa para armazenar num segmento protegido, os conteúdos do segmento mantêm-se inalterados, a unidade de operação ou a execução da instrução são suprimidas, e acorre uma interrupção de programa para proteção. 86 ΡΕ2229632
Quando DAT melhorada se aplica, o bit de proteção DAT da entrada da tabela de região, controla se é permitido armazenar na(s) região(ões) correspondente(s) . 0 bit de proteção DAT numa entrada da tabela de região é tratado como sendo OR para as posições do bit de proteção DAT de qualquer entrada da tabela de região posterior e entrada da tabela de segmento que seja usada na tradução. Quando o bit de controlo de formato STE é zero, o bit de proteção DAT é ainda propagado até à entrada da tabela de página.
Proteção DAT aplica-se a todas referências tipo armazenamento que usam um endereço virtual. É agora feita referência à FIG. 9 que ilustra um diagrama de fluxo de um modelo de realização para obter o bit de proteção DAT a partir da entrada da tabela de segmento usada na tradução.
No 902, é obtido um endereço virtual para ser traduzido. No 904, a origem de uma primeira tabela de tradução usada na tradução do endereço virtual é obtida. No 906, uma porção do endereço virtual é usada para referenciar uma entrada numa tabela de tradução num modo previamente discutido. No 908, um endereço real ou absoluto é gerado quer a partir do endereço absoluto da trama de segmento (SFAA) obtido quer a partir do endereço real da trama da página (PFRA). 87 ΡΕ2229632
No 910, um bit de proteção (P) DAT é obtido a partir de cada entrada das tabelas de tradução usadas na tradução do endereço virtual. Deve ser entendido que o nivel eficaz de proteção DAT é o OR lógico de múltiplos bits P obtidos a partir de cada uma das entradas da tabela usadas na tradução. No 912, o bit de proteção DAT é examinado para determinar se o bloco de dados endereçado pelo endereço virtual traduzido é protegido com DAT. Se, no 912, o bit de proteção (P) DAT é zero então, no 914, operações de armazenamento são permitidas ao bloco de dados endereçado pelo endereço virtual traduzido. Se, no 912, o bit de proteção (P) DAT é um então, no 916, operações de armazenamento são evitadas ao bloco de dados endereçado pelo endereço virtual traduzido. Em alternativa, um nivel de proteção indicado pelo campo de proteção DAT é aplicado a todas as referências tipo armazenamento que usam o endereço virtual. Se o campo de proteção DAT está ativado então uma condição de exceção de proteção é indicada se é tentado um armazenamento pelo bloco de dados pretendido endereçado pelo endereço virtual traduzido. 88 ΡΕ2229632
Proteção Controlada por Chave
Quando proteção controlada por chave se aplica a um acesso de armazenamento, um armazenamento é permitido apenas quando a chave de armazenamento corresponde à chave de acesso associada ao pedido para acesso de armazenamento; é permitida uma procura quando as chaves correspondem ou quando o bit de proteção de procura da chave de armazenamento é zero. Considera-se que as chaves correspondem 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 ação de proteção é resumida como se segue.
Condiçoes É Permitido o Acesso ao Armazenamento Proteção da Procura Bit de Chave de Armazenamento Relaçao das Chave Procura Armazenamento 0 Correspondência Sim Sim 0 Sem Sim Não Correspondência 1 Correspondência Sim Sim 1 Sem Não Não Correspondência 89 ΡΕ2229632
Explicação: Os quatro bits de controlo de acesso da Correspondência chave de armazenamento são iguais à chave de acesso, ou a chave de acesso é zero. Sim Acesso é permitido. Não Acesso não é permitido. Na procura, a informação se torna disponível para o programa; no armazenamento, os conteúdos da localização de armazenamento não são alterados.
Sumário da Ação de Proteção
Quando o acesso ao armazenamento é iniciado pelo CPU e se aplica a proteção controlada por chave, a Chave PSW é a chave de acesso, exceto se a chave de acesso é especificada num registo geral para o primeiro operando de MOVE TO SECONDARY e MOVE WITH DESTINATION KEY, para o segundo operando de MOVE TO PRIMARY, MOVE WITH KEY, e MOVE WITH SOURCE KEY, e quer para o primeiro quer para o segundo operando de MOVE PAGE. A Chave PSW ocupa posições do bit 8-11 do atual program status word.
Quando um acesso CPU é proibido por causa da proteção controlada por chave, a execução da instrução é terminada, e acontece uma interrupção de programa para uma 90 ΡΕ2229632 exceção de proteção. Contudo, a unidade de operação ou a execução da instrução podem ser suprimidas.
Chaves de Armazenamento
Uma chave de armazenamento está associada a cada bloco de 4 Kilobytes de armazenamento que está disponível na configuração. Chaves de armazenamento não são parte de armazenamento endereçável. Num modelo de realização, a chave de armazenamento tem o formato ilustrado pela Fig. 25.
As posições do bit na chave de armazenamento sao alocadas como se segue:
Bits de Controlo de Acesso (ACC) : Se uma referência está sujeita à proteçã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 é procurada a partir de uma localização que está protegida contra a procura.
Bit de Proteção de Procura (F) : Se uma referência é sujeita à proteção controlada por chave, o bit de proteção de procura controla se a proteção controlada por chave se aplica às referências tipo procura: um zero indica que apenas referências do tipo armazenamento são monitorizadas e que é permitido procurar com qualquer chave 91 ΡΕ2229632 de acesso; um um indica que proteção controlada por chave se aplica quer a procura quer a armazenamento.
Bit de Referência (R): 0 bit de referência normalmente é definido como um de cada vez que uma localização no bloco de armazenamento correspondente é referenciada quer para armazenamento quer para procura da informação.
Bit de Alteração (C): 0 bit de alteração é definido como um de cada vez que a informação é armazenada numa localização no bloco de armazenamento correspondente.
Quando DAT melhorada se aplica, as seguintes condições adicionais estão em vigor:
Quando o controlo de formato STE (FC, bit 53 da entrada da tabela de segmento usada durante uma tradução) é zero, bit 55 da entrada da tabela de página usada durante tradução é a sobreposição da gravação de alteração (CO) para a página. Quando o bit CO na entrada da tabela de página é um, alterar a gravação é imprevisível para quaisquer operações de armazenamento para a página.
Quando o bit de controlo de formato (FC) na entrada da tabela de segmento é um, aplica-se o seguinte:
Posição do bit 47 da entrada da tabela de segmento contém o controlo de validade ACCF. 0 controlo de 92 ΡΕ2229632 validade ACCF determina a validade do controlo de acesso e bits de proteção de procura na STE. Quando o controlo de validade ACCF é zero, proteção controlada por chave usa o controlo de acesso e bits de proteção de procura na chave de armazenamento para o bloco de 4 Kbytes que corresponde ao endereço.
Quando o controlo de validade ACCF é um, posições do bit 48-52 da entrada da tabela de segmento contêm os bits de controlo de acesso e o bit de proteção de procura para o segmento. Quando se determina a acessibilidade para um operando de armazenamento, é imprevisível se os bits 48-52 da STE ou se bits 0-4 das chaves de armazenamento individuais para os blocos de 4 Kbytes que compõem o segmento são examinados.
Bit 55 da entrada da tabela de segmento é a sobreposição da gravação de alteração (CO) para o segmento. Quando o bit CO na entrada da tabela de segmento é um, é imprevisível se o bit de alteração é definido para quaisquer operações de armazenamento para o segmento.
Acessos à Chave de Armazenamento
Referências à chave de armazenamento são tratadas como se segue:
Sempre que é feita uma referência a armazenamento e a proteção controlada por chave se aplica à 93 ΡΕ2229632 referência, os quatro bits de controlo de acesso e o bit de proteção de procura associado à localização de armazenamento são simultaneamente inspecionadas e simultaneamente com a referência à localização de armazenamento. Quando (1) DAT melhorada não se aplica, (2) DAT melhorada aplica-se mas o armazenamento é acedido através de uma entrada da tabela de segmento em que o controlo de formato STE é zero, ou (3) DAT melhorada aplica-se, o armazenamento é acedido através de uma entrada da tabela de segmento em que o controlo de formato STE é um, mas o controlo de validade ACCF é zero, os bits de controlo de acesso e o bit de proteção de procura estão nos bits 0-4 da chave de armazenamento para o bloco de 4 Kbytes. Quando DAT melhorada se aplica e o armazenamento é acedido através de uma entrada da tabela de segmento em que tanto o controlo de formato STE como o controlo de validade ACCF são um, é imprevisível se os bits 0-4 da chave de armazenamento ou os bits 48-52 da entrada da tabela de segmento proporcionam os bits de controlo de acesso e bit de proteção de procura. Adicionalmente, quando a entrada da tabela de segmento proporciona os bits de controlo de acesso e bit de proteção de procura, pode ser usada uma cópia do buffer do buffer lookaside de tradução.
Quando DAT melhorada se aplica, e quer (a) o controlo de formato STE é zero, e a sobreposição da gravação de alteração é um na entrada da tabela de página usada pela DAT, ou (b) o controlo de formato STE é um, e a sobreposição da gravação de alteração é um na entrada da 94 ΡΕ2229632 tabela de segmento usada pela DAT, é imprevisível saber se o CPU define o bit de alteração quando realiza uma operação de armazenamento. A sobreposição da gravação de alteração pode ir para o buffer na cópia do buffer lookaside de tradução da PTE ou STE.
Quando a característica do SSKE condicional não está instalada, a instrução SET STORAGE KEY EXTENDED faz com que todos os sete bits sejam definidos simultaneamente na chave de armazenamento. Quando a característica do SSKE condicional está instalada, a instrução SET STORAGE KEY EXTENDED pode ser usada para definir tudo ou porções da chave de armazenamento com base no critério especificado no programa. A instrução INSERT STORAGE KEY EXTENDED proporciona uma imagem consistente de bits 0-6 da chave de armazenamento para um bloco de 4 Kbytes. De igual forma, as instruções INSERT VIRTUAL STORAGE KEY e TEST PROTECTION proporcionam uma imagem consistente dos bits de controlo de acesso e do bit de proteção de procura. A instrução RESET REFERENCE BIT EXTENDED modifica apenas o bit de referência. Todos os outros bits da chave de armazenamento mantêm-se inalterados. O bit de referência e bit de alteração são examinados simultaneamente para definir o código de condição. O registo de referências proporcionadas pelo bit 95 ΡΕ2229632 de referência não é necessariamente preciso. Contudo, 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 nenhum armazenamento tenha ocorrido.
Como observado por outros CPUs, a chave de armazenamento procura e armazena devido às 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 referências de operando de armazenamento como se os acessos de chave de armazenamento fossem eles próprios procuras e armazenamentos de operando de armazenamento, respetivamente.
Controlo de Acesso e Proteção de Procura (ACC/F)
Um bloco de dados no armazenamento principal ou memória pode ser adicionalmente protegido através de bit de controlo de acesso e bit de proteção de procura proporcionados na entrada da tabela de segmento.
Validade de Acesso (AV) e Controlo de Acesso (ACC) É agora feita referência à FIG. 10 que ilustra um modelo de realização de um diagrama de fluxo que determina a proteção do controlo de acesso a ser aplicada a 96 ΡΕ2229632 um bloco de dados pretendido endereçado pelo endereço virtual traduzido.
Tradução de endereço dinâmico prossegue até ao ponto em que uma entrada da tabela de segmento foi procurada a partir de uma tabela de segmento usada na tradução tal como descrito na Fig. 6 até ao nó 616. Tradução de endereço continua tal como descrito na Fig. 8 até ao nó 822 até que é obtido um endereço absoluto para um bloco de dados pretendido em armazenamento ou memória. 0 fluxo da FIG. 10 começa no nó 822.
No 1002, um campo da validade de acesso (AV) é obtido a partir da entrada da tabela de segmento. No 1004, é feita uma determinação se o campo de validade de acesso na entrada da tabela de segmento estiver ativado (AV=1). Se o campo de validade de acesso é zero então o campo de controlo de acesso (ACC) na entrada da tabela de segmento não é válido. No 1006, os bits do campo de controlo de acesso são ignorados. Se o campo de validade de acesso está ativado, então o campo de controlo de acesso é válido. No 1008, os bits do campo de controlo de acesso são obtidos a partir da entrada da tabela de segmento. No 1010, o nível da proteção do controlo de acesso indicado pelo campo ACC na entrada da tabela de segmento é aplicado ao bloco de dados pretendido endereçado pelo endereço virtual traduzido.
Num outro modelo de realizaçao, operações de 97 ΡΕ2229632 armazenamento para o bloco de dados pretendido são permitidas apenas se o campo de controlo de acesso corresponder a uma chave de acesso proporcionada por uma entidade programa tal como um Program Status Word ou um operando de uma instrução de programa a ser executada. Uma exceção de proteção é preferencialmente indicada se for tentado um armazenamento no bloco de dados pretendido e o campo de controlo de acesso não faz correspondência com a chave de acesso.
Ainda num outro modelo de realização, se o campo de validade de acesso está ativado, é indicada uma exceção de proteção se uma operação de procura ou uma operação de armazenamento forem tentadas no bloco de memória pretendido e o campo de controlo de acesso do segmento não fizer correspondência com o campo de controlo de acesso do programa.
Validade de Acesso (AV) e Proteção de Procura (F) É agora feita referência à FIG. 11 que ilustra um modelo de realização de um diagrama de fluxo que determina a proteção de procura a ser aplicada a um bloco de dados pretendido endereçado pelo endereço virtual traduzido.
Tradução de endereço dinâmico prossegue até ao ponto em que uma entrada da tabela de segmento é procurada a partir de uma tabela de segmento usada na tradução tal 98 ΡΕ2229632 como descrito na Fig. 6 até ao nó 616. Tradução de endereço continua tal como descrito na Fig. 8 até ao nó 822 em que um endereço absoluto para um bloco de dados pretendido em armazenamento ou memória é obtido. 0 fluxo da FIG. 11 começa no nó 822.
No 1102, um campo de validade de acesso (AV) é obtido a partir da entrada da tabela de segmento. No 1104, é feita uma determinação se o campo de validade de acesso na entrada da tabela de segmento estiver ativado (AV=1). Se, no 1104, o campo de validade de acesso for zero então, no 1106, o bit de proteção de procura é ignorado. Se, no 1104, o campo de validade de acesso estiver ativado então, no 1108, o bit de proteção de procura é obtido a partir da entrada da tabela de segmento. No 1110, o nivel da proteção de procura indicado pelo campo F na entrada da tabela de segmento é aplicado ao bloco de dados pretendido endereçado pelo endereço virtual traduzido. São permitidas operações de procura a partir do bloco de dados endereçado pelo endereço virtual traduzido apenas se o campo de proteção de procura corresponder a uma chave de acesso. A chave de acesso é proporcionada por um Program Status Word ou um operando de uma instrução de programa a ser executada. São permitidas operações de procura a partir do bloco de dados pretendido apenas se ou o campo de proteção de procura estiver desativado ou se ambos o campos de proteção de procura estiverem ativados e o campo de controlo de acesso associado ao endereço virtual for igual à chave de acesso. 99 ΡΕ2229632
Se a chave de acesso for zero, são permitidas procuras a partir do bloco de dados pretendido.
Ainda num outro modelo de realização, se a chave de acesso de programa é zero, são permitidas operações de armazenamento para o bloco de memória pretendido e operações de procura a partir do bloco de memória pretendido.
Ainda num outro modelo de realização, se o campo de validade de acesso e o campo de proteção de procura são ativados, é indicada uma exceção de proteção em resposta a uma operação de procura a ser tentada a partir do bloco de memória pretendido e o campo de controlo de acesso do segmento não faz correspondência com o campo de controlo de acesso do programa. SET STORAGE KEY EXTENDED (SSKE)
Chaves de armazenamento podem ser definidas através de uma instrução SET STORAGE KEY EXTENDED (SSKE). Num modelo de realização, a instrução SSKE tem o formato ilustrado na Fig. 26.
A chave de armazenamento para um ou mais blocos de 4 Kbytes é substituída pelo valor no registo do primeiro operando. Quando a instalação SSKE condicional está instalada, certas funções da operação da definição da chave podem ser ignoradas. Quando a instalação do SSKE 100 ΡΕ2229632 condicional não está instalada, ou quando a instalação do 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 Kbytes que é endereçado pelos conteúdos do registo geral R2 é substituída pelos bits do registo geral RI. A instrução completa-se sem alterar o código de condição.
Quando a instalação do SSKE condicional está instalada e um ou ambos os bits MR e MC são um, os bits de controlo de acesso, bit de proteção de procura, e, opcionalmente, o bit de referência e bit de alteração da chave de armazenamento que é endereçada pelos conteúdos do registo geral R2 são comparados com bits correspondentes no registo geral RI. Se os bits comparados são iguais, então não é feita nenhuma alteração à chave; caso contrário, bits selecionados da chave são substituídos pelos bits correspondentes no registo geral RI. 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 instalação da DAT melhorada está instalada, as operações anteriores podem ser repetidas para as chaves de armazenamento de múltiplos blocos de 4 Kbytes dentro do mesmo bloco de 1 MB, sujeito ao controlo do controlo de blocos múltiplos, descrito adiante. Num modelo de realização, o campo M3 tem o formato tal como ilustrado na Fig. 27.
Os bits do campo M3 são definidos como se segue: 101 ΡΕ2229632
Reservados: Bit 0 é reservado. Máscara de Atualização do Bit de Referência (MR) : 0 bit MR, bit 1 do campo M3, controla se as atualizações ao bit de referência na chave de armazenamento podem ser ignoradas, como descrito adiante. Máscara de Atualização do Bit de Alteração (MC) : 0 bit MC bit, bit 2 do campo M3, controla se as atualizações ao Bit de alteração na chave de armazenamento podem ser ignoradas, tal como descrito adiante.
Controlo de Bloco Múltiplo (MB): O bit MB, bit 3 do campo M3, controla se as chaves de armazenamento para múltiplos blocos de 4 Kbytes de armazenamento podem ser definidas, como descrito em Definição de Chaves de Armazenamento em Múltiplos Blocos de 4 Kbytes.
Quando a instalação da DAT melhorada não está instalada, posição do bit 3 do campo M3 é reservada. Quando a instalação do 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 não obstante o facto da instalação do SSKE condicional não ter sido instalada. A chave de armazenamento para o bloco de 4 Kbytes que é endereçado pelos conteúdos do registo geral R2 102 ΡΕ2229632 é substituída por bits do registo geral Rl, e a instrução completa-se sem alterar o código de condição.
Quando um ou ambos os bits MR e MC são um, o processamento é como se segue:
Previamente a qualquer modificação, os conteúdos da chave de armazenamento para o bloco de 4 Kbytes que é endereçado pelo registo geral R2 são colocados nas posições do bit 48-54 do registo geral Rl, e bit 55 do registo geral Rl é definido a zero. Bits 0-47 e 56-63 do registo mantêm-se inalterados. Se um código do bloco de verificação (CBC) inválido é detetado enquanto procura a chave de armazenamento, então (a) a totalidade da chave de armazenamento para o bloco de 4 Kbytes é substituída pelos bits 56-62 do registo geral Rl, (b) os conteúdos das posições do bit 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 bit de proteção de procura da chave de armazenamento para os blocos de 4 Kbytes designados são comparados com os campos correspondentes nos bits 56-60 do registo geral Rl. Se os campos respetivos não são iguais, a totalidade da chave de armazenamento para o bloco de 4 Kbytes é substituída por bits do registo geral Rl, e a instrução completa-se por definindo o código de condição 1. Quando os bits de controlo de acesso e de proteção de procura na chave de 103 ΡΕ2229632 armazenamento são iguais aos bits respetivos no registo geral Rl, o processamento continua tal como descrito adiante.
Quando ambos os bits MR e MC são um, a instrução completa-se definindo o código de condição 0. A chave de armazenamento mantém-se 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 forem iguais, a instrução completa-se definindo o código de condição 0. A chave de armazenamento mantém-se inalterada neste caso. Se os bits não forem iguais, então quer (a) a totalidade da chave de armazenamento para o bloco de 4 Kbytes designado é substituída pelos bits no registo geral Rl, e a instrução completa-se definindo o código de condição 1; quer (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 definindo o código de condição 2. É imprevisível se o código de condição 1 ou 2 está 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 4 Kbytes designado é comparado com o bit 62 do registo geral Rl. Se os bits forem iguais, a instrução completa-se definindo o código de condição 0. A chave de armazenamento 104 ΡΕ2229632 mantém-se inalterada neste caso. Se os bits não forem iguais, então quer (a) a totalidade da chave de armazenamento para o bloco de 4 Kbytes designado é substituída pelos bits no registo geral Rl, e a instrução completa-se definindo o código de condição 1; quer (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 definindo o código de condição 2. É imprevisível se o código de condição 1 ou 2 é definido.
Quando a instalação da DAT melhorada não está instalada, ou quando a instalação está instalada mas o controlo de blocos múltiplos é zero, registo geral R2 contém um endereço real. Quando a instalação da DAT melhorada está instalada e o controlo de blocos múltiplos é um, registo geral R2 contém um endereço absoluto. No modo de endereçamento de 24 bits, bits 40-51 do registo geral R2 designam um bloco de 4 Kbytes em armazenamento real ou absoluto, e bits 0-39 e 52-63 do registo são ignorados. No modo de endereçamento de 31 bits, bits 33-51 do registo geral R2 designam um bloco de 4 Kbytes em armazenamento real ou absoluto, e bits 0-32 e 52-63 do registo são ignorados. No modo de endereçamento de 64 bits, bits 0-51 do registo geral R2 designam um bloco de 4 Kbytes em armazenamento real ou absoluto, e bits 52-63 do registo são ignorados. Porque é um endereço real ou absoluto, o endereço que designa o bloco de armazenamento não é sujeito 105 ΡΕ2229632 à tradução de endereço dinâmico. A referência à chave de armazenamento não é sujeita a uma exceção de proteção.
Os novos sete bits do valor da chave de armazenamento, ou seus bits selecionados, são obtidos a partir das posições do bit 56-62 do registo geral RI. Os conteúdos das posições do bit 0-55 e 63 do registo são ignorados. Quando a instalação do SSKE condicional está instalada, e qualquer um ou ambos os bits MR e MC são um, a posição do bit 63 deverá conter um zero; caso contrário, o programa pode não operar de modo compatível no futuro. A função de sincronização de serialização e do ponto de controlo é realizada antes da operação começar e outra vez depois da operação estar completa, exceto quando a instalação do SSKE condicional está instalada e o código de condição resultante é 0, é imprevisível se uma função de sincronização de serialização e de ponto de controlo e realizada depois da operação estar completa. Para qualquer acesso de armazenamento, por parte de qualquer CPU ou programa de canal, completo para o bloco de 4 Kbytes designados quer antes quer depois da definição da chave por esta instrução, a definição associada da referência e mudança de bits para um na chave de armazenamento para o bloco também é completada antes ou depois, respetivamente, da execução desta instrução.
Definir Chaves de Armazenamento em Blocos de 4 Kbytes Múltiplos 106 ΡΕ2229632
Quando a instalação da DAT melhorada não está instalada, ou quando a instalação está instalada, mas o controlo de blocos múltiplos é zero, a chave de armazenamento para um único bloco de 4 Kbytes é definida, tal como descrito anteriormente. Quando a instalação da DAT melhorada está instalada, e o controlo de blocos múltiplos é um, as chaves de armazenamento para blocos múltiplos de 4 Kbytes dentro de um bloco de 1 Megabyte podem ser definidas, começando com o bloco especificado pelo segundo endereço do operando, e continuando para a direita com cada bloco sucessivo até ao próximo limite de 1 Megabyte. Neste caso, SET STORAGE KEY EXTENDED é passível de interrupção, e o processamento é como se segue:
Quando uma interrupção ocorre (outra que não a que se segue à terminação), registo geral R2 foi atualizado de modo a que a instrução, quando reexecutada, seja retomada no ponto de interrupção. Se um dos bits ou ambos MR ou MC forem um, o código de condição é imprevisível; caso contrário, o código de condição está inalterado.
Quando a instrução se completa sem interrupção, registo geral R2 foi atualizado para o próximo limite de 1 Megabyte. Se um dos bits ou ambos MR ou MC forem um, o código de condição 3 é definido; caso contrário, o código de condição está inalterado.
Em qualquer dos dois casos anteriormente 107 ΡΕ2229632 apresentados, quando um ou ambos os bits MR ou MC forem um, bits 48-55 do registo geral Rl são imprevisíveis.
Quando processamento de blocos múltiplos ocorre e os campos Rl e R2 designam o mesmo registo, o segundo endereço de operando é colocado no registo. Quando o processamento de blocos múltiplos ocorre nos modos de endereçamento de 24 bits ou 31 bits, os bits mais à esquerda que não são parte do endereço nas posições dos bits 32-63 do registo geral R2 sao definidos para zeros; bits 0-31 do registo estão inalterados. Código de Condição Resultante:
Quando a instalação do SSKE condicional não está instalada, ou quando ambos os bits MR e MC do campo M3 são zero, o código de condição mantém-se inalterado. Quando a instalação do 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; bits 48-55 do registo geral Rl são imprevisíveis.
Exceções do Programa:
Endereçamento (endereço especificado pelo registo geral R2) 108 ΡΕ2229632
Operação privilegiada Gravação de Alteração
Gravação de alteração proporciona informação sobre quais as páginas têm de ser gravadas em armazenamento auxiliar quando são substituídas no armazenamento principal. Gravação de alteração usa 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 leva a que os conteúdos do bloco de armazenamento correspondente sejam alterados, e tanto (a) DAT melhorada não se aplica, como (b) DAT melhorada aplica-se, como qualquer uma das que se seguem é verdadeira: O controlo de formato STE na entrada da tabela de segmento usada pela DAT é zero, e a sobreposição da gravação de alteração (CO) na entrada da tabela de página usada pela DAT é zero. O controlo de formato STE na entrada da tabela de segmento usada pela DAT é um, e a sobreposição da gravação de alteração (CO) na entrada da tabela de segmento usada pela DAT é zero.
Um acesso de armazenamento que não altera os conteúdos do armazenamento pode ou não definir o bit de alteração como um. O bit de alteração não é definido para 109 ΡΕ2229632 um numa tentativa de armazenar se o acesso for proibido. Em particular:
Para o CPU, um acesso de armazenamento é proibido sempre que uma exceção de acesso existe para esse acesso, ou sempre que existe uma exceção cuja prioridade é mais elevada do que a prioridade de uma exceção de acesso para esse acesso.
Para o subsistema do canal, um acesso de armazenamento é proibido sempre que uma violação da proteção controlada por chave existe para esse acesso.
Gravação de alteração está sempre ativa e acontece para todos os acessos de armazenamento para armazenar, incluindo aqueles que foram realizados por qualquer CPU (exceto quando suprimidos pela sobreposição da gravação de alteração, aqui descrita), qualquer instalação de operador, ou o subsistema do canal. Acontece para referências implicitas realizadas pela máquina, tal como aquelas que são parte das interrupções.
Gravação de alteração não se realiza para os operandos das seguintes instruções uma vez que eles modificam diretamente uma chave de armazenamento sem modificarem uma localização de armazenamento:
RESET REFERENCE BIT EXTENDED 110 ΡΕ2229632 SET STORAGE KEY EXTENDED (bit de alteraçao é definido para um valor especificado).
Bits de alteração que tenham sido alterados de zeros para uns não são necessariamente restaurados para zeros na tentativa do CPU.
Sobreposição da Gravação de Alteração (CO) O bit de alteração da chave de armazenamento é definido como um de cada vez que um acesso de armazenamento faz com que os conteúdos do bloco de armazenamento correspondente sejam alterados. Um acesso de armazenamento que não altera os conteúdos do armazenamento pode ou não definir o bit de alteração para um. O bit de alteração não é definido a um numa tentativa de armazenar se o acesso é proibido. Sobreposição da gravação de alteração permite que a definição do bit de alteração da chave de armazenamento seja ignorada.
Quando DAT melhorada se aplica, e o endereço virtual é traduzido através das entradas DAT da tabela, uma sobreposição da gravação de alteração (CO) é proporcionada no bit 55 quer na entrada da tabela de segmento quer na entrada da tabela de página. Quando o bit de controlo de formato (FC) STE 53 da entrada da tabela de segmento é zero, aplica-se a sobreposição da gravação de alteração na entrada da tabela de página. Quando a sobreposição da gravação de alteração na PTE é zero, ocorre gravação de 111 ΡΕ2229632 alteração para operações de armazenamento para o bloco de 4 Kbytes. Quando a sobreposição da gravação de alteração é um, é imprevisível se a gravação de alteração ocorre para operações de armazenamento para o bloco de 4 Kbytes. Quando o controlo de formato STE é um, aplica-se a sobreposição da gravação de alteração no STE. Quando a sobreposição da gravação de alteração na STE é zero, a gravação de alteração ocorre para operações de armazenamento para qualquer dos segmentos de bloco de 4 Kbytes 256. Quando a sobreposição da gravação de alteração no STE é um, é imprevisível se a gravação de alteração ocorre para qualquer um dos blocos de segmento de 4 Kbytes 256. A sobreposição da gravação de alteração não se aplica a endereços reais ou absolutos, ou a um endereço virtual que é traduzido através de uma designação do espaço real. É agora feita referência à FIG. 12 ilustrando um diagrama de fluxo de um modelo de realização de obtenção do campo de sobreposição da gravação de alteração a partir da entrada da tabela de segmento usada na tradução de endereço dinâmico de um endereço virtual.
Tradução de endereço dinâmico prossegue até ao ponto em que uma entrada da tabela de segmento foi procurada a partir de uma tabela de segmento usada na tradução tal como descrito na FIG. 6 até ao nó 616. Tradução de endereço continua tal como descrito na FIG. 8 até ao nó 822 em que um endereço absoluto para um bloco de 112 ΡΕ2229632 dados pretendido em armazenamento ou memória foram obtidos. 0 fluxo da FIG. 12 começa no nó 822.
No 1210, um campo de sobreposição da gravação de alteração (CO) é obtido a partir da entrada da tabela de segmento usada na tradução. Sobreposição da gravação de alteração permite que o bit de alteração da chave de armazenamento seja sobreposto. No 1212, é feita uma determinação se o acesso realizado no bloco de dados pretendido endereçado pelo endereço virtual traduzido for uma operação tipo armazenamento ou um tipo procura. Se o acesso for um acesso tipo procura então, no 1213, a definição do bit de alteração não ocorre e a sobreposição da gravação de alteração não se aplica. Se o acesso for uma operação tipo armazenamento então, no 1214, uma determinação é feita se a sobreposição da gravação de alteração na entrada da tabela de segmento for ativada. Se, no 1214, a sobreposição da gravação de alteração não está ativada então, no 1218, o bit de alteração da chave de armazenamento associada ao bloco pretendido é definido para 1. Se, no 1214, a sobreposição da gravação de alteração for ativada então, no 1216, o bit de alteração da chave de armazenamento associada não é definido. No 1220, é feita uma indicação de que o bloco de dados pretendido foi modificado.
Num outro modelo de realização, se DAT melhorada se aplica e o controlo de formato no STE não é ativado, uma origem de uma tabela de página é obtida a partir da entrada 113 ΡΕ2229632 da tabela de segmento. Uma porção do índice da página do endereço virtual é usada para referenciar uma entrada da tabela de página na tabela da página. Um endereço real da trama da página de um pequeno bloco de dados no armazenamento principal e um campo de sobreposição de alteraçao de página são obtidos a partir da entrada da tabela de página. Cada pequeno bloco de dados tem uma chave de armazenamento associada contendo um bit de alteração. 0 pequeno bloco de dados é mais pequeno em tamanho do que o grande bloco de dados e consiste num bloco de dados de 4 Kilobytes (4096 bytes). Um endereço traduzido de um bloco de dados real pretendido em armazenamento principal contém uma combinação do endereço real da trama da página e a porção do índice do byte do virtual. É feita uma determinação sobre se uma operaçao tipo armazenamento ou tipo procura foi realizada para o bloco de dados real pretendido. Se a operação de acesso foi uma operação tipo procura então a sobreposição da gravação de alteração não se aplica. Se o acesso foi uma operação tipo armazenamento, então se o campo da sobreposição da gravação de alteração associado ao endereço virtual está desativado então o bit de alteração da chave de armazenamento associada ao bloco de 4K pretendido é definido como 1. É proporcionada uma indicação de que o bloco de 4K pretendido foi modificado.
Num outro modelo de realização, se o campo sobreposição da gravação de alteração está ativado, o bit de alteração da chave de armazenamento associada ao bloco de 4K pretendido é imprevisível. 114 ΡΕ2229632
Implementações Comerciais
Apesar da z/Architecture pela IBM® ser aqui mencionada, um ou mais aspetos da presente invenção são igualmente aplicáveis a outras arquiteturas de máquina e/ou ambientes de computação empregando entidades pagináveis ou construções similares.
Implementações comerciais da instalação eDAT e outros formatos, instruções, e atributos aqui divulgados podem ser implementados quer em hardware quer por programadores, tais como programadores de sistema operativo, escrevendo em, por exemplo, linguagem assembly. Tais instruções de programação podem ser armazenadas num dispositivo de armazenamento que se pretende seja executado de forma nativa num ambiente de computação tal como o servidor z do sistema da IBM®, ou em alternativa em máquinas executando outras arquiteturas. As instruções podem ser emuladas nos servidores existentes ou nos servidores futuros da IBM® e noutras máquinas ou unidades de processamento. Podem ser executadas em máquinas onde a execução geral está num modo de emulação.
Um ou mais aspetos da presente invenção são igualmente aplicáveis a, por exemplo, emulação de máquina virtual, em que uma ou mais entidades pagináveis (e.g., convidados) executem num ou mais processadores. Como um exemplo, convidados pagináveis são definidos pela arquitetura da Execução Interpretativa de Inicio (SIE) 115 ΡΕ2229632 descrita em "IBM® System/370 Extended Architecture", IBM® Pub. Nr. SA22-7095 (1985).
Em modo de emulação, a instrução especifica a ser emulada é descodificada, e uma sub-rotina é executada para implementar a instrução individual, como numa sub-rotina ou driver, ou alguma outra técnica é usada para proporcionar um driver para o hardware especifico, tal como se encontra no âmbito dos especialistas da técnica depois de perceber a descrição aqui apresentada. Várias técnicas de emulações de software e hardware são descritas em numerosas patentes dos Estados Unidos incluindo: 5551013, 5574873, 5790825, 6009261, 6308255, e 6463582. Muitos outros ensinamentos adicionais ilustram uma variedade de formas de alcançar a emulação de um conjunto de instruções arquitetado para uma máquina alvo.
Outras Variações e Arquiteturas
Os vários modelos de realização aqui descritos são apenas exemplos. Podem existir muitas variações destes modelos de realização sem sair do âmbito da presente invenção.
Uma ou mais das capacidades da presente invenção podem ser implementada em software, firmware, hardware, ou algumas suas combinações. Aspetos da invenção são benéficos para muitos tipos de ambientes, incluindo outros ambientes que têm uma pluralidade de zonas, e ambientes não 116 ΡΕ2229632 divididos. Adicionalmente, podem não haver processadores centrais complexos, mas sim, múltiplos processadores acoplados conjuntamente. Vários aspetos deste documento são aplicáveis a ambientes de processador único.
Apesar de serem aqui descritos ambientes específicos, novamente, muitas variações destes ambientes podem ser implementadas sem sair do âmbito da presente invenção. Por exemplo, se o ambiente for dividido logicamente, então mais ou menos partes lógicas podem ser incluídas no ambiente. Adicionalmente, podem existir múltiplos processos centrais complexos acoplados em conjunto. Estas são apenas algumas das variações que podem ser feitas sem sair do âmbito da presente invenção. Adicionalmente, são outras variações possíveis.
Apesar do termo 'página' ser usado para fazer referência a uma área de tamanho fixo ou um tamanho predefinido de armazenamento, o tamanho de uma página pode variar. Similarmente, o tamanho de um bloco pode variar. Podem existir diferentes tamanhos de blocos e/ou páginas. Uma página pode ser equivalente a um bloco. Outras estruturas podem ser alternativamente usadas ou implementadas de outra forma através de software e/ou hardware. Adicionalmente, nos exemplos aqui descritos, podem existir muitas variações, incluindo, mas não se limitando a diferentes tamanhos de palavras ou endereços; um número diferente de bits; bits numa ordem diferente; mais, menos ou diferentes bits; mais, menos ou diferentes 117 ΡΕ2229632 campos; campos numa ordem diferente; diferentes tamanhos dos campos; etc.. Novamente, estes são apenas proporcionados a titulo de exemplo. Muitas variações são possíveis.
Uma unidade de processamento inclui entidades pagináveis, tais como convidados, host, outros processadores, emuladores, máquinas virtuais, e/ou outras construções similares. Um buffer inclui uma área de armazenamento e/ou memória bem como diferentes tipos de estrutura de dados incluindo, mas não limitando a, arrays ou entidades pagináveis. Uma tabela pode incluir também outras estruturas de dados. Uma instrução pode referenciar outros registos. Além disso, uma página, um segmento, e/ou uma região pode ser de tamanhos variáveis diferentes dos aqui descritos.
Um ou mais aspetos da presente invenção podem ser incluídos num artigo de fabrico (e.g., um ou mais produtos de programa de computador) possuindo, por exemplo, computador utilizável ou meio de leitura de máquina. Os media têm aqui incorporado, por exemplo, meios ou lógica de código de programa de leitura do computador (e.g., instruções, código, comandos, etc.) para proporcionar e facilitar as capacidades da presente invenção. 0 artigo de fabrico pode ser incluído como uma parte de um sistema de computador ou vendido separadamente. Adicionalmente, pode ser proporcionado pelo menos um dispositivo de armazenamento do programa legível por uma máquina 118 ΡΕ2229632 de instruções capacidades da incorporando pelo menos um programa executável pela máquina para executar as presente invenção.
Lisboa, 22 de Maio de 2013

Claims (11)

  1. ΡΕ2229632 1 REIVINDICAÇÕES 1. Um método para proteger dados num sistema de computador (100) possuindo uma hierarquia da tabelas de tradução (410, 412, 414, 416) usada para tradução de um endereço virtual num endereço traduzido de um bloco de dados no armazenamento principal, compreendendo o método: obter o endereço virtual para ser traduzido; obter uma origem inicial de um tabela de tradução da dita hierarquia de tabelas de tradução, compreendendo a dita hierarquia da tabelas de tradução uma tabela de segmento; com base na origem inicial obtida, obter uma entrada da tabela de segmento a partir da dita tabela de segmento, dita entrada da tabela de segmento configurada para conter um campo de controlo de formato; em resposta a uma instalação de DAT melhorada a ser ativada, determinar se o dito campo de controlo de formato na dita entrada da tabela de segmento está ativado; e em resposta ao dito campo de controlo de formato a ser ativado, realizar: determinar se o dito campo de validade de acesso na dita entrada da tabela de segmento está ativado, compreendendo a dita entrada da tabela de segmento o dito campo de validade de acesso, um campo de controlo de acesso do segmento, um campo de proteção de procura
  2. 2 ΡΕ2229632 de segmento e um endereço absoluto da trama de segmento de um grande bloco de dados pretendido no armazenamento principal; em resposta ao dito campo de validade de acesso a ser ativado, realizar: permitir armazenamentos ao dito grande bloco de dados pretendido, em que os armazenamentos estão associados ao endereço virtual, sendo os ditos armazenamento permitidos apenas em resposta ao dito campo de controlo de acesso do segmento correspondendo a uma chave de acesso de programa proporcionada por qualquer um de um Program Status Word ou um operando de uma instrução de programa a ser executada; e permitir procuras a partir do dito grande bloco de dados pretendido, em que as procuras estão associadas ao endereço virtual, apenas em resposta quer a) ao campo de proteção de procura de segmento a ser desativado, quer b) em resposta tanto ao campo de proteção de procura e segmento a ser ativado como à chave de acesso de programa associada ao dito endereço virtual sendo igual ao dito campo de controlo de acesso de segmento; e em resposta à dita instalação de DAT melhorada não sendo ativada, realizar: obter da dita entrada da tabela de segmento uma origem de uma tabela de página e usar a porção do índice de página do dito endereço virtual para referenciar uma entrada da tabela de página na dita tabela de página; e 3 ΡΕ2229632 obter da dita entrada da tabela de página, um endereço real de trama de página de um pegueno bloco de dados no armazenamento principal, sendo o dito pequeno bloco de dados mais pequeno em tamanho do que o dito grande bloco de dados e consistindo num bloco de dados de 4 kilobytes associado a uma chave de armazenamento, compreendendo a chave de armazenamento um campo de controlo de acesso de armazenamento e um campo de proteção de procura de armazenamento, em que um endereço traduzido de um pequeno bloco de dados pretendido no armazenamento principal compreende uma combinação do dito endereço real da trama da página e dita porção do índice de byte do dito endereço virtual; e permitir armazenamentos ao dito bloco de dados pequeno pretendido, em que os armazenamentos associados ao endereço virtual, ditos armazenamentos permitidos apenas em resposta à dita chave de armazenamento correspondendo a uma chave de acesso de programa proporcionada por qualquer um de um Program Status Word ou um operando de uma instrução de programa a ser executada; em que o dito endereço traduzido é qualquer um de um endereço real ou endereço absoluto, em que o endereço real está sujeito a prefixação para formar o endereço absoluto, em que a dita hierarquia de tabelas de tradução consiste em uma ou mais de uma tabela de primeira região, uma tabela de segunda região, uma tabela de terceira região e dita tabela de segmento, 4 ΡΕ2229632 em que obter a dita entrada da tabela de segmento a partir da dita tabela de segmento compreende qualquer um de A, B, C, D: A) com base no dito endereço de origem inicial obtido da dita tabela de primeira região, usando uma porção do primeiro índice do dito endereço virtual para referenciar uma entrada da tabela de primeira região na dita tabela de primeira região contendo um endereço de origem da dita tabela de segunda região; com base no dito endereço de origem da dita tabela de segunda região, usando uma porção do segundo índice do dito endereço virtual para referenciar uma entrada da tabela de segunda região na dita tabela de segunda região contendo um endereço de origem da dita tabela de terceira região; com base no dito endereço de origem da dita tabela de terceira região, usando uma porção do terceiro índice do dito endereço virtual para referenciar uma entrada da tabela de terceira região na dita tabela de terceira região contendo um endereço de origem da dita tabela de segmento; e com base no dito endereço de origem da dita tabela de segmento, usando uma porção do índice de segmento do dito endereço virtual para referenciar uma entrada da tabela de segmento na dita tabela de segmento; B) com base no dito endereço de origem inicial obtido da dita tabela de segunda região, usando a porção do segundo índice do dito endereço virtual para referenciar a dita entrada da tabela de segunda região na dita tabela de segunda região contendo um endereço 5 ΡΕ2229632 de origem da dita tabela de terceira região; com base no dito endereço de origem da dita tabela de terceira região, usando a dita porção do terceiro indice do dito endereço virtual para referenciar a dita entrada da tabela de terceira região na dita tabela de terceira região contendo o endereço de origem da dita tabela de segmento; e com base no dito endereço de origem da dita tabela de segmento, usando a dita porção do indice de segmento do dito endereço virtual para referenciar a dita entrada da tabela de segmento na dita tabela de segmento; C) com base no dito endereço de origem inicial obtido da dita tabela de terceira região, usando a dita porção da terceira indice do dito endereço virtual para referenciar a dita entrada da tabela de terceira região na dita tabela de terceira região contendo o endereço de origem da dita tabela de segmento; e com base no dito endereço de origem da dita tabela de segmento, usando a dita porção do indice de segmento do dito endereço virtual para referenciar a dita entrada da tabela de segmento na dita tabela de segmento; e D) com base no endereço de origem inicial obtido da dita tabela de segmento, usando a dita porção do indice de segmento do dito endereço virtual para referenciar a dita entrada da tabela de segmento. 6 ΡΕ2229632 2. 0 método de acordo com a Reivindicação 1, em que em resposta à dita instalação de DAT melhorada sendo ativada e dito campo de controlo de formato não sendo ativado, realiza: obter da dita entrada da tabela de segmento uma origem de uma tabela de página e usar a porção do índice de página do dito endereço virtual para referenciar uma entrada da tabela de página na dita tabela de página; obter da dita entrada da tabela de página, um endereço real da trama da página de um pequeno bloco de dados em armazenamento principal, sendo o dito pequeno bloco de dados mais pequeno em tamanho do que o dito bloco de dados grande e consistindo num bloco de dados de 4 Kilobytes, estando o dito pequeno bloco de dados associado a uma chave de armazenamento compreendendo um campo de controlo de acesso de armazenamento e um campo de proteção de procura de armazenamento, em que um endereço traduzido de um bloco de dados real pretendido em armazenamento principal compreende uma combinação do dito endereço real da trama da página e dita porção do índice de byte do dito endereço virtual; permitir ao dito bloco de memória real pretendido armazenamentos, em que os armazenamentos estão associados ao endereço virtual, apenas em resposta ao dito campo de controlo de acesso do programa fazendo corresponder o dito campo de controlo de acesso de armazenamento, sendo o dito campo de acesso de programa proporcionado por uma entidade programa 7 ΡΕ2229632 compreendendo qualquer um de um Program Status Word ou um operando de uma instrução de proqrama a ser executada; e permitir procura a partir do dito bloco de dados pretendido em que as procuras estão associadas ao endereço virtual apenas em resposta quer a) ao campo de proteção de procura do armazenamento a ser desativado, quer b) em resposta tanto ao campo de proteção de procura de armazenamento a ser ativado como a uma chave de acesso de programa associada ao endereço virtual sendo igual ao dito campo de controlo de acesso de armazenamento, sendo a dita chave de acesso de programa proporcionada por qualquer um de um Program Status Word ou um operando de uma instrução de programa a ser executada.
  3. 3. 0 método de acordo com a Reivindicação 1, em que em resposta à dita instalação de DAT melhorada não sendo ativada, realiza: obter da dita entrada da tabela de segmento uma origem de uma tabela de página e usar a porção do índice de página do dito endereço virtual para referenciar uma entrada da tabela de página na dita tabela de página; obter da dita entrada da tabela de página, um endereço real da trama da página de um pequeno bloco de dados em armazenamento principal, sendo o dito pequeno bloco de dados mais pequeno em tamanho do que o dito bloco de dados grande e consistindo num bloco de dados de 4 Kilobytes associado a uma chave de armazenamento, ΡΕ2229632 compreendendo a chave de armazenamento um campo de controlo de acesso de armazenamento e um campo de proteção de procura de armazenamento, em que um endereço traduzido de um bloco de dados real pretendido em armazenamento principal compreende uma combinação do dito endereço real da trama da página e dita porção do índice de byte do dito endereço virtual; permitir ao dito bloco de memória real pretendido armazenamentos, em que os armazenamentos estão associados ao endereço virtual, apenas em resposta ao dito campo de controlo de acesso do programa fazendo corresponder o dito campo de controlo de acesso de armazenamento; e permitir procura a partir do dito bloco de dados pretendido em que as procuras estão associadas ao endereço virtual apenas em resposta quer a) ao campo de proteção de procura do armazenamento a ser desativado, quer b) em resposta tanto ao campo de proteção de procura de armazenamento a ser ativado como a uma chave de acesso de programa associada ao endereço virtual sendo igual ao dito campo de controlo de acesso de armazenamento, sendo a dita chave de acesso de programa proporcionada por qualquer um de um Program Status Word ou um operando de uma instrução de programa a ser executada. ΡΕ2229632
  4. 4. Um método de acordo com a Reivindicação 1, em que em resposta ao facto da dita chave de acesso de programa ser zero, permitir ao dito bloco de memória pretendido armazenamentos e procuras do dito bloco de memória pretendido, em que os armazenamentos e procuras estão associados ao endereço virtual.
  5. 5. 0 método de acordo com a Reivindicação 1, em que em resposta ao dito campo de validade de acesso e dito campo de proteção de procura a ser ativados, indicando uma exceção de proteção em resposta a uma operação de procura a ser tentada a partir do dito bloco de memória pretendido e dito campo de controlo de acesso do segmento não fazendo correspondência com o dito campo de controlo de acesso do programa, sendo a dita operação de procura associada ao dito endereço virtual.
  6. 6. 0 método de acordo com a Reivindicação 1, em que determinar se o dito campo de validade de acesso está ativado compreende adicionalmente determinar qualquer um de a) se um campo de Sobreposição de Proteção de Armazenamento de um registo de controlo está desativado ou b) se o dito campo de Sobreposição de Proteção de Armazenamento está ativado e o dito campo de controlo de acesso do segmento não está ativado.
  7. 7. 0 método de acordo com a Reivindicação 1, compreendendo ainda: 10 ΡΕ2229632 armazenar informação usada na dita tradução do dito endereço virtual em pelo menos um buffer lookaside de tradução; e realizar uma tradução posterior de um endereço virtual posterior para o dito endereço absoluto do dito bloco de dados em armazenamento principal usando a dita informação armazenada do dito buffer lookaside de tradução em vez da dita hierarquia de tabelas de tradução.
  8. 8. 0 método de acordo com a Reivindicação 1, em que em resposta à dita tradução não sendo nativa à dita arquitetura de máquina, compreendendo ainda: identificar uma rotina de software pré-determinada para emular a dita tradução, compreendendo a dita rotina de software pré-determinada uma pluralidade de instruções; e executar a dita rotina de software pré-determinada.
  9. 9. O método de acordo com a Reivindicação 1, em que o dito bloco de dados grande compreende um bloco de pelo menos 1 Megabyte de tamanho.
  10. 10. Um sistema compreendendo meios adaptados para realizar todos os passos do método de acordo com qualquer reivindicação de método precedente.
  11. 11. Um programa de computador compreendendo instruções para realizar todos os passos do método de 11 ΡΕ2229632 acordo com qualquer reivindicação de método precedente, quando o dito programa de computador é executado num sistema de computador. Lisboa, 22 de Maio de 2013
PT97008296T 2008-01-11 2009-01-05 Tradução de endereço dinâmico com proteção de procura PT2229632E (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/972,688 US8677098B2 (en) 2008-01-11 2008-01-11 Dynamic address translation with fetch protection

Publications (1)

Publication Number Publication Date
PT2229632E true PT2229632E (pt) 2013-05-28

Family

ID=40473424

Family Applications (1)

Application Number Title Priority Date Filing Date
PT97008296T PT2229632E (pt) 2008-01-11 2009-01-05 Tradução de endereço dinâmico com proteção de procura

Country Status (12)

Country Link
US (6) US8677098B2 (pt)
EP (1) EP2229632B1 (pt)
JP (1) JP5373817B2 (pt)
KR (1) KR101175615B1 (pt)
CN (1) CN101911025B (pt)
CY (1) CY1114228T1 (pt)
DK (1) DK2229632T3 (pt)
ES (1) ES2408189T3 (pt)
PL (1) PL2229632T3 (pt)
PT (1) PT2229632E (pt)
SI (1) SI2229632T1 (pt)
WO (1) WO2009087133A1 (pt)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019964B2 (en) 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US8037278B2 (en) 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
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
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
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
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8041922B2 (en) * 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8151083B2 (en) 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
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
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
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
GB2514618B (en) * 2013-05-31 2020-11-11 Advanced Risc Mach Ltd Data processing systems
WO2015075673A1 (en) 2013-11-21 2015-05-28 Green Cache AB Systems and methods for reducing first level cache energy by eliminating cache address tags
US20150261693A1 (en) * 2014-03-14 2015-09-17 International Business Machines Corporation Dynamic storage key assignment
US9916185B2 (en) * 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US10019368B2 (en) 2014-05-29 2018-07-10 Samsung Electronics Co., Ltd. Placement policy for memory hierarchies
JP6504984B2 (ja) * 2015-09-28 2019-04-24 ルネサスエレクトロニクス株式会社 データ処理装置
TWI570559B (zh) * 2015-12-28 2017-02-11 點序科技股份有限公司 快閃記憶體及其存取方法
US10496292B2 (en) * 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10565126B2 (en) 2017-07-14 2020-02-18 Arm Limited Method and apparatus for two-layer copy-on-write
US10613989B2 (en) 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
US10489304B2 (en) * 2017-07-14 2019-11-26 Arm Limited Memory address translation
US10467159B2 (en) 2017-07-14 2019-11-05 Arm Limited Memory node controller
US10592424B2 (en) 2017-07-14 2020-03-17 Arm Limited Range-based memory system
US10534719B2 (en) 2017-07-14 2020-01-14 Arm Limited Memory system for a data processing network
US10353826B2 (en) 2017-07-14 2019-07-16 Arm Limited Method and apparatus for fast context cloning in a data processing system
CN110096457B (zh) * 2018-01-31 2023-05-23 联发科技股份有限公司 硬件控制系统及硬件控制方法
US10884850B2 (en) 2018-07-24 2021-01-05 Arm Limited Fault tolerant memory system
GB2578099B (en) * 2018-10-15 2021-05-12 Advanced Risc Mach Ltd Memory access control
US10838631B2 (en) * 2019-02-25 2020-11-17 International Business Machines Corporation Detection of alteration of storage keys used to protect memory
US11151267B2 (en) 2019-02-25 2021-10-19 International Business Machines Corporation Move data and set storage key based on key function control
US10831480B2 (en) 2019-02-25 2020-11-10 International Business Machines Corporation Move data and set storage key instruction
JP7238178B2 (ja) * 2020-02-04 2023-03-13 キオクシア株式会社 メモリ装置及びメモリ装置を制御する方法
CN114070134B (zh) * 2022-01-05 2022-05-06 山东汉德自动化控制设备有限公司 一种变频钻机电控装置及其控制方法

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE37305E1 (en) * 1982-12-30 2001-07-31 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
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
JPS62208147A (ja) 1986-03-10 1987-09-12 Hitachi Ltd 拡張アドレス変換装置
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
JPH1091597A (ja) 1996-08-13 1998-04-10 Internatl Business Mach Corp <Ibm> マルチプロセッサ装置におけるトークンにもとづく命令の直列化
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
US6415305B1 (en) 1998-04-20 2002-07-02 Microsoft Corporation Method for displaying editable characters in a divided table cell
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
JP2004328771A (ja) 1999-02-05 2004-11-18 Sony Corp エンコーディング装置及び方法、デコーディング装置及び方法、並びに記録媒体
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
US6879989B2 (en) 1999-08-16 2005-04-12 International Business Machines Corporation Modification system for supporting localized data changes in a mobile device
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
US6981125B2 (en) 2003-04-22 2005-12-27 International Business Machines Corporation Method and apparatus for managing shared virtual storage in an information handling system
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
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
DE60311462T2 (de) * 2003-09-19 2008-01-03 Sun Microsystems, Inc., Santa Clara Verfahren und Vorrichtung zur Protokollverarbeitung in Computersystemen unter Verwendung der Übersetzung von Speicheradressen
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
GB2415578B (en) 2004-06-23 2007-07-04 Hewlett Packard Development Co Restricting virus access to a network
CN100377117C (zh) * 2005-07-14 2008-03-26 中国科学院计算技术研究所 用于虚实地址变换及读写高速缓冲存储器的方法及装置
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 株式会社東芝 メモリ保護装置、メモリ保護システムおよびメモリ保護方法
US8037278B2 (en) * 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
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
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
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8151083B2 (en) * 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8019964B2 (en) * 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US8041922B2 (en) * 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8117417B2 (en) * 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8082405B2 (en) * 2008-01-11 2011-12-20 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
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

Also Published As

Publication number Publication date
SI2229632T1 (sl) 2013-06-28
EP2229632A1 (en) 2010-09-22
US20160267017A1 (en) 2016-09-15
WO2009087133A9 (en) 2009-09-24
US8677098B2 (en) 2014-03-18
US20140115295A1 (en) 2014-04-24
PL2229632T3 (pl) 2013-08-30
KR20100126269A (ko) 2010-12-01
JP5373817B2 (ja) 2013-12-18
CN101911025B (zh) 2012-11-07
KR101175615B1 (ko) 2012-08-22
US10423539B2 (en) 2019-09-24
US20180089103A1 (en) 2018-03-29
US20090182971A1 (en) 2009-07-16
JP2011509470A (ja) 2011-03-24
CN101911025A (zh) 2010-12-08
US9021225B2 (en) 2015-04-28
EP2229632B1 (en) 2013-04-10
US9378128B2 (en) 2016-06-28
DK2229632T3 (da) 2013-06-03
US20190303301A1 (en) 2019-10-03
CY1114228T1 (el) 2016-08-31
WO2009087133A1 (en) 2009-07-16
ES2408189T3 (es) 2013-06-18
US20150169437A1 (en) 2015-06-18
US9934159B2 (en) 2018-04-03
US10977190B2 (en) 2021-04-13

Similar Documents

Publication Publication Date Title
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
ES2406056T3 (es) Traducción dinámica de direcciones con control de formato
US8041923B2 (en) Load page table entry address instruction execution based on an address translation format control field
US9003134B2 (en) Emulation of a dynamic address translation with change record override on a machine of another architecture
ES2381428T3 (es) Traducción de dirección dinámica con gestión de trama.
US8019964B2 (en) Dynamic address translation with DAT protection
US8041922B2 (en) Enhanced dynamic address translation with load real address function
ES2381432T3 (es) Traducción dinámica de direcciones con calificador con excepción de traducción
US8082405B2 (en) Dynamic address translation with fetch protection
US8335906B2 (en) Perform frame management function instruction for clearing blocks of main storage
US20090182966A1 (en) Dynamic address translation with frame management