Sistemas Microcomputadorizados

Propaganda
Sistemas Microcomputadorizados
1
Sistemas
Microcomputadorizados
UNESP/FEG/DEE
José Celso Freire Junior
 JCFJ
2
Sistemas Microcomputadorizados
Tópicos
• Introdução
• Padrões de Interfaceamento
• Os processadores 8088/8086
• Placa Mãe
• Interfaceamento com o 8086
• Dispositivos de Armazenamento
• Os processadores 80386/80486
• Interfaces IDE / E-IDE
• Os processadores Pentium
• Interface SCSI
• PIC e PTC
• Interface PCMCIA
• Interrupção e BIOS
• Redes de Computadores
• PPI e Porta Paralela
• Ethernet
• UART, Porta Serial e Modem
• TCP/IP
 JCFJ
3
Introdução - I
Sistemas Microcomputadorizados
Primeiro Microprocessador: 4004
–
–
–
–
–
2.300 Transistores
Palavras de 4 bits
46 instruções
4Kb de memória reservado para programação
1Kb de memória reservado para dados
Segunda Geração: 8008, 8080, 8085 (1974)
– Palavras de 8 bits
– Barramento de endereços de 14 bits (8008)
– Capacidade máxima de endereçamento de 16 KB (8008)
Terceira Geração: 8088/8086 (1978)
–
–
–
–
–
Palavras de 8 ou 16 bits
Barramento de dados de 16 bits
Barramento de endereços de 30 bits
Capacidade máxima de endereçamento de 1MB
Primeiro processador na linha x86 Utilizada até hoje...
Imagens: http://www.museudocomputador.com.br/encipro.php
 JCFJ
4
Introdução - II
Sistemas Microcomputadorizados
80386DX (1985)
–
–
–
–
Compatível com os anteriores
Palavras de 8, 16 ou 32 bits
Barramentos de dados e endereços de 32 bits
Capacidade máxima de endereçamento de 4 GB
80486DX (1989)
– Aperfeiçoamento do 80386DX
– Memória cache e co-processador integrados
– Duas vezes mais rápido que um 386
Pentium (1993)
–
–
–
–
–
 JCFJ
3,3 milhões de transistores
Compatível com os anteriores
Processador super-escalar de 64 bits
Barramento de dados de 64 bits
Barramento de endereços de 32 bits
Imagens: http://www.museudocomputador.com.br/encipro.php
Introdução
5
Sistemas Microcomputadorizados
Desenvolvimento dos Processadores Intel
 JCFJ
6
Sistemas Microcomputadorizados
Os Processadores 8088/8086
8088: barramento de endereços de 20 bits / barramento de dados
externo de 8 bits.
8086: barramento de endereços de 20 bits / barramento de dados
externo de 16 bits.
Pinos com dupla função: AD0-AD7 Os 8 bits menos significativos
dos dados (A0-A7) ou dos endereços (D0-D7).
Circuitos auxiliares:
– Controlador de Barramentos 8288: gera, a partir das linhas S0-S2, os sinais de
controle (IOR, IOW, MEMR, MEMW, INTA) necessários
– Gerador de Clock 8284
– Controlador de Interrupções 8259
 JCFJ
Os processadores 8088/8086
7
Sistemas Microcomputadorizados
Conexões
A8-A15
 JCFJ
Os processadores 8088/8086
8
Sistemas Microcomputadorizados
Registradores
Basicamente são localizações especiais de memória às quais um
processador atribui nomes especiais
O 8088/8086 tem 14 registradores
 JCFJ
Os processadores 8088/8086 - Registradores
9
Sistemas Microcomputadorizados
Registradores de Propósito Geral: são em número de 4 e podem ser utilizados para
manipular uma palavra de 16 bits ou duas de 8 bits Registrador se comporta como
se fosse 2 Low byte e High byte
– AX – Registrador Acumulador: o mais geral dos registradores Normalmente utilizado
para todo tipo de operações de entrada/saída e algumas operações aritméticas AX = AH
+ AL AX High byte + AX Low byte
– BX – Registrador Base: utilizado como registrador de endereçamento (BH+BL)
– CX – Registrador Contador: utilizado por instruções que requerem contagens (número de
vezes que um loop é executado) (CH+CL)
– DX – Registrador de Dados: utilizado em algumas operações de entrada/saída e nas
operações de multiplicação e divisão (DH+DL)
Registradores de Endereçamento: utilizados nas operações de endereçamento da
memória (16 bits):
– SI – Índice-Fonte: utilizado como registrador índice em alguns modos de endereçamento
indireto
– DI – Índice-Destino: utilizado como registrador índice em alguns modos de
endereçamento indireto
– BP – Ponteiro-Base: permite acesso a dados dentro do segmento de pilha Usualmente
utilizado para referenciar parâmetros acessados através da pilha
– SP – Ponteiro de Pilha: utilizado para determinar o endereço do topo de um pilha de
memória
 JCFJ
