Execução detalhada de instruções

Documentos relacionados
Organização e Arquitetura de Computadores INTRODUÇÃO

Prof. Leonardo Augusto Casillo

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador.

Aula 14 Funcionamento de Processadores (Visão específica)

Arquitetura e Organização de Computadores

Circuitos Sequenciais Escola Naval - Dep. Armas e Electrónica v

ção de Computadores I

Introdução aos Sistemas de Computação (ISC) Curso de Administração de Negócios Eletrônicos Professor :

ORGANIZAÇÃO DE COMPUTADORES

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

Instruções. Maicon A. Sartin

TASM DEFINIÇÃO DE UMA NOVA TABELA DE CONVERSÃO

Assembly do IA-32 em ambiente Linux

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

Arquitetura de Computadores. Ciclo de Busca e Execução

MICROPROCESSADORES 2º TESTE - A

Prof. Adilson Gonzaga

Arquitetura e Organização de Computadores

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)

Disciplina: Arquitetura de Computadores

Unidade Central de Processamento UCP (CPU)

Processador: Conceitos Básicos e Componentes

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

Registradores. Os processadores possuem espaços específicos onde são guardados valores, os chamados registradores.

Linguagem de Montagem e Assembly. André Luiz da Costa Carvalho

Arquitetura e Organização de Computadores

Arquitectura de Computadores

SSC510 Arquitetura de Computadores 1ª AULA

Arquitetura e Organização de Computadores

Lic. Engenharia de Sistemas e Informática

Arquitetura de Computadores Unidade Central de Processamento CPU

2º Estudo Dirigido CAP 3

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Arquitetura e Organização de Computadores

Organização e Arquitetura de Computadores I

Organização de Sistemas Computacionais Processadores: Organização da CPU

Aula 5: Introdução a Arquitetura do Microcontrolador 8051

14/3/2016. Prof. Evandro L. L. Rodrigues

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Arquitetura e Organização de Computadores. Sistemas Numéricos

Um Exemplo de Nível ISA: o IJVM. Pilhas. Pilhas. O Modelo de Memória da IJVM. Pilhas de Operandos. Nível ISA

Memória. Função: armazenamento de dados e instruções h FFFF FFFE h FFFF FFFF h byte.

Introdução ao Estudo dos Computadores

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Aula 12: Memória: Barramentos e Registradores

Unidade Central de Processamento 2. Registradores

Compiladores. Introdução à Compiladores

Arquitectura e Organização de Computadores

MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES

Introdução à Computação: Máquinas Multiníveis

COMPUTADOR 2. Professor Adão de Melo Neto

Símbolos e abreviaturas utilizadas na descrição das instruções

Linguagens de Programação Classificação

Linguagem de Maquina II. Visão Geral

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Organização de Sistemas de Computadores

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Estrutura do tema ISA do IA-32

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Aula 10 Processadores de Propósito Geral

9. Software de Sistema - Montadores (capítulo 9 do livro texto)

William Stallings Organização de computadores digitais. Capítulo 14 Operação da Unidade de Controle

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

Programador/a de Informática

PROGRAMAÇÃO I. Introdução

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

Introdução à Computação: Arquitetura von Neumann

Componentes de um Computador Típico

Classificação das linguagens de programação

NEANDERWIN. Algumas características do processador Neander são:

Introdução à Computação MAC0110

ATIVIDADES PRÁTICAS SUPERVISIONADASS

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Arquitetura de Computadores. Conjunto de Instruções

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel

ção de Computadores II

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Agrupamento de Escolas Miradouro de Alfazina (171839) Tecnologias da Informação e Comunicação AULA 3 4

Transcrição:

MIEI Sistemas de Computação 2015/16 Execução detalhada de instruções TPC4 + Guião Teatral Alberto José Proença ------------------------------------------------------------------------------------------------------------------------------------------------ Objectivos Treinar as capacidades de visualização de terminologia e conceitos que descrevem o funcionamento de um sistema de computação na execução de código. Para atingir estes objetivos vai-se realizar um exercício experimental com estudantes-atores, em contrarelógio: usando 8 atores: "banco de registos", "ALU", "unidade de controlo do processador", "descodificador de instruções", "memória", "barramento de endereços", "barramento de dados", e "barramento de controlo". Estes irão representar (teatralmente) a execução de um conjunto de instruções em linguagem máquina, o corpo de uma função em C compilada e montada para uma arquitetura IA-16. Como preparação para esta peça de teatro, são propostos alguns exercícios sob a forma de TPC. Estes deverão ser resolvidos e entregues no início da próxima sessão PL, para discussão sucinta no início dessa sessão, seguindo-se a peça de teatro propriamente dita (esta poderá durar 2 semanas consecutivas). ------------------------------------------------------------------------------------------------------------------------------------------------ 1. Exercícios de preparação (TPC) 1. Considere a execução duma operação aritmética "montada" em linguagem máquina para a arquitetura IA-16 definida neste TPC, desde que o processador terminou a instrução anterior (em assembly corresponde a addw %bx, -8(%bp)). Essa instrução dá indicação ao processador para adicionar 2 operandos de 16 bits 1 colocado em registo e outro em memória e guardar o resultado de volta nas mesmas células de memória onde antes estava guardado o 2º operando. O 1º operando está no registo %bx, enquanto o 2º operando está localizado em memória a partir do endereço calculado pela soma do conteúdo do registo %bp com a constante (-8). Considere os valores em memória e nos registos apresentados neste enunciado nas pág. 4 e 5, e que esta instrução está codificada em 2 bytes na memória, referenciados pelo IP (veremos depois que isto é falso). Indique, cronologicamente e em binário ou hexadecimal, toda a informação que irá circular nos 3 barramentos (ver sua descrição no exercício 2.) durante a execução integral desta instrução (não esquecer que o processador tem de ir buscar a instrução à memória). Considere que o barramento de dados transporta a informação de/para a memória sob a forma little endian, i.e., o byte menos significativo do barramento refere-se ao conteúdo da célula de memória com o endereço mais baixo. Indique também todos os registos e todas as células de memória que foram modificados com a execução desta instrução. 2. Considere a operação de montagem em binário dessa mesma instrução em assembly de acordo com as regras definidas neste enunciado (inclui pág. 3): addw %bx, -8(%bp). Mostre como seria esta instrução em linguagem máquina deste IA-16 (em hexadecimal, byte a byte), depois de montada pelo assembler. Explique sucintamente, o processo de montagem. 2. Caraterização da "peça de teatro" Pretende-se com este exercício analisar todos os passos da execução de instruções por um processador little endian de 16 bits (semelhante ao Intel x86), desde a busca de cada uma das instruções à memória, até à sua execução, passando pela sua descodificação. Os principais componentes do computador serão representados por estudantes-atores, estando cada uma/um apenas na posse da informação que lhe é pertinente e durante o tempo que essa informação existe.

TPC4: Execução detalhada de instruções - 2 Caraterísticas do sistema de computação e funções a desempenhar por cada estudante-ator: 1. Processador, constituído pelas seguintes partes/atores: a. banco de registos, responsável pelo conteúdo dos 8 registos "genéricos" do Intel x86 (ax, bx, cx, dx, si, di, bp, sp) e do instruction pointer (ip); no início do exercício, os registos terão um conteúdo pré-definido (folha com o ator; contém a lista de registos e respectivo conteúdo inicial, bem como espaço para escrever os novos valores dos registos); b. ALU, responsável por efetuar as operações aritméticas (soma/subtração) ou lógicas (AND/OR/NOT) que lhe forem solicitadas, e sobre os operandos que lhe forem disponibilizados; no fim o resultado necessita de ser armazenado algures; as operações são feitas no quadro e apagadas após a sua conclusão (a ALU não tem capacidade de armazenar valores); c. unidade de controlo, responsável por gerar todos os sinais que controlam as operações no exterior do processador, e ainda por dar todas as instruções para o correto funcionamento interno do processadro; a apoiá-la/o terá a colaboração de uma outra estrutura/ator (o descodificador de instruções); d. descodificador de instruções, com capacidade para armazenar internamente até 4 bytes com instruções em binário; a descodificação das instruções faz-se com base na informação disponibilizada na pág. 3, contendo: (i) figura com os formatos de instruções do i386, (ii) (iii) mapa da codificação dos modos de endereçamento do i386, em que a última coluna mostra também como os registos são codificados, e tabela com códigos de operação das instruções mais usadas nesta peça; de notar que este mapa dos modos de endereçamento se refere a um processador de 32 bits, mas que iremos adaptá-lo nesta peça a um processador de 16 bits, com as necessárias correções (por ex., todas as referências a registos de 32 bits deverão ser substituídas por referências a registos de 16 bits); 2. Memória, responsável pelo conteúdo das 2 16 células de memória (folha com o ator; contém o conteúdo de células numa lista de endereços previamente definidos, bem como espaço para escrever novos valores em células que tenham sido modificadas); 3. Barramentos de interligação entre o processador e a memória: a. barramento de endereços, responsável por transportar 16 bits de cada vez (em 2 folhas de papel, 1 em cada mão contendo um valor numérico de 1 byte), e apenas durante o período de tempo em que esses valores estiverem ativos no barramento; b. barramento de dados, responsável por transportar 16 bits de cada vez (em 2 folhas de papel, 1 em cada mão contendo um valor numérico de 1 byte), e apenas durante o período de tempo em que esses valores estiverem ativos no barramento; c. barramento de controlo, responsável por transportar os sinais de controlo que forem necessários (neste exercício apenas serão necessários os sinais de RD e WR). 3. Guião teatral 1. Distribuir os papéis com a informação pertinente a cada um dos atores, conjuntamente com várias folhas de papel para que o "CPU" e a "memória" possam escrever a informação que os "barramentos" irão transportar. 2. Considerar que o CPU acabou de executar uma instrução, e que o estado do computador é o que está representado nas folhas distribuídas. 3. Simular com as/os atores a execução de instruções até ao fim da 1ª instrução de ret que encontrar. 4. (Para fazer depois da aula) Tentar recriar o código em C que deu origem a esta função compilada. (Sugestão: dê uma vista de olhos pelos slides das aulas...)

