Este Blog representa um trabalho solicitado pelo professor Matuzalém Guimarães como requisito parcial de avaliação da disciplina Informática Aplicada a Educação, do curso de Licenciatura em Computação do Instituto Federal da Bahia (IFBA).
Realizado pelos acadêmicos: Clebison Alves, Ítala Aguiar e José Ailton de Santana.

terça-feira, 28 de setembro de 2010

PROCESSADOR

A Unidade Central de Processamento, do Inglês Central Process Unit (CPU), também conhecida como Processador  é uma das  principais partes de um computador. Ele é responsável pelos cálculos, execução de tarefas e processamento de dados. A velocidade com que o computador executa as tarefas ou processa dados está diretamente ligada à velocidade do processador. Logo, a CPU corresponde ao elemento central de coordenação e de processamento de todo o sistema computacional.



EVOLUÇÃO DOS PROCESSADORES

O primeiro processador comercial foi lançado pela Intel em 1971, o Intel4004; desde então, os processadores tiveram um significativo processo evolutivo. o Intel4004 possuía 4 bits e pouco mais de 2000 transistores. A invenção do transistor, considerada a invenção do século, anunciava o surgimento de uma nova era da eletrônica.
Devido a possibilidade de miniaturização, um dos aspectos mais significativos na evolução dos processadores foi a criação dos transistores, cujo primeiro media aproximadamente 1,5cm, podendo ser reduzidos a níveis quase microscópicos, chegando atualmente a medir cerca de 45 manômetros . A redução no tamanho dos substitutos das válvulas (os transistores) permitiu a criação do circuito integrado, a criação do michochip, bem como o aumento da quantidade de transistores nos processadores fazendo com que estes passassem a operar em frequências cada vez mais altas.

ARQUITETURA DE VON NEUMANN

Tem por característica principal a possibilidade de armazenamento de dados e programas no mesmo espaço da memória, ou seja, o armazenamento de arquivos na máquina; o que possibilita a manipulação de tais programas. Os componentes que a máquina necessita para o funcionamento da arquitetura de Von Neumann são: memória, unidade aritmética lógica (ULA), registradores, unidade central de processamento (CPU), unidade de controle e dados de entrada (UC). 





CONCEITOS BÁSICOS: CLOCK E HERTZ



As Unidades Centrais de Processamento (CPU) são, costumeiramente, classificadas em termos de número de clocksinal utilizado para coordenar as ações de dois ou mais circuitos eletrônicos; e medidas, normalmente, em mega-hertz ou giga-hertz. 
   Clock é um pequeno cristal de quartzo que fica na placa mãe, assim como a tradução de seu nome que em inglês significa relógio, tem por função marcar o tempo. Para que o computador funcione bem é preciso que tudo esteja em sincronia. Dessa forma, o clock funciona como um sinal de trânsito; informando, a cada novo pulso se os dispositivos devem parar ou continuar a realizar  operações.

 Hertz, por sua vez, corresponde a unidadde de frequência que expressa em termos de ciclos (rotações) por segundo a frequência de um evento periódico: 1 cilco corresponde a 1 Hertz (1Hz). Dessa forma, o Clock recebe e traduz os sinais que coordenam as ações dos circuitos e o Hertz informa a frequência das rotações em números, correspondendo assim, em linhas gerais, a unidade de medica do Clock








ARQUITETURA EXTERNA DE UM PROCESSADOR

Um computador tem como componentes principais: processador, memória e dispositivos de entrada e saída (E/S). Para que tais componentes possam estabelecer comunicação faz-se necessário uma estrutura ou caminho de conexão entre os componentes de um computador, chamados de barramento.
Os barramentos são, basicamente, constituídos por linhas (feitas de metal e dispostas paralelamente na placa) de comunicação com capacidade para transmitir sinais binários (0 ou 1). Sendo que, normalmente, possuem entre 50 e 100 linhas distintas, que subdividem-se em 3 grupos funcionais, segundo as funções específicas de interconexão, a saber: dados, endereço e controle.
 

