segunda-feira, 13 de dezembro de 2010

Pipeline

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.

Processo sem pipeline

Clique na imagem para ampliar


Processo com pipeline

Numa máquina com pipeline, os mesmo estágios serão executados emparalelo: assim que um estágio termina, passa o resultado para o próximo estágio e começa a trabalhar na próxima instrução.

Clique na imagem para ampliar


Cálculo do tempo de instruções com pipeline

Clique na imagem para ampliar

Pipeline no processador
Clique na imagem para ampliar

Sintese final
 Em suma, o pipeline melhora o desempenho por meio do aumento do throughput das instruções, ou seja, aumento o número de instruções executadas na unidade de tempo, e não pela diminuição do tempo de execução de uma instrução individual.
 Speedup ideal é o número de estágios no pipeline.
 Throughput (ou taxa de transferência) é a quantidade de dados transferidos de um lugar a outro, ou a quantidade de dados processados em um determinado espaço de tempo.
Speedup potencial = número de estágios do pipeline.

CPU-Instruções

A operação de uma UCP é determinada pelas instruções que ela executa, conhecidas como instruções de máquina. A coleção das diferentes instruções que a UCP é 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.
Cada instrução deve conter toda a informação necessária para permitir sua execução pela UCP. Essa informação necessária compreende:

• Código de operação: especifica a operação a ser realizada
• Operando fonte*: operandos que constituem dados de entrada para a operação
• Operando de destino*: resultado que pode ser produzido pela operação
• Endereço da próxima instrução: local onde deve ser buscada a instrução seguinte (em alguns casos), após o término da corrente

O projeto de um processador é condicionado ao conjunto de instruções de máquina as quais se deseja que ele execute. Uma das mais fundamentais análises e decisões do projeto envolve o tamanho e a complexidade do conjunto de instruções.
Num processador, quanto menor e mais simples for o conjunto de instruções, mais rápido será o seu ciclo de tempo.

CISC
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.

Os processadores baseados na computação de conjunto de instruções complexas contêm uma microprogramação, ou seja, um conjunto de códigos de instruções que são gravados no processador, permitindo-lhe receber as instruções dos programas e executá-las, utilizando as instruções contidas na sua microprogramação. Seria como quebrar estas instruções, já em baixo nível, em diversas instruções mais próximas do hardware (as instruções contidas no microcódigo do processador). Como característica marcante esta arquitetura contém um conjunto grande de instruções, a maioria deles em um elevado grau de complexidade.

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

Os processadores baseados na computação de conjunto de instruções reduzido não tem micro-programação, as instruções são executadas diretamente pelo hardware. Como característica, esta arquitetura, além de não ter microcódigo, tem o conjunto de instruções reduzido, bem como baixo nível de complexidade.


Formato de instruções


Cada instrução consiste num grupo de bits que pode ser dividido em duas partes:
• a primeira parte indica o que é a instrução e como será executada, sendo constituída de um só campo;
• a segunda parte referese ao(s) dado(s) que será(ão) manipulado(s) na operação, podendo ser constituída por mais de um campo.

Assim, cada uma das instruções é composta pelos seguintes campos:
• um campo (subgrupo de bits) denominado código de operação – C.Op. – cujo valor binário é a identificação (código) da operação a ser realizada, o qual servirá de dado de entrada para o decodificados da área de controle;
• o grupo restante de bits, denominado campo do operando – Op. ou operando, cujo valor binário indica a localização do dado (ou dados) que será(ão) manipulado(s) durante a execução da operação.

Exemplos
Instrução para adição de dois valores (operandos 1 e 2), indicando o endereço (operando 3) a ser armazenado o resultado: OP3 ← OP1 + OP2

Clique na imagem para ampliar

Instrução para adição de dois valores (operandos 1 e 2), armazenandose o resultado no local do operando 1: OP1 ← OP1 + OP2
Clique na imagem para ampliar
Utilizandose o acumulador para armazenar inicialmente um dos operandos e depois armazenar o resultado da soma: ACC ← ACC + OP
Clique na imagem para ampliar


Tipos de instruções

Podemos, então, classificar as instruções de máquina nos seguintes tipos, dependendo da sua função:
• Processamento de dados: instruções aritméticas e lógicas;
• Armazenamento de dados: instruções de memória;
• Movimentação de dados: instruções de E/S;
• Controle: instruções de teste e desvio.

Ciclo de instruções
Clique na imagem para ampliar

segunda-feira, 6 de dezembro de 2010

