Universidade Católica Dom Bosco Curso de Engenharia de Computação Disciplina: Tópicos Avançados em Sistemas de Computação Professor: Ricardo Santos

Simulado nō 1

1) Assinale a alternativa correta (V ou F)

( ) Uma das vantagens do projeto de um processador pipelined em relação a um processador monociclo é a possibilidade de manter uma instrução na via de dados enquanto é “realmente” utilizada.

( ) A diferença básica entre uma política de atualização write-through e a política write-back é que a primeira atualiza a memória principal apenas quando a linha da cache é atualizada enquanto que a segunda atualiza a memória somente quando o programa é finalizado.

( ) Em uma arquitetura de fluxo de dados, as instruções não necessitam manter informações sobre a origem dos operandos mas apenas sobre a operação que deve ser realizada e o destino dos resultados.

( ) Uma das restrições para a utilização de máquinas de fluxo de dados é a necessidade de ordenar a execução das operações de memória, em contraposição ao modelo de fluxo de dados original que permite que as operações sejam executadas assim que os operandos estão disponíveis.

( ) Considerando o processador MIPS com pipelines, duas instruções a e b com dependência de dados (a depende de b), não necessitam utilizar a unidade de forwarding se b estiver no estágio WB e a estiver no estágio ID.

( ) Uma das vantagens da política de atualização write-back sobre a write-through é que ela (write-back) absorve várias escritas para uma mesma linha da cache e, com isso, minimiza o tráfego no barramento Cache-Memória.

( ) Sobre os protocolos MSI e MESI, a verificação de uma mensagem BusRdX no barramento e a ação de Flush, seguida por uma mudança de estado, ocorre apenas quando um processador, no estado S, deseja fazer uma escrita na cache.

( ) De maneira resumida, a vantagem da estratégia de protocolos de coerência de caches baseados em diretórios é possibilitar que a coerência das caches seja mantida centralizada enquanto que nos protocolos de snooping essa coerência é sempre distribuída.

( ) Estações de Reserva funcionam como buffers para armazenamento das instruções já executadas cujo commit ainda não foi efetivado. Essas estações são empregadas em arquiteturas superscalares.

( ) A execução de instruções RISC está atrelada a arquiteturas com escalonamento estático como as máquinas VLIW enquanto que máquinas com escalonamento dinâmico, como as superscalares, buscam, decodificam e executam instruções CISC.

2) Sobre o código a seguir, responda:

a) Indique onde ocorre stall nas instruções a seguir e reordene-as de maneira a reduzir esses stalls.

b) Se considerarmos que não há stall na instrução de desvio condicional, como ficaria o código?

c) Se a arquitetura possui recursos para predicação e especulação de instruções de load, o desempenho poderia ser melhorado? Como?

0    addi $t2, $zero, 10
4    lw $t3, $t0(0)
8    beq $t2, $t3, 1
12   add $t2, $t1, $t1
16   addi $t1, $t3,1
20   addi $t0, $t0,2
24   st $t1, $t0(0)

3) Mostre que, para um sistema de interconexão baseado em hipercubo cujo grau g de cada nó é 3, g(i) = 3, ∀i ∈ N, N = # de nós do hipercubo, o diâmetro também é 3.

4) Baseando-se na Figura do sistema de interconexão MIN, mostre o caminho seguido para a comunicação entre os nós 010 ) 111 e 110 ) 000. Qual a latência de pior caso, considerando o número de switches entre os nós de origem e destino, para uma rede com N nós?

Figura 1: Multistage Interconnection Network

5) Mostre o conteúdo (desconsidere sinais de controle) dos registradores de pipeline de acordo com o código a seguir, após cada ciclo de relógio. Mostre a execução até o estágio EX da última instrução. Quando não for possível determinar o conteúdo, indique 1x11. Tome como base a via de dados com pipelines apresentada na Figura 2 (proc. R3000). Quando for apresentar o conteúdo de um registrador rx, a partir do banco de registradores, utilize a notação R[rx]. O conteúdo da ALU, a partir das entradas rs e rt para uma operação de soma, deve ser indicado como ALU[[rs] + [rt]]. O conteúdo da memória de dados, cujos operandos foram, por exemplo, rs e 10, deve ser MEM[rs + 10].

4  lw $t0, $t1(10)
8  add $t2, $t2, $t0
12 add $t1$,$t2, $t0

Figura 2: Via de Dados com Pipelines