ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8



Documentos relacionados
Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

Organização e Arquitetura de Computadores I. de Computadores

RISC X CISC - Pipeline

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

ARQUITETURA DE COMPUTADORES

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

Informática I. Aula 5. Aula 5-13/05/2006 1

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

Organização e Arquitetura de Computadores I

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007


Microarquiteturas Avançadas

Arquitetura de processadores: RISC e CISC

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Organização de Computadores

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Arquitetura de Computadores I

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

SIS17 - Arquitetura de Computadores

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

Sistema de Computação

Arquitetura e Organização de Computadores

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD.

Memória Cache. Prof. Leonardo Barreto Campos 1

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Sistemas Computacionais II Professor Frederico Sauer

RISC - Reduced Instruction Set Computer

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

Sistemas Operacionais

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

ARQUITETURA DE COMPUTADORES

Introdução a Informática. Prof.: Roberto Franciscatto

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Sistemas Operacionais. Prof. André Y. Kusumoto

Máquinas Multiníveis

Arquitetura de Computadores. Ivan Saraiva Silva

Aula 26: Arquiteturas RISC vs. CISC

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Introdução ao Processamento Paralelo

Marcos da Arquitetura de Computadores (1)

Unidade 13: Paralelismo:

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Processadores clock, bits, memória cachê e múltiplos núcleos

TRABALHO COM GRANDES MONTAGENS

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Memória cache. Prof. Francisco Adelton

Manual SAGe Versão 1.2 (a partir da versão )

Capítulo 1 Introdução

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

BARRAMENTO DO SISTEMA

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

AULA 06 CRIAÇÃO DE USUÁRIOS

Bits internos e bits externos. Barramentos. Processadores Atuais. Conceitos Básicos Microprocessadores. Sumário. Introdução.

Admistração de Redes de Computadores (ARC)

Capítulo 8 Arquitetura de Computadores Paralelos

O que é Arquitetura de Computadores?

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

Como instalar uma impressora?

Informática I. Aula 4. Aula 4-11/09/2006 1

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

Engenharia de Software I

Níveis de RAID - RAID 0

1. CAPÍTULO COMPUTADORES

Roteamento e Comutação

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

Sistemas Operacionais

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

O que é RAID? Tipos de RAID:

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 2 PROF. MARCELO LUIZ SILVA (R E D)

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

3. Arquitetura Básica do Computador

Sistemas Operacionais Processos e Threads

Memórias Prof. Galvez Gonçalves

FUNDAMENTOS DE HARDWARE CD-ROM. Professor Carlos Muniz

Processadores. Guilherme Pontes

Multicomputadores. Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação CECOMP

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

Sistema Operacional Correção - Exercício de Revisão

ULA Sinais de Controle enviados pela UC

Técnicas de Manutenção de Computadores

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Computadores de Programação (MAB353)

Evolução das CPUs: Dual e Quad Core

Protocolo em Rampa Manual de Referência Rápida

ROM e RAM. Memórias 23/11/2015

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

AULA 5 Sistemas Operacionais

Sistemas Distribuídos

Transcrição:

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Índice 1. A Organização do Computador - Continuação...3 1.1. Processadores - II... 3 1.1.1. Princípios de projeto para computadores modernos... 3 1.1.2. Paralelismo... 4 2

1. A ORGANIZAÇÃO DO COMPUTADOR - CONTINUAÇÃO 1.1. PROCESSADORES - II 1.1.1. Princípios de projeto para computadores modernos Os computadores modernos compartilham uma série de características de design que visam maximizar o seu desempenho. Não importa se se trata de um computador de mão ou um computador para fins científicos; sempre se deseja a maior velocidade de processamento possível. É claro que estas linhas se aplicam ao estado atual da tecnologia. Atualmente estamos sujeitos a certas limitações, como velocidade de clock, quantidade de transistores que podem ser embutidos em uma pastilha de silício e outras. Se o cenário tecnológico atual se alterar, talvez algum dos pontos a seguir não seja mais aplicado. Todas as instruções são executadas diretamente pelo hardware No passado houve uma tendência de design de computadores que adicionava uma camada de software entre o hardware e o conjunto de instruções, providenciando um novo nível de interpretação. Esse tipo de implementação é chamado de microcódigo e oferecia algumas vantagens como a possibilidade de incluir ou alterar instruções sem alterar o hardware. Apesar de prover mais flexibilidade, esse tipo de design não é considerado uma boa prática. O nível adicional de tradução acarreta uma perda de desempenho, que não compensa as novas instruções que possam ser adicionadas. Em resumo, a recomendação é que as instruções correspondam diretamente a elementos de hardware, sem que haja níveis adicionais de tradução. Maximize a taxa de execução de instruções Um dos caminhos para se maximizar a performance do computador é maximizar a taxa de execuções de instruções por segundo. Existem vários meios para se conseguir isso. Um é simplesmente aumentar a velocidade de clock do computador. Outra forma é fazer com que o processador realize atividades em paralelo. Se um computador puder realizar duas instruções em paralelo, ele terá teoricamente um desempenho duas vezes superior a um computador sem paralelismo. Neste design, um cuidado especial deve ser tomado para que não seja alterada a ordem de execução do programa. As instruções devem ser fáceis de decodificar Conforme visto anteriormente, o ciclo de execução de instruções tem impacto direto na velocidade de processamento do computador como um todo. Se o tempo de tradução de uma instrução for demorado, o tempo de execução como um todo será degradado. 3

