quinta-feira, 11 de outubro de 2012

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








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

Os mesmos princípios podem ser aplicados aos processadores que executam suas tarefas em pipeline.


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:


  • Busca Instrução na memória
  •  Leitura dos registradores e decodificação das instruções
  •  Execução de operação ou cálculo de endereço
  • Acesso a operando na memória
  •  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.









Arquiteturas CISC e RISC

Arquitetura CISC


  • Microprocessadores  CISC  (Complex  Instruction  Set  Computer)   são fáceis de programar e permitem um uso eficiente de memória.


  • A  pouco  tempo  atrás  as  máquinas  eram  programadas  única  e exclusivamente em linguagm Assembly  (linguagem de máquina), e as memórias eram lentas e caras, o que justificou a filosofia CISC.


  • Assim,  projectos  de  microprocessadores  clássicos,  tais  como    o  Intel 80x86 e o Motorola 68K series, seguiram a filosofia CISC.

  • Mudanças  recentes  na tecnologia  de  software  e  hardware forçou  uma reavaliação em termos de arquitectura.




Características de Processadores CISC


  • Possuem  uma  lógica  de  decodificação  de  instrução  complexa, originada  pela  necessidade  de  suportar  modos  de  endereçamento múltiplos.


  • Possuem um número pequeno de  registradores de propósito geral, devido  ao  fato  de  as  instruções  poderem  operar  directamente  na memória, além de uma quantidade limitada de espaço em chip não dedicada.


Desvantagens de CISC



  • Como as novas gerações de uma família de processador geralmente envolve  a  geração  antecessora,  tanto  o  conjunto  de  instruções quanto o hardware do novo chip tornam-­se mais complexos. 


  • Instruções  diferentes  levam  quantidades  diferentes  de  período  de relógio para executar, o que pode tornar a máquina excessivamente lenta.




Arquitetura RISC




  • Execução  em  um  ciclo  de  clock.  Esta  característica  é  resultado  da optimização  de  cada  instrução,  aliada  a  uma  técnica  chamada  de Pipelining;


  • Pepelining é uma técnica que permite execução simultânea de partes, ou estágios, de instruções, tornando o processo mais eficiente;


  • Grande número de registradores para evitar uma quantidade elevada de interacções com a memória.




Características de Processadores RISC



  • Poucas instruções, instruções simples;


  • Instruções  rápidas,  com  um  throughput  próximo  de  1  (uma  instrução executada por ciclo de relógio);


  • Todas as instruções do mesmo tamanho  (com pouca variação de formato);


  • Número razoável de registradores de propósito geral;


  • Acesso à memória somente com LOAD e STORE;


  • Uso de instruções compare­and­branch;


  • Operações  lógicas  e  aritméticas  entre  registradores  (instruções  com  três endereços de registrador).




Desvantagens da Arquitetura RISC


  • É fato que máquinas RISC são mais baratas e mais rápidas do que as CISC, o que pode nos induzir a pensar que elas são as máquinas do futuro.


  • Entretanto, o  custo de um hardware mais  simples é a necessidade de um software mais complexo. 















CPU - Instruções


Definição de Instruções da 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.





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 aos dados que serão manipulados 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.


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



Um computador deve ter um conjunto de instruções que permita ao usuário formular qualquer tarefa de processamento de dados. 

Portanto, o conjunto de instruções da máquina deve ser suficiente para expressar qualquer comando de uma linguagem de alto nível.



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



~




Ciclo de Instrução sem Interrupção











Ciclo de Busca













segunda-feira, 8 de outubro de 2012

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. 


Serve para:

  • Sincronizar,  ou  seja,  permitir  que  duas  ou  mais  acções ocorram no mesmo instante de tempo.
  • Cadenciar as  acçõ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.

UC


Unidade de Controlo  (UC) é responsável por gerar todos os sinais que controlam as operações no exterior do CPU, e ainda por dar todas as instruções para o correto funcionamento interno do CPU; a apoiá-lo terá a colaboração de uma outra estrutura (o descodificador de instruções).





A unidade de controlo executa três acções básicas intrínsecas e pré-programadas pelo próprio fabricante do processador, são elas: busca, descodificação e execução.

Assim sendo, todo processador, ao iniciar sua operação, realiza uma operação cíclica, tendo como base essas três ações. Dependendo do tipo de microprocessador, a unidade de controlo pode se ser fixa ou programável.

ALU ou ULA


A unidade lógica e aritmética  (ULA) é um circuito digital que realiza operações lógicas e aritméticas. A ULA é uma peça fundamental da unidade central de processamento  (CPU), e até dos mais simples microprocessadores.





O matemático John von Neumann propôs o conceito de ULA em 1945, quando escreveu um relatório sobre os fundamentos para um novo computador chamado EDVAC.

A ULA executa as principais operações lógicas e aritméticas do computador. Ela soma, subtrai, divide, determina se um número é positivo ou negativo ou se é zero. Além de executar funções aritméticas, uma ULA deve ser capaz de determinar se uma quantidade é menor ou maior que outra e quando quantidades são iguais. A ULA pode executar funções lógicas com letras e com números.

quinta-feira, 4 de outubro de 2012

CPU ou UCP



A unidade central de processamento ou CPU é a parte de um sistema computacional, que realiza as instruções de um programa de computador, para executar a aritmética básica, lógica. O CPU tem papel parecido ao cérebro no computador. O termo vem sendo usado desde o início de 1960. A forma, desenho e implementação mudaram drasticamente desde os primeiros exemplos, porém o seu funcionamento fundamental permanece o mesmo.





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 a operação instrução está explicitando  (soma, subtracção, movimentação de dados).
  • Buscar os dados onde estiverem armazenados, para trazê-­los até ao processador;
  • Executar efectivamente a operação com os dados;
  • Guardar  o  resultado  (se  houver  algum)   no  local  definido  na instrução;
  • E finalmente, reiniciar o processo buscando uma nova instrução.