Este documento descreve um exercício para simular a execução de instruções de máquina por componentes de um sistema de computação representados por estudantes-atores. Os objetivos são treinar a visualização de conceitos de sistemas de computação. Os estudantes representarão componentes como registos, ALU, memória e barramentos durante a execução de instruções. Dois exercícios preparatórios são fornecidos para análise da execução de uma instrução add específica.
Este documento descreve um exercício para simular a execução de instruções de máquina por componentes de um sistema de computação representados por estudantes-atores. Os objetivos são treinar a visualização de conceitos de sistemas de computação. Os estudantes representarão componentes como registos, ALU, memória e barramentos durante a execução de instruções. Dois exercícios preparatórios são fornecidos para análise da execução de uma instrução add específica.
Este documento descreve um exercício para simular a execução de instruções de máquina por componentes de um sistema de computação representados por estudantes-atores. Os objetivos são treinar a visualização de conceitos de sistemas de computação. Os estudantes representarão componentes como registos, ALU, memória e barramentos durante a execução de instruções. Dois exercícios preparatórios são fornecidos para análise da execução de uma instrução add específica.
------------------------------------------------------------------------------------------------------------------------------------------------ Objectivos Treinar as capacidades de visualizao de terminologia e conceitos que descrevem o funcionamento de um sistema de computao na execuo de cdigo. Para atingir estes objetivos vai-se realizar um exerccio experimental com estudantes-atores, em contra- relgio: usando 8 atores: "banco de registos", "ALU", "unidade de controlo do processador", "descodificador de instrues", "memria", "barramento de endereos", "barramento de dados", e "barramento de controlo". Estes iro representar (teatralmente) a execuo de um conjunto de instrues em linguagem mquina, o corpo de uma funo em C compilada e montada para uma arquitetura IA-16. Como preparao para esta pea de teatro, so propostos alguns exerccios sob a forma de TPC, os quais devero ser resolvidos e entregues no incio da prxima sesso TP, para discusso durante essa sesso. A pea de teatro ser na sesso TP seguinte. ------------------------------------------------------------------------------------------------------------------------------------------------ 1. Exerccios de preparao (TPC)
1. Considere a execuo da instruo em assembly addw %bx, -8(%bp), (depois de "montada" em linguagem mquina para a arquitetura IA-16 definida neste TPC) desde que o processador terminou a instruo anterior. Essa instruo d indicao ao processador para adicionar 2 operandos de 16 bits 1 colocado em registo e outro em memria e guardar o resultado de volta nas mesmas clulas de memria onde antes estava guardado o 2 operando. O 1 operando est no registo %bx, enquanto o 2 operando est localizado em memria a partir do endereo calculado pela soma do contedo do registo %bp com a constante (-8). Considere os valores apresentados neste enunciado nas pg. 4 e 5. Indique, cronologicamente e em binrio ou hexadecimal, toda a informao que ir circular nos 3 barramentos (ver sua descrio no exerccio 2.) durante a execuo integral desta instruo (no esquecer que o processador tem de ir buscar a instruo memria). Considere que o barramento de dados transporta a informao de/para a memria sob a forma little endian, i.e., o byte menos significativo do barramento refere-se ao contedo da clula de memria com o endereo mais baixo. Indique tambm todos os registos e todas as clulas de memria que foram modificados com a execuo desta instruo.
2. Considere a operao de montagem em binrio dessa mesma instruo em assembly de acordo com as regras definidas neste enunciado (inclui pg. 3): addw %bx, -8(%bp). Mostre como seria esta instruo em linguagem mquina deste IA-16 (em hexadecimal, byte a byte), depois de montada pelo assembler. Explique sucintamente, o processo de montagem. 2. Caraterizao da "pea de teatro"
Pretende-se com este exerccio analisar todos os passos da execuo de instrues por um processador little endian de 16 bits (semelhante ao Intel x86), desde a busca de cada uma das instrues memria, at sua execuo, passando pela sua descodificao. Os principais componentes do computador sero representados por estudantes-atores, estando cada uma/um apenas na posse da informao que lhe pertinente e durante o tempo que essa informao existe. TPC3: Execuo detalhada de instrues - 2 ___________________________________________________________________________________________________________ AJProena /Mar'14
Caratersticas do sistema de computao e funes a desempenhar por cada estudante-ator: 1. Processador, constitudo pelas seguintes partes/atores: a. banco de registos, responsvel pelo contedo dos 8 registos "genricos" do Intel x86 (ax, bx, cx, dx, si, di, bp, sp) e do instruction pointer (ip); no incio do exerccio, os registos tero um contedo pr-definido (folha com o ator; contm a lista de registos e respectivo contedo inicial, bem como espao para escrever os novos valores dos registos); b. ALU, responsvel por efetuar as operaes aritmticas (soma/subtrao) ou lgicas (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 operaes so feitas no quadro e apagadas aps a sua concluso (a ALU no tem capacidade de armazenar valores); c. unidade de controlo, responsvel por gerar todos os sinais que controlam as operaes no exterior do processador, e ainda por dar todas as instrues para o correto funcionamento interno do processadro; a apoi-la/o ter a colaborao de uma outra estrutura/ator (o descodificador de instrues); d. descodificador de instrues, com capacidade para armazenar internamente at 4 bytes com instrues em binrio; a descodificao das instrues faz-se com base na informao disponibilizada na pg. 3, contendo: (i) figura com os formatos de instrues do i386, (ii) mapa da codificao dos modos de endereamento do i386, em que a ltima coluna mostra tambm como os registos so codificados, e (iii) tabela com cdigos de operao das instrues mais usadas nesta pea; de notar que este mapa dos modos de endereamento se refere a um processador de 32 bits, mas que iremos adapt-lo nesta pea a um processador de 16 bits, com as necessrias correes (por ex., todas as referncias a registos de 32 bits devero ser substitudas por referncias a registos de 16 bits); 2. Memria, responsvel pelo contedo das 2 16 clulas de memria (folha com o ator; contm o contedo de clulas numa lista de endereos previamente definidos, bem como espao para escrever novos valores em clulas que tenham sido modificadas); 3. Barramentos de interligao entre o processador e a memria: a. barramento de endereos, responsvel por transportar 16 bits de cada vez (em 2 folhas de papel, 1 em cada mo contendo um valor numrico de 1 byte), e apenas durante o perodo de tempo em que esses valores estiverem ativos no barramento; b. barramento de dados, responsvel por transportar 16 bits de cada vez (em 2 folhas de papel, 1 em cada mo contendo um valor numrico de 1 byte), e apenas durante o perodo de tempo em que esses valores estiverem ativos no barramento; c. barramento de controlo, responsvel por transportar os sinais de controlo que forem necessrios (neste exerccio apenas sero necessrios os sinais de RD e WR).
3. Guio teatral
1. Distribuir os papis com a informao pertinente a cada um dos atores, conjuntamente com vrias folhas de papel para que o "CPU" e a "memria" possam escrever a informao que os "barramentos" iro transportar. 2. Considerar que o CPU acabou de executar uma instruo, e que o estado do computador o que est representado nas folhas distribudas. 3. Simular com as/os atores a execuo de instrues at ao fim da 1 instruo de ret que encontrar. 4. (Para fazer depois da aula) Tentar recriar o cdigo em C que deu origem a esta funo compilada. (Sugesto: d uma vista de olhos pelos slides das aulas...)
TPC3: Execuo detalhada de instrues - 3 ___________________________________________________________________________________________________________ AJProena /Mar'14
Formatos de instruo
Opcode Mnemnica Comentrios 0000 00xx add xx: ver figura acima; requer mais bytes 0101 0yyy push yyy: identificao de registo, de acordo com tabela acima 0101 1yyy pop yyy: identificao 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
TPC3: Execuo detalhada de instrues - 6 ___________________________________________________________________________________________________________ AJProena /Mar'14
N Nome: Turma:
Resoluo dos exerccios (Nota: Apresente sempre os clculos que efectuar no verso da folha; o no cumprimento desta regra equivale no entrega do trabalho.)
1. Indique, cronologicamente e em bin ou hex, toda a informao que ir circular nos 3 barramentos: addw %bx, -8(%bp) Address Bus:
Data Bus:
Control Bus (indique apenas os sinais de controlo):
Indique tambm todos os registos e todas as clulas de memria modificados:
2. Mostre como seria esta instruo em linguagem mquina deste IA-16 (explique como l chegou)