Unidade Central De Processamento: Processador

Slides:



Advertisements
Apresentações semelhantes
WebDesign Redes de Computadores Aula 07
Advertisements

Medição do desempenho Computacional
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Arquitetura de Computadores
Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding
Introdução Arquitectura com unidade de controlo uniciclo.
Software Básico Silvio Fernandes
MIPS PIPELINE.
Multithreading e multiprocessamento
Arquitetura de Sistemas Operacionais
Processo de Pipelining (exemplo da lavanderia)
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Arquiteturas Superescalares
Técnicas de Predição de Desvios
Pipeline.
CISC e RISC.
SSC114 Arquitetura de Computadores Pipeline - Predição de desvios
SSC144 Arquitetura de Computadores Introdução
SSC114 Arquitetura de Computadores Pipeline - Desempenho
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
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Prof. Felipe Ferreira de Oliveira
Prof.: Vagner Pinto Borges Prof.: Vagner Pinto Introdução à Arquitetura e Organização.
Pipeline O throughput de um pipeline é determinado pela freqüência com que uma instrução sai do pipeline. Todos os estágios devem estar prontos ao mesmo.
Paralelismo Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; -
UCP Memória Principal Controladores E/S
Arquitetura de computadores
Unidade Central de Processamento UCP
Arquitetura de computadores
Sistemas Operacionais I
Arquitetura de computadores
Organização e Arquitetura de Computadores
Processamento de dados na UCP e memória UCP
Contextualização de Paralelismo em nível de instrução
Arquitetura de Computadores
Unidade Central De Processamento: Processador
ARQUITETURA DE COMPUTADORES II
POLIMIG Curso Técnico em Informática Disciplina: Hardware
Unidade Central De Processamento: Processador
PIC Peripheral Interface Controller
Programação de PIC em C Exposição das funções básicas para
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
SISTEMAS OPERACIONAIS I
Arquiteturas RISC x CISC
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Parte 3 Seção de Dados e Unidade de Controle
Bruno Iran Ferreira Maciel
1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos.
Arquitetura de Computadores Processadores 2 Waldemiro Arruda.
Arquitetura de Computadores
O que devem fazer os Microprocessadores ?
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Processadores.
Profa. Maria Augusta Constante Puget
Elementos de Informática
Arquitetura de Microcomputadores
Funcionamento interno do computador
Arquitetura de computadores
ARQUITETURA DE VON NEUMANN
1 Estruturas de Controle Algoritmos Algoritmos –Série de ações em uma ordem específica As ações executadas Ordem na qual as ações são executadas.
Introdução ao Processamento Vetorial
Pet computação UFPE Arquitetura Von Neumann. pet computação UFPE 1.Definição e tipos de arquitetura Quando falamos em arquitetura temos dois tipos a considerar:
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:

Unidade Central De Processamento: Processador Pipeline

Arquitetura de Von Neumann Execução seqüencial das instruções Uma etapa do ciclo de instrução se inicia após a conclusão da anterior Uma máquina com este tipo de execução é chamada de SISD (Single Instruction Single Data)

Arquitetura de Von Neumann Para aumentar a velocidade de execução de uma instrução, era necessário aumentar o clock do processador e melhorar a tecnologia dos semicondutores As etapas do ciclo de instrução permaneciam sendo realizadas seqüencialmente

Pipeline Sobreposição temporal das etapas da execução de instruções As etapas de um ciclo de instrução vão ocorrer simultaneamente, porém sobre instruções diferentes

Pipeline Cada uma das etapas do ciclo de instrução recebe o nome de estágio Cada estágio é executado por uma unidade do processador: Unidade de Busca de Instrução (BI) Unidade de Decodificação (D) Unidade de Busca de Operandos (BO) Unidade de Execução da Instrução (E) Unidade de Escrita de Resultados (ER)

Pipeline Processador Unidade De BI instrução Unidade De D instrução De BO Unidade De E Unidade De ER instrução instrução

Pipeline Existem no pipeline situações em que a instrução seguinte não pode ser executada no próximo ciclo de clock: conflitos Existem três tipos de conflitos: Conflitos Estruturais Conflitos de Controle Conflitos de Dados

