292
Organização de Computadores Paulo Maciel

Organização de Computadores

  • Upload
    cara

  • View
    43

  • Download
    3

Embed Size (px)

DESCRIPTION

Organização de Computadores. Paulo Maciel. Memória Externa Disco Magn₫tico CD-ROM Fita Magn₫tica Dispositivos de Entrada e Saída I/O Programado Tratado por Interrup₤₧o DMA Canais SCSI. Arquitetura de Computadores. Introdu₤₧o Resumo Histórico Componentes computador - PowerPoint PPT Presentation

Citation preview

Page 1: Organização de Computadores

Organização de Computadores

Paulo Maciel

Page 2: Organização de Computadores

Arquitetura de Computadores

Introdu₤₧oResumo HistóricoComponentes computadorComponentes de um

processadorOpera₤ões de um

processador Sistema de Interconex₧o

Estruturas Estáticas e Dinâmicas

Barramentos Memória Interna

Memória SemicondutoraMemória Cache

Memória Externa Disco Magn₫tico CD-ROM Fita Magn₫tica

Dispositivos de Entrada e Saída I/O Programado Tratado por Interrup₤₧o DMA Canais SCSI

Page 3: Organização de Computadores

Arquitetura de Computadores

Suporte do Sistema OperacionalVis₧o Geral de um Sistema

OperacionalEscalonamentoGerenciamento de Memória

Unidade de ProcessamentoComponentes

Via de DadosUnidade de Controle

Aritm₫ticaControle HardwiredControle MicroprogramadoRISC versus CISC

Page 4: Organização de Computadores

Arquitetura de Computadores

SoftwareModos de endere₤amento

de dados e programaInstru₤õesIntrodu₤₧o à programa₤

₧o Interrup₤ões

Classifica₤₧oProcessamento de

Interrup₤ões Macroassembly Programando com Servi₤os

do Sistema Operacional

Arquitetura X86 Modos de opera₤₧o Modelo de software Descri₤₧o funcional Opera₤ões sobre o

barramento Pipelining Processador Super-escalar Previs₧o de desvio Memória cache Cache de instru₤₧o e de

dados Unidade de Ponto Flutuante

Page 5: Organização de Computadores

Arquitetura de Computadores

Material Didático:

Computer Organization and Architecture

Autor: William Stallings

Editora : Prentice-Hall, Inc

The Pentium Microprocessosr

Autor - James L. Antonakos

Editora: Prentice-Hall, Inc.Outros Livros

Page 6: Organização de Computadores

Computadores Mecânicos

Máquina de Pascal

– Opera₤ões:Soma e Subtra₤₧o

– Manivela

Blaise Pascal (1623-1662)

Máquina Analítica

– Componentes:» Armazenamento

» Engenho

» Se₤₧o de Entrada

» Se₤₧o de Saída

– Cartões Perfurados

– Charles Babbage (1792-1871)

– Ada Lovelace

Page 7: Organização de Computadores

Computador El₫trico

Advento da Energia El₫trica

Desenvolvimento da tecnologia eletrot₫cnica– dispositivos eletromagn₫ticos– rel₫s

Automatiza₤₧o dos processos mecânicos

Máquinas de Aiken

– Rel₫s

– Dígitos decimais

– Fita de papel perfurado

Page 8: Organização de Computadores

Computador Eletrônico

– Máquina Enigma

COLOSSUS (1943) » 1° computador eletrônico

Alan Turing

Page 9: Organização de Computadores

1ª Gera₤₧o (1945-1955)

– ENIAC» Tecnologia - Válvulas e rel₫s

» Arquitetura: 20 registradores

10 digitos decimais

» Programa₤₧o: Chaves

Jonh Mauchley

– UNIVAC– IBM 7090

Page 10: Organização de Computadores

1ª Gera₤₧o (1945-1955) EDSAC - Jonh von Neumann

– Tecnologia - Válvulas e rel₫s

– Arquitetura:» Componentes

• Memória

• Unidade lógico-aritm₫tica

• Unidade de controle

• Equipamentos de entrada

• Equipamentos de saída

» Aritm₫tica binária

– Programa em linguagem de baixo nível armazenado em memória

Memória

Unidadede

ControleULA

Entrada Saída

Acumulador

Arquitetura de von Neumann

Page 11: Organização de Computadores

Camadas de um Sistema Computacional

Linguagens

Sistemas Operacionais

Máquinas

MáquinaMáquina

SOSO

Aplica₤õesAplica₤ões

Page 12: Organização de Computadores

1ª Gera₤₧o (1945-1955)

Máquinas

– UNIVAC

– IBM 7090

LinguagensLinguagens Código AbsolutoCódigo Absoluto

Fios e PaineisFios e Paineis

Nesta ₫poca os Nesta ₫poca os conceitos de linguagemconceitos de linguagemde programa₤₧o e dede programa₤₧o e desistemas operacioniassistemas operacioniasn₧o estavam clarosn₧o estavam claros

Um único grupo de Um único grupo de pessoas projetava, pessoas projetava, construia, programava, construia, programava, operava e efetuava operava e efetuava manuten₤₧o das máquinasmanuten₤₧o das máquinas

Page 13: Organização de Computadores

2ª Gera₤₧o (1955 - 1965)

Advento do Transistor– redu₤₧o de dimensões– redu₤₧o do consumo de

pot₨ncia– possibilita a constru₤₧o de

equipamentos mais complexos

TX-0» 1° Computador transistorizado

– MIT PDP-1

– Metade do desempenho do IBM 7090

– ~5% o valor do IBM 7090

– DEC IBM 1401 IBM 7094

Page 14: Organização de Computadores

2ª Gera₤₧o (1955 - 1965)

Sistema Operacional Batch

– Fortran Monitor System

– IBSYS

Distin₤₧o clara das atividades e grupos de pessoas na execu₤₧o de tarefas

Linguagens de Alto Nível Linguagens de Alto Nível

FORTRANFORTRAN

ALGOLALGOL

Page 15: Organização de Computadores

3ª Gera₤₧o (1965 - 1980)

Circuitos Integrados– redu₤₧o de dimensões– redu₤₧o do consumo de

pot₨ncia– possibilita a constru₤₧o de

equipamentos mais complexos– melhoria de desempenho

Microprocessadores

IBM System/360– Família de Computadores com

diferentes desempenhos, precos, mas compatíveis.

DEC PDP-11– Minicomputador de 16 bits.

Microprocessadores– INTEL

» 4004,8008,8080,8085,8086– ZILOG

» Z80– Motorola

» 68000

Page 16: Organização de Computadores

3ª Gera₤₧o (1965 - 1980)

Multiprograma₤₧o

Timesharing

Simula

Pascal

C

ML

Smalltalk

Page 17: Organização de Computadores

4ª Gera₤₧o (1980 - ?)

Very Large Scale Integration

Computadores Pessoais

Workstations

Computadores– Cray– SUN - 20– IBM SP2

Processadores

– Intel PENTIUM

– ALPHA Digital

– PowerPC

Page 18: Organização de Computadores

4ª Gera₤₧o (1980 - ?)

Sistemas Operacionais para Redes

Sistemas Operacionais Distribuídos

Unix, Windows NT

C++

VisualBasic(Programa₤₧o Visual)

Java(Aplica₤ões para WEB)

Page 19: Organização de Computadores

Arquitetura de Computadores

Abordagens de Hardware e de Software

Seqü₨ncia de Fun₤ões Aritm₫tica

e Lógicas

Dados Resultados

Programa₤₧o em Hardware Fun₤ões Aritm₫tica

e Lógicas dePropósito Geral

Dados Resultados

Programa₤₧o em Software

Interpretadorde

Instru₤ões

Códigos deInstru₤ões

Controle

Page 20: Organização de Computadores

Arquitetura de Computadores

Diagrama em Bloco

I/O Paralelo I/O Serial Circuitos de Interrup₤₧o

Circuitos de Temporiza₤₧o CPU Memória

Page 21: Organização de Computadores

Sistema de Memória

Hierárquia– Interna

» Registradores

» Cache

» Memória Principal

– Externa» Disco Magn₫tico

» Fita

Desempenho × Custo

Princípio da Localidade

Memória de Massa

Memória Principal

Reg.

Page 22: Organização de Computadores

Processador Hipot₫tico

Reg. UsoGeral

Data buffer

Latch End.

A

Unidade de Controle

Reg. Inst

Dec. InstFlags

Reg. Aux.ALU

.......................

Barramento de Dados

Barramento de Endere₤osBarramento de Controle

•Desempenho•Espa₤o de endere₤amento

Page 23: Organização de Computadores

Arquitetura de Computadores

Ciclo de Instrução

– Ciclo de Busca

– Ciclo de Decodificação

– Ciclo de Leitura

– Ciclo de Execução

– Ciclo de Escrita

Page 24: Organização de Computadores

Arquitetura de Computadores

Formato Genérico de Uma Instrução

Exemplos:– mov al,01h

– mov al,[0400]

– mov al,[bx+si]

Código da Instrução Dado, Endereço ou Modo de Endereçamento

Page 25: Organização de Computadores

Arquitetura de Computadores

Diagrama de Estado do Ciclo de Instrução

BuscaInst.

Cal. End.Prox. Inst.

Lê Operand.

Cal. End.Operand.

Exec.Operaç.

Cal. End.Operand.

Escrev.Operand.

Dec.Inst.

MúltiplosOperandos

Múltiplos Resultados

Retorna para string ou vetorInstrução Finalizada. BuscaNova Instrução

Page 26: Organização de Computadores

Arquitetura de Computadores

Interrupções

– Internas - erro de paridade, divisão por zero

– Externas - relógio, teclado – Mascarável - pode ser inibida

– Não Mascarável - não pode ser inibida

Page 27: Organização de Computadores

Arquitetura de Computadores

Interrupções na Arquitetura x86

– Hardware Internas

Externas Mascarável

Não-Mascarável

– Software Sistema Operacional

Usuário

Page 28: Organização de Computadores

Arquitetura de Computadores

Programa do Usuário Servi,co de Interrupção

12

ii+1

m

Page 29: Organização de Computadores

Arquitetura de Computadores

Diagrama de Estado do Ciclo de Instrução com Interrupção

BuscaInst.

Cal. End.Prox. Inst.

L₨ Operand.

Cal. End.Operand.

Exec.Operaç.

Cal. End.Operand.

Escrev.Operand.

Dec.Inst.

MúltiplosOperandos

Múltiplos Resultados

Retorna para string ou vetorInstrução Finalizada. BuscaNova Instrução

Verif. sehá interrp.

Interrupção

Sem Interrup.

Page 30: Organização de Computadores

Arquitetura de Computadores

Programa do Usuário Serviço da Interrupção X

12

ii+1

jj+1

m

Serviço da Interrupção Y

Múltiplas Interrupções

Page 31: Organização de Computadores

Arquitetura de Computadores

Programa do Usuário Serviço da Interrupão X

12

ii+1

m

Serviço da Interrupção Y

Interrupções Aninhadas

Jj+1

Page 32: Organização de Computadores

Arquitetura de Computadores

I/O I/O

CPU Memória

Barramento

Dados

Endereço

Controle

•Desempenho•Espaço de endereçamento

Page 33: Organização de Computadores

Arquitetura de Computadores

Barramento

Linhas de Controle TípicasEscrita em memóriaLeitura de memóriaEscrita em I/OLeitura de I/OSolicitação de BarramentoReconhecimento da Solicitação do BarramentoSolicitação de InterrupçãoReconhecimento de InterrupçãoClockReset

Page 34: Organização de Computadores

Arquitetura de Computadores

Barramento Hierárquico

CPU Cache

Memória

Modem I/O Serial SCSI Network

ControladorLocoal de I/O

Interfacede Expansão

Barr. Local

Barr. do Sistema

Expansão do Bus

Page 35: Organização de Computadores

Arquitetura de Computadores

Elementos de Projeto de um Barramento Tipo

Multiplexado Dedicado

I/O Paralelo I/O Serial

CPU Memória

Vantagem•Menos linhas•Possível menor Custo

Desvantagem•Circuitos dosmódulos émais complexo•Desempenho

Page 36: Organização de Computadores

Arquitetura de Computadores

Elementos de Projeto de um Barramento Tipo

Multiplexado Dedicado

I/O Paralelo I/O Serial

CPU Memória

Vantagem•Menor contenção•Desempenho

Desvantagem•Mais linhas•Custo

Adaptador

Barr. de I/O

Adaptador

Barr. local

Page 37: Organização de Computadores

Arquitetura de Computadores

Elementos de Projeto de um Barramento Método de Arbitragem

CentralizadoDistribuído

P0LM0P1

LM1Árbitro

Req0 Req1

Gnt0 Gnt1

I/OSM

Page 38: Organização de Computadores

Arquitetura de Computadores

Elementos de Projeto de um Barramento Método de Arbitragem

CentralizadoDistribuído

P0LM0

I/OSM

P1LM1 P2LM2

Term.Barr.

Term.Barr.

BPI BPI BPIBPO BPO

BPOBusy

Page 39: Organização de Computadores

Arquitetura de Computadores

Elementos de Projeto de um Barramento Temporização

SíncronoAssíncrono

Válido

P/ CPU

mrq

rd

add

data

clk

Leitura de Memória

CPU Memória

Circuitos de Temporiza₤₧o

clk

mrq

