terça-feira, 9 de outubro de 2012

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.  


Exemplo Lavandaria










Arquitecturas_CISC_e_RISC_

Definição de CISC e RISC.


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.

RISC Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instruções, é uma linha de arquitectura 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 micro processadores 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 arquitectura CISC em formas baseadas em arquitectura RISC mais simples, utilizando prioridade de execução.


Principais Características



  • Principais características de mircroprocessadores CISC:
  1. Muitas instruções; 
  2. Instruções são complexas; 
  3. Microcodificação das instruções; 
  4. Alta capacidade de endereçamento para operações de memória;
  5. Número reduzido de registadores.

  • Principais características de mircroprocessadores RISC: 
  1. Conjunto reduzido de instruções; 
  2. Instruções menos complexas; 
  3. Unidade de controle hardwarizada;
  4. Baixa capacidade de endereçamento para operações de memória, com apenas duas instruções básicas, LOAD e STORE; 
  5. Grande número de registador.


Desvantagens da arquitectura RISC.

  • Qualidade do Código

 A performance de um processador RISC depende diretamente do código gerado pelo programador. No caso de um código mal desenvolvido o processador pode gastar um tempo demasiado na execução das instruções, isto faz com que a performance de uma máquina RISC dependa em grande parte da qualidade do código, gerado pelo programador.

  • Expansão do Código

 O fato da arquitetura CISC trabalhar com instrução única com ações complexas e as máquinas RISC trabalharem com instrução simples a transição do código pode acarretar problemas. O termo "expansão do código" refere-se ao aumento de tamanho que se obtém de um programa originalmente compilado para uma máquina CISC, ter sido recompilado para uma máquina RISC. A expansão vai depender da capacidade do programador e a natureza do conjunto de instruções de máquina.

  • Projeto de Sistema

Outra desvantagem que a arquitetura RISC apresenta é o fato de requerer sistema de memória rápida para alimentar suas instruções. Tipicamente sistemas baseados nesta arquitetura costumam apresentar grande quantidade de memória cache interna, conhecida como "first-level cache", o que encarece o projeto. 



Desvantagens da arquitectura CISC.

  • Precocemente gerações de famílias de processadores eram recipiente de um subconjunto em toda versão nova - assim conjuntos de instruções e chip ficaram mais complexos em cada geração de computadores.


  • De forma que tantas instruções quanto possível poderiam ser armazenadas na memória com o menor desperdício de espaço possível por instruções, instruções individuais poderiam ser de quase qualquer duração - estes meios fazem que diferentes instruções levassem quantias diferentes de tempo de clock para executar, reduzindo a velocidade e o desempenho global da máquina.


  • Muitas instruções especializadas frequentemente não são usadas o bastante para justificar a existência delas - aproximadamente 20% das instruções disponíveis são usados em um programa típico.


  • Instruções CISC tipicamente indicam um set codificado como um efeito colateral da instrução. Não só faz set do código de condição levando tempo, mas os programadores têm que se lembrar de examinar os pedaços de código de condição antes de uma instrução subsequente ser mudada.

















segunda-feira, 8 de outubro de 2012


CPU - Instruções 

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

A operação de uma CPU é determinada pelas instruções que ela executa, conhecidas como instruções de máquina. A colecção das diferentes instruções que a CPU é 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:
  1. a primeira parte indica o que é a instrução e como será executada, sendo constituída de um só campo;
  2. 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.

  • 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:
  1. instruções com C.Op. de tamanho fixo;
  2. instruções com C.Op. de tamanho variável.

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. Outra maneira de determinar esse conjunto de instruções é considerar os comandos disponíveis em uma linguagem de alto nível (Basic, Pascal, Fortran, C, etc.), partindose da premissa de que qualquer programa em uma linguagem de alto nível deve ser traduzido para uma linguagem de máquina para que possa ser executado. 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:
  1. Processamento de dados: instruções aritméticas e lógicas;
  2. Armazenamento de dados: instruções de memória;
  3. Movimentação de dados: instruções de E/S;
  4. Controle: instruções de teste e desvio.

