WebDesign Redes de Computadores Aula 07

Slides:



Advertisements
Apresentações semelhantes
Parte 1: Organização de Computadores
Advertisements

CPU: Controle e processamento
WebDesign Redes de Computadores Aula 05
Arquitetura e organização de computadores.
Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding
Bloqueios partilhados
Unidade Lógica e Aritmética Introdução à Ciência da Computação
Exemplo de arquitetura registrador-registrador- MIPS
MIPS PIPELINE.
Processo de Pipelining (exemplo da lavanderia)
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Arquiteturas Superescalares
Pipeline.
Problemas com Entrada e Saída
SSC114 Arquitetura de Computadores Pipeline - Predição de desvios
SSC144 Arquitetura de Computadores Introdução
Rganização de Computadores Melhorias de Desempenho com Pipelines - Parte B - Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de.
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Sincronização de Processos (3) Exercícios - Semáforos
Linguagens de Programação
Autor: Fernando de Mesentier Silva
Melhorando o desempenho com pipeline
Instruções: A Linguagem de Máquina – Aula 01
Processadores – Aula 3 Professor: André Luis Meneses Silva
O Portal do Estudante de Computação
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Prof. Felipe Ferreira de Oliveira
Aula prática 6 Vetores e Matrizes
Prof.: Vagner Pinto Borges Prof.: Vagner Pinto Introdução à Arquitetura e Organização.
Representação de Instruções
Classes de Arquiteturas Tipos de operação Codificação das operações
Paralelismo Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; -
Arquitetura de computadores
Sistema Operacional Processos
Prof: Luiz Carlos Zancanella :: INE / UFSC-SC 1 INE 5201 – Aula 002 Algoritmo Um conjunto de ações, com propriedades especiais e específicas e com algumas.
Sistemas Operacionais I
Organização de um computador
Processamento de dados na UCP e memória UCP
Contextualização de Paralelismo em nível de instrução
Arquitetura de Computadores
SISTEMAS OPERACIONAIS I
Unidade Central De Processamento: Processador
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
ARQUITETURA DE COMPUTADORES II
POLIMIG Curso Técnico em Informática Disciplina: Hardware
SISTEMAS OPERACIONAIS I
Computação L1: Infra-Estrutura Básica
Unidade Central De Processamento: Processador
Unidade Central De Processamento: Processador
Técnico em Informática
Fábio de Oliveira Borges
SISTEMAS OPERACIONAIS I
Entrada e Saída (E/S).
A Linguagem de Máquina – Desvios e Laços
Fundamentos de linguagens de programação
Curso: Sistemas de Informação Tópico 5
Processador 2014/2015 Comunicação de Dados Ricardo Bento 12ºL.
Sistemas de Arquivos- Cap4
Elementos de Informática
REDES DE COMPUTADORES II
Arquitetura de computadores
Diagrama em blocos: Hardware de Computadores
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

WebDesign Redes de Computadores Aula 07 Pipeline WebDesign Redes de Computadores Aula 07

Pipeline Lavagem de roupa sem pipeline Coloca uma carga de roupa suja na lavadora; Quando a lavadora termina o seu trabalho, coloca a roupa molhada na secadora; Quando a secadora termina o seu trabalho, dobra as roupas; Pede a empregada pra guardar a roupa no armário;

Pipeline Lavagem com pipeline Tão logo termine de colocar a primeira carga de roupa na secadora, introduz a segunda carga de roupa na lavadora; Quando a primeira carga de roupa estiver seca, coloque-a sobre a mesa, e ponha a roupa limpa molhada na secadora e, na lavadora, coloque a terceira carga de roupa suja... Após 4 intervalos de tempo, todos os passos do processo de lavagem – chamados estágios do pipeline – estão operando de forma concorrente;

Introdução Pipeline é uma técnica de projeto onde o hardware processa mais de uma instrução de cada vez, sem esperar que uma instrução termine antes de começar a próxima; Permite que os processadores rodem mais rapidamente. Sempre que tivermos recursos separados para executar cada passo (estágio) de uma tarefa, esta tarefa pode ser executada em pipeline.

Pipeline O pipeline não diminui o tempo de execução de uma instrução, cada instrução continua necessitando da mesma quantidade de tempo para ser teminada; O pipeline aumenta o número de instruções executadas na unidade de tempo; O segredo do pipeline é que todos os recursos envolvidos operam em paralelo;

Pipeline Numa máquina sem pipeline, os cinco estágios de uma instrução compreendem: Busca da instrução na memória; Leitura dos registradores enquanto a instrução é decodificada; Execução de uma operação ou cálculo de um endereço; Acesso a um operando na memória; Escrita do resultado em um registrador Numa máquina com pipeline, os mesmos estágios existem, porém são executados em paralelo; Quando um estágio termina, passa o resultado para o próximo e começa a trabalhar outra instrução;

Pipeline 10 unidades de tempo 10 unidades de tempo Tempo de execução de duas instruções = 10 + 10 = 20 unidades de tempo Execução sem pipeline

Pipeline 10 unidades de tempo 10 unidades de tempo Tempo de execução de duas instruções = 10 + 2 = 12 unidades de tempo Execução com pipeline