rd

AD bus

Page 40: Organização de Computadores

Arquitetura de Computadores

Elementos de Projeto de um Barramento Temporização

SíncronoAssíncrono

Válido

P/ CPU

msyn

rd

add

data

Leitura de Memóriassyn

CPU Memória

msyn

ssyn

rd

AD bus

Page 41: Organização de Computadores

Arquitetura de Computadores

Elementos de Projeto de um Barramento

Largura

Baramento de Dados : desempenho

Barramento de Endereço: espaço de endereçamento

Page 42: Organização de Computadores

Arquitetura de Computadores

PCI - Peripherical Component Interconnect

CPU

Ponte/Controlador de

Memória

Áudio

Dispositivos I/O

SCSI

Ponte paraExpansão

Barr. Local

Barramento PCI

Expansão do Bus

DRAM

Contolador deVídeo

Vídeo

Cache

Network

Page 43: Organização de Computadores

Arquitetura de Computadores

PCI - Peripherical Component InterconnectEstrutura

Pinos de Sistema (reset e clock)Pinos de Dados e Endereços (32 linhas multiplexadas de dados e

endereços, erro de paridade)Pinos de Controle de Interface (Coodernação e controle de transações entre dispositivos - IRDY, TRDY, IDSEL, DEVSEL) Pinos de Arbitragem - (Req, GNT)Pinos de Erro - (PERR,SERR)Pinos de Interrupção - (INTA,INTB,INTC,INTD)Pinos de Suporte à Cache - (SOB,SDONE)Pinos de Extensão para Barr. de 64 Bits - (Linhas de endereço e dados multipliexadas, linhas de erro etc)Pinos JTAG - ( Procedimentos de teste definidos no padrão IEEE 1149.1)

Page 44: Organização de Computadores

Arquitetura de Computadores

PCI - Peripherical Component InterconnectComandos

Reconhecimento de InterrupçãoCiclo Especial - (Utilizado por um iniciador para enviar comando para mais de um destino ao memo tempo)Leitura e Escrita de I/OLeitura de Memória

LeituraLeitura de LinhaLeitura Múltipla

Escrita em MemóriaEscrita em Memória com InvalidaçãoLeitura de Configuração de DispositivoEscrita de Configuração de DispositivoCiclo de Endereçamento Dual - (Endereçamento de 64 bits)

Page 45: Organização de Computadores

Sistema de Memória

Hierárquia– Registradores

– Cache

– Memória Principal

– Disco Magnético

– CDROM

– Fita

• Memória Interna

• Memória Externa

• Memória Off-line

Page 46: Organização de Computadores

Sistema de Memória

Memória Principal - semicondutora -Volateídade Categoria Tipo Apagamento Escrita

Volátil E/L RAM Elétrico Elétrico

Só leitura ROM Ñ é Possível Máscara

PROM Elétrico

Ñ volátil Quase só EPROM UV

de leitura EEPROM Elétrico

Page 47: Organização de Computadores

Sistema de Memória

Memória ROM

A0

An-1 Dm-1

D0CS

n mROM

Diagrama em Bloco

Vcc

Vcc

Vcc

D0 D1 D m-1

A0

An-1

CS

Estrutura Interna

Lógicade

Decod.

Page 48: Organização de Computadores

Sistema de Memória

Memória PROM

A0

An-1 Dm-1

D0CS

n mPROM

Diagrama em Bloco

Vcc

Vcc

Vcc

D0 D1 D m-1

A0

An-1

CS

Estrutura Interna

Lógicade

Decod.

Fusível

Page 49: Organização de Computadores

Sistema de Memória

Memória EPROM

A0

An-1 Dm-1

D0CS

n mEPROM

Diagrama em Bloco

OE/Vpp

Modo Entradas Saídas

CS OE/Vpp

Ler/ VL VL dados_saídaVerificarSaída VL VH Alta Imp.Desabilitada Standby VH X Alta Imp.

Programa VL VPP Dados_entrada

Page 50: Organização de Computadores

Sistema de Memória

Memória EEPROM

A0

An-1 Dm-1

D0CS

n mEEPROM

Diagrama em Bloco

A0

An-1OE

Modo Entradas Saídas

CS OE WE

Ler VL VL VH Dados_saída

Escreve VL VH VL Dados_ent.

Standby VH X X Alta imp. WE

Page 51: Organização de Computadores

Sistema de Memória

Memória RAM Estática

A0

An-1 Dm-1

D0CS

n mRAM

Diagrama em Bloco

A0

An-1RW

A0

An-1

CS

Lógicade

Decod.

Buffer de Saída

Buffer de Entrada

Registradores

R/WEnt_ Dados

Saída_Dados

Célula

Page 52: Organização de Computadores

Sistema de Memória

Memória RAM Estática

A0

An-1

A0

An-1

CS

Lógicade

Decod.

Buffer de Saída

Buffer de Entrada

Registradores

R/WEnt_ Dados

Saída_Dados

CélulaVdd

Q1 Q2

Q3 Q4

Célula

Page 53: Organização de Computadores

Sistema de Memória

Memória RAM Dinâmica

A0/Ak

Ak-1/An-1 Din

Dout

RAS

n 1RAM

Diagrama em Bloco

A0

An-1RW

A0

An-1

CS

Lógicade

Decod. Matrix

R/WEnt_ Dados

Saída_Dados

Célula

CAS

Page 54: Organização de Computadores

Memória Cache

Princípio da Localidade

– Instruções

– Dados

Operação

Processador Cache Memória

MOV CX,1000 SUB AX,AX

Next: ADD AX,[SI]MOV [SI],AXINC SILOOP Next

Page 55: Organização de Computadores

Memória Cache

Princípio da Localidade

– Tacc=HitRate Tcache+(1- HitRate) (Tcache+Tmem)

– Tcache=10 ns– Tmem= 70 ns– HitRate= 0,9 Tacc= 17 ns

Processador Cache Memória

Page 56: Organização de Computadores

Memória Cache

Política de Busca

Define quando e quais informações buscar na CACHE

– Demanda

» Busca uma linha i quando esta se faz necessário

– Pré-busca» Busca a linha i+1

quando a linha i for referida

Page 57: Organização de Computadores

Memória Cache

Política de Escrita

Define quando uma palavra deve ser alterada na memória principal.

– Writethrough» Garante consistência dos

dados

» Aumenta o tráfego no barramento

– Writeback» Reduz o tráfego no

barramento

» Necessita de mecanismos para manutenção de consistência

Page 58: Organização de Computadores

Memória Cache

Política de Substituição

Define como uma linha da memória CACHE deve ser substituída.

– RAND - Aleatório

– FIFO - First in First Out

– LRU - Least Recently Used

Page 59: Organização de Computadores

Memória Cache Organização

Mapeamento Direto

– Vantagem

Simplicidade do Hardware

Algoritmo de Substituição ₫ simples

– Desvantagem Não é flexível

Diversos blocos de memória são mapeados na mesma linha da CACHE

20 7 5 Endereço de 32 bits

Tag Linha

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

0

1

127

25 = 32 bytes

Número de Linhas27 = 128

Page 60: Organização de Computadores

Memória Cache Organização

Completamente Associativa

– Vantagem

Flexibilidade

– Desvantagem

Complexidade do Hardware

27 5 Endereço de 32 bits

Tag Linha

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

0

1

127

25 = 32 bytes

Page 61: Organização de Computadores

Memória Cache Organização

Associativa por Conjunto (Set Associative)

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

0

1

63

25 = 32 bytes

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

25 = 32 bytes

21 6 5 Endereço de 32 bits

Tag Linha

Page 62: Organização de Computadores

Coer₨ncia de Cache em Sistemas Multiprocessadores

Protocolo de coerência de Cache MESI– Modified - a linha corrente

foi modificada (diferente da informação na memória principal) e pertence a uma única cache.

– Exclusive - linha são modificada e exclusiva de uma única cache. Escrevendo-se nesta linha, esta passa para o

estado Modified.

– Shared - linha corrente pertence a mais de uma cache. Ao escrever-se nesta linha, um writethrough é gerado e invalidam-se as outras cópias em outras caches.

– Invalid - a linha corrente está vazia. Uma leitura desta linha gera um miss.

Page 63: Organização de Computadores

Coerência de Cache em Sistemas Multiprocessadores

Barramento

Icache

Dcache

X=7

X=30X=10

P1

P2

p3

p4

Icache

Dcache

Icache

Dcache

Icache

Dcache Memória

Page 64: Organização de Computadores

Arquitetura de Computadores

Classifica₤₧o de Flyn

– SISD - Processadores von

Neumann

– SIMD - Array Processors

– MISD

– MIMD - Multiprocessadores

/Multicomputadores

Classifica₤₧o para Arquiteturas Paralelas

– Computadores Pipeline

– Array Processors

– MIMD

Page 65: Organização de Computadores

Multiprocessadores - UMA

Sistema de Interconex₧o

P1 P2 Pn

I/O SM1 SMm

MemóriaCompartilhada•Fortemente Acoplados

•Aplica₤ões Gerais Time-sharing

Page 66: Organização de Computadores

Multiprocessadores - NUMA

GSM

Rede de Interconex₧o Global

Modelo Cedar - University Illinios

GSM GSM

P CSM

P

P

P CSM CSM

CSM

C1 C2

Page 67: Organização de Computadores

Multiprocessadores - COMA

P

Rede de Interconex₧o Global

P P

Cache Cache Cache

•DDM - Swedish Institute of Computer Science

Page 68: Organização de Computadores

Multicomputadores

M P

M P

M P

M P

Redede

Inter-conex₧o

•Intel iPSC/1 -•Intel Paragon - •MIT J-Machine-

Page 69: Organização de Computadores

Memória Externa

• Disco Magnético

– Organização dos Dados

• Superfícies

• Trilhas (separadas por gaps)

• Setores (separados por gaps)

• Densidade

Setor Trilha

Gap

Page 70: Organização de Computadores

Memória Externa

• Disco Magnético

– Características Físicas

• Cabeças Móveis

Trilhas

Cabeça

Page 71: Organização de Computadores

Memória Externa

• Disco Magnético

– Características Físicas

• Cabeças Fixas

Trilhas

Cabeças

Page 72: Organização de Computadores

Memória Externa

• Disco Magnético

– Características Físicas

• Cabeças Fixas

• Cabeças Móveis

• Removíveis (Floppy disk)

Page 73: Organização de Computadores

Memória Externa

• Disco Magnético

– Características Físicas

• Cabeças Fixas

• Cabeças Móveis

• Removíveis (Floppy disk)

• Fixos (hard disk)

Page 74: Organização de Computadores

Memória Externa

• Disco Magnético

– Características Físicas

• Sistema das Cabeças de R/W

– Contact (Floppy disk)

– Fixed Gap

– Gap Aerodinâmico (Winchester)

Page 75: Organização de Computadores

Memória Externa

• Disco Magnético

Setor Trilha

Gap

Superficies

Cabeças de Leitura/Gravação

Tacesso=Tseek + Tlat + Ttrans

Taxatransf = bytes transf./ Tacesso

Page 76: Organização de Computadores

Memória Externa

• CD-ROM– Tecnologia

• Disco feito de resina

• Coberto por alumínio reflexivo

• Informação gravada através criados por raios lazer

• Proteção final feita por um lacquer

• Leitura feita através da relexão de raios lazer sobre a

superfície

Page 77: Organização de Computadores

Memória Externa

• CD-ROM

VelocidadeAngular Constante

VelocidadeLinear Constante

•DesvantagemCapacidade dossetores externos ficalimitada a do mais interno

VantagemSimplicidade noendereçamento desetores

VantagemMaior capacidadede armazenamento

DesvantagemSistema de endereçamentomais complexo

* CD-ROM

Page 78: Organização de Computadores

Memória Externa

• CD-ROM

r=32,55m

•Espaçamento entretrilhas (eet)= 1.6 m

#trilhas = r/eet =20344 (aparentes)

•De fato, tem-se uma espiral!•Comprimento da espiral = 5,27Km•VLC = 1,2 m/sTempo para percorrer o disco = 4391s = 73,2 min•Densidade de Armazenamento = 176,4 Kbytes/s Capacidade = 774,57 Mbytes

Page 79: Organização de Computadores

Memória Externa

• CD-ROM

– Organização dos Dados• Superfícies

• Trilhas (separadas por gaps)

• Blocos

– Formato do Bloco

Sync Id Dados M2=dados, M1=ECC

00 FF×1000 End M 2048 bytes 288 bytesou ECC

Modos

•M0 - campo de dados em branco

•M1 - 2048 bytes + ECC•M2 - 2336 sem ECC

Page 80: Organização de Computadores

Memória Externa

• WORM (Write Once Read Many)– Tecnologia

• Disco feito de resina• Coberto por alumínio reflexivo• Pré-formatação feita através de raios lazer que cria uma

série de “bolhas”• Gravação feita por um sistema lazer (não tão poderoso)

que rompe as “bolhas”• Leitura feita através da relexão de raios lazer sobre a

superfície

– Layout - VAC

– Capacidade característica = 650 Mbytes

Page 81: Organização de Computadores

Memória Externa

• Erasable Optical Disk– Tecnologia

• Disco feito de resina• Coberto por um material cuja reflexibilidade pode ser Alta, Baixa ou

indeterminada.• A gravação é feita através de raio lazer que altera o estado