Os processadores 8088/8086 - Registradores
10
Registradores de Status: são utilizados para testar diversas condições em uma
operação (16 bits) Ex.: resultado é negativo, resultado é zero, etc.
– IP – Ponteiro de Instrução: contém o endereço da próxima instrução do programa que será
executada
– FLAGS – Sinalizadores: mantém uma coleção de 9 diferentes sinalizadores:
Sistemas Microcomputadorizados
Bit 0 – C (Carry): transporte do bit de mais alta ordem após uma operação aritmética, ou o último
bit após uma operação de rotação ou deslocamento
Bit 2 – P (Parity): indica a paridade dos 8 bits de baixa ordem de um resultado após uma
instrução lógica ou aritmética (1=ímpar e 0=par)
Bit 4 – A (Aux. Carry): indica o transporte do bit 3 em um dado de 8 bits
Bit 6 – Z (Zero): indica o resultado de uma operação aritmética ou de comparação (0=não zero ou
diferente e 1=resultado zero, ou igual)
Bit 7 – S (Sign): contém o sinal após uma operação aritmética (0=positivo e 1=negativo)
Bit 8 – T (Trap): permite a operação passo-a-passo; não se tem acesso a este bit somente
programas especiais tem acesso
Bit 9 – I (Interrupt): indica se as interrupções estão habilitadas ou não, ou seja, se serão atendidas
ou não quando ocorrerem (1=habilitadas e 0=desabilitadas) este bit pode ser ativado por
software
Bit 10 – D (Direction): se o valor deste bit for 0 após a execução de uma instrução string, os
registradores de índice envolvidos serão incrementados automaticamente e, em caso contrário,
serão decrementados
Bit 11 – O (Overflow): indica “estouro” após a realização de uma operação aritmética
 JCFJ
Os processadores 8088/8086 - Registradores
11
Sistemas Microcomputadorizados
Registradores de Segmentos: são em número de 4 sendo usados para
gerar endereços de memória de 20 bits Apontam para 4 áreas de
memória denominadas segmentos Cada um dos segmentos tem 16
bits, podendo endereçar 64 KB:
– CS – Segmento do Código: define a localização de memória onde o código do
programa é armazenado
– DS – Segmento de Dados: define onde os dados de um programa serão
armazenados
– SS – Segmento de Pilha: define onde a pilha será armazenada
– ES – Segmento Extra: área de dados de finalidade geral
Todo endereçamento à memória é feito com referência aos
registradores de segmentos, pois o 8086 tem uma Memória
Segmentada.
 JCFJ
Os processadores 8088/8086
12
Segmentação da Memória
Sistemas Microcomputadorizados
Memória segmentada 64 KB
Endereçamento de memória de 20 bits 1MB endereçável
– Número hexadecimal de 5 dígitos (00000h até FFFFFh)
Offset: hexadecimal de 4 dígitos (0000h até FFFFh) Deslocamento dentro do
segmento
Segmento: hexadecimal de 4 dígitos (0000h até FFFFh) Endereço inicial do
segmento
– Endereçamento: segmento:offset Endereço Real: segmento deslocado de 4 bits
a esquerda + offset
– Exemplo: 2F84:0532 = 2FD72h
Segmento (2F84): 0010 1111 1000 0100 0000
Offset (0532):
0000 0101 0011 0010
Endereço Real:
 JCFJ
