Você está na página 1de 70

Aula 9 Componentes do Computador e modelo de Von Neumann

Anderson L. S. Moreira
anderson.moreira@recife.ifpe.edu.br

http://dase.ifpe.edu.br/~alsm

Anderson Moreira

Arquitetura de Computadores

O que fazer com essa apresentao

Anderson Moreira

Arquitetura de Computadores

Breve Histrico (Reviso)


Grande incidncia de melhorias nos modelos computacionais ao longo dos anos:
Data Inventor: mquina Capacidade Inovaes Tecnolgicas 1642 Pascal: Calculadora Leibnitz: Calculadora Adio e subtrao Adio, subtrao, multiplicao e diviso Avaliao polinomial por diferenas finitas Computador de propsito geral Computador de propsito geral Computador de propsito geral Transferncia automtica de vai um; representao em complemento Mecanismo para multiplicao e diviso

1671

1827

Babbage: Mquina diferencial Babbage: Mquina analtica Zuse: Z3 Aiken: Harward Mark I

Operao automtica com diversos passos Mecanismo automtico de controle de seqncia (programa) Primeiros computadores de propsitos gerais operacionais Primeiros computadores de propsito geral de multiprogramaes

1834 1941 1944

Anderson Moreira

Arquitetura de Computadores

Breve Histrico (Reviso)


Uma das principais investidas: Charles Babbage: Mquina diferencial (apenas adio) e Mquina Analtica (operaes matemticas bsicas); Uso de cartes perfurados; Problema: Tecnologia da poca. John Atanasoff: Mquina de vlvulas para resoluo de equaes lineares

Anderson Moreira

Arquitetura de Computadores

Breve Histrico (Reviso)


Primeiro computador de propsito geral: ENIAC (Electronic Numerical Integrator and Calculator); Universidade da Pensilvnia; Base nas idias de Babbage; Interesse militar (tabelas balsticas); Pesava 30 toneladas e 18000 vlvulas.

Leitora de cartes

Impressoras e cartes perfurados

multiplicador

Divisor e Raiz quadrada

Tabelas de funes

Acumuladores (registradores)

Unidade mestre De programao

Anderson Moreira

Arquitetura de Computadores

Breve Histrico (Reviso)


Modificaes dos computadores: Geraes de computadores
Gerao 1 (1946-1954) Tecnologias Vlvulas, memrias de tubos catdicos Transistores, ncleos de ferrite, discos magnticos Caractersticas de hardware Aritmtica de ponto fixo Ponto flutuante, registrador indce, processador E/S Caracterstica de software Linguagem de mquina, linguagem assembler Linguagens de alto nvel, bibliotecas e rotinas, processamento em lote Multiprogramao, multiprocessamento, sistema operacional e memria virtual Exemplo IAS, UNIVAC

2 (1955-1964)

IBM7094 e CDC 1604

3 (1965-1974)

Circuitos integrados

Micro programao, pipeline e memria cache

IBM S/360 e DEC PDP8

4 (1975-?)

Circuitos LSI, memrias semicondutoras

Amdahl 470 e Intel 8748

Esta tabela poderia ter uma 5 gerao envolvendo mquinas paralelas, os circuitos VLSI e maquinas data-flow, porm No surgiu nenhum grande marco computacional de l para c

Anderson Moreira

Arquitetura de Computadores

Definies
Mquina de nveis
Aplicativos

Utilitrios

Sistema Operacional

Linguagem de Mquina

Microprogramao

Circuitos Eletrnicos

Anderson Moreira

Arquitetura de Computadores

Princpios Bsico
Cada computador tem um conjunto de operaes e convenes nicas para determinar as posies de dados com os quais a operao ser realizada: OPERAO OPERANDOS Isso denominada de instrues: OPERAO especifica a funo que ser desempenhada; OPERANDOS fornece a maneira de calcular a posio atual dos dados com os quais a OPERAO ser realizada.