de reflexivo do material• Leitura feita através da relexão de raios lazer sobre a

superfície

– Layout - VAC

– Capacidade Característica : 650 Mbytes

Page 82: Organização de Computadores

Memória Externa

• Fita Magnética– Tecnologia

• Material recoberto por oxido magnético.

– Organização dos dados

Gap

Registro

Trilhas

Page 83: Organização de Computadores

Memória Externa

• Fita Magnética

– Número Típico de Trilhas - 9, 18, 36– Acesso Seqüencial– Vantagem : Custo– Desvantagem : Tempo de Acesso

Page 84: Organização de Computadores

Entrada/Saída

• Técnicas para Controle de I/O

– I/O programado

– Baseado em Interrupções

– Baseado em DMA

Page 85: Organização de Computadores

Entrada/Saída

• Modelo de Genérico de Dispositivo de I/O

Módulo I/O

Disp. Externo

Bus de end.Bus de dados

Bus de controle

status e controle

dados

Dados do/para o ambiente

Page 86: Organização de Computadores

Entrada/Saída

• Categorias de Dispositivo Externo

– Para Interação com Pessoas (Teclado, vídeo etc)

– Para Interação com Máquinas (Unidade de disco)

– Para Comunicações (Dispositivo remoto)

Page 87: Organização de Computadores

Entrada/Saída

• Modelo Genérico de um Dispositivo Externo

Lógicade

ControleTransdutor

Buffer

Dados de/para o ambiente

Dados de/para o módulo I/OStatus para módulo I/OControle do módulo I/O

Page 88: Organização de Computadores

Entrada/Saída

• Modelo Genérico do Módulo I/O

Reg. de dados

Regs. Status e de Controle

Lógicade I/O

InterfacecomDisp.

Externos

InterfacecomDisp.

Externos

Dados

Endereço

Controle

Dados

Controle

Status

Dados

Controle

Status

Page 89: Organização de Computadores

Entrada/Saída

• Técnicas para Controle de I/O– I/O programado

• Comandos

– Controle - informa ao periférico o que fazer

– Teste - testa condições

– Leitura - ler dados do periférico

– Escrita - escreve dados no periférico

Page 90: Organização de Computadores

Entrada/Saída

• Técnicas para Controle de I/O– I/O programado

Envia Comando de Leitura

para Módulo I/OLê status doMódulo I/O

Lê palavra doMódulo I/O

Escreve palavra na Memória

Ver.status

Feito ?

Não estápronto

Condição de erro

pronto

não

sim

Próxima Instrução

Page 91: Organização de Computadores

Entrada/Saída

• Técnicas para Controle de I/O – Baseado em Interrupção

Envia Comando de Leitura

para Módulo I/OLê status doMódulo I/O

Lê palavra doMódulo I/O

Escreve palavra na Memória

Ver.status

Feito ?

Condição de erro

pronto

não

sim

Próxima Instrução

Vai fazer qualquer coisa

Interrupção

Page 92: Organização de Computadores

Entrada/Saída

PUSH FLAGSPUSH IPFETCH ISR ADDRESS

POP IPPOP FLAGS

INTERRUPTSERVICE

PROCEDURE

Restaura EstadoRetorno

•Técnicas para Controle de I/O - Baseado em Interrupção Hardware Software

Controlador ou Periférico solicita

Interrupção

Processador Finaliza

Execução de Instrução Corrente

Processador Reconhece Interrupção

Salva Estado

Processa Interrupção

Processamento da Interrupção

Page 93: Organização de Computadores

Entrada/Saída

• Técnicas para Controle de I/O – Baseado em DMA

Quantidadede Dados

Reg. deDados

Reg. de Endereço

Lógicade

Controle

DMA_Req

DMA_AckInt_req

Rd

Wr

Bus de Dados

Bus de Endereço

Diagrama Genéricodo Controlador de DMA

Page 94: Organização de Computadores

Entrada/Saída

• Técnicas para Controle de I/O – Baseado em DMA

Escreve na Memória ou

no Dispositivo

Feito ?não

sim

Próxima Instrução

Solicitação de DMA

Vai fazer qualquer coisa

Suspensão

Reconhecimentoda solicitação DMA

Retira Solicitação de DMA

Processador

Controlador DMAEnviaSolicitação de DMA

AguardaReconh.

Solicitação de DMA

Envia Reconh. DMA

Envia Comando de Leitura/Escrita

DMApara Módulo I/O

Lê dados do Dispositivo ou

da Memória

Page 95: Organização de Computadores

Arquitetura de Computadores

Arquiteturas RISC X CISC

– Complex Instruction Set Computer

– Reduced Instruction Set Computer

» RISC : SPARC

» CISC : Intel 386

Page 96: Organização de Computadores

Arquitetura de Computadores

Problemas CISC– Desempenho

– ROM interna aumenta as dimensões da pastilha

– Mau uso, pelos programadores, das instruções e modos de endereçamento disponíveis

Caracteristicas CISC– Instruções complexas

– Modos de endereçamento complexos

– Controle implementado por ROM

– Micro-instruções

Page 97: Organização de Computadores

Arquitetura de Computadores CISC

•SE CARACTERIZA POR:

•CONJUNTO DE INSTRUÇOES E MODOS DE ENDEREÇAMENTO SOFISTICADOS

•CONTROLE MICROPROGRAMADO

•UM NÚMERO REDUZIDO DE INSTRUÇÕES NO CÓDIGO COMPILADO

•COMPILADOR DE CONSTRUÇÃO MAIS SIMPLES

Page 98: Organização de Computadores

Arquitetura de Computadores CISC

MEMÓRIA DE MICROPROGRAMA

CONTADOR DE MICROPROGRAMA

LÓGICA DE SELEÇÃO DE ENDEREÇO

REGISTRADOR DE INSTRUÇÃO

VIA DE DADOS

PC

MEMÓRIA

+1

CONTROLE

STATUS

UNIDADE DE CONTROLE

Page 99: Organização de Computadores

Arquitetura de Computadores RISC

Objetivos das Maquinas RISC

– Melhoria de desempenho

– Reduzir acesso à memória principal (arq. load/store)

– Instruções e modos de endere₤amento simples (Controle hardware wired)

– Bom uso dos registradores

– Pipelining (execução super-escalar)

– Uso extensivo do compilador

Page 100: Organização de Computadores

Arquitetura de Computadores RISC

SE CARACTERIZA POR:

•CÓDIGOS DE INSTRUÇÃO MAIS SIMPLES

•COMPILADORES MAIS SOFISTICADOS

•PEQUENOS CICLOS DE CLOCK

•PEQUENOS NÚMEROS DE CICLOS POR INSTRUÇÃO

•EFICIENTE PIPELINING DE FLUXO DE INSTRUÇÕES

Page 101: Organização de Computadores

Arquitetura de Computadores RISC

HARDWIRED OUTPUT AND NEXT-STATE

LOGIC

STATE REGISTER

INSTRUCTION REG.

REGISTER

FILE

MEMORY

CONTROL

STATUS

CONTROL UNIT

INSTR.

CACHE

DATA

CACHE

ALU

DATAPATH

Page 102: Organização de Computadores

Arquitetura de Computadores Petium

8086– 16 bits

– Espaço de endereçamento : 1 Mb

– Endereço da primeira instrução executada: FFFF0H

286– 16 bits

– Espaço de endereçamento : 16 Mb (24 bits)

– Memória Virtual

386– 32 bits

– Espaço de endereçamento : 32 bits

– Registradores de 32 bits

486– Cache interna de 8K

– Co-processador 80387 interno

Page 103: Organização de Computadores

Arquitetura de Computadores Petium

Pentium é uma máquina CISC com características de RISC– Pipelines - Superescalar – Cache Interna - Dados, Instrução– Registradores de uso geral - 32– Previsão dinâmica de desvios– Co-processador aritmético interno com 7

registradores de ponto flutuante de 80 bits

Page 104: Organização de Computadores

Modos de Operação

Modo Real– 1 Mbyte

Modo Protegido– 4 Gbytes– Multitarefa– Memória Virtual– Gerenciamento e Proteção de Memória

Modo Virtual Modo de Gerenciamento

Page 105: Organização de Computadores

Modelo de Software

EAX

EBX

ECX

EDX

EBP

ESI

EDI

AX

BX

CX

DX

BP

SI

DI

AL

BL

CL

DL

AH

BH

CH

DH

IP

SP

Flags

EIP

ESP

EFlags

CS

DS

SS

ES

FS

GS

Registradores de SegmentoRegistradores de Uso Geral

Acumulador

Base

Contador

Dados

Base de Pilha

Índice Fonte

Índice Dest.

Apont. Inst.

Apont.Topo de Pilha

Flags

Codigo

Dados

Pilha

Extras

Page 106: Organização de Computadores

Modelo de Software

Registrador de Flags

» CF - Vai-um» PF - Paridade» AF - Vai-um auxiliar» ZF - Zero» SF - Sinal» OF - Estouro

NT IOPL OF DF IF TF SF ZF AF PF CF

» IF – Interrupção»DF - Direção»TF - Passo Simples»IOPL - Nível de Prioridade

da Tarefa»NT - Tarefa Aninhada

Page 107: Organização de Computadores

Modos de Endereçamento de Dados

Imediato

– Ex.: mov cx,1024H Registrador

– Ex.: mov al,ah

Op_Code Dado

Op_Code Regist.

Regist. Dado

Page 108: Organização de Computadores

Modos de Endereçamento de Dados

Direto

– Ex.: mov al,[0300h] mov ax,counter

Registrador Indireto

– Ex.: mov ch,[bx]

Op_Code Ender. Dado

Op_Code Regist.

DadoBX,SI,DI Ender.

Page 109: Organização de Computadores

Modos de Endereçamento de Dados

Indexado

– Ex.: mov ch,[bx]

Op_Code Regist. de Índice

SI,DI

Desl.

Desl.

DadoEnder.

Page 110: Organização de Computadores

Modos de Endereçamento de Dados

Base

– Ex.: mov ch,[bx+02]

Op_Code Regist. de Base

BX,BP

Desl.

Desl.

DadoEnder.

Page 111: Organização de Computadores

Modos de Endereçamento de Dados

Base Indexado

– Ex.: mov ch,[bx+si]

Op_Code Regist. de Base

BX,BP

Regist. de Índice

DadoEnder.

Regist. de Índice

Page 112: Organização de Computadores

Modos de Endereçamento de Dados

Base Indexado com Deslocamento

– Ex.: mov ch,[bx+si+03]

Op_Code Regist. de Base

BX,BP

Regist. de Índice

DadoEnder.

Regist. de Índice Desl.

Desl.

Page 113: Organização de Computadores

Modos de Endereçamento de Dados

Porta

– Ex.: in al,80h ;espaço de

in al,dx ; endereçamento = 256

out 90h,al ; espaço de

out dx,al ; endereçamento = 65536

Op_Code Ender. ou DX

Page 114: Organização de Computadores

Modos de Endereçamento de Dados

Modo de Endereçamento de 32 bitsReg. de Seg.

Reg. de Base

Reg. de Índice

Fator de Escala

Deslocamento

Endereço

*

CS,DS,ES,FS,GS,SS

EAX,EBX,ECX,EDX,EBP,ESI,EDI,ESP

EAX,EBX,ECX,EDX,EBP,ESI,EDI

{1,2,4,8}

Nada, 8 bits, 32 bits

Ex.: MOV EAX,[EBX],[ECX*4+6]

Page 115: Organização de Computadores

Arquitetura do Pentium

Bus Unit

Page Unit

8kbinstruction

cache

TLB

Branchtargetbuffer

P b I dr u n ee f s cf f t oe e r dt r u ec t.h

Control ROM

C o

n u t nr io tl

8kbdata

cache

TLB

Floatingpoint registers

256

Data bus - 64 bitsAdd. Bus 32 bits

Control bus

Add. Data

32Address bus - 32 bits

Data bus - 64 bits

Add.generateV pipe

Add.generateU pipe

Integerregisterfile

ALUV pipe

ALUU pipe

Shifter

Instruction pointer

Branch target address

32

Floatingpoint unit

Prefetchaddress

Page 116: Organização de Computadores

Arquitetura do Pentium

Dois pipelines de 5 estágios: U e V

– Estágios

» PF - prefetch» D1 - instruction decode» D2 - address generate» EX - execute, cache, ALU access» WB - writeback

Page 117: Organização de Computadores

Arquitetura do Pentium

256 bits

P b I dr u n ee f s cf f t oe e r dt r u ec t.h

Prefet.Buffer

V64 bytes

Prefet.Buffer

U64 bytes

256 bits

Decod.D1V

Decod.D1U

Page 118: Organização de Computadores

Decod.D2V

Decod.D2U

Arquitetura do Pentium

Decod.D1V

Decod.D1U

Ger.End.

V

Ger.End.

U

Para o BTB

Para o BTB

Page 119: Organização de Computadores

Decod.D2V

Decod.D2U

Arquitetura do Pentium

Decod.D1V

Decod.D1U

Unidade de Microcódigo

ALUV

ALUU

REG

Page 120: Organização de Computadores

Decod.D2V

Decod.D2U

Arquitetura do Pentium

Decod.D1V

Decod.D1U

Unidade de Microcódigo

Conrole

ADD DIV MUL

FPU

Reg. File

Dados