0010 1111 1101 0111 0010
Segmento
Deslocado à
Esquerda em
4 bits
Os processadores 8088/8086 – Segmentação da Memória
13
Os processadores 80386, 80486 e Pentium funcionam em dois modos: Virtual e Real
– Modo Virtual: simulam um pseudo-8086 Modo protegido
– Modo Real: utilizam toda sua capacidade de endereçamento e do barramento de dados
Sistemas Microcomputadorizados
Acesso a memória em C
– Deve-se especificar em C o endereço 1234:9876 da seguinte maneira: 0x12349876
– Ponteiros near e far:
Near: ponteiro de 16 bits usado para endereçar até 64 Kb de dados
Far: ponteiro de 20 bits usado para endereçar até 1MB de dados.
 JCFJ
14
Interfaceamento com o 8086
Sistemas Microcomputadorizados
Dois modos de comunicação com dispositivos externos
– E/S Mapeada em Memória: mapeamento na memória física fornecendo um
endereço real ao barramento de endereços Dispositivos mapeados em memória
são acessíveis através da leitura/escrita nestes endereços
– E/S Isolada: mapeados em uma área especial da memória Dispositivos são
acessíveis através de portas especiais entre o dispositivo e o processador São
isolados do sistema Existem 4 instruções para acesso (IN: byte/palavra e OUT:
byte/palavra)
 JCFJ
Interfaceamento com o 8086 – E/S Mapeada em Memória
15
PC’s – E/S Mapeada em Memória:
Sistemas Microcomputadorizados
– Processadores 80x86: interface com a memória realizada
através de um controlador que interpreta os sinais do
microprocessador e gera os sinais apropriados para a
memória
– Geralmente duas linhas são geradas pelo
controlador
R/W: operação de leitura (nível alto) ou escrita (nível baixo)
na memória
M/IO: indica se os dados serão escritos diretamente na
memória (nível alto) ou nas portas (nível baixo)
– Modo Avançado (Windows): é possível acessar a área
acima de 1MB
Windows 3.1 (16 bits): endereçamento de até 16 MB de
memória física (000000h até FFFFFFh)
Windows 95/98/2000/XP (32 bits): endereçamento de até 4
GB de memória física (00000000h até FFFFFFFFh)
Windows 2000/XP: 64GB de memória RAM, com o uso das
instruções Physical Address Extensions-PAE contidas nos
processadores Intel Verificar:
http://www.microsoft.com/brasil/technet/Colunas/ElcioF
avare/Enderecando.mspx.
 JCFJ
Interfaceamento com o 8086 – E/S Isolada
Sistemas Microcomputadorizados
PC’s – E/S Isolada: utiliza endereçamento de 16 bits (0000h até
FFFFh) Possibilita mapear 64 KB
 JCFJ
16
17
Os Processadores 80386/80486
Sistemas Microcomputadorizados
80386DX - Razão do Sucesso: Grande salto em relação ao 8086 Potente e compatível com os anteriores
– Versão DX: Barramento de Dados e Endereços de 32 bits Capacidade de
endereçamento de 4 GB
– Versão SX: Barramento de Dados externo de 16 bits e Barramento de dados de 24 bits
Capacidade de endereçamento de 16 MB
– Podia ser utilizado com um co-processador matemático externo
– Executava somente uma instrução de cada vez
80486DX: Aperfeiçoamento do 80386 80386 com memória cache
(8 Kb) e Co-Processador Matemático integrado no mesmo chip
– Possibilidade de execução paralela de instruções através de um decodificador de
instruções e unidades de execução de um pipeline de cinco estágios Cada um dos
estágios opera em paralelo com os outros possibilitando execução de até cinco
instruções ao mesmo tempo
 JCFJ
Os processadores 80386/80486
80486DX:
Sistemas Microcomputadorizados
– Versão SX: versão mais barata sem o coprocessador matemático.
– Possibilidade do processador trabalhar
internamente com um múltiplo (2x, 3x, 4x) da
velocidade do sistema.
– Integrado no formato PGA (Pin-Grid Array)
para economizar espaço.
– Suporte a sistemas mais complexos e poderosos como as memórias cache de
segundo nível (L-2 cache) e operações multiprocessadas.
80486SL: processadores especiais para utilização em Notebooks
– Sistemas adicionais para gerenciar a energia consumida.
– Capacidades extra de auto-monitoramento do sistema.
– Funcionamento a velocidades reduzidas quando o sistema não está sendo
utilizado.
– Possibilidade do processador desligar automaticamente o sistema.
 JCFJ
