1- Descreva os passos que transformam um programa escrito em linguagem de alto nível. tal como C e uma representação que seja diretamente executável pelo processador de um computador.
São quatro etapas:
Compilador: O compilador transforma o programa C em um programa em assembly, uma forma simbólica daquilo que a maquina entende.
Montador: A tarefa principal de um montador é a montagem para o código de maquina. O montador transforma o código em assembly em um arquivo objeto, que é uma combinação de instruções de linguagem de maquina, dados e informações necessárias para colocar instruções corretamente na memória.
Linker: Também chamado link-editor, é um programa de sistema que combina programas em linguagem de maquina montados de maneira independente e traduz todos os rótulos indefinidos para um arquivo executável.
Loader: Um programa de sistema que coloca o programa objeto na memoria principal, para que esteja pronto para ser executado.
2- Considere três diferentes processadores P1, P2, P3 executando o mesmo conjunto de instruções P1 tem clock de 3GHz e CPI e 1,5. P2 tem clock de 2.5GBz e CPI de 1,0 e P3 tem clock cloc de 4GBz e CPI de 2,2. A partir dessas informações responda
a) Qual processador tem desempenho mais alto em termos de instruções por segundo?
Tempo de CPU = Inst*CPI/Freq de Clock, como ele quer saber em termos de instruções por segundo, temos que encontrar a relação “Inst/Tempo de CPU”.
Inst/Tempo de CPU = Freq de Clock/CPI
P1: 3,0x10^9/1,5 = 2x10^9 instruções por segundo
P2: 2,5x10^9/1 = 2,5x10^9 instruções por segundo
P3: 4,0x10^9/2,2 = 1,82x10^9 instruções por segundo
P2 tem maior desempenho em termos de instruções por segundo.
b) Se cada processador executa um programa em 10 segundos, encontre o número de ciclos e o número de instruções que serão executadas em cada um deles.
Na alternativa anterior, achamos o número de instruções executadas em 1s, logo, em 10s:
P1:10*2x10^9 instruções
P2:10*2,5x10^9 instruções
P3:10*1,82x10^9 instruções
O tempo de um ciclo de clock é dado pelo inverso da frequência de clock, 1/Freq, para saber quantos ciclos em 10s fazemos 10/Tempo de um ciclo = 10xFreq de clock.
P1:10*3,0x10^9 ciclos
P2:10*2,5x10^9 ciclos
P3:10*4,0x10^9 ciclos
c) calcule quanto teria que ser o clock de cada processador, se quiséssemos aumentar seu desempenho em 30%, sabendo que isso implica em um acréscimo de 20% no seu CPI
Aumentar o desempenho em 30% quer dizer diminuir o tempo de CPU em 30%. O CPI aumenta em 20%. Devemos usar a fórmula original, substituindo o Tempo de CPU por 0,7*Tempo de CPU, e o CPI por 1,2*CPI.
Freq Clock Anterior = Inst*CPI / Tempo de CPU
Freq Clock Nova = Inst*1,2*CPI / 0,7*Tempo de CPU = 1,71*(Inst*CPI / Tempo de CPU) = 1,71*Freq Clock Anterior
P1: 1,71*3,0 GHz
P2: 1,71*2,5 GHz
P3: 1,71*4,0 GHz
3- Explique os modos de endereçamento do processador MIPS
Os modos de endureço do MIPS são os seguintes:
1 Endereçamento em registrador, onde o operando é o registrador.
2 Endereçamento de base ou deslocamento, onde o operando está no local de memória cuja o endereço é a soma de um registrador e uma constante na instrução.
3 Endereçamento imediato, onde o operando é uma constante dentro da própria instrução.
4 Endereçamento relativo ao pc, onde o endereçamento é a soma do PC e uma constante na instrução.
5 Endereçamento pseudo direto, onde o endereçamento de jump são os 26 bits da instrução concatenados com os bits mais altos do PC.
4- Quais tipos de instruções do processador MIPS não seguem o paradigma RISC?
As instruções de Divisão e Multiplicação. O paradigma RISC tem como base instruções reduzidas, e que essas instruções juntas possam realizar trabalhos maiores. Mas as instruções de Divisão e multiplicação, são instruções grandes, pois efetuam diversas operações o que vai contra o paradigma RISC.
5- Dois processadores executam um mesmo programa. O processador P1 executa 5,0x10⁶ instruções com clock de 4 GHz e CPI de 0,9. O processador P2 executa 1,0x10⁶ instruções com clock de 3GHz e CPI de 0,75. Com base, diga qual processador tem maior desempenho.
CPU Time = Intrucction x CPI / clock rate OU CPU Time = Intrucction x CPI x clock time
cputime = 5x10^6 x 0.9 / 4 x10^9 = 1.125 x10^-3
cputime = 1x10^6 x 0,75 / 3 x10 ^9 = 0,25 x10^-3
Ele quer saber quem tem maior desempenho, que é o que tem menor Tempo de CPU. Nesse caso é P2.
6- Na arquitetura do processador MIPS, explique como funciona o processo de chamada a procedimentos (esclareça também sobre as principais instruções usadas para executar a chamada ao procedimento)
Um procedimento ou uma função é uma ferramenta que os programadores usam para estruturar programas, tanto para torná-los mais fáceis de entender, tanto quanto para permitir que o código seja reutilizado. Os procedimentos realizam uma tarefa com base nos parâmetros com quais ela é provida.
Na execução de um procedimento, o programa precisa seguir seis etapas:
1 Colocar os parâmetros em um lugar onde o procedimento pode acessá-lo.
2 Transferir o controle para o procedimento.
3 Adquirir recursos de armazenamento necessários para execução do procedimento.
4 Realizar a tarefa desejada.
5 Colocar o valor de retorno em um local onde o programa que o chamou possa acessá-lo.
6 Retornar o controle para o ponto de origem, pois um procedimento pode ser chamado de vários pontos em um programa.
Para executar os procedimentos, o MIPS usa a instrução jal (jump and link), que salta para um endereço e simultaneamente salva o endereço da instrução seguinte em um registrador. E também a jr (jump register), que significa um desvio incondicional para um endereço de um registrador, que neste caso, é o mesmo que a jal salvou o endereço da próxima instrução.
7-Comente
a) As diferenças entre barramento síncronos e assíncronos
barramento síncrono -> Um barramento que inclui um clock nas linhas de controle e um protocolo fixo para comunicação, que é relativo ao clock
barramento assíncrono -> Um barramento que utiliza um protocolo de handshaking (é uma serie de etapas usadas para coordenar as transferências em barramentos assíncronos em que o emissor e o receptor só prosseguem para a próxima etapa quando as duas partes concordarem que a etapa atual foi concluída) para coordenar o uso, em vez de um clock; pode acomodar uma grande variedade de dispositivos, de diferentes velocidades
b) A função do TLB
A TLB é uma tabela com as traduções de endereço virtual para físico em um sistema de memória virtual. A tabela, armazenada na memória, normalmente indexada pelo número de página virtual; cada entrada na tabela contém o número da página física para essa página virtual se a página estiver atualmente na memória.
8- Entre o DMA e o Polling, qual método de transferência de dados de E/S apresenta melhor desempenho e por que?
DMA. O DMA é um co-processador responsável por analise da interrupção……….
O polling é um paradigma o qual encarrega o processador de ir verificar em cada dispositivo o seu status, para saber se os mesmos precisam de atenção do processador.O que gera uma perda de desempenho do processador.
Logo o DMA tem maior desempenho.
9- Cada uma das figuras abaixo indica uma forma de mapeamento de cache
a) Indique no espaço entre parenteses qual o tipo de mapeamento. I- Totalmente associativo, II- Direto, III- Associativo por vias
Imagem 1 -> III
Imagem 2 -> II
Imagem 3 -> I
b) Explique dois dos mapeamentos
mapeamento direto. Um bloco só pode entrar exatamente em um local na cache.
cache totalmente associativa. Uma estrutura de cache em que um bloco pode ser posicionado em qualquer local da cache.
cache associativa por conjunto (ou por vias). Uma cache que possui um número fixo de locais (no mínimo dois) onde cada bloco pode ser colocado.