segunda-feira, 13 de dezembro de 2010

Pipeline

Introdução

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

Exemplo da lavandaria 


Processo, sem aplicação de pipeline.    


  
Processo, com aplicação de pipeline.

Calculo do tempo das instruções pipeline


Fórmula



Pipeline aplicado no processador


Síntese 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

Instruções de Máquina:

A operação de uma UCP é determinada pelas instruções que ela executa, conhecidas como instruções de máquina. A colecçã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.
 
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 arquitectura 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.
 
RISC
 
Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instruções (RISC), é uma linha de arquitectura 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.

Formato das 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.


Tamanho das Instruções

A definição dos códigos de operação do conjunto de instruções de um processador pode ser feita por duas maneiras: 

• instruções com C.Op. de tamanho fixo;
• instruções com C.Op. de tamanho variável.
 
No primeiro caso, todas as instruções têm um C.Op. com a mesma quantidade de bits. A implementação das instruções e sua manipulação durante a execução de um programa são facilitadas, ao passo que o tamanho do C.Op., e da própria instrução tende a aumentar, influenciando no aumento do tamanho ocupado pelo programa na MP.

Tipos de Instruções

  • Instruções aritméticas
  • Instruções lógicas (ou booleanas)
  • Instruções de memória
  • Instruções de E/S
  • Instruções de teste
  • Instruções de desvio
  
Ciclo de Instrução 


segunda-feira, 6 de dezembro de 2010

CPU - Central Processing Unit

CPU

O processador é responsável pela atividade fim do sistema, isto é, computar, calcular, processar.
Um processador tem, por propósito, realizar operações com dados (que denominamos processamento) normalmente numéricos.
Ele é projectado e fabricado com o propósito único de executar sucessivamente pequenas operações matemáticas ou outras manipulações de dados, na ordem e na sequência definidas pela organização do sistema.
Portanto, o processador não somente realiza o processamento, como também controla todo o funcionamento do sistema.

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

UC

A UC é o dispositivo mais complexo do processador. Ele possui a lógica necessária para realizar a movimentação de dados e 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.

Funções:

 - 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;


Relógio

O relógio (clock) é um dispositivo gerador de pulsos cuja duração é chamada de ciclo.

Funçoes:

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.

Registadores


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 sequenciados 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 sequenciamento 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 sequê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.



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.

quinta-feira, 2 de dezembro de 2010

Processadores actuais: AMD


Desktop

Clique na imagem para ampliar


Existe várias variantes de processadores.A ver no site (AMD)


Laptop


Clique na imagem para ampliar



Servers



AMD Opteron™ 6000 Series Platform


Clique na imagem para ampliar


Existe várias variantes de processadores.A ver no site (AMD)


segunda-feira, 29 de novembro de 2010

Processadores actuais: Intel

Desktop


Intel Core i7 Extreme Edition

Clique na imagem para ampliar


Intel Core i7

Clique na imagem para ampliar

Intel Core i5

Clique na imagem para ampliar

Intel Core i3

Clique na imagem para ampliar

Laptop

Intel Core i7 Mobile Processor Extreme Edition

Clique na imagem para ampliar


Intel Core i7 Mobile Processor

Clique na imagem para ampliar

Intel Core i5 Mobile Processor
Clique na imagem para ampliar

Intel Core i3 Mobile Processor

Clique na imagem para ampliar

Evolução de Processadores













segunda-feira, 15 de novembro de 2010

Interfaces da memória de secundária




Porta Paralela


Velocidade 50 a 100 KB/s.
Surgiu em 1981 pela IBM
Comunicação em série
Destina-se a scanners, câmeras  de vídeo, unidade de disco removível entre outros.












Porta Serie


Velocidade 115.200 bit/s
Surgio em 1969 pela IBM
Comunicação em serie
Destina-se a modems, ratos, impressoras, scanners etc.










 FireWire

 



Velocidades 786,432 Mbit/s
Data de lançameto 1990
Comunicação em serie







e-SATA 

Velocidades  150 MB/s
Data de lançamento  2004
comunicação em serie
Destina-se a ligar discos sata externos.