18
Os processadores 80386/80486
19
Sistemas Microcomputadorizados
Conexões
Três principais interfaces de
conexão: Memória/ES,
Interrupção e Acesso Direto a
Memória (DMA)
W/R: determinam quando dados são escritos (W) ou lidos (R) na/da memória
M/IO: determina se a comunicação é feita com a memória (M) ou com dispositivos isolados (IO)
D/C: diferencia entre dados e sinais de controle
– 80386DX/80486 têm barramentos externos de dados e endereços de 32 bits
– A0 e A1 são decodificados para produzir os sinais de habilitação BE0-BE3 BE0-BE3: indicam a
manipulação de palavras de 1 byte (0001), 2 bytes (0011), 3 bytes (0111) ou 4 bytes (1111)
INTR: interrupção (pode ser ignorada)
NMI: interrupção que não pode ser mascarada
RESET: reset do sistema
 JCFJ
Os processadores 80386/80486
20
Sistemas Microcomputadorizados
Registradores
Como processadores de 32 bits, o 80386 e o 80486 têm registradores de 32 bits
Em seus registradores pode-se manipular “sub-registradores” de 8 e 16 bits Manter a
compatibilidade
Os registradores de propósito geral do 8086 (AX, BX, CX, DX, SI, DI e BP) foram renomeados
EAX, EBX, ECX, EDX, ESI, EDI e EBP
Os registradores CS, SS e CS continuam a ter 16 bits
O registrador Sinalizador (FLAG) passa a ter 32 bits EFLAG
 JCFJ
Os processadores 80386/80486
21
Memória Cache
Sistemas Microcomputadorizados
Velocidade normal de uma DRAM: 80 ns
Velocidade do processador: 50 Mhz 20 ns
Processador tem que esperar para
ter os dados disponíveis
Solução: utilização de bancos de memória SRAM e um controlador
entre o processador e as memórias DRAM
Se ocorrer um erro o processador
irá acessar a memória
normalmente
Tamanhos típicos de memória
cache são 16 KB, 32 KB e 64
KB para processadores 80486 e
256 KB e 521 KB para
processadores Pentium Pentium IV = 2 MB
 JCFJ
Os processadores 80386/80486
22
Sistemas Microcomputadorizados
Memória Cache
Cache L1 (Leve 1 - Nível 1 ou cache interno): em uso desde o processador 486 Chamado de cache interno porque se localiza dentro do processador O cache L1 é
tão importante para o processador, que este, mesmo tendo clock inferior, pode ser
mais rápido que um processador de clock superior, mas sem cache O tamanho
deste cache pode ir de 16 KB (Pentium) a 512 KB (Pentium 4) Os processadores
486 tinham cache de 8 KB.
Cache L2 (Level 2 - Nível 2 ou cache externo): o cache L1 era pequeno e
apresentava alguns erros, que obrigavam o processador a buscar os dados na memória
RAM Solução: implantação de uma memória cache fora do processador = cache
L2 Para ser usada necessita de um controlador geralmente embutido no chipset da
placa-mãe É este chip que também determina o tamanho máximo do cache L2 Tamanhos mais comuns são os de 256 KB e 512 KB, sendo possível a existência de
caches maiores
Diversos processadores trazem o cache L2 embutido dentro de si, fazendo com que as
terminologias Interno e Externo percam o sentido.
http://www.infowester.com/processadores3.php
 JCFJ
Os processadores 80386/80486
23
Acesso Direto a Memória (DMA)
Sistemas Microcomputadorizados
Dispositivo externo tem acesso direto aos barramentos de dados e de
endereços
Existem duas linhas para controlar a DMA:
– HOLD (bus hold request): habilitado (nível alto) quando o controlador de DMA
quer ter acesso a memória
– HLDA (bus hold acknowledge): em resposta a um pedido de HOLD o
processador coloca seus barramentos de dados e endereços em estado de alta
impedância e seta HLDA (nível alto)
Após a transferência o controlador de DMA desabilita a linha HOLD
(nível baixo) e o processador retoma o controle
 JCFJ
Os processadores 80386/80486
24
Sistemas Microcomputadorizados
Velocidade de Execução
Cada instrução leva um tempo determinado para ser realizada A velocidade é
determinada pela velocidade do relógio do processador
Tempo de Execução de uma Instrução = número de ciclos de relógio necessários a sua
execução x período do relógio
Exemplo: mov ax,1234 Velocidade = 8 MHz Período do relógio = 0,125 µs
8086: 4 x 0,125 = 0,5 µs 80386: 2 x 0,125 = 0,25 µs
 JCFJ
