Arquitectura de Computadores Fundamentos (9, 10.1 a 10.3) José Monteiro Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 1 de Março, 2010 José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 1 / 18
Sumário da Aula Tipos de computadores Arquitectura básica de um computador Níveis de abstracção Código máquina vs linguagem Assembly Instruções Assembly José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 2 / 18
Tipos de Computadores José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 3 / 18
Tipos de Computadores José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 3 / 18
Tipos de Computadores José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 3 / 18
Tipos de Computadores José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 3 / 18
Tipos de Computadores Jose Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 4 / 18
Tipos de Computadores Jose Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 5 / 18
Tipos de Computadores Jose Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 5 / 18
Tipos de Computadores Vendas mundiais de microprocessadores no ano 2000: Servidores PCs Outros José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 6 / 18
Tipos de Computadores Vendas mundiais de microprocessadores no ano 2000: Servidores PCs Outros 4.000.000 José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 6 / 18
Tipos de Computadores Vendas mundiais de microprocessadores no ano 2000: Servidores PCs Outros 4.000.000 150.000.000 José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 6 / 18
Tipos de Computadores Vendas mundiais de microprocessadores no ano 2000: Servidores PCs Outros 4.000.000 150.000.000 1.000.000.000 José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 6 / 18
Arquitectura de um Computador Instruções (programa) Ambiente Entradas (sensores) Saídas (actuadores) Processador Estado (memória) Realidade (analógica) Interface (analógica-digital) Controlador / Observador (digital) José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 7 / 18
Estrutura Interna de um Processador Unidade de processamento Unidade de controlo Palavra de controlo Bits de estado Banco de registos ULA PC IR Barramento de endereços Barramento de dados José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 8 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Níveis de Abstracção Nível 5 Aplicação Programador Nível 4 Linguagem de Alto Nível Compilador Nível 3 Linguagem Assembly Assembler Nível 2 Nível 1 Nível 0 Código Máquina Microprograma em Linguagem de Transferência de Registos Sistemas Digitais Projectista de Processador Projectista de Sistemas Digitais José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 9 / 18
Código Máquina Endereço Valor Base 2 Base 16 Base 2 Base 16 0001000000000000 1000 1010111001110000 AE70 0001000000000001 1001 0000000001000000 0040 0001000000000010 1002 1000011001110000 8670 0001000000000011 1003 0000000010110000 00B0 0001000000000100 1004 1000011001110000 8670 0001000000000101 1005 0000000010110001 00B1 0001000000000110 1006 0100000000000001 4001 0001000000000111 1007 1010110001110000 AC70 0001000000001000 1008 1111000000000000 F000 José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 10 / 18
Código Máquina Assembly Endereço Código Assembly Código Máquina 1000h MOV R1, M[0040h] AE70h 1001h 0040h 1002h ADD R1, M[00B0h] 8670h 1003h 00B0h 1004h ADD R1, M[00B1h] 8670h 1005h 00B1h 1006h NEG R1 4001h 1007h MOV M[F000h], R1 AC70h 1008h F000h José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 11 / 18
Linguagem Assembly ORIG 1000h N1 EQU 0040h N2 EQU 00B0h N3 EQU 00B1h N4 EQU F000h MOV ADD ADD NEG MOV R1, M[N1] R1, M[N2] R1, M[N3] R1 M[N4], R1 José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 12 / 18
Tipos de Instruções Assembly Transferência de Dados Transferem informação de um local (registo, posição de memória ou porto de entrada/saída) para outro, sem alterar a informação original. José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 13 / 18
Tipos de Instruções Assembly Transferência de Dados Transferem informação de um local (registo, posição de memória ou porto de entrada/saída) para outro, sem alterar a informação original. Manipulação de Dados Aplicam um operador aritmético ou lógico ao operando(s), especificados pela sua localização, e guardam o resultado da mesma. José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 13 / 18
Tipos de Instruções Assembly Transferência de Dados Transferem informação de um local (registo, posição de memória ou porto de entrada/saída) para outro, sem alterar a informação original. Manipulação de Dados Aplicam um operador aritmético ou lógico ao operando(s), especificados pela sua localização, e guardam o resultado da mesma. Controlo Permitem alterar a sequência normal de instruções e definir qual a próxima instrução a ser executada. José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 13 / 18
Campos de uma Instrução Assembly Código de Operação (Opcode): especifica a instrução a executar José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 14 / 18
Campos de uma Instrução Assembly Código de Operação (Opcode): especifica a instrução a executar Localização dos Operandos: indicação sobre onde (registo ou memória) ir buscar os dados de entrada e guardar o resultado (modo de endereçamento) José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 14 / 18
Campos de uma Instrução Assembly Código de Operação (Opcode): especifica a instrução a executar Localização dos Operandos: indicação sobre onde (registo ou memória) ir buscar os dados de entrada e guardar o resultado (modo de endereçamento) Especificação dos Operandos: índice do registo a usar ou endereço de memória a aceder José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 14 / 18
Localização dos Operandos Registos internos do processador. Constante, especificada na própria instrução. Posição de memória. Porto de entrada/saída. José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 15 / 18
Modos de Endereçamento Modo de endereçamento Por registo Operação op RX José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Operação op RX op M[RX] José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Imediato Operação op RX op M[RX] op W José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Imediato Directo Operação op RX op M[RX] op W op M[W] José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Imediato Directo Indexado Operação op RX op M[RX] op W op M[W] op M[RX+W] José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Imediato Directo Indexado Relativo Operação op RX op M[RX] op W op M[W] op M[RX+W] op M[PC+W] José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Imediato Directo Indexado Relativo Baseado Operação op RX op M[RX] op W op M[W] op M[RX+W] op M[PC+W] op M[SP+W] José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Imediato Directo Indexado Relativo Baseado Indirecto Operação op RX op M[RX] op W op M[W] op M[RX+W] op M[PC+W] op M[SP+W] op M[M[W]] José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Imediato Directo Indexado Relativo Baseado Indirecto Duplamente indirecto por registo Operação op RX op M[RX] op W op M[W] op M[RX+W] op M[PC+W] op M[SP+W] op M[M[W]] op M[M[RX]] José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Imediato Directo Indexado Relativo Baseado Indirecto Duplamente indirecto por registo Impĺıcito Operação op RX op M[RX] op W op M[W] op M[RX+W] op M[PC+W] op M[SP+W] op M[M[W]] op M[M[RX]] José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 16 / 18
Revisão Tipos de computadores Arquitectura básica de um computador Níveis de abstracção Código máquina vs linguagem Assembly Instruções Assembly José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 17 / 18
Próxima Aula pilha codificação das instruções arquitecturas de acesso à memória acesso a periféricos José Monteiro (DEI / IST) Arquitectura de Computadores 2010-03-01 18 / 18