Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)



Documentos relacionados
Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Figura 1 - O computador

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Edeyson Andrade Gomes

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Componentes do Computador e. aula 3. Profa. Débora Matos

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

BARRAMENTO DO SISTEMA

Introdução à Arquitetura de Computadores

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

2 Formalidades referentes ao trabalho

Organização de Computadores Hardware

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel

Introdução à Programação 2006/07. Computadores e Programação

Programando o computador IAS

ARQUITETURA DE COMPUTADORES

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

ARQUITETURA DE COMPUTADORES

PCS-2302 / PCS-2024 Lab. de Fundamentos de Eng. de Computação

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.

Nível da Microarquitetura

Programação Básica usando o Computador Visível. Jorge Fernandes Maio de 2004

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

Introdução à Lógica de Programação

Estrutura do tema ISC

MODOS DE ENDEREÇAMENTO

Organização e Arquitetura de Computadores I

Computadores de Programação (MAB353)

Introdução às Linguagens de Programação

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Aula 14: Instruções e Seus Tipos

Arquitetura de Computadores

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

Codificação da informação. Execução do programa. Codificação binária. Representação de inteiros positivos. Representação binária

O modelo do computador

Escola Secundária de Emídio Navarro

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Capítulo 1 Introdução

Organização e Arquitetura de Computadores I. Introdução. Ivan Saraiva Silva Leonardo Casillo

4-1. Parte2: A Arquitetura do Conjunto de Instruções

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

28/9/2010. Unidade de Controle Funcionamento e Implementação

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Microprocessadores. Prof. Leonardo Barreto Campos 1

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

SIS17 - Arquitetura de Computadores

Capítulo 8. Software de Sistema

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

Arquitetura e Organização de Computadores

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Funcionamento básico de um computador

Programação de Computadores

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Conjunto de Instruções e Arquitectura p.1

Introdução aos Computadores

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

TE11008 Arquitetura e Organização de Computadores Nível da Linguagem de Montagem p. 1

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

Sistema de Computação

Estrutura de um Computador

ARQUITETURA DE COMPUTADORES

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

Introdução à Arquitetura de Computadores IFES Campus Serra

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Laboratório de Arquitectura de Computadores IST - Taguspark 2008/2009 Introdução aos sistemas binários Guião 1 9 a 13 de Março 2009

20/09/2009 TRANSFORMANDO DADOS EM. PROCESSANDO DADOS George Gomes Cabral SISTEMAS NUMÉRICOS INFORMAÇÕES

Organização Básica do Computador

Arquitetura de Computadores. Arquitetura de Computadores 1

Programação de Computadores III

Organização de Computadores 1

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Organização de Computadores 1

Arquitetura e Organização de Computadores

Programação de Sistemas

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Computadores de Programação (MAB353)

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