Os processadores Pentium
25
Os Processadores Pentium
Sistemas Microcomputadorizados
Pentium: adição de diversas novas características
– Adição de um segundo pipeline de execução Os dois pipelines (u e v) podem executar
duas instruções por ciclo de clock Operação Superescalar
– Aumento no cache de nível 1 (L1-cache) com 8 KB para código e 8 KB para dados
– Expansão do modo 8086-virtual permitindo a manipulação de 4 MB e páginas de 4 KB
– Possibilidade de dados de 128 e 256 bits (embora com registradores de 32 bits)
– Barramento externo de 64 bits
– Suporte ao trabalho paralelo de diversos processadores através do APIC (Advanced
Programmable Interrupt Controller)
Pentium Pro:
– Adição de uma arquitetura superscalar de 3 vias em oposição a de 2 vias do Pentium
– Utilização de uma Previsão Avançada de Código Paralelo (Dynamic Execution MicroArchitecture) para a operação superscalar
– Possibilidade de renomear os registradores Múltiplas instruções podem usar em alguns
casos os mesmos registradores
– Adição de um cache L2 externo de 256 Kb com um barramento dedicado de 64 bits
– Barramento expandido de 36 bits que permite um acesso a 64 Gb de memória
 JCFJ
Os processadores Pentium
26
Pentium II:
Sistemas Microcomputadorizados
– Aumento da velocidade de clock
– Integração da tecnologia MMX Incluem 8 novos registradores (MM0 a MM7), 4 tipos
de dados MMX e um conjunto de instruções MMX que suportam operações multimídia em
alta velocidade
– Single Edge Contact (SEC) Cartridge Packaging Torna mais fácil o manuseio e o
processo de inserção e retirada do processador de seu soquete.
– 2 Caches L1 de 16 Kb internos, um para o código e outro para os dados
– Aumento de cache L2 externo de 256 Kb para 512 Kb
– Estados avançados para o controle de funcionamento com baixo consumo de energia
 JCFJ
Sistemas Microcomputadorizados
Placa Mãe
 JCFJ
http://compare.intel.com/PCC/intro.aspx
Chipset
Tecnologias Intel
http://www.intel.com/products/processortechnology
/index.htm?iid=homepage+proc_tech
Sistemas Microcomputadorizados
27
Processadores Pentium
 JCFJ
28
29
Sistemas Microcomputadorizados
PIC
Controlador Programável de Interrupções (Programmable Interrupt Controller –
PIC): 8259 CI de 28 pinos utilizado para gerar interrupções.
Conexão do PIC com o sistema microprocessado Através do barramento (D0-D7) e
linhas de handshaking e endereço (RD, WR, A0, INT e INTA.)
 JCFJ
PIC – Controlador Programável de Interrupções
30
CS: utilizado para habilitar (nível lógico 0) ou desabilitar o PIC
Registradores:
– Registrador ICR (Interrupt Control Port): recebe as palavras de inicialização
Sistemas Microcomputadorizados
– Registrador IMR (Interrupt Mask Register): recebe a máscara de interrupção
A0 = 0 ICP é endereçado - A0 = 1 IMR é endereçado
RD/WR: indicam se o PIC está sofrendo um processo de leitura ou escrita.
IRQ0-IRQ7: recebimento dos pedidos de interrupção
INT: após um pedido de interrupção (IRQ0-IRQ7), dependendo da máscara de
interrupções o PIC coloca a linha INT em nível lógico 1 INT do PIC é lido pelo
processador em seu pino de interrupção
INTA: após o processador ter aceito o pedido de interrupção ele colocará esta linha
em nível lógico 0
Após receber o aceite do processador (INTA) o PIC colocará os dados apropriados no
barramento de dados
 JCFJ
31
PTC
Sistemas Microcomputadorizados
Controlador Programável de Temporização (Programmable Timer Controller –
PTC): 8254 CI de 24 pinos utilizado para contar pulsos em operações de
temporização
Conexão do PTC com o sistema microprocessado Através do barramento (D0-D7) e
linhas de handshaking e endereço (RD, WR, A1 e A0)
 JCFJ
