Barramentos
Os slots de Interconexão de Componentes Periféricos (PCI, do inglês Peripheral Component Interconnect) estão tão integrados ao computador que muitas pessoas nem notam a sua presença. Há anos, o PCI tem sido um jeito versátil e funcional de conectar placas de som, vídeo e rede à placa-mãe.
Mas o PCI tem algumas limitações. Enquanto processadores e placas de vídeo, som e rede ficaram mais rápidos e mais potentes, o PCI não evoluiu. Continua com largura fixa de 32 bits e suporta somente 5 dispositivos por vez. O barramento mais novo, de 64 bits (PCI-X), tem mais largura de banda, mas a largura maior intensifica alguns dos outros problemas do PCI.
Um novo protocolo, chamado PCI Express (PCIe) elimina muitas destas deficiências, tem mais largura de banda e é compatível com os sistemas operacionais existentes. Neste artigo, falaremos das diferenças entre o PCIe e o PCI. Também veremos como o PCI Express deixa o computador mais rápido, melhora o desempenho gráfico e substitui o slot AGP.
Conexão serial de alta velocidade
Quando a informática surgiu, uma enorme quantidade de dados era transferida via conexões seriais. Os computadores separavam os dados em pacotes e então moviam os pacotes, um de cada vez, de um lugar para outro. As conexões seriais eram confiáveis, mas eram lentas, então os fabricantes começaram a usar conexões paralelas para enviar múltiplos pacotes de dados simultaneamente.
Acontece que as conexões paralelas também têm problemas conforme as velocidades aumentam: por exemplo, os fios podem causar interferências eletromagnéticas entre si e aí a balança volta a favorecer as conexões seriais otimizadas. Melhorias no hardware e no processo de dividir, classificar e remontar pacotes levou a conexões seriais muito mais rápidas, como a USB 2.0 e a FireWire.
Em ciência da computação barramento é um conjunto de linhas de comunicação que permitem a interligação entre dispositivos, como o CPU, a memória e outros periféricos. Esses fios estão divididos em três conjuntos:
O desempenho do barramento é medido pela sua largura de banda (quantidade de bits que podem ser transmitidos ao mesmo tempo), geralmente potências de 2:
Também pela velocidade da transmissão medida em bps (bits por segundo) por exemplo:
Tipos
Barramento do processador
O Barramento do Processador é utilizado pelo processador internamente e para envio de sinais para outros componentes da estrutura computacional. Atualmente, os barramentos, principalmente dos processadores(os de transferência de dados) têm sido bastante aprimorados com o objetivo de melhor desenvoltura, ou seja, maior velocidade de processamentos de dados.
Através deste barramento o processador faz a comunicação com o seu exterior. Nele trafegam os dados lidos da memória, escritos na memória, enviados para interfaces e recebidos de interfaces. Pode ser dividido em três grupos:
Barramento de cache
Barramento de Cache em organizações de computadores mais recentes, é um barramento dedicado para acesso à memória cache do computador.
Barramento de memória
Barramento de Memória responsável pela conexão da memória principal ao processador. É um barramento de alta velocidade que varia de micro para micro e atualmente gira em torno de 533MHz a 1333MHz.
Barramento de entrada e saída
O Barramento de Entrada e Saída (I/O ou E/S) é um conjunto de circuitos e linhas de comunicação que se ligam ao resto do PC com a finalidade de possibilitar a expansão de periféricos e a instalação de novas placas no PC.
Permitem a conexão de dispositivos como:
São exemplos de Barramentos de Entrada e Saída:
Barramento de dados
e variáveis numéricas entre -127 a +127 (ou O a 255).
numéricas entre - 2147483648 e + 2147483648.
Processadores
O processador é o cérebro do micro, encarregado de processar a maior parte das informações. Ele é também o componente onde são usadas as tecnologias de fabricação mais recentes.
Existem no mundo apenas quatro grandes empresas com tecnologia para fabricar processadores competitivos para micros PC: a Intel (que domina mais de 60% do mercado), a AMD (que disputa diretamente com a Intel), a Via (que fabrica os chips Via C3 e C7, embora em pequenas quantidades) e a IBM, que esporadicamente fabrica processadores para outras empresas, como a Transmeta.
Athlon X2 e Pentium D
O processador é o componente mais complexo e freqüentemente o mais caro, mas ele não pode fazer nada sozinho. Como todo cérebro, ele precisa de um corpo, que é formado pelos outros componentes do micro, incluindo memória, HD, placa de vídeo e de rede, monitor, teclado e mouse.
Dentro do mundo PC, tudo começou com o 8088, lançado pela Intel em 1979 e usado no primeiro PC, lançado pela IBM em 1981. Depois veio o 286, lançado em 1982, e o 386, lançado em 1985.
O 386 pode ser considerado o primeiro processador moderno, pois foi o primeiro a incluir o conjunto de instruções básico, usado até os dias de hoje. O 486, que ainda faz parte das lembranças de muita gente que comprou seu primeiro computador durante a década de 1990, foi lançado em 1989, mas ainda era comum encontrar micros com ele à venda até por volta de 1997.
Depois entramos na era atual, inaugurada pelo Pentium, que foi lançado em 1993, mas demorou alguns anos para se popularizar e substituir os 486. Em 1997 foi lançado o Pentium MMX, que deu um último fôlego à plataforma. Depois, em 1997, veio o Pentium II, que usava um encaixe diferente e por isso era incompatível com as placas-mãe antigas. A AMD soube aproveitar a oportunidade, desenvolvendo o K6-2, um chip com uma arquitetura similar ao Pentium II, mas que era compatível com as placas soquete 7 antigas.
A partir daí as coisas passaram a acontecer mais rápido. Em 1999 foi lançado o Pentium III e em 2000 o Pentium 4, que trouxe uma arquitetura bem diferente dos chips anteriores, otimizada para permitir o lançamento de processadores que trabalham a freqüências mais altas.
O último Pentium III trabalhava a 1.0 GHz, enquanto o Pentium 4 atingiu rapidamente os 2.0 GHz, depois 3 GHz e depois 3.5 GHz. O problema é que o Pentium 4 possuía um desempenho por ciclo de clock inferior a outros processadores, o que faz com que a alta freqüência de operação servisse simplesmente para equilibrar as coisas. A primeira versão do Pentium 4 operava a 1.3 GHz e, mesmo assim, perdia para o Pentium III de 1.0 GHz em diversas aplicações.
Quanto mais alta a freqüência do processador, mais ele esquenta e mais energia consome, o que acaba se tornando um grande problema. Quando as possibilidades de aumento de clock do Pentium 4 se esgotaram, a Intel lançou o Pentium D, uma versão dual-core do Pentium 4. Inicialmente os Pentium D eram caros, mas com o lançamento do Core 2 Duo eles caíram de preço e passaram a ser usados até mesmo em micros de baixo custo. Os Pentium D eram vendidos sob um sistema de numeração e não sob a freqüência real de clock. O Pentium D 820, por exemplo, opera a 2.8 GHz, enquanto o 840 opera a 3.2 GHz.
Em 2003 a Intel lançou o Pentium M, um chip derivado da antiga arquitetura do Pentium III, que consome pouca energia, esquenta pouco e mesmo assim oferece um excelente desempenho. Um Pentium M de 1.4 GHz chega a superar um Pentium 4 de 2.6 GHz em diversas aplicações.
O Pentium M foi desenvolvido originalmente para ser usado em notebooks, mas se mostrou tão eficiente que acabou sendo usado como base para o desenvolvimento da plataforma Core, usada nos processadores Core 2 Duo fabricados atualmente pela Intel. O Pentium 4 acabou se revelando um beco sem saída, descontinuado e condenado ao esquecimento.
Paralelamente a todos esses processadores, temos o Celeron, uma versão mais barata, mas com um desempenho um pouco inferior, por ter menos cache ou outras limitações. Na verdade, o Celeron não é uma família separada de chips, mas apenas um nome comercial usado nas versões mais baratas (com metade ou um quarto do cache) de vários processadores Intel. Existem Celerons baseados no Pentium II, Pentium III, Pentium 4, Pentium M e também o Celeron 4xx, que é uma versão single-core (e com menos cache) do Core 2 Duo.
Para efeito de comparação, entre os chips antigos e os atuais, um 486 tinha cerca de 1 milhão de transistores e chegou a 133 MHz, enquanto o Pentium MMX tinha 4.3 milhões e chegou a 233 MHz. Um Pentium 4 (Prescott) tem 125 milhões e chegou aos 3.8 GHz, freqüência mais alta atingida por um processador Intel (ou AMD) lançado oficialmente até hoje, recorde que deve ser quebrado apenas em 2008 ou 2009.
O transistor é a unidade básica do processador, capaz de processar um bit de cada vez. Mais transistores permitem que o processador processe mais instruções de cada vez enquanto a freqüência de operação determina quantos ciclos de processamento são executados por segundo.
Continuando, temos os processadores da AMD. Ela começou produzindo processadores 386 e 486, muito similares aos da Intel, porém mais baratos. Quando a Intel lançou o Pentium, que exigia o uso de novas placas-mãe, a AMD lançou o "5x86", um 486 de 133 MHz, que foi bastante popular, servindo como uma opção barata de upgrade. Embora o "5x86" e o clock de 133 MHz dessem a entender que se tratava de um processador com um desempenho similar a um Pentium 133, o desempenho era muito inferior, mal concorrendo com um Pentium 66. Este foi o primeiro de uma série de exemplos, tanto do lado da AMD, quanto do lado da Intel, em que existiu uma diferença gritante entre o desempenho de dois processadores do mesmo clock. Embora seja um item importante, a freqüência de operação não é um indicador direto do desempenho do processador.
Uma analogia poderia ser feita em relação aos motores de carro. Os motores de 1.6 do final da década de 70, usados nas Brasílias e nos Fuscas, tinham 44 cavalos de potência, enquanto os motores 1.0 atuais chegam a mais de 70 cavalos. Além da capacidade cúbica, existem muitos outros fatores, como a eficiência do sistema de injeção de ar e combustível, taxa de compressão, refrigeração, etc.
Depois do 5x68 a AMD lançou o K5, um processador similar ao Pentium, mas que não fez tanto sucesso. Ele foi seguido pelo K6 e mais tarde pelo K6-2, que novamente fez bastante sucesso, como uma opção barata, e ao mesmo tempo como uma opção de upgrade para quem tinha um Pentium ou Pentium MMX.
Esta era do K6-2 foi uma época negra da informática, não pelo processador em si (que excluindo o desempenho em jogos, tinha um bom custo-benefício), mas pelas placas-mãe baratas que inundaram o mercado. Aproveitando o baixo custo do processador, os fabricantes passaram a desenvolver placas cada vez mais baratas (e de qualidade cada vez pior) para vender mais, oferecendo PCs de baixo custo. A época foi marcada por aberrações. Um certo fabricante chegou a lançar uma família de placas sem cache L2, que pifavam em média depois de um ano de uso.
As coisas voltaram aos trilhos com o Athlon, que foi o primeiro grande processador (tanto em desempenho, quanto em tamanho :) da AMD. A primeira versão usava um formato de cartucho (slot A) similar ao Pentium II, mas incompatível com as placas para ele. Ele foi sucedido pelo Athlon Thunderbird, que passou a usar o formato de soquete utilizado (com atualizações) até os dias de hoje.
Athlon XP, para placas soquete A
Competindo com o Celeron, a AMD produziu o Duron, um processador de baixo custo, idêntico ao Athlon, mas com menos cache. Em 2005 o Athlon foi descontinuado e o cargo foi herdado pelo Sempron, uma versão aperfeiçoada do Duron (com mais cache e capaz de atingir freqüências mais altas), que passou a ser vendido segundo um índice de desempenho (em relação ao Pentium 4) e não mais segundo o clock real.
Por volta de 2000, surgiram as primeiras notícias do "SledgeHammer", um processador de 64 bits, que foi finalmente lançado em versão doméstica na forma do Athlon 64, que passou a ser o topo de linha da AMD. Apesar das mudanças internas, o Athlon 64 continua sendo compatível com os programas de 32 bits, da mesma forma que os processadores atuais são capazes de rodar softwares da época do 386, muito embora tenham incorporado diversos novos recursos.
Na prática, o fato de ser um processador de 64 bits não torna o Athlon 64 gritantemente mais rápido, mesmo em aplicativos otimizados (os ganhos de desempenho surgem mais devido ao controlador de memória integrado e aos novos registradores). A principal vantagem dos processadores de 64 bits é derrubar uma limitação inerente a todos os processadores de 32 bits, que são capazes de cessar apenas 4 GB de memória RAM, um limite que está se tornando cada vez mais uma limitação grave em várias áreas.
Os 4 GB de memória podem não parecer um obstáculo imediato, mas lembre-se de que há duas décadas os PCs eram vendidos com 128 KB de memória, há uma década já vinham com 4 ou 8 MB, e hoje são vendidos com 512 MB ou mais.
O Athlon 64 deu origem ao Athlon X2, o primeiro processador dual-core da AMD, onde temos dois processadores Athlon 64 no mesmo encapsulamento, dividindo a carga de processamento e também o Turion, que é uma versão de baixo custo do Athlon 64, destinado a notebooks.
Glossário
Cache
Na área da computação, cache é um dispositivo de acesso rápido, interno a um sistema, que serve de intermediário entre um operador de um processo e o dispositivo de armazenamento ao qual esse operador acede. A vantagem principal na utilização de uma cache consiste em evitar o acesso ao dispositivo de armazenamento - que pode ser demorado -, armazenando os dados em meios de acesso mais rápidos
Nos dispositivos de armazenamento
Com os avanços tecnológicos, vários tipos de cache foram desenvolvidos. Atualmente há cache em processadores, discos-rígidos, sistemas, servidores, nas placas-mães, entre outros. Qualquer dispositivo que requeira do usuário uma solicitação/requisição a algum outro recurso, seja de rede ou local, interno ou externo a essa rede, pode requerer ou possuir de fábrica o recurso de cache.
Por ser mais caro, o recurso mais rápido não pode ser usado para armazenar todas as informações. Sendo assim, usa-se a cache para armazenar apenas as informações mais frequentemente usadas. Nas unidades de disco também conhecidas como disco rígido ou Hard Drive (HD), também existem chips de cache nas placas eletrônicas que os acompanham. Como exemplo, a unidade Samsung de 160 GB tem 8 MBytes de cache.
No caso da informática, a cache é útil em vários contextos:
Operação
Um cache é um bloco de memória para o armazenamento temporário de dados que possuem uma grande probabilidade de serem utilizados novamente.
Uma definição mais simples de cache poderia ser: uma área de armazenamento temporária onde os dados freqüentemente acedidos são armazenados para acesso rápido.
Uma cache é feita de uma fila de elementos. Cada elemento tem um dado que é a cópia exacta do dado presente em algum outro local (original). Cada elemento tem uma etiqueta que especifica a identidade do dado no local de armazenamento original, que foi copiado.
Quando o cliente da cache (CPU, navegador etc.) deseja aceder a um dado que acredita estar no local de armazenamento, primeiramente ele verifica a cache. Se uma entrada for encontrada com uma etiqueta correspondente ao dado desejado, o elemento da cache é então utilizado ao invés do dado original. Essa situação é conhecida como cache hit (acerto do cache). Como exemplo, um navegador poderia verificar a sua cache local no disco para ver se tem uma cópia local dos conteúdos de uma página Web numa URL particular. Nesse exemplo, a URL é a etiqueta e o conteúdo da página é o dado desejado. A percentagem de acessos que resultam em cache hits é conhecida como a taxa de acerto (hit rate ou hit ratio) da cache.
Uma situação alternativa, que ocorre quando a cache é consultada e não contém um dado com a etiqueta desejada, é conhecida como cache miss (erro do cache). O dado então é copiado do local original de armazenamento e inserido na cache, ficando pronto para o próximo acesso.
Se a cache possuir capacidade de armazenamento limitada (algo comum de acontecer devido ao seu custo), e não houver mais espaço para armazenar o novo dado, algum outro elemento deve ser retirado dela para que liberte espaço para o novo elemento. A forma (heurística) utilizada para seleccionar o elemento a ser retirado é conhecida como política de troca (replacement policy). Uma política de troca muito popular é a LRU (least recently used), que significa algo como “elemento recentemente menos usado”.
Quando um dado é escrito na cache, ele deve ser gravado no local de armazenamento em algum momento. O momento da escrita é controlado pela política de escrita (write policy). Existem diferentes políticas. A política de write-through (algo como “escrita através”) funciona da seguinte forma: a cada vez que um elemento é colocado no cache, ele também é gravado no local de armazenamento original. Alternativamente, pode ser utilizada a política de write-back (escrever de volta), onde as escritas não são directamente espelhadas no armazenamento. Ao invés, o mecanismo de cache identifica quais de seus elementos foram sobrepostos (marcados como sujos) e somente essas posições são colocadas de volta nos locais de armazenamento quando o elemento for retirado do cache. Por essa razão, quando ocorre um cache miss (erro de acesso ao cache pelo fato de um elemento não existir nele) em um cache com a política write-back, são necessários dois acessos à memória: um para recuperar o dado necessário e outro para gravar o dado que foi modificado no cache.
O mecanismo de write-back pode ser accionado por outras políticas também. O cliente pode primeiro realizar diversas mudanças nos dados do cache e depois solicitar ao cache para gravar os dados no dispositivo de uma única vez.
Os dados disponíveis nos locais de armazenamento original podem ser modificados por outras entidades diferentes, além do próprio cache. Nesse caso, a cópia existente no cache pode se tornar inválida. Da mesma forma, quando um cliente atualiza os dados no cache, as cópias do dado que estejam presentes em outros caches se tornarão inválidas. Protocolos de comunicação entre gerentes de cache são responsáveis por manter os dados consistentes e são conhecidos por protocolos de coerência.
Princípio da Localidade
É a tendência de o processador ao longo de uma execução referenciar instruções e dados da memória principal localizados em endereços próximos. Tal tendência é justificada devido as estruturas de repetição e as estruturas de dados, vetores e tabelas utilizarem a memória de forma subseqüente (um dado após o outro). Assim a aplicabilidade da cache internamente ao processador fazendo o intermédio entre a memória principal e o processador de forma a adiantar as informações da memória principal para oprocessador.
Tipos de Memória Cache
Memória Cache é uma pequena quantidade de memória estática de alto desempenho, tendo por finalidade aumentar o desempenho do processador realizando uma busca antecipada na memória RAM.
Erro de MISS
Quando o processador necessita de um dado, e este não está presente no cache, ele terá de realizar a busca diretamente na memória RAM, utilizando wait states e reduzindo o desempenho do computador. Como provavelmente será requisitado novamente (localidade temporal) o dado que foi buscado na RAM é copiado na cache.
Cache em Níveis
Cache L1
Uma pequena porção de memória estática presente dentro do processador. Em alguns tipos de processador, como o Pentium 2, o L1 é dividido em dois níveis: dados e instruções (que "dizem" o que fazer com os dados). A partir do Intel 486, começou a se colocar a L1 no próprio chip [processador]. Geralmente tem entre 16KB e 512KB. O AMD Sempron 2600+ possui 64KB de cache L1.
Cache L2
Possuindo o Cache L1 um tamanho reduzido e não apresentando uma solução ideal, foi desenvolvido o cache L2, que contém muito mais memória que o cache L1. Ela é mais um caminho para que a informação requisitada não tenha que ser procurada na lenta memória principal. Alguns processadores colocam essa cache fora do processador, por questões econômicas, pois uma cache grande implica num custo grande, mas há exceções, como no Pentium II, por exemplo, cujas caches L1 e L2 estão no mesmo cartucho que está o processador. É neste aspecto essencial que a Intel ganha todo o prestígio e rendimento dos seus processadores. A memória cache L2 é, sobre tudo, um dos elementos essenciais para um bom rendimento do processador mesmo que tenha um clock baixo. Um exemplo prático é o caso do Intel Xeon (para servidores) que tem apenas 1.4 GHz de clock interno e ganha de longe do atual Intel Extreme, pelo fato de possuir uma memória cache de 12Mb. Quanto mais alto é o clock do processador, mais este aquece e mais instável se torna. Os processadores Intel Celeron tem tão fraco desempenho por possuir menor memória cache L2. Um Pentium M 730 de 1.6 GHz de clock interno, 533 MHz FSB e 2 MB de cache L2, tem rendimento semelhante a um Intel Pentium 4 2.4 GHz, aquece muito menos e torna-se muito mais estável e bem mais rentável do que o Intel Celeron M 440 de 1.86 GHz de clock interno, 533 MHz FSB e 1 MB de cache L2.
Cache L3
Terceiro nível de cache de memória. Inicialmente utilizado pelo AMD K6-III (por apresentar o cache L2 integrado ao seu núcleo) utilizava o cache externo presente na placa-mãe como uma memória de cache adicional. Ainda é um tipo de cache raro devido a complexidade dos processadores atuais, com suas áreas chegando a milhões de transístores por micrómetros ou picómetros de área. Ela será muito útil, é possível a necessidade futura de níveis ainda mais elevados de cache, como L4 e assim por diante.
Tamanho da cache
Técnicas de escrita de dados da cache
-Tecnicas de "Write Hit":
Write-Back Cache
Usando esta técnica a CPU escreve dados diretamente na cache, cabendo ao sistema a escrita posterior da informação na memória principal. Como resultado o CPU fica livre mais rapidamente para executar outras operações. Em contrapartida, a latência do controlador pode induzir problemas de consistência de dados na memória principal, em sistemas multiprocessados com memória compartilhada. Esses problemas são tratados por protocolos de consistência da cache.
Exemplo: A escrita de um endereço e feita inicialmente numa linha da cache, e somente na cache. Quando mais tarde algum novo endereço necessitar desta linha da cache, estando esta já ocupada, então o endereço inicial e guardado na memoria e o novo endereço ocupa-lhe o lugar na respectiva linha da cache.
Para reduzir a frequência de escrita de blocos de endereços na memoria aquando da substituição é usado um "dirty bit", este é um bit de estado, ou seja, quando o endereço é instanciado inicialmente numa linha da cache, estando essa linha vazia, o valor inicial e implicitamente '0', quando o bloco do endereço e modificado(quando ocorre uma substituição) o valor inicial passa a '1' e diz-se que o bloco do endereço esta "dirty".
Vantagens: -A escrita ocorre à velocidade da cache; -Escritas múltiplas de um endereço requerem apenas uma escrita na memoria; -Consome menos largura de banda.
Desvantagens: -Difícil de implementar; -Nem sempre existe consistência entre os dados existentes na cache e na memoria; -Leituras de blocos de endereços na cache podem resultar em escritas de blocos de endereços "dirty" na memoria.
Write-Through Cache
Quando o sistema escreve para uma zona de memória, que está contida na cache, escreve a informação, tanto na linha específica da cache como na zona de memória ao mesmo tempo. Este tipo de caching providencia pior desempenho do que Write-Back Cache, mas é mais simples de implementar e tem a vantagem da consistência interna, porque a cache nunca está dessíncrona com a memória como acontece com a técnica Write-Back Cache.
Vantagens: -Fácil de implementar; -Um "cache-miss" nunca resulta em escritas na memoria; -A memoria tem sempre a informação mais recente.
Desvantagens: -A escrita é lenta; -Cada escrita necessita de um acesso à memoria; -Consequentemente usa mais largura de banda da memoria.
-Tecnicas de "Write Miss":
Write Allocate
O bloco de endereço e carregado na ocorrência de um "write miss", seguindo-se uma acção de "write hit". O "Write Allocate" é usado com frequencia em caches de "Write-back". ..
No Write Allocate
O bloco de endereço e directamente modificado na memoria, não e carregado na cache. O "No Write Allocate" é usado frequentemente em caches de "Write Through