Buscar

arquitetura-1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 208 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 208 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 208 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Arquitetura de Computadores I
Hamilton Soares da Silva
UFPb – CCEN - DI
Bibliografia:
Organização Estruturada de Computadores 5ª edição
	 Autor: Andrew S. Tanenbaum
Arquitetura e Organização de Computadores 8ª edição
Autor: William Stalings
PC: um guia Prático de Hardware e Interfaceamento
	 Autores: Ricardo Zelenovsky
 Alexandre Mendonça
Sumário:
1. Introdução
2. Organização dos Sistemas Computadores
3. Nível da Lógica Digital
4. Nível da Microarquitetura
5. Nível da Arquitetura do Conjunto de Instruções
6. Nível do Sistema Operacional
1. INTRODUÇÃO
O Computador Digital é uma máquina que pode resolver problemas
para as pessoas através da execução de instruções que lhe são oferecidas
Uma seqüência de instruções que descrevem como realizar uma certa
tarefa recebe o nome de programa.
Os circuitos eletrônicos de cada computador podem reconhecer e 
executar diretamente um conjunto limitado de instruções simples
dentro do qual todo o programa deve ser convertido antes de poder ser
executado. 
Ex. ADD 2 números
 Verifique um número para vê se ele é zero
 Copie um dado de uma posição de Memória para uma outra
Esse conjunto de instruções simples forma uma linguagem na qual é
possível as pessoas se comunicarem com o computador. Esta linguagem
 é chamada Linguagem de Máquina.
 
NÍVEL DA LÓGICA DIGITAL
NÍVEL DA MICROARQUITETURA/
LÓGICA DE CIRCUITOS
NÍVEL DA ARQUITETURA DO
CONJUNTO DE INSTRUÇÕES
NÍVEL DE MÁQUINA DO
SISTEMA OPERACIONAL
NÍVEL DA LINGUAGEM ASSEMBLY
NÍVEL DA LINGUAGEM ORIENTADA
AO PROBLEMA
FIGURA 1: COMPUTADOR COM SEIS NÍVEIS. O MÉTODO
UTILIZADO DE SUPORTE PARA CADA NÍVEL É INDICADO ABAIXO
DO RETÄNGULO.
HARDWARE
INTERPRETAÇÃO (MICROPROGRAMA OU
EXECUÇÃO DIRETA)‏
INTERPRETAÇÃO PARCIAL (SISTEMA OPERACIONAL)‏
TRADUÇÃO ( MONTADOR ASSEMBLER)‏
TRADUÇÃO ( COMPILADOR)‏
História dos Computadores do ponto de vista tecnológico:
1. Primeira Geração - Válvulas(1945-1955)‏
2. Secunda Geração - Transistores(1955-1965)‏
3. Terceira Geração - Circuitos Integrados(1965-1980)‏
4. Quarta Geração - Integração em Muito Larga Escala(VLSI-1980 - ?) 
PONTOS MARCANTES NA HISTÓRIA DOS COMPUTADORES DIGITAIS
2. ORGANIZAÇÃO DOS SISTEMAS
 COMPUTADORES
Um Computador Digital consiste de um sistema 
interconectado de processadores, memórias e 
dispositivos de entrada/saída. 
Processadores, memórias e dispositivos de 
entrada/saída são conceitos chaves e estarão
presentes em cada nível de abstração.
Todas as partes que formam o Computador 
Digital são interconectados por barramentos.
 
UNIDADE CENTRAL DE PROCESSAMENTO
MEMÓRIA
DISPOSITIVOS 
DE 
ENTRADA 
E
SAÍDA
FIGURA 2: COMPUTADOR DIGIAL CONCEBIDO POR VON NEUMANN
Funções da Unidade Central de Procesamento
É o cérebro do computador, sua função é executar os programas armazenados na memória Principal através da busca de instruções, exame para identificação e execução uma após outra, na sequëncia definida pelo programa.
Funções da Memória
Responsável pelo armazenado de instruções e dados a serem processados, bem como os seus resultados. 
 Funções das Unidades de Entrada 
Interface com o usuário com a finalidade de permitir que ele entre com programas e dados no computador.
 Funções das Unidades de Saída 
Interface com o usuário com a finalidade de permitir que ele receba o resultado das tarefas que lhe foram alocadas.
 2.1 Unidede Central de Processamento 
Unidade de Controle
Unidade Lógica e Aritmética
Registradores
PARTE OPERATIVA
 Funções da Unidade Lógica e Aritmética 
Responsável pelas operações Lógicas e Aritméticas necessárias para a execução das instruções.
 Funções dos Registradores 
Responsáveis pelo armazenado temporário dos dados que estão sendo processados, bem como os seus resultados. Ao conjunto de Registradores da-se o nome de Memória de Rascunho.
 Funções da Unidade de Controle
Decodifica o código de Máquina trazido da Memória para determinar quais blocos funcionais, internos e externos, serão ativados.
Gera os sinais para configurar blocos e vias de dados; coordena o tráfego dos barramentos e especifica a operação da Unidade Lógica e Aritmética e a operação da Memória.
Execução de Instrução:
A UCP executa cada instrução em uma série de pequenos passos:
1. Busca a próxima instrução da memória e a coloca dentro do 
Registrador de Instrução.
2. Posiciona o Contador de Programa para apontar para a próxima instrução.
3. Determina o tipo de instrução buscada.
4. Se a instrução utiliza uma palavra na memória, determina onde ela está.
5. Busca a palavra, se necessário, a coloca dentro de um registrador.
6. Executa a instrução.
7. Vai para o passo 1 para começar a execução de uma nova instrução.
 
FIGURA 4: O CAMINHO DE DADOS DE UMA MÁQUINA DE VON NEUMANN
PERTE OPERATIVA:
REGISTRADORES, BARRAMENTOS E
UNIDADE LÓGICA E ARITMÉTICA.
Tipos de Unidade de Controle
“HardWired”: Os sinais e seqüências de controle para cada configuração da parte operativa são gerados por circuitos digitais interligados especificamente p/ cada uma.
Microprogramada: As sinais e seqüências de controle são agrupados em “palavras” armazenadas em memória ROM ou RAM no interior da Unidade de Controle. 
Unidade de Controle “hardwired”
Um Circuito Digital p/ Cada Instrução
Difícil Reconfiguração Com Integração Crescente Ao Longo Dos Anos
A Mínima Evolução/Correção=Outro Projeto
n Instruções ~ n projetos digitais específicos
Aplicáveis principalmente em computadores c/ conjunto de instrução reduzido - RISC
“Imbatíveis” nas aplicações p/ as quais foram projetadas 
Unidade de Controle Microprogramada
Permite parte “hardwired” “simplificada”
Dada uma parte operativa potente e versátil, permite alteração dos microprogramas.
 ROM, novo projeto consiste na sua troca
FLASHROM, SRAM, RAM: reprogramar/carregar 
Simplicidade parte operativa maior microprograma e vice versa
Solução adotada nas máquinas CISC 
RISC x CISC:
RISC _ Reduced Instruction Set Computer
CISC _ Complex Instruction Set Computer
Características RISC:
1.Instrução de Maquina executada diretamente no Hardware.
2. Todas as operações Lógicas e Aritméticas executadas entre Registradores.
3. Instruções de Leitura e escrita de Memória do tipo Load/ Store.
4. A Unidade de Controle é implementada em hardware
5. Todas as instruções executadas em um único ciclo.
Características CISC:
1. Instrução de Maquina executada por interpretador.
2. Diversos modos de endereçamento para todas as instruções
3. A Unidade de Controle implementada em memória ROM ou RAM.
4. Facilidade de acrescentar novas instruções.
5. Projeto estruturado permite eficiente desenvolvimento e teste de 
instruções complexas.
Princípios de Projeto para Computadores Modernos:
1. Todas as Instruções mais comuns são executadas diretamente pelo 
Hardware.
2. Maximizar a taxa na qual as instruções são enviadas para o processador.
3. Instruções fáceis de decodificar.
4. Apenas instruções do tipo LOAD/STORE referenciam a Memória.
5. O Processador deve possuir muitos registradores, no mínimo 32.
Arquitetos de Computadores estão constantemente sendo obrigados a
aumentar o desempenho das máquinas que eles projetam.
O aumento de desempenho é obtido através do incremento da velocidade
do relógio e pela utilização recursos de paralelismo.
O paralelismo é implementado de duas maneiras: 
 1. Paralelismo a nível de Instrução_ O paralelismo é explorado
dentro da execução de instruções, levando a máquina a colocar para fora
o maior número de instruções/segundo possível.
 2. Paralelismo a nível de Processadores_ Múltiplas UCPs trabalham
juntas para executar o maior número de instruções possíveis.
PARALELISMO A NÍVEL DE INSTRUÇÃO:
Processadores com paralelismo no nível da instrução exploram o fato de que muitas das instruções
em um programa seqüencial não dependem das instruções que as precedem imediatamenteno programa.
O desempenho de processadores com Paralelismo no Nível da Instrução está limitado pela quantidade de 
paralelismo no nível da instrução que o compilador e o hardware podem localizar no programa.
 
O paralelismo no nível da instrução é limitado por diversos fatores: 
1.dependências de dados
2.dependências de nomes (riscos EAL e EAE)‏
3.desvios. 
Além disso, uma determinada capacidade do processador para explorar o paralelismo no nível da instrução 
pode ser limitada pelo número e pelo tipo de unidades de execução que estão presentes e por restrições aos 
tipos de instruções do programa que podem ser examinados de modo a localizar operações que passam ser 
executadas em paralelo. 
Existem dois tipos de paralelismo a nível de Instrução:
1. Paralelismo Temporal (Pipelinine)‏
2. Paralelismo Espacial
 