PTC – Controlador Programável de Temporização
32
4 Registradores:
– Contador 0
– Contador 2
– Contador 1
– Registrador de Controle
Sistemas Microcomputadorizados
A0-A1: Selecionam o registrador
– 00: Contador 0
– 10: Contador 2
– 01: Contador 1
– 11: Registrador de Controle
RD/WR: selecionam uma operação de leitura ou de escrita para o dispositivo
CS: utilizado para habilitar (nível lógico 0) ou desabilitar a PTC
Conexões de cada Contador: Entrada de velocidade de relógio na linha CLK e saída
na linha OUT Um nível alto em GATE faz com que o contador comece a contar
Faixa de cada Contador: 0/0000h até 65535/FFFFh Contadores de 16 bits
descendentes
Endereçamento dos Registradores
 JCFJ
PTC – Controlador Programável de Temporização
33
Sistemas Microcomputadorizados
Registrador de Controle: controla a funcionalidade de cada contador A palavra de
controle seguida do valor do contador devem ser enviados seqüencialmente
SC1, SC2: Seleção do contador 00: C0, 01: C1, 10:C2, 11: Ilegal
RL1, RL0: 00: Contador mantém o dado – 01: Ler/Escrever somente o MSB –
10: Ler/Escrever somente o LSB – 11: Ler/Escrever primeiro o LSB e depois o MSB
M2,M1,M0: Modo do Contador 000: Modo 0, 001: Modo 1, X10: Modo 2,
X11: Modo 3, 100: Modo 4 e 101: Modo 5
BCD: 0: Contagem em binário e 1: Contagem em BCD
 JCFJ
PTC – Controlador Programável de Temporização
34
Modos
Sistemas Microcomputadorizados
– Modo 0 – Interrupção ao Final da Contagem: a saída está inicialmente em nível baixo,
permanecendo neste nível até o final da contagem Se GATE for para nível baixo a saída
é desabilitada Exemplo: Modo 0 com contador armazenado com 4
 JCFJ
PTC – Controlador Programável de Temporização - Modos
35
Sistemas Microcomputadorizados
– Modo 1 – Pulso Programado: similar ao modo 0, mas a saída inicia em nível alto,
passando a nível baixo no início da contagem e permanecendo até o final da contagem,
quando passa novamente a nível alto Uma transição de nível baixo para alto em GATE
inicializa a contagem Um nível alto ou baixo em GATE após a contagem não interfere
na contagem Exemplo: modo 1 com contador armazenado com 4
 JCFJ
PTC – Controlador Programável de Temporização - Modos
36
Sistemas Microcomputadorizados
– Modo 2 – Divisor: neste modo a velocidade do relógio de entrada é dividida pelo valor
armazenado no contador A saída vai a nível baixo por um ciclo e volta ao nível alto contagem iniciada por uma transição de nível baixo para alto no GATE Exemplo: modo 2 com contador armazenado com 4 saída em nível alto por 3 ciclos e
baixa por um
 JCFJ
PTC – Controlador Programável de Temporização - Modos
37
Sistemas Microcomputadorizados
– Modo 3 – Gerador de Onda Quadrada: similar ao modo 2, mas a saída é uma onda
quadrada Quando o valor no contador é par os períodos altos e baixo são iguais e
quando é ímpar um período extra em nível alto é adicionado Contagem iniciada por uma
transição de nível baixo para alto no GATE Exemplo: modo 3 com contador armazenado
com 4 Saída fica em nível baixo por 2 ciclos e em nível alto por 2 ciclos
 JCFJ
Sistemas Microcomputadorizados
PTC – Controlador Programável de Temporização - Modos
38
– Modo 4 – Pulso Habilitado por Software: este modo é similar ao modo 2 exceto pelo fato
de que GATE não inicializa a contagem A saída vai a nível alto para a contagem e fica
em nível baixo por um período voltando então ao nível alto
– Modo 5 – Pulso Habilitado por Hardware: este modo é similar ao modo 2 exceto pelo fato
de que GATE não interferir na contagem A saída permanece em nível alto durante a
contagem passando a baixo no último período A contagem é inicializada quando a
entrada passa a nível alto
Resumo
 JCFJ
