1) A velocidade de processamento dos circuitos atuais não pode aumentar indefinidamente devido a problemas de dissipação de calor e tamanho de transistores. 2) Computadores paralelos e multiprocessadores são soluções para atender as demandas crescentes por processamento. 3) Engenharia de computação envolve projetar sistemas paralelos e heterogêneos eficientes para aplicações como sistemas embarcados.
2. • Computadores cada vez mais rápidos
• Demandas crescentes
• Os Cientistas, os Engenheiros e a Indústria querem usar os
computadores para projetar e testar todas as suas teorias e
protótipos.
• Exemplo: projetar medicamentos para doenças específicas sem
ter de sacrificar animais
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 2
3. • A velocidade dos atuais circuitos não podem aumentar
indefinidamente
• A velocidade do clock tem aumentado gradativamente
• Dissipação de calor é um grande problema
• Tamanho dos transistores continua a diminuir: cada TRANSISTOR
terá um número tão pequeno de ÁTOMOS dentro dele que os
efeitos da mecânica quântica podem se tornar um grande
problema
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 3
4. • Computadores paralelos são uma solução temporária para as
necessidades atuais da sociedade
• Uma máquina + uma CPU + tempo de 0,001ns impossível
• Várias máquinas + 1000 CPUs + tempo de 1ns cada
possível
• O paralelismo existe em vários níveis
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 4
5. • Nível mais baixo: CPU, pipeline, CPUs superescalares, palavras
de instruções muito longas, múltiplos threads de controle ao
mesmo tempo, CPUs reunidas em um mesmo CHIP, etc.
Desempenho 10x maior
• Nível seguinte: placas extras de CPU com funções especificas.
Desempenho de 5 a 10x maior.
• Independente do fato de desempenho aumentar, CPUs devem
ser replicadas INTEIRAS e devem funcionar juntas com eficiência
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 5
6. • Clusterização, multicomputadores, multiprocessadores, grids,
nuvem
• PROCESSAMENTO FORTEMENTE ACOPLADO: quando duas
CPUs ou dois elementos de processamento estão perto um do
outro, têm alta largura de banda, o atraso é baixo e são
próximos computacionalmente
• PROCESSAMENTO FRACAMENTE ACOPLADO: quando estão
longe um do outro, têm baixa largura de banda, alto atraso,
são remotos computacionalmente
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 6
8. • Objetivo: Fazer mais coisas ao mesmo tempo
• Emissão de múltiplas instruções por ciclo de clock
• Dois tipos:
• Processadores superescalares
• Processadores VLIW
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 8
9. • CPUs Superescalares são capazes de emitir múltiplas
instruções para as unidades de execução em um único ciclo
de clock
• De duas a seis instruções podem ser emitidas de uma única
vez
• O número máximo é determinado pelo hardware
• Se uma instrução precisar de uma unidade funcional ou
resultado que não está disponível, ela não será emitida
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 9
10. • Very Long Instruction Word – palavra de instrução muito
longa
• Instruções que usavam múltiplas unidades funcionais
• Exemplificando:
• Considere uma máquina que tenha 5 unidades funcionais,
efetua simultaneamente 2 operações com inteiros, 1
operação em ponto flutuante, 1 carregamento e 1
armazenamento.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 10
11. • Uma instrução VLIW para essa máquina conteria 5 opcodes
e 5 pares de operandos, sendo 1 opcode e 1 par de
operandos por unidade funcional
• Supondo 6 bits por OPCODE, 5 bits por REGISTRADOR, 32
bits por endereço de memória, as instruções teriam 134 bits.
• Isso significa uma palavra longa: tamanho de bits de uma
instrução muito grande
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 11
13. • DESVANTAGEM: nem toda instrução podia utilizar todas as
unidades funcionais, o que resultava em muitas NO-OP
• Transfere do tempo de execução para o tempo de
compilação o trabalho de determinar quais instruções podem
ser emitidas em conjunto
• Simplifica o hardware e o torna mais rápido
• Paralelismo no nível da memória: há múltiplas operações de
memória no ar ao mesmo tempo
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 13
14. • Problema INERENTE no PIPELINE das CPUs modernas:
• Quando uma referência à memória encontra uma ausência das caches
de nível 1 e nível 2, há uma longa espera até que a palavra
requisitada, e sua linha de cache associada, sejam carregadas na
cache, portanto, o pipeline para.
• MULTITHREADING NO CHIP:
• Solução para o problema descrito acima
• Permite que a CPU gerencie múltiplos threads de controle ao mesmo
tempo
• Se o thread 1 estiver bloqueado, a CPU ainda tem chance de
executar o thread 2, de modo a manter a CPU sempre ocupada
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 14
15. • Multithreading de granulação fina:
• Mascara as protelações executando os threads segundo uma
política de alternância circular, com um thread diferente em
ciclos consecutivos
• Se uma protelação de memória demorasse quatro ciclos,
precisaríamos de quatro threads para garantir a operação
contínua e assim por diante
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 15
16. • Cada thread precisa do seu próprio conjunto de registradores
• O número máximo de threads que podem ser executados de uma só
vez é fixado no projeto do chip
• RAZÃO PARA PROTELAÇÃO
• Operações de memória.
• Uma instrução pode precisar de um resultado calculado por outra
instrução que ainda não foi concluída.
• Uma instrução não pode iniciar porque ela vem após um desvio
condicional cuja direção ainda não é conhecida
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 16
17. • Se o pipeline tiver K estágio, mas houver no mínimo K threads para
fazer alternância circular, NUNCA haverá mais de uma instrução por
THREAD no pipeline a qualquer momento, portanto, Não pode
ocorrer nenhum conflito.
• Dessa forma a CPU executa em velocidade total e não fica OCIOSA
• MULTITHREADING DE GRANULAÇÃO GROSSA:
• Nem sempre há tantos threads disponíveis quantos são os estágios
do pipeline
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 17
18. • Se perde um ciclo sempre que uma instrução protela
• Troca threads quando há protelação ou
• Trocar threads de imediato em qualquer instrução que poderia
acarretar uma protelação, antes mesmo de descobrir se ela de fato
causaria isso.
• É potencialmente menos eficiente do que o de granulação fina
• Vantagem: precisa de um número menor de threads para manter a
CPU ocupada
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 18
19. • Monitorar qual operação pertence a qual thread
• MULTITHREADING DE GRANULAÇÃO FINA: anexar um identificador
de thread a cada operação, para que sua identidade fique clara ao
percorrer o pipeline
• MULTITHREADING DE GRANULAÇÃO GROSSA: ao trocar de
threads, limpar o pipeline e só então iniciar o próximo thread
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 19
20. • Considere, a partir de agora, que a CPU pode emitir múltiplas
instruções por ciclo de clock
• Manter a regra: quando uma instrução protela, as subsequentes não
podem ser emitidas
• MULTITHREADING DE GRANULAÇÃO FINA PARA UMA CPU
SUPERESCALAR DUAL:
• Emite duas instruções por ciclo de clock
• Para o Thread A, as duas primeiras instruções podem ser emitidas
no 1.º ciclo
• Para o Thread B, há um problema no próximo ciclo, então somente
uma instrução será emitida
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 20
21. • MULTITHREADING DE GRANULAÇÃO GROSSA PARA UMA CPU
SUPERESCALAR DUAL:
• Os threads são executados um por vez
• A CPU emite duas instruções por thread até atingir um que protela
• Nesse ponto, troca para o próximo thread no início do ciclo seguinte
• MULTITHREADING SIMULTANEO:
• Refinamento do multithreading de granulação grossa
• Um único thread tem permissão de emitir duas instruções por ciclo
pelo tempo que puder
• Quando protelar, as instruções são tomadas imediatamente do
próximo thread na sequencia
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 21
22. • MULTITHREADING SIMULTANEO:
• Mantém a CPU ocupada por completo
• Ajuda a manter ocupadas todas as unidades funcionais
• Uma instrução de um thread diferente pode ser escolhida para ser
executada, caso uma instrução de outra thread não possa ser
iniciada porque a unidade funcional de que ela precisa está
ocupada
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 22
23. • Duas ou mais CPUs em um único CHIP
• Compartilham a mesma cache L2
• Compartilham memória principal
• Área de aplicação típica:
• Servidores web:
• Compartilham memória principal, memória cache,
memória permanente, interfaces de rede, etc.
• Isto dobra o desempenho sem dobrar o custo
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 23
24. • 1.ª forma de implementação:
• Uma CPU um único chip, mas com dois pipelines
• Dobra a taxa de execução de instruções
• Recursos (unidades funcionais) podem ser compartilhados
entre os processadores. Isso permite que uma CPU use
recursos que outra não esteja usando, entretanto, não
funciona bem para mais de 2 CPUs.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 24
25. • 2.ª forma de implementação:
• Núcleos separados no mesmo CHIP
• Cada núcleo contém uma CPU completa
• NÚCLEO: é um grande circuito, controlado por E/S ou CACHE,
que pode ser colocado em um CHIP de forma modular.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 25
27. • Área de aplicação: sistemas embutidos (televisores, DVDs,
filmadoras, consoles, smartphones, etc.)
• Exemplo: composição de um APARELHO DE TELEVISÃO
• Controle de servomecanismo (cabeçote)
• Correção de erros
• Decriptação e gerenciamento de direitos digitais
• Descompressão de vídeo
• Descompressão de áudio
• Codificação de saída (NTSC, PALM, SECAM)
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 27
28. • O trabalho realizado pelo aparelho de televisão exige os
seguintes cuidados:
• Restrições de tempo real
• Qualidade de serviço
• Energia
• Dissipação de calor
• Tamanho
• Peso
• Preço
• Etc.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 28
29. • Multiprocessador heterogêneo:
• Contem múltiplos núcleos
• Cada núcleo especializado em uma tarefa particular
• As funções dos núcleos são todas diferentes
• Cada uma é projetada com cuidado para ser muito boa
no que faz pelo preço mais baixo possível
• Processadores dedicados em hardware: chips
multiprocessadores heterogêneos que contem múltiplos
núcleos projetos para aplicações audiovisuais
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 29
30. • O processador de controle de um multiprocessador
heterogêneo é uma CPU programável de uso geral
• À medida que os dispositivos (sistemas embutidos) adquirem
cada vez mais funcionalidades e recursos, a necessidade de
multiprocessadores heterogêneos só aumenta
• Chips como esses são grandes demais
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 30
31. • A maneira mais viável de projetar um multiprocessador como
este é:
• Usar núcleos que contenham subconjuntos grandes
• Colocar os núcleos e interconectá-los no chip conforme
necessidades
• Determinar no projeto:
• Qual núcleo de CPU usar para processador de controle
• Quais Processadores de uso especial acrescentar
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 31
32. • Atribuir mais carga ao software que executa no processador
de controle faz o sistema ficar mais lento, entretanto, o chip
fica menor e mais barato
• Ter mais processadores de uso especial para áudio e vídeo
ocupa uma área maior do chip, o que aumenta o custo, mas
melhora o desempenho, diminui taxa de clock, consume
menos energia e dissipa menos calor.
• 50% a 75% da área do chip é dedicado à memória, devido
às grandes quantidades de dados que precisam ser
processados
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 32
33. • Questões relevantes de projeto que tem implicações par ao
desempenho, consumo de energia e dissipação de calor do
chip:
• Quantos níveis de cache devem se usados?
• As caches devem ser unificadas ou divididas?
• Qual deverá ser o tamanho de cada uma?
• Qual deverá ser a rapidez?
• Um pouco da memória também deve ir par ao chip?
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 33
34. • Como todos os núcleos se comunicam uns com os outros?
• Sistemas pequenos: um único barramento
• Sistemas maiores:
• Múltiplos barramentos
• Anel que vai de um núcleo ao outro
• Etc.
• Exemplo de barramento usado em sistemas embutidos:
CoreConnect, AMBA, VCI, OCP-IP, etc.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 34
35. • O computador ganha velocidade com a adição de um segundo
processador especializado: o coprocessador. Exemplos:
• Coprocessadores de E/S
• Coprocessadores gráficos
• Coprocessadores de ponto flutuante
• DMA (acesso direto a memória)
• A CPU dá ao coprocessador uma ou mais instruções e ordena que
ele as execute. Em alguns casos, o coprocessador é independente
e funciona por si só
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 35
36. • Coprocessadores podem ser:
• Gabinete separado (canais de E/S, por exemplo)
• Placa de expansão (processadores de rede, por exemplo)
• Área no chip principal
• O coprocessador ajuda o processador principal
• Três áreas: processamento de rede, multimídia e criptografia
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 36
37. • Coprocessadores podem ser:
• Gabinete separado (canais de E/S, por exemplo)
• Placa de expansão (processadores de rede, por exemplo)
• Área no chip principal
• O coprocessador ajuda o processador principal
• Três áreas: processamento de rede, multimídia e criptografia
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 37
38. • Dificuldade em processar os dados que trafegam pela rede em
software
• Computadores de alta tecnologia contém um processador de rede
• Curiosidade:
• Velocidade das LANs atuais: 40 gigabits/segundo com pacotes
de 1 KB
• Computador em rede: processa 5 milhões de pacotes/segundo
• Qual a solução para o processamento dessa enorme quantidade
de pacotes?
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 38
39. • Primeira opção:
• ASIC:
• Application specific integrated circuit
• Circuito integrado específico da aplicação
• Hardware para processamento rápido de pacotes
• Executa qualquer conjunto de funções de processamento
para o qual foi projetado
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 39
40. • ASIC:
• Desvantagens:
• Projeto demorado
• Fabricação demorada
• É preciso projetar e fabricar um novo chip se houver
uma nova funcionalidade
• Gerenciamento de bugs é péssimo
• São caros
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 40
41. • Segunda opção:
• FPGA
• Field programmable gate array
• Arranjo de portas programável em campo
• Um conjunto de portas que pode ser organizado
conforme o circuito desejado modificando sua fiação
em campo
• Projeto e fabricação rápidos
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 41
43. • Terceira opção:
• Processadores de rede
• Dispositivos programáveis que podem manipular pacotes que chegam
e que saem à velocidade dos fios (em tempo real)
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 43
44. • Terceira opção:
• Processadores de rede
• Milhões de pacotes por segundo por linha de rede
podem ser processados
• Um roteador pode ter várias linhas de rede
• Processadores de redes devem ter alto grau de
paralelismo
• PPEs:
• protocol-programmable-packet processor engines
• Dispositivos de processamento de protocolo-
programáveis-pacotes
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 44
45. • Terceira opção:
• PPEs:
• Um processador de rede tem vários PPEs
• É um núcleo RISC com memória interna para o programa e
algumas variáveis
• Todos os processadores de rede contém também um processador
de controle (processador RISC padronizada de uso geral)
• Todos os componentes do processador de rede se comunicam por
um ou mais barramentos paralelos no chip
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 45
46. • Tratamento de processamento gráfico de alta resolução. Exemplo:
renderização 3D.
• GPUs:
• Graphics processing units
• Unidades de processamento gráfico
• CUDA:
• Compute unified Device Architecture
• Arquitetura de elemento unificado de computação
• Cálculos com inteiros e ponto flutuante com precisão simples
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 46
47. • SMs
• Streaming multiprocessor
• Multiprocessadores streaming
• Cada SMs tem uma quantidade de CUDA
• GPGPUs
• General purpose graphics processing units
• Unidades de processamento gráfico de uso geral
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 47
48. • Área de segurança e segurança de redes
• Criptografia faz uso intensivo de computação
• Dois tipos de criptografia:
• Chave simétrica: baseada em mistura completa de bits
(bater tudo em um liquidificador)
• Chave pública: baseada em multiplicação e
exponenciação de grandes números. Consome enorme
quantidade de tempo.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 48
49. • Coprocessadores criptográficos
• Placas de expansão para barramento PCI
• Tem um hardware especial que habilita a execução da
criptografia necessária muito mais rápido do que uma CPU
comum.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 49
50. • É um computador paralelo no qual todas as CPUs compartilham
uma memória comum
• Todos os processos que funcinam juntos em um multiprocessador
podem compartilhar um único espaço de endereço virtual
mapeado para a memória comum
• Qualquer processo pode ler ou escrever uma palavra da
memória apenas executando uma instrução LOAD ou STORE
• Vantagem: capacidade de dois ou mais processos se
comunicarem apenas lendo e escrevendo na memória
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 50
51. • Duas formas de acesso à E/S
• 1.ª: Somente certas CPUs tem acesso ao dispositivos e tem
uma função especial de E/S
• 2.ª: Cada CPU tem igual acesso a todo dispositivo de E/S.
• SMP – symmetric multiprocessor – multiprocessador
simétrico: quando cada CPU tem igual acesso a todos os
módulos de memória e a todos os dispositivos de E/S e é
tratada pelo sistema operacional como intercambiável com
as outras.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 51
53. • Uma das distinções entre multiprocessadores e
multicomputadores é o sistema operacional.
• Em multiprocessadores há apenas uma única cópia do S.O.
• Em multicomputadores, cada computador tem sua própria
cópia do S.O.
• Multicomputador: Toda CPU tem sua memória privada,
acessível somente a ela mesma e a nenhuma outra
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 53
54. • Também pode ser chamado de memória distribuída
• A CPU de um multicomputador tem sua própria memória local
privada, a qual pode acessar apenas executando instruções
LOAD e STORE.
• Nenhuma outra CPU pode acessar instruções LOAD e STORE
• Multicomputadores tem um espaço de endereço físico para cada
CPU
• Multiprocessadores tem um único espaço de endereço físico
compartilhado por todas as CPUs
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 54
56. • Multicomputadores não podem se comunicar lendo e
escrevendo na memória comum
• Solução: as CPUS passam mensagens uma para outro usando
a rede de interconexão
• Exemplos: IBM BlueGene/L, Red Storm e Cluster Google
• A comunicação entre processos costuma usar primitiva de
software como SEND e RECEIVE
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 56
57. • Em um multicomputador as CPUs precisam descobrir qual
CPU tem os dados de que precisa e enviar a essa CPU uma
mensagem requisitando uma cópia dos dados
• Assim, a CPU bloqueia até que a requisição seja atendida.
• Programar multicomputadores é mais difícil do que
programar um multiprocessador (baixo nível)
• Entretanto, é mais barato e simples construir GRANDES
multicomputadores do que multiprocessadores
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 57
58. • Atualmente são utilizados sistemas híbridos
• Chave do sucesso: construir projetos que continuem a
funcionar bem à medida que mais e mais CPUs sejam
adicionadas
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 58
61. • Categorização em fluxos de instruções e fluxos de dados
• Fluxo de instruções: corresponde a um contador de programa.
Um sistema com N CPUs tem N contadores de programa,
portanto, n fluxos de instruções
• Fluxo de dados: conjunto de operandos.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 61
62. • SISD: Single instruction stream, single data stream. Fluxo de
instrução único, fluxo de dados único. Um fluxo de instruções, um
fluxo de dados e faz uma coisa por vez
• SIMD: Single Instruction Multiple Data. Uma única instrução
manipula vários dados. Tem uma única UC que emite uma
instrução por vez, mas tem múltiplas ULAs para executar as
instruções em vários conjuntos de dados simultameamente
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 62
63. • MISD: Multiple Instruction Single Data. Multiplas instruções com
dados únicos. Múltiplas instruções operando no mesmo conjunto
de dado
• MIMD: Multiple Instructions Multiple Data. Multiplas instruções
manipulando múltiplos dados diferentes. Múltiplas CPUs
independentes operando como parte de um sistema maior.
Multiprocessadores e multicomputadores são máquinas MIMD
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 63
64. • UMA:
• uniform memory aaccess
• acesso uniforme à memória
• CARACTERISTICA: A memória é subdividida em vários
módulos. Cada CPU tem o mesmo tempo de acesso a todos
a todos os módulos de memória.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 64
65. • COMA: cache only memory access – acesso somente à memória
cache
• NUMA: nonuniform memory access – acesso não uniforme à
memória
• CARACTERISTICA DE AMBAS: é mais rápido acessar os módulos
de memória que esTão próximos a cada CPU do que os mais
distantes
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 65
66. • MPPs:
• massively parallel processors
• Processadores de paralelismo maçico
• São supercomputadores caros que consistem em muitas
CPUs fortemente acopladas por uma rede de interconexão
proprietária de alta velocidade
• Exemplo: IBM SP/3
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 66
67. • COWs
• Cluster of workstations
• Grupo de estações de trabalho
• Consistem em PCs ou estações de trabalhos comuns,
montados em estantes e conectados por tecnologia de
interconexão comercial
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 67