Anda di halaman 1dari 69

Unidade Central de Processamento

Prof. Marcos Quinet Universidade Federal Fluminense UFF Plo Universitrio de Rio das Ostras - PURO

Unidade Central de Processamento

O processador o componente vital de um sistema computacional, responsvel pela realizao das operaes de processamento e de controle, durante a execuo de um programa

Um programa, para ser efetivamente executado pelo processador, deve ser constitudo de uma srie de instrues de mquina. Para que a execuo tenha incio, as instrues devem ser armazenadas na memria principal Ao nos referirmos ao processador, comum adotarmos os termos UCP e CPU
2

Tarefas da UCP

As funes da UCP so:


Buscar na memria a instruo a ser executada; Interpretar que operao a instruo est explicitando; Buscar os dados onde estiverem armazenados; Executar efetivamente a operao com os dados e armazenar o resultado no local definido pela instruo; Reiniciar o processo, buscando a prxima instruo.

Ciclo de Instruo

Estas etapas compem o que se denomina um ciclo de instruo. Este ciclo se repete indefinidamente at que o sistema seja desligado, ou ocorra algum tipo de erro, ou seja encontrada uma instruo de parada. Em outras palavras, a UCP projetada e fabricada com o propsito nico de executar sucessivamente pequenas operaes, na ordem definida pela organizao do programa.

Funes da UCP

As atividades realizadas pela UCP podem ser divididas em duas grandes categorias funcionais: funo processamento e funo controle
A funo processamento se encarrega de realizar as atividades relacionadas com a efetiva execuo de uma operao, ou seja, processar;
A funo controle exercida pelos componentes da UCP que se encarregam das atividades de busca, interpretao e controle da execuo das instrues, bem como do controle da ao dos demais componentes do sistema de computao (memria, entrada/sada).
5

Funes da CPU

Anteriormente, j nos foi apresentado o conceito do que significa processamento de dados, a ao de manipular um ou mais valores (dados) em uma certa sequncia de passos, de modo a produzir um resultado til. Este resultado muda conforme o tipo de operao realizada

Funes da CPU

Processar o dado executar com ele uma ao que produza algum tipo de resultado. Esta , pois, a atividade-fim do sistema, uma vez que ele existe simplesmente para processar dados. Entre as tarefas comuns a esta funo (processamento) podem ser citadas as que realizam:
Operaes aritmticas Operaes lgicas Movimentao de dados Desvios Operaes de entrada ou sada

ULA Unidade Lgica e Aritmtica

O dispositivo principal desta rea de atividades de uma CPU chamado de ALU ou ULA (Unidade Lgica e Aritmtica). Os demais componentes relacionados com a funo processamento so os registradores, que servem para armazenar dados (ou para guardar resultados) a serem utilizados pela ULA. A interligao entre estes componentes efetuada pelo barramento interno da UCP.

ULA

A ULA o dispositivo da UCP que executa realmente as operaes matemticas com os dados, como por exemplo operaes de deslocamento, incremento, decremento e complemento, alm das operaes aritmticas e lgicas j apresentadas.

Tais operaes podem utilizar um (operaes unrias) ou dois (operaes binrias) valores e, por isso, a ULA possui dois registradores de entrada.
9

Componentes da UCP

A ULA um aglomerado de circuitos lgicos e componentes eletrnicos simples que, integrados, realizam as operaes citadas. A seo de controle formada basicamente pela Unidade de Controle (UC) e pelo registrador de instruo (IR) A seo de processamento formada pela unidade lgica e aritmtica e por diversos registradores

10

Registradores
So pequenas unidades de memria, implementadas na UCP, com as seguintes caractersticas: Tempo de acesso - por serem construdos com a mesma tecnologia da UCP, estes dispositivos possuem o menor tempo de acesso do sistema, algo em torno de 10 a 20 nanossegundos Capacidade - os registradores so fabricados com a capacidade de armazenar um nico dado, uma nica instruo ou at mesmo um nico endereo, fazendo, assim, com que sua capacidade seja de alguns poucos bits, variando, normalmente, entre 8 e 64 bits

