Académique Documents
Professionnel Documents
Culture Documents
Anderson L. S. Moreira
anderson.moreira@recife.ifpe.edu.br
http://dase.ifpe.edu.br/~alsm
Anderson Moreira
Arquitetura de Computadores
Anderson Moreira
Arquitetura de Computadores
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
Anderson Moreira
Arquitetura de Computadores
Anderson Moreira
Arquitetura de Computadores
Leitora de cartes
multiplicador
Tabelas de funes
Acumuladores (registradores)
Anderson Moreira
Arquitetura de Computadores
2 (1955-1964)
3 (1965-1974)
Circuitos integrados
4 (1975-?)
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
Anderson Moreira
Arquitetura de Computadores
11
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
Anderson Moreira
Arquitetura de Computadores
Anderson Moreira
Arquitetura de Computadores
Esquema Bsico
Busca
Processa
Armazena
Fetch-instr.
Store res.
Anderson Moreira
Arquitetura de Computadores
18
Esquema Bsico
Anderson Moreira
Arquitetura de Computadores
19
Controle
20
Anderson Moreira
Arquitetura de Computadores
21
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
R E M
RDM
Anderson Moreira
Arquitetura de Computadores
23
Anderson Moreira
Arquitetura de Computadores
24
Arquiteturas de Memria
Processor
Processor
Program memory
Data memory
Harvard
Princeton
Anderson Moreira
Arquitetura de Computadores
maio de 11
Slide: 25
Anderson Moreira
Arquitetura de Computadores
26
Anderson Moreira
Arquitetura de Computadores
27
A ULA fornece o resultado das operaes e tambm algumas indicaes sobre a operao realizada; Essas indicaes so chamadas de cdigos de condio; Exemplos:
Anderson Moreira
Arquitetura de Computadores
28
Resultado
Anderson Moreira
Arquitetura de Computadores
29
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
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
Anderson Moreira
Arquitetura de Computadores
34
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
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
AC
MQ
Circuitos lgicosaritimticos DR
Equipamento de E/S
Instrues e dados
IBR
PC
Memria Principal
endereos
IR
AR
Circuitos de controle
Anderson Moreira
Sinais de controle
Arquitetura de Computadores
41
AC AC + M(101)
M(102) AC
Anderson Moreira
Arquitetura de Computadores
42
Anderson Moreira
Arquitetura de Computadores
43
0 1
39
Bit de sinal
0
Cd. operao
8
endereo
19 20
Cd. operao
28
endereo
39
Anderson Moreira
Arquitetura de Computadores
44
Conjunto de Instrues
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
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
Arquitetura de Computadores
48
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
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
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
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
Diferenas
IR
E/S Memory
Anderson Moreira
Arquitetura de Computadores
57
Operaes de Processamento
Load
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
Seqncia de operaes (instrues) desejadas armazenadas na memria (programa) Busca: armazena instruo em IR, atualiza PC
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
PC
100
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
PC
100
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
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
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
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
PC=100
clk
Processor
Store results
Control unit
Datapath ULA
Controller
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
PC=100
clk
Processor
Store results
Control unit
Datapath ULA
Controller
Control /Status
+1
PC=101
clk
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
PC=100
clk
Processor
Store results
Control unit
Datapath ULA
Controller
PC=101
clk
Store results
PC 102 IR store M[501], R1 R0
10
11
R1
PC=102
clk
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
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
IR
E/S Memory
Anderson Moreira
Arquitetura de Computadores
69
Dvidas
Anderson Moreira
Arquitetura de Computadores
70