Um programa constitudo de uma sequencia prdeterminada de instrues, que deve ser seguida para que seja atingido uma tarefa computacional.

Anderson Moreira

Arquitetura de Computadores

Princpios Bsicos
A memria de um sistema computacional tem a funo de armazenar dados e instrues.

Organizada em posies; Podem ser visualizadas como elementos de uma matriz; Cada elemento tem um endereo. Ento uma memria que tenha x posies: Cada posio pode ser referenciada diretamente de acordo com a sua colocao na seqncia; Se uma memria tem 4096 posies existem posies de 0, ..., 4095; Instrues so executadas em uma seqncia determinada pela sua posio de memria

Anderson Moreira

Arquitetura de Computadores

Princpios Bsicos
O endereo representa uma posio particular na memria e pode ser formado de vrias maneiras;

A representao trivial est na parte chamada campo de endereo; A Unidade Lgica e Aritmtica (ULA) responsvel por realizar aes indicadas nas instrues, executando operaes numricas (aritmticas) e no numricas (lgica); Preparao de informaes de desvios do programa; O controle do programa e a ULA formam a unidade central de processamento, ou simplesmente processador.

Anderson Moreira

Arquitetura de Computadores

Computadores no pensam!!

O programador do computador fornece um programa composto por instrues e dados que especificam cada detalhe do que executar, do que fazer com os dados, e quando faz-los. O computador , simplesmente, uma mquina de alta velocidade que pode manipular dados, resolver problemas e tomar decises, tudo sob o controle do programa. Se o programador cometer um erro no programa ou fornecer dados errados, o computador invariavelmente fornecer sadas erradas, como na mxima

lixo entra, lixo sai

Anderson Moreira

Arquitetura de Computadores

11

Como um computador consegue executar um conjunto de instrues?


Talvez uma melhor questo a ser feita neste ponto seja: Tipicamente, respondemos a esta questo mostrando o diagrama da arquitetura de um computador (arranjo de seus vrios elementos) e, ento, repassando o processo, passo a passo, que o computador segue na execuo do programa. Ao invs disso, primeiro iremos observar uma analogia um pouco distante, que contm muitos dos conceitos envolvidos na operao de um computador.

Anderson Moreira

Arquitetura de Computadores

12

Agente do GOE
O Agente da GOE est tentando descobrir quantos dias faltam para um certo lder ser assassinado. O seu contato lhe diz que esta informao est localizada em uma srie de caixas postais. Para assegurar que ningum mais tenha acesso informao, ela est espalhada em 10 caixas. O seu contato lhe d as 10 chaves, acompanhadas das seguintes instrues: 1. A informao em cada caixa est escrita em cdigo 2. Abra a caixa 1, primeiro, e execute a instruo l localizada. 3. Continue pelo restante das caixas, em seqncia, salvo instruo em contrrio. 4. Uma das caixas est preparada para ser explodida ao ser aberta. O Agente pega as 10 chaves e vai para a agncia do correio, com o livro de cdigos em mos.
Anderson Moreira
Arquitetura de Computadores

13

Tabela

Anderson Moreira

Arquitetura de Computadores

14

Concluses (computacionais)
Trs classes diferentes de instrues esto presentes nas caixas de 1 a 6. As caixas 1, 2, 3 e 5 so instrues que chamam operaes aritmticas. A caixa 4 contm uma instruo de deciso, chamada de desvio condicional. Esta instruo diz ao agente (ou computador) para decidir se pula para o endereo 7 ou continua para o endereo 5, dependendo do resultado da operao aritmtica anterior. A caixa 6 contm uma simples instruo de controle que no precisa de dados, nem faz referncia a outro endereo (nmero de caixa). Essa instruo, pare, diz ao agente que o problema est terminado (o programa est completado) e que no deve continuar adiante.

Anderson Moreira

Arquitetura de Computadores

15

Busca Decodificao - Execuo