BIOS e Interrupções
39
BIOS e Sistema Operacional
Sistema Básico de Entrada e Saída - BIOS (Basic Input/Output System): conjunto
Sistemas Microcomputadorizados
de programas que faz a interface com os diversos componentes de um sistema
computadorizado como teclado, monitores, impressoras e discos.
Utilização da BIOS torna a criação de programas que utilizam estes dispositivos mais
simples e agradável.
Duas Partes:
– BIOS Permanente: são programas que ficam permanentemente armazenados em
uma memória ROM Parte que inicializa o computador e que contém os
programas de comunicação com os dispositivos residentes.
– BIOS não Permanente: são programas que são carregados quando o Sistema
Operacional é carregado.
 JCFJ
BIOS e Interrupções
40
BIOS e Sistema Operacional
Sistema Operacional: conjunto de programas que permite a um usuário, ou a outros
Sistemas Microcomputadorizados
programas, acessar os dispositivos de hardware do sistema de uma maneira amigável.
– DOS (Disk Operating System): parte do sistema operacional que gerencia o acesso do
sistema aos discos e aos arquivos armazenados nestes
 JCFJ
BIOS e Interrupções
41
Interrupções
Sistemas Microcomputadorizados
Interação com Dispositivos Externos: um sistema computadorizado interage com
dispositivos externos de duas maneiras:
– Polling: o sistema faz uma varredura em todos os dispositivos a ele conectados e verifica
se algum quer “falar” com o processador Problema: perde-se muito tempo
– Interrupções: o dispositivo que quer “falar” com o processador manda um pedido de
interrupção O processador irá tratar então esta interrupção através de Rotinas de Serviço
de Interrupção (ISR - Interrupt Service Routine) Os pedidos de interrupção dos diversos
dispositivos externos são tratados por um PIC antes de serem enviados ao processador
 JCFJ
BIOS e Interrupções
Sistemas Microcomputadorizados
Vetores de Interrupção
Vetores de Interrupção são endereços que
informam o gerenciador de interrupções o local
onde se encontra a Rotina de Serviço de
Interrupção (ISR)
A cada interrupção é atribuído um número de 0 a
255 Os vetores de interrupção associados a
cada número de interrupção ficam armazenados
nos primeiros 1024 bytes da memória do PC.
Exemplo: interrupção 0 0000:0000 a
0000:0003, interrupção 1 0000:0004 a
0000:0007
Os dois primeiros bytes armazenam o offset e os
outros dois o endereço do segmento
Cada número de interrupção é atribuído a uma
tarefa pré-determinada
Interrupções podem ser geradas pelo
processador, por software ou hardware
 JCFJ
42
BIOS e Interrupções
43
Sistemas Microcomputadorizados
Interrupções via Processador
Ocorrem normalmente quando um programa causa certos tipos de erros, ou se um
programa é utilizado em modo de descoberta de erros (depuração = debug)
Interrupção 00h – Divide Error: esta interrupção é ativada quando o processador
realiza uma operação em que o divisor é zero, ou quando ocorre um estouro no
quociente Alguns compiladores utilizam ISR próprias para tratar esta interrupção
evitando que o programa se interrompa.
Interrupções 00h – Single Step e 03h – Breakpoint: são interrupções que são induzidas
por programas de depuração Tornam possível a verificação de estados internos do
processador.
Interrupção 02h – Interrupção não Mascarável: utilizadas por equipamentos externos
para indicar que algum problema grave ocorreu
–
–
–
–
–
Procedimentos de falha de alimentação;
Erros de paridade na memória;
Interrupções do co-processador matemático;
Verificações dos canais de entrada/saída;
Solicitações de alimentação dos controladores dos discos.
 JCFJ
BIOS e Interrupções
44
Sistemas Microcomputadorizados
Interrupções via Hardware
Permitem que dispositivos externos chamem a atenção do processador Dependendo do tipo
de interrupção o processador deixa o que está fazendo e chama a Rotina de Serviço da
Interrupção (ISR) Esta rotina resolve a solicitação do dispositivo O processador continua
a realizar o que estava fazendo antes da interrupção
Controlador Programável de Interrupções – PIC: faz o interfaceamento entre os pedidos de
interrupção de diversos dispositivos externos e o processador PC’s atuais utilizam dois PICs
Cada dispositivo externo tem assinalado um IRQ (Interrupt Request) próprio
 JCFJ
