Baixe o app para aproveitar ainda mais
Prévia do material em texto
MICROPROCESSADORES E MICROCONTROLADORES Curso de Microprocessadores ___________________________________________________________________________________________________________________ 2 SUMÁRIO LISTA DE FIGURAS ........................................................................................................... 5 I - CONCEITOS BÁSICOS .................................................................................................. 9 I.1 - HISTÓRICO .............................................................................................................. 9 I.2 - CPU, MEMÓRIAS E DISPOSITIVOS DE ENTRADA/SAÍDA ................................. 14 I.3 - SISTEMA DE BARRAMENTOS ............................................................................. 15 I.4 - ARQUITETURA PADRÃO DE UM MICROPROCESSADOR ................................ 16 I.5 - EXECUÇÃO DE INSTRUÇÕES EM MICROPROCESSADORES .......................... 17 I.6 - ALGUMAS INSTRUÇÕES IMPORTANTES ........................................................... 22 I.7 - CAPACIDADE DE INTERRUPÇÃO ....................................................................... 23 I.8 - TÉCNICAS DE ENTRADA E SAÍDA ...................................................................... 28 I.9 - DECODIFICAÇÃO DE ENDEREÇOS DE MEMÓRIA ............................................ 30 I.10 - DECODIFICAÇÃO DE ENDEREÇOS DE ENTRADA/SAÍDA .............................. 32 II - OS MICROPROCESSADORES DA INTEL E AMD ..................................................... 36 II.1 - O 8086/8088 ........................................................................................................... 36 II.1.1 - Arquitetura ...................................................................................................... 36 II.1.2 - Características Gerais ..................................................................................... 37 II.1.3 - Capacidade de Interrupção ............................................................................. 38 II.2 - O 80286 .................................................................................................................. 40 II.2.1 - Arquitetura e Características ........................................................................... 40 II.2.2 - Diferenças no Conjunto de Instruções ............................................................ 42 II.2.3 - Implicações no Desempenho de um Microcomputador .................................. 42 II.3 - OS 80386 ............................................................................................................... 42 II.3.1 - Diferenças de Arquitetura e Características .................................................... 42 II.3.2 - Diferenças no Conjunto de Instruções ............................................................ 45 II.3.3 - Versões 80386, 80386SX e 80386SL ............................................................. 46 II.3.4 - Implicações no Desempenho de um Microcomputador .................................. 46 II.4 - OS I486 .................................................................................................................. 47 II.4.1 - Diferenças de Arquitetura e Características .................................................... 47 II.4.2 - Diferenças na Capacidade de Processamento ............................................... 48 II.5 - OS PENTIUM, PENTIUM MMX E PENTIUM PRO ................................................ 50 II.5.1 - Diferenças de Arquitetura e Características .................................................... 50 II.5.2 - Benchmarks .................................................................................................... 61 II.6 - OS PENTIUM II ...................................................................................................... 61 II.6.1 - Arquitetura e Características ........................................................................... 62 II.6.2 - Benchmarks .................................................................................................... 62 II.7 - ÚLTIMOS MICROPROCESSADORES DA INTEL ................................................ 65 II.7.1 - Linha Pentium III ............................................................................................. 65 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 3 II.7.2 - Linha Celeron .................................................................................................. 67 II.7.3 - Linha Pentium 4 .............................................................................................. 68 II.7.4 - Linha IA-64 ...................................................................................................... 70 II.7.5 - Linha Servidores ............................................................................................. 71 II.7.6 - Linha Desktop ................................................................................................. 71 II.7.7 - Linha Mobile .................................................................................................... 72 II.8 - CARACTERÍSTICAS DOS MICROPROCESSADORES DA AMD ........................ 73 II.8.1 - K5 .................................................................................................................... 73 II.8.2 - K6 .................................................................................................................... 73 II.8.3 - K6-2 ................................................................................................................ 74 II.8.4 - K6-III ............................................................................................................... 74 II.8.5 - Duron .............................................................................................................. 74 II.8.6 - Athlon .............................................................................................................. 74 II.8.7 - Athlon XP ........................................................................................................ 75 II.8.8 - Últimos Microprocessadores da AMD ............................................................. 76 II.8.8.1 - Linha para Desktops e Notebooks - Athlon 64 FX .................................... 76 II.8.8.2 - Linhas para Servidores e Workstations - Opteron ..................................... 79 II.8.8.3 - Linha para Notebooks - Turion 64 X2 Dual-Core Mobile ........................... 81 III - CARACTERÍSTICAS GERAIS DOS SISTEMAS DE BARRAMENTOS ..................... 84 III.1 - OS BARRAMENTOS PRINCIPAIS ISA, EISA E MCA ......................................... 84 III.1.1 - O Barramento ISA .......................................................................................... 84 III.1.2 - O Barramento EISA ....................................................................................... 84 III.1.3 - O Barramento MCA ........................................................................................ 85 III.2 - OS BARRAMENTOS LOCAIS SECUNDÁRIOS VESA, PCI E AGP ................... 85 III.2.1 - O Barramento VESA ...................................................................................... 85 III.2.2 - O Barramento PCI .......................................................................................... 86 III.2.3 - O Barramento AGP ........................................................................................ 88 III.3 - OS BARRAMENTOS SECUNDÁRIOS IDE, EIDE (PATA) E SATA .................... 92 III.3.1 - A interface IDE ............................................................................................... 92 III.3.2 - A Interface EIDE ............................................................................................ 93 III.3.3 - A InterfaceSATA ........................................................................................... 94 III.3.4 - Inovações do padrão SATA ........................................................................... 96 III.4 - OS BARRAMENTOS SECUNDÁRIOS SCSI E SAS ............................................ 97 III.4.1 - O Barramento SCSI ....................................................................................... 97 III.4.2 - O Barramento SAS ........................................................................................ 99 III.5 - BARRAMENTOS FIBRE CHANNEL E INFINIBAND ......................................... 100 III.5.1 - O Barramento Fibre Channel ......................................................................... 100 III.5.2 - O Barramento InfiniBand ................................................................................ 101 IV - SUPORTE AO DESENVOLVIMENTO DE SOFTWARE BÁSICO ........................... 102 IV.1 - ESTRUTURA DE UM PROGRAMA NA MEMÓRIA ........................................... 102 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 4 IV.2 - MONTADORES E DEPURADORES DE LINGUAGEM ASSEMBLY ................ 102 IV.3 - USO DE UM DEPURADOR DE LINGUAGEM ASSEMBLY .............................. 103 V - OS MICROPROCESSADORES DA MOTOROLA .................................................... 105 V.1 - O 68.000 .............................................................................................................. 105 V.1.1 - Arquitetura ...................................................................................................... 105 V.1.2 - Diferenças no Conjunto de Instruções ............................................................ 106 V.1.3 - Capacidade de Interrupção ............................................................................ 106 V.2 - O 68.010 .............................................................................................................. 106 V.3 - O 68.020 .............................................................................................................. 106 V.4 - O 68.030 .............................................................................................................. 106 V.5 - O 68.040 .............................................................................................................. 107 V.6 - O 68.060 .............................................................................................................. 109 V.7 - OS POWERPC (IBM/APPLE/MOTOROLA) ........................................................ 110 V.7.1 - Origem ............................................................................................................ 110 V.7.2 - A Família PowerPC ........................................................................................ 111 V.7.3 - O PowerPC G4 ............................................................................................... 112 V.7.4 - O PowerPC G5 ............................................................................................... 113 V.7.5 - O PowerPC 5000 ............................................................................................ 115 VI - INTRODUÇÃO AOS MICROCONTROLADORES ................................................... 116 VI.1 - ARQUITETURA INTERNA ................................................................................. 116 VI.2 - OS MICROCONTROLADORES 8051 E 8052 DA INTEL .................................. 116 VI.3 - O MPC860 DA MOTOROLA .............................................................................. 118 VI.4 - OS PICS DA MICROCHIPS ............................................................................... 119 VI.5 - OUTROS MICROCONTROLADORES ............................................................... 119 VII - AS ARQUITETURAS RISC ..................................................................................... 120 VII.1 - NOÇÕES DE ARQUITETURA RISC ................................................................. 120 VII.2 - O PROJETO MIPS ............................................................................................ 120 VII.3 - TENDÊNCIAS EM ARQUITETURAS RISC ...................................................... 121 VIII - ARQUITETURAS NÃO CONVENCIONAIS ............................................................ 122 VIII.1 - ARQUITETURAS PARALELAS ....................................................................... 122 VIII.2 - MÁQUINAS MIMD À PASSAGEM DE MENSAGENS ..................................... 127 VIII.3 - TENDÊNCIAS EM ARQUITETURAS PARALELAS ........................................ 133 IX - BIBLIOGRAFIA ........................................................................................................ 134 IX.1 - LIVROS ............................................................................................................... 134 IX.2 - LINKS ................................................................................................................. 134 IX.3 - ARTIGOS ............................................................................................................ 134 IX.4 - MANUAIS ........................................................................................................... 134 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 5 LISTA DE FIGURAS Figura 1 – Foto do Intel 4004 (1971) .............................................................................................................. 9 Figura 2 – Foto do Intel 8008 (1972) .............................................................................................................. 9 Figura 3 – Fotos do Intel 8080 plástico (uso comercial) e cerâmico (uso militar) - 1974 ............................... 10 Figura 4 – Foto do Motorola 6800 - 1974 ....................................................................................................... 10 Figura 5 – Foto do MOS Technology 6502 - 1977 ......................................................................................... 11 Figura 6 – Foto do Zilog Z80A - 1977 ............................................................................................................. 11 Figura 7 – Foto do Motorola 6809 - 1978 ....................................................................................................... 11 Figura 8 – Foto do Intel 8088 (CPU do IBM-PC) - 1978 ................................................................................. 12 Figura 9 – Foto do Motorola 68.000 - 1980 .................................................................................................... 12 Figura 10 – Foto do Intel 80386DX-33 ............................................................................................................ 13 Figura 11 – Foto do Intel 80486-25 ................................................................................................................. 13 Figura 12 – Sistema de Microcomputador Típico e suas Interfaces .............................................................. 15 Figura 13 – Arquitetura Padrão de um Microprocessador .............................................................................. 17 Figura 14 – Execução de Instruções por um Microprocessador Passo-a-Passo ........................................... 21 Figura 15 – Execução da Instrução LDA 0420 ............................................................................................... 22 Figura 16 – Mecanismo de Interrupção no INTEL 8085 ................................................................................. 25 Figura 17 – Mecanismo de Interrupção (Modo 2) no ZILOG Z80 ................................................................... 26 Figura18 – Mecanismos de Prioridade de Interrupção ZILOG e INTEL ....................................................... 27 Figura 19 –Interrupções em um sistema Pentium 4 da INTEL ....................................................................... 28 Figura 20 – Entrada/Saída por Acesso Direto à Memória .............................................................................. 29 Figura 21 – Uso de 2 canais de DMA em sistema Pentium 4 ........................................................................ 30 Figura 22 - Circuito exemplo da função do decodificador de endereço de memória ..................................... 31 Figura 23 - Mapa de memória do microprocessador do exemplo .................................................................. 31 Figura 24 – Endereços de Memória em um sistema Pentium 4 da INTEL .................................................... 32 Figura 25 - Circuito exemplo da função do decodificador de endereço de E/S ............................................ 33 Figura 26 - Mapa de E/S do microprocessador do exemplo .......................................................................... 34 Figura 27 – Endereços de E/S em um sistema Pentium 4 da INTEL ............................................................. 35 Figura 28 – Arquitetura do 8086 ..................................................................................................................... 36 Figura 29 – Busca da Rotina de Serviço de Interrupção no 8086 .................................................................. 39 Figura 30 – CPU 80286-8 ............................................................................................................................... 40 Figura 31 - Substrato do Intel 386 .................................................................................................................. 43 Figura 32 - Pastilhas Intel 386DX-33 e Intel 386SX-16 .................................................................................. 43 Figura 33 – Registradores do 80386 .............................................................................................................. 43 Figura 34 - Pastilha AMD 386-SX ................................................................................................................... 46 Figura 35 - Pastilha Intel 486DX-50 ................................................................................................................ 47 Figura 36 – Fotos dos Pentium P54C ou 80502 ............................................................................................. 50 Figura 37 – Diagrama em Blocos do Pentium ................................................................................................ 50 Figura 38 – Pipelines de Inteiros do Pentium ................................................................................................. 51 Figura 39 – Integração dos Pipelines de Inteiros e de Ponto Flutuante do Pentium ..................................... 52 Figura 40 – Foto do Pentium MMX – P55C ou 80503 .................................................................................... 53 Figura 41 – Novos Tipos de Dados do Pentium MMX .................................................................................... 54 Figura 42 – Registradores MMX ..................................................................................................................... 54 Figura 43 – Estrutura Pipeline MMX ............................................................................................................... 56 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 6 Figura 44 – Instrução PADD[W] ...................................................................................................................... 57 Figura 45 – Instrução PADDUS[W] ................................................................................................................. 57 Figura 46 – Instrução PMADD ........................................................................................................................ 58 Figura 47 – Pipeline do Pentium PRO ............................................................................................................ 58 Figura 48 – As 3 unidades do Pentium PRO .................................................................................................. 59 Figura 49 – As 3 unidades com Caches Unificados do Pentium PRO ........................................................... 60 Figura 50 – Esquema de Multiprocessamento do Pentium PRO ................................................................... 61 Figura 51 – CPU Pentium II ............................................................................................................................ 62 Figura 52 – Desempenho do Pentium II relativo aos Pentium MMX e PRO .................................................. 63 Figura 53 – Benchmarks de processadores INTEL, AMD e CYRIX ............................................................... 64 Figura 54 – Benchmarks de processadores Pentium II e Celeron ................................................................. 65 Figura 55 – Foto do Pentium III ...................................................................................................................... 65 Figura 56 – Arquitetura do Pentium III ............................................................................................................ 66 Figura 57 – Foto do Pentium III Xeon ............................................................................................................. 67 Figura 58 – Foto do Celeron ........................................................................................................................... 67 Figura 59 – Foto do Pentium 4 ....................................................................................................................... 69 Figura 60 – Foto Substrato do Pentium 4 ....................................................................................................... 69 Figura 61 – Arquitetura do Pentium 4 ............................................................................................................. 70 Figura 62 – Foto do Itanium 2 ......................................................................................................................... 71 Figura 63 – Foto do Core 2 Quad ................................................................................................................... 72 Figura 64 – Foto do i7 ..................................................................................................................................... 72 Figura 65 – Foto do AMD K5 .......................................................................................................................... 73 Figura 66 – Fotos do AMD Duron e INTEL Celeron ....................................................................................... 74 Figura 67 – Diagrama em Blocos do ATHLON ............................................................................................... 75 Figura 68 – Foto do Athlon 64 X2 ................................................................................................................... 77 Figura 69 – Arquitetura do Athlon 64 FX Socket F ......................................................................................... 77 Figura 70 – Arquitetura do Athlon 64 FX Socket AM2 .................................................................................... 78 Figura 71 – Arquitetura do Athlon 64 FX Socket 939 ..................................................................................... 78 Figura 72 – Foto do Opteron ........................................................................................................................... 80 Figura 73 – Diagrama em Blocos do OpteronSocket F ................................................................................. 80 Figura 74 – Diagrama em Blocos do Opteron AM2 ........................................................................................ 80 Figura 75 – Foto do Turion 64 X2 ................................................................................................................... 82 Figura 76 – Características da Arquitetura do Turion 64 X2 Dual-Core ......................................................... 82 Figura 77 – A Interface AGP ........................................................................................................................... 89 Figura 78 – Arquitetura de uma placa-mãe .................................................................................................... 90 Figura 79 – Exemplo de placa-mãe ................................................................................................................ 91 Figura 80 – Desempenho da Interface AGP ................................................................................................... 91 Figura 81 – Benchmark entre duas placas gráficas – AGP e PCI .................................................................. 92 Figura 82 – Conector SATA ............................................................................................................................ 94 Figura 83 – Estrutura de um Programa na Memória (do 8085 ao i486) ......................................................... 102 Figura 84 – Processo de Desenvolvimento de Software em Assembly ......................................................... 102 Figura 85 – Diagrama em Blocos do 68.040 .................................................................................................. 107 Figura 86 – Diagrama em Blocos do 68.060 .................................................................................................. 109 Figura 87 – Foto do PowerPC G4 ................................................................................................................... 112 Figura 88 – Desempenho do Power Mac G4 .................................................................................................. 113 Figura 89 – Arquitetura Power Mac G4 Dual 1.25 GHz .................................................................................. 113 Figura 90 – Foto do PowerPC G5 Quad ......................................................................................................... 114 Figura 91 – Desempenho relativo dos Power Mac G5 Dual e Quad .............................................................. 114 Figura 92 – Arquitetura Power Mac G5 Dual 1.25 GHz .................................................................................. 114 Figura 93 – Diagrama em Blocos do Microcontrolador 8052 da INTEL ......................................................... 117 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 7 Figura 94 – Organização de memória do 8052 .............................................................................................. 118 Figura 95 – Evolução nas necessidades em computação científica .............................................................. 123 Figura 96 – Evolução nas necessidades de processamento de voz e imagem ............................................. 123 Figura 97 – Crescimento do Desempenho de Computadores ....................................................................... 124 Figura 98 – Taxa de Crescimento da Freqüência de Relógio ........................................................................ 124 Figura 99 – Taxa de Crescimento do Número de Transistores por Chip ....................................................... 125 Figura 100 – Classificação de Flynn ............................................................................................................... 125 Figura 101 – Os 500 computadores mais rápidos do mundo ......................................................................... 128 Figura 102 – Dois Modelos de Arquiteturas Paralelas MIMD ......................................................................... 129 Figura 103 – O IBM SP-2 ................................................................................................................................ 130 Figura 104 – O INTEL Paragon ...................................................................................................................... 131 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 8 LISTA DE TABELAS LISTA DE TABELAS ....................................................................................................................................... 8 Tabela 1 – Modelos do Celeron ...................................................................................................................... 68 Tabela 2 – Modelos do Celeron D .................................................................................................................. 68 Tabela 4 – Modelos do Athlon ........................................................................................................................ 76 Tabela 5 – Modelos do Athlon 64 FX .............................................................................................................. 79 Tabela 6 – Modelos do Opteron ..................................................................................................................... 81 Tabela 7 – Modelos do Turion 64 ................................................................................................................... 83 Tabela 8 – Barramentos ISA 8 bits e 16 bits .................................................................................................. 84 Tabela 9 – ISA 16 bits e EISA......................................................................................................................... 84 Tabela 10 – Desempenho de Barramentos .................................................................................................... 87 Tabela 11 – Desempenho do Barramento de Dados ..................................................................................... 88 Tabela 12 – Taxas de Transferência EIDE e Ultra-ATA ................................................................................. 93 Tabela 13 – Comparação de eSATA com outros barramentos ...................................................................... 97 Tabela 14 – Barramentos EIDE e SCSI .......................................................................................................... 98 Tabela 15 – Taxas de Transferência SCSI ..................................................................................................... 99 Tabela 16 – Detalhes do Barramento SCSI .................................................................................................... 99 Tabela 17 – Características das Interfaces SATA, SAS e FC ........................................................................ 99 Tabela 1 – Modelos do Celeron ...................................................................................................................... 68 Tabela 2 – Modelos do Celeron D .................................................................................................................. 68 Tabela 4 – Modelos do Athlon ........................................................................................................................ 76 Tabela 5 – Modelos do Athlon 64 FX .............................................................................................................. 79 Tabela 6 – Modelos do Opteron ..................................................................................................................... 81Tabela 7 – Modelos do Turion 64 ................................................................................................................... 83 Tabela 8 – Barramentos ISA 8 bits e 16 bits .................................................................................................. 84 Tabela 9 – ISA 16 bits e EISA......................................................................................................................... 84 Tabela 10 – Desempenho de Barramentos .................................................................................................... 87 Tabela 11 – Desempenho do Barramento de Dados ..................................................................................... 88 Tabela 12 – Taxas de Transferência EIDE e Ultra-ATA ................................................................................. 93 Tabela 13 – Comparação de eSATA com outros barramentos ...................................................................... 97 Tabela 14 – Barramentos EIDE e SCSI .......................................................................................................... 98 Tabela 15 – Taxas de Transferência SCSI ..................................................................................................... 99 Tabela 16 – Detalhes do Barramento SCSI .................................................................................................... 99 Tabela 17 – Características das Interfaces SATA, SAS e FC ........................................................................ 99 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 9 I - CONCEITOS BÁSICOS I.1 - Histórico A história dos microprocessadores é brevemente resumida a seguir com o destaque de algumas datas importantes: Década de 40: Válvula e Transistor (1948) Década de 50: Comercialização do transistor Década de 60: Circuitos Integrados SSI ("Small Scale Integrated") 1968: => Bob Noyce e Gordon Murray fundam a Intel 1969: => Jerry Sanders e sete amigos fundam a Advanced Micro Devices (AMD) Obs.: Os três saíram da Fairchild Semiconductor Década de 70: Circuitos Integrados MSI ("Medium Scale Integrated") 1971: => Circuitos Integrados LSI ("Large Scale Integrated") => INTEL 4004 (CPU do primeiro microcomputador de 4 bits) Figura 1 – Foto do Intel 4004 (1971) 1972: => INTEL 8008 (CPU do primeiro microcomputador de 8 bits) Figura 2 – Foto do Intel 8008 (1972) 1974: INTEL 8080 (4.500 transistores e 10 vezes mais rápido que o 8008) Curso de Microprocessadores ___________________________________________________________________________________________________________________ 10 Figura 3 – Fotos do Intel 8080 plástico (uso comercial) e cerâmico (uso militar) - 1974 1974: MOTOROLA 6800 Figura 4 – Foto do Motorola 6800 - 1974 1976: => TEXAS 9800 (CPU do primeiro microcomputador de 16 bits) 1977: MOSTEK 6502 ==> Apple I, II e II plus Curso _____ 1977 1978 1978 o de Microproce ______________ 7: ZILO 8: => Circu MOT 8: => INTE Micr essadores _____________ G Z80 ==> uitos Integrad TOROLA 68 EL 8088/8086 roprocessado _____________ Figura > TRS-80 dos VLSI ("V 09 (Melhor C Fi 6 (29.000 tra ores BIT-SLI _____________ a 5 – Foto do Figura 6 – F Very Large Sc CPU de 8 bits igura 7 – Fot ansistores int ICE (de 2 a 6 _____________ o MOS Techn Foto do Zilog cale Integrat s do mercad to do Motoro tegrados) 64 bits) _____________ nology 6502 Z80A - 1977 ted") do) ola 6809 - 19 _____________ - 1977 7 78 _____________________________ 11 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 12 Figura 8 – Foto do Intel 8088 (CPU do IBM-PC) - 1978 Década de 80: 1980: => MOTOROLA 68.000 (68.000 transistores integrados) Figura 9 – Foto do Motorola 68.000 - 1980 1981: => MOTOROLA 68.010 1982: => INTEL 80186/80188 => INTEL 80286 (130.000 transistores integrados) 1984: => MOTOROLA 68.020 1985: => INTEL 80386 (ou 80386DX, ou i386) Curso de Microprocessadores ___________________________________________________________________________________________________________________ 13 Figura 10 – Foto do Intel 80386DX-33 1986: => MOTOROLA 68.030 1988: => INTEL 80386SX 1989: => INTEL i486 (1.200.000 transistores) ou 486 DX Figura 11 – Foto do Intel 80486-25 Década de 90: 1991: => INTEL i386SL, i486SX Microprocessadores com tecnologia RISC 1992: => INTEL i486DX2/50 e i486DX2/66 1993: => INTEL Pentium 1995: => INTEL Pentium Pro (5,5 milhões de transistores) 1997: INTEL Pentium II (7,5 milhões de transistores) e Pentium MMX 1998: => Pentium II Xeon e Celeron 1999: => Pentium III (9,5 milhões de transistores) e Pentium III Xeon Século 20: 2000: => Pentium 4 (42 milhões de transistores) 2001: => Xeon e Itanium 2002: => Tecnologia Hyper-Threading nos processadores 2003: => Tecnologia móvel Centrino Curso de Microprocessadores ___________________________________________________________________________________________________________________ 14 2004: => Conexão de rede PRO/Wireless 2915ABG 2005: => Pentium M (140 milhões de transistores) 2006: => Plataforma Centrino Duo, plataforma Viiv e processador Core 2 Duo => Pentium D 900 (376 milhões de transistores) 2007: => Dual Core Itanium 9150 (1,72 bilhão de transistores) 2008: => Core 2 Extreme Q9000 (410 milhões de transistores) => Core 2 Quad Q9100 (820 milhões de transistores) 2009 => Xeon MP X7460 (1,9 bilhão de transistores) => Atom Z500 800 MHz (47 milhões de transistores) => Core i7-965 Extreme Edition (731 milhões de transistores) 2010 => Itanium 2 Quad Core Tukwila (2,0 bilhões de transistores) I.2 - CPU, Memórias e Dispositivos de Entrada/Saída Os próximos parágrafos procuram dar uma idéia da nomenclatura utilizada no restante deste documento e introduzir os componentes principais da arquitetura de microcomputadores ou de circuitos controlados a microprocessador. O HARDWARE consiste de circuitos eletrônicos responsáveis pela execução direta de instruções em linguagem de máquina: CIs, placa impressa, cabos, fontes de alimentação, etc. O SOFTWARE consiste de algoritmos e suas representações no computador (programas) e o FIRMWARE é um software embutido em circuitos eletrônicos. É comum dizer que qualquer operação feita por software pode também ser construída por hardware e qualquer instrução executada pelo hardware pode também ser simulada por software. Um sistema de microcomputador típico é mostrado na figura 12. Basicamente, são três os componentes de qualquer sistema controlado por microprocessador ou mesmo de um sistema de computação: Unidade Central de Processamento (CPU), Memória e Dispositivos de Entrada/Saída (E/S). A CPU tem finalidade óbvia, a de controlar o sistema como um todo. A memória serve para armazenar os dados que serão manipulados e os dispositivos de E/S para a comunicação da máquina com o mundo exterior (usuário). Os vários tipos de Memória são definidos a seguir: RAM - "Random Access Memory": memória de leitura/escrita, volátil, para armazenamento temporário de programas e dados. Originalmente, o termo foi usado devido ao acesso direto a qualquer locação da memória, o que não acontecia com memórias ditas offline, tais como fitas magnéticas, cujo acesso era seqüencial. RAM Estática - RAM com menor densidade e mais rápida que a RAM dinâmica. Não necessita de circuitos adicionais em um microcomputador. RAM Dinâmica - RAM com maior densidade e mais lenta que a RAM estática. Necessita de circuitosadicionais de controle em um microcomputador. ROM - "Read Only Memory": memória programada quando a pastilha é fabricada, não podendo ser modificada. É usada para armazenamento permanente de programas e dados; PROM - "Programmable ROM": memória programada por um dispositivo programador de PROM. Programável uma única vez; EPROM - "Erasable PROM": memória que pode ser apagada e reprogramada várias vezes. Apagável pela incidência de raios ultravioleta e programável por um dispositivo programador de EPROM; EEPROM - "Erasable Electrically PROM": memória EPROM eletricamente modificável, sem necessidade de dispositivos externos apagadores ou programadores. FLASH-ROM - A diferença da Flash-ROM para a EEPROM é que na Flash-ROM não é possível apagar somente um determinado endereço dentro da memória e reprogramar apenas um dado, isto é, na Flash-ROM é necessário reprogramar toda a memória, mesmo se deseja alterar apenas um único dado. Curso de Microprocessadores ___________________________________________________________________________________________________________________ 15 Os Dispositivos de Entrada/Saída são os componentes que viabilizam a interface com o usuário, tais como: portas seriais, portas paralelas, conversores análogo-digitais, etc. CPU, memória e dispositivos de Entrada/Saída são interligados através de um sistema de barramentos, o qual será explicado na próxima seção. Figura 12 – Sistema de Microcomputador Típico e suas Interfaces I.3 - Sistema de Barramentos Um sistema de barramentos é definido como um conjunto físico de linhas de sinal que possuem funções específicas dentro do sistema. O sistema de barramentos de um microcomputador é composto de 3 barramentos (ver figura 12) independentes em suas funções elétricas: o barramento de endereços, o barramento de dados e o barramento de controle. O Barramento de Endereços é apenas de saída (em relação CPU) e define o caminho de comunicação dentro do sistema. Micropro- cessador (CPU) Memória EPROM Memória RAM Interfaces de Controle e Sensorea- mento Interfaces para Memória Secundária Interfaces de Interação c/ o Usuário Barramento de Controle Barramento de Dados Barramento de Endereços Monitor CD-ROM R/W Scanner Imp. Matricial Modem Sensor Válvula HD Curso de Microprocessadores ___________________________________________________________________________________________________________________ 16 O Barramento de Dados é bidirecional, sendo o meio de comunicação entre os componentes do sistema. Na saída de dados da CPU, estes são gerados pelo microprocessador (CPU) e enviados a uma unidade que é selecionada pelo barramento de endereços. Na entrada de dados, estes são gerados por uma unidade particular e enviados ao microprocessador. O Barramento de Controle, como o próprio nome indica, envia e recebe os sinais de controle necessários à transferência de dados no sistema. Este barramento é composto, basicamente, de 4 tipos de sinais: leitura de memória ativa, escrita de memória ativa, entrada através de dispositivo externo ativo e saída através de dispositivo externo ativo. I.4 - Arquitetura Padrão de um Microprocessador Depois de se examinar um sistema de microcomputador de forma global, nesta seção será apresentada a arquitetura padrão de um microprocessador, exibida na figura 13. Destacam-se os seguintes blocos: Registrador de Instrução (RI) - registrador que armazena a instrução sendo executada; Contador de programa ("Program Counter - PC") - registrador que armazena o endereço de memória da próxima instrução a ser executada; Acumulador - registrador que contém o dado a ser processado; Apontador de pilha ("Stack Pointer - SP") - registrador que aponta para o endereço de retorno de subrotina, sendo este último armazenado em uma pilha na memória; Unidade Lógica e Aritmética (ULA) - circuito combinacional utilizado para operações lógicas e aritméticas envolvendo dois operandos; Decodificador de instruções - circuito combinacional utilizado para determinar qual a próxima instrução a ser executada. Isto é feito a partir do código de operação armazenado previamente no Registrador de Instrução; Unidade de controle - circuito seqüencial interno ao microprocessador utilizado para gerar os sinais de controle necessários à execução da instrução previamente decodificada; Registradores auxiliares - conjunto de registradores de rascunho que podem ser usados em conjunto ou separadamente para operações intermediárias, sem que seja necessário o acesso sistemático à memória; Flags – conjunto de Flip-Flops destinados a guardar as condições resultantes da execução de instruções. Tais flags são fundamentais no sentido em que se constituem no único mecanismo que o programador Assembly dispõe para desvios de processamento e implementação de algoritmos. Curso de Microprocessadores ___________________________________________________________________________________________________________________ 17 Figura 13 – Arquitetura Padrão de um Microprocessador I.5 - Execução de Instruções em Microprocessadores Nesta seção serão dadas as explicações básicas para o entendimento dos microprocessadores mais comuns do mercado. Antes de mostrar o procedimento de execução de instruções é necessário detalhar alguns aspectos: os flags de condição, o formato das instruções e as operações básicas (de leitura e escrita) de um microprocessador. Flags de Condição: Um "flag" é "SETADO", forçando-se o bit de flag para "1" e é "RESETADO", forçando-se o bit de flag para "0". Quando uma instrução afeta um flag este é alterado da seguinte maneira: ZERO: Se o resultado da instrução tem valor 0, então Z 1 senão Z 0; SINAL: Se o bit mais significativo do resultado da operação tem valor 1, então S 1 senão S 0; PARIDADE: Se a soma dos bits do resultado da operação é 0, então P 1 (paridade PAR) Buffer de Dados Buffer de Endereço Barramento de Endereços PC SP Registradores de Rascunho Acumulador Unidade Lógica e Aritmética (ALU)Decodifi-cador Unidade de Controle Código de Instrução Informação Comple- mentar RI X Apontador de Pilha Contador de Programa R1 Rn ... Barramento de Dados Sinais de Controle S Z CY AC P Flags Curso de Microprocessadores ___________________________________________________________________________________________________________________ 18 Código de Operação Código de Operação Info. Complementar Código de Operação Info. Complementar Info. Complementar senão P 0 (paridade ÍMPAR); CARRY: Se o resultado da instrução provoca um "carry" (na adição) ou um "borrow" (na subtração ou comparação), então C 1 senão C 0; CARRY AUXILIAR: Se a instrução causou um carry do bit 3 para o bit 4, então AC 1 senão AC 0. Cada microprocessador tem seus próprios bits de flag. Os flags anteriormente mencionados são os mais comuns de serem encontrados na maioria dos microprocessadores. Mostra-se a seguir o formato de instrução, por exemplo, de um microprocessador de 8 bits. A partir deste entendimento, pode-se por analogia, entender o formato de instruções de outros microprocessadores. Assim, o formato de instrução do INTEL 8085 é utilizado como exemplo básico. Formato de Instrução e dado no 8085 1. Instruções de um byte D7 D6 D5 D4 D3 D2 D1 D0 Obs.: O endereço do primeiro byte das instruções é sempre usado como o endereço de instrução. 2. Instruções de dois bytes D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 3. Instruções de três bytes D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 Ex.: MOV R1,R2 ; R1 <- R2 Ex.: MVI R,dado ; R <- dado Ex.: LXI Rp, dado 16 ; Rh <- (byte3) ; Rl <- (byte 2) Curso de Microprocessadores ___________________________________________________________________________________________________________________19 Nas seções anteriores foram mostrados os componentes básicos de um circuito controlado a microprocessador, a arquitetura padrão dos microprocessadores e a CPU do sistema. Isto era indispensável para a compreensão do capítulo e do curso como um todo. Ainda com o intuito de mostrar como instruções são executadas em microprocessadores, também se faz necessário explicar as operações básicas de um computador ou circuito controlado a microprocessador. Estas são as operações de leitura de memória e escrita na memória. Operações Básicas de um Computador: Operação de Leitura: 1. A memória recebe o endereço e a solicitação de leitura; 2. A memória localiza a célula decodificando o endereço; 3. Operação de leitura propriamente dita; 4. Intervalo em que a memória não é acessível por razões técnicas ("Descanso"). Ciclo de Acesso à Memória: fases 1, 2 e 3 Ciclo da Memória: fases 1, 2, 3 e 4 Operação de Escrita: 1. A memória recebe o endereço, o dado e uma solicitação de escrita; 2. A memória localiza a célula decodificando o endereço; 3. Operação de escrita propriamente dita; 4. ("Descanso"). Obs.: A operação de leitura é muito mais freqüente que a operação de escrita. Ciclo de Instrução Uma instrução é executada por um microprocessador durante um intervalo de tempo particular à instrução, chamado, CICLO DE INSTRUÇÃO. Um ciclo de instrução é composto de vários ciclos de máquina que variam de acordo com a instrução. Cada ciclo de máquina, por sua vez tem a duração de vários períodos de relógio. Em seguida, o ciclo de instrução é detalhado. O formato da instrução em linguagem de máquina é mostrado a seguir. Com base neste formato pode-se descrever textualmente o ciclo de instrução. Linguagem de Máquina ==> CICLO DE INSTRUÇÃO: 1. BUSCA Código de Operação Informação Complementar Curso de Microprocessadores ___________________________________________________________________________________________________________________ 20 a) Envio de um endereço para a memória e execução de uma leitura; b) Incremento do registrador de endereço de instrução; 2. EXECUÇÃO a) Decodificação do código de operação; b) Execução da instrução; 3. VOLTA PARA FASE 1 --> Pode haver desvio: - Incondicional: o valor do registro de endereço de instrução é alterado; - Condicional: se a condição é satisfeita, a seqüência linear é interrompida. É importante ressaltar que cada ciclo de instrução é composto por vários ciclos de máquina.. A figura 14 procura ilustrar o procedimento de execução de um pequeno programa, passo-a-passo, já armazenado na memória e a figura 15 mostra, sob a forma de diagrama de tempo, a execução da instrução LDA 0420, com todos os seus ciclos de máquina e períodos de relógio. Curso de Microprocessadores ___________________________________________________________________________________________________________________ 21 Figura 14 – Execução de Instruções por um Microprocessador Passo-a-Passo Porta de Entrada 01 Acumulador Registrador de Instrução Porta de Saída 10 Microprocessador 5 5 2 43 1 6 8 12 14 7 9 13 15 Caracter "A" do teclado 16 10 11 16 16 Caracter "A" para o monitor de Vídeo Memória de Dados Endereço Conteúdo 2000 A 2001 2002 2003 Memória de Programa Endereço Conteúdo 0100 IN 0101 01 0102 STA 0103 00 0104 20 0105 OUT 0106 10 0107 ... 5 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 22 Figura 15 – Execução da Instrução LDA 0420 I.6 - Algumas Instruções Importantes Normalmente, podem-se separar as instruções de linguagem Assembly de um microprocessador em grupos. Tais grupos podem ser generalizados para a maioria dos microprocessadores com algumas pequenas diferenças. A título de exemplo, os grupos de instruções no 8085 são mostrados abaixo. Grupo de Transferência de Dados Move dado entre registradores ou entre locações de memória e registradores; Ex.: "MOVEs", "LOADs", "STOREs" e EXCHANGE; Grupo Aritmético "ADDs", "SUBTRACTs", "INCREMENTs" ou DECREMENTs" dados nos registradores ou na memória; Ciclo Busca Exec. Busca Exec. Ciclo M1 Ciclo M2 RI <- LDA 1001 ->1002 RI <- 04Não Usado Não Usado 1002 ->1003 PC Oper. Fase Busca Exec. Busca Exec. Ciclo M3 Ciclo M4 RI <- 20 1003 Bar. Dados <-(0420) Não Usado A <- (0420) 1004 1004 Busca do Código de Operação da Instrução e Transferência deste código para o Registrador de Instrução (RI) Busca do primeiro byte do endereço e transferência para dentro da parte de endereço do RI, byte de menor ordem Busca do segundo byte do endereço e transferência para dentro da parte de endereço do RI, byte de maior ordem A parte de endereço do RI é depositada no barramento de endereços Acumulador recebe o conteúdo da posição de memória, cujo endereço é 0420 RI T1 T2 T3 T4 T5 T1 T2 T3 T4 T5 T1 T2 T3 T4 T5 T1 T2 T3 T4 T5 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 23 Grupo Lógico "ANDs", "ORs", "XORs", "COMPAREs", "ROTATEs" ou "COMPLEMENTs" dados entre registradores ou entre locações de memória e registradores; Grupo de Salto "JUMPs", "CALLs" e "RETs" condicionais ou incondicionais; Grupo de Instruções de Pilha, E/S e Controle de Máquina Incluem instruções de manutenção de pilha, leitura escrita na/da memória, "seta" ou lê máscaras de interrupção, seta ou limpa "FLAGs" I.7 - Capacidade de Interrupção Uma das técnicas de Entrada/Saída de dados mais utilizadas na atualidade é a Interrupção. Seu uso aplica-se tanto em computadores de um modo geral, como também no ambiente de automação industrial. INTERRUPÇÃO (IRQ) é um sinal de hardware enviado por um dispositivo periférico necessitando de imediata atenção da CPU. A utilização desta técnica, forçosamente, envolve sinais de hardware. É comum em softwares de apoio tradicionais, como o Norton Utilities da Symantec, observar a distinção entre Interrupções por Hardware e por Software. Segundo nomenclatura da INTEL, a diferença básica é que na Interrupção por Hardware, o endereço de salto, para o qual o microprocessador irá desviar o processamento é predefinido pelo hardware do microprocessador, enquanto que na Interrupção por Software, este endereço de salto pode ser alterado pelo usuário programador Assembly. Outro conceito relacionado às interrupções também merece ser comentado. É o mascaramento de Interrupções. Existem as Interrupções Mascaráveis e as Interrupções Não Mascaráveis. Quando as Interrupções são Mascaráveis o processador tem a capacidade de não aceitar o pedido de interrupção do periférico, deixando-o pendente, de tal forma que possa atendê-lo um tempo depois. Já nas Interrupções Não Mascaráveis, o processador não pode fazer isso, sendo obrigado a atender imediatamente a solicitação de interrupção do periférico. A fim de exemplificar estes conceitos e subsidiar as explicações sobre o mecanismo de Interrupção, é fornecida a seguir a sintaxe e a semântica de uma instrução básica para o entendimento deste mecanismo, a instrução RESTART. Instrução RST n (Restart) RST é uma instrução CALL de propósito especial. RST "push" ou "empurra" bytes do Program Counter (PC) sobre a pilha e então faz a CPU saltar para um dentre vários endereços predeterminados. ((SP) - 1) <-- (PCH) ((SP) - 2) <-- (PCL) (SP) <-- (SP) - 2 (PC) <-- 8 * (NNN) NNN - Número binário entre 000 e 111 (entre 0 e 7 em decimal) SP - Stack Pointer PCH - Byte mais significativo do Program Counter PCL - Byte menos significativo do Program Counter Instrução RET (Return) RET é uma instrução de retorno de subrotina, inclusive retorno de subrotina de interrupção. Enquanto a RST n"empurra" bytes do Program Counter (PC) sobre a pilha, a RET “puxa” de volta os bytes anteriormente armazenados na pilha, de volta ao PC, fazendo a CPU continuar a executar o programa que vinha sendo executado, antes do Curso de Microprocessadores ___________________________________________________________________________________________________________________ 24 recebimento da solicitação de interrupção. Logo, a semântica desta instrução é o inverso da RST n, como mostrado a seguir: (PCL) <-- ((SP)) (PCH) <-- ((SP) + 1) (SP) <-- (SP) + 2 Ex.: Endereços de salto possíveis no INTEL 8085: HEXADECIMAL DECIMAL RST 0000 0 0 0008 8 1 0010 16 2 0018 24 3 0020 32 4 0024 36 TRAP 0028 40 5 002C 44 5.5 0030 48 6 0034 52 6.5 0038 56 7 003C 60 7.5 Interrupções por Hardware: Ex.: O 8085 inclui 4 sinais de entrada (hardware) que geram internamente instruções RST: RST 5.5, RST 6.5 e RST 7.5 (Mascaráveis) TRAP (não Mascarável) Interrupções por Software: Quando um dispositivo de E/S pede o serviço de interrupção e a IRQ está habilitada pelo sistema de interrupção do processador, este reconhece o pedido e prepara suas linhas de dados para aceitar qualquer instrução de um byte do dispositivo. RST é geralmente a instrução escolhida, pois é uma instrução CALL de propósito especial que estabelece o retorno ao programa principal. Ex.: O 8085 possui 1 entrada e 1 saída que implementa este tipo de interrupção INTR (INTerrupt Request) – pino de entrada INTA (INTerrupt Acknowledgement) – pino de saída Para o processador não se confundir, ao receber dois pedidos de interrupção simultâneos, o mesmo é provido de um mecanismo de prioridade que estabelece uma ordem no atendimento destes pedidos. Prioridade das Interrupções no 8085 NOME PRIORIDADE ENDEREÇO DE SALTO (1) TIPO DE "TRIGGER" TRAP 1 0024H Pulso Positivo amostrado até Alto Nível RST 7.5 2 003CH Pulso Positivo "Latched" RST 6.5 3 0034H Sensível a Nível (Alto) RST 5.5 4 002CH Sensível a Nível (Alto) INTR 5 (2) Sensível a Nível (Alto) Curso de Microprocessadores ___________________________________________________________________________________________________________________ 25 (1) – O processador coloca o conteúdo do Program Counter sobre a pilha, antes de saltar para o endereço indicado (2) - Depende da Instrução fornecida a CPU quando a Interrupção é reconhecida A figura 16 ilustra o mecanismo de Interrupção no 8085. A figura 17 mostra o mesmo para o ZILOG Z80 e a figura 18 exibe os circuitos integrados típicos dos ambientes INTEL e ZILOG. É importante ressaltar a diferença entre os mecanismos de prioridade de interrupção das duas empresas. Figura 16 – Mecanismo de Interrupção no INTEL 8085 INTEL 8085 Dispositivo Periférico 1 2 3 INTR INTA RST nn 6001 6002 6003 0038 C3 (JMP) 003A 80 Ex.: RST 7 INTR (SP) 02 60 1 3 0039 00 4 5 6 Pilha Subrotina de Serviço de Interrupção Programa sendo executado 8000 . . . RET . . . Endereço Dado 2 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 26 Figura 17 – Mecanismo de Interrupção (Modo 2) no ZILOG Z80 ZILOG Z80 Dispositivo Periférico 1 2 ___ INT ____ INTA 4002 4003 4004 (SP) 04 40 2 5 4 1 Pilha Subrotina de Serviço de Interrupção Programa sendo executado 8003 8005 60 8004 50 8006 6050 . . . 60XX RETI . . . Tabela de Endereços de Interrupção ___ INT I 80Registrador da CPU 80 04 36 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 27 Figura 18 – Mecanismos de Prioridade de Interrupção ZILOG e INTEL 8259 – Controlador de Prioridade de Interrupção (PIC) 8257 – Controlador de DMA Programável (PDC) 8272 – Controlador de Disco Flexível 8274 – Controlador Serial Multiprotocolo 8253 – Temporizador Programável A figura 19 exibe a tela do gerenciador de Dispositivos do Windows XP SP2 com a relação das Interrupções utilizadas pelos dispositivos de E/S em um sistema de microcomputador atual (2007) Pentium 4, 1 GB de RAM. Z80 CPU PIO DMA 8085 CPU CTC SIO 8274 8253 8259 (PIC) 8257 8272 Mecanismo "Daisy Chain" Prioridade Fixa Prioridade Controlada Barramentos Barramentos Curso de Microprocessadores ___________________________________________________________________________________________________________________ 28 Figura 19 – Interrupções em um sistema Pentium 4 da INTEL I.8 - Técnicas de Entrada e Saída Além da técnica de Interrupção detalhada na seção anterior, existem duas outras técnicas, também muito utilizadas em sistemas de computação de um modo geral. São estas: "Polling" e Acesso Direto à Memória (ou DMA – “Direct Access Memory”). "POLLING": É uma técnica de Entrada/Saída de dados onde a CPU, explicitamente, consulta o periférico com o objetivo de saber se o mesmo possui dados para transmitir ou se está livre para recebê-los. Esta técnica não envolve sinais de hardware e pode ser implementada por software; ACESSO DIRETO À MEMÓRIA: É uma técnica de Entrada/Saída de dados onde a CPU não participa do processo de transferência de dados, exceto no seu início e após o seu término. Outro dispositivo periférico é necessário, o chamado "Controlador de DMA ou CDMA", para assumir o controle dos barramentos do sistema e controlar as transferências de dados. Na maior parte dos casos, o uso desta técnica obriga o uso combinado das anteriores para que o processo de transferência de dados seja iniciado e terminado corretamente. A figura 20 ilustra passo-a-passo o procedimento de transferência de dados para a ou da memória, sem interferência da CPU. Curso de Microprocessadores ___________________________________________________________________________________________________________________ 29 Figura 20 – Entrada/Saída por Acesso Direto à Memória 1 – DRQ – “Data Request”: Solicitação de Acesso Direto à Memória feita pelo dispositivo periférico ao Controlador de DMA (CDMA); 2 – HOLD – “Hold Request: Solicitação de controle de barramentos feito pelo CDMA ao processador; 3 – HLDA – “Hold Acknowledgement” – Resposta do processador ao CDMA, avisando que a partir daquele momento, este poderá assumir o controle temporário dos barramentos para a transferência de dados; 4 – DACK – “Data Acknowledgement” – Resposta do CDMA ao dispositivo periférico, avisando que assumiu o controle dos barramentos e a transferência de dados poderá se iniciar. A programação do CDMA consiste basicamente de informar o mesmo sobre o endereço inicial do bloco de bytes a ser transferido, o sentido da transferência e o tamanho de bloco ou o endereço final. Depois que os comandos são fornecidos ao dispositivo periférico o processo continua, sem interferência da CPU. Após a transferência, o sinal DRQ é retirado, conseqüentemente, todos os outros sinais são retirados e a CPU reassume o controle dos barramentos. A figura 21 exibe a tela do gerenciador de Dispositivos do Windows XP SP2 com os canais de DMA utilizados em um sistema de microcomputador atual (2006) Pentium 4, 1 GB de RAM. CPU Memória Disp. 0 CDMA Disp. 3 Disp. 2 Barramentos Disp. 1 1 2 3 4 Driver Óptico Dados DRQ DACK HOLD HOLDA Curso de Microprocessadores ___________________________________________________________________________________________________________________ 30 Figura 21 – Uso de 2 canais de DMA em sistema Pentium 4 I.9 - Decodificação de Endereços de Memória A memória em um sistema é “mapeada”, ou seja, o espaço de endereçamento de memória alcançável por um microprocessador está ocupado por diferentes bancos de memória. Um banco de memória é composto de várias pastilhas de memória. Essas pastilhas podem ser de memórias RAM estáticae dinâmica, EEPROM, Flash-ROM, ROM-BIOS e outras. Tais pastilhas ocupam diferentes endereços de memória. Para alcançar uma célula de memória, o sistema faz uso de um circuito combinacional que possui como entradas, sinais do barramento de endereços e como saída, sinais de seleção de pastilhas de memória. Este circuito é chamado de Decodificador de Endereço de Memória. Para que o sistema não consuma energia continuamente, as pastilhas de memória só são ativadas quando em uso. Caso contrário ficam em estado desenergizado, a fim de economizar energia. As saídas do decodificador de memória mencionado anteriormente são comumente chamadas de Chip Select (CS), jargão técnico utilizado em inglês. Cada pastilha de memória possui uma entrada Chip Select. Cada saída do decodificador deve ser ligada às entradas CS de cada pastilha de memória. Dependendo do endereço de memória presente no barramento de endereços, tais saídas ativarão a correspondente pastilha de memória. A figura 22 procura ilustrar as ligações do decodificador de memória. No circuito mostrado como exemplo supõe-se microprocessador Intel com 16 bits de barramento de endereços, portanto com memória endereçável de até 64kbytes. Foram utilizadas pastilhas de 8K x 8 bits. Conseqüentemente, adequado ao uso de um circuito decodificador 3x8. Em seguida, a figura 23 mostra o mapa de memória que originou a confecção do projeto do decodificador. Curso _____ A Fi de m o de Microproce ______________ igura 24 exib memória utiliz essadores _____________ Figura 22 F be a tela do zados em um _____________ - Circuito ex Figura 23 - M gerenciador m sistema de _____________ emplo da fun Mapa de mem r de Disposit e microcomp _____________ nção do deco mória do micr tivos do Win putador atual _____________ odificador de roprocessado dows XP SP (2007) Pent _____________ e endereço d or do exemp P2 com a pri tium 4, 512 M _____________ de memória plo imeira págin MB de RAM. _____________ a dos ender ___ 31 reços Curso de Microprocessadores ___________________________________________________________________________________________________________________ 32 Figura 24 – Endereços de Memória em um sistema Pentium 4 da INTEL I.10 - DECODIFICAÇÃO DE ENDEREÇOS DE ENTRADA/SAÍDA Da mesma forma que a memória, dispositivos de E/S possuem endereço específico. No interior de cada dispositivo de E/S há pelo menos três registradores. Normalmente, tais registradores são: Registrador de Comando/Controle, Registrador de Status e Registrador de Dados. O Registrador de Comando/Controle é utilizado para se programar o dispositivo, ou seja, se escreve nesse registrador uma combinação de bits (fornecida pelo fabricante) de forma que ele opere como desejado pelo programador. Se for interface serial, por exemplo, deve-se programar inicialmente como a interface serial funcionará. Se de forma síncrona ou assíncrona, se com 7 ou 8 bits de dados, se com ou sem bits de paridade, se usará bits de dados com ou sem sinal, a taxa de transferência, etc. Antes de fazer a programação do Registrador de Comando/Controle é necessário saber em que estado se encontra o dispositivo de E/S. Pode ser que ele tenha que ser reinicializado. Para isso existe o Registrador de Status. Este registrador então informa ao programador o estado em que o dispositivo se encontra, a fim de que sua programação seja alterada, convenientemente. Curso de Microprocessadores ___________________________________________________________________________________________________________________ 33 O Registrador de Dados, como o nome indica, é o registrador que receberá os dados do sistema, seja de origem interna (vindos da memória ou do processador), seja de origem externa (vindos do mundo externo). Qualquer dispositivo de E/S precisa basicamente transferir dados do sistema para o mundo exterior e vice-versa. Sendo assim, além do próprio endereço do dispositivo de E/S, existem ainda os endereços dos seus registradores internos. Portanto, um dispositivo de E/S faz uso de vários endereços. Da mesma forma que pastilhas de memória, dispositivos de E/S também possuem entradas CS (Chip Select). Eles são habilitados para uso, apenas quando essa entrada está ativa. Caso contrário, a pastilha estará em estado de economia de energia. A diferença aqui é que a quantidade de endereços necessária para dispositivos de E/S é muito inferior à quantidade de endereços de memória. Os processadores atuais deixam apenas 8 bits disponíveis para operações com E/S, significando que endereçarão no máximo 256 dispositivos de E/S. Entretanto, da mesma forma que precisamos de um circuito decodificador de endereço de memória, também precisamos de um circuito decodificador de endereço de E/S. Para poder selecionar corretamente (gerando o CS) o dispositivo envolvido na operação de E/S. Dessa forma, como mostrado na Figura 25, o circuito decodificador de endereço de E/S é muito similar ao circuito decodificador de endereço de memória. A diferença maior é que são usados os oito bits menos significativos do barramento de endereços, ao invés dos mais significativos. Isto acontece por que as instruções de E/S usarão essas linhas de endereço menos significativas para trafegar o endereço do dispositivo. A Figura 26 mostra o mapa de endereços de E/S que originou o projeto do decodificador. Tais figuras consideram o mesmo exemplo anterior de microprocessador, ou seja, com 16 bits de barramento de endereços e linhas de endereço denominadas de A15 até A0. Figura 25 - Circuito exemplo da função do decodificador de endereço de E/S Curso _____ A Fi de E o de Microproce ______________ igura 27 exib E/S utilizados essadores _____________ be a tela do s em um sist _____________ Figura 26 - gerenciador tema de micr _____________ - Mapa de E/ r de Disposit rocomputado _____________ /S do microp tivos do Win or atual (200 _____________ processador d dows XP SP 7) Pentium 4 _____________ do exemplo P2 com a pri 4, 512 MB de _____________ imeira págin e RAM. _____________ a dos ender ___ 34 reços Curso de Microprocessadores ___________________________________________________________________________________________________________________ 35 Figura 27 – Endereços de E/S em um sistema Pentium 4 da INTEL Curso de Microprocessadores ___________________________________________________________________________________________________________________ 36 II - OS MICROPROCESSADORES DA INTEL E AMD II.1 - O 8086/8088 A figura 28 exibe o Diagrama em Blocos da Arquitetura do 8086. II.1.1 - Arquitetura Figura 28 – Arquitetura do 8086 Fonte: "The 8086 Book", Rector R. e Alexy G. - OSBORNE/McGraw-Hill CS DS SS ES 0000 0000 0000 0000 IP SP BH BL DH DL CH CL AH AL BP SI DI ALU (Unidade Lógica e Aritmética) Unidade de Controle Status Registrador de Instrução 1 2 3 4 5 6 Unidade de Controle de Barramento Unidade de Execução Unidade de Interface de Barramento Fila de Código Objeto de Instrução 0000 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 37 Registradores do 8086/8088 Registrador Finalidade AX = AH + AL Acumulador BX = BH + BL Base (2º acumulador) CX = CH + CL Contador (usado em instruções de múltiplas interações) DX = DH + DL Dado (algumas instruções movem dados de uma porta de E/S para a posição de memória endereçada por DX) SP Apontador de Pilha BP Apontador de Base SI Índice Fonte DI Índice Destino IP Apontador de Instrução Flags H + Flags L Flags CS Segmento de Código DS Segmento de Dados SS Segmento de Pilha ES Segmento Extra Observações: 1. O registrador SP está estreitamente ligado ao SS, em função das operaçõesrelacionadas à manutenção da pilha; 2. O registrador IP está estreitamente ligado ao CS, em função das operações relacionadas à execução de instruções; 3. O endereço fonte de um String de dados é obtido a partir de SI + DS; 4. O endereço destino de um String de dados é obtido a partir de DI + DS. II.1.2 - Características Gerais Capacidade de Endereçamento: 20 bits de endereçamento => 1.0 Megabytes ou 512 Kwords Operações com: Bit, Byte, Word e Bloco Organização da Memória: a) Física: => 2 x 512 Kbytes. End. Ímpar (D7 – D0) End. Par (D15-D8) b) Endereçamento relativo à base de endereços de Registradores de Segmento: Code (CS), Data (DS), Stack (SS) e Extra (ES). Endereço Registrador Conteúdo End. da Memória de Programa IP 0 M M M M CS N N N N 0 (IP+CS) Endereço Final P P P P M End. da Memória de Dados XX 0 M M M M DS N N N N 0 (XX+DS) Endereço Final D D D D M End. da Memória de Pilha XX 0 M M M M SS N N N N 0 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 38 (XX+SS) Endereço Final S S S S M End. da Memória Extra XX 0 M M M M ES N N N N 0 (XX+ES) Endereço Final D D D D M Observações: 1. Cada registrador de segmento (16 bits) identifica o início de um segmento 64 Kbytes. Como são 4 (quatro) os registradores de segmento, pode-se selecionar apenas um de 4 segmentos de 64 Kbytes de cada vez. Isto significa que de 1 MBytes, têm-se apenas 1 de 16 possíveis segmentos endereçáveis diretamente (1 MBytes / 64 Kbytes = 16); 2. XX pode ser um registrador qualquer da CPU, como por exemplo: IP, quantidade de 16 bits, DI ou SI, BX, BP, etc. c) Posições de FFFF0-FFFFF (32 Bytes) reservadas para “Reset” => Após o “Reset”, a CPU executa sempre a instrução contida no endereço FFFFF0, onde normalmente existe um JUMP. d) Posições de 00000-003FF (1024 Bytes) reservadas para operações com Interrupção => 256 possíveis vetores de interrupção; Endereçamento de Entrada/Saída - 256 dispositivos diretamente; - 64 Kbytes indiretamente Tamanho dos Registradores Internos : 16 bits Tamanho do Barramento de Dados: 16 bits Co-processador matemático: 8087 II.1.3 - Capacidade de Interrupção 1. Interrupções Predefinidas (requisitadas por hardware ou software) De 0 a 31: IRQ 0 Divisão por Zero IRQ 1 Passo-a-Passo IRQ 2 NMI (“Not Maskable Interrupt”) . . . 2. Interrupções de Hardware (definidas pelo usuário) De 32 a 255: Solicitadas via pino INTR da CPU Observação: O dispositivo solicitante deve colocar em D0-D7 (8 bits menos significativos do barramento de dados) o Número de Interrupção para a CPU. A CPU multiplica este número por 4 e com o resultado, endereça a posição de memória contendo o vetor correspondente na TABELA DE VETORES DE INTERRUPÇÃO. A figura 29 ilustra estes conceitos. Curso de Microprocessadores ___________________________________________________________________________________________________________________ 39 Figura 29 – Busca da Rotina de Serviço de Interrupção no 8086 Dos 4 bytes do VETOR DE INTERRUPÇÃO, os 2 primeiros formam o conteúdo do IP (“Instruction Pointer”) e 2 bytes restantes formam o conteúdo do CS - Registrador de Segmento de Código (“Code Segment”). Desta maneira é formado o Endereço de Início da Rotina de Serviço de Interrupção. 3. Interrupções de Software (definidas pelo usuário) De 32 a 255: Solicitadas via instrução "INT nn" nn = Número da Interrupção a ser executada Para finalizar este item deve-se comentar a posição do microprocessador 8088 em relação ao 8086. Sobre o 8088 Uma das únicas diferenças entre os dois processadores é a de que o barramento de dados no 8088 possui um comprimento de 8 bits (o barramento do 8086 é de 16 bits). Este fato possibilitou aos fabricantes de microcomputadores o aproveitamento quase total dos circuitos periféricos do 8080 (mais conhecidos e mais baratos), reduzindo sobremaneira o custo final da máquina. Como o 8086, efetivamente, não era utilizado como um microprocessador de 16 bits, propagandeou-se em larga escala que microcomputadores com CPU 8088 possuíam o mesmo desempenho e mais baixo custo do que máquinas com CPU 8086. A verdade é que o momento era de transição para uma CPU mais poderosa e os fabricantes de placas ainda não haviam tomado uma posição definitiva a respeito. 00000 IP CS Rotina de Serviço de Interrupção 003FFNúmero de Interrupção x 4 IRET 1a. Instrução Tabela de Vetores de Interrupção Curso de Microprocessadores ___________________________________________________________________________________________________________________ 40 Assim, o 8088 possui arquitetura (rodava os mesmos programas) igual ao 8086, com a diferença principal apenas no comprimento do barramento de dados. Sobre o par 80186/80188 Após os microprocessadores 8086 e 8088, a INTEL lançou o processador 80186, com desempenho cerca de 30% superior ao 8086. O 80186 era um 8086 com novos blocos de hardware internos. Tal microprocessador encontrou sua utilização na área de controle de processos, gerenciamento de terminais e automação industrial. Entretanto, não fez sucesso comercial na área de microinformática, pois suas melhorias em relação a software eram muito poucas. A exemplo do par 8086/8088, uma CPU 80188 também foi produzida pela INTEL, com as mesmas características dos 80186, à exceção do barramento de dados, dimensionado para 8 bits II.2 - O 80286 II.2.1 - Arquitetura e Características O microprocessador 80286 surgiu com duas grandes novidades para a área de microinformática. A primeira foi que o barramento de endereços da pastilha cresceu para 24 bits (não mais os 20 bits do 8086 e 80186), o que implica em uma capacidade de endereçamento de 16 MBytes. A segunda foi a introdução de dois modos de funcionamento da CPU: o MODO REAL (compatível com o 8086) e o MODO PROTEGIDO (específico para o 286). Uma terceira inovação, o suporte a memória virtual (na época, não totalmente explorada), permitia o endereçamento de até 1 Gigabytes. Os itens que se seguem procuram fornecer mais detalhes sobre esta CPU. Modo Real: Neste modo, o 80286 é compatível em software (a nível de código objeto) com o 8086/8088. O fato de emular o 8086/8088 significa dizer que a memória a ser utilizada pelo programa não pode ultrapassar 1.0 MBytes, consequentemente, não utilizando toda a capacidade de endereçamento disponível. Sendo a CPU mais evoluída em hardware e permitindo a utilização de osciladores a cristal de freqüências mais altas, sem dúvida máquinas com esta CPU, mesmo operando neste modo, possuíam maior desempenho que os famosos XTs. Modo Protegido: Neste modo, o 80286, também pode rodar programas 8086/8088 e além disso, rodar programas escritos especificamente com o código fonte 80286. Neste modo, o 80286 automaticamente mapea 1.0 Gigabytes de endereços virtuais por tarefa dentro de um espaço de endereço real de 16.0 Megabytes. No modo protegido, o 80286 provê proteção de memória para isolar o sistema operacional e assegurar a privacidade de cada tarefa sendo executada. Assim, o 80286, foi especialmente otimizado para suportar sistemas multitarefa e multiusuário. A título de ilustração, a figura 30 exibe o 80286-8 (8,0 MHz). Figura 30 – CPU 80286-8 Curso de Microprocessadores ___________________________________________________________________________________________________________________ 41 Registradores do 80286 Registrador Finalidade AX = AH + AL Acumulador BX = BH + BL Base (2º acumulador) CX = CH + CL Contador (usado em instruções de múltiplas interações) DX = DH + DL Dado (algumas instruções movem dados de uma porta de E/S e a posição de memória endereçada por DX) SP Apontador de Pilha BP Apontador de Base SI Índice Fonte DI Índice Destino IP Apontador
Compartilhar