11

Registradores

Volatilidade registradores so memrias de semicondutores e, portanto, necessitam de energia eltrica para funcionarem. Assim, registradores so memrias volteis Temporariedade - os registradores so memrias auxiliares internas UCP e, portanto, tendem a guardar informao o mais temporariamente possvel. Acumuladores ou registradores de dados armazenam os dados apenas o tempo necessrio para sua utilizao na ULA Custo - devido tecnologia mais avanada de sua fabricao, os registradores consistem no tipo de memria de maior custo

12

Sees de Controle e Processamento


S1 S2

A S1
B

D ULA R

S2 ESTADO
UNIDADE DE CONTROLE Sn

Rn ... R1 R0

MAR IR MBR PC 13

Seo de Processamento
Registradores:
A, B, R: registradores temporrios que armazenam, respectivamente, os valores a serem operados e o valor resultante R0 ... Rn: registradores de dados MAR: endereo da locao de memria onde ser feito o acesso MBR: armazena temporariamente a informao transferida de ou para a locao de memria endereada pelo MAR PC: contador de programa, contm o endereo da locao de memria onde se encontra a prxima instruo a ser executada IR: registrador de instrues ESTADO: guarda informaes sobre o resultado produzido pela ULA. Exemplo: o bit n 1 se o resultado for nulo e 0 se for nonulo
14

Seo de Processamento

Alm dos registradores de dados, a UCP possui sempre outros registradores (que no participam diretamente da funo processamento), com funes especficas ou que funcionam para a rea de controle. Entre estes registradores podemos destacar:
Registrador de instruo (IR Instruction Register) Contador de programa (PC Program Counter) Registrador de endereos de memria (MAR Memory Address Register) Registrador de dados de memria (MBR Memory Buffer Register).
15

Seo de Processamento

Registrador de Dados da Memria (MBR) registrador que armazena temporariamente a informao que est sendo transferida da MP para a UCP (leitura) ou da UCP para a MP (escrita). Em seguida, a referida informao reencaminhada para outro elemento da UCP para processamento ou para uma clula da MP, conforme o tipo da operao de transferncia. Registrador de Endereos da Memria (MAR) registrador que armazena temporariamente o endereo de acesso a uma posio de memria, ao se iniciar uma operao de leitura ou de escrita. Em seguida, o referido endereo encaminhado rea de controle da MP para decodificao e localizao da clula desejada
16

Seo de Processamento

Os barramentos internos de comunicao esto representados em S1, S2 e D. Os dois primeiros permitem a transferncia de dados dos registradores para a ULA. O barramento D permite a transferncia do resultado produzido pela ULA, temporariamente armazenado no registrador R, para outro registrador

17

Seo de Processamento

Uma arquitetura de processador uma arquitetura de n bits quando todas as operaes da ULA podem ser realizadas sobre operandos de at n bits Normalmente em uma arquitetura de n bits, os registradores de dados e os barramentos internos tambm so de n bits, de forma a permitir que os dados sejam armazenados e transferidos de forma eficiente

18

Seo de Processamento

Para que um dado possa ser transferido para a ULA, necessrio que ele permanea, mesmo que por um breve instante, armazenado em algum registrador.
Alm disso, o resultado de uma operao realizada na ULA deve ser armazenado temporariamente, de modo que possa ser reutilizado mais adiante (por outra instruo) ou apenas para ser, em seguida, transferido para a memria
19

Seo de Processamento

Para atender a estes propsitos, a UCP fabricada com uma certa quantidade de registradores, destinados ao armazenamento de dados. Servem, pois, de memria auxiliar da ULA. H sistemas nos quais um desses registradores, denominado acumulador (ACC), alm de armazenar dados, serve de elemento de ligao da ULA com os demais dispositivos da UCP

20

Seo de Processamento

Em geral os registradores de dados da UCP tm largura (capacidade em bits) igual ao tamanho da palavra. Por exemplo, o tamanho da palavra dos processadores IBM/370 era de 32 bits, a mesma largura dos registradores de emprego geral neles existentes. Alm disso, a quantidade e o uso dos registradores variam bastante de modelo para modelo de UCP.

