quinta-feira, 20 de outubro de 2011

Pipeline

Introdução
Na década de 70 surge uma nova técnica chamada pipeline, onde a execução das instruções é dividida em várias fases consecutivas e o processador é organizado em estágios correspondentes para execução dessas
instruções.

Pipeline é uma técnica de implementação de processadores que permite a sobreposição temporal de diversas fases de execução de instruções.

Em outras palavras, é 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 outra.

Exemplo da lavandaria  


 Divisão da Instrução em Estágios
Tradicionalmente, as instruções do MIPS (Microprocessor without interlocked pipeline stages Microprocessador sem estágios interligados de pipeline) são executadas em até cinco passos:


 1) Busca Instrução na memória
2) Leitura dos registradores e decodificação das instruções
3) Execução de operação ou cálculo de endereço
4) Acesso a operando na memória
5) Escrita do resultado em registrador
.
Pipeline:

Clique para Aumentar

Síntese final
Em suma, o pipeline melhora o desempenho por meio do aumento do throughput das instruções, ou seja, aumento o número de instruções executadas na unidade de tempo, e não pela diminuição do tempo de execução de uma instrução individual.

Speedup ideal é o número de estágios no pipeline.

Throughput (ou taxa de transferência) é a quantidade de dados transferidos de um lugar a outro, ou a quantidade de dados processados em um determinado espaço de tempo.

 Speedup potencial = número de estágios do pipeline.

quarta-feira, 19 de outubro de 2011

CPU - Instruções

Definição de Instruções de Máquina:
O projeto de um processador é condicionado ao conjunto de instruções de máquina as quais se deseja que ele execute. Uma das mais fundamentais análises e decisões do projeto envolve o tamanho e a complexidade do conjunto de instruções.Num processador, quanto menor e mais simples for o conjunto de instruções, mais rápido será o seu ciclo de tempo.

Atualmente há duas tecnologias de projeto de processadores empregadas pelo mercado:
  • Sistema com conjuntos de instruções complexo 
           (Complex Instruction Set Computer ­ CISC);
  • Sistema com conjunto de instruções reduzido 
           (Reduced Instruction Set Computer ­ RISC).

 Definição Complex Instruction Set Computer ­ "CISC":

É a arquitetura que é capaz de executar um conjunto complexo de instruções,sua interpretação era feita através de microinstruções, e com  isso a sua execução é mais lenta.   
     Apesar de um processador CISC ser capaz de executar centenas de instruções diferentes, apenas algumas são usadas freqüentemente.O uso de microprogramação era uma característica que permitia aos projetistas implementar instruções complexas em hardware.
    Outras características dessa arquitetura são a redução de custos globais do sistema, redução dos custos de desenvolvimento de software e da quantidade dos mesmos, diminui a distância entre a linguagem humana e de máquina, aumenta a eficiência dos programas escritos em linguagem de alto nível,melhora a compactação do código facilitando a detecção e correção de erros.

Definição Reduced Instruction Set Computer ­ RISC:

Com a tentativa de  minimizar a distância entre o que a máquina podia realizar e entre o que a programação de alto nível exigia foi criado um outro tipo de processador que privilegiava instruções mais simples, denominado como RISC(Reduced Instrunction Set Computer).
     Essa arquitetura diferentemente da arquitetura CISC,mais antiga, possuía uma redução no número de instruções que era em torno de 50, já que uma máquina CISC continha em torno de 200 a 300 instruções.Outra grande vantagem dessa arquitetura e que a sua execução era feita diretamente no hardware,  o que resultou em uma maior velocidade na execução das instruções.Isso ocorria porque a arquitetura RISC somente fazia uso das instruções CISC que eram utilizadas com mais frequência(instruções simples).
Por outro lado a desvantagem dessa arquitetura era que não havia compatibilidade com os computadores e softwares da época.

 Formato das Instruções:

Cada instrução consiste num grupo de bits que pode ser dividido em duas partes:
•  a primeira parte indica o que é a instrução e como será executada, 
sendo constituída de um só campo;

•  a segunda parte refere­-se ao(s) dado(s) que será(ão) manipulado(s) 
na operação, podendo ser constituída por mais de um campo.

Exemplo de campos :

Instrução para adição de dois valores (operandos 1 e 2), indicando o endereço 
(operando 3) a ser armazenado o resultado: OP3 ← OP1 + OP2


Instrução para adição de dois valores (operandos 1 e 2), armazenando­se o 
resultado no local do operando 1: OP1 ← OP1 + OP2

Utilizando-­se o acumulador para armazenar inicialmente um dos operandos e 
depois armazenar o resultado da soma: ACC   ACC + OP

Tamanho das instruções:
A definição dos códigos de operação do conjunto de instruções de um processador pode ser feita por duas maneiras:
•  instruções com C.Op. de tamanho fixo;
•  instruções com C.Op. de tamanho variável.
Tipos de Instruções:

