quinta-feira, 26 de abril de 2012

Memória Cache

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.



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. A partir do Intel 486, começou a se colocar a L1 no próprio chip [processador]. Geralmente tem entre 16KB e 128KB; hoje já encontramos processadores com até 16MB de cache.

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. A memória cache L2 é, sobretudo, um dos elementos essenciais para um bom rendimento do processador mesmo que tenha um clock baixo. 

Cache L3
Terceiro nível de cache de memória. Inicialmente utilizado pelo AMD K6-III 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.

As memórias cache podem ser encontradas na placa gráfica, CPU e no disco rígido

Memória RAM


Memória SRAM é um tipo de memória de acesso aleatório que mantém os dados armazenados desde que seja mantida sua alimentação, não precisando que as células que armazenam os bits sejam actualizadas, como é o caso das memórias DRAM.
Embora sejam mais caras e ocupem mais espaço, quando comparadas às DRAM, possuem a vantagem de serem bem mais rápidas, justificando o seu uso nas memórias cache L1 e L2. Além disso, as memórias estáticas consomem mais energia e aquecem mais que as DRAM. Memórias estáticas usam circuitos no modelo flip-flop.



Memória DRAM é um tipo de memória RAM de acesso direto que armazena cada bit de dados num condensador. O número de eletrões armazenados no condensador determina se o bit é considerado 1 ou 0. Como vai havendo fuga de eletrões do condensador, a informação acaba por se perder, a não ser que a carga seja atualizada periodicamente.
Embora esse fenómeno da perda de carga não ocorra nas memórias SRAM, as DRAM possuem a vantagem de terem custo muito menor e densidade de bits muito maior.



  • SDRAM
Síncronas com o relógio de sistemas.

  • DDR-SDRAM
Reagem a ambos os flancos do sinal de relógio;
Muito utilizadas em PC's; 
Evolução: DDR (2000) DDR-2 (2003) DDR-3 (2007)

  • RDRAM
Têm esta designação porque os módulos de memória estão ligadas em série num barramento (bus) próprio;
Eficientes em leituras e escritas por blocos;
Poucos utilizadas em PC's, usadas na PlayStation 2 e Nintendo 64


terça-feira, 24 de abril de 2012

Endereçamento de Memória


Célula Básica de Memória

A Unidade Central de Processamento (CPU) é o componente fundamental dos sistemas computadorizados. Um dos seus dispositivos é a Unidade Lógico-Aritmética (ULA) realiza operações aritméticas e lógicas entre dados binários.
Nessa tarefa, há necessidade de  movimentar dados  entre os dispositivos e locais de armazenamento de dados binários (memórias). Uma célula básica de memória é o mecanismo projetado para armazenar a unidade básica de dado: o bit. Conjuntos de células básicas constituem registadores, que são as unidades básicas de armazenamento da CPU. A figura 1 apresenta o modelo da célula básica de memória.

Célula básica de memória. Diagrama funcional.


Volatilidade
Voláteis

  • Quando a alimentação é cortada, a memória perde a informação. 
  • Possuem como elemento de memória o Flip-Flop 
Não voláteis
  • Não perdem informações quando não estão alimentadas com energia elétrica. Memórias magnéticas e eletrônicas.

Endereço de memória é um identificador único para um local de memória no qual um processador ou algum outro dispositivo pode armazenar pedaços de dados. Em computadores modernos com endereçamento por byte, cada endereço representa um byte distinto de armazenamento. Dados maiores que um byte podem residir em múltiplos bytes, ocupando uma sequência de bytes consecutivos. Alguns microprocessadores foram desenvolvidos para trabalhar com endereçamento por word, tornando a unidade de armazenamento maior que um byte.



quarta-feira, 18 de abril de 2012

Arquitetura Neumann e de Harvard

Von Neumann 
A Arquitetura de von Neumann, é uma arquitetura de computador que se caracteriza pela possibilidade de uma máquina digital armazenar seus programas no mesmo espaço de memória que os dados, podendo assim manipular tais programas.
Todos os elementos dessa arquitetura são alinhados da estrutura hardware do CPU, assim o sistema pode realizar todas as suas atividades sem apresentar erros no desempenho. Von Neumann é continuamente influenciado pela evolução tecnológica, tendo peças mais modernas inseridas. 





