Вы находитесь на странице: 1из 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 do sistema de computao, 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 CPU projetada e fabricada com o propsito nico de executar sucessivamente pequenas operaes, na ordem definida pela organizao do programa.

Funes da CPU
As atividades realizadas pela CPU 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 CPU 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).

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
7

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 ALU. A interligao entre estes componentes efetuada pelo barramento interno da CPU.

ULA
A ALU o dispositivo da CPU 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 ALU possui dois registradores de entrada.
9

Componentes da CPU
A ALU 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 CPU, com as seguintes caractersticas: Tempo de acesso - por serem construdos com a mesma tecnologia da CPU, 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 CPU 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 ALU 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 ULA R D

S1 B 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 no-nulo
14

Seo de Processamento
Alm dos registradores de dados, a CPU 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 citar desde j o registrador de instruo (IR Instruction Register) e o contador de programa (PC Program Counter), alm do registrador de endereos de memria (MAR Memory Address Register) e o 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 CPU para a MP (escrita). Em seguida, a referida informao reencaminhada para outro elemento da CPU 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 ALU. O barramento D permite a transferncia do resultado produzido pela ALU, 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 ALU, necessrio que ele permanea, mesmo que por um breve instante, armazenado em algum registrador. Alm disso, o resultado de uma operao realizada na ALU 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 CPU fabricada com uma certa quantidade de registradores, destinados ao armazenamento de dados. Servem, pois, de memria auxiliar da ALU. H sistemas nos quais um desses registradores, denominado acumulador (ACC), alm de armazenar dados, serve de elemento de ligao da ALU com os demais dispositivos da CPU

20

Seo de Processamento
Em geral os registradores de dados da CPU tm largura (capacidade em bits) igual 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 CPU.

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 CPU. Alm de possuir a lgica necessria para realizar a movimentao de dados e instrues de e para a CPU, 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 CPU. Um ciclo de relgio (clock cycle) ou de mquina o intervalo de tempo entre o incio de um pulso e o incio do seguinte

24

Clock
Este ciclo est relacionado execuo de uma instruo bsica. No entanto, mesmo esta instruo bsica no se realiza em um s passo e, por essa razo, costuma-se dividir o ciclo de relgio em ciclos menores, em subciclos, defasados no tempo, de modo que cada um aciona um passo diferente da instruo bsica.

25

Clock
A unidade de medida usual para a frequncia dos relgios de CPU 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
26

Registrador de Instrues - IR
o registrador que tem a funo especfica de armazenar a instruo a ser executada pela CPU. 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.

27

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
28

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

29

Execuo de Instrues
Operao bsica (1)(2) Sinal de controle 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 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
30

s3, s4 (3) s5 s6 (4) s7 s8

Execuo de Instrues

31

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
32

Linguagens de programao: 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

33

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

34

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
35

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

36

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

37

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

38

Processo de Compilao e Execuo


Programa em C Programa em linguagem de montagem Mdulo em linguagem de mquina Executvel Carregador Memria
39

Compilador

Montador Bibliotecas Ligador

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!
40

Ligador
Rotinas comuns so agrupadas bibliotecas Ligador resolve as referncias externas em

Relocao

Agrega o cdigo objeto das bibliotecas a serem utilizadas, criando um nico mdulo de carga Substitui chamadas a procedimentos por seus endereos 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
41

Execuo de um programa
Cdigo em C para programa hello.c
#include <stdio.h> int main() { printf("hello, world\n") }
hello.c Prprocessador hello.i Program a fonte (texto) Programa fonte modificdo (texto)

printf.o hello

Compilador

Montador

Ligador hello.o

hello.s Program a assembly (texto)

Programa em objetos realocveis (binrio)

Programa objeto executve l (binrio)


42

Tcnicas Especiais

43

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

44

Pipelining
B D E R

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

47

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

48

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

49

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
50

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

51

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

52

Arquiteturas super-escalares superCom o pipelining, apenas uma instruo completada por ciclo, resultando em um ipc 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
53

Arquiteturas super-escalares superUnidade de despacho

Unidade de inteiros

Unidade de inteiros

Unidade de ponto flutuante

Unidade de memria

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

Arquiteturas super-escalares superNormalmente 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
55

Arquiteturas super-escalares superDesejava-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
56

Arquiteturas super-escalares superSurgimento 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
Alto nvel de funcionalidade: Baixo nvel de funcionalidade:

ADD A, B, C

LOAD LOAD ADD STORE

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


57

Arquiteturas super-escalares superAmbos 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
58

Arquiteturas super-escalares superLinguagens 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

59

Arquiteturas super-escalares superUma 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:
60

Arquiteturas super-escalares superEficcia 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
61

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:
62

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
63

Arquiteturas RISC
So caractersticas arquiteturas RISC: comuns a 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
64

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 Segundo as possveis variedades de sistemas paralelos, foram propostas as seguintes classificaes por M. J. Flynn:
65

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
66

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

67

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
68

Sistemas Paralelos
Classificao N de fluxos de instruo 1 N de fluxos de dados 1 Exemplos de sistemas reais Sistemas convencionais Supercomputadores vetoriais No existe

SISD

SIMD

Mltiplos

MISD

Mltiplos

MIMD

Mltiplos

Mltiplos

multiprocessadores

Вам также может понравиться