Page 121: Organização de Computadores

Arquitetura do Pentium

Execução Super-Escalar– Ambas as instruções devem

ser simples.

– Sem dependência de dados.

– As instruções não podem ter modos de endereçamento imediato e indireto.

– Instruções com prefixo só podem ser executadas no pipelin U.

Não requerem micro-código para serem executadas. Normalmente levam 1 ciclo de clock para serem executadas.

ADD AX,BX (não podem ser executadas

ADD AX,CX em paralelo)

MOV TABLE[SI],7

MOV ES:[DI],AL

Page 122: Organização de Computadores

Arquitetura do Pentium

Execução Super-EscalarCiclos 1 2 3 4 5

de clockI1 I2 I3 I4 I5 I6 I7 I8 I9 I10

I1 I2 I3 I4 I5 I6 I7 I8

I1 I2 I3 I4 I5 I6

I1 I2 I3 I4

I1 I2

PF

D1

D2

EX

WB

Page 123: Organização de Computadores

Previsão Dinâmica de Desvio

8kbinstruction

cache

TLB

Branchtargetbuffer

P b I dr u n ee f s cf f t oe e r dt r u ec t.h

256

Instruction pointer

Branch target address

Prefetchaddress

H:11P:T

H:10P:T

H:00P:NT

H:01P:T

NT

T

NTT

NT

T

NT

T

Address Instruction Targ. Add. History Prediction

. . .

Page 124: Organização de Computadores

Memória Cache

Princípio da Localidade

– Instruções

– Dados

Operação

Processador Cache Memória

MOV CX,1000 SUB AX,AX

Next: ADD AX,[SI] MOV [SI],AX INC SI LOOP Next

Page 125: Organização de Computadores

Memória Cache

Princípio da Localidade

– Tacc=HitRate Tcache+(1- HitRate) (Tcache+Tmem)

– Tcache=10 ns– Tmem= 70 ns– HitRate= 0,9 Tacc= 17 ns

Processador Cache Memória

Page 126: Organização de Computadores

Memória Cache

Política de Busca

Usada para decidir quando e quais informações buscar na CACHE

– Demanda

– Pré-busca

Page 127: Organização de Computadores

Memória Cache

Política de Busca

Usada para decidir quando e quais informações buscar na CACHE

– Demanda

» Busca uma linha i quando esta se faz necessário

– Pré-busca» Busca a linha i+1

quando a linha i for referida

Page 128: Organização de Computadores

Memória Cache

Política de Escrita

O momento em que uma palavra deve ser alterada na memória principal, após uma escrita, depende da política de escrita.

– Writethrough» Garante consistência dos

dados

» Aumenta o tráfego no barramento

– Writeback» Reduz o tráfego no

barramento

» Necessita de mecanismos para manutenção de concist₨ncia

Page 129: Organização de Computadores

Memória Cache

Política de Substituição

Define como uma linha da memória CACHE deve ser substituída.

– RAND - Aleatório

– FIFO - First in First Out

– LRU - Least Recently Used

Page 130: Organização de Computadores

Memória Cache Organização

Mapeamento Direto

– Vantagem

Simplicidade do Hardware

Algoritmo de Substituição ₫ simples

– Desvantagem Não é flexível

Diversos blocos de memória são mapeados na mesma linha da CACHE

20 7 5 Endereço de 32 bits

Tag Linha

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

0

1

127

25 = 32 bytes

Número de Linhas27 = 128

Page 131: Organização de Computadores

Memória Cache Organização

Completamente Associativa

– Vantagem

Flexibilidade

– Desvantagem

Complexidade do Hardware

27 5 Endere₤o de 32 bits

Tag Linha

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

0

1

127

25 = 32 bytes

Page 132: Organização de Computadores

Memória Cache Organização

Associativa por Conjunto (Set Associative)

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

0

1

63

25 = 32 bytes

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

25 = 32 bytes

21 6 5 Endereço de 32 bits

Tag Linha

Page 133: Organização de Computadores

Memória Cache Organização do Pentium

Two-way-set - associative 128 Conjuntos - 256 linhas (entradas) 32 bytes por linha (64 por conjunto) 8Kb de CACHE de instrução 8Kb de CACHE de dados Triple ported

– Pipeline U– Pipeline V– Opera₤ões de Bus snooping

Estrutura

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

Set 0

Set 1

Set 127

25 = 32 bytes

TAG

TAG

TAG

Dado

Dado

Dado

.

.

.

.

.

.

25 = 32 bytes

Page 134: Organização de Computadores

Arquitetura do Pentium

Bus Unit

Page Unit

8kbinstruction

cache

TLB

Branchtargetbuffer

P b I dr u n ee f s cf f t oe e r dt r u ec t.h

Control ROM

C o

n u t nr io tl

8kbdata

cache

TLB

Floatingpoint registers

256

Data bus - 64 bitsAdd. Bus 32 bits

Control bus

Add. Data

32Address bus - 32 bits

Data bus - 64 bits

Add.generateV pipe

Add.generateU pipe

Integerregisterfile

ALUV pipe

ALUU pipe

Shifter

Instruction pointer

Branch target address

32

Floatingpoint unit

Prefetchaddress

Page 135: Organização de Computadores

Memória Cache Translation Lookaside Buffer

16 4 12 Endereço Linear

Tag Linha

Endereço linear

Endereço Físico para Cache

TLB T

T

T

EndEnd

End

.

.

.

.

.

.

0

1

T

T

T

End

End

End

.

.

.

.

.

.

T

T

T

EndEnd

End

.

.

.

.

.

.

0

1

15

T

T

T

End

End

End

.

.

.

.

.

.

20 12 Endereço Físico para Cache

Page 136: Organização de Computadores

Coerência de Cache em Sistemas Multiprocessadores

Protocolo de coerência de Cache MESI– Modified - a linha corrente

foi modificada (diferente da informação na memória principal) e pertence a uma única cache.

– Exclusive - linha não modificada e exclusiva de uma única cache. Escrevendo-se nesta linha, esta passa para o

estado Modified.

– Shared - linha corrente pertence a mais de uma cache. Ao escrever-se nesta linha, um writethrough é gerado e invalia-se as outras cópias em outras caches.

– Invalid - a linha corrente está vazia. Uma leitura desta linha gera um miss.

Page 137: Organização de Computadores

Coerência de Cache em Sistemas Multiprocessadores

Barramento

Icache

Icache

Icache

Icache

Dcache

Dcache

Dcache

Dcache

X=7

X=30X=10

P1

P2

p3

p4

Page 138: Organização de Computadores

Dimensões das Caches

Pentium– Um nível de cache interno.– Cache de dados : 8kb– Cache de instruções: 8kb

Pentium MMX– Um nível de cache interno– Cache de dados: 16kb– Cache de Instruções: 16kb

Pentium Pro– Dois níveis de cache internos.– Cache dados nível 1: 8kb– Cache de instrução nível 1:

8kb– Cache nível 2: 256kb, 512kb,

1MB

Page 139: Organização de Computadores

Dimensões das Caches

Petium II– Dois níveis de cache internos.– Cache de dados nível 1: 16kb– Cache de instrução nível 1:

16kb– Cache nível 2: 512kb

Petium III– Dois níveis de cache internos.– Cache de dados nível 1: 16kb– Cache de instrução nível 1:

16kb– Cache nível 2: 512kb

Page 140: Organização de Computadores

Unidade de Ponto Flutuante

PF - pré-busca D1 - decodificação de instrução D2 - geração de endereço EX - leitura de memória e

registradores. Converção do formato de ponto flutuante em formato de memória. Escrita em memória.

X1 - primeiro estágio de execução. Dados da memória são convertidos no formato ponto flutuante. Escreve o operando para os registradores de ponto flutuante.

X2 - segundo estágio de execução. WF - arrendonda o resultado e

escreve nos registradores de ponto flutuante.

ER - sinalização de erro e atualização da palavra de status.

Page 141: Organização de Computadores

Unidade de Ponto Flutuante

PF D1 D2 EX

X1X2WFER

Bypass

Fluxo deinstruçõese de dados

Pipeline U

Fluxo dedados

ST(0)ST(1)ST(2)ST(3)ST(4)ST(5)ST(6)ST(7)

Registradoresde

Ponto Flutuante

80 bits

Page 142: Organização de Computadores

Operações de Barramento

M/IO D/C W/R Cache KEN Descrição

0 0 0 1 x Recon. Int.

0 0 1 1 x Ciclo Especial

0 1 0 1 x Leit. I/O

0 1 1 1 x Escr. I/O

1 0 0 1 x Leit. de Código ñ cache

1 0 0 x 1 Leit. de Código ñ cache

1 0 0 0 0 Leit. de Código em Rajada de 32 bytes

1 1 0 1 x Leit. Mem. Acima de 8 bytes ñ cache

1 1 0 x 1 Leit. Mem. Acima de 8 bytes ñ cache

1 1 0 0 0 Leit. Mem em Rajada de 32 bytes

1 1 1 1 x Escr. Mem. Acima de 8 bytes ñ cache

1 1 1 0 x Escrita de 32 bytes - writeback

Page 143: Organização de Computadores

Opera₤ões de Barramento

Ciclos Especiais

BE7 BE6 BE5 BE4 BE3 BE2 BE1 BE0 Ciclo

1 1 1 1 1 1 1 0 shutdown

1 1 1 1 1 1 0 1 flush cache

1 1 1 1 1 0 1 1 halt

1 1 1 1 0 1 1 1 writeback

1 1 1 0 1 1 1 1 flush ack.

1 1 0 1 1 1 1 1 br. tr. mess

Page 144: Organização de Computadores

Ciclos de Leitura/Escrita

Clk

ADS

Address

W/R

BRDY

Data

Válido Válido

P/ CPU da CPU

t1 t2 ti t1 t2 ti

Page 145: Organização de Computadores

Ciclos Burst

O pentium suporta ciclos de leitura e escrita em rajada de 32 bytes. – Cada oito bytes são transferidos a cada ciclo de clock.– O Processador passa o endere₤o inicial, os demais

endere₤o devem ser gerados pelo sistema de memória

1° end. 2 ° end. 3° end. 4° end.

0 8 10 18

8 0 18 10

10 18 0 8

18 10 8 0

Page 146: Organização de Computadores

Ciclos Burst

Clk

ADS

Address

W/R

BRDY

CACHEKEN

Data

Válido

t1 t2 t2 t2 t2 ti

P/ CPU P/CPUP/ CPU P/ CPU

Page 147: Organização de Computadores

Operações Locked e BOFF

Lock– Operacões atômicas não podem

ser quebradas em operações menores

– Semáforos– Requerem leitura seguida de

escrita– XCHG– LOCK é ativado indicando que

o ciclo no ciclo corrente o barramento está bloqueado e não pode ser interrompido

BOFF– Este sinal de entrada prover

uma forma para que em sistemas multiprocessados um Pentium possa “tomar conta” do barramento.

– Este terminal(BOFF) ₫ verificado a cada ciclo de clock. Caso o seu valor seja baixo, o barramento ₫ colocado em alta impedância.

Page 148: Organização de Computadores

Operações Bus Hold e Reconhecimento de Interrupção

Bus Hold– Uma segunda forma para

que o processador “tome conta”do barramento.

– A entrada HOLDé verificada a cada ciclo de clock, caso seja alto, no final do ciclo de barramento, o barramento é colocado em alta impedância.

– A saída HLDA é ativada para indicar que o Pentium está neste estado.

Reconhecimento de Interrupção.– Dois destes ciclos são

gerados em reconhecimento a solicitação de interrupção (INTR).

– M/IO=D/C=W/R =0– CACHE = 1

Page 149: Organização de Computadores

Reconhecimento de Interrupção

‘148 ‘374

D Qclk

Pentium

vcc

.

.

.

.

.

.

vcc

clr

D0

D7

M/IOD/CW/RADS

INTR

INT0

INT7

A2A1A0

GS

EI

Page 150: Organização de Computadores

Cache Flush e Shutdown

Cache Flush– Como resposta a uma entrda

ativa no terminal FLUSH o Pentium executa o writeback nas linhas modificadas e as torna inválidas

– BE1 =0

– Quando o writeback é executado o processador executa um cache ack. para informar que na cache foi realizado um flush.

– BE4 =0

Shutdown– Se o processador

detecta um erro de paridade um ciclo shutdown é gerado.

– A execução é suspensa até o processador que ocorrar um NMI, INIT ou RESET

– Cache internas permancem inalteradas

– BE0=0

Page 151: Organização de Computadores

Halt e Inquire Cycles

Halt

– Ciclo realizado quando da execução de uma instrução HLT

– Similar ao shutdown exceto que a execução só será retomada pelo sinal INTR

– BE2 = 0

Inquire Cycle– Usado para manter a

coerência de cache

– Ao detectar-se (no snooping cycle) um acesso, por outro processador, a uma posição de memória, o processador gera um inquire interno para verificar se esta posição esta na cache interna. Caso esteja, a cache pode ser modificada.

Page 152: Organização de Computadores

Tipo de Instruções

Transferência de dados

Aritmética

Manipulação de bit

Laços e saltos

Subrotinas e interrupções

Controle

String

Page 153: Organização de Computadores

Tipo de Instruções

Instruções Monádicas

– inst opr dest

opr dest - operando destino

Instruções Diádicas

– inst opr dest, opr fonte

