BR112016021602B1 - Configuração de modo de arquitetura em um sistema de computador - Google Patents

Configuração de modo de arquitetura em um sistema de computador Download PDF

Info

Publication number
BR112016021602B1
BR112016021602B1 BR112016021602-4A BR112016021602A BR112016021602B1 BR 112016021602 B1 BR112016021602 B1 BR 112016021602B1 BR 112016021602 A BR112016021602 A BR 112016021602A BR 112016021602 B1 BR112016021602 B1 BR 112016021602B1
Authority
BR
Brazil
Prior art keywords
architecture
mode
architecture mode
computing environment
cpu
Prior art date
Application number
BR112016021602-4A
Other languages
English (en)
Other versions
BR112016021602A2 (pt
Inventor
Michael Karl Gschwind
Original Assignee
International Business Machines Corporation
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 International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of BR112016021602A2 publication Critical patent/BR112016021602A2/pt
Publication of BR112016021602B1 publication Critical patent/BR112016021602B1/pt

Links

Images

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/44Arrangements for executing specific programs
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)

Abstract

CONFIGURAÇÃO DE MODO DE ARQUITETURA EM UM SISTEMA DE COMPUTADOR. A determinação é feita que uma instalação de modo de arquitetura de configuração é instalada em um ambiente de computação que está configurado para uma pluralidade de modos de arquitetura e tem uma sequência de ativação que é para ser ligada ao ambiente de computação em um modo de arquitetura da pluralidade de modos de arquitetura. Com base na determinação de que a instalação de modo de arquitetura de configuração está instalada, o ambiente de computação é reconfigurado para restringir o uso de um modo de arquitetura. A reconfiguração inclui selecionar uma sequência de ativação diferente para ligar o ambiente de computação em outro modo de arquitetura da pluralidade de modos de arquitetura, em que o outro modo de arquitetura é diferente do modo de arquitetura, e executar a sequência de ativação diferente do ambiente de computação no outro modo de arquitetura no lugar de um modo de arquitetura que restringe o uso do modo de arquitetura.

Description