Um elemento no processador denominado contador de instrues (PC), contm a posio da prxima instruo a ser executada; Quando uma sequencia de execuo de instruo tem incio, a instruo cujo endereo est no PC trazida da memria para uma rea de armazenamento chamada registrador de instruo (IR). Chamado de busca A instruo interpretada por circuitos de decodificao que fazem com que os sinais eletrnicos sejam gerados no processador Chamado de decodificao

Anderson Moreira

Arquitetura de Computadores

Busca Decodificao - Execuo


Esses sinais resultam na execuo. Execuo a aplicao da funo do operador nos operandos; Quando uma execuo de uma instruo terminada, o contador de instrues atualizada para o endereo de memria para prxima instruo; Esta instruo ento trazida da memria para o IR e executada, repetindo assim o ciclo de buscadecodificao-execuo;

Anderson Moreira

Arquitetura de Computadores

Esquema Bsico

Busca

Processa

Armazena

Fetch-instr.

Decode Fetch ops. Execute

Store res.

Anderson Moreira

Arquitetura de Computadores

18

Esquema Bsico

Dois passos: Buscar Executar

Anderson Moreira

Arquitetura de Computadores

19

Elementos funcionais bsicos


Computador: Composto por blocos: Memria Unidades operacionais Unidades de controle Dispositivos de entrada e sada

Memria Unidade Operacional Entrada/ Sada


Anderson Moreira
Arquitetura de Computadores

Controle

20

Elementos funcionais bsicos


Unidade Operacional e Unidade de Controle tem funes especficas; Reunidas recebe o nome de UCP Unidade Central de Processamento; Registradores so elementos digitais com capacidade de armazenar dados. Tem associados sinais de cargas que determinam quando sero armazenados novos contedos neles; Ao ser acionado o sinal de carga, o registrador copia para si o dado que est em suas linhas de entrada.

Anderson Moreira

Arquitetura de Computadores

21

Elementos funcionais bsicos


Contadores, multiplexadores, seletores, codificadores, somadores e portas lgicas so elementos com capacidade de operar sobre dados: Elementos digitais
Alterando-os ou fornecendo um novo dado como resultado

Barramentos (bus):

Necessitam ser ativados ou habilitados para realizar uma determinada operao; Sinais responsveis pela ativao ou habilitao de componentes digitais so conhecidos como sinais de controle. Transferem dados entre os elementos do computador; S podem receber dados de uma fonte de cada vez; A largura em bits diz respeito ao tamanho dos elementos que trafegam nele.

Anderson Moreira

Arquitetura de Computadores

22

Elementos funcionais bsico - memria


Memria formada por elementos armazenadores de informaes; dividida em palavras; Cada palavra identificada unicamente por um endereo; Contedo armazenado nas palavras da memria tanto pode representar dados como instrues;

R E M

read memria write

RDM

Anderson Moreira

Arquitetura de Computadores

23

Elementos funcionais bsico - memria


REM: registrador de endereos da memria Contm o endereo do dado a ser lido ou escrito na memria RDM: registrador de dados da memria Contm o dado a ser escrito na memria (write) ou lido da memria (read) Sinais de controle: Read: leitura da memria o contedo da posio de memria endereada por REM copiado em RDM; Write: escrita na memria a posio de memria endereada por REM recebe o contedo de RDM;

Anderson Moreira

Arquitetura de Computadores

24

Arquiteturas de Memria

Princeton Menos fios Harvard Acesso simultneo dado e instrues

Processor

Processor

Program memory

Data memory

Memory (program and data)

Harvard

Princeton

Anderson Moreira

Arquitetura de Computadores

maio de 11

Slide: 25

Elementos funcionais bsico Unidade Operacional


Unidade Operacional: Tambm conhecida como bloco operacional (datapath); Executa as transformaes sobre dados, especificadas pelas instrues do computador; Componentes: ULA, registradores de uso geral e especfico e barramentos O nmero; tamanho e uso dos registradores e a quantidade; e tipo de operaes que a ULA realiza so alguns dos fatores que influenciam no poder de processamento de um computador. Vamos ver a ULA e o Acumulador