TPC4: Execução detalhada de instruções - 3 Formatos de instrução no IA-32 Como codificar o REG = 0 = 1 Tabela do IA-16 Opcode Mnemónica Comentários 0000 00xx add xx: ver figura acima; requer mais bytes 0101 0yyy push yyy: identificação de registo, de acordo com tabela acima 0101 1yyy pop yyy: identificação de registo, de acordo com tabela acima 1000 10xx mov xx: ver figura acima; requer mais bytes 1000 110x lea xx: ver figura acima; requer mais bytes 1100 0011 ret

TPC4: Execução detalhada de instruções - 4 Banco de registos ax xxxx xxxx xxxx xxxx _0 0 0 c bx xxxx xxxx xxxx xxxx _f f e f cx xxxx xxxx xxxx xxxx _0 0 0 0 dx xxxx xxxx xxxx xxxx _0 1 4 0 si xxxx xxxx xxxx xxxx _8 0 8 0 di xxxx xxxx xxxx xxxx _8 0 c 6 bp xxxx xxxx xxxx xxxx _8 4 1 c sp xxxx xxxx xxxx xxxx _8 4 1 4 ip xxxx xxxx xxxx xxxx _4 0 4 0

TPC4: Execução detalhada de instruções - 5 Memória 0x0000 0101 1001 _5 9...... 0x4040 0101 0101 _5 5 1 1000 1001 _8 9 0x4042 1110 0101 _e 5 3 1000 1011 _8 b 0x4044 0100 0110 _4 6 5 0000 0110 _0 6 0x4046 0000 0011 _0 3 7 0100 0110 _4 6 0x4048 0000 0100 _0 4 9 1000 1001 _8 9 0x404a 1110 1100 _e c b 0101 1101 _5 d 0x404c 1100 0011 _c 3 d 1000 1101 _8 d 0x404e 0111 0110 _7 6 f 0000 0000 _0 0...... 0x8410 0010 1001 _2 9 1 0001 1111 _1 f 0x8412 1101 0101 _d 5 3 0010 1001 _2 9 0x8414 0001 0010 _1 2 5 0100 0000 _4 0 0x8416 0001 0100 _1 4 7 0000 0000 _0 0 0x8418 1110 1010 _e a 9 1111 1111 _f f......

TPC4: Execução detalhada de instruções - 6 Nº Nome: Turma: Resolução dos exercícios (Nota: Apresente sempre os cálculos que efectuar no verso da folha; o não cumprimento desta regra equivale à não entrega do trabalho.) 1. Indique, cronologicamente e em bin ou hex, toda a informação que irá circular nos 3 barramentos: Address Bus: addw %bx, -8(%bp) Data Bus: Control Bus (indique apenas os sinais de controlo): Indique também todos os registos e todas as células de memória modificados: 2. Mostre como seria esta instrução em linguagem máquina deste IA-16 (explique como lá chegou)