Você está na página 1de 64

1

ARQUITETURA DE COMPUTADORES
Unidade Central de Processamento U C P

Prof. Leandro Coelho

Plano de Aula
2

Aula Passada
Definio
Evoluo dos Computadores
Histrico

Modelo de Von-Neumann
Bsico CPU Mmoria E/S Barramentos

Plano de Aula
3

Unidade Central de Processamento


Composio
UC - ULA
Funo Principais registradores

Pipeline
Definio Funcionamento Problemas Solues

Arquitetura de Computadores
4

Arquitetura de Computadores Unidade Central de Processamento


A Unidade Central de Processamento - CPU, desempenha um papel vital no funcionamento de um sistema de computao.

Arquitetura de Computadores Unidade Central de Processamento


O processador o componente vital do sistema de computao
Responsvel pela realizao das operaes de processamento (os clculos matemticos etc.) Responsvel pelo 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 em clulas sucessivas, na memria principal.

Arquitetura de Computadores Unidade Central de Processamento


Composio da UCP
Formado basicamente registradores por um conjunto de

Armazenam dados e instruo correntes.

Os registradores so utilizados como locais de armazenamento temporrio de dados provenientes da memria destinados UAL, ou vice-versa. Existem ainda registradores cuja funo armazenar informaes relevantes ao controle do processamento. Os principais registradores utilizados na arquitetura de Von Neumann e suas respectivas funes so os seguintes

Arquitetura de Computadores Unidade Central de Processamento


Composio da UCP
Os principais registradores utilizados na arquitetura de Von Neumann e suas respectivas funes so os seguintes:
Contador de Programa (PC, do ingls Program Counter) :
Contm o endereo da memria cujo contedo deve ser interpretado como a prxima instruo.

Registrador de Instruo (IR, do ingls Instruction Register):


Contm a prxima instruo a ser executada.

Registrador de Endereo da Memria (MAR, do ingls Memory Address Register):


Contm o endereo da posio da memria a ser lida ou escrita.

Arquitetura de Computadores Unidade Central de Processamento


Composio da UCP
Os principais registradores utilizados na arquitetura de Von Neumann e suas respectivas funes so os seguintes:
Registrador de Dados da Memria (MDR, do ingls Memory Data Register):
Contm o dado a ser lido ou escrito na memria.

Registradores de Propsito Geral (R):


So utilizados para armazenar resultados intermedirios

10

Arquitetura de Computadores Unidade Central de Processamento


Funo da CPU
Buscar uma instruo na memria
Operao de leitura
Uma de cada vez

Interpretar que operao a instruo est explicitando


Exemplos:
Soma de dois nmeros, Uma multiplicao, Uma operao de E/S de dados, Uma operao de movimentao de um dado de uma clula para outra.
Fluxo bsico de um ciclo de instruo

11

Arquitetura de Computadores Unidade Central de Processamento


Funo da CPU
Buscar os dados armazenados
Traz-los at a UCP;

onde

estiverem

Executar efetivamente a operao com o(s) dado(s) Guardar o resultado (se houver algum) no local definido na instruo; Reiniciar o processo apanhando nova instruo.
Fluxo bsico de um ciclo de instruo

12

Arquitetura de Computadores Unidade Central de Processamento


Funo da CPU (Resumindo...)
Buscar uma instruo na memria Decodificar a operao Buscar os dados Executar a operao com o(s) dado(s) Guardar o resultado Reiniciar o processo
Fluxo bsico de um ciclo de instruo

13

Arquitetura de Computadores Unidade Central de Processamento


Funo da CPU
As etapas mencionadas, compem o que se denomina um ciclo de instruo. Esse 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 matemticas (ou outras manipulaes simples com dados), na ordem e na seqncia definidas pela organizao do programa.

14

Arquitetura de Computadores Unidade Central de Processamento


As atividades realizadas pela UCP podem ser divididas em duas grandes categorias funcionais:
Funo processamento
Se encarrega de realizar as atividades relacionadas com a efetiva execuo de uma operao, ou seja, processar.

Funo controle
exercida pelos componentes da UCP que se encarregam das atividades de busca, interpretao e controle da execuo das instrues e do controle da ao dos demais componentes do sistema de computao
Memria - E/S).

15

Arquitetura de Computadores Unidade Central de Processamento


Conceitualmente, podemos imaginar que uma UCP simples pode ser dividida nestas duas reas:
Funo processamento Funo controle.