PARALELISMO TEMPORAL (Pipelinine ):
PIPELINE É A TÉCNICA DE SOBREPOR A EXECUÇÃO DE DIVERSAS 
INSTRUÇÕES PARA REDUZIR O TEMPO DE EXECUÇÃO DE UM CONJUNTO DE 
INSTRUÇÕES. 
CADA INSTRUÇÃO DEMORA UM DETERMINADO PERÍODO PARA 
SER EXECUTADA EM UM PROCESSADOR COM PIPELINE, DA MESMA FORMA 
QUE ELA DEMORARIA EM UM PROCESSADOR QUE NÃO TIVESSE 
PIPELINE (DEMORARIA MAIS, NA VERDADE, PORQUE O PIPELINIE 
ACRESCENTA HARDWARE AO PROCESSADOR), 
MAS A TAXA PELA QUAL AS INSTRUÇÕES SERIAM EXECUTADAS É 
AUMENTADA PELA EXECUÇÃO SOBREPOSTA DE INSTRUÇÕES. 
QUANDO DISCUTIMOS PIPELINE E O DESEMPENHO DE COMPUTADORES EM 
GERAL, DOIS TERMOS SÃO FREQÜENTEMENTE UTILIZADOS: LATÊNCIA E 
TAXA DE RENDIMENTO (THROUGHPUT). 
A LATÊNCIA É A QUANTIDADE DE TEMPO QUE 
UMA ÚNICA OPERAÇÃO DEMORA PARA SER EXECUTADA. 
A TAXA DE RENDIMENTO É A TAXA NA QUAL AS OPERAÇÕES SÃO 
EXECUTADAS (GERALMENTE EXPRESSA COMO OPERAÇÕES/SEGUNDO 
OU OPERAÇÕES/CICLO).
EM UM PROCESSADOR QUE NÃO TENHA PIPELINE, A TAXA DE 
RENDIMENTO É: 1/LATÊNCIA 
UMA VEZ QUE CADA OPERAÇÃO É EXECUTADA POR SI SÓ. 
EM UM PROCESSADOR COM PIPELINE, A TAXA DE 
RENDIMENTO É MAIOR QUE O INVERSO DA LATÊNCIA, 
UMA VEZ QUE A EXECUÇÃO DA INSTRUÇÃO É SOBREPOSTA. 
NO ENTANTO, A LATÊNCIA DE 
UM PROCESSADOR COM PIPELINE AINDA É IMPORTANTE, 
NA MEDIDA EM QUE 
ELA DETERMINA COM QUE FREQÜÊNCIA INSTRUÇÕES 
DEPENDENTES PODEM 
SER EXECUTADAS. 
PARA IMPLEMENTAR O PIPELINE, OS PROJETISTAS DIVIDEM O CAMINHO DE DADOS DE UM PROCESSADOR EM SEÇÕES
E COLOCAM LACHES ENTRE CADA SEÇÃO. NO INÍCIO DE CADA CICLO, OS LATCHES LÊEM AS SUAS ENTRADAS E AS COPIAM
PARA SUAS SAÍDAS, AS QUAIS PERMANECERÃO CONSTANTES POR TODO O RESTO DO CICLO. ISTO DIVIDE O CAMINHO DE 
DADOS EM DIVERSAS SEÇÕES, CADA UMA DAS QUAIS TÊM A LATÊNCIA DE UM CICLO DE RELÓGIO, UMA VEZ QUE UMA 
INSTRUÇÃO NÃO PODE PASSAR ATRAVÉS DE UM LATCH ATÉ QUE O PRÓXIMO CICLO SEJA INICIADO. 
A PARCELA DO CAMINHO DE DADOS QUE UM SINAL ATRAVESSA EM UM CICLO É CHAMADA DE ESTÁGIO DO PIPELINE, 
E OS PROJEISTAS FREQÜENTEMENTE DESCREVEM UM PIPELINE QUE TENHA N CICLOS COMO UM PIPELINE DE N ESTÁGIOS. 
BUSCA DE
INSTRUÇÃO
DECODIFICAR 
INSTRUÇÃO
CALCULAR
OPERANDOS
BUSCAR
OPERANDOS
EXECUTAR
INSTRUÇÃO
ESCREVER
OPERANDO
BUSCA DE
INSTRUÇÃO
LATCH
DECODIFICAR INSTRUÇÃO
LATCH
BUSCAR OPERANDOS
LATCH
EXECUTAR INSTRUÇÃO
LATCH
ESCREVER OPERANDO
CALCULAR OPERANDOS
LATCH
DIAGRAMA DE TEMPO PARA UM PIPELINE DE 6 ESTÁGIOS
DURAÇÃO DE CICLOS EM PROCESSADORES COM PIPELINE:
A duração do ciclo em um processador com pipelines é dependente de quatro fatores:
 
A duração do ciclo da parte do processador que não tem pipeline
O número de estágios do pipeline
A homogeneidade com que a lógica do caminho de dados é dividida entre os estágios 
A latência dos latches.
 Se a lógica pode ser dividida homogeneamente entre os estágios do pipeline, o período de relógio de um
 processador com pipelining é:
Duração do ciclocom_pipeline = duração do ciclosem_pipeline + latência do latch
			 número de estágios de pipeline
À medida que o número de estágios aumenta, a latência do latch toma-se uma parte cada vez maior da 
duração do ciclo, limitando o benefício de dividir um processador em um número muito grande de 
estágios de pipeline.
Exemplo Um processador sem pipeline tem uma duração de ciclo de 25 ns. Qual é a duração do ciclo de 
uma versão deste processador com pipeline de 5 estágios divididos homogeneamente, se cada latch tem 
uma latência de 1 ηs? E se o processador foi dividido em 50 estágios de pipeline? 
Aplicando a equação acima, a duração do ciclo para o pipeline de 5 estágios = (25 ns/5) + 1 ns = 6 ns. 
Para o pipeline de 50 estágios, a duração do ciclo = (25 ns/50) + 1 ns = 1,5 ns. No pipeline de 5 estágios, a
latência do latch é apenas 1/6 da duração global do ciclo, enquanto que a latência do latch é 2/3 da 
duração total do ciclo no pipeline de 50 estágios. Uma outra maneira de ver isto é que o pipeline de 50
estágios tem uma duração de ciclo que é um quarto daquela do pipeline de 5 estágios, a um custo de 10 
vezes mais latches. 
Com freqüência, a lógica do caminho de dados não pode ser facilmente dividida em estágios de 
pipeline com latência igual. Por exemplo, acessar o banco de registradores em um processador pode 
demorar 3 ns, enquanto que decodificar uma instrução pode demorar 4 ns.
Quando um processador não pode ser dividido em estágios de pipeline com latência igual, a duração
do ciclo de relógio do processador é igual a latência do estágio de pipeline mais longo, mais o atraso 
do latch, uma vez que a duração do ciclo tem que ser longa o suficiente para que o estágio de 
pipeline mais longo possa completar e armazenar os seus resultados no latch que está entre ele e o 
próximo estágio. 
Exemplo Suponha que um processador sem pipeline, com uma duração de ciclo de 25 ns, esteja 
dividido em 5 estágios de pipeline com latências de 5, 7, 3, 6 e 4 ns. Se a latência do latch for de 1 ns, 
qual é a duração do ciclo do processador resultante? 
Solução
O estágio de pipeline mais longo demora 7 ns. Somando o atraso de latch de 1 ns a este estágio, resulta
Em uma latência total de 8 ns, que é a duração do ciclo. 
Pipelines com estágios não uniformes utilizam a mesma fórmula, embora tenham um aumento ainda 
maior na latência, porque a duração do ciclo precisa ser longa o suficiente para acomodar o estágio 
mais longo mesmo se os outros estágios forem muito mais curtos. Exemplo Suponha que processador 
sem pipeline, com uma duração de ciclo de 25 ns, está dividido e de pipeline com latências de 5, 7, 3, 
6 e 4 ns. Se a latência do latch for de 1 ns, qual é a latência do pipeline resultante? 
Solução 
Este é o mesmo pipeline do exemplo anterior e tem uma duração de ciclo de 8 ns. 
Uma vez que existam 5 estágios no pipeline, a latência total é de 40 ns. 
DEPENDÊNCIAS ENTRE INSTRUÇÕES:
• Num pipeline é necessário verificar e impedir situações de conflitos causadas pelo fluxo de várias instruções simultaneamente
• Existem três tipos de conflitos:
	• Dependências de Dados
		• dependências de dados verdadeira
		• Antidependências
		• dependência de saída
	• Dependências de Controle
	• Conflitos de Recursos
DEPENDÊNCIA DE DADOS:
• Dependências de Dados Verdadeira
Instruções necessitam de valores produzidos por instruções anteriores:
 LAE_ Leitura Após Escrita.
ADD ax, si
SUB si,ax
• Antidependência
Instrução emprega valor que é atualizado por instrução posterior
• EAL_ Escrita Após Leitura.
ADD bx, di
SUB di, dx
• Dependências de Saída
EAE _ Escrita Após Escrita
ADD cl, ah
SUB cl, bl
DEPENDÊNCIA DE CONTROLE:
• Chamada também Dependência Procedural
• Impossibilidade de conhecer o resultado de um desvio condicional antes de executá- lo
• O pipeline fica sem saber se executa o fluxo principal ou se desvia
• Para resolver o problema são criadas Técnicas de Previsão de Desvios.
DEPENDÊNCIA DE RECURSOS:
• Também conhecido por Hazard Estrutural
• Resultado da competição de duas ou mais instruções pelo mesmo recurso ao mesmo tempo
• Soluções:
	 uma das instruçõesdeve esperar
 	 aumento dos recursos
EFEITO DE UM DESVIO CONDICIONAL NA OPERAÇÃO DO PIPELINE DE INSTRUÇÃO
PIPELINE DE INSTRUÇÃO DE UM PROCESSADOR DE SEIS ESTÁGIOS
EFEITOS DO PIPELINE EM UMA ARQUITETURA RISC A INSTRUÇÃO NOOP(NO OPERATION) É INSERIDA PELO COMPILADOR OU ASSEMBLER POR CAUSA DOS ATRASOS DE DESVIOS E DADOS.
INSTRUÇÕES INVERTIDAS GANHA 1 CICLO DE RELÓGIO
USO DA INSTRUÇÃO NOOP EVITA CIRCUITO PARA ESVAZIAR PIPELINE
ARQUITETURAS SUPERESCALARES:
40
Intruction
fetch unit
Intruction
decode
 unit
Operand
fetch unit
Intruction
execution
 unit
Write back
 unit
S1 S2 S3 S4 S5
Intruction
decode
 unit
Operand
fetch unit
Intruction
execution
 unit
Write back
 unit
Múltiplos pipelines: Pentium (pipeline u x pipeline v)
Nesse caso é preciso determinar se as instruções podem ser executadas em paralelo inicialmente (stalls, dependências)
S4 pode dominar os tempos 
Os demais estágios são muito mais simples
Arquitetura Superescalar com 5 unidades funcionais especializadas
PROCESSADORES MATRICIAIS _ REALIZAM A MESMA SEQUENCIA
DE INSTRUÇÕES SOBRE DIFERENTES CONJUNTOS DE DADOS 
 ULA
Memória
PARALELISMO A NÍVEL DE PROCESSADOR:
A ARQUITETURA BÁSICA DE UM SISTEMA MULTIPROCESSADO COM MEMÓRIA
COMPARTILHADA CONSISTE DE VÁRIOS CONJUNTOS PROCESSADORES/CACHES 
COMPARTILHANDO A MESMA MEMÓRIA FÍSICA, TIPICAMENTE LIGADAS A UM
BARRAMENTO. EM GRANDES PROJETOS MÚLTIPLOS BARRAMENTOS, OU SWITCHES, 
PODEM SER USADOS DESDE QUE A PROPRIEDADE CHAVE PERMANEÇA, QUE É
TEMPO DE ACESSO UNIFORME A TODOS OS PROCESSADORES.
A ARQUITETURA BÁSICA DE UM SISTEMA DISTRIBUÍDO CONSISTE DE UM
NÓ CONTENDO UM PROCESSADOR, ALGUMA MEMÓRIA, ALGUNS DISPOSITIVOS
DE ENTRADA/SAÍDA E UMA INTERFACE PARA UMA REDE DE INTERCONEXÃO
UM MULTIPROCESSADOR COM 16 UCPs COMPARTILHANDO UMA
MEMÓRIA COMUM. (b) UMA IMAGEM SENDO PARTICIONADA EM 16 SEÇÕES, 
CADA UMA SENDO ANALIZADA POR UMA UCP DIFERENTE.
UM MULTICOMPUTADOR COM 16 UCPs, CADA UM COM SUA MEMÓRIA PRIVADA
A IMAGEM ANTERIOR DIVIDIDA ENTRE AS 16 MEMÓRIAS
PARADIGMAS COMPUTACIONAIS:
(a) PIPELINE _ FLUXO DE DADOS LONGO COLOCA ATIVO TODOS OS PROCESSADORES.
(b) COMPUTAÇÃO EM FASE_ O TRABALHO É DIVIDIDO EM FASES, POR EXEMPLO
INTERAÇÕES DE UM LOOP. DURANTE CADA FASE, MULTIPLOS PROCESSOS 
TRABALHAM EM PARALELO, MAS QUANDO UM TERMINA ESPERA PELA CONCLUSÃO
DOS OUTROS ANTES DE INICIAR UMA NOVA FASE.
(c) DIVIDIR E VENCER_ UM PROCESSO INICIA E SE BIFURCA EM OUTROS PROCESSOS
PARA O QUAL ELE PASSA UMA DETERMINADA CARGA DO TRABALHO.
(d) REPLICAÇÃO DO TRABALHO_ EXISTE UMA FILA DE TRABALHO CENTRALIZADA
E PROCESSADORES BUSCA TAREFAS DA FILA E AS EXECUTA. SE UMA TAREFA GERA
NOVAS TAREFAS ELA É ADICIONADA A FILA CENTRAL.
MEDINDO O DESEMPENHO:
A MELHOR MEDIDA PARA O DESEMPENHO DE UM COMPUTADOR É O TEMPO DE EXECUÇÃO
 DE UM PROGRAMA, OU PROGRAMAS, QUE O USUÁRIO DESEJA EXECUTAR. ENTRETANTO, 
