Teoria Flashcards
(44 cards)
Quais das tecnologias de RAID usaria no caso de querer baixar o tempo de acesso ao disco, RAID 0 ou RAID 2?
Para reduzir os tempos de acesso aos discos deve ser usado RAID 0 face a RAID 2, pois, apesar de RAID 0 não ter replicação da informação e ser redundante, RAID 2 é bastante complexo na prática e também lento face aos restantes, isto porque utiliza Error Correcting Code (ECC).
Na coerência de Cache um Shared Memory Multiprocessor (SMP) com Uniform Memory Access (UMA) pode ser conseguido com protocolos Snooping. Quais as duas variantes para estes protocolos?
- Update Protocol - Invalidate Protocol
O que é o Update Protocol?
Copia a informação, não a invalidando, é um optimo e forte protocolo mas gasta muita largura de banda.
O que é o Invalidate Protocol?
Não tem bloqueios e pode ser implementado usando o bit de validade. Se algum processo quiser ler/escrever, invalida todas as copias remotas da Cache quando um bloco é actualizado.
Quais os três tipos de multithreading que existem?
- Course-grain Multithreading - Fine-grain Multithreading - Simultaneous Multithreading (SMT)
Quais são as vantagens do Simultaneous Multithreading (SMT)?
1) Melhora a eficiencia global de CPUs Superscalar com Hardware Multithreading; 2) Permite várias threads independentes serem executadas para uma melhor utilização dos recursos em processadores com arquitecturas mais modernas;
Qual a desvantagem do Simultaneous Multithreading (SMT)?
Redução da performance no caso de algum recurso partilhado ficar entupido.
Qual a vantagem do Course-grain Multithreading?
Troca rápidamente entre threads bloqueadas e aquela que estiver à espera de correr.
Qual a desvantagem do Course-grain Multithreading?
Sobre carga de inicialização entre esvaziar a lista de threads e o começo de uma nova.
Qual a vantagem do Fine-grain Multithreading?
Permite que todos os stalls sejam tratados durante aquele processo singular.
Qual a desvantagem do Fine-grain Multithreading?
Sacrifica significamente a performance das threads singulares dado que uma thread apenas tem que esperar após a execução da próxima instrução e todos os stalls encontrados até aqui serão tolerados e assim é necessário esperar que a instrução acabe.
O que faz o 1-bit Dynamic Branch?
Após descodificar e constatar que é uma instrução de desvio, usam-se os bits menos significativos para decidir se o desvio será tomado ou não. Neste caso pode resultar num aumento do Speedup mas em contra partida podem ocorrer erros e devios. Caso o esquema não seja preciso a performance do CPU pode ser pior.
Qual a técnica de optimização de uma cache que nos permite melhorar o Hit Time?
Diminuir o numero de vias de associatividade (comparadores e tempo de acesso), onde a solução passa por ter blocos e cache mais pequenos.
Qual a técnica de optimização de uma cache que nos permite melhorar o Hit Rate?
Aumentar o numero de vias de associatividade (diminui colisões) o que irá aumentar posteriormente o numero de sucessos.
De que forma é que uma Direct Memory Access (DMA) irá aumentar a performance do CPU?
Com DMA o CPU em primeiro lugar inicializa as transferencias e após isto, faz outras operações em paralelo, por fim recebe um sinal de interrupção da DMA quando essas operações estiverem concluidas. Já sem DMA quando um CPU utiliza um programa I/O tipicamente é ocupado na sua totalidade pela duração de operações R/W sendo assim impossivel de fazer outras operações em paralelo.
Para notificações de completude ou de erro numa transferencia DMA, que método deveria ser considerado neste caso, polling ou interruption?
O melhor método a ser utilizado é o método de interruption, pois recebendo um sinal de interrupção da DMA este é necessário quando as interrupções estiverem acabadas.
O uso de uma DMA pode influenciar qualquer estado de uma Cache?
Uma DMA influencia o estado de uma Cache dado que manipula de forma dinamica a informação em Memória podendo causar incoerência na Cache.
Em que situação é que uma Shared-Memory System (UMA), com caches de nível 1 privadas por processador, tendo uma cache singular C junto à memória principal, e partilhada por todos os processadores, pode ser uma vantagem?
Pode ser uma melhor escolha se o objectivo for ter mais informação em Cache e assim, a ocupação do BUS não é bottleneck.
Em que situação é que uma Shared-Memory System (UMA), com caches de nível 1 privadas por processador, que usa p caches de tamanho C/p, privadas a cada processador, colocada depois da cache de nível 1, pode ser uma vantagem?
É melhor se quisermos diminuir a ocupação do BUS.
Se uma tabela de páginas tiver um “referenced bit”, de que forma é que este bit pode ser usado para implementar uma aproximação à LRU?
Quando uma página é referenciada o nosso “referenced bit” é colocado para essa página, colocando-o como bit referenciado. Pode ser usado para uma aproximação à LRU dado que mantém o “referenced bit” que é determinado sempre que uma página é usada. Ao final de um dado periodo os “referenced bits” são resetados.
Considerando um sistema de baixa potencia usado na implementação de um relógio de alarme. Que solução seria mais aconselhada para a detecção de um evento de alarme, polling ou interruption?
Usar a técnica de interruption, boa para eventos asincronos, urgentes e pouco frequentes.
Num sistema baseado em interrupções, de que forma é que as tarefas/interrupções são tratadas de forma a garantia que as de maior urgencia são tratadas primeiro?
Através de semáforos que colocam as menos frequentes em background.
Fará sentido para o CPU usar polling quando queremos detectar completude de sucesso ou falhas de uma transferencia DMA?
Não fará sentido visto que uma DMA trabalha em background sem necessidade de interrupção do CPU, enquanto que polling requer o CPU para activamente monitorizar os processos.
Qual a desvantagem de uma arquitectura Nonuniform Memory Access (NUMA)?
Programar arquitecturas NUMA é bastante mais complexo.