CPU - Central Processing Unit

Definição de CPU ou UCP

 O processador é responsável pela atividadefim do sistema, isto é, computar, calcular, processar.
 É responsável pela realização de qualquer operação realizada por um computador. Comanda não somente as ações efetuadas internamente, como também em decorrência de interpretação de uma determinada instrução, ele emite sinais de controle para os demais componentes do computador agirem e realizarem alguma tarefa.
 Os processadores atuais são fabricados de modo que, em um único invólucro (pastilhachip) são inseridos todos os elementos necessários à realização de suas funções.

A função do processador (UCP) consiste resumidamente no seguinte:
  •  Buscar uma instrução na memória (operação de leitura), uma de cada vez;
  •  Interpretar que operação a instrução está explicitando (soma, subtração, movimentação de dados, etc);
  •  Buscar os dados onde estiverem armazenados, para trazêlos até o processador;
  •  Executar efetivamente a operação com o(s) dados(s);
  •  Guardar o resultado (se houver algum) no local definido na instrução;
  •  E finalmente, reiniciar o processo buscando uma nova instrução.



Definição de ALU ou ULA

A ULA (“ALU”) é o dispositivo do processador que efetivamente executa as operações matemáticas com os dados. Tais operações podem ser, por exemplo:
 Soma, subtração, multiplicação e divisão;
 Operação lógica AND, OR, XOR;
 Deslocamento à direita, deslocamento à esquerda; Entre outros.
 Ela é composta por dispositivos lógicos digitais simples, capazes de armazenar bits e efetuar operações simples de lógica booleana.
 Os dados são fornecidos à ULA em registradores e uma vez processados eles são armazenados novamente em registradores.
 Os registradores são interligados a ULA por meio de caminhos de sinal.
 A ULA também pode ativar bits especiais (flags) para indicar o estado de uma operação.
 A Unidade de Controle fornece sinais para controlar a operação da ULA e a transferência de dados entre a ULA e os registradores.


Definição de UC

A UC é o dispositivo mais complexo do processador. Ele possui a lógica necessária para realizar a movimentação de dadose instruções “de” e “para” o processador, através dos sinais de controle que emite em instantes de tempo determinados conforme uma programação prévia.  A figura abaixo mostra o diagrama em bloco simplificado da função controle.


clique na imagem para aumentar

A Unidade de Controle – UC é responsável por:
  •  Controlar a transferência de dados e instruções para dentro e fora da CPU;
  •  Controlar a operação da ULA;
  •  Controlar a execução de instruções;
  •  Gerar sinais de controle externos ao processador para comandar a transferência de dados entre o processador e a memória ou módulos de entrada / saída;
  •  Gerar sinais de controle internos ao processador para mover dados entre registradores;
  •  Gerar sinais de controle internos ao processador para comandar a ULA na execução de uma determinada função;
Registadores utilizados no CPU

Registrador de Instrução – RI (Instruction Register – IR)
 Tem a função de armazenar a instrução a ser executada pela UCP.
No início do ciclo de instrução a UC emite sinais de controle seqüenciados no tempo para a realização do ciclo de leitura, no qual a instrução é buscada na memória e armazenada no RI, via barramento de dados e RDM.

 Contador de Instrução – CI (Program Counter – PC)

 Armazena o endereço da próxima instrução a ser executada, sendo crucial para o processo de controle e de seqüenciamento da execução dos programas. Assim que a instrução a ser executada é lida da memória para a UCP, o conteúdo do CI é automaticamente modificado, sendo nele armazenado o endereço da próxima instrução na seqüência.

Registrador de Dados da Memória – RDM (Memory Buffer Register MBR)

 É utilizado pela UCP para a transferência de informações entre esta e o barramento de dados. No ciclo de busca de uma instrução, assume a função de armazenar temporariamente a instrução a ser executada, a qual
foi trazida, via barramento de dados, da memória, e na sequência é transferida para o RI.
 O RDM tem tamanho (em bits) geralmente igual ao do barramento de dados, sendo que o tamanho deste último tem tamanho múltiplo do tamanho da palavra do processador.

 Registrador de Endereços da Memória – REM (Memory Address Register MAR)
 Armazena o endereço da memória onde a informação deve ser lida ou escrita. No ciclo de busca de uma instrução, armazena o endereço da memória onde se encontra a instrução a ser executada, fornecido pelo CI. Tem tamanho (em bits) igual ao tamanho dos endereços de memória e ao tamanho do barramento de endereços.

Função do Relógio

