segunda-feira, 13 de dezembro de 2010

Pipeline

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.

Processo sem pipeline

Clique na imagem para ampliar


Processo com pipeline

Numa máquina com pipeline, os mesmo estágios serão executados emparalelo: assim que um estágio termina, passa o resultado para o próximo estágio e começa a trabalhar na próxima instrução.

Clique na imagem para ampliar


Cálculo do tempo de instruções com pipeline

Clique na imagem para ampliar

Pipeline no processador
Clique na imagem para ampliar

Sintese 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

A operação de uma UCP é determinada pelas instruções que ela executa, conhecidas como instruções de máquina. A coleçã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

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.

CISC
CISC (sigla para Complex Instruction Set Computer, ou, em uma tradução literal, "Computador com um Conjunto Complexo de Instruções"): é 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.

Os processadores baseados na computação de conjunto de instruções complexas contêm uma microprogramação, ou seja, um conjunto de códigos de instruções que são gravados no processador, permitindo-lhe receber as instruções dos programas e executá-las, utilizando as instruções contidas na sua microprogramação. Seria como quebrar estas instruções, já em baixo nível, em diversas instruções mais próximas do hardware (as instruções contidas no microcódigo do processador). Como característica marcante esta arquitetura contém um conjunto grande de instruções, a maioria deles em um elevado grau de complexidade.

RISC
Reduced Instruction Set Computer ou 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. O tipo de microprocessador mais largamente usado em desktops, o x86, é mais CISC do que RISC, embora chips mais novos traduzam instruções x86 baseadas em arquitetura CISC em formas baseadas em arquitetura RISC mais simples, utilizando prioridade de execução.

Os processadores baseados na computação de conjunto de instruções reduzido não tem micro-programação, as instruções são executadas diretamente pelo hardware. Como característica, esta arquitetura, além de não ter microcódigo, tem o conjunto de instruções reduzido, bem como baixo nível de complexidade.


Formato de 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 referese ao(s) dado(s) que será(ão) manipulado(s) na operação, podendo ser constituída por mais de um campo.

Assim, cada uma das instruções é composta pelos seguintes campos:
• um campo (subgrupo de bits) denominado código de operação – C.Op. – cujo valor binário é a identificação (código) da operação a ser realizada, o qual servirá de dado de entrada para o decodificados da área de controle;
• o grupo restante de bits, denominado campo do operando – Op. ou operando, cujo valor binário indica a localização do dado (ou dados) que será(ão) manipulado(s) durante a execução da operação.

Exemplos
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

Clique na imagem para ampliar

Instrução para adição de dois valores (operandos 1 e 2), armazenandose o resultado no local do operando 1: OP1 ← OP1 + OP2
Clique na imagem para ampliar
Utilizandose o acumulador para armazenar inicialmente um dos operandos e depois armazenar o resultado da soma: ACC ← ACC + OP
Clique na imagem para ampliar


Tipos de 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ções
Clique na imagem para ampliar

segunda-feira, 6 de dezembro de 2010

CPU - Central Processing Unit

Definição de CPU ou UCP

 O processador é responsável pela atividadefim 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.
 Os processadores atuais são fabricados de modo que, em um único invólucro (pastilhachip) são inseridos todos os elementos necessários à realização de suas funções.

A função do processador (UCP) consiste resumidamente no seguinte:
  •  Buscar uma instrução na memória (operação de leitura), uma de cada vez;
  •  Interpretar que operação a instrução está explicitando (soma, subtração, movimentação de dados, etc);
  •  Buscar os dados onde estiverem armazenados, para trazêlos até o processador;
  •  Executar efetivamente a operação com o(s) dados(s);
  •  Guardar o resultado (se houver algum) no local definido na instrução;
  •  E finalmente, reiniciar o processo buscando uma nova instrução.



Definição de ALU ou 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.
 Ela é composta por dispositivos lógicos digitais simples, capazes de armazenar bits e efetuar operações simples de lógica booleana.
 Os dados são fornecidos à ULA em registradores e uma vez processados eles são armazenados novamente em registradores.
 Os registradores são interligados a ULA por meio de caminhos de sinal.
 A ULA também pode ativar bits especiais (flags) para indicar o estado de uma operação.
 A Unidade de Controle fornece sinais para controlar a operação da ULA e a transferência de dados entre a ULA e os registradores.


Definição de UC

A UC é o dispositivo mais complexo do processador. Ele possui a lógica necessária para realizar a movimentação de dadose 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 figura abaixo mostra o diagrama em bloco simplificado da função controle.


clique na imagem para aumentar

A Unidade de Controle – UC é 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 registradores;
  •  Gerar sinais de controle internos ao processador para comandar a ULA na execução de uma determinada função;
Registadores utilizados no 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 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 seqüenciamento 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.

Função do 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 umsegundo 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.

 Pode ser entendido com um dispositivo de controle. Em geral o relógio é formado por um cristal de quartzo.

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.
Assim, se um processador funciona com um clock de 25 milhões de vezes por segundo, isto é, 25MHz, e sendo seu período de duração o inverso da freqüência, então cada ciclo será igual a 1/25000000, ou 0,00000004 ou 40 nano segundos (nS).

quinta-feira, 2 de dezembro de 2010

Processadores actuais da AMD

Descktop

Clique na imagem para aumentar

Existem mais variantes:


Server

Clique na imagem para aumentar

Existem mais variantes:



Laptop


Clique na imagem para aumentar


Existem mais variaveis:



Para mais informações consulte o site AMD