20/10/11

Pipeline

Introdução

Na  década  de  70  surgiu  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


O que antes demorava 8horas demora agora com a utilização do pipeline cerca de 4horas, basicamente metade.


Divisão da Instrução em Estágios

Em condições ideais:
- O ganho devido ao pipeline é igual ao número de estágios do pipeline, logo, idealmente, um pipeline de 5 estágios é 5 vezes mais rápido que o processador não pipeline.


Pipeline


A imagem seguinte demonstra o funcionamento do processador sem e com Pipeline.




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.

CPU - Instruções

Instruções de Maquina

A operação de uma UCP é determinada pelas instruções que ela executa, conhecidas como instruções de máquina. A colecção das diferentes instruções que a UCP é capaz de executar é conhecida como o conjunto de instruções do processador, o qual pode variar de um fabricante para outro e mesmo de um modelo para outro de processador.
Cada instrução deve conter toda a informação necessária para permitir sua execução pela UCP. Essa informação necessária compreende:
•  Código de operação: especifica a operação a ser realizada
•  Operando fonte: operandos que constituem dados de entrada para a operação
•  Operando de destino: resultado que pode ser produzido pela operação
•  Endereço da próxima instrução: local onde deve ser buscada a instrução seguinte (em alguns casos), após o término da corrente



CISC/RISC


CISC é uma linha de arquitetura de processadores capaz de executar centenas de instruções complexas diferentes sendo, assim, extremamente versátil. Exemplos de processadores CISC são os 386 e os 486 da Intel.
Sistema com conjuntos de instruções complexo
(Complex Instruction Set Computer ­ CISC);

Computador com um Conjunto Reduzido de Instruções (RISC), é uma linha de arquitetura de processadores que favorece um conjunto simples e pequeno de instruções que levam aproximadamente a mesma quantidade de tempo para serem executadas. A maioria dos microprocessadores modernos são RISCs, por exemplo DEC Alpha, SPARC, MIPS, e PowerPC.
Sistema com conjunto de instruções reduzido
(Reduced Instruction Set Computer ­ RISC).

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.

\begin{figure}
\begin{picture}(7,5)(-4,0)
\multiput(0,0)(0,2){3}{\framebox (7,1)...
...0.5){\makebox(0,0)[l]{\scriptsize dois endere\c{c}os}}
\end{picture}\end{figure}



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.
No primeiro caso, todas as instruções têm um C.Op. com a mesma quantidade de bits. A implementação das instruções e sua manipulação durante a execução de um programa são facilitadas, ao passo que o tamanho o C.Op., e da própria instrução tende a aumentar, influenciando no aumento do tamanho ocupado pelo programa na MP.

Tipos de Instruções

Instruções aritméticas são aquelas que fornecem a capacidade computacional para processamento de dados numéricos.
Instruções lógicas (ou booleanas) operam sobre bits de uma palavra, na condição de bits e não de números, oferecendo, portanto, a capacidade de processar qualquer outro tipo de dado (quantitativo ou qualitativo) que o usuário possa desejar empregar, sem o estabelecimento de relações matemáticas ou algébricas entre esses dados.
Instruções de memória são aquelas utilizadas para mover dados entre a memória e os registadores da UCP, uma vez que operações aritméticas e lógicas são executadas sobre dados armazenados nesses registadores.
Instruções de Entrada/Saída são necessárias para transferir programas e dados para a memória (provenientes de fontes externas à UCP) e para transferir resultados de processamentos computacionais de volta para o usuário.
Instruções de teste são aquelas utilizadas para testar o valor de uma palavra de dados ou o estado de uma etapa de processamento computacional.
Instruções de desvio são usadas para desviar a execução do programa para uma nova instrução, muitas vezes em função do resultado de um teste.

Ciclo de Instruções

13/10/11

CPU - Central Processing Unit

Definição e composição de CPU

O processador é responsável pela atividade­fim do sistema, isto é, computar, calcular, processar:

- É responsável pela realização de qualquer operação realizada por um computador.
- Comanda não somente as ações efetuadas internamente, como também em decorrência de interpretação de uma determinada instrução, ele emite sinais de controle para os demais componentes do computador agirem e realizarem alguma tarefa.

ULA/ALU

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 Controlo

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 Unidade de Controle é responsável por:
- controlar a transferência de dados e instruções para dentro e fora da CPU;
- controlar a operação da ULA;
- controlar a execução de instruções;
- gerar sinais de controle externos ao processador para comandar a transferência de dados entre o processador e a memória ou módulos de entrada / saída;
- gerar sinais de controle internos ao processador para mover dados entre registadores;
- gerar sinais de controle internos ao processador para comandar a ULA na execução de uma determinada função;

Registadores da UC

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 seqüenciados 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 seqüência.

Registrador de Dados da Memória – RDM (Memory Buffer Register ­ MBR)