Harvard
A Arquitetura de Harvard baseia-se num conceito mais recente que a de Von Neumann, tendo vindo da necessidade de por o microcontrolador para trabalhar mais rápido. É uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador. É utilizada nos microcontroladores PIC, tem como principal característica aceder a memória de dados separadamente da memória de programa.




Harvard modificada 

A Arquitectura de Harvard Modificada é uma variação da Arquitetura de Harvard que permite que o conteúdo da memória de programa seja acedido como se fosse memória de dados, esta é a principal diferença entre as duas arquiteturas.


Von Neunmann VS Harvard

A diferença entre a arquitetura Von Neunmann e a Harvard é que a última separa o armazenamento e o comportamento das instruções do CPU e os dados, enquanto a anterior utiliza o mesmo espaço de memória para ambos. Nos CPUs atuais, é mais comum encontrar a arquitetura Von Neunmann, mas algumas coisas da arquitetura Harvard também são vistas.
Nessas distintas arquiteturas, temos vantagens e desvantagens, como pode-se observar a seguir: Arquitetura tipo Harvard: Caminhos de dados e de instrução distintos, dessa forma, os seus componentes internos têm a seguinte disposição. Já na arquitetura Von-Neumann, é processada uma única informação de cada vez, visto que nessa tecnologia, execução e dados percorrem o mesmo barramento, o que torna o processo lento em relação à arquitetura Harvard.

terça-feira, 17 de abril de 2012

Arquitetura de Computadores

Arquitetura de Computadores


Arquitetura é frequentemente definida como o conjunto de atributos da máquina que um programador deve compreender para que consiga programar o computador específico com sucesso.


Função da North bridge e da South bridge



northbridge geralmente lida com a comunicação entre a UCP, memória RAM, AGP ou PCI Express e o southbridge. Alguns northbridges também contém controladores de vídeo integrados, os quais também são conhecidos como Graphics and Memory Controller Hub (GMCH) em sistemas Intel. Visto que processadores e RAM diferentes exigem sinalizações diferentes, um northbridge tipicamente funcionará com somente uma ou duas classes de UCPs e geralmente com apenas um tipo de RAM. Existem uns poucos chipsets que suportam dois tipos de RAM (geralmente eles estão disponíveis quando há uma mudança para um novo padrão). Por exemplo, o northbridge do chipset NVIDIA nForce2 somente funcionará com processadores Socket A combinados com DDR SDRAM, o chipset Intel i875 chipset somente funcionará com sistemas que usem processadores Pentium 4 ou Celeron que tenham uma taxa de clock maior que 1,3 GHz e que utilizem DDR SDRAM, e o chipset Intel i915g somente irá operar com o Intel Pentium 4 e Celeron, mas que usem memória DDR ou DDR2.

A southbridge não está diretamente conectado à UCP, a ele é dada a responsabilidade pelos dispositivos mais lentos num PC típico. Um southbridge em particular geralmente irá funcionar com vários northbridges diferentes, mas estes dois chips devem ser projetados para trabalhar em conjunto; não há um padrão amplo para interoperabilidade entre projetos de chipsets de lógicas diferentes. Tradicionalmente, esta interface entre northbridge e southbridge era simplesmente o barramento PCI, mas visto que isto criava um gargalo de performance, a maioria dos chipsets modernos usam uma interface diferente (frequentemente proprietária) com performance mais alta.É o Chip responsável pela comunicação com as placas PCI e periféricos. Também faz a comunicação com portas USB, paralela e serial e, no caso de placas-mãe com periféricos embutidos (on board), com chips de áudio, e rede e de espelhamento de discos rígidos (Raid).



Chipset: É o conjunto dos circuitos integrados que são projetados para trabalhar em conjunto.
Northbridge:  Está ligado ao UCP, tem responsabilidade pelos dispositivos mais rapidos.
Southbridge: Não está ligado ao UCP, tem responsabilidade pelos dispositivos mais lentos.
FSB: É o barramento de transferência de dados que transporta informação entre o UCP, northbridge e a motherboard.
DMA:


quinta-feira, 12 de abril de 2012

Circuitos Integrados TTL e CMOS

Circuitos Integrados TTL