O relógio (clock) é um dispositivo gerador de pulsos cuja duração é chamada de ciclo.
A quantidade de vezes em que este pulso básico se repete em umsegundo 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 ações ocorram no mesmo instante de tempo.
Cadenciar as ações realizadas em um determinada positivo, ou seja, controlar a velocidade com que elas ocorrem.

 Pode ser entendido com um dispositivo de controle. Em geral o relógio é formado por um cristal de quartzo.

Principais elementos:
  •  Um ciclo do relógio (clock clycle) é o intervalo de tempo entre o início de um pulso e o início do seguinte.
  •  Um período (cycle time ou period) é o intervalo de tempo gasto para ser obter um ciclo do sinal do relógio.
  •  Usualmente medido em unidades de tempo em nanossegundos.
  •  Freqüência (frequency ou clock rate) é a quantidade de ciclos por segundo de um relógio. É o inverso do período.
  •  A unidade de medida utilizada para a freqüência é o Hertz(Hz) onde, 1 Hz = 1 ciclo por segundo.
Assim, se um processador funciona com um clock de 25 milhões de vezes por segundo, isto é, 25MHz, e sendo seu período de duração o inverso da freqüência, então cada ciclo será igual a 1/25000000, ou 0,00000004 ou 40 nano segundos (nS).

quinta-feira, 2 de dezembro de 2010

Processadores actuais da AMD

Descktop

Clique na imagem para aumentar

Existem mais variantes:


Server

Clique na imagem para aumentar

Existem mais variantes:



Laptop


Clique na imagem para aumentar


Existem mais variaveis:



Para mais informações consulte o site AMD

segunda-feira, 29 de novembro de 2010

Processadores actuais da Intel

 INTEL

Laptop

Clique na imagem para ampliar



Clique na imagem para ampliar

Clique na imagem para ampliar
Clique na imagem para ampliar
Desktop

Clique na imagem para ampliar
Clique na imagem para ampliar
Clique na imagem para ampliar
Clique na imagem para ampliar

Evolução dos processadores





segunda-feira, 15 de novembro de 2010

Interfaces da memória de secundária

Porta Paralela

A porta paralela é uma interface de comunicação entre um computador e um periférico. Quando a IBM criou seu primeiro PC ("Personal Computer" ou "Computador Pessoal"), a ideia era conectar a essa porta a uma impressora, mas actualmente, são vários os periféricos que se podem utilizar desta conexão para enviar e receber dados para o computado.

Velocidade : 50 a 100kbts
Surgiu em 1981
Comunicação em paralelo
Destina-se a impressoras, etc..


Porta Serie

A porta Serie também conhecida como RS-232 é uma porta de comunicação utilizada para conectar modems, mouses (ratos), algumas impressoras, scanners e outros equipamentos de hardware. Na interface serial, os bits são transferidos em fila, ou seja, um bit de dados de cada vez. O padrão RS-232 foi originalmente definido para uma comunicação por meio de 25 fios diferentes. A IBM ao utilizar o padrão para o seu projeto do IBM-PC, definiu que apenas 9 pinos seriam necessários. Todavia, manteve-se nos computadores o conector DB25, por ser um padrão da época.

Velocidade : 115 200 bit/s
Surgiu em 1969
Comunicação em serie
Destina-se a ratos, modems, etc...

 Porta de serie macho


Porta de serie fêmea

USB

Universal Serial Bus (USB) é um tipo de conexão "ligar e usar" que permite a conexão de periféricos sem a necessidade de desligar o computador.

Antigamente, instalar periféricos em um computador obrigava o usuário a abrir a máquina, o que para a maioria das pessoas era uma tarefa quase impossível pela quantidade de conexões internas, que muitas vezes eram feitas através de testes perigosos para o computador, sem falar que na maioria das vezes seria preciso configurar jumpers e interrupções IRQs, tarefa difícil até para profissionais da área.

Velocidade USB 1.1: 12 Mbps
Velocidade USB 2.0: 480 Mbps
Surgiu
USB 1.1:1998
USB 2.0:2000
Comunicação em série
Destina-se a pens,etc..
 


FireWire

O FireWire (também conhecido como i.Link, IEEE 1394 ou High Performance Serial Bus/HPSB) é uma interface serial para computadores pessoais e aparelhos digitais de áudio e vídeo que oferece comunicações de alta velocidade e serviços de dados em tempo real. O FireWire pode ser considerado uma tecnologia sucessora da quase obsoleta interface paralela SCSI. 

