BRPI1103516A2 - facilidade de palavra grande para estender o número de registradores de propósito geral disponíveis para instruções - Google Patents

facilidade de palavra grande para estender o número de registradores de propósito geral disponíveis para instruções Download PDF

Info

Publication number
BRPI1103516A2
BRPI1103516A2 BRPI1103516A BRPI1103516A BRPI1103516A2 BR PI1103516 A2 BRPI1103516 A2 BR PI1103516A2 BR PI1103516 A BRPI1103516 A BR PI1103516A BR PI1103516 A BRPI1103516 A BR PI1103516A BR PI1103516 A2 BRPI1103516 A2 BR PI1103516A2
Authority
BR
Brazil
Prior art keywords
instructions
gprs
operand
instruction
bit
Prior art date
Application number
BRPI1103516A
Other languages
English (en)
Inventor
Dan F Greiner
Marcel Mitram
Timothy J Slegel
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 BRPI1103516A2 publication Critical patent/BRPI1103516A2/pt
Publication of BRPI1103516B1 publication Critical patent/BRPI1103516B1/pt

Links

Classifications

    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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
    • 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/30098Register arrangements
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30181Instruction operation extension or modification
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

facilidade de palavra grande para estender o número de registradores de propósito geral disponíveis para instruções um computador possui um conjunto de registradores de uso geral (gprs). cada gpr compreende uma pluralidade de porções. programas, tais como um sistema operacional e aplicativos que operam em um modo de gpr grande.

Description