Barramento de dados: Tem por função transferir dados entre os módulos do sistema. Contém, normalmente 32 linhas (largura de banda), cada qual transmitindo 1 bit por vez. Logo, a quantidade de bits transmitidos é determina pela quantidade de linhas que o barramento de dados possui; o que influencia diretamente o desempenho do sistema.

Barramento de endereço: Sua função é determinar origem e destino dos dados transferidos pelo barramento de dados. Além dessa função, as linhas de endereço são, comumente utilizadas para endereçar as portas do módulo de E/S. É importante destacar que a largura do barramento de endereço determina a capacidade máxima da memória.
Barramento de controle: É um tipo de barramento compartilhado que controla o acesso e a utilização das linhas de dados e de endereços, transmitem sinais de comando e informações de temporização (clock).













ARQUITETURA INTERNA DE UM PROCESSADOR
 ULA - Unidade Lógica Aritmética, do inglêns Arithmetic Logic Unit (ALU), é a unidade do processador que, bem como sugere o nome, executa as operações lógicas (com letras ou números) e aritméticas. Ela funciona como uma calculadora eletrônica: somando, subtraindo, dividindo, determinando se um número é positivo, negativo ou zero. Além de determinar se uma quantidade é maior que outra, ou mesmo quando as quantidades são iguais. Ou seja, executa funções aritméticas comuns e toma decisões lógicas, resolve sintaxes lógicas em uma programação. UC - Unidade de Controle, do inglês control unit (CU), tem por função controlar e gerenciar a sincronização das transferências de dados e instruções que são manipuladas pelo processador. Ela esta dividida basicamente em três partes : A UC, Registrador de instrução e decodificador. Compreende os seguintes processos:
1-Armazena uma instrução no registrador de instrução,que vem do do barramento de dados internos.
2-Essa instrução é transmitida para o decodificador ,que decodifica e transfere para unidade de controle.
3-Na unidade de controle a instrução decodificada gera todo os sinais de controle interno e externos para a execução da instrução.   Registradores Internos - Funcionam como memórias temporárias e possuem uma capacidade de armazenamento bem reduzida, na ordem de bits. Existem registradores de 8,16,32 e 64 bits. Sendo que, quando diz-se que um processador tem 32 bits, significa que seus registradores internos possuem capacidade de manipular dados de até 32 bits. Os processadores possuem diferentes registradores, alguns para armazenamentos de dados específicos, como os registradores de instruções, e outros para armazenamentos de dados gerais.

LEI DE MOORE


A Lei de Moore prevê que o poder, ou seja, a potência dos processadores dobre a cada 18 meses. Ela foi elaborada por Gordon Moore, um dos fundadores da Intel, em 1965. Essa lei ainda serve como parâmetro para a área de pesquisa e desenvolvimento da indústria de semicondutores.

Alguns pesquisadores afirmam que a Lei de Moore chegou ao fim devido a criação de tecnologia de processadores emergentes mais rápidas e sofisticadas que economizam mais energia do que os processadores que se encaixam nessa lei. Apesar disso, existem autores que defendem que os processadores possam dobrar de potência a cada 18 meses ou em até menos tempo. Defendem assim que essa marca evolutiva dos processadores pode durar por um longo período: pelos próximos 50 ou 80 anos.

PENTIUM MMX

  O Pentium mmx, último integrante da família Pentium 1, foi lançado com a instrução de aumentar o desempenho do processador em aplicativos multimídia. Sua chegada ao mercado ocorreu na carroceria de uma grande campanha publicitária que divulgava as novas instruções MMX como a maior invenção da humanidade depois da batata frita.
  O Pentium mmx, último integrante da família Pentium 1, foi lançado com a instrução de aumentar o desempenho do processador em aplicativos multimídia. Sua chegada ao mercado ocorreu na carroceria de uma grande campanha publicitária que divulgava as novas instruções MMX como a maior invenção da humanidade depois da batata frita.
  A Intel adicionou ao Pentium, 57 novas instruções para a execução que a combinação de até 4 instruções simples em uma única complexa, de forma a serem processadas em um único ciclo de clock; chamados de instruções MMX (multimedia extensions). A intenção da Intel era que tais instruções pudessem multiplicar o desempenho do processador em aplicativos multimídia.
  As instruções MMX ainda estão disponíveis nos processadores atuais, embora não sejam muito utilizadas devido ao fato de que elas ajudam apenas em operações que envolvam números inteiros; para aproveitá-las, os devem ser aplicativos otimizados manualmente pelos programadores, o que decorre em empreender tempo e esforço demasiados para otimizar os programas, adequando-os a cada conjunto de instruções existentes e, ainda assim, elas não conseguem desenvolver o desempenho esperado e adequado.
  A Intel, por sua vez, aumentou o cache L1 do processador MMX de 16 para 32 kb, fazendo com que este obtivesse um maior desempenho, mesmo em aplicativos sem otimização. O MMX foi, posteriormente, lançado em versões de 200 e 233 MHz, as quais apresentavam compatibilidade com a grande maioria das placas soquete 7 existentes. 
