arquitectura de computadores - técnico lisboa - autenticação · bits de estado jos´e monteiro...
TRANSCRIPT
Arquitectura de ComputadoresFundamentos (9, 10.1 a 10.3)
Jose Monteiro
Licenciatura em Engenharia Informatica e de Computadores
Departamento de Engenharia Informatica (DEI)Instituto Superior Tecnico
5 de Marco, 2009
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 1 / 16
Sumario da Aula
Tipos de computadores
Arquitectura basica de um computador
Nıveis de abstraccao
Codigo maquina vs linguagem Assembly
Instrucoes Assembly
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 2 / 16
Tipos de Computadores
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 3 / 16
Tipos de Computadores
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 3 / 16
Tipos de Computadores
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 3 / 16
Tipos de Computadores
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 3 / 16
Tipos de Computadores
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 4 / 16
Tipos de Computadores
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 5 / 16
Tipos de Computadores
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 5 / 16
Tipos de Computadores
Vendas mundiais de microprocessadores no ano 2000:
Servidores PCs Outros
4.000.000 150.000.000 1.000.000.000
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 6 / 16
Tipos de Computadores
Vendas mundiais de microprocessadores no ano 2000:
Servidores PCs Outros
4.000.000
150.000.000 1.000.000.000
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 6 / 16
Tipos de Computadores
Vendas mundiais de microprocessadores no ano 2000:
Servidores PCs Outros
4.000.000 150.000.000
1.000.000.000
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 6 / 16
Tipos de Computadores
Vendas mundiais de microprocessadores no ano 2000:
Servidores PCs Outros
4.000.000 150.000.000 1.000.000.000
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 6 / 16
Arquitectura de um Computador
Processador
Entradas(sensores)
Saídas(actuadores)
Realidade(analógica)
Interface(analógica-digital)
Controlador / Observador(digital)
Estado(memória)
Instruções(programa)
Ambiente
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 7 / 16
Estrutura Interna de um Processador
Bancode
registos
PC
IR
ULA
Barramentode endereços
Barramentode dados
Unidade de processamentoU
nida
de d
e co
ntro
lo
Palavra decontrolo
Bits deestado
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 8 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Nıveis de Abstraccao
Aplicação
Programa emLinguagem de Alto Nível
Programa emCódigo Máquina
Programa emLinguagem Assembly
Nível 5
Nível 4
Nível 3
Nível 2
Microprograma em Linguagemde Transferência de RegistosNível 1
Sistemas DigitaisNível 0
Programador
Compilador
Assembler
Projectistade Processador
Projectista deSistemas Digitais
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 9 / 16
Codigo Maquina
Endereco ValorBase 2 Base 16 Base 2 Base 16
0001000000000000 1000 1010111001110000 AE700001000000000001 1001 0000000001000000 00400001000000000010 1002 1000011001110000 86700001000000000011 1003 0000000010110000 00B00001000000000100 1004 1000011001110000 86700001000000000101 1005 0000000010110001 00B10001000000000110 1006 0100000000000001 40010001000000000111 1007 1010110001110000 AC700001000000001000 1008 1111000000000000 F000
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 10 / 16
Codigo Maquina → Assembly
Endereco Codigo Assembly Codigo Maquina1000h MOV R1, M[0040h] AE70h1001h 0040h1002h ADD R1, M[00B0h] 8670h1003h 00B0h1004h ADD R1, M[00B1h] 8670h1005h 00B1h1006h NEG R1 4001h1007h MOV M[F000h], R1 AC70h1008h F000h
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 11 / 16
Programa em Linguagem Assembly
ORIG 1000hN1 EQU 0040hN2 EQU 00B0hN3 EQU 00B1hN4 EQU F000h
MOV R1, M[N1]ADD R1, M[N2]ADD R1, M[N3]NEG R1MOV M[N4], R1
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 12 / 16
Tipos de Instrucoes Assembly
Transferencia de Dados
Transferem informacao de um local (registo, posicao de memoria ou portode entrada/saıda) para outro, sem alterar a informacao original.
Manipulacao de Dados
Aplicam um operador aritmetico ou logico ao operando(s), especificadospela sua localizacao, e guardam o resultado da mesma.
Controlo
Permitem alterar a sequencia normal de instrucoes e definir qual a proximainstrucao a ser executada.
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 13 / 16
Tipos de Instrucoes Assembly
Transferencia de Dados
Transferem informacao de um local (registo, posicao de memoria ou portode entrada/saıda) para outro, sem alterar a informacao original.
Manipulacao de Dados
Aplicam um operador aritmetico ou logico ao operando(s), especificadospela sua localizacao, e guardam o resultado da mesma.
Controlo
Permitem alterar a sequencia normal de instrucoes e definir qual a proximainstrucao a ser executada.
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 13 / 16
Tipos de Instrucoes Assembly
Transferencia de Dados
Transferem informacao de um local (registo, posicao de memoria ou portode entrada/saıda) para outro, sem alterar a informacao original.
Manipulacao de Dados
Aplicam um operador aritmetico ou logico ao operando(s), especificadospela sua localizacao, e guardam o resultado da mesma.
Controlo
Permitem alterar a sequencia normal de instrucoes e definir qual a proximainstrucao a ser executada.
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 13 / 16
Campos de uma Instrucao Assembly
Codigo de Operacao (Opcode): especifica a instrucao a executar
Localizacao dos Operandos: indicacao sobre onde (registo ou memoria) irbuscar os dados de entrada e guardar o resultado (modo deenderecamento)
Especificacao dos Operandos: ındice do registo a usar ou endereco dememoria a aceder
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 14 / 16
Campos de uma Instrucao Assembly
Codigo de Operacao (Opcode): especifica a instrucao a executar
Localizacao dos Operandos: indicacao sobre onde (registo ou memoria) irbuscar os dados de entrada e guardar o resultado (modo deenderecamento)
Especificacao dos Operandos: ındice do registo a usar ou endereco dememoria a aceder
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 14 / 16
Campos de uma Instrucao Assembly
Codigo de Operacao (Opcode): especifica a instrucao a executar
Localizacao dos Operandos: indicacao sobre onde (registo ou memoria) irbuscar os dados de entrada e guardar o resultado (modo deenderecamento)
Especificacao dos Operandos: ındice do registo a usar ou endereco dememoria a aceder
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 14 / 16
Localizacao dos Operandos
Registos internos do processador.
Constante, especificada na propria instrucao.
Posicao de memoria.
Porto de entrada/saıda.
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 15 / 16
Modos de Enderecamento
Modo de enderecamento Operacao
Por registo op ← RXIndirecto por registo op ← M[RX]Imediato op ← WDirecto op ← M[W]Indexado op ← M[RX+W]Relativo op ← M[PC+W]Baseado op ← M[SP+W]Indirecto op ← M[M[W]]Duplamente indirecto por registo op ← M[M[RX]]Implıcito
Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 16 / 16