21

Seo de Controle

Todas as operaes bsicas que ocorrem dentro da seo de processamento so comandadas pela seo de controle. Ao efetuar a busca da instruo, a unidade de controle interpreta a instruo de modo a identificas quais as operaes bsicas que devem ser realizadas e ativa sinais de controle (S1, S2, ..., Sn) que fazem uma operao bsica de fato acontecer Em outras palavras, a seo de controle projetada para entender o qu fazer, como fazer e comandar quem vai fazer no momento adequado.
22

Unidade de Controle

o dispositivo mais complexo da UCP. Alm de possuir a lgica necessria para realizar a movimentao de dados e instrues de e para a UCP, esse dispositivo controla a ao da ULA.
Os sinais de controle emitidos pela UC ocorrem em vrios instantes durante o perodo de realizao de um ciclo de instruo e, de modo geral, todos possuem uma durao fixa e igual, originada em um gerador de sinais usualmente conhecido como relgio (clock).
23

Clock

o dispositivo gerador de pulsos cuja durao chamada de ciclo. A quantidade de vezes em que este pulso bsico se repete em um segundo define a unidade de medida do relgio, denominada frequncia, a qual tambm usamos para definir velocidade na UCP. Um ciclo de relgio (clock cycle) ou de mquina o intervalo de tempo entre o incio de um pulso e o incio do pulso seguinte

24

Clock

A unidade de medida usual para a frequncia dos relgios de UCP o Hertz (Hz), que significa um ciclo por segundo. Como se trata de frequncias elevadas, abreviam-se os valores usando-se milhes (106) de Hertz ou de ciclos por segundo (MegaHertz ou MHz). Nos processadores mais modernos o clock medido em GigaHertz (109) Assim, por exemplo, se um determinado processador funciona com seu relgio oscilando 25 milhes de vezes por segundo, sua frequncia de operao de 25 MHz. E como a durao de um ciclo o inverso da frequncia, temos sua durao de 40 ns
25

Registrador de Instrues - IR

o registrador que tem a funo especfica de armazenar a instruo a ser executada pela UCP. Ao se iniciar um ciclo de instruo, a UC emite um sinal de controle que acarretar a realizao de um ciclo de leitura para buscar a instruo na memria (uma cpia dela), e que, via barramento de dados e MAR, ser armazenada no IR.

26

Execuo de Instrues
Como j vimos, toda operao feita pela UCP, como uma operao aritmtica, manipulao de um arquivo (open, write, close) ou operao lgica composta por conjuntos de operaes mais simples, chamadas de operaes bsicas Instrues so representadas atravs de mnemnicos, que so representaes dos cdigos de operao, e referncias a endereos de memria Como exemplo de como uma instruo executada, vejamos a operao ADD (R1, R2, R3), ou seja, a soma do contedo armazenado no registrador R1 com o contedo do registrador R2, cujo resultado ser armazenado em R3

27

Execuo de Instrues

A execuo desta instruo requer as seguintes operaes bsicas:


1. Transferncia do contedo do registrador de dados R1 para o registrador temporrio A 2. Transferncia do contedo do registrador de dados R2 para o registrador temporrio B 3. Adio dos dados armazenados nos registradores A e B e armazenamento do resultado no registrador R 4. Transferncia do contedo do registrador R para o registrador R3

28

Execuo de Instrues
Operao Sinal de bsica controle (1)(2) s1, s2 Descrio da operao bsica Coloca o contedo de R1, R2 para os barramentos S1, S2, respectivamente Armazena a informao presente nos barramentos S1, S2 em A, B, respectivamente Seleciona a operao de soma na ALU

s3, s4 (3) s5

s6
(4) s7 s8

Armazena o resultado produzido pela ALU em R


Coloca o contedo de R para o barramento D Armazena a informao presente no barramento D em R3

29

Execuo de Instrues

30

Conjunto de Instrues do Processadores