Velocidade: 400 Mbps
Surgiu nos anos 80
Comunicação em serie
Destina-se a aparelhos digitais de audio e video


e-SATA

O eSATA (external SATA) é um padrão de conector SATA externo, que mantém a mesma velocidade de transmissão. As placas-mãe mais recentes já estão vindo com conectores eSATA embutidos, mas também é possível utilizar uma controladora PCI Express, ou mesmo PCI

Velocidade:150mb/s
Surgiu em 2004
Comunicação em serie
Destina-se a ligar discos rígidos externos


Light Peak

Light Peak é uma interface de cabo óptico projetado para conectar dispositivos a um barramento periférico.

Velocidade 10Gb/s
Data de Lançamento 2009
Comunicação em serie
Destina-se a conectar dispositivos a um barramento.



quinta-feira, 11 de novembro de 2010

Interfaces da memória secundária

IDE


IDE é uma interface padrozinada pela American National Standard Institute (ANSI)em Novembro de 1990.
A ANSI chamou IDE como Advanced Technology Attachment (ATA).
IDE significa Integrated Drive Electronics, ou Eletrônica de Drive Integrada.
Atualmente diversos dispositivos (como CD-ROM, Zip-drive, etc),inclusive discos rígidos, utilizam essa tecnologia, que consiste basicamente em integrar a controladora dentro do próprio dispositivo. Não existe "controladora IDE", a interface IDE é apenas uma porta, uma interface, não havendo nenhum controle envolvido. Todo o controle está no próprio dispositivo. O padrão IDE original (na verdade o BIOS dos micros antigos) possui um limite que não permite o acesso a discos maiores que 504 MB. Essa limitação foi quebrada quando foi inventado o modo LBA (Logical Block Addressing, Endereçamento Lógico de Setores).




SCSI

SCSI (small computer system interface) é uma interface de alta velocidade usadas entre o disco rígido e a placa mãe , permitindo que tambem outros periféricos de hardware compartilhem o uso (tape drives,Cdrom,Impressoras,scanners,etc…) .Isto torna o acesso mais rapido e flexível.
Desenvolvida pela Apple Computer e ainda usada pela Macintosh ,As interfaces SCSI são paralelas e são frequentemente usadas em computadores pessoais e notebooks,sendo compatível com a maioria dos sistemas operacionais.
O segredo é que a interface SCSI trabalha com endereços de periféricos. Normalmente existem de 8 à 15 endereços que são configurados por jumpers,microchaves ou software de setup.




SATA

SATA ou S-ATA (acrónimo para Serial Advanced Technology Attachment) é uma tecnologia de transferência de dados entre um computador e dispositivos de armazenamento em massa  como unidades de disco rígido e drives ópticos.

As principais vantagens sobre a interface parallel SATA são: maior rapidez em transferir os dados, possibilidade de remover ou acrescentar dispositivos enquanto em operação (hot swapping) e utilização de cabos mais finos que permitem o resfriamento de ar de forma mais eficiente.
O sata atinge uma transferência máxima de 300 MB/s. SATA II é geralmente compatível com SATA I, tanto de SATA II para SATA I quanto ao contrário, o que permite usar os mesmos plugs e os mesmos cabos. No entando alguns sistemas não suportam a velocidade SATA II e a velocidade do clock  deve ser limitada manualmente para 150 Mb/s por meio de um jumper.



Tabela comparativa  das velocidades



segunda-feira, 8 de novembro de 2010

Barramentos de Expansão

ISA
ISA (acrónimo para Industry Standard Architecture), é um barramento para computadores, padronizado em 1981, inicialmente utilizando 8 bits para a comunicação, e posteriormente adaptado para 16 bits.


PCI
PCI,PCI (Peripheral Component Interconnect - Interconector de Componentes Periféricos) é um elemento para conectar periféricos em computadores baseados na arquitetura IBM PC.
Foi criado pela Intel em junho de 1992 na mesma época em que desenvolvia o processador Pentium. O barramento PCI veio para substituir o barramento ISA, já que o mesmo não atendia mais a demanda de largura de banda dos dispositivos.


PCI express
PCI Express (também conhecido como PCIe ou PCI - EX) é o padrão de slots para placas de expansão utilizadas em PCs. criada pela Intel. Introduzido pela Intel em 2004, o PCI Express foi concebido para substituir os padrões AGP e PCI. Sua velocidade vai de 1x até 32x (sendo que atualmente só existe disponível até 16x).