DEVIDO A DIVERSIDADE DE APLICAÇÕES É IMPRATICÁVEL TESTAR TODOS OS PROGRAMAS
QUE SERÃO EXECUTADOS EM UM DADO SISTEMA ANTES DE DECIDIR QUE COMPUTADOR
COMPRAR. ASSIM, OSPROJETISTAS DE COMPUTADORES PRODUZIRAM UM CERTO NÚMERO
DE UNIDADES PARA DESCREVER O DESEMPENHO DE COMPUTADORES.
MIPS ( MILHÕES DE INSTRUÇÕES POR SEGUNDO):
É A TAXA PELA QUAL A MÁQUINA EXECUTA INSTRUÇÕES. É OBTIDA ATRAVÉS DA DIVISÃO
DO NÚMERO DE INSTRUÇÕES EXECUTADAS EM UM PROGRAMA PELO TEMPO GASTO NA
SUA EXECUÇÃO.
A TAXA DE MIPS DE UM COMPUTADOR NADA DIZ A RESPEITO DE QUANTAS INSTRUÇÕES
SÃO NECESSÁRIAS PARA EXECUTAR UMA DADA TAREFA.
2. CPI/IPC(CICLOS POR INSTRUÇÃO/INSTRUÇÕES EXECUTADAS POR CICLO):
O CPI É CALCULADO DIVIDINDO-SE O NÚMERO DE CICLOS DE RELÓGIO NECESSÁRIOS PARA
EXECUTAR O PROGRAMA PELO NÚMERO DE INSTRUÇÕES EXECUTADAS.
O IPC É CALCULAO DIVIDINDO-SE O NÚMERO DE INSTRUÇÕES EXECUTADAS DE UM DADO
PROGRAMA PELO NÚMERO DE CICLOS DE RELÓGIO NECESSÁRIOS PARA EXECUTAR O
PROGRAMA.
ESSAS DUAS UNIDADES FORNECEM A MESMA INFORMAÇÃO E A ESCOLHA DE QUAL
UTILIZAR É BASEADA EM QUAL DOS VALORES É MAIOR QUE 1. ENTRETANTO, EM 
SISTEMAS QUE EXECUTAM MAIS DE UMA INSTRUÇÃO POR CICLO UTILIZA-SE IPC EM
LUGAR DE CPI.
EXEMPLO:
UM PROGRAMA CONSISTE DE UM LAÇO DE 100 INSTRUÇÕES QUE É EXECUTADO 42 VEZES.
SE DEMORA 16.000 CICLOS PARA EXECUTAR O PROGRAMA EM UM DADO SISTEMA, QUAIS
SÃO OS VALORES DE CPI E DE IPC DO SISTEMA PARA ESTE PROGRAMA?
NÚMERO DE INSTRUÇÕES = 100 x 42 = 4200.
CPI = NUMERO DE CICLOS / NÚMERO DE INSTRUÇÕES = 16000 / 4200 = 3,81.
IPC = NÚMERO DE INSTRUÇÕES / NÚMERO DE CICLOS = 4200 / 16000 = 0,26.
O IPC E O CPI NADA DIZEM COM RESPEITO A FREQUÊNCIA DE RELÓGIO DO SISTEMA OU DE
QUANTAS INSTRUÇÕES O SISTEMA EXIGE PARA EXECUTAR UMA TAREFA.
CONJUNTOS DE BENCHMARK:
O MIPS e o CPI/IPC têm limitações significativas como medidas de desempenho de computadores. Conjuntos de Benchmark (medição de desempenho) são uma terceira medida de desempenho de computadores e foram desenvolvidas para resolver as limitações do MIPS e do CPI/IPC.
Um conjunto de benchmark consiste de uma série de programas que acredita-se ser o correspondente Típico de programas que serão executados no sistema. A pontuação de um sistema no conjunto de benchmark é baseada em quanto tempo o sistema demora para executar todos os programas que o compõem.
Os conjuntos de benchmark fornecem várias vantagens sobre MIPS e CPI/IPC. Primeiro, os seus resultados de desempenho são baseados em tempos totais de execução, não na taxa de execução de instruções. Segundo, elas fazem uma média do desempenho do sistema por vários programas, de modo a gerar uma estimativa da sua velocidade média. Isto torna a avaliação geral do sistema em um conjunto de benchmark um indicador melhor do seu desempenho geral do que é a avaliação MIPS em qualquer programa isolado. 
MÉDIA GEOMÉTRICA VERSUS MÉDIA ARITMÉTICA:
Muitos conjuntos de benchmark utilizam a média geométrica, em vez da média aritmética, para fazer a média dos resultados dos programas contidos no conjunto de benchmark, porque um único valor extremo tem um impacto menor sobre a média geométrica de uma série do que sobre a média aritmética. 
A média geométrica de n valores é calculada multiplicando-se os n valores e tirando-se a raiz enésima
Do produto. A média aritmética, ou média de um conjunto de valores, é calculada somando-se todos os
valores e dividindo-se o resultado pelo número de valores.
Exemplo:
Quais são as médias aritmética e geométrica dos valores 4, 2, 4, 82?
A média aritmética desta série é:
4 + 2 + 4 + 82 = 23
 4
A média geométrica é:
 4 x 2 x 4 x 82 = 7,16
Note que a inclusão de um valor extremo na série teve um efeito muito maior sobre a média
aritmética do que sobre a média geométrica.
ACELERAÇÃO:
Freqüentemente, os projetistas de computadores utilizam o termo aceleração para descrever como o 
desempenho de uma arquitetura muda à medida que diferentes melhoramentos são feitos naquela 
arquitetura. A aceleração é simplesmente a razão entre os tempos de execução antes e depois que a 
mudança é feita, de modo que:
		Aceleração = 	Tempo de execuçãoAntes
			 		Tempo de execuçaoDepois
4
Por exemplo, se um programa demora 25 segundos para ser executado em uma versão de uma
arquitetura e 1:' segundos para ser executado em uma nova versão, a aceleração geral é de
25 segundos/15 segundos = 1,67. 
A LEI DE AMDAHL 
A regra mais importante para projetar sistemas de computadores de alto desempenho é faça com que o
mais comum seja rápido. Qualitativamente, isto significa que o impacto de um dado aperfeiçoamento 
sobre o desempenho geral depende tanto de quanto o aperfeiçoamento melhora o desempenho quando
ele é utilizado, como de com que freqüência esse aperfeiçoamento é utilizado. Quantitativamente, esta 
regra foi expressa pela Lei de Amdahl, que define:
	Tempo de execuçãonovo= Tempo de execuçãoAntigo x [ Parcelanão usada+ Parcelausada ]Aceleraçãousada
Na equação, Parcelanão_usada é a parcela de tempo (não instruções) na qual o aperfeiçoamento não está
em uso, Parcelausada é a parcela de tempo na qual o aperfeiçoamento está em uso e Aceleraçãousada 
é a aceleração que acontece quando o aperfeiçoamento é usado (isto seria a aceleração geral se o 
aperfeiçoamento fosse utilizado o tempo todo). Note que Parcelanãusada e Parcelausada são calculados
 utilizando o tempo de execução antes que as modificações sejam aplicadas. Calcular estes valores
 utilizando o tempo de execução depois que a modificação fosse aplicada daria resultados incorretos. 
A Lei de Amdahl pode ser reescrita utilizando a definição de aceleração para dar:
Aceleração = Tempo de execuçãoAntes = 		1 .
 Tempo de execuçaoDepois	 Parcelanão usada+ Parcelausada 
					 					Aceleraçãousada
Exemplo: 
Suponha que uma dada arquitetura não tenha suporte de hardware para multiplicações, de modo que 
as multiplicações tenham que ser feitas por meio de adições repetidas (este é o caso de alguns dos
primeiros microprocessadores). Se demora 200 ciclos para executar uma multiplicação por software 
e quatro ciclos para executar a multiplicação por hardware. 
Qual é a aceleração geral produzida pelo hardware para suporte de multiplicações, se um programa
gasta 10% do seu tempo fazendo multiplicações? E com um programa que gasta 40% do seu tempo
fazendo multiplicações?
Solução:
 
Em ambos os casos, quando é utilizado hardware para multiplicações a aceleração é 200/4 = 50 (razão 
entre o tempo para fazer uma multiplicação sem e com o hardware). No caso em que o programa gasta 
10% do seu tempo fazendo multiplicações, Parcelanão_usada = 0,9 e Parcelausada = O, 1. Colocando estes 
valores na Lei de Amdahl, temos: Aceleração = 1/[0,9 + (0,1/50)] = 1,11. Se o programa gasta 40% do 
seu tempo fazendo multiplicações, antes que o hardware para multiplicações seja acrescentado, 
então Parcelanão_usada = 0,6 e Parcelausada = 0,4 e obtemos Aceleração = 1/[0,6 + (0,4/50)] = 1,64. 
Este exemplo ilustra o impacto sobre o desempenho geral que tem a parcela de tempo na qual um 
aperfeiçoamento é utilizado. À medida que a Aceleraçãousada vai para o infinito, a aceleração geral 
converge para 1/Parcelanão_usada, porque o aperfeiçoamento nada pode fazer a respeito do tempo de
 execução da parcela do programa que não utiliza o aperfeiçoamento. 
MÉTODOS DE COMUNICAÇÃO:
TROCA DE MENSAGENS E VARIÁVEIS COMPARTILHADA.
CLASSIFICAÇÃO DE COMPUTADORES PARALELOS PROPOSTO POR FLYNN.
UMA _ ACESSO DE MEMÓRIA UNIFORME.
NUMA_ ACESSO DE MEMÓRIA NÃO UNIFORME. EXISTE UM SIMPLES ESPAÇO DE
ENDEREÇO VISÍVEL PARA TODAS AS UCPs. O ACESSO REMOTO É FEITO USANDO
LOAD E STORE. O ACESSO REMOTO É MAIS LENTO QUE A MEMÓRIA LOCAL.
COMA_ ACESSO SÓ A MEMÓRIA CACHE. UTILIZA CADA MEMÓRIA PRINCIPAL DA 
UCP COMO UM CACHE. 
DIAGRAMA DE COMPUTADORES PARALELOS:
2.2 MEMÓRIAS:
2.2.1 MEMÓRIAS NÃO VOLÁTEIS:
PROM _ ROM PROGRAMÁVEL PELO USUÁRIO.
EPROM_ ROM PROGRAMÁVEL E APAGÁVEL COM EXPOSISÃO À LUZ ULTRAVIOLETA
EEPROM_ ROM PROGRAMÁVEL E APAGÁVEL ELETRICAMENTE A NÍVEL DE BYTE.
FLASH-ROM_ ELA É PROGRAMADA E APAGADA ELETRICAMENTE, ENTRETANTO
 ELA NÃO É APAGADA A NÍVEL DE BYTE, E SIM A NÍVEL DE BLOCO. O TEMPO DE 
APAGAMENTO É MAIS RÁPIDO.
FLASH-BIOS_ É UM TIPO DE BIOS QUE PERMITE ATUALIZAÇÃO. A BIOS É GRAVADA EM
MEMÓRIAS FLASH-ROM.
2.2.2 MEMÓRIAS VOLÁTEIS:
ORGANIZAÇÃO DA MEMÓRIA:
TRËS MANEIRAS DE ORGANIZAR UMA MEMÓRIA DE 96 BITS DE TAMANHO
TIPOS E EMPACOTAMENTO DE MEMÓRIA:
PINAGEM SIMM72
MEMÓRIA DE 32 MB
BUFFER INVERSOR E NÃO INVERSOR, CONHECIDO TAMBÉM COMO TERCEIRO ESTADO.
(a) MEMÓRIA ESTÁTICA (b) MEMÓRIA DINÄMICA 
ESTUDO DA MEMÓRIA DRAM:
MEMÓRIA DRAM 2048x2048x4 BITS
 