RTL – Resistor Transistor Logic – Lógica de transístor e resistência.
DTL – Díode Transistor Logic – Lógica de transístor e díodo.
TTL – Transistor Transistor Logic – Lógica transístor-transístor.
HTL – High Threshold Logic – Lógica de transístor com alto limiar.
ECL – Emitter Coupled Logic – Lógica de emissores ligados.
I2L – Integrated-Injection Logic – Lógica de injecção integrada.

Circuitos Integrados CMOS

CMOS – Complemantary MOS – MOS de pares complementares NMOS/PMOS
NMOS – Utiliza só transístores MOS-FET canal N.
PMOS - Utiliza só transístores MOS-FET canal P.


Classificação dos Circuitos Integrados
  • Integração em pequena escala (SSI) < 100 portas
  • Integração em média escala (MSI) 100 < NP <1 000
  • Integração em larga escala (LSI) 1 000 < NP < 10 000
  • Integração em muito larga escala (VLSI) > 10 000 portas


TTL – Transistor Transistor Logic
  • A mais usada
  • Série 54 (-55 a +125 ºC) – utilizações militares
  • Série 74 ( 0 a +75 ºC) – utilizações industriais
  • Sub-famílias: STD, S, LS, ALS, AS


Séries CMOS:
  • 4000/14000 (foram as duas primeiras séries da família CMOS);
  • 74C (compatível, pino a pino e função por função, com os dispositivos TTL);
  • 74HC (CMOS de Alta Velocidade);
  • 74HCT (os dispositivos 74HCT - CMOS de Alta Velocidade - podem ser alimentados directamente por saídas de dispositivos TTL).


CMOS – Complementary MOS
  • A que menos consome
  • Muito lenta
  • Funciona com alimentação entre 3 e 5 V
  • Problemas na interface TTL para CMOS



Circuitos Integrados

O que é um Circuito Integrado?

Em eletrónica, um circuito integrado (também conhecido como CI, microcomputador, microchip, chip de silício, chip) é um circuito eletrónico miniaturizado (composto principalmente por dispositivos semicondutores), que tem sido produzido na superfície de um substrato fino de material semicondutor.
Os circuitos integrados são usados em quase todos os equipamentos eletrónicos usados hoje e revolucionaram o mundo da eletrónica.

Um circuito integrado híbrido é um circuito eletrónico miniaturizado constituído de dispositivos semicondutores individuais, bem como componentes passivos, ligados a um substrato ou placa de circuito.


Tipos de encapsulamento de circuitos integradosUm encapsulamento é basicamente uma proteção que envolve um circuito integrado. A sua principal função é garantir a conexão segura entre os circuitos e as placas físicas. Esta proteção é composta por pinos de metal, que fixam um envoltório retangular feito de metal, plástico ou de outros materiais . O mecanismo descrito garante que a transmissão de energia não cause danos físicos nos circuitos nem nas próprias placas.
Por exemplo, o PGA (Pin Grid Array) é usado bastante em microprocessadores, implementando uma matriz de pinos que circula o chip principal da CPU. Este modelo possui algumas variantes, como o PPGA, e o FC-GPA, os quais são usadas em processadores muito famosos, como os Pentium III e 4. Outro modelo muito usado é o Ball Grid Array, cujos pinos são em formato de bolas, usado bastante em chipsets de placas mãe(motherboards) e em algumas placas de vídeo e CPUs. Sendo um modelo mais antigo, o Dual In-Line Package foi um dos encapsulamentos mais usados desde a década de 70. O seu uso é recomendado para módulos menores, utilizando uma quantidade reduzida de pinos, normalmente em formato de ganchos.

terça-feira, 10 de abril de 2012

Computador Quântico

Um computador quântico é um dispositivo que executa cálculos fazendo uso direto das propriedades da mecânica quântica.
O principal ganho desses computadores é a possibilidade de resolver em tempo eficiente, alguns problemas que na computação clássica levariam tempo impraticável.
Computadores quânticos são diferentes dos computadores clássicos tais como computadores DNA e computadores baseados em transistores, ainda que estes utilizem alguns efeitos da mecânica quântica.

Estrutura dos computadores quânticos

