Académique Documents
Professionnel Documents
Culture Documents
4-2
Bibliografia
[1] Miles J. Murdocca e Vincent P. Heuring, Introduo Arquitetura de Computadores [2] Marcelo Rubinstein Transparncias do curso de Computadores Digitais (UERJ) [3] Andrew S. Tanenbaum, Organizao Estruturada de Computadores [4] Jos Paulo Brafman Transparncias do curso de Organizao de Computadores (UFRJ) [5] Victor Paulo Peanha Esteves Apostila de Arquitetura de Microcomputadores, Mdulo 1
4-3
4-4
4-5
4-6
4-7
Memria
Onde os programas e os dados so armazenados Sua unidade bsica o bit formada por um conjunto de clulas (ou posies)
O nmero de bits de uma clula chamado palavra Clulas referenciadas por um endereo
4-8
Memria (cont.)
Organizao de uma memria de 96 bits (fonte: Tanenbaum)
@ 2000-2001 by Prentice-Hall, Inc.
4-9
Processador
Crebro do computador Tambm conhecido como CPU Sua funo executar instrues Constitudo de
Unidade de controle Busca instrues na memria principal e determina o tipo de cada instruo Unidade lgica e aritmtica (ALU) Realiza um conjunto de operaes necessrias execuo de instrues
Possui uma memria pequena e de alta velocidade formada por um conjunto de registradores
4-10
Processador (cont.)
Registrador constitudo de n flip-flops, cada flip-flop armazenando um bit
PC (Program Counter): aponta para a prxima instruo a ser buscada na memria para ser executada IR (Instruction Register): armazena a instruo que est sendo executada Outros de uso geral ou especfico
4-11
Processador (cont.)
Organizao do processador
Caminho de dados constitudo de Registradores ULA Barramentos: conjunto de fios paralelos que permite a transmisso de dados, endereos e sinais de controle Instrues do processador Registrador-memria Registrador-registrador
4-12
Processador (cont.)
Caminho de dados de uma tpica mquina de Von Neumann (fonte: Tanenbaum)
@ 2000-2001 by Prentice-Hall, Inc.
4-13
4-14
4-15
Execuo de Instrues
Unidade de controle dispara cada um dos passos Registradores armazenam temporariamente dados e instrues Unidade lgica e aritmtica trata os dados e permite a atualizao dos apontadores
4-16
Processador (cont.)
CPU 8080 simplificada (adaptado de Brafman)
RE (16)
B.End. Int (16)
PC (16)
B. Dados Int (8)
DC (16)
R3 (16)
A (8)
B (8) M E M
RD (8) RD/WR
IR (8)
VI (8)
SP (16)
T1 (8)
T2 (8)
UC
F (1)
ULA
4-17
Processador (cont.)
Busca na memria
4-18
Processador (cont.)
CPU 8080 simplificada (adaptado de Brafman)
RE (16)
B.End. Int (16)
PC (16)
B. Dados Int (8)
DC (16)
R3 (16)
A (8)
B (8) M E M
RD (8) RD/WR
IR (8)
VI (8)
SP (16)
T1 (8)
T2 (8)
UC
F (1)
ULA
4-19
Processador (cont.)
CPU 8080 simplificada (adaptado de Brafman)
RE (16)
B.End. Int (16)
PC (16)
B. Dados Int (8)
DC (16)
R3 (16)
A (8)
B (8) M E M
RD (8) RD/WR
IR (8)
VI (8)
SP (16)
T1 (8)
T2 (8)
UC
F (1)
ULA
4-20
Processador (cont.)
CPU 8080 simplificada (adaptado de Brafman)
RE (16)
B.End. Int (16)
PC (16)
B. Dados Int (8)
DC (16)
R3 (16)
A (8)
B (8) M E M
RD (8) RD/WR
IR (8)
VI (8)
SP (16)
T1 (8)
T2 (8)
UC
F (1)
ULA
4-21
Processador (cont.)
CPU 8080 simplificada (adaptado de Brafman)
RE (16)
B.End. Int (16)
PC (16)
B. Dados Int (8)
DC (16)
R3 (16)
A (8)
B (8) M E M
RD (8) RD/WR
IR (8)
VI (8)
SP (16)
T1 (8)
T2 (8)
UC
F (1)
ULA
4-22
Processador (cont.)
CPU 8080 simplificada (adaptado de Brafman)
RE (16)
B.End. Int (16)
PC (16)
B. Dados Int (8)
DC (16)
R3 (16)
A (8)
B (8) M E M
RD (8) RD/WR
IR (8)
VI (8)
SP (16)
T1 (8)
T2 (8)
UC
F (1)
ULA
4-23
Processador (cont.)
4-24
Processador (cont.)
CPU 8080 simplificada (adaptado de Brafman)
RE (16)
B.End. Int (16)
PC (16)
B. Dados Int (8)
DC (16)
R3 (16)
A (8)
B (8) M E M
RD (8) RD/WR
IR (8)
VI (8)
SP (16)
T1 (8)
T2 (8)
UC
F (1)
ULA
4-25
Processador (cont.)
Execuo da instruo
4-26
Processador (cont.)
CPU 8080 simplificada (adaptado de Brafman)
RE (16)
B.End. Int (16)
PC (16)
B. Dados Int (8)
DC (16)
R3 (16)
A (8)
B (8) M E M
RD (8) RD/WR
IR (8)
VI (8)
SP (16)
T1 (8)
T2 (8)
UC
F (1)
ULA
4-27
Processador (cont.)
Distino entre CPUs
Registradores (nmero, tamanho) ULA (nmero de operaes, tamanho) UC (mquina de estado convencional, microprogramada)
4-28
4-29
Numa mquina enderevel por byte, o menor dado que pode ser referenciado na memria o byte. Palavras de mltiplos bytes so armazenadas como uma seqncia de bytes, na qual o endereo da palavra na memria o mesmo do byte da palavra que possui o menor endereo. Quando palavras de mltiplos bytes so usadas, existem duas escolhas para a ordem na qual os bytes so armazenados na memria: o byte mais significativo no endereo mais baixo, chamada big-endian, ou o byte menos significativo armazenado no endereo mais baixo, chamada little-endian.
4-30
4-31
O caminho de dados do ARC possui uma coleo de registradores, conhecido como register file, e uma unidade aritmtica e lgica (ALU).
Principles of Computer Architecture by M. Murdocca and V. Heuring 1999 M. Murdocca and V. Heuring
4-32
O ISA ARC
O ISA ARC um sub-conjunto do ISA SPARC.
4-33
4-34
Mnemnico
campo de cdigo da operao
4-35
4-36
Registradores do ARC
PC Program Counter
Endereo da prxima instruo a ser executada
IR Instruction Register
Instruo em execuo
4-37
4-38
4-39
4-40
ARC Pseudo-Ops
4-41
4-42
4-43
Instrues de 1, 2 ou 3 Endereos
Considere como a expresso A = B*C + D pode ser calculada por tipos de instruo de um, dois ou trs endereos.
Hipteses: Endereos e palavras de dados possuem dois bytes. Opcodes tem tamanho de 1 byte. Operandos so movidos para e da memria uma palavra (dois bytes) de cada vez.
4-44
Instrues de 3 Endereos
Usando instrues de 3 endereos, a expresso A = B*C + D pode ser codificada como: m ult add B, C, A D, A, A
Ou seja, multiplique B por C e armazene o resultado em A. (As operaes m ul t e add so genricas; no so instrues ARC.) Ento, some D a A e armazene o resultado em A.
4-45
Instrues de 3 Endereos
O tamanho do programa 7x2 = 14 bytes
cada instruo = 1 + 2 + 2 + 2 = 7 bytes opcode + operando + operando + operando
Trfego da memria
Para cada instruo: busca da instruo (7 bytes) + trfego de dados (6 bytes) Total = (7+6) + (7+6) = 26 bytes
4-46
Instrues de 2 endereos
Em uma instruo de 2 endereos, um dos operandos sobrescrito com o resultado. Um cdigo possvel para o clculo da expresso A = B*C + D : load B, A m ult add C, A D, A
O tamanho do programa agora : 3 (1 + 2 + 2 ), ou 15 bytes. Trfego de memria: busca das instrues: 5 por instruo primeira inst.: 2 2 bytes buscados outras 2 instrues: 2 2 bytes buscados, 2 bytes armazenados. total: (5 + 4) + (5 + 6) + (5 + 6) = 31 bytes
4-47
Instrues de 1 endereo
Ou de Acumulador: Instrues de 1 endereo utilizam um nico registrador aritmtico na CPU, conhecido como o acumulador. O cdigo para a expresso A = B*C + D agora : load m ult add store B C D A
A instruo load carrega B no acumulador; m ult multiplica C pelo acumulador e armazena o resultado no acumulador; e add realiza a soma correspondente. A instruo store armazena o valor do acumulador em A.
4-48
Instrues de 1 endereo
O tamanho do programa 3 x 4 = 12 bytes
cada instruo = 1 + 2 = 3 bytes opcode + operando
Trfego da memria
Cada instruo gera apenas 2 bytes de cada vez, sendo buscados OU armazenados na memria Total = (3+2) + (3+2) + (3+2) + (3+2) = 20 bytes
Modos de Endereamento
4-49
Quatro formas de calcular o endereo de um valor na memria: (1) uma constante conhecida em tempo de montagem, (2) o contedo de um registrador, (3) a soma de dois registradores, (4) a soma de um registrador e de uma constante. A tabela d nomes a estes e outros modos de endereamento.
4-50
Ligao de Sub-rotinas
Processo de passar argumentos (e valores de retorno) entre rotinas Convenes de chamada
Diferentes maneiras de passagem de argumentos Registradores rea de ligao de dados Pilha
4-51
4-52
4-53
Passagem de parmetros numa rea de memria separada. O endereo inicial da rea de memria passado em um registrador ( %r5 aqui).
4-54
4-55
Algumas mquinas possuem instrues push e pop que colocam e retiram elementos da pilha e atualizam o SP automaticamente
4-56
4-57
4-58
4-59
Aninhamento
Quando sub-rotina termina de executar, %r15 (reg. de ligao) usado para calcular endereo de retorno
Problema: e se vrias chamadas so aninhadas?
Soluo
Valor atual de %r15 deve ser armazenado na pilha Junto com quaisquer outros registradores que precisem ser restaurados Conjunto dos registradores preservados: Quadro de pilha
4-60
4-61
(g-k)
Comportamento da pilha durante a execuo do programa em C.
4-62
Entrada e Sada
Duas formas
Instrues especiais e barramento especial de entrada e sada Entrada e sada mapeada em memria acesso feito como para posies de memria, em sees do espao de endereamento onde no existe memria real
ARC
E/S mapeada em memria
4-63
4-64
Mdulos de vdeo
Entre os endereos 216 e 219 1
Dispositivos de E/S
Entre os endereos 223 e 224 1
4-65
4-66
4-67
4-68
4-69
4-70
4-71