opr dest - operando destino

opr fonte - operando fonte

Page 154: Organização de Computadores

Transferência de Dados

Instruções

– MOV movimenta₤₧o– MOVSX ext. sinal– MOVZX ext. c/ zero– PUSH empilhamento– PUSHW/PUSHD imedit./ 32 bits– PUSHA/PUSHAD todos reg/ 32 bits– PUSHF/PUSHFD 16 bits flags/32

bits

– POP desemp.– POPA/POPAD todos reg/32 bits – POPF/POPFD 16 bits flags/32 bits – IN input– OUT output– XCHG permuta– XLAT translate-table– LEA carga de end. efetivo– LDS e similares carga de ponteiro– BSWAP troca– LAHF carga de flags em AH– SAHF arm. de AH nos flags

Page 155: Organização de Computadores

Transferência de Dados

Sintaxe:

MOV OP_DEST,OP_DEST

EX.: MOV AL,01

MOV AX,[BX+2]

MOV AL,[0400H]

Page 156: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

MOVSX OP_DEST,OP_DEST

EX.: MOVSX AX,AL

Page 157: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

MOV OP_DEST,OP_FONT

EX.: MOVZX AX,AL

Page 158: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

PUSH OP_FONTE

EX.: PUSH BX

Page 159: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

PUSHW/PUSHD OP_FONTE (imedit./ 32 bits)

EX.: PUSHW 34ADh

PUSHD EAX - PUSHD pode ser usado para

empilhar valor de um reg. de 32 bits

Page 160: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

PUSHA/PUSHAD (todos reg/ 32 bits)

EX.: PUSHA

PUSHAD

Page 161: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

PUSHF/PUSHFD 16 bits flags/32 bits

EX.: PUSHF

PUSHFD

Page 162: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

POP OP_DEST

EX.: POP BX

Page 163: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

POPA/POPAD todos reg/32 bits

EX.: POPA

POPAD

Page 164: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

POPF/POPFD 16 bits flags/32 bits

EX.: POPF

POPFD

Page 165: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

IN ACUMULADOR,END/DX input

EX.: IN AL,60H

IN AL,DX

Page 166: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

OUT END/DX,ACUMULADOR output

EX.: OUT DX,AL

OUT 80H,AX

Page 167: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

XCHG OP_DEST,OP_FONTE permuta

EX.: XCHG AL,AH

XCHG AL[BX]

Page 168: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

XLAT translate-table

O registrador BX deve ter o endere₤o inicial da lista.

O valor de AL ₫ o índice.

EX.: MOV AL,3

MOV BX,0400H

XLAT

Page 169: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

LEA OP_DEST,LABEL carga de end.

EX.: LEA BX,LISTA

Page 170: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

LDS OP_DEST,OP_FONTE carga de ponteiro

OP_DEST - registrador

LES,LFS,LGS,LSS - s₧o similares

EX.: LDS BX,[SI]

LES DX,end_lista

Page 171: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

BSWAP OP_DEST - troca (swapping)

- OP_DEST - registrador de 32 bits

EX.: MOV EAX,12345678H

BSWAP EAX

EAX = 78563412H

Page 172: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

LAHF - Carrega AH com flags

EX.: POPF

LAHF

Page 173: Organização de Computadores

Transfer₨ncia de Dados

Sintaxe:

SAHF - Armazena AH nos flags

EX.: MOV AH,0FFH

SAHF

Page 174: Organização de Computadores

Aritmética

Instruções

– ADD adição– ADC– INC incremento– SUB subtração– SBB– DEC decremento– CMP comparação – MUL multiplicação– IMUL– DIV divisão– IDIV

– NEG complemento a 2 – CBW mudança de módulo– CWD – DAA ajuste BCD– DAS– AAA ajuste ASCII– AAS– AAM– AAD

Page 175: Organização de Computadores

Aritm₫tica

Sintaxe:

ADD OP_DEST,OP_DEST - adi₤₧o

EX.: ADD AL,CH

ADD CX,[SI]

ADD DX,4

Page 176: Organização de Computadores

Aritm₫tica

Sintaxe:

ADC OP_DEST,OP_DEST - adi₤₧o com vai um

EX.: ADC AL,CH

ADC [BX],DX

ADC DX,4

Page 177: Organização de Computadores

Aritm₫tica

Sintaxe:

INC OP_DEST - Incremento

EX.: INC AL

INC [BX]

INC [0400H]

Page 178: Organização de Computadores

Aritm₫tica

Sintaxe:

SUB OP_DEST,OP_DEST - Subtra₤₧o

EX.: SUB AL,CH

SUB CX,[0300H]

SUB DX,4

Page 179: Organização de Computadores

Aritm₫tica

Sintaxe:

SBB OP_DEST,OP_DEST - Subtra₤₧o com vem um

EX.: SBB AL,CH

SBB CX,[0300H]

SBB DX,4

Page 180: Organização de Computadores

Aritm₫tica

Sintaxe:

DEC OP_DEST - Decremento

EX.: DEC AL

DEC [BX]

DEC [0400H]

Page 181: Organização de Computadores

Aritm₫tica

Sintaxe:

CMP OP_DEST,OP_DEST - Compara₤₧o

EX.: CMP AL,CH

CMP CX,[0300H]

CMP DX,4

Page 182: Organização de Computadores

Aritm₫tica

Sintaxe:CMPXCHG OP_DEST, OP_FONTE - compara e permuta

Compara o operando destino com o acumulador e caso o acumulador seja igual ao operando destino, o operando fonte ₫ copiado no destino. Caso sejam diferentes, o valor do acumulador ₫ substituído pelo valor do destino.

EX.: CMPXCHG BL,CL

CMPXCHG CX,[0300H]

CMPXCHG EDX,EBX

10 10 30 10 30 30

AL BL CL AL BL CL

10 20 30

20 20 30

AL BL CL

AL BL CL

Page 183: Organização de Computadores

Aritmética

Sintaxe:

MUL OP_FONTE - multiplicação

EX.: MUL BL

MUL DX

MUL ECX

Page 184: Organização de Computadores

Aritmética

Sintaxe:

IMUL OP_FONTE - multiplicação sinalizada

EX.: IMUL BL

IMUL DX

IMUL ECX

Page 185: Organização de Computadores

Aritmética

Sintaxe:

DIV OP_FONTE - divisão

EX.: DIV BL

DIV DX

DIV ECX

Page 186: Organização de Computadores

Aritmética

Sintaxe:

IDIV OP_FONTE - divisão sinalizada

EX.: IDIV BL

IDIV DX

IDIV ECX

Page 187: Organização de Computadores

Aritm₫tica

Sintaxe:

NEG OP-DEST - complemento de dois

EX.: NEG AL

NEG [0200H]

NEG DX

Page 188: Organização de Computadores

Aritm₫tica

Sintaxe:

CBW - converte byte de AL em palavra etendendo-se o sinal

CWD - converte a palavra de AX em dupla-palavra estendendo-se o sinal (DX:AX)

CWDE - converte a palavra de AX em dupla-palavra estendendo-se o sinal (EAX)

CDQ - converte a dupla-palavra de EAX em quádrupla-palavra estendendo-se o sinal (EDX:EAX)

EX.: CBW CWDE

CWD CDQ

Page 189: Organização de Computadores

Aritm₫tica

Sintaxe:

DAA - ajuste decimal para adi₤₧o (BCD compactado)

EX.: MOV AL,15H

MOV BL,25H

ADD AL,BL ;AL=3AH

DAA ;AL=40H

Page 190: Organização de Computadores

Aritm₫tica

Sintaxe:

DAS - ajuste decimal para subtra₤₧o (BCD-compactado)

EX.: MOV AL,10H

MOV BL,02H

SUB AL,BL ;AL=0EH

DAS ;AL=08H

Page 191: Organização de Computadores

Aritm₫tica

Sintaxe:

AAA - ajuste ASCII para adi₤₧o

EX.: MOV AX,0033H

MOV BL,39H

ADD AL,BL ;AL=6CH

AAA ;AX=0102H

Page 192: Organização de Computadores

Aritm₫tica

Sintaxe:

AAS - ajuste ASCII para subtra₤₧o

AAM - ajuste ASCII para multiplica₤₧o

AAD - ajuste ASCII para divis₧o

Page 193: Organização de Computadores

Lógica e Manipulação de Bit

Instruções Lógicas

– NOT

– AND

– OR

– XOR

– TEST

Algumas Instruções Manipulação de bit

– SHL/SAL - desloc. esquerda

– SHR - deslc. direita

– SAR

– ROL - rotação

– ROR

– RCL

– RCR

Page 194: Organização de Computadores

Lógicas

Sintaxe:

NOT OP-DEST - complemento de um

EX.: NOT AL

NOT [0200H]

NOT DX

Page 195: Organização de Computadores

Lógicas

Sintaxe:

AND OP_DEST,OP_FONTE - opera₤₧o lógica e

EX.: AND AL,CH

AND CX,[SI]

AND DX,FFFFH

Page 196: Organização de Computadores

Lógicas

Sintaxe:

OR OP_DEST,OP_FONTE - opera₤₧o lógica ou

EX.: OR AL,00H

OR CX,[SI]

OR DX,FFFFH

Page 197: Organização de Computadores

Lógicas

Sintaxe:

XOR OP_DEST,OP_FONTE - opera₤₧o lógica ou exclusivo

EX.: XOR AL,CH

XOR CX,[SI]

XOR DX,DX

Page 198: Organização de Computadores

Lógicas

Sintaxe:

TEST OP_DEST,OP_FONTE - opera₤₧o lógica e

EX.: TEST AL,CH

TEST CX,[SI]

TEST DX,FFFFH

Page 199: Organização de Computadores

Lógicas

Sintaxe:

SETcc OP_DEST - atribui 01 a operando destino se a condi₤₧o

testada for verdadeira. Caso contrário, atribui-se 00.

EX.: SETZ AL

SETLE AX

SETNC DX

Page 200: Organização de Computadores

Lógicas

Sintaxe:

BSF/BSR OP_DEST,OP_FONTE - procura pelo 1°bit igual a um no operando fonte a partir do LSB ou MSB. A posi₤₧o encontrada será informada em operando destino.

OP_DEST deve ser REG. de 16 ou 32 bits

OP_FONTE deve ser REG. ou mem de 16 ou 32 bits

EX.: BSF EAX,EBX

Page 201: Organização de Computadores

Lógicas

Sintaxe:

BT/BTC,BTS,BTR OP_DEST,OP_FONTE - testa, complementa, seta ou reseta um bit do operando destino especificado no opernado fonte.

OP_DEST deve ser REG. de 16 ou 32 bits OP_FONTE deve ser REG. ou mem de 16 ou 32 bits

EX.: BT AX,BX

BTC AX,15

BTS AX,1

BTR AX,0

Page 202: Organização de Computadores

Laços, Desvios, Subrotinas e Interrupções

Laços e Desvios

– JMP -desvio incondicional

– Jcc - desvio condicional

– JCXZ

– LOOP - laço

– LOOPE

– LOOPNE

Subrotinas e Interrupções

– CALL - subrotinas

– INT - interrupções

– INTO

– RET - retorno– IRET

Page 203: Organização de Computadores

Controle

– CLC - Limpa CF– STC - Faz CF=1– CMC - Complementa CF– CLD - Limpa DF– STD - Faz DF=1– CLI - Limpa IF– STI - Faz IF=1

Page 204: Organização de Computadores

Controle

Sintaxe:

HLT - Parada

Para o sistema. O processador fica neste estado at₫ ocorrer um reset ou uma interrup₤₧o NMI ou INTR.

Page 205: Organização de Computadores

Controle

Sintaxe:

LOCK - Instru₤₧o prefixo

Bloqueia o barramento

EX.: LOCK XCHG

Sintaxe:

NOP - No operation

N₧o executa nada.

Page 206: Organização de Computadores

Strings

Sintaxe:

REP - Instru₤₧o prefixo

Repete enquanto CX for diferente de zero. Deve ser usada antes das instru₤ões MOVS, STOS, INS e OUTS

EX.: REP MOSVB

Page 207: Organização de Computadores

Strings

Sintaxe:

REPE/REPZ - Instru₤₧o prefixo

Repete enquanto CX for diferente de zero e ZF = 1. Deve ser usada antes das instru₤ões C,MPS e SCAS.

EX.: REPE CMPSB

Page 208: Organização de Computadores

Strings

Sintaxe:

REPNE/REPNZ - Instru₤₧o prefixo

Repete enquanto CX for diferente de zero e ZF = 0. Deve ser usada antes das instru₤ões C,MPS e SCAS.

EX.: REPNE SCASW

Page 209: Organização de Computadores

Strings

Sintaxe:

MOVS/ MOVSB/ MOVSW/ MOVSD - moveMove o elemento apontado por SI no segmento de dados para área

apontada por dI no segmento de extra. DI e SI ser₧o incrementados ou decrementados de 1, 2, 0u 4 dependendo do flag DF e do tipo do dado.

EX.: MOV AX,0300H

MOV ES,AX

XOR DI,DIH

MOV AX,0500H

MOV DS,AX

XOR SI,SIH

MOV CX,5HCLD

MOV AL,4EHREP MOVSB

Page 210: Organização de Computadores

Strings

Sintaxe:

CMPS/ CMPSB/ CMPSW/ CMPSD - comparaCompara o elemento apontado por DI no segmento extra com o

