aula teórica 5w3.ualg.pt/~apcosta/pin/teoricas/teorica05.pdf · capítulos 6, 7 e 15 - hans-peter...

8
Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa 1 Aula Teórica 5 Sumário: A memória principal e a cache. Portos de entrada/saída. Interrupções. Leitura Recomendada: Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo2 - Peter Norton, Peter Aitken e Richard Wilton, PC Programmer´s Bible, Microsoft Press. O processador tem três formas de comunicar com os outros componentes do sistema: Através de acesso à memória. Através de portos de entrada/saída. Através de interrupções. A memória O processador comunica através da memória, lendo ou escrevendo em zonas de memória que serão depois acedidas por outros componentes. A memória RAM Os chips que constituem a memória RAM são os DRAM (Dynamic RAM). São uma memória barata, de grande capacidade, de acesso relativamente lento e volátil (a informação perde-se quando se desliga a corrente do PC). Existem vários tipos módulos de DRAM: SIMM (Single inline memory modules), PS/2 e DIMM (Double inline memory modules). Figura nº 1 – Módulo de memória DIMM. SDRAM (Synchronous dynamic RAM) – Não confundir com SRAM (Static RAM). A SDRAM consegue operar sincronizada com o relógio do sistema. A memória cache A partir do 80386 com frequências de relógio de 25 MHz ou mais, surgiu um buffer de memória chamado cache. A memória RAM é demasiado lenta em comparação com a velocidade do CPU, e muitas vezes o CPU tem que esperar que os dados cheguem da memória. Por esta razão surgiu uma memória mais rápida implementada entre a RAM e o processador: SRAM (Static RAM), memória muito rápida, com menor capacidade que a DRAM e também volátil. A cache tenta combinar as vantagens da veloz SRAM com o baixo custo da DRAM para criar um sistema de memória mais eficaz.

Upload: others

Post on 25-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula Teórica 5w3.ualg.pt/~apcosta/pin/teoricas/teorica05.pdf · Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo2 - Peter

Periféricos e Interfaces Ano lectivo 2003/2004Docente: Ana Paula Costa

1

Aula Teórica 5

Sumár io:A memória principal e a cache.Portos de entrada/saída.Interrupções.

Leitura Recomendada:Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley.Capítulo2 - Peter Norton, Peter Aitken e Richard Wilton, PC Programmer´s Bible, Microsoft Press.

O processador tem três formas de comunicar com os outros componentes do sistema:Através de acesso à memória.Através de portos de entrada/saída.Através de interrupções.

A memór ia

O processador comunica através da memória, lendo ou escrevendo em zonas de memória que serãodepois acedidas por outros componentes.

• A memória RAM

Os chips que constituem a memória RAM são os DRAM (Dynamic RAM). São uma memória barata, degrande capacidade, de acesso relativamente lento e volátil (a informação perde-se quando se desliga acorrente do PC).

Existem vários tipos módulos de DRAM: SIMM (Single inline memory modules), PS/2 e DIMM (Doubleinline memory modules).

Figura nº 1 – Módulo de memória DIMM.

SDRAM (Synchronous dynamic RAM) – Não confundir com SRAM (Static RAM). A SDRAM consegueoperar sincronizada com o relógio do sistema.

• A memória cache

A partir do 80386 com frequências de relógio de 25 MHz ou mais, surgiu um buffer de memória chamadocache. A memória RAM é demasiado lenta em comparação com a velocidade do CPU, e muitas vezes oCPU tem que esperar que os dados cheguem da memória. Por esta razão surgiu uma memória mais rápidaimplementada entre a RAM e o processador: SRAM (Static RAM), memória muito rápida, com menorcapacidade que a DRAM e também volátil.

A cache tenta combinar as vantagens da veloz SRAM com o baixo custo da DRAM para criar um sistemade memória mais eficaz.

Page 2: Aula Teórica 5w3.ualg.pt/~apcosta/pin/teoricas/teorica05.pdf · Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo2 - Peter

Periféricos e Interfaces Ano lectivo 2003/2004Docente: Ana Paula Costa

2

Figura nº 2 – Módulos de memória SIMM e PS/2.

Uma unidade de cache é introduzida entre o processador e a RAM e consiste de um controlador de cachee da cache SRAM. Podem ser incluídas no mesmo chip do CPU (on-chip cache ou cache L1), ou podemexistir à parte (second-level cache ou cache L2).

A memória cache, de 128 KBytes ou 512 KBytes, é relativamente pequena comparada com a RAM.Como os acessos sucessivos à memória concernem apenas uma pequena área de endereçamento, os dadosacedidos mais frequentemente são mantidos numa pequena memória de alta velocidade: a cache. Comisto consegue-se uma grande redução no tempo de acesso à memória, o que aumenta bastante avelocidade de processamento. O controlador da cache é que determina se o próximo dado a ser lido seencontra já na cache ou se tem que ser lido da RAM. Se o PC tiver cache L1 e cache L2, a sequência deprocura dos dados em memória será L1, L2 e RAM.