Esta diviso bem apropriada para caracterizarmos e entendermos melhor o processo de execuo serial de uma instruo.

16

Arquitetura de Computadores Unidade Central de Processamento


Processo serial aquele no qual cada pequena atividade do ciclo de instruo realizada em seqncia anterior
Algumas poucas simultaneamente atividades podem ser realizadas

um processo lento e pouco eficiente, se desejarmos maior velocidade de processamento.

17

Arquitetura de Computadores Unidade Central de Processamento


Unidades lgicas e aritmticas (ALU)
A unidade lgica e aritmtica (ULA), como o nome indica, responsvel pela realizao de operaes:
Lgicas
Testes e comparaes

Aritmticas
Somas e subtraes

18

Arquitetura de Computadores Unidade Central de Processamento


Unidade de controle e microprogramao A unidade de controle (UC) responsvel pelo controle das atividades de todos os componentes do computador, atravs da emisso de pulsos eltricos (sinais de controle).
Este controle pode ser a gravao de um dado no disco ou a busca de uma instruo da memria.

19

Arquitetura de Computadores Unidade Central de Processamento


Unidade de controle e microprogramao Unidade de controle um circuito lgico responsvel pelo funcionamento da mquina.
Este funcionamento realiza-se em ciclos, onde as seguintes operaes so executadas :
Transferncia do contedo do PC para o MAR, busca da prxima instruo e sua transferncia do MDR para o IR (em ingls, instruction fetch). Decodificao da instruo pelo circuito lgico da unidade de controle.

20

Arquitetura de Computadores Unidade Central de Processamento


Unidade de controle e microprogramao Unidade de controle um circuito lgico responsvel pelo funcionamento da mquina.
Este funcionamento realiza-se em ciclos, onde as seguintes operaes so executadas :
Transferncia do endereo do operando (contido no IR) para o MAR e leitura ou escrita do operando. No caso de leitura, o valor lido deve ser posteriormente transferido do MDR para um registrador de propsito geral (em ingls, operand fetch). No caso de escrita, o contedo de um registrador deve ser previamente transferido para o MDR. Algumas instrues no tm operandos.

21

Arquitetura de Computadores Unidade Central de Processamento


Unidade de controle e microprogramao Unidade de controle um circuito lgico responsvel pelo funcionamento da mquina.
Este funcionamento realiza-se em ciclos, onde as seguintes operaes so executadas :
Execuo da instruo, tipicamente utilizando a UAL para realizar alguma operao sobre os valores contidos nos registradores de propsito geral. Volta a 1.

22

Arquitetura de Computadores Unidade Central de Processamento


Barramento de dados Barramento de endereos

ULA clock

Barramento Interno

23

Arquitetura de Computadores Unidade Central de Processamento


Unidade de controle e microprogramao A maneira como a unidade de controle gerencia este funcionamento baseada em um relgio
Marca o incio de cada nova operao do ciclo, e em circuitos lgicos capazes de, a cada ciclo, ativar ou desativar as conexes adequadas entre os diversos componentes de modo que a instruo correspondente seja executada.
A ativao e desativao realizada atravs de Portas Lgicas, por exemplo do tipo E (em ingls, ``gate and'').

Arquitetura de Computadores
24

25

Arquitetura de Computadores Unidade Central de Processamento


Atualmente, a grande maioria dos sistemas de computao fabricado em torno de processadores que buscam maior velocidade na realizao de suas atividades.
Um dos processos mais usados o que conhecemos na indstria como linha de montagem ("pipeline"), no qual a UCP se divide em vrias partes funcionais distintas (estgios), cada uma correspondendo a uma determinada atividade.

26

Arquitetura de Computadores Unidade Central de Processamento


Paralelismo a Nvel de Instruo
possvel obter maior desempenho computacional com:
Tecnologias mais avanadas, tais como circuitos mais rpidos; Melhor organizao da CPU, tais como o uso de mltiplos registradores e memria cache Pipeline de instrues.

A idia bsica num pipeline de instrues a de novas entradas serem aceitas, antes que as entradas aceitas previamente tenham terminado.
Este conceito assume que uma instruo tem vrios estgios.

27

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Vrias instrues so realizadas de forma simultnea, embora em estgios diferentes.

Exemplo
Lavanderia
Colocar uma carga de roupa na lavadora. (L) (30) Quando terminar de lavar, colocar na secadora. (S)(40) Quando terminar de secar, dobr-las. (D)(20) 90 minutos depois, comear de novo a lavar ...

