quarta-feira, 19 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.

Processo, sem aplicação de pipeline.

Processo, com aplicação de pipeline.

MIPS (Microprocessor without  Interlocked Pipeline Stages Microprocessador  Sem estágios interligados de Pipeline)


  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


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-Instrucoes

Definição de Instruções de Máquina

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.


Definição de CISC e 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.

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

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
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

Definição de CPU ou UCP (Unidade Central de Processamento)


O processador é responsável pela atividade-fim do sistema, isto é, computar, calcular, processar.
Os processadores atuais são fabricados de modo que, em um único invólucro são inseridos todos os elementos necessários à realização de suas funções.
Um processador tem, por propósito, realizar operações com dados (que denominamos processamento) normalmente numéricos.
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 (Unidade Lógica e Aritmética)

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;

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 (Unidade de controle)

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 figura abaixo mostra o diagrama em bloco simplificado da função
controle.


Registradores utilizados pela 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   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 um segundo define a unidade de media do relógio denominada freqüê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.

quinta-feira, 6 de outubro de 2011

AMD

Laptop
 

Desktop


Servidor

Homenagem a Sreve Jobs 1955-2011

 
Steven Paul Jobs (São Francisco, Califórnia, 24 de fevereiro de 1955 — Palo Alto, Califórnia, 5 de outubro de 2011) foi um inventor, empresário e magnata americano no sector da informática. Notabilizou-se como co-fundador, presidente e director executivo da Apple Inc. Foi também director executivo da empresa de animação por computação gráfica Pixar e accionista individual máximo da The Walt Disney Company.

No final da década de 1970, Jobs, em conjunto com Steve Wozniak e Mike Markkula, entre outros, desenvolveu e comercializou uma das primeiras linhas de computadores pessoais de sucesso, a série Apple II. No começo da década de 1980, ele estava entre os primeiros a perceber o potencial comercial da interface gráfica de usuário guiada pelo mouse, o que levou à criação do Macintosh.

Após perder uma disputa de poder com a mesa diretora em 1984, Jobs demitiu-se da Apple e fundou a NeXT, uma companhia de desenvolvimento de plataformas direcionadas aos mercados de educação superior e administração. A compra da NeXT pela Apple em 1996 levou Jobs de volta à companhia que ele ajudara a fundar, e ele serviu como seu CEO de 1997 a 2011, ano em que anunciou sua renúncia ao cargo, recomendando Tim Cook como sucessor.