Multiprocessamento assimétrico - Asymmetric multiprocessing

Um sistema de multiprocessamento assimétrico ( AMP ou ASMP ) é um sistema de computador multiprocessador onde nem todas as unidades de processamento central (CPUs) múltiplas interconectadas são tratadas igualmente. Por exemplo, um sistema pode permitir (no nível do hardware ou do sistema operacional ) apenas uma CPU para executar o código do sistema operacional ou pode permitir que apenas uma CPU execute as operações de E / S. Outros sistemas AMP podem permitir que qualquer CPU execute o código do sistema operacional e operações de E / S, de modo que sejam simétricos em relação às funções do processador, mas conectem alguns ou todos os periféricos a CPUs específicas, de modo que sejam assimétricos em relação ao periférico acessório.

O multiprocessamento assimétrico era o único método para lidar com várias CPUs antes que o multiprocessamento simétrico (SMP) estivesse disponível. Ele também foi usado para fornecer opções menos caras em sistemas onde o SMP estava disponível.

Multiprocessamento assimétrico

Antecedentes e história

Para os computadores do tamanho de uma sala das décadas de 1960 e 1970, uma maneira econômica de aumentar o poder de computação era adicionar uma segunda CPU. Como esses computadores já estavam próximos dos mais rápidos disponíveis (perto do pico da relação preço: desempenho), duas CPUs de velocidade padrão eram muito mais baratas do que uma CPU que rodava duas vezes mais rápido. Além disso, adicionar uma segunda CPU era menos caro do que um segundo computador completo, que precisaria de seus próprios periféricos, exigindo muito mais espaço físico e uma equipe de operações maior.

As primeiras ofertas AMP notáveis ​​por fabricantes de computador foram o Burroughs B5000 , o DECsystem-1055 e o IBM System / 360 modelo 65MP. Também havia máquinas de CPU dupla construídas em universidades.

O problema de adicionar uma segunda CPU a um sistema de computador era que o sistema operacional havia sido desenvolvido para sistemas de CPU única, e estendê-lo para lidar com várias CPUs de maneira eficiente e confiável demorava muito. Para preencher essa lacuna, os sistemas operacionais destinados a CPUs individuais foram inicialmente estendidos para fornecer suporte mínimo para uma segunda CPU. Nesse suporte mínimo, o sistema operacional rodava no processador “boot”, sendo que o outro só podia rodar programas do usuário. No caso do Burroughs B5000, o hardware do segundo processador não era capaz de executar o código de "estado de controle".

Outros sistemas permitiam que o sistema operacional rodasse em todos os processadores, mas conectavam todos os periféricos a um processador ou conectavam periféricos específicos a processadores específicos.

Burroughs B5000 e B5500

Uma opção no Burroughs B5000 era o “Processador B”. Este segundo processador, ao contrário do “Processador A” não tinha conexão com os periféricos, embora os dois processadores compartilhassem a memória principal e o Processador B não pudesse funcionar no Estado de Controle. O sistema operacional era executado apenas no Processador A. Quando havia um trabalho do usuário a ser executado, ele poderia ser executado no Processador B, mas quando esse trabalho tentava acessar o sistema operacional, o processador parava e sinalizava o Processador A. O serviço do sistema operacional solicitado foi então executado no Processador A.

No B5500, o Processador A ou o Processador B podem ser designados como Processador 1 por um interruptor no painel do engenheiro, com o outro processador sendo o Processador 2; ambos os processadores compartilhavam a memória principal e tinham acesso de hardware aos processadores de E / S e, portanto, aos periféricos, mas apenas o Processador 1 poderia responder às interrupções periféricas. Quando um trabalho no Processador 2 exigisse um serviço do sistema operacional, ele seria reprogramado no Processador 1, que era responsável por iniciar a atividade do processador de E / S e responder às interrupções que indicavam a conclusão. Na prática, isso significava que, embora os trabalhos do usuário pudessem ser executados no Processador 1 ou no Processador 2 e pudessem acessar as rotinas da biblioteca intrínseca que não exigiam suporte do kernel, o sistema operacional os agendava no último sempre que possível.

CDC 6500 e 6700

A Control Data Corporation ofereceu duas configurações de sua série CDC 6000 com dois processadores centrais . O CDC 6500 era um CDC 6400 com dois processadores centrais. O CDC 6700 era um CDC 6600 com o processador central CDC 6400 adicionado a ele.

Esses sistemas foram organizados de maneira bem diferente dos outros multiprocessadores neste artigo. O sistema operacional rodava nos processadores periféricos , enquanto o aplicativo do usuário rodava nas CPUs. Portanto, os termos ASMP e SMP não se aplicam adequadamente a esses multiprocessadores.

DECsystem-10

A Digital Equipment Corporation (DEC) ofereceu uma versão de processador duplo de seu DECsystem-1050 que usava dois processadores KA10; todos os periféricos foram conectados a um processador, o processador principal e o processador principal executou o código do sistema operacional. Esta oferta foi estendida aos processadores KL-10 e KS-10 na linha PDP-10; nesses sistemas, a CPU de inicialização é designada "CPU de política", que executa o interpretador de comandos, troca tarefas dentro e fora da memória e executa algumas outras funções; outras funções do sistema operacional e E / S podem ser executadas por qualquer um dos processadores e, se o processador de política falhar, outro processador assume como o processador de política.

PDP-11/74

A Digital Equipment Corporation desenvolveu, mas nunca lançou, um multiprocessador PDP-11 , o PDP-11/74, rodando uma versão multiprocessador do RSX-11M . Nesse sistema, qualquer um dos processadores poderia executar o código do sistema operacional e executar E / S, mas nem todos os periféricos eram acessíveis a todos os processadores; a maioria dos periféricos eram conectados a uma ou outra das CPUs, de modo que um processador ao qual não havia um periférico conectado, quando precisasse realizar uma operação de E / S naquele periférico, solicitasse o processador ao qual o periférico estava conectado para realizar a operação.

VAX-11/782

O primeiro sistema VAX multiprocessador da DEC , o VAX-11/782, era um sistema assimétrico de processador duplo; apenas o primeiro processador teve acesso aos dispositivos de E / S.

IBM System / 370 modelo 168

Duas opções estavam disponíveis para o IBM System / 370 Modelo 168 para conectar um segundo processador. Uma delas era a IBM 3062 Attached Processing Unit , na qual o segundo processador não tinha acesso aos canais e, portanto, era semelhante ao Processador B do B5000 ou ao segundo processador em um VAX-11/782. A outra opção oferecia uma segunda CPU completa e, portanto, era mais parecida com o modelo System / 360 65MP.

Veja também

Notas

Referências

links externos