DIAGRAMA DE TEMPO DA MEMÓRIA DINÂMICA
OUTROS TIPOS DE MEMÓRIAS RAM:
FPM RAM _ RAM COM MODO DE PÁGINA VELOZ. ESSA MEMÓRIA FOI UTILIZADA NOS
ANTIGOS 486 COM OS PENTES DE 30 PINOS. A MEMÓRIA ESPERA QUE O PRÓXIMO 
ACESSO ACONTEÇA NA MESMA LINHA E QUE, PORTANTO, SERÁ NECESSÁRIO ENVIAR 
APENAS O NOVO ENDEREÇO DA COLUNA. ATIVA RAS E DEPOIS CAS SUCESSIVOS
PERMITEM ACESSOS A DIVERSAS COLUNAS 
A LINHA CAS COMANDA O BUFFER DE SAÍDA. 
ESSA MEMÓRIA GASTA 5-3-3-3 PERÍODOS DE RELÓGIO.
2. EDO RAM, RAM COM SAÍDA DE DADOS EXTENDIDA
O NOME DESTA MEMÓRIA SERIA TRADUZIDO COMO RAM COM SAÍDA DE DADOS 
EXTENDIDA. A EDO RAM TRABALHA COM ACESSO SEQUENCIAIS, COM A DIFERÊNÇA 
QUE ELES ACONTECEM DE FORMA MAIS RÁPIDA. FOI ADICIONADO UM LATCH NA 
SAÍDA PARA RETER O DADO E LIBERAR O CAS PARA PARA SER USADO NA
TRANSFERÊNCIA DE UMA NOVA COLUNA.
ESSAS MEMÓRIAS ESTIVERAM DISPONÍVEIS COM OS TEMPOS DE ACESSOS DE 70s, 60s
E 50 s, PARA BARRAMENTOS DE 66 MHZ, E ATENDERAM AOS PENTIUM DE 100 MHZ
GRAÇAS AOS CHIPSETS TRITON HX E VX. NESSA SITUAÇÃO, ESSAS MEMÓRIAS
RESPONDIAM COM CICLOS 5-2-2-2.
3. BEDO RAM, RAM COM RAJADA DE DADOS EXTENDIDA
O OBJETIVO DA BEDO RAM É TRANSFERIR DADOS A CADA PERÍODO DE RELÓGIO.
O RACIOCÍNIO UTILIZADO FOI O DE CONSIDERAR QUE PARA CADA ENDEREÇO DE 
LINHA/COLUNA UTILIZADO, 4 OU MAIS PALAVRAS DE ENDEREÇOS DE COLUNA 
CONSECUTIVOS SÃO ENVIADOS, PORTANTO OS DOIS , OU TRÊS, OU QUATRO, 
ÚLTIMOS BITS É QUE SÃO MODIFICADOS, OS DEMAIS PERMANECEM INALTERADOS.
PENSANDO NISSO OS FABRICANTES DE MEMÓRIA CONSTRUÍRAM UM CONTADOR 
DE 2 BITS(EXISTEM FABRICANTES QUE DESENVOLVERAM CONTADORES DE 3 OU 4 BITS)‏
E DISPENSARAM A FASE DE TRANSFERÊNCIA DE ENDEREÇOS CONSECUTIVOS. OU SEJA, 
NUMA BEDO RAM, TRANSFERE-SE APENAS O PRIMEIRO ENDEREÇO DE COLUNA, OS
TRËS SEGUINTES SÃO GERADOS INTERNAMENTE POR UM CONTADOR.
UTILIZA-SE AINDA A TÉCNICA DE PIPELINE ATRAVÉS DA INTRODUÇÃO DE UM LATCH
PARA SEGURAR O DADO QUE VAI SER COLOCADO NA SAÍDA, LIBERANDO A MATRIZ DE 
CÉLULAS PARA PODER SER ACESSADA COM UM NOVO ENDEREÇO, ENQUANTO O LATCH 
EFETUA A TRANSFERÊNCIA DO DADO PARA O MEIO EXTERIOR.
AS MEMÓRIAS QUANDO TRABALHAM EM BARRAMENTOS DE 66 MHZ, OFERECIAM CICLOS 
DE 5-1-1-1. TRABALHANDO COM 64 BITS OFERECIAM UMA BANDA PASSANTE DE 264 MB/S.
ESSA MEMÓRIA NÃO TEVE UMA BOA ACEITAÇÃO POR DOIS MOTIVOS:
1. TECNOLOGIA NÃO PERMITIA TRABALHAR DE FORMA EFICIENTE COM BARRAMENTOS
DE MAIOR VELOCIDADE. 
2. SURGIU A SDRAM QUE ERA MAIS EFICIENTE E TRABALHAVA COM BARRAMENTOS DE 
100 MHZ.
ESTRUTURA SIMPLIFICADA DE MEMÓRIAS SÍNCRONAS DINÂMICAS 
MEMÓRIAS SDRAM:
A MEMÓRIA DRAM SÍNCRONA 
TEM O SEU CIRCUITO INTERNO
 REPROJETADO PARA
TORNAR OS DADOS DISPONÍVEIS
 A CADA CICLO DE RELÓGIO,
 ELIMINANDO A 
NECESSIDADE DE RAS E CAS 
SEREM GERADOS EM DOIS
 CICLOS DE RELÓGIO. ELA
 UTILIZA PIPELINE INTERNO
 DE MODO A INICIAR O 
SEGUNDO ACESSO ANTES
 DO PRIMEIRO TER SIDO
 PROCESSADO.
REGISTRADOR DE MODO DA MEMÓRIA SDRAM:
ELA É SINCRONIZADA PELO RELÓGIO DA PLACA MÃE. APRESENTA UM CONTADOR
INTERNO QUE GERA ENDEREÇOS CONSECUTIVOS. POSSUI DUAS MATRIZES DE CÉLULAS
PARA PERMITIR ACESSO SIMULTÂNEO A DUAS POSIÇÕES. OPERAM COM CICLOS 5-1-1-1,
COM TEMPOS DE ACESSOS DE 10nS(100MHz) E 15nS(66mhZ). AS MAIS RÁPIDAS 7,5 nS(133MHz)‏
5. DDR SDRAM, SDRAM COM TAXA DE DADOS DOBRADA: 
ELA TRABALHA COM DUAS MEMÓRIAS SDRAM EM PARALELO PERMITINDO ASSIM
DOBRAR A TAXA DE TRANSFERÊNCIA DE DADOS. ELA É CAPAZ DE ENTREGAR DOIS
DADOS POR CADA PERÍODO DE RELÓGIO, UM SINCRONIZADO COM O FLANCO DE
SUBIDA E OUTRO COM O FLANCO DE DESCIDA. A MEMÓRIA GASTA 1 PERÍODO DE
RELÓGIO PARA RECEBER O COMANDO E 1/2 PERÍODO PARA CADA TRANSFERÊNCIA.
PARA AUXILIAR NO SINCRONISMO DESSA TAXA DE DADOS, A MEMÓRIA OFERECE UM
STROBE BIDIRECIONAL DENOMINADO DQS. ESSE SINAL É GERADO PELA MEMÓRIA
NA LEITURA E FORNECIDO PELO CONTROLADOR DE MEMÓRIA NA ESCRITA.
ATUALMENTE É MELHOR SOLUÇÃO PARA SISTEMAS DE MEMÓRIA EAS MAIS
UTILIZADAS SÃO AS PC-100/200 E PC133/266 QUE EQUIPAM OS COMPUTADORES TO DE
LINHA COM P-III, P-IV E ATHLOM XP.
VELOCIDADE
LATÊNCIA CAS=2
LATÊNCIA CAS=2,5
-75 (7,5 s)‏
-10(10 s)‏
133 MHZ
100 MHZ
150 MHZ
133 MHZ
FREQUÊNCIA DE OPERAÇÃO DAS DDR SDRAM DA MICROM.
6.ENHANCED DRAM – EDRAM:
A MEMÓRIA EDRAM ELEVA O DESEMPENHO DA MEMÓRIA ACRESCENTANDO
UMA PEQUENA CACHE DE MEMÓRIA ESTÁTICA INTERNAMENTE AO CIRCUITO
INTEGRADO. DENTRO DESTA MESMA FILOSOFIA APARECEM AS MEMÓRIAS
CACHED DRAM (DA MITSUBISHI) E RAMBUS DRAM (DA RAMBUS INC.).
AS MEMÓRIAS CONVENCIONAIS FPM, EDO E SDRAM SÃO CONHECIDAS COMO
SISTEMAS DE CANAL LARGO, ONDE A COMUNICAÇÃO COM O PROCESSADOR
É REALIZADA NA MESMA LARGURA DE DADOS DO PROCESSADOR. ASSIM, 
MEMÓRIAS COM O PENTIUM OPERAM COM UMA LARGURA DE 64 BITS (8 BYTES).
UMA MEMÓRIA SDRAM DE 100 MHZ PODE TRANSFERIR 100x8, OU 800 MB/S.
AS MEMÓRIAS RDRAM (RAMBUS DRAM) OPERAM COM O CONCEITO DE CANAL
ESTRITO, TRANSFERINDO SOMENTE 16 BITS (2 BYTES) DE CADA VEZ PARA O
PROCESSADOR, MAS COM TAXAS BEM MAIORES. INTERNAMENTE A MEMÓRIA
POSSUI UM BARRAMENTO DE 128 BITS, MAS É DIVIDIDO EM 8 BANCOS DE 16 BITS,
PERMITINDO ASSIM 8 ACESSOS SIMULTÂNEO, INTERNAMENTE.
DESTE MODO, A CADA 10 s (100 MHZ) UMA MEMÓRIA RDRAM PODE OPERAR 
SOBRE 16 BYTES, O QUE PERMITE UMA TAXA DE 100x16, OU SEJA 1,6 GB/S. PARA
OPERAR COM O PROCESSADOR A ESTA TAXA É NECESSÁRIO O USO DE UMA
FREQUÊNCIA DE EXTERNA DE 800 MHZ (OU 400 MHZ SE AS TRANS FERÊNCIAS 
FOREM REALIZADAS NA DESCIDA E NA SUBIDA DO SINAL DE RELÓGIO.
SE NECESSÁRIO PODE-SE UTILIZAR DOIS OU QUATRO CANAIS, ELEVANDO A TAXA
PARA 3,2 GB/S OU 6,4 GB/S.
7. VRAM, RAM DE VÍDEO: 
TIPOS DE RAM ESTÁTICA:
ASYNC RAM: ESTA MEMÓRIA RAM ASSÍNCRONA É A VELHA MEMÓRIA ESTÁTICA
UTILIZADA PARA CONSTRUIR OS BANCOS DE CACHE. TIPICAMENTE ELA É
 ENCONTRADA COM TEMPOS DE ACESSO DE 20, 15 E 12 nS. ELA É MAIS RÁPIDA QUE A
DRAM. CONTUDO, PARA OS MODERNOS SISTEMAS, ELA ESTÁ COMEÇANDO A IMPOR
UM NÚMERO EXCESSIVO DE CICLOS DE ESPERA.
SYNC RAM: A SIGLA FAZ REFERÊNCIA A SRAM SÍNCRONA COM MODO RAJADA.
TRABALHA SEMELHANTE A SDRAM. COM BARRAMENTO DE 66 MHZ , OFERECE DADOS
SÍNCRONOS A VELOCIDADE DA UCP, OU SEJA, 4 DADOS CONSECUTIVOS GASTAM
2-1-1-1 PERÍODOS DE RELÓGIO. COM BARRAMENTOS ACIMA DE 66 MHZ OS ACESSOS
GASTAM 3-2-2-2 PERÍODOS DE RELÓGIO.
UTILIZADOS EM PENTIUM DE 66MHZ. Tempos de acesso: 8,5 a 12 nS
PB SRAM: SRAM COM PIPELINE DE RAJADA. O PIPELINE É CONSTRUÍDO ATRAVÉS DO
USO DE REGISTRADORES DE ENTRADA E SAÍDA. GASTA-SE UM CICLO EXTRA PARA
ATUALIZAR, MAIS UMA VEZ ATUALIZADOS PERMITE QUE O ACESSO AO PRÓXIMO
ENDEREÇO COMECE MAIS CEDO, AO MESMO TEMPO QUE A MEMÓRIA ENTREGA O
DADO DA POSIÇÃO ATUAL, OU SEJA, 3-1-1-1 CLOCKS. TIPICAMENTE OS TEMPOS DE
ACESSO VÃO DE 4,5 A 9 nS.
ESTUDO DA UNIDADE CENTRAL DE PROCESSAMENTO 8086/8088: 
1
Descrição dos pinos do 8086 (3S=três-estados ou “tir-state). 
 
 
COMO SEPARAR BARRAMENTO DE ENDEREÇOS E DADOS:
PROJETO MODO MÍNIMO:
PROJETO MODO MÁXIMO:
INTERRUPÇÕES:
• "polling" (técnica onde a CPU consulta o periférico para verificar se há a disponibilidade do dado)
• interrupção: situação que requeira a atenção imediata da CPU
• princípio eletrônico das interrupções não sofreu alteração com a evolução do hardware; existe apenas a diferença no tratamento em software, que depende do modo de operação da CPU: modo real ou modo protegido
• rotina manipuladora de interrupção (ISR - Interrupt Service Routine)
• "polling" (técnica onde a CPU consulta o periférico para verificar se há a disponibilidade do dado)
• interrupção: situação que requeira a atenção imediata da CPU
• princípio eletrônico das interrupções não sofreu alteração com a evolução do hardware; existe apenas a diferença no tratamento em software, que depende do modo de operação da CPU: modo real ou modo protegido
• rotina manipuladora de interrupção (ISR - Interrupt Service Routine)
INTERRUPÇÕES:
Vetor de Interrupção é uma estrutura de dados composta de 4 bytes: 2
bytes para seletor e 2 para offset. Ele define um endereço de uma rotina
(ISR - Interrupt Service Routine) que será executada toda vez que a
interrupção correspondente ao número do vetor (0 a 255) for invocada.
Tabela de Vetores de Interrupção é um conjunto de 256 vetores de 
interrupção
Em modo protegido, a Tabela de Vetores de Interrupção é substituída
pela Tabela de Descritores de Interrupção, onde cada descritor é
composto por 8 bytes, que definem o endereço e atributos da interrupção
associados à multitarefa. As interrupções em modo protegido serão
Estudadas posteriormente.
• tipos de interrupções:
•1. exceções, ou interrupções pré-definidas
•2. interrupções por hardware
•3. interrupções por software
Exceções
• geradas internamente pelo processador são pré-definidas
• a NMI
Tipos de interrupções:
1. exceções, ou interrupções pré-definidas
2. interrupções por hardware
3. interrupções por software
Exceções ou interrupções pré-definidas
1. geradas internamente pelo processador são pré-definidas
2. a NMI é pré-definda mas é interrupção por hardware
INT0 Divisão por zero
INT1 Passo a Passo. TF (Trap Flag)
INT2 (NMI) Interrupção não mascarável
INT3 "Break-Point"
INT4 "Overflow"
Interrupções por software 
instrução int nn é não mascarável
Interrupções por hardware_ 
pino INTR
controlador de interrupções e IRQs
mascarável pela flag IF
instruções cli e sti
Seqüência de atendimento a uma interrupção em exceções ou interrupções por software:
a) salva PSW na pilha
b) apaga flag TF e, se for exceção, também IF
c) salva CS e IP na pilha
d) carrega novo IP a partir da tabela (endereço = 4 x nn)
e) carrega novo CS a partir da tabela (endereço = 2 + (4 x nn))
Seqüência de atendimento em interrupções por hardware:
a) primeiro *INTA, aceite do pedido
b) segundo *INTA, envia o byte de identificação
c) recebe byte indicativo do vetor de interrupção
d) salva PSW (registrador de flags) na pilha
e) apaga flags IF e TF
f) salva CS e IP na pilha
g) carrega novos valores de CS e IP
Sistema de interrupções no PC:
Interrupção não mascarável (NMI)
erro de paridade na memória do sistema
erro de co-processador (até 80286)
cheque do canal de I/O (I/O CH CK - ISA)
desabilitável pelo bit 7 do endereço 70h de I/O.
 NMI é a INT 02h