O conjunto de instrues um dos pontos centrais na arquitetura de um processador. Vrios aspectos na definio e implementao da arquitetura so influenciados pelas caractersticas do conjunto de instrues O conjunto de instrues utilizadas afeta no somente o projeto da seo de processamento: a estrutura e complexidade da unidade de controle determinada diretamente pelas caractersticas do conjunto de instrues
31

Linguagens de programao: Hierarquia

Surgimento da Linguagem de alto nvel


objetivo: tornar a comunicao com o computador mais simples e com menos instrues do que a linguagem de montagem mais distante da mquina

o programador no precisa se preocupar com o tipo de CPU ou de memria onde o programa ser executado Exs.: Fortran, Pascal, C necessidade de uma converso para instrues de mquina

PROCESSO DE COMPILAO

32

Linguagem de Montagem
Em geral, os programas so desenvolvidos em uma linguagem de alto nvel, com Pascal, C, ou Java. O compilador traduz o programa de alto nvel em uma sequncia de instrues de processador Desta traduo resulta o programa em linguagem de montagem (assembly language). A linguagem de montagem uma forma de representar textualmente as instrues oferecidas pela arquitetura, cada uma com uma linguagem de montagem em particular

33

Linguagem de Montagem

No programa em linguagem de montagem, as instrues so representadas atravs de abreviaes, chamadas de mnemnicos, que associam o nome da instruo sua funo, como por exemplo:
ADD SUB MPY DIV LOAD STOR Adio Subtrao Multiplicao Diviso Carregar dados da memria Armazenar dados na memria
34

Linguagem de Montagem

O programa em linguagem de montagem convertido para um programa em cdigo objeto pelo montador (assembler). O montador traduz diretamente uma instruo da forma textual para a forma de cdigo binrio. sob a forma binria que a instruo carregada na memria e interpretada pelo processador

35

Modulao de Programas

Programas complexos so normalmente estruturados em mdulos. Cada mdulo compilado separadamente e submetido ao montador, gerando diversos mdulos em cdigo objeto. Estes mdulos so reunidos pelo ligador ( linker), resultando finalmente no programa executvel que carregado na memria

36

Compilando para assembly


Cdigo em C
int sum(int x, int y) { int t = x+y; return t; } Assembly gerado _sum: pushl %ebp movl %esp,%ebp movl 12(%ebp),%eax addl 8(%ebp),%eax movl %ebp,%esp popl %ebp ret

Obtido com o comando gcc -O -S code.c Produz arquivo code.s

37

Processo de Compilao e Execuo


Programa em C Programa em linguagem de montagem

Compilador

Montador Bibliotecas

Mdulo em linguagem de mquina


Executvel

Ligador

Carregador Memria
38

Ligadores e Carregadores

Cdigo objeto no suficiente para ser executado Tarefas a serem executadas


Resoluo de referncias simblicas (ligao) Ajuste de endereos (relocao) Alocao de espao em memria (alocao) Colocao das instrues e dados fisicamente na memria (carga)

Cdigo Objeto
Absoluto: os endereos constantes do cdigo so endereos reais de memria Relocvel: os endereos so relativos ao incio do programa, transformando-se em endereos reais apenas na execuo mais flexvel e mais utilizado!
39

Ligador

Rotinas comuns so agrupadas em bibliotecas Ligador resolve as referncias externas


Agrega o cdigo objeto das bibliotecas a serem utilizadas, criando um nico mdulo de carga Substitui chamadas a procedimentos por seus endereos

Relocao
Unio dos espaos de endereamento de cada mdulo

objeto

Gera cdigo executvel (ou mdulo de carga) DLL (Dynamic Link Library)
Os procedimentos s so ligados em tempo de execuo Ligador Dinmico
40

Execuo de um programa

Cdigo em C para programa hello.c


#include <stdio.h> int main() { printf("hello, world\n") }
printf.o

hello.c

Prprocessador hello.i

hello Compilador Montador Ligador hello.o Programa em objetos realocveis (binrio) Programa objeto executvel (binrio)
41

