Caminho de Dados é o conjunto dos registradores e da ULA (Unidade Logica Aritmética), responsável pelas operações de processamentos de dados e junto com unidade de controle, controla as interações entre o caminho de dados e com o dado em si. Os registradores servem para guardar um dado ou um registro, mesmo que temporariamente. Existem vários tipos de registradores, cada um com sua função mais respectiva. A ULA é onde são feitas as operações. Vamos exemplificar com um exemplo básico que é a utilizando o modelo de Von Neumann ilustrado na imagem abaixo: Utilizaremos ‘A’ e ‘B’ no nosso exemplo, primeiro a uma busca por 2 registradores para armazenar a entrada, logo em seguida temos a execução de uma determinada operação pela ULA, por fim o armazenamento do resultado em outro registrador.
2. Fale das vantagens e problemas de se usar o pipeline.
Vantagens: Maior número de instruções sendo processadas ao mesmo tempo e maior freqüência de Clock. Desvantagens: Aumenta a complexidade, dependências e desvios.
3. Descreva os 5 estágios do MIPS.
1) Busca da instrução na memória; 2) Ler registradores enquanto a instrução é decodificada 3) Executa a operação ou calcular um endereço; 4) Acessar um operando na memória de dados; 5) Escrever o resultado em um registrador;
4. Fale dos 3 conflitos (Hazards) do pipeline (estruturais, controle,
dados) e como soluciona- los. Hazards Estruturais: Causado por recursos insuficientes de cache de dados e instruções unificadas, uma das soluções é duplicar unidades funcionais, aumentar o número de portas de acesso à memória e separar cache de dados e instruções, inserir NOOPs também é uma solução mas causa perca de desempenho;
Hazards de Dados: acontece quando uma instrução depende no seu
resultado de uma instrução anterior de modo que a primeira instrução ainda não computou. Para resolver este problema, foi criada uma técnica chamada de Forwarding, onde um novo circuito é adicionado ao pipeline. É como um barramento que corta caminho através do pipeline. Também se possível inserir NOOPs para atrasar a execução da instrução, ganhando tempo tempo para a instrução posterior.
Hazards de Controle: causado por desvios condicionais ou
incondicionais nos fluxos de operações e exceções. Como nos caos a inserção de NOOPs é uma das soluções, mas temos uma solução mais eficiente que é a Predição de Desvio, há dois tipos, a Predição Estática na qual assumimos sempre tomar desvio ou nunca tomar desvio e a Predição Dinâmica, na qual mantemos um pequeno histórico de desvios de um ou dois bits para auxiliar na decisão. 5. Sejam duas implementações do mesmo conjunto de instruções. O Computador A tem um tempo de ciclo de clock de 300ps e um CPI de 2.0 para um determinado programa, e o computador B tem um tempo de clock de 500ps e um CPI de 1.5 para o mesmo programa. Que computador é mais rápido para esse programa e o quanto é mais rápido. Neste caso utilizaremos a equação básica de desempenho, que pode ser descrita da seguinte forma: contador de instruções * CPI * taxa de clock Como as duas implementações possuem o mesmo conjunto de instruções criaremos uma constante para representá-lo e a chamaremos de ‘C’. Computador A: C*2.0*300ps = 600 Cps
Computador B:
C*1.5*500ps = 750 Cps
A quantidade mais rápida é dada pela razão dos tempos de execução Cps * (750/600) = 1.25 Logo podemos afirmar que o computador A é 1.25 vezes mais rápido que o computador B.
Padrões projeto software tem e resume de forma concisa e otimizada para o conteúdo do documento, que trata sobre padrões de projeto em engenharia de software