A respeito dos sistemas de computadores, responda:
Descreva o que é e forneça um exemplo de pipelining.
Descreva o que é e forneça um exemplo de pipelining.
Passo 1
Beleza, mano! O enunciado pede pra gente falar sobre pipelining em sistemas de computadores: o que é e dar um exemplo. Isso cai na matéria de Organização de Computadores ou Arquitetura de CPUs. Pra resolver, a gente vai revisar primeiro como funciona o ciclo de instrução (busca, decodificação etc.) e aí mostrar como o pipelining “encurta” o tempo, depois colocar um exemplo prático de pipeline de 5 estágios.
Passo 2
Antes de falar de pipelining, é importante entender o ciclo básico de uma instrução na CPU. Ele costuma ter estas fases:
- IF (Instruction Fetch): buscar instrução na memória
- ID (Instruction Decode): decodificar e ler registradores
- EX (Execute): executar operação (soma, comparação…)
- MEM (Memory): ler ou escrever na memória, se precisar
- WB (Write Back): gravar resultado no registrador
Sem pipeline, cada instrução só começa a fase seguinte depois que a anterior termina completamente. Se cada fase leva tempo τ, rodar n instruções custa:
.
Passo 3
Agora entra o pipelining: é como uma linha de montagem numa fábrica. Enquanto a instrução 1 está na fase EX, a instrução 2 já pode estar na fase ID e a 3 na IF, tudo em paralelo! Assim, depois da “enchente” inicial, a cada ciclo de clock sai uma instrução concluída. O tempo total vira:
.
Ou seja, para muitas instruções, a gente chega perto de 1 instrução por τ, em vez de 1 a cada
.
Passo 4
Exemplo prático de um pipeline de 5 estágios:
Suponha 3 instruções: I1, I2 e I3. Num quadro de ciclos fica assim:
Ciclo | Estágio I1 | Estágio I2 | Estágio I3 |
---|---|---|---|
1 | IF | ||
2 | ID | IF | |
3 | EX | ID | IF |
4 | MEM | EX | ID |
5 | WB | MEM | EX |
6 | WB | MEM | |
7 | WB |
Repare que, a partir do ciclo 3, tudo anda junto. Em 7 ciclos terminam 3 instruções, enquanto sem pipeline seriam 15 ciclos.
Resposta
Pipelining é a técnica de dividir o ciclo de instrução em estágios independentes e sobrepor a execução de várias instruções simultaneamente, como numa linha de montagem. Um exemplo clássico é o pipeline de 5 estágios (IF, ID, EX, MEM, WB), onde várias instruções se “empilham” e, após o preenchimento inicial, sai uma instrução completa a cada ciclo de clock.