hello.s Programa assembly (texto)

Programa fonte (texto)

Programa fonte Modificdo (texto)

Tcnicas Especiais

42

Pipelining

No processo bsico de execuo de instrues, estas so executadas sequencialmente, ou seja, a execuo de uma nova instruo inicia-se somente quanto a execuo da instruo anterior completada Na tcnica de pipelining, permite-se que vrias instrues sejam executadas simultaneamente, pois os passo da execuo so realizados por unidades independentes, denominadas estgios do pipeline
O exemplo a seguir representa um pipeline de quatro estgios

43

Pipelining
B Estgios:
B: busca D:decodificao E: execuo R: resultado

A execuo de uma instruo inicia-se pelo estgio B, sendo completada no estgio R. Em condies normais, uma instruo avana para o estgio seguinte a cada novo ciclo de clock.

Pipelining
c1 c2 c3 c4

clock
i1 i2 i1 i3 i2 i1 i4 i3 i2 i1

Pipelining

No ciclo c1, a instruo i1 buscada no estgio B No ciclo c2, a instruo i1 decodificada no estgio D, enquanto o estgio B busca uma nova instruo, i2 No ciclo c3, o estgio E executa a instruo i1, ao mesmo tempo que que o estgio D decodifica a instruo i2 e o estgio B busca a instruo i3 No ciclo c4, o resultado da instruo i1 armazenado pelo estgio R, as instrues i2 e i3 avanam para o prximo estgio e o estgio B busca a instruo i4
46

Pipelining

Novas instrues entram no pipeline antes que a execuo das instrues anteriores seja completada

Quando o pipeline encontra-se cheio, vrias instrues esto sendo executadas em paralelo, uma em cada estgio do pipeline Na realidade, o aspecto mais importante na tcnica de pipeline que uma instruo seja completada em um ciclo de clock. Em uma arquitetura sequencial, a execuo de uma instruo consome vrios ciclos de clock, fazendo que o nmero mdio de ciclos esteja bem acima da mdia de 1 ciclo/operao obtida com o uso da tcnica de pipelining
47

Pipelining
A reduo no nmero mdio de ciclos por instruo contribui diretamente para aumentar o desempenho. O tempo de execuo de um programa pode ser representado por:
Tempo de execuo = nmero de instrues x tempo mdio por instrues

E como o tempo mdio de execuo de cada instruo determinado por:


Tempo mdio por instruo = nmero mdio de ciclos de instruo (cpi) x tempo de ciclo de clock

O tempo de execuo dado por:


Tempo de execuo = nmero de instrues x cpi x tempo de ciclo de clock

48

Pipelining

Logo, as arquiteturas modernas voltadas para aplicaes de alto desempenho utilizam a tcnica de pipelining, sendo que suas instrues so implementadas de forma a apresentarem um fator de 1 ciclo/instruo

Apesar de conceitualmente simples, o uso de pipelining encontra alguns problemas na prtica. A tcnica funciona se houver uma continuidade no fluxo de instrues, o que muitas vezes no acontece, por exemplo, quando existe uma dependncia de dados entre duas instrues
49

Pipelining

Uma dependncia entre duas instrues i e j existe quando um dos operandos da instruo j o resultado da instruo i anterior. Se estas duas instrues forem executadas simultaneamente no pipeline, pode acontecer que a instruo i ainda no tenha produzido seu resultado no momento que a instruo j l seus operandos, resultando em uma execuo incorreta, se no existir uma forma de controle

50

Pipelining

A soluo mais simples seria paralisar a execuo de j quando seus operando so buscados, at que a operao i seja completada. No entanto, esta paralisao parcial do pipeline resulta em uma descontinuidade no fluxo de informaes, elevando o nmero mdio de ciclos por instruo

51

Arquiteturas super-escalares