Ciclo de Instruções







quinta-feira, 4 de outubro de 2012


AMD (Advanced Micro Devices) é uma empresa norte-americana fabricante de circuitos integrados, especialmente processadores. Seus produtos concorrem diretamente com os processadores fabricados pela Intel. 
A AMD começou a produzir circuitos lógicos em 1969, em 1975 ingressou no mercado de circuitos integrados para memórias RAM. Nesse mesmo ano também foi introduzido no mercado um microprocessador da Intel 8080, usando de engenharia reversa para tal. A AMD também produzia outros tipos de circuitos integrados para uso em minicomputadores de arquiteturas variadas.
Em 2004 e 2005 a AMD foi a primeira a lançar os processadores com 64 bits.
Os seus processadores x86 e x86-64; K5, K6-II, K6-III, Athlon, Duron, Sempron, Athlon 64 (arquitetura de 64 bits), Sempron 64 (também com arquitetura de 64 bits), Opteron (para servidores) e Turion 64 (para notebooks). 







Intel Corporation é uma empresa multinacional de tecnologia dos Estados Unidos, que fabrica circuitos integrados como microprocessadores e outros chipsets.
O primeiro produto da empresa foi o circuito integrado de memória RAM, e a mesma logo se tornou líder neste mercado nos anos 1970. Paralelamente, os engenheiros da Intel Marcian Hoff, Federico Faggin, Stanley Mazor e Masatoshi Shima inventaram o primeiro microprocessador. Originalmente desenvolvido para a companhia japonesa Busicom a fim de substituir o ASIC's da calculadora já produzida pela Busicom, o Intel 4004 foi introduzido no mercado para produção em massa em 15 de Novembro 1971, embora o microprocessador não se transformou no núcleo do negócio de Intel até meados dos anos 1980.



segunda-feira, 1 de outubro de 2012


Definição de CPU ou UCP : 

CPU ou UCP (Unidade Central de Processamento), também chamada de processador ou microprocessador, é o "cérebro" do computador. É no processador que são feitos os cálculos lógicos e aritméticos e o controle de toda a máquina. A CPU é um circuito integrado (chip) com muita importância para o computador. Dentro do processador existem milhões de transístores. Principalmente na década passada, os fabricantes de chips produziram um conjunto enorme de novos chips cada vez mais poderosos em vários modelos. Por tanto, muitos chips diferentes foram produzidos num período de tempo tão curto que é possível dizer muita coisa sobre a idade relativa e a potência de um PC, sabendo apenas que CPU ele usa.

Definição de ALU ou ULA:

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.


Definição de UC:

A Unidade de Controlo (UC) é responsável pela leitura e sequenciação do programa de processamento. É esta unidade que envia ordens de cálculo para a ULA, que indica os valores a processar, e os coloca nos registos para esse efeito. É também a partir da UC que a informação é transferida para as outras partes que constituem o computador, como a memória, os sistemas de I/O, etc..




Função de Relógio:

O relógio é um dispositivo gerador de pulsos cuja a duração é chamada de ciclo. 

A quantidade de vezes em que este pulso básico se repete num segundo, 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 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.


Principais elementos da UC:


  • Ciclo do relógio;
  • Período;
  • Frequência;

A unidade de controle desempenha duas tarefas básicas:

  • Sequenciamento; 
  • Execução;

Os sinais de controle das saídas são:

  1. Sinais de controle internos ao processador
  • Os que causam a movimentação de dados de um registador para outro;
  • Os que activam funções específicas da ULA.

     2.  Sinais de controle para o barramento de controle

  • Sinais de controle para memória;
  • Sinais de controle para os módulos de E/S.




quinta-feira, 20 de setembro de 2012


Evolução dos Processadores






   Resumo da Evolução dos Processadores







Evolução dos Processadores 