Anderson Moreira

Arquitetura de Computadores

26

Elementos funcionais bsico Unidade Operacional


Unidade Lgica e Aritmtica (ULA) Realiza operaes lgicas e aritmticas; Exemplo: Soma de dois operandos; Negao de um operando; Inverso de um operando; Lgica de operando; Rotao de um operando para a direita ou esquerda. As operaes da ULA geralmente so bem simples; Funes complexas so realizadas pela ativao sequencial das vrias operaes bsicas;

Anderson Moreira

Arquitetura de Computadores

27

Elementos funcionais bsico Unidade Operacional

A ULA fornece o resultado das operaes e tambm algumas indicaes sobre a operao realizada; Essas indicaes so chamadas de cdigos de condio; Exemplos:

Overflow Sinal Carry Zero

Anderson Moreira

Arquitetura de Computadores

28

Modelo estrutural ULA


Operandos

Controle Cdigos de condio

Resultado
Anderson Moreira
Arquitetura de Computadores

29

Elementos funcionais bsico Unidade Operacional

Acumulador um registrador e tem por funo armazenar um operando e/ou um resultado fornecido pela ULA; Computadores simples s so encontrados um acumulador; ativado de acordo com o sinal de carga (load); Cada novo sinal faz perder o valor antigo

Anderson Moreira

Arquitetura de Computadores

30

Elementos funcionais bsico Unidade de Controle

Serve para fornecer sinais de controle: Gerenciar o fluxo interno de dados e o instante preciso em que ocorrem as transferncias entre uma unidade e outra Cada unidade de controle comanda uma micro operao Responsvel pela realizao de uma carga em um registrador; Seleo de dados para entrada; Ativao de memria; Seleo de uma operao da ULA.

Anderson Moreira

Arquitetura de Computadores

31

Elementos funcionais bsico Unidade de Controle So mquinas de Estado Finita (FSM) Lgica sequencial: os sinais de sada so funo dos sinais de entrada e do estado anterior. Lgica combinacional: os sinais de sada so funo exclusiva dos sinais de entrada. Existem vrias formas de implementar a lgica sequencial. Porm duas so usuais: Organizao convencional Organizao microprogramada

Anderson Moreira

Arquitetura de Computadores

32

Elementos funcionais bsico Registradores especiais Existem no computador alguns registradores com funes especiais: Depende da arquitetura e organizao de cada mquina; A posio tambm influencia. Tipos: Apontador de instrues (PC) Registrador de instrues (IR) Registrador de estado (RST)

Anderson Moreira

Arquitetura de Computadores

33

Elementos funcionais bsico Registradores especiais


Apontador de Instrues (PC) Tem como funo manter atualizado o endereo de memria da prxima instruo; Registrador de instruo (IR) Armazena a instruo que est sendo executada; De acordo com o contedo, a UC determina quais sinais deve mser gerados; Registrador de estado (RST) Armazena cdigos de condio gerados pela unidade lgica e aritmtica;

Anderson Moreira

Arquitetura de Computadores

34

Conjunto de instrues e modos de endereamento


um conjunto de bits devidamente codificados que indica ao computador que sequencia de micro operaes este deve seguir: So classificadas por semelhanas de propsito e formato: Instrues de transferncia de dados; Instrues aritmticas e lgicas; Instrues de testes e desvios. Logo conjunto de instrues so todas as instrues que um determinado computador reconhece; A sequencia dessas instrues forma um programa.

Anderson Moreira

Arquitetura de Computadores

35

Instrues do Microprocessador
Esta coleo de palavras conhecida como a linguagem assembly do processador. Um assembler (montador) pode traduzir as palavras para o seu padro binrio e a informao de sada do assembler alocada na memria para ser executada pelo microprocessador. Para facilitar as tarefas de programao e depurao: Mnemnicos associados aos cdigos das instrues Nomes operandos Rtulos posies ocupadas pelo programa