Uso de controladores de interrupção:
8259 compatível, um 8259 no PC XT
dois 8259 em cascata a partir do PC AT
Vetores de Interrupção para os Controladores 8259 no modo DOS(Real):
Interrupção por nível é aquela invocada sempre que o nível lógico da
interrupção estiver em alto. Se o pedido de interrupção demorar a ser
retirado, há o risco dela ser invocada várias vezes.
Interrupção por flanco é aquela invocada sempre que o nível lógico no
pino de interrupção mudar de nível baixo para nível alto. Após uma
interrupção ser aceita, um novo pedido só acontece se o pino de
interrupção transicionar para nível baixo e depois retornar a nível alto.
 fim da interrupção
 mov al,20h
 out 20h,al ; comando fim de interrupção para a 8259
 inicialização para atender às interrupções
a) inicializar o ponteiro da pilha SP para a área onde serão guardados
os estados e os registradores;
b) inicializar os vetores (descritores) de interrupção que serão usados;
c) inicializar o controlador de interrupções 8259, através de seus
registradores ICW ("Interrupt Command Word") e OCW ("Operation
Control Word");
d) desmascarar as interrupções;
e) ativar a flag IF para habilitar as interrupções;
f) uma interface gera um pedido de interrupção;
g) o 8259 recebe o pedido e o envia ao latch de pedidos;.
h) o 8259 envia o pedido INT pelo pino INTR da CPU;
i) a CPU responde com um pulso *INTA, que prioriza o pedido e o envia
para o Registrador em Serviço (ISR), dentro do 8259;
j) a CPU envia um segundo pulso de *INTA. O 8259 responde a esse
pulso com um valor que indica o número da interrupção; esse valor é
usado pela CPU para associar a interrupção a um vetor (descritor);
l) a CPU desabilita as interrupções, salvando na pilha o registradorde
flags, IP e CS, desviando para o manipulador apontado pela tabela
de vetores (descritores);
m) a rotina de interrupção salva na pilha o conteúdo dos registradores que
vai usar;
n) para permitir novas interrupções, a rotina de interrupção envia um
comando EOI ("End Of Interrupt") para o 8259;
o) a rotina de interrupção é executada;
p) ao completar a rotina, restauram-se os conteúdos dos registradores
usados;
q) a rotina de interrupção executa uma instrução de retorno de
interrupção, restaurando os valores IP, CS e flags (isto habilita
interrupções, pois carrega IF) (EIP, CS e EFLAGS, no modo protegido),
regressando do manipulador e continuando a execução do programa
interrompido.
Continuação:
Continuação:
Continuação:
 habilitar a IRQ7 sem alterar os estados dos outros bits de máscara
/* faz um AND dos bits da máscara
com os bits de 01111111 */
in al,21h
and al,7Fh
out 21h,al
desabilitar a IRQ7 sem alterar os estados dos outros bits de máscara
in al,21h
or al,80h
out 21h,al
Conteúdo: 
2.1 Instruções de operação de dados 
2.2 Instruções lógicas e aritméticas 
2.3 Instruções de controle de processos   
2. LINGUAGEM ASSEMBLY:
2.1 Instruções de operação de dados
 
Conteúdo:
 
2.1.1 Instruções de transferência 
2.1.2 Instruções de carga 
2.1.3 Instruções de pilha 
2.1.1 Instruções de transferência. 
São usadas para mover o conteúdo dos operadores. Cada instrução pode ser usada com diferentes modos de endereçamento.
 
 MOV 
 MOVS (MOVSB) (MOVSW) 
INSTRUÇÃO MOV: 
Propósito: Transferência de dados entre células de memória e registradores.
 
SÍNTAXE:
 
MOV Destino,Fonte 
Destino é o lugar para onde o dado será movido e Fonte é o lugar onde o dado está. 
Os diferentes movimentos de dados permitidos para esta instrução são: 
*Destino: memória.                  			Fonte: registrador 
*Destino: acumulador.              	 		Fonte: memória 
*Destino: registrador de segmento.  	Fonte: memória/registrador 
*Destino: memória/registrador.       		Fonte: registrador de segmento 
*Destino: registrador.              			Fonte: registrador 
*Destino: registrador.              			Fonte: dado imediato 
*Destino: memória.                  			Fonte: dado imediato 
Exemplo: 
  MOV AX,0006h 
  MOV BX,AX 
  MOV aX,[SI] 
  MOV [AB00H],DH
INSTRUÇÕES MOVS (MOVSB) (MOVSW) 
Propósito: Mover byte ou cadeias de palavra da fonte, endereçada por SI, 
para o destino endereçado por DI.
 
Sintaxe: 
MOVS 
este comando não necessita de parâmetros uma vez que toma como endereço fonte o conteúdo do registrador SI e como destino o conteúdo de DI, após a execução DI e SI são automaticamente incrementados A seguinte seqüência de instruções ilustra isso: 
MOV SI, OFFSET VAR1 
MOV DI, OFFSET VAR2 
MOVS 
Primeiro inicializamos os valores de SI e DI com os endereços das variáveis VaR1 e VaR2 respectivamente, então apos a execução de MOVS o conteúdo de VaR1 e copiado para VaR2.
 
As instruções MOVSB e MOVSW são usadas do mesmo modo que MOVS, a primeira move um byte e a segunda move uma palavra. 
  
  
2.1.2 Instruções de Carga:
São instruções especificas para registradores, usadas para carregar bytes ou cadeias de bytes num registrador.
 LODS (LODSB) (LODSW) 
 LAHF 
 LDS 
 LEA 
 LES 
  
 INSTRUÇÕES LODS (LODSB) (LODSW) 
Propósito: Carregar um byte ou uma palavra para o registrador.
 
Sintaxe: 
LODS 
Esta instrução toma a cadeia encontrada no endereço especificado por SI, a carrega para o registrador AL (ou AX) e adiciona ou subtrai, dependendo do estado de DF, para SI se é uma transferência de bytes ou de palavras. 
MOV SI, OFFSET VAR1 
LODS 
Na primeira linha vemos a carga do endereço de VAR1 em SI e na segunda é tomado o conteúdo daquele local para o registrador AL.
 
Os comandos LODSB e LODSW são usados do mesmo modo, o primeiro carrega um byte e o segundo uma palavra (usa todo o registrador AX). 
  
 INSTRUÇÃO LAHF 
Propósito: Transferir o conteúdo dos flags para o registrador AH. 
Sintaxe: 
LAHF 
Esta instrução e útil para verificar o estado dos flags durante a execução 
do nosso programa. 
Os flags são deixados na seguinte ordem dentro do registrador: 
SF ZF ?? aF ?? PF ?? CF 
O "??" significa que haverá um valor indefinido naqueles bits. 
 INSTRUÇÃO LDS 
Propósito: Carregar o registrador de segmento de dados.
 
Sintaxe: 
LDS destino,fonte 
O operador fonte deve ser uma palavra dupla na memória. A palavra associada com o maior endereço é transferida para DS, em outras palavras isto é tomado como o endereço de segmento. A palavra associada com o menor endereço é o endereço de deslocamento e é depositada no registrador indicado como destino. 
  
 INSTRUÇÃO LEA 
Propósito: Carregar o endereço do operador fonte. 
Sintaxe: 
LEA destino,fonte 
O operador fonte deve estar localizado na memória, e seu deslocamento é 
colocado no registrador de índice ou ponteiro especificado no destino. 
MOV SI,OFFSET VAR1 é equivalente a: 
LEA SI,VAR1 
É muito provável que para o programador é muito mais fácil criar programas grandes usando este ultimo formato. 
 INSTRUÇÃO LES
 
Propósito: Carregar o registrador de segmento extra 
Sintaxe: 
LES destino,fonte
 
O operador fonte deve ser uma palavra dupla na memória. O conteúdo da 
palavra com endereço maior é interpretado como o endereço do segmento e é colocado em ES. A palavra com endereço menor é o endereço do deslocamento e é colocada no registrador especificado no parâmetro de destino. 
2.1.3. Instruções de manipulação da pilha. 
Estas instruções permitem usar a pilha para armazenar ou recuperar dados. 
 POP,  POPF, PUSH e PUSHF 
  
 INSTRUÇÃO POP 