Light Peack


Velocidade 10Gb/s
Data de Lançamento 2009
Comunicação em serie





 

Mini USB










Cabo USB




quinta-feira, 11 de novembro de 2010

Interfaces de memória secundária

IDE

O IDE, do inglês Integrated Drive Eletronics, foi o primeiro padrão que integrou a controladora com o disco rígido. Os primeiros HDs com interface IDE foram lançados por volta de 1986 e na época isto já foi uma grande inovação porque os cabos utilizados já eram menores e havia menos problema de sincronismo, o que deixava os processos mais rápidos.





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 (mass storage devices) como unidades de disco rígido e drives ópticos.
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.






SCSI


SCSI (pronuncia-se "scãzi"), sigla de Small Computer System Interface, é uma tecnologia que permite ao usuário conectar uma larga gama de periféricos, tais como discos rígidos, unidades CD-ROM, impressoras e scanners. Características físicas e elétricas de uma interface de entrada e saída (E/S) projetadas para se conectarem e se comunicarem com dispositivos periféricos são definidas pelo SCSI.






Exemplos:



segunda-feira, 8 de novembro de 2010

Barramentos de expansão





ISA


Numero de bits: 8 ou 16 bits
Velocidade, 8bits: 2.33MB/S, 16bits: 8.33MB/S
Utilizado para ligar vários tipos de placas de expansão
Data em que surgiu: 1981




PCI


Numero de bits: 32 bits ou 64 bits
Velocidade, 32 bits: 132MiBps, 64bits: 264MiBps
Conectar periféricos em computadores baseados na arquitetura IBM PC
Data em que surgiu: 1990






AGP 



Numero de bits: 32 bits
Velocidade, 32 bits: 266MiBps,
Padrão para conectar um tipo de periférico a uma placa-mãe de computador,utilizado para a placa gráfica
Data em que surgiu: 1996








Bus                 Clock         Nº de Bits           Data per                Maximum
                                                                    Clock Cycle          Transfer Rate

AGP X1         66 MHz              32                         1                      266 MB/s
AGP X2         66 MHz              32                         2                      533 MB/s
AGP X4         66 MHz              32                         4                      1.066 MB/s
AGP X8         66 MHz              32                         8                      2.133 MB/s




PCI  Express


Data em que surgiu: 2004



Gestão de memória e o DMA

Gestao de memória é um complexo campo da ciência da computação e são constantemente desenvolvidas várias técnicas para torná-la mais eficiente. Em sua forma mais simples, está relacionado em duas tarefas essenciais:
A cada dia que passa os programadores necessitam de mais memória e mais programas rodando simultaneamente para poderem tratar cada vez mais informações. O tratamento necessário da memória utilizada não é uma tarefa fácil de ser implementada. Existem vários requisitos que devem ser observados para o correto funcionamento, tais como, Segurança, Isolamento, Performance, entre outros. Para isto a função de gerenciar a memória passa a ser do sistema operacional e não mais do aplicativo. Este desenvolve sua função a partir de duas tarefas, a Alocação de Memória e a Fragmentação.







O DMA permite que certos dispositivos de hardware  num computador acedam a memória  do sistema para leitura e escrita independentemente da CPU. Muitos sistemas utilizam DMA, incluindo controladores de disco, placas gráficas, de rede ou de som.O acesso dirceto da memória é usado igualmente para transferência de dados de núcleos em processadores multi-core, em especial nos sistema-em-microplaquetas do processador, onde seu elemento de processamento é equipado com uma memória local ,e o acesso direto da memória é usado para transferir dados entre a memória local e a memória principal.

Bus mastering é um recurso suportado por algumas arquiteturas de barramento, que permitem que um controlador - principalmente discos rígidos, unidades de CD-ROM e DVD-ROM, conectado a interface IDE ou SATA - se comunique diretamente com outro dispositivo, ou seja, a memória. Quem monitora essa operação não será o processador, e sim o chipset da placa mãe, ou seja, um conjunto de circuitos de apoio à placa mãe. As arquiteturas de barramentos modernas, incluindo PCI, suportam o bus mastering devido ao seu significante ganho de performance e atualmente quase todas as placa mães modernas suportam bus mastering.






