UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO TCC4.7-Organização Computadores I Turma :A Lista 3-GABARITO. A figura abaixo mostra o diagrama da implementação para a UCP estudada em sala. PC + Somador Resultado da UAL Registradores Somador P C Enreço leitura Instrução Memória Instruções A B C RegDst # #2 escrito Dado escrita EscReg D Reg # Reg #2 Extensão sinal Operação da UAL UAL fonte 3 Zero Resultado da UAL UAL DvC EscMem Memória UALParaReg dados Enreço Dado Dado a escrito LerMem a) Indique quais os bits da instrução vem estar conectados nas ligações A, B, C e D. Consultando a tabela instruções temos: A: bits 2 a 9 B: 8 a 6 C: 2 a D: 5 a b) Consire a instrução subi rega regb imediato. Esta instrução,quando executada, ve subtrair o valor imediato do conteúdo rega e armazenar o resultado em regb. O formato da instrução é: Bits 3-25 = Bits 24-22=código operação Bits 2-9=regA Bits 8-6=regB Bits 5-= valor imediato expresso em complemento a 2 Complete a tabela com o valor que os sinais controle vem ter (, ou X) para esta instrução, explicando suas escolhas: Instr. RegDst EscReg EscMem LerMem UAL fonte DvC UALParaReg subi rega regb imed.
RegDst tem que igual a porque os bits que indicam o registrador a escrito (regb) são os bits 8 a 6. EscReg tem que porque ve haver escrita no registrador regb. EscMem tem que porque a instrução não escreve na memória dados. LerMem tem que porque a instrução não lê da memória dados. UALfonte ve porque o valor a subtraído do conteúdo rega ve o conteúdo do valor imediato. DvC ve porque a próxima instrução a executada ve aquela que se encontra no enreço PC+. UALParaReg ve porque o valor a carregado no registrador a escrito regb ve a saída da UAL. 2. Consire o esquema pipeline mostrado para a arquitetura vista em sala aula, on temos 5 estágios pipeline: Busca (B), Decodificação/Leitura regs (DL),Execução da instrução (EX), Acesso à memória dados (MD), Escrita nos registradores (ER). Analise o trecho código abaixo e indique as instruções on porá existir conflito estrutural, ou controle ou dados, quando este código for executado. Suponha que a única maneira resolver os conflitos é atrasar a execução dos estágios através da inção instruções s. Indique o número instruções s que verão inidas para resolver cada conflito. addi 3 3 lw 3 4 addi 7 7 addi 3 3 beq 2 5 if addi 3 if addi addi 3 3 /* conflito dados porque lw posterior precisa do conteúdo do registrador 3 */ lw 3 4 /* conflito dados porque add posterior precisa do conteúdo do registrador 4 */ addi 7 7 addi 3 3 beq 2 5 if /* conflito dados e controle */ addi 3 if addi Inindo s para remover os conflitos: addi 3 3 lw 3 4-3 instruções s - 3 instruções s addi 7 7 addi 3 3 instrução beq 2 5 if addi 3-2 instruções s addi O código ve ficar com mostrado abaixo:
addi 3 3 lw 3 4 addi 7 7 addi 3 3 beq 4 addi 3 if addi 3. Explique o que são e como funcionam os processos compilação, montagem e ligação. Compilação: Processo que consiste na análise um programa escrito em linguagem alto nível (programa fonte) e sua tradução em um programa em linguagem montagem ou em linguagem máquina (programa objeto). Este processo é realizado pelo Compilador. A Análise feita pelo compilador consiste em 3 partes: - A análise léxica on o programa fonte é composto em seus elementos individuais (comandos, operadores, variáveis, etc), gerando erros se for encontrada alguma incorreção. - A análise sintática on são criadas as estruturas cada comando e verificação acordo com as regras gramaticais da linguagem. - A análise semântica on são verificadas as regras semânticas estáticas, pondo produzir mensagens erros. Após esta análise, se traduz o programa para linguagem montagem ou para linguagem máquina. Montagem: Processo que consiste em traduzir um programa em linguagem montagem (assembly) para seu equivalente escrito em linguagem máquina. Este processo é realizado pelo montador. Esta tradução consiste em substituir os códigos operação simbólicos por valores numéricos, nomes simbólicos enreços por valores numéricos e converter valores constantes para valores binários. Ligação: Processo on é feita a intificação chamadas a rotinas e respectiva conexão entre o código objeto principal e o código das rotinas. Este processo é executado pelo ligador. O ligador examina o código-objeto, procura referências externas não resolvidas e suas localizações nas bibliotecas substituindo a linha chamada pelo código da rotina e emitindo mensagem erro em caso não encontrar a rotina. 4. Consire os seguintes tipos interface E/S: por programa, por interrupção e por acesso direto à memória. a) Descreva, em termos gerais, a operação cada uma las. E/S por programa: O processador tem controle direto sobre a operação E/S, incluindo a tecção do estado do dispositivo, o envio comandos leitura ou escrita e transferência dados. Para realizar uma transferência dados, o processador envia um comando para o módulo E/S e fica monitorando o módulo para intificar o momento em que a transferência po realizada. Após tectar que o módulo está pronto, a transferência dados é realizada através do envio comandos leitura ou escrita em registradores do controlador do dispositivo E/S pelo processador. Se o processador for mais rápido que o módulo E/S, o procedimento realizado para intificar quando o módulo está pronto representa um sperdício tempo processamento.
E/S por interrupção: Neste caso, o processador envia um comando para o módulo E/S e continua a executar outras instruções, sendo interrompido pelo módulo quando ele estiver pronto para realizar a transferência dados, que é executada pelo processador através da obtenção dos dados da memória principal, em uma operação saída, e por armazenar dados na memória principal, em uma operação entrada. E/S por acesso direto à memória (DMA): Nesse caso a transferência dados entre o módulo E/S e a memória principal é feita diretamente sem envolver o processador. Existe um outro módulo nominado controlador DMA que realiza a transferência direta dados entre a memória e o módulo E/S. Quando o processador seja efetuar a transferência um bloco dados com um módulo E/S, ele envia um comando para o controlador DMA indicando o tipo operação a realizada (leitura ou escrita dados), enreço do módulo E/S envolvido, enreço memória para início da operação leitura ou escrita dados e número palavras a em lidas ou escritas. Depois enviar estas informações ao controlador DMA, o processador po continuar executando outras instruções. O controlador DMA executa a transferência todo o bloco dados e ao final envia um sinal interrupção ao processador, indicando que a transferência foi realizada. b) Consire um sistema on o número ciclos relógio para realizar uma operação por programa é igual a 4, o processador utiliza um relógio 5 MHZ para executar as instruções e nenhuma transferência dados po perdida. Determine o overhead -em termos fração tempo CPU consumida- que ocorre quando se utiliza a interface por programa para os seguintes dispositivos: b.) Um mouse que ve interrogado pelo sistema 3 vezes por segundo para garantir que nenhum movimento le seja perdido. Como o mouse ve interrogado 3 vezes por segundo e em cada atendimento são gastos 4 ciclos, teremos 2 ciclos sendo gastos em um segundo para realizar operações E/S por programa. A freqüência do relógio sta máquina é 5 MHZ, ou seja, 5 6 ciclos relógio são realizados em um segundo. O overhead é calculado como a razão do número ciclos utilizados em um segundo pelo método E/S por programa dividido pelo número total ciclos que são fornecidos em um segundo 2/(5 6 )=,24 %. b.2) Um disco flexível que transfere dados para o processador em blocos 6 bits e possui uma taxa transferência dados 5 KB/segundo. Como a taxa transferência é igual 5 KB/s e a unida transferência é 6 bits, ou seja, 2 bytes, temos que a taxa atendimento ve igual a 5 KB/2B=25 K vezes por segundo. Então ão gastos 25K 4 ciclos relógio em um segundo para realizar operações E/S por programa. O overhead é igual a 25 3 4/(5 6 )=2% b.3) Um disco rígido que transfere dados para o processador em blocos 6 bytes e possui uma taxa transferência 4MB/segundo. Como a taxa transferência é igual 4 MB/s e a unida transferência é 6 bytes, temos que a taxa atendimento ve igual a 4 MB/6B= 25 K vezes por segundo. Então ão gastos 25K 4 ciclos relógio em um segundo para realizar operações E/S por programa. O overhead é igual a 25 3 4/(5 6 )=2% c) Discuta a vantagem que a interface por interrupção possui em relação à interface por programa. Ilustre sua resposta calculando a fração tempo CPU consumida pelo disco rígido conforme scrito no item b.3 assumindo que o overhead cada transferência, incluindo a interrupção, é 5 ciclos relógio e que o disco está ativo em 5 % do tempo total em que a CPU está sendo utilizada. Porque a porcentagem do tempo que um dispositivo está ativo é importante para comparar as interfaces por programa e por interrupção? Como a taxa transferência do disco rígido é igual 4 MB/s e a unida transferência é 6 bytes, temos que a taxa atendimento ve igual a 4MB/6B=25 K vezes por segundo. Então ão gastos 25K 5 ciclos relógio em um segundo para realizar operações E/S por interrupção. Caso o dispositivo estivesse ativo todo o tempo, o overhead ia igual a 25 3 5 /(5 6 )=25% que é maior que o overhead da E/S por programa. Mas como o
dispositivo só está ativo 5% do tempo total, neste caso os ciclos relógio só ão utilizados quando o dispositivo interromper o processador, ou seja, o overhead á 25% 5% =,25%. A porcentagem do tempo que um dispositivo está ativo é importante para comparar estes dois métodos, porque no método por E/S por programa o processador é obrigado a gastar ciclos relógio para monitorar o dispositivo inpenntemente do fato ele estar sendo acionado ou não. No caso do método por interrupção, os ciclos só ão gastos quando o dispositivo estiver efetivamente sendo acionado para realizar transferência dados. Neste caso, obve que na operação por programa, cada tentativas em que o processador acessa o dispositivo apenas em 5 este estará disponível para transferir informações (5% ativo). Na operação interrupção, o processador apenas á interrompido quando o dispositivo E/S estiver em ativida. d) Consire agora outro cenário, on o disco rígido está sendo controlado por um controlador DMA, cada transferência entre o disco e a memória ocorre em blocos 8KB e ocorrem transferências em % do tempo total que a CPU está sendo utilizada. Calcule a fração tempo CPU que é consumida, caso necessite-se, em cada transferência, ciclos relógio do processador para inicializar o controlador DMA e o tratamento da interrupção gerada pela finalização da operação do controlador do DMA necessite 5 ciclos relógio do processador. Ignore qualquer impacto que possa ocorrer vido à contenção do barramento entre o processador e o controlador DMA. O número ciclos inicialização é igual a e interrupção é igual a 5. Logo o número total ciclos por operação DMA é igual a 5. Como scrito no item b.3, o disco possui uma taxa transferência 6 MB/s. Neste caso, são transferidos 8 KB por operação transferência dados, então cada operação DMA terá a duração 8KB/4 MB/s = 2-3 segundos. Se as transferências ocorrem % do tempo, teremos que o número ciclos gasto para transferência dados á 5 / (2-3 )=75 3 ciclos clock/s. O overhead á (75 3 ) /(5 6 )=,5 % 5. Descreva cinco principais características da arquitetura RISC e compare-as com a arquitetura CISC. RISC Pequeno número instruções linguagem máquina Instruções com tempos execução semelhantes e pequenos Todas as instruções possuem um único tamanho Operações lógicas e aritméticas são aplicadas a operandos que estejam somente nos registradores Passagem parâmetros para procedimentos é realizado preferencialmente através registradores CISC Gran número instruções linguagem máquina Pom existir instruções com tempo execução muito longo Instruções possuem tamanhos variáveis Operações lógicas e aritméticas pom aplicadas a operandos que estejam em registradores e na memória Passagem parâmetros é realizada através da memória