Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
JCFJ
1Sistemas Microcomputadorizados
Sistemas Microcomputadorizados
UNESP/FEG/DEEJosé Celso Freire Junior
JCFJ
2
Sistemas Microcomputadorizados
Tópicos
• Introdução
• Os processadores 8088/8086
• Interfaceamento com o 8086
• Os processadores 80386/80486
• Os processadores Pentium
• PIC e PTC
• Interrupção e BIOS
• PPI e Porta Paralela
• UART, Porta Serial e Modem
• Padrões de Interfaceamento
• Placa Mãe
• Dispositivos de Armazenamento
• Interfaces IDE / E-IDE
• Interface SCSI
• Interface PCMCIA
• Redes de Computadores
• Ethernet
• TCP/IP
JCFJ
3Sistemas Microcomputadorizados
Introdução - I� 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
Sistemas Microcomputadorizados
Introdução - II� 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)– 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
JCFJ
5Sistemas Microcomputadorizados
Desenvolvimento dos Processadores Intel
Introdução
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
7Sistemas Microcomputadorizados
Conexões
Os processadores 8088/8086
A8-A15
JCFJ
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
Os processadores 8088/8086
JCFJ
9Sistemas 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
Os processadores 8088/8086 - Registradores
JCFJ
10
Sistemas Microcomputadorizados
� 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:
� 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
Os processadores 8088/8086 - Registradores
JCFJ
11Sistemas 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.
Os processadores 8088/8086 - Registradores
JCFJ
12
Sistemas Microcomputadorizados
Segmentação da Memória� 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
Os processadores 8088/8086
Segmento (2F84): 0010 1111 1000 0100 0000
Offset (0532): 0000 0101 0011 0010
Endereço Real: 0010 1111 1101 0111 0010
Segmento
Deslocado à
Esquerda em
4 bits
JCFJ
13Sistemas Microcomputadorizados
� 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
� 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.
Os processadores 8088/8086 – Segmentação da Memória
JCFJ
14
Sistemas Microcomputadorizados
Interfaceamento com o 8086� 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
15Sistemas Microcomputadorizados
� PC’s – E/S Mapeada em Memória:
– 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.
Interfaceamento com o 8086 – E/S Mapeada em Memória
JCFJ
16
Sistemas Microcomputadorizados
� PC’s – E/S Isolada: utiliza endereçamento de 16 bits (0000h atéFFFFh) � Possibilita mapear 64 KB
Interfaceamento com o 8086 – E/S Isolada
JCFJ
17Sistemas Microcomputadorizados
Os Processadores 80386/80486�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
18
Sistemas Microcomputadorizados
� 80486DX:– Versão SX: versão mais barata sem o co-
processador 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.
Os processadores 80386/80486
– 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
19Sistemas Microcomputadorizados
Conexões
� 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
Os processadores 80386/80486
� Três principais interfaces de conexão: Memória/ES, Interrupção e Acesso Direto a Memória (DMA)
JCFJ
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
Os processadores 80386/80486
JCFJ
21Sistemas Microcomputadorizados
Memória Cache
� 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
Os processadores 80386/80486
Velocidade normal de uma DRAM: 80 ns
Velocidade do processador: 50 Mhz � 20 nsProcessador 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
JCFJ
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 = cacheL2 � 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
Os processadores 80386/80486
JCFJ
23Sistemas Microcomputadorizados
Acesso Direto a Memória (DMA)
� 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
Os processadores 80386/80486
JCFJ
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
Os processadores 80386/80486
JCFJ
25Sistemas Microcomputadorizados
Os Processadores Pentium� 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 Micro-
Architecture) 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
Os processadores Pentium
JCFJ
26
Sistemas Microcomputadorizados
� Pentium II:
– 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
Os processadores Pentium
JCFJ
27Sistemas Microcomputadorizados
Chipset
Placa Mãe
Processadores Pentium
http://compare.intel.com/PCC/intro.aspx
JCFJ
28
Sistemas Microcomputadorizados
Tecnologias Intel
http://www.intel.com/products/processortechnology
/index.htm?iid=homepage+proc_tech
JCFJ
29Sistemas 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
30
Sistemas Microcomputadorizados
� 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
– 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
PIC – Controlador Programável de Interrupções
JCFJ
31Sistemas Microcomputadorizados
PTC� 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
32
Sistemas Microcomputadorizados
� 4 Registradores:– Contador 0 – Contador 1
– Contador 2 – Registrador de Controle
� A0-A1: Selecionam o registrador– 00: Contador 0 – 01: Contador 1
– 10: Contador 2 – 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
PTC – Controlador Programável de Temporização
JCFJ
33Sistemas 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
PTC – Controlador Programável de Temporização
JCFJ
34
Sistemas Microcomputadorizados
� Modos– 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
PTC – Controlador Programável de Temporização
JCFJ
35Sistemas 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
PTC – Controlador Programável de Temporização - Modos
JCFJ
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
PTC – Controlador Programável de Temporização - Modos
JCFJ
37Sistemas 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
PTC – Controlador Programável de Temporização - Modos
JCFJ
38
Sistemas Microcomputadorizados
– 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
PTC – Controlador Programável de Temporização - Modos
JCFJ
39Sistemas Microcomputadorizados
BIOS e Sistema Operacional� Sistema Básico de Entrada e Saída - BIOS (Basic Input/Output System): conjunto
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.
BIOS e Interrupções
JCFJ
40
Sistemas Microcomputadorizados
BIOS e Sistema Operacional
BIOS e Interrupções
� Sistema Operacional: conjunto de programas que permite a um usuário, ou a outros
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
41Sistemas Microcomputadorizados
Interrupções� 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
BIOS e Interrupções
JCFJ
42
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
BIOS e Interrupções
JCFJ
43Sistemas 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.
BIOS e Interrupções
JCFJ
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
BIOS e Interrupções
JCFJ
45Sistemas 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
BIOS e Interrupções
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
Sistemas Microcomputadorizados
Leituras
� 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
47Sistemas Microcomputadorizados
� 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
� 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
Interfaceamento com o 8086 – E/S Isolada
JCFJ
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.
Os processadores Pentium