Por esse motivo, uma instrução não deve ter muitas opções de execução ou formatos alternativos. Se a instrução tiver poucos formatos, o tempo de identificação da instrução será reduzido e, consequentemente, o tempo de processamento será otimizado. Somente load e store devem referenciar a memória O acesso à memória principal é uma operação demorada, sob a ótica da velocidade do processador, é claro. Se muitas instruções tiverem acesso direto à memória principal, o tempo de execução das instruções pode se tornar imprevisível. Por esse motivo, é recomendado que apenas as instruções load (leitura) e store (gravação) tenham acesso à memória. Providencie bastantes registradores Se o processador não tiver um registrador para armazenar um valor resultante, ele terá que transferir esse valor para a memória principal. Conforme já vimos, a transferência de dados entre o processador e a memória principal é um processo mais lento que a movimentação de dados dentro do processador. Se o processador não tiver registradores suficientes, o tempo de processamento será degradado. 1.1.2. Paralelismo Conforme vimos, um dos melhores recursos para otimizar a velocidade de processamento de um computador é a capacidade de executar várias atividades ao mesmo tempo. Existem várias formas de implementar paralelismo, no nível de instrução e no nível de processador. A seguir descreveremos cinco formas de paralelismo. Pipelining e arquiteturas superescalares são exemplos de paralelismo no nível de instrução. Computadores matriciais, multiprocessadores e multicomputadores são exemplos de paralelismo no nível de processador. Pipelining O processo de decodificação e execução de instruções, como foi visto anteriormente, é um elemento crítico no desempenho do computador. Se o processo de identificação e execução de uma instrução puder ser modularizado, haverá um ganho de performance, pois, enquanto uma instrução estiver em execução, os passos iniciais da próxima instrução poderão ser executados. Na figura a seguir temos o exemplo de um pipeline de cinco estágios. Cada instrução passará por cinco módulos antes de ser concluída. Observe que, quando a instrução 1 for concluída, as instruções 2, 3, 4 e 5 estarão em execução. 4

Figura 19. Exemplo de um pipeline de cinco estágios Arquiteturas superescalares O princípio da arquitetura superescalar é que nem todas as instruções demoram o mesmo tempo para serem executadas. Ao executar certas instruções, como as que leem ou gravam na memória principal, o tempo de execução é maior que em instruções que acessem apenas dados dentro do processador (armazenados em registradores). Se o módulo de execução pudesse executar várias tarefas em paralelo, o tempo de execução das instruções mais lentas seria compensado pela execução de outras instruções. Na figura a seguir temos o exemplo de uma arquitetura superescalar com duas ALU, uma unidade para tratar operações de ponto flutuante e um módulo para ler, e outra para gravar na memória principal. Novamente deve ser tomado cuidado neste tipo de design para que as instruções sejam executadas na ordem correta. 5

Figura 20. Exemplo de arquitetura superescalar. Esses dois tipos de paralelismo são implementados dentro do processador, ou seja, não dependem de mais de um processador. Os designs seguintes dependem de vários processadores. Sempre existe demanda por processadores mais rápidos, mas em muitos casos é mais simples e barato dispor de vários processadores que trabalhem harmonicamente do que tentar conseguir um único processador mais rápido. Esse tipo de conclusão já chegou até os computadores de uso comercial e doméstico, com as configurações com processadores de dois, três, quatro ou mais núcleos. Computadores matriciais Um computador matricial é aquele com um grande número de processadores que executam o mesmo conjunto de instruções em conjuntos diferentes de dados. Esse tipo de arranjo encontra uso em aplicações científicas, em que um grande conjunto de dados deve ser submetido a um mesmo conjunto de fórmulas. Ele não é comum em computadores comerciais, mas muitos supercomputadores (especialmente os fabricados pela Cray Computing) usam um tipo especial de arranjo desse tipo, chamado processador vetorial. 6