Anderson Moreira

Arquitetura de Computadores

36

Exerccios
Faa uma anlise do computador EDVAC, mostrando: Principais vantagens; Principais desvantagens; Como funciona; Arquitetura. Deve ser em grupo de no mximo 4 pessoas e um grupo ser selecionado para apresentar os resultados

Anderson Moreira

Arquitetura de Computadores

37

Modelo de Von Neumann


Computador IAS

Anderson Moreira

Arquitetura de Computadores

Histrico
Projeto comeou em 1946 pela equipe de von Neumann; Elaborado no IEAP (Instituto de estudos avanados de princeton; Tinha como memria principal: Tubo de raios catdicos de acesso aleatrio; Permitia o acesso a uma palavra inteira em uma nica operao; Cada instruo tinha um nico endereo de memria e tinha o formato:

OP

Anderson Moreira

Arquitetura de Computadores

39

O computador IAS
Os blocos bsicos do IAS: Uma unidade de processamento central, para execuo de operaes lgicas e aritmticas; Uma unidade de controle de programa para determinar o sequenciamento das instrues a serem executadas e gerar os sinais d controle para as outras unidades; Uma unidade de memria principal com capacidade de 4096 palavras; Uma unidade de E/S.

Anderson Moreira

Arquitetura de Computadores

40

O computador IAS - Ligaes


Unidade Central de Processamento

AC

MQ

Circuitos lgicosaritimticos DR

Equipamento de E/S

Instrues e dados

IBR

PC

Memria Principal
endereos

IR

AR

Unidade de controle de programa

Circuitos de controle
Anderson Moreira

Sinais de controle
Arquitetura de Computadores

41

O computador IAS - Ligaes


Na UCP existe um novo elemento de armazenamento de dados, que o acumulador (AC). Esse elemento atua como memria rpida que guarda de forma imediata o resultado das operaes realizadas na unidade de clculos. Exemplo de Programa do IAS Instruo AC M(100) Comentrios Transfere contedo da memria do endereo 100 para o acumulador Soma o contedo da posio de memria 101 ao contedo acumulador e coloca o resultado no acumulador Armazena o contedo do acumulador no endereo 102 da memria

AC AC + M(101)

M(102) AC

Anderson Moreira

Arquitetura de Computadores

42

O computador IAS Organizao da Memria


Memria composta por 212 = 4096 palavras; Cada palavras = 40 bits; 40 bits eram a quantidade de informao que podiam ser transferidas, em cada momento: Na memria: Instrues de 20 em 20 bits; Dados de 40 bits. Memria UCP (cada passo)

Anderson Moreira

Arquitetura de Computadores

43

Formato dos dados e instrues


Os dados eram nmeros binrios representados em ponto fixo e codificados em complemento de dois;

0 1

39

Bit de sinal

0
Cd. operao

8
endereo

19 20
Cd. operao

28
endereo

39

Instruo posicionada esquerda

Instruo posicionada direita

Anderson Moreira

Arquitetura de Computadores

44

Conjunto de Instrues

Tipo de Instruo Transferncia de dados

Operao AC MQ MQ M(X) M(X) AC AC M(X) AC -M(X) AC |M(X)| AC -|M(X)|

Descrio
Transfere contedo do reg. MQ para o acumulador AC Transfere contedo da posio X de memria para MQ Transfere contedo de AC para posio de memria X Transfere o contedo da posio de memria X para AC Transfere M(X) para AC Transfere o valor absoluto de M(X) para AC Transfere -|M(X)| para AC

Anderson Moreira

Arquitetura de Computadores

45

Conjunto de Instrues
Tipo de Instruo Operao Descrio
Busca a prxima instruo da metade esquerda de M(X) Busca a prxima instruo da metade direita de M(X) Se o nmero de AC no for negativo busca a prxima instruo na metade esquerda de M(X) Se o nmero de AC no for negativo busca a prxima instruo na metade direita de M(X) Substitui o campo de endereo esquerda de M(X) pelos 12 bits mais a direita de AC Substitui o campo de endereo direita de M(X) pelos 12 bits mais a direita de AC Transfere -|M(X)| para AC

Desvio incondicionalVai para M(X, 0:19) Vai para M(X, 20:39) Desvio condicional Se AC >= 0 ento desvia para M(X,0:19) Se AC >= 0 ento desvia para M(X,20:39) Modificao de endereo M(X,8:19) AC(28:39) M(X,28:39) AC(8:19) AC -|M(X)|
Anderson Moreira

Arquitetura de Computadores

46

Conjunto de Instrues
Tipo de Instruo Aritmtica Operao ACAC+M(X) ACAC+|M(X)| ACAC-M(X) ACAC-|M(X)| AC,MQMQ*M(X) MQ,ACAC%M(X) ACACx2 ACAC/2
Anderson Moreira

Descrio
Soma M(X) a AC; resultado em AC

Soma |M(X)| a AC; resultado em AC

Subtrai M(X) de AC; resultado em AC

Subtrai |M(X)| de AC; resultado em AC

Multiplica M(X) por MQ; colocando os bits mais significativos do resultado em AC e os menos significativos em MQ Divide AC por M(X); colocando o quociente em MQ e o resto em AC Multiplica AC por 2; ou desloca AC um bit a esquerda Divide AC por 2; ou desloca AC um bit a direita

Arquitetura de Computadores

47

Instrues Assembly
LOAD B mem - carrega o registrador B do endereamento de memria CON B con - carrega um valor constante no registrador B SAVE B mem - armazena o registrador B no endereamento de memria ADD B A - soma A com B e armazena o resultado em mem SUB B A - subtrai A de B e armazena o resultado em mem DIV A B - divide A por B e armazena o resultado em mem JUMP addr - desvia para um endereamento

MUL B A - multiplica A por B e armazena o resulado em mem COM A B - compara A com B e armazena o resultado no registrador teste JEQ addr - desvia, se igual, para o endereamento

JNEQ addr - desvia, se no igual, para o endereamento JG addr - desvia, se maior que, para o endereamento JGE addr - desvia, se maior que ou igual, para o endereamento JL addr - desvia, se menor que, para o endereamento STOP - pra a execuo
Anderson Moreira

JLE addr - desvia, se menor que ou igual, para o endereamento

Arquitetura de Computadores

48

Exemplo de como funciona o Assembly


a=1; f=1; n=<entrada do usurio> while (a <= n) { f = f * a; a = a + 1; }

Se n fosse igual a cinco, f do programa seria quanto?

Anderson Moreira

Arquitetura de Computadores

49

Linguagem Assembly

Um compilador C traduz o cdigo em C para a linguagem assembly. Se considerarmos que a RAM comea no endereo 128 deste processador e a ROM (que contm o programa em linguagem assembly) comea no endereamento 0.

Anderson Moreira

Arquitetura de Computadores

50

Como funciona em Assembly


// Suponha que a est no ender. 128 // Suponha que f est no ender. 129 0 CON B 1 // a=1; 1 SAVE B 128 2 CON B 1 // f=1; 3 SAVE B 129 4 LOAD A 128 // if a > 5 desvia para 17 5 CON B 5 6 COM A B 7 JG 17 8 LOAD A 129 // f=f*a;

9 LOAD B 128 10 MUL A B 11 SAVE mem 129 12 LOAD A 128 // a=a+1; 13 CON B 1 14 ADD A B 15 SAVE mem 128 16 JUMP 4 // volta para o if 17 STOP

Anderson Moreira

Arquitetura de Computadores

51

Pergunta "Como essas instrues vo ser exibidas na ROM?"

Cada uma dessas instrues de linguagem assembly tem de ser representadas por um nmero binrio. Para simplificar as coisas, vamos supor que cada instruo de linguagem assembly equivale a um nico nmero.

Anderson Moreira

Arquitetura de Computadores

52

Associao
LOAD A - 1 LOAD B - 2 CON B - 3 SAVE B - 4 SAVE C mem - 5 ADD B A - 6 SUB B A - 7 MUL A B - 8 DIV A B - 9 COM - 10 JUMP addr - 11 JEQ addr - 12 JNEQ addr - 13 JG addr - 14 JGE addr - 15 JL addr - 16 JLE addr - 17 STOP - 18

Esses nmeros so conhecidos como opcodes (cdigos de operao j visto na aula passada). Como estaria o programa na ROM???
Anderson Moreira
Arquitetura de Computadores

53

Programa na ROM
// Suponha que a est no endereamento 128 // Suponha que f est no endereamento 129 Addr opcode/value 0 3 // CONB 1 11 2 4 // SAVEB 128 3 128 4 3 // CONB 1 51 6 4 // SAVEB 129 7 129 8 1 // LOADA 128 9 128 10 3 // CONB 5 11 5 12 10 // COM 13 14 // JG 17 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 31 1 // LOADA 129 129 2 // LOADB 128 128 8 // MUL 5 // SAVEC 129 129 1 // LOADA 128 128 3 // CONB 1 1 6 // ADD 5 // SAVEC 128 128 11 // JUMP 4 8 18 // STOP

Anderson Moreira

Arquitetura de Computadores

54

Concluso sobre o programa assembly

Sete linhas de cdigo em C = 18 linhas de linguagem assembly = 32 bytes na ROM.

Anderson Moreira

Arquitetura de Computadores

55

Otimizando o programa
original program 0: int x, y; 1: while (1) { 2: while (!go_i); 3: x = x_i; 4: y = y_i; 5: while (x != y) { 6: if (x < y) 7: y = y - x; else 8: x = x - y; } 9: d_o = x; } optimized program 0: int x, y, r; 1: while (1) { 2: while (!go_i); // x must be the larger number 3: if (x_i >= y_i) { 4: x=x_i; 5: y=y_i; } 6: else { 7: x=y_i; 8: y=x_i; } 9: while (y != 0) { 10: r = x % y; 11: x = y; 12: y = r; } 13: d_o = x; } GCD(42,8) - 3 iterations to complete the loop x and y values evaluated as follows: (42, 8), (8,2), (2,0)

replace the subtraction operation(s) with modulo operation in order to speed up program

GCD(42, 8) - 9 iterations to complete the loop x and y values evaluated as follows : (42, 8), (43, 8), (26,8), (18,8), (10, 8), (2,8), (2,6), (2,4), (2,2).

Anderson Moreira

Arquitetura de Computadores

Arquitetura Bsica
Unidade de Controle e de Processamento;
Control unit

Processor Datapath ULA Controller Control /Status Registers

Diferenas

Unidade de Processamento genrica Unidade de controle no armazena algoritmo (memria)


PC

IR

E/S Memory

Anderson Moreira

Arquitetura de Computadores

57

Operaes de Processamento
Load

Cpia de memria em registrador

Processor Control unit Datapath ULA

Operao na ULA

Controller

Control /Status

+1

Valores em Registradores so processados pela ULA e armazenados em registrador Cpia de registrador em memria

Registers

10
PC IR

11

Armazena

E/S Memory

... ...
10 11

Anderson Moreira

Arquitetura de Computadores

58

Unidade de Controle
Unidade de Controle: configura operaes do datapath

Ciclo de Instruo vrias sub-operaes (cada uma em um ciclo de relgio)

Seqncia de operaes (instrues) desejadas armazenadas na memria (programa) Busca: armazena instruo em IR, atualiza PC

Processor Control unit Datapath ULA Controller Control /Status Registers

Decodificao: determina o que a instruo significa Busca de Operandos: cpia de dados da memria para registradores na unid. Processamento Execuo: Processa dados na ULA Armazena resultados: escreve resultados de registrador na memria

PC

IR

R0

R1

E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Memory 500 501

...
10

...
59

Anderson Moreira

Arquitetura de Computadores

Sub-operaes da Unidade de Controle


Busca Cpia da instruo em IR PC: Contador de programa aponta para prxima instruo IR: armazena instruo que foi buscada

Processor Control unit Datapath ULA Controller Control /Status Registers

PC

100

IR load R0, M[500]

R0

R1

E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Memory 500 501

...
10

...
60

Anderson Moreira

Arquitetura de Computadores

Sub-operaes da Unidade de Controle


Decodificao Determina significado da instruo

Processor Control unit Datapath ULA Controller Control /Status Registers

PC

100

IR load R0, M[500]

R0

R1

E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Memory 500 501

...
10

...
61

Anderson Moreira

Arquitetura de Computadores

Sub-operaes da Unidade de Controle


Busca de Operandos Cpia de dados da memria para registradores no

Processor Control unit Datapath ULA Controller Control /Status Registers

datapath

10
PC 100 IR load R0, M[500] R0 R1

E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Memory 500 501

...
10

...
62

Anderson Moreira

Arquitetura de Computadores

Sub-operaes da Unidade de Controle


Execuo Processa dados na ULA (Para esta instruo em particular nada acontece durante esta sub-operao)

Processor Control unit Datapath ULA Controller Control /Status Registers

10
PC 100 IR load R0, M[500] R0 R1

E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Memory 500 501

...
10

...
63

Anderson Moreira

Arquitetura de Computadores

Sub-operaes da Unidade de Controle


Armazena resultados Escreve dado de registrador em memria (Para esta instruo em particular nada acontece durante esta sub-operao)
PC

Processor Control unit Datapath ULA Controller Control /Status Registers

10
100 IR load R0, M[500] R0 R1

E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Memory 500 501

...
10

...
64

Anderson Moreira

Arquitetura de Computadores

Ciclos de uma Instruo

PC=100
clk

Processor

Fetch Decode Fetch Exec. ops

Store results

Control unit

Datapath ULA

Controller

Control /Status Registers

10
PC 100 IR load R0, M[500] R0 R1

E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Memory 500 501

...
10

...
65

Anderson Moreira

Arquitetura de Computadores

Ciclos de uma Instruo

PC=100
clk

Processor

Fetch Decode Fetch Exec. ops

Store results

Control unit

Datapath ULA

Controller

Control /Status

+1

PC=101
clk

Fetch Decode Fetch Exec. ops

Store results
PC 101 IR inc R1, R0 R0

Registers

10

11
R1

E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Memory 500 501

...
10

...
66

Anderson Moreira

Arquitetura de Computadores

Ciclos de uma Instruo

PC=100
clk

Processor

Fetch Decode Fetch Exec. ops

Store results

Control unit

Datapath ULA

Controller

Control /Status Registers

PC=101
clk

Fetch Decode Fetch Exec. ops

Store results
PC 102 IR store M[501], R1 R0

10

11
R1

PC=102
clk

Fetch Decode Fetch Exec. ops

Store results
100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1

E/S Memory

...
500 10 501 11

...
67

Anderson Moreira

Arquitetura de Computadores

Consideraes da Arquitetura
Processador de N-bits ULA, registradores, barramento, interface de memria N-bits Comum em aplic. emb: 8-bit, 16-bit, 32-bit Comum em Desktop/servidores : 32 ou 64 bit
Tamanho do PC determina espao de endereamento

Processor Control unit Datapath ULA Controller Control /Status Registers

PC

IR

E/S Memory

Anderson Moreira

Arquitetura de Computadores

68

Consideraes da Arquitetura
Freqncia do Clock Deve ser maior que o maior retardo de carregamento de registrador Acesso memria possui o maior retardo
PC

Processor Control unit Datapath ULA Controller Control /Status Registers

IR

E/S Memory

Anderson Moreira

Arquitetura de Computadores

69

Dvidas

Anderson Moreira

Arquitetura de Computadores

70