Propósito: Recuperar uma parte de informação da pilha. 
Sintaxe: 
POP destino
 
Esta instrução transfere o ultimo valor armazenado na pilha para o operador de destino, e incrementa de 2 o registrador SP. Este incremento é duplo pelo fato da pilha trabalhar apenas com palavras, 2 bytes, 
logo deve ser 2 o incremento de SP. 
  
 INSTRUÇÃO POPF 
Propósito: extrair os flags armazenados na pilha. 
Sintaxe: 
POPF
Esta Instrução transfere os bits da palavra armazenada na parte mais alta da pilha para o registrador de flags. 
O modo da transferência é como se segue: 
BIT    FLAG 
  0     CF 
  2     PF 
  4     AF 
  6     ZF 
  7     SF 
  8     TF 
  9     IF 
 10    DF 
 11    OF 
Os locais dos bits são os mesmos para o uso da instrução PuSHF. 
Uma vez feita a transferência o registrador SP é incrementado de 2, conforme vimos anteriormente. 
INSTRUÇÃO PUSH 
Propósito: Coloca uma palavra na pilha. 
Sintaxe: 
PUSH fonte 
A instrução PUSH decrementa de dois o valor de SP e então transfere o 
conteúdo do operador fonte para o novo endereço de memória apontado pelo registrador SP recém modificado. 
O decremento no endereço é duplo pelo fato de que dois bytes é a única quantidade de informação que a pilha pode manusear em cada entrada e/ou saída. 
  
 INSTRUÇÃO PUSHF 
Propósito: Colocar os valores dos flags na pilha. 
Sintaxe: 
PUSHF 
Este comando decrementa de 2 o valor do registrador SP e então o conteúdo do registrador de flag é transferido para a pilha, no endereço indicado por SP. 
Os flags são armazenados na memória da mesma forma que o comando POPF. 
2.2 Instruções lógicas e aritméticas 
Conteúdo: 
2.2.1.Instruções lógicas 
2.2.2.Instruções aritméticas 
  
2.2.1.Instruções lógicas 
São usadas para realizar operações lógicas nos operadores. 
 AND, NEG, NOT, OR, TEST e XOR 
  
INSTRUÇÃO AND 
Propósito: Realiza a conjunção de operadores bit a bit. 
Sintaxe: 
AND destino,fonte 
Com esta instrução a operação lógica “AND" é realizada 
como na tabela abaixo. O resultado desta operação é armazenado no
Operador de destino.
Fonte    Destino  |   Destino 
----------------------------- 
  1         1      |     1 
  1         0     |     0 
  0         1     |     0 
  00     |     0 
INSTRUÇÃO NEG 
Propósito: Gera o complemento de 2. 
Sintaxe: 
NEG destino 
Esta instrução gera o complemento de 2 do operador destino e o armazena no mesmo operador. Por exemplo, Se AX armazena o valor 1234H, então: 
NEG AX 
Isto fará com o que o valor EDCCH fique armazenado no registrador aX. 
 INSTRUÇÃO NOT 
Propósito: Faz a negação do operador de destino bit a bit. 
Sintaxe: 
NOT destino 
o resultado e armazenado no mesmo operador de destino. 
INSTRUÇÃO OR 
Propósito: Realiza um ou lógico. 
Sintaxe: OR destino,fonte 
A instrução OR, faz uma disjunção lógica bit a bit dos dois operadores: 
Fonte      Destino    |    Destino 
----------------------------------- 
   1          1       |       1 
   1          0       |       1 
   0          1       |       1 
   0          0       |       0 
INSTRUÇÃO TEST 
Propósito: Compara logicamente os operadores. 
Sintaxe: TEST destino,fonte 
Realiza uma conjunção, bit a bit, dos operadores, mas difere da instrução 
AND, uma vez que não coloca o resultado no operador de destino. Tem efeito sobre o registrador de flag. 
 INSTRUÇÃO XOR 
Propósito: Realiza um ou exclusivo. 
Sintaxe: 
XOR destino,fonte 
Esta instrução realiza uma disjunção exclusiva de dois operadores bit a 
bit. 
Fonte      Destino    |    Destino 
----------------------------------- 
   1          1       |       0 
   0          0       |       1 
   0          1       |       1 
   0          0       |       0 
2.2.2 Instruções aritméticas. 
São usadas para realizar operações aritméticas nos operadores. 
 ADC, ADD, DIV, IDIV, MUL, IMUL, SBB, SUB. 
INSTRUÇÃO ADC 
Propósito: efetuar a soma entre dois operandos com carry. 
Sintaxe: ADC destino,fonte 
Esta instrução efetua a soma entre dois operandos, mais o valor do flag CF, existente antes da operação. Apenas o operando destino e os flags são afetados. O resultado é armazenado no operador de destino. 
INSTRUÇÃO ADD 
Propósito: adição de dois operadores. 
Sintaxe: ADD destino,fonte 
Esta instrução adiciona dois operadores e armazena o resultado no operador destino. 
INSTRUÇÃO DIV 
Propósito: Divisão sem sinal. 
Sintaxe: DIV fonte 
O divisor pode ser um byte ou uma palavra e é o operador que é dado na 
instrução. Se o divisor é de 8 bits, o registrador AX de 16 bits é tomado como dividendo e se o divisor é de 16 bits, o par de registradores DX:AX será tomado como dividendo, tomando a palavra alta de DX e a baixa de AX. Se o divisor for um byte, então o quociente sera armazenado no registrador AL e o resto em AH. Se for uma palavra, então o quociente e armazenado em AX e o resto em DX. 
INSTRUÇÃO IDIV 
Propósito: Divisão com sinal. 
Sintaxe: IDIV fonte 
Semelhante à instrução DIV, diferencia-se apenas por realizar por realizar a operação com sinal. Para os resultados são usados os mesmos registradores da instrução DIV. 
 INSTRUÇÃO MUL 
Propósito: Multiplicação com sinal. 
Sintaxe: MUL fonte 
Esta instrução realiza uma multiplicação não sinalizada entre o conteúdo do acumulador AL ou AX pelo operando-fonte, devolvendo o resultado no 
acumulador AX caso a operação tenha envolvido AL com um operando de 8 bits, ou em DX e AX caso a operação tenha envolvido AX e um operando de 16 bits. 
INSTRUÇÃO IMUL 
Propósito: Multiplicação de dois números inteiros com sinal. 
Sintaxe: IMUL fonte 
Esta instrução faz o mesmo que a anterior, difere apenas pela inclusão do 
sinal. Os resultados são mantidos nos mesmos registradores usados pela instrução MUL. 
INSTRUÇÃO SBB 
Propósito: Subtração com carry. 
Sintaxe: 
SBB destino,fonte 
Esta instrução subtrai os operadores e subtrai um do resultado se CF esta ativado. O operador fonte é sempre subtraído do destino. Este tipo de subtração é usado quando se trabalha com quantidades de 32 bits. 
 
INSTRUÇÃO SUB 
Propósito: Subtração. 
Sintaxe: SUB destino,fonte 
Esta instrução subtrai o operador fonte do destino.
2.3 Instruções de controle de processos 
Conteúdo: 
2.3.1 Instruções de salto 
2.3.2 Instruções de laços: loop 
2.3.3 Instruções de contagem 
2.3.4 Instruções de comparação 
2.3.5 Instruções de flag 
  
2.3.1 Instruções de salto. 
São usadas para transferir o processo de execução do programa para a posição indicada pelo operando.
 
 JMP, JA (JNBE), JAE (JNBE), JB (JNAE), JBE (JNA), JE (JZ), JNE (JNZ), 
 JG (JNLE), JGE (JNL), JL (JNGE), JLE (JNG), JC, JNC, JNO, JNP (JPO), 
 JNS, JO, JP (JPe), JS 
INSTRUÇÃO JMP
Propósito: Salto incondicional. 
Sintaxe: JMP destino 
Esta instrução é usada para desviar o curso do programa sem tomar em conta as condições atuais dos flags ou dos dados. 
INSTRUÇÃO JA (JNBE) 
Propósito: Salto condicional. 
Sintaxe: JA símbolo 
Após uma comparação esta instrução salta se maior. Isto quer dizer que o salto só é feito se o flag CF e o flag ZF estão desativados, ou seja, se os dois flags forem zero. 
INSTRUÇÃO JAE (JNB) 
Propósito: Salto condicional. 
Sintaxe: JAE símbolo 
Após uma comparação esta instrução salta se maior ou igual. O salto é feito se CF esta desativado. 
INSTRUÇÃO JB (JNAE) 
Propósito: Salto condicional. 
Sintaxe: JB símbolo. 
Após uma comparação a instrução salta se menor. O salto e feito se CF esta ativado. 
 
JINSTRUÇÃO JBE (JNA) 
Propósito: Salto condicional. 
Sintaxe: JBE símbolo 
A instrução salta se menor ou igual, ou se não maior.O salto é feito se CF ou ZF estao ativados, ou seja, se um deles for 1. 
  
 INSTRUÇÃO JE (JZ) 
Propósito: Salto condicional. 
Sintaxe: JE símbolo 
A instrução salta se igual. O salto é feito se ZF esta ativado. 
  
 INSTRUÇÃO JNE (JNZ) 
Propósito: Salto condicional. 
Sintaxe: JNE símbolo 
A instrução salta se diferente. O salto e feito se ZF esta desativado. 
  
 INSTRUÇÃO JG (JNLe) 
Propósito: Salto condicional. 
Sintaxe: JG símbolo 
A instrução salta se maior. O salto ocorre se ZF = 0 ou se OF = SF. 
 INSTRUÇÃO JGE (JNL) 
Propósito: Salto condicional. 
Sintaxe: JGE símbolo 
A instrução salta se maoir ou igual. O salto é feito se SF = OF. 
 INSTRUÇÃO JL (JNGE) 
Propósito: Salto condicional. 
Sintaxe: JL símbolo 
A instrução salta se menor. O salto e feito se SF é diferente de OF. 
  INSTRUÇÃO JLE (JNG) 
Propósito: Salto condicional. 
Sintaxe: JLE símbolo. 
A instrução salta se menor ou igual. O salto é feito se ZF = 1 ou se SF e diferente de OF. 
 
INSTRUÇÃO JC 
Propósito: Salto condicional. 
Sintaxe: JC símbolo 
A instrução salta se há carry. O salto e feito se CF = 1. 
  INSTRUÇÃO JNC 
Propósito: Salto condicional, e o estado dos flags e tomado. 
Sintaxe: JNC símbolo 
A instrução salta se não há carry. O salto e feito se CF = 0. 
 INSTRUÇÃO JNO 
Propósito: Salto condicional. 
Sintaxe: JNO símbolo 
A instrução salta se não há overflow. O salto e feito se OF = 0. 
  INSTRUÇÃO JNP (JPO) 
Propósito: Salto condicional. 
Sintaxe: JNP símbolo 
A instrução salta se não há paridade ou se a paridade é ímpar. 
o salto é feito se PF = 0. 
  
 INSTRUÇÃO JNS 
Propósito: Salto condicional. 
Sintaxe: JNP s¡mbolo 
A instrução salta se o sinal está desativado. O salto é feito se SF = 0. 
  
 INSTRUÇÃO JO 
Propósito: Salto condicional, e o estado dos flags e tomado. 
Sintaxe: JO símbolo 
A instrução salta se há overflow. O salto é feito se OF = 1. 
  
 INSTRUÇÃO JP (JPE) 
Propósito: Salto condicional, e o estado dos flags e tomado. 
Sintaxe: JP símbolo 
A instrução salta se há paridade ou se a paridade é par. 
O salto é feito se PF = 1. 
 INSTRUÇÃO JS 