Campo Técnico
[0001] Um ou mais aspectos se referem, em geral, às configurações de ambientes de computação, e em particular, para alterar as configurações de tais ambientes.
Antecedentes da Invenção
[0002] Ambientes de computação oferecem uma gama de capacidade e funções dependendo das configurações arquitetônicas dos ambientes. Duas arquiteturas que foram oferecidas por International Business Machines Corporation, Armonk, Nova Iorque, incluem ESA/390 e Z/Architecture.
[0003] ESA/390 é uma arquitetura predecessora de Z/Architecture. No entanto, quando Z/Architecture foi introduzido, ESA/390 continua a ser suportado. Para suportar ambas as arquiteturas em um ambiente, certos procedimentos são seguidos. Por exemplo, no ato de ligar, ESA/390 é inicializado, e então, um comutador pode ser feito para a Z/Architecture, se for desejado. Isto permite que software de legado continue a execução sem uma alteração. Outros tais procedimentos são providos de maneira a suportar ambas as configurações arquitetônicas em um ambiente.
[0004] No entanto, testes de memória virtual são caros. Como uma arquitetura tem caducidade, pode ser desejável prover ambientes de legado, por exemplo, para sistemas que usam suporte de arquitetura mínimo, tal como sistemas de operação de DOS (por exemplo, tal como MS DOS ou CMS), que funcionam primariamente como ambientes de interpretador de linha de comando, ou para ambientes que são usados para executar parte de BIOS (e que pode executar sem as complexidades de memória virtual)
[0005] Portanto, existe uma necessidade na técnica de se endereçar o problema mencionado anteriormente. Sumário
[0006] Desvantagens da técnica anterior são superadas e vantagens são providas através da provisão de um produto de programa de computador de reconfiguração de um ambiente de computação. O produto de programa de computador inclui, por exemplo, um meio de armazenamento legível por computador legível por um circuito de processamento e armazenando instruções para a execução pelo circuito de processamento para realizar um método. O método inclui, por exemplo, determinar, por um processador, que uma instalação de modo de arquitetura de configuração é instalada em um ambiente de computação que é configurado para uma pluralidade de modos de arquitetura e possui uma sequência de ligar definida que deve ser ligado no ambiente de computação de um modo de arquitetura da pluralidade de modos de arquitetura, o um modo de arquitetura compreendendo uma primeira arquitetura de configuração de instrução e tendo um primeiro conjunto de funcionalidades suportadas; com base na determinação de que a instalação de modo de arquitetura de configuração é instalada, reconfigurando, pelo processador, o ambiente de computação para restringir o uso do um modo de arquitetura, em que a reconfiguração inclui: selecionar uma diferente sequência de ligar para ligar o ambiente de computação em outro modo de arquitetura da pluralidade de modos de arquitetura, em que o outro modo de arquitetura é diferente do um modo de arquitetura, e o outro modo de arquitetura compreende uma segunda arquitetura de configuração de instrução e tendo um segundo conjunto de funcionalidades suportadas; e executar a diferente sequência de ligar para ligar o ambiente de computação no outro modo de arquitetura no lugar de um modo de arquitetura que restringe o uso do um modo de arquitetura.
[0007] Observada a partir de um primeiro aspecto, a presente invenção provê um método de reconfiguração de um ambiente de computação, o dito método compreendendo: determinar, por um processador, que uma instalação de modo de arquitetura de configuração é instalada em um ambiente de computação que está configurado para uma pluralidade de modos de arquitetura e possui uma sequência de ligar definida que é para ligar o ambiente de computação em um modo de arquitetura da pluralidade de modos de arquitetura, o um modo de arquitetura compreendendo uma primeira arquitetura de configuração de instrução e tendo um primeiro conjunto de funcionalidades suportadas; com base na determinação de que a instalação de modo de arquitetura de configuração é instalada, reconfigurando, pelo processador, o ambiente de computação para restringir o uso do um modo de arquitetura, em que a reconfiguração compreende: selecionar uma diferente sequência de ligar para ligar o ambiente de computação em outro modo de arquitetura da pluralidade de modos de arquitetura, em que o outro modo de arquitetura é diferente do um modo de arquitetura, e o outro modo de arquitetura compreende uma segunda arquitetura de configuração de instrução e tendo um segundo conjunto de funcionalidades suportadas; e executar a diferente sequência de ligar para ligar o ambiente de computação no outro modo de arquitetura no lugar do um modo de arquitetura que restringe o uso do um modo de arquitetura.
[0008] Observada a partir de um aspecto adicional, a presente invenção provê um método para configurar um ambiente de computação, o dito método compreendendo: configurar, por um processador, um ambiente de computação para realizar operações em um modo de arquitetura selecionado, a configuração compreendendo: começar a inicialização do ambiente de computação usando uma palavra de estado de programa armazenado, a palavra de estado de programa armazenado tendo um formato de um modo de arquitetura diferente do modo de arquitetura selecionado; determinar que a palavra de estado de programa armazenado possui o formato do modo de arquitetura diferente do modo de arquitetura selecionado; com base na determinação da palavra de estado de programa armazenado possui o formato do modo de arquitetura diferente do modo de arquitetura selecionado, modificando automaticamente a palavra de estado de programa armazenado para ter um formato do modo de arquitetura selecionado, o ato de modificar automaticamente sendo realizado ausente um requisito explícito para mudar para o modo de arquitetura selecionado; e completar a inicialização do ambiente de computação usando a palavra de estado de programa modificado para configurar o ambiente de computação no modo de arquitetura selecionado.
[0009] Observada a partir de um aspecto adicional, a presente invenção provê um sistema de computador de reconfiguração de um ambiente de computação, o dito sistema de computador compreendendo: uma memória; e um processador em comunicações com a memória, em que o sistema de computador é configurado para realizar um método, o dito método compreendendo: determinar, pelo processador, que uma instalação de modo de arquitetura de configuração é instalada em um ambiente de computação que está configurado para uma pluralidade de modos de arquitetura e possui uma sequência de ligar definida que é para ligar o ambiente de computação em um modo de arquitetura da pluralidade de modos de arquitetura, o um modo de arquitetura compreendendo uma primeira arquitetura de configuração de instrução e tendo um primeiro conjunto de funcionalidades suportadas; com base na determinação de que a instalação de modo de arquitetura de configuração é instalada, reconfigurando, pelo processador, o ambiente de computação para restringir o uso do um modo de arquitetura, em que a reconfiguração compreende: selecionar uma diferente sequência de ligar para ligar o ambiente de computação em outro modo de arquitetura da pluralidade de modos de arquitetura, em que o outro modo de arquitetura é diferente do um modo de arquitetura, e o outro modo de arquitetura compreende uma segunda arquitetura de configuração de instrução e tendo um segundo conjunto de funcionalidades suportadas; e executar a diferente sequência de ligar para ligar o ambiente de computação no outro modo de arquitetura no lugar do um modo de arquitetura que restringe o uso do um modo de arquitetura.
[0010] Observada a partir de um aspecto adicional, a presente invenção provê um produto de programa de computador de reconfiguração de um ambiente de computação, o produto de programa de computador compreendendo um meio de armazenamento legível por computador legível por um circuito de processamento e armazenar instruções para a execução pelo circuito de processamento para realizar um método para realizar as etapas da invenção. Observada a partir de um aspecto adicional, a presente invenção provê um produto de programa de computador para configurar um ambiente de computação, o produto de programa de computador compreendendo um meio de armazenamento legível por computador legível por um circuito de processamento e armazenar instruções para a execução pelo circuito de processamento para realizar um método para realizar as etapas da invenção.
[0011] Observada a partir de um aspecto adicional, a presente invenção provê um programa de computador armazenado em um meio legível por computador e carregável para a memória interna de um computador digital, compreendendo porções de código de software, quando o dito programa é rodado em um computador, para realizar as etapas da invenção.
[0012] Métodos e sistemas que se referem a uma ou mais concretizações também são descritos e reivindicados aqui. Adicionalmente, serviços que se referem a uma ou mais concretizações também são descritos e podem ser reivindicados aqui .
[0013] Funcionalidades e vantagens adicionais são realizadas. Outras concretizações e aspectos são descritos em detalhe aqui e são considerados uma parte da invenção reivindicada.
Breve Descrição Dos Desenhos
[0014] A presente invenção será descrita agora, por meio de exemplo apenas, com referência às concretizações preferidas, como ilustrado nas seguintes figuras: A figura 1A representa um exemplo de um ambiente de computação para incorporar e usar um ou mais aspectos de uma instalação de modo de arquitetura de configuração, de acordo com uma concretização preferida da presente invenção; A figura 1B representa um exemplo de um ambiente de computação virtual para incorporar e usar um ou mais aspectos de uma instalação de modo de arquitetura de configuração, de acordo com uma concretização preferida da presente invenção; A figura 2 representa outro exemplo de um ambiente de computação para incorporar e usar um ou mais aspectos de uma instalação de modo de arquitetura de configuração, de acordo com uma concretização preferida da presente invenção; A figura 3A representa mais um exemplo de um ambiente de computação para incorporar e usar um ou mais aspectos de uma instalação de modo de arquitetura de configuração, de acordo com uma concretização preferida da presente invenção; A figura 3B representa detalhes adicionais da memória da figura 3A, de acordo com uma concretização preferida da presente invenção; A figura 4 A representa uma concretização da lógica para ligar um ambiente de computação em um modo de arquitetura, de acordo com uma concretização preferida da presente invenção; A figura 4B representa uma concretização de processamento adicional associado com o processo de ligar da figura 4A, de acordo com uma concretização preferida da presente invenção; A figura 5 representa uma concretização de um formato de uma palavra de estado de programa, de acordo com uma concretização preferida da presente invenção; A figura 6A representa uma concretização da lógica para ligar um ambiente de computação em um modo de arquitetura diferente do um modo de arquitetura ligado na figura 4A, de acordo com uma concretização preferida da presente invenção; A figura 6B representa uma concretização de processamento adicional associado com o processo de ligar da figura 6A, de acordo com uma concretização preferida da presente invenção; A figura 7 representa um exemplo de um formato de uma instrução de palavra de estado de programa de carga, de acordo com uma concretização preferida da presente invenção; A figura 8A representa um exemplo de um formato de uma instrução de Processador de Sinal, de acordo com uma concretização preferida da presente invenção; A figura 8B representa uma concretização de processamento associado com a instrução de Processador de Sinal da figura 8A, de acordo com uma concretização preferida da presente invenção; A figura 9 representa uma concretização da lógica para ligar um ambiente de computação em uma configuração reconfigurada, de acordo com uma concretização preferida da presente invenção; A figura 10 representa alterações adicionais a serem feitas na reconfiguração de um ambiente de computação, de acordo com uma concretização preferida da presente invenção; A figura 11 representa uma concretização da lógica para reiniciar um ambiente de computação; A figura 12 representa uma concretização de lógica para configurar um ambiente de computação, de acordo com uma concretização preferida da presente invenção; A figura 13 representa uma concretização de um produto de programa de computador, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 14 representa uma concretização de um sistema de computador hospedeiro, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 15 representa um exemplo adicional de um sistema de computador, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 16 representa outro exemplo de um sistema de computador compreendendo uma rede de computador, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 17 representa uma concretização de vários elementos de um sistema de computador, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 18A representa uma concretização da unidade de execução do sistema de computador da figura 17, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 18B representa uma concretização da unidade de ramificação do sistema de computador da figura 17, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 18C representa uma concretização da unidade de carga/armazenamento do sistema de computador da figura 17, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 19 representa uma concretização de um sistema de computador hospedeiro emulado, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 20 representa uma concretização de um nó de computação de nuvem, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A figura 21 representa na concretização de um ambiente de computação de nuvem, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; e A figura 22 representa um exemplo de camadas de modelo de abstração, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada. Descrição Detalhada
[0015] De acordo com um aspecto, uma capacidade é provida que restringe o uso de uma configuração por um ambiente de computação configurado para suportar múltiplas configurações, tal que um ou mais aspectos da configuração restrita não estão disponíveis para o uso. Como um exemplo, um processador é configurado em uma configuração modo de arquitetura (CAM) . Na CAM, um ambiente de computação (por exemplo, um processador, uma partição lógica, um convidado), que é configurado originalmente para uma pluralidade de arquiteturas, por exemplo, uma arquitetura de legado e uma arquitetura aprimorada, é configurada novamente tal que um ou mais aspectos de pelo menos uma das arquiteturas, tais como a arquitetura de legado, não é mais suportado. Em tal configuração, os aspectos não suportados da arquitetura não estão disponíveis.
[0016] Como um particular exemplo, uma instalação de Modo de arquitetura de Arquitetura Z de configuração (CZAM) é provida em ambientes de computação que suportam múltiplas arquiteturas, tais como ESA/390 e Arquitetura Z, que remove a capacidade de usar aspectos de ESA/390. Em vez disso, z/Architecture (e/ou outras arquiteturas, em outras concretizações diferentes do que ESA/390) é usada. CZAM pode se aplicar a uma máquina nativa, uma partição lógica, e/ou um convidado virtual, como exemplos.
[0017] Um exemplo de um ambiente de computação para incorporar e usar um ou mais aspectos da instalação de modo de arquitetura de configuração é descrito com referência à figura 1A. Em referência à figura 1A, em um exemplo, um ambiente de computação 100 é baseado na Z/Architecture, oferecida por International Business Machines (IBM®) Corporation, Armonk, Nova Iorque. A Z/Architecture é descrita em uma Publicação da IBM intitulada "z/Architecture - Principles of Operation", Publicação No. SA22-7932-09, 10a edição, setembro de 2012. Apesar de o ambiente de computação estar baseado na Z/Architecture, em uma concretização preferida da presente invenção, também suporta uma ou mais outras configurações arquitetônicas, tais como ESA/390.
[0018] Como um exemplo, ambiente de computação 100 inclui um complexo de processador central (CPC) 102 acoplado com um ou mais dispositivos de entrada/saída (E/S) 106 através de uma ou mais unidade de controle 108. Complexo de processador central 102 inclui, por exemplo, uma memória de processador 104 (também conhecido como, memória principal, armazenamento principal, armazenamento central) acoplado com um ou mais processadores centrais (também conhecido como, unidades de processamento central (CPUs)) 110, e um subsistema de entrada/saída 111, cada um dos quais é descrito abaixo.
[0019] Memória do processador 104 inclui, por exemplo, uma ou mais partições 112 (por exemplo, partições lógicas), e firmware de processador 113, que inclui um hipervisor de partição lógica 114 e outro firmware de processador 115. Um exemplo de hipervisor de partição lógica 114 é o Recurso de Processador/Gerenciador de Sistema (PR/SM), oferecido por International Business Machines Corporation, Armonk, Nova Iorque.
[0020] Uma partição lógica funciona como um sistema separado e possui um ou mais aplicativos 120, e opcionalmente, um sistema operacional residente 122 no mesmo, que pode diferir para cada partição lógica. Em uma concretização preferida da presente invenção, o sistema operacional é o sistema operacional z/OS, o sistema operacional z/VM, o sistema operacional z/Linux, ou o sistema operacional TPF, oferecido por International Business Machines Corporation, Armonk, Nova Iorque. Partições lógicas 112 são gerenciadas pelo hipervisor de partição lógica 114, que é implementado por firmware rodando em processadores 110. Como usado aqui, firmware inclui, por exemplo, o microcódigo e/ou milicódigo do processador. Ele inclui, por exemplo, as instruções de nível de hardware e/ou estruturas de dados usadas na implementação de código de máquina de nível mais alto. Em uma concretização preferida da presente invenção, ele inclui, por exemplo, código proprietário que é tipicamente distribuído como microcódigo que inclui software confiado ou microcódigo específico para o hardware subjacente e controla o acesso do sistema operacional para o hardware de sistema.
[0021] Processadores centrais 110 são Recursos de Processador Físico alocados para as partições lógicas. Em particular, cada partição lógica 112 possui um ou mais processadores lógicos, cada um dos quais representa todos ou uma parte de um processador físico 110 alocado para a partição. Os processadores lógicos de uma particular partição 112 podem ser tanto dedicados para a partição, de forma que o subjacente Recurso de Processador 110 é reservado para esta partição; ou dividido com outra partição, de forma que o subjacente Recurso de Processador é potencialmente disponível para outra partição. Em um exemplo, uma ou mais das CPUs incluem aspectos de uma instalação de modo de arquitetura de configuração 130 descrita aqui.
[0022] Subsistema de entrada/saída 111 direciona o fluxo de informação entre dispositivos de entrada/saída 106 e armazenamento principal 104. Ele é acoplado com o complexo de processamento central, pelo fato de que pode ser uma parte do complexo de processamento central ou separado do mesmo. O subsistema de E/S alivia os processadores centrais da tarefa de se comunicar diretamente com os dispositivos de entrada/saída e permite que o processamento de dados prossiga concorrentemente com processamento de entrada/saída. Para prover comunicações, o subsistema de E/S emprega adaptadores de comunicações de E/S. Existem vários tipos de adaptadores de comunicações incluindo, por exemplo, canais, adaptadores de E/S, cartões de PCI, cartões de ethernet, Cartões de interface de Armazenamento de Computador Pequeno (SCSI), etc. No exemplo particular descrito aqui, os adaptadores de comunicações de E/S são canais, e portanto, o subsistema de E/S é referido aqui como um subsistema de canal. No entanto, este é o único exemplo. Outros tipos de subsistemas de E/S podem ser usados.
[0023] O subsistema de E/S uses um ou mais caminhos de entrada/saída como ligações de comunicação no gerenciamento o fluxo de informação para ou a partir de dispositivos de entrada/saída 106. Neste exemplo particular, estes caminhos são chamados de caminhos de canal, já que os adaptadores de comunicação são canais.
[0024] Outro exemplo de um ambiente de computação para incorporar e usar um ou mais aspectos da instalação de CAM é descrito com referência à figura IB. Neste exemplo, um ambiente de computação 150 inclui um complexo de processador central 152 que provê suporte de máquina virtual. CPC 152 é acoplado com um ou mais dispositivos de entrada/saída (E/S) 106 através de uma ou mais unidade de controle 108. Complexo de processador central 152 inclui, por exemplo, uma memória de processador 154 (também conhecido como, memória principal, armazenamento principal, armazenamento central) acoplado com um ou mais processadores centrais (também conhecido como, unidades de processamento central (CPUs)) 110, e um subsistema de entrada/saída 111.
[0025] Memória do processador 154 inclui, por exemplo, uma ou mais máquinas virtuais 162, e firmware de processador 163, que inclui um hipervisor de hospedeiro 164 e outro firmware de processador 165. Um exemplo de hipervisor de hospedeiro 164 é z/VM®, oferecido por International Business Machines Corporation, Armonk, Nova Iorque.
[0026] O suporte de máquina virtual de CPC provê a capacidade para operar grandes números de máquinas virtuais 162, cada uma capaz de hospedar um convidado sistema operacional 172, tal como Linux®. Cada máquina virtual 162 é capaz de funcionar como um sistema separado. Ou seja, cada máquina virtual pode ser independentemente reiniciada, hospedar um convidado sistema operacional, e operar com diferentes programas 120. Um sistema operacional ou programa de aplicativo que roda em uma máquina virtual aparece para ter acesso para um sistema inteiro e completo, mas na realidade, apenas uma porção da mesma está disponível. Linux é uma marca registrada de Linus Torvalds nos Estados Unidos, outros países, ou ambos.
[0027] Neste exemplo particular, o modelo de máquinas virtuais é um modelo V=V, em que a memória absoluta ou real de uma máquina virtual é apoiada pela memória virtual do hospedeiro, em vez de memória real ou absoluta. Cada máquina virtual possui um espaço de memória linear virtual. Os recursos físicos são de propriedade do hospedeiro 164, e os recursos físicos divididos são despachados pelo hospedeiro para os sistemas de operação de convidado, como for necessário, para satisfazer as suas demandas de processamento. Este modelo de máquina virtual V=V (isto é, convidado paginável) assume que as interações entre os sistemas de operação de convidado e os recursos de máquina dividida física são controlados pelo hospedeiro, já que o grande número de convidados tipicamente exclui o hospedeiro de simplesmente particionar e designar os recursos de hardware para os convidados configurados. Um ou mais aspectos de um modelo V=V são adicionalmente descritos em uma publicação de IBM® intitulada "z/VM: Running Guest Opertional Systems", Publicação IBM® No. SC24-5997-02, outubro de 2001.
[0028] Processadores centrais 110 são Recursos de Processador Físico que podem ser designados para uma máquina virtual. Por exemplo, máquina virtual 162 inclui um ou mais processadores lógicos, cada um dos quais representa todo ou uma parte de um Recurso de Processador físico 110 que pode ser alocado de maneira dinâmica para a máquina virtual. Máquinas virtuais 162 são gerenciadas pelo hospedeiro 164.
[0029] Em uma concretização preferida da presente invenção, o hospedeiro (por exemplo, z/VM®) e hardware/firmware de processador (por exemplo, System z) interagem entre si de uma maneira cooperativa controlada de maneira a processar operações de sistema operacional de convidado V=V sem precisar transferir controle de/para o sistema operacional de convidado e o hospedeiro. Operações de convidado podem ser executadas diretamente sem intervenção de hospedeiro através de uma instalação que permite que as instruções sejam executadas de maneira interpretativa para um convidado de modo de armazenamento paginável. Esta instalação provê uma instrução, Execução Interpretativa de Partida (SIE), em que o hospedeiro pode emitir, designar um bloco de controle chamado de uma descrição de estado que retém estado de convidado (máquina virtual) e controla, tal como controles de execução e controles de modo. A instrução coloca a máquina para um modo de execução interpretativa em que instruções de convidado e interrupções são processadas diretamente, até uma condição que necessita que a atenção de hospedeiro surja. Quando tal condição ocorre, execução interpretativa é terminada, e tanto uma interrupção de hospedeiro é apresentada, ou a instrução SIE completa detalhes de armazenamento da condição encontrada; esta ação posterior é chamada de interceptação. Um exemplo de execução interpretativa é descrito no Sistema /370 Arquitetura Estendida/Execução interpretativa, Publicação IBM No. SA22- 7095-01, Setembro de 1985.
[0030] Em particular, em uma concretização preferida da presente invenção, a instalação de execução interpretativa provê uma instrução para a execução de máquinas virtuais. Esta instrução, chamada de Execução Interpretativa de Partida (SIE), é emitida por um hospedeiro que estabelece um ambiente de execução de convidado. O hospedeiro é o programa de controle gerenciando diretamente a máquina real e um convidado se refere a qualquer máquina interpretada ou virtual. A máquina é posicionada no modo de execução interpretativa pelo hospedeiro, que emite a instrução SIE. Neste modo, a máquina provê as funções de uma arquitetura selecionada (por exemplo, Arquitetura Z, ESA/390) . As funções incluem, por exemplo, execução de instruções de programa de problema e privilegiada, tradução de endereço, manipulação de interrupção, e temporização dentre outras coisas. A máquina é dita de interpretar as funções que ela executa no contexto da máquina virtual.
[0031] A instrução SIE possui um operando, chamado de descrição de estado, que inclui informação relevante com o estado corrente do convidado. Quando a execução de SIE termina, informação que representa o estado do convidado, incluindo o PSW de convidado é economizado na descrição de estado antes do controle ser retornado para o hospedeiro.
[0032] A arquitetura de execução interpretativa provê um modo de armazenamento para o armazenamento absoluto referido como um modo de armazenamento paginável. No modo de armazenamento paginável, tradução de endereço dinâmica no nível de hospedeiro é usada para mapear armazenamento principal de convidado. O hospedeiro tem a capacidade de espalhar o armazenamento real dos modos de armazenamento paginável de convidado para armações úteis em qualquer local no armazenamento real de hospedeiro usando o hospedeiro DAT, e para paginar dados de convidado para o armazenamento auxiliar. Esta técnica provê flexibilidade quando aloca recursos de máquina real enquanto preserva a aparência esperada de uma faixa contígua de armazenamento absoluto para o convidado.
[0033] Um ambiente de máquina virtual pode chamar para a aplicação de DAT duas vezes: primeiro no nível de convidado, para traduzir um endereço de convidado virtual através de tabelas de tradução gerenciadas por convidado para um endereço de convidado real, e então, para um convidado paginável, no nível de hospedeiro, para traduzir o correspondente endereço virtual de hospedeiro para um endereço de hospedeiro real.
[0034] Em certos casos, o hospedeiro é para interceder nas operações normalmente delegadas para a máquina. Para este propósito, a descrição de estado inclui controles que podem ser definidos pelo hospedeiro para "aprisionar," ou interceptar, condições específicas. Bits de controle de interceptação requisitam que o controle de retorno de máquina hospede a simulação quando particulares instruções de convidado são encontradas. Controles de intervenção capturam a introdução de um estado habilitado para o PSW, de forma que o hospedeiro pode apresentar uma interrupção que ele mantém pendente para o convidado. Controles de intervenção podem ser definidos de maneira assíncrona pelo hospedeiro em outro processador real enquanto a interpretação prossegue. A máquina periodicamente busca novamente os controles a partir do armazenamento, de forma que valores atualizados serão reconhecidos. Interrupções de convidado desta forma podem ser tornadas pendentes sem interromper de maneira prematura a interpretação.
[0035] Em uma concretização preferida da presente invenção, controles de modo na descrição de estado especificam se o convidado é executado no modo ESA/390 ou Arquitetura Z e seleciona um de uma pluralidade de modos para representar armazenamento principal de convidado de um convidado máquina virtual no armazenamento de hospedeiro. De acordo com uma concretização preferida da presente invenção, um bit de controle é provido em um controle de estado para selecionar entre um convidado em um primeiro e um segundo modo de arquitetura (por exemplo, Arquitetura Z e ESA/390, respectivamente). De acordo com outra concretização preferida da presente invenção, duas instruções distintas podem prover um hospedeiro com a capacidade para criar uma primeira e uma segunda máquina virtual de hospedeiro, por exemplo, instruções distintas SIEz e SIEe podem ser providas para iniciar máquinas de convidado no modo de Arquitetura Z e de ESA/390, respectivamente.
[0036] A instrução SIE roda um servidor virtual despachado pelo programa de controle até a fatia de tempo de servidor foi consumida ou até o servidor deseja realizar uma operação que o hardware não pode virtualizar ou para o qual o programa de controle é para ganhar novamente o controle. Naquele ponto, a instrução SIE termina e o controle é retornado para o programa de controle, que tanto simula a instrução quanto coloca o servidor virtual em um estado de espera involuntário. Quando completo, o programa de controle novamente programa o servidor virtual para rodar, e o ciclo começa novamente. Deste modo, as capacidades completas e a velocidade da CPU estão disponíveis para o servidor virtual. Apenas estas instruções privilegiadas que necessitam de assistência a partir de ou validação pelo programa de controle são interceptados. Este SIE intercepta, como eles são conhecidos, também são usados pelo programa de controle para impor limites nas operações que um servidor virtual pode realizar em um dispositivo real.
[0037] Detalhes adicionais com relação a SIE são descritos em arquitetura de execução interpretativa de ESA/390, fundação para VM/ESA, Osisek et al, IBM Systems Journal, Vol. 30, No. 1, janeiro de 1991, pg. 34-51.
[0038] Outro exemplo de um ambiente de computação para incorporar e usar um ou mais aspectos da instalação de modo de arquitetura de configuração é descrito com referência à figura 2. Neste exemplo, um ambiente de computação 200 inclui um ambiente não particionado que está configurado para uma pluralidade de modos de arquitetura, incluindo a Z/Architecture e ESA/390. Ela inclui, por exemplo, um processador (unidade de processamento central - CPU) 202 que inclui, por exemplo, uma instalação de modo de arquitetura de configuração 204, e um ou mais caches 206. O processador 202 é acoplado de maneira comunicativa com uma porção de memória 208 tendo um ou mais caches 210, e para um subsistema de entrada/saída (E/S) 212. O subsistema de E/S 212 é acoplado de maneira comunicativa com dispositivos de E/S externos 214 que podem incluir, por exemplo, dispositivos de entrada de dados, sensores e/ou dispositivos de saída, tais como exibidores.
[0039] Outra concretização preferida da presente invenção de um ambiente de computação para incorporar e usar um ou mais aspectos da instalação de modo de arquitetura de configuração é descrito com referência à figura 3A. Neste exemplo, um ambiente de computação 300 inclui, por exemplo, uma unidade de processamento central nativa (CPU) 302, uma memória 304, e um ou mais dispositivos de entrada/saída e/ou interfaces 306 acoplados entre si através de, por exemplo, um ou mais barramentos 308 e/ou outras conexões. Como exemplos, ambiente de computação 300 pode incluir um processador de PowerPC ou um servidor de Power Systems oferecido por International Business Machines Corporation, Armonk, Nova Iorque; um HP Superdome com processadores Intel Itanium II oferecido por Hewlett Packard Co., Palo Alto, Califórnia; e/ou outras máquinas com base em arquiteturas oferecidas por International Business Machines Corporation, Hewlett Packard, Intel, Oracle, ou outros. Intel, e Itanium são marcas registradas ou marcas comerciais registradas de Intel Corporation ou os seus subsidiários nos Estados Unidos da América e outros países.
[0040] A unidade de processamento central nativa 302 inclui um ou mais registros nativos 310, tais como um ou mais registradores de propósito geral e/ou um ou mais registradores de propósito especial usados durante o processamento dentro do ambiente, bem como uma instalação de modo de arquitetura de configuração 311. Estes registradores incluem informação que representa o estado do ambiente em qualquer ponto de tempo particular.
[0041] Além disso, unidade de processamento central nativa 302 executa instruções e código que são armazenados na memória 304. Em um exemplo particular, a unidade de processamento central executa código de emulador 312 armazenado na memória 304. Este código permite que o ambiente de computação configurado em uma arquitetura para emular uma ou mais outras arquiteturas. Por exemplo, código de emulador 312 permite que as máquinas com base em arquiteturas diferentes do que a Z/Architecture, tais como processadores PowerPC, servidores Power Systems, servidores HP Superdome ou outros, para emular a Z/Architecture (e/ou ESA/390) e para executar software e instruções desenvolvidas com base na Z/Architecture.
[0042] Detalhes adicionais que se referem ao código de emulador 312 são descritos com referência à figura 3B. Instruções de convidado 350 armazenadas na memória 304 compreendem software instruções (por exemplo, se correlacionando com instruções de máquina) que foram desenvolvidas para ser executadas em uma arquitetura diferente do que aquela da CPU nativa 302. Por exemplo, instruções de convidado 350 podem ter sido projetadas para executar no processador da Arquitetura Z 202, mas em vez disso, estão sendo emulados na CPU nativa 302, que pode ser, por exemplo, um processador Intel Itanium II. Em um exemplo, o código de emulador 312 inclui uma rotina de busca de instrução 352 para obter uma ou mais instruções de convidado 350 a partir da memória 304, e para prover opcionalmente armazenamento temporário local para as instruções obtidas. Ele também inclui uma rotina de tradução de instrução 354 para determinar o tipo de instrução de convidado que foi obtido e para traduzir a instrução do convidado para uma ou mais correspondentes instruções nativas 356. Esta tradução inclui, por exemplo, identificar a função a ser realizada pela instrução do convidado e escolher as instruções nativas para realizar esta função.
[0043] Adicionalmente, o código de emulador 312 inclui uma rotina de controle de emulação 360 para fazer com que as instruções nativas sejam executadas. Rotina de controle de emulação 360 pode fazer com que a CPU nativa 302 execute uma rotina de instruções nativas que emulam uma ou mais instruções de convidado obtidas anteriormente e, na conclusão de tal execução, retornar o controle para a rotina de busca de instrução para emular a obtenção da próxima instrução de convidado ou um grupo de instruções de convidado. Execução de instruções nativas 356 podem incluir dados de carregamento para um registro a partir da memória 304; armazenando dados de volta para a memória a partir de um registro; ou realizar algum tipo de operação lógica ou aritmética, como determinado pela rotina de tradução.
[0044] Cada rotina é, por exemplo, implementada em software, que é armazenada na memória e executada pela unidade de processamento central nativa 302. Em outros exemplos, uma ou mais das rotinas ou operações são implementadas em firmware, hardware, software ou alguma combinação dos mesmos. Os registradores do processador emulado podem ser emulados usando registradores 310 da CPU nativa ou usando localizações na memória 304. Nas concretizações, instruções de convidado 350, instruções nativas 356 e código de emulador 312 podem residir na mesma memória ou podem ser desembolsados dentre diferentes dispositivos de memória.
[0045] Os ambientes de computação descritos acima são apenas exemplos de ambientes de computação que podem ser usados. Outros ambientes, incluindo, mas não limitado a outros ambientes não particionados, outros ambientes particionados, e/ou outros ambientes emulados, podem ser usados; concretizações não estão limitadas a qualquer ambiente.
[0046] De acordo com um ou mais aspectos, uma instalação de modo de arquitetura de configuração (CAM) é instalada em um ou mais processadores (por exemplo, unidades de processamento central) de um ambiente de computação para controlar a reconfiguração do ambiente. Por exemplo, quando CAM é instalada em um ambiente de computação que suporta uma pluralidade de modos de arquitetura, o ambiente de computação é reconfigurado tal que o uso de um ou mais aspectos de pelo menos um dos modos de arquitetura está restrito.
[0047] Um exemplo particular de uma instalação de modo de arquitetura de configuração é a Instalação de Modo de arquitetura de Arquitetura Z de configuração (CZAM). A instalação de CZAM é indicada por, por exemplo, um indicador de instalação da instalação, por exemplo, bit 138, definido para, por exemplo, um. Em um exemplo particular, quando bit 138 é definido para um, a instalação de CZAM é instalada, e quando instalada, um reinício normal e um reinício de Liberação coloca a configuração para o modo de arquitetura de Arquitetura Z. Assim, o bit de instalação, por exemplo, bit 2, que indica o modo de arquitetura de Z/Architecture está ativo também é definido para um, em um exemplo.
[0048] Com base na instalação de CZAM, um ambiente de computação (por exemplo, um único processador, uma partição lógica, um convidado virtual, etc.) é reconfigurado tal que um ou mais aspectos de uma arquitetura selecionada, por exemplo, ESA/390, não é mais suportado. Estes aspectos que não são mais suportados e/ou processos afetados pela instalação de CZAM são descritos abaixo.
[0049] Apesar de nas concretizações descritas aqui, a pluralidade de modos de arquitetura incluir uma arquitetura de legado (por exemplo, ESA/390) e uma arquitetura aprimorada (por exemplo, Arquitetura Z) e aspectos da arquitetura de legado, ESA/390, não são mais suportados, outras concretizações podem incluir outras arquiteturas. ESA/390 e Arquitetura Z são apenas exemplos.
[0050] Um processo que é afetado pela instalação de CZAM é um processo de ligar. Para descrever como este processo é afetado, inicialmente, um processo de ligar para um ambiente que suporta múltiplas configurações arquitetônicas e não inclui a instalação de CZAM é descrito com referência às figuras 4A-4B, e então um processo de ligar para um ambiente que está configurado para múltiplas configurações arquitetônicas e inclui a instalação de CZAM é descrito com referência às figuras 6A-6B. O ato de ligar para um sistema inclui, por exemplo, iniciando o sistema e iniciando uma sequência de reinicialização ou outro meio de iniciação das operações no sistema. Ele pode corresponder com um ato de ligar físico, um reinicio de hardware, e/ou um ato de ligar virtual (por exemplo, em um sistema emulado, uma máquina virtual ou um convidado ambiente).
[0051] Em referência inicialmente à figura 4A, com base em um processador do ambiente de computação que é ligado e uma chave de operador, por exemplo, uma chave de liberação de carga ou uma normal de carga, sendo ativada, o processador entra em um estado de carga e define o ambiente de computação para um particular modo de arquitetura, por exemplo, modo ESA/390, etapa 400. Por exemplo, uma carga de programa inicial (IPL), tal como uma carga de programa inicial (IPL) de palavra de controle de canal (CCW), é realizada, etapa 402. Inicialização de carga de programa provê um meio manual para fazer com que um programa seja lido a partir de um dispositivo designado e para iniciar a execução daquele programa. Um IPL do tipo CCW é iniciado manualmente ajustando os controles de endereço de unidade de carga para um número de quatro dígitos para designar um dispositivo de entrada e subsequentemente ativando a chave normal de carga ou de liberação de carga para uma CPU particular.
[0052] A ativação da chave de liberação de carga faz com que um reinício de Liberação seja realizado na configuração; e a ativação da chave de normal de carga faz com que um reinício de CPU inicial seja realizado neste CPU (a CPU em que a chave foi ativada), um reinício de CPU a ser propagado para todas as outras CPUs na configuração, e um reinício de subsistema a ser realizado no restante da configuração. A ativação da chave de liberação de carga ou da chave de normal de carga define o modo de arquitetura (por exemplo, ESA/390).
[0053] Na parte de carregamento da operação, após os reinícios terem sido realizados, esta CPU então entra no estado de carga. Esta CPU não necessariamente entra no estado parado durante a execução das operações de reinicialização. O indicador de carga está ligado enquanto a CPU está no estado de carga.
[0054] Subsequentemente, uma operação de leitura de programa de canal é iniciada a partir do dispositivo de E/S designado pelos controles de endereço de unidade de carga. O efeito de executar o programa de canal é como se um formato 0 CCW começando na localização de armazenamento absoluto 0 especifica um comando de leitura com os zeros de bits de modificador, um endereço de dados de zero, uma contagem de byte de 24, o comando de cadeia e SLI sinaliza uns, e todos os outros sinalizam zeros.
[0055] Quando a operação de entrada/saída de IPL é completada com sucesso, uma palavra de identificação de subsistema para o dispositivo de IPL é armazenada nas localizações de armazenamento absoluto selecionadas (por exemplo, localizações 184 a 187), zeros são armazenados em outras localizações de armazenamento absoluto selecionadas (por exemplo, localizações 188 a 191), e uma nova palavra de estado de programa (PSW) é carregada a partir das localizações de armazenamento absoluto selecionadas (por exemplo, localizações 0 a 7), etapa 404. A palavra de estado de programa controla as operações do ambiente de computação.
[0056] Se o carregamento de PSW tem sucesso e nenhum mau funcionamento de máquina é detectado, esta CPU deixa o estado de carga, e o indicador de carga é desligado. Se o controle de taxa é definido para a posição de processo, a CPU entra no estado de operação, e a operação do ambiente de computação prossegue sob controle da nova palavra de estado de programa (PSW), etapa 406. O ambiente de computação reiniciado então roda, etapa 408, como descrito adicionalmente com referência à figura 4B.
[0057] Em referência à figura 4B, o ambiente de computação iniciado é iniciado no modo ESA/390, etapa 420, e assim, operações são realizadas no modo ESA/390, etapa 422. Em algum ponto, um requisito pode ser feito para alterar o modo de arquitetura a partir de ESA/390 para Arquitetura Z. Em particular, um programa envia um código de ordem (por exemplo, um código que designa Arquitetura de Conjunto) para o processador, que emite uma instrução de Processador de Sinal (SIGP) com o código de ordem para comutar a partir do modo ESA/390 para o modo de Arquitetura Z, etapa 424. Por exemplo, uma CPU que sinaliza e instalação de resposta é usada que inclui a instrução de Processador de Sinal (descrita abaixo) e um mecanismo para interpretar e atuar em códigos de ordem de servidor, incluindo um para Arquitetura de Conjunto. A instalação provê comunicações dentre as CPUs, incluindo transmitir, receber, e decodificar um conjunto de códigos de ordem designados; iniciando a operação especificada; e respondendo a uma CPU sinalizando. Com o uso de Arquitetura de Conjunto, o modo de arquitetura é definido para a configuração desejada, por exemplo, Arquitetura Z. Detalhes adicionais deste processamento são descritos adicionalmente abaixo.
[0058] A seguir, uma determinação é feita como se a operação de SIGP foi aceita, CONSULTA 426. Com base no código de retorno, um número de condições de erro pode ser diagnóstico, incluindo uma indicação de “parâmetro inválido” quando uma determinação foi feita que a CPU já está no modo de arquitetura especificado pelo código (isto é, que a Arquitetura de Conjunto representa um comutador para modo corrente em si, ou se é um comutador a partir de um modo para outro modo). Se o SIGP é aceito e a Arquitetura de Conjunto representa uma operação de comutação de modo legal, então todos os processadores do ambiente de computação que recebem a transição de operação de SIGP para o modo de Arquitetura Z usando, por exemplo, o processamento de Arquitetura de Conjunto descrito aqui, etapa 428. No entanto, se a operação de SIGP não é legal, um erro é indicado, etapa 430.
[0059] Como descrito acima, a operação de ligar carrega uma palavra de estado de programa. Uma concretização preferida da presente invenção de um formato de uma palavra de estado de programa (PSW) é descrito com referência à figura 5. Em referência à figura 5, neste exemplo, o formato da palavra de estado de programa é um formato de ESA/390, exceto que bit 31 é mostrado como EA, como indicado abaixo.
[0060] Em uma concretização preferida da presente invenção, uma palavra de estado de programa 500 inclui os seguintes campos, como um exemplo:Por Máscara (R) 502: Bit 1 controla se a CPU é habilitada para interrupções associadas com gravação de evento de programa (PER) . Quando o bit é zero, nenhum evento de PER pode causar uma interrupção. Quando o bit é um, interrupções são permitidas, sujeitadas aos bits de máscara de evento de PER no registrador de controle 9;Modo de DAT (T) 504: Bit 5 controla se tradução de endereço dinâmica implícita (DAT) de endereços de instrução e lógica usados para acessar o armazenamento ocorre. Quando o bit é zero, DAT está desligado, e endereços de instrução e lógica são tratados como endereços reais. Quando o bit é um, DAT está ligado, e o mecanismo de tradução de endereço dinâmico é invocado.
[0061] Máscara de E/S (IO) 506: Bit 6 controla se a CPU está habilitada para interrupções de E/S. Quando o bit é zero, uma interrupção de E/S não pode ocorrer. Quando o bit é um, interrupções de E/S estão sujeitas aos bits de máscara de subclasse de interrupção de E/S no registrador de controle 6. Quando um bit de máscara de subclasse de interrupção de E/S é zero, uma interrupção de E/S para esta subclasse de interrupção de E/S não pode ocorrer; quando o bit de máscara de subclasse de interrupção de E/S é um, uma interrupção de E/S para esta subclasse de interrupção de E/S pode ocorrer;Máscara Externa (EX) 508: Bit 7 controla se a CPU está habilitada para a interrupção pelas conduções incluídas na classe externa. Quando o bit é zero, uma interrupção externa não pode ocorrer. Quando o bit é um, uma interrupção externa está sujeita aos correspondentes bits de máscara de subclasse externa no registrador de controle 0. Quando o bit de máscara de subclasse é zero, condições associadas com a subclasse não podem causar uma interrupção. Quando o bit de máscara de subclasse é um, uma interrupção nesta subclasse pode ocorrer.
[0062] Chave de PSW (KEY) 510: Bits 9-11 formam a chave de acesso para referências de armazenamento por uma CPU. Se a referência é sujeitada à proteção controlada por chave, a chave de PSW é correspondida com uma chave de armazenamento quando informação é armazenada ou quando informação é buscada a partir de uma localização que é protegida contra buscas. No entanto, para um dos operandos de cada um de Mover para Primário, Mover para Secundário, Mover com Chave, Move com Chave Fonte, e Move com Chave de Destino, e para qualquer um ou ambos os operandos de Mover com Especificações Opcionais, uma chave de acesso especificada como um operando é usada em vez da chave de PSW.
[0063] Bit 12 512: Este bit indica o modo de arquitetura corrente. É definido para um para o formato de PSW ESA/390. Para o formato de PSW de z/Architecture, este bit é definindo para ser zero. Quando no modo de Z/Architecture, uma instrução estendida de PSW de carga (LPSWE) é definida para carregar um PSW de Z/Architecture real (que possui um formato diferente do que o formato descrito aqui, incluindo tendo um endereço de instrução em bits 64-127). No entanto, um PSW de carga de ESA/390 (LPSW) ainda é suportado e pode ser usado para carregar um formato de PSW de ESA/390. Quando LPSW é executado e o ambiente de computação está no modo de Z/Architecture, o processador expande o formato de PSW de ESA/390 para um formato de z/Architecture, incluindo inverter o bit 12. Este é o inverso de colapsar o formato de PSW de z/Architecture que o sistema operacional realiza para criar o formato de PSW de ESA/390. Ou seja, nos ambientes de computação que suportam tanto ESA/390 quanto Z/Architecture, quando uma cópia de um PSW é colocada no armazenamento, o sistema operacional colapsa o PSW de Z/Architecture completa para o tamanho e formato de um PSW de ESA/390. Assim, outro software com dependências de formato de PSW pode não estar ciente do PSW da z/Architecture.
[0064] Máscara de Verificação de Máquina (M) 514: Bit 13 controla se a CPU está habilitada para a interrupção pelas condições de verificação de máquina. Quando o bit é zero, uma interrupção de verificação de máquina não pode ocorrer. Quando o bit é um, interrupções de verificação de máquina devido aos danos do sistema e aos danos de processamento de instrução são permitidos, mas interrupções devido às outras condições de subclasse de verificação de máquina estão sujeitas ao bit de máscara de subclasses no registrador de controle 14.
[0065] Estado de Espera (W) 516: Quando bit 14 é um, a CPU está em espera; ou seja, nenhuma instrução é processada pela CPU, mas interrupções podem ocorrer. Quando bit 14 é zero, execução e busca de instrução ocorrem da maneira normal. O indicador de espera é um quando o bit é um.
[0066] Estado de Problema (P) 518: Quando bit 15 é um, a CPU está no estado de problema. Quando bit 15 é zero, a CPU está no estado de supervisor. No estado de supervisor, todas as instruções são válidas. No estado de problema, apenas estas instruções são válidas que proveem informação significativa para o programa de problema e que não podem afetar a integridade do sistema; tais instruções são chamadas de instruções não privilegiadas. As instruções que não são válidas no estado de problema são chamadas de instruções privilegiadas. Quando a CPU no estado de problema tenta executar uma instrução privilegiada, uma exceção de operação privilegiada é reconhecida. Outro grupo de instruções, chamadas de instruções semiprivilegiadas, são executadas pela CPU no estado de problema apenas se testes de autoridade específicos são satisfeitos; de outra forma, uma exceção de operação privilegiada ou alguma outra exceção de programa é reconhecida, dependendo do requisito particular que é violado.
[0067] Controle de Espaço de Endereço (AS) 520: Bits 16 e 17, em conjunto com bit 5 de PSW, controlam o modo de tradução.
[0068] Código de Condição (CC) 522: Bits 18 e 19 são os dois bits do código de condição. O código de condição é definido para 0, 1, 2, ou 3 dependendo do resultado obtido na execução de certas instruções. A maioria das operações lógicas ou aritméticas, bem como algumas outras operações, definem o código de condição. A instrução CONDIÇÃO DE RAMIFICAÇÃO pode especificar qualquer seleção dos valores de código de condição como um critério para ramificar.
[0069] Máscara de Programa 524: Bits 20-23 são os quatro bits de máscara de programa. Cada bit está associado com uma exceção de programa, como na sequência:
Figure img0001
Figure img0002
[0070] Quando o bit de máscara é um, a exceção resulta em uma interrupção. Quando o bit de máscara é zero, nenhuma interrupção ocorre. o ajuste do bit de máscara de subfluxo de exponente de HFP do bit de máscara de significância de HFP também determina a maneira em que a operação é completada quando a correspondente exceção ocorre.
[0071] Modo de Endereçamento Estendido (EA) 526: Bit 31 controla o tamanho de endereços eficazes e geração de endereço eficaz em conjunto com bit 32, o bit de modo de endereçamento básico. Quando bit 31 é zero, o modo de endereçamento é controlado pelo bit 32. Quando os bits 31 e 32 são ambos um, endereçamento de 64 bit é especificado.
[0072] Modo de Endereçamento Básico (BA) 528: Bits 31 e 32 controlam o tamanho de endereços eficazes e geração de endereço eficaz. Quando bits 31 e 32 são ambos zero, endereçamento de 24 bit é especificado. Quando bit 31 é zero e bit 32 é um, endereçamento de 31 bit é especificado. Quando bits 31 e 32 são ambos um, endereçamento de 64 bit é especificado. Bit 31 um e bit 32 zero é uma combinação inválida que causa uma exceção de especificação a ser reconhecida. O modo de endereçamento não controla o tamanho de endereços de PER ou de endereços usados para acessar DAT, ASN, controle de unidade despachável, ligação, entrada, e tabelas de traço ou listas de acesso ou a pilha de ligação. O controle do modo de endereçamento pelos bits 31 e 32 de PSW é sumarizado como na sequência:
Figure img0003
[0073] Endereço de instrução 530: Bits 33-63 de PSW são o endereço de instrução. O endereço designa a localização do byte mais para esquerda da próxima instrução a ser executada, a menos que a CPU esteja no estado de espera (bit 14 de PSW é um).
[0074] De acordo com um aspecto, quando uma instalação de modo de arquitetura de configuração, tal como a Instalação de Modo de arquitetura de Arquitetura Z de configuração (CZAM), é instalada e ativada no ambiente de computação, o processo de ligar é alterado. Uma concretização preferida da presente invenção de a CZAM processo de ligar é descrito com referência à figura 6A.
[0075] Em referência à figura 6A, com base em um processador do ambiente de computação sendo ligado, o ambiente de computação é definido para o particular modo de arquitetura especificado pela instalação de modo de arquitetura de configuração, por exemplo, o modo da Z/Architecture (também referido como ESAME) quando CZAM é instalado, etapa 600. Por exemplo, uma carga de programa inicial (IPL), tal como uma carga de programa inicial (IPL) de palavra de controle de canal (CCW), é realizado, como descrito acima, etapa 602, e quando a operação de entrada/saída de IPL é completada com sucesso, uma palavra de identificação de subsistema para o dispositivo de IPL é armazenada nas localizações de armazenamento absoluto selecionadas (por exemplo, localizações 184-187), zeros são armazenados em outras localizações de armazenamento absoluto selecionadas (por exemplo, localizações 188-191), e nesta concretização, uma nova palavra de estado de programa de 16- byte (PSW) é criada a partir de localizações de armazenamento absoluto selecionadas (por exemplo, localizações 0-7), etapa 604. O novo PSW de 16-byte é formado, por exemplo, a partir dos conteúdos da palavra chave de armazenamento selecionada (por exemplo, localizações 0-7). Bit 12 da palavra chave deve ser um; de outra forma, um erro pode ser indicado. (O erro pode ser uma exceção de especificação que é reconhecida, uma verificação de máquina, ou mais uma indicação de erro.) Bits 0-32 do PSW recém-criado são definidos para bits 0-32 da palavra chave selecionada, exceto com bit 12 invertido. Bits 33-96 de PSW recém-criado são definidos para zeros. Posições de bit 97-127 de PSW recém-criado são inicializadas a partir de bits 33-63 da palavra chave selecionada.
[0076] Em uma concretização preferida da presente invenção, os campos de PSW que devem ser carregados pela instrução não são verificados para a validade antes de eles serem carregados. Em uma concretização preferida da presente invenção, bit 12 do PSW é verificado para a validade. Em mais uma concretização preferida da presente invenção, todos os campos são verificados para a validade. Em outra concretização preferida da presente invenção, quaisquer bits não verificados antes do carregamento do PSW são verificados para a validade após o PSW ter sido inicializado, e o processador pode indicar um erro (por exemplo, elevando uma exceção de especificação que é reconhecida, uma verificação de máquina, ou mais uma indicação de erro.)
[0077] O ambiente de computação entra no estado de operação, e a operação do ambiente de computação prossegue sob controle da nova palavra de estado de programa (PSW), etapa 606. O ambiente de computação iniciado então runs, etapa 608, como descrito adicionalmente com referência à figura 6B.
[0078] Em referência à figura 6B, o ambiente de computação iniciado é iniciado no modo de Arquitetura Z, etapa 620, e assim, operações são realizadas no modo de Arquitetura Z, etapa 622. Nenhuma comutação de modo é necessária, e o processamento continua diretamente com processamento no modo da Z/Architecture. Assim, em uma concretização preferida da presente invenção, as seguintes etapas não são necessárias: Uma operação de Processador de Sinal (SIGP) para comutar a partir do modo de ESA/390 para o modo de Arquitetura Z; uma determinação como se a operação de SIGP é uma operação aceita; a transição para Arquitetura Z se ela é uma operação aceita; ou a indicação de erro, se a operação de SIGP não é aceita.
[0079] Todos os processadores do ambiente de computação (isto é, o ambiente sendo configurado, por exemplo, único processador, partição lógica, convidado de VM) estão no modo de Arquitetura Z, sem realizar as etapas indicadas acima. Assim, como descrito aqui, de acordo com um aspecto, a capacidade de iniciar ou ligar no modo ESA/390 é removida a partir do ambiente de computação que está configurado tanto para ESA/390 quanto Arquitetura Z. Em particular, apesar de um ambiente de computação é configurado para suportar múltiplas arquiteturas, uma capacidade é provida para restringir certos aspectos de pelo menos uma das arquiteturas configuradas, um dos aspectos sendo a capacidade para ligar naquela arquitetura.
[0080] Em uma ou mais concretizações, o ato de ligar no modo de Arquitetura Z provê um mecanismo para especificar um de (1) uma partição lógica (convidado - 1), e (2) uma partição lógica e convidado - 2 devem ser iniciados e reiniciados no modo de Arquitetura Z, sem a necessidade de iniciar no modo ESA/390. Esta funcionalidade pode ser instalada de maneira incondicional ou sob o controle de uma configuração switch.
[0081] A sequência de reinicialização com relação à inicialização de PSW é modificada. Por exemplo, no fim de IPL, o PSW de IPL nas localizações absolutas 0-7 é carregado. Como é feito atualmente quando a condição de reinicialização é ESA/390, bit 12 é um, fazendo um PSW de IPL de ESA/390 válido, e o programa prossegue para executar instruções no modo de arquitetura de ESA/390. Com CZAM instalado, a condição de reinicialização é Arquitetura Z, bit 12 ainda é um, fazendo um PSW de IPL de ESA/390 válido, mas bit 12 é invertido durante a formação do PSW corrente de Arquitetura Z de 16 byte, como definido acima.
[0082] Em adição ao processo de ligar, outros processos, comportamentos e/ou operações também podem ser alterados ou afetados pela instalação de uma instalação de modo de arquitetura de configuração. Estes processos, comportamentos, e/ou operações afetados são específicos para os modos de Arquitetura Z e ESA/390. No entanto, processos similares e/ou diferentes podem ser afetados para outros tipos de arquiteturas. Exemplo processos, comportamentos e/ou operações que podem ser afetados em uma ou mais concretizações incluem, por exemplo: (1) Permitir que um comutador a partir do modo para si mesmo (por exemplo, do modo de Arquitetura Z para o modo de Arquitetura Z) sem gerar um erro (ou ignorar o erro) . Ou seja, um processador pode emitir uma instrução de SIGP para mudar para modo de Arquitetura Z e se já está neste modo, nenhum erro será gerado. Anteriormente, tentando uma comutação para o modo que corresponde com o modo corrente gerado um erro. (2) Desabilitar uma comutação para modo ESA/390. Com base na instalação e ativação de CZAM, a comutação para ESA/390 é desabilitada e agora gera um erro. Uma comutação de volta para ESA/390 é evitada verificando o bit 12 do PSW, e tomando uma exceção, se o bit 12 não está definido para indicar modo de Arquitetura Z (representado por um bit 12 de "1" no armazenamento que é invertido para bit "0" para representar Arquitetura Z no PSW quando um PSW de ESA/390 é convertido para um PSW de Arquitetura Z válido). (3) Modificar a operação de PSW de Carga para restringir a manipulação do bit 12. Se a instalação de Modo de Arquitetura da Z/Architecture de configuração é instalada, PSW de Carga reconhece uma exceção de especificação se bit 12 do seu segundo operando não é um. PSW de Carga carrega bits 0-32 do seu segundo operando, exceto com bit 12 invertido, e bits 33-63 do operando como bits 0-32 e 97-127, respectivamente do PSW corrente, e define bits 33-96 do PSW corrente para zeros.
[0083] Detalhes adicionais com relação à instrução de PSW de Carga são descritos com referência à figura 7. Em uma concretização preferida da presente invenção, uma instrução de PSW de Carga 700 inclui um campo de código de operação 702 que inclui um código de operação para indicar uma operação de PSW de Carga; um campo de base (B2) 7 04; e um campo de deslocamento (D2) 706. Conteúdos do registro geral designado pelo campo B2 são adicionados para os conteúdos do campo D2 para formar um endereço de um segundo operando no armazenamento (referido como o segundo endereço de operando).
[0084] Na operação da instrução de PSW de Carga, o PSW corrente é substituído por um PSW de 16-byte formado a partir dos conteúdos da palavra chave na localização designada pelo segundo endereço de operando.
[0085] Bit 12 da palavra chave deve ser um; de outra forma, uma exceção de especificação pode ser reconhecida, dependendo do modelo. Se a instalação de Modo de Arquitetura da Arquitetura Z de configuração é instalada, então uma exceção de especificação é reconhecida se bit 12 da palavra chave não é um.
[0086] Bits 0-32 da palavra chave, exceto com bit 12 invertido, são posicionados nas posições 0-32 do PSW corrente. Bits 33-63 da palavra chave são posicionados nas posições 97-127 do PSW corrente. Bits 33-96 do PSW corrente são definidos para zero.
[0087] Uma função de sincronização de ponto de verificação e serialização é realizada antes ou após o operando ser buscado e novamente após a operação ser completada.
[0088] O operando deve ser designado em um limite de palavra chave; de outra forma, uma exceção de especificação é reconhecida. Uma exceção de especificação pode ser reconhecida se bit 12 do operando é zero, dependendo no modelo.
[0089] Os campos de PSW que devem ser carregados pela instrução não são verificados para a validade antes de eles serem carregados, exceto para a verificação de bit 12. No entanto, imediatamente após o carregamento, uma exceção de especificação é reconhecida, e uma interrupção de programa ocorre, quando qualquer um dos seguintes é verdadeiro para o PSW recém carregado: • Quaisquer dos bits 0, 2-4, 12, ou 24-30 é um. • Bits 31 e 32 são ambos zero, e bits 97-103 não são zeros. • Bits 31 e 32 são um e zero, respectivamente.
[0090] Nestes casos, a operação é completada, e o código de comprimento de instrução resultante é 0.
[0091] A operação é suprimida em todas as exceções de proteção e endereçamento.
[0092] Código de condição resultante: O código é definido como especificado no novo PSW carregado. Exceção de programas: • Acesso (busca, operando 2) • Operação privilegiada • Especificação
[0093] Nota de Programação: O segundo operando deve ter o formato de um PSW de ESA/390. Uma exceção de especificação será reconhecida durante ou após a execução de PSW DE CARGA se bit 12 do operando é zero.
[0094] Detalhes adicionais com relação ao PSW são descritos em "Development and Attributes of z/ Architecture, " Plambeck et al, IBM J. Res. & Dev., Vol. 46, No. 4/5, Julho/Setembro de 2002.
[0095] Em adição aos processos acima, operações e/ou comportamentos que podem ser alterados devido à instalação de uma instalação de modo de arquitetura de configuração, o modo de reinicialização também pode ser alterado em uma ou mais concretizações, como explicado abaixo. (4) Alterações no modo de reinicialização (por exemplo, para ações de reiniciar, reinício de Liberação, e outras ações para reinício) . Quando a instalação de CZAM é instalada, o reinício de CPU define o modo de arquitetura para o modo da Z/Architecture, se ela é causada pela ativação, por exemplo, da chave de normal de carga.
[0096] Existe um número de funções de reinicialização que são incluídas como parte dos modos ESA/390 e Z/Architecture, incluindo, por exemplo, reinício de CPU, reinício de CPU inicial, Reinício de subsistema, reinício de Liberação e reinício do ato de ligar, cada uma das quais é descrita abaixo.
Reinício de CPU
[0097] Reinício de CPU provê um meio de indicações de verificação de equipamento de liberação e qualquer imprevisibilidade resultante em um estado de CPU com a menor quantidade de informação destruída. Em particular, é usado para liberar condições de verificação quando um estado de CPU deve ser preservado para a análise ou retomada da operação. Se a instalação de Modo de arquitetura da Z/Architecture de configuração (CZAM) não é instalada, reinício de CPU define o modo de arquitetura para o modo de ESA/390 se é causado pela ativação da chave de normal de carga (uma instalação de operador). Quando a instalação de CZAM é instalada, reinício de CPU define o modo de arquitetura para o modo da Z/Architecture se é causado pela ativação da chave de normal de carga. Quando reinício de CPU define o modo de ESA/390, economiza o PSW corrente de forma que PSW pode ser restaurado por uma ordem de Arquitetura de Conjunto de Processador de Sinal que altera o modo de arquitetura de volta para Z/Architecture. Reinício de CPU causa as seguintes ações, em uma concretização preferida da presente invenção: 1. A execução da instrução corrente ou outra sequência de processamento, tal como uma interrupção, é terminada, e todas as condições de interrupção de chamada de supervisor e interrupção de programa são liberadas. 2. Quaisquer condições de interrupção externa pendentes que são locais para a CPU são liberadas. Condições de interrupção externa flutuante não são liberadas. 3. Quaisquer condições de interrupção de verificação de máquina pendentes e indicações de erro que são locais para a CPU e quaisquer estados de parada de verificação são liberadas. Condições de interrupção de verificação de máquina flutuantes não são liberadas. Quaisquer condições de verificação de máquina que são reportadas para todas as CPUs na configuração e que foi feita pendendo para a CPU deve ser local para a CPU. 4. Todas as cópias de instruções pré-buscadas ou operandos são liberados. Adicionalmente, quaisquer resultados a ser armazenados por causa da execução de instruções no intervalo de ponto de verificação corrente são liberadas. 5. O armazenamento temporário ao lado de ART (Translação de Registro de Acesso) e armazenamento temporário ao lado de translação são liberadas das entradas. 6. Se a reinicialização é causada pela ativação da chave de normal de carga em qualquer CPU na configuração, as seguintes ações ocorrem: a. Quando a instalação de CZAM não é instalada, o modo de arquitetura da CPU (e de todas as outras CPUs na configuração por causa do reinício de CPU inicial ou reinício de CPUs realizada por este) é alterado a partir do modo da Z/Architecture para o modo de ESA/390. Se a instalação de CZAM é instalada, o modo de arquitetura da CPU (e de todas as outras CPUs na configuração por causa do reinício de CPU inicial ou reinício de CPUs realizada pelos mesmos) é definido para o modo da Z/Architecture. b. Quando a instalação de CZAM não é instalada, a PSW corrente é economizada para o uso subsequente por uma ordem de Arquitetura de Conjunto de Processador de Sinal que restaura o modo da Z/Architecture. c. Quando a instalação de CZAM não é instalada, o PSW corrente é alterado a partir de 16 bytes para oito bytes. Os bits de PSW de oito byte são definidos como na sequência: bits 0-11 e 13-32 são definidos iguais aos mesmos bits de PSW de 16-byte, bit 12 é definido para um, e bits 33-63 são definidos iguais aos bits 97-127 de PSW de 16-byte. Um reinício de CPU causado pela ativação da chave normal de reinicialização do sistema ou pela ordem de Reinício de CPU de Processador de Sinal, e qualquer reinício de CPU no modo de ESA/390, não afetam o registrador de PSW da Z/Architecture capturada capturado (isto é, um PSW economizado quando a CPU esteve por último no modo da Z/Architecture para o modo de ESA/390 por causa de uma ordem de Arquitetura de Conjunto com código 0 ou um reinício de CPU devido à ativação da chave de normal de carga). 7. A CPU é colocada no estado parado após as ações 1 a 6 serem completadas. Quando a sequência de IPL do tipo CCW segue a função de reinicialização naquela CPU, a CPU entra no estado de carga no fim da função de reinicialização e não necessariamente entra no estado parado durante a execução da operação de reinicialização. Quando a sequência de IPL direcionada pela lista segue a função de reinicialização naquela CPU, a CPU entra no estado de operação e não necessariamente entra no estado parado durante a execução da operação de reinicialização.
[0098] Registradores, conteúdos de armazenamento, e o estado de condições externas à CPU permanecem inalteradas pelo reinício de CPU. No entanto, os subsequentes conteúdos do registro, da localização, ou do estado não são previsíveis se uma operação está em progresso que altera os conteúdos no momento da reinicialização. Uma trava mantida por uma CPU quando executa REALIZAÇÃO DE OPERAÇÃO TRAVADA não é liberada pelo reinício de CPU.
[0099] Quando a função de reinicialização na CPU é iniciada no momento que a CPU está executando em uma instrução de E/S ou está realizando uma interrupção de E/S, a operação corrente entre a CPU e o subsistema de canal pode ou não ser completada, e o estado resultante da instalação de subsistema de canal associado pode ser imprevisível.
[0100] Notas de Programação: 1. A maioria das operações que podem mudar de um estado, uma condição, ou os conteúdos de um campo não podem ocorrer quando a CPU está no estado parado. No entanto, algumas funções de processador de sinal e algumas funções de operador podem mudar estes campos. Para eliminar a possibilidade de perder um campo quando o reinício de CPU é emitida, a CPU deve ser parada, e nenhuma função de operador deve estar em progresso. 2. Se o modo de arquitetura é alterado para o modo de ESA/390 e bit 31 do PSW corrente é um, o PSW é inválido.
Reinício de CPU inicial
[0101] O reinício de CPU inicial provê as funções de reinício de CPU junto com inicialização do PSW corrente, PSW de Arquitetura /Z capturado, temporizador de CPU, comparador de relógio, prefixo, controle de endereço de evento de quebra, controle de ponto flutuante, e registradores programáveis de momento do dia (TOD) . Se a instalação de CZAM não está instalada, reinício de CPU inicial define o modo de arquitetura para o modo de ESA/390 se é causado pela ativação da chave de normal de carga. Quando a instalação de CZAM é instalada, reinício de CPU inicial define o modo de arquitetura para o modo da Z/Architecture se é causado pela ativação da chave de normal de carga. O reinício de CPU inicial combina as funções de reinício de CPU com as seguintes funções de liberação e inicialização: 1. Quando a instalação de CZAM não está instalada, se a reinicialização é causada pela ativação da chave de normal de carga, o modo de arquitetura da CPU (e de todas as outras CPUs na configuração) é definido para o modo de ESA/390. De outro modo, se a instalação de CZAM é instalada, o modo de arquitetura da CPU (e de todas as outras CPUs na configuração) é definido para o modo da Z/Architecture. 2. Os conteúdos do PSW corrente, PSW de Z/Architecture capturado, prefixo, temporizador de CPU, comparador de relógio, e registro programável de TOD são definidos para zero. Quando a sequência de IPL segue a função de reinicialização naquela CPU, os conteúdos do PSW não são necessariamente definidos para zero. 3. Os conteúdos do controle registradores são definidos para os seus valores iniciais de Arquitetura Z. Todos os 64 bits do controle registradores são definidos independentemente se a CPU está no modo de arquitetura de Z/Architecture ou ESA/390. 4. Os conteúdos do registro de controle de ponto de flutuante são definidos para zero. 5. Os conteúdos do registro de endereço de evento de quebra são iniciados para 0000000000000001 hex.
[0102] Estas funções de liberação e de inicialização incluem validação.
[0103] O ajuste do PSW corrente para zero quando a CPU está no modo de arquitetura de ESA/390 no fim da operação faz com que o PSW seja inválido, já que bit 12 de PSW deve ser um naquele modo. Assim, neste caso se a CPU é colocada no estado de operação após um reinício sem primeiramente introduzir um novo PSW, uma exceção de especificação é reconhecida.
Reinício de subsistema
[0104] Reinício de subsistema provê um meio para liberar condições de interrupção flutuantes bem como para invocar reinício de sistema de E/S.
Reinício de Liberação
[0105] Reinício de Liberação causa o reinício de CPU inicial e o reinício de subsistema a ser realizado e, adicionalmente, libera ou inicializa todas as localizações de armazenamento e registradores em todas as CPUs na configuração, com a exceção do relógio de TOD. Tal liberação é útil na depuração de programas e para garantir a privacidade do usuário. a reinício de Liberação também libera todas as travas usadas pela instrução de REALIZAÇÃO DE OPERAÇÃO TRAVADA. Se a instalação de CZAM não está instalada, a reinício de Liberação define o modo de arquitetura para o modo de ESA/390. Quando a instalação de CZAM é instalada, reinício de Liberação define o modo de arquitetura para o modo da Z/Architecture. A liberação não afeta o armazenamento externo, tal como dispositivos de armazenamento de acesso direto usados pelo programa de controle para reter os conteúdos de páginas que não podem ser endereçadas. A reinício de Liberação combina a função de reinício de CPU inicial com uma função de inicialização que causa as seguintes ações: 1. Quando a instalação de CZAM não é instalada, o modo de arquitetura de todas as CPUs na configuração é definido para o modo de ESA/390. se a instalação de CZAM é instalada, o modo de arquitetura de todas as CPUs na configuração é definido para o modo da Z/Architecture. 2. Os registros de acesso, geral, e de ponto flutuante de todas as CPUs na configuração são definidos para zero. Todos os 64 bits dos registradores gerais são definidos para zero independentemente se a CPU está no modo de arquitetura de ESA/390 ou Arquitetura Z quando a função de reinício de Liberação foi iniciada. 3. Os conteúdos do armazenamento principal na configuração e as chaves de armazenamento associadas são definidos para zero com código de bloco de verificação válida. 4. As travas usadas por qualquer CPU na configuração quando executa a instrução de REALIZAÇÃO DE OPERAÇÃO TRAVADA são liberadas. 5. Um reinício de subsistema é realizado.
[0106] A validação é incluída na configuração dos registradores e nas chaves de armazenamento e no armazenamento de liberação.
[0107] Notas de Programação: 1. O modo de arquitetura não é alterado pela ativação da chave normal de reinício de sistema ou pela execução de uma ordem de reinício de CPU inicial ou Reinício de CPU de Processador de Sinal. Todas as CPUs na configuração estão no mesmo modo de arquitetura. 2. Para uma operação de reinício de CPU não afetar os conteúdos de campos que devem ser deixados inalterados, a CPU não deve estar executando instruções e deve ser desabilitada para todas as interrupções no mesmo momento da reinicialização. Exceto para a operação do temporizador de CPU e para a possibilidade de uma interrupção de verificação de máquina que ocorre, toda a atividade da CPU pode ser parada colocando a CPU no estado de espera e desabilitando a mesma para interrupções de E/S e instruções externas. Para evitar a possibilidade de causar um reinício no momento em que o temporizador de CPU está sendo atualizado ou uma interrupção de verificação de máquina ocorre, a CPU deve estar no estado parado. 3. O reinício de CPU, reinício de CPU inicial, reinício de subsistema, e reinício de Liberação não afetam o valor e o estado do relógio de TOD. 4. As condições sob as quais a CPU entra no estado de parada de verificação são dependentes do modelo e incluem mau funcionamento que impede o fim da operação corrente. Assim, se o reinício de CPU ou o reinício de CPU inicial é executado enquanto a CPU está no estado de parada de verificação, os conteúdos do PSW, registradores, e localizações de armazenamento, incluindo as chaves de armazenamento e a localização de armazenamento acessada no momento do erro, pode ter valores imprevisíveis, e, em alguns casos, os conteúdos ainda podem estar em erro após o estado de parada de verificação ser liberado por estes reinícios. Nesta situação, um reinício de Liberação é necessário para liberar o erro.
Reinicialização do ato de ligar
[0108] A função de reinicialização do ato de ligar para um componente da máquina é realizada como parte da sequência de ligar para este componente. As sequências de ligar para o relógio de TOD, armazenamento principal, armazenamento expandido, e subsistema de canal podem ser incluídos como parte da sequência de ligar da CPU, ou a sequência de ligar para estas unidades pode ser iniciada separadamente.Reinicialização de ato de ligar da CPU: a reinício do ato de ligar causa o reinício de CPU inicial a ser realizado e pode ou não causar o reinício do sistema de E/S a ser realizado no subsistema de canal. Os conteúdos de registradores, registradores de acesso, e registradores de ponto flutuantes gerais são liberadas para zeros com código de bloco de verificação válida. Travas usadas pela REALIZAÇÃO DE OPERAÇÃO TRAVADA e associadas com a CPU são liberadas a menos que elas sejam mantidas pela CPU já ligada. Se a instalação de CZAM não é instalada e a reinicialização é associada com o estabelecimento de uma configuração, a CPU é colocada no modo de ESA/390; de outra forma, a CPU é colocada no modo de arquitetura das CPUs já na configuração. Se a instalação de CZAM é instalada, a CPU é colocada no modo da Z/Architecture.Reinício de CPU, reinício de CPU inicial, reinício de subsistema, e reinício de Liberação podem ser iniciados manualmente usando as instalações de operador. O reinício de CPU inicial é parte da função de inicializar da carga de programa. O reinício do ato de ligar é realizado como parte do ato de ligar a energia.
[0109] Quando a instalação de CZAM não é instalada, se a reinicialização é iniciada pela chave de liberação de carga, de normal de carga ou de liberação de reinício de sistema ou por um reinício do ato de ligar da CPU que estabelece a configuração, o modo de arquitetura é definido para o modo de ESA/390; de outra maneira, o modo de arquitetura é inalterado, exceto que reinício do ato de ligar define o modo em que as CPUs já estão na configuração. Se a instalação de CZAM é instalada, o modo de arquitetura é definido para o modo da Z/Architecture.
[0110] Outros processos, operações e/ou comportamentos que podem ser alterados devido à instalação de uma instalação de modo de arquitetura de configuração são descritos abaixo: (5) Suprime outras ações relacionadas com reinício que são tomadas para facilitar a mudança entre modo de ESA/390 e Z/Architecture, quando reinício é realizado. Quando a instalação de CZAM não é instalada, o PSW corrente é economizado para o subsequente uso por uma ordem de Arquitetura de Conjunto de Processador de Sinal que restaura o modo da Z/Architecture. Quando a instalação de CZAM não está instalada, o PSW corrente é alterado a partir de 16 bytes para oito bytes. Os bits do PSW de oito byte são definidos como na sequência, em um exemplo: bits 0-11 e 13-32 são definidos iguais aos mesmos bits de PSW de 16-byte, bit 12 é definido para um, e bits 33-63 são definidos igual a bits 97- 127 do PSW de 16 byte. Quando a instalação de CZAM é instalada, o PSW não é economizado para o subsequente uso por uma ordem de Arquitetura de Conjunto de Processador de Sinal que restaura o modo da Z/Architecture, e o PSW corrente não é alterado a partir de 16 bytes a 8 bytes. (6) Altera o processo para configurar a CPU com um comando de SCLP (Processador de Lógica de Chamada de Serviço) de CPU de configuração, e operações de chave de carga. Em vez de configurar em ESA/390, configura no modo definido pelo reinício. O comando de SCLP de CPU de configuração coloca a dada CPU no modo de arquitetura das CPUs já no estado configurado. Pelo menos a primeira CPU colocada em uma configuração é colocada na mesma em conjunto com o reinício do ato de ligar da CPU e, como parte deste reinício, é colocada em um modo de arquitetura definido no reinício do ato de ligar da CPU. Um modelo alternativamente pode definir o modo de CPUs que estão no estado de espera quando definem o modo das CPUs configuradas.
[0111] A ativação da chave de liberação de carga ou a chave de normal de carga define o modo de arquitetura como definido no reinício de Liberação ou reinício de CPU inicial, respectivamente.(7) Altera SIGP de maneira a não permitir que a Ordem de Arquitetura de Conjunto altere o modo de arquitetura para ESA/390.
[0112] Uma concretização preferida da presente invenção de uma instrução de Processador de Sinal (SIGP) é descrito com referência à figura 8A. Em uma concretização preferida da presente invenção, uma instrução de Processador de Sinal 800 possui uma pluralidade de campos, incluindo, por exemplo, um campo de código de operação (opcode) 802 tendo um código de operação indicando uma operação de processador de sinal; um primeiro campo de registro (Ri) 804; um segundo campo de registro (R3) 806; um campo de base (B2) 808; e um campo de deslocamento (D2) 810. Ri designa um registro geral, os conteúdos dos quais são o primeiro operando; R3 designa um registro geral, os conteúdos dos quais são o terceiro operando; e os conteúdos de um registro designado por R2 são adicionados para o deslocamento em D2 para prover um endereço de um segundo operando.
[0113] Em operação, um código de ordem de oito bit e, se for chamado, um parâmetro de 32-bit são transmitidos para a CPU designada por um endereço de CPU contido no terceiro operando. O resultado é indicado pelo código de condição e pode ser detalhado pelo estado montado nas posições de bit 32-63 da localização do primeiro operando.
[0114] O endereço do segundo operando não é usado para se endereçar dados; em vez disso, bits 56-63 do endereço contêm o código de ordem de oito bit. Bits 0-55 do endereço do segundo operando são ignorados. O código de ordem especifica a função a ser realizada pela CPU endereçada. A designação e a definição dos códigos de ordem incluem, por exemplo, os seguintes, em um exemplo:
Figure img0004
Figure img0005
[0115] O número binário de 16-bit contido nas posições de bit 48-63 de registro geral R3 forma um endereço de CPU. Bits 0-47 do registro são ignorados. Quando a ordem especificada é a ordem de Arquitetura de Conjunto, um endereço de CPU é ignorado; todas as outras CPUs na configuração são consideradas como endereçadas.
[0116] O registro geral contendo o parâmetro de 32- bit nas posições de bit 32-63 é Ri ou Ri + 1, seja qual for o registro de número ímpar. Depende do código de ordem se um parâmetro é provido e para qual propósito ele é usado.
[0117] Os operandos recém descritos possuem os seguintes formatos, em um exemplo: Registro geral designado por Ri: Bits 0-31 não usados; bits 32-63 incluem estado; Registro geral designado por Ri ou Ri+1 , seja qual for é o registro de número ímpar: Bits 0-31 não usados; bits 32-63 incluem o parâmetro; Registro geral designado por R3: Bits 0-48 não usados; bits 49-63 incluem um endereço de CPU; Endereço de segunda operando: Bits 0-55 não usados; bits 56-63 incluem o código de ordem.
[0118] Uma função de serialização é realizada antes da operação começar e novamente após a operação ser completada.
[0119] Quando o código de ordem é aceito e nenhum estado não zero é retornado, código de condição 0 é definido. Quando informação de estado é gerada por esta CPU (a CPU que realiza o SIGP) ou retornada pela CPU endereçada, o estado é posicionado nas posições de bit 32-63 de registro geral Ri, bits 0-31 do registro permanecem inalteradas, e o código de condição 1 é definido.
[0120] Quando o caminho de acesso para a CPU endereçada está ocupado, ou a CPU endereçada é operacional mas em um estado onde não pode responder ao código de ordem, código de condição 2 é definido.
[0121] Quando a CPU endereçada não está operacional (ou seja, não é provido na instalação, não está na configuração, está em qualquer um de certos modos de teste de engenheiro - consumidor, ou a sua energia está desligada), código de condição 3 é definido.
[0122] Código de condição resultante: 0 Código de ordem aceito 1 Estado armazenado 2 Ocupado 3 Não operacional
[0123] Exceções de programa: • Operação privilegiada • Restrição de transação
[0124] Quando a ordem de Processador de Sinal Arquitetura de Conjunto é especificada nas posições de bit 56-63 do segundo endereço de operando da instrução de Processador de Sinal, os conteúdos de posições de bit 56-63 do registro de parâmetro são usados como um código que especifica um modo de arquitetura para o qual todas as CPUs na configuração devem ser definidos: o código 0 especifica o modo de ESA/390, e os códigos 1 e 2 especificam o modo da Z/Architecture. O código 1 especifica que, para cada uma de todas as CPUs na configuração, o PSW corrente de ESA/390 deve ser transformado para o PSW da z/Architecture. O código 2 especifica que o PSW de uma CPU que executa o Processador de Sinal deve ser transformado para o PSW da z/Architecture e que, para cada uma de todas as outras CPUs na configuração, o PSW deve ser definido com o valor do registrador de PSW da Z/Architecture capturada capturado para aquela CPU. A configuração do PSW com o valor do registro de PSW de Arquitetura /Z capturado vai restaurar o PSW que existe quando a CPU estava por último no modo da Z/Architecture, provido que o registro de PSW de Arquitetura /Z capturado não foi definido para todos os zeros por um reinício.
[0125] Bits 0-55 do registro de parâmetro são ignorados. Os conteúdos de um registro de endereço de CPU da instrução de Processador de Sinal são ignorados; todas as outras CPUs na configuração são consideradas como endereçadas.
[0126] Quando a instalação de CZAM não está instalada, a ordem é aceita apenas se o código é 0, 1, ou 2, a CPU já não está no modo especificado pelo código, cada uma de todas as outras CPUs está tanto no estado parado ou no estado de parada de verificação, e nenhuma outra condição exclui aceitar a ordem.
[0127] Quando a instalação de CZAM é instalada, código 0 não é aceito já que um retorno para o modo de ESA/390 não é permitido, e já que a CPU já está no modo de arquitetura de Z/Architecture, especificação de códigos 1 e 2 resulta em um término indicando parâmetro inválido e código de condição 1. As outras condições de pré-requisito normalmente verificadas pela Ordem de Arquitetura de Conjunto podem ou não ser verificadas.
[0128] Se for aceita, a ordem é completada por todas as CPUs durante a execução de Processador de Sinal. De modo algum, nesta concretização, podem diferentes CPUs estar em diferentes modos de arquitetura.
[0129] A Ordem de Arquitetura de Conjunto é completada, como na sequência, em um exemplo: • se o código no registro de parâmetro não é 0, 1, ou 2, ou se a CPU já está no modo de arquitetura especificado pelo código, a ordem não é aceita. Em vez disso, bit 55 (parâmetro inválido) do registro geral designado para o campo R1 da instrução de Processador de Sinal é definido para um, e código de condição 1 é definido. • se não é verdadeiro que todas as outras CPUs na configuração estão no estado parado ou no estado de parada de verificação, a ordem não é aceita. Em vez disso, bit 54 (estado incorreto) do registro geral designado para o campo R1 da instrução de Processador de Sinal é definido para um, e código de condição 1 é definido. • O modo de arquitetura de todas as CPUs na configuração é definido como especificado pelo código (por exemplo, bit 12 do PSW para controlar operações é definido para o modo de arquitetura especificado, e/ou outra indicação no ambiente de computação é definido indicando o modo de arquitetura especificado) . • se a ordem muda o modo de arquitetura de ESA/390 para Arquitetura Z e o código é 1, então, para cada CPU na configuração, o PSW corrente de oito byte é alterado para um PSW de 16-byte, e os bits de PSW de 16-byte são definidos como na sequência: bits 0-11 e 13-32 são definidos igual aos mesmos bits do PSW de oito byte, bit 12 e bits 33-96 são definidos para zeros, e bits 97-127 são definidos igual a bits 33-63 do PSW de oito byte. Ainda, bit 19 do prefixo de ESA/390, que se torna bit 51 do prefixo de Z/Architecture, é definido para zero.
[0130] Se o código é 2, o PSW da CPU que executa Processador de Sinal e os valores de prefixo de todas as CPUs são definidos como no caso de código 1. Para cada uma de todas as outras CPUs na configuração, o PSW é definido com o valor do registro de PSW de Z/Architecture capturado. No entanto, o registro de PSW de Z/Architecture capturado foi definido para todos os zeros se a CPU realizada um reinício, diferente do que o reinício de CPU, tanto no momento da transição de modo de arquitetura ou subsequentemente. • se a ordem muda o modo de arquitetura a partir de Arquitetura Z para ESA/390, então, para cada CPU na configuração, (1) o PSW corrente, que é o PSW atualizado no caso de a CPU que executa Processador de Sinal, é economizado no registro de PSW de Z/Architecture capturado, e (2) o PSW corrente de 16-byte é alterado para um PSW de oito byte ajustando os bits do PSW de oito byte como na sequência: bits 0-11 e 13-32 são definidos igual aos mesmos bits de PSW de 16-byte, bit 12 é definido para um, e bits 33-63 são definidos igual a bits 97-127 do PSW de 16-byte. Bit 51 do prefixo de Z/Architecture, que se torna bit 19 do prefixo de ESA/390, permanece inalterado. • ALBs e TLBs de todas as CPUs na configuração são liberadas de seus conteúdos. • Uma função de sincronização de ponto de verificação e serialização é realizada em todas as CPUs na configuração.
[0131] Se a ordem muda o modo de arquitetura a partir de Arquitetura Z para ESA/390 e a instrução de Processador de Sinal causa a ocorrência de um evento de PER de busca de instrução, apenas os 31 bits mais para direita do endereço da instrução são armazenados no campo de endereço de PER de ESA/390.
[0132] Em uma concretização preferida da presente invenção, com CZAM, os seguintes são um pré-requisito: Cada uma de todas as outras CPUs está tanto no estado parado ou no estado de parada de verificação, e nenhuma outra condição exclui aceitar a ordem. Quando a instalação de CZAM é instalada, código 0 não é aceito já que um retorno para o modo de ESA/390 não é permitido, e já que a CPU já está no modo de arquitetura da Z/Architecture, especificação de códigos 1 e 2 resulta em um término indicando parâmetro inválido e código de condição 1. As outras condições de pré- requisito normalmente verificado pela Ordem de Arquitetura de Conjunto podem ou não ser verificadas. Em mais uma concretização preferida da presente invenção, SIGP com código 1 e 2 indica término com sucesso sem indicação adicional.
[0133] Uma concretização preferida da presente invenção de processamento associado com a execução de uma instrução de SIGP para o código de Ordem de Arquitetura de Conjunto é descrito com referência à figura 8B. Em referência à figura 8B, um processador do ambiente de computação executa uma instrução de SIGP e obtém um código de ordem que indica a Operação de Arquitetura de Conjunto, etapa 850. Em um exemplo, o código de ordem está incluído no endereço do segundo operando da instrução de SIGP.
[0134] Adicionalmente, o modo de arquitetura requisitado a ser comutado para é obtido a partir, por exemplo, do registro de parâmetro especificado pela instrução de SIGP, etapa 852. Adicionalmente, uma determinação é feita como se uma instalação de modo de arquitetura de configuração, tal como CZAM, é instalada, CONSULTA 854. Isto é determinado, em um exemplo, por um indicador de instalação.
[0135] Se CZAM não está instalada, então uma determinação adicional é feita como se a CPU já está no modo de arquitetura requisitado, CONSULTA 856. Se for assim, então o estado é provido, por exemplo, em um registro designado pela instrução de SIGP, etapa 858, e o estado é tratado como um erro, etapa 860. No entanto, se a CPU não é no modo requisitado, CONSULTA 856, então uma determinação é feita como se outras condições especificadas pela instrução, tal como se as outras CPUs do ambiente de computação sendo configurado estão em um estado parado, etc., são satisfeitos, CONSULTA 862. Se as condições não são satisfeitas, então o processamento continua para a etapa 858. De outra maneira, a ordem é aceita, etapa 864, e o modo de arquitetura deve ser alterado. Assim, o PSW é definido, como descrito acima, etapa 866, e o processamento para este aspecto da instrução termina, etapa 868.
[0136] Retornando para CONSULTA 854, se CZAM é instalada, então uma determinação é feita como se a CPU está no modo requisitado, CONSULTA 870. Se a CPU já está no modo requisitado, então, em um exemplo, estado é provido que a CPU já está no modo de arquitetura requisitado (por exemplo, Arquitetura Z), etapa 872. Nesta concretização, no entanto, este estado é aceitável e não tratado como um erro, etapa 874. Tanto, é ignorado, ou em outra concretização preferida da presente invenção, um código de condição pode ser provido que é um código sem erro. Em mais uma concretização adicional, o estado meramente indica término com sucesso. Outras possibilidades também existem para indicar nenhum erro mesmo que a CPU já está no modo de arquitetura requisitado.
[0137] Retornando para CONSULTA 870, no entanto, se a CPU não está no modo requisitado, então a ordem não é aceita, já que é ilegal retornar para o um modo de arquitetura (por exemplo, ESA/390), etapa 876. Estado é provido, etapa 878, que é considerado um erro, etapa 880.
[0138] Em uma concretização preferida da presente invenção, quando CZAM está em um sistema como uma instalação que não pode ser selecionada, então CONSULTA 854 pode ser omitida e o controle pode passar da etapa 852 diretamente para a etapa 870. Em tal concretização, etapas 854 a 868 podem não ser implementadas.
[0139] Em outra concretização preferida da presente invenção, quando uma ordem para mudar para o modo de arquitetura corrente é recebida, a ordem pode não ser aceita e um erro pode ser indicado na etapa 874.
[0140] Outros comportamentos, processos e/ou operações que podem mudar com base na instalação de um CAM incluem:(8) Alterações para os bits de instalação: Um novo bit, por exemplo, bit 138, é adicionado para os bits de instalação para indicar a instalação de Modo de Arquitetura da Z/Architecture de configuração, e bit 2, que indica se o modo de arquitetura da Z/Architecture está ativo, deve ser definido para um (indicando ativo).
[0141] Em pelo menos uma concretização preferida da presente invenção, a instalação de CZAM é instalada para LPARs e convidado - 1 (convidados de primeiro nível — convidados iniciados por um hipervisor (por exemplo, emitindo a instrução de Execução Interpretativa de Partida (SIE)), mas não para convidado - 2 (convidados de segundo nível — um convidado iniciado por outro convidado (por exemplo, emitindo uma instrução de SIE).
[0142] Em pelo menos uma concretização preferida da presente invenção, quando CZAM é instalada e a Z/Architecture convidado - 2 é iniciada, o convidado é iniciado no modo de Z/Architecture de acordo com a técnica da figura 6A. No entanto, quando CZAM é instalada, e um convidado de ESA/390 - 2 é iniciado, é iniciado no modo ESA/390, de acordo com a técnica da figura 4A, já que não é afetado por CZAM, nesta concretização. Assim, o hospedeiro e convidados de primeiro nível são controlados por CZAM, em que eles serão iniciados/reiniciados, etc. na Z/Architecture, independentemente de preferência para o modo de arquitetura (por exemplo, forçado para ser na Z/Architecture, já que ESA/390 não é suportado), mas os convidados de ESA/390 de segundo nível não são afetados por CZAM e vai continuar a ser iniciado/reiniciado, etc. em ESA/390.
[0143] Como descrito aqui, com base na instalação de uma instalação de modo de arquitetura de configuração, tal como uma instalação de Modo de Arquitetura da Z/Architecture de configuração, certos processos, operações e/ou comportamentos de um ambiente de computação que está configurado para múltiplos modos de arquitetura são alterados. Em tal processo é o processo de ligar. Aspectos adicionais de processamento associado com um processo de ligar quando uma instalação de modo de arquitetura de configuração é instalada são descritos com referência à figura 9.
[0144] Em referência à figura 9, inicialmente uma determinação é feita como se uma instalação de modo de arquitetura de configuração é instalada em um ambiente de computação configurado para uma pluralidade de modos de arquitetura e possui uma sequência de ligar definida para ligar o ambiente de computação em um modo de arquitetura (por exemplo, um modo de legado, tal como ES A/390), etapa 900. O um modo de arquitetura incluindo uma primeira arquitetura de configuração de instrução e tendo um primeiro conjunto de funcionalidades suportadas, tal como endereçamento de 31 bit, uso de 32-bit registradores de propósito geral, e várias funcionalidades. Se é determinado que a instalação de modo de arquitetura de configuração não está instalada, CONSULTA 902, então a sequência de ligar corrente é realizada, etapa 904, como descrito com referência às figuras 4A-4B. De outra maneira, o ambiente de computação é reconfigurado para restringir o uso do um modo de arquitetura (por exemplo, o modo de ESA/390 de legado), etapa 906. A reconfiguração inclui, por exemplo, selecionar uma diferente sequência de ligar para ligar o ambiente de computação em outro modo de arquitetura (por exemplo, uma última versão ou versão aprimorada do modo de arquitetura - por exemplo, Z/Architecture), etapa 908. O outro modo de arquitetura incluindo uma segunda arquitetura de configuração de instrução e tendo um segundo conjunto de funcionalidades suportadas, tal como endereçamento de 64 bit, uso de 64-bit registradores de propósito geral e várias instalações, tais como tradução de endereço dinâmico, e/ou outras instalações. A sequência de ligar então é executada para ligar o ambiente de computação no outro modo de arquitetura que restringe o uso de um modo de arquitetura, etapa 910, como descrito, por exemplo, com referência às figuras 6A-6B. Em um exemplo, esta execução inclui carregar o PSW e inverter o bit 12. A seguir, o ambiente de computação é rodado no outro modo de arquitetura (por exemplo, Z/Architecture), etapa 912.
[0145] Em uma concretização adicional, em referência à figura 10, a reconfiguração inclui desabilitar uma ou mais operações que suportam o um modo de arquitetura, incluindo desabilitar a operação de comutação, etapa 1000. Por exemplo, a instrução de Processador de Sinal é alterada para prover um erro com base em um requisito para comutar de volta para o um modo de arquitetura, por exemplo, ESA/390.
[0146] Adicionalmente, um ou mais outros processos, operações e/ou comportamentos são alterados para suportar o ato de ligar no outro modo de arquitetura, em vez do um modo de arquitetura e o uso do um modo de arquitetura é restrito, etapa 1002. Estes um ou mais outros processos incluem, por exemplo, o comando de SCLP de CPU de configuração que coloca a CPU no modo de arquitetura das CPUs já no estado configurado 1004; a chave de liberação de carga e chave normal de carga, que são instalações de operador que definem o modo de arquitetura como definido no reinício de Liberação ou reinício de CPU inicial, respectivamente 1006; a instrução de Processador de Sinal que é alterada para aceitar um comutador a partir de um modo de arquitetura para o mesmo modo de arquitetura, tal que estado é provido e não tratado como um erro 1008; e bits de instalação são adicionados para os indicadores de instalação para indicar a instalação de modo de arquitetura de configuração 1010.
[0147] Como descrito aqui, outra operação que é afetada pela instalação da instalação de modo de arquitetura de configuração é a operação de reinicialização. Uma concretização preferida da presente invenção de processamento associado com reinício é descrita com referência à figura 11. Inicialmente, um processador obtém (por exemplo, recebe, é provido, ou de outra maneira alcança) uma operação de reinício, etapa 1100, e a operação de reinicialização é realizada para reiniciar o ambiente de computação para o outro modo de arquitetura (por exemplo, Arquitetura Z), etapa 1102, como descrito aqui. Isto inclui, por exemplo, usando um PSW que está no formato apropriado para a arquitetura e definindo o bit 12 no PSW para zero.
[0148] É descrito aqui em detalhe uma instalação de modo de arquitetura de configuração que restringe o uso de certos aspectos arquitetônicos de uma arquitetura suportada por um ambiente de computação configurado para uma pluralidade de arquiteturas. Em um exemplo, uma instalação de modo de arquitetura de configuração é instalada, e um ambiente de computação que suporta múltiplas configurações arquitetônicas pode ser reconfigurado tal que aspectos de um dos modos de arquitetura (por exemplo, o modo de legado) não são mais suportados, mas outro modo de arquitetura (por exemplo, um modo de arquitetura aprimorado) permanece suportado. Quando um ambiente de computação é configurado assim, o ambiente de computação é evitado de ser reconfigurado novamente para o modo de arquitetura não suportado.
[0149] Em uma concretização adicional, um ambiente de computação é configurado de maneira dinâmica em um modo de arquitetura selecionado, tal como Arquitetura Z. Nesta concretização, uma verificação pode não ser feita como se uma instalação de CZAM é instalada, e/ou uma Ordem de Arquitetura de Conjunto de SIGP explícita pode não ser realizada. Uma concretização preferida da presente invenção da lógica para realizar esta configuração é descrito com referência à figura 12 .
[0150] Em referência à figura 12, em uma concretização preferida da presente invenção, um processador configuras um ambiente de computação para realizar operações em um modo de arquitetura selecionado (por exemplo, Arquitetura Z), etapa 1200. A configuração inclui, por exemplo, começar a inicialização do ambiente de computação usando uma palavra de estado de programa armazenado, etapa 1202. Em um exemplo, a palavra de estado de programa armazenado possui um formato de um modo de arquitetura diferente do modo de arquitetura selecionado. Assim, uma determinação é feita que a palavra de estado de programa armazenado possui o formato do modo de arquitetura diferente do modo de arquitetura selecionado, etapa 1204. Com base nesta determinação, a palavra de estado de programa armazenado é automaticamente modificada para ter um formato do modo de arquitetura selecionado, etapa 1206. O ato de modificar automaticamente é realizado ausente em um requisito explícito para mudar para o modo de arquitetura selecionado. Inicialização do ambiente de computação usando a palavra de estado de programa modificado então é completada para configurar o ambiente de computação no modo de arquitetura selecionado, etapa 1208.
[0151] Em uma concretização preferida da presente invenção, a instalação de CZAM pode ser usada com uma ou mais outras instalações incluindo, por exemplo, uma instalação de No-DAT e/ou uma instalação de início de utilidade de controle, descrita nos seguintes aplicativos comumente designados codepositados intitulados " Managing Processing Associated with Selected Architectural Facilities", Gainey, et al, (Documento IBM No.: POU920140020US1); e "Common Reboot Sequence for Control Utility Able to be Initialized in Multiple Architecture", Michael K. Gschwind, (Documento IBM No.: POU920140019US1), respectivamente, cada um dos quais é incorporado aqui por referência a sua totalidade.
[0152] Em referência à figura 13, em um exemplo, um produto de programa de computador 1300 inclui, por exemplo, um ou mais meios de armazenamento legível por computador não transitório 1302 para armazenar meios de código de programa legível por computador, lógica e/ou instruções 1304 nas mesmas para prover e facilitar uma ou mais concretizações.
[0153] A presente invenção pode ser um sistema, um método, e/ou um produto de programa de computador. O produto de programa de computador pode incluir um meio de armazenamento legível por computador (ou media) tendo instruções de programa legível por computador nas mesmas para fazer com que um processador realize aspectos da presente invenção.
[0154] O meio de armazenamento legível por computador pode ser um dispositivo tangível que pode reter e armazenar instruções para o uso por um dispositivo de execução de instrução. O meio de armazenamento legível por computador pode ser, por exemplo, mas não é limitado a um dispositivo de armazenamento eletrônico, um dispositivo de armazenamento magnético, um dispositivo de armazenamento óptico, um dispositivo de armazenamento eletromagnético, um dispositivo de armazenamento de semicondutor, ou qualquer combinação adequada dos anteriores. Uma lista não exaustiva de mais exemplos específicos do meio de armazenamento legível por computador inclui a sequência: um disquete de computador portátil, um disco rígido, uma memória de acesso aleatório (RAM), uma memória apenas de leitura (ROM), uma memória apenas de leitura apagável programável (EPROM ou memória de Flash), uma memória de acesso aleatório estática (SRAM), uma memória apenas de leitura de disco compacto portátil (CD-ROM), um disco versátil digital (DVD), um cartão de memória, um disco de floppy, um dispositivo mecanicamente codificado tal como cartões perfurados ou estruturas elevadas em uma ranhura tendo instruções gravadas nas mesmas, e qualquer combinação adequada dos anteriores. Um meio de armazenamento legível por computador, como usado aqui, não deve ser construído como sendo sinais transitórios por si só, tal como ondas de rádio ou outras ondas eletromagnéticas que se propagam livremente, ondas eletromagnéticas que se propagam através de uma guia de onda ou outro meio de transmissão (por exemplo, pulsos de luz que passam através de um cabo de fibra óptica), ou sinais elétricos transmitidos através de um cabo.
[0155] Instruções de programa legível por computador descritas aqui podem ser baixadas para respectivos dispositivos de processamento/computação a partir de um meio de armazenamento legível por computador ou para um dispositivo de armazenamento externo ou de computador externo através de uma rede, por exemplo, a Internet, uma rede de área local, uma rede de longa distância e/ou uma rede sem fios. A rede pode compreender cabos de transmissão de cobre, fibras de transmissão óptica, transmissão sem fios, roteadores, firewalls, comutações, computadores de porta de entrada e/ou servidores de borda. Um cartão de adaptador de rede ou interface de rede em cada dispositivo de processamento/computação recebe instruções de programa legível por computador a partir da rede e direciona as instruções de programa legível por computador para o armazenamento em um meio de armazenamento legível por computador dentro do respectivo dispositivo de processamento/computação.
[0156] Instruções de programa legível por computador para realizar operações da presente invenção podem ser instruções de montador, instruções de arquitetura definida pela instrução (ISA), instruções de máquina, instruções dependentes de máquina, microcódigo, instruções de firmware, dados de ajuste de estado, ou qualquer código fonte ou código de objeto escrito em qualquer combinação de uma ou mais linguagens de programação, incluindo uma linguagem de programação orientada pelo objeto tal como Smalltalk, C++ ou semelhantes, e linguagens de programação de procedimento convencional, tal como a linguagem de programação "C" ou similares linguagens de programação. As instruções de programa legível por computador podem executar inteiramente no computador de usuário, parcialmente no computador de usuário, como um pacote de software remoto, parcialmente no computador de usuário e parcialmente em um computador remoto ou inteiramente no computador remoto ou servidor. No último cenário, o computador remoto pode ser conectado com o computador de usuário através de qualquer tipo de rede, incluindo uma rede de área local (LAN) ou uma rede de longa distância (WAN), ou a conexão pode ser feita para um computador externo (por exemplo, através da Internet usando um Provedor de Serviço de Internet). Em algumas concretizações, circuitos eletrônicos incluindo, por exemplo, circuitos lógicos programáveis, arranjos de portas programável em campo (FPGA), ou arranjos de lógica programável (PLA) podem executar as instruções de programa legível por computador usando informação de estado das instruções de programa legível por computador para personalizar os circuitos eletrônicos, de maneira a realizar aspectos da presente invenção.
[0157] Aspectos da presente invenção são descritos aqui com referência às ilustrações de fluxograma e/ou diagramas de bloco de métodos, aparelho (sistemas), e produtos de programa de computador de acordo com concretizações da invenção. Será entendido que cada bloco das ilustrações de fluxograma e/ou diagramas de bloco, e combinações de blocos nas ilustrações de fluxograma e/ou diagramas de bloco, podem ser implementadas pelas instruções de programa legível por computador.
[0158] Estas instruções de programa legível por computador podem ser providas para um processador de um computador de propósito geral, computador de propósito especial, ou outro aparelho de processamento de dados programável para produzir uma máquina, tal que as instruções, que executam através do processador do computador ou outro aparelho de processamento de dados programável, criar meios para implementar as funções/atos especificados no fluxograma e/ou bloco ou blocos do diagrama de bloco. Estas instruções de programa legível por computador também podem ser armazenadas em um meio de armazenamento legível por computador que podem direcionar um computador, um aparelho de processamento de dados programável, e/ou outros dispositivos para funcionar de uma maneira particular, tal que o meio de armazenamento legível por computador tendo instruções armazenadas no mesmo compreende um artigo de manufatura incluindo instruções que implementam aspectos da função/ato especificado no fluxograma e/ou bloco ou blocos do diagrama de bloco.
[0159] As instruções de programa legível por computador também podem ser carregadas em um computador, outro aparelho de processamento de dados programável, ou outro dispositivo para causar uma série de etapas operacionais a ser realizadas no computador, outro aparelho programável ou outro dispositivo para produzir um processo implementado por computador, tal que as instruções que executam no computador, outro aparelho programável, ou outro dispositivo implementam as funções/atos especificados no fluxograma e/ou bloco ou blocos do diagrama de bloco.
[0160] O fluxograma e diagramas de bloco nas Figuras ilustram a arquitetura, funcionalidade e operação de possíveis implementações de sistemas, métodos, e produtos de programa de computador de acordo com várias concretizações da presente invenção. Neste sentido, cada bloco no fluxograma ou diagramas de bloco pode representar um módulo, segmento, ou porção de instruções, que compreende uma ou mais instruções executáveis para implementar as funções lógicas especificadas. Em algumas implementações alternativas, as funções notadas no bloco podem ocorrer fora da ordem notada nas figuras. Por exemplo, dois blocos mostrados em sucessão, de fato, podem ser executados substancialmente concorrentemente, ou os blocos algumas vezes podem ser executados na ordem reversa, dependendo da funcionalidade envolvida. Também será notado que cada bloco dos diagramas de bloco e/ou ilustração de fluxograma, e combinações de blocos nos diagramas de bloco e/ou ilustração de fluxograma, podem ser implementados por sistemas com base em hardware de propósito especial que realizam as funções especificadas ou atos especificados ou realizar combinações de instruções de computador e hardware de propósito especial.
[0161] Em adição ao dito acima, um ou mais aspectos podem ser providos, oferecidos, distribuídos, gerenciados, servidos, etc. por um serviço provido que oferece o gerenciamento de ambientes de consumidor. Por exemplo, o provedor de serviço pode criar, manter, suportar, etc. código de computador e/ou uma infraestrutura de computador que realiza um ou mais aspectos para um ou mais consumidores. No retorno, o provedor de serviço pode receber pagamento a partir de um consumidor sob uma assinatura e/ou acordo de taxa, como exemplos. Adicionalmente ou alternativamente, o provedor de serviço pode receber pagamento a partir da venda de conteúdo de propaganda para uma ou mais terceiras partes.
[0162] Em um aspecto, um aplicativo pode ser distribuído para realizar uma ou mais concretizações. Como um exemplo, a distribuição de um aplicativo compreende prover infraestrutura de computador operável para realizar uma ou mais concretizações.
[0163] Como um aspecto adicional, uma infraestrutura de computação pode ser distribuída compreendendo integrar código legível por computador em um sistema de computação, em que o código em combinação com o sistema de computação é capaz de realizar uma ou mais concretizações.
[0164] Como mais um aspecto adicional, um processo para integrar infraestrutura de computação compreendendo integrar código legível por computador em um sistema de computador pode ser provido. O sistema de computador compreende um meio legível por computador, em que o meio de computador compreende uma ou mais concretizações. O código em combinação com o sistema de computador é capaz de realizar uma ou mais concretizações.
[0165] Apesar de várias concretizações serem descritas acima, estas são apenas exemplos. Por exemplo, ambientes de computação de outras arquiteturas podem ser usados para incorporar e usar uma ou mais concretizações. Adicionalmente, diferentes instruções, formatos de instrução, campos de instrução e/ou valores de instrução podem ser usados. Ainda adicionalmente, outros tipos de processos, operações e/ou comportamentos podem ser afetados pela instalação de um CAM. Muitas variações são possíveis.
[0166] Adicionalmente, outros tipos de ambientes de computação podem se beneficiar e podem ser usados. Como um exemplo, um sistema de processamento de dados adequado para armazenar e/ou executar código de programa é útil que inclui pelo menos dois processadores acoplados diretamente ou indiretamente com elementos de memória através de um barramento de sistema. Os elementos de memória incluem, por exemplo, memória local empregada durante a execução atual do código de programa, armazenamento físico, e memória de cache que proveem armazenamento temporário de pelo menos some código de programa de maneira a reduzir o número de vezes que o código deve ser recuperado a partir do armazenamento físico durante a execução.
[0167] Dispositivos de entrada/saída ou E/S (incluindo, mas não limitado a, teclados, exibidores, dispositivos de apontamento, DASD, fita, CDs, DVDs, pen drives e outros meios de memória, etc.) podem ser acoplados com o sistema tanto diretamente quanto através de controladores de E/S intervenientes. Adaptadores de rede também podem ser acoplados com o sistema para permitir que o sistema de processamento de dados seja acoplado com outros sistemas de processamento de dados ou impressoras remotas ou dispositivos de armazenamento através de redes públicas ou privadas intervenientes. Modems, modems de cabo, e cartões de ethernet são apenas alguns dos tipos disponíveis de adaptadores de rede.
[0168] Em referência à figura 14, componentes representativos de um sistema de computador hospedeiro 5000 para implementar uma ou mais concretizações são retratados. O computador de hospedeiro representativo 5000 compreende uma ou mais CPUs 5001 em comunicação com memória de computador (isto é, armazenamento central) 5002, bem como interfaces de E/S para dispositivos de meio de armazenamento 5011 e redes 5010 para se comunicar com outros computadores ou SANs e semelhantes. A CPU 5001 está em conformidade com uma arquitetura tendo uma instrução arquitetada definida e funcionalidade arquitetada. A CPU 5001 pode ter tradução de registro de acesso (ART) 5012, que inclui um armazenamento temporário de lado de ART (ALB) 5013, para selecionar um espaço de endereço a ser usado pela tradução de endereço dinâmico (DAT) 5003 para transformar endereços de programa (endereços virtuais) para endereços reais da memória. A DAT tipicamente inclui um armazenamento temporário de lado de tradução (TLB) 5007 para o armazenamento em cache de traduções de forma que acessos posteriores ao bloco de memória de computador 5002 não necessitam do atraso da tradução de endereço. Tipicamente, a cache 5009 é empregada entre a memória de computador 5002 e o processador 5001. A cache 5009 pode ser hierárquica tendo uma grande cache disponível para mais do que uma CPU e cachês menores, mais rápidas (de menor nível) entre a grande cache e cada CPU. Em algumas implementações, as caches de menor nível são divididas para prover caches de nível baixo separadas para busca de instrução e acessos de dados.
[0169] Em uma concretização preferida da presente invenção, uma instrução é buscada a partir da memória 5002 por uma unidade de busca de instrução 5004 através da cache 5009. A instrução é decodificada em uma unidade de decodificação de instrução 5006 e despachada (com outras instruções em algumas concretizações) para a unidade ou unidades de execução de instrução 5008. Tipicamente várias unidades de execução 5008 são empregadas, por exemplo, uma unidade de execução aritmética, uma unidade de execução de ponto de flutuação e uma unidade de execução de instrução de ramificação. A instrução é executada pela unidade de execução, acessando operandos a partir de registradores de instrução especificada ou memória como for necessário. Se um operando deve ser acessado (carregado ou armazenado) a partir da memória 5002, uma unidade de carga/armazenamento 5005 tipicamente lida com o acesso sob controle da instrução sendo executada. Instruções podem ser executadas em circuitos de hardware ou em microcódigo interno (firmware) ou por uma combinação de ambos.
[0170] Como notado, um sistema de computador inclui informação no armazenamento local (ou principal), bem como endereçamento, proteção, e referência e gravação de alteração. Alguns aspectos de endereçamento incluem o formato dos endereços, o conceito dos espaços de endereço, os vários tipos de endereços, e a maneira em que um tipo de endereço é traduzido para outro tipo de endereço. Parte do armazenamento principal inclui permanentemente localizações de armazenamento designadas. Armazenamento principal provê o sistema com armazenamento de dados de acesso rápido diretamente endereçável. Ambos os dados e programas devem ser carregados no armazenamento principal (a partir dos dispositivos de entrada) antes de eles poderem ser processados.
[0171] Armazenamento principal pode incluir um ou mais armazenamentos temporários de acesso rápido menores, algumas vezes chamados de caches. A cache tipicamente é associada fisicamente com a CPU ou um processador de E/S. Os efeitos, exceto no desempenho, da construção física e o uso de meios de armazenamento distintos em geral não podem ser observados pelo programa.
[0172] Cachês separados podem ser mantidos para instruções e para operandos de dados.
[0173] Informação dentro da cache é mantida nos bytes contíguos em um limite integral chamado de um bloco de cache ou linha de cache (ou linha, para resumir) . Um modelo pode prover uma instrução de ATRIBUTO DE CACHE DE EXTRATO que retorna o tamanho de uma linha de cache em bytes. Um modelo também pode prover DADOS DE PRÉ-BUSCA e instruções LONAS RELATIVAS DE DADOS DE PRÉ-BUSCA que efetuam a busca prévia de armazenamento para os dados ou cache de instrução ou a liberação de dados a partir da cache.
[0174] O armazenamento é observado como uma longa coluna horizontal de bits. Para a maioria das operações, acessos para o armazenamento prosseguem em uma sequência da esquerda para direita. A coluna de bits é subdividida nas unidades de oito bits. Uma unidade de oito bits é chamada de um byte, que é o bloco de construção básico de todos os formatos de informação. Cada localização de byte no armazenamento é identificada por um inteiro não negativo único, que é o endereço daquela localização de byte ou, simplesmente, o endereço de byte. Adjacentes localizações de byte possuem consecutivos endereços, partindo com 0 na esquerda e prosseguindo em uma sequência da esquerda para direita. Endereços são inteiros binários não assinados e são 24, 31 , ou 64 bits.
[0175] Informação é transmitida entre o armazenamento e a CPU ou um subsistema de canal um byte, ou um grupo de bytes, em um momento. A menos que seja especificado de outra maneira, por exemplo, na Z/Architecture, um grupo de bytes no armazenamento é endereçado pelo byte mais da esquerda do grupo. O número de bytes no grupo é tanto implicado ou explicitamente especificado pela operação a ser realizado. Quando usado em uma operação de CPU, um grupo de bytes é chamado de um campo. Dentro de cada grupo de bytes, por exemplo, na Z/Architecture, bits são numerados em uma sequência da esquerda para direita. Na Z/Architecture, os bits mais da esquerda algumas vezes são referidos como os bits de "maior ordem" e os bits mais da direita como os bits de "menor ordem". Números de bit não são endereços de armazenamento, no entanto. Apenas bytes podem ser endereçados. Para operar nos bits individuais de um byte no armazenamento, todo o byte é acessado. Os bits em um byte são numerados 0 a 7, a partir da esquerda para direita (por exemplo, na Z/Architecture) . Os bits em um endereço podem ser numerados 8-31 ou 40-63 para endereços de 24 bit, ou 1-31 ou 33-63 para endereços de 31 bit; eles são numerados 0-63 para endereços de 64 bits. Em um exemplo, bits 8-31 e 1-31 se aplicam aos endereços que estão em uma localização (por exemplo, registro) que é de 32 bits de tamanho, em que os bits 40-63 e 33-63 se aplicam aos endereços que estão em uma localização larga de 64 bit. Dentro de qualquer outro formato de comprimento fixado de múltiplos bytes, os bits que compõem o formato são numerados consecutivamente partindo de 0. Para os propósitos de detecção de erro, e preferivelmente para correção, 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 podem ser controlados diretamente pelo programa. Capacidades de armazenamento são expressas no número de bytes. Quando o comprimento de um campo de operando de armazenamento é implicado pelo código de operação de uma instrução, o campo é dito de ter um comprimento fixo, que pode ser um, dois, quatro, oito, ou dezesseis bytes. Maiores campos podem ser implicados para algumas instruções. Quando o comprimento de um campo de operando de armazenamento não é implicado mas é declarado explicitamente, o campo é dito de ter um comprimento variável. Operandos de comprimento variável podem variar no comprimento pelos incrementos de um byte (ou com algumas instruções, em múltiplos de dois bytes ou outros múltiplos). Quando informação é colocada no armazenamento, os conteúdos de apenas estas localizações de byte são substituídas que são incluídas no campo designado, mesmo que a largura do caminho físico para o armazenamento pode ser maior do que o comprimento do campo sendo armazenado.
[0176] Certas unidades de informação devem estar em um limite integral no armazenamento. Um limite é chamado de integral 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 para os campos de 2, 4, 8, 16, e 32 bytes em um limite integral. Uma meia palavra é um grupo de dois consecutivos bytes em um limite de dois bytes e é o bloco de construção básico das instruções. Uma palavra é um grupo de quatro consecutivos bytes em um limite de quatro bytes. Uma palavra dupla é um grupo de oito consecutivos bytes em um limite de oito bytes. Uma palavra quádrupla é um grupo de 16 consecutivos bytes em um limite de 16 bytes. Uma palavra octupla é um grupo de 32 consecutivos bytes em um limite de 32 bytes. Quando endereços de armazenamento designam meias palavras, palavras, palavras duplas, palavras quádruplas, e palavras octuplas, a representação binária do endereço contém um, dois, três, quatro, ou cinco bits zero mais a direita, respectivamente. Instruções devem estar em limites integrais de dois bytes. Os operandos de armazenamento da maioria das instruções não possuem requisitos de alinhamento limite.
[0177] Nos dispositivos que implementam caches separados para instruções e operandos de dados, um atraso significativo pode ser experenciado se o programa se armazena em uma linha de cache a partir da qual as instruções são subsequentemente buscadas, independentemente de se o armazenamento altera as instruções que são buscadas subsequentemente.
[0178] Em um exemplo, a concretização pode ser praticada por software (algumas vezes referido como código interno licenciado, firmware, microcódigo, milicódigo, picocódigo e semelhantes, qualquer um dos quais pode ser consistente com uma ou mais concretizações). Em referência à figura 14, código de programa de software que incorpora um ou mais aspectos pode ser acessado pelo processador 5001 do sistema hospedeiro 5000 a partir de dispositivos de meio de armazenamento de longo prazo 5011, tais como um drive de CD- ROM, drive de fita ou disco rígido. O código de programa de software pode ser incorporado em qualquer um de uma variedade de meios conhecidos para o uso com um sistema de processamento de dados, tal como um disquete, disco rígido, ou CD-ROM. O código pode ser distribuído em tal mídia, ou pode ser distribuído para usuários a partir da memória de computador 5002 ou armazenamento de um sistema de computador por uma rede 5010 para outros sistemas de computador para o uso pelos usuários de tais outros sistemas.
[0179] O código de programa de software inclui um sistema operacional que controla a função e a interação de vários componentes de computador e um ou mais programas de aplicativo. Código de programa normalmente é paginado a partir do dispositivo de mídia de armazenamento 5011 para o armazenamento de computador de velocidade relativamente maior 5002 onde está disponível para processar pelo processador 5001. As técnicas e métodos para incorporar o código de programa de software na memória, no meio físico, e/ou distribuir código de software através das redes são bem conhecidos e não será adicionalmente discutido aqui. Código de programa, quando criado e armazenado em um meio tangível (incluindo mas não limitado aos módulos de memória eletrônica (RAM), memória de flash, Discos compactos (CDs), DVDs, Fita Magnética e semelhantes geralmente é referido como um "produto de programa de computador". O produto de programa de meio de computador tipicamente é legível por um circuito de processamento preferivelmente em um sistema de computador para a execução pelo circuito de processamento.
[0180] A figura 15 ilustra uma estação de trabalho representativa ou sistema de hardware de servidor em que uma ou mais concretizações podem ser praticadas. O sistema 5020 da figura 15 compreende um representativo sistema de computador de base 5021, tal como um computador pessoal, uma estação de trabalho ou um servidor, incluindo dispositivos periféricos opcionais. O sistema de computador de base 5021 inclui um ou mais processadores 5026 e um barramento empregado para conectar e permitir a comunicação entre os processadores 5026 e os outros componentes do sistema 5021 de acordo com técnicas conhecidas. O barramento conecta o processador 5026 com a memória 5025 e armazenamento de longo prazo 5027 que pode incluir um disco rígido (incluindo qualquer um de um meio magnético, CD, DVD e Memória de flash por exemplo) ou um drive de fita, por exemplo. O sistema 5021 também deve incluir um adaptador de interface de usuário, que conecta o microprocessador 5026 através do barramento com um ou mais dispositivos de interface, tal como um teclado 5024, um mouse 5023, uma impressora/escâner 5030 e/ou outros dispositivos de interface, que podem ser qualquer dispositivo de interface de usuário, tal como uma tela sensível ao toque, bloco de entrada digitalizado, etc. O barramento também conecta um dispositivo de exibição 5022, tal como uma tela de LCD ou monitor, com o microprocessador 5026 através de um adaptador de exibição.
[0181] O sistema 5021 pode se comunicar com outros computadores ou redes de computadores por meio de um adaptador de rede capaz de se comunicar 5028 com uma rede 5029. Exemplo adaptadores de rede são canais de comunicações, token ring, ethernet ou modems. Alternativamente, o sistema 5021 pode se comunicar usando uma interface sem fios, tal como um cartão de CDPD (dados de pacote digital de celular). O sistema 5021 pode estar associado com tais outros computadores em uma rede de área local (LAN) ou uma rede de longa distância (WAN), ou o sistema 5021 pode ser um cliente em um arranjo de cliente/servidor com outro computador, etc. Todas estas configurações, bem como os hardware e software de comunicações apropriados, são conhecidos na técnica.
[0182] A figura 16 ilustra uma rede de processamento de dados 5040 em que uma ou mais concretizações podem ser praticadas. A rede de processamento de dados 5040 pode incluir uma pluralidade de redes individuais, tal como uma rede sem fios e uma rede com fios, cada uma das quais pode incluir uma pluralidade de estações de trabalho individuais 5041, 5042, 5043, 5044. Adicionalmente, como os peritos na técnica vão perceber, uma ou mais LANs podem estar incluídas, onde a LAN pode compreender uma pluralidade de estações de trabalho inteligentes acopladas com um processador de hospedeiro.
[0183] Ainda em referência à figura 16, as redes também podem incluir computadores de mainframe ou servidores, tais como um computador de portal de entrada (servidor de cliente 5046) ou servidor de aplicativo (servidor remoto 5048 que pode acessar um repositório de dados e também pode ser acessado diretamente a partir de uma estação de trabalho 5045). Um computador de portal de entrada 5046 serve como um ponto de entrada para cada rede individual. Um portal de entrada é necessário quando se conecta um protocolo de rede com outro. O portal de entrada 5046 pode ser preferivelmente acoplado com outra rede (a Internet 5047 por exemplo) por meio de uma ligação de comunicações. O portal de entrada 5046 também pode ser acoplado diretamente com uma ou mais estações de trabalho 5041, 5042, 5043, 5044 usando uma ligação de comunicações. O computador de portal de entrada pode ser implementado usando um servidor de Sistema z de IBM eServer disponível a partir de International Business Machines Corporation.
[0184] Em referência concorrentemente à figura 15 e figura 16, código de programação de software 5031 que pode incorporar um ou mais aspectos pode ser acessado pelo processador 5026 do sistema 5020 a partir do armazenamento de longo prazo media 5027, tal como um drive de CD-ROM ou disco rígido. O código de programação de software pode ser incorporado em qualquer um de uma variedade de meios conhecidos para o uso com um sistema de processamento de dados, tal como um disquete, disco rígido, ou CD-ROM. O código pode ser distribuído em tal meio, ou pode ser distribuído para os usuários 5050, 5051 a partir da memória ou armazenamento de um sistema de computador sobre uma rede para outros sistemas de computador para o uso pelos usuários de tais outros sistemas.
[0185] Alternativamente, o código de programação pode ser incorporado na memória 5025, e acessado pelo processador 5026 usando o barramento de processador. Tal código de programação inclui um sistema operacional que controla a função e interação dos vários componentes de computador e um ou mais programas de aplicativo 5032. Código de programa normalmente é paginado a partir do meio de armazenamento 5027 para memória de alta velocidade 5025 onde está disponível para processar pelo processador 5026. As técnicas e métodos para incorporar código de programação de software na memória, no meio físico, e/ou distribuir código de software através de redes são bem conhecidos e não serão adicionalmente discutidos aqui. Código de programa, quando criado e armazenado em um meio tangível (incluindo mas não limitado aos módulos de memória eletrônica (RAM), memória de flash, Discos compactos (CDs), DVDs, Fita Magnética e semelhantes geralmente é referido como um "produto de programa de computador". O produto de programa de meio de computador tipicamente é legível por um circuito de processamento preferivelmente em um sistema de computador para a execução pelo circuito de processamento.
[0186] A cache que está mais prontamente disponível para o processador (normalmente mais rápido e menor do que outras caches do processador) é a menor cache (LI ou de nível um) e armazenamento principal (memória principal) é a cache de nível mais alto (L3 se existem 3 níveis). A cache de menor nível geralmente é dividida em uma cache de instrução (I- Cache) que retém instruções de máquina a ser executada e uma cache de dados (D-Cache) que retém operandos de dados.
[0187] Em referência à figura 17, uma concretização de processador de exemplo é representada para o processador 5026. Tipicamente um ou mais níveis de cache 5053 são empregados para armazenar temporariamente blocos de memória de maneira a aprimorar o desempenho do processador. A cache 5053 é um armazenamento temporário de alta velocidade que retém linhas de cache dos dados de memória que são prováveis de ser usados. Linhas de cache típicas são 64, 128 ou 256 bytes dos dados de memória. Caches separadas geralmente são empregadas para armazenar em cache instruções em vez de armazenar em cache os dados. Coerência de cache (sincronização de cópias de linhas na memória e as caches) geralmente é provida por vários algoritmos "para bisbilhotar" bem conhecidos na técnica. Armazenamento de memória principal 5025 de um sistema de processador geralmente é referido como a cache. Em um sistema de processador tendo 4 níveis de cache 5053, armazenamento principal 5025 algumas vezes é referido como a cache de nível 5 (L5) já que tipicamente é mais rápido e apenas retém uma porção do armazenamento não volátil (DASD, fita etc.) que está disponível para um sistema de computador. Armazenamento principal 5025 "armazena em cache" páginas de dados paginadas no e fora do armazenamento principal 5025 pelo sistema operacional.
[0188] Um contador de programa (contador de instrução) 5061 mantém registro do endereço da instrução corrente a ser executada. Um contador de programa no processador da Z/Architecture é 64 bits e pode ser truncado para 31 ou 24 bits para suportar antes de se endereçar aos limites. Um contador de programa tipicamente é incorporado em um PSW (palavra de estado de programa) de um computador tal que persiste durante comutação de contexto. Assim, um programa em progresso, tendo um valor de contador de programa, pode ser interrompido, por exemplo, pelo sistema operacional (comutação de contexto a partir do programa ambiente para o sistema operacional ambiente). O PSW do programa mantém o valor de contador de programa enquanto o programa não está ativo, e o contador de programa (no PSW) do sistema operacional é usado enquanto o sistema operacional está executando. Tipicamente, o contador de programa é incrementado por uma quantidade igual ao número de bytes da instrução corrente. As instruções de RISC (Computação Definida por Construção Reduzida) tipicamente são fixadas comprimento enquanto instruções de CISC (Computação Definida por Instrução Complexa) tipicamente são de comprimento variável. Instruções de Z/Architecture de IBM são instruções de CISC tendo um comprimento de 2, 4 ou 6 bytes. O contador de programa 5061 é modificado tanto pela operação de comutação de contexto ou uma operação tomada por ramificação de uma instrução de ramificação por exemplo. Na operação de comutação de contexto, o valor de contador de programa corrente é economizado na palavra de estado de programa junto com outra informação de estado sobre o programa sendo executado (tal como códigos de condição), e um novo valor de contador de programa é carregado apontando para uma instrução de um novo módulo de programa a ser executado. Uma operação tomada por ramificação é realizado de maneira a permitir que o programa tome decisões ou faca ciclo dentro do programa carregando o resultado da instrução de ramificação para o contador de programa 5061.
[0189] Tipicamente uma unidade de busca de instrução 5055 é empregada para buscar instruções em nome do processador 5026. A unidade de busca tanto busca "próximas instruções sequenciais", instruções alvo de instruções tomadas por ramificação, ou primeiras instruções de um programa que segue a comutação de contexto. Unidades de busca de Instrução Moderna geralmente empregam técnicas de pré-busca para buscar previamente de maneira especulativa instruções com base na propensão que as instruções pré-buscadas devem ser usadas. Por exemplo, uma unidade de busca pode buscar 16 bytes de instrução que inclui os bytes adicionais e próxima instrução sequencial de adicionais instruções sequenciais.
[0190] As instruções buscadas então são executadas pelo processador 5026. Em uma concretização, as instruções buscadas são passadas pra uma unidade de despacho 5056 da unidade de busca. A unidade de despacho decodifica as instruções e direciona informação sobre as instruções decodificadas para unidades apropriadas 5057, 5058, 5060. Uma unidade de execução 5057 tipicamente vai receber informação sobre instruções aritméticas decodificadas a partir da unidade de busca de instrução 5055 e vai realizar operações aritméticas nos operandos de acordo com o opcode da instrução. Operandos são providos para a unidade de execução 5057 preferivelmente tanto a partir da memória 5025, registradores arquitetados 5059 ou a partir de um campo imediato da instrução sendo executada. Resultados da execução, quando armazenados, são armazenados tanto na memória 5025, quanto nos registradores 5059 tanto em outro hardware de máquina (tal como registradores de controle, registradores de PSW e semelhantes).
[0191] Endereços virtuais são transformados em endereços reais usando tradução de endereço dinâmico 5062 e, opcionalmente, usando tradução de registro de acesso 5063.
[0192] Um processador 5026 tipicamente possui uma ou mais unidades 5057, 5058, 5060 para executar a função da instrução. Em referência à figura 18A, uma unidade de execução 5057 pode comunicar 5071 com registradores gerais arquitetados 5059, uma unidade de despacho/decodificação 5056, uma unidade de armazenamento de carga 5060, e outras 5065 unidades de processador por meio de lógica de interface 5071. Uma unidade de execução 5057 pode empregar vários circuitos de registro 5067, 5068, 5069 para reter informação que a unidade de lógica aritmética (ALU) 5066 vai operar ligada. A ALU realiza operações aritméticas tais como adição, subtração, multiplicação e divisão bem como função lógica tal como e, ou e exclusiva ou (XOR), girar e deslocar. Preferivelmente a ALU suporta operações especializadas que são dependentes do projeto. Outros circuitos podem prover outras instalações arquitetadas 5072 incluindo códigos de condição e recuperar lógica de suporte por exemplo. Tipicamente o resultado de uma operação de ALU é mantida em um circuito de registro de saída 5070 que pode direcionar o resultado para uma variedade de outras funções de processamento. Existem muitos arranjos de unidades de processador, a presente descrição está intencionada apenas a prover um entendimento representativo de uma concretização preferida da presente invenção.
[0193] Uma instrução de ADD por exemplo, pode ser executada em uma unidade de execução 5057 tendo funcionalidade lógica e aritmética enquanto uma instrução de ponto flutuante por exemplo, pode ser executada em uma execução de ponto flutuante tendo capacidade de ponto de flutuação especializada. Preferivelmente, uma unidade de execução opera nos operandos identificados por uma instrução realizando uma função definida por opcode nos operandos. Por exemplo, uma instrução de ADD pode ser executada por uma unidade de execução 5057 nos operandos encontrados em dois registradores 5059 identificados pelos campos de registro da instrução.
[0194] A unidade de execução 5057 realiza a adição aritmética nos dois operandos e armazena o resultado em um terceiro operando onde o terceiro operando pode ser um terceiro registro ou um dos dois registradores de fonte. A unidade de execução preferivelmente usa uma Unidade de Lógica Aritmética (ALU) 5066 que é capaz de realizar uma variedade de função lógicas tal como Deslocamento, Rotação, e, ou e XOR bem como uma variedade de funções algébricas incluindo qualquer um de adição, subtração, multiplicação, divisão. Algumas ALUs 5066 são projetadas para operações escalares e algumas para ponto flutuante. Dados podem ser Big Endian (onde o byte menos significativo está no endereço de byte mais alto) ou Little Endian (onde o byte menos significativo está no endereço de byte mais baixo) dependendo da arquitetura. A Arquitetura Z de IBM é Big Endian. Campos sinalizados podem ser sinalizados e magnitude, complemento 1 ou complemento 2 dependendo da arquitetura. Um número de complemento 2 é vantajoso pelo fato de que a ALU não precisa projetar uma capacidade de subtração já que tanto um valor negativo ou um valor positivo no complemento 2 necessita apenas de uma adição dentro de ALU. Números são comumente descritos de antemão, onde um campo de 12 bit define um endereço de um bloco de 4.096 byte e é comumente descrito como um bloco de 4 Kbyte (Kilobyte), por exemplo.
[0195] Em referência à figura 18B, informação de instrução de ramificação para executar uma instrução de ramificação tipicamente é enviada para uma unidade de ramificação 5058 que geralmente emprega um algoritmo de predição de ramificação tal como uma tabela histórica de ramificação 5082 para prever o resultado da ramificação antes de outras operações condicionais estarem completas. O alvo da instrução de ramificação corrente será buscado e especulativamente executado antes das operações condicionais serem completas. Quando as operações condicionais são completadas as instruções de ramificação especulativamente executadas são tanto completadas ou descartadas com base nas condições da operação condicional e o resultado especulado. Uma instrução de ramificação típica pode testar códigos de condição e ramificação para um endereço alvo se os códigos de condição satisfazem o requisito de ramificação da instrução de ramificação, um endereço alvo pode ser calculado com base nos vários números incluindo aqueles encontrados nos campos de registro ou um campo imediato da instrução por exemplo. A unidade de ramificação 5058 pode empregar um ALU 5074 tendo uma pluralidade de circuitos de registro de entrada 5075, 5076, 5077 e um circuito de registro de saída 5080. A unidade de ramificação 5058 pode comunicar 5081 com registradores gerais 5059, unidade de despacho de decodificação 5056 ou outros circuitos 5073, por exemplo.
[0196] A execução de um grupo de instruções pode ser interrompida por uma variedade de razões incluindo a comutação de contexto iniciada por um sistema operacional, uma exceção de programa ou erro causando a comutação de contexto, um sinal de interrupção de E/S causando a comutação de contexto ou atividade de threading múltipla de uma pluralidade de programas (em um ambiente multi-threaded), por exemplo. Preferivelmente a ação de comutação de contexto economiza informação de estado sobre um programa em execução corrente e então carrega informação de estado sobre outro programa sendo invocado. Informação de estado pode ser economizada em registradores de hardware ou na memória por exemplo. Informação de estado preferivelmente compreende um valor de contador de programa apontando para uma próxima instrução a ser executada, códigos de condição, informação de tradução de memória e conteúdo de registro arquitetado. A atividade de comutação de contexto pode ser exercitada pelos circuitos de hardware, programas de aplicativo, programas de sistema operacional ou código de firmware (microcódigo, picocódigo ou código interno licenciado (LIC)) sozinho ou em combinação.
[0197] Um processador acessa operandos de acordo com métodos definidos pela instrução. A instrução pode prover um operando imediato usando o valor de uma porção da instrução, pode prover um ou mais campos de registro explicitamente apontando tanto para registradores de propósito geral quanto para registradores de propósito especial (ponto flutuante registradores por exemplo). A instrução pode usar registradores implicados identificados por um campo de opcode como operandos. A instrução pode usar localizações de memória para os operandos. Uma localização de memória de um operando pode ser provida por um registro, um campo imediato, ou uma combinação de registradores e campo imediato como exemplificado por uma instalação de deslocamento longo de Z/Architecture em que a instrução define um registro de base, um registro de índice e um campo imediato (campo de deslocamento) que são adicionados juntos para prover o endereço do operando na memória por exemplo. A localização aqui tipicamente implica uma localização na memória principal (armazenamento principal) a menos que seja indicado de outra forma.
[0198] Em referência à figura 18C, um processador acessa o armazenamento usando uma unidade de carga/armazenamento 5060. A unidade de carga/armazenamento 5060 pode realizar uma operação de carga obtendo o endereço do operando alvo na memória 5053 e carregar o operando em um registro 5059 ou outra localização de memória 5053, ou pode realizar uma operação de armazenamento obtendo o endereço do operando alvo na memória 5053 e armazenar dados obtidos a partir de um registro 5059 ou outra localização de memória 5053 na localização de operando alvo na memória 5053. A unidade de carga/armazenamento 5060 pode ser especulativa e pode acessar a memória em uma sequência que está fora de ordem com relação à sequência de instrução, no entanto a unidade de carga/armazenamento 5060 é para manter a aparência para programas em que as instruções foram executadas na ordem. Uma unidade de carga/armazenamento 5060 pode comunicar 5084 com general registradores 5059, unidade de despacho/decodificação 5056, interface de cache/memória 5053 ou outros elementos 5083 e compreende vários circuitos de registro 5086, 5087, 5088 e 5089, ALUs 5085 e lógica de controle 5090 para calcular endereços de armazenamento e para prover sequenciamento em linha para manter as operações na ordem. Algumas operações podem estar fora de ordem mas a unidade de carga/armazenamento provê funcionalidade para fazer as operações fora de ordem aparecerem para o programa como tendo sigo realizado na ordem, como é bem conhecido na técnica.
[0199] Preferivelmente endereços que um programa de aplicativo "vê" geralmente são referidos como endereços virtuais. Endereços virtuais algumas vezes são referidos como "endereços lógicos" e "endereços eficazes". Estes endereços virtuais são virtuais pelo fato de que eles são redirecionados para localização de memória física por um de uma variedade de tecnologias de tradução de endereço dinâmico (DAT) incluindo, mas não limitado a, simplesmente prefixar um endereço virtual com um valor de deslocamento, traduzir o endereço virtual através de uma ou mais tabelas de tradução, as tabelas de tradução preferivelmente compreendendo pelo menos uma tabela de segmento e uma tabela de página sozinha ou em combinação, preferivelmente, a tabela de segmento tendo uma entrada que aponta para a tabela de página. Na Arquitetura Z, uma hierarquia de tradução é provida incluindo uma primeira tabela de região, uma segunda tabela de região, uma terceira tabela de região, uma tabela de segmento e uma tabela de página opcional. O desempenho da tradução de endereço geralmente é aprimorado usando um armazenamento temporário de lado de tradução (TLB) que compreende entradas que mapeiam um endereço virtual para uma localização de memória física associada. As entradas são criadas quando o DAT traduz um endereço virtual usando as tabelas de tradução. Subsequente ao uso do endereço virtual então pode usar a entrada de TLB rápido em vez do que os acessos de tabela de tradução sequencial lenta. O conteúdo de TLB pode ser gerenciado por uma variedade de algoritmos de substituição incluindo LRU (Menos Recentemente usado).
[0200] No caso onde o processador é um processador de um sistema de múltiplos processadores, cada processador possui responsabilidade para manter recursos divididos, tal como E/S, caches, TLBs e memória, intertravados para a coerência. Tipicamente, tecnologias de "bisbilhotar" serão usadas na manutenção de coerência de cache. Em um ambiente de bisbilhotar, cada linha de cache pode ser marcada como estando em qualquer um de um estado dividido, um estado exclusivo, um estado alterado, um estado inválido e semelhantes de maneira a facilitar a divisão.
[0201] Unidades de E/S 5054 (figura 17) proveem o processador com meios par anexação com dispositivos periféricos incluindo fita, disco, impressoras, exibidores, e redes por exemplo. Unidades de E/S geralmente são apresentadas para o programa de computador por drivers de software. Nos mainframes, tais como o sistema z a partir de IBM®, adaptadores de canal e adaptadores de sistema aberto são unidades de E/S do mainframe que proveem as comunicações entre o sistema operacional e os dispositivos periféricos.
[0202] Adicionalmente, outros tipos de ambientes de computação podem beneficiar a partir de um ou mais aspectos. Como um exemplo, um ambiente pode incluir um emulador (por exemplo, software ou outros mecanismos de emulação), em que uma arquitetura particular (incluindo, por exemplo, execução de instrução, funções arquitetadas, tais como tradução de endereço, e registradores arquitetados) ou um subconjunto das mesmas é emulado (por exemplo, em um sistema de computador nativo tendo um processador e memória). Em tal ambiente, uma ou mais funções de emulação do emulador podem implementar uma ou mais concretizações, mesmo que um computador que executa o emulador possa ter uma diferente arquitetura diferente do que as capacidades sendo emuladas. Como um exemplo, no modo de emulação, a operação ou instrução específica sendo emulada é decodificada, e uma função de emulação apropriada é embutida para implementar a operação ou instrução individual.
[0203] Em um ambiente de emulação, um computador de hospedeiro inclui, por exemplo, uma memória para armazenar instruções e data; uma unidade de busca de instrução para buscar instruções a partir da memória e opcionalmente, para prover armazenamento temporário local para a instrução buscada; uma unidade de decodificação de instrução para receber as instruções buscadas e para determinar o tipo de instruções que devem ser buscadas; e uma instrução unidade de execução para executar as instruções. A execução pode incluir dados de carregamento para um registro a partir da memória; armazenando dados de volta para a memória a partir de um registro; ou realizando algum tipo de operação lógica ou aritmética, como determinado pela unidade de decodificação. Em um exemplo, cada unidade é implementada em software. Por exemplo, as operações sendo realizadas pelas unidades são implementadas como uma ou mais subroutinas dentro de software emulador.
[0204] Mais particularmente, em um mainframe, instruções arquitetadas de máquina são usadas pelos programadores, comumente programadores "C" da atualidade, geralmente por meio de um aplicativo compilador. Estas instruções armazenadas no meio de armazenamento podem ser executadas de maneira nativa no Servidor de IBM® de Arquitetura Z, ou alternativamente nas máquinas que executam outras arquiteturas. Eles podem ser emulados nos servidores existentes e em futuro servidores de mainframe de IBM® e nas outras máquinas da IBM® (por exemplo, servidores Power Systems e Servidores de Sistema x). Eles podem ser executados em máquinas que rodam Linux em uma grande variedade de máquinas usando hardware fabricado por IBM®, Intel®, AMD, e outros. Além da execução daquele hardware sob Arquitetura Z, Linux pode ser usado bem como as máquinas que usam a emulação por Hercules, UMX, ou FSI (Fundamental Software, Inc.), onde em geral a 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.
[0205] O processador nativo tipicamente executa software de emulação compreendendo tanto firmware quanto um sistema operacional nativo para realizar emulação do processador emulado. O software de emulação é responsável por buscar e executar instruções da arquitetura de processador emulada. O software de emulação mantém um contador de programa emulado para manter registro de limites de instrução. O software de emulação pode buscar uma ou mais instruções de máquina emulada em um momento e converter as uma ou mais instruções de máquina emulada para um correspondente grupo de instruções nativas de máquina para a execução pelo processador nativo. Estas instruções convertidas podem ser armazenadas em cache tal que uma conversão mais rápida pode ser alcançada. Não obstante, o software de emulação é para manter as regras de arquitetura da arquitetura de processador emulada de forma a garantir que os sistemas de operação e aplicativos escritos para o processador emulado operem corretamente. Adicionalmente, o software de emulação é para prover recursos identificados pela arquitetura de processador emulado incluindo, mas não limitado a, registradores de controle, registradores de propósito geral, ponto flutuante registradores, função de tradução de endereço dinâmico incluindo tabelas de segmento e tabelas de página por exemplo, mecanismos de interrupção, mecanismos de comutação de contexto, relógios de Hora do Dia (TOD) e interfaces arquitetadas para subsistemas de E/S tal que um sistema operacional ou um programa de aplicativo projetado para rodar no processador emulado, podem ser rodados no processador nativo tendo o software de emulação.
[0206] Uma instrução específica sendo emulada é decodificada, e uma subroutina é chamada para realizar a função da instrução individual. Uma função de software de emulação que emula uma função de um processador emulado é implementada, por exemplo, em um driver ou subroutina "C", ou algum outro método de provisão de um driver para o hardware específico como estará dentro da perícia daqueles peritos na técnica após o entendimento da descrição da concretização preferida. Várias patentes de emulação de software e hardware incluindo, mas não limitado a Cartas Patente U.S. No. 5.551.013, intitulada "Multiprocessor for Hardware Emulation", de Beausoleil et al; e cartas Patente U.S. No. 6.009.261, intitulada "Preprocessing of Stored Target Routines to emulate Incompatible Instructions on a Target Processor", de Scalzi et al; e Cartas Patente U.S. No. 5.574.873, intitulada "Decoding Guest Instruction to Directly Access Emulation Routines emulating the Guest Instructions", de Davidian et al; e Cartas Patente U.S. No. 6.308.255, intitulada "Symmetrical Multiprocessing Bus and Chipset Used for Coprocessador Support Allowing Non-Native Code to Run in a System", de Gorishek et al; e Cartas Patente U.S. No. 6.463.582, intitulada "Dynamic Optimizing Object Code Translator for Architecture Emulation and Dynamic Optimizing Object Code Translation Method", de Lethin et al; e Cartas Patente U.S. No. 5.790.825, intitulada "Method to emulute Guest Instructions on a host computer Through Dynamic Recompilation of Host Instructions", de Eric Traut; e muitos outros, ilustram uma variedade de modos conhecidos para alcançar a emulação de um formato de instrução arquitetada para uma diferente máquina para uma máquina alvo disponível para o perito na técnica.
[0207] Na figura 19, um exemplo de um sistema de computador hospedeiro emulado 5092 é provido que emula um sistema de computador hospedeiro 5000' de uma arquitetura de hospedeiro. No sistema de computador hospedeiro emulado 5092, o processador de hospedeiro (CPU) 5091 é um processador de hospedeiro emulado (ou processador de hospedeiro virtual) e compreende um processador de emulação 5093 tendo uma diferente arquitetura de configuração de instrução nativa do que aquela do processador 5091 do computador de hospedeiro 5000'. O sistema de computador hospedeiro emulado 5092 possui memória 5094 acessível para o processador de emulação 5093. Na concretização de exemplo, a memória 5094 é particionada para uma porção de memória de computador de hospedeiro 5096 e uma porção de rotinas de emulação 5097. O hospedeiro memória de computador 5096 está disponível para programas do computador de hospedeiro emulado 5092 de acordo com arquitetura de computador de hospedeiro. O processador de emulação 5093 executa instruções nativas de um conjunto de instrução arquitetada de uma arquitetura diferente do que aquela do processador emulado 5091, as instruções nativas obtidas a partir da memória de rotinas de emulação 5097, e pode acessar uma instrução de hospedeiro para a execução a partir de um programa na memória de computador de hospedeiro 5096 empregando uma ou mais instruções obtidas em uma sequência e rotina de acesso/decodificação que pode decodificar as instruções de hospedeiro acessadas para determinar uma rotina de execução de instrução nativa para emular a função do instrução de hospedeiro acessada. Outras instalações que são definidas para a arquitetura do sistema de computador hospedeiro 5000' podem ser emuladas pelas rotinas de instalações arquitetadas, incluindo tais instalações como registradores de propósito geral, registradores de controle, tradução de endereço dinâmico e suporte de subsistema de E/S e cache de processador, por exemplo. As rotinas de emulação também pode tomar uma vantagem de funções disponíveis no processador de emulação 5093 (tal como registradores gerais e tradução dinâmica de endereços virtuais) para aprimorar o desempenho das rotinas de emulação. Hardware especial e motores de descarga também podem ser providos para ajudar o processador 5093 na emulação da função do computador de hospedeiro 5000'.
[0208] Em uma concretização adicional, um ou mais aspectos se referem à computação de nuvem. É entendido de antemão que esta descrição inclui uma descrição detalhada na computação de nuvem, implementação dos ensinamentos citados aqui não estão limitados a um ambiente de computação de nuvem. Em vez disso, concretizações da presente invenção são capazes de ser implementadas em conjunto com qualquer outro tipo de ambiente de computação conhecido agora ou desenvolvido posteriormente.
[0209] Computação de nuvem é um modelo de distribuição de serviço para habilitar acesso de rede por demanda conveniente para um agrupamento dividido de recursos de computação configuráveis (por exemplo, redes, largura de banda de rede, servidores, processamento, memória, armazenamento, aplicativos, máquinas virtuais, e serviços) que podem ser rapidamente provisionados e liberados com interação ou esforço de gerenciamento mínimo com um provedor do serviço. Este modelo de nuvem pode incluir pelo menos cinco características, pelo menos três modelos de serviço, e pelo menos quatro modelos de distribuição.
[0210] As características são como na sequência:
[0211] Autosserviço por demanda: um consumidor de nuvem pode provisionar de maneira unilateral capacidades de computação, tais como tempo de servidor e armazenamento em rede, como for necessário automaticamente sem necessitar de interação humana com o provedor de serviço.
[0212] Acesso de rede larga: capacidades estão disponíveis por uma rede e acessadas através de mecanismos padrão que promovem o uso por plataformas de cliente grossas ou finas heterogêneas (por exemplo, telefones móveis, laptops, e PDAs).
[0213] Agrupamento de recurso: os recursos de computação do provedor são agrupados para servir múltiplos consumidores usando um modelo de múltiplos inquilinos, com diferentes recursos físicos e virtuais dinamicamente designados e redesignados de acordo com a demanda. Existe um sentido de independência de locação pelo fato de que o consumidor em geral não possui controle ou conhecimento sobre a localização exata dos recursos providos mas pode ser capaz de especificar a localização em um maior nível de abstração (por exemplo, país, estado, ou central de dados).
[0214] Elasticidade rápida: capacidades podem ser rapidamente e elasticamente provisionadas, em alguns casos automaticamente, para escalonar rapidamente e rapidamente liberadas para o escalonamento rápido. Para o consumidor, as capacidades disponíveis para provisionar geralmente aparecem não limitadas e podem ser computadas em qualquer quantidade em qualquer momento.
[0215] Serviço medido: sistemas de nuvem automaticamente controlam e otimizam o uso de recurso nivelando uma capacidade de medição em algum nível de abstração apropriado para o tipo de serviço (por exemplo, armazenamento, processamento, largura de banda, e contas de usuário ativas) . O uso de recurso pode ser monitorado, controlado, e reportado provendo transparência tanto para o provedor quanto para o consumidor do serviço usado.
[0216] Modelos de serviço são como na sequência:
[0217] Software como um Serviço (SaaS): a capacidade provida para o consumidor é para o uso dos aplicativos do provedor que roda em uma infraestrutura de nuvem. Os aplicativos são acessíveis a partir de vários dispositivos de cliente através de uma interface de cliente fina tal como um navegador de rede (por exemplo, email com base em rede). O consumidor não gerencia ou controla a infraestrutura de nuvem subjacente incluindo rede, servidores, sistemas de operação, armazenamento, ou até capacidades de aplicativo individual, com a exceção possível de ajustes de configuração de aplicativo específico do usuário limitado.
[0218] Plataforma como um Serviço (PaaS): a capacidade provida para o consumidor é para distribuir para a infraestrutura de nuvem criada pelo consumidor ou aplicativos adquiridos criados usando linguagens de programação e ferramentas suportadas pelo provedor. O consumidor não gerencia ou controla a infraestrutura de nuvem subjacente incluindo redes, servidores, sistemas de operação, ou armazenamento, mas possui controle sobre os aplicativos distribuídos e possivelmente configurações de ambiente de hospedagem de aplicativo.
[0219] Infraestrutura como um Serviço (IaaS): a capacidade provida para o consumidor é para a provisão do processamento, armazenamento, redes, e outros recursos de computação fundamentais onde o consumidor é capaz de distribuir e rodar software arbitrário, que pode incluir sistemas de operação e aplicativos. O consumidor não gerencia ou controla a infraestrutura de nuvem subjacente mas possui controle sobre sistemas de operação, armazenamento, aplicativos distribuídos, e possivelmente controle limitado dos componentes de rede de seleção (por exemplo, firewalls de hospedeiro).
[0220] Modelos de Distribuição são como na sequência:
[0221] Nuvem privada: a infraestrutura de nuvem é operada somente para uma organização. Ela pode ser gerenciada pela organização ou uma terceira parte e podem existir premissas ligadas ou premissas desligadas.
[0222] Nuvem de comunidade: a infraestrutura de nuvem é dividida pelas várias organizações e suporta uma comunidade específica que possui preocupações divididas (por exemplo, missão, requisitos de segurança, política, e considerações de conformidade). Pode ser gerenciado pelas organizações ou uma terceira parte e podem existir premissas ligadas ou premissas desligadas.
[0223] Nuvem pública: a infraestrutura de nuvem é tornada disponível para o público geral ou um grupo de grande indústria e é propriedade de uma organização que vende serviços de nuvem.
[0224] Nuvem híbrida: a infraestrutura de nuvem é uma composição de duas ou mais nuvens (privada, comunitária, ou pública) que permanecem entidades únicas mas estão ligadas por tecnologia proprietária ou padronizada que permite a portabilidade de aplicativos e dados (por exemplo, explosão de nuvem para equilíbrio de carga entre as nuvens).
[0225] Um ambiente de computação de nuvem é orientado por serviço com um foco sem estado, baixo acoplamento, modularidade, e interoperabilidade semântica. No coração da computação de nuvem está uma infraestrutura compreendendo uma rede de nós interconectados.
[0226] Em referência agora à figura 20, uma esquemática de um exemplo de um nó de computação de nuvem é mostrada. Nó de computação de nuvem 6010 é apenas um exemplo de um nó de computação de nuvem adequado e não está intencionado a sugerir qualquer limitação para o escopo de uso ou funcionalidade das concretizações da invenção descritas aqui. Independentemente disto, nó de computação de nuvem 6010 é capaz de ser implementado e/ou realizar qualquer funcionalidade definida aqui acima.
[0227] No nó de computação de nuvem 6010 existe um sistema/servidor de computador 6012, que é operacional com vários outros ambientes de sistema de computação ou configurações de propósito especial ou de propósito geral. Exemplos de sistemas de computação bem conhecidos, ambientes bem conhecidos, e/ou configurações bem conhecidas que podem ser adequados para o uso com sistema/servidor de computador 6012 incluem, mas não estão limitados a, sistemas de computador pessoal, sistemas de computador de servidor, clientes finos, clientes grossos, dispositivos portáteis ou do tipo laptop, sistemas de múltiplos processadores, sistemas com base em microprocessador, set top boxes, eletrônicos programáveis pelo consumidor, PCs de rede, sistemas de minicomputador, sistemas de computador de mainframe, e ambientes de computação de nuvem distribuídos que incluem qualquer um dos sistemas ou dispositivos acima, e semelhantes.
[0228] Sistema/servidor de computador 6012 pode ser descrito no contexto geral de instruções executáveis pelo sistema de computador, tais como módulos de programa, sendo executado por um sistema de computador. Em geral, módulos de programa podem incluir rotinas, programas, objetos, componentes, lógica, estruturas de dados, e assim por diante que realizam tarefas particulares ou implementam tipos de dados abstratos particulares. Sistema/servidor de computador 6012 pode ser praticado em ambientes de computação de nuvem distribuída onde tarefas são realizadas por dispositivos de processamento remoto que são ligados através de uma rede de comunicações. Em um ambiente de computação de nuvem distribuída, módulos de programa podem estar localizados tanto no meio de armazenamento de sistema de computador local quanto remoto incluindo dispositivos de armazenamento de memória.
[0229] Como mostrado na figura 20, sistema/servidor de computador 6012 em nó de computação de nuvem 6010 é mostrado na forma de um dispositivo de computação de propósito geral. Os componentes do sistema/servidor de computador 6012 podem incluir, mas não estão limitados a, um ou mais processadores ou unidades de processamento 6016, uma memória de sistema 6028, e um barramento 6018 que acopla vários componentes de sistema incluindo memória de sistema 6028 com o processador 6016.
[0230] O barramento 6018 representa um ou mais de qualquer tipo de estruturas de barramento, incluindo um barramento de memória ou controlador de memória, um barramento periférico, uma porta de gráficos acelerados, e um processador ou barramento local usando qualquer uma de uma variedade de arquiteturas de barramento. Por meio de exemplo, e não de limitação, tais arquiteturas incluem barramento de Arquitetura Padrão da Indústria (ISA), barramento de Arquitetura de Micro Canal (MCA), barramento de ISA Aprimorado (EISA), barramento local de Associação de Padrões Eletrônicos de Vídeo (VESA), e barramento de Interconexão de Componente Periférico (PCI).
[0231] Sistema/servidor de computador 6012 tipicamente inclui uma variedade de meios legíveis por sistema de computador. Tais meios podem ser qualquer mídia disponível que é acessível pelo sistema/servidor de computador 6012, e inclui tanto meio volátil quanto não volátil, meio removível e não removível.
[0232] Memória de sistema 6028 pode incluir meios legíveis por sistema de computador na forma de memória volátil, tal como memória de acesso aleatório (RAM) 6030 e/ou memória de cache 6032. Sistema/servidor de computador 6012 pode incluir adicionalmente outros meios de armazenamento de sistema de computador voláteis ou não voláteis, removíveis ou não removíveis. Por meio de exemplo apenas, sistema de armazenamento 6034 pode ser provido para ler a partir de e escrever para um meio magnético não volátil não removível (não mostrado e tipicamente chamado de um "disco rígido").Apesar de não ser mostrado, um drive de disco magnético para ler a partir de e escrever para um disco magnético não volátil removível (por exemplo, um "disco de floppy"), e um drive de disco óptico para ler a partir de ou escrever para um disco óptico não volátil removível tal como um CD-ROM, DVD-ROM ou outra mídia óptica pode ser provida. Em tais casos, cada um pode ser conectado com um barramento 6018 por uma ou mais interfaces de mídia de dados. Como será adicionalmente descrito e representado abaixo, a memória 6028 pode incluir pelo menos um produto de programa tendo um conjunto (por exemplo, pelo menos um) de módulos de programa que são configurados para realizar as funções das concretizações da invenção.
[0233] Programa/utilidade 6040, tendo um conjunto (pelo menos um) de módulos de programa 6042, pode ser armazenado na memória 6028 por meio de exemplo, e não limitação, bem como um sistema operacional, um ou mais programas de aplicativo, outros módulos de programa, e dados de programa. Cada um do sistema operacional, um ou mais programas de aplicativo, outros módulos de programa, e dados de programa ou alguma combinação dos mesmos, podem incluir uma implementação de ambiente de rede. Módulos de programa 6042 em geral realizam as funções e/ou metodologias das concretizações da invenção como descrito aqui.
[0234] Sistema/servidor de computador 6012 também pode ser comunicar com um ou mais dispositivos externos 6014 tal como um teclado, um dispositivo de apontamento, um exibidor 6024, etc.; um ou mais dispositivos que permitem que um usuário interaja com o sistema/servidor de computador 6012; e/ou quaisquer dispositivos (por exemplo, cartão de rede, modem, etc.) que permitem que o sistema/servidor de computador 6012 se comunique com um ou mais outros dispositivos de computação. Tal comunicação pode ocorrer através de interfaces de Entrada/saída (E/S) 6022. Ainda, o sistema/servidor de computador 6012 pode se comunicar com uma ou mais redes tal como uma rede de área local (LAN), uma rede de banda larga geral (WAN), e/ou uma rede pública (por exemplo, a Internet) através do adaptador de rede 6020. Como representado, adaptador de rede 6020 se comunica com os outros componentes do sistema/servidor de computador 6012 através do barramento 6018. Deve ser entendido que apesar de não ser mostrado, outros componentes de hardware e/ou software podem ser usados em conjunto com sistema/servidor de computador 6012. Exemplos, incluem, mas não estão limitados a: microcódigo, drivers de dispositivo, unidades de processamento redundantes, arranjos de drive de disco externo, sistemas de RAID, drives de fita, e sistemas de armazenamento de arquivos de dados, etc.
[0235] Em referência agora à figura 21, o ambiente de computação de nuvem ilustrativo 6050 é representado. Como mostrado, ambiente de computação de nuvem 6050 compreende um ou mais nós de computação de nuvem 6010 com os quais dispositivos de computação local usados pelos consumidores de nuvem, tais como, por exemplo, assistente digital pessoal (PDA) ou telefone celular 6054A, computador do tipo desktop 6054B, computador do tipo laptop 6054C, e/ou sistema de computador de automóvel 6054N podem se comunicar. Nós 6010 podem se comunicar entre si. Eles podem ser agrupados (não mostrado) fisicamente ou virtualmente, em uma ou mais redes, tais como nuvens Privadas, Comunitárias, Públicas, ou Híbridas como descrito aqui acima, ou uma combinação das mesmas. Isto permite que o ambiente de computação de nuvem 6050 ofereça infraestrutura, plataformas e/ou software como serviços para os quais um consumidor de nuvem não precisa manter recursos em um dispositivo de computação local. É entendido que os tipos de dispositivos de computação 6054A-N mostrados na figura 21 estão intencionados a ser ilustrativos apenas e que nós de computação 6010 e ambiente de computação de nuvem 6050 podem se comunicar com qualquer tipo de dispositivo computadorizado por qualquer tipo de rede e/ou conexão endereçável por rede (por exemplo, usando um navegador de rede).
[0236] Em referência agora à figura 22, um conjunto de camadas de abstração funcional providas pelo ambiente de computação de nuvem 6050 (figura 21) é mostrado. Deve ser entendido de antemão que os componentes, camadas, e funções mostradas na figura 22 estão intencionados de ser ilustrativos apenas e concretizações da invenção não são limitados aos mesmos. Como representado, as seguintes camadas e correspondentes funções são providas:
[0237] Camada de hardware e software 6060 inclui componentes de hardware e software. Exemplos de componentes de hardware incluem mainframes, em um exemplo sistemas de zSeries® da IBM®; arquitetura de RISC (Computador de Conjunto de Instrução Reduzida) com base nos servidores, em um exemplo de sistemas pSeries® de IBM; sistemas xSeries® de IBM; sistemas BladeCenter® de IBM; dispositivos de armazenamento; redes e componentes de rede. Exemplos de componentes de software incluem software de servidor de aplicativo de rede, em um exemplo de software de servidor de aplicativo de WebSphere® de IBM; e software de base de dados, em um exemplo software de base de dados DB2® de IBM. IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere, e DB2, z/OS, z/VM, Arquitetura Z, e Recurso de Processador/Gerenciador de Sistemas são marcas registradas de International Business Machines Corporation registradas em várias jurisdições por todo o mundo. Outros nomes usados aqui podem ser marcas registradas, marcas comerciais ou nomes de produtos de International Business Machines Corporation ou outras empresas.
[0238] A camada de virtualização 6062 provê uma camada de abstração a partir da qual os seguintes exemplos de entidades virtuais podem ser providos: servidores virtuais; armazenamento virtual; redes virtuais, incluindo redes privadas virtuais; aplicativos virtuais e sistemas de operação; e clientes virtuais.
[0239] Em um exemplo, camada de gerenciamento 6064 pode prover as funções descritas abaixo. Provisionamento de recurso provê busca dinâmica de recursos de computação e outros recursos que são usados para realizar tarefas dentro do ambiente de computação de nuvem. Medição e política de preços proveem acompanhamento de custo como recursos são usados dentro do ambiente de computação de nuvem, e faturamento ou cobrança para o consumo destes recursos. Em um exemplo, estes recursos pode compreender licenças de software de aplicativo. Segurança provê verificação de identidade para consumidores de nuvem e tarefas, bem como proteção para dados e outros recursos. Portal de usuário provê acesso para o ambiente de computação de nuvem para consumidores e administradores de sistema. Gerenciamento de nível de serviço provê gerenciamento e alocação de recurso de computação de nuvem tal que níveis de serviço necessários são satisfeitos. Realização e Planejamento de Acordo de Nível de Serviço (SLA) proveem pré-arranjo para, e busca de, recursos de computação de nuvem para os quais um requisito futuro é antecipado de acordo com um SLA.
[0240] Camada de cargas de trabalho 6066 provê exemplos de funcionalidade para os quais o ambiente de computação de nuvem pode ser usado. Exemplos de cargas de trabalho e funções que podem ser providas para esta camada incluem: mapeamento e navegação; desenvolvimento de software e gerenciamento de ciclo de vida; método pedagógico de sala virtual; processamento analítico de dados; e processamento de transação.
[0241] A terminologia usada aqui é para o propósito de descrever concretizações particulares apenas e não está intencionada a ser limitante. Como usado aqui, as formas singulares "um", "uma", "a" e "o" também estão intencionadas a incluir as formas plurais, a menos que o contexto indique claramente de outra forma. Será entendido adicionalmente que os termos "compreende" e/ou "compreendendo", quando usados nesta especificação, especificam a presença de funcionalidades, integrantes, etapas, operações, elementos, e/ou componentes declarados, mas não impedem a presença ou a adição de uma ou mais outras funcionalidades, integrantes, etapas, operações, elementos, componentes e/ou grupos dos mesmos.
[0242] As correspondentes estruturas, materiais, atos, e equivalentes de todos os meios ou etapa mais elementos de função nas reivindicações abaixo, se existe algum, estão intencionados a incluir qualquer estrutura, material, ou ato para realizar a função em combinação com outros elementos reivindicados como reivindicado especificamente. A descrição de uma ou mais concretizações foi apresentada para os propósitos de ilustração e descrição, mas não está intencionada a ser exaustiva ou limitada na forma divulgada. Muitas modificações e variações serão aparentes para os peritos na técnica na técnica. A concretização foi escolhida e descrita de maneira a explicar melhor vários aspectos e a aplicação prática, e para permitir que outros peritos na técnica entendam várias concretizações com várias modificações como são adequadas para o uso particular contemplado.

Claims (12)

1. Método para reconfigurar um ambiente de computação, caracterizado pelo fato de que compreende: determinar, por um processador, que um indicador de instalação da unidade é definido como um valor predeterminado, o valor predeterminado que indica a instalação de uma unidade do modo de arquitetura de configuração em um ambiente de computação configurado para uma pluralidade de modos de arquitetura e com uma sequência de inicialização definida que é ligar o ambiente de computação em um modo de arquitetura da pluralidade de modos de arquitetura, o único modo de arquitetura compreendendo uma primeira arquitetura de conjunto de instruções e tendo um primeiro conjunto de recursos suportados; com base na determinação de que o indicador de instalação da unidade seja definido com o valor predeterminado, reconfigurar, pelo processador, o ambiente de computação para restringir o uso de um modo de arquitetura, de modo que aspectos do modo de uma arquitetura não sejam mais suportados, a capacidade de usá-los aspectos do único modo de arquitetura são removidos do ambiente de computação e o ambiente de computação é impedido de ser reconfigurado de volta para o modo de arquitetura não suportado, em que a reconfiguração é responsiva à determinação de que o indicador de instalação da unidade seja definido com o valor predeterminado e não em resposta a uma solicitação explícita para reconfigurar e em que a reconfiguração compreende: selecionar uma sequência de inicialização diferente para ligar o ambiente de computação em outro modo de arquitetura da pluralidade de modos de arquitetura, em que o outro modo de arquitetura é diferente do modo de uma arquitetura e o outro modo de arquitetura compreende uma segunda arquitetura de conjunto de instruções e ter um segundo conjunto de recursos suportados; e executar a sequência de inicialização diferente para ligar o ambiente de computação no outro modo de arquitetura no lugar de um modo de arquitetura que restringe o uso de um modo de arquitetura, em que a execução da sequência de inicialização diferente compreende a criação de uma nova palavra de status do programa para controlar operações do ambiente de computação no outro modo de arquitetura, a criação da nova palavra de status do programa compreendendo formar a nova palavra de status do programa para ter um formato indicado pelo outro modo de arquitetura, o formato compreendendo a expansão de um campo de endereço de um primeiro tamanho para um segundo tamanho e invertendo, durante a formação da nova palavra de status do programa, um indicador do modo de arquitetura na nova palavra de status do programa para indicar o outro modo de arquitetura.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o indicador de instalação da unidade é definido incondicionalmente ou sob controle de um indicador de configuração.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a reconfiguração compreende ainda desabilitar no ambiente de computação uma ou mais operações para suportar o um modo de arquitetura, as uma ou mais operações compreendendo uma operação de comutação para alternar do outro modo de arquitetura para o um modo de arquitetura, em que um retorno ao modo de uma arquitetura está desativado.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a desativação compreende a alteração do processamento de uma instrução do processador de sinal para fornecer um erro com base em uma solicitação para retornar ao modo de arquitetura.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que o método compreende ainda executar uma redefinição de pelo menos um processador do ambiente de computação, em que a realização da redefinição compreende: redefinir o ambiente de computação no outro modo de arquitetura, a redefinição compreendendo definir um modo de arquitetura do ambiente de computação para outro modo de arquitetura; e inverter um indicador do modo de arquitetura em uma palavra de status do programa para indicar o outro modo de arquitetura, a palavra de status do programa usada para controlar operações do ambiente de computação.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que a reconfiguração compreende a alteração do processamento de uma operação do processador de sinal, em que uma operação do processador de sinal para definir um modo de arquitetura do ambiente de computação para o modo de arquitetura em que está atualmente resulta em status de armazenamento indicando que o ambiente de computação está atualmente no modo de arquitetura, sendo esse status tratado como aceitável por um emissor da operação do processador de sinal.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o modo de arquitetura é um modo legado e o outro modo de arquitetura é um modo aprimorado, e em que o primeiro conjunto de recursos suportados compreende o endereçamento de 31 bits e o uso de registros de propósito geral de 32 bits, e o segundo conjunto de recursos suportados inclui endereçamento de 64 bits e uso de registros de propósito geral de 64 bits.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que o ambiente de computação é um ambiente de convidado virtual com um processador host, uma primeira máquina virtual de convidado em um primeiro nível de virtualização e uma segunda máquina virtual de convidado em um segundo nível de virtualização, e em que a reconfiguração é realizada para o processador host e a primeira máquina virtual convidada, mas não para a segunda máquina virtual convidada, sendo a segunda máquina virtual convidada iniciada e processada no único modo de arquitetura.
9. Sistema de computador para reconfigurar um ambiente de computação, o referido sistema de computador caracterizado pelo fato de que compreende: uma memória; e um processador em comunicação com a memória, em que o sistema de computador está configurado para executar um método, o referido método compreendendo: determinar, por um processador, que um indicador de instalação da unidade é definido como um valor predeterminado, o valor predeterminado que indica a instalação de uma unidade do modo de arquitetura de configuração em um ambiente de computação configurado para uma pluralidade de modos de arquitetura e com uma sequência de inicialização definida que é ligar o ambiente de computação em um modo de arquitetura da pluralidade de modos de arquitetura, o único modo de arquitetura compreendendo uma primeira arquitetura de conjunto de instruções e tendo um primeiro conjunto de recursos suportados; com base na determinação de que o indicador de instalação da unidade seja definido com o valor predeterminado, reconfigurar, pelo processador, o ambiente de computação para restringir o uso de um modo de arquitetura, de modo que aspectos do modo de uma arquitetura não sejam mais suportados, a capacidade de usá-los aspectos do único modo de arquitetura são removidos do ambiente de computação e o ambiente de computação é impedido de ser reconfigurado de volta para o modo de arquitetura não suportado, em que a reconfiguração é responsiva à determinação de que o indicador de instalação da unidade seja definido com o valor predeterminado e não em resposta a uma solicitação explícita para reconfigurar e em que a reconfiguração compreende: selecionar uma sequência de inicialização diferente para ligar o ambiente de computação em outro modo de arquitetura da pluralidade de modos de arquitetura, em que o outro modo de arquitetura é diferente do modo de uma arquitetura e o outro modo de arquitetura compreende uma segunda arquitetura de conjunto de instruções e ter um segundo conjunto de recursos suportados; e executar a sequência de inicialização diferente para ligar o ambiente de computação no outro modo de arquitetura no lugar de um modo de arquitetura que restringe o uso de um modo de arquitetura, em que a execução da sequência de inicialização diferente compreende a criação de uma nova palavra de status do programa para controlar operações do ambiente de computação no outro modo de arquitetura, a criação da nova palavra de status do programa compreendendo formar a nova palavra de status do programa para ter um formato indicado pelo outro modo de arquitetura, o formato compreendendo a expansão de um campo de endereço de um primeiro tamanho para um segundo tamanho e invertendo, durante a formação da nova palavra de status do programa, um indicador do modo de arquitetura na nova palavra de status do programa para indicar o outro modo de arquitetura.
10. Sistema de computador, de acordo com a reivindicação 9, caracterizado pelo fato de que a reconfiguração compreende ainda desabilitar no ambiente de computação uma ou mais operações para suportar o modo de arquitetura, as uma ou mais operações compreendendo uma operação de comutação para alternar do outro modo de arquitetura para o modo de arquitetura único, em que um retorno ao modo de arquitetura único está desativado.
11. Sistema de computador, de acordo com a reivindicação 9, caracterizado pelo fato de que a desativação compreende a alteração do processamento de uma instrução do processador de sinal para fornecer um erro com base em uma solicitação para retornar ao modo de arquitetura único.
12. Sistema de computador, de acordo com qualquer uma das reivindicações 9 a 11, caracterizado pelo fato de que a reconfiguração compreende alterar o processamento de uma operação do processador de sinal, em que uma operação do processador de sinal para definir um modo de arquitetura do ambiente de computação para o modo de arquitetura em que está atualmente resulta em armazenamento de status indicando que o ambiente de computação está atualmente no modo de arquitetura, sendo tratado como aceitável por um emissor da operação do processador de sinal.
BR112016021602-4A 2014-03-18 2015-03-09 Configuração de modo de arquitetura em um sistema de computador BR112016021602B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/217,840 US9582295B2 (en) 2014-03-18 2014-03-18 Architectural mode configuration
US14/217,840 2014-03-18
US14/554,806 2014-11-26
US14/554,806 US9594576B2 (en) 2014-03-18 2014-11-26 Architectural mode configuration
PCT/EP2015/054850 WO2015139992A1 (en) 2014-03-18 2015-03-09 Architectural mode configuration in a computing system

Publications (2)

Publication Number Publication Date
BR112016021602A2 BR112016021602A2 (pt) 2017-08-15
BR112016021602B1 true BR112016021602B1 (pt) 2022-10-11

Family

ID=54142196

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016021602-4A BR112016021602B1 (pt) 2014-03-18 2015-03-09 Configuração de modo de arquitetura em um sistema de computador

Country Status (22)

Country Link
US (6) US9582295B2 (pt)
EP (1) EP3114561B1 (pt)
JP (1) JP6585612B2 (pt)
KR (1) KR101884544B1 (pt)
CN (1) CN106133683B (pt)
AU (1) AU2015230885B2 (pt)
BR (1) BR112016021602B1 (pt)
CA (1) CA2940911C (pt)
DK (1) DK3114561T3 (pt)
ES (1) ES2717525T3 (pt)
HU (1) HUE043750T2 (pt)
IL (1) IL247856B (pt)
LT (1) LT3114561T (pt)
MX (1) MX2016011921A (pt)
PL (1) PL3114561T3 (pt)
PT (1) PT3114561T (pt)
RU (1) RU2664413C2 (pt)
SG (1) SG11201606095SA (pt)
SI (1) SI3114561T1 (pt)
TW (1) TWI608363B (pt)
WO (1) WO2015139992A1 (pt)
ZA (1) ZA201605470B (pt)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9853863B1 (en) 2014-10-08 2017-12-26 Servicenow, Inc. Collision detection using state management of configuration items
WO2016151398A1 (en) * 2015-03-23 2016-09-29 Societal Innovations Ipco Limited System and method for configuring a platform instance at runtime
US10642706B2 (en) * 2016-07-20 2020-05-05 International Business Machines Corporation Detection and recovery of lost host enabled facilities
US10514932B2 (en) * 2016-09-26 2019-12-24 Amazon Technologies, Inc. Resource configuration based on dynamic group membership
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10282327B2 (en) 2017-01-19 2019-05-07 International Business Machines Corporation Test pending external interruption instruction
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US11126474B1 (en) * 2017-06-14 2021-09-21 Amazon Technologies, Inc. Reducing resource lock time for a virtual processing unit
US10740067B2 (en) 2017-06-23 2020-08-11 International Business Machines Corporation Selective updating of floating point controls
US10514913B2 (en) 2017-06-23 2019-12-24 International Business Machines Corporation Compiler controls for program regions
US10684852B2 (en) 2017-06-23 2020-06-16 International Business Machines Corporation Employing prefixes to control floating point operations
US10725739B2 (en) 2017-06-23 2020-07-28 International Business Machines Corporation Compiler controls for program language constructs
US10481908B2 (en) 2017-06-23 2019-11-19 International Business Machines Corporation Predicted null updated
US10379851B2 (en) 2017-06-23 2019-08-13 International Business Machines Corporation Fine-grained management of exception enablement of floating point controls
US10908998B2 (en) 2017-08-08 2021-02-02 Toshiba Memory Corporation Managing function level reset in an IO virtualization-enabled storage device
US10592281B1 (en) 2017-09-28 2020-03-17 Amazon Technologies, Inc. Wait optimizer for recording an order of first entry into a wait mode by a virtual central processing unit
CN108900086B (zh) * 2018-08-01 2020-01-17 环鸿电子(昆山)有限公司 可程序隔离式电源电路结构及系统
US11086715B2 (en) * 2019-01-18 2021-08-10 Arm Limited Touch instruction
US11574060B2 (en) * 2019-04-24 2023-02-07 International Business Machines Corporation Secure initial program load
TWI719720B (zh) * 2019-11-18 2021-02-21 瑞昱半導體股份有限公司 資料寫入系統與方法
CN112860174A (zh) * 2019-11-27 2021-05-28 瑞昱半导体股份有限公司 数据写入系统与方法
CN214851908U (zh) * 2021-06-16 2021-11-23 深圳市不插电光电科技有限公司 一种能够独立集成化控制的机顶盒彩灯条
TWI829173B (zh) * 2021-08-30 2024-01-11 美商萬國商業機器公司 虛擬機器執行期間無法存取之前綴頁面

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59123943A (ja) 1982-12-29 1984-07-17 Fujitsu Ltd Vmアシスト制御方式
JPS60254358A (ja) * 1984-05-31 1985-12-16 Toshiba Corp マルチア−キテクチヤマイクロプロセツサシステム
JPH02135528A (ja) 1988-11-16 1990-05-24 Oki Electric Ind Co Ltd マルチosにおける起動os選択方法
US5212777A (en) 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
WO1994027215A1 (en) 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding guest instructions for a host computer
JPH06332803A (ja) 1993-05-25 1994-12-02 Hitachi Ltd 仮想計算機システムにおけるtlb制御方法
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
US5638525A (en) 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
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
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
US6199202B1 (en) 1998-01-06 2001-03-06 Hewlett-Packard Company Method and apparatus for the inter-operation of differing architectural and run time conventions
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
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
US6772325B1 (en) 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6496971B1 (en) * 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US7058791B1 (en) 2000-08-09 2006-06-06 Advanced Micro Devices, Inc. Establishing a mode indication responsive to two or more indications
US7406682B2 (en) 2001-03-26 2008-07-29 Emc Corporation Translator-compiler for converting legacy management software
US7496498B2 (en) 2003-03-24 2009-02-24 Microsoft Corporation Front-end architecture for a multi-lingual text-to-speech system
US7496915B2 (en) 2003-04-24 2009-02-24 International Business Machines Corporation Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes
US7552426B2 (en) 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
US7234037B2 (en) 2003-11-25 2007-06-19 International Business Machines Corporation Memory mapped Input/Output operations
US8024730B2 (en) * 2004-03-31 2011-09-20 Intel Corporation Switching between protected mode environments utilizing virtual machine functionality
US7562209B2 (en) 2004-04-07 2009-07-14 Marvell International, Ltd. Supporting different instruction set architectures during run time
US7339837B2 (en) * 2004-05-18 2008-03-04 Infineon Technologies Ag Configurable embedded processor
US7260702B2 (en) 2004-06-30 2007-08-21 Microsoft Corporation Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor
US7308571B2 (en) 2004-10-06 2007-12-11 Intel Corporation Overriding processor configuration settings
US7647589B1 (en) 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US7562349B2 (en) 2005-04-25 2009-07-14 Sap Ag Version adaptation interface for integration of different virtual machines
US7496495B2 (en) 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
KR100663864B1 (ko) * 2005-06-16 2007-01-03 엘지전자 주식회사 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
JP2007007074A (ja) 2005-06-29 2007-01-18 Nagaoka Univ Of Technology 温熱治療装置
US7523291B2 (en) 2005-07-26 2009-04-21 International Business Machines Corporation System and method for testing for memory address aliasing errors
RU2294010C1 (ru) 2005-09-05 2007-02-20 Павел Михайлович Шестаков Способ обработки цифровых данных
US7409537B2 (en) 2005-10-06 2008-08-05 Microsoft Corporation Fast booting an operating system from an off state
JP2007207074A (ja) 2006-02-03 2007-08-16 Ricoh Co Ltd オペレーションシステム、スレッド制御機構、及び情報処理装置
EP2087424A4 (en) 2006-04-26 2009-12-23 Tata Consultancy Services SYSTEM AND METHOD FOR AUTOMATED RE-ARCHITECTURE OF FORMER SYSTEMS MODELS USING OBJECT-ORIENTED LANGUAGE
US8001549B2 (en) 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
CN100470476C (zh) * 2006-05-25 2009-03-18 杭州晟元芯片技术有限公司 一种芯片上电后的程序引导方法
US20080093277A1 (en) 2006-06-13 2008-04-24 John Armour Cadence detection in a sequence of video fields
US8028290B2 (en) 2006-08-30 2011-09-27 International Business Machines Corporation Multiple-core processor supporting multiple instruction set architectures
US8479264B2 (en) 2006-09-29 2013-07-02 Micron Technology, Inc. Architecture for virtual security module
KR101120956B1 (ko) 2006-12-31 2012-03-05 쌘디스크 코포레이션 휴대용 멀티-플랫폼 부팅시스템과 아키텍쳐
US7783867B2 (en) * 2007-02-01 2010-08-24 International Business Machines Corporation Controlling instruction execution in a processing environment
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US7734900B2 (en) 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US7739434B2 (en) 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US8321861B2 (en) 2008-02-20 2012-11-27 Arm Limited Non-native program execution across multiple execution environments
US8086811B2 (en) 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
US8176279B2 (en) 2008-02-25 2012-05-08 International Business Machines Corporation Managing use of storage by multiple pageable guests of a computing environment
US8095773B2 (en) 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8301865B2 (en) 2009-06-29 2012-10-30 Oracle America, Inc. System and method to manage address translation requests
US20110179254A1 (en) 2010-01-15 2011-07-21 Sun Microsystems, Inc. Limiting speculative instruction fetching in a processor
GB2478726B (en) 2010-03-15 2013-12-25 Advanced Risc Mach Ltd Mapping between registers used by multiple instruction sets
US9851969B2 (en) 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
US10521231B2 (en) 2010-06-24 2019-12-31 International Business Machines Corporation Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US8479172B2 (en) 2010-11-23 2013-07-02 International Business Machines Corporation Virtual machine testing
US8924695B2 (en) * 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9645822B2 (en) * 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
DE102011017596A1 (de) 2011-04-27 2012-10-31 Robert Bosch Gmbh Mikrofluidisches System und Verfahren für eine Polymerase Kettenreaktion
US9063747B2 (en) 2011-04-28 2015-06-23 Freescale Semiconductor, Inc. Microprocessor systems and methods for a combined register file and checkpoint repair register
TW201248499A (en) 2011-05-18 2012-12-01 Asustek Comp Inc Method of swapping between operating systems applied to computer system
KR101780052B1 (ko) 2011-08-24 2017-09-19 한국전자통신연구원 정보처리 시스템에서 운영체제 전환방법
CN102955713B (zh) * 2011-08-31 2015-11-25 北京中电华大电子设计有限责任公司 一种802.11n无线网卡芯片仿真固件优化的处理方法
US20140351563A1 (en) 2011-12-16 2014-11-27 Hyperion Core Inc. Advanced processor architecture
US8930950B2 (en) 2012-01-19 2015-01-06 International Business Machines Corporation Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors
US9251027B2 (en) 2012-03-05 2016-02-02 Dell Productes L.P. Information handling system performance optimization system
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
WO2014036451A2 (en) 2012-08-30 2014-03-06 University of Virginia Patent Foundation d/b/a University of Virginia Licensing & Ventures Group Ultra low power sensing platform with multimodal radios
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
JP6075013B2 (ja) 2012-10-31 2017-02-08 富士通株式会社 ログ取得プログラム、ログ取得装置及びログ取得方法
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9921848B2 (en) 2014-03-27 2018-03-20 International Business Machines Corporation Address expansion and contraction in a multithreading computer system
US9594660B2 (en) 2014-03-27 2017-03-14 International Business Machines Corporation Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores

Also Published As

Publication number Publication date
US9582295B2 (en) 2017-02-28
IL247856A0 (en) 2016-11-30
CA2940911A1 (en) 2015-09-24
EP3114561B1 (en) 2019-02-27
IL247856B (en) 2019-07-31
LT3114561T (lt) 2019-04-10
BR112016021602A2 (pt) 2017-08-15
US10545772B2 (en) 2020-01-28
CN106133683A (zh) 2016-11-16
AU2015230885A1 (en) 2016-08-04
RU2664413C2 (ru) 2018-08-17
TW201602806A (zh) 2016-01-16
SG11201606095SA (en) 2016-08-30
US20190339995A1 (en) 2019-11-07
HUE043750T2 (hu) 2019-09-30
US11023256B2 (en) 2021-06-01
US10552175B2 (en) 2020-02-04
TWI608363B (zh) 2017-12-11
PL3114561T3 (pl) 2019-06-28
SI3114561T1 (sl) 2019-05-31
AU2015230885B2 (en) 2018-02-01
KR20160133546A (ko) 2016-11-22
JP2017513114A (ja) 2017-05-25
US9594576B2 (en) 2017-03-14
US11029974B2 (en) 2021-06-08
US20190339994A1 (en) 2019-11-07
ES2717525T3 (es) 2019-06-21
CN106133683B (zh) 2019-06-04
PT3114561T (pt) 2019-04-22
RU2016127224A (ru) 2018-04-18
US20170124023A1 (en) 2017-05-04
DK3114561T3 (en) 2019-04-15
MX2016011921A (es) 2016-12-09
KR101884544B1 (ko) 2018-08-01
US20150269117A1 (en) 2015-09-24
CA2940911C (en) 2022-11-29
ZA201605470B (en) 2017-09-27
WO2015139992A1 (en) 2015-09-24
EP3114561A1 (en) 2017-01-11
US20150268972A1 (en) 2015-09-24
JP6585612B2 (ja) 2019-10-02
US20170185430A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
US11023256B2 (en) Architectural mode configuration
ES2746479T3 (es) Secuencia de arranque común para el programa utilitario de control capaz de ser inicializado en múltiples arquitecturas
ES2878147T3 (es) Gestión de un procesamiento asociado con utilidades arquitectónicas seleccionadas

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B350 Update of information on the portal [chapter 15.35 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 09/03/2015, OBSERVADAS AS CONDICOES LEGAIS