História dos Processadores.


A História dos processadores é realmente interessante, movida por uma competição feroz e tecnologia avançada, contudo relativamente curta em idade. Começaremos esta história com um processador de 5 megahertz, o 8086, e iremos até hoje com os processadores de 8 núcleos e mais de 3 GHz. Quanta diferença 30 anos podem fazer. Inventado pela Intel em 1978, a arquitectura x86 evoluiu, não somente tornando-se mais rápida, mas cada vez mais flexível a medida que mais extensões e instruções acompanham cada novo lançamento. Vamos dar uma olhada não somente nos Processadores x86 mais populares em sua história, mas também alguns que você talvez nunca tenha ouvido falar.




Primeira geração de processadores.


O 8088 era na verdade uma versão económica do processador 8086, que tinha sido lançado pela Intel em 78. Quando a IBM estava a desenvolver o seu computador pessoal, foi usado o 8086, mas acabou ser escolhido o 8088 devido ao seu baixo custo. Tanto o 8086 como o 8088 são processadores com 16 bits, considerados bastante avançados naquela época. Um processador com 16 bits é capaz de encaminhar mais memória (até 64 KB de memória de cada vez) e processar instruções muito mais complexas que os processadores de 8 bits usados hoje em dia. 






Segunda geração de processadores.

Processador de 16-bits, 134.000 transistores e capaz de endereçar memória de até 16 MB de RAM. Além do aumento de suporte à memória física, este chip é capaz de trabalhar com memória virtual, permitindo muito mais expansão. De fato, o 286 foi o primeiro "verdadeiro" processador. Ele introduziu o conceito de multi-tarefa, o que permite abrir diversos programas ao mesmo tempo. Esta habilidade não pôde ser beneficiada pelo DOS, mas os futuros sistemas operacionais, como o Windows, puderam usufruir dessa vantagem. Durante aquela década o 286 tornou-se sinônimo dos computadores IBM e 6 anos após o lançamento do 286, a Intel estimava que haviam 15 milhões de PCs equipados com este processador mundo fora.




Terceira geração de processadores.


Se o Am286 foi o primeiro "soco" da luta entre AMD e Intel, o Am386 foi o "gancho" dado em seguida. O Am386 era uma cópia exata do 386 da Intel, mas novamente, com uma frequência maior. Foi também o primeiro processador a vir adornado com o logo de "Compatível com o Microsoft Windows", uma jogada de marketing para dar credibilidade aos processadores "clones" da AMD. A Intel fez de tudo para que a AMD não pudesse vender este chip, alegando que o acordo assinado de licenciamento para processadores x86 era válido somente para as linhas 80286 e antecessores. A AMD ganhou a batalha e, apesar da Intel já ter lançado sua linha 486, o Am386 oferecia uma performance próxima mas por muito menos. O sucesso nas vendas solidificou a AMD como um verdadeiro competidor para a Intel.







Quarta geração de processadores.



Antes do final da grande década de 80, A Intel lançaria mais um processador x86, o 486DX. Foi a primeira CPU a ter embutido um co-processador matemático. Era um processador de 32-bits, continha 1.2 milhões de transistores e podia trabalhar com a mesma quantidade de memória do 386, 4 GB. Foi também o primeiro a ter uma memória cache de 8 KB, o que aumenta sua velocidade. O chip 486 foi a primeiro processador da Intel com upgrade em mente. Agora o soquete da placa-mãe poderia acomodar as várias variantes de 486 que viriam pela frente. O primeiro membro da família 486 foi o i486DX, mas em 1991 seria lançado o 486SX e o 486DX/50. O 486SX era uma versão mais barata e lenta por ter seu co-processador matemático desabilitado de fabrica. O 486DX/50 era uma versão do original na frequência de 50MHz. Em 1992 uma nova onda de processadores 486 aparece.





Quinta geração de processadores.



