sexta-feira, 18 de novembro de 2011
Microprocessador
O processador (CPU (Central Processing Unit), ou seja Unidade Central de Processamento) é o cérebro do computador. Com ele, pode manipular as informações digitais, quer dizer, informações codificadas sob forma binária e executar instruções armazenadas na memória.
O primeiro microprocessador (Intel 4004) foi inventado em 1971. Tratava-se de uma unidade de cálculo de 4 bits, ritmado à 108 kHz. Desde então, o poder dos microprocessadores cresce consideravelmente.
Funcionamento
O processador é um circuito electrónico cadenciado por um relógio interno, graças a um cristal de quartz que, submetido a uma corrente eléctrica, emite impulsos, chamados de " top ". A frequência do relógio (também chamada de ciclo, correspondente ao número de impulsos por segundo, expresso em Hertz (Hz). Assim, um computador de 200 MHz tem um relógio que envia 200 000 000 batimentos por segundo. A frequência do relógio é, normalmente, um múltiplo da frequência do sistema (FSB<Ital />, <ital>Front-Side Bus), ou seja, um múltiplo da frequência da placa-mãe.
A cada impulso do relógio o processador executa uma acção, correspondente à uma instrução, ou parte dela. O indicador chamado CPI (Ciclos Por Instrução) indica o número médio de ciclos do relógio, necessário à execução de uma instrução em um microprocessador. Assim sendo, a potência do processador pode ser caracterizada pelo número de instruções tratadas, por segundo. A unidade utilizada é o MIPS (Milhões de Instruções Por Segundo) correspondente à frequência do processador que divide o CPI.
Instrução
Uma instrução é a operação elementar que o processador pode efectuar. As instruções são armazenadas na memória principal, para serem tratadas pelo processador. Uma instrução é composta de dois campos:
O código operacional, representando a acção que o processador deve efectuar;
O código operando, definindo os parâmetros da acção. O código operando depende da operação. Pode tratar-se de um dado ou de um endereço da memória.
Código operacional Campo operando
O número de bytes de uma instrução varia conforme o tipo de dado (a ordem da grandeza é de 1 à 4 bytes).
As instruções podem ser divididas em categorias cujas principais são:
Acesso à memória : acessos à memória ou transferências de dados entre registros.
Operações aritméticas: operações tais como: adições, subtracções, divisões ou multiplicações.
Operações lógicas: operações E, OU, NÃO, NÃO exclusivo, etc.
Controle: controle de sequência, conexões condicionais, etc.
Registros
Quando o processador executa as instruções, os dados são armazenados, temporariamente, nas pequenas memórias rápidas de 8, 16, 32 ou 64 bits que chamamos registros. Conforme o tipo do processador, o número global de registros pode variar entre uma dezena e várias centenas.
Os principais registros são:
o registrador de dados ou acumulador (ACC), armazenando os resultados das operações aritméticas e lógicas;
o registrador de status (PSW, Processor Status Word), armazenando os indicadores sobre o estado do sistema (retenção, excesso, etc.);
o registrador de instrução (RI), com a instrução de processamento em curso;
o contador de programa (CO ou PC para Program Counter), com o endereço da próxima instrução a ser processada;
o registro reserva, que armazena, temporariamente, um dado vindo da memória.
Cache
O Cache (também chamado de anti-memória ou memória reserva) é uma memória rápida que diminui o tempo de espera das informações armazenadas na memória viva. Na verdade, a memória central do computador é mais lenta que o processador. No entanto, existem memórias muito mais rápidas, mas muito mais caras. A solução é incluir este tipo de memória rápida perto do processador e de armazenar, temporariamente, os dados fundamentais que devem ser processados pelo processador. Os computadores mais recentes têm vários níveis de cache:
O cache de primeiro nível (chamado L1 Cache, para Level 1 Cache) é integrado directamente no processador. Ele se subdivide em duas partes:
O primeiro é o cache de instruções, que contém instruções vindas da RAM (memória viva) decodificadas durante a passagem pelas pipelines.
O segundo é o cache de dados, que contém os dados vindos da memória viva e os dados recentemente utilizados durante as operações do processador.
Os caches de primeiro nível são muito rápidos de acesso. O tempo de acesso tende a se aproximar daquele dos registros internos dos processadores.
O cache de segundo nível (chamado L2 Cache, para Level 2 Cache) está localizado na caixa com o processador (no chip). O cache de segundo nível se interpõe entre o processador, com o seu cache interno e a memória viva (RAM). Tem um acesso mais rápido do que a RAM, mas mais lento que o cache de primeiro nível.
O cache de terceiro nível (chamado L3 Cache, para Level 3 Cache) se situa no nível da placa-mãe.
Todos estes níveis de cache reduzem o tempo de latência das diversas memórias, durante o processamento e a transferência das informações. Enquanto o processador funciona, o controlador do cache de primeiro nível pode ser conectado com o de segundo nível para transferir informações, sem bloquear o processador. Da mesma forma, o cache de segundo nível se conecta com a RAM (cache de terceiro nível), para transferir informações, sem bloquear o funcionamento normal do processador.
Sinais de controle
Os sinais de controle são sinais eléctricos que orquestram as diversas unidades do processador, que participam à execução de uma instrução. Os sinais de controle são distribuídos graças a um elemento chamado sequenciador. O sinal Read / Write, em português leitura/escrita, diz para a memória que o processador quer ler ou escrever uma informação.
Unidades de funcionamento
O processador é constituído de um conjunto de unidades de funcionamento ligado entre si. A arquitectura de um microprocessador é extremamente variável de uma para outra, mas os principais elementos de um microprocessador são os seguintes:
Uma unidade de instrução (ou unidade de comando, em inglês control unit) que lê e decodifica os dados entrando para depois enviá-los à unidade de execução. A unidade de instrução é constituída, principalmente, dos seguintes elementos:
sequenciador (ou bloco lógico de comando) carregado de sincronizar a execução das instruções ao ritmo de um relógio. Ele é responsável pelo envio dos sinais de comando;
contador de programa com o endereço da instrução em curso;
registro de instrução com a instrução seguinte.
Uma unidade de execução (ou unidade de processamento), que executa as tarefas dadas pela unidade de instrução. A unidade de execução é composta, principalmente, dos seguintes elementos:
A unidade aritmética e lógica (chamada de UAL ou, em inglês ALU para Arithmetical and Logical Unit). A UAL assegura as funções básicas de aritmética e de operações lógicas (E, OU, OU exclusivo, etc.);
A unidade de ponto flutuante (chamado FPU, para Floating Point Unit), que realiza os cálculos complexos, não inteiros, que não podem realizar a unidade aritmética e lógica.
O registrador de status ;
O registrador de dados ou acumulador.
Uma unidade de gerência dos bus (ou unidade de entradas e saídas), que administra o fluxo de informações entrando e saindo, na interface com a memória viva do sistema;
A imagem abaixo mostra uma representação simplificada dos componentes do microprocessador (a organização física dos componentes não corresponde à realidade):
Arquitetura CISC
A arquitetura CISC (Complex Instruction Set Computer, seja « computador com conjunto complexo de instruções ») consiste em conectar no microprocessador de instruções complexas, difíceis de criar a partir das instruções básicas.
A arquitectura CISC é usada, em particular, pelos microprocessadores do tipo 80x86. Este tipo de arquitectura é cara, devido aos recursos avançados impressos no silício.
As instruções são de tamanhos variáveis e podem, às vezes, exigir mais do que um ciclo de relógio. Ora, um processador baseado na arquitectura CISC só pode processar uma instrução de cada vez, resultando em um tempo de execução consequente.
Arquitetura RISC
Um microprocessador que utiliza a tecnologia RISC (Reduced Instruction Set Computer, ou seja « computador com conjunto de instruções reduzido ») não tem funções avançadas com cabos.
Os programas devem ser traduzidos em instruções simples, resultando em um desenvolvimento mais difícil e/ou um compilador mais poderoso. Esse tipo de arquitectura tem um baixo custo de fabricação em relação aos processadores CISC. Além disso, as instruções, simples por natureza, são executadas em apenas um ciclo de relógio, o que torna a execução dos programas mais rápida do que com os processadores baseados em uma arquitectura CISC. Finalmente, estes processadores são capazes de processar, simultânea e paralelamente, várias instruções.
Paralelismo
O paralelismo consiste em executar simultaneamente, em vários processadores, as instruções relativas ao mesmo programa. Isso se traduz pelo corte de um programa em vários processos processados em paralelo, para diminuir o tempo de execução.
Tal tecnologia, porém, exige a sincronização e a comunicação entre os diferentes processos, como o corte de tarefas em uma empresa: o trabalho é dividido em pequenos processos distintos, processados por serviços diferentes. O funcionamento de tal empresa pode ser perturbado pelo mal funcionamento d a comunicação entre os serviços.
Pipeline
Pipeline (ou pipelining) é uma tecnologia que visa uma maior velocidade de execução das instruções, paralelizando as etapas.
Para entender o mecanismo do pipeline, é preciso, em primeiro lugar, entender as fases de execução de uma instrução. As fases de execução de uma instrução para um processador que contém um pipeline "tradicional" de 5 andares são os seguintes:
LI : (Leitura da Instrução (em inglês FETCH instruction) a partir do cache ;
DI : Decodificação da Instrução (DECODE instruction) e busca das operações (Registro ou valores imediatos);
EX : Execução da Instrução (EXECUTE instruction) (se for « ADD », somamos, se for SUB, subtraímos, etc.);
MEM : Acesso à memória (MEMORY access), gravação na memória, se necessário ou carregamento a partir da memória;
ER : Gravação (Write instruction) do valor calculado nos registros.
As instruções são organizadas em uma fila de espera na memória e são carregadas uma após a outra.
Graças ao pipeline, o processamento das instruções precisa das cinco etapas anteriores. Na medida em que a ordem dessas etapas é invariável (LI, DI, EX, MEM e ER), é possível criar no processador certo número de circuitos específicos para cada uma dessas fases.
O objetivo do pipeline é ser capaz de executar cada etapa, em paralelo com as etapas anteriores e posteriores, ou seja, poder ler uma instrução (LI), enquanto a anterior estiver em curso de decodificação (DI), que a anterior a esta estiver em curso de execução (EX), que a anterior à anterior acesse à memória (MEM) e, finalmente, que a primeira da série esteja em cursos de gravação nos registros (ER).
Em geral, devemos prever de 1 a 2 ciclos de relógio (raramente mais do que isso) para cada fase do pipeline, ou seja, 10 ciclos de relógio, no máximo, por instrução. Para duas instruções, 12 ciclos de relógio, no máximo, serão necessários (10 +2 = 12 em vez de 10*2=20), porque a instrução anterior já estava no pipeline. Ambas as instruções estão sendo processadas no processador, com um desfasamento de um ou dois ciclos de relógio. Para 3 Instruções, 14 ciclos de relógio serão necessários, etc.
O princípio do pipeline é comparável à uma cadeia de produção de carros. O carro passa de uma estação de trabalho para a outra, ao longo da linha de montagem e sai do edifício completamente montado. Para entender bem o princípio, é preciso observar a cadeia como um todo, e não, carro por carro. É preciso 3 horas para montar um carro, porém, um carro é produzido a cada minuto!
Saiba que existem diferentes tipos de pipeline, de 2 a 40 andares, mas o princípio é sempre o mesmo.
Superescalar
A tecnologia superescalar (em inglês superscaling) consiste em dispor de várias unidades de processamento, em paralelo, para poder processar várias instruções, por ciclo.
HyperThreading
A tecnologia HyperThreading (ou Hyper-Threading, chamada HT, traduza HyperFlots ou HyperFlux) consiste em definir dois processadores lógicos dentro de um processador físico. Assim, o sistema reconhece dois processadores físicos e se comporta como um sistema multitarefas, enviando dois "threads" simultâneos, chamados SMT (Simultaneous Multi Threading). Esse «truque» faz o melhor uso dos recursos do processador garantindo que os dados são enviados a granel.
Multinúcleo
Um processador multinúcleo é um processador composto, não de 1 mas de 2 (ou 4 ou 8) unidades de cálculo. Assim, para um processador DualCore , o processador dispõe da frequência de relógio equivalente a uma potência de cálculo duas vezes maior. No entanto, o ganho nem sempre é visível. Na verdade, é necessário que os softwares e os sistemas operacionais saibam lidar adequadamente com esses processadores para que um ganho significativo seja perceptível. Ainsi, sous Windows, seul Vista exploite correctement ces processeurs. Assim, no Windows, só o Vista explora corretamente esses processadores. Neste caso, recomenda-se a versão 64 bits.
Fonte:kioskea.net
Subscrever:
Mensagens (Atom)