elemento apontado por SI no segmento de dados. DI e SI ser₧o incrementados ou decrementados de 1, 2, 0u 4 dependendo do flag DF e do tipo do dado.

EX.: MOV AX,0300H

MOV ES,AX

XOR DI,DIH

MOV AX,0500H

MOV DS,AX

XOR SI,SIH

MOV CX,5HCLD

MOV AL,4EHREPE CMPSB

Page 211: Organização de Computadores

Strings

Sintaxe:

SCAS/ SCASB/ SCASW/ SCASD - scanCompara o elemento apontado por DI no segmento extra com o

conteúdo do acumulador (AL,AX ou EAX). DI será incrementado ou decrementado de 1, 2, 0u 4 dependendo do flag DF e do tipo do dado.

EX.: MOV AX,0300H

MOV ES,AX

MOV DI,6H

MOV CX,6H

STD

MOV AL,4EH

REPNZ SCASB

Page 212: Organização de Computadores

Strings

Sintaxe:

LODS/ LODSB/ LODSW/ LODSD - carregaCarrega o elemento apontado por SI no segmento de dados no

acumulador (AL,AX ou EAX). SI será incrementado ou decrementado de 1, 2, 0u 4 dependendo do flag DF e do tipo do dado.

EX.: MOV AX,0510H

MOV DS,AX

MOV SI,5H

STD

LODSW

Page 213: Organização de Computadores

Strings

Sintaxe:

STOS/ STOSB/ STOSW/ STOSD - armazenaArmazena na área apontada por DI no segmento de extra o conteúdo

do acumulador (AL,AX ou EAX). DI será incrementado ou decrementado de 1, 2, 0u 4 dependendo do flag DF e do tipo do dado.

EX.: MOV AX,04A8H

MOV ES,AX

MOV DI,8H

CLD

MOV AL,’M’

REP STOSB

Page 214: Organização de Computadores

Diretivas do Macro-Assembler

Programa .EXE Programa .COM

– Tamanho: memória total 64 Kbytes– Ponto de Entrada: qualquer ponto offset 100h– Arquivo produzido deve ser convertido

pelo link: executável pelo EXE2BIN – PSP: apontado por DS nos 100h bytes iniciais

e ES do segmento

Page 215: Organização de Computadores

Formato de um Programa .EXE

S1 SEGMENT STACK ‘STACK’

DW 100 DUP(?)

S1 ENDS

D1 SEGMENT

DEFINIÇÃO DE VARIÁVEIS

D1 ENDS

C1 SEGMENT

ASSUMECS:C1, DS:D1,ES:D1,SS:S1

P1 PROC FAR

MOV AX,D1

MOV DS,AX

MOV ES,AX

CoRPO DO PROGRAMA

MOV AH,4CH

INT 21H

P1 ENDP

R1 PROC NEAR

CORPO DA ROTINA

RET

R1 ENDP

C1 ENDS

END P1

Page 216: Organização de Computadores

Formato de um Programa .COM

C1 SEGMENT

ASSUMECS:C1, DS:C1,ES:C1,SS:C1

ORG 100H

I: JMP P1

DEFINIÇÃO DE VARIÁVEIS

P1 PROC NEAR

CORPO DO PROGRAMA

MOV AH,4CH

INT 21H

P1 ENDP

R1 PROC

CORPO DA ROTINA

RET

R1 ENDP

C1 ENDS

END

Page 217: Organização de Computadores

Diretivas do Macro-Assembler

COMMENT - INSERÇÃO DE COMENTÁRIO

– FORMATO: COMMENT * COMENTÁRIO *– EXEMPLO: COMMENT * MEU PRIMEIRO PROGRAMA*

ASSUME - INFORMA AO MONTADOR A FUNÇÃO DE CADA SEGMENTO.– FORMATO: ASSUME REG_SEG:NOME_SEG, ..., REG_SEG:NOME_SEG– EXEMPLO: ASSUME CS:C1,DS:D1,ES:D2,SS:S1

ORG - ESPECIFICA O ENDEREÇO PARA UMA INSTRUÇÃO OU DADO.

– FORMATO: ORG EXPRESSÃO– EXEMPLO: ORG 100H

Page 218: Organização de Computadores

Diretivas do Macro-Assembler

SEGMENT - DEFINE SEGMENTO

– FORMATO: NOME SEGMENT [ALINHM.][COMB.][CLASSE]

– ALINHAMENTO: Define onde inicia o segemento

BYTE - 1° byte livre

WORD - 1° endereço par livre

DWORD - 1° endereço divisível por 4 livre

PARA - 1° endereço divisível por 16 livre

PAGE - 1° endereço divisível por 256 livre

Page 219: Organização de Computadores

Diretivas do Macro-Assembler

SEGMENT - DEFINE SEGMENTO

– FORMATO: NOME SEGMENT [ALINHM.][COMB.][CLASSE]– COMBINAÇÃO: Define como combinar segmentos de mesmo nome

PUBLIC - concatena todos os segementos de mesmo nome

de forma a se obter um único segemento

STACK - O mesmo que o tipo PUBLIC. Para segementos

de pilha.

COMMOM - cria um segmento pela superposição de

segmentos com mesmo nome.

AT endereço - define o endereço inicial de um segemento.

Este segmento não contém inicialização de

dados o código. Usado para definir um

segmento em uma área de dados ou código

já existentes na memória.

Page 220: Organização de Computadores

Diretivas do Macro-Assembler

SEGMENT - DEFINE SEGMENTO

– FORMATO: NOME SEGMENT [ALINHM.][COMB.][CLASSE]

– CLASSE: Define que os segmentos, embora de nomes diferente, mas de mesma

classe, devem ser agrupados na linkedição.

‘CODE’

‘DATA’

‘STACK’

Page 221: Organização de Computadores

Diretivas do Macro-Assembler

ENDS - FINALIZAÇÃO DE SEGMENTO

– FORMATO: NOME ENDS

– EXEMPLO: INICIO SEGMENT ROT PROC NEAR

P1 PROC FAR ....

... RET

CALL ROT ROT ENDP

...

RET

P1 ENDP INICIO ENDS

Page 222: Organização de Computadores

Diretivas do Macro-Assembler

END - Finalização do programa

– FORMATO: END nome

nome é o ponto de entrada do programa.

Page 223: Organização de Computadores

Diretivas do Macro-Assembler

DEFINIÇÃO DE ÁREA DE ARMAZENAMENTO DB - DEFINE COMO BYTE

DW - DEFINE COMO WORD

DD - DEFINE COMO DOUBLE WORD

DQ - DEFINE COMO QUADWORD

DT - DEFINE COMO DEZ BYTES

– FORMATO: NOME DB/DW/DD/DQ/DT VALOR/LISTA DEVALORES– EXEMPLO: X DB 2AH

LISTA DB 30D,43D,74D

Y DW 402BH

Z DB 01001110B

Page 224: Organização de Computadores

Diretivas do Macro-Assembler

EQU - DEFINE CONSTANTE

– FORMATO: NOME EQU VALOR– EXEMPLO: CONST1 EQU 0

CONST2 EQU 4

CONST3 EQU CONST2 + 3 BYTE/WORD/..../NEAR/FAR PTR - FORÇA EXPRESSÃO A SER DE

UM TIPO BYTE, WORD, ....OU GERAR UM CÓDIGO DO TIPO NEAR OU FAR.– FORMATO:

BYTE/WORD/DWORD/QWORD/TBYTES/NEAR/FAR PTR EXPRESSÃO

EXEMPLO: X DB 02H ROT PROC NEAR

MOV AX,WORD PTR X ....

CALL FAR PTR ROT RET

... ROT ENDP

Page 225: Organização de Computadores

Diretivas do Macro-Assembler

SHORT - USANDO-SE EM UMA INSTRUÇÃO JMP FAZ COM QUE O MONTADOR GERE UM CÓDIGO SEJA DE APENAS DOIS BYTES. O DESVIO NÃO PODE SER SUPERIOR A -128 OU +127 BYTES.– FORMATO: JMP SHORT NOME

OFFSET - FORNECE O DESLOCAMENTO DE UMA VARIÁVEL OU RÓTULO DENTRO DO SEGMENTO ONDE ESTÁ DEFINIDO.

– FORMATO: OFFSET EXPRESSÃO

– EXEMPLO: MENS DB ‘Bom Dia$

MOV DX,OFFSET MENS SEG - FORNECE O SEGMENTO DE UMA VARIÁVEL OU RÓTULO.

– FORMATO: SEG EXPRESSÃO– EXEMPLO : MOV AX, SEG MENS

Page 226: Organização de Computadores

Diretivas do Macro-Assembler

ESTRUTURAS - É uma coleção de objetos (dados) os quais podem ser lidos/escritos como um único objeto. Os dados de uma estrutura podem ter diferentes tamanhos e podem acessados simbolicamente.

– FORMATO DA DECLARAÇÃO:

nome struc

declarações

nome ends– FORMATO DA DEFINIÇÃO DA VARIÁVEL

[nome] nome_da_estrutura <[valor_inicial [,valor_inicial]]>

Page 227: Organização de Computadores

Diretivas do Macro-Assembler

ESTRUTURAS - date STRUC

month db ?

day db ?

year dw ?

date ENDS

DADOS SEGMENT PARA 'DATA'

yesterday date <09,03,2000>

today date <09,04,2000>

tomorrow date <09,05,2000>

anotherday date <>

someotherdays date 20 DUP (<>)

DADOS ENDS

CODIGO SEGMENT PARA 'CODE'

ASSUME CS:CODIGO,DS:DADOS,SS:PILHA

INICIO PROC FAR

MOV AX,DADOS MOV DS,AX MOV AL,yesterday.day MOV AH,today.day MOV DL,tomorrow.day MOV anotherday.day,DL LEA BX,someotherdays MOV [BX].day,dl

Page 228: Organização de Computadores

Diretivas do Macro-Assembler

MACRO - Possibilita atribuir um nome a um bloco de código e utiliza-lo, através deste nome, no seu programa.

– FORMATO DA DECLARAÇÃO:

nome macro [parâmetro[,parâmetro]]

statements

nome endm

– FORMATO PARA CHAMAR A MACRO

nome [argumento [,argumento]]

Page 229: Organização de Computadores

Diretivas do Macro-Assembler

MACRO -DADOS SEGMENT PARA 'DATA'

RenataN1 db 06

RenataN2 db 08

Renatatpontos db ?

DADOS ENDS

totalpontos MACRO n1,n2

MOV AL,n1

MOV AH,n2

CLC

ADD AH,AL

ENDM

CODIGO SEGMENT PARA 'CODE' ASSUME CS:CODIGO,DS:DADOS,SS:PILHA

INICIO PROC FAR MOV AX,DADOS MOV DS,AX totalpontos RenataN1,RenataN2 MOV Renatatpontos,AH

MOV AH,4CH INT 21H INICIO ENDP CODIGO ENDS END INICIO

Page 230: Organização de Computadores

Interrupções O que é uma interrupção?

– É um evento interno ou externo ao processador provocado por um usuário que solicita sua atenção.

Quais os tipos de interrupção?– Interrupções por software

» Instruções INT

– Interrupções por hardware» NMI» IRQ’s conectadas ao pino INTR

– Exception Handlers (Int. Excepcionais)

Page 231: Organização de Computadores

Arquitetura de Computadores

Interrupções na Arquitetura x86

– Hardware Internas

Externas Mascarável

Não-Mascarável

– Software Sistema Operacional

Usuário

Page 232: Organização de Computadores

Interrupções

Exemplos de Exception Handlers– Erro irrecuperável de HW;

– Divisão por zero;

– Breakpoint;

– Passo a Passo;

– Overflow;

– Violação dos limites da memória.

Page 233: Organização de Computadores

Resposta do Processador a uma Interrupção

PUSH FLAGSCLEAR IFCLEAR TFPUSH CSPUSH IPFETCH ISR ADDRESS

POP IPPOP CSPOP FLAGS

INTERRUPTSERVICE

PROCEDURE

PUSH REGISTERS

POP REGISTERSIRET

Page 234: Organização de Computadores

Vetores de InterrupçãoProcessadores da Família 8086

INT (Hex) IRQ COMMON USES00 - 01 Exeption Handlers -

02 Non-Maskable IRQ Non-Maskable IRQ (Parity Errors)03 - 07 Exeption Handlers -

08 Hardware IRQ0 System Timer09 Hardware IRQ1 Keyboard0A Hardware IRQ2 Redirected0B Hardware IRQ3 Serial Comms. COM2/COM40C Hardware IRQ4 Serial Comms. COM1/COM30D Hardware IRQ5 Reserved / Sound Card0E Hardware IRQ6 Floppy Disk Controller0F Hardware IRQ7 Parallel Comms.

10 - 6F Software Interrups -70 Hardware IRQ8 Real Time Clock71 Hardware IRQ9 Redirected IRQ272 Hardware IRQ10 Reserved73 Hardware IRQ11 Reserved74 Hardware IRQ12 PS/2 Mouse75 Hardware IRQ13 Math's Co-Processor76 Hardware IRQ14 Hard Disk Drive77 Hardware IRQ15 Reserved

78-FF Software Interrups -

Page 235: Organização de Computadores

Controlador de Interrupção Programável - PIC 8259