Pipeline Conflito Estrutural Ocorre quando duas instruções estão em etapas diferentes mas estão utilizando o mesmo hardware, por exemplo, a memória No diagrama anterior ocorrem vários conflitos para acessar a memória, por exemplo: No instante de tempo 5, a instrução 5 está sendo buscada na memória junto com os operandos da instrução 3

Conflito

Pipeline Conflito Estrutural Se a memória for uma só, não é possível atender as duas requisições ao mesmo tempo A memória principal (ou cache) possui somente uma porta para atendimento de requisições Nas máquinas modernas existem duas memórias cache: cache de dados e cache de instruções

Pipeline Conflito Estrutural O estágio de busca de instruções irá buscar a instrução 5 na cache de instruções e ao mesmo tempo o estágio de busca de operandos acessa a cache de dados Problema resolvido (para casos em que temos cache separadas)

Pipeline Conflito de Controle Ocorre quando uma instrução que está no pipeline é um desvio condicional Enquanto esta instrução não passar pelo estágio de execução, não se sabe qual é a próxima instrução a ser executada Ocorrerá, então, uma parada no pipeline (bolha) Queda no desempenho do pipeline

Pipeline Conflito de Controle Para entendermos o que acontece no pipeline quando uma instrução de desvio é executada, iremos analisar o trecho de código a seguir Considere que o código está armazenado na memória na ordem ilustrada

Fluxo de execução seqüencial Instr. 1 Instr. 2 Instr. 3 Instr. 4 Instr. 5 Instr. 6 Instr. 7 Instr. 8 Instr. 9 Instr. 10 Instr. 11 cin>>x>>valor; menor = 0; maior = 0; If (valor< x) { maior = menor; menor= valor; cout<< “qualquer coisa”; } else { menor = maior; maior = valor; cin>> k; K++; Instrução de desvio condicional Desvio Fluxo de execução seqüencial

Pipeline Conflito de Controle A técnica mais utilizada para resolver o conflito de controle é a predição ou previsão de desvios A unidade de busca de instrução tenta prever se o desvio será tomado ou não Esta previsão é baseada em uma tabela de histórico de desvios A tabela de histórico é uma memória cache pequena associada ao estágio de busca de instrução do pipeline e tem cerca de 90 % de precisão

Pipeline Conflito de Controle Esta tabela contém todas as instruções de desvio de um programa, informando se houve desvio ou não da última vez que a instrução foi executada Se uma instrução de desvio condicional provocou um desvio da última vez que ela foi executada, da próxima vez que está instrução for executada, a unidade de busca irá considerar que haverá desvio novamente

Fluxo de execução seqüencial Em caso de estruturas de repetição, é considerado que sempre ocorrerá desvio int F, N; F = 1; cin >> N; If (N = = 0) cout << “Fatorial de 0 é 1”; else { F = N; while (N !=1){ F = F * (N-1); N = N –1; } cout << “Fatorial de N é”, F; Desvio Fluxo de execução seqüencial

Pipeline Conflito de Controle Quando a previsão está correta, o pipeline prossegue na velocidade máxima Quando a previsão falha, o pipeline é esvaziado e as instruções corretas são buscadas

Pipeline Conflito de Dados A execução de uma instrução depende do resultado de outra que ainda está no pipeline Exemplo: suponha que tenhamos uma instrução de carga imediatamente seguida por uma instrução de subtração que utilize o resultado da carga

Pipeline Conflito de Dados A operação LDA só escreve o resultado no ACC no 5o estágio do pipeline LDA Op ACC (OP) SUB Op ACC ACC - (OP) A operação SUB precisa do conteúdo do ACC no 4o estágio do pipeline

Pipeline Conflito de Dados Neste caso vai ocorrer uma bolha no pipeline Bolha

Pipeline Conflito de Dados A solução para resolver este conflito é a reordenação das instruções As instruções que não estão conflitando são adiantadas Reordenação LDA Op LDA Op SUB Op GET Op GET Op SUB Op