BR112016021599B1 - Sequência de inicialização comum para utilitário de controle capaz de ser inicializada em arquiteturas múltiplas - Google Patents

Sequência de inicialização comum para utilitário de controle capaz de ser inicializada em arquiteturas múltiplas Download PDF

Info

Publication number
BR112016021599B1
BR112016021599B1 BR112016021599-0A BR112016021599A BR112016021599B1 BR 112016021599 B1 BR112016021599 B1 BR 112016021599B1 BR 112016021599 A BR112016021599 A BR 112016021599A BR 112016021599 B1 BR112016021599 B1 BR 112016021599B1
Authority
BR
Brazil
Prior art keywords
architecture
mode
architecture mode
processor
switch
Prior art date
Application number
BR112016021599-0A
Other languages
English (en)
Other versions
BR112016021599A2 (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 BR112016021599A2 publication Critical patent/BR112016021599A2/pt
Publication of BR112016021599B1 publication Critical patent/BR112016021599B1/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
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

SEQUÊNCIA DE INICIALIZAÇÃO COMUM PARA UTILITÁRIO DE CONTROLE CAPAZ DE SER INICIALIZADA EM ARQUITETURAS MÚLTIPLA. Uma instalação de sequência de inicialização comum é fornecida que permite que um utilitário de controle (por exemplo, sistema operacional, programa de controle, ou outra ferramenta autônoma, como exemplos) seja inicializado em uma pluralidade de configurações sem alterar a sequência de inicialização. Um sistema operacional ou outro utilitário de controle utiliza a sequência de inicialização comum para ser capaz de ser iniciado em qualquer uma primeira configuração de arquitetura que inicializa em uma arquitetura, por exemplo, ESA / 390 e, em seguida, muda para, por exemplo, uma outra arquitetura, por exemplo, arquitetura /z, para processamento; ou em uma segunda configuração de arquitetura que inicializa e processa na outra arquitetura, por exemplo, arquitetura /z.

Description

Campo Técnico
[0001] Um ou mais aspectos referem-se, em geral, a configurações de ambientes computacionais e, em particular, ao suporte de várias configurações.
Antecedentes da Invenção
[0002] Ambientes computacionais oferecem uma gama de capacidades e funções dependendo das configurações de arquitetura dos ambientes. Duas arquiteturas oferecidas pela IBM® incluem ESA/390 e z/Architecture®. ESA/390 é uma arquitetura prévia à z/Architecture. No entanto, quando a z/Architecture foi apresentada, ESA/390 continuou a ser suportada. Para suportar ambas as arquiteturas em um ambiente, determinados procedimentos foram seguidos. Por exemplo, no acionamento, ESA/390 é inicializado e, em seguida, uma troca pode ser feita para a z/Architecture, se desejado. Isso permitiu que o software herdado continuasse a ser executado sem alteração. Outros procedimentos são providos a fim de suportar ambas as configurações de arquitetura em um ambiente.
[0003] Manter uma arquitetura prévia mesmo quando o software tiver sido transferido para uma arquitetura posterior adiciona complexidade.
[0004] Portanto, existe a necessidade na técnica de tratar o problema acima mencionado.
Sumário
[0005] Sob a perspectiva de um primeiro aspecto, a presente invenção provê um método de inicialização de um utilitário de controle em um ambiente computacional, o método compreendendo: executar, por um processador, uma sequência de inicialização para inicializar o utilitário de controle em um modo selecionado de arquitetura que é baseado em uma arquitetura selecionada, o utilitário de controle gravado para a arquitetura selecionada e configurado para ser inicializado em pelo menos uma de uma primeira configuração de arquitetura que inicializa em uma arquitetura e troca para a arquitetura selecionada para processamento, ou em uma segunda configuração de arquitetura que inicializa e é processada na arquitetura selecionada, e em que a execução da sequência de inicialização compreende: executar uma ou mais instruções independentemente se o processador deve executar a inicialização com base na primeira configuração de arquitetura ou na segunda configuração de arquitetura, a uma ou mais instruções comuns àquela uma arquitetura e à arquitetura selecionada, em que a uma ou mais instruções são definidas na uma arquitetura e na arquitetura selecionada, e a execução compreendendo executar uma operação de troca para requisitar uma troca de modos de arquitetura para o processador independentemente se o processador deve executar a inicialização na uma arquitetura ou na arquitetura selecionada, em que a operação de troca é executada de forma diferente com base em cuja arquitetura, a uma arquitetura ou a arquitetura selecionada, o processador deve executar a inicialização, e com base na execução da operação de troca, o utilitário de controle é inicializado no modo de arquitetura selecionado.
[0006] Sob a perspectiva de um aspecto adicional, a presente invenção provê um sistema de computador para inicialização de um utilitário de controle em um ambiente computacional, o dito sistema de computador compreendendo: uma memória; e um processador em comunicação com a memória, em que o sistema de computador é configurado para executar um método, o referido método compreendendo: executar, pelo processador, uma sequência de inicialização para inicializar o utilitário de controle em um modo selecionado de arquitetura que é baseado em uma arquitetura selecionada, o utilitário de controle gravado para a arquitetura selecionada e configurado para ser inicializado em pelo menos uma de uma primeira configuração de arquitetura que inicializa em uma arquitetura e troca para a arquitetura selecionada para processamento, ou em uma segunda configuração de arquitetura que inicializa e é processada na arquitetura selecionada, e em que a execução da sequência de inicialização compreende: executar uma ou mais instruções independentemente se o processador deve executar inicialização com base na primeira configuração de arquitetura ou na segunda configuração de arquitetura, a uma ou mais instruções comuns àquela uma arquitetura e à arquitetura selecionada, em que a uma ou mais instruções são definidas na uma arquitetura e na arquitetura selecionada, e a execução compreendendo executar uma operação de troca para requisitar uma troca de modos de arquitetura para o processador independentemente se o processador deve executar inicialização na uma arquitetura ou na arquitetura selecionada, em que a operação de troca é executada de forma diferente com base em cuja arquitetura, a uma arquitetura ou a arquitetura selecionada, o processador deve executar inicialização, e baseado em executar a operação de troca, o utilitário de controle é inicializado no modo de arquitetura selecionado.
[0007] Sob a perspectiva de um aspecto adicional, a presente invenção provê um produto de programa de computador para inicialização de um utilitário de controle em um ambiente computacional, o produto de programa de computador compreendendo um meio de armazenamento legível por computador legível por um circuito de processamento e armazenando instruções para execução pelo circuito de processamento para execução de um método de realização das etapas da invenção.
[0008] Sob a perspectiva de um aspecto adicional, a presente invenção provê um programa de computador armazenado em um meio legível por computador e carregável na memória interna de um computador digital, compreendendo porções de código de software, quando o referido programa é executado em um computador, para realização das etapas da invenção.
[0009] As desvantagens da técnica anterior são superadas e vantagens são fornecidas através da provisão de um produto de programa de computador para inicialização de um utilitário de controle dentro de um ambiente computacional. 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 execução pelo circuito de processamento para execução de um método. O método inclui, por exemplo, execução, por um processador, de uma sequência de inicialização para inicializar o utilitário de controle em um modo selecionado de arquitetura que é baseado em uma arquitetura selecionada, o utilitário de controle gravado para a arquitetura selecionada e configurado para ser inicializado em pelo menos uma de uma primeira configuração de arquitetura que inicializa em uma arquitetura e troca para a arquitetura selecionada para processamento, ou em uma segunda configuração de arquitetura que inicializa e é processada na arquitetura selecionada, e em que a execução da sequência de inicialização inclui: executar uma ou mais instruções independentemente se o processador deve executar a inicialização com base na primeira configuração de arquitetura ou na segunda configuração de arquitetura, a uma ou mais instruções comuns àquela uma arquitetura e à arquitetura selecionada, em que a uma ou mais instruções são definidas na uma arquitetura e na arquitetura selecionada, e a execução compreendendo executar uma operação de troca para requisitar uma troca de modos de arquitetura para o processador independentemente se o processador deve executar a inicialização na uma arquitetura ou na arquitetura selecionada, em que a operação de troca é executada de forma diferente com base em cuja arquitetura, a uma arquitetura ou a arquitetura selecionada, o processador deve executar a inicialização, e com base na execução da operação de troca, o utilitário de controle é inicializado no modo de arquitetura selecionado.
[0010] Métodos e sistemas relacionados a uma ou mais concretizações são também descritos e reivindicados neste documento. Além disso, serviços relacionados a uma ou mais concretizações são também descritos e podem ser reivindicados neste documento.
[0011] Características e vantagens adicionais são realizadas. Outras concretizações e aspectos preferidos são descritos em detalhes neste documento e são considerados parte da invenção reivindicada.
Breve Descrição dos Desenhos
[0012] A presente invenção será agora descrita, a título de exemplo apenas, com referência a concretizações preferidas, como ilustrado nas seguintes Figuras: A FIGURA 1 apresenta um exemplo de um ambiente computacional para incorporar e utilizar um ou mais aspectos de uma facilidade de sequência de inicialização comum, de acordo com uma concretização preferida da presente invenção; A FIGURA 2 apresenta outro exemplo de um ambiente computacional para incorporar e utilizar um ou mais aspectos de uma facilidade de sequência de inicialização comum, de acordo com uma concretização preferida da presente invenção; A FIGURA 3A apresenta ainda outro exemplo de um ambiente computacional para incorporar e utilizar um ou mais aspectos de uma facilidade de sequência de inicialização comum, de acordo com uma concretização preferida da presente invenção; A FIGURA 3B apresenta detalhes adicionais da memória da FIGURA 3A, de acordo com uma concretização preferida da presente invenção; A FIGURA 4A apresenta uma concretização da lógica para acionar um ambiente computacional em um modo de arquitetura, de acordo com uma concretização preferida da presente invenção; A FIGURA 4B apresenta uma concretização de processamento adicional associado com o processo de acionamento da FIGURA 4A, de acordo com uma concretização preferida da presente invenção; A FIGURA 5 apresenta uma concretização de um formato de uma palavra de status de programa, de acordo com uma concretização preferida da presente invenção; A FIGURA 6A apresenta uma concretização da lógica para acionar um ambiente computacional em um modo de arquitetura diferente do modo de arquitetura acionado na FIGURA 4A, de acordo com uma concretização preferida da presente invenção; A FIGURA 6B apresenta uma concretização de processamento adicional associado com o processo de acionamento da FIGURA 6A, de acordo com uma concretização preferida da presente invenção; A FIGURA 7 apresenta um exemplo de formato de uma instrução de Carga de Palavra de Status de Programa, de acordo com uma concretização preferida da presente invenção; A FIGURA 8A apresenta um exemplo de formato de uma instrução de Processador de Sinal, de acordo com uma concretização preferida da presente invenção; A FIGURA 8B apresenta 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 apresenta uma concretização de lógica para executar um boot em que um utilitário de controle é inicializado em ESA/390, de acordo com uma concretização preferida da presente invenção; A FIGURA 10 apresenta uma concretização de lógica para executar um boot em que um utilitário de controle é inicializado na z/Architecture; A FIGURA 11 apresenta uma concretização de lógica para uma sequência de inicialização comum, de acordo com uma concretização preferida da presente invenção; A FIGURA 12 apresenta outra concretização de lógica para uma sequência de inicialização comum, de acordo com uma concretização preferida da presente invenção; A FIGURA 13 apresenta um exemplo de formato de uma instrução de Extração de Palavra de Status de Programa, de acordo com uma concretização preferida da presente invenção; A FIGURA 14 apresenta uma concretização adicional de lógica para uma sequência de inicialização comum, de acordo com uma concretização preferida da presente invenção; A FIGURA 15 apresenta uma concretização de lógica para executar uma restauração (reset) para inicializar um utilitário de controle, de acordo com uma concretização preferida da presente invenção; A FIGURA 16 apresenta outra concretização de lógica para executar uma restauração para inicializar um utilitário de controle, de acordo com uma concretização preferida da presente invenção; A FIGURA 17 apresenta ainda outra concretização de lógica para executar uma restauração para inicializar um utilitário de controle, de acordo com uma concretização preferida da presente invenção; A FIGURA 18 apresenta uma concretização de lógica para detectar um utilitário de controle incompatível conforme se relaciona com a sequência de inicialização, de acordo com uma concretização preferida da presente invenção; A FIGURA 19 apresenta uma concretização de processamento associado com a execução um boot de um utilitário de controle, de acordo com uma concretização preferida da presente invenção; A FIGURA 20 apresenta 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 21 apresenta 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 22 apresenta 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 23 apresenta 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 24 apresenta 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 25A apresenta uma concretização da unidade de execução do sistema de computador da FIGURA 24, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A FIGURA 25B apresenta uma concretização da unidade de ramificação do sistema de computador da FIGURA 24, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A FIGURA 25C apresenta uma concretização da unidade de carga/armazenamento do sistema de computador da FIGURA 24, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A FIGURA 26 apresenta uma concretização de um sistema de computador hospedeiro emulado; A FIGURA 27 apresenta uma concretização de um nó de computação em nuvem, de acordo com a técnica anterior, e em que uma concretização preferida da presente invenção pode ser implementada; A FIGURA 28 apresenta uma concretização de um ambiente computacional em 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 29 apresenta 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
[0013] De acordo com um ou mais aspectos, uma facilidade de sequência de inicialização comum é provida que permite que um utilitário de controle (por exemplo, sistema operacional, programa de controle ou outra ferramenta autônoma que é inicializada sem necessidade do sistema operacional, tal como utilitários de manutenção e gerenciamento (por exemplo, descarga, formato de disco), como exemplos) seja inicializado em uma pluralidade de configurações sem alterar a sequência de inicialização. Por exemplo, um sistema operacional ou outro utilitário de controle utiliza a sequência de inicialização comum para poder ser inicializado tanto em uma primeira configuração de arquitetura, que inicializa em uma arquitetura, por exemplo, ESA/390, e, em seguida, trocar para outra arquitetura para processamento, tal como a z/Architecture; ou em uma segunda configuração de arquitetura, que inicializa e é processada em, por exemplo, a outra arquitetura, por exemplo, z/Architecture.
[0014] Quando a z/Architecture foi implementada, os utilitários de controle continuaram a ser inicializados em ESA/390, um antecessor da z/Architecture, e, então, durante a sequência de inicialização, o processamento seria alternado para z/Architecture. Isso permitiu que o software herdado continuasse a ser executado sem alteração. No entanto, pode haver casos em que é desejável inicializar diretamente na z/Architecture. Dessa forma, uma sequência de inicialização comum é provida, a qual permite que um utilitário de controle seja inicializado de forma transparente em qualquer configuração. Por exemplo, um sistema operacional que é gravado para a z/Architecture utiliza a sequência de inicialização tanto para ser inicializado em ESA/390 e, em seguida, alternado para z/Architecture, ou somente ser inicializado diretamente na z/Architecture. Embora as concretizações neste documento sejam descritas com referência à ESA/390 e z/Architecture, um ou mais aspectos são também aplicáveis a outras arquiteturas.
[0015] Um exemplo de um ambiente computacional para incorporar e utilizar um ou mais aspectos de uma facilidade de sequência de inicialização comum é descrito com referência à FIGURA 1. Com referência à FIGURA 1, em um exemplo, um ambiente computacional 100 é baseado na z/Architecture, fornecida por IBM. A z/Architecture é descrita em uma Publicação da IBM intitulada “z/Architecture - Principles of Operation”, Publicação N°. SA22-7932-09, 10a Edição, setembro de 2012. Embora o ambiente computacional seja baseado na z/Architecture, em uma concretização preferida, também suporta uma ou mais outras configurações de arquitetura, tal como ESA/390.
[0016] Como um exemplo, o ambiente computacional 100 inclui um complexo de processador central (CPC) 102 acoplado a um ou mais dispositivos de entrada/saída (E/S) 106 através de uma ou mais unidades de controle 108. O complexo de processador central 102 inclui, por exemplo, uma memória de processador 104 (também denominada memória principal, armazenamento principal, armazenamento central) acoplada a um ou mais processadores centrais (também denominado unidades de processamento central (CPUs)) 110, e um subsistema de entrada/saída 111, cada um dos quais é descrito abaixo.
[0017] A memória de 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 Resource Processor/System ManagerTM (PR/SM). IBM, z/OS, z/Architecture e Resource Processor/Systems Manager são marcas registradas de International Business Machines Corporation, registrada em muitas jurisdições em todo o mundo. Outros nomes usados aqui podem ser marcas registradas, marcas ou nomes de produto de International Business Machines Corporation ou de outras empresas.
[0018] Uma partição lógica funciona como um sistema separado e tem uma ou mais aplicações 120 e, opcionalmente, um sistema operacional residente 122 neste documento, que podem diferir para cada partição lógica. Em uma concretização preferida, o sistema operacional é o sistema operacional z/OS, o sistema operacional z/VM, o sistema operacional z/Linux ou o sistema operacional TPF, fornecidos pela International Business Machines Corporation, Armonk, Nova Iorque. Como exemplos, o sistema operacional pode incluir uma facilidade de sequência de inicialização comum 124 ou a facilidade de sequência de inicialização comum pode ser provida separadamente do sistema operacional, mas usada para inicializar (ou reiniciar) o sistema operacional.
[0019] As partições lógicas 112 são gerenciadas por um hipervisor de partição lógica 114, que é implementado por firmware rodando nos processadores 110. Como usado neste documento, firmware inclui, por exemplo, o microcódigo e/ou milicódigo do processador. Ele inclui, por exemplo, as estruturas de dados e/ou instruções no nível de hardware usadas na implementação de código de máquina de nível superior. Em uma concretização preferida, inclui, por exemplo, código de proprietário que é tipicamente entregue como microcódigo que inclui software de confiança ou microcódigo específico para o hardware subjacente e controla o acesso do sistema operacional ao hardware do sistema.
[0020] Os processadores centrais 110 são recursos de processador físico alocados às partições lógicas. Em particular, cada partição lógica 112 tem um ou mais processadores lógicos, cada um dos quais representa o todo ou uma parte de um processador físico 110 alocado à partição. Os processadores lógicos de uma partição particular 112 podem ser tanto dedicados à partição, de modo que o recurso de processador subjacente 110 seja reservado para aquela partição; ou compartilhados com outra partição, de modo que o recurso de processador subjacente esteja potencialmente disponível para outra partição. Em um exemplo, uma ou mais das CPUs incluem aspectos de uma facilidade de configuração de modo de arquitetura 130 descrita neste documento.
[0021] O subsistema de entrada/saída 111 direciona o fluxo de informações entre os dispositivos de entrada/saída 106 e o armazenamento principal 104. Ele é acoplado ao complexo de processamento central, em que este 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 comunicarem diretamente com os dispositivos de entrada/saída e permite que o processamento de dados prossiga simultaneamente com o processamento de entrada/saída. Para fornecer comunicações, o subsistema de E/S emprega adaptadores de comunicação E/S. Existem vários tipos de adaptadores de comunicação incluindo, por exemplo, canais, adaptadores E/S, placas PCI, placas Ethernet, placas de Interface de Armazenamento de Computador Pequeno (SCSI) etc. No exemplo particular descrito neste documento, os adaptadores de comunicação de E/S são canais e, portanto, o subsistema de E/S é referido neste documento como um subsistema de canal. No entanto, isso é somente um exemplo. Outros tipos de subsistemas de E/S podem ser usados.
[0022] O subsistema de E/S utiliza um ou mais percursos de entrada/saída como links de comunicação no gerenciamento do fluxo de informações para ou a partir de dispositivos de entrada/saída 106. Nesse exemplo particular, esses percursos são chamados de percursos de canal, uma vez que os adaptadores de comunicação são canais.
[0023] Outro exemplo de um ambiente computacional para incorporar e utilizar um ou mais aspectos de uma facilidade de sequência de inicialização comum é descrito com referência à FIGURA 2. Neste exemplo, um ambiente computacional 200 inclui um ambiente não particionado que pode ser configurado para uma pluralidade de modos de arquitetura, incluindo a z/Architecture e ESA/390. Inclui, por exemplo, um processador (unidade de processamento central - CPU) 202 que inclui, por exemplo, uma facilidade de configuração de modo de arquitetura 204, e uma ou mais memórias cache 206. O processador 202 é comunicativamente acoplado a uma porção de memória 208 tendo uma ou mais memórias cache 210, e a um subsistema de entrada/saída (E/S) 212. O subsistema de E/S 212 é comunicativamente acoplado a 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 telas.
[0024] Em um exemplo, a porção de memória 208 também inclui pelo menos um utilitário de controle 220, tal como um sistema operacional, que utiliza uma sequência de inicialização comum 222 ao inicializar.
[0025] Outra concretização preferida de um ambiente computacional para incorporar e utilizar um ou mais aspectos de uma facilidade de sequência de inicialização comum é descrita com referência à FIGURA 3A. Neste exemplo, um ambiente computacional 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 um a outro através de, por exemplo, um ou mais barramentos 308 e/ou outras conexões. Como exemplos, o ambiente computacional 300 pode incluir um processador PowerPC® ou um servidor Power Systems™; processadores HP Superdome com Intel® Itanium® II fornecidos por Hewlett Packard Co., Palo Alto, Califórnia; e/ou outras máquinas baseadas em arquiteturas fornecidas por International Business Machines Corporation, Hewlett Packard, Intel, Oracle ou outras. PowerPC e Power Systems são marcas registradas da International Business Machines Corporation, registradas em muitas jurisdições no mundo. Intel® e Itanium® são marcas ou marcas registradas de Intel Corporation ou suas subsidiárias nos Estados Unidos e outros países.
[0026] A unidade de processamento central nativa 302 inclui um ou mais registros nativos 310, tais como um ou mais registros de uso geral e/ou um ou mais registros de aplicação específica usados durante o processamento dentro do ambiente e, opcionalmente, uma facilidade de configuração de modo de arquitetura 311. Esses registros incluem informações que representam o estado do ambiente em qualquer ponto particular no tempo.
[0027] Além disso, a 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 emulador 312 armazenado na memória 304. Esse código permite que o ambiente computacional configurado em uma arquitetura emule uma ou mais outras arquiteturas. Por exemplo, o código emulador 312 permite que máquinas baseadas em arquiteturas que não a z/Architecture, tal como processadores PowerPC, servidores Power Systems, servidores HP Superdome ou outras, emule a z/Architecture (e/ou ESA/390) e execute software e instruções desenvolvidas com base na z/Architecture.
[0028] Detalhes adicionais relacionados ao código emulador 312 são descritos com referência à FIGURA 3B. Instruções hóspede 350 armazenadas na memória 304 compreendem instruções de software (por exemplo, correlacionadas às instruções de máquina) que foram desenvolvidas para serem executadas em uma arquitetura que não aquela da CPU nativa 302. Por exemplo, instruções hóspede 350 podem ter sido designadas para execução em um processador de z/Architecture 202, mas em vez disso, estão sendo emuladas na CPU nativa 302, que pode ser, por exemplo, um processador Intel Itanium II. Em um exemplo, as instruções hóspede incluem uma sequência de inicialização comum 351. Em um exemplo, o código emulador 312 inclui uma rotina de busca de instrução 352 para obter uma ou mais instruções hóspede 350 da memória 304, e para opcionalmente prover armazenamento temporário local para as instruções obtidas. Também inclui uma rotina de tradução de instrução 354 para determinar o tipo de instrução hóspede que foi obtida e para traduzir a instrução hóspede em uma ou mais instruções nativas correspondentes 356. Essa tradução inclui, por exemplo, a identificação da função a ser executada pela instrução hóspede e escolha da instrução(s) nativa para executar aquela função.
[0029] Além disso, o código emulador 312 inclui uma rotina de controle de emulação 360 para fazer com que as instruções nativas sejam executadas. A 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 hóspede previamente obtidas e, na conclusão de tal execução, retorne o controle para a rotina de busca de instrução emular a obtenção da instrução hóspede seguinte ou um grupo de instruções hóspede. A execução das instruções nativas 356 pode incluir carregamento de dados em um registro da memória 304; armazenamento de dados de volta para a memória a partir de um registro; ou execução de algum tipo de operação lógica ou aritmética, conforme determinado pela rotina de tradução.
[0030] Cada rotina é, por exemplo, implementada em software, que é armazenado na memória e executado 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 registros do processador emulado podem ser emulados usando registros 310 da CPU nativa ou usando locais na memória 304. Em concretizações preferidas, instruções hóspede 350, instruções nativas 356 e código emulador 312 podem residir na mesma memória ou podem ser distribuídos entre diferentes dispositivos de memória.
[0031] Os ambientes computacionais descritos acima são apenas exemplos de ambientes computacionais que podem ser usados. Outros ambientes, incluindo, mas sem limitação, outros ambientes não particionados, outros ambientes particionados e/ou outros ambientes emulados, podem ser usados; as concretizações não são limitadas a nenhum ambiente.
[0032] Conforme descrito neste documento, uma sequência de inicialização comum é provida para inicializar um utilitário de controle em uma de uma pluralidade de configurações de arquitetura, incluindo, por exemplo, uma primeira configuração em que o utilitário de controle é inicializado em um primeiro modo de arquitetura (por exemplo, um modo herdado, tal como ESA/390) e, em1 seguida, o processamento troca para um segundo modo de arquitetura (por exemplo, um modo aprimorado, tal como z/Architecture); ou uma segunda configuração em que o utilitário de controle é inicializado e processado, por exemplo, no segundo modo de arquitetura. Em uma concretização, o primeiro modo de arquitetura inclui uma primeira arquitetura de conjunto de instrução e tendo um primeiro conjunto de recursos suportados, tal como endereçamento de 31-bits, utilização de registros de uso geral de 32-bits e várias facilidades. Além disso, o segundo modo de arquitetura inclui uma segunda arquitetura de conjunto de instrução e tendo um segundo conjunto de recursos suportados, tal como endereçamento de 64-bits, utilização de registros de uso geral de 64-bits, e várias facilidades, tais como tradução dinâmica de endereço e/ou outras facilidades.
[0033] Em uma concretização, a segunda configuração em que o utilitário de boot é inicializado e processado diretamente em um modo selecionado de arquitetura, tal como z/Architecture, é facilitada pela instalação de uma facilidade de configuração de modo de arquitetura. Essa facilidade, conforme descrito neste documento, provê uma sequência de inicialização ou acionamento para o ambiente computacional (por exemplo, processador, LPAR, hóspede virtual) que inicializa o ambiente computacional no modo de arquitetura selecionado. Portanto, antes de fornecer detalhes adicionais em relação à sequência de inicialização comum, aspectos de uma facilidade de configuração de modo de arquitetura são descritos. No entanto, nota-se que a capacidade de sequência de inicialização comum pode também ser usada em ambientes que não incluem uma facilidade de configuração de modo de arquitetura.
[0034] Em uma concretização, uma facilidade de configuração de modo de arquitetura (CAM) é instalada em um ou mais processadores (por exemplo, unidades de processamento central) de um ambiente computacional para controlar a reconfiguração do ambiente. Por exemplo, quando CAM é instalada em um ambiente computacional que suporta uma pluralidade de modos de arquitetura, o ambiente computacional é reconfigurado, tal que a utilização de um ou mais aspectos de pelo menos um dos modos de arquitetura é restrita.
[0035] Um exemplo particular de uma facilidade de configuração de modo de arquitetura é a facilidade de Configuração de Modo de Arquitetura de z/Architecture (CZAM). A instalação de CZAM é indicada, por exemplo, pelo indicador de instalação de facilidade, por exemplo, bit 138, configurado para, por exemplo, um. Em um exemplo particular, quando o bit 138 é configurado para um, a facilidade CZAM é instalada, e quando instalada, uma restauração normal e uma restauração de limpeza colocam a configuração no modo de arquitetura de z/Architecture. Dessa forma, o bit de facilidade, por exemplo, bit 2, indicando que o modo de arquitetura de z/Architecture está ativo é também configurado para um, em um exemplo.
[0036] Baseado em instalação de CZAM, um ambiente computacional (por exemplo, um processador simples, uma partição lógica, um hóspede virtual etc.) é reconfigurado tal que um ou mais aspectos de uma arquitetura selecionada, por exemplo, ESA/390, não sejam mais suportados. Vários aspectos que não são mais suportados e/ou determinados processos afetados pela instalação de CZAM são descritos abaixo. Embora nas concretizações preferidas descritas neste documento, a pluralidade de modos de arquitetura inclui uma arquitetura legada (por exemplo, ESA/390) e uma arquitetura aprimorada (por exemplo, z/Architecture) e aspectos da arquitetura legada, ESA/390, não são mais suportados, outras concretizações preferidas podem incluir outras arquiteturas. ESA/390 e z/Architecture são apenas exemplos.
[0037] Um processo que é afetado pela instalação de CZAM é um processo de acionamento. Para descrever como este processo é afetado, inicialmente, um processo de acionamento para um ambiente que suporta múltiplas configurações de arquitetura e não inclui a facilidade CZAM é descrito com referência às FIGURAS 4A-4B, e então um processo de acionamento para um ambiente que é configurado para múltiplas configurações de arquitetura e não inclui a facilidade CZAM é descrito com referência às FIGURAS 6A-6B. O acionamento de um sistema inclui, por exemplo, iniciar o sistema e iniciar uma sequência de inicialização ou outros meios de operações de inicialização no sistema. Isso pode corresponder a um acionamento físico, uma restauração de hardware e/ou um acionamento virtual (por exemplo, em um sistema emulado, uma máquina virtual ou um ambiente hóspede).
[0038] Referindo-se inicialmente à FIGURA 4A, baseado em um processador do ambiente computacional sendo acionado uma chave de operador, por exemplo, uma chave de carregamento normal ou uma chave de carregamento de limpeza, sendo ativada, o processador entra em um estado de carregamento e configura o ambiente computacional para um modo de arquitetura particular, por exemplo, modo ESA/390, ETAPA 400. Por exemplo, um carregamento inicial de programa (IPL), tal como um carregamento inicial de programa (IPL) de palavra de controle de canal (CCW), é executada, ETAPA 402. O carregamento inicial 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. Uma IPL do tipo CCW é inicializada manualmente por configuração dos controles de endereço de unidade de carga para um número de quatro dígitos para designar um dispositivo de entrada e subsequentemente ativar a chave de carregamento normal ou de carregamento de limpeza para uma CPU particular.
[0039] A ativação da chave de carregamento de limpeza provoca uma restauração de limpeza a ser executada na configuração; e a ativação da chave de carregamento normal faz com que uma restauração inicial da CPU seja executada nesta CPU (a CPU na qual a chave foi ativada), uma restauração da CPU a ser propagada para todas as outras CPUs na configuração, uma restauração do subsistema a ser executada no restante da configuração. A ativação da chave de carregamento de limpeza ou da chave de carregamento normal define o modo de arquitetura (por exemplo, ESA/390).
[0040] Na parte de carregamento da operação, depois de as redefinições terem sido executadas, esta CPU entra então no estado de carregamento. Esta CPU não entra necessariamente no estado parado durante a execução das operações de restauração. O indicador de carga fica ligado enquanto a CPU está no estado de carregamento.
[0041] 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 execução do programa de canal é como se um CCW de formato-0 começando no local de armazenamento absoluto 0 especificasse um comando de leitura com os bits de modificador zero, um endereço de dados de zero, uma contagem de bytes de 24, os comandos de cadeia e SLI sinalizam um e todos os outros sinalizam zero.
[0042] Quando a operação de entrada/saída de IPL é concluída com êxito, uma palavra de identificação de subsistema para o dispositivo de IPL é armazenada em locais de armazenamento absolutos selecionados (por exemplo, locais 184-187), zeros são armazenados em outros locais de armazenamento absolutos selecionados (por exemplo, locais 188-191), e uma nova palavra de status de programa (PSW) é carregada a partir de locais de armazenamento absolutos selecionados (por exemplo, locais 0-7), ETAPA 404. A palavra de status de programa controla as operações do ambiente computacional.
[0043] Se a carga de PSW for bem-sucedida e não forem detectadas falhas de máquina, esta CPU deixa o estado de carregamento, e o indicador de carga é desligado. Se o controle de taxa for configurado para a posição de processo, a CPU entra no estado operacional, a operação do ambiente computacional prossegue sob controle da nova palavra de status de programa (PSW), ETAPA 406. O ambiente computacional inicializado então é executado, ETAPA 408, como adicionalmente descrito com referência à FIGURA 4B.
[0044] Com referência à FIGURA 4B, o ambiente computacional inicializado é iniciado no modo ESA/390, ETAPA 420 e, dessa forma, as operações são executadas no modo ESA/390, ETAPA 422. Em algum momento, pode ser feita uma requisição para alterar o modo de arquitetura de ESA/390 para z/Architecture. Em particular, um programa envia um código de ordem (por exemplo, código que designa Configurar Arquitetura) para o processador, que emite uma instrução de Processador de Sinal (SIGP) com o código de ordem para alternar do modo ESA/390 para o modo de z/Architecture, ETAPA 424. Por exemplo, uma facilidade de resposta e sinalização de CPU é utilizada para incluir uma instrução de Processador de Sinal (descrita abaixo) e um mecanismo para interpretar e agir sobre códigos de ordem de servidor, incluindo um para Configurar Arquitetura. A facilidade provê comunicações entre CPUs, incluindo transmitir, receber e decodificar um conjunto de códigos de ordem atribuídos; iniciar a operação especificada; e responder a uma CPU de sinalização. Ao usar Configurar Arquitetura, o modo de arquitetura é definido para a configuração desejada, por exemplo, z/Architecture. Detalhes adicionais deste documento são descritos abaixo.
[0045] Em seguida, é feita uma determinação quanto à aceitação da operação SIGP, CONSULTA 426. Com base no código de retorno, um número de condições de erro pode ser diagnosticado, incluindo uma indicação de “parâmetro inválido” quando uma determinação foi feita que a CPU já está nos modos de arquitetura especificados pelo código (isto é, que a arquitetura configurada representa uma alteração para o modo atual em si, ou se é uma alteração de um modo para outro). Se o SIGP for aceito e a arquitetura configurada representar uma operação de alternância de modo legal, então, todos os processadores do ambiente computacional que receberam a operação SIGP mudam para o modo de z/Architecture usando, por exemplo, o processamento Configurar Arquitetura descrito neste documento, ETAPA 428. No entanto, se a operação SIGP não é legal, é indicado um erro, ETAPA 430.
[0046] Conforme descrito acima, a operação de acionamento carrega uma palavra de status de programa. Uma concretização de formato de uma palavra de status de programa (PSW) é descrita com referência à FIGURA 5. Com referência à FIGURA 5, neste exemplo, o formato da palavra de status de programa é um formato ESA/390, exceto que o bit 31 é mostrado como EA, conforme indicado abaixo.
[0047] Em uma concretização, uma palavra de status de programa 500 inclui os seguintes campos, como um exemplo:
[0048] Por Máscara (R) 502: O Bit 1 controla se a CPU está habilitada para interrupções associadas com a gravação de eventos de programa (PER). Quando o bit é zero, nenhum evento PER pode causar uma interrupção. Quando o bit é um, as interrupções são permitidas, sujeitas aos bits de máscara de eventos PER no registro de controle 9;
[0049] Modo DAT (T) 504: O bit 5 controla se a tradução dinâmica implícita de endereços (DAT) de endereços de instrução e lógica utilizados para acessar a memória ocorre. Quando o bit é zero, DAT é desligado, e os endereços de instrução e lógica são tratados como endereços reais. Quando o bit é um, DAT é ligado, e o mecanismo de tradução dinâmica de endereço é invocado.
[0050] Máscara de E/S (IO) 506: O bit 6 controla se a CPU está habilitada para interrupções E/S. Quando o bit é zero, uma interrupção de E/S não pode ocorrer. Quando o bit é um, as interrupções de E/S estão sujeitas aos bits de máscara de subclasse de interrupção de E/S no registro 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 essa 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 essa subclasse de interrupção E/S pode ocorrer;
[0051] Máscara externa (EX) 508: O bit 7 controla se a CPU está habilitada para interrupção por condiçõ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 é sujeita aos bits de máscara de subclasse externa correspondentes no registro de controle 0. Quando o bit de máscara de subclasse é zero, as condições associadas à subclasse não podem causar uma interrupção. Quando o bit de máscara de subclasse é um, uma interrupção nessa subclasse pode ocorrer.
[0052] Chave PSW (Chave) 510: Os bits 9-11 formam a chave de acesso para referências de armazenamento pela CPU. Se a referência é sujeita à proteção por chave, a tecla PSW é combinada com uma chave de armazenamento quando a informação é armazenada ou quando a informação é pesquisada e carregada de um local protegido contra a pesquisa e carregamento. No entanto, para um dos operandos de cada um de Mover para Primário, Mover para Secundário, Mover com Chave, Mover com Chave de Origem e Mover com Chave de Destino, e para 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.
[0053] Bit 12 512: Este bit indica o modo de arquitetura atual. É configurado para um para o formato de PSW de ESA/390. Para o formato de PSW de z/Architecture, este bit é definido como zero. Quando no modo de z/Architecture, uma instrução de PSW de Carga estendida (LPSWE) é definida para carregar uma PSW de z/Architecture verdadeira (que tem um formato diferente do formato descrito neste documento, incluindo um endereço de instrução nos bits 64-127). No entanto, uma PSW de carga de ESA/390 (LPSW) é ainda suportada e pode ser usada para carregar uma PSW de formato ESA/390. Quando a LPSW é executada e o ambiente computacional está no modo de z/Architecture, o processador expande a PSW de formato ESA/390 para o formato de z/Architecture, incluindo o bit inversor 12. Este é o inverso do colapso do formato de PSW da z/Architecture que o sistema operacional executa para criar a PSW do formato ESA/390. Ou seja, em ambientes computacionais que suportam tanto ESA/390 e z/Architecture, quando uma cópia de uma PSW é colocada em armazenamento, o sistema operacional colapsa a PSW completa de z/Architecture para o tamanho e formato de uma PSW de ESA/390. Dessa forma, outros softwares com dependências de formato de PSW podem não ter conhecimento da PSW de z/Architecture.
[0054] Máscara de Verificação de Máquina (M) 514: O bit 13 controla se a CPU está habilitada para interrupção por condições de verificação da máquina. Quando o bit é zero, uma interrupção de verificação da máquina não pode ocorrer. Quando o bit é um, interrupções de verificação de máquina devido a danos no sistema e danos de processamento de instrução são permitidas, mas as interrupções devido a outras condições de subclasse de verificação de máquina estão sujeitas aos bits de máscara de subclasse no registro de controle 14.
[0055] Estado de Espera (W) 516: Quando o bit 14 é um, a CPU está aguardando; ou seja, nenhuma instrução é processada pela CPU, mas podem ocorrer interrupções. Quando o bit 14 é zero, execução e pesquisa e carregamento de instrução ocorrem de maneira normal. O indicador de espera é um quando o bit é um.
[0056] Estado de Problema (P) 518: Quando o bit 15 é um, a CPU está no estado de problema. Quando o 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, somente são válidas as instruções que fornecem informações significativas 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 uma CPU no estado de problema tenta executar uma instrução privilegiada, uma exceção de operação privilegiada é reconhecida. Outro grupo de instruções, denominado instruções semiprivilegadas, é executado por uma CPU no estado de problema somente se os testes de autoridade específicos forem atendidos; caso contrário, uma exceção de operação privilegiada ou alguma outra exceção de programa é reconhecida, dependendo do requisito particular que é violado.
[0057] Controle de Espaço de Endereço (AS) 520: Os bits 16 e 17, em conjunto com bit de PSW 5, controlam o modo de tradução.
[0058] Código de Condição (CC) 522: Os bits 18 e 19 são os dois bits do código de condição. O código de condição é configurado para 0, 1, 2 ou 3 dependendo do resultado obtido na execução de determinadas instruções. A maioria das operações aritméticas e lógicas, bem como algumas outras operações, definem o código de condição. A instrução BRANCH ON CONDITION pode especificar qualquer seleção dos valores de código de condição como um critério para ramificação.
[0059] Máscara de Programa 524: Os bits 20-23 são os quatro bits de máscara de programa. Cada bit é associado com um programa exceção, da seguinte forma:
Figure img0001
[0060] Quando o bit de máscara é um, a exceção resulta em uma interrupção. Quando o bit da máscara é zero, não ocorre interrupção. A definição do bit HFP-expoente- subfluxo-máscara do bit de máscara de significância HFP também determina a maneira pela qual a operação é concluída quando ocorre a exceção correspondente.
[0061] Modo de Endereçamento Estendido (EA) 526: O bit 31 controla o tamanho dos endereços efetivos e a geração de endereços efetivos em conjunto com o bit 32, o bit de modo de endereçamento básico. Quando o bit 31 é zero, o modo de endereçamento é controlado pelo bit 32. Quando os bits 31 e 32 são ambos um, o endereçamento de 64 bits é especificado.
[0062] Modo de Endereçamento Básico (BA) 528: Os bits 31 e 32 controlam o tamanho dos endereços efetivos e a geração de endereços efetivos. Quando os bits 31 e 32 são ambos zero, o endereçamento de 24 bits é especificado. Quando o bit 31 é zero e o bit 32 é um, o endereçamento de 31 bits é especificado. Quando os bits 31 e 32 são ambos um, um endereçamento de 64 bits é especificado. Bit 31 - um e bit 32 - zero é uma combinação inválida que faz com que uma exceção de especificação seja reconhecida. O modo de endereçamento não controla o tamanho de endereços PER ou de endereços utilizados para acessar DAT, ASN, controle de unidade despachável, vinculação, entrada, tabelas de rastreamento ou listas de acesso ou a lista inversa de vinculação. O controle do modo de endereçamento pelos bits 31 e 32 da PSW é resumido da seguinte forma:
Figure img0002
Endereço de instrução 530: Os bits 33-63 da PSW são o endereço de instrução. O endereço designa o local do byte mais à esquerda da próxima instrução a ser executada, a menos que a CPU esteja no estado de espera (bit 14 da PSW é um).
[0063] De acordo com um aspecto, quando uma facilidade de modo de arquitetura de configuração, tal como a facilidade de Configuração de Modo de Arquitetura da z/Architecture (CZAM), é instalada e ativada no ambiente computacional, o processo de acionamento é alterado. Uma concretização de um processo de acionamento de CZAM é descrito com referência à FIGURA 6A.
[0064] Com referência à FIGURA 6A, com base em um processador do ambiente computacional a ser acionado, o ambiente computacional é configurado para o modo de arquitetura particular especificado pela facilidade de configuração de modo de arquitetura, por exemplo, o modo de z/Architecture (também referido como ESAME) quando CZAM é instalada, ETAPA 600. Por exemplo, uma carga inicial de programa (IPL), tal como uma carga inicial de programa (IPL) de palavra de controle de canal (CCW), é executada como descrito acima, ETAPA 602, quando a operação de entrada/saída IPL é concluída com êxito, uma palavra de identificação do subsistema para o dispositivo IPL é armazenada em locais de armazenamento absolutos selecionados (por exemplo, locais 184-187), zeros são armazenados em outros locais absolutos selecionados (por exemplo, locais 188-191), e nesta concretização, uma nova palavra de status de programa (PSW) de 16 bytes é criada a partir de locais de armazenamento absolutos selecionados (por exemplo, locais 0-7), ETAPA 604. A nova PSW de 16 bytes é formada, por exemplo, a partir dos conteúdos da palavra dupla de armazenamento selecionada (por exemplo, locais 0-7). O bit 12 da palavra dupla deve ser um; caso contrário, um erro pode ser indicado. (O erro pode ser uma exceção de especificação que é reconhecida, uma verificação de máquina ou ainda outra indicação de erro). Os bits 0-32 da PSW recém-criada são configurados para bits 032 da palavra dupla selecionada, exceto com o bit 12 invertido. Os bits 33-96 da PSW recém-criada são definidos para zero. As posições de bit 97-127 da PSW recém-criada são inicializadas a partir dos bits 33-63 da palavra dupla selecionada.
[0065] Em uma concretização, os campos PSW que devem ser carregados pela instrução não são verificados antes de serem carregados. Em uma concretização, o bit 12 da PSW é verificado quanto à validade. Em ainda outra concretização, todos os campos são verificados quanto à validade. Em outra concretização, quaisquer bits não verificados antes do carregamento da PSW são verificados quanto à validade após a PSW ter sido inicializada, e o processador pode indicar um erro (por exemplo, levantando uma exceção de especificação que é reconhecida, uma verificação de máquina ou qualquer outra indicação de erro).
[0066] O ambiente computacional entra no estado operacional, e a operação do ambiente computacional prossegue sob controle da nova palavra de status de programa (PSW), ETAPA 606. O ambiente computacional inicializado, então, é executado, ETAPA 608, conforme descrito com referência à FIGURA 6B.
[0067] Com referência à FIGURA 6B, o ambiente computacional inicializado é iniciado no modo de z/Architecture, ETAPA 620, e, dessa forma, as operações são executadas no modo de z/Architecture, ETAPA 622. Nenhuma alternância de modo é necessária e o processamento continua diretamente com o processamento no modo de z/Architecture. Dessa forma, em uma concretização, não são necessárias as seguintes etapas: Uma operação de Processador de Sinal (SIGP) para alternar do modo ESA/390 para modo de z/Architecture; uma determinação sobre se a operação SIGP é uma operação aceita; a transição para z/Architecture se essa for uma operação aceita; ou a indicação de erro, se a operação SIGP não for aceita.
[0068] Todos os processadores do ambiente computacional (isto é, o ambiente que está sendo configurado, por exemplo, processador único, partição lógica, hóspede VM) estão em modo de z/Architecture, sem execução das etapas indicadas acima. Dessa forma, como descrito neste documento, de acordo com um aspecto, a capacidade de inicializar ou acionar no modo ESA/390 é removida do ambiente computacional que é configurado para ambos ESA/390 e z/Architecture. Particularmente, apesar de um ambiente computacional ser configurado para suportar múltiplas arquiteturas, uma capacidade é provida para restringir certos elementos de pelo menos uma arquitetura configurada, um dos quais sendo a habilidade de acionamento nessa arquitetura.
[0069] Em uma ou mais concretizações preferidas, o acionamento no modo de z/Architecture provê um mecanismo para especificar um de (1) uma partição lógica (hóspede-1), e (2) uma partição lógica e hóspede-2 são inicializados e restaurados no modo de z/Architecture, sem a necessidade de inicializar no modo ESA/390. Este recurso pode ser instalado incondicionalmente ou sob o controle de um comutador de configuração.
[0070] A sequência de inicialização com relação à inicialização da PSW é modificada. Por exemplo, no final do IPL, a PSW de IPL em locais absolutos 0-7 é carregada. Como é feito atualmente quando a condição de restauração é ESA/390, o bit 12 é um, tornando uma PSW de IPL ESA/390 válida, e o programa prossegue para executar instruções no modo de arquitetura ESA/390. Com a CZAM instalada, a condição de restauração é z/Architecture, o bit 12 é ainda um, tornando válida uma PSW de IPL ESA/390, mas o bit 12 é invertido durante a formação da PSW atual de z/Architecture de 16 bytes, como definido acima.
[0071] Além do processo de acionamento, outros processos, comportamentos e/ou operações podem também ser alterados ou afetados pela instalação de uma facilidade de configuração de modo de arquitetura. Estes processos, comportamentos e/ou operações afetados são específicos dos modos ESA/390 e z/Architecture. No entanto, processos semelhantes e/ou diferentes podem ser afetados por outros tipos de arquiteturas. Exemplos de processos, comportamentos e/ou operações que podem ser afetados em uma ou mais concretizações preferidas incluem, por exemplo: (1) Habilitação de um comutador de modo para auto (por exemplo, do modo de z/Architecture para modo de z/Architecture) sem gerar um erro (ou ignorando o erro). Ou seja, um processador pode emitir uma instrução SIGP para mudar para modo de z/Architecture e, se já estiver nesse modo, nenhum erro será gerado. Anteriormente, a tentativa de alternância para o modo correspondente ao modo atual gerava um erro. (2) Desativação de um comutador para modo ESA/390. Com base na instalação e ativação de CZAM, o comutador para ESA/390 é desabilitado e agora gera um erro. Uma alternância de volta para ESA/390 é impedido por verificação do bit 12 da PSW, e tomando uma exceção, se o bit 12 não for ajustado para indicar modo de z/Architecture (representado por um bit 12 de “1” no armazenamento que é invertido para um bit “0” para representar a z/Architecture na PSW quando uma PSW de ESA/390 é convertida em uma PSW de z/Architecture válida). (3) Modificação da operação de carregar PSW para restringir o processamento do bit 12. Se a facilidade de Configuração de Modo de Arquitetura da z/Architecture for instalada, a PSW de Carga reconhece uma exceção de especificação se o bit 12 de seu segundo operando não for um. A PSW de carga carrega os bits 0-32 de seu segundo operando, exceto com o bit 12 invertido, e os bits 33-63 do operando como bits 0-32 e 97-127, respectivamente, da PSW atual, e define os bits 33-96 da PSW atual para zero.
[0072] Detalhes adicionais relativos à instrução de PSW de Carga são descritos com referência à FIGURA 7. Em uma concretizaçã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 carregar PSW; um campo base (B2) 704; e um campo de deslocamento (D2) 706. O conteúdo do registro geral designado pelo campo B2 é adicionado ao conteúdo do campo D2 para formar um endereço de um segundo operando no armazenamento (referido como endereço do segundo operando).
[0073] Na operação da instrução de carregar PSW, a PSW corrente é substituída por um PSW de 16 bytes formada a partir do conteúdo da palavra dupla no local designado pelo endereço do segundo operando.
[0074] O bit 12 da palavra dupla deve ser um; caso contrário, uma exceção de especificação pode ser reconhecida, dependendo do modelo. Se a facilidade de Configuração de Modo de Arquitetura de z/Architecture é instalada, então, uma exceção de especificação é reconhecida se o bit 12 da palavra-chave não for um.
[0075] Os bits 0-32 da palavra dupla, com exceção do bit 12 invertido, são colocados nas posições 0-32 da PSW atual. Os bits 33-63 da palavra dupla são colocados nas posições 97-127 da PSW atual. Os bits 33-96 da PSW atual são ajustados para zero.
[0076] Uma função de sincronização de ponto de verificação e serialização é executada antes ou após o operando ser pesquisado e carregado e novamente após a operação ser concluída.
[0077] O operando deve ser designado em um limite de palavra dupla; caso contrário, uma exceção de especificação é reconhecida. Uma exceção de especificação pode ser reconhecida se o bit 12 do operando for zero, dependendo do modelo.
[0078] Os campos de PSW que devem ser carregados pela instrução não são verificados quanto à sua validade antes de serem carregados, exceto quanto à verificação do bit 12. No entanto, imediatamente após o carregamento, é reconhecida uma exceção de especificação, e ocorre uma interrupção de programa, quando algum dos itens seguintes é verdadeiro para a PSW recém-carregada: • Qualquer um dos bits 0, 2-4, 12 ou 24-30 é um. • Os bits 31 e 32 são ambos zero, e os bits 97-103 não são todos zeros. • Os bits 31 e 32 são um e zero, respectivamente.
[0079] Nesses casos, a operação é concluída, e código de comprimento de instrução resultante é 0.
[0080] A operação é suprimida em todas as exceções de direção e proteção. Código de Condição Resultante: O código é definido como especificado na nova PSW Carregada. Exceções do Programa: • Acesso (pesquisa e carregamento, operando 2) • Operação privilegiada • Especificação Nota de programação: O segundo operando deve ter o formato de uma PSW de ESA/390. Uma exceção de especificação será reconhecida durante ou após a execução de PSW DE CARGA se o bit 12 do operando for zero.
[0081] Detalhes adicionais relativos à PSW são descritos em “Development and Attributes of z/Architecture”, Plambeck et al, IBM J. Res. & Dev., Vol. 46, n° 4/5, julho/setembro de 2002.
[0082] Além dos processos acima, as operações e/ou comportamentos que podem ser alterados devido a uma instalação de uma facilidade de configuração de modo de arquitetura, o modo de restauração pode também ser alterado em uma ou mais concretizações preferidas, tal como explicado abaixo. (4) Alterações no modo de restauração (por exemplo, para restauração, restauração e limpeza e outras ações para restauração). Quando uma facilidade CZAM é instalada, a restauração da CPU configura o modo de arquitetura para o modo de z/Architecture, se for causado pela ativação, por exemplo, da chave de carregamento normal.
[0083] Existem várias funções de restauração que estão incluídas como parte dos modos ESA/390 e z/Architecture, incluindo, por exemplo, restauração da CPU, restauração inicial da CPU, restauração do subsistema, restauração de limpeza e restauração de acionamento, cada uma das quais é descrita abaixo.
Restauração da CPU
[0084] A restauração da CPU proporciona meios para apagar as indicações de verificação do equipamento e qualquer imprevisibilidade resultante no estado da CPU com a menor quantidade de informação destruída. Particularmente, é usada para limpar as condições de verificação quando o estado da CPU é preservado para análise ou retomada da operação. Se a facilidade de Configuração do Modo de Arquitetura de z/Architecture (CZAM) não estiver instalada, a restauração da CPU configura o modo de arquitetura para o modo ESA/390 se for causado pela ativação da chave de carregamento normal (uma facilidade de operador). Quando a facilidade de CZAM é instalada, a restauração da CPU configura o modo de arquitetura para o modo de z/Architecture se for causado por ativação da chave de carregamento normal. Quando a restauração da CPU configura o modo ESA/390, ela salva a PSW atual para que a PSW possa ser restaurada por uma ordem de Arquitetura da Configuração de Processador de Sinal que altera o modo de arquitetura de volta para a z/Architecture.
[0085] A restauração da CPU causa as seguintes ações, em uma concretização: 1. A execução da sequência de instrução atual ou outra sequência de processamento, tal como uma interrupção, é terminada, e todas as condições de interrupção de programa e interrupção de chamada de supervisor são eliminadas. 2. Todas as condições pendentes de interrupção externa que são locais para CPU são eliminadas. As condições de interrupção externa flutuantes não são limpas. 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 interrupção de verificação são eliminados. As condições de interrupção da verificação máquina flutuantes não são limpas. Qualquer condição de verificação da máquina que é reportada a todas as CPUs na configuração e que tenha se tornado pendente para uma CPU é considerada local para a CPU. 4. Todas as cópias de operandos ou instruções pré- pesquisadas e carregadas são apagadas. Além disso, quaisquer resultados a serem armazenados por causa da execução de instruções no intervalo de ponto de verificação atual são apagados. 5. A memória temporária à parte de ART (Tradução do Registro de Acesso) e a memória temporária à parte de tradução são apagadas das entradas. 6. Se a restauração for causada pela ativação da chave de carregamento normal em qualquer CPU na configuração, ocorrem as seguintes ações: a. Quando a facilidade CZAM não está instalada, o modo de arquitetura da CPU (e de todas as outras CPUs na configuração por causa da restauração inicial da CPU ou restaurações da CPU executadas por elas) é alternada do modo de z/Architecture para o modo ESA/390. Se a facilidade de CZAM estiver instalada, o modo de arquitetura da CPU (e de todas as outras CPUs na configuração por causa da restauração inicial da CPU ou restaurações da CPU executadas por elas) é configurado para o modo de z/Architecture. b. Quando uma facilidade de CZAM não está instalada, a PSW atual é salva para subsequente utilização por uma ordem de Configuração de Arquitetura de Processador de Sinal que restaura o modo de z/Architecture. c. Quando a facilidade de CZAM não está instalada, a PSW atual é alterada de 16 bytes para oito bytes. Os bits da PSW de oito bytes são configurados como segue: bits 0-11 e 13-32 são configurados iguais aos mesmos bits da PSW de 16 bytes, o bit 12 é configurado para um, e os bits 33-63 são iguais aos bits 97-127 da PSW de 16 bytes.
[0086] Uma reinicialização da CPU causada pela ativação da chave normal de restauração do sistema ou pela ordem de Restauração da CPU do Processador de Sinal, e qualquer restauração da CPU no modo ESA/390, não afetam o registro de PSW de z/Architecture capturado (isto é, uma PSW salva quando a CPU passou pela última vez do modo de z/Architecture para o modo ESA/390 por causa de uma ordem de Configuração de Arquitetura com código 0 ou uma restauração da CPU devido à ativação da chave de carregamento normal). 7. A CPU é colocada no estado parado após as ações 1-6 terem sido concluídas. Quando a sequência de IPL do tipo CCW segue a função de restauração naquela CPU, a CPU entra no estado de carregamento na conclusão da função de restauração e não entra necessariamente no estado parado durante a execução da operação de restauração. Quando a sequência de IPL direcionada à lista segue a função de restauração naquela CPU, a CPU entra no estado operacional e não entra necessariamente no estado parado durante a execução da operação de restauração.
[0087] Os registros, os conteúdos de armazenamento e o estado de condições externas à CPU permanecem inalterados pela restauração da CPU. No entanto, os conteúdos subsequentes do registro, localização ou estado são imprevisíveis se uma operação estiver progresso, a qual altera o conteúdo no momento da restauração. Um bloqueio mantido pela CPU ao executar PERFORM LOCKED OPERATION não é liberado pela restauração da CPU.
[0088] Quando a função de restauração na CPU é iniciada no momento em que a CPU executa uma instrução de E/S ou estiver executando uma interrupção de E/S, a operação atual entre a CPU e o subsistema de canal pode ou não ser concluída, e o estado resultante da facilidade de subsistema de canal associada pode ser imprevisível. Notas de programação: 1. A maioria das operações que alterariam um estado, uma condição ou o conteúdo de um campo não pode ocorrer quando a CPU estiver no estado parado. No entanto, algumas funções do processador de sinal e algumas funções do operador podem alterar esses campos. Para eliminar a possibilidade de perda de um campo quando a restauração da CPU for emitida, a CPU deve ser parada, e nenhuma função de operador deve estar em andamento. 2. Se o modo de arquitetura for alterado para o modo ESA/390 e o bit 31 da PSW atual for um, a PSW é inválida.
Restauração Inicial da CPU
[0089] A restauração inicial da CPU provê as funções de restauração da CPU em conjunto com a inicialização da PSW atual, PSW de z/Architecture capturada, temporizador da CPU, comparador de relógio, prefixo, controle de endereço de evento de ruptura, controle de ponto flutuante, registros programáveis de momentos do dia (TOD). Se uma facilidade CZAM não estiver instalada, a restauração inicial da CPU configura o modo de arquitetura para o modo ESA/390 se for causada pela ativação da chave de carregamento normal. Quando a facilidade de CZAM estiver instalada, a restauração inicial da CPU configura o modo de arquitetura para o modo z/Architecture se for causada pela ativação da chave de carregamento normal.
[0090] A restauração inicial da CPU combina as funções de restauração da CPU com as seguintes funções de limpeza e inicialização: 1. Quando a facilidade de CZAM não estiver instalada, se a restauração for causada pela ativação da chave de carregamento normal, o modo de arquitetura da CPU (e de todas as outras CPUs na configuração) é configurado para o modo ESA/390. Caso contrário, se a facilidade de CZAM estiver instalada, o modo de arquitetura da CPU (e de todas as outras CPUs na configuração) é configurado para um o modo de z/Architecture. 2. O conteúdo da PSW atual, PSW de z/Architecture capturada, prefixo, temporizador de CPU, comparador de relógio, e registrador programável de TOD são ajustados para zero. Quando a sequência de IPL segue a função de restauração nessa CPU, o conteúdo da PSW não é necessariamente definido como zero. 3. O conteúdo dos registros de controle é ajustado para seus valores iniciais de z/Architecture. Todos os 64 bits dos registros de controle são configurados independentemente de a CPU estar no modo de arquitetura ESA/390 ou z/Architecture. 4. Os conteúdos do registro de controle de ponto flutuante são configurados para zero. 5. Os conteúdos do registro de endereço de evento de ruptura são inicializados a 0000000000000001 hex. Essas funções de limpeza e inicialização incluem validação. A configuração da PSW atual para zero quando a CPU está no modo de arquitetura ESA/390 no final da operação faz com que a PSW seja inválida, uma vez que o bit de PSW 12 deve ser um nesse modo. Dessa forma, neste caso, se a CPU for colocada no estado operacional após uma restauração sem primeiro introduzir uma nova PSW, é reconhecida uma exceção de especificação.
Restauração do Subsistema
[0091] A restauração do subsistema provê um meio para limpar as condições de interrupção flutuantes, bem como para invocar a restauração do sistema de E/S.
Restauração de Limpeza
[0092] A restauração de limpeza faz com que a restauração inicial da CPU e a restauração do subsistema sejam executadas e, adicionalmente, limpa ou inicializa todos os registros e locais de armazenamento em todas as CPUs na configuração, com exceção do relógio de TOD. Essa limpeza é útil na depuração de programas e na garantia da privacidade do usuário. A restauração de limpeza também libera todos os bloqueios usados pela instrução PERFORM LOCKED OPERATION. Se a facilidade CZAM não estiver instalada, a restauração de limpeza configura o modo de arquitetura para o modo ESA/390. Quando a facilidade de CZAM está instalada, a restauração de limpeza configura o modo de arquitetura para o modo z/Architecture. A limpeza não afeta o armazenamento externo, tal como os dispositivos de armazenamento de acesso direto usados pelo programa de controle para manter o conteúdo das páginas não endereçáveis.
[0093] A restauração de limpeza combina a função de restauração inicial da CPU com uma função de inicialização de que provoca as seguintes ações: 1. Quando a facilidade de CZAM não está instalada, o modo de arquitetura de todas as CPUs na configuração é configurado para o modo ESA/390. Se a facilidade de CZAM estiver instalada, o modo de arquitetura de todas as CPUs na configuração é configurado para o modo de z/Architecture. 2. Os registros de acesso, gerais e de ponto flutuante de todas as CPUs na configuração são ajustados para zero. Todos os 64 bits dos registros gerais são ajustados para zero independentemente de a CPU estar no modo de arquitetura ESA/390 ou z/Architecture quando a função de restauração de limpeza foi iniciada. 3. O conteúdo do armazenamento principal na configuração e as chaves de armazenamento associadas são configurados para zero com um código de bloco de verificação válido. 4. Os bloqueios utilizados por qualquer CPU na configuração ao executar a instrução PERFORM LOCKED OPERATION são liberados. 5. Uma restauração do subsistema é executada. A validação é incluída na definição registros e nas chaves de armazenamento e armazenamento de limpeza. Notas de programação: 1. O modo de arquitetura não é alterado pela chave normal de restauração do sistema ou pela execução de uma ordem de Restauração Inicial de CPU ou Restauração de CPU de Processador de Sinal. Todas as CPUs na configuração estão no mesmo modo de arquitetura. 2. Para que a operação de restauração da CPU não afete o conteúdo dos campos que são deixados inalterados, a CPU não deve executar instruções e deve ser desativada para todas as interrupções no momento da restauração. Exceto para a operação do temporizador da CPU e para a possibilidade de ocorrência de uma interrupção de verificação da máquina, toda atividade da CPU pode ser interrompida colocando a CPU no estado de espera e desativando-a para interrupções externas e de E/S. Para evitar a possibilidade de causar uma restauração no momento em que o temporizador da CPU estiver sendo atualizado ou uma interrupção da verificação de máquina ocorrer, a CPU deve estar no estado parado. 3. Restauração da CPU, restauração inicial da CPU, restauração do subsistema e restauração de limpeza não afetam o valor e 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 de modelo e incluem mal funcionamentos que impedem a conclusão da operação em curso. Portanto, se a restauração da CPU ou a restauração inicial da CPU for executada enquanto a CPU estiver no estado de parada de verificação, o conteúdo da PSW, registros e locais armazenamentos, incluindo as chaves de armazenamento e o local de armazenamento acessado no momento do erro, pode ter valores imprevisíveis e, em alguns casos, o conteúdo ainda pode estar em erro após o estado de parada de verificação ser eliminado por essas restaurações. Nessa situação, é necessária uma restauração de limpeza para limpar o erro. Restauração de Acionamento A função de restauração de acionamento para um componente da máquina é executada como parte da sequência de acionamento para aquele componente. As sequências de acionamento para o relógio de TOD, armazenamento principal, armazenamento expandido e subsistema de canal podem ser incluídas como parte da sequência de acionamento da CPU, ou a sequência de acionamento para estas unidades pode ser iniciada separadamente. Restauração de Acionamento da CPU: A restauração de acionamento faz com que a restauração inicial da CPU seja executada e pode ou não fazer com que a restauração do sistema de E/S seja executada no subsistema de canal. O conteúdo de registros gerais, registros de acesso e registros de ponto flutuante são apagados para zero com código de bloco de verificação válido. Os bloqueios usados por PERFORM LOCKED OPERATION e associados à CPU são liberados a menos que sejam mantidos por uma CPU já acionada. Se uma facilidade de CZAM não estiver instalada e a restauração estiver associada com o estabelecimento de uma configuração, a CPU é colocada no modo ESA/390; caso contrário, a CPU é colocada no modo de arquitetura das CPUs já na configuração. Se uma facilidade de CZAM estiver instalada, a CPU é colocada no modo de z/Architecture. A restauração da CPU, a restauração inicial da CPU, a restauração do subsistema e a restauração de limpeza podem ser iniciadas manualmente utilizando as facilidades de operador. A restauração inicial da CPU é parte da função de carregamento inicial do programa. A restauração de acionamento é executada como parte de ligar a alimentação. Quando a facilidade de CZAM não está instalada, se a restauração é iniciada pela chave limpeza de restauração do sistema, de carregamento normal ou de carregamento de limpeza ou pela restauração de acionamento da CPU que estabelece a configuração, o modo de arquitetura é configurado para o modo ESA/390; caso contrário, o modo de arquitetura é inalterado, exceto que a restauração de acionamento define o modo para aquele das CPUs já na configuração. Se uma facilidade de CZAM estiver instalada, o modo de arquitetura é configurado para um modo de z/Architecture. Outros processos, operações e/ou comportamentos que podem ser alterados devido à instalação de uma facilidade de configuração de modo de arquitetura são descritos a seguir: 5. ) Supressão de outras ações relacionadas à restauração que são tomadas para facilitar a alteração entre o modo ESA/390 e z/Architecture, quando a restauração é executada. Quando a facilidade de CZAM não está instalada, a PSW atual é salva para posterior utilização por uma ordem de Configuração de Arquitetura de Processador de Sinal que restaura o modo de z/Architecture. Quando a facilidade de CZAM não está instalada, a PSW atual é alterada de 16 bytes para oito bytes. Os bits da PSW de oito bytes são configurados da seguinte forma, em um exemplo: bits 0-11 e 13-32 são configurados iguais aos mesmos bits da PSW de 16 bytes, bit 12 é configurado para um, e bits 33-63 são ajustados iguais aos bits 97-127 da PSW de 16 bytes. Quando a facilidade de CZAM está instalada, a PSW não é salva para uso subsequente por uma ordem de Configuração de Arquitetura de Processador de Sinal que restaura o modo de z/Architecture, e a PSW atual não é alterada de 16 bytes para 8 bytes. 6. ) Alteração do processo de configuração de uma CPU com um comando SCLP (Processador Lógico de Chamada de Serviço) de CPU, e operações de carga de chave. Em vez de configurar no ESA/390, configura no modo definido pela restauração. A configuração do comando SCLP de CPU coloca a CPU em questão no modo de arquitetura das CPUs já no estado configurado. Pelo menos a primeira CPU colocada em uma configuração é colocada ali em conjunto com uma restauração de acionamento de CPU e, como parte dessa restauração, é colocada no modo de arquitetura definido na restauração e acionamento da CPU. Um modelo pode, alternativamente, definir o modo de CPUs que estão no estado de espera quando ele configura o modo das CPUs configuradas. A ativação da chave de carregamento de limpeza ou da chave de carregamento normal configura o modo de arquitetura como definido na restauração de limpeza ou restauração inicial da CPU, respectivamente. 7. ) Alterações do SIGP para não permitir que uma ordem de Configuração de Arquitetura altere o modo de arquitetura para ESA/390.
[0094] Uma concretização de uma instrução de Processador de Sinal (SIGP) é descrita com referência à FIGURA 8A. Em uma concretização, uma instrução de Processador de Sinal 800 tem 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 (R1) 804; um segundo campo de registro (R3) 806; um campo base (B2) 808; e um campo de deslocamento (D2) 810. R1 designa um registro geral, o conteúdo do qual é o primeiro operando; R3 designa um registro geral, cujo conteúdo é o terceiro operando; e o conteúdo de um registro designado por R2 é adicionado ao deslocamento em D2 para fornecer um endereço de um segundo operando.
[0095] Na operação, um código de ordem de oito bits e, se solicitado, um parâmetro de 32 bits são transmitidos à CPU designada pelo endereço de CPU contido no terceiro operando. O resultado é indicado pelo código de condição e pode ser detalhado pelo status montado nas posições de bit 32-63 do primeiro local de operando.
[0096] O endereço do segundo operando não é usado para endereçar dados; em vez disso, os bits 56-63 do endereço contêm o código de ordem de oito bits. Os bits 0-55 do endereço do segundo operando são ignorados. O código de ordem especifica a função a ser executada pela CPU endereçada. A atribuição e definição dos códigos de ordem incluem, por exemplo, o seguinte, em um exemplo:
Figure img0003
[0097] O número binário de 16 bits contido nas posições de bit 48-63 do registro geral R3 forma o endereço da CPU. Os bits 0-47 do registro são ignorados. Quando a ordem especificada é a ordem de Configuração de Arquitetura, o endereço da CPU é ignorado; todas as outras CPUs na configuração são consideradas como sendo abordadas.
[0098] O registro geral que contém o parâmetro de 32 bits nas posições de bit 32-63 é R1 ou R1 + 1, que é o registrador de números ímpares. Depende do código de ordem se um parâmetro é provido e para que finalidade é utilizado.
[0099] Os operandos recém-descritos têm os seguintes formatos, em um exemplo: Registro geral designado por R1: Bits 0-31 não utilizados; bits 32-63 incluem status; Registro geral designado por R1 ou R1 + 1, que sempre é o registro ímpar: Bits 0-31 não utilizados; Bits 32-63 incluem o parâmetro; Registro geral designado por R3: Bits 0-48 não utilizados; Bits 49-63 incluem o endereço da CPU; Endereço do segundo operando: Bits 0-55 não utilizados; Bits 56-63 incluem a ordem de código.
[0100] Uma função de serialização é executada antes da operação começar e novamente após a operação ser concluída.
[0101] Quando o código de ordem é aceito e nenhum estado não nulo é retornado, código de condição 0 é definido. Quando a informação de status é gerada por esta CPU (a CPU que executa o SIGP) ou retornada pela CPU endereçada, o status é colocado nas posições de bits 32-63 do registro geral R1, os bits 0-31 do registro permanecem inalterados, 1 é definido.
[0102] Quando o percurso de acesso à CPU endereçada está ocupado, ou a CPU endereçada está operacional, mas em um estado em que não pode responder ao código de ordem, o código de condição 2 é definido.
[0103] Quando a CPU endereçada não está operacional (isto é, não é fornecida na instalação, não está na configuração, está em qualquer um dos modos de teste do engenheiro cliente, ou sua potência é desligada), o código de condição 3 é definido. Código da Condição Resultante: 0 Código de ordem aceito 1 Status armazenado 2 Ocupado 3 Não operacional Exceções de Programa: • Operação privilegiada • Restrição transacional
[0104] Quando a ordem de Configuração de Arquitetura de Processador de Sinal é especificada nas posições de bit 56-63 do endereço do segundo operando da instrução de Processador de Sinal, o conteúdo das posições de bit 56-63 do registro de parâmetro é usado como um código especificando um modo de arquitetura para o qual todas as CPUs na configuração devem ser configuradas: código 0 especifica o modo ESA/390, e os códigos 1 e 2 especificam um modo z/Architecture. O código 1 especifica que, para cada uma das CPUs na configuração, a PSW atual de ESA/390 é transformada em uma PSW de z/Architecture. O código 2 especifica que a PSW da CPU que executa o Processador de Sinal deve ser transformado em uma PSW de z/Architecture e que, para cada uma das outras CPUs na configuração, a PSW deve ser configurada com o valor do registro de PSW de z/Architecture para essa CPU. A configuração da PSW com o valor do registro de PSW de z/Architecture capturado restaurará a PSW que existia quando a CPU esteve pela última vez no modo de z/Architecture, desde que o registro de PSW de z/Architecture capturado não tenha sido configurado todo para zeros por uma restauração.
[0105] Os bits 0-55 do registro de parâmetros são ignorados. Os conteúdos do 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 endereçadas.
[0106] Quando a facilidade de CZAM não está instalada, a ordem é aceita somente se o código for 0, 1, ou 2, a CPU ainda não estiver no modo especificado pelo código, cada uma de todas as outras CPUs estiver tanto no estado parado ou parado de verificação, e nenhuma outra condição impedir a aceitação da ordem.
[0107] Quando a facilidade de CZAM está instalada, o código 0 não é aceito porque não é permitido um retorno ao modo ESA/390 e, uma vez que a CPU já está no modo de arquitetura de z/Architecture, a especificação dos códigos 1 e 2 resultam em uma conclusão indicando código de parâmetro inválido e condição 1. As outras condições de pré-requisito normalmente verificadas pela ordem de Configuração e Arquitetura podem ou não ser verificadas.
[0108] Se aceita, a ordem é concluída por todas as CPUs durante a execução de Processador de Sinal. Em nenhum caso, nesta concretização, diferentes CPUs podem estar em modos de arquitetura diferentes.
[0109] A ordem de Configuração de Arquitetura é concluída, como segue, em um exemplo: • Se o código no registro de parâmetro não for 0, 1 ou 2, ou se a CPU já estiver no modo de arquitetura especificado pelo código, a ordem não é aceita. Em vez disso, o bit 55 (parâmetro inválido) do registro geral designado pelo campo Rl de uma instrução de Processador de Sinal é configurado para um, e o código de condição 1 é definido. • Se não for verdadeiro que todas as outras CPUs na configuração estão no estado parado ou parado de verificação, a ordem não é aceita. Em vez disso, o bit 54 (estado incorreto) do registro geral designado pelo campo R1 da instrução de Processador de Sinal é configurado para um, e o código 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 da PSW para operações de controle é configurado para o modo de arquitetura especificado, e/ou outra indicação no ambiente computacional é definida indicando o modo de arquitetura especificado). • Se a ordem alterna o modo de arquitetura de ESA/390 para z/Architecture e o código é 1, então, para cada CPU na configuração, a PSW de oito bytes atual é alterada para uma PSW de 16 bytes, e os bits da PSW de 16 bytes são configurados conforme a seguir: bits 0-11 e 13-32 são configurados iguais aos mesmos bits da PSW de oito bytes, bit 12 e bits 33-96 são configurados para zero, e bits 97-127 são configurados iguais aos bits 33-63 da PSW de oito bytes. Além disso, o bit 19 do prefixo ESA/390, que se torna o bit 51 do prefixo de z/Architecture, é configurado para zero.
[0110] Se o código é 2, a PSW da CPU que executa o Processador de Sinal e os valores de prefixo de todas as CPUs são configurados como no caso do código-1. Para cada uma das outras CPUs na configuração, a PSW é configurada com o valor do registro de PSW de z/Architecture capturado. No entanto, o registro de PSW de z/Architecture capturado foi configurado todo para zero se a CPU tiver executado uma restauração, além da restauração da CPU, no momento da transição de modo de arquitetura ou posteriormente. • Se a ordem alterna o modo de arquitetura de z/Architecture para ESA/390, então, para cada CPU na configuração, (1) a PSW atual, que é a PSW atualizada no caso de a CPU executar Processador de Sinal, é salva no registro de PSW de z/Architecture capturado, e (2) a PSW atual de 16 bytes é alterada para uma PSW de oito bytes configurando os bits da PSW de oito bytes como segue: bits 0-11 E 13-32 são configurados iguais aos mesmos bits da PSW de 16 bytes, bit 12 é configurado para um, e bits 33-63 são configurados iguais aos bits 97-127 da PSW de 16 bytes. O bit 51 do prefixo de z/Architecture, que se torna o bit 19 do prefixo ESA/390, permanece inalterado. • As ALBs e TLBs de todas as CPUs na configuração são apagadas de seu conteúdo. • Uma função de serialização e sincronização de ponto de verificação é executada em todas as CPUs da configuração.
[0111] Se a ordem alterna o modo de arquitetura de z/Architecture para ESA/390 e a instrução de Processador de Sinal provoca a ocorrência de um evento PER de pesquisa e carregamento de instrução, apenas os 31 bits mais à direita do endereço da instrução são armazenados no campo de endereço PER de ESA/390.
[0112] Em uma concretização, com a CZAM, o seguinte é um pré-requisito: Cada uma das outras CPUs está no estado parado ou no estado de parada de verificação, e nenhuma outra condição impede a aceitação da ordem. Quando a facilidade de CZAM está instalada, o código 0 não é aceito porque um retorno ao modo ESA/390 não é permitido, e uma vez que a CPU já está no modo de arquitetura de z/Architecture, a especificação de códigos 1 e 2 resulta em uma conclusão indicando parâmetro inválido e código de condição 1. As outras condições de pré-requisito normalmente verificadas pela ordem de Configuração de Arquitetura podem ou não ser verificadas. Ainda em outra concretização, SIGP com código 1 e 2 indica uma conclusão bem-sucedida sem outra indicação.
[0113] Uma concretização de processamento associada com uma instrução SIGP para um código de ordem de Configuração de Arquitetura é descrito com referência à FIGURA 8B. Com referência à FIGURA 8B, um processador do ambiente computacional executa uma instrução SIGP e obtém um código de ordem que indica uma operação de Configuração de Arquitetura, ETAPA 850. Em um exemplo, o código de ordem é incluído no endereço do segundo operando da instrução SIGP.
[0114] Adicionalmente, o modo de arquitetura requisitado para comutação é obtido a partir, por exemplo, do registro de parâmetros especificado pela instrução SIGP, ETAPA 852. Além disso, é feita uma determinação quanto a se uma facilidade de modo de configuração de arquitetura, tal como CZAM, está instalada, CONSULTA 854. Isto é determinado, em um exemplo, por um indicador de facilidade.
[0115] Se CZAM não estiver instalada, então, é feita uma determinação adicional quanto a se a CPU já está no modo de arquitetura solicitado, CONSULTA 856. Se positivo, então, o status é provido, por exemplo, em um registro designado pela instrução SIGP, ETAPA 858, e o status é tratado como um erro, ETAPA 860. No entanto, se a CPU não estiver no modo solicitado, CONSULTA 856, então, uma determinação é feita quanto a se outras condições especificadas pela instrução, tais como se as outras CPUs do ambiente computacional sendo configuradas estão em estado parado, etc., são satisfeitas, CONSULTA 862. Se as condições não forem cumpridas, então, o processamento continua para a ETAPA 858. Caso contrário, a ordem é aceita, ETAPA 864, e o modo de arquitetura deve ser alterado. Dessa forma, a PSW é definida, conforme descrito acima, ETAPA 866, e o processamento para este aspecto da instrução termina, ETAPA 868.
[0116] Retornando para CONSULTA 854, se a CZAM estiver instalada, então, uma determinação é feita quanto a se a CPU está no modo requisitado, CONSULTA 870. Se a CPU já estiver no modo requisitado, então, em um exemplo, é provido status que a CPU já está no modo de arquitetura requisitado (por exemplo, z/Architecture), ETAPA 872. Nesta concretização, no entanto, este status é aceitável e não é tratado como um erro, ETAPA 874. Ou ele é ignorado ou, em outra concretização, um código de condição pode ser provido como um código de não-erro. Em ainda uma concretização adicional, o status indica meramente conclusão bem-sucedida. Existem outras possibilidades para indicar nenhum erro mesmo que a CPU já esteja no modo de arquitetura solicitado.
[0117] Retornando para CONSULTA 870, se, no entanto, a CPU não estiver no modo solicitado, então, a ordem não é aceita, já que é ilegal retornar ao modo de arquitetura (por exemplo, ESA/390), ETAPA 876. Status é provido, ETAPA 878, que é considerado um erro, ETAPA 880.
[0118] Em uma concretização, quando a CZAM está em um sistema como uma facilidade não selecionável, então, CONSULTA 854 pode ser omitida e o controle pode passar da ETAPA 852 diretamente para a ETAPA 870. Nessa concretização, as ETAPAS 854 a 868 podem não ser implementadas.
[0119] Em outra concretização, quando uma ordem para alternar para o modo de arquitetura atual é recebida, a ordem pode não ser aceita e um erro pode ser indicado na ETAPA 874.
[0120] Outros comportamentos, processos e/ou operações que podem mudar com base em uma CAM incluem: (8) Mudanças nos bits de facilidade: um novo bit, por exemplo, bit 138, é adicionado ao bit de facilidade para indicar a facilidade de Configuração de Modo de Arquitetura de z/Architecture, e o bit 2, que indica se o modo e arquitetura de z/Architecture está ativo, é configurado para um (indicando ativo).
[0121] Conforme descrito acima, um ambiente computacional pode ser inicializado em um modo de arquitetura (por exemplo, ESA/390) e, em seguida, alternado para outro modo de arquitetura (por exemplo, z/Architecture) para processamento; ou um ambiente computacional pode ser inicializado diretamente no modo de arquitetura em que está sendo processado (por exemplo, z/Architecture). Dessa forma, de acordo com um ou mais aspectos, utilitários de controle, incluindo, mas não limitados a, o sistema operacional ou outros utilitários autônomos que não precisam do sistema operacional para inicializar, são fornecidos que podem ser inicializados em uma primeira configuração de arquitetura em que o utilitário de controle é inicializado em um modelo de arquitetura (por exemplo, ESA/390) e, em seguida, alternado para outro modo de arquitetura (por exemplo, z/Architecture); ou uma segunda configuração de arquitetura, em que o utilitário de controle é inicializado e processado em um modelo de arquitetura selecionado (por exemplo, z/Architecture). Em uma concretização, o modo de arquitetura selecionado é a arquitetura em que o utilitário de controle é gravado.
[0122] Uma concretização de lógica associada com a inicialização de um utilitário de controle na primeira configuração de arquitetura é descrita com referência à FIGURA 9. Inicialmente, um processador (por exemplo, hardware) define uma palavra de status de programa (PSW) que deve ser usada para controlar a execução, ETAPA 900. Neste caso, o hardware carrega a PSW da memória e a PSW tem um formato de um modo de arquitetura, por exemplo, ESA/390. A configuração do código é, então, executada no modo de arquitetura, ETAPA 902. Por exemplo, o utilitário de controle começa a executar um primeiro conjunto de instruções especificado pela palavra de status de programa. Em seguida, em uma concretização, a preparação é feita para alternar de um modo de arquitetura, ESA/390, para outro modo de arquitetura, tal como a z/Architecture, ETAPA 904. Por exemplo, o utilitário de controle se prepara para mudar de modo, configurando um registro com um código de ordem (por exemplo, código de ordem de Configuração e Arquitetura) e passando esse registro para uma instrução referida como uma instrução de Processador de Sinal.
[0123] O processador executa a instrução de Processador de Sinal para colocar o processador e, portanto, o utilitário de controle, em modo de z/Architecture, ETAPA 906. Posteriormente, em uma concretização, uma determinação é feita sobre quanto à instrução de Processador de Sinal ser executada com sucesso, CONSULTA 908. Se houver uma condição de erro de processador de sinal, então, a inicialização do utilitário de controle é abortada, ETAPA 910; caso contrário, o código remanescente é executado no modo de z/Architecture, ETAPA 912.
[0124] Em uma concretização adicional, o utilitário de controle, que é gravado para uma arquitetura selecionada (por exemplo, z/Architecture), é diretamente inicializado naquela arquitetura em vez de ser inicializado na uma arquitetura e modos de comutação. Uma concretização da lógica para inicializar um utilitário de controle diretamente em um sistema que não requer uma comutação, tal como um sistema que inclui a facilidade de CZAM, é descrita com referência à FIGURA 10. Com referência à FIGURA 10, inicialmente, o processador (por exemplo, hardware) define a palavra de status de programa a partir do armazenamento, ETAPA 1000. Em um exemplo, uma nova palavra de status de programa de 16 bytes (PSW) é criada a partir de locais de armazenamento absolutos selecionados (por exemplo, locais 0-7). A nova PSW de 16 bytes é formado, por exemplo, a partir do conteúdo da palavra dupla de armazenamento selecionada (por exemplo, locais 0-7). Bit 12 da palavra dupla deve ser um; caso contrário, um erro pode ser indicado. (O erro pode ser uma exceção de especificação que é reconhecida, uma verificação de máquina ou ainda outra indicação de erro). Bits 0-32 da PSW recém-criada são configurados para bits 0-32 da palavra dupla selecionada, exceto com o bit 12 invertido. Bits 3396 da PSW recém-criada são configurados para zero. As posições de bit 97-127 da PSW recém-criada são inicializadas a partir dos bits 33-63 da palavra dupla selecionada.
[0125] Posteriormente, o código de configuração é executado no modo de z/Architecture, já que o sistema já está nesse modo, ETAPA 1002. Além disso, o restante do código é executado também no modo de z/Architecture, ETAPA 1004.
[0126] Embora as sequências de boot acima possam ser utilizadas separadamente dependendo da configuração de arquitetura (por exemplo, a primeira configuração ou a segunda configuração), em uma concretização, uma sequência de inicialização é provida, que pode ser utilizada independentemente do modo de arquitetura em que o utilitário de controle está sendo inicializado. Ou seja, uma sequência de inicialização comum que pode ser utilizada em uma pluralidade de configurações de arquitetura, incluindo, mas não limitadas a primeira configuração de arquitetura e a segunda configuração de arquitetura.
[0127] Uma concretização de lógica associada com uma sequência de inicialização comum é descrita com referência à FIGURA 11. Inicialmente, o processador (por exemplo, hardware) define a palavra de status de programa a partir do armazenamento, ETAPA 1100. Nesta concretização, o modo de arquitetura pode ser qualquer um de uma pluralidade de modos, incluindo um modo herdado, tal como ESA/390, ou um modo de arquitetura aprimorado, tal como z/Architecture. Dessa forma, a palavra de status de programa reflete o modo inicial de arquitetura do processador.
[0128] Em seguida, um subconjunto comum de instruções pode ser executado para executar uma certa quantidade de configuração, ETAPA 1102. Essas instruções são igualmente aplicáveis aos diferentes modos de arquitetura, embora possam ter um comportamento diferente no modo. São comuns na medida em que são definidos nas diferentes arquiteturas e podem ser executadas independentemente do modo de arquitetura atual.
[0129] Além de e/ou como parte da execução do subconjunto comum de instruções para executar alguma configuração, uma alternância de modo é executada, independentemente do modo atual de arquitetura, ETAPA 1104. Como acima, um código de ordem é colocado em um registro e encaminhado para a instrução SIGP. A instrução SIGP é executada para colocar o ambiente no modo de z/Architecture, ETAPA 1106. Em particular, em uma concretização, se o ambiente estiver em ESA/390, então, a execução da instrução SIGP coloca o ambiente no modo de z/Architecture. No entanto, se o ambiente já estiver no modo de z/Architecture, então a execução da instrução SIGP não executa uma alternância de modo, e em vez disso, provê status que o ambiente já está no modo de z/Architecture. Esse status é aceito como um não- erro.
[0130] O restante do código é, então, executado no modo de z/Architecture, ETAPA 1108.
[0131] Um exemplo de uma sequência de inicialização simples pode incluir, por exemplo, uma ou mais instruções de controle de carga (LCTL) para inicializar registros de controle, carregar um registro com um registro de comando para executar uma instrução SIGP, e uma instrução SIGP. Essas instruções podem ser emitidas em modo ESA/390 ou z/Architecture com resultados “similares”, de tal forma que, após a conclusão do SIGP, o sistema tenha sido inicialmente configurado e esteja no modo de z/Architecture. Em pelo menos uma concretização, o código pode verificar o código de condição após a conclusão da instrução SIGP para determinar se o sistema foi inicialmente configurado no modo ESA/390 (por exemplo, por um valor de código de condição de 0 indicando que uma mudança bem-sucedida de ESA/390 foi executada) ou z/Architecture (por exemplo, por um código de condição de 1 indicando que nenhuma alteração foi executada porque o sistema já estava no modo de arquitetura solicitado).
[0132] Outra concretização de utilização de uma sequência de inicialização comum para inicializar um utilitário de controle é descrita com referência à FIGURA 12. Neste exemplo, o processador (por exemplo, hardware) define a PSW a partir do armazenamento no modo de arquitetura que o processador está inicialmente processando, como descrito acima, ETAPA 1202. Em seguida, o bit 12 da PSW é verificado para determinar o modo de arquitetura do ambiente computacional, CONSULTA 1202. Em uma concretização, para verificar o bit de PSW, é utilizada uma instrução de Extração de PSW. Um exemplo de uma instrução de Extração de PSW é descrito com referência à FIGURA 13.
[0133] Referindo-se à FIGURA 13, em uma concretização, uma instrução de Extração de PSW 1300 inclui um código de operação 1302 incluindo um código de operação para indicar uma operação de extração de PSW; um primeiro campo de registro (R1) 1304; e um segundo campo de registro (R2) 1306. Em operação, os bits 0-31 da PSW atual são colocados nas posições de bit 32-63 do primeiro operando (registro especificado pelo primeiro campo de registro), e os bits 0-31 do operando permanecem inalterados. Subsequentemente, os bits 32-63 da PSW atual são colocados nas posições de bit 32-63 do segundo operando (registro especificado pelo segundo campo do registro), e os bits 031 do operando permanecem inalterados. A ação associada com o segundo operando não é executada, em um exemplo, se o campo R2 for zero.
[0134] Retornando à FIGURA 12, se o modo de arquitetura for, por exemplo, ESA/390 (por exemplo, bit 12 da PSW = 1), então, o código de configuração é executado em ESA/390, ETAPA 1204. O processador se prepara para alternância de modo, ETAPA 1206, e a instrução SIGP é usada para alterar o modo para o modo de z/Architecture, ETAPA 1208. Além disso, é feita uma determinação quando à conclusão bem-sucedida ou não da instrução SIGP, ETAPA 1210. Se não tiver sido concluída com êxito, então, um erro é apresentado, ETAPA 1214. Caso contrário, o restante do código é executado no modo de z/Architecture, ETAPA 1216.
[0135] Retornando para CONSULTA 1202, se a verificação do bit 12 da PSW indicar que o ambiente computacional está no modo de z/Architecture (por exemplo, bit 12 da PSW = 0), então, o código de configuração é executado no modo de z/Architecture, ETAPA 1215, e o processamento continua com a execução do resto do código na z/Architecture, ETAPA 1216.
[0136] Uma concretização adicional de utilização de uma sequência de inicialização comum é descrita com referência à FIGURA 14. Neste exemplo, o processador (por exemplo, hardware) define a PSW a partir do armazenamento com base no modo de arquitetura em que o processador é inicialmente processado, como descrito acima, ETAPA 1400 e o código de configuração é executado usando um subconjunto comum de instruções (por exemplo, um pequeno número de instruções, tais como 1-5 instruções), ETAPA 1402. O processador se prepara para uma alternância de modo, ETAPA 1404, e a instrução SIGP é executada para mudar para o modo de z/Architecture, ETAPA 1406.
[0137] Uma determinação é feita sobre se a instrução SIGP foi concluída com êxito, CONSULTA 1408. Se bem-sucedida, então, algum código de z/Architecture é executado em resposta a ser inicializado no modo ESA/390, ETAPA 1410, e o restante do código é executado na z/Architecture, ETAPA 1412. Por exemplo, um indicador pode ser salvo indicando que uma restauração deve ser executada no modo ESA/390, quando uma restauração de software deve ser executada. Em outro aspecto, os modelos inicializando em modo ESA/390 podem ter alguns registros de controle inicializados de forma diferente dos modelos inicializando no modo de z/Architecture, e o código em resposta a ter inicializado no modo ESA/390 pode reconfigurar os controles para corresponder às definições que são preferidas para a z/Architecture.
[0138] Retornando a CONSULTA 1408, se a instrução SIGP não executa uma alternância porque o ambiente computacional já está no modo de z/Architecture, então algum código de z/Architecture em resposta a ter sido inicializado em um modo de z/Architecture é executado, ETAPA 1414, e o resto do código é executado também no modo de z/Architecture, ETAPA 1412. Por exemplo, um programador pode salvar um indicador de que uma restauração deve ser executada para modo de z/Architecture. Em outro aspecto, os modelos inicializando no modo de z/Architecture podem oferecer registros de controle adicionais que poderiam ser inicializados na ETAPA 1414, que seriam inadequados para inicializar se o sistema fosse inicializado no modo ESA/390. Novamente, nesta concretização, o SIGP pode “falhar”, pois não executa uma alternância, mas não há nenhuma condição de erro. É um uso aceitável de SIGP.
[0139] Além da inicialização de utilitários de controle acima, a reinicialização dos utilitários de controle devido a restaurações é também fornecida. Em uma concretização, há um código que restaura uma máquina inteira e emula uma reinicialização restaurando o sistema para um modo específico, tal como um modo herdado (por exemplo, ESA/390), e ramificando para um carregador de inicialização. No entanto, com a instalação de CZAM, isso não ocorre. Portanto, existem algumas opções, incluindo, por exemplo, determinar se o modelo atual é ativado em um modo herdado (por exemplo, ESA/390) ou em um modo de arquitetura aprimorado (por exemplo, z/Architecture), configurando o modo de máquina para um modo correspondente e ramificando o carregador de inicialização nos modos de boot nativos dependendo do modo da máquina; ou reiniciando como o modelo atual como um modelo de boot de z/Architecture independentemente do modo de boot de hardware nativo, isto é, executando uma reinicialização iniciada por software como se fosse uma reinicialização de z/Architecture, mesmo em sistemas ESA/390. Isto é possível desde que seja uma reinicialização de software, também conhecida como uma reinicialização quente, em que o processador recicla como se estivesse fazendo uma reinicialização, mas sem sair para o disco e carregar um utilitário de controle inteiro novamente. Os registros e a PSW inicializam para o mesmo estado como se um boot fosse executado e, então, ramificam para a primeira instrução da sequência de inicialização.
[0140] Uma concretização de restauração é descrita com referência à FIGURA 15. Inicialmente, o processador inicia a destruição do ambiente, incluindo, por exemplo, a desconexão da E/S, a interrupção da máquina e o encerramento geral das operações, ETAPA 1500. Após, os bits de facilidade ou outro indicador é lido para se determinar se CZAM está instalada, ETAPA 1502. Se CZAM não estiver instalada, CONSULTA 1504, então, o processador se prepara para alternância de modo configurando o registro com o código de ordem para a instrução SIGP, ETAPA 1506, e a instrução SIGP é executada para alternar para modo ESA/390, ETAPA 1508. Em seguida, uma ramificação é executada para o início de uma sequência de inicialização de utilitário de controle, exemplos do que são descritos acima, ETAPA 1510. O código de boot é, então, executado no modo ESA/390 com uma mudança para modo de z/Architecture.
[0141] Retornando para CONSULTA 1504, se CZAM estiver instalada, então, nenhuma alternância é necessária uma vez que o ambiente computacional já está no modo de z/Architecture e, portanto, uma ramificação é executada para o início da sequência de inicialização de utilitário de controle, como descrito acima, ETAPA 1514. O código de boot é, então, executado no modo de z/Architecture, ETAPA 1512.
[0142] Em uma concretização em que nenhum indicador de facilidade de CZAM é provido, um indicador salvo como parte das etapas 1410, 1414 pode ser usado em vez disso para indicar um modo de arquitetura de configuração de boot.
[0143] Uma concretização adicional da lógica de restauração é descrita com referência à FIGURA 16. Inicialmente, o processador inicia a destruição do ambiente, incluindo, por exemplo, a desconexão da E/S, a interrupção da máquina e o encerramento geral das operações, ETAPA 1600. Em seguida, os bits de facilidade ou outro indicador é lido para determinar se a CZAM está instalada, ETAPA 1602. Se a CZAM não estiver instalada, CONSULTA 1604, então, o processador se prepara para alternância de modo, ETAPA 1606, e a instrução SIGP é executada para mudar para o modo ESA/390, ETAPA 1608. Por outro lado, a PSW é configurada para uma PSW de restauração, ETAPA 1610. Por exemplo, a PSW é inicializada para um valor conhecido na restauração, por exemplo, para o valor armazenado em locais absolutos 0 a 7, conforme descrito acima neste documento, ou por um valor fixo definido pela especificação da arquitetura. Em seguida, uma ramificação é executada para o início do código de boot de utilitário de controle, conforme descrito acima, ETAPA 1612. O código de boot é, então, executado no modo ESA/390 com uma alteração para z/Architecture, ETAPA 1614.
[0144] Retornando para CONSULTA 1604, se a CZAM estiver instalada, então, nenhuma troca é necessária, a PSW é configurada para a PSW de restauração, ETAPA 1616, uma ramificação é executada para o início do código de boot de utilitário de controle, ETAPA 1618, e o código de boot é executado no modo de z/Architecture, ETAPA 1614.
[0145] Em ainda outra concretização de restauração, a restauração é executada como se no modo de z/Architecture, como descrito com referência à FIGURA 17. Nesta concretização, inicialmente, o sistema começa a derrubar o ambiente, ETAPA 1700. Em seguida, a PSW é configurada para a restauração da PSW de z/Architecture, ETAPA 1702, e uma ramificação é executada para o início do código de boot de utilitário de controle, ETAPA 1704. O código de boot é executado no modo de z/Architecture independentemente se a máquina inicializa em ESA/390 ou z/Architecture nativamente, ETAPA 1706.
[0146] Em um aspecto adicional, a lógica de detecção é provida para determinar se o utilitário de controle sendo inicializado é compatível com a sequência de inicialização comum. Por exemplo, nos exemplos neste documento, o utilitário de controle é gravado para uma arquitetura particular, por exemplo, a z/Architecture, e uma sequência de inicialização é baseada nisso. Dessa forma, uma incompatibilidade ocorre caso se verifique que o utilitário de controle é gravado para outra arquitetura, tal como ESA/390, sem contemplação da z/Architecture.
[0147] Dessa forma, em uma concretização, uma verificação é executada para uma instrução SIGP no início de uma sequência de inicialização, que será uma indicação, em um exemplo, quanto a se o utilitário de controle é destinado a uma z/Architecture. Esta lógica pode ser incluída diretamente na lógica do programa implementando a inicialização da sequência de inicialização, e a instrução SIGP pode ser incluída na sequência de inicialização conforme descrito na FIGURA 11.
[0148] Uma concretização dessa lógica de detecção é descrita com referência à FIGURA 18. Inicialmente, até um número predefinido de instruções na sequência de inicialização é executado, ETAPA 1800. Se um número predefinido de instruções, n, tiver sido executado sem execução de uma instrução SIGP, CONSULTA 1802, então, é tomada uma ação corretiva, já que se assume que o utilitário de controle não é um utilitário de boot comum, ETAPA 1804. Essa ação inclui, por exemplo, parar a execução, levantar uma exceção e/ou prover uma notificação.
[0149] Retornando para CONSULTA 1802, se SIGP tiver sido executada, então, assume-se que a sequência de inicialização pode continuar sendo processada, conforme descrito acima, ETAPA 1806.
[0150] A lógica acima supõe que uma SIGP será emitida na sequência de inicialização comum. Se outros tipos de sequências de boot forem usados, em que uma SIGP pode não ser executada, então, outra lógica de detecção pode ser utilizada. Em outra concretização, a mesma lógica de detecção é usada quando um utilitário de controle é adaptado para a execução exclusiva em sistemas que inicializam nativamente no modo de z/Architecture, conforme descrito, por exemplo, na FIGURA 10. A sequência de inicialização da FIGURA 10 é aumentada, por exemplo, com um indicador de Configuração de Arquiteturas IGP (ou outro indicador, tal como, incluindo, mas não limitado a, um SIGP recentemente definido “sustentar z/Architecture” indicando que um aplicativo de z/Architecture está sendo inicializado) para cumprir os requisitos da lógica de controle da FIGURA 18.
[0151] Uma capacidade de utilizar uma sequência de inicialização comum para inicializar um utilitário de controle em uma pluralidade de sistemas de arquitetura é descrita em detalhes acima. Com esta capacidade, o processador pode inicializar o mesmo sistema operacional e outros utilitários de controle em ambientes computacionais de inicialização em ESA/390 e alternar para z/Architecture, e aqueles que inicializam na z/Architecture. O hardware é modificado, em um exemplo, para não reportar um erro no SIGP, se o SIGP tentar mudar para o mesmo modo de arquitetura.
[0152] Aspectos adicionais relativos a uma sequência de inicialização comum são descritos com referência à FIGURA 19. Inicialmente, uma sequência de inicialização é iniciada para inicializar um utilitário de controle, tal como um sistema operacional, em um modo selecionado de arquitetura, ETAPA 1900. O modo de arquitetura selecionado é baseado em uma arquitetura selecionada para a qual o utilitário de controle é gravado. O utilitário de controle é configurado para ser inicializado em pelo menos uma de uma primeira configuração de arquitetura que inicializa em uma arquitetura e troca para uma arquitetura selecionada para processamento, ou em uma segunda configuração de arquitetura que é inicializada e é processada na arquitetura selecionada.
[0153] A sequência de inicialização é executada e inclui, por exemplo, a configuração da palavra de status de programa com base na configuração de arquitetura atual do processador, ETAPA 1902. Além disso, uma ou mais instruções são executadas independentemente se o processador deve executar a inicialização com base na primeira configuração de arquitetura ou na segunda configuração de arquitetura, ETAPA 1904. A uma ou mais instruções podem incluir uma preparação para alternância de modo, ETAPA 1906, em que o processador se prepara para executar uma operação de troca independentemente do modo de arquitetura do processador. Por exemplo, um código de ordem de Configuração de Arquitetura é provido a uma instrução SIGP para executar a operação de troca, ETAPA 1908. A operação de troca solicita uma alternância de modos de arquitetura para o processador independentemente se o processador deve executar a inicialização na uma arquitetura ou na arquitetura selecionada. A operação de troca terá um desempenho diferente com base em qual arquitetura, a uma arquitetura ou a arquitetura selecionada, o processador deve executar inicialização. Por exemplo, se o processador estiver na uma arquitetura, então, uma operação de troca alterna da uma arquitetura para a arquitetura selecionada e o processamento do utilitário de controle está na arquitetura selecionada. No entanto, se o processador já estiver na arquitetura selecionada, então, a operação de troca solicita uma alternância do modo de arquitetura selecionado para o modo de arquitetura selecionado. Isso resulta em armazenamento de status indicando que o processador está atualmente no modo de arquitetura selecionado, mas esse status é tratado como aceitável para um emissor da operação de troca. Ou seja, não é considerado um erro. Após a execução da operação de troca, o utilitário de controle é inicializado e o código é executado na arquitetura selecionada, ETAPA 1910.
[0154] Nos fluxos descritos neste documento, a preparação para a operação de troca de modo e a instrução SIGP podem ser mostrados separadamente do subconjunto comum de instruções. No entanto, eles podem ser incluídos no subconjunto comum e/ou separados dele.
[0155] Aspectos da facilidade de utilitário de boot comum podem ser usados com uma ou mais outras facilidades incluindo, por exemplo, a facilidade CZAM e uma facilidade No-DAT, descritas nos seguintes pedidos comumente atribuídos, codepositados “Architecture Mode Configuration”, Michael K. Gschwind, (IBM Docket No.: POU920140021US1); e “Managing Processing Associated with Selected Architectural Facilities”, Gainey et al, (IBM Docket No.: POU920140020US1), respectivamente, cada um dos quais é incorporado neste documento por referência em sua totalidade.
[0156] Em referência à FIGURA 20, em um exemplo, um produto de programa de computador 2000 inclui, por exemplo, um ou mais meios de armazenamento legíveis por computador não transitórios 2002 para armazenar meios de código de legível por computador, lógica e/ou instruções 2004 nos mesmos para fornecer e facilitar uma ou mais concretizações preferidas.
[0157] 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 meios) tendo instruções de programa legíveis por computador para fazer um processador realizar aspectos da presente invenção.
[0158] O meio de armazenamento legível por computador pode ser um dispositivo tangível que pode reter e armazenar instruções para uso por um dispositivo de execução de instrução. O meio de armazenamento legível por computador pode ser, por exemplo, mas sem limitação, 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 semicondutores, ou qualquer combinação adequada dos anteriores. Uma lista não exaustiva de exemplos mais específicos do meio de armazenamento legível por computador inclui os seguintes: um disco de computador portátil, um disco rígido, uma memória de acesso aleatório (RAM), uma memória somente de leitura (ROM), uma memória de leitura programável apagável (EPROM ou memória Flash), uma memória estática de acesso aleatório (SRAM), uma memória somente de leitura de disco compacto portátil (CD-ROM), um disco versátil digital (DVD), um cartão de memória, um disquete, um dispositivo mecanicamente codificado, tal como placas de punção ou estruturas levantadas em uma ranhura tendo instruções gravadas sobre elas, e qualquer combinação adequada dos anteriores. Um meio de armazenamento legível por computador, como usado neste documento, não deve ser interpretado como sendo sinais transitórios per se, tais como ondas de rádio ou outras ondas eletromagnéticas de propagação livre, ondas eletromagnéticas se propagando através de um guia de ondas ou outros meios de transmissão (por exemplo, pulsos de luz passando através de um cabo de fibra óptica), ou sinais elétricos transmitidos através de um fio.
[0159] Instruções de programa legíveis por computador descritas neste documento podem ser baixadas para os respectivos dispositivos de computação/processamento de um meio de armazenamento legível por computador ou para um computador externo ou dispositivo de armazenamento externo através de uma rede, por exemplo, a Internet, uma rede de área local, uma rede de área ampla e/ou uma rede sem fio. A rede pode compreender cabos de transmissão de cobre, fibras ópticas de transmissão, transmissão sem fio, roteadores, firewalls, interruptores, computadores de portais e/ou servidores de bordo. Um cartão adaptador de rede ou interface de rede em cada dispositivo de computação/processamento recebe instruções de programa legíveis por computador da rede e encaminha as instruções de programa legíveis por computador para armazenamento em um meio de armazenamento legível por computador dentro do respectivo dispositivo de computação/processamento.
[0160] Instruções de programa legíveis por computador para realizar as operações da presente invenção podem ser instruções de montagem, instruções de arquitetura ISA (ISA), instruções de máquina, instruções dependentes de máquina, microcódigo, instruções de firmware, dados de configuração de estado, ou código fonte ou código de objeto gravado em qualquer combinação de uma ou mais linguagens de programação, incluindo uma linguagem de programação orientada por objeto, tal como Smalltalk, C++ ou semelhantes, e linguagens de programação procedimentais convencionais, tais como a linguagem de programação “C” ou linguagens de programação similares. As instruções de programa legíveis por computador podem ser executadas totalmente no computador do usuário, parcialmente no computador do usuário, como um pacote de software independente, parcialmente no computador do usuário e parcialmente em um computador remoto ou totalmente no computador remoto ou servidor. No último cenário, o computador remoto pode ser conectado ao computador do usuário através de qualquer tipo de rede, incluindo uma rede de área local (LAN) ou uma rede de área ampla (WAN), ou a conexão pode ser feita a um computador externo (por exemplo, através da Internet usando um Provedor de Serviço da Internet). Em algumas concretizações, circuitos eletrônicos incluindo, por exemplo, circuitos lógicos programáveis, redes de portas lógicas programáveis (FPGA) ou redes lógicas programáveis (PLA) podem executar as instruções de programa legíveis por computador utilizando informações de estado das instruções de programa legíveis por computador para personalizar os circuitos eletrônicos, a fim de executar aspectos da presente invenção.
[0161] Aspectos da presente invenção são descritos neste documento com referência às ilustrações de fluxograma e/ou diagramas de blocos de métodos, aparelhos (sistemas) e produtos de programa de computador de acordo com concretizações preferidas da invenção. Será compreendido 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, pode ser implementado por instruções de programa legíveis por computador.
[0162] Essas instruções de programa legíveis por computador podem ser providas a um processador de um computador de uso geral, computador de aplicação específica ou outros aparelhos de processamento de dados programáveis para produzir uma máquina, tal que as instruções, que executam através do processador do computador ou outros aparelhos de processamento de dados programáveis, criam meios para implementar as funções/ações especificadas no bloco ou blocos do fluxograma e/ou diagrama de blocos. Essas instruções de programa legíveis por computador podem também ser armazenadas em um meio legível por computador que pode direcionar um computador, outros aparelhos de processamento de dados programáveis e/ou outros dispositivos para funcionar de maneira particular, tal que o meio de armazenamento legível por computador tendo instruções nele armazenadas compreende um artigo de fabricação incluindo instruções que implementam aspectos da função/ação especificada no bloco ou blocos do diagrama de blocos e/ou fluxograma.
[0163] As instruções de programa legíveis por computador podem também ser carregadas em um computador, outros aparelhos de processamento de dados programáveis ou outros dispositivos para fazer com que uma série de etapas operacionais seja executada no computador, outros aparelhos programáveis ou outros dispositivos para produzir um processo implementado por computador, tal que as instruções que executam no computador, outros aparelhos programáveis ou outro dispositivo implementam as funções/ações especificadas no bloco ou blocos do diagrama de blocos e/ou fluxograma.
[0164] O fluxograma e diagramas de blocos 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 preferidas da invenção. Nesse sentido, cada bloco no fluxograma ou diagramas de blocos pode representar um módulo, segmento ou porção de instruções, que compreende uma ou mais instruções executáveis para implementação da função(s) lógica especificada. 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 consecutivo podem, de fato, ser executados substancialmente simultaneamente ou os blocos podem, algumas vezes, ser executados na ordem inversa, dependendo da funcionalidade envolvida. Será também notado que cada bloco da ilustração de fluxograma e/ou diagramas de bloco, e combinações de blocos na ilustração de diagramas de bloco e/ou fluxograma, pode ser implementado por sistemas à base de hardware de aplicação específica que executam as ações ou funções especificadas, ou combinações de instruções de computador e hardware de aplicação específica.
[0165] Além do exposto acima, um ou mais aspectos podem ser fornecidos, oferecidos, implantados, gerenciados, atendidos etc. por um provedor de serviço que oferece gerenciamento de ambientes de cliente. Por exemplo, o provedor de serviço pode criar, manter, suportar etc. código de computador e/ou uma infraestrutura de computador que executa um ou mais aspectos para um ou mais clientes. Em troca, o provedor de serviço pode receber pagamento do cliente sob um contrato de assinatura e/ou taxa, como exemplos. Adicionalmente ou alternativamente, o provedor de serviço pode receber pagamento da venda de conteúdo publicitário a um ou mais terceiros.
[0166] Em um aspecto, um aplicativo pode ser implantado para executar uma ou mais concretizações preferidas. Como um exemplo, a implantação de um aplicativo compreende prover infraestrutura de computador operável para executar uma ou mais concretizações.
[0167] Como um aspecto adicional, uma infraestrutura de computação pode ser implementada compreendendo a integração de código legível por computador em um sistema de computador, em que o código em combinação com o sistema de computador é capaz de executar uma ou mais concretizações preferidas.
[0168] Como ainda outro aspecto, um processo para integrar a infraestrutura de computação compreendendo a integração de código legível por computador em um sistema de computador pode ser fornecido. 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 executar uma ou mais concretizações.
[0169] Embora várias concretizações sejam descritas acima, elas são somente exemplos. Por exemplo, ambientes computacionais de outras arquiteturas podem ser usados para incorporar e utilizar uma ou mais concretizações. Além disso, diferentes instruções, formatos de instrução, campos de instrução e/ou valores de instrução podem ser usados. Além disso, outras sequências de boot e re-boot podem ser usadas. Muitas variações são possíveis.
[0170] Além disso, outros tipos de ambientes computacionais podem se beneficiar e ser usados. Como exemplo, um sistema de processamento de dados adequado para armazenamento e/ou execução de código de programa é utilizável que inclui pelo menos dois processadores acoplados diretamente ou indiretamente a elementos de memória através de um barramento de sistema. Os elementos de memória incluem, por exemplo, memória local empregada durante execução real do código de programa, armazenamento em massa e memória cache que fornecem armazenamento temporário de pelo menos algum código de programa a fim de reduzir o número de vezes que o código deve ser recuperado do armazenamento em massa durante a execução.
[0171] Dispositivos de Entrada/Saída ou de E/S (incluindo, mas não limitados a, teclados, telas, dispositivos indicadores, DASD, fita, CDs, DVDs, thumb drives, outros meios de memória etc.) podem ser acoplados ao sistema seja diretamente ou através de intervenção de controladores E/S. Adaptadores de rede podem também ser acoplados ao sistema para permitir que o sistema de processamento de dados seja acoplado a outros sistemas de processamento de dados ou impressoras remotas ou dispositivos de armazenamento através de intervenção de redes públicas ou privadas. Modems, modems a cabo e placas Ethernet são apenas alguns dos tipos disponíveis de adaptadores de rede.
[0172] Em referência à FIGURA 21, componentes representativos de um sistema de computador hospedeiro 5000 para implementar uma ou mais concretizações são retratados. O computador hospedeiro representativo 5000 compreende uma ou mais CPUs 5001 em comunicação com a memória de computador (isto é, armazenamento central) 5002, bem como interfaces de E/S para dispositivos de meios de armazenamento 5011 e redes 5010 para comunicação com outros computadores ou SANs e semelhantes. A CPU 5001 é compatível com uma arquitetura tendo uma instrução de arquitetura configurada e funcionalidade de arquitetura. A CPU 5001 pode ter tradução de registro de acesso (ART) 5012, que inclui uma memória buffer lookaside ART (ALB) 5013 para seleção de um espaço de endereço a ser usado por tradução dinâmica de endereço (DAT) 5003 para transformar endereços de programa (endereços virtuais) em endereços reais de memória. Uma DAT tipicamente inclui uma buffer lookaside de tradução (TLB) 5007 para traduções temporárias de modo que acessos posteriores ao bloco de memória de computador 5002 não necessitem de adiamento da tradução de endereço. Tipicamente, uma memória cache 5009 é empregada entre a memória de computador 5002 e o processador 5001. A memória cache 5009 pode ser hierárquica tendo uma memória cache ampla disponível para mais de uma CPU, memórias cache menores, mais rápidas (nível inferior) entre a memória cache grande e cada CPU. Em algumas implementações, as memórias cache de nível inferior são divididas para fornecer memórias cache de nível baixo separadas para acessos de dados e pesquisa e carregamento de instrução.
[0173] Em uma concretização, uma instrução é buscada da memória 5002 por uma unidade de busca de instrução 5004 através de uma memória 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 flutuante e uma unidade de execução de instrução de ramificação. A instrução é executada pela unidade de execução, acessando operandos de registros especificados de instrução ou memória conforme necessário. Se um operando tiver que ser acessado (carregado ou armazenado) a partir da memória 5002, uma unidade de carga/armazenamento 5005 tipicamente trata 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.
[0174] Como observado, um sistema de computador inclui informações em armazenamento local (ou principal), bem como endereçamento, proteção, e registro de referência e alteração. Alguns aspectos de endereçamento incluem o formato de endereços, o conceito de espaços de endereço, os vários tipos de endereços e a forma em que um tipo de endereço é traduzido para outro tipo de endereço. Parte do armazenamento principal inclui locais de armazenamento permanentemente atribuídos. O 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 de dispositivos de entrada) antes de serem processados.
[0175] O armazenamento principal pode incluir um ou mais armazenamentos de memória temporária de acesso rápido menores, algumas vezes, chamados de memória cache. Uma memória cache é tipicamente fisicamente associada com uma CPU ou um processador E/S. Os efeitos, exceto de desempenho, da construção física e utilização de meios de armazenamento distintos não são geralmente observáveis pelo programa.
[0176] Memórias cache separadas podem ser mantidas para instruções e para operandos de dados. As informações dentro de uma memória cache são mantidas em bytes contíguos em uma fronteira integral chamada de um bloco de memória cache ou linha de memória cache (ou linha, abreviado). Um modelo pode fornecer uma instrução EXTRACT CACHE ATTRIBUTE que retorna o tamanho de uma linha de memória cache em bytes. Em outras concretizações, essa informação pode ser obtida de firmware, por exemplo, de acordo com interfaces especificadas pela especificação Power Architecture Platform Reference. Um modelo pode também fornecer instruções PREFETCH DATA e PREFETCH DATA RELATIVE LONG que realizam a pré-pesquisa e carregamento de armazenamento na memória cache de dados ou instrução ou a liberação de dados da memória cache.
[0177] O armazenamento é visualizado como uma cadeia horizontal longa de bits. Para a maioria das operações, os acessos a armazenamento prosseguem em uma sequência da esquerda para a direita. A cadeia de bits é subdividida em 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ções. Cada local de byte no armazenamento é identificado por um número inteiro não negativo único, que é o endereço daquele local de byte ou, simplesmente, o endereço de byte. Os locais de byte adjacentes possuem endereços consecutivos, iniciando com 0 na esquerda e prosseguindo em uma sequência da esquerda para a direita. Endereços são números inteiros binários não assinados e são de 24, 31 ou 64 bits.
[0178] As informações são transmitidas entre o armazenamento e uma CPU ou um subsistema de canal de um byte, ou um grupo de bytes, de uma vez. Salvo indicação em contrário, por exemplo, no Power ISA e na z/Architecture, um grupo de bytes no armazenamento é endereçado pelo byte mais à esquerda do grupo. O número de bytes no grupo é implicado ou explicitamente especificado pela operação a ser executada. Quando usado em uma operação de CPU, um grupo de bytes é chamado de campo. Dentro de cada grupo de bytes, por exemplo, no Power ISA ou na z/Architecture, os bits são numerados em uma sequência da esquerda para a direita. No Power ISA ou na z/Architecture, os bits mais à esquerda são geralmente referidos como os bits de “ordem superior” e os bits mais à direita como os bits de “ordem inferior”. Os números de bits não são endereços de armazenamento, no entanto. Somente bytes podem ser endereçados. Para operar em bits individuais de um byte no armazenamento, todo o byte é acessado. Os bits em um byte são numerados de 0 a 7, da esquerda para a direita (por exemplo, na z/Architecture). Os bits em um endereço podem ser numerados de 8-31 ou 40-63 para endereços de 24 bits, ou de 1-31 ou 33-63 para endereços de 31 bits; eles são numerados de 0-63 para endereços de 64 bits. Em um exemplo, os bits 8-31 e 1-31 se aplicam a endereços que estão em um local (por exemplo, registro), ou seja, 32 bits de extensão, em que os bits 40-63 e 33-63 se aplicam a endereços que estão em um local de 64 bits de extensão. Dentro de qualquer outro formato de comprimento fixo de vários bytes, os bits que fazem o formato são consecutivamente numerados iniciando em 0. Para fins 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 diretamente controlados pelo programa. As capacidades de armazenamento são expressas em 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 ter um comprimento fixo, que pode ser de um, dois, quatro, oito ou dezesseis bytes. Campos maiores podem ser implicados para algumas instruções. Quando o comprimento de um campo de operando de armazenamento não é implicado, mas é explicitamente definido, o campo é dito ter um comprimento variável. Operandos com comprimento variável podem variar em comprimento por incrementos de um byte (ou com algumas instruções, em múltiplos de dois bytes ou outros múltiplos). Quando as informações são colocadas no armazenamento, os conteúdos de somente aqueles locais de bytes são substituídos, os quais são incluídos no campo designado, ainda que a largura do percurso físico para armazenamento possa ser maior do que o comprimento do campo sendo armazenado.
[0179] Determinadas unidades de informações devem estar em uma fronteira integral no armazenamento. Uma fronteira é chamada de integral para uma unidade de informações quando seu endereço de armazenamento é um múltiplo do comprimento da unidade em bytes. Nomes especiais são dados aos campos de 2, 4, 8, 16 e 32 bytes em uma fronteira integral. Uma meia palavra é um grupo de dois bytes consecutivos em uma fronteira de dois bytes e é o bloco de construção básico de instruções. Uma palavra é um grupo de quatro bytes consecutivos em uma fronteira de quatro bytes. Uma palavra dupla é um grupo de oito bytes consecutivos em uma fronteira de oito bytes. Uma palavra quadrangular é um grupo de 16 bytes consecutivos em uma fronteira de 16 bytes. Uma octopalavra é um grupo de 32 bytes consecutivos em uma fronteira de 32 bytes. Quando endereços de armazenamento designam meias palavras, palavras, palavra duplas, palavras quadrangulares e octopalavras, a representação binária do endereço contém um, dois, três, quatro ou cinco bits zero mais à direita, respectivamente. Instruções devem estar em fronteiras integrais de dois bytes. Os operandos de armazenamento da maior parte das instruções não possuem requerimentos de alinhamento de fronteira.
[0180] Em dispositivos que implementam memórias cache separadas para operandos de dados e instruções, um atraso significativo pode ser experimentado se o programa estiver armazenado em uma linha de memória cache da qual instruções são subsequentemente pesquisadas e carregadas, independentemente se o armazenamento altera as instruções que são subsequentemente pesquisadas e carregadas.
[0181] Em um exemplo, a concretização pode ser praticada por software (geralmente referente a código interno licenciado, firmware, microcódigo, mili-código, pico-código e semelhantes, qualquer um dos quais deve ser consistente com uma ou mais concretizações). Em referência à FIGURA 21, o 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 meios de armazenamento de longo prazo 5011, tais como uma unidade de CD-ROM, unidade de fita cassete ou unidade de disco rígido. O código de programa de software pode ser implementado em qualquer uma de uma variedade de mídias conhecidas para utilização com um sistema de processamento de dados, tal como um disco flexível, disco rígido ou CD- ROM. O código pode ser distribuído em tais mídias ou pode ser distribuído para usuários a partir da memória de computador 5002 ou armazenamento de um sistema de computador em uma rede 5010 para outros sistemas de computador para utilização por usuários de tais outros sistemas.
[0182] O código de programa de software 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. O código de programa é normalmente paginado a partir do dispositivo de meio de armazenamento 5011 para o armazenamento de computador de velocidade relativamente superior 5002, onde está disponível para processamento pelo processador 5001. As técnicas e métodos para incorporação de código de programa de software na memória, em meios físicos, e/ou distribuição de código de software através de redes são bem conhecidos e não serão mais discutidos neste documento. O código de programa, quando criado e armazenado em um meio tangível (incluindo, mas não limitado a módulos de memória eletrônica (RAM), memória flash, Discos Compactos (CDs), DVDs, Fita Magnética e semelhantes) é geralmente referido como um “produto de programa de computador”. O meio de produto de programa de computador é tipicamente legível por um circuito de processamento preferivelmente em um sistema de computador para execução pelo circuito de processamento.
[0183] A FIGURA 22 ilustra uma estação de trabalho representativa ou sistema de hardware de servidor, em que uma ou mais concretizações preferidas podem ser praticadas. O sistema 5020 da FIGURA 22 compreende um sistema de computador base representativo 5021, tal como um computador pessoal, uma estação de trabalho ou um servidor, incluindo dispositivos periféricos opcionais. O sistema de computador base 5021 inclui um ou mais processadores 5026 e um barramento empregado para conectar e permitir a comunicação entre o processador(es) 5026 e os outros componentes do sistema 5021 de acordo com técnicas conhecidas. O barramento conecta o processador 5026 à memória 5025 e ao armazenamento de longo prazo 5027, que pode incluir um disco rígido (incluindo qualquer um de meio magnético, CD, DVD e Memória Flash, por exemplo) ou uma unidade de fita, por exemplo. O sistema 5021 deve também incluir um adaptador de interface de usuário, que conecta o microprocessador 5026 através do barramento a um ou mais dispositivos de interface, tais como um teclado 5024, um mouse 5023, uma impressora/scanner 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, teclado de entrada digitalizada etc. O barramento também conecta um dispositivo de exibição 5022, tal como um monitor ou tela LCD, ao microprocessador 5026 através de um adaptador de exibição.
[0184] 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. Exemplos de adaptadores de rede são canais de comunicação, token ring, Ethernet ou modems. Alternativamente, o sistema 5021 pode se comunicar usando uma interface sem fio, tal como um cartão de CDPD (dados de pacote digital de celular). O sistema 5021 pode ser associado com tais outros computadores em uma Rede de Área Local (LAN) ou uma Rede de Área Ampla (WAN), ou o sistema 5021 pode ser um cliente em um arranjo clientE/S ervidor com outro computador etc. Todas essas configurações, bem como o hardware e software de comunicação apropriados, são conhecidas na técnica.
[0185] A FIGURA 23 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, tais como uma rede sem fio e uma rede a cabo, cada uma das quais pode incluir uma pluralidade de estações de trabalho individuais 5041, 5042, 5043, 5044. Adicionalmente, como será entendido por aqueles versados na técnica, uma ou mais LANs podem ser incluídas, em que a LAN pode compreender uma pluralidade de estações de trabalho inteligentes acopladas a um processador hospedeiro.
[0186] Ainda em referência à FIGURA 23, as redes podem também incluir computadores ou servidores mainframe, tais como um computador gateway (servidor cliente 5046) ou servidor de aplicativo (servidor remoto 5048 que pode acessar um repositório de dados e pode também ser acessado diretamente de uma estação de trabalho 5045). Um computador gateway 5046 serve como um ponto de entrada em cada rede individual. Um gateway é necessário ao conectar um protocolo de rede a outro. O gateway 5046 pode ser preferivelmente acoplado à outra rede (a Internet 5047, por exemplo) por meio de um link de comunicação. O gateway 5046 pode também ser diretamente acoplado a uma ou mais estações de trabalho 5041, 5042, 5043, 5044 usando um link de comunicação. O computador gateway pode ser implementado utilizando um de um servidor Power Systems da IBM e servidor System z® da IBM disponível por International Business Machines Corporation, registrados em muitas jurisdições em todo o mundo.
[0187] Em referência simultaneamente à FIGURA 22 e à FIGURA 23, o 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 meio de armazenamento de longo prazo 5027, tal como uma unidade 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 utilização com um sistema de processamento de dados, tal como um disco flexível, disco rígido ou CD- ROM. o código pode ser distribuído em tais meios ou pode ser distribuído para usuários 5050, 5051 a partir da memória ou armazenamento de um sistema de computador em uma rede para outros sistemas de computador para utilização por usuários de tais outros sistemas.
[0188] Alternativamente, o código de programação pode ser incorporado na memória 5025 e acessado pelo processador 5026 usando o barramento do 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. O 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 processamento pelo processador 5026. As técnicas e métodos para incorporação de código de programação de software na memória, em meio físico, e/ou distribuição de código de software através de redes são bem conhecidos e não serão mais discutidos neste documento. O código de programa, quando criado e armazenado em um meio tangível (incluindo, mas não limitado a módulos de memória eletrônica (RAM), memória flash, Discos Compactos (CDs), DVDs, Fita Magnética e semelhantes é geralmente referido como um “produto de programa de computador”. O meio de produto de programa de computador é tipicamente legível por um circuito de processamento preferivelmente em um sistema de computador para execução pelo circuito de processamento.
[0189] A memória cache que está mais prontamente disponível para o processador (normalmente mais rápida e menor do que outras memórias cache do processador) é a memória cache mais inferior (L1 ou nível um) e o armazenamento principal (memória principal) é a memória cache de nível mais alto (L3 se forem 3 níveis). A memória cache de nível mais baixo é geralmente dividida em uma memória cache de instrução (I-Cache) portando instruções de máquina a serem executadas e uma memória cache de dados (D- Cache) portando operandos de dados.
[0190] Em referência à FIGURA 24, uma concretização de processador exemplar é apresentada para o processador 5026. Tipicamente, um ou mais níveis de memória cache 5053 são empregados a blocos de memória temporária a fim de melhorar o desempenho do processador. A memória cache 5053 é uma memória temporária de alta velocidade portando linhas de memória cache de dados de memória que são prováveis de serem usados. Linhas de memória cache típicas têm 64, 128 ou 256 bytes de dados de memória. Memórias cache separadas são geralmente empregadas para instruções de cache do que para dados de cache. A coerência de memória cache (sincronização de cópias de linhas na memória e memórias cache) é geralmente provida por vários algoritmos “snoop” bem conhecidos na técnica. O armazenamento de memória principal 5025 de um sistema de processador é geralmente referido como uma memória cache. Em um sistema de processador tendo 4 níveis de memória cache 5053, o armazenamento principal 5025 é geralmente referido como a memória cache de nível 5 (L5) uma vez que é tipicamente mais rápida e somente porta a porção do armazenamento não volátil (DASD, fita etc.) que é disponível a um sistema de computador. O armazenamento principal 5025 “cacheia” páginas de dados paginadas dentro e fora do armazenamento principal 5025 pelo sistema operacional.
[0191] Um contador de programa (contador de instrução) 5061 mantém o rastreamento do endereço da instrução atual a ser executada. Um contador de programa em um processador de z/Architecture é de 64 bits e pode ser truncado para 31 ou 24 bits para suportar limites de endereçamentos anteriores. Um contador de programa é tipicamente incorporado em uma PSW (Palavra de Status de Programa) de um computador, tal que persista durante a comutação de contexto. Dessa forma, um programa em progresso, tendo um valor de contador de programa, pode ser interrompido, por exemplo, pelo sistema operacional (comutação de contexto do ambiente de programa para o ambiente de sistema operacional). A PSW do programa mantém o valor de contador de programa enquanto o programa não está ativo, e o contador de programa (na PSW) do sistema operacional é usado enquanto o sistema operacional está em execução. Tipicamente, o contador de programa é incrementado por uma quantidade igual ao número de bytes da instrução atual. Instruções RISC (Computação de Conjunto Reduzido de Instruções) são tipicamente de comprimento fixo enquanto instruções CISC (Computação de Conjunto Complexo de Instruções) são tipicamente de comprimento variável. Instruções da z/Architecture da IBM são instruções CISC tendo um comprimento de 2, 4 ou 6 bytes. Instruções do Power ISA da IBM são instruções RISC tenho um comprimento de 4 bytes. O contador de programa 5061 é modificado por uma operação de comutação de contexto ou de uma operação de tomada de ramificação de instrução de ramificação, por exemplo. Em uma operação de comutação de contexto, o valor de contador de programa atual é salvo na palavra de status de programa junto com outras informações de estado sobre o programa sendo executado (tais 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 de tomada de ramificação é executada a fim de permitir que o programa tome decisões ou loop dentro do programa carregando-se o resultado da instrução de ramificação no contador de programa 5061.
[0192] Tipicamente, uma unidade de busca de instrução 5055 é empregada para pesquisar e carregar instruções em nome do processador 5026. A unidade de pesquisa e carregamento pesquisa e carrega as “próximas instruções sequenciais”, instruções alvo de instruções de tomada de ramificação, ou as primeiras instruções de um programa após uma comutação de contexto. Unidades de pesquisa e carregamento de Instrução Moderna geralmente empregam técnicas de pré-pesquisa e carregamento para especulativamente pesquisar e carregar instruções com base na probabilidade de as instruções pré-pesquisadas e carregadas serem usadas. Por exemplo, uma unidade de pesquisa e carregamento pode pesquisar e carregar 16 bytes de instrução que incluem a próxima instrução sequencial e bytes adicionais de instruções sequenciais adicionais.
[0193] As instruções pesquisadas e carregadas são então, executadas pelo processador 5026. Em uma concretização, as instruções pesquisadas e carregadas são passadas para uma unidade de despacho 5056 da unidade de pesquisa e carregamento. A unidade de despacho decodifica as instruções e encaminha informações sobre as instruções decodificadas para as unidades adequadas 5057, 5058, 5060. Uma unidade de execução 5057 irá tipicamente receber informações sobre instruções aritméticas decodificadas da unidade de busca de instrução 5055 e irá executar operações aritméticas em operandos de acordo com o opcode da instrução. Operandos são fornecidos à unidade de execução 5057 preferivelmente a partir da memória 5025, registros de arquitetura 5059 ou de um campo imediato da instrução sendo executada. Os resultados da execução, quando armazenados, são armazenados na memória 5025, nos registros 5059 ou em outros hardwares de máquina (tais como registros de controle, registros de PSW e semelhantes).
[0194] Endereços virtuais são transformados em endereços reais usando tradução dinâmica de endereço 5062, e, opcionalmente, usando transação de registro de acesso 5063.
[0195] Um processador 5026 tipicamente tem uma ou mais unidades 5057, 5058, 5060 para execução da função da instrução. Em referência à FIGURA 25A, uma unidade de execução 5057 pode se comunicar 5071 com registros gerais de arquitetura 5059, uma unidade de decodificação/despacho 5056, uma unidade de armazenamento de carga 5060, e outras unidades de processador 5065 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 manter informações que a unidade lógica aritmética (ALU) 5066 irá operar. A ALU executa operações aritméticas, tais como adicionar, subtrair, multiplicar e dividir, bem como função lógica, tal como e, ou e exclusivo-ou (XOR), girar e trocar. Preferivelmente, a ALU suporta operações especializadas que são dependentes de projeto. Outros circuitos podem fornecer outras facilidades de arquitetura 5072 incluindo códigos de condição e lógica de suporte de recuperação, por exemplo. Tipicamente, o resultado de uma operação de ALU é mantido em um circuito de registro de saída 5070 que pode encaminhar o resultado a uma variedade de outras funções de processamento. Existem vários arranjos de unidades de processador, a presente descrição é somente destinada a fornecer um entendimento representativo de uma concretização.
[0196] Uma instrução ADD, por exemplo, seria executada em uma unidade de execução 5057 tendo funcionalidade lógica e aritmética enquanto uma instrução de ponto flutuante, por exemplo, seria executada em uma execução de ponto flutuante tendo capacidade de ponto flutuante especializada. Preferivelmente, uma unidade de execução opera em operandos identificados por uma instrução executando uma função definida por opcode nos operandos. Por exemplo, uma instrução ADD pode ser executada por uma unidade de execução 5057 em operandos encontrados em dois registros 5059 identificados pelos campos de registro da instrução.
[0197] A unidade de execução 5057 executa a adição aritmética em dois operandos e armazena o resultado em um terceiro operando, em que o terceiro operando pode ser um terceiro registro ou um dos dois registros fonte. A unidade de execução preferivelmente utiliza uma Unidade Lógica Aritmética (ALU) 5066 que seja capaz de executar uma variedade de funções lógicas, tais como Alterar, Girar, E, OU e XOR, bem como uma variedade de funções algébricas, incluindo qualquer uma de adição, subtração, multiplicação, divisão. Algumas ALUs 5066 são concebidas para operações escalares e algumas para ponto flutuante. Os dados podem ser Big Endian (em que o byte menos significativo está no endereço de byte mais alto) ou Little Endian (em que o byte menos significativo está no endereço de byte mais baixo) dependendo da arquitetura. A z/Architecture da IBM é Big Endian. O Power ISA da IBM suporta ambos os modos de execução Big Endian e Little Endian. Campos assinados podem ser sinal e dimensão, complemento de 1 ou complemento de 2 dependendo da arquitetura. Um número complemento de 2 é vantajoso em que a ALU não precisa projetar e subtrair a capacidade uma vez que tanto um valor negativo ou um valor positivo no complemento de 2 requer somente uma adição dentro da ALU. Os números são comumente descritos de forma abreviada, em que um campo de 12 bits define um endereço de um bloco de 4.096 bytes e é comumente descrito como um bloco de 4 Kbytes (Kilo-byte), por exemplo.
[0198] Em referência à FIGURA 25B, informações de instrução de ramificação para execução de uma instrução de ramificação são tipicamente enviadas para uma unidade de ramificação 5058 que geralmente emprega um algoritmo de previsão de ramificação, tal como uma tabela de histórico de ramificação 5082 para prever o resultado da ramificação antes de outras operações condicionais serem concluídas. O alvo da instrução de ramificação atual será pesquisado e carregado e especulativamente executado antes de as operações condicionais serem concluídas. Quando as operações condicionais são concluídas, as instruções de ramificação especulativamente executadas são concluídas ou descartadas com base nas condições da operação condicional e no resultado especulado. Uma instrução de ramificação típica pode testar códigos de condição e ramificar para um endereço alvo se os códigos de condição ao requerimento de ramificação da instrução de ramificação, um endereço alvo pode ser calculado com base em 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 uma 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 se comunicar 5081 com registros gerais 5059, decodificar a unidade de despacho 5056 ou outros circuitos 5073, por exemplo.
[0199] A execução de um grupo de instruções pode ser interrompida por uma variedade de razões incluindo uma comutação de contexto iniciada por um sistema operacional, uma exceção ou erro de programa causando uma comutação de contexto, um sinal de interrupção de E/S causando uma comutação de contexto ou atividade multissegmentada de uma pluralidade de programas (em um ambiente multissegmentado), por exemplo. Preferivelmente, uma ação de comutação de contexto salva informações de estado sobre um programa atualmente em execução e, então, carrega informações de estado sobre outro programa sendo invocado. Informações de estado podem ser salvas em registros de hardware ou na memória, por exemplo. Informações de estado preferivelmente compreendem um valor de contador de programa apontando para uma instrução seguinte a ser executada, códigos de condição, informações de tradução de memória e conteúdo de registro de arquitetura. Uma atividade de comutação de contexto pode ser exercida por circuitos de hardware, programas de aplicativo, programas de sistema operacional ou código de firmware (microcódigo, pico-código ou código interno licenciado (LIC)) sozinho ou em combinação.
[0200] Um processador acessa operandos de acordo com métodos de instrução definidos. A instrução pode fornecer um operando imediato usando o valor de uma porção da instrução, pode fornecer um ou mais campos de registro explicitamente apontando para registros de uso geral ou registros de aplicação específica (registros de ponto flutuante, por exemplo). A instrução pode utilizar registros implicados identificados por um campo de opcode como operandos. A instrução pode utilizar locais de memória para operandos. Um local de memória de um operando pode ser fornecido por um registro, um campo imediato ou uma combinação de registros e campo imediato como exemplificado pela facilidade de deslocamento longo da z/Architecture, em que a instrução define um registro base, um registro de índice e um campo imediato (campo de deslocamento) que são adicionados juntos para fornecer o endereço do operando na memória, por exemplo. Ou os modos de endereçamento de Power ISA, em que endereços do Formulário D definem um registro base e um campo imediato (campo de deslocamento) que são adicionados juntos para prover o endereço do operando na memória; e em que os endereços do Formulátio X definem um registro base e um registro de índide que são adicionados juntos para prover o endereço do operando na memória. O local neste documento tipicamente implica um local na memória principal (armazenamento principal) salvo indicação em contrário.
[0201] Em referência à FIGURA 25C, um processador acessa o armazenamento usando uma unidade de carga/armazenamento 5060. A unidade de carga/armazenamento 5060 pode executar uma operação de carga pela obtenção do endereço do operando alvo na memória 5053 e pelo carregamento do operando em um registro 5059 ou outro local de memória 5053, ou pode executar uma operação de armazenamento obtendo o endereço do operando alvo na memória 5053 e armazenando os dados obtidos de um registro 5059 ou outro local de memória 5053 no local 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 esteja fora da ordem em relação à sequência de instrução, no entanto, a unidade de carga/armazenamento 5060 deve manter a aparência para programas cujas instruções foram executadas na ordem. Uma unidade de carga/armazenamento 5060 pode se comunicar 5084 com registros gerais 5059, unidade de decodificação/despacho 5056, interface de memória/memória cache 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 fornecer sequenciamento para manter as operações na ordem. Algumas operações podem estar fora da ordem, mas a unidade de carga/armazenamento provê funcionalidade para fazer as operações fora da ordem aparecerem para o programa como tendo sido executadas na ordem, como é bem conhecido na técnica.
[0202] Preferivelmente, endereços que um programa de aplicativo “visualiza” são geralmente referidos como endereços virtuais. Endereços virtuais são geralmente referidos como “endereços lógicos” e “endereços efetivos”. Esses endereços virtuais são virtuais porque eles são redirecionados para o local de memória física por uma de uma variedade de tecnologias de tradução dinâmica de endereço (DAT) incluindo, mas não limitadas a, simplesmente prefixar um endereço virtual com um valor de compensação, 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 apontando para a tabela de página. Na z/Architecture, uma hierarquia de tradução é fornecida 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 melhorado utilizando uma memória tampão à parte de tradução (TLB) que compreende mapeamento de entradas de um endereço virtual para uma memória local física associada. As entradas são criadas quando a DAT traduz um endereço virtual usando as tabelas de tradução. A utilização subsequente do endereço virtual pode, então, utilizar a entrada do TLB rápido em vez dos acessos de tabela de tradução sequencial lentos. O conteúdo de TLB pode ser gerenciado por uma variedade de algoritmos de substituição incluindo LRU (Menos Utilizados Recentemente).
[0203] No caso em que o processador é um processador de um sistema de multiprocessador, cada processador tem responsabilidade de manter recursos compartilhados, tais como E/S, memórias cache, TLBs e memória, bloqueados por coerência. Tipicamente, tecnologias “snoop” serão utilizadas na manutenção da coerência da memória cache. Em um ambiente snoop, cada linha de memória cache pode ser marcada como estando em qualquer um de um estado compartilhado, um estado exclusivo, um estado alterado, um estado inválido e semelhantes a fim de facilitar o compartilhamento.
[0204] Unidades de E/S 5054 (FIGURA 24) proveem o processador com meios de conexão a dispositivos periféricos incluindo fita, disco, impressoras, telas e redes, por exemplo. Unidades de E/S são geralmente apresentadas ao programa de computador por unidades de software. Em mainframes, tais como o Sistema z da IBM®, adaptadores de canal e adaptadores de sistemas abertos são unidades de E/S do mainframe que proveem a comunicação entre o sistema operacional e dispositivos periféricos.
[0205] Além disso, outros tipos de ambientes computacionais podem se beneficiar 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 de arquitetura, tais como tradução de endereço e registros de arquitetura) ou um subconjunto da mesma é emulada (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, ainda que um computador executando o emulador possa ter uma arquitetura diferente do que as capacidades sendo emuladas. Como exemplo, no modo de emulação, a instrução específica ou operação sendo emulada é decodificada, e uma função de emulação apropriada é construída para implementar a instrução ou operação individual.
[0206] Em um ambiente de emulação, um computador hospedeiro inclui, por exemplo, uma memória para armazenar instruções e dados; uma unidade de busca de instrução para pesquisar e carregar instruções da memória e para, opcionalmente, fornecer memória temporária local para a instrução pesquisada e carregada; uma unidade de decodificação de instrução para receber as instruções pesquisadas e carregadas e para determinar o tipo de instruções que foram pesquisadas e carregadas; e uma unidade de execução de instrução para executar as instruções. A execução pode incluir o carregamento de dados em um registro da memória; armazenamento de dados de volta para a memória a partir de um registro; ou execução de 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 executadas pelas unidades são implementadas como uma ou mais sub-rotinas dentro de software emulador.
[0207] Mais particularmente, em um mainframe, instruções de máquina de arquitetura são usadas por programadores, geralmente programadores “C” atuais, geralmente por meio de um aplicativo compilador. Essas instruções armazenadas no meio de armazenamento podem ser executadas de forma nativa em Servidor de z/Architecture IBM®, ou alternativamente em máquinas executando outras arquiteturas. Elas podem ser emuladas nos servidores mainframe IBM® existentes e futuros e em outras máquinas da IBM® (por exemplo, servidores de Sistemas de Energia e Sistema x Servidores). Elas podem ser executadas em máquinas rodando Linux em uma ampla variedade de máquinas usando hardware fabricado por IBM®, Intel®, AMD e outros. Além da execução naquele hardware sob a z/Architecture, Linux pode ser usado e também máquinas que utilizam emulação por Hercules, UMX ou FSI (Fundamental Software, Inc), em que geralmente a execução está em um modo de emulação. No modo de emulação, o software de emulação é executado por um processador nativo para emular a arquitetura de um processador emulado. Linux é uma marca registrada de Linus Torvalds nos Estados Unidos, em outros países, ou ambos.
[0208] O processador nativo tipicamente executa software de emulação compreendendo firmware ou um sistema operacional nativo para executar emulação do processador emulado. O software de emulação é responsável por pesquisa e carregamento e execução de instruções da arquitetura de processador emulada. O software de emulação mantém um contador de programa emulado para manter o rastreamento de fronteiras de instrução. O software de emulação pode pesquisar e carregar uma ou mais instruções de máquina emuladas de uma vez e converter a uma ou mais instruções de máquina emuladas em um grupo de instruções de máquina nativas correspondentes para execução pelo processador nativo. Essas instruções convertidas podem ser cacheadas, tal que uma conversão mais rápida possa ser realizada. Não obstante, o software de emulação deve manter as regras de arquitetura da arquitetura de processador emulado, de modo a garantir que os sistemas operacionais e aplicativos gravados no processador emulado operem corretamente. Além disso, o software de emulação deve prover recursos identificados pela arquitetura de processador emulado incluindo, mas não limitados a, registros de controle, registros de uso geral, registros de ponto flutuante, função de tradução dinâmica de endereço 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 de arquitetura para subsistemas E/S, tal que um sistema operacional ou um programa de aplicativo concebido para rodar no processador emulado, possa ser rodado no processador nativo tendo o software de emulação.
[0209] Uma instrução específica sendo emulada é decodificada, e uma sub-rotina é chamada para executar a função da instrução individual. Uma função de software de emulação emulando uma função de um processador emulado é implementada, por exemplo, em uma unidade ou sub-rotina “C”, ou algum outro método de provisão de uma unidade para o hardware específico conforme estará dentro da habilidade daqueles versados na técnica após compreensão da descrição da concretização preferida. Várias patentes de emulação de software e hardware incluindo, mas não limitadas a, Carta- patente dos Estados Unidos N°. 5.551.013, intitulada “Multiprocessador for Hardware Emulation”, de Beausoleil et al.; e Carta-patente dos Estados Unidos N°. 6.009.261, intitulada “Preprocessamento of Stored Target Routines for Emulating Incompatible Instructions on a Target Processor”, de Scalzi et al; e Carta-patente dos Estados Unidos N°. 5.574.873, intitulada “Decoding Guest Instruction to Directly Access Emulation Routines that Emulate the Guest Instructions”, de Davidian et al; e Carta-patente dos Estados Unidos N°. 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 Carta-patente dos Estados Unidos N°. 6.463.582, intitulada “Dynamic Optimizing Object Code Translator for Architecture Emulation and Dynamic Optimizing Object Code Translation Method”, de Lethin et al; e Carta- patente dos Estados Unidos N°. 5.790.825, intitulada “Method for Emulating Guest Instructions on a Host Computer Through Dynamic Recompilation of Host Instructions”, de Eric Traut, cada uma das quais é incorporada neste documento por referência em sua totalidade; e muitas outras ilustram uma variedade de formas conhecidas de conseguir a emulação de um formato de instrução com arquitetura para uma máquina diferente para uma máquina alvo disponível para aqueles versados na técnica.
[0210] Na FIGURA 26, um exemplo de um sistema de computador hospedeiro emulado 5092 é fornecido, o qual emula um sistema de computador hospedeiro 5000' de uma arquitetura hospedeira. No sistema de computador hospedeiro emulado 5092, o processador hospedeiro (CPU) 5091 é um processador hospedeiro emulado (ou processador hospedeiro virtual) e compreende um processador de emulação 5093 tendo uma arquitetura de conjunto de instruções nativas diferente do processador 5091 do computador hospedeiro 5000'. O sistema de computador hospedeiro emulado 5092 tem memória 5094 acessível ao processador de emulação 5093. No exemplo de concretização preferida da presente invenção, a memória 5094 é dividida em uma porção de memória de computador hospedeiro 5096 e uma porção de rotinas de emulação 5097. A memória de computador hospedeiro 5096 é disponível a programas do computador hospedeiro emulado 5092 de acordo com a arquitetura de computador hospedeiro. O processador de emulação 5093 executa instruções nativas de um conjunto de instruções de arquitetura de uma arquitetura diferente da do processador emulado 5091, as instruções nativas obtidas de memória de rotinas de emulação 5097, e pode acessar uma instrução hospedeira para execução de um programa na memória de computador hospedeiro 5096 empregando uma ou mais instrução(s) obtida em uma sequência & rotina de acesso/decodificação que pode decodificar a instrução(s) hospedeira acessada para determinar uma rotina de execução de instrução nativa para emulação da função da instrução hospedeira acessada. Outras facilidades que são definidas para a arquitetura do sistema de computador hospedeiro 5000' podem ser emuladas por rotinas de facilidades de arquitetura, incluindo tais facilidades como registros de uso geral, registros de controle, tradução dinâmica de endereço e suporte de subsistema de E/S e memória cache de processador, por exemplo. As rotinas de emulação podem também tirar proveito de funções disponíveis no processador de emulação 5093 (tais como registros gerais e tradução dinâmica de endereços virtuais) para melhorar o desempenho das rotinas de emulação. Mecanismos especiais de descarregamento e hardware podem também ser fornecidos para auxiliar o processador 5093 na emulação da função do computador hospedeiro 5000'.
[0211] Em uma concretização adicional da presente invenção, um ou mais aspectos se referem à computação em nuvem. É antecipadamente previsto que, embora a presente divulgação inclua uma descrição detalhada sobre computação em nuvem, a implementação dos ensinamentos recitados neste documento não é limitada a um ambiente computacional em nuvem. Ao contrário, as concretizações da presente invenção podem ser implementadas em conjunto com qualquer outro tipo de ambiente computacional conhecido atualmente ou desenvolvido no futuro.
[0212] Computação em nuvem é um modelo de entrega de serviços para permitir o acesso conveniente à rede sob demanda a um grupo (pool) compartilhado de recursos computacionais 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 um mínimo de esforço de gerenciamento ou interação 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 implantação.
[0213] As características são conforme a seguir: Autoatendimento sob demanda: um consumidor em nuvem pode unilateralmente fornecer capacidades de computação, tais como tempo do servidor e armazenamento de rede, conforme necessário automaticamente, sem necessidade de interação humana com o provedor de serviço. Acesso de rede ampla: as capacidades estão disponíveis através de uma rede e são acessadas através de mecanismos padrão que promovem o uso por plataformas de cliente pequenas ou amplas heterogêneas (por exemplo, telefones celulares, laptops e PDAs). Agrupamento de recursos: os recursos de computação do provedor são agrupados para atender múltiplos consumidores usando um modelo de locação múltipla (multi-tenant), com diferentes recursos físicos e virtuais dinamicamente atribuídos e reatribuídos de acordo com a demanda. Há um senso de independência de localização em que o consumidor geralmente não tem controle sobre o local exato dos recursos fornecidos, mas pode ser capaz de especificar a localização em um nível mais alto de abstração (por exemplo, país, estado ou datacenter). Elasticidade rápida: as capacidades podem ser rapidamente e elasticamente provisionadas, em alguns casos, automaticamente, para rápido dimensionamento e rápida liberação para dimensionamento. Para o consumidor, os recursos disponíveis para fornecimento, muitas vezes, parecem ser ilimitados e podem ser adquiridos em qualquer quantidade a qualquer momento. Serviço medido: os sistemas de nuvem controlam automaticamente e otimizam o uso de recursos alavancando uma capacidade de medição em algum nível de abstração apropriado ao tipo de serviço (por exemplo, armazenamento, processamento, largura de banda e contas de usuário ativo). O uso de recursos pode ser monitorado, controlado e reportado proporcionando transparência tanto para o provedor como para o consumidor do serviço utilizado.
[0214] Os modelos de serviço são conforme a seguir: Software como Serviço (SaaS): a capacidade proporcionada ao consumidor é a utilização dos aplicativos do provedor em execução em uma infraestrutura em nuvem. Os aplicativos são acessíveis a partir de vários dispositivos de cliente através de uma interface de cliente pequena, tal como um navegador web (por exemplo, e-mail baseado na web). O consumidor não gerencia ou controla a infraestrutura de nuvem subjacente, incluindo rede, servidores, sistemas operacionais, armazenamento ou até mesmo recursos de aplicativos individuais, com a possível exceção de ajustes de configurações de aplicativo específicas de usuário limitadas. Plataforma como Serviço (PaaS): a capacidade proporcionada ao consumidor é a implantação na infraestrutura de nuvem de aplicativos adquiridos ou criados pelo consumidor 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 operacionais ou armazenamento, mas tem controle sobre os aplicativos implementados e, possivelmente, configurações de ambiente de hospedagem de aplicativos. Infraestrutura como Serviço (IaaS): a capacidade proporcionada ao consumidor é a provisão de processamento, armazenamento, redes e outros recursos computacionais fundamentais onde o consumidor é capaz de implantar e executar softwares arbitrários, que podem incluir sistemas e aplicativos operacionais. O consumidor não gerencia ou controla a infraestrutura de nuvem subjacente, mas tem controle sobre sistemas operacionais, armazenamento, aplicativos implantados e, possivelmente, controle limitado de componentes de rede selecionados (por exemplo, firewalls de hospedeiro).
[0215] Os modelos de implantação são conforme a seguir: Nuvem privada: a infraestrutura da nuvem é operada exclusivamente para uma organização. Pode ser gerenciada pela organização ou um terceiro e pode existir no local ou fora das instalações. Nuvem de comunidade: a infraestrutura de nuvem é compartilhada por várias organizações e suporta uma comunidade específica que tem preocupações compartilhadas (por exemplo, missão, requisitos de segurança, política e considerações de conformidade). Pode ser gerenciada pelas organizações ou um terceiro e pode existir no local ou fora das instalações. Nuvem pública: a infraestrutura de nuvem é disponibilizada ao público em geral ou a um grande grupo de empresas e é pertencente a uma organização que vende serviços em nuvem. Nuvem híbrida: a infraestrutura de nuvem é uma composição de duas ou mais nuvens (privadas, comunitárias ou públicas) que permanecem entidades únicas, mas que são unidas por uma tecnologia padronizada ou própria que permite portabilidade de dados e aplicativos (por exemplo, empacotamento em nuvem para balanceamento de carga entre nuvens).
[0216] Um ambiente computacional em nuvem é orientado para serviços com foco em apatridia, baixo acoplamento, modularidade e interoperabilidade semântica. No centro da computação em nuvem está uma infraestrutura compreendendo uma rede de nós interconectados.
[0217] Referindo-se agora à FIGURA 27, um exemplo esquemático de um nó de computação em nuvem é mostrado. O nó de computação em nuvem 6010 é apenas um exemplo de nó de computação em nuvem adequado e não se destina a sugerir qualquer limitação quanto ao escopo de uso ou funcionalidade concretizações da invenção descritas neste documento. Independentemente disso, o nó de computação em nuvem 6010 pode ser implementado e/ou realizar qualquer funcionalidade descrita acima neste documento.
[0218] No nó de computação em nuvem 6010, existe um sistema/servidor de computador 6012, que é operacional com muitas outras configurações ou ambientes de sistema de computação de uso geral ou de aplicação específica. Exemplos de sistemas de computação bem conhecidos, ambientes e/ou configurações que podem ser adequados para uso com sistema de computador/servidor 6012 incluem, mas não são limitados a, sistemas de computadores pessoais, sistemas de computadores de servidor, clientes pequenos, clientes grandes, dispositivos portáteis ou laptops, sistemas de multiprocessador, sistemas baseados em microprocessadores, conversores, produtos eletrônicos de consumo programáveis, PCs em rede, sistemas de minicomputador, sistemas de computadores mainframe e ambientes computacionais distribuídos em nuvem que incluem qualquer um dos dispositivos ou sistemas acima, e semelhantes.
[0219] O sistema de computador/servidor 6012 pode ser descrito no contexto geral de instruções executáveis por sistema de computador, tais como módulos de programa, sendo executadas por um sistema de computador. Geralmente, os módulos de programa podem incluir rotinas, programas, objetos, componentes, lógica, estruturas de dados, e assim por diante, que executam tarefas específicas ou implementam tipos de dados abstratos particulares. O sistema/servidor de computador 6012 pode ser utilizado em ambientes computacionais em nuvem distribuídos, onde as tarefas são executadas por dispositivos de processamento remotos que estão ligados através de uma rede de comunicações. Em um ambiente computacional em nuvem distribuído, os módulos de programa podem ser localizados em ambos os meios de armazenamento de sistema de computador remoto e local, incluindo dispositivos de armazenamento de memória.
[0220] Conforme ilustrado na FIGURA 27, o sistema de computador/servidor 6012 em nó de computação em nuvem 6010 é mostrado na forma de um dispositivo de computação de uso geral. Os componentes do sistema de computador/servidor 6012 podem incluir, mas sem limitação, 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 a processador 6016.
[0221] O barramento 6018 representa um ou mais dos vários tipos de estruturas de barramento, incluindo um controlador de memória ou barramento de memória, um barramento periférico, uma porta de gráficos acelerada e um processador ou barramento local usando qualquer uma das arquiteturas de barramento. Por exemplo, e sem limitação, essas arquiteturas incluem barramento ISA (Industry Standard Architecture), barramento MCA (Micro Channel Architecture), barramento ISA Melhorado (EISA), barramento local VESA (Video Electronics Standards Association) e barramento PCI (Peripheral Component Interconnect).
[0222] O sistema de computador/servidor 6012 tipicamente inclui uma variedade de meios legíveis do sistema de computador. Tais meios podem ser qualquer meio disponível que seja acessível pelo sistema de computador/servidor 6012, e inclui meios voláteis e não voláteis, meios removíveis e não removíveis.
[0223] A 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 cache 6032. O sistema de computador/servidor 6012 pode adicionalmente incluir outros meios de armazenamento de sistema de computador voláteis/não voláteis, removíveis/não removíveis. Apenas a título de exemplo, o sistema de armazenamento 6034 pode ser fornecido para leitura de e gravação em um meio magnético não removível, não volátil (não ilustrado e tipicamente designado “disco rígido”). Embora não ilustrado, uma unidade de disco magnético para ler de e gravar em um disco magnético removível, não volátil (por exemplo, um “disquete”) e uma unidade de disco óptico para ler de e gravar em um disco óptico removível, não volátil, tal como um CD-ROM, DVD-ROM ou outros meios ópticos, podem ser fornecidas. Em tais casos, cada um pode ser conectado ao barramento 6018 por uma ou mais interfaces de meios de dados. Como será ilustrado e descrito 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 executar as funções de concretizações da invenção.
[0224] O programa/utilidade 6040, tendo um conjunto (pelo menos um) de módulos de programa 6042, pode ser armazenado na memória 6028, a título de exemplo, e não de limitação, bem como um sistema operacional, um ou mais programas de aplicativo, outros módulos de programa e dados do programa. Cada sistema operacional, um ou mais programas de aplicativo, outros módulos de programa e dados de programa ou alguma combinação desses, pode incluir uma implementação de um ambiente de rede. Os módulos de programa 6042 geralmente executam as funções e/ou metodologias de concretizações da invenção, como descrito neste documento.
[0225] O sistema de computador/servidor 6012 também pode se comunicar com um ou mais dispositivos externos 6014, tais como um teclado, um dispositivo apontador, um mostrador 6024 etc.; um ou mais dispositivos que permitem ao usuário interagir com o sistema de computador/servidor 6012; e/ou quaisquer dispositivos (por exemplo, placa de rede, modem etc.) que permitam 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 de computador/servidor 6012 pode se comunicar com uma ou mais redes, tais como uma rede de área local (LAN), uma rede de área larga (WAN) geral e/ou uma rede pública (por exemplo, a Internet) através do adaptador de rede 6020. Como representado, o adaptador de rede 6020 se comunica com os outros componentes do sistema de computador/servidor 6012 através do barramento 6018. Deve ser compreendido que, embora não mostrado, outros componentes de software e/ou hardware podem ser usados em conjunto com o sistema de computador/servidor 6012. Exemplos incluem, mas não são limitados a: microcódigo, unidades de dispositivo, unidades de processamento redundantes, matrizes de unidades de disco externas, sistemas RAID, unidades de fita e sistemas de armazenamento de arquivo de dados, etc.
[0226] Referindo-se agora à FIGURA 28, o ambiente computacional em nuvem ilustrativo 6050 é representado. Como mostrado, o ambiente computacional em nuvem 6050 compreende um ou mais nós de computação em nuvem 6010 com que os dispositivos de computação local usados por consumidores de nuvem, tais como, por exemplo, assistente pessoal digital (PDA) ou telefone celular 6054A, computador de mesa 6054B, computador laptop 6054C e/ou sistema de computador de automóvel 6054N podem se comunicar. Os nós 6010 podem se comunicar entre si. Eles podem ser agrupados (não mostrados) fisicamente ou virtualmente, em uma ou mais redes, tais como nuvem Privada, Comunitária, Pública ou Híbrida. Isso permite que o ambiente computacional em 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. Entende-se que os tipos de dispositivos de computação 6054A-N mostrados na FIGURA 28 são apenas ilustrativos e que os nós de computação 6010 e ambiente computacional em nuvem 6050 podem se comunicar com qualquer tipo de dispositivo computadorizado em qualquer tipo de rede e/ou conexão endereçável de rede (por exemplo, usando um navegador da web).
[0227] Referindo-se agora à FIGURA 29, é apresentado um conjunto de camadas de abstração funcional provido pelo ambiente computacional em nuvem 6050 (Figura 28). Deve ser entendido que os componentes, camadas e funções mostrados na FIGURA 29 são apenas ilustrativos e que as concretizações da invenção não são limitadas a eles. Conforme ilustrado, são fornecidas as seguintes camadas e funções correspondentes: A camada de hardware e software 6060 inclui componentes de hardware e software. Exemplos de componentes de hardware incluem mainframes, em um exemplo sistemas zSeries® da IBM®; servidores com base em arquitetura RISC (Reduced Instruction Set Computer), em um exemplo, sistemas pSeries® da IBM; sistemas xSeries® da IBM; sistemas BladeCenter® da IBM; dispositivos de armazenamento; redes e componentes de rede. Exemplos de componentes de software incluem software de servidor de aplicativos de rede, em um exemplo, servidor de aplicativo WebSphere® da IBM; e software de banco de dados, em um exemplo, software de banco de dados DB2® da IBM. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere e DB2 são marcas registradas da International Business Machines Corporation, registradas em muitas jurisdições no mundo).
[0228] A camada de virtualização 6062 provê uma camada de abstração a partir da qual podem ser fornecidos os seguintes exemplos de entidades virtuais: servidores virtuais; armazenamento virtual; redes virtuais, incluindo redes privadas virtuais; aplicativos virtuais e sistemas operacionais; e clientes virtuais.
[0229] Em um exemplo, a camada de gerenciamento 6064 pode proporcionar as funções descritas abaixo. O provisionamento de recursos provê a aquisição dinâmica de recursos de computação e outros recursos que são utilizados para realizar tarefas dentro do ambiente computacional em nuvem. A Medição e Precificação fornecem rastreamento de custos conforme os recursos são utilizados dentro do ambiente computacional em nuvem, e faturamento e emissão de invoices para consumo desses recursos. Em um exemplo, esses recursos podem incluir licenças de software de aplicativo. A segurança provê a verificação de identidade para usuários de nuvem e tarefas, bem como proteção de dados e outros recursos. O portal de usuário provê acesso ao ambiente computacional em nuvem para consumidores e administradores do sistema. O gerenciamento de nível de serviço provê gerenciamento e alocação de recurso de computação em nuvem, tal que que os níveis de serviço requeridos sejam atendidos. O planejamento e o cumprimento do Acordo de Nível de Serviço (SLA) prevê o pré-arranjo para, e a contratação de, recursos de computação em nuvem para os quais um requisito futuro é antecipado de acordo com um SLA.
[0230] A camada de cargas de trabalho 6066 provê exemplos de funcionalidade para os quais o ambiente computacional em nuvem pode ser utilizado. Exemplos de cargas de trabalho e funções que podem ser fornecidas a partir desta camada incluem: mapeamento e navegação; desenvolvimento de software e gerenciamento do ciclo de vida; treinamento em sala de aula virtual; processamento analítico de dados; e processamento de transação.
[0231] A terminologia usada neste documento tem a finalidade de descrever concretizações particulares apenas e não se destina a ser limitante. Como usado neste documento, as formas singulares “um”, “uma”, “o” e “a” destinam-se a incluir também as formas de plural, a menos que o contexto claramente indique o contrário. Será ainda entendido que os termos “compreende” e/ou “compreendendo”, quando usados nesta especificação, especificam a presença características citadas, números inteiros, etapas, operações, elementos e/ou componentes, mas não excluem a presença ou adição de uma ou mais de outras características, números inteiros, etapas, operações, elementos, componentes e/ou grupos dos mesmos.
[0232] As estruturas correspondentes, materiais, ações e equivalentes de todos os meios ou etapas mais elementos de função nas reivindicações abaixo, se houver, pretendem incluir qualquer estrutura, material ou ação para executar uma função em combinação com outros elementos reivindicados conforme especificamente reivindicado. A descrição de uma ou mais concretizações foi apresentada para fins de ilustração e descrição, mas não se destina a ser exaustiva ou limitada à forma divulgada. Muitas modificações e variações serão evidentes para os versados na técnica. A concretização foi escolhida e descrita a fim de melhor explicar vários aspectos e a aplicação prática, e para permitir que outras pessoas versadas na técnica compreendam que várias concretizações com várias modificações são adequadas para a utilização particular contemplada.

Claims (12)

1. Método para inicializar um sistema operacional (122, 220) de um utilitário de controle em um ambiente de computação, o método caracterizado pelo fato de que compreende: executar, por um processador (202), uma sequência de inicialização (124, 222) para inicializar o sistema operacional em uma de uma primeira configuração de arquitetura ou uma segunda configuração de arquitetura, em que na primeira configuração de arquitetura o sistema operacional é inicializado (900) em um primeiro modo de arquitetura, o primeiro modo de arquitetura compreendendo um primeiro conjunto de instruções e, em seguida, o processamento (912) comuta (904, 906) para um segundo modo de arquitetura, o segundo modo de arquitetura compreendendo um segundo conjunto de instruções diferente do primeiro conjunto de instruções de arquitetura, em que na segunda configuração de arquitetura o sistema operacional é inicializado (1000, 1002) e processado (1004) no segundo modo de arquitetura e em que a execução da sequência de inicialização compreende: executar uma ou mais instruções, independentemente de o processador executar ou não a inicialização (1100, 1102) com base na primeira configuração de arquitetura ou na segunda configuração de arquitetura, as uma ou mais instruções comuns ao primeiro modo de arquitetura e ao segundo modo de arquitetura no qual o uma ou mais instruções são definidas no primeiro modo de arquitetura e no segundo modo de arquitetura, e a execução compreende a execução de uma operação de comutação (1104) para solicitar uma comutação de modos de arquitetura para o processador, independentemente de o processador executar ou não a primeira inicialização no primeiro modo de arquitetura ou o segundo modo de arquitetura, em que a operação de comutação executa diferentemente com base em qual arquitetura do primeiro modo de arquitetura ou do segundo modo de arquitetura, o processador deve executar a inicialização e, com base na execução da operação de comutação, o utilitário de controle é inicializado no modo de arquitetura selecionado; em que a comutação compreende o envio de uma instrução de comutação para o processador para comutar para o modo de arquitetura selecionado.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a execução da sequência de inicialização (124, 222) compreende: definir uma palavra de status do programa (500) em um formato do primeiro modo de arquitetura ou do segundo modo de arquitetura, com base no fato de o processador (202) executar a inicialização no primeiro modo de arquitetura ou no segundo modo de arquitetura; e preparar para alternar o modo de executar a operação de comutação.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a execução da operação de comutação compreende alternar do primeiro modo de arquitetura para o segundo modo de arquitetura, em que o processamento do sistema operacional (122, 220) está no segundo modo de arquitetura.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que a execução da operação de comutação compreende solicitar a alternância do segundo modo de arquitetura para o segundo modo de arquitetura e em que a execução da operação de comutação resulta no status de armazenamento indicando que o processador (202) está atualmente no segundo modo de arquitetura, o status sendo tratado como aceitável para um emissor da operação de comutação.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que o primeiro modo de arquitetura usa endereçamento de 31 bits e registros de propósito geral de 32 bits, e o segundo modo de arquitetura usa endereçamento de 64 bits e registros de propósito geral de 64 bits.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que a execução da sequência de inicialização (124, 222) compreende determinar se o sistema operacional (122, 220) está gravado para o segundo modo de arquitetura e continuar com a execução da sequência de inicialização com base em o sistema operacional sendo gravado para o segundo modo de arquitetura.
7. Sistema de computador para inicializar um sistema operacional em 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: executar, por um processador (202), uma sequência de inicialização (124, 222) para inicializar o sistema operacional em uma de uma primeira configuração de arquitetura ou uma segunda configuração de arquitetura, em que na primeira configuração de arquitetura o sistema operacional é inicializado (900) em um primeiro modo de arquitetura, o primeiro modo de arquitetura compreendendo um primeiro conjunto de instruções e, em seguida, o processamento (912) comuta (904, 906) para um segundo modo de arquitetura, o segundo modo de arquitetura compreendendo o segundo conjunto de instruções diferente do primeiro conjunto de instruções de arquitetura, em que na segunda configuração de arquitetura, o sistema operacional é inicializado (1000, 1002) e processado (1004) no segundo modo de arquitetura e em que a execução da sequência de inicialização compreende: executar uma ou mais instruções, independentemente de o processador executar ou não a inicialização (1100, 1102) com base na primeira configuração de arquitetura ou na segunda configuração de arquitetura, as uma ou mais instruções comuns ao primeiro modo de arquitetura e ao segundo modo de arquitetura no qual o uma ou mais instruções são definidas no primeiro modo de arquitetura e no segundo modo de arquitetura, e a execução compreende a execução de uma operação de comutação (1104) para solicitar uma comutação de modos de arquitetura para o processador, independentemente de o processador executar ou não a primeira inicialização no primeiro modo de arquitetura ou no segundo modo de arquitetura, em que a operação de comutação executa diferentemente com base em qual arquitetura do primeiro modo de arquitetura ou do segundo modo de arquitetura, o processador deve executar a inicialização e, com base na execução da operação de comutação, o sistema operacional é inicializado em o modo de arquitetura selecionado; em que a comutação compreende o envio de uma instrução de comutação para o processador para alternar para o modo de arquitetura selecionado.
8. Sistema de computador, de acordo com a reivindicação 7, caracterizado pelo fato de que a execução da sequência de inicialização (124, 222) compreende: definir uma palavra de status do programa (500) em um formato do primeiro modo de arquitetura ou do segundo modo de arquitetura, com base no fato de o processador (202) executar a inicialização no primeiro modo de arquitetura ou no segundo modo de arquitetura; e preparar para alternar para o modo de executar a operação de comutação.
9. Sistema de computador, de acordo com a reivindicação 7 ou 8, caracterizado pelo fato de que a execução da operação de comutação compreende alternar do primeiro modo de arquitetura para o segundo modo de arquitetura, em que o processamento do sistema operacional (122, 220) está no segundo modo de arquitetura.
10. Sistema de computador, de acordo com qualquer uma das reivindicações 7 a 9, caracterizado pelo fato de que a execução da operação de comutação compreende solicitar a comutação do segundo modo de arquitetura para o segundo modo de arquitetura e em que a execução da operação de comutação resulta no status de armazenamento indicando o processador (202 ) está atualmente no segundo modo de arquitetura, sendo o status tratado como aceitável para um emissor da operação de comutação.
11. Sistema de computador, de acordo com qualquer uma das reivindicações 7 a 10, caracterizado pelo fato de que o primeiro modo de arquitetura usa endereços de 31 bits e registros de propósito geral de 32 bits, e o segundo modo de arquitetura usa endereços de 64 bits e registros de propósito geral de 64 bits.
12. Sistema de computador, de acordo com qualquer uma das reivindicações 7 a 11, caracterizado pelo fato de que a execução da sequência de inicialização (124, 222) compreende determinar se o sistema operacional (122, 220) está gravado para o segundo modo de arquitetura e continuar com a execução da sequência de inicialização com base no utilitário de controle que está sendo gravado para o segundo modo de arquitetura.
BR112016021599-0A 2014-03-18 2015-02-20 Sequência de inicialização comum para utilitário de controle capaz de ser inicializada em arquiteturas múltiplas BR112016021599B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/217,800 2014-03-18
US14/217,800 US9588774B2 (en) 2014-03-18 2014-03-18 Common boot sequence for control utility able to be initialized in multiple architectures
US14/554,313 2014-11-26
US14/554,313 US9600292B2 (en) 2014-03-18 2014-11-26 Common boot sequence for control utility able to be initialized in multiple architectures
PCT/EP2015/053638 WO2015139917A1 (en) 2014-03-18 2015-02-20 Common boot sequence for control utility able to be initialized in multiple architectures

Publications (2)

Publication Number Publication Date
BR112016021599A2 BR112016021599A2 (pt) 2017-08-15
BR112016021599B1 true BR112016021599B1 (pt) 2022-10-25

Family

ID=54142192

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016021599-0A BR112016021599B1 (pt) 2014-03-18 2015-02-20 Sequência de inicialização comum para utilitário de controle capaz de ser inicializada em arquiteturas múltiplas

Country Status (22)

Country Link
US (2) US9588774B2 (pt)
EP (1) EP3120239B1 (pt)
JP (1) JP6437008B2 (pt)
KR (1) KR101918831B1 (pt)
CN (1) CN106133682B (pt)
AU (1) AU2015233763B2 (pt)
BR (1) BR112016021599B1 (pt)
CA (1) CA2940867C (pt)
DK (1) DK3120239T3 (pt)
ES (1) ES2746479T3 (pt)
HU (1) HUE045068T2 (pt)
IL (1) IL247819B (pt)
LT (1) LT3120239T (pt)
MX (1) MX2016011922A (pt)
PL (1) PL3120239T3 (pt)
PT (1) PT3120239T (pt)
RU (1) RU2665238C2 (pt)
SG (1) SG11201606096VA (pt)
SI (1) SI3120239T1 (pt)
TW (1) TWI639090B (pt)
WO (1) WO2015139917A1 (pt)
ZA (1) ZA201605468B (pt)

Families Citing this family (22)

* 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
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
US10234921B2 (en) * 2016-03-04 2019-03-19 Schneider Electric USA, Inc. Systems and methods for operating a virtual power environment
US10423191B2 (en) 2017-01-19 2019-09-24 International Business Machines Corporation Clock comparator sign control
US10282327B2 (en) * 2017-01-19 2019-05-07 International Business Machines Corporation Test pending external interruption instruction
US10705825B2 (en) 2018-09-20 2020-07-07 Hewlett Packard Enterprise Development Lp Creation of images
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
TWI766211B (zh) * 2018-11-21 2022-06-01 美商聖巴諾瓦系統公司 可重組態資料處理器的組態加載和卸載
CN110109707B (zh) * 2019-04-10 2022-05-31 广州视源电子科技股份有限公司 终端启动方法、装置及终端
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US20220066784A1 (en) * 2019-05-17 2022-03-03 Hewlett-Packard Development Company, L.P. Disabling software persistence
US11055141B2 (en) 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11500653B2 (en) 2020-02-05 2022-11-15 International Business Machines Corporation Signal handling between programs associated with different addressing modes
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
CN112591152B (zh) * 2020-12-01 2023-01-31 上海航天控制技术研究所 空间站太阳翼控制系统
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US20230043202A1 (en) * 2021-08-05 2023-02-09 International Business Machines Corporation Query and update of processor boost information
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0734021Y2 (ja) * 1989-04-13 1995-08-02 株式会社ダイフク 搬送設備
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制御方法
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
US5790825A (en) 1995-11-08 1998-08-04 Apple Computer, Inc. Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions
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
US7406682B2 (en) 2001-03-26 2008-07-29 Emc Corporation Translator-compiler for converting legacy management software
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
GB0407384D0 (en) 2004-03-31 2004-05-05 Ignios Ltd Resource management in a multicore processor
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 엘지전자 주식회사 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
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
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
US20080093277A1 (en) * 2006-06-13 2008-04-24 John Armour Cadence detection in a sequence of video fields
KR101120956B1 (ko) 2006-12-31 2012-03-05 쌘디스크 코포레이션 휴대용 멀티-플랫폼 부팅시스템과 아키텍쳐
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US7739434B2 (en) 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US7734900B2 (en) 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US8321861B2 (en) 2008-02-20 2012-11-27 Arm Limited Non-native program execution across multiple execution environments
US8176279B2 (en) 2008-02-25 2012-05-08 International Business Machines Corporation Managing use of storage by multiple pageable guests of a computing environment
US8086811B2 (en) 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
US8301865B2 (en) 2009-06-29 2012-10-30 Oracle America, Inc. System and method to manage address translation requests
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
US8479172B2 (en) 2010-11-23 2013-07-02 International Business Machines Corporation Virtual machine testing
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
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 한국전자통신연구원 정보처리 시스템에서 운영체제 전환방법
TW201321949A (zh) 2011-11-23 2013-06-01 Inventec Corp 電源開機控制方法及其系統
US20140351563A1 (en) 2011-12-16 2014-11-27 Hyperion Core Inc. Advanced processor architecture
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
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
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

Also Published As

Publication number Publication date
TW201610708A (zh) 2016-03-16
IL247819A0 (en) 2016-11-30
SG11201606096VA (en) 2016-08-30
BR112016021599A2 (pt) 2017-08-15
LT3120239T (lt) 2019-09-25
DK3120239T3 (da) 2019-09-30
KR101918831B1 (ko) 2018-11-14
EP3120239A1 (en) 2017-01-25
US9600292B2 (en) 2017-03-21
ZA201605468B (en) 2017-09-27
JP6437008B2 (ja) 2018-12-12
AU2015233763A1 (en) 2016-08-04
RU2665238C2 (ru) 2018-08-28
AU2015233763B2 (en) 2017-11-30
EP3120239B1 (en) 2019-08-21
HUE045068T2 (hu) 2019-12-30
WO2015139917A1 (en) 2015-09-24
TWI639090B (zh) 2018-10-21
CN106133682A (zh) 2016-11-16
JP2017511941A (ja) 2017-04-27
PL3120239T3 (pl) 2019-12-31
US9588774B2 (en) 2017-03-07
RU2016126976A (ru) 2018-04-18
IL247819B (en) 2019-09-26
CN106133682B (zh) 2019-04-09
US20150268966A1 (en) 2015-09-24
PT3120239T (pt) 2019-10-11
US20150268965A1 (en) 2015-09-24
KR20160128374A (ko) 2016-11-07
SI3120239T1 (sl) 2019-11-29
ES2746479T3 (es) 2020-03-06
CA2940867A1 (en) 2015-09-24
MX2016011922A (es) 2016-12-09
CA2940867C (en) 2022-05-10

Similar Documents

Publication Publication Date Title
US11023256B2 (en) Architectural mode configuration
BR112016021599B1 (pt) Sequência de inicialização comum para utilitário de controle capaz de ser inicializada em arquiteturas múltiplas
BR112016021603B1 (pt) Gerenciamento de processamento associado com facilidades de arquitetura selecionadas

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 20/02/2015, OBSERVADAS AS CONDICOES LEGAIS