Relatório Descritivo da Patente de Invenção para: "FACILIDADE DE PALAVRA GRANDE PARA ESTENDER O NÚMERO DE REGISTRADORES DE PROPÓSITO GERAL DISPONÍVEIS PARA INSTRUÇÕES". CAMPO DA INVENÇÃO: [0001] A presente invenção está relacionada com sistemas de computadores e, mais particularmente, ao sistema de computador a funcionalidade de instruções do processador. JUSTIFICATIVA: a. Marcas: IBM ® é uma marca registrada da International Business Machines Corporation, Armonk, Nova York, EUA S/390, Z900, z990 e zlO e outros nomes de produtos podem ser marcas registradas ou nomes de produtos da International Business Machines Corporation ou de outras empresas. b. IBM criou através do trabalho de muitos engenheiros altamente talentosos começando com máquinas conhecidas como a IBM ® System 360 na década de 1960 até o presente, uma arquitetura especial que, por causa de sua natureza essencial para um sistema de computação, tornou-se conhecido como "o mainframe "cujos princípios de estado de operação da arquitetura da máquina, descrevendo as instruções que podem ser executadas sobre o" mainframe implementação "das instruções que haviam sido inventados pelos inventores da IBM e adotado, por causa de sua significativa contribuição para a melhoria do estado de a máquina de computação representado por "mainframe", como contribuições significativas por inclusão nos Princípios da IBM de operação como afirmou ao longo dos anos. A oitava edição do IBM ® z / Architecture ® Princípios de Operação, que foi publicado em fevereiro de 2009 tornou-se o padrão de referência publicado como SA22-7832-07 e está implantada em zlO da IBM ® servidores mainframe, incluindo o IBM System zlO ® servidores de classe empresarial. Os princípios da IBM Z / Architecture ® de Operação, Publicação SA22-7832-07 é incorporado por referência na sua totalidade neste documento. c. Com referência à Figura IA, componentes representativos de um sistema de computador central 50 são retratados. Outros arranjos de componentes podem também ser utilizado num sistema de computador, que são bem conhecidos na técnica. O computador host representante 50 compreende um ou mais processadores em comunicação com uma loja principal (memória do computador 2), bem como interfaces I / O para dispositivos de armazenamento 11 e 10 redes para se comunicar com outros computadores ou SANs e similares . A CPU 1 é compatível com uma arquitetura com um conjunto de instruções arquitetado e funcionalidade arquitetado. A CPU 1 pode ter tradução de endereço dinâmico (DAT) 3 para transformar endereços de programa (endereços virtuais) em endereço real da memória. A DAT normalmente inclui uma Tradução Lookaside Buffer (TLB) 7 para cache de traduções para que mais tarde acessos ao bloco de memória de computador 2 não exigem que o atraso de tradução de endereços. Normalmente um cache 9 é empregado entre memória de computador 2 e o processador 1. O cache 9 pode ser hierárquica ter um grande cache disponível para mais de uma CPU e menor, mais rápido (nível inferior) caches entre o grande cache e cada CPU. Em algumas implementações os caches de nível mais baixo são divididos para fornecer separados caches de nível baixo para a busca de instrução e acessos de dados. Em uma concretização, uma instrução é buscada a partir da memória 2 por uma busca de instruções 4 unidade por meio de um cache de 9. A instrução é decodificada na unidade de decodificação de instruções (6) e expedido (com outras instruções em algumas concretizações) para unidades de instrução de execução 8. Tipicamente várias unidades de execução 8 são utilizados, por exemplo, uma unidade de execução aritmética, uma unidade de execução de ponto flutuante e um ramo de unidade de execução de instruções. A instrução é executada pela unidade de execução, o acesso a operandos de instrução de registos especificados ou memória, conforme necessário. Se um operando é para ser acedido (carregado ou armazenado) a partir da memória 2, uma unidade de armazenamento de carga de 5, tipicamente manipula 0 sob o controle de acesso da instrução serem executadas. As instruções podem ser executadas em hardware ou em circuitos microcódigo interno (firmware) ou por uma combinação de ambos. d. Na fig. 1B, um exemplo de um sistema de computador 21 anfitrião emulado esteja previsto que simula um sistema de computador central 50 de uma arquitetura de Host. No sistema emulado computador host 21, o processador host (CPU) 1 é um processador host emulado (ou processador host virtual) e compreende um processador de emulação de 27 ter uma arquitetura nativa conjunto diferente de instruções do que o processador de 1 do computador host 50 . O sistema de computador host emulado 21 tem memória 22 acessível ao processador de emulação de 27. Na concretização exemplo, a memória 27 é dividida em uma porção de memória do computador anfitrião 2 e uma porção 23 de Emulação rotinas. A memória do computador Host 2 está disponível para programas do computador host emulado 21 de acordo com a anfitriã Arquitetura de Computadores. 0 Processador de emulação de 27 executa as instruções nativas de uma instrução arquitetado definir de uma arquitectura diferente da do processador emulado 1, as instruções nativas obtidos a partir da memória de emulação Rotinas 23, e pode acessar a uma instrução do host para a execução de um programa na memória de computador host 2 por emprego de uma ou mais instruções (s) obtido em um Sequence & Acesso / Decode rotina que pode decodificar as instruções Host (s) acedido para determinar uma rotina de execução de instruções nativo para imitar a função da instrução host acessada. Outras instalações que são definidos para o computador do sistema arquitetura Anfitrião 50, pode ser emulado por Rotinas arquitetado instalações, incluindo instalações como registos de uso geral, registradores de controle, tradução de endereço dinâmico e suporte I / 0 Subsistema e cache do processador, por exemplo. As rotinas de emulação também pode tirar proveito da função disponível no processador de emulação de 27 (como registos gerais e tradução dinâmica de endereços virtuais) para melhorar o desempenho das rotinas de emulação. Hardware especial e off-load motores também podem ser fornecidas para ajudar o processador 27 em emular a função do computador host 50. e. Em um mainframe, instruções de máquina arquitetadas são usadas por programadores, geralmente hoje "C" programadores muitas vezes por meio de um aplicativo de compilador. Estas instruções armazenadas na midia de armazenamento pode ser executado nativamente no az / Arquitetura de Servidor IBM, ou, alternativamente, em máquinas de execução de outras arquiteturas. Eles podem ser emulado no existente e em futuros servidores mainframe IBM e em outras máquinas da IBM (por exemplo, pSeries e xSeries ® ® Servidores Servidores). Eles podem ser executados em máquinas rodando Linux em uma grande variedade de máquinas que utilizam hardware fabricado pela IBM ®, Intel ®, ™ AMD, Sun Microsystems e outros . Além de execução em que o hardware em um ® Z / Arquitetura, o Linux pode ser utilizado, bem como máquinas que utilizam a emulação por Hércules, UMX, FSI (Software Fundamental, Inc) ou Soluções de Plataforma, Inc. (PSI), onde geralmente execução está em um modo de emulação. No modo de emulação, software de emulação é executado por um processador nativo para emular a arquitetura de um processador emulado. f. Os processadores nativos 27 normalmente executam o software de emulação 23 compreendendo ou firmware ou um sistema operacional nativo para realizar a emulação do processador emulado. O software de emulação de 23 é responsável por buscar e executar instruções da arquitetura do processador emulado. O software de emulação de 23 mantém um programa emulado contador para manter o controle de limites de instrução. O software de emulação de 23 de maio buscar uma ou mais instruções de máquina emulada em um tempo e converter uma ou mais instruções de máquina emulada para um grupo correspondente de instruções nativas da máquina para execução pelo processador nativo 27. Estas instruções podem ser convertidos em cache de tal modo que uma conversão mais rápida pode ser conseguida. Não obstante, o software de emulação deve manter as regras de arquitetura da arquitetura do processador emulado de forma a assegurar os sistemas operacionais e aplicativos escritos para o processador emulado funcionar corretamente. Além disso, o software de emulação deve fornecer recursos identificados pelo emulado arquitetura de processador 1, incluindo, mas não limitado a controlar registos, registos de uso geral, registradores de ponto flutuante, a função de tradução dinâmica de endereços, incluindo tabelas de segmento e tabelas página, por exemplo, mecanismos de interrupção, mecanismos de troca de contexto , hora do dia (TOD) relógios e interfaces arquitetados para subsistemas I / O tais que um sistema operacional ou um programa aplicativo desenvolvido para rodar no processador emulado, pode ser executado no processador nativo ter o software de emulação. g. Uma instrução especifica sendo emulado é decodificada, e uma sub-rotina de chamada para realizar a função da instrução individual. Uma função de software de emulação de 23 emulando uma função de um processador emulado 1 é implementado, por exemplo, em um "C" ou sub-rotina condutor, ou qualquer outro método de fornecimento de um controlador para o hardware especifico que será dentro da especialidade dos do arte após a compreensão da descrição da concretização preferida. Patentes de emulação de vários de software e hardware incluindo, mas não limitado a EUA 5551013 para um "Multiprocessador para emulação hardware" de Beausoleil et al, US6009261 e: . Preprocessing de rotinas armazenadas alvo para emular instruções incompatíveis em um processador de destino "do Scalzi et al; e US5574873: Decoding instrução convidado para acessar diretamente as rotinas de emulação que emulam as instruções de hóspedes, de Davidian et al; US6308255: ônibus multiprocessamento simétrico e chipset usado para suporte co-processador permitindo que não-nativo código para ser executado em um sistema, de Gorishek et al, e US6463582: Dinâmico otimização tradutor de código objeto para emulação de arquitetura e dinâmica otimização objeto método de tradução de código de Lethin et al, e US5790825: Método para emular instruções de hóspedes em um computador host através de recompilação dinâmica de instruções de acolhimento de Eric Traut; cada um dos aqui acima incorporadas por referência na sua totalidade. Estas referências ilustram uma variedade de maneiras conhecidas para conseguir a emulação de um formato de instrução arquitetados para uma máquina diferente para uma máquina de alvo disponível para os peritos na técnica, assim como as técnicas de software comercial utilizadas pelos referenciados acima.
[0002] O que é necessário é uma funcionalidade nova instrução consistente com a arquitetura existente, que alivia a dependência de recursos de arquitetura, tais como registros gerais, melhora a funcionalidade e desempenho das versões de software que empregam a nova instrução.
[0003] Sumário: [0004] Em uma concretização da instalação de palavra-Alto, um número significativo de registos de uso geral (GPRS) disponível para instruções de um programa é estendido em um computador tendo um primeiro número de GPRs grande, cada instrução que compreende um código de operação e um ou mais campos para a especificação de GPR GPRs correspondente, cada GPR grande que compreende uma primeira porção e uma segunda porção, disse GPRs grande compreendendo primeiro GPRs pequeno constituído por primeira e segunda porções de GPRS pequeno constituído por segundas porções. em que responde ao computador estar num modo de GPR pequeno, realizando a) e b) são realizados, a) as instruções de um primeiro conjunto de instruções são executadas, o primeiro conjunto de instruções para acessar aos referidos primeiro GPRs pequena, compreendendo a execução endereços de memória para o acesso de geração operandos de memória com base no referido primeiro GPRs pequeno ou acessar primeiro operandos pequenas GPR, em que o primeiro pequeno GPRs consistem das referidas porções de primeira, e b) instruções de um segundo conjunto de instruções são executadas, o segundo conjunto de instruções para o acesso referida segunda GPRs pequena, compreendendo a execução endereços de memória para o acesso de geração operandos de memória com base no referido segundo GPRs pequena ou acessar segunda operandos GPR pequenas, em que a segunda pequena GPRs consistem das referidas segundas partes, e que responde ao computador estar num modo de GPR grande, instruções de um terceiro conjunto de instruções são executadas, a execução compreendendo gerar endereços de memória para o acesso baseado operandos de memória na referida grandes GPRS ou acesso operandos grandes GPR compreendendo as ditas porções primeira e segunda porções dito .
[0005] Em uma concretização, o modo de GPR pequeno compreende estar em um de um modo de endereçamento de 2 4 bits, ou um modo de 31 bits de endereçamento. a. Em uma concretização, a primeira porção é de 32 bits, a segunda porção é de 32 bits e a terceira porção é de 64 bits. b. Em uma concretização de execução, da instrução do conjunto de instruções segunda compreende a execução de uma função opcode correspondente definida com base em dois operandos, e armazena o resultado, a função de opcode correspondente definido consistindo de um ADD de dois operandos ou uma função de COMPARAR dois operandos funcionar. c. Em uma concretização de execução, da instrução do conjunto de instruções segunda compreende a execução de uma função opcode correspondente definida com base em dois operandos, e armazena o resultado, a função correspondente opcode definida consiste de uma carga de um operando de memória ou uma função CONSERVAR de um operando a função de memória. d. Em uma concretização de execução, da instrução do conjunto de instruções segunda compreende a execução de uma função opcode correspondente definida com base em dois operandos, e armazena o resultado, o código de operação correspondente função definida é um BITS RODAR THEN INSERT função selecionada compreendendo: e. rotação de um operando fonte por uma quantidade instrução especificada e f. insersão de uma parte selecionada do operando fonte rodado em uma parte selecionada de um operando destino. g. Em uma concretização, um sistema operacional é suportado operando em modo RPG Grande onde o GPRs Grande são salvos e restaurados durante trocas de contexto para aplicações em execução no modo RPG pequeno. h. Em uma concretização, um sistema operacional funciona no modo RPG Grande onde o GPRs Grande são salvos e restaurados durante trocas de contexto para aplicações em execução no modo RPG pequeno. i. O objetivo acima, bem como objectivos adicionais, características, vantagens e concretizações serão evidentes na seguinte descrição escrita. j . Outras concretizações e aspectos são descritos em detalhe aqui e são consideradas como parte da invenção reivindicada. Para uma melhor compreensão das vantagens e das características, consultar a descrição e aos desenhos.
[0006] BREVE DESCRIÇÃO DOS DESENHOS: a. O assunto que é considerado como a presente invenção é particularmente salientado e distintamente reivindicado nas reivindicações no final da especificação. Os objetivos anteriores e outros, características e vantagens são evidentes a partir da seguinte descrição detalhada tomada em conjunto com os desenhos anexos, nos quais: [0007] A Figura IA é um diagrama que descreve um exemplo de sistema de computador host;
[0008] A Figura 1B é um diagrama mostrando um exemplo de emulação de sistema do computador host;
[0009] A Figura 1C é um diagrama que descreve um sistema de computador exemplo;
[00010] A Figura 2 é um diagrama que descreve um exemplo de rede de computadores;
[00011] A Figura 3 é um diagrama que descreve um elementos de um sistema de computador;
[00012] As Figuras 4A-4C ilustram elementos detalhados de um sistema de computador;
[00013] As Figuras 5A-5F mostram formato máquina de instruções de um sistema de computador;
[00014] A Figura 6 representa um exemplo de GPR Grande;
[00015] As Figuras 7A-7B apresentam um exemplo de fluxo de concretização da Palavra alta, e [00016] A Figura 8 mostra um exemplo de fluxo mudança de contexto.
[00017] DESCRIÇÃO: [00018] Uma concretização pode ser praticada por software (por vezes referido Código Interno Licenciado, firmware, Micro-código, Milli-código, Pico-código e similares, cada um dos quais seria consistente com as concretizações). Referindo a Figura IA, código de programa de software é normalmente acessado pelo processador também conhecido como CPU (Unidade Central de Processamento) 1 do sistema de 50 a partir de midia armazenamento de longo prazo 11, como um CD-ROM da unidade de fita, ou disco rigido. O código de programa de software pode ser realizada em qualquer um de uma variedade de meios conhecidos para utilização com um sistema de processamento de dados, tal como uma disquete, um disco rigido ou um CD-ROM. O código pode ser distribuído em tais meios, ou pode ser distribuído aos utilizadores a partir de 2 a memória do computador ou de armazenamento de um sistema de computador através de uma rede de 10 a outros sistemas de computador para uso pelos utilizadores de tais outros sistemas. a. Em alternativa, o código de programa pode ser incorporada na memória 2, e acedido pelo processador 1, utilizando o bus de processador. Tal código de programa inclui um sistema operativo que controla a função e a interação dos vários componentes do computador e um ou mais programas de aplicação. Código do programa é normalmente paginada de meios de armazenamento densas 11 de memória de alta velocidade 2, onde ele está disponível para o processamento pelo processador 1. As técnicas e os métodos de software que contém o código de programa na memória, em meios físicos e / ou a distribuição de códigos de software através de redes são bem conhecidas e não serão mais discutidas. Código do programa, quando criado e armazenado em um meio tangível (incluindo, mas não limitado a módulos de memória eletrônica (RAM), memória flash, discos compactos (CDs), DVDs, fitas magnéticas e como é muitas vezes referida como um produto de programa "computador " . O produto de programa de computador médio é tipicamente lido por um circuito de processamento, de preferência em um sistema de computador para a execução pelo circuito de processamento.
[00019] A Figura 1C ilustra uma estação de trabalho ou representante do sistema de hardware do servidor. O sistema 100 da Figura 1C compreende um sistema de computador representativo 101, tal como um computador pessoal, estação de trabalho ou um servidor, incluindo dispositivos periféricos opcionais. A estação de trabalho 101 inclui um ou mais processadores 106 e um bus utilizado para conectar e permitir a comunicação entre o processador (s) 106 e os outros componentes do sistema 101 de acordo com técnicas conhecidas. O barramento conecta o processador 106 para a memória 105 e armazenagem a longo prazo 107, que pode incluir uma unidade de disco rígido (incluindo qualquer um dos meios magnéticos, CD, DVD e da memória flash, por exemplo) ou uma unidade de fita, por exemplo. O sistema 101 também pode incluir um adaptador de interface de utilizador, que liga o microprocessador 106 através do barramento a um ou mais dispositivos de interface, tais como um teclado 104, o rato 103, uma impressora / scanner 110 e / ou outros dispositivos de interface, que pode ser qualquer dispositivo de interface de utilizador, tal como uma tela sensivel ao toque almofada, entrada digitalizado, etc 0 barramento também se conecta um dispositivo de exibição 102, tal como um ecrã de LCD ou um monitor, para o microprocessador 106 através de um adaptador de video. a. 0 sistema 101 pode comunicar com outros computadores ou redes de computadores, através de um adaptador de rede capaz de se comunicar com uma rede de 108 109. Adaptadores de rede exemplo são os canais de comunicação, Token Ring, Ethernet ou modems. Alternativamente, a estação de trabalho 101 pode comunicar através de uma interface sem fios, tal como um cartão de CDPD (dados em pacote digital celular) . A estação de trabalho 101 pode ser associado com tais outros computadores em uma rede local (LAN) ou uma rede de área ampla (WAN) , ou a estação de trabalho 101 pode ser um cliente em um arranjo de cliente / servidor com outro computador, etc Todos estes configurações, bem como o hardware e software de comunicações apropriado, são conhecidos na técnica.
[00020] A Figura 2 ilustra uma rede de processamento de dados 200, para o qual podem ser praticadas concretizações. A rede de processamento de dados 200 pode incluir uma pluralidade de redes individuais, tais como uma rede sem fios e uma rede com fios, cada uma das quais podem incluir uma pluralidade de estações de trabalho individuais 101 201 202 203 204. Além disso, como os peritos na técnica apreciarão, uma ou mais redes locais podem ser incluídos, em que uma LAN pode compreender uma pluralidade de estações de trabalho inteligentes acoplados a um processador do host. a. Ainda com referência à Figura 2, as redes também podem incluir mainframes ou servidores, tais como um computador gateway (servidor do cliente 206) ou servidor de aplicação (208 servidores remotos que podem acessar um repositório de dados e também pode ser acessado diretamente a partir de uma estação de trabalho 205) . Uma porta de entrada do computador 206 serve como um ponto de entrada em cada 207 de rede. Um gateway é necessária ao conectar um protocolo de rede para outro. A porta de entrada 206 podem ser, de preferência acoplado a uma outra rede (a Internet 207, por exemplo) por meio de uma ligação de comunicações. A porta de entrada 206 pode também ser acoplado directamente a uma ou mais estações de trabalho 101 201 202 203 204 utilizando uma ligação de comunicações. O computador gateway pode ser implementada utilizando um IBM eServer zSeries ™ ® z9 ® Server disponível da IBM Corp.
[00021] O código de programação de software é normalmente acessada pelo processador 106 do sistema 101 de longo prazo de armazenamento de midia 107, como uma unidade de CD-ROM ou disco rigido. 0 código de programação software pode ser incorporada em qualquer de uma variedade de meios conhecidos para utilização com um sistema de processamento de dados, tal como uma disquete, um disco rigido ou um CD-ROM. 0 código pode ser distribuído em tais meios, ou pode ser distribuída para os utilizadores 210 211 a partir da memória ou o armazenamento de um sistema de computador através de uma rede de sistemas de computador para uso por outros utilizadores de tais outros sistemas. a. Em alternativa, o código de programação 111 pode ser incorporado na memória 105, e acedida pelo processador 106 através do bus de processador. Tal código de programação inclui um sistema operativo que controla a função e a interação dos vários componentes do computador e um ou mais programas de aplicação 112. Código do programa é normalmente paginada de meios de armazenamento densas 107 a memória de alta velocidade 105 onde está disponível para o processamento pelo processador 106. As técnicas e os métodos de software que contém o código de programação na memória, em meios físicos e / ou a distribuição de códigos de software através de redes são bem conhecidas e não serão mais discutidas. Código do programa, quando criado e armazenado em um meio tangível (incluindo, mas não limitado a módulos de memória eletrônica (RAM), memória flash, discos compactos (CDs), DVDs, fitas magnéticas e como é muitas vezes referida como um produto de programa "computador". O produto de programa de computador médio é tipicamente lido por um circuito de processamento, de preferência em um sistema de computador para a execução pelo circuito de processamento.
[00022] A cache que é mais facilmente disponível para o processador (normalmente mais rápidos e menores do que os outros caches do processador) é menor do cache (LI ou nivel) e armazenamento principal (memória principal) é o mais elevado nível de cache (L3 se há 3 níveis). O cache de nível mais baixo é frequentemente dividida em um cache de instrução (I-Cache) segurando instruções de máquina a serem executadas e uma cache de dados (D-Cache) operandos Data Holding.
[00023] Com referência à Figura 3, uma concretização exemplar, o processador está representado por processador 106. Tipicamente um ou mais níveis de cache 303 são utilizados para tamponar os blocos de memória, a fim de melhorar o desempenho do processador. A cache 303 é uma memória intermédia de alta velocidade mantendo as linhas de dados de memória de cache que são susceptíveis de ser utilizados. Linhas de cache típicas são 64, 128 ou 256 bytes de dados de memória. Caches separados são frequentemente utilizados para armazenar em cache as instruções que para cache de dados. Cache coerência (sincronização de cópias de linhas em memória e os caches) é geralmente fornecida por vários "Snoop" algoritmos bem conhecidos na técnica. 105 de armazenamento principal de um sistema de processador é muitas vezes referido como um cache. Em um sistema de processador com 4 níveis de armazenagem do cache 303 principal 105 é por vezes referido como o cache de nível 5 (L5), uma vez que é tipicamente mais rápida e apenas ocupa uma parte do armazenamento não-volátil (DASD, fita, etc), que está disponível para um sistema de computador. Principais de armazenamento de 105 "caches" páginas de dados paginada e fora do 105 de armazenamento principal pelo sistema operacional. a. Um contador de programa (contador de instruções) 311 mantém o controle do endereço da instrução corrente a ser executado. Um contador de programa em az / arquitetura do processador é de 64 bits e pode ser truncado para 31 ou 24 bits para apoiar anteriores limites de endereçamento. Um contador de programa é normalmente incorporado em uma PSW (palavra de estado do programa) de um computador de tal modo que persiste durante a mudança de contexto. Deste modo, um programa em curso, tendo um valor do contador do programa, pode ser interrompida, por exemplo, o sistema operativo (mudança de contexto a partir do ambiente de programa para o ambiente do sistema operativo). A PSW do programa mantém o valor do contador do programa enquanto o programa não estiver ativo, e do contador de programa (no PSW) do sistema operacional é usado enquanto o sistema operacional está em execução. Tipicamente, o contador de programa é incrementado por um valor igual ao número de bytes de instrução corrente. RISC (Reduced Instruction Set Computing) instruções são normalmente comprimento fixo enquanto CISC (Complex Instruction Set Computing) instruções são normalmente de tamanho variável. Instruções do IBM z / Architecture são instruções CISC tendo um comprimento de 2, 4 ou 6 bytes. O contador Programa 311 é modificado por uma operação da chave de um contexto ou uma operação de desvio tomado de uma instrução de desvio, por exemplo. Em uma operação de mudança de contexto, o valor atual do contador do programa é guardado num Status Word Programa (PSW), juntamente com outras informações de estado sobre o programa a ser executado (tais como códigos de condição), e um valor de contador novo programa é carregado apontando para uma instrução de um módulo novo programa para ser executado. A operação de ramificação tomada é realizada de modo a permitir que o programa para tomar decisões ou laço dentro do programa, carregando o resultado da instrução de ramificação para o contador de programa 311. b. Tipicamente, uma unidade de busca de instruções 305 é empregue para buscar instruções em nome do processador 106. A unidade de busca ou vai buscar "próximas instruções sequenciais", instruções alvo de instruções desvio tomado, ou instruções de um primeiro programa após uma mudança de contexto. Instrução moderna buscar unidades muitas vezes empregam técnicas de prefetch para especulativamente prefetch instruções com base na probabilidade de que as instruções PREFETCHED possam ser usados. Por exemplo, uma unidade de busca pode pegar 16 bytes de instrução, que inclui a instrução sequencial seguinte e bytes adicionais de outras instruções sequenciais. c. As instruções buscadas são então executadas pelo processador 106. Em uma concretização, a instrução obtida (s) são passadas para uma unidade de envio 306 da unidade de busca. A unidade de envio de instruções decodifica a (s) e para a frente com a instrução que decodificado (s) em unidades apropriadas 307 308 310. Uma unidade de execução 307 irá tipicamente receber informações sobre instruções aritméticas decodificados a partir da unidade de busca de instruções 305 e irá executar operações aritméticas em operandos de acordo com o código de operação da instrução. Operandos são fornecidos para a unidade de execução 307, de preferência, quer a partir da memória 105, 309 ou arquitetada registos a partir de um campo de imediato a instrução a ser executada. Resultados da execução, quando armazenado, são armazenados na memória 105, 309 ou registos em hardware outra máquina (por exemplo, registos de controlo, PSW registadoras e semelhantes). d. 0 processador 106 tem, tipicamente, uma ou mais unidades de execução 307 308 310 para executar a função da instrução. Referindo a Figura 4A, uma unidade de execução 307 pode comunicar com arquitetados registos gerais 309, uma decodificação / expedição unidade 306 uma unidade de armazenamento de carga 310 e 401 unidades do processador outros por meio de uma interface lógica 407. Uma unidade de execução 307 pode empregar circuitos de registrar vários 403 404 405 para armazenar informações de que a unidade lógica aritmética (ALU) 402 irá operar. A ULA realiza operações aritméticas como somar, subtrair, multiplicar e dividir, bem como função lógica, como e, ou e ou-exclusivo (xor) , girar e mudar. De preferência, a ALU suporta operações especializadas que são dependentes de design. Outros circuitos podem fornecer outras instalações arquitetadas 408, incluindo códigos de condição e lógica recuperação de apoio, por exemplo. Tipicamente, o resultado de uma operação ALU é realizada em um registador de saida do circuito 406 que pode transmitir o resultado para uma variedade de funções de processamento. Existem muitos arranjos de unidades de processamento, a presente descrição destina-se apenas a proporcionar uma compreensão representativa de um exemplo de realização. e. Uma instrução ADD, por exemplo, seria executado em uma unidade de execução 307 tendo a aritmética e a funcionalidade lógica enquanto uma instrução de ponto flutuante por exemplo seria executado em uma execução de ponto flutuante com capacidade de ponto flutuante especializado. De preferência, uma unidade de execução opera em operandos identificados por uma instrução de execução de uma função opcode definida em operandos. Por exemplo, uma instrução ADD pode ser executada por uma unidade de execução 307 em operandos encontrados em dois registos 309 identificadas por registar campos da instrução. f. A unidade de execução 307 executa a adição aritmética sobre dois operandos e armazena o resultado em um terceiro operando onde o terceiro operando pode ser um registo terceiro ou um dos dois registos de código. A unidade de execução de preferência utiliza uma unidade lógica aritmética (ALU) 402 que é capaz de realizar uma variedade de funções lógicas, como Shift, Rodar, E, Ou e XOR, bem como uma variedade de funções algébricas, incluindo qualquer de somar, subtrair, multiplicar , divisão. Alguns 402 ALUs são projetados para operações escalares e alguns para ponto flutuante. Os dados podem ser Endian grande (em que o byte menos significativo está no endereço de byte mais alto) ou Endian Little (onde o byte menos significativo está no endereço mais baixo byte) dependendo da arquitetura. A IBM z / Architecture é Big Endian. Campos assinados podem ser sinal e magnitude, complemento de 1 ou complemento de 2 dependendo da arquitetura. Um número complemento de 2 é vantajosa na medida em que a ALU não precisa de criar uma capacidade de subtração desde tanto um valor negativo ou um valor positivo em complemento de 2 requer apenas a adição e dentro da ULA. Números são comumente descritos em taquigrafia, onde um campo de 12 bits define um endereço de um bloco de bytes 4096 e é comumente descrito como um bloco 4 Kbyte (Kilo-byte), por exemplo.
[00024] Dirigindo trimodal a. "trímodal abordando" refere-se à capacidade de alternar entre o 24-bit, 31-bit e 64-bit modos de endereçamento. Esta comutação pode ser feito por meio de: • O RAMO instruções de idade e salvar e SET MODE e ramo e modo de ajuste. Ambas as instruções definir o modo de endereçamento de 64 bits se o bit 63 do registrador R2 geral é um só. Se o bit 63 é zero, as instruções de definir o modo de 24 bits ou 31 bits de endereçamento se o bit 32 do registo é zero ou um, respectivamente. • O novo conjunto de instruções modo de endereçamento (SAM24, SAM31, e SAM64). A instrução define a 24 bits, 31 bits ou de 64 bits modo de endereçamento tal como determinado pelo código de operação.
Tri-modais Instruções trimodal abordar afeta as instruções gerais apenas na forma em que os endereços lógicos de armazenamento são tratados, exceto como segue. • O RAMO instruções e Link, RAMO E SALVAR, SALVAR E ramo e SET MODO RAMO modo, e SET, e RELATIVE ramo e salvar informações de lugar em posições de bits 32-39 do Cadastro Geral RI como em ESA/390 no 24-bit ou 31-bit modo de endereçamento ou local bits de endereço nessas posições de bits no modo de endereçamento de 64 bits. O parente novo ramo instrução E SALVAR LONGO faz o mesmo. • O RAMO instruções e salvar e SET MODE e ramo e lugar MODE SET um pouco na posição 63 do Registro Geral RI no modo de endereçamento de 64 bits. No 24-bit ou 31-bit de modo ramo, e guardar e estabelecer define o modo de bit de 63 a zero, e MODE SET ramo e deixa inalterada. * Certas instruções deixar pedaços 0-31 de um cadastro geral inalterada no modo 24-bit ou 31-bit de resolução, mas lugar ou informações de atualização de endereço ou comprimento em-los no modo de 64 bits de endereçamento. Estes são listados na programação nota 1 na página 7-7 e às vezes são chamados instruções modais.
Efeitos sobre a Bits 0-31 de um Registo Geral: [0001] Bits 0-31 de registos gerais são modificados por dois tipos de instruções . O primeiro tipo é uma instrução modal (consulte a seção anterior), quando a instrução é executada no modo de endereçamento de 64 bits. O segundo tipo é uma instrução que tem, independente do modo de endereçamento, ou um operando resultado de 64 bits em um único registo geral ou um operando resultado de 128 bits em um mesmo par-impar-geral registar. A maioria das instruções do segundo tipo são indicados por um "G", por si só ou em "GF," nas suas mnemônicos . Todas as instruções do segundo tipo são muitas vezes referidos como "G-tipo" instruções. Se um programa não for executado no modo de endereçamento de 64 bits (modo GPR Grande) e não contém uma instrução tipo G, que não pode alterar os bits 0-31 de qualquer registro geral (GPR modo Small) . Em alguns ambientes, uma porção de um programa de aplicação pode estar no modo de GPR pequeno e uma outra parte pode estar no modo de GPR Large. Em uma concretização, as instruções podem ser determinadas pequenas instruções do modo de GPR e outras, podem ser instruções de modo grande GPR, em que o modo de o computador é dependente do facto de ser executado uma instrução de modo pequeno GPR ou uma instrução de modo grande GPR. a. Com referência à Figura 4B, Ramo informações de instruções para a execução de uma instrução de desvio é normalmente enviado para uma unidade ramo 308 que muitas vezes emprega um algoritmo de previsão de desvios, como uma história tabela de ramificação 432 para prever o resultado do ramo antes de outras operações condicionais estão completos. O alvo da instrução de desvio atual será obtida e especulativamente executado antes das operações condicionais estão completos. Quando as operações condicionais são concluídas as instruções de desvio especulativamente executadas são concluídos ou descartada com base nas condições da operação condicional e os resultados especulado. A instrução de desvio típico pode testar códigos de condição e ramo para um endereço de destino, se os códigos de condição cumprir a exigência ramo da instrução de desvio, um endereço de destino pode ser calculado com base em vários números, incluindo as encontradas em campos de registro ou campo imediato da instrução por exemplo. A unidade de ramificação 308 pode empregar uma ALU 426 tendo uma pluralidade de circuitos de entrada de registo 427 428 429 e uma sarda de circuito registador 430. A unidade ramo 308 pode se comunicar com 309 registos gerais, decodificar expedição unidade de 306 ou 425 outros circuitos, por exemplo. b. A execução de um conjunto de instruções pode ser interrompido por uma variedade de razões, incluindo uma mudança de contexto iniciada por um sistema operativo, uma exceção de programa ou de erro causando uma mudança de contexto, um sinal de interrupção de I / 0 que causa uma mudança de contexto ou multi -enfiar actividade de uma pluralidade de programas (em um ambiente multi-threaded), por exemplo. De preferência uma ação de mudança de contexto salva informações de estado sobre um programa em execução e carrega informações de estado sobre outro programa está sendo chamado. Informações de estado pode ser salvo em registros de hardware ou na memória, por exemplo. Informações de estado compreende, preferivelmente, um valor de contador de programa aponta para uma instrução seguinte a ser executado, os códigos de condições, a informação de memória de tradução e arquitetados registar o conteúdo. Uma atividade de troca de contexto pode ser exercido por circuitos de hardware, programas aplicativos, programas do sistema operacional ou código de firmware (microcódigo, pico de código ou código interno licenciado (LIC) isoladamente ou em combinação. c. Um processador acessa operandos de acordo com métodos de instrução definidos. A instrução pode fornecer um operando imediato com o valor de uma porção da instrução, podem fornecer um ou mais campos de registo explicitamente apontando para quer registos de uso geral ou de registos para fins especiais (ponto flutuante regista por exemplo). A instrução pode utilizar registros implícitos identificados por um campo opcode como operandos. A instrução pode utilizar locais de memória para operandos. Uma localização de memória de um operando pode ser fornecida por um registo, um campo de imediato, ou uma combinação dos registos e campos imediata como exemplificado pela estação de deslocamento z / Architecture longa em que a instrução de registo define uma base de dados, um registo de índice e um campo de imediato (campo de deslocamento), que são adicionados em conjunto para fornecer o endereço do operando de memória, por exemplo. Aqui localização tipicamente implica uma localização na memória principal (armazenamento principal), a menos que seja indicado o contrário.
[0002] Com referência à Figura 4C, um processador acessa o armazenamento usando uma unidade de carga / loja 310. A unidade de carga / loja 310 pode executar uma operação de carga, obtendo o endereço do operando de destino na memória 303 e carregar o operando num registo 309 ou outro local de memória 303, ou pode executar uma operação de armazenamento, obtendo o endereço do operando de destino na memória 303 e armazenando os dados obtidos a partir de um registo 309 ou outro local de memória 303 na localização alvo operando na memória 303. A unidade de carga / loja 310 pode ser especulativa e pode acessar a memória em uma sequência que está fora de ordem em relação à sequência de instruções, no entanto, a unidade de carga / loja 310 deve manter a aparência dos programas que as instruções foram executadas em ordem. A unidade de carga / loja 310 pode se comunicar com 309 registos gerais, decodificar / expedição unidade 306, Cache / Memória interface de 303 ou 455 outros elementos e compreende circuitos de registro diferentes, ALUs 458 e lógica de controle 463 para calcular endereços de armazenamento e fornecer gasoduto sequenciamento para manter as operações em ordem. Algumas operações podem estar fora de ordem, mas a unidade de carga / loja fornece a funcionalidade para fazer a salda de operações a fim de aparecer no programa como tendo sido feita de modo que é bem conhecido na técnica. a. Preferencialmente aborda que um programa aplicativo "vê" são muitas vezes referidos como endereços virtuais. Endereços virtuais são muitas vezes referidos como "endereços lógicos" e "endereços eficazes". Estes endereços virtuais são virtuais em que eles são redirecionadas para a localização de memória fisica por um de uma variedade de tecnologias dinâmicos Address Translation (DAT) 312, incluindo, mas não limitado a simplesmente prefixando um endereço virtual com um valor de deslocamento, a tradução do endereço virtual através de uma ou mais tabelas de conversão, as tabelas de conversão de preferência compreendendo pelo menos um segmento de tabela e uma tabela de página sozinho ou em combinação, de preferência, a tabela de segmentos tendo uma entrada que aponta para a tabela de página. No z / Architecture, uma hierarquia de tradução é fornecida uma tabela incluindo primeira região, uma tabela segunda região, uma tabela de terceira região, uma tabela de segmentos e uma tabela de página opcional. O desempenho da tradução de endereços é muitas vezes melhorada através da utilização de uma Translation Look-aside Buffer (TLB) , que inclui entradas de mapeamento um endereço virtual para um local de memória associado fisica. As entradas são criadas quando DAT 312 traduz um endereço virtual utilizando as tabelas de tradução. A utilização posterior do endereço virtual pode então utilizar a entrada do TLB rápido do que as lentas acessos sequenciais tabela de tradução. TLB conteúdo pode ser gerido por uma variedade de algoritmos de substituição incluindo LRU (Least Recently Used). b. No caso em que o processador é um processador de um sistema multi-processador, cada processador tem a responsabilidade de manter os recursos compartilhados, tais como I / O, caches, TLBs e Memória interligados por coerência. Normalmente "snoop" tecnologias serão utilizadas na manutenção de coerência de cache. Em um ambiente de snoop, cada linha de cache pode ser marcada como estando em qualquer um de um estado comum, um estado exclusivo, um estado alterado, um estado inválido e similares, a fim de facilitar a partilha.
[0003] As unidades de I / O 304 fornecem o processador com meios para ligar a dispositivos periféricos, incluindo fitas, discos, impressoras, monitores e redes, por exemplo. I / O unidades são frequentemente apresentados ao programa de computador por Drivers de software. Em Mainframes, como o z / Series da IBM, adaptadores de canal e adaptadores Open System são I / O unidades do Mainframe que fornecem as comunicações entre o sistema operacional e os dispositivos periféricos. a. A seguinte descrição dos Princípios z / Arquitetura de Operação descreve uma visão de arquitetura de um sistema de computador: [0004] ARMAZENAMENTO: [0005] Um sistema de computador inclui informações na memória principal, bem como a abordagem, proteção e gravação de referência e de mudança. Alguns aspectos do tratamento incluem o formato de endereços, o conceito de espaço de endereço, os vários tipos de endereços, e a maneira pela qual um tipo de endereço é traduzido para um outro tipo de endereço. Alguns de armazenamento principal inclui locais de armazenamento permanentemente atribuídos. Armazenamento principal fornece ao sistema diretamente endereçável armazenamento rápido acesso dos dados. Ambos os dados e os programas devem ser carregados na memória principal (a partir de dispositivos de entrada), antes de poderem ser processados.
[0006] O armazenamento principal pode incluir um ou mais menores, armazenamentos acesso mais rápido-tampão, caches vezes chamados. Um cache é normalmente fisicamente associada a uma CPU ou um processador de I / O. Os efeitos, exceto no desempenho, da construção física e uso de meios de armazenamento distintas geralmente não são visíveis pelo programa.
[0007] Caches podem ser mantida em separado para instruções e dados para operandos. Informações dentro de uma cache é mantida em bytes contíguos em um limite de integrante chamado de bloco de cache ou linha de cache (ou linha, para abreviar). Um modelo pode fornecer um extrato instrução atributo de cache que retorna o tamanho de uma linha de cache em bytes. A modelo também pode fornecer dados Prefetch e prefetch dados relativos instruções longas que os efeitos do pré-busca de armazenamento em cache de dados ou instrução ou a liberação de dados do cache.
[0008] O armazenamento é visto como uma longa sequência horizontal de bits. Na maioria das operações, os acessos para o armazenamento em uma sequência da esquerda para a direita. A cadeia de bits é subdividida em unidades de oito bits. Uma unidade de oito bits é chamado um byte, que é o bloco de construção básico de todos os formatos de informação. Cada localização de byte de armazenamento é identificada por um número inteiro não negativo original, o qual é o endereço da localização de byte que ou, simplesmente, o endereço de byte. Localizações de byte adjacentes têm endereços consecutivos, começando com 0, à esquerda e prosseguindo em sequência da esquerda para a direita. Os endereços são binários inteiros não assinados e são 24, 31, ou 64 bits. a. A informação é transmitida entre o armazenamento e uma CPU ou um subsistema de canal de um byte, ou um grupo de bytes, de cada vez. A menos que especificado de outra forma, um grupo de bytes de armazenamento é dirigida pelo byte mais à esquerda do grupo. O número de bytes no grupo está implícita ou explicitamente especificado pela operação a ser executada. Quando utilizado em uma operação de CPU, um grupo de bytes é chamado de campo. Dentro de cada grupo de bytes, os bits são numerados em sequência da esquerda para a direita. Os bits mais à esquerda são por vezes referidos como os "de ordem superior" bits e os bits mais à direita como os "baixa ordem" bits. Bit números não são endereços de armazenamento, no entanto. Bytes só podem ser abordadas. Para operar em pedaços individuais de um byte no armazenamento, é necessário acessar o byte inteiro. Os bits em um byte são numeradas de 0 a 7, da esquerda para a direita. Os bits em um endereço pode ser numeradas 8-31 ou 40-63 para 24-bits de endereços ou 1-31 ou 33-63 para 31-bits de endereços, que são numeradas 0-63 para 64-bits de endereços. Dentro de qualquer formato de comprimento fixo de bytes múltiplos outro, os bits que constituem o formato são consecutivamente numeradas a partir de 0 . Para fins de deteção de erro, e em preferência para corrigir, um ou mais bits de verificação podem ser transmitidos com cada byte ou com um grupo de bytes. Tais bits de verificação são gerados automaticamente pela máquina e não pode ser directamente controlado pelo programa. A capacidade de armazenamento são expressos em número de bytes. Quando o comprimento de um campo de armazenamento operando-se implícito no código de operação de uma instrução, o campo é dito ter um comprimento fixo, o qual pode ser de uma, duas, quatro, oito ou 16 bytes. Campos maiores podem ser implícita para algumas instruções . Quando o comprimento de um campo de armazenamento operando-não está implicado mas é afirmado explicitamente, o campo é dito ter uma duração variável. De comprimento variável operandos podem variar em comprimento em incrementos de um byte. Quando a informação é colocada em armazém, o conteúdo de apenas aqueles locais de bytes são substituídos que estão incluídos no campo designado, mesmo que a largura do caminho físico para o armazenamento pode ser maior do que o comprimento do campo a ser armazenado. b. Certas unidades de informação deve estar em uma integral de contorno no armazenamento. A fronteira é chamado integrante para uma unidade de informação, quando o seu endereço de armazenamento é um múltiplo do comprimento da unidade em bytes. Nomes especiais são dados aos campos de 2, 4, 8, e 16 bytes de uma integral de contorno. A halfword é um grupo de dois bytes consecutivos em um limite de dois bytes e é o bloco básico de construção de instruções. Uma palavra é um grupo de quatro bytes consecutivos em um limite de quatro bytes. A doubleword é um grupo de oito bytes consecutivos em um limite de oito bytes . A quadword é um grupo de 16 bytes consecutivos em um limite de 16 bytes. Quando o armazenamento aborda halfwords designar, palavras, doublewords e quadwords, a representação binária do endereço contém um, dois, três, quatro ou mais à direita zero bits, respectivamente. As instruções devem estar em dois bytes limites integrais. Os operandos de armazenamento da maioria das instruções não têm limite de alinhamento de requisitos. c. Em modelos que implementam caches separados para instruções e operandos de dados, um atraso significativo pode ser experimentado se o programa armazena em uma linha de cache a partir do qual as instruções são posteriormente forçado, independentemente de a loja altera as instruções que são posteriormente buscadas.
[0009] INSTRUÇÕES: a. Em geral, a operação do processador é controlada por instruções de armazenamento que são executadas sequencialmente, um de cada vez, da esquerda para a direita, em uma sequência ascendente dos endereços de armazenamento.
Uma mudança na operação sequencial pode ser causada por ramificação, PSW LOAD, interrupções, as ordens de processador de sinal, ou uma intervenção manual. b. De preferência uma instrução compreende duas partes principais: • Um código de operação (código op), que especifica a operação a ser realizada • Opcionalmente, a designação dos operandos que participam.
[00010] formatos de instrução do z / Architecture são mostrados na Figura 5A-5F. Uma instrução pode simplesmente fornecer um código de operação 501, ou um código de operação e uma variedade de campos, incluindo operandos imediatos ou especificadores de registro para localizar operandos em registradores ou na memória. 0 Opcode pode indicar para o hardware que recursos implícitas (operandos etc) estão a ser utilizados, tais como um ou mais específicos registos de uso geral (GPRS). Operandos podem ser agrupadas em três classes: operandos localizados em registradores, operandos imediatos, e operandos no armazenamento. Operandos pode ser explicita ou implicitamente designado. Registro operandos podem ser localizados em geral, registros de ponto flutuante de acesso, ou controle, com o tipo de registrar identificada pelo código ορ. Ο registo contendo ο operando é especificado por meio da identificação do registo num campo de quatro bits, o chamado campo R, na instrução. Para algumas instruções, um operando está localizado num registo implicitamente designado, o cadastro está sendo implícito o código op. Operandos imediatos estão contidos dentro da instrução, e de 8 bits, 16 bits ou 32 bits de campo contendo o operando imediato é chamado o campo I. Os operandos em armazenagem podem ter um comprimento implícita; ser especificado por uma máscara de bits; ser especificado por uma especificação de comprimento de quatro bits ou oito bits, o chamado campo de L, na instrução, ou têm um comprimento especificado por o conteúdo de um modo geral registre-se. Os endereços de operandos em armazenamento são especificadas por meio de um formato que usa o conteúdo de um registo geral, como parte do endereço. Isto torna possível a: 1. Especificar um endereço completo, usando uma notação abreviada 2 . Executar a manipulação de endereço através de instruções que empregam registos gerais para operandos 3. Modificar endereços por meio do programa sem alteração do fluxo de instruções 4 . Operar independente da localização das áreas de dados diretamente usando endereços recebidos de outros programas [00011] O endereço usado para se referir ao armazenamento ou está contido num registo designado pelo campo R na instrução ou é calculada a partir de um endereço de base, índice e deslocamento, especificado pelo B, X, e os campos de D, respectivamente, na instrução. Quando a CPU está no modo de acesso de registo, um campo B ou R pode designar um registo de acesso para além de ser utilizado para especificar um endereço. Para descrever a execução das instruções, os operandos são preferencialmente designados como operandos primeiro e segundo e, em alguns casos, o terceiro e quarto operandos. Em geral, os dois operandos participar de uma execução da instrução, o resultado e substitui o primeiro operando. a. Uma instrução é um, dois, ou três halfwords de comprimento e deve ser localizado no armazenamento em um limite de halfword. Fazendo referência às Figs. 5A - formatos de instrução 5F representando, cada instrução está em um dos 25 formatos básicos: E 501, I 502, 503 504 RI, RIE 505 551 552 553 554, 506 507 RIL, RIS 555, RR 510, RRE 511, RRF 512 513 514, RRS, RS 516 517, o RSI 520, RSL 521, RSY 522 523, RX 524, RXE 525, RXF 526, rxy 527, S 530, SI 531, SIL 556, Siy 532, SS 534 533 535 536 537, SSE 541 e 542 SSF, com três variações de RRF, dois de RI, RIL, RS, e RSY, cinco de RIE e SS .
[00012] Os nomes de formato indicam, em termos gerais, as classes de operandos que participam na operação e alguns detalhes sobre os campos: • RIS indica uma operação de registo e imediata e a operação de armazenagem. • RRS denota um cadastro e registrar a operação e uma operação de armazenamento. • SIL indica uma operação de armazenamento, e imediatamente a seguir, com um campo de 16 bits imediata.
[00013] Nos formatos I, RR, RS, RSI, RX, SI, e SS, o primeiro byte de uma instrução contém o código op. No E, RRE, RRF, S, SIL, e formatos de SSE, os dois primeiros bytes de uma instrução de conter o código op, excepto que, para algumas instruções no formato de S, o código op é apenas o primeiro byte. Nos formatos de RI e RIL, o código op é o primeiro byte e posições de bits 12-15 de uma instrução. Na RIE, RIS, RRS, RSL, RSY, RXE, RXF, rxy e formatos Siy, o código op é o primeiro byte e o byte sexto de uma instrução. Os primeiros dois bits do primeiro byte ou apenas o código op de especificar o comprimento e formato da instrução, como se segue: a. No RR, RRE, RRF, RRR, RX, RXE, RXF, rxy, RS, RSY, RSI, RI, RIE, e formatos de RIL, o conteúdo do registo designado pela RI . campo são chamados primeiro operando. O registo contém o primeiro operando é por vezes referido como o "local primeiro operando", e às vezes como "registo RI". Nos formatos de RR, RRE, DRR e RRR, o campo R2 designa o registo com o segundo operando, e o campo de R2 podem designar o mesmo registo, como RI . No RRF, RXF, RS, RSY, RSI, e formatos de RIE, a utilização do campo R3 depende da instrução. No RS e formatos RSY, o campo de R3 podem em vez disso ser um campo M3 especificando uma máscara. 0 campo R designa um acesso geral ou registar nas instruções gerais, um cadastro geral das instruções de controle, e um registo de ponto flutuante ou um cadastro geral das instruções de ponto flutuante. Para registos gerais e de controlo, o registo é operando em posições de bits 32-63 do registo de 64 bits ou ocupa todo o registo, dependendo da instrução. b. No formato I, o conteúdo do campo de oito bits de dados imediatos, o campo I da instrução, são directamente utilizados como operando. No formato de SI, o conteúdo do campo de oito bits de dados imediatos, o campo 12 da instrução, são utilizados directamente como o segundo operando. Os campos BI e Dl especificar o primeiro operando, o que corresponde a um byte de comprimento. No formato Siy, o funcionamento é o mesmo, excepto que os campos DH1 e DL1 são usados em vez de um campo de Dl. No formato de RI para as instruções ADD halfword IMEDIATA, COMPARAR halfword CARGA IMEDIATA halfword, imediato e multiplicar halfword imediato, o conteúdo de 16-bit 12 campo da instrução são usados diretamente como um inteiro binário assinado, e o campo RI especifica o primeiro operando, que é de 32 ou 64 bits de comprimento, dependendo da instrução. Para o teste de instrução sob máscara (TMHH, TMHL, TMLH, TMLL), o conteúdo do campo de 12 são usados como uma máscara, e o campo de RI especifica o primeiro operando, que tem 64 bits de comprimento.
[00014] Para as instruções de uso imediato, e IMEDIATA, ou imediata, e carregar LÓGICO imediato, o conteúdo do campo 12 são usados como um binário inteiro não assinado ou um valor lógico, e no campo RI especifica o primeiro operando, que é de 64 bits de comprimento. Para as instruções relativa-ramo no RI e formatos de RSI, o conteúdo de 16 bits do campo de 12 são usados como um binário inteiro assinado designar um número de halfwords. Este número, quando adicionada ao endereço da instrução de ramificação, especifica o endereço do ramo. Para relativa-filial instruções no formato RIL, o campo 12 é de 32 bits e é usado da mesma maneira.
[00015] Para obter as instruções relativa-ramo no RI e formatos de RSI, o conteúdo de 16 bits do campo de 12 são usados como um binário inteiro assinado designar um número de halfwords. Este número, quando adicionada ao endereço da instrução de ramificação, especifica o endereço do ramo. Para relativa-filial instruções no formato RIL, o campo 12 é de 32 bits e é usado da mesma maneira. Para as instruções RIE formato COMPARAR parente imediato e ramo e comparar parente imediato e ramo lógico, o conteúdo da 8-bit 12 campo é utilizado diretamente como o segundo operando. Para as instruções RIE formato COMPARAR IMEDIATA e Branch, COMPARAR IMEDIATO E TRAP, COMPARAR LÓGICO IMEDIATA e ramo, e comparar LÓGICO IMEDIATO E TRAP, o conteúdo do 16 - campo 12 bit são usados diretamente como o segundo operando. Para as instruções RIE formato COMPARAR e ramo RELATIVE, COMPARAR parente imediato e Branch, COMPARAR RELATIVA LÓGICO e ramo, e comparar parente imediato e ramo lógico, o conteúdo de 16-bit 14 campo são usados como um inteiro binário assinado designação de um número halfwords de que são adicionadas ao endereço da instrução para formar o endereço do ramo. a. Para as instruções RIL formato ADD IMEDIATA, ADD lógica imediata, ADD lógico com ASSINADO IMEDIATA, COMPARAR IMEDIATA, COMPARAR LÓGICO IMEDIATA, carga imediata, e multiplicar ÚNICO imediato, o conteúdo do 32-bit 12 campo são usados diretamente como um operando o segundo. b. Para as instruções RIS-formato, o conteúdo da 8 -campo pouco 12 são usados diretamente como o segundo operando. No formato SIL, o conteúdo do campo de 12 de 16 bits são utilizados directamente como o segundo operando. Os campos BI e Dl especificar o primeiro operando, conforme descrito abaixo.
[00016] Na RSL, SI, SIL, SSE, e a maioria dos formatos de SS, o conteúdo do registo geral designados pelo campo BI são adicionados ao conteúdo do campo de Dl para formar o endereço do primeiro operando. No RS, RSY, S, Siy, SS, e formatos de SSE, o conteúdo do registo geral designados pelo campo B2 são adicionados ao conteúdo do campo ou campos DH2 D2 e DL2 para formar o endereço do segundo operando. Nos formatos de RX, RXE, RXF, e rxy, o conteúdo de registos da geral designada pelos campos X2 e B2 são adicionados ao conteúdo do campo ou campos DH2 D2 e DL2 para formar o endereço do segundo operando. Nos formatos e RIS RRS, e em um formato de SS, o conteúdo do registo geral designado pelo campo B4 são adicionados ao conteúdo do campo de D4 para formar o endereço de quarta operando. a. No formato SS com um único campo de comprimento, oito bits, para as instruções e (NC) , exclusiva ou (XC) , Mover (MVC) , Numerics movimento, ZONAS movimento, e OU (OC) , L especifica o número de bytes de operandos adicionais à direita do byte designado pelo endereço do primeiro operando. Portanto, o comprimento em bytes do primeiro operando é 1-256, correspondente a um código de comprimento de L de 0-255. Resultados de armazenamento substituir o primeiro operando e nunca são armazenados fora do campo especificado pelo endereço de e comprimento. Neste formato, o segundo operando tem o mesmo comprimento que o primeiro operando. Há variações da definição anterior que se aplicam a edição, edite e Marcos, PACK ASCII, UNICODE PACK, TRADUZIR, Tradução e ensaio, UNPACK ASCII e Unicode UNPACK.
[00017] No formato SS com dois campos de comprimento, e no formato RSL, Ll especifica o número de bytes de operandos adicionais à direita do byte designado pelo endereço do primeiro operando. Portanto, o comprimento em bytes do primeiro operando é 1-16, que corresponde a um código de comprimento de Ll de 0-15. Da mesma forma, L2 especifica o número de bytes de operandos adicionais à direita do local designado pelos resultados do segundo operando de endereços substituir o primeiro operando e nunca são armazenados fora do campo especificado pelo endereço de e comprimento. Se o primeiro operando é mais longo do que o segundo, o segundo operando se estende à esquerda com zeros até o comprimento do primeiro operando. Esta extensão não modifica o segundo operando no armazenamento. No formato SS com dois campos R, como usado pelo movimento para o primário, MOVER ao secundário, e mover-se com instruções chave, o conteúdo do Registro Geral especificados pelo campo RI são um valor de 32 bits sem sinal chamado o comprimento real. Os operandos são ambos de um comprimento de chamada o comprimento eficaz. O comprimento eficaz é igual ao comprimento real ou 256, o que for menor. As instruções de definir o código de condição para facilitar a programação de um ciclo para mover o número total de bytes especificado pelo comprimento real. 0 formato SS com dois campos R também é usado para especificar um intervalo de registros e dois operandos de armazenamento para a instrução disjuntos carregar vários e especificar um ou dois registros e um ou dois operandos de armazenamento para a instrução de operação EXECUTAR bloqueado.
[00018] Um zero em qualquer um dos Bl, B2, X2, ou campos B4 indica a ausência do componente de endereço correspondente. Para o componente ausente, um zero será usado informando a soma intermediário, independentemente do conteúdo de registo geral 0. Um deslocamento de zero não tem significado especial.
[00019] Bits 31 e 32 da PSW atual são os bits de modo de endereçamento. Bit 31 é o bit de modo estendido de endereçamento, e de 32 bits é o pouco básicos de endereçamento modo. Estes bits de controlar o tamanho do endereço efectivo produzido pela geração de endereços. Quando os bits 31 e 32 da PSW atual ambos são zeros, a CPU está em modo 24-bit de resolução, e 24-bit de instruções e operandos endereços eficazes são gerados. Quando o bit 31 da PSW corrente é zero e de 32 bit é um, o CPU está no modo de endereçamento de 31 bits, 31 bits e de instruções e operandos eficazes endereços são gerados. Quando os bits 31 e 32 da PSW atual são tanto um, o processador está no modo de endereçamento de 64 bits e endereços de 64 bits de instrução e operando eficazes são gerados. Execução de instruções pela CPU envolve a geração de endereços das instruções e operandos.
[00020] Quando uma instrução é buscada a partir do local designado pela PSW corrente, o endereço da instrução é aumentado pelo número de bytes na instrução, e a instrução é executada. Os mesmos passos são repetidos, usando o novo valor do endereço de instrução para buscar a próxima instrução na sequência. No modo de 24-bit de resolução, os endereços de instrução envolver, com o meia palavra no endereço instrução 224-2 sendo seguido pelo meia palavra no endereço instrução 0. Assim, no modo de endereçamento de 24 bits, efectuar qualquer posição de bit da PSW 104, como um resultado de atualizar o endereço de instrução, é perdido. No modo de 31 bits ou 64 bits de endereçamento, a instrução dirige similarmente envolvente, com o endereço da instrução no halfword 231-2 ou 264-2, respectivamente, seguindo-se o endereço da instrução no halfword 0 . A realização de PSW posição bit 97 ou 64, respectivamente, está perdido.
[00021] Um endereço operando que se refere ao armazenamento é derivado de um valor intermédio, que ou está contido num registo designado por um campo R na instrução ou é calculada a partir da soma de três números binários: endereço de base, indice e deslocamento . 0 endereço de base (B) é um número de 64 bits contidos num registo geral especificado pelo programa, de um campo de quatro bits, o chamado domínio B, na instrução. Endereços de base pode ser utilizada como um meio de tratar de forma independente cada um dos programas e área de dados. Nos cálculos do tipo de matriz, ele pode designar a localização de uma matriz, e, no registro do tipo de processamento, pode-se identificar o registro. O endereço base fornece para abordar o armazenamento inteiro. O endereço de base pode também ser usado para a indexação.
[00022] O indice de (X) é um número de 64 bits contidos num registo geral designado pelo programa, de um campo de quatro bits, o chamado campo de X, na instrução. Ele está incluído somente no endereço indicado pelo RX-RXE-, e rxy formato instruções. O RX-, RXE-RXF-e rxy formato instruções permitirem dupla indexação, isto é, o índice pode ser usado para fornecer o endereço de um elemento dentro de uma matriz.
[00023] 0 deslocamento (D) é um número de 12 bits ou de 20 bits contidos em um campo, o campo chamado D, na instrução. Um deslocamento de 12 bits não está assinado e prevê endereçamento relativo de até 4.095 bytes para além do local designado pelo endereço base. Um deslocamento de 20 bits é assinado e prevê endereçamento relativo de até 524.287 bytes além da localização do endereço de base ou de até 524.288 bytes antes dele. Na matriz do tipo de cálculos, o deslocamento pode ser usado para especificar um dos muitos itens associados com um elemento. No processamento de registos, o deslocamento pode ser utilizado para identificar artigos dentro de um registo. Um deslocamento de 12 bits é em posições de bits 20-31 de instruções de determinados formatos. Em alguns formatos de instruções, um deslocamento de 12 bits é também a segunda na instrução, em posições de bits 36-47.
[00024] Um deslocamento de 20 bits é em instruções de apenas RSY o, rxy, ou formato Siy. Nestas instruções, o campo D consiste num campo de DL (baixo), em posições de bits 20-31 e de um campo de DH (alto), em posições de bits 32-39. Quando o mecanismo de longo deslocamento está instalado, o valor numérico do deslocamento é formada, adicionando o conteúdo do campo de DH no lado esquerdo o conteúdo do campo de DL. Quando o mecanismo de longo deslocamento não estiver instalado, o valor numérico do deslocamento é formada, adicionando oito bits zero no lado esquerdo o conteúdo do campo de DL, e os conteúdos do campo de DH são ignorados.
[00025] Ao formar a soma intermediário, o endereço de base e índice são tratados como inteiros de 64 bits binários . Um deslocamento de 12 bits são tratados como um inteiro de 12-bit binário unsigned, e 52 bits de zero são acrescentados à esquerda. Um deslocamento de 20 bits são tratados como um inteiro de 20-bit binário assinado, e 44 bits iguais para o bit de sinal são acrescentados à esquerda. Os três números são adicionados como 64 bits binários, ignorando estouro. A soma é sempre 64 bits de comprimento e é usado como um valor intermediário para formar o endereço gerado. Os bits do valor intermédio são numerados 0-63. Um zero em qualquer um dos BI, B2, X2, ou campos B4 indica a ausência do componente de endereço correspondente. Para o componente ausente, um zero será usado na formação da soma intermediário, independentemente do conteúdo de registo geral 0. Um deslocamento de zero não tem significado especial.
[00026] Quando uma descrição da instrução especifica que o conteúdo de um registo geral designada por um campo R é utilizado para endereçar um operando em armazenagem, o conteúdo do registo são utilizados como o valor de 64 bits intermediário .
[00027] Uma instrução pode designar o mesmo registo geral tanto para a computação endereço e como a localização de um operando. Computação do endereço é completado antes de registos, se houver, são alteradas pela operação. Salvo indicação em contrário, em uma definição instrução individual, o endereço gerado operando designa o byte mais à esquerda de um operando no armazenamento.
[00028] 0 endereço gerado está sempre operando de 64 bits de comprimento, e os bits são numerados de 0-63. A maneira na qual o endereço gerado é obtido a partir do valor intermédio depende do modo atual de endereçamento. No modo de 24 bits de endereçamento, os bits 0-39 do valor intermédio são ignoradas, os bits 0-39 do endereço gerado é forçado a ser zero, e os bits 40-63 do valor intermédio tornar os bits 40-63 do gerado endereço. No modo de endereçamento de 31 bits, os bits 0-32 do valor intermédio são ignoradas, os bits 0-32 do endereço gerado é forçado a ser igual a zero, e os bits 33-63 do valor intermédio tornar os bits 33-63 do gerado endereço. No modo de endereçamento de 64 bits, os bits 0-63 do valor intermédio se os bits 0-63 do endereço gerado. Os valores negativos podem ser usados em registos de indice e endereço base. Bits 0-32 desses valores são ignorados no modo 31-bit de resolução e bits 0-39 são ignorados no modo 24-bit de endereçamento.
[00029] Para instruções de desvio, o endereço da próxima instrução a ser executada quando o ramo é tomada é chamado de endereço ramo. Dependendo da instrução de desvio, o formato de instrução pode ser RR, RRE, RX, rxy, RS, RSY, RSI, RI, RIE, ou RIL. No RS, RSY, RX, e formatos rxy, o endereço de ramo é especificado por um endereço de base, um deslocamento, e, no RX e formatos rxy, um índice. Nestes formatos, a geração do valor intermédio segue as mesmas regras para a geração do valor operando endereço intermédio. Nos formatos de RR e RRE, o conteúdo do registo geral designados pelo campo R2 são usados como o valor médio a partir do qual o endereço de ramificação é formada. Registo Geral 0 não pode ser designado como contendo um endereço de ramo. Um valor de zero no campo R2 faz com que a instrução a ser executada sem ramificação.
[00030] As instruções relativa-filiais estão no RSI, RI, RIE, e formatos de RIL. Nos formatos de RSI, RI, e RIE instruções para a ramificação relativa, o conteúdo do campo de 12 são tratados como um binário inteiro assinado de 16 bits, que designa um número de halfwords. No formato RIL, o conteúdo do campo de 12 são tratados como um binário inteiro assinado de 32 bits, que designa um número de halfwords. 0 endereço de ramo é o número de halfwords designadas pelo campo 12 adicionada ao endereço da instrução relativa-ramo. a. 0 valor de 64 bits intermediário para uma instrução de ramificação relativa no RSI, RI, RIE ou formato RIL é a soma de dois addends, com o excesso de posição de bit 0 ignoradas. No formato de RSI, RI, ou RIE, o adendo primeiro é o conteúdo do campo de 12 com um bit zero adicionada à direita e 47 bits iguais ao bit de sinal do conteúdo anexas à esquerda, excepto que, para comparar e BRANCH RELATIVE, COMPARAR IMEDIATO E RELATIVA BRANCH, COMPARAR RELATIVA lógico e ramo e COMPARAR parente imediato e ramo LÓGICO, o adendo primeiro é o conteúdo do campo 14, com pedaços acrescentados como descrito acima para o campo 12 . No formato RIL, o adendo primeiro é o conteúdo do campo de 12 com um bit zero adicionada à direita e 31 bits iguais ao bit de sinal do conteúdo anexas à esquerda. Em todos os formatos, o adendo segundo é o endereço de 64 bits da instrução de desvio. O endereço da instrução de ramificação é o endereço da instrução no PSW antes que o endereço é atualizada para abordar a instrução sequencial seguinte, ou é o endereço do destino da instrução EXECUTE se EXECUTE é usado. Se EXECUTE é utilizado no modo de 24 bits ou 31 bits de endereçamento, o endereço da instrução de ramificação é o endereço de destino, com 40 ou 33 zeros, respectivamente, apenso à esquerda. b. O endereço da agência é sempre 64 bits de comprimento, com os bits numerados 0-63. O endereço da agência substitui os bits 64-127 da PSW atual. A maneira na qual o endereço de ramo é obtido a partir do valor intermédio depende do modo de endereçamento. Para essas instruções de ramificação que alteram o modo de endereçamento, o novo modo de endereçamento é usado. No modo de 24-bit de resolução, bits 0-39 do valor intermediário são ignorados, os bits 0-39 do endereço de desvio são feitas zeros e bits 40-63 do valor intermediário tornar pedaços 40-63 do endereço ramo. No modo de 31-bit de resolução, bits 0-32 do valor intermediário são ignorados, os bits 0-32 do endereço de desvio são feitas zeros e bits 33-63 do valor intermediário tornar pedaços 33-63 do endereço ramo. No modo de endereçamento de 64 bits, os bits 0-63 do valor intermediário tornar bocados 0-63 do endereço ramo.
[00031] Para instruções de desvio diversas ramificações depende de satisfazer uma condição especificada. Quando a condição não for satisfeita, o ramo não é tomada, a execução da instrução normal, sequencial continua, e o endereço da agência não é utilizado. Quando um ramo é tomada, os bits 0-63 do endereço ramo substituir pedaços 64-127 da PSW atual. 0 endereço da filial não é usado para acessar o armazenamento como parte da operação da filial. Uma exceção especificação devido a um endereço ramo estranho e exceções de acesso devido à busca da instrução no local da filial não são reconhecidos como parte da operação da filial mas são reconhecidos como exceções associados à execução da instrução no local do ramo.
[00032] A instrução de desvio, como ramo e SAVE, pode designar o mesmo registro geral para a computação endereço ramo e como a localização de um operando. Ramo endereço-cálculo é completado antes que o restante da operação é realizada. a. A palavra programa de status (PSW), descrita no capitulo 4 "Control" contém informações necessárias para a execução do programa apropriado. O PSW é usado para controlar e sequenciação de instruções para realizar e indicar o estado da CPU em relação ao programa que está a ser executada. A PSW ativa ou controle é chamado de PSW atual. Instruções de desvio desempenhar as funções de tomada de decisões, controle de loop, e articulação sub-rotina. A instrução de desvio afeta sequenciamento instrução, introduzindo um endereço de instrução novo no PSW atual. As instruções relativa-ramo com um 16-bit 12 campo permitem ramificação para um local a um comprimento de até mais de 64 K - 2 bytes ou menos 64 K bytes relativos à localização da instrução de ramo, sem a utilização de um registo base. As instruções relativa-ramo com um 32-bit 12 campo permitem ramificação para um local a um comprimento de até 4G plus - 2 bytes ou bytes menos de 4G em relação ao local da instrução de ramo, sem a utilização de um registo base. b. Facilidades para a tomada de decisão são fornecidos pela sucursal na condição, RELATIVA BRANCH na condição, e RELATIVE filial em condição de longo instruções. Estas instruções inspecionar um código de condição que reflete o resultado de uma maioria da aritmética, lógica, e I / O operações. O código de condição, que consiste em dois bits, proporciona quatro possíveis códigos de condição configurações: 0, 1, 2, e 3. c. O significado especifico de qualquer definição depende da operação que define o código de condição. Por exemplo, o código de condição reflete condições como zero, zero, operando primeira alta, de estouro, iguais e subcanal ocupado. Uma vez definido, o código de condição permanece inalterada até que seja modificada por uma instrução que faz com que um código de condição diferente a ser definido.
[00033] O controle de loop pode ser realizada pelo uso de galho em CONDIÇÃO, RELATIVA BRANCH na condição, e RELATIVE filial em condição de longo para testar o resultado da aritmética endereço e operações de contagem. Para algumas combinações particularmente frequentes de aritmética e testes, FILIAL EM CONTAGEM, ramo em alto indice, e filial em baixo indice igual ou são fornecidos, e filiais-relativa equivalentes destas instruções também são fornecidos. Estes ramos, sendo especializada, fornecer um melhor desempenho para essas tarefas.
[00034] A ligação de Subrotina quando uma mudança do modo de endereçamento não é necessário é fornecido pelo ramo e LINK e RAMO E SALVAR instruções. (Essa discussão de ramo e SALVAR aplica-se também para o ramo RELATIVA E SALVAR e ramo RELATIVA E SALVAR LONG.) Ambas as instruções permitir não só a introdução de um endereço de nova instrução, mas também a preservação de um endereço de retorno e informações associadas. O endereço de retorno é o endereço da instrução seguinte à instrução de ramificação durante a armazenagem, com exceção de que é o endereço da instrução na sequência de uma instrução EXECUTE que tem a instrução de ramificação, como o seu alvo. a. Ambos ramo e LINK e RAMO E SALVAR ter um campo de RI . Eles formam um endereço de desvio, por meio de campos que dependem da instrução. As operações das instruções são resumidas como segue: · No modo de 24-bit de resolução, ambas as instruções coloque o endereço de retorno em posições de bits 40-63 do Cadastro Geral RI e deixar pedaços de 0-31 que registrar inalterado. Lugares ramo e vincular o código de instrução de comprimento para a instrução e também o código de condição e uma máscara de programa da PSW atual em posições de bits de 32-39 geral RAMO RI registrar e guardar lugares zeros nas posições de bits. • No modo de 31-bit de resolução, ambas as instruções coloque o endereço de retorno em posições de bits 33-63 e uma um pouco na posição 32 do Registro Geral Rl, e deixam os bits 0-31 do registo inalterado. • No modo de endereçamento de 64 bits, ambas as instruções coloque o endereço de retorno em posições de bits 0-63 do Cadastro Geral Rl . • Em qualquer modo de endereçamento, ambas as instruções gerar o endereço de ramo sob o controlo do modo atual de endereçamento. As instruções de bits 0-63 lugar do endereço ramo em posições de bits 64-127 da PSW. No formato de RR, ambas as instruções não realizar a ramificação se o campo R2 da instrução é zero. b. Ele pode ser visto que, no endereçamento RAMO modo de 24-bit ou 31-bit, e salvar coloca o bit de resolução em modo básico, de 32 bits da PSW, em posição de 32 bits do Cadastro Geral RI. Branch and link faz isso no modo 31-bit de resolução. Renovo instruções e salvar e SET MODE e ramo e MODO SET são para uso quando uma mudança do modo de endereçamento é necessário durante a ligação. Estas instruções têm campos RI e R2 . As operações das instruções encontram-se resumidos como segue: • RAMO E SALVAR E SET modo define o conteúdo do registo Rl geral o mesmo que RAMO E SALVAR. Além disso, a instrução coloca o bit de endereçamento estendido modo, o bit 31 da PSW, na posição do bit 63 do registo. • MODO ramo e SET, se Rl é diferente de zero, executa os seguintes. No 24 - ou 31-bit modo, coloca 32 bits da PSW na posição de 32 bits do registo geral Rl, e deixa pedaços 0-31 e 33-63 do registo inalterado. Note-se que pouco 63 do registo deve ser zero se o registro contém um endereço de instrução. No modo de 64-bit, a instrução coloca 31 bits da PSW (um) na posição 63 do bit geral registo Rl, e deixa pedaços 0-62 do registo inalterado. • Quando R2 é diferente de zero, as duas instruções definir o modo de abordar e realizar a ramificação da seguinte forma. Bit 63 do registo R2 geral é colocado na posição do bit 31 da PSW. Se o bit 63 é igual a zero, o bit 32 do registo é colocado na posição do bit 32 do PSW. Se o bit 63 é um, PSW 32 bit é definido como um. Em seguida, o endereço de ramo é gerada a partir do conteúdo do registo, excepto com o bit 63 do registo tratado como um zero, sob o controlo de um novo modo de endereçamento. As instruções de bits 0-63 lugar do endereço ramo em posições de bits 64-127 da PSW. Bit 63 do registo R2 geral permanece inalterado e, portanto, pode ser uma na entrada para o programa de chamada. Se R2 é o mesmo que RI, os resultados no registo geral designada são tal como especificado pelo registo Rl.
[00035] INTERRUPÇÕES (mudança de contexto): [00036] O mecanismo de interrupção do processador central permite alterar o seu estado como resultado de condições externas à configuração, dentro da configuração, ou dentro do próprio processador. Para permitir uma resposta rápida às condições de alta prioridade e reconhecimento imediato do tipo de condição, as condições de interrupção são agrupados em seis classes: de entrada, externa / saida, verificação de máquina, o programa, reiniciar e chamada supervisor.
[00037] Uma interrupção consiste em armazenar o PSW atual como um velho PSW, armazenar as informações de identificação da causa da interrupção, e obtendo uma nova PSW. Processamento é retomado como especificado pelo PSW novo. O PSW antigo armazenado em uma interrupção normalmente contém o endereço da instrução que teria sido executada a seguir se não ocorreu a interrupção, permitindo assim a retomada do programa interrompido. Para interrupções de programas e supervisor chamada, a informação armazenada também contém um código que identifica o tamanho da última instrução executada, permitindo assim o programa para responder à causa da interrupção. No caso de algumas condições do programa para o qual a resposta normal é re-execução da instrução causando a interrupção, o endereço da instrução directa identifica a última instrução executada.
[00038] Com exceção de reinicio, uma interrupção pode ocorrer apenas quando o processador está no estado de funcionamento. A interrupção reinicio pode ocorrer com a CPU em qualquer estado parado ou em funcionamento.
[00039] Qualquer exceção acesso é reconhecido como fazendo parte da execução da instrução com o qual está associado à exceção. Uma exceção de acesso não é reconhecida quando a CPU tenta prefetch de um local disponível ou detecta alguma condição de acesso de exceção outro, mas uma instrução de desvio ou uma interrupção muda a sequência de instruções de modo que a instrução não é executada. Cada instrução pode causar uma exceção de acesso a ser reconhecido por causa de instrução buscar. Além disso, as exceções de acesso associados a execução da instrução pode ocorrer devido a um acesso a um operando no armazenamento. Uma exceção de acesso devido à busca de uma instrução é indicada quando o halfword primeira instrução não pode ser obtida sem encontrar a exceção. Quando a primeira meia palavra da instrução não tem acesso exceções, as exceções de acesso pode ser indicado para halfwords adicionais de acordo com o comprimento especificado por instrução os dois primeiros bits da instrução, no entanto, quando a operação pode ser executada sem acesso a um segundo ou terceiro halfwords da instrução, é imprevisível se a exceção de acesso é indicado para a parte não utilizada. Uma vez que a indicação de exceções de acesso para a busca de instruções é comum a todas as instruções, que não é coberta pelas definições de instruções individuais.
[00040] Exceto quando indicado em contrário na descrição da instrução individual, as seguintes regras se aplicam para exceções associados a um acesso a um local operando. Para um tipo de busca de operando, exceções de acesso são necessariamente indicados apenas para a parte do operando que é necessário para completar a operação. É imprevisível se exceções acesso são indicados para aquelas porções de um operando fetch tipo que não são necessários para completar a operação.
[00041] Para uma loja operando tipo, as exceções de acesso são reconhecidos por todo o operando mesmo que a operação poderia ser concluída sem o uso da parte inacessível do operando. Em situações em que o valor de um operando armazenamento tipo é definido para ser imprevisível, é imprevisível se uma exceção de acesso está indicado. Sempre que um acesso a uma localização operando pode causar uma exceção de acesso a ser reconhecido, o termo "acesso" está incluído na lista de exceções do programa na descrição da instrução. Esse post também indica quais operando pode causar a exceção a ser reconhecida e se a exceção é reconhecida em uma busca ou armazenamento de acesso a esse local operando. Exceções de acesso são reconhecidas apenas para a parte do operando como definido para cada instrução particular.
[00042] Uma exceção operação é reconhecida quando a CPU tenta executar uma instrução com um código de operação inválido. O código de operação pode ser atribuído, ou com a instrução de que o código de operação não pode ser instalado no CPU. A operação é suprimida. O código de instrução de comprimento é 1, 2, ou 3. A exceção a operação é indicada por um código de programa de interrupção de 0001 hex (ou 0081 hex se um evento simultâneo PER é indicada). a. Alguns modelos podem oferecer instruções não descritas nesta publicação, tais como as previstas assistências ou como parte de recursos especiais ou personalizado. Consequentemente, os códigos de operação não descritos nesta publicação não necessariamente causar uma exceção operação a ser reconhecido. Além disso, estas instruções podem causar modos de operação a ser criados ou pode alterar de outra forma a máquina de forma a afetar a execução das instruções subsequentes. Para evitar causar uma tal operação, uma instrução com um código de operação não descritos nesta publicação só deve ser executada quando a função especifica associada com o código de operação é desejada. b. Uma exceção especificação é reconhecida quando qualquer um dos seguintes é verdadeiro: 1. A um é introduzido em uma posição de bit não atribuída da PSW (isto é, qualquer uma das posições de bit 0, 2-4, 24-30, ou 33-63). Isso é tratado como uma exceção no inicio especificação PSW. 2. A uma é introduzida a posição do bit 12 do PSW. Isso é tratado como uma exceção no inicio especificação PSW. 3. O PSW for inválido, em qualquer das seguintes maneiras: a. Bit 31 da PSW é um e de 32 bit é zero. b. Bits 31 e 32 da PSW são zero, indicando o modo de 24-bit de resolução e bits 64-103 da PSW não são todos os zeros. c. Bit 31 da PSW é zero e de 32 bit é um, que indica o modo de endereçamento de 31 bits, e os bits 64-96 da PSW não são todos zeros. Isso é tratado como uma exceção no inicio especificação PSW. 4. A PSW contém um endereço de instrução estranho. 5. Um endereço operando não designa uma integral de contorno em uma instrução exigindo designação integrante limite-tal. 6. Um impar geral registo é designado por um campo de uma instrução R que requer uma numeração par designação registo. 7. Um registro de ponto flutuante diferente de 0, 1, 4, 5, 8, 9, 12 ou 13 é designado para um operando estendida. 8. O multiplicador ou divisor na aritmética decimal excede 15 dígitos e sinal. 9. O comprimento do campo do primeiro operando é menor ou igual ao comprimento do campo do segundo operando em decimal multiplicação ou divisão.
10. Execução de MENSAGEM CIPHER, MENSAGEM CIPHER com encadeamento, COMPUTE INTERMEDIÁRIO Message Digest, COMPUTE última mensagem de resumo, ou COMPUTE código de autenticação de mensagem é tentado, e do código de função em bits 57-63 do Cadastro Geral 0 contém um código de função não atribuído ou desinstalado. 11. Execução de MENSAGEM CIPHER ou MENSAGEM CIPHER com encadeamento é tentado, e no campo RI ou R2 designa um registo impar ou geral registro 0. 12. Execução de MENSAGEM CIPHER, MENSAGEM CIPHER com encadeamento, COMPUTE MENSAGEM INTERMEDIÁRIO DIGEST ou COMPUTE código de autenticação de mensagem é tentado, e do comprimento segundo operando não é um múltiplo do tamanho do bloco de dados da função designada. Esta condição especificação de exceção não se aplica às funções de consulta. 13. Codeword execução de COMPARAR E FORMA é tentado, e geral registra 1, 2, e 3, inicialmente, não contêm, até os valores.
[00043] 32. Execução de comparar e trocar e STORE é tentada e qualquer uma das seguintes condições : • O código de função especifica um valor atribuído. • A característica loja especifica um valor atribuído. • O código de função é 0, e o primeiro operando não é designado em um limite de palavra. • O código de função é 1, e o primeiro operando não é designado em um limite de palavras duplas. • O segundo operando não é designado de uma integral de contorno correspondente à dimensão do valor de loja.
[00044] 33. Execução de COMPARAR UNICODE LONGO LÓGICO ou MOVE UNICODE LONGO é tentado, e o conteúdo de qualquer cadastro geral RI + 1 + 1 ou R3 não especificar um número par de bytes.
[00045] 34. Execução de COMPARAR string lógica, a MOVER STRING STRING ou pesquisa é tentada, e pedaços de 32-55 geral registro 0 não são todos os zeros.
[00046] 35. Execução do CALL de compressão é tentado, e pedaços de 48-51 geral registro 0 tem nenhum dos 0.000 valores e 0110-1111 binários.
[00047] 36. Execução de COMPUTE INTERMEDIÁRIO Message Digest, COMPUTE DIGEST última mensagem, ou COMPUTE código de autenticação de mensagem é tentada, e um dos seguintes é verdadeiro: • O campo R2 designa um registo Impar ou geral registro 0. • Bit 56 do registro 0 geral não é zero.
[0004 8] 37. Execução de CONVERT HFP PARA BFP, converter para FIXO (BFP ou HFP), ou LOAD FP INTEGER (PBF) é tentada, e no campo M3 não designa um modificador válido.
[00049] 38. Execução de dividir para INTEGER é tentado, e no campo M4 não designa um modificador válido.
[00050] 39. Execução de EXECUTE é tentado, e o endereço de destino é estranho.
[00051] 40. Execução de ESTADO EXTRACT EMPILHADOS é tentada, e o código em posições de bits 56-63 do registo R2 geral é superior a 4 quando o mecanismo ASN-e-LX-reutilização não estiver instalado ou é maior do que 5 quando a instalação está instalado.
[00052] 41. Execução de encontrar um mais à esquerda é tentada, e no campo Rl designa um registo oddnumbered.
[00053] 42. Execução de entrada invalida DAT TABELA é tentado, e pedaços de 44-51 geral R2 registo não são todos os zeros.
[00054] 43. Execução de FPC CARGA é tentada, e um ou mais bits do segundo operando correspondentes aos bocados não suportados no registo FPC são um.
[00055] 44. Execução de endereço de carga-PAGE TABELA-entrada é tentada e o campo M4 da instrução contém qualquer valor diferente de 0000-0100 binário.
[00056] 45. Execução de LOAD PSW é tentada e de 12 bits do doubleword no endereço segundo operando é zero. É dependente do modelo ou não essa exceção é reconhecida.
[00057] 46. Execução de CHAMADA MONITOR é tentado, e pouco posiciona 8-11 da instrução não contêm zeros.
[00058] 47. Execução de Mover página é tentado, e posições de bits 48-51 de 0 Cadastro Geral não contêm zeros ou bits 52 e 53 do registro são tanto uma.
[00059] 48. Execução de PACK ASCII é tentada, e o campo L2 é maior do que 31.
[00060] 49. Execução de PACK UNICODE é tentada, e o campo L2 é maior do que 63 ou é mesmo.
[00061] 50. Execução de executar a operação de ponto flutuante é tentado, de 32 bits do registo geral 0 é zero, e um ou mais campos em bits 33-63 são inválidos ou designar uma função desinstalado.
[00062] 51. Execução de executar a operação LOCKED é tentado, e qualquer uma das seguintes situações: • O bit T, pouco 55 de Registro Geral 0 é zero, e o código de função em bits 56-63 do registo é inválido. • Bits 32-54 de 0 Cadastro Geral não são todos os zeros. • No modo de acesso de registo, para os códigos de função que causam a utilização de uma lista de parâmetros contendo um Alet, o campo R3 é zero.
[00063] 52. Execução de executar a função FACILIDADE TIMING é tentado, e uma das seguintes situações: • Bit 56 do registro 0 geral não é zero. • Bits de 57-63 geral registro 0 especificar um código de função não atribuído ou desínstalado.
[00064] 53. Execução de transferência de programas ou transferência do programa com a instância é tentado, e todos os seguintes são verdadeiras: • 0 bit estendida modo de endereçamento-na PSW é zero . • A base de endereçamento de bits de modo de, de 32 bits, em geral o registo designado pelo campo R2 da instrução é zero. • Bits 33-39 do endereço de instrução no mesmo registo não são todos os zeros.
[00065] 54. Execução do programa RESUME é tentado, e uma das seguintes situações: • Bits 31, 32, e 64-127 do campo PSW no segundo operando não são válidos para a colocação no PSW atual. A exceção é reconhecida se alguma das seguintes situações: [00066] - Bits 31 e 32 são zero e bits 64-103 não são todos os zeros .
[00067] - Bits 31 e 32 são iguais a zero e um, respectivaraente, e os bits 64-96 não estão todos zeros.
[00068] - Bits 31 e 32 são um e zero, respectivamente.
[00069] - Bit 127 é uma delas. • Bits 0-12 da lista de parâmetros não são todos os zeros.
[00070] 55. Execução de pesquisa de cadeia UNICODE é tentado, e bits 32-47 de 0 Cadastro Geral não são todos os zeros.
[00071] 56. Execução de Controle do Espaço SET ou endereço defina rapidamente controlar o espaço é tentado, e os bits 52 e 53 do endereço do segundo operando não são dois zeros .
[00072] 57. Execução de MODO DE AJUSTE ENFRENTAR (SAM24) é tentado, e bits 0-39 do endereço de instrução não-atualizados na PSW, bits 64-103 da PSW, não são todos os zeros.
[00073] 58. Execução de MODO DE AJUSTE ENFRENTAR (SAM31) é tentado, e bits 0-32 do endereço de instrução não-atualizados na PSW, bits 64-96 da PSW, não são todos os zeros.
[00074] 59. Execução de campo SET CLOCK PROGRAMÁVEL é tentado, e bits 32-47 de 0 Cadastro Geral não são todos os zeros.
[00075] 60. Execução de SET FPC é tentada, e um ou mais bits do primeiro operando correspondentes aos bits não suportados no registo FPC são um.
[00076] 61. Execução das informações do sistema STORE é tentado, o código de função, em geral, registro 0 é válido, e uma das seguintes situações: • Bits 36-55 de 0 Registro Geral e bits 32-47 de Registro Geral 1 não são todos os zeros. • 0 endereço do segundo operando não está alinhado em um limite de 4K bytes.
[00077] 62. Execução de TRADUZIR dois para um ou traduzir dois a dois é tentado, e do comprimento em geral registo RI + 1 não especifica um número par de bytes.
[00078] 63. Execução de UNPACK ASCII é tentada, e o campo LI for maior do que 31.
[00079] 64. Execução de UNPACK UNICODE é tentada, e o campo Ll for maior do que 63 ou é mesmo.
[00080] 65. Execução de ÁRVORE UPDATE é tentada, e os conteúdos iniciais de registos geral 4 e 5 não é um múltiplo de 8, no modo de 24 bits ou 31 bits de endereçamento ou não são um múltiplo de 16 no modo de endereçamento de 64 bits. A execução da instrução identificado pelo PSW velha é suprimida. No entanto, para os primeiros exceções especificação PSW (causas 1-3) a operação que introduz o novo PSW for concluida, mas uma interrupção ocorre imediatamente a seguir. De preferência, o código de instrução de comprimento (ILC) é 1, 2 ou 3, indicando o comprimento da instrução causando a exceção. Quando o endereço de instrução é impar (causar 4 na página 6-33), é imprevisível se a ILC é 1, 2, ou 3. Quando a exceção é reconhecida devido a uma exceção inicio especificação PSW (causas 1-3) e a exceção foi introduzido por LOAD PSW, PSW CARGA EXTENDED, Programa de Retorno, ou uma interrupção, a CIT é 0. Quando a exceção é introduzido por MODO SET ENFRENTAR (SAM24, SAM31), a CIT é um, ou é 2 se SET modo de endereçamento foi alvo de EXECUTE . Quando a exceção é introduzido por MÁSCARA SYSTEM SET ou por loja então ou máscara SISTEMA, a CIT é 2. a. Interrupções de programa serão utilizadas para informar exceções e eventos que ocorrem durante a execução do programa. A interrupção do programa faz com que o PSW velho para ser armazenado em locais reais 336-351 e um PSW novo de ser obtida a partir de locais reais 464-479. A causa da interrupção é identificada pelo código de interrupção. O código de interrupção é colocada em localizações reais 142-143, o código de instrução de comprimento é colocado em posições de bits 5 e 6 do byte a localização real 141 com o resto dos bits definidos como zeros e zeros são armazenados no local real 140 . Para algumas causas, a informação adicional identificando a razão para a interrupção é armazenada em localizações reais 144-183. Se a instalação de PER-3 está instalado, e depois, como parte do programa de interrupção da ação, o conteúdo do registo de eventos de quebra de endereço são colocados em locais de armazenamento reais 272-279. Excepto para os eventos de exceção PER e o cripto-operação, a condição que causa a interrupção é indicado por um valor codificado colocado nas posições de bit mais à direita sete do código de interrupção. Apenas uma condição de cada vez pode ser indicada. Bits 0-7 do código de interrupção são definidos a zeros. Eventos por definição são indicados por 8 bits do código de interrupção para um. Quando esta é a única condição, bits 0-7 e 9-15 também são definidas a zeros. Quando um evento de PER é indicada simultaneamente com outra condição de interrupção de programa, o bit 8 é um, e os bits 0-7 e 9-15 são definidos como para a outra condição. A exceção cripto-operação é indicada por um código de interrupção do hex 0119, 0199 ou hex se um evento de PER é também indicada.
[00081] Quando há um pouco de máscara correspondente, uma interrupção do programa só pode ocorrer quando a máscara é um pouco. A máscara de programa na PSW controla quatro das exceções, as máscaras IEEE no registo FPC controle as exceções IEEE, o bit 33 no controle registar 0 controla se MÁSCARA SYSTEM SET causa uma exceção de operação especial, os bits 48-63 no controle registo de 8 interrupções devido controle para monitorar eventos, e uma hierarquia de interrupções máscaras de controle devido a eventos PER. Quando qualquer bit de máscara de controle é zero, a condição é ignorado, a condição não permanece pendente.
[00082] Quando o PSW novo para uma interrupção do programa tem um erro de PSW formato ou faz uma exceção para ser reconhecido no processo de buscar instrução, uma série de interrupções do programa podem ocorrer.
[00083] Algumas das condições indicadas como exceções do programa também pode ser reconhecida pelo subsistema de canal, caso em que a exceção é indicado no subcanal palavra-status ou palavra de estado estendido.
[00084] Quando uma exceção de dados faz com que uma interrupção do programa, um código de dados de exceção (DXC) é armazenado no local 147 e zeros são armazenados em locais 144-146. O DXC distingue entre os vários tipos de dados de exceção-condições. Quando a AFP-registo pouco controle (registro de ponto flutuante adicional), bit 45 do registrador de controle 0, é um, o DXC também é colocado no campo DXC do ponto flutuante-controle (FPC) registrar. O campo DXC no registo FPC permanece inalterada quando qualquer exceção outro programa é relatado. O DXC é um código de 8 bits, indicando a causa especifica de um exceção de dados.
[00085] DXC 2 e 3 são mutuamente exclusivas e é de maior prioridade do que qualquer outro DXC. Assim, por exemplo, DXC 2 (BFP instrução) tem precedência sobre qualquer exceção IEEE, e DXC 3 (instrução DFP) tem precedência sobre qualquer exceção IEEE ou exceção simulado IEEE. Como outro exemplo, se as condições para ambos DXC 3 (DFP instruções) e DXC 1 (AFP registo) existir, DXC 3 é relatado. Quando ambos exceção de uma especificação e um registo AFP exceção de dados aplica-se, é imprevisível qual é relatada. a. Uma exceção abordar é reconhecida quando a CPU tenta fazer referência a um local principal de armazenamento que não está disponível na configuração. Um local principal de armazenamento não está disponível na configuração quando o local não é instalado, quando a unidade de armazenamento não está na configuração, ou quando a energia é desligado na unidade de armazenamento. Um endereço, que designa um local de armazenamento que não está disponível na configuração é referida como sendo inválida. A operação é suprimida quando o endereço da instrução é inválido. Do mesmo modo, a operação é suprimida quando o endereço da instrução de destino de EXECUTE é inválido. Além disso, a unidade de operação é suprimida quando uma exceção é encontrado endereçamento de acesso a uma tabela ou entrada de tabela. As tabelas e as entradas de tabela para que a regra se aplica são a tabela despachável unidade de controle, a principal ASN segunda entrada, mesa e entradas na lista de acesso, tabela da primeira região, mesa de segunda região, terceira região tabela, tabela de segmento, página tabela tabela, ligação, ligação de primeira tabela, a ligação de segunda mesa, mesa de entrada, ASN primeira tabela, ASN segunda tabela, tabela de autoridade, pilha de ligação, e tabela de rastreamento. Dirigindo exceções resultar na supressão quando eles são encontrados por referências para a tabela da primeira região, mesa de segunda região, mesa região terceira tabela, tabela de segmento, e de página, em ambos referências implícitas para a tradução dinâmica de endereços e referências associadas com a execução de carregamento da página- tabela de entrada, endereço carga real, STORE endereço real e proteção TESTE. Da mesma forma, dirigindo-se exceções para acessos à tabela de controle de unidade despachável, entrada ASN-mesa-segundo primário, lista de acesso, mesa ASN segundo, ou resultar na supressão autoridade mesa quando eles são encontrados no acesso a registar de tradução realizado de forma implícita ou como parte de endereço de carga-PAGE tabela de entrada, CARGA endereço real, armazenar o endereço REAL, acesso de teste, ou TESTE DE PROTEÇÃO. Com exceção de algumas instruções especificas cuja execução é suprimida, a operação será cancelada para um endereço operando que pode ser traduzido, mas designa um local indisponível. Para o término, as mudanças podem ocorrer apenas a resultar campos. Neste contexto, o "campo de resultado" inclui o código de condição, registos e quaisquer locais de armazenamento que são fornecidos, e que são designados para ser mudado pela instrução.
[00086] A renúncia é útil para a compreensão da terminologia e estrutura de uma concretização do sistema de computador. Concretizações não se limitando a a z / Architeture ou com a descrição fornecida destes. Manifestações podem ser vantajosamente aplicadas a outras arquiteturas de computadores de outros fabricantes de computadores com o ensino aqui.
[00087] arquiteturas de processadores diferentes fornecem um número limitado de registros gerais (RGs), por vezes referido como registradores de propósito geral, que são explicitamente (e / ou implicitamente) identificado por instruções do conjunto de instruções arquitetado. IBM z / Arquitetura e arquiteturas de seu antecessor (que remonta ao original System 360 circa 1964) oferecem 16 registros gerais (RGs) para cada unidade de processamento central (CPU) . GR pode ser usado por processadores (unidade central de processamento (CPU)) instruções de como se segue: • Como um operando fonte de uma operação aritmética ou lógica. • Como operando alvo de uma operação aritmética ou lógica. • Como o endereço de um operando de memória (ou uma base de cadastro, registro de indice, ou diretamente) • Como o comprimento de um operando de memória • Outros usos, tais como o fornecimento de um código de função ou outra informação para e de uma instrução.
[00088] Até a introdução do mainframe IBM z / Architecture, em 2000, um mainframe geral registo consistiu de 32 bits; com a introdução de z / Architecture, um cadastro geral consistia de 64 bits, no entanto, por razões de compatibilidade, z / muitos instruções arquitetura continuar a apoiar 32 bits.
[00089] Da mesma forma, outras arquiteturas, como o x86 da Intel ©, por exemplo, fornecer modos de compatibilidade de tal forma que uma máquina atual, tendo, por exemplo, 32 bit registros, fornecer modos de instruções para acessar apenas os primeiros 8 bits ou 16 bits de o GR de 32 bits.
[00090] Mesmo no inicio da IBM ambientes do sistema 360, 16 registros (identificado por um bit 4 registar campo em uma instrução por exemplo) provou ser difícil para os programadores e designers de montadoras do compilador. Um programa moderadamente tamanho podería exigir base de vários registros de abordar código e dados, limitando o número de registos disponíveis para manter as variáveis ativas. Certas técnicas têm sido utilizadas para tratar o número limitado de registos: • Projeto de Programa (tão simples como programação modular) ajudou a minimizar registrador base- superutilização.
[00091] Compiladores · usaram técnicas como o registo "coloração" para gerir a mudança de dinâmica de registros. • Base de dados de registo de utilização pode ser reduzida com o seguinte: • Novas instruções aritméticas e lógicas com constantes imediatos (dentro da instrução). • instruções mais novos, com endereços relativa-imediatos operando. • instruções mais novos, com deslocamentos longos.
[00092] No entanto, ainda há pressão registo constante quando há variáveis mais vivas e escopo tratar do que pode ser acomodada pelo número de registros na CPU.
[00093] z / Arquitetura oferece três programas selecionáveis modos de endereçamento: 24 31 - e 64-bit de endereçamento. No entanto, para programas que nem exigem valores de 64 bits, nem explorar 64-bit de endereçamento de memória, tendo 64 bits GRs é de beneficio limitado. A divulgação a seguir descreve uma técnica de exploração de registros de 64 bits para programas que geralmente não usam endereçamento de 64 bits ou variáveis.
[00094] Dentro dessa divulgação, se uma convenção onde as posições de bits de registradores são numerados em ordem crescente da esquerda para a direita (Big Endian). Num registo de 64 bits, o bit 0 (o bit mais à esquerda) representa o valor mais importante (263) e do bit 63 (o bit mais à direita) representa o valor minimo significativo (20) . Os mais à esquerda 32 bits de tal registo (bits 0-31) são chamados a palavra alta, e os mais à direita 32 bits do registo (bits 32-63) são chamados a palavra baixa onde uma palavra é de 32 bits.
[00095] FACILIDADE DE ALTA PALAVRA: a. Um novo conjunto de instruções gerais (isto é, as instruções disponíveis para um programa de aplicação) é introduzido para explorar a palavra alta (os mais significativos 32 bits) de um general de 64 bits registrar quando a CPU está em modo de 32 bits . O programa pode empregar as novas instruções para acessar às escondidas (anteriormente indisponíveis) palavras elevadas do GPR além das instruções de idade, que continuam a ser limitada às palavras baixAs. b. Com referência à Figura 8, um programa escrito para uma arquitetura ter 16 ou 32 bit registros pode ser executado em uma versão mais recente da arquitetura de suporte 64 bit registros. 0 programa escrito para, digamos, um modo de 32 bits só tem conhecimento de 32 bit registros, e tipicamente 32 ou menos bits de endereço lógico. Um sistema operacional (SO) 801 em um sistema de computador 64 bit arquitetado pode apoiar programas escritos para modo de 64 bits 803, bem como os programas escritos para modo de 32 bits 802. Uma operação de mudança de contexto 804 em uma máquina vai economizar 805 o de 64 bits registra, bem como a Palavra de Estado do Programa (PSW) ao alternar entre programas e / ou o sistema operacional independente de o programa de aplicação 802 803 foi em 32 ou 64 bits modo. Assim, um programa de 32 bits em execução no modo de 32 bits em uma máquina de 64 bits sob o controle de um sistema operacional de 64 bits, terão seus registros salvos e restaurados durante trocas de contexto certos. O sistema de computador e sistema operacional pode realmente salvar e restaurar 805 todos os 64 bits dos registos gerais durante a mudança de contexto, apesar de o assunto programa para a mudança de contexto está sendo executado em um modo de 32 bits. Assim, o programa vê apenas metade dos registos, apenas 32 bits dos 64 bits de cada registo. Os outros 32 bits dos registradores implementada é "escondido" a partir do programa de 32 bits. Os 32 bits dos registos conhecido, podem ser utilizados para tratar, e mesmo que o sistema de computador suportar 64 bits de endereçamento, o sistema operativo pode administrar por meio de tradução de endereços dinâmico, de tal modo que apenas 32 bits de endereço são manipulados pelo programa de 32 bit em modo de 32 bits. O modo de 32 bits pode ser pensado como um modo de baixo palavra desde que o programa é apenas utilizando a palavra baixa (32 palavra bit) de uma palavra dupla (64 bits) registrar. Um programa aplicativo opera sob o controle do sistema operacional, e invoca a OS, a fim de ter o sistema operacional executar determinadas funções. Este "invocando" é realizada pelo comutador 804 contexto que salva o estado do programa de aplicação e estado de carga 805 de OS para ser realizado, em que o SO começa a execução no endereço fornecido pelo comutador de contexto. O sistema operacional pode invocar um dos programas de aplicação por uma mudança de contexto 804 para permitir que o programa aplicativo para ser executado. Em algumas aplicações, o uso de recursos é suportada, permitindo cada aplicação, um tempo-fatia de operação e uma mudança de contexto 804 é utilizado para "interromper", o programa activa depois de um tempo decorrido de forma a permitir que o sistema operacional para enviar outro programa aplicativo para outro tempo fatia. c. A disponibilidade da instalação de palavra altapode ser controlado por um bit de um campo ou dentro da máquina que deve ser ajustado para permitir a facilidade de alta Word. Quando a facilidade de palavra alta é ativado, o programa de 32 bits pode tirar proveito da parte "oculta" do registo, executando novas "instalações de alta palavra" instruções. Outros novos "palavra-alta facilidade" instruções podem ser desde que prestar nova função para instruções usando palavra de baixo registro. d. Na maioria destas instruções, apenas a palavra de alta dos registros é manipulado. Em certas instruções, as variantes são fornecidas para manipular a palavra alta de um registo de origem com a palavra baixa de outro registo de fonte, sendo o resultado colocado na palavra superior de um alvo de registo (por exemplo, AHHLR). RISBLG fornece um análogo de palavra de baixo para a instrução RISBHG alta palavra. RISBHG e RISBLG fornecem grande flexibilidade na implementação de uma série de pseudo-instruções (com o apoio do programa montador). e. Como mencionado acima, arquiteturas de processadores empregam registradores de propósito geral (GPRS), disponíveis para o conjunto de instruções da arquitetura. Um programa pode tirar vantagem de dados sendo no GPRS, que pode ser implementado de memória de alta velocidade, tais como fechos embutidos em um chip, para aumentar o desempenho do que ter os dados na memória principal mais lenta, o que é muitas vezes realizada por complexos mecanismos de tradução de endereços dinâmicos . Em algumas arquitecturas, tais como ter 64 x 86 GPRS, o tamanho de cada GPR foi aumentado evolutiva de 8 bits para 16 bits, 32 bits e 64 bits atualmente. Contudo, o número de GPRS disponível para uma instrução ((64 para 86) determinado por um número de bits (6 de 86) de um campo de GPR dentro de uma instrução) permanece a mesma, de modo que os programas escritos para um velho instrução tendo 8 bits para GPRs exemplo, ainda será executado em arquiteturas mais novas com 32 bits GPRs por exemplo. Assim, uma máquina com 32 bits de operação GPRS em modo 8 bits, irá proporcionar o acesso apenas aos menores de 8 bits de cada 32 bits GPR. No entanto, durante uma troca de contexto, o Sistema operacional de 32 bits (OS) será sempre salvar e restaurar o pleno 32 bits de cada GPR. f. Em uma implementação IBM z / Architecture, uma máquina pode ter 16 GPRS, cada GPR consistindo de 64 bits (bits 0-63), mas pode executar um programa aplicativo escrito para 32 bit registros em modo de 32 bits. Os 32 bits podem ser as baixas da ordem de 32 bits o GPR (bits 32-63), em que os 32 bits de alta ordem (bits 0-31) não estão disponíveis (oculto) num modo de 32 bits de operação. 0 programa de aplicação não tem como utilizar os de alta ordem de 32 bits o GPRS como eles são invisíveis para o programa. O programa de aplicação, de um exemplo, pode ter sido escrita para uma máquina de 32 bits de uma geração anterior da máquina com apenas 32 registos de bits e endereços 24 ou 32 bits de endereços lógicos para a memória. O modo de 32 bits permite que o exemplo de programa aplicativo de 32 bits para rodar em uma máquina mais nova ter uma arquitetura de suporte de 64 bits do GPRS, ter um sistema operativo de 64 bits (OS) e apoiar programas de 64 bits de aplicativos em modo de 64 bits. Em uma outra máquina de arquitectura definida para 32 bit GPRS, um conjunto de 32 bits "GPRs oculto" pode ser previsto que são invisíveis para os programas de aplicação. g. Um "modo de facilidade de Palavra Alta" é fornecido que permite que um subconjunto de instruções para acessar ao oculto ou de ordem superior GPRS, enquanto que o restante do conjunto de instruções de acesso ao arquitetado ou Low Order GPRS .
[00096] De preferência, em "High-Word modo de instalação", o subconjunto de instruções só podem acessar a Alta Ordem GPRS em uma aplicação, mas em outra aplicação, o subconjunto de instruções pode definir o campo de RPG como sendo direcionada para o Alto Ordem GPRs e outro campo GPR como sendo direcionada para o baixo fim GPRS.
[00097] Em uma outra realização preferida, em "High-Word modo Facility", só baixa a fim de GPRS pode ser utilizado para a geração de endereços de memória principal.
[00098] Em uma implementação, aplicativos em execução em "Word modo de alta Facilidade" podem co-existir com os aplicativos não executam em "Word modo de alta Facility". As aplicações não no Word modo de alta Facilidade podem ser aplicativos de 32 bits ou 64 aplicações GPR GPR bits. Neste exemplo, o GPRS de uma máquina são utilizados com 64 bits com aplicações escritas para GPRS, utilizando 32 bits, no entanto, as presentes concretizações proporcionaria proveito em GPRs de uma máquina com qualquer número de bits (16, 24, 32, 48, 64 , 128) a execução de aplicativos escritos para GPRs ter menor número de bits (8, 16, 24, 32, 48, 64). Além disso, a palavra-Alta registos Facility modo oculto pode utilizar apenas uma parte designada do GPRs oculta, de tal modo que, no programa de aplicação de 32 bits do exemplo anterior, os registos ocultos disponíveis no Word Alto modo Facility para algumas instruções pode ser o baixa ordem de 8 ou 16 bits de alta ordem dos 32 bits de 64 bits do GPRS, enquanto outras podem ser ficheiros ocultos da ordem alta de 8 ou 16 bits de alta ordem dos 32 bits do bit 65 GPRs por exemplo. O ensinamento de concretizações é apresentada usando z / Architecture e / ou arquitectura x86, no entanto, outras implementações são prontamente evidentes para um perito médio, tendo em conta o presente ensinamento. a. Em um exemplo de concretização de Arquitetura z /, para selecionados instruções de 32 bits, a instalação palavra-alta efetivamente fornece 16 adicionais registradores de 32 bits {registos palavra alta), utilizando anteriormente indisponíveis bits de alta ordem 0-31 de 64 a 16 bits registos gerais (bits 0-63) . Em uma concretização, a instalação de Palavra-Alto pode permitir que as instruções que se seguem com mnemônicos indicando a função (AHHHR para ADD ALTA por exemplo). • ADD HIGH (AHHHR, AHHLR) • ADD ALTA IMEDIATA (AIH) • ADD ALTA LÓGICO (ALHHHR, ALHHLR) • ADD LÓGICO COM ALIA ASSINADO IMEDIATA (ALSIH, ALSIHN) • RELATIVA filial em alta contagem (BRCTH) • comparar HIGH (CHHR, CHLR, CHF) • comparar ALTA IMEDIATA (CIH) • comparar ALTA LÓGICO (CLHHR, CLHLR, CLHF) • ALTA COMPARAR lógica imediata (CLIH) • CARGA BYTE HIGH (LBH) • CARGA halfword HIGH {LHH) • ALTA CARGA (LFH) • CARGA LÓGICO caráter elevado (LLCH) • CARGA LÓGICO halfword HIGH (LLHH) • Rodar ENTÃO inserir bits selecionados de alto (RISBHG) • Rodar THEN INSERT bits selecionados baixa (RISBLG) • PERSONAGEM LOJA HIGH (STCH) • STORE halfword HIGH {STHH) • LOJA HIGH {STFH) • SUBTRACT HIGH (SHHHR, SHHLR) • ALTA SUBTRACT LÓGICO (SLHHHR, SLHHLR) [00099] As seguintes instruções gerais podem estar disponíveis quando a instalação intertravado de acesso está instalado: • carga e ADD (LAA, LaAg) • LOAD e adicione LÓGICO (Laal, LAALG) • Carregar e E (LAN, LANG) • CARGA E EXCLUSIVA OU (LAX, LAXG) • CARGA E OU (LAO, LAOG) • disjuntos PAR DE CARGA (LPD, LPDG) [000100] As seguintes instruções gerais podem estar disponíveis quando o recurso de carga / loja-on-condição está instalado: • CARGA SOBRE A CONDIÇÃO (LOC, LGOC, LGROC, LROC) • armazenar em condição (STOC, STGOC) b. As seguintes instruções gerais podem estar disponíveis quando o distinto-operandos instalação é instalado • ADD (ARK, AGRK) • ADD IMEDIATA (AHIK, AGHIK) • ADD LÓGICO (ALRK, ALGRK) • ADD lógico com ASSINADO IMEDIATA (ALHSIK, ALGHSIK) • E (NRK, NGRK) • EXCLUSIVE OR (XRK, XGRK) • OU (ORK, OGRK) • SHIFT único esquerdo (Slak) • desvio à esquerda LÓGICO único (SLLK) • SHIFT DIREITO INDIVIDUAL (SRAK) • Shift direito lógico único (SRLK) • subtrair (SRK, SGRK) • SUBTRACT LÓGICO (SLRK, SLGRK) [000101] Exemplo de alto-PALAVRA INSTRUÇÕES: [000102] A seguir estão as instruções de exemplo que se pode empregar a facilidade de alta Palavra.
[000103] ADD ALTA (formato RRF) [000104] Quando a instrução é executada pelo sistema de computador, o segundo operando é adicionado ao terceiro operando, e a soma é colocado no local do primeiro operando. Os operandos e a soma são tratados como inteiros de 32 bits binários assinados. Os operandos primeiro e o segundo são em bits 0-31 de general registros RI e R2, respectivamente; pedaços de 32-63 geral registo RI estão inalterados, e pedaços de 32-63 geral registo R2 são ignorados. Para OpCode AHHHR, o terceiro operando é em bits 0-31of R3 Registro Geral; pedaços 32-63 do registo são ignorados. Para OpCode AHHLR, o terceiro operando é em bits 32-63 de R3 Registro Geral; bocados 0-31 do registo são ignorados. Quando há um excesso, o resultado é obtido permitindo que qualquer transporte para a posição de bit de sinal e ignorar qualquer transportar para fora da posição bit de sinal, e o código de condição 3 é ajustado. Se a máscara de ponto fixo de estouro de um, uma interrupção do programa para ponto fixo de estouro ocorre.
[000105] Resultando Código Condição: [000106] 0 resultado zero, sem estouro [000107] 1 Resultado inferior a zero, nenhum excesso [000108] 2 Resultado maior que zero, sem transbordar [000109] 3 Overflow [000110] Exceções programa: • excesso de ponto fixo · Operação (se a instalação de alto-palavra não está instalado) [000111] ADD (formato RIL) ALTA IMEDIATA a. Quando a instrução é executada pelo sistema de computador, o segundo operando é adicionado ao primeiro operando, e a soma é colocado no local do primeiro operando. Os operandos e a soma são tratados como inteiros de 32-bitsigned binários. O primeiro operando é em bitsO-31 de Registro Geral RI; pedaços 32-63 do registo permanecem inalteradas. Quando há um excesso, o resultado é obtido permitindo que qualquer transporte para a posição de bit de sinal e ignorar qualquer transportar para fora da posição bit de sinal, e o código de condição 3 é ajustado. Se a máscara de ponto fixo de estouro de um, uma interrupção do programa para ponto fixo de estouro ocorre.
[000112] Resultando Código Condição: [000113] 0 resultado zero, sem estouro [000114] 1 Resultado inferior a zero, nenhum excesso [000115] 2 Resultado maior que zero, sem transbordar [000116] 3 Overflow [000117] Exceções programa: • excesso de ponto fixo • Operação (se a instalação de alto-palavra não está instalado) [000118] ADD LÓGICO ALTA (formato RRF) a. Quando a instrução é executada pelo sistema de computador, o segundo operando é adicionado ao terceiro operando, e a soma é colocado no local do primeiro operando. Os operandos e a soma são tratados como 32-bitunsigned inteiros binários. Os operandos primeiro e o segundo são em bits 0-31 de general registros RI e R2, respectivamente; pedaços de 32-63 geral registo Rl estão inalterados, e pedaços de 32-63 geral registo R2 são ignorados. Para OpCode ALHHHR, o terceiro operando é bitsO-31 de R3 Registro Geral; pedaços 32-63 do registo são ignorados. Para OpCode ALHHLR, o terceiro operando é bits32-63 de R3 Registro Geral; bocados 0-31 do registo são ignorados.
[000119] Resultando Código Condição: [000120] 0 resultado zero, sem levar [000121] 1 Resultado não zero, sem levar [000122] 2 Resultado zero; realizar [000123] 3 Resultado não zero; realizar [000124] Exceções programa: • Operação (se a instalação de alto-palavra não está instalado) [000125] ADD lógico com ASSINADO (formato RIL) ALTA IMEDIATA a. Quando a instrução é executada pelo sistema de computador, o segundo operando é adicionado ao primeiro operando, e a soma é colocado no local do primeiro operando. O primeiro operando e a soma são tratados como 32-bitunsigned inteiros binários. O segundo operando é tratado como um inteiro binário de 32-bit. O primeiro operando é em bits 0-31 do Cadastro Geral Rl; bits32-63 do registo permanecem inalteradas.
[000126] Resultando Código Condição: [000127] Para ALSIH, o código é definido da seguinte forma: [000128] 0 resultado zero, sem levar [000129] 1 Resultado não zero, sem levar [000130] 2 Resultado zero; realizar [000131] 3 Resultado não zero; realizar [000132] Para ALSIHN, o código permanece inalterado.
[000133] Exceções programa: • Operação (se a instalação de alto-palavra não está instalado) [000134] RELATIVE filial em alta contagem (formato RI, RIL) [000135] Quando a instrução é executada pelo sistema de computador, A um é subtraído do primeiro operando, e o resultado é colocado no local do primeiro operando. Para RELATIVA filial em COUNT (OpCode BRCT), o primeiro operando e o resultado são tratados como inteiros binários de 32 bits em bits 32-63 do Cadastro Geral RI, com estouro ignorado; bocados 0-31 do cadastro são inalteradas. Para RELATIVA filial em alta contagem (OpCode BRCTH), o primeiro operando e o resultado são tratados como 32-bitbinary inteiros em bits 0-31 de registo geral Rl, com estouro ignorado; pedaços 32-63 do registo permanecem inalteradas. Para RELATIVA filial em COUNT (OpCode BRCTG), o primeiro operando e o resultado são tratados inteiros as64 bits binários, com estouro ignorado. Quando o resultado é a instrução, zero normal de sequenciamento prossegue com o endereço de instrução atualizado. Quando o resultado não é zero, o endereço da instrução no PSW corrente é substituído pelo endereço do ramo. O conteúdo do campo de 12 são um inteiro binário assinado especificando o número de halfwords que é adicionado para o endereço da instrução para gerar o endereço de ramo.
[000136] Código condição: O código permanece inalterado.
[000137] Exceções programa: • Operação (BRCTH, se a instalação de alto-palavra não está instalado) [000138] Notas programação: 1 . A operação é a mesma que a do ramo na instrução COUNT excepto para o meio de especificar o endereço do ramo. 2. O primeiro operando e o resultado pode ser considerado como inteiros binários ou sinal ou sem sinal uma vez que o resultado de uma subtração binário é o mesmo em ambos os casos. 3. Uma contagem inicial de um resultado em zero, e sem ramificação ocorre; uma contagem inicial de zero resulta em -1 e faz com que a ramificação a ser executado; uma contagem inicial de -1 resulta em -2 e faz com que a ramificação para ser executada, e assim on. Em um loop, ramificação ocorre cada vez que a instrução é executada até que o resultado é novamente zero.
[000139] Note-se que para BRCT, por causa do número de série, uma contagem inicial de -231 resulta em um valor positivo de 231 - 1, ou, por BRCTG, uma contagem inicial de-263 resulta em um valor positivo de 263-1,4 . Quando a instrução é o alvo de uma instrução executar tipo, o ramo é relativo ao endereço de destino;
[000140] COMPARAR ALTA (RRE, formato rxy) , compare (formato RIL) ALTA IMEDIATA
[000141] Quando a instrução é executada pelo sistema de computador, o primeiro operando é comparado com o segundo operando, e o resultado está indicado no código de condição. Os operandos são tratados como inteiros de 32 bits binários assinados. O primeiro operando é em posições de bits 0-31 do Cadastro Geral RI; posições de bits 32-63 do registo são ignorados. Para COMPARAR ALTA (OpCode CHHR), o segundo operando é em posições de bits 0-31 de registerR2 geral; posições de bits 32-63 do cadastro são ignorados. Para COMPARAR ALTA (OpCode CHLR), o bit isin segundo operando posiciona de 32-63 geral R2 registo; pouco positionsO-31 do cadastro são ignorados. O deslocamento para CHF é tratado como um inteiro binário de 20 bitsigned.
[000142] Resultando Código Condição: [000143] 0 Operandos iguais [000144] 1 operando primeira baixa [000145] 2 Primeiro operando alta [000146] 3 - [000147] Exceções programa: • Acesso (operando 2 de CHF apenas) • Operação (se a instalação de alto-palavra não está instalado) [000148] COMPARAR LÓGICO ALTA (RRE, formato rxy), COMPARAR LÓGICO (formato RIL) ALTA IMEDIATA
[000149] Quando a instrução é executada pelo sistema de computador, o primeiro operando é comparado com o segundo operando, e o resultado está indicado no código de condição. Os operandos são tratados como inteiros de 32 bits binários sem sinal. O primeiro operando é em posições de bits 0-31 do Cadastro Geral RI; posições de bits 32-63 do registo são ignorados. Para COMPARAR LÓGICO ALTA (OpCode CLHHR), o segundo operando é em posições de bits 0-31of geral R2 registo; posições de bits 32-63 do cadastro são ignorados. Para COMPARAR LÓGICO ALTA (OpCode CLHLR), o segundo operando é pouco positions32-63 da geral R2 registo; posições de bits 0-31 do cadastro são ignorados. O deslocamento para CLHF é tratado como um inteiro de 20-bitsigned binário.
[000150] Resultando Código Condição: [000151] 0 Operandos iguais [000152] 1 operando primeira baixa [000153] 2 Primeiro operando alta [000154] 3 - [000155] Exceções programa: • Acesso (operando 2 de CLHF apenas) • Operação (se a instalação de alto-palavra não está instalada) [000156] CARGA BYTE HIGH (formato rxy) [000157] Quando a instrução é executada pelo sistema de computador, o segundo operando é sinal estendido e colocado no local do primeiro operando. O segundo operando é um byte de comprimento e é tratado como um inteiro binário de oito bits. 0 primeiro operando é tratado como um inteiro binário de 32-bit em bits 0-31 do Cadastro Geral RI; pedaços 32-63of o registo permanecem inalteradas. O deslocamento é tratado como um inteiro binário de 20 bits assinado.
[000158] Código condição: 0 código permanece inalterado.
[000159] Exceções programa: • Acesso (fetch, operando 2) • Operação (se a instalação de alto-palavra não está instalada) [000160] CARGA halfword ALTA (formato rxy) [000161] Quando a instrução é executada pelo sistema de computador, o segundo operando é sinal estendido e colocado no local do primeiro operando. O segundo operando é de dois bytes de comprimento e é tratado como um inteiro binário de 16 bits. O primeiro operando é tratado como um inteiro binário de 32-bit em bits 0-31 do Cadastro Geral RI; pedaços 32-63of o registo permanecem inalteradas. O deslocamento é tratado como um inteiro binário de 20 bits assinado.
[000162] Código condição: O código permanece inalterado.
[000163] Exceções programa: • Acesso (fetch, operando 2) • Operação (se a instalação de alto-palavra não está instalado) [000164] Alta carga (formato rxy) a. Quando a instrução é executada pelo sistema de computador, o segundo operando é colocado no local inalterado primeiro operando. O segundo operando é de 32 bits, e é o primeiro operando em bits 0-31 do Cadastro Geral Rl; pedaços 32-63 do registo permanecem inalteradas. 0 deslocamento é tratado como um inteiro binário de 20 bits assinado.
[000165] Código Condição: O código permanece inalterado.
[000166] Exceções programa: • Acesso (fetch, operando 2) • Operação (se a instalação de alto-palavra não está instalado) [000167] Alta carga de caráter lógico (formato rxy) a. Quando a instrução é executada pelo sistema de computador, o operando de um segundo byte é colocado no bit positíons24-31 do registo RI geral, e são colocados zeros nas posições de bits 0-23 do registo geral Rl; posições de bit 32 - 63 de Registro Geral Rl permanecem inalteradas. O deslocamento é tratado como um inteiro binário de 20 bits assinado.
[000168] Código condição: 0 código permanece inalterado.
[000169] Exceções programa: • Acesso (fetch, operando 2) • Operação (se a instalação de alto-palavra não está instalado) [000170] CARGA LÓGICA halfword ALTA (formato rxy) a. Quando a instrução é executada pelo sistema de computador, o operando dois segundo byte é colocado no bit positionsl6-31 do registo Rl geral, e são colocados zeros nas posições de bits 0-15 do registo geral Rl; posições de bit 32 - 63 de Registro Geral Rl permanecem inalteradas. 0 deslocamento é tratado como um inteiro binário de 20 bits assinado.
[000171] Código condição: O código permanece inalterado.
[000172] Exceções programa: • Acesso (fetch, operando 2) • Operação (se a instalação de alto-palavra não está instalado) [000173] RODAR ENTÃO inserir bits selecionados de alto (formato RIE) , RODAR ΪΗΕΝ INSERT bits selecionados LOW (formato RIE) a. Quando a instrução é executada pelo sistema de computador, o operando de 64 bits é rodado segundo a esquerda pelo número de bits especificado no operando quinto. Cada bit deslocado para fora da posição de bit mais à esquerda dos operandos reentra na posição de bit mais à direita do operador. Os bits selecionados do operando segundo rodado substituir o conteúdo das posições de bit correspondentes do primeiro operando. Para RODAR ENTÃO inserir bits selecionados de alto, o primeiro operando é em bits 0-31 de registo geral Rl, 32-63 e bits do registo permanecem inalteradas. Para RODAR THEN INSERT bits selecionados LOW, o primeiro operando é em bits 32-63 do Cadastro Geral Rl, e os bits 0-31 do cadastro são inalteradas. O segundo operando permanece inalterada em geral R2 registo. Para RODAR THEN INSERT bits selecionados HIGH, os bits 3-7 do 13 e 14 (bits 19-23 campos e 27-31 da instrução, respectivamente), com um zero binário anexado no lado esquerdo de cada uma, forma de seis bits sem sinal inteiros binários especificando as posições de bits de inicio e fim (inclusive) do intervalo selecionado de bits do primeiro operando e no segundo operando após rotação. Quando a posição de bit final é menor do que a posição de bit de partida, o intervalo de bits selecionados envolve em torno de bit 31 para o bit 0. Assim, as posições de bits de inicio e término do intervalo selecionado de bits são sempre entre 0 e 31. Para RODAR THEN INSERT bits selecionados LOW, os bits 3-7 do 13 e 14 campos, com um binário anexado no lado esquerdo de cada uma, forma seis bits binários inteiros sem sinal que especifica as posições de bit de inicio e fim (inclusive) do selecionado gama de bits no primeiro operando e no segundo operando após rotação. Quando a posição de bit final é menor do que a posição de bit de partida, o intervalo de bits selecionados envolve em torno de bits 63 a 32 bits. Assim, as posições de bit de inicio e fim do intervalo selecionado de bits são sempre entre 32 e 63.Bits 2-7 do campo 15 (bits 34-39 da instrução) contêm um número inteiro binário unsigned, especificando o número de bits que o segundo operando é rodado para a esquerda. 0 bit do campo 14 (24 bits da instrução) contém o controle de zero bits restantes (Z). O controle bit Z mostram os restantes bits do primeiro operando são definidos (isto é, aqueles bocados, se houver, que estão fora do intervalo especificado) . Quando o bit Z é igual a zero, os restantes bits do primeiro operando permanecem inalteradas. Quando o bit Z é um, os restantes bits do primeiro operando estão definidas para zeros. Os campos imediatos acima descritas são como se segue: Bits 0-2 do campo 13 e os bits 1-2 do campo 14 (bitsl6-19 e 25-26 da instrução) são reservados e deve conter zeros, caso contrário, o programa pode não operar compativelmente no futuro. Bits 0-1 do I5field (bits 32-33 da instrução) são ignoradas.
[000174] Código condição: O código permanece inalterado [000175] Exceções programa: • Operação (se a instalação de alto-palavra não está instalado) [000176] Notas de programação: 1. Embora os 2-7 bits do campo 15 são definidas para conter um número inteiro binário não atribuído, especificando o número de bits que o segundo operando é rodado para a esquerda, um valor negativo pode ser codificado de forma eficaz, que especifica uma quantidade de rotação para a direita. 2 . O primeiro operando é sempre usado em sua forma un-rodado. Quando o RI e R2 campos designar o mesmo registo, o valor contido no registo é girado primeiro, e depois os bits selecionados do valor girado são inseridos os bits correspondentes dos rodada cancelar o registro conteúdo. 3. Na sintaxe montador, o operando 15 contendo a quantidade de rotação é considerada opcional. Quando o campo não é codificado 15, uma quantidade de rotação de zero está implícita. 4. O campo 14 contém tanto o controlo zero bits restantes (em bit 0) e o valor de posição de fim de bits (em bits 2-7). Por exemplo, para inserir os bits 40-43 do registo 7 para os bits correspondentes de registo 5 (sem rotação) e zero, os bits restantes na metade direita do registo 5, o programador possa código: 0 'X'80 representa o zero restantes bits de controlo, que é adicionado para a posição final bits para formar o campo 14. O montador de alto nível (HLASM) fornece mnemônicos alternativas para as versões de zero restantes pedaços de RISBHG RISBLG e sob a forma de RISBHGZ e RISBLHZ, respectivamente. O "Z" sufixo para o mnemônico indica que o campo é specifiedI4 ORed com um valor de X'80 'ao gerar o código objeto. Um equivalente do exemplo mostrado acima usando o mnemônico Z-sufixo é a seguinte: 5. Em alguns modelos, um melhor desempenho de RISBHG RISBLG e pode ser realizado ajustando o controlo zero restantes bits para um (ou usando o sufixo mnemônico Z). 6. Ao contrário RODAR THEN INSERT SELECTEDBITS que define o código de condição, ROTATETHEN inserir bits selecionados de alto e girar THEN INSERT bits selecionados LOW não definir o código de condição.
[000177] ALTA LOJA DE CARACTERES (formato rxy) [000178] Quando a instrução é executada pelo sistema de computador, Bits 24-31 de registo geral RI são colocados inalterado no local do segundo operando. O segundo operando é um byte de comprimento. O deslocamento é tratado como um inteiro binário de 20 bits assinado.
[000179] Código condição: O código permanece inalterado.
[000180] Exceções programa: • Acesso (loja, operando 2) · A operação (se a instalação de palavra-alta não está instalado) [000181] LOJA halfword ALTA (formato rxy) [000182] Quando a instrução é executada pelo sistema de computador, bits 16-31 do registo geral RI são colocados inalterado no local do segundo operando. O segundo operando é de dois bytes de comprimento. O deslocamento é tratado como um inteiro binário de 20 bits assinado.
[000183] Código condição: O código permanece inalterado.
[000184] Exceções programa: • Acesso (loja, operando 2) • Operação (se a instalação de alto-palavra não está instalado) LOJA DE ALTA (formato rxy) [000185] Quando a instrução é executada pelo sistema de computador, o primeiro operando é colocado inalterado no local segundo operando. O primeiro operando é em bits 0-31 de registo geral Rl, e o segundo operando é 32bits no armazenamento. O deslocamento é tratado como um inteiro binário de 20 bits assinado.
[000186] Código condição: O código permanece inalterado.
[000187] Exceções programa: • Acesso (loja, operando 2) • Operação (se a instalação de alto-palavra não está instalado) SUBTRAIR ALTA (formato RRF) [000188] Quando a instrução é executada pelo sistema de computador, o terceiro operando é subtraído do segundo operando, e que a diferença é colocado no local primeiro operando. Os operandos e a diferença são tratados como inteiros de 32 bits binários assinados. Os operandos primeiro e o segundo são em bits 0-31 da geral registros Rl e R2, respectivamente; pedaços 32-63of geral registo Rl estão inalterados, e os bits 32-63of geral registo R2 são ignorados. Para OpCode SHHHR, o terceiro operando é em bits 0-31 de R3 Registro Geral; pedaços 32-63 do registo são ignorados. Para OpCode SHHLR, o terceiro operando é em bits 32-63 de registerR3 geral; bocados 0-31 do registo são ignorados. Quando há um excesso, o resultado é obtido permitindo que qualquer transporte para a posição de bit de sinal e ignorar qualquer transportar para fora da posição bit de sinal, e o código de condição 3 é ajustado. Se a máscara de ponto fixo de estouro de um, uma interrupção do programa para ponto fixo de estouro ocorre.
[000189] Resultando Código Condição: [000190] 0 resultado zero, sem estouro [000191] 1 Resultado inferior a zero, nenhum excesso [000192] 2 Resultado maior que zero, sem transbordar [000193] 3 Overflow [000194] Exceções programa: • excesso de ponto fixo • Operação (se a instalação de alto-palavra não está instalado) SUBTRAIR LÓGICO ALTA (formato RRF) [000195] Quando a instrução é executada pelo sistema de computador, o terceiro operando é subtraído do segundo operando, e que a diferença é colocada no local primeiro operando. Os operandos e a diferença são tratados como inteiros de 32 bits binários sem sinal. Os operandos primeiro e o segundo são em bits 0-31 da geral registros RI e R2, respectivamente; pedaços 32-63of geral registo RI estão inalterados, e os bits 32-63of geral registo R2 são ignorados. Para OpCode SLHHHR, o terceiro operando é em bits 0-31 de R3 Registro Geral; pedaços 32-63 do registo são ignorados. Para OpCode SLHHLR, o terceiro operando é em bits 32-63 de regísterR3 geral; bocados 0-31 do registo são ignorados.
[000196] Resultando Código Condição: [000197] 0 - [000198] 1 Resultado não zero; emprestado [000199] 2 Resultado zero; não emprestar [000200] 3 Resultado não zero, sem pedir [000201] Exceções programa: • Operação (se a instalação de alto-palavra não está instalado) [000202] Com referência à Figura 6, um exemplo de registradores de propósito geral (GPR) é mostrado com 16 GPRS (cada GPR compreendendo os bits 32-63 no modo RPG Pequeno e pedaços 0-63 no modo RPG Grande) . O número efectivo dos registos de uso geral (GPRS) disponível com as instruções de um programa pode ser alargado através de um computador tendo um primeiro número (16) de grande GPRs, cada instrução que compreende um código de operação e um ou mais campos de GPR para especificar GPRs correspondente, cada GPR grande que consiste de uma primeira porção (31-63) e uma segunda porção (0-31) . Referindo a Figura 7A, um computador em busca instruções para instruções de execução que compreendem a partir de qualquer primeiro conjunto 701, um segundo conjunto de 702 ou de um terceiro conjunto 710. O primeiro conjunto apenas acessar a uma primeira porção de qualquer GPR, o segundo conjunto acessar a uma segunda porção de qualquer GPR, o terceiro conjunto acessar a GPR todo, incluindo a primeira porção e a segunda porção. Quando o computador 703 está num modo de GPR pequeno, por exemplo, e é a execução de instruções do primeiro conjunto de instruções 707 para acessar aos primeiras partes, compreendendo a execução 708 endereços de memória para o acesso geradoras operandos de memória com base no referido GPRs pequeno ou acessar GPR pequeno operandos, em que cada uma das ditas pequenas GPRs consiste do dito primeiro troço 707. 703 quando o computador está em modo de GPR pequeno, quando o computador 705 está a executar instruções do Word Alto, executando instruções 706 de um segundo conjunto de instruções, o segundo conjunto de instruções para acessar a instrução especificada segundas porções, em que a execução 708 compreende gerar endereços de memória para acessar operandos de memória com base no citado pequena GPRS ou acessando operandos pequenas GPR, em que o dito GPR pequeno consiste da referida porção de instrução especificado segundo. Quando o computador 704 é de um modo geral em que cada GPR GPR grande consiste em a primeira porção e a segunda porção, o computador executa as instruções do terceiro conjunto de instruções, o que compreende a execução de geração endereços de memória para o acesso operandos de memória com base no referido GPRs grande ou acessar a grandes operandos GPR, em que cada um dos referidos GPR grande consiste da referida primeira porção e a referida segunda porção. a. Em resposta ao computador estar num modo de GPR pequeno o computador pode gerar uma exceção de operação 709 responsivo a execução de instruções do segundo conjunto de instruções. b. A execução da instrução do conjunto de instruções de segundo pode executar um código de operação 751 correspondente função definida com base em dois operandos, e armazena o resultado, a função de opcode correspondente definido consistindo de um ADD de duas função operandos, um COMPARAR de dois operandos função ou um OR de dois operandos funcionar 752. c. A execução da instrução do conjunto de instruções pode executar um segundo código de operação correspondente função definida com base em dois operandos, e armazena o resultado, a função correspondente opcode definida consiste de uma carga e operando a partir da função de memória ou de uma loja de um operando função de memória 753. d. A execução da instrução do conjunto de instruções segunda pode executar um código de operação correspondente função definida com base em dois operandos, e armazenar o resultado, o opcode correspondente função definida é um BITS RODAR THEN INSERT função selecionada compreendendo rotação de um operando fonte por uma quantidade de instrução especificado, inserindo uma porção selecionada do operando fonte rodado em uma parte selecionada de um operando alvo 704 .
[000203] Embora as concretizações preferidas tenham sido ilustradas e descritas aqui, é para ser entendido que as concretizações não são limitadas à construção precisa aqui divulgada, e é reservado o direito a todas as alterações e modificações que caiam no escopo da invenção, como é definido nas reivindicações anexas.

Claims (24)

1. Método implementado computador por para estender um número efetivo de registradores de uso geral (GPRS) disponíveis para instruções de um programa em um computador tendo um primeiro número de GPRs grande, cada instrução compreendendo um opcode e um ou mais campos de GPR para especificar GPRs correspondentes, cada GPR grande compreendendo uma primeira porção e uma segunda porção, os referidos GPRs grandes compreendendo primeiro GPRs pequeno consistindo em primeira e segunda porção de GPRs pequena consistindo de segundas porções, o método caracterizado pelo fato de que compreende: em resposta ao computador estar em um modo de GPR pequena, realizar a) - b): a) executar as instruções de um primeiro conjunto de instruções, o primeiro conjunto de instruções para acessar o referido primeiro GPRs pequeno, a execução compreendendo a geração de endereços de memória para acessar operandos de memória com base no referido primeiro GPRs pequeno ou acessar os primeiro operandos de GPR pequenos, em que o primeiro GPRs pequeno consiste das referidas primeiras porções; e b) execução de instruções de um segundo conjunto de instruções, o segundo conjunto de instruções para acessar o referido segundo GPRs pequeno, a execução compreendendo geração de endereços de memória para acessar operandos de memória com base no referido segundo GPRS pequeno ou acessar os segundos operandos de GPR pequenos, em que os segundos GPRs pequenos consistem das referidas segundas porções, e em resposta ao computador estar em um modo de GPR de grande porte, executar as instruções de um terceiro conjunto de instruções, a execução compreende gerar endereços de memória para acessar operandos de memória com base nos referidos GPRs grandes ou acessar operandos de grandes GPR compreendendo as referidas primeira e segunda porções.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o modo de GPR pequeno compreendendo estar em um de um modo de 24 bits de endereçamento ou um modo de 31 bits de endereçamento.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a primeira porção é de 32 bits, a segunda porção é de 32 bits e a terceira porção é de 64 bits.
4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a execução das instruções do segundo conjunto de instruções compreende a realização de uma função de opcode definida correspondente com base em dois operandos e armazenar o resultado, a função de opcode definida correspondente consiste em um ADD de duas funções de operandos ou uma função COMPARE de dois operandos.
5. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a execução das instruções do conjunto de instruções segunda compreende a realização de uma função opcode correspondente definida com base em dois operandos e armazena o resultado, a função opcode correspondente definida consiste de um LOAD de um operando da função de memória ou STORE um de um operando na função de memória.
6. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a execução das instruções do segundo conjunto de instruções compreende a realização de uma função de opcode definida correspondente com base em dois operandos e armazena o resultado, a função de opcode definida correspondente é um ROTATE THEN INSERT SELECTED BITS compreendendo: rotação de um operando de origem por um montante especificado de instrução; e inserção de um porção selecionada do operando de origem girado em uma porção selecionada de um operando destino.
7. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que compreende suporte a um sistema operacional que opera em modo de GPR Grande, em que o GPRs grandes são salvos e restaurados durante trocas de contexto para aplicações rodando em modo de GPR pequeno.
8. Método, de acordo com a reivindicação 7, onde o caracterizado pelo fato de que o terceiro conjunto de instruções compreende o primeiro conjunto de instruções e o segundo conjunto de instruções.
9. Produto programa de computador para estender um número efetivo de registradores de uso geral (GPRS) disponíveis para instruções de um programa em um computador tendo um primeiro número de GPRs grande, cada instrução compreendendo um opcode e um ou mais campos de GPR para especificar GPRs correspondentes, cada GPR grande compreendendo uma primeira porção e uma segunda porção, os referidos GPRs grandes compreendendo primeiro GPRs pequeno consistindo em primeira e segunda porção de GPRs pequena consistindo de segundas porções, o produto de programa de computador caracterizado pelo fato de que compreende mídia de armazenamento tangível por um circuito de processamento e armazenamento de instruções para execução pelo circuito de processamento para realizar um método compreendendo: em resposta ao computador estar em um modo de GPR pequena, realizar a) - b): a) executar as instruções de um primeiro conjunto de instruções, o primeiro conjunto de instruções para acessar o referido primeiro GPRs pequeno, a execução compreendendo a geração de endereços de memória para acessar operandos de memória com base no referido primeiro GPRs pequeno ou acessar os primeiro operandos de GPR pequenos, em que o primeiro GPRs pequeno consiste das referidas primeiras porções; e b) execução de instruções de um segundo conjunto de instruções, o segundo conjunto de instruções para acessar o referido segundo GPRs pequeno, a execução compreendendo geração de endereços de memória para acessar operandos de memória com base no referido segundo GPRS pequeno ou acessar os segundos operandos de GPR pequenos, em que os segundos GPRs pequenos consistem das referidas segundas porções, e em resposta ao computador estar em um modo de GPR de grande porte, executar as instruções de um terceiro conjunto de instruções, a execução compreende gerar endereços de memória para acessar operandos de memória com base nos referidos GPRs grandes ou acessar operandos de grandes GPR compreendendo as referidas primeira e segunda porções.
10. Produto programa de computador, de acordo com a reivindicação 9, caracterizado pelo fato de que o modo de GPR pequeno compreendendo estar em um de um modo de 24 bits de endereçamento ou um modo de 31 bits de endereçamento.
11. Produto programa de computador, de acordo com a reivindicação 10, oaracterizado pelo fato de que a primeira porção é de 32 bits, a segunda porção é de 32 bits e a terceira porção é de 64 bits.
12. Produto programa de computador, de acordo com a reivindicação 10, caracterizado pelo fato de que a execução das instruções do segundo conjunto de instruções compreende a realização de uma função de opcode definida correspondente com base em dois operandos e armazenar o resultado, a função de opcode definida correspondente consiste em um ADD de duas funções de operandos ou uma função COMPARE de dois operandos.
13. Produto programa de computador, de acordo com a reivindicação 10, caracterizado pelo fato de que a execução das instruções do conjunto de instruções segunda compreende a realização de uma função opcode correspondente definida com base em dois operandos e armazena o resultado, a função opcode correspondente definida consiste de um LOAD de um operando da função de memória ou STORE um de um operando na função de memória.
14. Produto programa de computador, de acordo com a reivindicação 10, caracterizado pelo fato de que a execução das instruções do segundo conjunto de instruções compreende a realização de uma função de opcode definida correspondente com base em dois operandos e armazena o resultado, a função de opcode definida correspondente é um ROTATE THEN INSERT SELECTED BITS compreendendo: rotação de um operando de origem por um montante especificado de instrução; e inserção de um porção selecionada do operando de origem girado em uma porção selecionada de um ' operando destino.
15. Produto programa de computador, de acordo com a reivindicação 10, caracterizado pelo fato de que compreende suporte a um sistema operacional que opera em modo de GPR Grande, em que o GPRs grandes são salvos e restaurados durante trocas de contexto para aplicações rodando em modo de GPR pequeno.
16. Produto programa de computador, de acordo com a reivindicação 15, onde o caracterizado pelo fato de que o terceiro conjunto de instruções compreende o primeiro conjunto de instruções e o segundo conjunto de instruções.
17. Sistema de computador para estender um número efetivo de registradores de uso geral (GPRS) disponíveis para instruções de um programa em um computador tendo um primeiro número de GPRs grande, cada instrução compreendendo um opcode e um ou mais campos de GPR para especificar GPRs correspondentes, cada GPR grande compreendendo uma primeira porção e uma segunda porção, os referidos GPRs grandes compreendendo primeiro GPRs pequeno consistindo em primeira e segunda porção de GPRs pequena consistindo de segundas porções, compreendendo: uma memória, e um processador em comunicação com a memória, o processador compreendendo um elemento de busca de instruções para buscar instruções da memória e um ou mais elementos de execução para a execução de instruções buscadas, onde o sistema de computador é configurado para realizar um método compreendendo: em resposta ao computador estar em um modo de GPR pequena, realizar a) - b): a) executar as instruções de um primeiro conjunto de instruções, o primeiro conjunto de instruções para acessar o referido primeiro GPRs pequeno, a execução compreendendo a geração de endereços de memória para acessar operandos de memória com base no referido primeiro GPRs pequeno ou acessar os primeiro operandos de GPR pequenos, em que o primeiro GPRs pequeno consiste das referidas primeiras porções; e b) execução de instruções de um segundo conjunto de instruções, o segundo conjunto de instruções para acessar o referido segundo GPRs pequeno, a execução compreendendo geração de endereços de memória para acessar operandos de memória com base no referido segundo GPRS pequeno ou acessar os segundos operandos de GPR pequenos, em que os segundos GPRs pequenos consistem das referidas segundas porções, e em resposta ao computador estar em um modo de GPR de grande porte, executar as instruções de um terceiro conjunto de instruções, a execução compreende gerar endereços de memória para acessar operandos de memória com base nos referidos GPRs grandes ou acessar operandos de grandes GPR compreendendo as referidas primeira e segunda porções.
18 . Sistema de computador, de acordo com a reivindicação 17, caracterizado pelo fato de que o modo de GPR pequeno compreendendo estar em um de um modo de 24 bits de endereçamento ou um modo de 31 bits de endereçamento.
19. Sistema de computador, de acordo com a reivindicação 18, caracterizado pelo fato de que a primeira porção é de 32 bits, a segunda porção é de 32 bits e a terceira porção é de 64 bits.
20. Sistema de computador, de acordo com a reivindicação 18, caracterizado pelo fato de que a execução das instruções do segundo conjunto de instruções compreende a realização de uma função de opcode definida correspondente com base em dois operandos e armazenar o resultado, a função de opcode definida correspondente consiste em um ADD de duas funções de operandos ou uma função COMPARE de dois operandos.
21. Sistema de computador, de acordo com a reivindicação 18, caracterizado pelo fa"to dc quc a. ^s^í^sc-i^ç-ao das instruções do conjunto de instruções segunda compreende a realização de uma função opcode correspondente definida com base em dois operandos e armazena o resultado, a função opcode correspondente definida consiste de um LOAD de um operando da função de memória ou STORE um de um operando na função de memória.
22. Sistema de computador, de acordo com a reivindicação 18, caracterizado pelo fato de que a execução das instruções do segundo conjunto de instruções compreende a realização de uma função de opcode definida correspondente com base em dois operandos e armazena o resultado, a função de opcode definida correspondente é um ROTATE THEN INSERT SELECTED BITS compreendendo: rotação de um operando de origem por um montante especificado de instrução; e inserção de um porção selecionada do operando de origem girado em uma porção selecionada de um operando destino.
23. Sistema de computador, de acordo com a reivindicação 18, caracterizado pelo fato de que compreende suporte a um sistema operacional que opera em modo de GPR Grande, em que o GPRs grandes são salvos e restaurados durante trocas de contexto para aplicações rodando em modo de GPR pequeno.
24. Sistema de computador, de acordo com a reivindicação 23, onde o caracterizado pelo fato de que o terceiro conjunto de instruções compreende o primeiro conjunto de instruções e o segundo conjunto de instruções.
BRPI1103516-1A 2010-06-22 2011-06-22 Facilidade de palavra grande para estender o número de registradores de propósitogeral disponíveis para instruções BRPI1103516B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/820,735 2010-06-22
US12/820,735 US8914619B2 (en) 2010-06-22 2010-06-22 High-word facility for extending the number of general purpose registers available to instructions