Page 3: Aula Teórica 5w3.ualg.pt/~apcosta/pin/teoricas/teorica05.pdf · Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo2 - Peter

Periféricos e Interfaces Ano lectivo 2003/2004Docente: Ana Paula Costa

3

Figura nº 3 – Memória cache.

• ROM, EPROM e EEPROM

Os dados a armazenar na ROM (Read-only memory) são lá estritos uma vez, de forma não volátil (ainformação fica lá gravada para sempre). As ROM puras são muito raras hoje em dia. Nestas, os dadossão gravados na altura da fabricação do chip da ROM.

PROM (Programmable ROM). Aqui a informação tem que ser colocada pelo utilizador, mas requerequipamento apropriado de fabrico.

EPROM (Electrically-programmable ROM), os dados são escritos usando a electricidade, mas ficamguardados em definitivo no chip.

EEPROM (Erasable EPROM), aqui podemos apagar a informação que lá está e colocar novos dados.

Memória flash. É um novo tipo de memória não volátil que é usada em portáteis, câmaras digitais etelemóveis, normalmente em cartões de memória.

Por tos de entrada/saída

É um meio usado para o processador comunicar com outros componentes que não a memória RAM.

Tal como a memória, os portos de E/S são identificados por um endereço numérico e os dados podem serlidos/escritos de/para os portos.

Cada porto tem um endereço único de 16 bits (o seu valor pode portanto variar entre 0 e 65535).

O CPU utiliza o bus de endereços e o bus de dados para comunicar com os portos. Para aceder a umporto, o CPU primeiro envia um sinal no bus do sistema para notificar todos os dispositivos de E/S que opróximo endereço no bus de endereços não se refere à RAM, mas sim a um porto. A seguir o CPU enviao endereço do porto no bus de endereços e o dispositivo com esse endereço responde. A passagem dedados é feita através do bus de dados.

Um endereço de um porto de E/S especifica uma localização de armazenamento que está associada comum periférico de E/S, não faz parte da memória. Por exemplo, o porto 3D8H não tem nada a ver com oendereço de memória 003D8H.

A atribuição dos portos aos dispositivos de hardware, está largamente, mas não totalmente standardizada.

Vamos falando dos endereços dos portos à medida que forem sendo usados.

Page 4: Aula Teórica 5w3.ualg.pt/~apcosta/pin/teoricas/teorica05.pdf · Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo2 - Peter

Periféricos e Interfaces Ano lectivo 2003/2004Docente: Ana Paula Costa

4

Figura nº 4 – Portos de hardware num PC.

Inter rupções

Uma interrupção é um sinal, um aviso, que é enviado ao processador a requerer atenção.O processador interrompe a execução do programa, executa uma subrotina residente em memória(chamada interrupt handler), cujo propósito é fazer um conjunto de operações que têm a ver com a causada interrupção. Depois de realizada a tarefa, o processador volta ao ponto em que foi suspenso.

Cada interrupção tem a sua interrupt handler. Antes de começar a interrupt handler (a subrotina dessainterrupção), o processador tem que guardar determinadas informações para poder depois voltar aoprograma corrente. Assim, o processador tem que:

1. Guardar na stack o conteúdo dos registos IP, CS e flag.2. Determinar o endereço da interrupção, onde se encontra a subrotina.3. Iniciar a execução da interrupt handler.4. IRET (restaurar o conteúdo dos registos e retornar ao programa interrompido).

Page 5: Aula Teórica 5w3.ualg.pt/~apcosta/pin/teoricas/teorica05.pdf · Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo2 - Peter

Periféricos e Interfaces Ano lectivo 2003/2004Docente: Ana Paula Costa

5

Figura nº 5 – Interrupção de um programa

• A tabela de vectores de interrupções

O 8086 suporta 256 interrupções diferentes, cada uma identificada por um número entre 0 e 255 (0H aFFH). Os endereços segmentados (par segmento:offset) das 256 interrupts handlers estão armazenados natabela de vectores de interrupções (Interrupt vector table) que tem início no endereço 0000H:0000H, oinício da memória disponível.

Cada entrada na tabela ocupa 4 bytes ( 2 bytes para o endereço de segmento e 2 bytes para o endereço deoffset). O tamanho total da tabela é 256 x 4 = 1024 bytes ou 1 Kbyte.

Pode-se substituir uma interrupt handler existente, por uma nova, bastando para isso armazenar oendereço segmentado da nova interrupt handler, na respectiva entrada na tabela. Para saber qual é aentrada correcta, basta multiplicar o número da interrupção por 4. Por exemplo, a interrupção 02H teminício no endereço 08H e ocupa os endereços 08H, 09H, 0AH e 0BH.