AGP
AGP, A Accelerated Graphics Port (Porta Gráfica Acelerada) (AGP, muitas vezes também chamada Advanced Graphics Port (Porta Gráfica Avançada)) é um barramento de computador (computer bus) ponto-a-ponto de alta velocidade, padrão para conectar um tipo de periférico a uma placa-mãe de computador, geralmente é acoplado a esse slot uma aceleradora gráfica, que tem a função de acelerar o processamento de imagens 3D (terceira dimensão).


<><>
BarramentoClockNúmero de bitsTaxa de Transferência
PCI33 MHz32133 MB/s
PCI66 MHz32266 MB/s
PCI33 MHz64266 MB/s
PCI66 MHz64533 MB/s
PCI-X 6466 MHz64533 MB/s
PCI-X 133133 MHz641.066 MB/s
PCI-X 266133 MHz642.132 MB/s
PCI-X 533133 MHz644.266 MB/s
AGP x166 MHz32266 MB/s
AGP 2x533 MB/s
AGP 4x1.066 MB/s
AGP 8x2.133 MB/s
PCI Express x1250 MB/s
PCI Express x2500 MB/s
PCI Express x41.000 MB/s
PCI Express x164.000 MB/s
PCI Express x328.000 MB/s
8-bit ISA8.387.9
16-bit ISA8.316
15.9

DMA

O DMA visa melhorar a performance geral do micro, permitindo que os periféricos transmitam dados diretamente para a memória, poupando o processador de mais esta tarefa.Antigamente, somente o processador podia acessar os dados diretamente da memória. Com isso, se qualquer outro componente do computador precisasse de algo na memória, teria que fazer este acesso por intermédio do processador. Com os HDs não era diferente. Como conseqüência havia um desperdício dos recursos de processamento. A solução não demorou muito a aparecer. Foi criado um dispositivo chamado Controlador de DMA (Direct Memory Access - Acesso Direto à Memória). Como o próprio nome diz, com essa tecnologia, tornou-se possível o acesso direto à memória pelo HD ou pelos dispositivos que usam a interface IDE, sem necessidade de "auxílio" do processador.

 
DMA 0 Disponível
DMA 1 Placa de Som
DMA 2 Controladora de drives de disquetes
DMA 3 Porta paralela padrão ECP
DMA 4 Reservado à placa mãe
DMA 5 Placa de Som
DMA 6 Disponível
DMA 7 Disponível

Existem 8 portas de DMA e, como acontece com os pedidos de interrupção, dois dispositivos não podem compartilhar o mesmo canal DMA, caso contrário haverá um conflito. Os 8 canais DMA são numerados de 0 a 7, sendo nos canais de 0 a 3 a transferência de dados feita a 8 bits e nos demais a 16 bits. O uso de palavras binárias de 8 bits pelos primeiros 4 canais de DMA visa manter compatibilidade com periféricos mais antigos.
Justamente por serem muito lentos, os canais de DMA são utilizados apenas por periféricos lentos, como drives de disquete, placas de som e portas paralelas padrão ECP. Periféricos mais rápidos, como discos rígidos, utilizam o Bus Mastering, uma espécie de DMA melhorado.
O Canal 2 de DMA é nativamente usado pela controladora de disquetes. Uma placa de som geralmente precisa de dois canais de DMA, um de 8 e outro de 16 bits, usando geralmente o DMA 1 e 5. O DMA 4 é reservado à placa mãe. Ficamos então com os canais 3, 6 e 7 livres. Caso a porta paralela do micro seja configurada no Setup para operar em modo ECP, precisará também de um DMA, podemos então configurá-la para usar o canal 3.


quinta-feira, 4 de novembro de 2010

Memória cache

A memória 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

Tipos de memória cache:

Memória cache L1 – encontra-se dentro do processador ou cache interna. A sua capacidade pode ir até aos 128 Kbytes, divididos em duas partes (uma para dados e outra para instruções).

Memória cache L2 – encontra-se na motherboard ou dentro do processador (mais recentemente). Quando é externa, a sua capacidade depende do chipset presente na motherboard. Quando é interna, a capacidade varia de 128 Kbytes a 2 Mbytes. 

Memória cache L3 - terceiro nível de cache de memória. Inicialmente utilizado pela AMD K6-III (por apresentar o cache L2 integrado ao seu núcleo) utilizava a 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 actuais, 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.
Onde pode ser aplicada a memória cache?
  A memória cache pode ser aplicada:
  • No disco rigido
  • No processador
  • Na mother broad