Foi projetado para permitir priorização e tratamento de interrupções de dispositivos periféricos, multiplexando vários sinais de interrupção na entrada de interrupção do processador.

Page 236: Organização de Computadores

Diagrama em Blocos - PIC 8259

Page 237: Organização de Computadores

Diagrama em Blocos - PIC 8259

Interrupt Request Register (IRR):

Monitora as entradas de interrupção

para verificar as que estão ativas. Se

uma interrupção estiver não mascarada

e sua entrada ativa o bit

correspondente a esta entrada será

setado no IRR.

Page 238: Organização de Computadores

Diagrama em Blocos - PIC 8259

Priority Resolver:Envia um novo sinal interrupção para

o processador após o reset do bit de maior prioridade do ISR. Se a nova interrupção tiver maior prioridade que a interrupção que está sendo atendida o respectivo bit no ISR será setado e é ativado o circuito que envia um novo sinal de INT para o processador.

Page 239: Organização de Computadores

Diagrama em Blocos - PIC 8259

Exemplo: ocorrência de interrupçõesPROGRAMAPRINCIPAL

INICIALIZA 8259AIR2, IR4 UNMASK

STI

ROTINAIR4STI ROTINA

IR2STI

EOIRETI

EOIRETI

PROGRAMAPRINCIPAL

INICIALIZA 8259AIR2, IR4 UNMASK

STIROTINA IR4

ROTINA IR2

EOIRETI

EOIRETI

Page 240: Organização de Computadores

Diagrama em Blocos - PIC 8259

In-Service Register (ISR):

Sinaliza as instruções que estão sendo atendidas pelo processador. Para cada interrupção que estiver sendo atendida um bit correspon-dente será setado neste registrador.

Page 241: Organização de Computadores

Diagrama em Blocos - PIC 8259

Interrupt Mask Register (MR):

Desabilita (mask) ou habilita (unmask) individualmente entradas de interrupção. Cada bit do registrador corresponde a uma entrada de interrupção, e quando em 1 indica que a interrupção está desabilitada.

Page 242: Organização de Computadores

Control Logic:– INT: envia o pedido de interrupção para a

entrada INTR do processador;– INTA: recebe dois pulsos de

reconhecimento de interrupção vindos da saída INTA do processador. O primeiro pulso é utilizado no modo cascata e o segundo pulso solicita o byte que indica que tipo de interrupção foi requisitada ao processador.

Diagrama em Blocos - PIC 8259

Page 243: Organização de Computadores

Etapas de uma Interrupção– É requisitada uma interrupção via uma

das entradas IR’s do PIC, sendo setado o bit correspondente no IRR;

– O PIC ativa a linha INT, que está conectada ao pino INTR do processador;

– Se INTR estiver habilitado o processador conclui a instrução corrente e envia um pulso no pino INTA para o PIC;

– O PIC seta no ISR o bit correspondente à IR ativa de maior prioridade e reseta o respectivo bit no IRR.

Page 244: Organização de Computadores

– É enviado um segundo pulso no pino INTA para o PIC, durante o qual é enviado, pelo bus de dados, o número do tipo de interrupção solicitada;

– A CPU determina o endereço associado à ISR (rotina de serviço de interrupção), buscando e executando esta ISR;

– Caso esteja configurado o modo automático de fim de interrupção (AEOI) o bit ISR correspondente será resetado ao final do segundo pulso INTA, caso contrário este bit será resetado pelo comando EOI presente na rotina de interrupção.

Etapas de uma Interrupção

Page 245: Organização de Computadores

Configuração em CascataPIC 8259

Page 246: Organização de Computadores

Configuração em CascataPIC 8259

Sistema Mestre/Escravo: quando em cascata o PIC 8259 de cujo pino INT está ligado à entrada INTR do processador é chamado de mestre, enquanto os PIC’s cuja saída INT estiver ligada às entradas IR’s do mestre são chamados de escravos.

Page 247: Organização de Computadores

Configuração em Cascata PIC 8259

Conexões do modo cascata– CAS0/CAS1/CAS2: estes três bits são

utilizados para identificação (ID) dos escravos. Os pinos do mestre são conectados aos correspondentes pinos dos escravos. Para o mestre estes pinos funcionam como saídas e para os escravos como entradas.

– SP/EN: diferencia o mestre dos escravos, sendo mantido em nível 0 para os escravos e em nível 1 para os mestres.

Page 248: Organização de Computadores

Configuração em Cascata PIC 8259

Etapas de uma interrupção do escravo– Ocorre um pedido de interrupção em uma das

entradas IR do escravo;– Dependendo da prioridade e da habilitação da

interrupção, o escravo envia um sinal INT para a entrada IR do mestre;

– De mesma forma, dependendo da prioridade e da habilitação da interrupção, o mestre envia um sinal INT para a entrada INTR do processador;

Page 249: Organização de Computadores

Configuração em Cascata PIC 8259

Etapas de uma interrupção do escravo– Estando INTR habilitada, o processador irá

executar a rotina de interrupção e enviará dois pulsos INTA para ambos os PIC’s;

– No primeiro pulso o mestre seleciona o escravo solicitante através dos pinos CAS.

– No segundo pulso o escravo selecionado enviará através das linhas de dados o número do tipo de interrupção solicitada.

Page 250: Organização de Computadores

Configuração em Cascata PIC 8259

Cuidado ao se trabalhar em cascata!– Quando no mestre se trabalha ao mesmo

tempo com IR’s para escravos e entradas comuns não deve-se usar a IR0 para um escravo, pois quando uma entrada comum for ativada os pinos de CAS ficarão em nível lógico baixo e o escravo que estiver em IR0 será selecionado, causando um erro no sistema.

Page 251: Organização de Computadores

Configuração em Cascata PIC 8259

Modo totalmente aninhado– Permite que uma interrupção de maior

prioridade de um escravo seja atendida, mesmo que o processador esteja atendendo uma interrupção deste mesmo escravo (ISR em nível alto).

– Para verificar a existência de outra interrupção no mesmo escravo é ressetado o bit ISR do escravo através de um EOI, que é lido em seguida. Caso seja zero é enviado um EOI para o mestre.

Page 252: Organização de Computadores

Palavra de Controle de Inicialização - ICW1

A70 A6 A5 1 LTIM ADI SNGL IC4

A7 - A5 OF INTERRUPTVECTOR ADDRESS(MCS-80/85 MODE ONLY )

1 = ICW4 NEEDEDO = NO ICW4 NEEDED

1 = SINGLEO = CASCADE MODE

CALL ADDRESS INTERVAL1 = INTERVAL OF 4O = INTERVAL OF 8

1 = LEVEL TRIGGERED MODE0 = EDGE TRIGGERED MODE

A0 D7 D6 D5 D4 D3 D2 D1 D0

Page 253: Organização de Computadores

Palavra de Controle de Inicialização - ICW2/3

ICW2

ICW3 (MESTRE)

ICW3 (ESCRAVO)

T7 - T3 OF INTERRUPTVECTOR ADDRESS(8086 / 8088 MODE)

T71 T6 T5 T4 T3 A10 A9 A8

A0 D7 D6 D5 D4 D3 D2 D1 D0

1 = IR INPUT SLAVE0 = NO IR INPUT SLAVE

S71 S6 S5 S4 S3 S2 S1 S0

A0 D7 D6 D5 D4 D3 D2 D1 D0

SLAVE ID (000 - 111)

01 0 0 0 0 ID2 ID1 ID0

A0 D7 D6 D5 D4 D3 D2 D1 D0

Page 254: Organização de Computadores

Palavra de Controle de Inicialização - ICW4

1 = 8086/8086 MODEO = MCS-80/85 MODE

1 = AUTO EOIO = NORMAL EOI

0 X NON BUFFERED MODE 1 0 BUFFERED MODE / SLAVE 1 1 BUFFERED MODE / MASTER

1 = SPECIAL FULLY NESTED MODE0 = NOT SPECIAL FULLY NESTED MODE

A0 D7 D6 D5 D4 D3 D2 D1 D0

01 0 0 SFNM BUF M/S AEOI PM

Page 255: Organização de Computadores

Diagrama de Fluxo da Inicialização do PIC 8259

ICW1

ICW2

IN CASCADE MODEICW3

ICW4

READY TO ACCEPT INTERRUPT REQUESTS

IS ICW4 NEEDED

YES (SNGL=0)

YES (IC4=1)

NO (SNGL=1)

NO (IC4=0)

Page 256: Organização de Computadores

Palavra de Controle deOperação - OCW1/2

OCW1

OCW2INTERRUPT MASK1 = MASK SET0 = MASK RESET

M71 M6 M5 M4 M3 M3 M2 M0

A0 D7 D6 D5 D4 D3 D2 D1 D0

IR LEVEL TO BE ACTED UPON(000 - 111)

A0 D7 D6 D5 D4 D3 D2 D1 D0

R0 SL EOI 0 0 L2 L1 L0

0 0 1 NON-SPECIFIC EOI COMMAND 0 1 1 SPECIFIC EOI COMMAND 1 0 1 ROTATE ON NOM-SPECIFIC EOI COMMAND 1 0 0 ROTATE IN AUTO EOI MODE (SET) 0 0 0 ROTATE IN AUTO EOI MODE (CLEAR) 1 1 1 ROTATE ON SPECIFIC EOI COMMAND ** 1 1 0 SET PRIORITY COMMAND **

** L0 - L2 ARE USED

END OF INTERRUPT

AUTO ROTATION

SPECIFIC ROTATION

Page 257: Organização de Computadores

Palavra de Controle deOperação - OCW3

A0 D7 D6 D5 D4 D3 D2 D1 D0

00 ESMM SMM 0 1 P RR RIS

1 0 READ IRR ON NEXT RD PULSE

1 1 READ ISR ON NEXT RD PULSE

1 = POLL COMMAND0 = NO POLL COMMAND

1 0 RESET SPECIAL MASK 1 1 SET SPECIAL MASK

Page 258: Organização de Computadores

Programa de Inicializaçãodo PIC 8259

;initialize 8259A

MOV AL, 00010011B ;Edge triggered, single, ICW4

MOV DX, 0FF00H ;point at 8259A control

OUT DX, AL ;send ICW1

MOV AL, 01000000B ;type 64 is first 8259A type

MOV DX, 0FF02H ;point at ICW2 address

OUT DX, AL ;send ICW2

MOV AL, 00000001B ;ICW4, 8086 mode

OUT DX, AL ;send ICW4

MOV AL, 11111010B ;OCW1 to unmask IR0 & IR2

OUT DX, AL ;send OCW1

Page 259: Organização de Computadores

Arquitetura de Computadores

Interrupções do BIOS

– INT 5h - Print screen » Imprime conteúdo da tela

– INT 10h - Vídeo» Interrupção do BIOS que trata o vídeo» Os serviços são passados através do registrador

AH

Page 260: Organização de Computadores

Arquitetura de Computadores

– INT 10h - Vídeo

» Especificação do modo

• Chama-se com:

AH = 0

AL = Modo

Modo Resolução Caract.

0h 40×25 tx, preto/branco

1h 40×25 tx, 16 cores

2h 80×25 tx, preto/branco

3h 80×25 tx, 16 cores

4h 320×200 gr, 4 cores

5h 320×200 gr, preto/branco

6h 640×200 gr, 2 cores

..........

12h 640×480 gr, 16 cores

..........

Page 261: Organização de Computadores

Arquitetura de Computadores

– INT 10h - Vídeo» Ajusta formato do cursor

• Chama-se com:

AH = 1

CH = linha inicial

CL = linha final

- número de linhas = 7

» Posiciona o cursor

• Chama-se com:

AH = 2

DH = linha

DL = coluna

BH = número da página

Page 262: Organização de Computadores

Arquitetura de Computadores

– INT 10h - Vídeo» Ler posição do cursor

• Chama-se com:

AH = 3

BH = número da página

• Recebe-se em:

DH = linha inicial

DL = linha final

CX = tipo do cursor

» Selecionar página

• Chama-se com:

AH = 5

AL = página

Páginas Modos

0-7 0-3 (placas SVGA)

* Modos gráficos

* - depende dos modos suportados por cada placa.

Page 263: Organização de Computadores

Arquitetura de Computadores

– INT 10h - Vídeo» Rolar para cima a janela de vídeo

• Chama-se com:

AH = 6

AL = número de linhas a serem roladas (Zero (0) rola todas)

CH = linha do canto superior esquerdo

CL = coluna do canto superior esquerdo

DH = linha do canto inferior direito

DL = coluna do canto inferior direito

BH = atributo a ser usado nas novas linhas

» Rolar para baixo a janela de vídeo• Chama-se com:

AH = 7

AL = número de linhas a serem roladas (Zero (0) rola todas)

CH = linha do canto superior esquerdo

CL = coluna do canto superior esquerdo

DH = linha do canto inferior direito

DL = coluna do canto inferior direito

BH = atributo a ser usado nas novas linhas

Page 264: Organização de Computadores

Arquitetura de Computadores

– INT 10h - Vídeo» Ler o caracter e o atributo da

posição do cursor• Chama-se com:

AH = 8

BH = número da página

• Recebe-se em:

AL = caracter

AH = atributo do caracter

» Escreve caracter e atributo

• Chama-se com:

AH = 9

BH = número da página

AL = caracter BL = atributo do

caracterCX = número de repetições

Page 265: Organização de Computadores