Propósito: Salto condicional. 
Sintaxe: JS símbolo 
A instrução salta se o sinal esta ativado. O salto e feito se SF =1. 
2.3.2 Instruções para laços: LOOP. 
Estas instruções transferem a execução do processo, condicional ou 
incondicionalmente, para um destino, repetindo a ação até o contador ser 
zero. 
  
INSTRUÇÃO LOOP 
Propósito: Gerar um laço no programa. 
Sintaxe: LOOP símbolo 
A instrução LOOPdecrementa CX de 1 e transfere a execução do programa para o símbolo que é dado como operador, caso CX > 0. 
  
INSTRUÇÃO LOOPe 
Propósito: Gerar um laço no programa, considerando o estado de ZF. 
Sintaxe: LOOPE símbolo 
Esta instrução decrementa CX de 1. Se CX é diferente de zero e ZF e igual a 1, então a execução do programa é transferida para o símbolo indicado como operador. 
 INSTRUÇÃO LOOPNe 
Propósito: Gerar um laço no programa, considerando o estado de ZF. 
Sintaxe: LOOPNE símbolo 
Esta instrução decrementa CX de 1 e transfere a execução do programa apenas se ZF é diferente de 0. 
  
2.3.3.Instruções contadoras. 
Estas instruções são usadas para decrementar ou incrementar o conteúdo de contadores. 
 DEC e INC 
  
INSTRUÇÃO DEC
Propósito: Decrementar o operador. 
Sintaxe: DEC destino 
Esta instrução subtrai 1 do operador destino e armazena o novo valor no 
mesmo operador. 
  
 INSTRUÇÃO INC 
Propósito: Incrementar o operador. 
Sintaxe: INC destino 
Esta instrução adiciona 1 ao operador destino e mantem o resultado no mesmo operador. 
MEMÓRIA SECUNDÁRIA:
HIERARQUIA DE MEMÓRIA DE 5 NÍVEIS.
DISCO FLEXÍVEL:
O DISCO FLEXÍVEL É O MEIO DE ARMAZENAMENTO SECUNDÁRIO MAIS FLEXÍVEL DOS SISTEMAS DE COMPUTAÇÃO.
NA OPERAÇÃO DE UM CONTROLADOR DE DISCO FLEXÍVEL, USAM-SE ENDEREÇAMENTO DE E/S, INTERRUPÇÕES E TRANSFERÊNCIAS VIA DMA.
DIVERSOS REGISTRADORES ORGANIZADOS EM UMA FILA.
DISCO RÍGIDO:
É ORGANIZADO EM CILINDRO, TRILHA, SETOR.
CILINDRO_ É O CONJUNTO DE TODAS AS TRILHAS NA MESMA POSIÇÃO.
TRILHA _ É A SUPERFÍCIE ONDE OS DADOS PODEM SER ESCRITOS. SE O DISCO
APRESENTAR MAIS DE UMA SUPERFICIE, E CORRESPONDENTEMENTE MAIS DE UMA
CABEÇA, EM CADA SUPERFÍCIE É DETERMINADA UMA TRILHA.
SETOR _ SÃO AS DIVISÕES LÓGICAS DA TRILHA EM PORÇÕES MENORES. 
A QUANTIDADE DE BYTES MAIS UTILIZADA POR SETOR É A DE 512.
ROTAÇÃO CONSTANTE (4500 A 7200 rpm)‏
TRILHAS EXTERNAS COM MAIS SETORES
CUSTERS _ É A MENOR UNIDADE DE ÁREA ALOCADA PELO DOS NA ÁREA DE 
ARQUIVOS, E SEMPRE CRIA UM NÚMERO INTEIRO DE CLUSTERS.
O SISTEMA DE FAT16 É UTILIZADO PARA DISCOS ATÉ 508 Mbytes. EM DISCOS MAIORES DE
508 Mbytes É UTILIZADO O SISTEMA DE FAT32, QUE UTILIZA CLUSTERS DE 4KBytes ATÉ 
DISCOS DE 8GBytes. ENTRE DISCOS DE 8GBytes E 16GB O CLUSTER SOBE PARA 8KBytes DE 
16 SETORES. ENTRE 16GBytes E 32GBytes O CLUSTER SOBE PARA 16KBytes DE 32 SETORES. 
ACIMA DE 32GBytes O CLUSTER SOBE PARA 32 Kbytes DE 64 SETORES.
DISCO RÍGIDO: É ORGANIZADO EM CILINDRO, TRILHA, SETOR.
TODAS AS CABEÇAS SÃO MONTADAS SOBRE O MESMO BRAÇO E DESSA FORMA MOVEM-SE TODAS JUNTAS.
UMA PORÇÃO DE UMA TRILHA DE DISCO
COM DOIS SETORES ILUSTRADOS
CILINDRO_ É O CONJUNTO DE TODAS AS TRILHAS NA MESMA POSIÇÃO.
TRILHA _ É A SUPERFÍCIE ONDE OS DADOS PODEM SER ESCRITOS. SE O DISCO
APRESENTAR MAIS DE UMA SUPERFICIE, E CORRESPONDENTEMENTE MAIS DE UMA
CABEÇA, EM CADA SUPERFÍCIE É DETERMINADA UMA TRILHA.
SETOR _ SÃO AS DIVISÕES LÓGICAS DA TRILHA EM PORÇÕES MENORES. 
A QUANTIDADE DE BYTES MAIS UTILIZADA POR SETOR É A DE 512.
ROTAÇÃO CONSTANTE (4500 A 7200 rpm)‏
TRILHAS EXTERNAS COM MAIS SETORES
CUSTERS _ É A MENOR UNIDADE DE ÁREA ALOCADA PELO DOS NA ÁREA DE 
ARQUIVOS, E SEMPRE CRIA UM NÚMERO INTEIRO DE CLUSTERS.
A CONTROLADORA DE DISCO CALCULA UM ENDEREÇO LÓGICO DO BLOCO DE DADOS (LBA) A SER ACESSADO E, EM SEGUIDA, ESTE LBA É CONVERTIDO EM VALORES REAIS DE CILINDRO, CABEÇA E SETOR. ESTA TÉCNICA PERMITE SUPERAR A BARREIRA DOS 504 MB (1024 CILINDROSx16 CABEÇASx63 SETORES x512 BYTES POR SETOR) DAS PLACAS IDE E DAS BIOS ANTIGAS.
O SISTEMA DE FAT16 É UTILIZADO PARA DISCOS ATÉ 512 Mbytes. EM DISCOS MAIORES DE 512 Mbytes É UTILIZADO O SISTEMA DE FAT32, QUE UTILIZA CLUSTERS DE 4KBytes ATÉ DISCOS DE 8GBytes. ENTRE DISCOS DE 8GBytes E 16GB O CLUSTER SOBE PARA 8KBytes DE 16 SETORES. ENTRE 16GBytes E 32GBytes O CLUSTER SOBE PARA 16KBytes DE 32 SETORES. ACIMA DE 32GBytes O CLUSTER SOBE PARA 32 Kbytes DE 64 SETORES.
TIPOS DE BARRAMENTO PARA PERIFÉRICOS:
IDE_ Integrated Drive Electronics (528 MB para controlar 2 drives.)‏
EIDE _ Extended IDE(aceita enderecamento LBA e controla 4 drives, 2 MESTRES E 2 ESCRAVOS)‏
SCSI_ Small Computer System Interface(controla ate 7 drives e 15 para wide SCSI)‏
DISCOS IDE OU EIDE QUE POSSUEM CONTROLADORA INTEGRADA, SÃO AS MAIS 
POPULARES. O IDE APRESENTA TAXA DE ATÉ 4MB POR SEGUNDO, ENQUANTO NO
EIDE ESTA TAXA PODE CHEGAR ATÉ 16 MB POR SEGUNDO.
OS DISCOS SÃO CONECTADOS À PLACA-MÃE POR MEIO DE UM CABO DE 40 PINOS. A
CONTROLADORA SE ENCONTRA EMBUTIDA NO DRIVE, O QUE DISPENSA A NECESSIDADE
DE OCUPAR UM SLOT DO BARRAMENTO COM UMA PLACA CONTROLADORA.
DISCOS IDE USAM A ESPECIFICAÇÃO ATA (AT ATTACHMENT) PARA COMUNICAÇÃO
COM O PROCESSADOR. ELA DEFINE UMA SÉRIE DE ENDEREÇOS DE ENTRADA/SAÍDA.
O PADRÃO SCSI TRABALHA COM BARRAMENTO DE 50 PINOS(SCSI-1, SCSI-2) E 68 PINOS
(SCSI-2 E SCSI-3). O SISTEMA SCSI É MAIS QUE UM BARRAMENTO. OS DISPOSITIVOS SCSI
PODEM RECEBER COMANDOS DE ALTO NÍVEL, POR EXEMPLO PARA UMA LEITURA É 
SUFICIENTE O RECEBIMENTO DA REQUISIÇÃO E O VALOR DO BLOCO LÓGICO, A 
TRANSFORMAÇÃO EM ENDEREÇO DE CILINDRO, CABEÇA E SETOR É FEITA PELA
CONTROLADORA NO DISCO.
CADA DISPOSITIVO SCSI PODE ATUAR COMO UM INICIADOR OU COMO ALVO. ALGUNS
SÃO SEMPRE ALVOS, COMO O DISCO, E OUTROS SÃO SEMPRE INICIADORES COMO
UM ADAPTADOR PCI – SCSI.
OBSERVE QUE UMA PLACA SCSI CONTÉM UM CONTROLADOR SCSI, QUE CONTA COMO
 UM DOS ELEMENTOS DO BARRAMENTO SCSI. ASSIM, O NÚMERO DE PERIFÉRICOS SCSI
FICA REDUZIDO A 7 NO NORMAL, OU 15 NO WIDE. 
BARRAMENTO LIVRE _ INDICA QUE NENHUM DISPOSITIVO ESTÁ USANDO O BARRAMENTO E QUE ESTÁ
DISPONÍVEL PARA USO.
ARBITRAÇÃO _ PERMITE A UM DISPOSITIVO GANHAR O CONTROLE DO BARRAMENTO, DE MANEIRA QUE POSSA INICIAR OU RETOMAR O PROCESSAMENTO DE UMA E/S.
SELEÇÃO _ PERMITE A UM INICIADOR SELECIONAR UM ALVO PARA REALIZAR UMA DETERMINADA FUNÇÃO, TAL COMO UM COMANDO DE LEITURA OU DE ESCRITA.
COMANDO _ PERMITE AO ALVO REQUISITAR INFORMAÇÃO DE COMANDO AO INICIADOR.
DADOS _ PERMITE AO ALVO REQUISITAR A TRANSFERÊNCIA DE DADOS DO ALVO PARA O INICIADOR (ENTRADA DE DADOS) OU DO INICIADOR PARA O ALVO (SAÍDA DE DADOS).
ESTADO _ PERMITE AO ALVO REQUISITAR PARA QUE UMA INFORMAÇÃO DE ESTADO SEJA ENVIADA AO INICIADOR.
MENSAGEM_ PERMITE AO ALVO REQUISITAR A TRANSFERÊNCIA DE UAM OU MAIS MENSAGENS DO ALVO PARA O INICIADOR(ENTRADA DE MENSAGEM) OU DO INICIADOR PARA O ALVO(SAÍDA DE MENSAGEM). 
A velocidade de acesso ao HD é determinada basicamente pela velocidade de giro dos pratos e
pela densidade da informação armazenada:
EXEMPLO:
VELOCIDADE DE GIRO DOS PRATOS: 4.500 A 7.200 RPM (ROTAÇÕES POR MINUTO)‏
QUANTIDADE DE SETORES POR TRILHA
QUANTIDADE DE BYTES POR SETOR.
ASSIM UM PRATO A 6.000 RPM, 63 SETORES POR TRILHA E 512 BYTES POR SETOR 
É CAPAZ DE OPERAR A UMA TAXA DE: 63x512/10ms=3,23 MB/s.
_ tempo gasto para movimentar as cabeças entre um cilindro e outro. 
_ tempo gasto para selecionar o prato a ser acessado.
_ tempo gasto até que a cabeça se posicione sobre o setor desejado. 
COMPARAÇÃO IDExSCSI:
IDE SÃO MAIS SIMPLES DE OPERAR, E REALIZAM TRANSFERÊNCIA DE MODO MAIS IMEDIATO. OS DISPOSITIVOS SCSI POSSUEM SOBRECARGA PARA NEGOCIAR O BARRAMENTO, PORTANTO O IDE OFERECE VANTAGEM SE O AMBIENTE REQUER 
TRANSFERÊNCIAS SEQUENCIAIS EM AMBIENTE MONOTAREFA.
DISPOSITIVOS SCSI PODEM OPERAR EM PARALELO FAVORECENDO MULTITAREFA SOBREPOSIÇÃO DE E/S. IMPLEMENTADO EM DISPOSITIVO EXTERNO
PODE SER TRANSPORTADO DE UM AMBIENTE PARA OUTRO.
ALGUNS DOS POSSÍVEIS PARÄMETROS SCSI : 
Serial ATA ou simplesmente SATA é o padrão de barramento para Disco Rígido 
criado para substituir os discos ATA, também conhecidos como IDE. A taxa de 
transferência máxima teórica de um disco Serial ATA é de 150 MB/s ou 300 MB/s, 
contra os 133 MB/s de um Disco Rígido IDE. 
A taxa de transferência do padrão Serial ATA é de 1.500 Mbps. Como este padrão 
utiliza o esquema de codificação 8B/10B (o mesmo esquema de codificação usadonas redes Fast Ethernet) – onde cada grupo de oito bits é codificado em um sinal 
de 10 bits – sua taxa de transferência efetiva é de 150 MB/s. Dispositivos Serial ATA 
trabalhando nesta velocidade são também conhecidos como SATA-150.
 