BIOS e Interrupções
45
Sistemas Microcomputadorizados
Interrupções via Software
São interrupções que são geradas por programas
Com o Turbo C são em número de 4: int86x(), intdos(), intr() e int86 Prototipadas no arquivo dos.h Em dos.h existe a estrutura que dá acesso aos
registradores do processador Através desta estrutura parâmetros podem ser enviados/lidos
às/das rotinas de serviço de interrupção
struct WORDREGS {
unsigned int ax;
unsigned int bx;
unsigned int cx;
unsigned int dx;
unsigned int si;
unsigned int di;
unsigned int cflag; }
struct BYTEREGS {
unsigned char al,ah;
unsigned char bl,bh;
unsigned char cl,ch;
unsigned char dl,dh; }
union REGS {
struct WORDREGS x;
struct BYTEREGS h; }
Os registradores podem ser acessados como sendo de 8
bits (AL, AH) – regs.h.al – ou como sendo de 16 bits
(AX,BX) – regs.x.ax
Sintaxe da função int86()
– int86(int intno, union REGS
*inregs, union *outregs)
• intno: número da interrupção
• inregs: valores armazenados nos registradores
passados à ISR
• outregs: valores nos registradores recebidos da ISR
 JCFJ
46
Leituras
Sistemas Microcomputadorizados
História dos computadores:
http://www.clubecobol.com.br/cc_historia_01.asp
História dos processadores:
http://www.museudocomputador.com.br/encipro.php
Museu da CPU: http://www.cpu-museum.de/
Memória Cache: http://www.infowester.com/processadores3.php
Interrupções: http://black.rc.unesp.br/orlando/dos.ppt
 JCFJ
Interfaceamento com o 8086 – E/S Isolada
47
Entrada de um byte através de uma porta de E/S
– Linguagem Assembler: IN AL,DX DX: registrador de dados contendo o endereço da
porta AL: Registrador onde será armazenado o dado de 8 bits que será lido
– C: valor=inportb(PORTADDRESS) PORTADDRESS: endereço da porta Valor: variável onde será armazenado o dado de 8 bits que será lido
Sistemas Microcomputadorizados
Entrada de uma palavra através de uma porta de E/S
– Linguagem Assembler: IN AX,DX DX: registrador de dados contendo o endereço da
porta AX: Registrador onde será armazenado o dado de 16 bits que será lido
– C: valor=inport(PORTADDRESS) PORTADDRESS: endereço da porta Valor:
variável onde será armazenado o dado de 16 bits que será lido
Saída de um byte através de uma porta de E/S
– Linguagem Assembler: OUT DX,AL DX: registrador de dados contendo o endereço da
porta AL: Registrador que contém o dado de 8 bits que será escrito
– C: outportb(PORTADDRESS,valor) PORTADDRESS: endereço da porta Valor: variável contendo o dado de 8 bits que será escrito
Saída de um palavra através de uma porta de E/S
– Linguagem Assembler: OUT DX,AX DX: registrador de dados contendo o endereço da
porta AL: Registrador que contém o dado de 16 bits que será escrito
– C: outport(PORTADDRESS,valor) PORTADDRESS: endereço da porta Valor: variável contendo o dado de 16 bits que será escrito
 JCFJ
Os processadores Pentium
48
Sistemas Microcomputadorizados
Termos Usuais:
– Transação: Usada para definir um ciclo de barramento Conjunto de fases que
se relacionam com uma operação simples sobre o barramento
– Agente do Barramento: Dispositivos que residem no barramento do processador
O próprio processador, a ponte PCI e os controladores de memória
– Agente Prioritário: O dispositivo controlando o reset, a configuração, a
inicialização ou a deteção de erros
– Agente Requerente: O dispositivo que aciona a transação Busmaster
– Agente Endereçado: O dispositivo escravo endereçado pela transação O agente
alvo
– Agente de Resposta: O dispositivo que providencia uma resposta à transação
através dos sinais RS2-RS0
– Agente de Verificação (Snooping agent): Dispositivo que verifica o barramento
para manter a coerência dos dados na memória cache
– Retrocesso Implícito (Implicit write-back): Quando durante a fase de verificação
uma modificação no barramento é percebida uma retrocesso implícito é realizado
para manter a coerência dos dados.
 JCFJ
Download