Existem três tipos de interrupções:Interrupções de software.Interrupções de hardware.Excepções.

• Interrupções de software

As interrupções de software funcionam da maneira descrita anteriormente. Chamam uma interrupthandler que executa uma função BIOS ou DOS.

• Interrupções de hardware

O processador responde a uma interrupção de hardware da mesma forma que responde a uma interrupçãode software: transferindo o controlo para uma interrupt handler. A grande diferença reside na forma comoa interrupção é sinalizada.

Page 6: Aula Teórica 5w3.ualg.pt/~apcosta/pin/teoricas/teorica05.pdf · Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo2 - Peter

Periféricos e Interfaces Ano lectivo 2003/2004Docente: Ana Paula Costa

6

Figura nº 6 – A tabela de interrupções.

Existem 2 tipos de interrupções de hardware: NMI (Non-maskable interrupt) e IRQ (maskable interruptrequest). O controlador de interrupções (o circuito PIC ou 8259A) tem um papel crucial na operação dasIRQ’s porque faz a gestão dos vários pedidos de interrupções e passa-os ao processador. O PIC informa oCPU quando existe uma interrupção de hardware, atribuindo prioridades diferentes a cada dispositivo.

Uma NMI não é enviada ao controlador de interrupções, é fornecidas directamente pelo processador (viao pin NMI). Activa uma interrupção 2, após a instrução corrente estar completa. Não pode ser mascarada(ignorada) e tem a prioridade mais alta de todas as interrupções de hardware.

Page 7: Aula Teórica 5w3.ualg.pt/~apcosta/pin/teoricas/teorica05.pdf · Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo2 - Peter

Periféricos e Interfaces Ano lectivo 2003/2004Docente: Ana Paula Costa

7

Dispositivos tais como o timer do sistema, o disco rígido, o teclado, a porta série e a porta paralela,requerem a atenção do processador apenas de tempos a tempos. Por exemplo, no caso de o CPU esperarcaracteres vindos da porta série, duas coisas podem acontecer:1. A porta série é continuamente monitorada pelo processador, para ver se chegou algum caracter à

porta. Esta técnica denomina-se polling.2. A porta série indica ao processador que tem um caracter para lhe enviar (técnica chamada interrupt-

driven).

A desvantagem do primeiro método é óbvia: o processador fica tão ocupado no processo de polling queatrasa a execução do programa que estiver activo.

No segundo método, uma interrupção de hardware é enviada ao CPU a requerer a sua atenção(comunicação interrupt-driven). É enviado um sinal por uma linha reservada para o efeito (IRQ), combase nesse sinal o processador consegue identificar qual o dispositivo que deseja comunicar com ele.Desta forma, o CPU fica mais livre para a execução do programa. Interrupt-driven é melhor do quepolling.

O PIC é um chip de suporte que controla/monitoriza as linhas IRQ. O CPU normalmente só tem umaentrada para interrupções, e o PC tem várias unidades que enviam interrupções. O PIC encontra-se entre oCPU e os componentes que enviam as interrupções, e é ele que faz a gestão das interrupções, fornecendo-as depois ao processador.

O PC/XT suporta 8 linhas de IRQ (0 a 7). O dispositivo ligado à IRQ0 tem a prioridade mais alta e odispositivo ligado à IRQ7 tem a prioridade mais baixa. No AT existem 16 linhas de IRQ.

Com um mínimo de 2 PIC’s é possível criar uma cascata de dois níveis. O primerio nível é composto porum PIC mestre, e o segundo nível é formado por até 8 PIC´s escravos. Esta configuração permite gerirpedidos de interrupções de mais de 8 periféricos.

Figura nº 7 – PIC´s em cascata.

• Excepções

Interrupções produzidas pelo processador são chamadas excepções. Os efeitos de uma excepçãocorrespondem aos de uma interrupção de software (uma interrupção cujo número é indicado pelo próprioprocessador é activada). A causa de uma excepção é geralmente uma condição de erro no processador,que ele não consegue resolver por si.

Page 8: Aula Teórica 5w3.ualg.pt/~apcosta/pin/teoricas/teorica05.pdf · Capítulos 6, 7 e 15 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo2 - Peter

Periféricos e Interfaces Ano lectivo 2003/2004Docente: Ana Paula Costa

8

Resumo das inter rupções

Interrupções do microprocessador – 00H a 04HInterrupções de hardware – 08H a 0FH, 70H – 77HInterrupções ROM-BIOS (software) – 10H a 1FH, 40H a 5FHInterrupções DOS (software) – 20H a 3FHInterrupções de uso geral – 60H a 66HAlgumas entradas na tabela apontam, não para uma interrupt handler, mas para tabelas com informaçõesúteis. Por exemplo, 41H, 1FH e 1EH.