O padrão Serial ATA II traz novos recursos como a tecnologia Native Command 
Queuing (NCQ), além oferecer a taxa de transferência de 300 MB/s, o dobro do 
padrão SATA original. Dispositivos que podem trabalhar nesta velocidade são 
também conhecidos como SATA-300. O próximo padrão a ser lançado será o 
SATA-600. 
É também muito importante notar que o Serial ATA implementa dois caminhos de 
dados separados, um para a transmissão e outro para recepção dos dados. Na 
transmissão paralela apenas um caminho é usado, que é compartilhado tanto 
para transmissão quanto para recepção. O cabo Serial ATA é formado por 
dois pares de fios (um para transmissão e outro para recepção) usando transmissão 
diferencial:
A diferença entre esses dois sinais é ruído, o que faz com que o dispositivo 
receptor reconheça-o facilmente e descarte-o. O fio “+TD” significa 
“Transmissão de Dados” e o fio “+RD” significa “Recepção de Dados”. “-TD” 
e “-RD” são as versões “espelhadas” do mesmo sinal sendo 
transmitido nos fios “+TD” e “+RD”, respectivamente.
Além dos fios de transmissão e recepção, três fios terra são utilizados. O cabo 
Serial ATA usa, portanto, sete fios. 
Outra vantagem da utilização da transmissão serial é que poucos fios são 
necessários no cabo. Portas IDE tradicionais utilizam um conector de 40 pinos e 
um cabo de 80 vias. As portas Serial ATA utilizam um conector de sete pinos e 
um cabo com sete fios. Isto ajuda e muito no fluxo de ar dentro do micro, já que 
cabos mais finos não obstruem a passagem do ar.
ESTRUTURA DE SOFTWARE PARA O ACESSO AO DISCO
RAID: REDUNDANT ARRAY OF INDEPENDENT DISKS:
CONSISTE EM UM AGRUPAMENTO DE UNIDADES DE DISCOS FÍSICOS, VISTO PELO
SISTEMA OPERACIONAL COMO UMA ÚNICA UNIDADE DE DISCO LÓGICO.
2. OS DADOS SÃO DISTRIBUÍDOS PELAS UNIDADES DE DISCOS FÍSICOS DO AGUPAMENTO.
3. A CAPACIDADE DE ARMAZENAMENTO REDUNDANTE É UTILIZADA PARA ARMAZENAR
INFORMAÇÃO DE PARIDADE, GARANTINDO A RECUPERAÇÃO DOS DADOS EM CASO DE
FALHA DE ALGUM DISCO.
NÍVEIS DE RAID NÍVEIS DE 0 ATÉ 5 COM BACKUP E PARIDADE EM TOM CINZA.
NÃO REDUNDANTE_ Aplicações que requerem alto
Desempenho para dados não críticos.
ESPELHADO_ discos de sistema ou arquivos críticos
REDUNDÂNCIA VIA 
CÓDIGO DE HAMMING_ Acesso paralelo, todos os discos
participam de qualquer transação de E/S. Devido ao custo
 excessivo, só se justifica se ocorrer muitos erros de disco.
BIT DE PARIDADE INTERCALADO_ Acesso paralelo e
usa apenas um disco redundante, apenas um bit de paridade
simples é utilizado para cada conjunto de bits na mesma posição.
PARIDADE DE BLOCO _ Acesso independente, cada disco opera
Independente dos outros permitindo que E/S distintas possam ser
Satisfeitas em paralelo.
PARIDADE DE BLOCO DISTRIBUÍDA_ Semelhante ao 4, com a
diferença que a paridade é distribuída em todos os discos.
ESTRUTURA DE GRAVAÇÃO DE UM COMPACT DISK OU CD-ROM.
LAYOUT DOS DADOS EM UM CDROM
COMPOSTO DE PLÁSTICO E METAL
PIT _ PONTO DO CD FEITO
DE ALUMÍNIO QUE REFLETE
A LUZ.
LAND _ PONTO DO CD QUE NÃO
REFLETE A LUZ, AUSÊNCIA DE
ALUMÍNIO.
CD ROM : ESPIRAL DO EIXO CENTRAL
 ATÉ A BORDA.
ESTRUTURA DE UM DISCO CD-R:
APRESENTA UMA CAMADA DE PIGMENTO ORGÂNICO E UMA CAMADA MUITO FINA DE OURO EM UM DISCO DE POLICARBONATO. O POLÍMERO DO PIGMENTO QUANDO EXPOSTO AO FEIXE DE LASER DE GRAVAÇÃO (MUITO MAIS POTENTE QUE O FEIXE NORMAL DE LEITURA), REAGE COM O POLICARBONATO FORMANDO UMA ÁREA OPACA QUE NÃO REFLETE A LUZ.
ESTRUTURA FÍSICA DE UM COMPUTADOR PESSOAL.
ESTRUTURA LÓGICA SIMPLES DE UM COMPUTADOR PESSOAL.
ESTRUTURA LÓGICA DE UM TÍPICO COMPUTADOR MODERNO.
MONITOR DE VÍDEO:
MONITOR DE VÍDEO, CONHECIDO COMO TUBO DE RAIOS CATÓDICOS_ É UMA TELA EMISSORA DE LUZ QUE FORMA
A IMAGEM PELO CONTROLE DE DE UM FEIXE DE ELÉTRONS QUE VARRE A TELA EXCITANDO UM MATERIAL
FOSFORESCENTE DEPOSITADO SOBRE A MESMA. CADA PONTO QUE PODE SER INDEPENDENTEMENTE APAGADO
OU EXCITADO, É CHAMADO DE PIXEL.
MEMÓRIA DE VÍDEO _ É UM BANCO DE MEMÓRIA DINÂMICA COM PELO MENOS 256 KB DIVIDIDO EM QUATRO PLANOS DE COR, CADA PLANO COM 64KB, ONDE ESTÃO OS DADOS DA TELA.
CONTROLADOR GRÁFICO _ LIGA A UCP À MEMÓRIA DE VÍDEO. ELE PODE SER PROGRAMADO PARA REALIZAR
AS SEGUINTES OPERAÇÕES SOBRE OS DADOS QUE SÃO ESCRITOS NA MEMÓRIA DE VÍDEO:
SERIALIZADOR DE DADOS _ CAPTURA AS INFORMAÇÕES DA MEMÓRIA DE VÍDEO, UM OU MAIS BYTES POR VEZ, E
A CONVERTE EM UMA SEQUÊNCIA DE BITS QUE SÃO ENVIADOS AO CONTROLADOR DE ATRIBUTOS.
CONTROLADOR DE ATRIBUTOS _ DETERMINA QUE CORES SERÃO MOSTRADAS, TANTO PARA GRÁFICOS, QUANTO PARA TEXTO. O CORAÇÃO DO CONTROLADOR É A TABELA DE CORES – LUT.
CONTROLADOR DO CRT _ A MAIORIA DOS REGISTRADORES SÃO DEDICADOS A TAREFA DE GERAR OS SINAIS PARA
CONTROLAR A TEMPORIZAÇÃO DO CRT. ELES SÃO INICIALIZADOS PARA DETERMINADO MONITOR E NÃO DEVEM SER ALTERADOS. OUTRO CONJUNTO DE REGISTRADORES SERVE PARA ESPECIFICAR NÚMERO DE PIXELS POR LINHA, NÚMERO DE LINHAS, A ALTURA DOS CARACTERES, O ENDEREÇO DE INÍCIO DA MEMÓRIA DE VÍDEO, ETC.
SEQUENCIADOR _ CONTROLA A SEQUENCIALIZAÇÃO DE TODAS AS FUNÇÕES DO CONTROLADOR VGA, ALÉM DE
GERAR OS RELOGIOS QUE CONTROLAM O MONITOR, CONTROLA AS OPERAÇÕES DE LEITURA/ESCRITA NA
MEMÓRIA DE VÍDEO. 
OPERAÇÃO DE ESCRITA NO CONTROLADOR GRÁFICO
TABELA DE CORES PARA O MODO TEXTO
4 PLANOS DE COR PERMITEM
QUE 16 CORES SEJAM USADAS
SIMULTANEAMENTE
CADA INFORMAÇÃO DE COR
QUE TEM 4 BITS, É USADA PARA
ENDEREÇAR UM DOS 16 
REGISTRADORE DE PALETA,
O CONTEÚDO DESTE
REGISTRADOR VAI SER USADO PARA
INFORMAÇÃO DE COR.
CADA REGISTRADOR TEM 6 BITS
QUE GERAM 64 CORES POSSÍVEIS
OPERAÇÃO DO REGISTRADOR DE PALETA
MONITOR DE CRISTAL LIQUIDO, BASTANTE UTILIZADO NOS COMPUTADORES PORTÁTEIS _ É CONFECCIONADO POR
UM SANDUÍCHE DE CRISTAL LÍQUIDO ENTRE DUAS CAMADAS DE VIDRO COM RANHURAS DE ORIENTAÇÕES 
PERPENDICULARES. A PASSAGEM DA LUZ FAZ COM QUE O RAIO LUMINOSO ACOMPANHE O GIRO DAS MOLÉCULAS,
APLICANDO-SE UMA TENSÃO ELÉTRICA OBRIGA AS MOLÉCULAS A ALINHAREM-SE FAZENDO A LUZ PASSAR.
 PORTANTO, O FUNCIONAMENTO É BASEADO EM POLARIZAÇÃO E BLOQUEIO DA LUZ.
PORTA SERIAL:
MODULAÇÃO COMO A TÉCNICA UTILIZADA PARA A TRANSMISSÃO DE 
DADOS PARA GRANDES DISTANCIAS.
IMPRESSORA:
CILINDRO REVESTIDO DE MATERIAL FOTOSENSÍVEL RECEBE CARGA DE 1000 VOLTS. O RAIO DE LUZ DO LASER É MODULADO PARA PRODUZIR UM PADRÃO
DE LUZ E PONTOS ESCUROS. OS PONTOS ESCUROS PERDEM A CARGA ELÉTRICA. APÓS UMA LINHA SER PINTADA, O CILINDRO RODA UMA FRAÇÃO DE GRAU PARA QUE A PRÓXIMA LINHA SEJA IMPRESSA. O TONER É ATRAÍDO PARA AQUELES PONTOS QUE ESTÃO CARREGADOS.

Outros materiais