Com o pipelining, apenas uma instruo completada por ciclo, resultando em um IPC (instructions per cicle) mximo de 1 ciclo/instruo. Seria possvel aumentar o desempenho de um sistema se o fator ipc fosse elevado para acima desta mdia Uma arquitetura super-escalar opera de forma que mais de uma instruo possa ser completada a cada ciclo, atravs de mltiplas unidades funcionais independentes, que executam instrues em paralelo A cada ciclo, mltiplas instrues podem ser enviadas (despachadas) para a execuo nestas unidades funcionais
52

Arquiteturas super-escalares
Unidade de despacho

Unidade de inteiros

Unidade de inteiros

Unidade de ponto flutuante

Unidade de memria

Neste modelo terico, at quatro instrues podem completadas por ciclo. A cada ciclo, a unidade despacho busca e decodifica um certo nmero instrues, e verifica quais destas instrues podem despachadas para as unidades funcionais

ser de de ser

53

Arquiteturas super-escalares

Normalmente uma instruo despachada para a unidade funcional se ela encontra-se disponvel e no existe dependncia de dados entre esta instruo e uma outra ainda em execuo Dcadas de 70 e 80: a principal limitao do hardware estava na capacidade de armazenamento e na velocidade da memria principal

Devido a estas caractersticas, era desejvel que o cdigo executvel de um programa tivesse tamanho reduzido, pois programas maiores teriam um maior tempo de execuo devido ao maior nmero de instrues acessadas na memria
54

Arquiteturas super-escalares

Desejava-se reduzir o tamanho do cdigo no somente para economizar o espao, mas tambm obter-se um melhor desempenho Linguagens de alto nvel eram consideradas ineficientes em termos de espao e tempo de execuo, porm, a complexidade das aplicaes foi tornando proibitivo o uso de programao assembly Este foi o motivo para o desenvolvimento de arquiteturas que suportariam o uso de linguagens de alto nvel, sendo que sua execuo seria to eficiente quanto a de programas escritos em assembly
55

Arquiteturas super-escalares

Surgimento das arquiteturas para linguagens de alto nvel (HLLC High-Level Language Computer architectures)
Ex: arquitetura CISC (Complex Instruction Set Computers)

O conjunto de instrues de diferentes arquiteturas baseiam-se no nvel de funcionalidade; nas de alto nvel, cada instruo realiza um grande nmero de operaes
ADD A, B, C
Baixo nvel de funcionalidade:

Alto nvel de funcionalidade:

LOAD LOAD ADD STORE

A, R1 B, R2 R1, R2, R3 R3, C

56

Arquiteturas super-escalares

Ambos os casos implementam a operao C = A + B, em diferentes nveis de funcionalidade Em uma linguagem de baixo nvel de funcionalidade, so realizadas quatro operaes: o carregamento das variveis A e B em registradores, a adio propriamente dita e o armazenamento do resultado em C; em uma linguagem de alto nvel de funcionalidade, os operandos so acessados diretamente na memria, feita a adio e o resultado j armazenado na memria
57

Arquiteturas super-escalares

Linguagens de alto nvel e conjuntos de instrues normalmente apresentam nveis de funcionalidade diferentes. A estas diferenas foi dado o nome de lacuna semntica. Em arquiteturas complexas, a abordagem foi de elevar o nvel de funcionalidade do conjunto de instrues, diminuindo a lacuna semntica

58

Arquiteturas super-escalares

Uma arquitetura com uma pequena lacuna semntica (ou seja, um conjunto de instrues com alto nvel de funcionalidade) apresenta dois benefcios:
Programas mais eficientes em termos de espao ocupado na memria (menor nmero de instrues) Comandos de alto nvel com um menor nmero de instrues resultam em um menor nmero de acessos a memria para busca de instrues

Na prtica, foram observadas algumas desvantagens no uso de arquiteturas complexas, que puseram em dvida a filosofia proposta, so elas:
59

Arquiteturas super-escalares

Eficcia dos programas: em alguns casos, instrues complexas possuam um tempo de execuo elevado, at mesmo maior do que uma sequncia de operaes simples que realiza a mesma tarefa Utilizao de instrues: apenas uma pequena parcela das instrues oferecidas era realmente utilizada (ex.: IBM 370 tinha 183 instrues disponveis; em 99% dos casos eram utilizadas apenas 48) Efeito sobre o desempenho: o aumento do nvel de funcionalidade possui um efeito negativo sobre o desempenho, por exemplo, extremamente difcil implementar uma UC com lgica aleatria, a nica alternativa o uso da microprogramao
60