Transcrição:

Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance que o bus permite Topologias de interligação dos componentes, memória e periféricos (estruturas de buses Um mesmo conjunto de instruções pode ter distintas realizações: diferentes processadores e famílias de processadores, com custos e desempenhos variáveis (Intel vs. AMD; PIII vs. P4 vs PM; Conjunto de instruções do Instrução: definição de uma operação elementar, capaz de ser executada pela máquina (interpretada pelo Que tipo de instruções se devem incluir na arquitectura? Que operações implementar no hardware? Que informação deve incorporar-se no código de cada instrução? Como descrevemos a operação e informação usada pela operação ASC1-26/27 17 ASC1-26/27 18 Definição das instruções (1 As classes de instruções necessárias são poucas: Aritméticas e lógicas Transferências de dados Controlo da sequência de execução Definição das instruções (2 Os objectivos a considerar são muitos: Aproximar das linguagens de alto nível Reduzir o tamanho dos programas Oferecer instruções poderosas e eficientes Instruções simples, que facilitem realização eficiente Oferecer diversos modos de endereçar as variáveis em memória (ex. referências, matrizes, registos Reduzir o número de acessos a memória central Oferecer só as instruções de facto úteis Promover uma abordagem em que instruções mais complexas não são oferecidas, mas podem ser implementadas, pelos programas, de forma eficiente ASC1-26/27 19 ASC1-26/27 11 Definição das instruções (3 Para as boas soluções, contribuem: A definição do conjunto de instruções E todos os outros elementos da arquitectura Uma boa solução é também fruto de compromissos: Custo Funcionalidade Desempenho Leis do mercado e circunstâncias tecnológicas Exemplos de possíveis instruções Que instruções incluir no? Multiplicação e divisão Aritmética de reais Chamada e retorno de funções/métodos Execução eficiente de ciclos tipo for Contar e temporizar acções Operar sobre cadeias de caracteres, sobre listas, sobre filas, sobre registos, sobre matrizes Mover e recolocar programas em memória Suspensão e reactivação de programas???? A que nível: na arquitectura do computador ou em níveis superiores da hierarquia? (p.ex. SO? ASC1-26/27 111 ASC1-26/27 112 1

Codificação de cada instrução máquina O formato depende do tipo de instrução: O código da operação ou opcode (sempre! A especificação dos operandos ou sua localização A especificação da localização para o resultado Exemplo: formato de instrução com 4 campos (3 operandos: op3 operação(op1, op2 Para operações com dois operandos (op1 e op2, deixando o resultado em op3 "op" pode indicar uma célula de memória ou um registo do contendo o operando (op1 e op2 também podem ser o próprio valor do operando codificação: opcode op1 op2 op3 ASC1-26/27 113 Tamanho das instruções Quantos bits para o código? Depende do número de instruções distintas Exemplo: 8 bits 256 instruções possíveis Quantos bits para os campos "op"? Depende de: onde estão os operandos, o modo como se endereça a memória, a capacidade do espaço de endereços Exemplo: Operandos e resultado em memória de 64 KiloBytes (2 Bytes Então, uma instrução: 8 + 3 * 16 = 56 bits ASC1-26/27 114 Que alternativas? Instruções com operandos e resultado em registadores do : "op" terá menos bits Instruções com menor número de operandos Instruções em que só figura uma parte do endereço Instruções que assumem que os operandos estão em locais pré-definidos As instruções podem não ser todas do mesmo tamanho Durante a descodificação pode necessitar de ler mais informação da memória Instruções de 2 operandos formato de instrução com 3 campos (um dos operandos também será para o resultado: op1 operação(op1, op2 codificação: opcode op1 op2 Exemplo Intel: add eax, 4 (assembly 5 4 (código em hexadecimal ASC1-26/27 115 ASC1-26/27 116 Instruções de 1 operando formato de instrução com 2 campos (1 operando: op operação(op codificação: opcode op um único operando exemplo: not eax f7 d ou mais operandos, mas estes estão implícitos (p.ex. um registo ou um operando pré definido exemplo: inc ecx 41 Instruções sem operandos formato de instrução com 1 campo (sem operandos ou estes estão implícitos: codificação: opcode exemplo: ret C3 ASC1-26/27 117 ASC1-26/27 118 2

Um computador muito simples Vejamos um computador (virtual muito simples: IE (A Machine Architecture that is Really Intuitive and Easy Do livro: The Essentials of Computer Organization and Architecture, L. Null, J. Lobur Simulador escrito em Java Características do IE Binário Programa em memória (máquina de Von Neumann Opera dados de central com células de cada; endereços de Um registo interno geral: acumulador ( Instruções de tamanho fixo, com 2 campos: 4 bits para código da operação (opcode, para um endereço Entrada/Saída (I/O de ASC1-26/27 119 ASC1-26/27 12 Arquitectura do IE IR PC 16bits ASC1-26/27 121 495 4 K words = 8 KBytes Arquitectura do IE (Memory Address Register: endereço da posição de memória referenciada MDR (Memory Data Register: Registo que recebe o valor lido da memória ou onde se coloca o valor a escrever na memória PC (Program Counter: endereço da instrução a executar 12 bits IR (Instruction Register: contém a instrução que se está a executar (Output register: contém o dado a enviar para um periférico de saída (8 se ASCII (Input register: recebe o dado lido de um periférico de entrada (8 se ASCII ASC1-26/27 122 Conjunto de instruções (ISA Codificação fixa em Formato: 4 bits para o código da instrução; para um endereço (opcional A única maneira de referir um operando é pelo seu endereço em memória Os operandos ou estão em memória ou são implícitos opcode endereço Bit: 15 12 11 Notação na descrição da execução Apresenta as acções internas ( microacções em termos das transferências entre os vários registos/memória (RTN/RTL Register Transfer Notation/Language Transferências: destino fonte sentido da transferência O destino e a fonte podem ser : Registos do (, PC,,... Mem[X] conteúdo da célula de memória na posição com o endereço X ASC1-26/27 123 ASC1-26/27 124 3

Ciclo de execução no IE Fetch 1. Fetch Obtenção da instrução em memória 2. Decode Descodificação 3. Execute Mais à frente while (running { PC Mem[] IR PC PC +1 IR[bits 11-] if (instrução IR[bits 15-12] requer um operando da memória { } Executar a instrução } IR PC 495 PC Mem[] IR PC PC +1 ASC1-26/27 125 ASC1-26/27 126 Primeiras 9 instruções RTL das instruções do IE (1 Código Binário 1 1 11 1 11 11 Hexa 1 2 3 4 5 6 Mnemónica Load X Store X Add X Subt X Input Output Descrição Carrega o conteúdo da posição de memória com endereço X no acumulador Guarda o conteúdo do acumulador na posição de memória com endereço X Soma Mem[X] com o conteúdo do acumulador, guardando o resultado no mesmo Idem mas subtrai Lê um valor para o acumulador Escreve o que está no acumulador Load X Store X, Mem[] Add X + Subt X - 111 7 Pára a execução 1 8 SkipCond Salta por cima da próxima instrução de acordo com valor do acumulador 11 9 Jump X Carrega o valor X no PC ASC1-26/27 127 ASC1-26/27 128 Add X As primeiras 9 intruções (cont. As operações de entrada e saída usam valores decimais IR X PC 495 + a conversão para caracteres é feita automaticamente pelo simulador A instrução skipcond usa os bits 11 e 1 para indicar a condição em que funciona: salta (skip se < 1 salta (skip se == 1 salta (skip se o >= ASC1-26/27 129 ASC1-26/27 13 4

RTL das instruções do IE (2 Input Output Running=False (O ciclo de execução de instruções termina Jump X PC IR[11-] SkipCond if ( IR[11-1] == 2 if ( < PC PC + 1 else if ( IR[11-1] == 1 2 if ( == PC PC + 1 else if ( IR[11-1] == 1 2 if ( >= PC PC + 1 Um programa simples Programa: Load 1 Add 11 Store 12 Dados em memória antes da execução: 1: 24 11: 1 12: Dados em memória depois da execução: 1: 24 11: 1 12: 25 ASC1-26/27 131 ASC1-26/27 132 Linguagem assembly Mnemónicas para as instruções máquina Operandos das instruções: Constantes (binário, decimal, hexadecimal Endereços (podem ser simbólicos: etiquetas Características de um dado processador Nem todos os usos das mnemónicas podem ser válidos Pseudo instruções Não correspondem a instruções máquina Indicações dadas ao assembler Exemplos: comentários; indicar o endereço de carregamento em memória; valor inicial do PC Papel de um assembler Assembler é o tradutor da linguagem de assembly para a máquina ORG 1 Load A Add B Store C A, dec 24 B, hex 1 C, hex Ficheiro texto com o código em assembly Assembler Cabeçalho: End. de carregamento Valor inicial do PC 111 11111...... 11 1 Ficheiro objecto ASC1-26/27 133 ASC1-26/27 134 Etiquetas Permitem designar simbolicamente as posições de memória Load A 1 Load 14 Add B 11 Add 15 Store C 12 Store 16 13 A, Dec 24 14 24 B, Hex 1 15 1 C, Hex 16 ASC1-26/27 135 Processamento das etiquetas Assembler processa o ficheiro linha a linha. Quando encontra uma etiqueta não sabe ainda o endereço de memória correspondente. Tem de fazer dois passos sobre o ficheiro fonte No primeiro passo, é criada uma tabela de todos os símbolos No segundo passo o espaço dos endereços que não tinha sido preenchido, já o pode ser x1 x11 x12 A B C x1 x11 x12 1???????????? 11???????????? 1???????????? x14 x15 x16 1 1 1 11 1 11 1 1 11 ASC1-26/27 136 5