quinta-feira, 20 de outubro de 2011

Pipeline

Pipeline é um técnica de implementação nos processadores que permite a execução sobreposta de várias instruções ao mesmo tempo. Através disso, o processador consegue executar os conjuntos de instruções de forma muito mais rápida sobrepondo-os assim que acabem de executar.

Tem aqui o exemplo de um lavandaria sem aplicação de pipeline:


 Agora com pipeline:


O tempo por cada instrução com pipeline pode ser calculado através da expressão:





Exemplo com e sem pipeline:




Com a pipeline é possível aumentar o rendimento de execução, ou seja, conseguimos sobrepor as instruções de modo a ter uma execução mais rápida. 

Instruções de um CPU

Instruções e conjunto de instruções

A operação de um CPU é determinada pelas instruções que ela executa, ou seja, as instruções da máquina. Onde tem uma coleção das diferentes instruções que o CPU é capaz de executar, isto é um 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 a sua execução pelo CPU. 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
*Os operandos podem estar situados na memória principal,  registadores do CPU, ou ainda, num dispositivo de E/S.



CISC

A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com isso, mais lenta fica a execução delas. 


RISC

A RISC (em inglês: Reduced Instruction Set Computing, Computador com um Conjunto Reduzido de Instruções) usada em processadores PowerPC (da Apple, Motorola e IBM) e SPARC (SUN); suporta menos instruções, e com isso executa com mais rapidez o conjunto de instruções que são combinadas.


Formato de Instruções

As instruções podem dividir-se em duas partes:

  1. Indica qual a instrução ou as instruções e como vai ou vão ser executada(s), sendo constituída por um campo;
  2. São os dados que vão ser processados, pode ser constituido por mais do que um campo.
A definição dos códigos de operação do conjunto de instruções de um  processador pode ser feita de duas maneiras:
  1. Instruções com código de operação de tamanho fixo - A execução e manipulação é mais facilitada, tendo todas as instruções o mesmo número de bits;
  2. Instruções com código de operação de tamanho variável - Mais versatilidade porque permite a codificação de um maior número de instruções usando um menor número de bits.

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, ou seja, um código da operação a ser realizada, no qual servirá de dado de entrada para o descodificados da área de controlo;
  • o grupo restante de bits, denominado campo do operando – Op. –, ou apenas 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


 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


Existem diversos tipos de instruções, que podem ser classificadas como instruções de:
  • 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;
  • Controlo - instruções de teste e desvio. 


Ciclo de Instruções




quinta-feira, 13 de outubro de 2011

CPU - Central Processing Unit

  O CPU (Central Processing Unit) ou UCP(Unidade Central de Processamento) é um chip, capaz de efetuar várias operações como cálculos, processamento, obter endereços de memória, etc.


Ele é composto por diversos componentes tais como:


  • ALU (ou "ULA", Unidade Aritmética e Lógica)
  • UC (Unidade de Controlo)
  • Descodificador de Instrução
  • Registador de Instrução
  • Contador de Instrução
  • Relógio
  • Registador de Endereços de Memória
  • Registador de Dados de Memória









    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.
               
              A ALU é a responsável por todos os cálculos efectuados no processador. Ou seja, recebe dois valores que podem ser de 16, 32 ou 64 bits (dependendo do tamanho da expressão (palavra, número, etc.) e do tipo de processador) e faz operações que podem ser aritméticas ou lógicas.

              As operações da ALU podem utilizar dois valores (operações aritméticas, operações lógicas),
         por isso possui 2 entradas de dados. Ambas as entradas se conectam à saída pelo barramento interno de dados:




        A UC (Unidade de Controlo) é a unidade responsável por controlar tudo o que se passa no processador. É ela que controla a transmissão de dados do processador, a operação da ALU e a execução de instruções, entre outras funcionalidades do CPU.
 
       A UC utiliza vários registadores, nos quais são:



  • Descodificador de Instrução - Descodifica e "diz" à UC qual a instrução a fazer.



  • Registador de Instrução - Guarda a instrução que será ou está a ser executada.



  • Contador de Instrução - Guarda o endereço da próxima instrução a ser executada.



  • Registador de Dados de memória - Vai buscar e armazena temporariamente a instrução a ser executada.



  • Registador de Endereços de memória - Armazena o endereço da memória onde se encontra a instrução a ser executada.





  • O relógio ou "clock" é responsável por sincronizar e cadenciar o processador, ou seja, permitir que duas ou mais ações ocorram ao mesmo tempo e controlar a velocidade a que elas são realizadas gerando um pulso a cada x tempo, chamado isso de frequência que é normalmente medida em Hz (Hertz). Isto é, 1Hz significa 1 pulso por segundo.

    quinta-feira, 6 de outubro de 2011

    Processadores AMD

    A AMD é a grande rival da Intel que também tem progredido ao longo dos anos com novos processadores, aqui ficam os novos produtos da empresa:



    Para portáteis:
     


    Para desktops:

     
     
    Para servidor: