arquitectura de computadores - técnico lisboa - autenticação · bits de estado jos´e monteiro...

37
Arquitectura de Computadores Fundamentos (9, 10.1 a 10.3) Jos´ e Monteiro Licenciatura em Engenharia Inform´ atica e de Computadores Departamento de Engenharia Inform´ atica (DEI) Instituto Superior T´ ecnico 5 de Mar¸ co, 2009 Jos´ e Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 1 / 16

Upload: vuhanh

Post on 11-Feb-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 2: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 3: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

Tipos de Computadores

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 3 / 16

Page 4: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

Tipos de Computadores

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 3 / 16

Page 5: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

Tipos de Computadores

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 3 / 16

Page 6: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

Tipos de Computadores

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 3 / 16

Page 7: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

Tipos de Computadores

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 4 / 16

Page 8: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

Tipos de Computadores

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 5 / 16

Page 9: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

Tipos de Computadores

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-03-05 5 / 16

Page 10: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 11: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 12: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 13: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 14: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 15: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 16: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 17: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 18: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 19: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 20: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 21: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 22: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 23: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 24: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 25: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 26: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 27: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 28: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 29: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 30: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 31: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 32: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 33: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 34: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 35: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 36: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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

Page 37: Arquitectura de Computadores - Técnico Lisboa - Autenticação · Bits de estado Jos´e Monteiro ... Linguagem de Alto Nível Programa em Código Máquina ... Campos de uma Instruc˜ao

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