quinta-feira, 4 de novembro de 2010

Memória Cache

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 (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 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.
Localiza-se em processadores, discos rígidos, sistemas, Motherboard entre outros.

Como por exemplo dentro de um CPU:

DRAM e SRAM

DRAM

DRAM é um tipo de memória RAM de acesso direto que armazena cada bit de dados num condensador ou Capacitor. O número de elétrons armazenados no condensador determina se o bit é considerado 1 ou 0. Como vai havendo fuga de elétrons do condensador, a informação acaba por se perder, a não ser que a carga seja refrescada periodicamente.

Embora esse fenômeno da perda de carga não ocorra nas memórias RAM estáticas (SRAM), as DRAM possuem a vantagem de terem custo muito menor e densidade de bits muito maior, possibilitando em um mesmo espaço armazenar muito mais bits (o que em parte explica o menor custo) e a sua simplicidade estrutural com apenas um transistor e um capacitor necessários para cada bit (ao contrário dos 4 transistores da SRAM).



WRAM

Janela de RAM ou WRAM é uma modificação de VRAM regular que tanto melhora o desempenho e reduz o custo de um bit para a base-bit. Projetado especificamente para uso em placas gráficas, WRAM também é de duas portas, mas tem a largura de banda de cerca de 25% a mais que VRAM.




VRAM

 VRAM é um acrónimo para Video RAM. Este é um termo geralmente usado em computadores para descrever RAM dedicada ao propósito de exibir gráficos bitmap em hardware gráfico. A Video RAM é normalmente fisicamente separada da RAM principal de um computador. Às vezes isto não acontece havendo alguns sistemas em que a VRAM é partilhada com a RAM do sistema.






SRAM

SRAM (Static Random Access Memory, que significa memória estática de acesso aleatório em Português) é 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 refrescadas (actualizadas de tempo em tempo), como é o caso das memórias DRAM.




SDRAM

As memórias SDRAM (Synchronous Dynamic RAM) por sua vez, são capazes de trabalhar sincronizadas com os ciclos da placa-mãe, sem tempos de espera. Isso significa que a temporização das memórias SDRAM é sempre de uma leitura por ciclo. Independentemente da freqüência de barramento utilizada, os tempos de acesso serão sempre de 6-1-1-1, ou mesmo 5-1-1-1.
 



quinta-feira, 28 de outubro de 2010

Endereços de memória

Esta imagem representa uma célula básica de memoria com um funcionamento muito simples que processa apenas um bit em que dados e onde entra a informação que vai ser processada, o R/W vai decidir se a informação vai ser gravada ou lida, por fim o s vai decidir se a célula esta activa ou desactivada.










CS (chip select) permite ou não activar a RAM

segunda-feira, 25 de outubro de 2010

Arquitectura de Van Neumann vs Arquitectura de Harvard

Arquitectura de Von Neumann

A Arquitectura de Von Neumann - É uma arquitectura 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.Esta arquitectura é um projecto modelo de um programa armazenado-computador digital que utiliza uma unidade de transformação e de um separado armazenamento estrutura para realizar ambas as instruções e dados.

A máquina proposta por Von Neumann reúne os seguintes componentes: uma memória, uma unidade aritmética e lógica (ALU), uma unidade central de processamento (CPU), composta por diversos registadores, e uma Unidade de Controle (CU), cuja função é a mesma da tabela de controle da Máquina de Turing universal: buscar um programa na memória, instrução por instrução, e executá-lo sobre os dados de entrada.


 Arquitectura de Harvard

A Arquitectura de Harvard baseia-se em um conceito mais recente que a de Von-Neumann, tendo vindo da necessidade de por o micro controlador para trabalhar mais rápido. É uma arquitectura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador.

Baseia-se na separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados, permitindo que um processador possa acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitectura de von Neumann, pois pode buscar uma nova instrução enquanto executa outra.





Arquitectura de Von Neumann vs  Arquitectura de Harvard