Escolar Documentos
Profissional Documentos
Cultura Documentos
PIPELINING:
A próxima instrução a ser processada é carregada da memória e decodificada ao mesmo
tempo em que é executada outra instrução.
As principais motivações para o uso de Pipelining são:
• O aumento de desempenho no processamento de dados.
• Aproveitamento de partes ociosas do processador durante o ciclo de instrução.
SuperPipelined e Superescalar:
Os processadores superPipelined alcançam o paralelismo através da extensão do
comprimento do Pipeline, aumentando o número de instruções executadas por ciclo. Porém,
devido a um número maior de instruções se encontrarem simultaneamente dentro do
Pipeline, problemas com interdependência entre as instruções e oscilações de dados
(atrasos cumulativos devido a erros no cache, largura de faixa no bus e outros problemas de
acesso a memória), aumentam o risco de travar o Pipeline. Outra causa de possível
travamento é a mudança do fluxo de instruções causado por interrupções e outros saltos ou
ramificações na lógica do programa. Todos estes problemas podem ocorrer, em teoria, com
qualquer Pipeline, mas a sua probabilidade de ocorrência aumenta substancialmente com o
superpipelining.
MULTIPROCESSAMENTO
Sistemas multiprocessados utilizam mais de um processador para melhorar seu
desempenho. O uso de processadores de maneira paralela (paralelismo físico) pode ser
subdividido em dois tipos: paralelismo espacial (paralelismo real) e paralelismo temporal
(Pipeline).
Pipeline aritmético: as Unidades de Lógica e Aritmética (ULA) de um computador podem
ser organizadas de maneira Pipeline.
Pipeline de instruções: a execução de um conjunto de instruções pode ser estruturada de
maneira Pipeline pela sobreposição da execução de instruções correntes com as operações
de busca, decodificação e busca de operandos das instruções subseqüentes.
Pipeline de processadores: refere-se ao processamento Pipeline de um conjunto de
dados em uma cadeia de processadores, onde cada um processa uma tarefa específica.
HIPER-THREAD (HT)
Thread é um sistema operacional capaz de executar diversos programas simultaneamente,
exemplos mais comuns são o Windows e o Linux. É claro que essa simultaneidade é falsa,
pois em muitos casos existe um único processador. Então, o que acontece é que esse
processador é compartilhado entre as diversas tarefas que estão em execução. Como esse
compartilhamento é muito rápido a sensação que se tem é que todas as tarefas estão sendo
executadas ao mesmo tempo. É o compartilhamento temporal do processador, ou time-slice.
A tecnologia HT permite que um processador atue como se fossem dois processadores
físicos e assim engane os sistemas operacionais e outros programas, levando-os a crer que
existam fisicamente dois processadores trabalhando.
PROCESSADORES MULTINÚCLEOS
A tecnologia Multicore (múltiplos núcleos) consiste em colocar duas ou mais unidades de
execução no interior de um único “pacote de processador” (um único chip).
Normalmente são processadores idênticos, tanto em termos de arquitetura quanto em
velocidade de processamento. O Sistema Operacional trata esses núcleos como se cada
um fosse um processador diferente, sendo o S.O. responsável pelo escalonamento das
tarefas (processos e/ou threads) para cada um dos processadores. Adicionar novos núcleos
de processamento a um processador, possibilita que as instruções das aplicações sejam
executadas em paralelo. Os processadores de múltiplos núcleos permitem trabalhar em um
ambiente multitarefa.
SUBSISTEMAS DE MEMÓRIA
Apesar de parecer simples como conceito, a memória de um computador exibe, talvez, a
mais vasta gama de: tipos, tecnologia, organização, rendimento e custos, de entre todas as
especificidades de um sistema de computação. O sistema de computação típico está
equipado com uma hierarquia de sub-sistemas de memória, alguns internos ao sistema
(diretamente acessíveis ao processador) e outros externos (acessíveis ao processador
através de um módulo de E/S).
UNIDADES DE TRANSFERÊNCIA
Em memórias primárias: é o número de bits que podem ser lidos/escritos de cada vez
(palavra).
Em memórias secundárias: é quantidade de blocos de dados lidos/escritos por vez.
Palavra
Célula
HIERARQUIA DE MEMÓRIAS
MÉTODOS DE ACESSO
Seqüencial
Direto
Associativo
É um tipo de memória de acesso aleatório (RAM) que compara a posição dos bits
pretendidos dentro de uma palavra conforme um padrão específico. As memórias cache
podem empregar acessos associativos.
DESEMPENHO
Taxa de transferência de dados
Tempo de acesso
É conceituado como o tempo decorrido entre dois ciclos sucessivos de acesso à memória.
As memórias dinâmicas perdem seu conteúdo em alguns instantes e dependem de ser
periodicamente atualizadas (ciclo de refresh). As SRAM, que não dependem de refresh, o
tempo de ciclo é igual ao tempo de acesso. As memórias dinâmicas, no entanto, requerem
ciclos periódicos.
Taxa de transferência
Pipelining em memórias
Muitos dos sistemas de memórias são projetados de maneira Pipelining, do mesmo modo
que processadores, permitindo que as operações de leitura/escrita sobreponham as de
operações de transferência de dados, de modo a melhorar a taxa de transferência.
Pré-carregamento
Paralelismo
Fornecem diversas cópias de toda a memória. Para manter o conteúdo de cada memória
igual, todas as operações de armazenamento precisam ser enviadas a cada cópia, fazendo
com que as operações de armazenamento sejam mais onerosas do que as operações de
leitura, em termos da quantidade de largura de banda que elas consomem.
Neste modelo de armazenamento cada memória contém apenas uma parte dos dados. Tal
mecanismo tem a vantagem de não conter dados redundantes. No entanto, há o problema
de que alguns pares de referências à memória terão como alvo o mesmo banco, exigindo
que uma das operações espere até que a outra esteja terminada.
TECNOLOGIAS
O núcleo da célula de bit SRAM consiste em dois inversores conectados numa configuração
back-to-back, ou seja, uma vez que um valor tenha sido colocado na célula de bit a estrutura
em anel dos dois inversores manterá o valor indefinidamente, por que cada entrada de um
inversor é oposta do outro. Esta forma de armazenamento também é conhecida por flip-flop.
Memória Cache
A cache localiza-se entre o processador e a MP. Tem como finalidade principal desafogar o
gargalo causado por acessos contínuos ao barramento da MP. Para isso mantém cópias de
dados e instruções, que seguem conforme a hierarquia de memória a partir da MP e após
seu processamento, os dados retornam para níveis inferiores da hierarquia. A organização
da cache geralmente é feita separando-se em cache de instruções e cache de dados. Dessa
forma é possível que dados e instruções possam ser transferidos simultaneamente. Quando
isso não acontece chamamos de cache unificada. Uma desvantagem de usar cachês
distintas é que escrever programas que se auto-modifiquem torna-se mais difícil, fazendo
que instruções sejam armazenadas como dados.
Processamento de desvios
Um dos principais problemas para o processador é ter muitos erros de cache, porque a
unidade de busca tem que acessar diretamente a Memória Principal e assim deixar o
sistema lento. Se no meio do programa houver uma instrução chamada JMP (“jump” ou “vá
para”) mandando o programa para uma posição de memória completamente diferente, essa
nova posição não será carregada na memória cache L2, fazendo com que a unidade de
busca vá buscar aquela posição diretamente na Memória Principal.
Memórias ROM (Read Only Memories)
ROM que pode ser programada pelo usuário depois de tê-la comprado. A PROM mais
comum contém fios de níquel-cromo muito finos que atuam como fusíveis. O usuário pode,
seletivamente ''queimar'' alguns destes fusíveis com correntes aplicadas aos pinos
apropriados e, assim, programá-la. Uma vez completado este procedimento de
programação, porém, o programa não poderá mais ser alterado, de forma que ele deverá
estar correto na primeira vez.
Pode ser programada pelo usuário e também pode ser apagada e re-programada quantas
vezes for necessário. Uma vez programada, a EPROM é uma memória não-volátil que
manterá os dados armazenados indefinidamente.
Esta é uma memória de leitura a maior parte das vezes que pode ser gravada em qualquer
momento sem apagar o conteúdo anterior. A operação de escrita leva um tempo
consideravelmente maior do que a operação de leitura. A EEPROM combina as vantagens
da não volatilidade com a flexibilidade da atualização usando o barramento de controle
convencional, endereços e linhas de dados.
Memória Flash
Memória Magnética
Memória Óptica
SUBSISTEMAS DE E/S
E/S EXTERNA
O Chipset
É o principal componente da placa-mãe, pois é ele quem comanda todo o fluxo de dados
entre o processador, as memórias e os demais componentes. Os barramentos ISA, PCI e
AGP, assim como as interfaces IDE, portas paralelas e seriais, além da memória e da cache
L2, são todos controlados pelo chipset. Além disso, é responsável pelas informações
necessárias ao reconhecimento de hardware.
O chipset é composto internamente de vários outros pequenos chips, um para cada função
que ele executa.
A maioria dos Chipsets é formada por dois chips principais, conhecidos como North Bridge
(Ponte Norte) e South Bridge (Ponte Sul). O North Bridge é ligado diretamente ao
processador e a partir dele é feito o acesso às memórias e ao barramento AGP, ele faz a
geração dos sinais e o controle do barramento PCI. Já o South Bridge controla as interfaces
IDE, USB, ISA e ele se comunica com o North Bridge através de um barramento PCI, ou
seja, ele também é um dispositivo PCI, mas interno à placa de CPU e, portanto, controlado
pelo North Bridge. No South Bridge também está conectado o BIOS e um chip chamado de
Super I/O, no qual estão as interfaces de mouse e teclado, interfaces seriais e paralelas e
interface para drive de disquete.
A parte genérica, como o próprio nome indica, é semelhante entre os diferentes tipos de
interfaces de e/s. É esta porção da interface que é vista pelo processador. Em geral, na
parte genérica existem alguns registradores, cujo número e função depende em parte do
tipo de periférico acoplado à interface. No entanto, na maioria das interfaces a parte
genérica inclui pelo menos um registrador de dados, um registrador de controle e um
registrador de estado. O acesso a cada um destes registradores é feito pelo processador
através de um endereço de e/s diferente.
A parte específica interage diretamente com o periférico, e por isso ela difere bastante entre
os diferentes tipos de interfaces. No entanto, apesar das diferenças, a parte específica na
maioria das interfaces possui dois conjuntos de sinais. Um deles é a própria via através da
qual são transferidos os dados entre a interface e o periférico. O outro conjunto é formado
pelos sinais usados no controle do periférico.
Na e/s com polling, o processador controla toda a transferência de dados entre a memória e
a interface de e/s. Normalmente, o registrador de estado possui um bit, chamado done bit,
que é desativado quando um dado é escrito no registrador de dados, sendo ativado quando
este dado é escrito no setor do disco. Após escrever um dado no registrador de dados, o
processador lê o registrador de estado e testa o done bit, para verificar se o mesmo já foi
escrito no setor do disco. Este teste do bit de estado é chamado polling. O processador
continua realizando o polling até encontrar o done bit ativado, o que indica que o dado já foi
escrito no setor do disco. Quando isto acontece e se ainda existe algum dado a ser enviado,
o processador escreve o novo dado no registrador de dados e reinicia o polling. Este ciclo é
repetido até que todos os dados tenham sido escritos no setor do disco. A principal
vantagem da e/s com polling é a sua simplicidade. No entanto, esta técnica possui a
desvantagem de que o processador fica dedicado à operação de e/s. Isto pode ser
extremamente ineficiente, sob o ponto de vista da utilização do processador.
A interface é responsável por notificar o processador quando um novo dado pode ser
transferido. Enquanto a e/s com polling é uma técnica puramente de software, a e/s com
interrupção requer um suporte de hardware. A interface deve gerar um sinal de
interrupção, através do qual ela notifica o processador quando uma operação de e/s foi
concluída.
E/S com Acesso Direto à Memória
PADRÕES DE BARRAMENTOS
HYPER TRANSPORT
Interface PCI
Interface AGP
A Accelerated Graphics Port é uma interface desenvolvida para gráficos de alta performance
(especialmente gráficos 3D). Ao invés de usar o barramento PCI para dados gráficos, o AGP
introduz um canal ponto-a-ponto (conecta somente dois dispositivos e nenhum outro
dispositivo pode compartilhar esta conexão) dedicado para que a controladora gráfica possa
acessar diretamente a memória principal.
PCI-EXPRESS
O objetivo deste padrão é fazer com que o computador seja capaz de reconhecer e
configurar automaticamente qualquer periférico instalado, reduzindo o trabalho do usuário a
apenas encaixar o novo componente. Quando o computador é inicializado a BIOS envia
uma interrogação para cada periférico instalado, o PnP é capaz de responder, permitindo
seu reconhecimento.
Na transmissão serial, os dados fluem rapidamente por um canal bit a bit, em série, “um
atrás do outro” por assim dizer. A transição paralela, que consiste em grupos de bits sendo
enviados juntos, simultaneamente em um meio compartilhado, sendo o meio mais direto e
rápido de se transmitir dados, pois os bits de dados são enviados grupos de uma única vez.
IDE/ATA
A ATA implementa uma topologia de canal, com cada canal suportando dois dispositivos de
armazenamento em massa - o mestre e o escravo. Estes termos podem ser mal
interpretados, pois implicam algum tipo de relação entre os dispositivos, mas este não é o
caso. A seleção de qual dispositivo é o mestre e qual é o escravo é feita normalmente
através do uso de blocos jumper em cada dispositivo.
Interface SCSI
SCSI é uma tecnologia criada para acelerar a taxa de transferência de dados entre
dispositivos de um computador. O padrão SCSI é muito utilizado para conexões de HD
(Disco Rígido), scanners, impressoras, CD-ROM ou qualquer outro dispositivo que necessite
de alta transferência de dados. As vantagens do SCSI não se resumem apenas à questão
da velocidade, mas também da compatibilidade e estabilidade. Sendo o processador o
dispositivo mais rápido do computador, o uso do padrão SCSI permite que essa velocidade
seja aproveitada e assim, aumentá-se de forma considerável o desempenho do computador.
Serial ATA
O padrão Serial ATA (ou SATA - Serial Advanced Technology Attachment) é uma tecnologia
para discos rígidos que surgiu no mercado no ano 2000 para substituir a tradicional interface
PATA (Paralell ATA ou somente ATA ou, ainda, IDE).
O nome de ambas as tecnologias já indica a principal diferença entre elas: o PATA faz
transferência de dados de forma paralela, ou seja, transmite vários bits por vez, como se
estes estivessem lado a lado. No SATA, a transmissão é em série, tal como se cada bit
estivesse um atrás do outro. Por isso, você deve imaginar que o PATA é mais rápido, não?
Na verdade, não é. A transmissão paralela de dados (geralmente com 16 bits por vez) causa
um problema conhecido como "ruído", que nada mais é do que a perda de dados
ocasionada por interferência.
Interface USB
Trata-se de uma tecnologia que tornou mais simples e fácil a conexão de diversos tipos de
aparelhos.
Interface Firewire
A Operação Assíncrona
Pontes Firewire são consideradas portais inbound, já que elas examinam o barramento para
detectarem pacotes primários assíncronos (que iniciam o protocolo de uma comunicação)
enviados por outros barramentos. Já o portal que transmite o pacote primário é chamado de
portal "outbound".
Numa operação inbound, as pontes ficam constantemente monitorando o barramento à
procura de pacotes primários. No momento que encontra um pacote primário, a ponte
examina o identificador de nó virtual, contido no pacote, e verifica, na topologia de rede
calculada após o reset, se o nó de destino na transação está "pendurado" num dos
barramentos dos portais da ponte. Caso isto ocorra, o portal destino recebe o pacote e inicia
uma operação outbound para retransmitir o pacote primário detectado para os barramentos
hierarquicamente conectados a ele.