O Pentium MMX foi o primeiro processador Intel a usar um encapsulamento plástico com um dissipador metálico. Tal mudança foi bastante benéfica, devido ao dissipador metálico seer mais eficiente na dissipação do calor do que a cerâmica (utilizada nos encapsulamentos anteriores), o que melhora a eficiência do cooler.

COMO FUNCIONA A TECNOLOGIA MMX





 Você já deve ter ouvido falar na nova tecnologia MMX e um monte de baboseiras a respeito de como os novos processadores estão mais rápidos e incorporam características antes exclusivas da placa de vídeo, de som e modem e como a multimídia será incrivelmente beneficiada.
  Mas não é bem assim que a banda toca. A tecnologia MMX é a inclusão de 57 novas instruções ao conjunto de instruções do processador, e aumentar o seu conjunto de instruções não faz a mágica instantânea de aumentar sua velocidade de processamento. Somente se beneficiarão das vantagens desta tecnologia (entre estas vantagens, fazer mais em menos tempo) programas que utilizarem instruções MMX. Portanto, um programa não-MMX não se beneficiará de um processador MMX.
  Mais ou menos. A Intel aumentou o tamanho da memória cache L1 (cache interno) do Pentium de 16 KB para 32 KB no Pentium MMX. Só isto faz com que o Pentium MMX seja mais rápido que um Pentium não-MMX (Pentium Clássico) sob a mesma freqüência de operação (clock), mesmo não utilizando programas escritos para o MMX, como você pode observar nos resultados de nossos testes (vide resultados no artigo "MMX - Conclusões"). Por causa dessa mudança, um Pentium MMX-166 consegue ser mais rápido que um Pentium-200.
  E para programas MMX? Quais são as vantagens? Inúmeras. O MMX representa a maior revisão no conjunto de instruções dos processadores utilizados em PCs desde a criação do 386.
  Para manter compatibilidade com todo o hardware e software hoje existentes, a Intel não criou nenhum "modo de operação MMX" como seria de se supor, nem adicionou flags ou fez qualquer mudança no núcleo do processador. Pelo contrário: a estrutura do Pentium MMX continua exatamente igual ao do Pentium convencional (agora chamado de Pentium Clássico). Para que alterações no núcleo do processador não fossem necessárias, o Pentium MMX utiliza os mesmos registradores do co-processador matemático. As chances de incompatibilidade simplesmente não existem e um programa pode utilizar as instruções MMX em qualquer momento em que deseje. Para um programa, acessar o conjunto MMX é tão fácil quanto utilizar o co-processador matemático.
As instruções MMX não são nem um pouco complexas: são basicamente instruções de soma, subtração, multiplicação e comparação de bits. Coisas que o processador já fazia. Então, onde está a vantagem? Onde está a grande evolução?
  Para multimídia, os dados manipulados pelo microprocessador não são grandes. Uma placa de som trabalha com dados de 16 bits. Os pontos da tela de um monitor são gravados em variáveis de 8 bits. Modems também são periféricos que trabalham com 8 bits. Ora, um processador capaz de manipular uma maior quantidade de bits não significa necessariamente um aumento de performance para essas aplicações. Pelo contrário: na maioria das vezes o processador é subutilizado.
  Vamos pegar o exemplo de uma imagem gráfica. Profissionalmente, você utiliza a sua placa de vídeo configurada a trabalhar em RGB True Color ou CMYK True Color.