Arquitetura de Computadores

– INT 10h - Vídeo» Escreve caracter

• Chama-se com:

AH = 10

BH = número da página

AL = caracter CX = número de

repetições

» Escreve um ponto (pixel)

• Chama-se com:

AH = 12

AL = cor do pixel. Caso o bit 7 de AL seja 1, a cor do pixel será o ou-exclusivo com a cor atual. BH = página

CX = coordenada X (coluna)

DX = coordenada Y (linha)

Page 266: Organização de Computadores

Arquitetura de Computadores

– INT 10h - Vídeo» Ler um ponto (pixel)

• Chama-se com:

AH = 13

BH = página

CX = coordenada X (coluna)

DX = coordenada Y (linha)• Recebe-se em:

AL = cor do pixel

» Escreve caracter em modo TTY

• Chama-se com:

AH = 14

BH = número da página

AL = caracter BL = cor do 2º plano

* Avança posição do cursor automaticamente.** Aceita caracteres de controle como bell, avanço

de linha, carriage return e backspace.

Page 267: Organização de Computadores

Arquitetura de Computadores

– INT 10h - Vídeo» Obtém o modo do vídeo

• Chama-se com:

AH = 15• Recebe-se em:

AH = número de colunas da tela

AL = modo

BH = página ativa

» Escreve caracter em modo TTY

• Chama-se com:

AH = 14

BH = número da página

AL = caracter BL = cor do 2º plano

* Avança posição do cursor automaticamente.** Aceita caracteres de controle como bell, avanço

de linha, carriage return e backspace.

Page 268: Organização de Computadores

Arquitetura de Computadores

– INT 13h - DISCO» Reseta sistema de dico

• Chama-se com:

AH = 00h

AL = número do driver

00 - 7Fh floppy disk

80 - FFh hard disk• Recebe-se em:

CF = 0 sem erro

1 erro

AH = código do erro

» Código do Erro• 00h - sem erro• 01h - comando inválido• 02h - “address mark” não

encontrado• 03h - disco protegido• 04h - setor não encontrado• 05h - falha de reset• 06h - disco removido• 08h - erro de DMA• 09h - erro de limite de DMA• 10h - setor com erro• 20h - falha do controlador• 40h - trilha não encontrada• 80h - time-out

Page 269: Organização de Computadores

Arquitetura de Computadores

– INT 13h - DISCO» Obtém status

• Chama-se com:

AH = 01h

• Recebe-se em:

AL = código do erro

» Ler/Escreve/Verifica/Formata• Chama-se com:

AH=02h/03h/04h/05hAL= número de setores

CH= número do cilindroCL= número do setor

(1, se AH=5)DH= número da cabeçaDL= número da unidadeES:BX= buffer

• Recebe-se em:CF= 0 sem erro

1 erro AH= código do erro

Page 270: Organização de Computadores

Arquitetura de Computadores

– INT 13h - DISCO» Se AH=05h (Formatar)

ES:BX = 4 campos de entrada para cada setor byte 0 - número do cilindro

byte 1 - número da cabeça

byte 2 - número do setor

byte 3 - código do tamanho do setor

00h - 128 b/s 01h - 256 b/s 02h - 512 b/s 03h - 1024 b/s

Page 271: Organização de Computadores

Arquitetura de Computadores

– INT 16h - Teclado» Aguarda a diigitação de um caracter

e o lê• Chama-se com:

AH = 10h Se um caractere ASCII foi digitado

• Recebe-se em AH = código de varredura

AL = código ASCII Se um caractere especial foi digitado

• Recebe-se em AH = código ASCII estendido

AL = 00h

» Verifica se um caracter está pronto

• Chama-se com: AH = 11h

Se um caractere ASCII foi

digitado ZF=0 e AH = código de varredura

AL = código ASCII

Caso contrário, ZF=1

Obs.: Não remove do buffer

Page 272: Organização de Computadores

Arquitetura de Computadores

– INT 16h - Teclado» Obtêm status do teclado

• Chama-se com: AH = 12h

• Recebe-se emAL = status

01h - shift direito ativo02h - shift esquerdo ativo04h - crtl ativo08h - alt ativo10h - num lock ativo20h - scroll lock ativo40h - caps lock ativo80h - inserção ativa

Page 273: Organização de Computadores

Arquitetura de Computadores

– INT 17h - Impressora» Imprime caractere

• Chama-se com: AH = 00h

AL = caractere DX = número da impressora

• Recebe-se em

AH = status» Inicializa impressora

• Chama-se com: AH = 01h DX = número da impressora

» Obtêm status da impressora• Chama-se com:

AH = 02h DX = número da impressora

• Recebe-se em

AH = status01h - time-out

08h - erro de I/O 10h - impressora selecionada 20h - sem papel 40h - reconhecimento

80h - impressora desocupada

Page 274: Organização de Computadores

Arquitetura de Computadores

– INT 19h - Warm Start

– INT 1Ah - Obtém / atualiza tempo / data

» Ler contador do relógio• Chama-se com:AH = 00h • Recebe-se em:

AL = 0, se não se passaram 24h da última leitura

CX = parte de alta-ordem do contador

DX = parte de baixa-ordem do contador

» Atualiza contador do relógio• Chama-se com:AH = 01h

CX = parte de alta-ordem do contador

DX = parte de baixa-ordem do contador

» Ler relógio• Chama-se com:AH = 02h • Recebe-se em:

CH = horas em BCD CL = minutos em BCD DH = segundos em BCD

DL = milesegundos em BCD

Page 275: Organização de Computadores

Arquitetura de Computadores

– INT 1Ah - Obtém / atualiza tempo / data

» Atualiza relógio

• Chama-se com:AH = 03h

CH = horas em BCD CL = minutos em BCD DH = segundos em BCD DL = milesegundos em

BCD

» Ler data• Chama-se com:AH = 04h • Recebe-se em:

CH = século (19 ou 20) em BCD

CL = ano em BCD DH = mês em BCD

DL = dia em BCD» Atualiza data

• Chama-se com:AH = 05h

CH = século (19 ou 20) em BCD

CL = ano em BCD DH = mês em BCD

DL = dia em BCD

Page 276: Organização de Computadores

Conexao Prot Board

Vamos aqui mostar como foi implementada a conecção entre o porta Paralela e o Prot Board.

O computador geralmente possui 3 portas: LPT1, LPT2 e LPT3 (alguns possuem LPT4). Cada porta dessas possui 3 endereços: data, status e control. Esses endereços estão numa ordem sequencial. Isso quer dizer que se a porta data tem o endereço 0x038, então o endereço correspondente de status é 0x0379 e o control é 0x037a.

Page 277: Organização de Computadores

Conexao entre a Porta Paralela e o Prot Board

Endereços de Acesso a Porta PoralelaHoje em dia, os computadores estão basicamente configurados da seguinte maneira:

Printer Data Port Status Control LPT1 0x0378 0x0379 0x037a LPT2 0x0278 0x0279 0x027a LPT3 0x03bc 0x03bd 0x03be

Obs: A porta normalmente utilizada e a LPT1

Page 278: Organização de Computadores

Conexao entre a Porta Paralela e o Prot Board

Abaixo temos a a função dos pinos no conector DB25:

Page 279: Organização de Computadores

Conexao entre a Porta Paralela e o Prot Board

Na figura temos a direção dos pinos de acordo com função

Page 280: Organização de Computadores

Conexao entre a Porta Paralela e o Prot Board

Desta forma utilizamos para a montagem os bits de dados D0 ~ D4 como saída, e como entrada Ack no pino 10, Busy no pino 11, Paper end no pino 12, Slct out no pino 13 e Error no pino 15.

A saídas foram conectadas nas 4 entrada do 2º display de sete segmentos da Placa (que possui decodificador), de acordo com a sequência;D0 -> I0 ; D1 -> I1 etc... A saída D4 não esta sendo utilizada e de D5~D7 não foram conectadas.

Page 281: Organização de Computadores

Conexao entre a Porta Paralela e o Prot Board

As Entradas estão conectadas as primeiras chaves da placa e ligada também ao 1º display de sete segmentos, não lembro qual foi bit foi utilizado como mais significativo e qual como menos significativo.

Desta forma quando se comuta as chaves de entrada, verifica-se a alteração no valor do 1º display na placa.

O pino 25 do conector estar servindo de com sinal de referência(GND) para a Placa.

Obs: o Lembrando que o sinal de Controle BUSY invertido pelo hardware da Porta Paralela

Page 282: Organização de Computadores

Arquitetura de Computadores

– Endereços da Porta Paralela

» Porta Reg de Dados Reg de Status Reg de Controle

LPT1 378h 379h 37AhLPT2 278h 279h 27Ah

D7D6D5D4D3D2D1D0

Busy (LI)

#AckPESELECT#ERROR#IRQReservadoReservado

Reservado (Todos são LI)

ReservadoDireção (não conctado)

IRQ ENABLE (não conctado)

# SELECT INPUTINIT#AUTOFEED#STROBE

Lógica Invertida:escrevendo-se 0, tem-se 1 na saída

23456789

1110121315 17

1614 1

Page 283: Organização de Computadores

Arquitetura de Computadores

– Teste de Presença de Porta

MOV AH,3MOV AL,AH

MOV DX,378H OUT DX,AL XOR AL,AL IN AL,DX CMP AH,AL JNZ PortNotPresent (Verificar o endereço 0040:0008h)

Page 284: Organização de Computadores

Arquitetura de Computadores

D0 2

BUSY 11

(378h)

(379H)

330

10K

+5V

+5V

Page 285: Organização de Computadores

Arquitetura de Computadores

– Controle sobre a Porta Paralela .................. MOV AL,01h ;apaga LED

MOV DX,378h OUT DX,ALT: MOV DX,379h IN AL,DX ; lê reg de status

TEST AL,80h ; e verifica se tecla foi

JNZ T1 ; pressionada

MOV AL,00h ; se foi, acende-se o LED

OUT DX,AL CALL DELAY

T1:MOV AL,01h; apaga-se o LED

OUT DX,AL MOV AH,01h ; verifica-se

INT 16h; se uma tecla foi pres-

JNZ T2; sionada

JMP TT2:MOV AH,4CH INT 21h ; fim

Page 286: Organização de Computadores

Arquitetura de Computadores

– INT 14h - serial (BIOS)

– INT 21h» CONSOLE:SERVIÇOS 01 - 0Ch

» AJUSTE DE INTERRUPÇÃO: 25h,35h

» DATA E HORA: 2Ah-2Dh

» FINALIZAÇÃO DE PROGRAMA: 4Ch,31h

» DIRETÓRIO E ARQUIVO:39h-43h

Page 287: Organização de Computadores

C com Assembly

/*C com Assembly - Inline -Teste de Presenca de Paralela - */#include <stdio.h>int main(){printf("Teste da Paralela \n");asm mov dx,0x378asm mov al,0xf0asm mov ah,alasm out dx,alasm xor al,alasm mov dx,0x378

asm in al,dx

asm xor al,ah

asm jnz t

printf("LPT1 presente!\n");

t:

return 0;

}

Page 288: Organização de Computadores

C com Assembly

/*C com Assembly - Inline -

Teste de Presenca de Paralela - */

#include <stdio.h>

extern int xplusy(int x, int y);

int main()

{

int a,b

a=5;

b=7;

printf(“A soma é %d”,xplusy(a,b));

return 0;

.MODEL SMALL

.CODEPUBLIC xplusyxplus PROC NEARPUSH BPMOV BP,SPSUB SP,02MOV AX,[BP+04]ADD AX,[BP+06]MOV [BP-02],AXMOV SP,BPPOP BPRETxplusy ENDP

END

Page 289: Organização de Computadores

C com Assembly

.MODEL SMALL

.CODEPUBLIC xplusyxplus PROC NEARPUSH BPMOV BP,SPSUB SP,02MOV AX,[BP+04]ADD AX,[BP+06]MOV [BP-02],AXMOV SP,BPPOP BPRETxplusy ENDP

END

.

1004 12 z1006 valor de BP1008 endereço de retorno100A 5 a100C 7 b

Topo da Pilha do Main

Page 290: Organização de Computadores

C com Assembly

/*C com Assembly - Inline -

Teste de Presenca de Paralela - */

#include <stdio.h>

extern int xplusy(int x, int y);

int main()

{

int a,b

a=5;

b=7;

printf(“A soma é %d”,xplusy(a,b));

return 0;

.MODEL SMALL,C

.CODE

PUBLIC xplusy

xplus PROC NEAR C, x:word,

y:word

LOCAL z:word

MOV AX,x

ADD AX,y

MOV z,AX

RET

xplusy ENDP

END

Page 291: Organização de Computadores

C com Assembly

/*C com Assembly - Inline -

Teste de Presenca de Paralela - */

#include <stdio.h>

extern int xplusy(int x, int y);

int main()

{

int a,b

a=5;

b=7;

printf(“A soma é %d”,xplusy(a,b));

return 0;

Código gerado para xplusy:PUSH BPMOV BP,SPSUB SP,02MOV AX,[BP+04]ADD AX,[BP+06]MOV [BP-02],AXMOV SP,BPPOP BPRET

Page 292: Organização de Computadores

C com Assembly

• bcc -S nome.asm nome.c

- converte arquivo C em assembly

• bc - BorlandC

• tasm - TurboAssembler

• td - TurboDebugger