No caso de implementação de instruções com um C.Op. de tamanho variável, há a possibilidade de redução de espaço ocupado na MP, já que permite a codificação de um número maior de instruções usando uma menor quantidade de bits.
Esse tipo de implementação permite maior versatilidade entre as quantidades de bits do código de operação e as dos campos operandos, criando um conjunto de instruções com maior número de instruções, com quantidades diferentes de operandos, sem aumentar em demasia o tamanho total das instruções.

Podemos, então, classificar as instruções de máquina nos seguintes tipos, dependendo da sua função:
  • Processamento de dados: instruções aritméticas e lógicas;
  •  Armazenamento de dados: instruções de memória;
  •  Movimentação de dados: instruções de E/S;
  •  Controle: instruções de teste e desvio.
Ciclo de Instrução 








quinta-feira, 13 de outubro de 2011

CPU - Central Processing Unit


A Unidade Central de Processamento " UCP" 
A Unidade Central de Processamento " UCP"é a responsável pelo processamento e execução dos programas armazenados na Memória Principal. As funções da UCP são: executar as instruções e controlar as operações no computador.

Unidade Lógica e Aritmética (ULA)
A  ULA  (“ALU”)  é  o  dispositivo  do  processador  que  efetivamente  executa  as  operações  matemáticas  com  os  dados.  Tais  operações podem ser, por exemplo:

  • Soma, subtração, multiplicação e divisão;
  •  Operação lógica AND, OR, XOR;
  •  Deslocamento à direita, deslocamento à esquerda; Entre outros.
Unidade de Controle (UC)
A "UC" é o dispositivo mais complexo do processador.
Ele possui a lógica necessária para realizar a movimentação de dados e instruções “de” e “para” o processador, através dos sinais de controle que  emite  em  instantes  de  tempo  determinados  conforme  uma  programação prévia. A sua função na CPU e controlar a transferência de dados e instruções para dentro e fora da CPU .

Registrador de Instrução – RI (Instruction Register – IR)
Tem a função de armazenar a instrução a ser executada pela UCP. 
No  início  do  ciclo  de  instrução  a  UC  emite  sinais  de  controle sequenciados no tempo para a realização do ciclo de leitura, no qual a  instrução  é  buscada  na  memória  e  armazenada  no  RI,  via  barramento de dados e RDM

Contador de Instrução – CI (Program Counter – PC)
Armazena o endereço da próxima instrução a ser executada, sendo crucial  para  o  processo  de  controle  e  de  sequenciamento  da execução dos programas. Assim que a instrução a ser executada é lida da memória para a UCP, o conteúdo do CI é automaticamente modificado,  sendo  nele  armazenado  o  endereço  da  próxima instrução na sequência

Registrador  de  Dados  da  Memória  –  RDM  (Memory  Buffer Register ­ MBR)
O  RDM  tem  tamanho  (em  bits)  geralmente  igual  ao  do  barramento  de dados,  sendo  que  o  tamanho  deste  último  tem  tamanho  múltiplo  do tamanho da palavra do processador.

Registrador de Endereços da Memória – REM (Memory Address Register ­ MAR)
Armazena  o  endereço  da  memória  onde  a  informação  deve  ser  lida  ou escrita.  No  ciclo  de  busca  de  uma  instrução,  armazena  o  endereço  da memória onde se encontra a instrução a ser executada, fornecido pelo CI. 
Tem tamanho (em bits) igual ao tamanho dos endereços de memória e ao tamanho do barramento de endereços.

 Relógio
O relógio (clock)  é um dispositivo gerador de pulsos cuja duração  é chamada de ciclo.
A quantidade de vezes em que este pulso básico se repete em um segundo  define  a  unidade  de  media  do  relógio  denominada 
frequência, a qual também é utilizada para definir a velocidade da UCP. Servem para:
  •  Sincronizar,  ou  seja,  permitir  que  duas  ou  mais  ações ocorram no mesmo instante de tempo.
  •  Cadenciar  as  ações  realizadas  em  um  determinada  positivo, ou seja, controlar a velocidade com que elas ocorrem.

quinta-feira, 6 de outubro de 2011

Processadores atuais da AMD

Processadores para computadores fixos 
AMD Phenom™ II X3


Modelo -                                         705e
Velocidade do núcleo (MHz) -       2500
Potência -                                       65 W
NÚCLEOS -                                     3 


Modelo -                                         700e
Velocidade do núcleo (MHz) -       2400
Potência -                                       65 W
NÚCLEOS -                                     3 


 Processadores para portáteis 
                                                                     AMD Athlon™ II X2

Modelo -                                         250
Velocidade do núcleo (MHz) -       3000
Potência -                                       65 W
NÚCLEOS -                                     2

Modelo -                                         240e
Velocidade do núcleo (MHz) -       2800
Potência -                                       45 W
NÚCLEOS -                                     2


Processadores para servidores 
                                                               Six-Core AMD Opteron™

Modelo -                                         8431
Velocidade do núcleo (MHz) -       2400
Potência -                                       75 W
NÚCLEOS -                                     6



Modelo -                                         8439 SE
Velocidade do núcleo (MHz) -       2800
Potência -                                       105 W
NÚCLEOS -                                     6