+------+------+------+         
|  R   |  G   |  B   |         

+------+------+------+         
|8 bits|8 bits|8 bits|         
RGB True Color: 24 bits/pixel  

+------+------+------+------+
|  C   |   M  |  Y   |   K  |
|8
 bits|8 bits|8 bits|8 bits|
+------+------+------+------+

CMYK True Color: 32 bits/pixel

  No primeiro caso, cada ponto da tela é armazenado em uma variável de 24 bits, 8 bits para o componente vermelho do ponto (R), 8 bits para o verde (G) e 8 bits para o azul (B). No segundo, cada ponto é armazenado em uma variável de 32 bits, 8 bits para o ciano (C), 8 bits para o magenta (M), 8 bits para o amarelo (Y) e 8 bits para o preto (K). Cada ponto presente na tela é formado por um pouco de cada componente.
  Pois bem, vejamos uma aplicação comum de um programa gráfico como o PhotoShop: fazer uma fusão entre duas imagens. Imagine uma foto sua e uma foto de uma paisagem, e você deseja fundir as duas em uma só. Teoricamente, fazer isto é moleza: basta somar as duas imagens.
  Para o processador fazer isto, ele terá que somar individualmente cada ponto, um-a-um. Porém, não basta somar os 32 ou 24 bits de cada ponto. Ele terá que somar individualmente o componente C, M, Y e K (ou R, G e B) de cada ponto. Para formar o primeiro ponto da imagem resultante da fusão, o processador terá que somar o componente C do primeiro ponto da primeira imagem com o componente C do primeiro ponto da segunda imagem, o mesmo ocorrendo com os componentes M, Y e K. Este processo pode demorar um bocado.
C primeira imagem + C segunda imagem = C do ponto fundido
M primeira imagem + M segunda imagem = M do ponto fundido

K primeira imagem + K segunda imagem = K do ponto fundido
Y primeira imagem + Y segunda imagem = Y do ponto fundido
  Você pode observar que cada soma individual não é uma soma "cabeluda" de 32 ou 64 bits, são somas de pequenos números de 8 bits.
  O MMX trabalha com um novo conceito: SIMD (Single Instruction, Multiple Data - Instrução simples para múltiplos dados). De uma só vez, diversas operações simples e de dados curtos podem ser feitas simultaneamente. Cada registrador utilizado pelo MMX comporta 64 bits. Podemos dividir estes 64 bits em 8 grupos de 8 bits, 4 grupos de 16 bits ou ainda dois grupos de 32 bits.
Para o nosso exemplo, podemos carregar em um registrador de 64 bits do Pentium MMX o valor de dois pontos da nossa primeira tela (dois pontos CMYK de 32 bits) e em um outro registrador, o valor de dois pontos da segunda tela.
  O MMX pode manipular cada grupo de bits separadamente e, desta forma, poderemos fazer a soma de cada componente simultaneamente.
+---+---+---+---+---+---+---+---+ dois pontos da
Reg. de 64 bits | C | M | Y | K | C | M | Y | K | primeira imagem
+---+---+---+---+---+---+---+---+

+---+---+---+---+---+---+---+---+
+   +   +   +   +   +   +   +
 
  dois pontos da
Reg. de 64 bits | C | M | Y | K | C | M | Y | K | segunda imagem

=   =   =   =
                +---+---+---+---+
+---+---+---+---+---+---+---+---+
                  =   =   =   =
 ---+---+---+---+ dois pontos da
Reg. de 64 bits | C | M | Y | K | C | M | Y | K | imagem resultante

+---+---+---+---+---+---+---+---+
  Com uma só instrução MMX podemos somar dois pontos de duas imagens diretamente. Quando não utilizamos esta instrução MMX, precisamos de 8 instruções para executar o mesmo processo.
  Processos de filtros, efeitos especiais, separação de cores e animações são apenas alguns dos exemplos práticos da rapidez trazida pelas instruções MMX. Para você ter uma idéia, o processo de fusão de duas telas 640 x 480 pontos em RGB True color usando instruções MMX utilizará 1 bilhão de instruções a menos em comparação ao sistema não-MMX atualmente utilizado.