Os conflitos do pipeline Existem situações no pipeline em que a instrução seguinte não pode ser executada no próximo ciclo de clock. Esses eventos chamam-se conflitos: Conflitos estruturais; Conflitos de controle; Conflitos de dados;

Conflitos estruturais Ocorrem quando o hardware não suporta a combinação de instruções que o pipeline deseja executar no mesmo ciclo; Analogia com a lavagem de roupa: O conflito estrutural poderia ocorrer no caso da lavadora e secadora estarem integradas no mesmo dispositivo.

Conflitos estruturais No caso do MIPS: O conflito estrutural poderia ocorrer se tivéssemos apenas uma memória para armazenar dados e instruções. Conflito estrutural

Conflitos de controle Analogia com a lavagem de roupa: Ocorrem quando há a necessidade de se tomar uma decisão com base no resultado de uma instrução, enquanto outras estão sendo executadas. Analogia com a lavagem de roupa: Suponha que queremos lavar uniformes de futebol. A quantidade de sabão necessária para limpar efetivamente os uniformes dependo do estado de sujeira dos mesmos. Devemos esperar pelo segundo estágio para examinar os uniformes secos e verificar se precisamos ou não os alterar a quantidade de sabão.

Soluções para o conflito de controle Analogia com a lavagem de roupa: Solução 1: Parada Espere até que a primeira carga de roupas esteja seca e repita a operação de lavagem até encontrar a quantidade de sabão adequada. Esta solução funciona, porém é muito lenta.

Conflito de controle No caso do MIPS: Este conflito ocorre nas execução de instruções de desvio condicional (beq ou bne); Se o computador tiver que parar quando da execução de um desvio condicional, ele deve interromper a progressão das instruções pelo pipeline;

Soluções para o conflito de controle No caso do MIPS: Quando estamos executando uma instrução de desvio condicional, não sabemos qual é a próxima instrução a ser executada. Pode ser a instrução seguinte ou podemos desviar para o label. Nesse caso, como ficaria o pipeline? Suponha que tenhamos condições de comparar os registradores, calcular o endereço de desvio e atualizar o PC, durante o segundo estágio do pipeline (estágio de decodificação).

Soluções para o conflito de controle Parada ou bolha: Parada (bolha) de 1 ciclo Como não sabemos qual a próxima instrução a ser executada, devemos esperar um ciclo ( bolha de 1 ciclo)

Soluções para o conflito de controle Analogia com a lavagem de roupa: Solução 2: Predição Faça a previsão de que a quantidade de sabão está adequada e lave a segunda carga de roupas enquanto espera que a primeira carga seque. Esta solução não retarda o pipeline se você estiver certo na sua previsão. Mas se você estiver errado, haverá a necessidade de lavar novamente a carga de roupas.

Soluções para o conflito de controle No caso do MIPS: Em geral, os processadores adotam a predição para tratar os desvios condicionais. Um esquema simples é sempre predizer que os desvios vão falhar. Quando a previsão estiver correta, o pipeline seguirá na velocidade máxima, caso contrário, haverá a necessidade de se atrasar o avanço das instruções por meio do pipeline.

Soluções para o conflito de controle Pipeline quando o desvio não é realizado

Soluções para o conflito de controle $s1 = $s2 Atraso devido ao erro na predição Pipeline quando o desvio é realizado

Conflitos de dados Analogia com a lavagem de roupa: Ocorre quando a execução de uma instrução depende do resultado de outra que ainda está no pipeline. Analogia com a lavagem de roupa: Suponha que estejamos dobrando uma carga de roupas composta quase inteiramente por meias. Neste caso pode acontecer de um pé de meia estar em uma carga de roupa e o seu par correspondente pertencer à segunda carga. Nesta situação, não podemos guardar as meias no armário até que os pares estejam casados.

Conflito de controle No caso do MIPS: Suponhamos que temos que executar as seguintes instruções: Neste caso, o conflito de dados vai fazer com que o progresso das instruções por meio do pipeline seja interrompido. É necessária a inserção de bolhas no pipeline. add $s0, $t0, $t1 sub $t2,$s0,$t3

O novo valor de $s0 só será atualizado aqui! Conflito de dados O novo valor de $s0 só será atualizado aqui! O pipeline parou por 3 ciclos

Solução para o conflito de dados A solução para o conflito de dados vem do fato de não ser preciso esperar o término da instrução para resolver o conflito No exemplo anterior, tão logo a ULA termine de executar a soma, podemos utilizar esse valor para que seja usado como um dos dados da subtração. Esta solução chama-se adiantamento ou bypass

Conflito de dados Implementação do bypass para resolver o conflito de dados

Exercício de fixação 1- Represente o diagrama do pipeline para os seguintes conjuntos de instruções. Resolva os problemas de conflito utilizando a técnica de parada (bolhas), ou seja, atrasando o início das instruções problemáticas. sub $s2, $s1, $s3 b) add $s2, $s3, $s4 and $s4, $s2, $s5 add $s4, $s5, $s6 or $t0, $t1, $s2 add $s5, $s3, $s4 2- Identifique as dependências de dados existentes e resolva os conflitos utilizando o adiantamento. add $s2, $s5, $s4 add $s4, $s2, $s5 add $s3, $s2, $s4