28

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Vrias instrues so realizadas de forma simultnea, embora em estgios diferentes.

Exemplo
Lavanderia
Pessoa L S D L S D L S D L S D a x x x b x x x c x x x d x x x

Tempo Total = 4 x 90minutos = 6horas

29

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Vrias instrues so realizadas de forma simultnea, embora em estgios diferentes.

Exemplo
Lavanderia
Pessoa L S D L S D L S D L S D a x x x b x x x c x x x d x x x

Tempo Total = 30 + 4 x 40m +20m = 3 horas e meia

30

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Vrias instrues so realizadas de forma simultnea, embora em estgios diferentes.

Exemplo
Lavanderia
Pessoa L S D L S D L S D L S D a x x x b x x x c x x x d x x x

Tempo Total = 30 + 4 x 40m +20m = 3 horas e meia

31

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
O tempo para cada instruo o mesmo que sem pipeline. O tempo total, de vrias instrues, menor. Potencialmente 3 vezes mais rpido que o processo no pipeline. Para exemplo anterior:
Pipeline: 4 tarefas em 6 ciclos. Sem Pipeline: 4 tarefas em 12 ciclos. Pipeline: 100 tarefas em 102 ciclos. Sem Pipeline: 100 tarefas em 300 ciclos.

32

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Consideraes
O tempo gasto para se limpar uma sacola de roupa no diminuiu, na realidade at aumentou, pois como pode se ver, sem o pipelining eram necessrios 30 minutos para lavar, 40 minutos para secar e 20 minutos para dobrar a roupa, ou seja, 90 minutos para realizar todas estas etapas (pipe stage ou pipe segment), enquanto que com o pipeline os tempos variaram de 90 a 120 minutos.

33

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Consideraes
A taxa de insero de tarefas no pipeline limitada pela tarefa mais lenta; Meta aumentar a produtividade (throughput).
Enquanto que numa lavanderia sem pipelining temos somente uma sacola de roupas sendo limpa num determinado instante, numa outra lavanderia com pipelining temos at trs sacolas de roupas sendo limpas simultaneamente, j que o pipeline de nossa lavanderia composto de 3 estgios (profundidade 3). Conseqentemente a produtividade da lavanderia aumentada em aproximadamente 3 vezes, j que a cada ciclo uma nova sacola de roupa completamente limpa (lavada, secada e dobrada) e uma nova sacola de roupa comea a ser lavada;

34

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Consideraes
A produtividade da lavanderia aumentada devido sua capacidade de executar mltiplas tarefas ao mesmo tempo.
Exemplo sem o pipelining: A cada 90 minutos uma sacola completamente limpa, Exemplo com o pipelining: A cada 30 minutos, aproximadamente, uma nova sacola de roupas completamente limpa.

Tempo entre execues pipeline =

Tempo entre execues no pipeline Nmero de estgios do pipeline

35

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Consideraes
O pipeline melhora a performance por meio do throughput das instrues.

36

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Exemplo 2: Ciclo de instruo:
Considere um pipeline com 6 estgios de mesma durao:
busca de instruo (BI); decodificao de instruo (DI); clculo de operandos (CO); busca de operandos (BO); execuo de instruo (EI); escrita de operando (EO).

37

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Exemplo 2: Ciclo de instruo:
busca de instruo (BI) - decodificao de instruo (DI) - clculo de operandos (CO) busca de operandos (BO)- execuo de instruo (EI)- escrita de operando (EO).
tempo instruo

1 2

5 EI BO CO DI BI

6 EO EI BO CO DI BI

10 11 12 13 14

1 2 3 4 5 6 7 8 9

BI DI CO BO BI DI CO BI DI BI

EO EI BO CO DI BI

EO EI BO CO DI BI

EO EI BO CO DI BI

EO EI BO CO DI

EO EI EO BO EI EO CO BO EI EO

38

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Exemplo 2: Ciclo de instruo:
Consideramos que cada instruo passa por todos os estgios do pipeline. Consideramos que todos os estgios podem ser executados em paralelo
No h conflito, por exemplo, nos acesso memria (o dado pode estar no cache ou alguns estgios, que requerem acesso memria, no esto sendo usados).

39

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Exemplo 2: Ciclo de instruo:
Se os seis estgios no tm durao igual, existe certa espera envolvida em vrios estgios. Uma instruo de desvio condicional pode invalidar diversas buscas de instruo. Da mesma forma, a ocorrncia de interrupo.

40

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Exemplo 2: Ciclo de instruo:
Instruo 3 = um desvio condicional para a instruo 15.
tempo instruo

1 2

5 EI BO CO DI BI

6 EO EI BO CO DI BI

10 11 12 13 14

1 2 3 4 5 6 7 15 16

BI DI CO BO BI DI CO BI DI BI

EO EI EO BO CO DI BI BI DI CO BO EI EO BI DI CO BO EI EO

41

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflitos do Pipeline
Eventos em que a instruo seguinte no pode ser executada. 3 tipos:
Estrutural Controle Dados

42

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito Estrutural O hardware no pode suportar a combinao de instrues que o pipeline deseja executar no mesmo ciclo de clock. Exemplos: Lavagem de roupa.
A lavadora e a secadora esto combinadas em um mesmo dispositivo, e no separados. A empregada est ocupada em alguma outra coisa, e no pode guardar as roupas aps dobr-las.

43

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Ocorre quando h necessidade de se tomar uma deciso com base nos resultados de uma instruo enquanto outras esto sendo executadas.

44

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional:
Se o computador tiver que desviar, dever interromper as instrues do pipeline. Soluo: Se houvesse um hardware extra pode testar os registradores e calcular o endereo de desvio condicional e atualizar o PC durante o segundo estgio. Mesmo assim, o pipeline necessitaria um atraso. Este atraso, conhecido como parada do pipeline. Tambm conhecido como bolha.

45

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional:
tempo instruo

1 2

5 EI BO CO DI BI

6 EO EI BO CO DI BI

10 11 12 13 14

1 2 3 4 5 6 7 15 16

BI DI CO BO BI DI CO BI DI BI

EO EI EO BO CO DI BI BI DI CO BO EI EO BI DI CO BO EI EO

46

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional, Solues... Mltiplos fluxos
Consiste em duplicar os estgios iniciais do pipeline para permitir a busca de ambas as instrues, usando dois fluxos de instrues. Problemas: Uso de mltiplos pipelines introduz atrasos devidos conteno de acesso a registradores e memria. Pode ocorrer a entrada de instrues de desvio adicionais no pipeline, antes que seja tomada a deciso sobre o desvio original.

47

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional, Solues... Busca antecipada da instruo-alvo do desvio
Consiste em buscar antecipadamente a instruo-alvo do desvio a instruo consecutiva ao desvio no instante em que a instruo de desvio condicional reconhecida. A instruo-alvo armazenada em um registrador, at que a instruo de desvio seja executada.

48

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional, Solues... Memria de lao
Consiste em usar uma pequena memria de alta velocidade, mantida pelo estgio de busca de instruo, para guardar as n instrues buscadas mais recentemente, em seqncia. Vantagens: A memria conter certo nmero de instrues que esto frente da instruo corrente. Se ocorrer um desvio para alguma posio adiante do endereo da instruo de desvio, essa posio j estar na memria de lao (til em instrues do tipo IF-THEN-ELSE);

49

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional, Solues... Memria de lao
Consiste em usar uma pequena memria de alta velocidade, mantida pelo estgio de busca de instruo, para guardar as n instrues buscadas mais recentemente, em seqncia. Vantagens: Particularmente adequada para lidar com laos de repetio ou iteraes (se a memria for grande o suficiente para conter as instrues de uma iterao, estas tero que ser buscadas da memria apenas uma vez, para a primeira iterao).

50

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional, Solues... Previso de desvio Feita de vrias formas:
Prever que o desvio nunca ser tomado: Abordagem simples e esttica, isto , no depende do histrico das instrues at o momento em que ocorre a instruo de desvio condicional; continua buscando instrues na seqncia em que ocorrem no programa.

51

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional, Solues... Previso de desvio Feita de vrias formas:
Prever que o desvio sempre ser tomado: Abordagem simples e esttica, isto , no depende do histrico das instrues at o momento em que ocorre a instruo de desvio condicional; busca sempre as prximas instrues a partir do endereo-alvo do desvio.

52

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional, Solues... Previso de desvio Feita de vrias formas:
Prever se o desvio ser tomado ou no conforme o cdigo de operao: Abordagem simples e esttica. Prever o desvio com base em chaves de desvio tomado e de desvio no tomado: Abordagem dinmica, isto , depende do histrico de execuo. Prever o desvio com base em uma tabela de histrico de desvios: Abordagem dinmica.