Publications (2)

Publication Number Publication Date
BRPI1103516A2 true BRPI1103516A2 (pt) 2016-05-17
BRPI1103516B1 BRPI1103516B1 (pt) 2021-01-12

Family

ID=43334493

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI1103516-1A BRPI1103516B1 (pt) 2010-06-22 2011-06-22 Facilidade de palavra grande para estender o número de registradores de propósitogeral disponíveis para instruções

Country Status (14)

Country Link
US (2) US8914619B2 (pt)
EP (1) EP2430521A1 (pt)
JP (2) JP5379825B2 (pt)
KR (1) KR101464808B1 (pt)
CN (1) CN102314333A (pt)
AU (1) AU2010355817B2 (pt)
BR (1) BRPI1103516B1 (pt)
CA (1) CA2786049C (pt)
IL (1) IL223587A (pt)
MX (1) MX2012014533A (pt)
RU (1) RU2562430C2 (pt)
SG (1) SG186078A1 (pt)
WO (1) WO2011160726A1 (pt)
ZA (1) ZA201209644B (pt)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914619B2 (en) 2010-06-22 2014-12-16 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US9696975B2 (en) * 2010-09-03 2017-07-04 International Business Machines Corporation Allocating register halves independently
US9317285B2 (en) * 2012-04-30 2016-04-19 Apple Inc. Instruction set architecture mode dependent sub-size access of register with associated status indication
US20130339656A1 (en) * 2012-06-15 2013-12-19 International Business Machines Corporation Compare and Replace DAT Table Entry
US9639369B2 (en) 2013-11-11 2017-05-02 Apple Inc. Split register file for operands of different sizes
US10671391B2 (en) * 2014-02-25 2020-06-02 MIPS Tech, LLC Modeless instruction execution with 64/32-bit addressing
US20150293767A1 (en) * 2014-04-11 2015-10-15 Fujitsu Limited Rotating register file with bit expansion support
WO2016034087A1 (en) * 2014-09-03 2016-03-10 Mediatek Inc. Method for handling mode switching with less unnecessary register data access and related non-transitory machine readable medium
CN107145334B (zh) * 2017-04-26 2020-10-09 龙芯中科技术有限公司 常量获取方法、装置、处理器及计算机可读存储介质
WO2022067510A1 (zh) * 2020-09-29 2022-04-07 华为技术有限公司 一种处理器、处理方法及相关设备

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3432532B2 (ja) * 1992-08-03 2003-08-04 株式会社日立製作所 データ処理装置
JP2686011B2 (ja) * 1992-01-27 1997-12-08 富士通株式会社 レジスタ制御装置
WO1994027215A1 (en) 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding guest instructions for a host computer
US5546557A (en) 1993-06-14 1996-08-13 International Business Machines Corporation System for storing and managing plural logical volumes in each of several physical volumes including automatically creating logical volumes in peripheral data storage subsystem
US5751614A (en) 1994-03-08 1998-05-12 Exponential Technology, Inc. Sign-extension merge/mask, rotate/shift, and boolean operations executed in a vectored mux on an ALU
GB2289353B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
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
GB2317467B (en) 1996-09-23 2000-11-01 Advanced Risc Mach Ltd Input operand control in data processing systems
TW364976B (en) 1996-09-23 1999-07-21 Arm Corp Input operand control in data processing systems
TW343318B (en) * 1996-09-23 1998-10-21 Advanced Risc Mach Ltd Register addressing in a data processing apparatus
US5838960A (en) 1996-09-26 1998-11-17 Bay Networks, Inc. Apparatus for performing an atomic add instructions
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6009261A (en) 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6308255B1 (en) 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US6343356B1 (en) * 1998-10-09 2002-01-29 Bops, Inc. Methods and apparatus for dynamic instruction controlled reconfiguration register file with extended precision
US20020147969A1 (en) 1998-10-21 2002-10-10 Richard A. Lethin Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6877084B1 (en) * 2000-08-09 2005-04-05 Advanced Micro Devices, Inc. Central processing unit (CPU) accessing an extended register set in an extended register mode
JP3659252B2 (ja) 2003-03-28 2005-06-15 セイコーエプソン株式会社 ベクトルデータのアドレス参照方法およびベクトルプロセッサ
US7284092B2 (en) 2004-06-24 2007-10-16 International Business Machines Corporation Digital data processing apparatus having multi-level register file
US7627723B1 (en) 2006-09-21 2009-12-01 Nvidia Corporation Atomic memory operators in a parallel processor
US7840783B1 (en) * 2007-09-10 2010-11-23 Netlogic Microsystems, Inc. System and method for performing a register renaming operation utilizing hardware which is capable of operating in at least two modes utilizing registers of multiple widths
US8694758B2 (en) 2007-12-27 2014-04-08 Intel Corporation Mixing instructions with different register sizes
US20090182983A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Compare and Branch Facility and Instruction Therefore
US20090182982A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Rotate Then Insert Selected Bits Facility and Instructions Therefore
US7877582B2 (en) * 2008-01-31 2011-01-25 International Business Machines Corporation Multi-addressable register file
US20100100692A1 (en) 2008-10-21 2010-04-22 International Business Machines Corporation Exploiting Register High-Words
US8386754B2 (en) * 2009-06-24 2013-02-26 Arm Limited Renaming wide register source operand with plural short register source operands for select instructions to detect dependency fast with existing mechanism
US8850166B2 (en) 2010-02-18 2014-09-30 International Business Machines Corporation Load pair disjoint facility and instruction therefore
US8438340B2 (en) 2010-02-18 2013-05-07 International Business Machines Corporation Executing atomic store disjoint instructions
US8914619B2 (en) 2010-06-22 2014-12-16 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions

Also Published As

Publication number Publication date
AU2010355817A1 (en) 2012-07-05
CA2786049C (en) 2018-02-13
RU2012149004A (ru) 2014-05-27
BRPI1103516B1 (pt) 2021-01-12
US8914619B2 (en) 2014-12-16
EP2430521A1 (en) 2012-03-21
WO2011160726A1 (en) 2011-12-29
CA2786049A1 (en) 2011-12-29
AU2010355817B2 (en) 2014-04-03
JP5379825B2 (ja) 2013-12-25
KR101464808B1 (ko) 2014-11-27
KR20110139098A (ko) 2011-12-28
IL223587A (en) 2017-07-31
US20110314260A1 (en) 2011-12-22
ZA201209644B (en) 2013-08-28
JP2013242918A (ja) 2013-12-05
MX2012014533A (es) 2013-01-29
US9459872B2 (en) 2016-10-04
CN102314333A (zh) 2012-01-11
US20130117545A1 (en) 2013-05-09
JP2012009020A (ja) 2012-01-12
RU2562430C2 (ru) 2015-09-10
SG186078A1 (en) 2013-01-30
JP5657074B2 (ja) 2015-01-21

Similar Documents

Publication Publication Date Title
JP5357181B2 (ja) コンピュータ・システム、その動作方法、及び、コンピュータ・プログラム
BRPI1103516A2 (pt) facilidade de palavra grande para estender o número de registradores de propósito geral disponíveis para instruções
KR101231562B1 (ko) 캐시 속성 추출 기능 및 이를 위한 명령어
BRPI1103258A2 (pt) instruções para realizar uma operação em dois operandos e subsequentemente armazenar o valor original do operando
US10963391B2 (en) Extract target cache attribute facility and instruction therefor
US20090182988A1 (en) Compare Relative Long Facility and Instructions Therefore
WO2009087158A2 (en) Compare and branch facility and instruction therefore
KR101285072B1 (ko) 실행 관련 명령어
US20090182992A1 (en) Load Relative and Store Relative Facility and Instructions Therefore
US20090182985A1 (en) Move Facility and Instructions Therefore
US20090182982A1 (en) Rotate Then Insert Selected Bits Facility and Instructions Therefore

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B04C Request for examination: application reinstated [chapter 4.3 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 22/06/2011, OBSERVADAS AS CONDICOES LEGAIS.