Em mecânica quântica, é possível que uma partícula esteja em dois ou mais estados ao mesmo tempo. A esta capacidade de estar simultaneamente em vários estados chama-se superposição.
Um computador clássico tem uma memória feita de bits. Cada bit guarda um "1" ou um "0" de informação. Um computador quântico mantém um conjunto de qubits. Um qubit pode conter um "1", um "0" ou uma sobreposição destes. Noutras palavras, pode conter tanto um "1" como um "0" ao mesmo tempo. Um computador quântico pode ser implementado com alguns sistemas com partículas pequenas, desde que obedeçam à natureza descrita pela mecânica quântica.

A  história dos computadores quânticos

1981 - Richard Feynman elaborou a primeira proposta de utilizar um fenômeno quântico para executar rotinas computacionais. Foi numa palestra apresentada na Primeira Conferência de Computação Física no MIT. Ele mostrou que um computador tradicional levaria um tempo extremamente longo para simular um simples experimento de física quântica. Por outro lado, sistemas quânticos simples podem executar enormes quantidades de cálculos num curto espaço de tempo. Poderia ser possível utilizar essa capacidade para se calcular algo útil.

1985 - David Deutsch, na Universidade de Oxford, descreveu o primeiro computador quântico universal. Exatamente como uma Máquina de Turing pode simular outra máquina de Turing eficientemente, um computador quântico universal é capaz de simular o funcionamento de outro computador quântico com complexidade, no máximo, polinomial. Isso fez crescer a esperança de que um dispositivo simples seja capaz de executar muitos algoritmos quânticos diferentes.

1994 - Peter Shor, no Bell Labs da AT&T em Nova Jersey, descobriu um excelente algoritmo. Ele resolve tanto o problema da faturação quanto o problema do logaritmo discreto. O Algoritmo de Shor poderia, em teoria, quebrar muitos dos sistemas criptográficos em uso atualmente. Essa descoberta criou um enorme interesse nos computadores quânticos, até fora da comunidade acadêmica.

1996 - Lov Grover, no Bell Labs, descobriu o algoritmo de pesquisa em bases de dados quânticas. O speedup de raiz quadrada não foi tão dramático quanto o speedup para fatoração, logs discretos, ou simulações físicas. Mas o algoritmo poderia ser aplicado a uma variedade muito maior de problemas. Qualquer problema que tinha que ser resolvido por uma pesquisa de força bruta, aleatória, podia agora ter um speedup de raiz quadrada.

1996(?) - É proposto o primeiro esquema para correção de erro quântico. Isso é uma aproximação a computadores quânticos que podem processar grandes números de qubits por longos períodos de tempo. Erros sempre são introduzidos pelo meio, mas uma forma de correção de erros quânticos pode sobrescrevê-los e corrigi-los. Esta pode ser a chave tecnológica para a produção em larga escala de computadores quânticos que realmente funcionam. Estas propostas adiantadas tiveram um certo número de limitações. Poderiam corrigir alguns erros, mas não erros que ocorrem durante o próprio processo da correção.

1999(?) - No MIT foram construídos os primeiros computadores quânticos baseados em montagem térmica. O computador é , na verdade, uma única molécula pequena, que armazena qubits na rotação (spin) de seus protões e neutrões. Triliões e triliões destas moléculas podem flutuar num copo da água. O copo está colocado num equipamento de ressonância magnética nuclear, similar à imagem por ressonância magnética das máquinas usadas nos hospitais. Este conjunto do room-temperature (' ' thermal ' ') das moléculas (' ' ensemble ' ') tem quantidades maciças de redundância, que permite que mantenha coerência muito melhor do que muitos outros sistemas propostos.

2007 - Empresa Canadense D-Wave afirmou ter desenvolvido um computador híbrido chamado Orion que inclui um processador quântico de 16 qubits mas que também processa bits convencionais. Se confirmado, será a primeira máquina desse tipo capaz de realizar tarefas práticas o que é surpreendente. Alguns especialistas vinham prevendo que demoraria 20 anos para que os computadores quânticos pudessem ser usados na prática. No primeiro semestre de 2008, a empresa pretende chegar a 512 qubits para, em menos de dois anos, atingir 1 quiloqubit. A comunidade científica recebeu o anúncio da empresa com ceticismo, por ela não ter liberado maiores detalhes do processador.