53

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional, Solues... Previso de desvio Se a busca da instruo consecutiva instruo de desvio causar uma falta de pgina ou uma violao de proteo, o processador interromper a busca antecipada da instruo, at que tenha certeza de que essa instruo deve ser mesmo buscada.

54

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional (Consideraes)
Anlises de comportamento de programas mostram que desvios condicionais so tomados em mais de 50% das vezes. Se o custo da busca antecipada de instrues for o mesmo em qualquer caminho, o resultado obtido dever ser melhor se a busca antecipada de instrues for sempre efetuada a partir do endereo-alvo do desvio.

55

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional (Consideraes)
Em uma mquina que usa paginao, a busca antecipada de instrues, a partir do endereo de desvio, tem maior probabilidade de causar uma falta de pgina do que a busca de instrues consecutivas instruo de desvio. A previso de desvio com base no cdigo de operao da instruo de desvio pressupe que para determinados cdigos o desvio sempre tomado e para outros no, havendo um aproveitamento de 75%.

56

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito de Controle
Instruo de desvio condicional (Consideraes)
Estratgias dinmicas de previso de desvio mantm um histrico sobre as instrues de desvio condicional. Utilizando-se somente um bit de histrico, pode-se registrar se a ltima execuo da instruo resultou em desvio ou no. Uma desvantagem neste caso ocorre quando o desvio quase sempre tomado, tal como em instrues de desvio usadas para implementar laos de repetio. Sempre ocorrero dois erros de previso de desvio, cada vez que o lao de repetio for executado: uma vez na entrada e outra na sada. Atraso de desvio consiste em reordenar as instrues, de modo que as instrues de desvio ocorram mais tarde.

57

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito por Dados
Ocorre quando o efeito de uma instruo depende do resultado de uma instruo anterior.
add $s0, $t0, $t1 sub $t2, $s0, $t3

Se no houver interveno, o pipeline dever ser interrompido. O dado s ser escrito no registrador no quinto ciclo: 3 bolhas.

58

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito por Dados
Soluo:
Na verdade, o clculo realizado no terceiro ciclo. Uma via de bypass poder enviar os dados outra instruo, j no terceiro ciclo. Obteno antecipada de determinado item faltante em uma operao, a partir de recursos internos da mquina: adiantamento ou bypass.

59

Arquitetura de Computadores Unidade Central de Processamento


Pipeline:
Conflito por Dados
Soluo:
Na verdade, o clculo realizado no terceiro ciclo. Uma via de bypass poder enviar os dados outra instruo, j no terceiro ciclo. Obteno antecipada de determinado item faltante em uma operao, a partir de recursos internos da mquina: adiantamento ou bypass.

Arquitetura de Computadores
60

61

Arquitetura de Computadores Unidade Central de Processamento


Exerccios:
Como a CPU dividida? Qual o Sistema Numrico que o computador adota?
Qual sua menor unidade?

Qual o elemento do hardware que distribui as tarefas a todos os componentes do sistema? Suponha um processador que necessite executar 500 tarefas. Cada tarefa utiliza 5 ciclos de CPU. Quantos cliclos sero necessrios em um processador com e sem pipeline?

62

Arquitetura de Computadores Unidade Central de Processamento


Exerccios:
Suponha um processador que necessite executar 500 tarefas. Cada tarefa utiliza 5 ciclos de CPU. Quantos cliclos sero necessarios em um processador com e sem pipeline? Ciclos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Tarefas x x x x x x x x x x x x x x x

63

Arquitetura de Computadores Unidade Central de Processamento


Exerccios:
Suponha um processador que necessite executar 500 tarefas. Cada tarefa utiliza 5 ciclos de CPU. Quantos cliclos sero necessarios em um processador com e sem pipeline? Ciclos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Tarefas x x x x x x x x x x x x x x x

64

Arquitetura de Computadores Unidade Central de Processamento


Exerccios:
Suponha um processador que necessite executar 500 tarefas. Cada tarefa utiliza 5 ciclos de CPU. Quantos cliclos sero necessarios em um processador com e sem pipeline? Sem Pipeline = 5 x 500 = 2.500 ciclos Com Pipeline = 5 + 500 = 505 ciclos Tempo entre execues = 5 cliclos
Tempo entre execues pipeline = Tempo entre execues no pipeline Nmero de estgios do pipeline

Você também pode gostar