Considere um processador que possui cinco estágios para exe...
Considere um processador que possui cinco estágios para execução de cada instrução com os seguintes tempos:
• Estágio 1 (acesso à memória de instruções): 10 ns
• Estágio 2 (decodificação da instrução): 5 ns
• Estágio 3 (processamento lógico-aritmético): 7 ns
• Estágio 4 (acesso à memória de dados): 10 ns
• Estádio 5 (finalização da instrução): 5ns
Considerando que um projetista explora o paralelismo em nível de instruções através de um pipeline, qual o tempo de execução de uma única instrução e qual o tempo médio aproximado ideal por instrução considerando a execução de um bilhão de instruções, respectivamente?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - 50 ns e 10 ns.
Para entender a questão, é preciso compreender o conceito de pipeline na arquitetura de computadores. Um pipeline permite que várias instruções sejam processadas simultaneamente em diferentes estágios de execução. No pipeline, enquanto uma instrução está sendo processada em um estágio, outras instruções podem ocupar os estágios anteriores. Isso melhora o throughput (vazão) das instruções e a utilização eficiente do processador.
No processador em questão, temos cinco estágios com tempos diferentes para cada um. O tempo de execução de uma única instrução sem considerar o pipeline seria a soma de todos os estágios, mas isso não se aplica aqui, pois estamos considerando o paralelismo do pipeline.
O tempo de execução de uma única instrução no pipeline é determinado pelo estágio mais longo, pois esse é o gargalo que define o intervalo no qual novas instruções podem entrar no pipeline. Neste caso, o estágio mais longo é o acesso à memória de instruções e o acesso à memória de dados, ambos com 10 ns. Portanto, uma única instrução leva 50 ns para passar por todos os estágios do pipeline (desconsiderando o tempo de entrada e saída do pipeline).
O tempo médio aproximado ideal por instrução refere-se à média de tempo por instrução quando o pipeline está totalmente ocupado e todas as instruções estão sendo processadas sem interrupções ou conflitos. Supondo um pipeline ideal, uma nova instrução pode ser introduzida a cada ciclo do estágio mais longo. Com isso, o tempo médio por instrução seria igual ao tempo do estágio mais longo, ou seja, 10 ns.
Portanto, a execução de um bilhão de instruções idealmente levaria cerca de 10 ns por instrução, assumindo que não existam atrasos de pipeline, como bolhas (bubbles), conflitos de dados (data hazards), conflitos de controle (control hazards) ou conflitos estruturais (structural hazards), e que o pipeline possa operar continuamente sem interrupção.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo