Esse site utiliza cookies
Nós armazenamos dados temporariamente para melhorar a sua experiência de navegação e recomendar conteúdo do seu interesse.
Ao utilizar os nossos serviços, você concorda com as nossas políticas de privacidade.
Esse site utiliza cookies
Nós armazenamos dados temporariamente para melhorar a sua experiência de navegação e recomendar conteúdo do seu interesse.
Ao utilizar os nossos serviços, você concorda com as nossas políticas de privacidade.
Categoria de Tecnologia
Postado em 09 fevereiro 2023
Atualizado em 09 fevereiro 2023
Palavras-chave: pipeline,tecnica,metodo,técnica,método,processa,processamento,estagio,sistema,tarefa
Visualizações: 3083
O computador é capaz de realizar milhões de tarefas por segundo. Entretanto, esse grande número não é o suficiente em muitos casos. Por essa razão, além de adquirir componentes mais eficientes para implementar em circuitos, técnicas de arquitetura também foram adotadas. O pipeline é um exemplo dessas técnicas que melhoram o desempenho do computador.
A palavra “pipeline”, se traduzida diretamente, torna-se “gasoduto”. Porém, na computação essa expressão pode ser traduzida para termos como “segmentação de instruções” ou “paralelismo”.
Pipeline é uma técnica em sistemas computacionais onde o processador executa múltiplas tarefas ao mesmo tempo. Cada tarefa é dividida em etapas menores, e em seguida são organizadas de modo que após o fim de cada etapa, uma outra nova etapa seja iniciada. Além disso, as etapas respeitam a mesma ordem que as instruções chegam ao processador, respeitando a ordem de chegada das instruções que devem ser processadas pelo CPU.
A imagem acima mostra a execução de tarefas em pipeline. Cada instrução é dividida em 4 partes: A, B, C e D. Cada instrução precisa de 4 unidades de tempo para ser finalizada. No caso do exemplo acima, todas as 5 instruções são finalizadas na unidade 7, totalizando 8 etapas (zero também está sendo contado).
Caso as tarefas fossem executadas uma de cada vez, isso traria problemas de desempenho para a máquina e a velocidade de processamento iria cair drasticamente como mostra na figura abaixo:
A figura acima mostra a execução de tarefas sem utilizar a técnica de pipeline. O total de unidades de tempo aumenta drasticamente, chegando quase a ter o triplo do tempo da arquitetura que usa pipeline.
Cada instrução paralela que o processador pode processar simultaneamente é chamada de estágio.
Em geral, quanto mais estágios em um pipeline, maior será a quantidade de operações paralelas que podem ser processadas. No exemplo acima, na primeira imagem, as etapas A, B, C e D formam um estágio.
A quantidade de estágios de um pipeline depende da arquitetura do processador e do número de estágios que ele suporta. Processadores modernos possuem pipelines de 10 até 20 estágios. Porém, esse número pode variar. Além disso, a quantidade de estágios do pipeline também é influenciada por outros fatores como:
Entretanto, um grande número de estágios também pode trazer alguns problemas como latência e dificuldades de sincronização entre estágios. A latência ocorre devido ao tempo total necessário para completar estágios adicionais, diminuindo o desempenho do processador. Um grande número de estágios também traz um grande nível de complexidade. Erros em alguma etapa de um estágio podem atrasar a disponibilização de informações necessárias para outros estágios, trazendo problemas de sincronização. Enfim, o equilíbrio é o mais importante.
O sinal de relógio pode ser comparado com a pulsação de um coração e nada mais é do que um sinal digital pulsante. Em uma máquina, o clock é usado para manter os componentes de um sistema em sincronização. O clock envia pulsos para todos os circuitos do sistema, fazendo com que os componentes trabalhem em sincronia.
O gráfico acima representa os pulsos que um clock emite. Ao todo, são dois valores, zero e um. Também é possível observar que o gráfico acima completa 3 ciclos.
A quantidade de pulsos por segundo pode ser medida. Com isso, obtêm-se a frequência dos pulsos gerados pelo clock do sistema. A unidade de frequência da quantidade de pulsos de um sistema é medido por Hz (Hertz). No caso da imagem acima, um ciclo é completado em 1 segundo, portanto sendo 1Hz.
Hz | Pulsos por segundo |
---|---|
1Hz | 1 pulso por segundo |
10Hz | 10 pulsos por segundo |
100Hz | 100 pulsos por segundo |
1kHz | 1.000 pulsos por segundo |
1MHz | 1.000.000 pulsos por segundo |
1GHz | 1.000.000.000 pulsos por segundo |
Quanto maior a frequência do sistema, mais rápido as instruções serão processadas. Porém, outros fatores como eficiência do pipeline também influenciam na velocidade do sistema. O desempenho de uma pipeline pode ser medida com o IPC.
IPC é a abreviação de “Instruções por ciclo”.
O IPC é um método para medir a eficiência de um processador na execução de instruções em um sistema computacional. Assim, é possível saber quantas instruções podem ser processadas em cada ciclo de clock. Enquanto a frequência do clock mostra quantos ciclos podem ser concluídos por segundo, o IPC mostra quantas tarefas o CPU pode concluir em cada ciclo.
O desempenho de um pipeline pode ser medido com o IPC. O número total de instruções executadas em um certo período de tempo é dividido pelos ciclos do clock desse mesmo período.
a = número de instruções
b = número de ciclos
Por exemplo, um processador que executa 1.000.000.000 de instruções em 5 segundos com o sinal de relógio a 1GHz teria um IPC de 1/5 ou 0,2 como mostra a resolução abaixo:
Processadores modernos tem uma média de IPC entre 1 e 4. Um IPC baixo pode significar ineficiência do processador.
Em geral, a frequência do clock é um fator importante para o desempenho do pipeline de um processador. A frequência do clock é o que determina o ritmo que o pipeline é executado. Por isso, quanto maior a frequência do clock, mais rápido o pipeline é executado. Outro método de medir a eficiência do circuito é com o CPI.
CPI é a abreviação de “Ciclos de clock por instrução”.
É um método para medir o número médio de ciclos de clock necessários para executar uma única instrução em um processador. Esse termo é mais usado do que o IPC.
a = Tempo Total de Execução
b = Número Total de Instruções
Suponhamos um tempo total de execução seja de 40.000.000 e o total de instruções seja 18.000.000. O resultado seria o que a resolução abaixo mostra:
O CPI ideal é 1. Quanto mais perto desse valor, melhor será a eficiência.
Para comparar um processador pipeline com um processador sem pipeline basta utilizar a fórmula abaixo:
Imagine um processador A de 2GHz sem pipeline com um CPI de valor 4 e outro processador B de 4GHz com pipeline e um CPI de valor 1. O tempo de execução de cada processador pode ser obtido com a fórmula abaixo:
O cálculo do processador A pode ser feito da seguinte forma:
O tempo de execução do processador A é de 2 nanosegundos. Em seguida calculamos o tempo de execução do processador B:
O tempo de execução do processador B é de 0,25 nanosegundos. Uma vez que temos o tempo de execução de cada processador, podemos calcular o SpeedUp para ver o quanto o processador sem pipeline (A) é mais rápido do que o processador com pipeline (B).
O resultado 8 é a taxa de aceleração que pode ser adquirida com o processador com pipeline.
O pipeline é uma técnica de processamento onde as tarefas são divididas em múltiplos estágios. Conforme um estágio é finalizado, outras tarefas podem ser processadas simultaneamente.
A técnica de pipeline aumenta o número de tarefas que podem ser executadas simultaneamente, diminuindo o tempo total necessário para processar instruções.
Projetos práticos
Desenvolvimento dos conceitos mais básicos do clássico pacman, como: mapa, animação, deslocamento e detector de colisões.
Detectando objetos que entram dentro do campo de visão do personagem. Útil para servir de "gatilho" para eventos em um jogo.
Programando o clássico jogo da serpente usando o framework p5.js. Tutorial indicado para iniciantes da programação que querem aprender os conceitos básico da área criando jogos.
Implementando um programa que encontra a menor distância entre dois pontos dentro de um labirinto usando o algoritmo A* (a-estrela).
Simulação dos gráficos do segundo turno das eleições presidenciais, utilizando python e ferramentas de análise de dados, pandas e jupyter.
As criptomoedas mudaram totalmente o modo das pessoas pensarem. Usar robôs para autentificar transações online, custa muito menos comparado com os bancos em relação às taxas...
Uma rede interna sem um firewall é como se fosse uma casa com a porta destrancada. Um indivíduo com más intenções pode se aproveitar para a invadir quando menos esperamos.
Caminhos entre os componentes do computador que são responsáveis pela transferência de informações de controle, endereçamento e dados.
Usando variáveis como MTBF e MTTR, pode-se obter a porcentagem da disponibilidade de um sistema, seja linear ou paralelo.
Tem como objetivo entregar o projeto com velocidade e satisfazer as necessidades dos clientes entregando cada funcionalidade do software separadamente.
Conjunto de dados armazenados temporariamente na placa de vídeo em forma de matriz. Esses dados serão usados para exibir os frames na tela do monitor.