A partir do lançamento da linha Pentium, o acordo de licensiamento dos processadores x86 entre Intel e AMD já não valia mais. Como resultado, ninguém mais poderia clonar um processador e vendê-lo como se fosse seu. Foi o surgimento do AMD K5, a primeira tentativa da AMD de desenvolver sua própria CPU de nova geração.Tecnicamente superior ao Pentium da Intel, o AMD k5 continha 4.5 milhões de transistores e 16KB de cache, o dobro do encontrado no Pentium. Como era de se esperar de um primeiro produto exclusivamente da casa, alguns problemas de design ficaram evidentes e, infelizmente para a AMD, o K5 sofreu com baixas frequências de clock e consequentemente derrotado pela performance do Pentium. 
Enquanto o AMD K5 acabou tornando-se um fracasso, o AMD K6 deu um grande salto em performance e virtualmente preencheu o espaço que existia entre AMD e Intel. A performance do K6 poderia ser comparada ao novo Pentium II, mas ele ainda se baseava no Socket 7, o que, na verdade, tornava-o uma alternativa ao antigo Pentium e não uma ameaça ao novo em termos de mercado. O K6 continha o pacote de instruções MMX da Intel e um cache L1 de 64k.





Sexta geração de processadores.


O Pentium Pro apresentou uma significativa atualização sobre o Pentium original, trazendo com ele uma nova micro-arquitetura e não somente algumas pequenas melhorias. O chip contêm agora 5.5 milhões de transistores, e o mais importante, o acréscimo do cache L2 de 256KB, que chegaria a 1MB mais tarde. Podia executar três instruçoes por pulso de clock, contra duas do Pentium. Estas e outras optimizaçoes capacitaram este processador a equipar desktops topo de linha e servidores de rede.
Intel causou grandes mudanças no cenário de processadores com o lançamento do Pentium II. Eles tinham o Pentium MMX e o Pentium Pro fortemente no mercado, e desejavam juntar o melhor dos dois em um único chip. O Pentium II é otimizado para aplicações de 32-bits, e continha o pacote de instruções MMX, o qual já era quase um padrão na época. O chip também usa a tecnologia de execução dinâmica do Pentium Pro, que permite ao processador prever as instruções seguintes, ou melhor, ele analisa as instruções e reorganiza-as de maneira que elas sejam executadas o mais rápido possível. 



             







Sétima geração de processadores.

O processador Pentium 4 da Intel foi lançado em novembro de 2000, usando a microarquitetura x86 de sétima geração de Intel, chamada Netburst. Os processadores Pentium 4 pode ser encontrado em três versões de nucleos: Willamette, Northwood ePrescott. 
Foram então apresentados os primeiros Celeron em 1998, com performance e preço bem abaixo dos Pentium II. Para reduzir preços foi retirado o cache L2 do Pentium II. Foi removido também o invólucro plástico que envolvia o Pentium II, deixando o processador no slot 1 com cara de placa periférica.













Oitava geração de processadores.

O processador Itanium 2 foi lançado em 2002, e foi comercializado para servidores corporativos e não para toda a gama de computadores high-end. O primeiro Itanium 2, com o codinome de McKinley, foi desenvolvido em conjunto pela HP e Intel. Ele aliviava muitos dos problemas de desempenho do processador Itanium original, que foram causados por um subsistema de memória ineficiente. McKinley continha 221 milhões de transistores, dos quais 25 milhões foram para a lógica, medido 19,5 milímetros de 21,6 mm (421mm 2)e foi fabricadas em 180 nm, volume de processamento CMOS com seis camadas de metalização de alumínio. Em 2003, a AMD lançou o Opteron, que implementou a sua arquitetura de 64-bit (x86-64). Opteron ganhou rápida aceitação no mercado de servidores corporativos porque forneceu uma atualização fácil de x86. A Intel lançou um novo Itanium 2 membro da família, codinome Madison, em 2003. Madison usava um processo de 130 nm e foi a base de todos os novos processadores Itanium até Montecito ser lançado em junho de 2006.