Arquiteturas RISC

As desvantagens das arquiteturas complexas foram o principal fator que motivaram o surgimento da filosofia RISC (Reduced Instruction Set Computers) Outro fator relevante foram os avanos nas tecnologias de fabricao de memrias, que tiveram suas velocidades de acesso aumentadas e os custos muito reduzidos O princpio bsico das arquiteturas RISC a simplicidade das instrues, que so frequentemente usadas na codificao de programas de alto nvel. Instrues complexas so includas na arquitetura somente se atenderem ambos os casos a seguir:
61

Arquiteturas RISC

A implementao de instrues mais complexas somente ser permitida se forem realmente significativas, ou seja, ser til na codificao de diferentes tipos de programas O ganho final de desempenho deve ser maior do que eventuais perdas no tempo de execuo das instrues simples que ocorram com o acrscimo da instruo complexa
Caso um destes critrios no seja atendido, prefervel a implementao da instruo complexa atravs de uma sequncia de operaes simples
62

Arquiteturas RISC

So caractersticas arquiteturas RISC:

comuns

todas

as

Implementao com lgica aleatria Pipeline de instrues Arquitetura registrador-registrador: todos os operandos a serem utilizados em operaes aritmticas e lgicas encontram-se em registradores, o que diminui a complexidade da unidade de controle Regularidade no formato das instrues: todos os cdigos possuem o mesmo tamanho, igual ao de uma palavra da memria, o que permite o acesso em um nico ciclo a uma instruo completa
63

Sistemas Paralelos

At o momento, todas as arquiteturas citadas eram caracterizadas por existir apenas um processador acoplado a uma memria principal Um sistema paralelo aquele onde existem vrios processadores e mdulos de memria, que se comunicam atravs de uma certa estrutura de interconexo M. J. Flynn estabeleceu, em taxonomia para sistemas paralelos 1966, uma

64

Sistemas Paralelos

A classificao de Flynn baseia-se em dois fatores: o nmero de fluxos de instrues e de fluxos de dados existentes no sistema
Um fluxo de instruo uma sequncia de instrues endereadas pelo contador de programa de um elemento processador. Se um sistema possui n contadores de programa, este sistema capaz de processar n fluxos de instruo distintos Um fluxo de dados corresponde a um conjunto de dados que manipulado por um elemento processador
65

Sistemas Paralelos

SISD Single Instruction, Single Data Stream: um nico processador executa uma nica sequncia de instrues, utilizando dados armazenados em uma nica memria. Todos os sistemas processados pertencem a esta categoria SIMD Single Instruction, Multiple Data Stream: uma nica instruo de mquina controla a execuo simultnea de um certo nmero de elementos de processamento, cada elemento operando sobre um dado pertencente a um fluxo de dados diferente
Ex.: supercomputadores vetoriais, que realizam em paralelo uma mesma operao sobre mltiplos elementos de um vetor

66

Sistemas Paralelos

MISD Multiple Instruction, Single Data: uma nica sequncia de dados transmitida para um conjunto de processadores, cada um dos quais executa uma sequncia de operaes diferentes. Na prtica, ainda no existe nenhuma estrutura deste tipo implementada

MIMD Multiple Instruction, Multiple Data: um conjunto de processadores executa simultaneamente sequncias diferentes de instrues, sobre conjuntos de dados distintos. Sistemas de memria compartilhada ou distribuda (como clusters) so classificados desta forma
67

Sistemas Paralelos
Classificao N de fluxos N de fluxos de instruo de dados Exemplos de sistemas reais sistemas convencionais supercomputadores vetoriais no existe

SISD SIMD

1 1

1 Mltiplos

MISD

mltiplos

MIMD

mltiplos

mltiplos

multiprocessadores

Anda mungkin juga menyukai