É utilizado pela UCP para a transferência de informações entre esta e o barramento de dados. No ciclo de busca de uma instrução, assume a função de armazenar temporariamente a instrução a ser executada, a qual foi trazida, via barramento de dados, da memória, e na sequência é transferida para o RI.
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.
Principais elementos:
- Um ciclo do relógio (clock clycle) é o intervalo de tempo entre o início de um pulso e o início do seguinte.
- Um período (cycle time ou period) é o intervalo de tempo gasto para ser obter um ciclo do sinal do relógio.
- Usualmente medido em unidades de tempo em nanossegundos.
- Freqüência (frequency ou clock rate) é a quantidade de ciclos por segundo de um relógio. É o inverso do período.
-A unidade de medida utilizada para a freqüência é o Hertz(Hz) onde, 1 Hz = 1 ciclo por segundo.

06/10/11

Processadores atuais da AMD

Dois processadores para Desktop

Processador
AMD Athlon™
AMD Phenom™ II X6
Modelo
3200+
1055T
Operating Mode 32 Bit
Yes
Operating Mode 64 Bit
Yes
Socket
939
AM3
Core Speed (MHz)
2000
2800
System Bus Speed (MHz)
2000
4000
Voltagens
1.35V
1.125-1.40V
Temperaturas Maximas (C)
49-65
62
Wattage
67 W
125 W
AMD Virtualization Technology
No
Yes


Dois processadores para Laptop



Processor
AMD Athlon™ II Neo Processors
AMD Turion™ II Ultra Dual-Core Mobile Processors
Model
K125
M640
OPN Tray
AMK125LAV13GM
TMM640DBO23GQ
OPN PIB
N/A
Operating Mode 32 Bit
Yes
Operating Mode 64 Bit
Yes
Core Count
1
2
Socket
S1
Core Speed (MHz)
1700
2600
System Bus Speed (MHz)
2000
3600
Wattage
12 W
35 W
L2 Cache Size (KB)
1024
2000
Process Technology
45nm SOI
AMD Virtualization Technology
Yes


Dois processadores para Servidores



Processor
AMD Opteron™ 4100 Series Processor

Model
4184
4162 EE

AMD Virtualization Technology
Yes

AMD-P (Power Management)
Yes

OPN Tray
OS4184WLU6DGO
OS4162HJU6DGO

OPN PIB
OS4184WLU6DGOWOF

Floating Point Unit
256-bit FPU

Socket
C32

Revision
D1

Core Count
6

Core Speed (MHz)
2800
1700

System Bus Speed (MT/s)
6400

Voltages
1.3500 V
0.9625 V
Max Temps (C)
55 a 70
55 a 65
Wattage
75 W
32 W

Steve Jobs 1955-2011

“A Apple perdeu um visionário e génio criativo e o mundo perdeu um fantástico ser humano. Aqueles que tiveram a sorte de conhecer e trabalhar com o Steve perderam um querido amigo e um conselheiro inspirador. Steve deixou para trás uma empresa que só ele poderia ter construído e o seu espírito será sempre a base da Apple.”
Steve Jobs foi quem revolucionou e tornou o mundo tecnológico da forma que o é, não só pela sua passagem pela Apple mas por todas as suas contribuições no desenvolvimento de inúmeras ideias, inovações e tecnologias.
Descanse em paz.

04/10/11

Processadores atuais da Intel

Dois processadores para laptop



Número do processador
         i7-2960XM
           i3-330M
Numero de núcleos
4
2
Velocidade do clock
2.70 GHz
2.13 GHz
Cache
8.0 MB
3.0 MB
Tamanho máximo de memória (de acordo com o tipo de memória)
16 GB
8 GB
Conjunto de instruções
64-bit
64-bit
Tipos de memória
DDR3-1066/1333/1600
DDR3-800/1066
Largura de banda máxima da memória
25.6
17.1
Tecnologia Intel® Turbo Boost

TDP maximo
2.0

55W
No

35W



Dois processadores para Desktop


Número do processador
i5-2500T
i3-530
Numero de núcleos
4
2
Velocidade do clock
2.30 GHz
2.93 GHz
Cache
6.0 MB
4.0 MB
Tamanho máximo de memória (de acordo com o tipo de memória)
32 GB
16 GB
Conjunto de instruções
64-bit
64-bit
Tipos de memória
DDR3-1066/1333
DDR3-1066/1333
Largura de banda máxima da memória
21
21
Tecnologia Intel® Turbo Boost

TDP maximo
2.0

45W
No

73W


Dois processadores de Servidor



Número do processador
E6510
X6550
Nº de núcleos / Nº de threads
4 / 8
8 / 16
Velocidade do clock
1.73GHz
2GHz
Cache
12MB
18MB
Velocidade do Bus
4.8 GT/s QPI
6.4 GT/s QPI
TPD máximo
105W
130W
Tecnologia Intel® Turbo Boost

Não

Sim