134
UNIVERSIDADE FEDERAL DO PARÁ (UFPA) INSTITUTO DE TECNOLOGIA (ITEC) FACULDADE DE ENGENHARIA DE COMPUTAÇÃO (EngeComp) CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia Elétrica - PUC/Rio Professor Adjunto 4 Site na UFPA: www.ufpa.br/marcelo e-mail: [email protected] Belém – Pará

CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Embed Size (px)

Citation preview

Page 1: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

UNIVERSIDADE FEDERAL DO PARÁ (UFPA) INSTITUTO DE TECNOLOGIA (ITEC)

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO

(EngeComp)

CURSO:

MICROPROCESSADORES E

MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia Elétrica - PUC/Rio Professor Adjunto 4 Site na UFPA: www.ufpa.br/marcelo e-mail: [email protected]

Belém – Pará

Page 2: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 

Page 3: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 Interface SATA ........................................................................................... 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 

Page 4: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 

Page 5: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 Figura 18 – 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 

Page 6: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 Opteron Socket 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 

Page 7: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 

Page 8: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 ..................................................................................................................... 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 

Page 9: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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)

Page 10: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

Page 11: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso_____

1977

1978

1978

o de Microproce______________

7: ZILO

8: => Circu MOT

8: => INTE Micr

essadores _____________

G Z80 ==>

uitos IntegradTOROLA 68

EL 8088/8086roprocessado

_____________

Figura

> TRS-80

dos VLSI ("V09 (Melhor C

Fi

6 (29.000 traores BIT-SLI

_____________

a 5 – Foto do

Figura 6 – F

Very Large ScCPU de 8 bits

igura 7 – Fot

ansistores intICE (de 2 a 6

_____________

o MOS Techn

Foto do Zilog

cale Integrats do mercad

to do Motoro

tegrados) 64 bits)

_____________

nology 6502

Z80A - 1977

ted") do)

ola 6809 - 19

_____________

- 1977

7

78

_____________________________

11

Page 12: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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)

Page 13: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

Page 14: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 circuitos adicionais 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.

Page 15: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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óriaEPROM

MemóriaRAM

Interfaces deControle eSensorea-

mento

Interfacespara

MemóriaSecundária

Interfaces deInteraçã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

Page 16: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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.

Page 17: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 deDados

Buffer de Endereço

Barramento deEndereços

PC

SP

Registradores deRascunho

Acumulador

Unidade Lógica eAritmética (ALU)Decodifi-

cador

Unidade deControle

Código deInstrução

InformaçãoComple-mentar

RI X

Apontadorde Pilha

Contador dePrograma

R1

Rn

...

Barramento deDados

Sinais deControle

S

Z

CY

AC

P

Flags

Page 18: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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)

Page 19: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

Page 20: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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.

Page 21: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

21

Figura 14 – Execução de Instruções por um Microprocessador Passo-a-Passo

Porta deEntrada 01

Acumulador

Registrador deInstrução

Porta deSaída 10

Microprocessador

5

5

243

1

68

1214

79

1315

Caracter "A" do teclado

16

10 11

16 16

Caracter "A" para omonitor de Vídeo

Memória de Dados

Endereço Conteúdo2000 A200120022003

Memória de Programa

Endereço Conteúdo0100 IN0101 010102 STA0103 000104 200105 OUT0106 100107 ...

5

Page 22: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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ãoUsado

NãoUsado

1002->1003

PC

Oper.

Fase Busca Exec. Busca Exec.

Ciclo M3 Ciclo M4

RI <- 20

1003

Bar.Dados

<-(0420)

NãoUsado

A <-(0420)

1004 1004

Busca doCódigo de

Operação daInstrução e

Transferênciadeste código

para oRegistrador deInstrução (RI)

Busca doprimeiro byte do

endereço etransferência

para dentro daparte de

endereço do RI,byte de menor

ordem

Busca dosegundo bytedo endereço etransferência

para dentro daparte de

endereço do RI,byte de maior

ordem

A parte deendereço do RI é

depositada nobarramento de

endereços

Acumuladorrecebe o conteúdo

da posição dememó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

Page 23: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

Page 24: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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)

Page 25: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

INTEL8085

DispositivoPeriférico

1

2

3

INTR

INTA

RST nn

600160026003

0038 C3 (JMP)

003A 80

Ex.: RST 7

INTR

(SP) 0260

1

3

0039 00

4

5

6

Pilha

Subrotina de Serviço deInterrupção

Programa sendo executado

8000 . . .

RET. . .

Endereço Dado

2

Page 26: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

26

Figura 17 – Mecanismo de Interrupção (Modo 2) no ZILOG Z80

ZILOGZ80

DispositivoPeriférico

1

2

___INT____INTA

400240034004

(SP) 0440

2

5

4

1

Pilha

Subrotina de Serviço deInterrupção

Programa sendo executado

8003

8005 608004 50

8006

6050 . . .

60XX RETI. . .

Tabela de Endereços deInterrupção

___INT

I 80Registrador da CPU

80 04

36

Page 27: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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.

Z80CPU

PIO DMA

8085CPU

CTC SIO

8274 8253

8259(PIC)

8257 8272

Mecanismo"Daisy Chain"

Prioridade Fixa

PrioridadeControlada

Barramentos

Barramentos

Page 28: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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.

Page 29: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

34

Driver Óptico

Dados

DRQ

DACK

HOLD

HOLDA

Page 30: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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ática e 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.

Page 31: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso_____

A Fide m

o de Microproce______________

igura 24 exibmemória utiliz

essadores _____________

Figura 22

F

be a tela do zados em um

_____________

- Circuito ex

Figura 23 - M

gerenciadorm sistema de

_____________

emplo da fun

Mapa de mem

r de Disposite microcomp

_____________

nção do deco

mória do micr

tivos do Winputador atual

_____________

odificador de

roprocessado

dows XP SP(2007) Pent

_____________

e endereço d

or do exemp

P2 com a pritium 4, 512 M

_____________

de memória

plo

imeira páginMB de RAM.

_____________

a dos ender

___

31

reços

Page 32: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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.

Page 33: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

Page 34: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso_____

A Fide E

o de Microproce______________

igura 27 exibE/S utilizados

essadores _____________

be a tela do s em um sist

_____________

Figura 26 -

gerenciadortema de micr

_____________

- Mapa de E/

r de Dispositrocomputado

_____________

/S do microp

tivos do Winor atual (200

_____________

processador d

dows XP SP7) Pentium 4

_____________

do exemplo

P2 com a pri4, 512 MB de

_____________

imeira págine RAM.

_____________

a dos ender

___

34

reços

Page 35: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

35

Figura 27 – Endereços de E/S em um sistema Pentium 4 da INTEL

Page 36: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

CSDSSSES

0000000000000000

IPSP

BH BL

DH DLCH CL

AH AL

BPSIDI

ALU (Unidade Lógica eAritmética)

Unidade de Controle

Status

Registrador de Instrução

123456

Unidade de Controle deBarramento

Unidade de Execução Unidade de Interface deBarramento

Fila de Código Objetode Instrução

0000

Page 37: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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ções relacionadas à 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

Page 38: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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.

Page 39: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

IPCS

Rotina de Serviçode Interrupção

003FFNúmero deInterrupção

x 4

IRET

1a. Instrução

Tabela deVetores deInterrupção

Page 40: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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

Page 41: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

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 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ção: Exatamente os mesmos registradores do 8086 Capacidade de Endereçamento: 24 bits de endereço 16.0 MBytes Operações com: byte, word, double word, quad word, BCD, ASCII, apontador e ponto flutuante; Relógio: 80286-4 ==> 4.0 Mhz 80286-6 ==> 6.0 Mhz 80286 ==> 8.0 Mhz 80286x ==> 12.0 Mhz e 16 Mhz Organização de Memória: a) física 2 x 8.0 MBytes; b) Endereçamento: 31 16 15 0

Seletor de Segmento Offset

O seletor de segmento (16 bits) especifica um índice dentro de uma tabela em memória residente cujo conteúdo é um endereço base de 24 bits. O endereço real de memória é obtido com a soma deste endereço base (24 bits) mais o offset (16 bits), totalizando 24 bits de endereço. c) Posições de 000000-0003FF (1024 bytes 256 possíveis vetores de interrupção) reservadas, como no 8086,

para operações com interrupção, no modo real; d) Posições de FFFFF0-FFFFFF reservadas para "reset", no modo real; Endereçamento de Entrada/Saída: - 256 dispositivos diretamente; - 64 Kbytes indiretamente

Page 42: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

42

Tamanho dos Registradores Internos: 16 bits Tamanho do Barramento de Dados: 16 bits Coprocessador matemático: 80287 Capacidade de Processamento de Instruções: aprox. 1.5 MIPS

(80286 a 8 Mhz)

II.2.2 - Diferenças no Conjunto de Instruções O conjunto de instruções do 80286 é dividido em sete categorias: transferência de dados, aritméticas, deslocamento/lógicas, manipulação de strings, controle de transferência, de alto nível e de controle de processador. Entre as instruções adicionais podem ser citadas as seguintes: PUSHA salva o conteúdo da totalidade dos registradores; POPA restaura o conteúdo da totalidade dos registradores; INS entra string de caracteres; OUTS sai string de caracteres; ENTER chama procedure; LEAVE libera procedure; e mais 15 instruções que somente podem ser executadas no modo protegido;

II.2.3 - Implicações no Desempenho de um Microcomputador Sistemas de microcomputador baseados no 80286 foram os primeiros sistemas com capacidade para rodar sistemas operacionais de rede multiusuário e/ou multitarefa, na época, por exemplo, o Netware 2.x da Novell, o qual era escrito em C e Assembly 80286. Tais sistemas, paulatinamente, passaram à função de computador pessoal (“desktop”) e não mais a de servidor.

II.3 - Os 80386

II.3.1 - Diferenças de Arquitetura e Características O microprocessador 80386 é compatível em software com o 8086. A INTEL optou por manter esta compatibilidade para aproveitar toda a enorme base de software escrita para os 8086 e 80286. Sendo assim, o 386 executa a maioria dos programas escritos para o 8086 e 80286, simplesmente por que este emula estas CPUs, não fazendo uso de todas as suas capacidades. Primeiro microprocessador de 32 bits da INTEL, o 80386 trouxe um novo modo de operação, em adição aos dois modos do 80286 (Real e Protegido), o modo Virtual. O microprocessador abordado nos próximos parágrafos é o 80386 mais potente da família, que na literatura é chamado de 80386DX, ou 80386 "Full" ou ainda, como a INTEL o denominou, simplesmente, 80386. Da mesma forma, a título de ilustração, a figura 31 exibe o substrato do 80386. A figura 32 mostra as fotos das pastilhas Intel 386DX-33 (33 MHz) e uma versão mais enxuta, o 386SX-16 (16 MHz).

Page 43: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

43

Figura 31 - Substrato do Intel 386

Figura 32 - Pastilhas Intel 386DX-33 e Intel 386SX-16 A figura 33 mostra os registradores do 80386.

Figura 33 – Registradores do 80386

AH CS

SIDIBPSP

ALBH BLCH CLDH DL

031 715

SSDSESFSGS

CódigoPilha

Dados

IPFLAGS

EIPEFlags

015

Registradores Gerais deEndereço e Dados

Apontador de Instruçãoe Registrador de Flags

Registradores Seletoresde Segmento

EAXEBXECXEDXESIEDIEBPESP

Page 44: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

44

No MODO REAL, o 80386 é compatível em software (a nível de código objeto) com o 8086/8088, inclusive com a mesma limitação de memória (1.0 MBytes). Sendo a CPU mais evoluída em hardware (p.e. registradores de 32 bits) e permitindo a utilização de osciladores a cristal de freqüências ainda mais altas que os 80286, sem dúvida, máquinas com esta CPU possuem desempenho bem maior que os 286. Assim, neste modo, o mecanismo de endereçamento, o tamanho de memória e a manipulação de interrupções são todos idênticos ao modo real do 80286. As instruções 80386 também podem ser utilizadas neste modo. No MODO PROTEGIDO, o 80386, se comporta exatamente como no modo de mesmo nome do 80286, sendo que endereçará 4.0 Gigabytes de memória real (ao invés dos 16.0 MBytes do 80286) e 64 Terabytes de memória virtual. Neste modo, o mecanismo de endereçamento também é diferente daquele utilizado no 80286. Enquanto no 80286 o endereço base é de 24 bits (aos quais são adicionados 16 bits de offset), no 80386 este endereço é de 32 bits (aos quais são adicionados 16 ou 32 bits de offset). Quando operando no modo protegido, o 80386 pode fazer uso de uma técnica chamada de SEGMENTAÇÃO. Esta técnica organiza a memória em módulos lógicos chamados segmentos. Este modo de gerenciamento de memória provém a base para a proteção de segmentos de memória. Por exemplo, uma tabela do sistema operacional pode residir em um segmento e, como tal, deve ser protegido da interferência de usuários não privilegiados, os quais poderiam "derrubar" o sistema. Outra técnica útil de gerenciamento de memória para sistemas operacionais multitarefa em memória virtual é a técnica chamada de PAGINAÇÃO. Independentemente da segmentação, a qual modulariza programas e dados em segmentos de comprimento variável, a paginação divide programas em páginas uniformes múltiplas. Dessa forma, somente um pequeno número de páginas de cada tarefa precisa estar na memória em um dado instante. A paginação é útil para o gerenciamento da memória física do sistema. O 80386 possui 4 níveis de proteção otimizados para suportar as necessidades de sistemas operacionais multitarefa, os quais devem proteger e isolar programas de usuários, uns dos outros, e programas do próprio sistema operacional, dos usuários. Tais níveis de proteção se constituem, em outras palavras, em um sistema de privilégio hierárquico de 4 níveis: PL=0 (mais privilegiado) - Núcleo do sistema operacional; PL=1 - Serviços do Sistema Operacional; PL=2 - Extensões do Sistema Operacional e PL=3 - Aplicações. Quando operando no MODO VIRTUAL, o 80386 permite a execução simultânea de aplicações 8086, sistemas operacionais 8086 e suas aplicações, aplicações 80286 e, ainda, aplicações 80386. Assim, em um computador 386 multiusuário, uma pessoa pode estar rodando uma planilha DOS, enquanto outra usa o DOS e uma terceira roda múltiplos utilitários e aplicativos UNIX. A MEMÓRIA CACHE é um bloco de memória RAM (do tipo estática) que, tendo tempo de acesso menor que a memória principal (do tipo dinâmica), pode ser lido muito mais rapidamente. Assim, antes de se executar um programa que está na memória principal, a região contendo o programa é transferida para a memória cache e só então o programa é executado. Isto reduz drasticamente o tempo de acesso à RAM e aumenta a velocidade de execução dos programas. No 80386, o uso de memória cache era opcional, isto é, apenas algumas máquinas (dependendo do fabricante) incluíam uma pastilha controladora de memória cache, o 82385 (gerenciavam até 256 Kbytes), e sua inclusão implicava em um aumento da placa mãe. Esta pastilha só era encontrada nas últimas versões micros 386. Características Principais: Capacidade de Endereçamento: 32 bits de endereço 4.0 Gigabytes Operações com: bit, campos de bit, string de bits, byte, word, double word, quad word, BCD, ASCII, apontador e

ponto flutuante; Relógio: 80386-12 12.5 Mhz 80386-16 16.0 Mhz

Page 45: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

45

80386x 20.0 Mhz 80386x 33.0 Mhz Am386-40 40.0 Mhz Organização de Memória: a) Física: 2 x 2.0 Gigabytes;

4 x 1.0 Gigawords; 8 x 0.5 Gigalongwords b) Endereçamento: 3 espaços de endereço ==> lógico, linear e físico Endereçamento Lógico (ou Virtual): Consiste de um segmento seletor (14 bits) e de um offset (soma de componentes de endereçamento: BASE, INDEX, DISPLACEMENT => 32 bits), totalizando 46 bits de endereçamento, consequentemente, um espaço de 64 Terabytes; Endereçamento Linear: A unidade de segmentação translaciona o endereço lógico para um endereço linear de 32 bits, implicando em 4.0 Gigabytes; Endereçamento Físico: Se a unidade de paginação não está habilitada, o endereço linear de 32 bits corresponde a um endereço físico, também de 4.0 Gigabytes. c) Posições de 00000000-000003FF (1024 bytes 256 possíveis vetores de interrupção) reservadas, como no

8086 e 80286, para operações com interrupção, no modo real; d) Posições de FFFFFFF0-FFFFFFFF reservadas para "reset", no modo real; Endereçamento de Entrada/Saída: - 256 dispositivos diretamente, como nos 8086 e 80286; - 64 Kbytes indiretamente Tamanho dos Registradores Internos: 32 bits Tamanho do Barramento de Dados: 32 bits Coprocessador matemático: 80387 Capacidade de Processamento de Instruções: aprox. 4.0 a 10.0 MIPS (80386 32 bits em 16, 20 e 25 Mhz)

II.3.2 - Diferenças no Conjunto de Instruções O conjunto de instruções do 80386 é dividido em nove categorias: transferência de dados, aritméticas, deslocamento/lógicas, manipulação de strings, controle de transferência, suporte de linguagem de alto nível, suporte de sistema operacional e de controle de processador. As diferenças no conjunto de instruções estão intimamente ligadas às instruções de suporte de linguagem de alto nível e de sistema operacional. Uma das fraquezas do projeto 286 foi a sua incapacidade de emular o 8086, mantendo a proteção e a memória virtual. Com o 286, só se poderia emular o 8086 se este estivesse no modo real, quando a proteção está completamente desabilitada. O projeto do 386 corrigiu este problema e permitiu então que várias tarefas 8086 sejam emuladas ao mesmo tempo no seu modo VIRTUAL. A fim de fornecer compatibilidade em software com os 80286, o 80386 podia executar instruções de 16 bits no modo real e no modo protegido. Prevendo a expansão para o 386, a INTEL, especificou para o 286 que os bits não usados por um descritor de segmento deveriam ser posicionados em "0". O 386 interpreta isso como um identificador de segmento 286. Assim, o processador examina o conteúdo de um bit D do descritor de segmento. Se é "0", então

Page 46: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

46

todos os comprimentos de operando e endereços efetivos são assumidos como de 16 bits (código 286). Se é 1, então o comprimento default é de 32 bits (código 386). Independentemente da precisão default, o 80386 pode executar instruções de 16 ou 32 bits, através de um prefixo automaticamente adicionado pelos montadores Assembly da INTEL. Fonte: "80386 High Performance Microprocessor with Integrated Memory Management", INTEL Corporation - Advance Information, october 1985; Além das diferenças anteriormente mencionadas, pode-se ainda citar algumas outras: 1. O tempo de execução das instruções é diferente em vários casos. Na maior parte, o 386 é mais rápido que o 286; 2. Existem vários códigos indefinidos no 286 que, se executados, provocariam uma falha de código (INT 6). No 386

a instrução será executada; 3. O prefixo LOCK (impede que outros dispositivos acessem a memória do processador) para o 8086 é irrestrito,

mas para o 386 é proibido em várias instruções. O problema era que o uso indiscriminado do LOCK resultava em que dispositivos eram inibidos por períodos inaceitavelmente longos. No ambiente não protegido do 8086, cabia às aplicações não deixar que isto ocorresse. No ambiente protegido do 386, apenas algumas instruções podem ser precedidas deste prefixo, àquelas que não interferem com a velocidade de execução de tarefas.

II.3.3 - Versões 80386, 80386SX e 80386SL O 80386SX podia ser interfaceado a circuitos periféricos de 16 bits, mas roda os softwares de 32 bits escritos para o 386, pois sua arquitetura interna é de 32 bits. O seu barramento de dados é de 16 bits (a metade dos 32 bits do 80386). Endereça até 16 MBytes de memória real (bem menos que os 4 Gigabytes do 80386). Era comercializado pela INTEL com relógio máximo de 33 Mhz. Sua capacidade de execução de instruções varia entre 3 e 4 MIPS (menos da metade dos 11,4 MIPS do 80386 a 33 Mhz). O coprocessador utilizado com o 386SX era o 80387SX. A Figura 34 mostra a foto do Intel 386-SX. O 80386SL era um microprocessador também derivado do 80386 e foi projetado especialmente para uso em computadores portáteis ("Lap Tops"). Esta pastilha foi o resultado da integração de três circuitos: a CPU 386SL, um controlador de barramento e um controlador de vídeo gráfico, diminuindo assim, o tamanho e o peso do equipamento, além de proporcionar uma característica particular de economia de energia. A memória real endereçável do 386SL era de 32 MBytes (16 MBytes a mais que o 386SX), sua freqüência de operação era de 20 Mhz e o barramento de dados de 16 bits (como no 386SX). A unidade gerenciadora de energia era capaz de baixar a zero a atividade na CPU, enquanto se lê a tela do micro ou no intervalo da digitação. A aplicabilidade do 386SL em "lap Tops" foi indiscutível.

Figura 34 - Pastilha AMD 386-SX

II.3.4 - Implicações no Desempenho de um Microcomputador

Page 47: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

47

Com base nas explicações fornecidas nos itens anteriores pode-se dizer o seguinte: A exemplo do que ocorreu com o 80286 em relação ao 8086, sistemas de microcomputador baseados no 80386, paulatinamente, passaram de servidores a desktops. Uma versão do Netware da Novell, a versão 3.12, que chegou a deter 90% do mercado mundial de sistemas operacionais de rede para servidores de arquivo, usava toda a capacidade deste microprocessador, uma vez que foi escrita em C e assembly 386. O 80386 dispunha de um modo de execução muito melhor adaptado ao funcionamento multitarefa do que o 80286. Na época, sistemas baseados neste microprocessador eram os únicos capazes de suportar de uma só vez os sistemas operacionais DOS, OS/2 e UNIX.

II.4 - Os i486 A INTEL, segundo decisão da justiça dos EUA, não pode registrar números, 386 e 486 p.e., como suas marcas. Optou então, por acrescentar um "i" (i minúsculo) na frente dos números. Assim, 486, 80486 ou i486 eram nomes encontrados na literatura para designar o mesmo processador. Inicialmente será abordado o i486 e em seguida o i486SX. A Figura 35 exibe a pastilha i486DX-50 (de 50 MHz de clock).

Figura 35 - Pastilha Intel 486DX-50

II.4.1 - Diferenças de Arquitetura e Características A arquitetura interna do i486 foi otimizada em relação ao 80386 ou i386. Isto possibilitou a introdução na pastilha de algo acima de um milhão de transistores (quatro vezes mais que o i386 possui). Os fabricantes de computadores foram diretamente beneficiados por esta densidade de integração, uma vez que a placa mãe sofreu uma redução significativa de tamanho e o processo de projeto e montagem foi simplificado. Também o microcódigo de instruções foi otimizado, de forma a manter o máximo possível as operações no interior da pastilha e, conseqüentemente, eram necessários menos ciclos de relógio para executar as mesmas instruções que o i386 já executava. O 486 usa ambas as bordas do sinal de Relógio para a CPU, enquanto os 286 e 386 usavam apenas uma borda. Pode-se dizer que, a grosso modo, o ganho de desempenho veio, essencialmente, da memória cache e do co-processador (essencial em ambientes de CAD/CAM). Entretanto, em ambientes de microinformática, considerados mais simples, que usam planilhas e bancos de dados, o ganho de desempenho com o uso do co-processador foi praticamente nulo. O i486 incorpora o i386 com as suas instruções, memória cache de 8 Kbytes de RAM estática (mais rápida que a dinâmica) e gerenciador próprio (80385) e co-processador aritmético (80387). Foram adicionadas ao conjunto de instruções do i386 cinco instruções: três para gerenciamento da memória cache e duas, incluídas a pedido da Microsoft, para tratamento de tarefas concorrentes pelo OS/2. Como no i386, a pastilha endereça diretamente até 4.0 Gigabytes e indiretamente até 64 Terabytes.

Page 48: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

48

II.4.2 - Diferenças na Capacidade de Processamento O i486 a 25 Mhz possui uma capacidade de processamento de instruções de aproximadamente 20.0 MIPs (duas vezes mais rápido que um i386 nos mesmos 25 Mhz) e é totalmente compatível com este último. Como mencionado, a capacidade de processamento do 486 foi amplamente influenciada pela memória cache. Isto é detalhado a seguir. Há muitas discussões sobre o melhor tamanho da memória cache, mesmo entre os fabricantes de microcomputadores, por isso mesmo são oferecidas ao usuário as mais diferentes opções. Uma vez que esta é a responsável direta pelo aumento de desempenho da máquina, uma escolha acertada poderia beneficiar grandemente o usuário. O que se constata na literatura especializada é que o melhor tamanho para a memória cache é o tamanho do maior programa que vai ser executado naquela máquina. Entretanto pode-se tornar excessivamente caro colocar o máximo possível de memória cache, não compensando os benefícios correspondentes. O i486 permitiu memória cache externa, além dos 8 Kbytes internos. Assim, algumas máquinas eram oferecidas com 256 Kbytes externos. Considerando-se o desempenho relativo a um XT 4.77 Mhz, podem-se fornecer alguns dados de desempenho, como discriminados abaixo: i486, 33 Mhz, cache externo de 64 Kbytes Cache interno e externo desabilitado 6,5 vezes mais rápido; Somente cache externo habilitado 26 vezes mais rápido; Somente cache interno habilitado 38 vezes mais rápido; Caches interno e externo habilitados 72 vezes mais rápido; Conclui-se destes dados que o cache interno é extremamente importante, mesmo sendo muito menor que o externo. Isto se deve a sua lógica de construção e, obviamente, ao fato de estar dentro da própria pastilha de CPU. Quando se carrega um programa na memória cache e este é executado, considera-se que isto é um "acerto" e cada vez que se deve movimentar um bloco da memória principal para a RAM de cache, considera-se que isto é um "erro". Existe, portanto, uma taxa de acertos ("Hit Rate") relacionada com o tamanho da memória cache. Um cache externo maior, evidentemente, possibilitará uma melhor taxa de acertos, uma vez que poderá conter mais programas. Assim, a velocidade do cache interno aliada a uma melhor taxa de acertos provida pelo cache externo, possibilitará um melhor desempenho da máquina como um todo. Sobre o i486SX O i486Sx foi lançado pela INTEL para fazer frente a concorrência acirrada do microprocessador Am386-40 de 40 Mhz da Advanced Micro Devices (AMD), mais veloz que o seu microprocessador mais rápido, o i386 33 Mhz. Deve-se entender o "SX" com uma versão desprovida de algo que sua versão completa, ou "full", ou ainda "DX", continha. O i486SX possui um barramento de dados de 32 bits, exatamente como o i486. Isto não aconteceu com o i386SX, o qual possui 16 bits para dados, 16 a menos que i386. Basicamente, o i486SX opera a uma taxa de relógio de 20 Mhz e possui uma unidade de ponto flutuante interna (como o i486), mas esta encontra-se desativada. Estes dois fatores levaram a uma diminuição no custo da pastilha de 60% em relação ao i486. O i486SX, mesmo a 20 Mhz segundo a INTEL, era 45% mais rápido que o i386 (33 Mhz), com um custo apenas 17 % superior. Já o i486 25 Mhz era 20% mais rápido que o i486SX (20 Mhz) e custava 270% mais caro (custo em março de 1992). Um quadro exibido pela revista Micro Sistemas em março de 1992 mostrava o seguinte:

CPU (clock) Custo (US$) MIPs Custo do MIP (US$)

i386 (33) 214 11,4 18,77 i486SX(20) 250 16,5 15,15 i486 (25) 671 20,0 33,55

Page 49: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

49

Sobre o i486 50 Mhz (i486/50 e i486DX2/50) Em junho de 1991 a INTEL lançou o i486 50 Mhz e somente em junho de 1992 a revista PC Magazine americana publicou testes de desempenho sobre as primeiras máquinas fabricadas com esta CPU. Antes desta CPU, a líder em desempenho da INTEL era o i486 33 Mhz. Segundo a citada revista, o i486/50 é 30% mais rápido que i486/33 a um custo (naquele ano) 10 a 20% maior. Uma observação importante é que máquinas equipadas com esta CPU definitivamente não eram baratas, mas a relação custo beneficio em relação ao i486/33 era atraente. Isto significou, em outras palavras, que se alguém estivesse disposto a pagar o preço de uma máquina 486/33, era melhor que o fizesse por uma i486/50, em função da melhor relação custo/benefício. Em março de 1992 a INTEL anunciou as chamadas pastilhas "Speed-Doubler". Tais pastilhas introduziram opções de preço e desempenho nos i486. Uma dessas opções, é o i486DX2/50 que opera internamente a 50 Mhz, mas comunica-se com os barramentos a 25 Mhz. Isto permite o projeto de sistemas baseados, externamente, no i486 25 Mhz, facilitando mais uma vez o dia-a-dia dos fabricantes de micro e minicomputadores. A segunda opção é a pastilha "full" i486DX/50. Esta pastilha é 30% mais rápida que a anterior. Em linhas gerais, pode-se dizer que para máquinas necessitando de uma atividade de Entrada/Saída intensa, como servidores de arquivos p.e., o i486DX2/50 não seria a primeira escolha. Já para máquinas "stand-alone" em ambientes de CAD/CAM esta seria uma boa escolha. O i486DX/50 contém basicamente a mesma lógica de processador que o i486DX/33, com co-processador, 8 Kbytes de cache e 1,2 milhão de transistores, mas houve alguns refinamentos técnicos na parte de 50 Mhz, a qual usa um projeto de pastilha de três camadas e não de duas camadas como o i486DX/33. Sobre os i486DX2/66 e i486DX4/100 Em novembro de 1992, foram disponibilizadas comercialmente máquinas sob controle da pastilha i486DX2/66, ou seja, operando internamente a 66 Mhz e externamente a 33 Mhz. Testes preliminares revelaram que esta pastilha é 30% mais rápida que o i486DX/50. O i486DX4/100, possui um clock interno de 99 MHz, operando externamente a 33 MHz. Esta pastilha entrou e saiu rapidamente do mercado, dando lugar aos microprocessadores da classe Pentium. Algumas Observações: Os problemas relacionados a estes microprocessadores são a quantidade de calor desprendida, que precisa ser dissipada, e a emissão de sinais de alta freqüência, podendo também sofrer interferências do meio ambiente, como é o caso das televisões que emitem sinais na faixa de 54 a 890 Mhz. A partir dos i486, os fabricantes iniciaram a utilização de ventiladores acoplados aos dissipadores, para reduzir os efeitos da alta temperatura. Também alguns gabinetes são comercializados com algum tipo de blindagem interna de modo a minimizar a influência das frequências externas. Com a crescente demanda do mercado por redes de computadores e, conseqüentemente, por equipamentos de gerenciamento e interconexão de tais redes, observou-se que as CPUs de pontes (“Bridges”), roteadores (Routers”), ponte-roteadores (“Brouters”) e passarelas (“Gateways”) freqüentemente, são CPUs INTEL do tipo 286 e 386. Neste mercado, modelos mais sofisticados desses equipamentos fazem uso de CPUs MOTOROLA e alguns até mesmo de processadores RISC.

Page 50: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

50

II.5 - Os Pentium, Pentium MMX e Pentium PRO

II.5.1 - Diferenças de Arquitetura e Características Antes de iniciar as explicações sobre os Pentium MMX e PRO, é necessário mencionar os primeiros microprocessadores da classe Pentium, os simplesmente Pentium (núcleo P54C). A Figura 36 mostra uma foto do processador Pentium e a figura 37 mostra o diagrama em blocos simplificado de sua arquitetura. Os Pentium Essencialmente, o Pentium consiste de dois processadores i486 em paralelo. Logo, mais instruções são processadas ao mesmo tempo, tipicamente, o dobro. Pode-se destacar algumas características importantes.

Figura 36 – Fotos dos Pentium P54C ou 80502

Figura 37 – Diagrama em Blocos do Pentium Pipelines O microprocessador Pentium é construído em torno de 2 pipelines (ou Pipes) inteiros (U e V), paralelos, de propósito gerais e 1 unidade com pipeline, de ponto flutuante. O pipe U é chamado de Principal e o pipe V é

Page 51: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

51

chamado de Secundário. O Pipe U possui algumas limitações sobre instruções que executa. Os dois Pipes tem cinco estágios cada um, como mostrado na Figura 38. O Pentium pode buscar até 2 instruções por ciclo. Durante a execução de uma instrução, as próximas duas instruções são testadas. Se possível, a primeira é executada no Pipe U e a Segunda no Pipe V. Se não é possível, uma instrução é passada ao Pipe U e nenhuma instrução é passada ao Pipe V. O comportamento funcional das instruções nos dois Pipes é exatamente o mesmo de instruções executadas seqüencialmente. Caches O Pentium possui um subsistema de cache interno com 2 conjuntos (um para instrução e outro para dados) de caches associativos de 8 Kbytes. Como o cache de dados é disposto em 8 bancos, este pode ser acessado simultaneamente por ambos os Pipes, desde que as referências sejam para bancos diferentes. Prebuscador de Instruções (“Instruction Prefetcher”) O, aqui chamado, Prebuscador de Instruções possui 4 buffers de 32 Bytes. No estágio PF, dois buffers de prebusca operam em conjunto com o buffer chamado BTB (“Branch Target Buffer “). Somente 1 dos buffers de prebusca requisita prebuscas em um dado tempo. Se uma instrução de salto é buscada, o BTB prevê se o salto ocorrerá ou não. Se o salto não vai ser executado tudo continua linearmente. Se é para ser executado, o outro buffer de prebusca é habilitado e inicia a prebusca como se o salto fosse executado. Se finalmente o salto não for realizado, os pipelines de instrução são limpos e a atividade de prebusca recomeça. Como o cache de instruções e dados são separados, prebuscas de instruções não conflitam com referências a dados para acesso ao cache. O Pentium emprega um esquema de previsão dinâmica de saltos (“Dynamic Branch Prediction”). Se a previsão é correta, não há penalidade na execução de uma instrução de salto. Se não é correta, as penalidades são as seguintes:

1. 3 ciclos, se o JUMP condicional foi no Pipe U; 2. 4 ciclos, se o JUMP condicional foi no Pipe V e 3. 3 ciclos em qualquer dos Pipes para CALLs e instruções de JUMP incondicional.

Figura 38 – Pipelines de Inteiros do Pentium

Page 52: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

52

Write Buffers O Pentium possui 2 buffers de escrita, um para cada Pipe (U ou V). A finalidade desses buffers é aumentar o desempenho de escritas consecutivas na memória. Esses buffers de 64 bits são carregados simultaneamente em um período de relógio. Escritas nesses buffers são enviadas para o barramento externo do processador. Tais operações de escrita acontecem sempre na ordem em que ocorrem. Não são possíveis leituras intermediárias. Unidade de Ponto Flutuante A Unidade de Ponto Flutuante do Pentium acrescenta um Pipeline de 3 estágios aos Pipes já mencionados (U e V). As instruções de ponto flutuante seguem normalmente pelo pipeline até o estágio E (Execução). Após este estágio, as instruções despendem pelo menos um clock para cada um dos 3 estágios: X1, X2 e WF. A maioria das instruções de ponto flutuante tem um período de latência superior a um período de relógio. Entretanto, tal latência é escondida pela existência dos 3 estágios. Além disso, instruções com inteiros (e não de ponto flutuante) são tratadas durante este período de latência. A figura 39 exibe a integração dos Pipelines de Inteiros e Ponto Flutuante. Os 3 primeiros estágios do Pipe de Inteiros são desacoplados do Pipe de Ponto Flutuante. Os dois últimos são integrados.

Figura 39 – Integração dos Pipelines de Inteiros e de Ponto Flutuante do Pentium

Os Pentium MMX A figura 40 mostra uma foto do Pentium MMX. Os microprocessadores Pentium com tecnologia chamada pela INTEL de MMX (algo como “Multimedia Extensions”) trouxeram quatro enriquecimentos básicos de projeto arquitetônico: 1. Arquitetura SIMD; 2. 4 novos tipos de dados. 3. 8 registradores MMX de 64 bits e 4. 57 novas instruções;

Prefetch(PF)

Estágio deDecodifi-cação 1(DS1)

Estágio deDecodifi-cação 2(DS2)

Execução Writeback

X1 X2 WF

Estágios do Pipe de Ponto Flutuante desacoplados

Estágios Integrados dos Pipes

Pipeline de Inteiros somente

Page 53: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

53

Figura 40 – Foto do Pentium MMX – P55C ou 80503 Como a própria INTEL propagandeia, esta mudança na arquitetura do processador foi a mais importante desde o 80386, o qual estendeu a arquitetura de 16 para 32 bits e introduziu três modos de funcionamento (real, protegido e virtual). Como de fato se verificaram, tais mudanças foram incorporadas a todas as gerações de processadores subseqüentes da empresa. Segundo a INTEL, a definição desta tecnologia foi resultado de trabalho conjunto entre arquitetos de microprocessadores e desenvolvedores de software. Dentre os softwares analisados, incluíram-se Gráficos, Vídeo MPEG, Síntese de música, compressão de voz, reconhecimento de voz, processamento de imagens, jogos e vídeo-conferência. O núcleo deste processador foi chamado de P55C. Esta análise mostrou muitas características comuns entre as diversas categorias de software. Os atributos chave para estas aplicações foram:

• Tipos de dados pequenos e inteiros (por exemplo: pixel gráfico de 8 bits, amostras de áudio de 16 bits); • Loops pequenos altamente repetitivos; • Multiplicações e acumulações freqüentes; • Algoritmos de computação intensiva; • Operações altamente paralelas.

Assim, foi projetado um grupo de instruções novo, com instruções inteiras de propósito gerais, visando a otimização do processamento de tais aplicações. Arquitetura SIMD (“Single Instruction Multiple Data”) Técnicas SIMD foram utilizadas de forma a permitir que múltiplas peças de informação pudessem ser processadas com uma única instrução, provendo um certo paralelismo, reduzindo loops de computação intensiva e, conseqüentemente, aumentando o desempenho de aplicações multimídia e de comunicações. Novos Tipos de Dados O tipo de dado principal da arquitetura MMX é um pacote inteiro de ponto fixo, onde múltiplas palavras inteiras são agrupadas em uma única quantidade de 64 bits. Estes pacotes são manipulados por registradores MMX de 64 bits. Como exemplo de benefício pode-se citar o pixel, geralmente representado em inteiros de 8 bits, ou bytes. 8 desses pixels podem ser “empacotados” em uma única quantidade de 64 bits e movidos para um registrador MMX. Uma instrução MMX ao ser executada, busca 8 pixels de uma só vez, faz as operações lógicas e aritméticas sobre os oito elementos e escreve o resultado em um outro registrador MMX. A figura 41 exibe os novos tipos de dados do Pentium MMX.

Page 54: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

54

Figura 41 – Novos Tipos de Dados do Pentium MMX Registradores MMX A figura 42 exibe o layout dos oito novos registradores MMX

Figura 42 – Registradores MMX Novas Instruções As instruções MMX cobrem vários grupos funcionais, incluindo:

1. Operações aritméticas básicas; 2. Operações de comparação; 3. Instruções de conversão entre novos tipos de dados (“packets”) e de pequenos para grandes tipos de

dados; 4. Operações lógicas tais como: AND, OR, NOT e XOR;

Packet Byte (8 elementos de 8 bits)

Packet Word (4 elementos de 16 bits)

Packet Doubleword (2 elementos de 32 bits)

Quadword (1 elemento de 64 bits)

063

63 0

31 7

31

63 031

63 0

063

MM0

MM7

CampoTAG

Page 55: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

55

5. Operações de Shift; 6. Instruções MOV para dados de 32 ou 64 bits;

As instruções lógicas e aritméticas são projetadas para suportar diferentes tipos de dados. Tais instruções possuem um código de operação para cada tipo de dado suportado. Como resultado, as novas instruções são implementadas com 57 códigos de operação. Um aspecto importante é que instruções MMX não são privilegiadas, podendo ser usadas em aplicações, codificadores/decodificadores, algoritmos e drivers.

Categoria Mnemônico Nr. De Códigos de Operação Diferentes

Descrição

Aritmética

PADD [B,W,D] 3 Add with wrap-around on [byte, word, doubleword]

PADDS [B,W] 2 Add signed with saturation on [byte, word]

PADDUS [B,W] 2 Add unsigned with saturation on [byte, word]

PSUB [B,W,D] 3 Subtract with wrap-around on [byte, word, doubleword]

PSUBS [B,W] 2 Subtract signed with saturation on [byte, word]

PSUBUS [B,W] 2 Subtract unsigned with saturation on [byte, word]

PMULHW 1 Packed multiply high on words PMULLW 1 Packed multiply low on words PMADDWD 1 Packed multiply on words and add

resulting pairs

Comparação

PCMPEQ [B,W,D]

3 Packed compare for equality [byte, word, doubleword]

PCMPGT [B,W,D]

3 Packed compare greater than [byte, word, doubleword]

Conversão

PACKUSWB 1 Pack words into bytes (unsigned with saturation)

PACKSS [WB,DW]

2 Pack [words into bytes, doublewords into words] (signed with saturation)

PUNPCKH [BW,WD,DQ]

3 Unpack (interleave) high-order [bytes, words, doublewords] from MMXTM register

PUNPCKL [BW,WD,DQ]

3 Unpack (interleave) low-order [bytes, words, doublewords] from MMX register

Lógicas

PAND 1 Bitwise AND PANDN 1 Bitwise AND NOT POR 1 Bitwise OR PXOR 1 Bitwise XOR

Shift

PSLL [W,D,Q] 6 Packed shift left logical [word, doubleword, quadword] by amount specified in MMX register or by immediate value

PSRL [W,D,Q] 6 Packed shift right logical [word, doubleword, quadword] by amount specified in MMX register or by immediate value

PSRA [W,D] 6 Packed shift right arithmetic [word, doubleword] by amount specified in MMX register or by immediate value

Transferência de Dados

MOV [D,Q] 4 Move [doubleword, quadword] to MMX register or from MMX register

Gerenciamen- EMMS 1 Empty MMX state

Page 56: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

56

to de Estado MMX e Ponto

Flutuante Pipeline Superescalar Os Pentium MMX adicionam mais estágios ao pipeline. A integração do Pipe MMX com o Pipe de inteiros é muito similar a do Pipe de Ponto Flutuante. A Figura 43 mostra esta estrutura de pipeline. Também foi adicionado um estágio de pipeline inteiro. Os bytes de instrução são prebuscados do cache de código no estágio de prebusca PF e passados ao estágio de busca F. Quaisquer prefixos são decodificados no estágio F.

Figura 43 – Estrutura Pipeline MMX O estágio F é desacoplado da decodificação de instruções por meio de um buffer FIFO (“First In, First Out”), o qual está situado entre os estágios F e D1 (“Decode 1”). Esta FIFO mantém até 4 instruções. A cada período de relógio, 2 instruções são colocadas nesta FIFO. Pares de instrução são colocados para fora de F e dentro de D1. Uma vez que a taxa média de execução de instruções é menos que duas por clock, a FIFO está normalmente cheia. Quando a FIFO está cheia, esta deve “bufferizar” qualquer “freio” que pode ocorrer durante a busca de instrução. Esta FIFO previne, o estágio de Execução do pipe, de um “freio” na execução de instruções. Exemplos de Instruções MMX Para ilustração, o tipo de dado será uma palavra de 16 bits (word), contudo a maioria das operações pode ser realizada para 8 e 32 bits.

MR/W Mex WM/M2 M3 WMul

PF F DS1 DS2 E WB

E1 E2

E1 E2 E3

Estágios do Pipe de MMX desacoplados

Estágios Integrados dos Pipes

Pipeline de Inteiros somente

Page 57: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

57

A figura 44 mostra uma operação de adição (PADD[W] - “Add with wrap-around on [word]”). São realizadas 4 adições de 8 elementos de 16 bits, cada uma independente da outra e em paralelo. Neste caso, o resultado mais à direta excede o valor máximo representável em 16 bits e o 17º bit é perdido.

Figura 44 – Instrução PADD[W]

A figura 45 mostra uma outra operação de adição (PADDUS[W] - “Add unsigned with saturation on [word]”). Neste caso, uma saturação ocorre. Saturação significa que se a adição resulta em “overflow” ou a subtração em “underflow”, o resultado é alterado para o maior ou para o menor valor representável, respectivamente. Para uma operação sem sinal, com uma palavra de 16 bits, o maior e o menor valor são: FFFFh e 0000h. Isto é importante para cálculos de pixels, onde a perda do 17º bit poderia causar um pixel preto logo após um pixel branco em um gráfico 3D.

Figura 45 – Instrução PADDUS[W]

Os novos games 3D manipulam objetos 3D. Estas computações, tipicamente, são baseadas em matrizes 4 x 4, as quais são multiplicadas por 4 vetores várias vezes. O vetor possui a informação de X, Y, Z e a correção de perspectiva para cada pixel. A matriz 4 x 4 é usada para girar, escalonar, translacionar e atualizar a informação de correção da perspectiva para cada pixel. Esta matriz é aplicada a muitos vetores. A figura 46 mostra esses cálculos e o que faz a instrução PMADD.

a3 a2 a1 FFFF

b3 b2 b1 8000

a3+b3 a2+b2 a1+b1 7FFF

+ + + +

a3 a2 a1 FFFF

b3 b2 b1 8000

a3+b3 a2+b2 a1+b1 FFFF

+ + + +

Page 58: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

58

Figura 46 – Instrução PMADD

Os Pentium PRO Diferentemente dos 5 estágios do Pentium. O Pentium PRO possui um pipeline de 12 estágios, desacoplado. Isto lhe confere um desempenho 33% superior ao Pentium comum. Sua microarquitetura superescalar torna possível a execução de 2 instruções por clock. A figura 47 detalha este pipeline. O Pipeline do Processador Pentium PRO possui 3 unidades que se comunicam através de um Pool de Instruções: A Unidade de Busca/Decodificação (ou “Front-End”), a Unidade de Despacho/Execução (ou “Core”) e a Unidade de Retiro (ou “Retire”). A figura 48 exibe a ligação entre estas unidades.

Figura 47 – Pipeline do Pentium PRO

=

a0 a1 a2 a3

b0 b1 b2 b3

c0 c1 c2 c3

d0 d1 d2 d3

x'

y'

z'

w'

x

y

z

1

x = a0.x + a1.y + a2.z + a3

TranslaçãoGiro e Escala

Perspectiva

BTB0

BTB1 IFU0 IFU1 IFU2 ID0 ID1 RAT ROB

Rd RS

Port2

Port0 Port

1

ROBWb RRF

Port3

Port4

Page 59: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

59

Figura 48 – As 3 unidades do Pentium PRO A Unidade de Busca/Decodificação possue como entrada o conjunto de instruções de programa de usuário armazenado no cache de instruções L1 (interno). Tal unidade decodifica este conjunto em uma série de microperações que representam o fluxo de dados daquele conjunto. A Unidade de Despacho/Execução aceita o fluxo de dados, esquematiza a execução das microperações sujeitas a dependência de dados e disponibilidade de recursos. Em seguida, armazena o resultado dessas execuções especulativas. A Unidade de Retiro conhece como e quando confirmar do resultado especulativo temporário para um estado arquitetural permanente. A Unidade de Interface de Barramento responsável pela conexão das 3 unidades internas ao mundo real. Esta unidade comunica-se diretamente com o cache L2 (externo), suportando até 4 acessos concorrentes ao cache. A figura 49 ilustra mais detalhadamente estes aspectos.

Unidade deBusca/

Decodifica-ção

Unidade deDespacho/Execução

Unidade deRetiro

Pool deInstruções

Page 60: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

60

Figura 49 – As 3 unidades com Caches Unificados do Pentium PRO Execução Dinâmica de Instruções Execução Dinâmica, segundo a INTEL, é a combinação única de 3 técnicas de processamento:

• Predição de Múltiplos Saltos. Inicialmente o processador “olha” múltiplos passos atrás no software e prediz quais

saltos ou grupos de instruções, provavelmente, serão processadas;

• Análise do Fluxo de Dados. Em seguida, analisa quais instruções são dependentes do resultado ou dados de

outras instruções, para criar uma seqüência otimizada de instruções;

• Execução Especulativa. As instruções são então “puxadas” especulativamente, com base no esquema otimizado.

Arquitetura Superscalar

Unidade deBusca/

Decodifica-ção

Unidade deDespacho/Execução

Unidade deRetiro

Pool deInstruções

Cache de Dados L1Cache deInstruções L1

Unidade de Interface de Barramento

Cache L2Barramentode Sistema

Page 61: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

61

Arquitetura Superscalar é uma microarquitetura capaz de simultaneamente buscar, decodificar e executar múltiplas operações inteiras por período de relógio. Tipicamente o Pentium PRO “percebe” entre 20 e 30 instruções na frente do IP (“Instruction Pointer”). Suporte a Múltiplos Processadores O barramento externo do Pentium PRO foi otimizado para suportar de 1 a 4 CPUs. A figura 50 ilustra este fato.

Figura 50 – Esquema de Multiprocessamento do Pentium PRO

II.5.2 - Benchmarks

II.6 - Os Pentium II A figura 51 mostra, a título de ilustração, o Pentium II.

Page 62: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

62

Figura 51 – CPU Pentium II

II.6.1 - Arquitetura e Características O Pentium II vem evoluindo continuamente, de acordo com os novos desenvolvimentos ou opções da INTEL. Trataremos aqui da arquitetura inicial deste processador, cujo codinome foi “Klamath”. A característica principal do Pentium II foi a incorporação da tecnologia MMX às Unidades de Execução do processador Pentium PRO. Sendo assim, tornou-se recomendável tanto para servidores, quanto para desktops. São discriminadas a seguir as principais características do Pentium II. • Cache interno L1 32 Kbytes (16 K para instruções + 16 K para dados). Cache duas vezes maior que o do

Pentium PRO; • Cache externo L2 é de 512 Kbytes em ½ velocidade (“half speed”), fazendo parte do cartucho de metal e plástico

que inclui o núcleo da CPU; • Tecnologia de Processo de fabricação CMOS de 0,35 microns. A versão de 333 MHz usa o processo de 0,25

microns; • Encapsulamento em cartucho SEC (“Single-Edge Contact”) de 242 pinos, diferentemente do Pentium PRO, o

qual usava soquete ZIF (“Zero Insertion Force”); • Suas primeiras versões, com arquitetura idêntica, operam nas velocidades de 233, 266, 300 e 333 MHz. Versões

a 350 e 400 MHz, trazem ligeiras diferenças; • Opera na velocidade interna de 66 MHz FSB (“Front-Side Bus”), exatamente como o Pentium PRO; • Possui 5 unidades de execução, como no Pentium PRO; • Alimentação de 2,8 Volts; • Endereçamento físico de até 64 Gigabytes; • 7,5 milhões de transistores integrados; • Suporte para até 2 processadores em uma placa, permitindo o multiprocessamento simétrico (“SMP”); • Segundo a INTEL, sua arquitetura foi otimizada para aplicações de 32 bits; • Usa a interface de barramento chamada SLOT 1, diferentemente do Socket 7 do Pentium MMX. A interface

SLOT 1 deverá ainda ser usada até o início do ano 2000 em versões mais avançadas deste processador, tais como o Katmai 450 e 500 MHZ e o Coppermine 533 a 6xx MHz;

II.6.2 - Benchmarks A Figura 52 apresenta o iCOMP 2.0 (Benchmark Multimídia da INTEL) para várias versões do Pentium II, excluindo-se a versão de 333 MHz. Em seguida, é exibida na Figura 53, uma CPU Pentium II na presença de uma interface de aceleração gráfica AGP (“Advanced Graphics Port”) e na figura 54, um Benchmark entre os processadores Pentium II e Celeron.

Page 63: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

63

Figura 52 – Desempenho do Pentium II relativo aos Pentium MMX e PRO

Page 64: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

64

Figura 53 – Benchmarks de processadores INTEL, AMD e CYRIX Fonte: www.tomshardware.com

Page 65: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

65

Figura 54 – Benchmarks de processadores Pentium II e Celeron

II.7 - Últimos Microprocessadores da INTEL

II.7.1 - Linha Pentium III A figura 55 exibe uma foto do Pentium III e a figura 56, a sua arquitetura em blocos.

Figura 55 – Foto do Pentium III

Page 66: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

66

Figura 56 – Arquitetura do Pentium III Pentium III – Katmai • Codnone KATMAI • Terceira versão do Pentium II; • Conjunto de Instruções com 70 novas instruções MMX2 ou KNI (“Katmai New Instructions”); • Registradores de 128 bits; • 512 K de cache nível 2; • Arquitetura P6; • Suporte a DirectX 6.1; • Barramento do sistema de 100 e 133 MHz FSB; • Versões de 450, 500, 533, 550, 600, 650, 677, 700, 750, 733, 750, 800, 850, 866 e 1000 MHz. Pentium III - Coppermine • Versão menor do KATMAI; • Processo de fabricação CMOS de 0,18 microns; • Conjunto de Instruções MMX2 ou KNI (“Katmai New Instructions”). Tais instruções também foram chamadas de

instruções SSE (“Streaming SIMD Extensions”); • 256 KB de Cache L2 na velocidade do Clock e dentro da pastilha (“on die”); • Arquitetura P6; • Caminho de dados de 256 bits (mais do que os 64 bits dos Pentium II e III anteriores); • 100 MHz FSB nas versões de 450 e 500 MHz.

Page 67: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

67

Pentium III Xeon (Tanner) – 500 e 550 MHz) • Pentium II Xeon com KNI; • Suporte a operação com até 8 processadores; • Encapsulamento SECC (“Single Edge Contact Cartridge”); • 512 KB/1 MB/2 MB (500 MHz) e 512 KB (550 MHz) de cache em CSRAM L2, “full speed”, fora da pastilha; • 32 KB (16 K para dados + 16 K para instruções) de cache nível 1; • 100 MHz FSB, indo para 133 MHz FSB; A figura 57 exibe uma foto do Pentium III Xeon.

Figura 57 – Foto do Pentium III Xeon

II.7.2 - Linha Celeron A figura 58 exibe uma foto do Celeron.

Figura 58 – Foto do Celeron

CELERON (codnome Mendocino) (versão com 128 K de cache) • Encapsulamento PPGA (Plastic Pin Grid Array) de 370 pinos; • Versões de 400 e 433 MHz em encapsulamento SEPP de 242 contactos (Single Edge Processor Package) • 128 KB de Cache L2 dentro da pastilha (“on-die”); • 32 KB (16 K para dados + 16 K para instruções) de cache nível 1; • Arquitetura P6 (do Pentium Pro) • Barramento de sistema de 66 MHz FSB;

Page 68: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

68

• Primeiras versões com clock de 400, 433, 466, 500 e 533 MHz; • Interface Slot 1 deverá ser abandonada, passando a slot 2; A tabela 1 a seguir lista os modelos de Celeron lançados e o processador topo de linha em que eles são baseados:

Modelo Nome-código Baseado no Cache L1 Cache L2 Tecnologia Barramento Externo Soquete

Celeron SEPP Convington Pentium II com núcleo Deschutes 32KB - 0.25µm 66MHz Slot 1

Celeron A Mendocino Pentium II com núcleo Deschutes 32KB 128KB 0.25µm 66MHz Slot 1

Celeron PPGA Mendocino Pentium II com núcleo Deschutes 32KB 128KB 0.25µm 66MHz Soquete 370

Celeron Coppermine Coppermine Pentium III com núcleo Coppermine 32KB 128KB 0.18µm 66MHz / 100MHz Soquete 370

Celeron Tualatin Tualatin Pentium III com núcleo Tualatin 32KB 256KB 0.13µm 100MHz Soquete 370

Celeron Willamette Willamette Pentium 4 com núcleo Willamette 8KB 128KB 0.18µm 400MHz Soquete 478

Celeron Northwood Northwood Pentium 4 com núcleo Northwood 8KB 128KB 0.13µm 400MHz Soquete 478

Celeron D Prescott Pentium 4 com núcleo Prescott 16KB 256KB 0.09µm 533MHz Soquete 478 / Soquete 775

Tabela extraída de artigo de Cássio Lima no site do Clube do Hardware: http://www.clubedohardware.com.br/artigos/1014/1

Tabela 1 – Modelos do Celeron O Celeron diferencia-se do Pentium II, Pentium III ou do Pentium 4 em basicamente três aspectos: • Tamanho do cache L2 • Clock interno • Clock do barramento externo Celeron D • Baseado no Pentium 4 com núcleo Prescott; • Usa tecnologia de 90 nanômetros; • Possui 16 KB de cache L1, 256 KB de cache L2; • Trabalha externamente a 533 MHz (133 MHz transferindo quatro dados por pulso de clock); • Suporte às instruções multimídia SSE3; • Usa encapsulamento FC-PGA2; • Usa padrão de pinagem soquete 478 ou 775; • Pode ser encontrado com clocks de 2,53 GHz a 3,2 GHz. A tabela 2 a seguir lista vários modelos de CELERON D:

Processador Clock Interno Clock Externo Cache L2 Soquete Hyper-Threading 350 3,2 GHz 533 MHz 256 KB 478 ou 775 Não 345 3,06 GHz 533 MHz 256 KB 478 ou 775 Não 340 2,93 GHz 533 MHz 256 KB 478 ou 775 Não 335 2,80 GHz 533 MHz 256 KB 478 ou 775 Não 330 2,66 GHz 533 MHz 256 KB 478 ou 775 Não 325 2,53 GHz 533 MHz 256 KB 478 ou 775 Não

Tabela extraída de artigo de Cássio Lima no site do Clube do Hardware: http://www.clubedohardware.com.br/artigos/1053/2

Tabela 2 – Modelos do Celeron D

II.7.3 - Linha Pentium 4 A figura 59 exibe uma foto do Pentium 4, a figura 60, o seu substrato e a figura 61, a sua arquitetura em blocos.

Page 69: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

69

Figura 59 – Foto do Pentium 4 Pentium 4 • Barramento de 400 MHz FSB (“Front Side Bus”) de 128 bits de largura; • 20 KB de cache L1 e 256 KB ou 512 KB (versão 2,0 GHZ ou superior) de cache L2 ; • A ALU roda no dobro da velocidade do Clock; • Novo soquete 423 para simplificação do projeto da placa-mãe; • Freqüência de relógio a partir de 1,5 GHz; • 20 estágios de pipeline (havia 10 estágios no PIII); • 144 novas instruções SSE2 (“Streaming SIMD Extensions”) e MMX de128 bits; • 42 milhões de transistores; • Novo projeto de soquete de 478 pinos; • Canal de memória “Dual Rambus” com chipset i850; • Disponível no modo monoprocessador.

Figura 60 – Foto Substrato do Pentium 4

Page 70: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

70

Figura 61 – Arquitetura do Pentium 4

II.7.4 - Linha IA-64 ITANIUM (codenome Merced) • Lançado em 2000; • Usa Interface SLOT M (nova); • EPIC (“Explicit Parallel Instruction Computing”); • 128 registradores de Inteiros; • 128 registradores de Ponto Flutuante; • Múltiplas Unidades de Inteiros e de Ponto Flutuante; • Arquitetura de 64 bits (precisará de sistema operacional de 64 bits); • Freqüência de Relógio está em 1,6 GHertz; • Mais de 30 milhões de transistores integrados; • Processo de fabricação de 0,18 ou 0,13 microns. ITANIUM 2 (vários codenomes) • Cache L1 de 16KB (instruções) + 16KB (dados) • Cache L2 de 96KB (Merced) a 1,0MB (Montvale) • Cache L3 de 1,5MB (McKinley) a 18,0MB (Montvale) • Cache L4 somente no Hondo (32 MB) • Barramento da CPU de 266 MHz (Merced) a 667 MHz (Montvale) • Versão Montvale lançada em novembro de 2007 • Versão de 2009 executa até 6 instruções por ciclo de relógio • Versão McKinley possuia 221 milhões de transistores • Tukwila quad-core atrasou várias vezes. Em fevereiro de 2009 Intel anunciou mais um atraso para enriquecer

controlador de memória

Page 71: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

71

• Versão Tukwila é quad-core e foi reanunciado para o 1º trimestre de 2010 e conterá cerca de 2 bilhões de transistores

• O mais rápido Itanium possui uma taxa de execução de instruções de 6.67 GFLOPS (1 FLOP significa 1000 MIPs. 1 MIP significa 1 milhão de instruções por segundo)

• Um típico servidor de empresa high-performance usa 8 ou mais processadores Itanium • Alguns dos fabricantes de servidores usando o Itanium são: Compaq, IBM, Dell, Fujitsu, Hitachi, HP, SGI, Bull e

NEC • Alguns dos SOs suportados são: Windows server 2003 e 2008, Linux (Debian, Gentoo, Red Hat e Novell SuSE),

FreeBSD, HP-UX, OpenVMS e NonStop da HP, GCOS da Bull e vários IA-32 via simuladores • Os concorrentes do Itanium são: UltraSPARC IV+ da Sun Microsystems, SPARC64 VII da Fujitsu and POWER6

da IBM • A linha AMD Opteron, baseado em x-86, concorre com a linha Xeon da Intel e não com o Itanium • Poulson deverá suceder o Tukwila: mais cores, novas instruções para paralelismo e virtualização • Kittson seguirá o Poulson

II.7.5 - Linha Servidores Roadmap Intel: 3º trimestre de 2009

Segmento do Servidor Processador Clock Cache FSB Mission Critical Itanium® processor 9150N 1.60 GHz 24 MB L3 667 MHz Enterprise MP Xeon® processor X7460 2.67 GHz 16 MB L3 1066 MHz Performance DP Xeon® processor X5550 2.66 GHz 8 MB L3 6.4GT/sec QPI Mainstream DP Xeon® processor E5520 2.26 GHz 8 MB L3 5.86GT/sec QPI Performance UP Xeon® processor X3370 3.00 GHz 12 MB L2 1333 MHz Entry-level UP Xeon® processor E3110 3.00 GHz 6 MB L2 1333 MHz

A figura 62 exibe uma foto do Itanium 2.

Figura 62 – Foto do Itanium 2

II.7.6 - Linha Desktop Roadmap Intel: 3º trimestre de 2009

Segmento do Desktop Processador Clock Cache FSB

1P Gaming / Workstation Corei7 processor " Upto 3.06 GHz Upto 8MB L3 4.8GT/sec QPI

Page 72: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

72

Professional / Managed Desktop Core2 Duo processor with vPro Upto 3.33 GHz 6 MB L2 1333 MHz Evolving / Advanced Core2 Duo processor " Upto 3.06 GHz 3 MB L2 1066 MHz Basic Pentium® processor Upto 2.70 GHz 1MB / 2 MB L2 800 MHz Entry-Level Celeron® processor Upto 2.40 GHz 512 KB L2 800 MHz Nettop Atom processor " 1.60 GHz 512KB /1 MB 533 MHz

Figura 63 – Foto do Core 2 Quad

Figura 64 – Foto do i7

II.7.7 - Linha Mobile Roadmap Intel: 3º trimestre de 2009

Page 73: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

73

Segmento do Mobile Processador Solução wireless Clock (GHz) Cache FSB

Portable Workstation Centrino® 2 with Intel® Core™2 Quad (802.11 a/g/n) Upto 2.26 Upto 12 MB L2 1066 MHz

Performance Notebook Centrino® 2 with Intel® Core™2 Duo (802.11 a/g/n) Upto 2.80 or 3.06 6 MB L2 1066 MHz

Mainstream Notebook Centrino® 2 with Intel® Core™2 Duo (802.11 a/g/n) Upto 2.66 3 MB L2 1066 MHz

Mainstream Small form factor

Centrino® 2 with Intel® Core™2 Duo (802.11 a/g/n) Upto 2.53 / 2.13 6 MB L2 1066 MHz

Ultra Small form factor (<1.5kg)

Centrino® 2 with Intel® Core™2 Duo (802.11 a/g/n) Upto 1.60 3 MB L2 800 MHz

Value Notebook Celeron® (802.11 b/g) Upto 1.90 or 2.20 1 MB L2 800 MHz

Netbook Atom™ (802.11 b/g) 1.6 512 KB L2 533 MHz

II.8 - Características dos Microprocessadores da AMD

II.8.1 - K5 • Processo de fabricação de 0,35 microns; • 6 unidades de execução paralelas, dispostas em pipeline de 5 estágios; • Unidade de Ponto-Flutuante integrada; • Compatível com o Pentium P54C; • Memória de Instruções de 16 KB e cache de dados de 8 KB; • Compatível com o Socket 7 do Pentium; • Similar em arquitetura ao Pentium Clássico (de 60 a 200 MHz), diferente do Pentium PRO. A figura 65 exibe uma foto do AMD K5.

Figura 65 – Foto do AMD K5

II.8.2 - K6 • Projetado para desktops de CPU única; • Processo de fabricação de 0,35/0,25 microns; • 7 unidades de execução paralelas; • Barramento de sistema de 66 MHz; • Executa instruções MMX; • 8,8 milhões de transistores integrados; • 6 instruções por ciclo de relógio; • 32 KB de cache de instruções e 32 KB de cache de dados (dobro do Pentium II, quádruplo do Pentium PRO); • Alimentação de 2,9 Volts (CPU 166 e 200 MHz) - 3,2 Volts na versão de 233 MHz - e 3,3 Volts (I/O);

Page 74: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

74

II.8.3 - K6-2 • Processo de fabricação de 0,25 microns; • Barramento de sistema de 100 MHz; • Cache externo L2 frontal de 100 MHz; • Tecnologia 3DNow; • 9,5 milhões de transistores integrados; • Usa a plataforma Super 7 (ao invés do Socket 7), incluindo suporte para AGP e barramento de 100 MHz;

II.8.4 - K6-III

Lançado no 2º Semestre de 1998

• Processo de fabricação de 0,25 microns; • Barramento de sistema de 66 a 100 MHz; • Cache interno 320k (L1=64k + L2=256k) de 100 MHz; • Cache externo L3 opcional (até 2 MB) frontal; • Tecnologia 3DNow; • Clock do processador em 400 e 450 MHz; • 21 novas instruções adicionadas; • 21,3 milhões de transistores integrados;

II.8.5 - Duron • Processo de fabricação de 0,18 microns; • Barramento de sistema de 200 MHz; • Cache interno on-chip de 192k (L1=128k + L2=64k) • Clock do processador de 950 MHz a 1,3 GHz • 25,2 milhões de transistores integrados. A figura 66 mostras as fotos do Duron e Celeron.

Figura 66 – Fotos do AMD Duron e INTEL Celeron

II.8.6 - Athlon

Athlon - Codinome K7 (lançado no 3º Trimestre de 1999) -

• Processo de fabricação em 6 camadas de 0,18 microns ;

Page 75: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

75

• Unidade de Controle de 72 bits de entrada; • Escalável para até 43 bits de endereço (8 Terabytes); • Suporte a Multiprocessamento com acesso ao barramento de dados a 200 MHz (não será compatível com a

plataforma Super 7 dos K6) 266 MHz; • Usa projeto de módulo Slot A, incompatível com placas-mãe do Pentium III (slot 1); • Usa chipset reprojetado da própria AMD, VIA, Acer e outros; • 37 milhões de transistores integrados; • Tecnologia Enhanced 3DNow (24 novas instruções); • Ver diagrama em blocos do Athlon; • Clock do processador em 1,0; 1,13; 1,2; 1,33 e 1,4 GHz na frequência de 333 MHz; • Clock do processador em 1,0; 1,13; 1,2; 1,33 e 1,4 GHz na frequência de 266 MHz; • Clock do processador em 1,0; 1,1; 1,2; 1,3 e 1,4 GHz na frequência de 200 MHz; • Cache interno de 384k (L1=128k + L2 on-die=256k); A figura 67 mostra a arquitetura do Athlon em Diagrama de Blocos.

Figura 67 – Diagrama em Blocos do ATHLON

II.8.7 - Athlon XP • 9 operações por ciclo de relógio; • Acesso ao barramento de dados a 266 e 333 MHz; • Taxa de dados de pico de 2,7 Gbytes/seg • Clock do processador em 1,0; 1,13; 1,2; 1,33 e 1,4 GHz na frequência de 333 MHz; • Clock do processador em 1,0; 1,13; 1,2; 1,33 e 1,4 GHz na frequência de 266 MHz; • Suporte de dados bidirecionais de 64 bits; • Cache interno de 384k (L1=128k + L2 on-die=256k); Para se ter uma idéia da variedade de modelos, a tabela 4 a seguir lista todos os modelos do Athlon:

OPN Modelo Clock Hyper Transport Cache L2 Consumo Temp.

Máx(ºC) Soquete Alim. Tecn. SSE3

ADA4000DAA5BN 4000+ 2,4 GHz 4 GB/s 1 MB 89 W 71 939 1,35 V 90 nm Sim ADA4000DKA5CF 4000+ 2,4 GHz 4 GB/s 1 MB 89 W 71 939 1,35 V 90 nm Sim

Page 76: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

76

ADA4000DEP5AS 4000+ 2,4 GHz 4 GB/s 1 MB 89 W 70 939 1,50 V 130 nm Não ADA3800IAA4CN 3800+ 2,4 GHz 4 GB/s 512 KB 62 W 69 AM2 1,40 V 90 nm Sim

ADA3800DAA4BW 3800+ 2,4 GHz 4 GB/s 512 KB 89 W 71 939 1,40 V 90 nm Sim ADA3800DEP4AS 3800+ 2,4 GHz 4 GB/s 512 KB 89 W 70 939 1,50 V 130 nm Sim ADA3800DEP4AW 3800+ 2,4 GHz 4 GB/s 512 KB 89 W 70 939 1,50 V 130 nm Não ADA3800DAA4BP 3800+ 2,4 GHz 4 GB/s 512 KB 89 W 70 939 Variável 90 nm Sim ADA3700DKA5CF 3700+ 2,2 GHz 4 GB/s 1 MB 89 W 71 939 1,35 V 90 nm Sim ADA3700DAA5BN 3700+ 2,2 GHz 4 GB/s 1 MB 89 W 70 939 Variável 90 nm Sim ADA3700AEP5AR 3700+ 2,4 GHz 3,2 GB/s 1 MB 89 W 70 754 1,50 V 130 nm Não ADA3500IAA4CN 3500+ 2,2 GHz 4 GB/s 512 KB 62 W 69 AM2 1,40 V 90 nm Sim ADA3500IAA4CW 3500+ 2,2 GHz 4 GB/s 512 KB 62 W 70 AM2 1,40 V 90 nm Sim ADD3500IAA4CN 3500+ 2,2 GHz 4 GB/s 512 KB 35 W 78 AM2 1,25 V 90 nm Sim ADA3500DKA4CG 3500+ 2,2 GHz 4 GB/s 512 KB 67 W 65 939 1,35 V 90 nm Sim ADA3500DAA4BN 3500+ 2,2 GHz 4 GB/s 512 KB 67 W 65 939 1,40 V 90 nm Sim ADA3500DAA4DW 3500+ 2,2 GHz 4 GB/s 512 KB 67 W 65 939 1,40 V 90 nm Sim ADA3500DEP4AS 3500+ 2,2 GHz 4 GB/s 512 KB 89 W 70 939 1,50 V 130 nm Não ADA3500DEP4AW 3500+ 2,2 GHz 4 GB/s 512 KB 89 W 70 939 1,50 V 130 nm Não ADA3500DIK4BI 3500+ 2,2 GHz 4 GB/s 512 KB 67 W 70 939 1,40 V 90 nm Não

ADA3500DAA4BP 3500+ 2,2 GHz 4 GB/s 512 KB 67 W 70 939 Variável 90 nm Sim ADA3400AIK4BO 3400+ 2,2 GHz 3,2 GB/s 512 KB 67 W 65 754 1,40 V 90 nm Sim ADA3400AEP5AP 3400+ 2,2 GHz 3,2 GB/s 1 MB 89 W 70 754 1,50 V 130 nm Não ADA3400AEP5AR 3400+ 2,2 GHz 3,2 GB/s 1 MB 89 W 70 754 1,50 V 130 nm Não ADA3400AEP4AR 3400+ 2,4 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não ADA3400AEP4AX 3400+ 2,4 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não ADA3200DEP4AW 3200+ 2,0 GHz 4 GB/s 512 KB 89 W 70 939 1,50 V 130 nm Não ADA3200DIK4BI 3200+ 2,0 GHz 4 GB/s 512 KB 67 W 70 939 1,40 V 90 nm No

ADA3200DAA4BP 3200+ 2,0 GHz 4 GB/s 512 KB 67 W 70 939 Variável 90 nm Sim ADA3200AEP5AP 3200+ 2,0 GHz 3,2 GB/s 1 MB 89 W 70 754 1,50 V 130 nm Não ADA3200AEP5AR 3200+ 2,0 GHz 3,2 GB/s 1 MB 89 W 70 754 1,50 V 130 nm Não ADA3200AEP4AR 3200+ 2,2 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não ADA3200AEP4AX 3200+ 2,2 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não ADA3000DEP4AW 3000+ 1,8 GHz 4 GB/s 512 KB 89 W 70 939 1,50 V 130 nm Não ADA3000DIK4BI 3000+ 1,8 GHz 4 GB/s 512 KB 67 W 70 939 1,40 V 90 nm Não

ADA3000DAA4BP 3000+ 1,8 GHz 4 GB/s 512 KB 67 W 70 939 Variável 90 nm Sim ADA3000AEP4AP 3000+ 2,0 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não ADA3000AEP4AR 3000+ 2,0 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não ADA3000AEP4AX 3000+ 2,0 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não ADA2800AEP4AP 2800+ 1,8 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não ADA2800AEP4AR 2800+ 1,8 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não ADA2800AEP4AX 2800+ 1,8 GHz 3,2 GB/s 512 KB 89 W 70 754 1,50 V 130 nm Não

Tabela 4 – Modelos do Athlon

II.8.8 - Últimos Microprocessadores da AMD

II.8.8.1 - Linha para Desktops e Notebooks - Athlon 64 FX • Opera simultaneamente em 32 e 64 bits; • Registradores adicionais de 64 bits para aumento de desempenho; • Endereça até 4 GBytes; • Proteção Anti-vírus enriquecida; • Tecnologia de Hipertransporte com taxa de dados bidirecional de 2,0 GHz; • Projetado para conexão direta com a memória; • Memória cachê de 2304KB (128KB L1 + 1024KB L2 por core) do total usável; • Instruções adicionais SSE3 em relação a tecnologia existente 3DNow; A figura 68 mostra a foto do Athlon 64 X2, a figura 69 exibe o diagrama em blocos da arquitetura do Athlon 64 FX Dual Core, soquete F, a figura 70 a da versão com soquete AM2 e a figura 71 a da versão com soquete 939.

Page 77: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

77

Figura 68 – Foto do Athlon 64 X2

Figura 69 – Arquitetura do Athlon 64 FX Socket F

Page 78: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

78

Figura 70 – Arquitetura do Athlon 64 FX Socket AM2

Figura 71 – Arquitetura do Athlon 64 FX Socket 939 Existem versões: Athlon 64, Athlon 64 FX e Athlon 64 X2 Dual-Core Na tabela 5 são listados os modelos atuais (09/03/07) de Athlon 64 FX:

OPN Modelo Clock Hyper Transport Cache L2 Consumo Temp.

Máx (º C) Soquete Alim. Tecn. SSE3

Page 79: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

79

ADAFX74GAA6DI FX-74 3 GHz 4 GB/s 1 MB+1 MB 125 W 56 F 1,35 V - 1,40 V 90 nm Sim

ADAFX72GAA6DI FX-72 2,8 GHz 4 GB/s 1 MB+1 MB 125 W 63 F 1,35 V - 1,40 V 90 nm Sim

ADAFX70GAA6DI FX-70 2,6 GHz 4 GB/s 1 MB+1 MB 125 W 63 F 1,35 V - 1,40 V 90 nm Sim

ADAFX62IAA6CS FX-62 2,8 GHz 4 GB/s 1 MB+1 MB 125 W 63 AM2 1,40 V 90 nm Sim

ADAFX60DAA6CD FX-60 2,6 GHz 4 GB/s 1 MB+1 MB 110 W 65 939 1,35 V - 1,40 V 90 nm Sim

ADAFX57DAA5BN FX-57 2,8 GHz 4 GB/s 1 MB 104 W 65 939 1,35 V - 1,40 V 90 nm Sim

ADAFX55DAA5BN FX-55 2,6 GHz 4 GB/s 1 MB 104 W 65 939 1,35 V - 1,40 V 90 nm Sim

ADAFX55DEI5AS FX-55 2,6 GHz 4 GB/s 1 MB 104 W 63 939 1,50 V 130 nm Não

ADAFX53CEP5AT FX-53 2,4 GHz 3,2 GB/s 1 MB 89 W 70 940 1,50 V 130 nm Não

ADAFX53DEP5AS FX-53 2,4 GHz 4 GB/s 1 MB 89 W 70 939 1,50 V 130 nm Não

ADAFX51CEP5AT FX-51 2,2 GHz 3.2 GB/s 1 MB 89 W 70 940 1,50 V 130 nm Não

ADAFX51CEP5AK FX-51 2,2 GHz 3.2 GB/s 1 MB 89 W 70 940 1,50 V 130 nm Não

Tabela extraída de artigo de Cássio Lima no site do Clube do Hardware: http://www.clubedohardware.com.br/artigos/1154/3

Tabela 5 – Modelos do Athlon 64 FX

II.8.8.2 - Linhas para Servidores e Workstations - Opteron • Opera simultaneamente em 32 e 64 bits; • Provém 24 GBytes/s de largura de banda de pico; • Controlador de memória DDR integrado; • Arquitetura preparada para servidores de 4 e 8 processadores simultâneos; • Próxima geração oferecida em 3 séries: 1000 Series (até 1P/2-core), 2000 Series (até 2P/4-core) e a 8000 Series

(4P/8-core até 8P/16-core); • A 1000 Series está embutida no novo soquete AM2 da AMD; • A 2000 Series e 8000 Series são construídas sobre o novo soquete Socket F (1207). A figura 72 exibe a foto do AMD 64 Opteron, a figura 73 o diagrama em blocos da versão com soquete Fe a figura 74 o diagrama em blocos da versão com soquete AM2.

Page 80: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

80

Figura 72 – Foto do Opteron

Figura 73 – Diagrama em Blocos do Opteron Socket F

Figura 74 – Diagrama em Blocos do Opteron AM2

Page 81: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

81

Todos os modelos de Opteron de núcleo duplo são baseados na tecnologia de 90 nm, possuem 1 MB de cache de memória L2 em cada núcleo e barramento “HyperTransport” operando a 1 GHz (4 GB/s, que pode ser referenciado com “2.000 MHz”). Todos os modelos suportam as instruções SSE3. Na Tabela 6 são listados todos os modelos de Opteron até o momento (13/01/06):

OPN Modelo Clock Consumo Temp. Máx (º C) Alimentação Soquete SMP OSA880FAA6CC 880 2,4 GHz 95 W 67 1,30 V - 1,35 V 940 8 OSA875FAA6CC 875 2,2 GHz 95 W 67 1,30 V - 1,35 V 940 8 OSA875FKM6BS 875 2,2 GHz 95 W 67 1,35 V 940 8 OSK870FAA6CC 870 HE 2 GHz 55 W 71 1,15 V - 1,20 V 940 8 OSA870FAA6CC 870 2 GHz 95 W 67 1,30 V - 1,35 V 940 8 OSA870FKM6BS 870 2 GHz 95 W 67 1,35 V 940 8 OSK865FAA6CC 865 HE 1,8 GHz 55 W 71 1,15 V - 1,20 V 940 8 OSA865FAA6CC 865 1,8 GHz 95 W 67 1,30 V - 1,35 V 940 8 OSA865FKM6BS 865 1,8 GHz 95 W 67 1,35 V 940 8 OSK860FAA6CC 860 HE 1,6 GHz 55 W 71 1,15 V - 1,20 V 940 8 OSA280FAA6CB 280 2,4 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSA280CBBOX 280 2,4 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSA275CBWOF 275 2,2 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSA275CBBOX 275 2,2 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSA275FAA6CB 275 2,2 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSK270FAA6CB 270 HE 2 GHz 55 W 71 1,15 V 940 2 OSA270CBWOF 270 2 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSA270CBBOX 270 2 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSA270FAA6CB 270 2 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSK265FAA6CB 265 HE 1,8 GHz 55 W 71 1,15 V 940 2 OSA265FAA6CB 265 1,8 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSA265CBWOF 265 1,8 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSA265CBBOX 265 1,8 GHz 95 W 67 1,30 V - 1,35 V 940 2 OSK260FAA6CB 260 HE 1,6 GHz 55 W 71 1,15 V 940 2 OSA180DAA6CD 180 2,4 GHz 110 W 65 1,30 V - 1,35 V 939 1 OSA180CDBOX 180 2,4 GHz 110 W 65 1,30 V - 1,35 V 939 1 OSA175DAA6CD 175 2,2 GHz 110 W 65 1,30 V - 1,35 V 939 1 OSA175CDBOX 175 2,2 GHz 110 W 65 1,30 V - 1,35 V 939 1 OSA170DAA6CD 170 2 GHz 110 W 65 1,30 V - 1,35 V 939 1 OSA170CDBOX 170 2 GHz 110 W 65 1,30 V - 1,35 V 939 1 OSA165DAA6CD 165 1,8 GHz 110 W 65 1,30 V - 1,35 V 939 1 OSA165CDBOX 165 1,8 GHz 110 W 65 1,30 V - 1,35 V 939 1

Tabela extraída de artigo de Gabriel Torres e Cássio Lima no site do Clube do Hardware: http://www.clubedohardware.com.br/artigos/1155/5

Tabela 6 – Modelos do Opteron

II.8.8.3 - Linha para Notebooks - Turion 64 X2 Dual-Core Mobile • Opera simultaneamente em 32 e 64 bits (Windows Vista); • 2 CPUs em um processador; • 40 bits de endereço real, 48 bits de endereço virtual; • 16 registradores de 64 bits para inteiros e 16 registradores de 128 bits SSE/SSE2/SSE3; • Um link de 16 bits suportando 1,6 GHz; • Largura de banda para E/S de até 6,4 GBytes/s com Hipertransporte; • Suporta memórias PC2-3200, PC2-4200 (DDR2-533), PC2-4300 (DDR2-533), and PC2-5300 (DDR2-667)

unbuffered SO-DIMMs; • Dual-channel, 128 bits; • Até 10,7 GBytes/s de largura de banda com a memória; A figura 75 exibe a foto do Turion 64 X2, a figura 76 as características de arquitetura do Turion Dual Core.

Page 82: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

82

Figura 75 – Foto do Turion 64 X2 Existem 2 versões: Turion 64 Mobile e Turion 64 X2 Dual-Core Mobile

Figura 76 – Características da Arquitetura do Turion 64 X2 Dual-Core

Page 83: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

83

Suporte e Downloads da família AMD: http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182,00.html A tabela 7 lista as várias versões do Turion 64 até o momento (05/09/06).

Modelo Clock Interno Consumo Cache L2 ML-44 2,4 GHz 35 W 1 MB ML-42 2,4 GHz 35 W 512 KB ML-40 2,2 GHz 35 W 1 MB ML-37 2,0 GHz 35 W 1 MB ML-34 1,8 GHz 35 W 1 MB ML-32 1,8 GHz 35 W 512 KB ML-30 1,6 GHz 35 W 1 MB ML-28 1,6 GHz 35 W 512 KB MT-40 2,2 GHz 25 W 1 MB MT-37 2,0 GHz 25 W 1 MB MT-34 1,8 GHz 25 W 1 MB MT-32 1,8 GHz 25 W 512 KB MT-30 1,6 GHz 25 W 1 MB MT-28 1,6 GHz 25 W 512 KB

Fonte: http://www.clubedohardware.com.br/artigos/1158

Tabela 7 – Modelos do Turion 64

Page 84: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

84

III - CARACTERÍSTICAS GERAIS DOS SISTEMAS DE BARRAMENTOS III.1 - Os Barramentos Principais ISA, EISA E MCA III.1.1 - O Barramento ISA Os barramentos ISA 8 bits e ISA 16 bits foram os barramentos utilizados pelos primeiros microcomputadores realmente populares do mercado. A sigla ISA significa “Industry Standard Architecture”. Os famosos PCs XT utilizavam o ISA 8 bits, que suportava placas de expansão contendo um único pente. Já o ISA 16 bits suporta placas de expansão contendo dois pentes separados por uma ranhura. Este barramento é também conhecido no jargão técnico como “AT”. Os famosos XTs baseavam-se em CPUs 8088 ou 8086. Já os PCs AT baseavam-se em CPUs 80286, 80386 e até i486. Na arquitetura ISA, a comunicação com os periféricos é gerenciada pelo microprocessador e realizada através de canais de E/S. As transferências se davam de 16 em 16 bits (tamanho do barramento de dados) a uma freqüência de apenas 8 MHz, mesmo na presença de um processador mais rápido, como por exemplo, o 486DX4/100. Isto se tornou um problema com o aumento da velocidade dos microprocessadores. A taxa de transferência fica restrita a 1 MBytes/segundo. O propósito de um barramento de expansão é prover um caminho para usuários adicionarem dispositivos de hardware (placas em slots) em um PC, usando conectores padronizados. O que difere uma proposta de outra são vários aspectos. A Tabela 8 compara os atributos do sistema para os barramentos ISA 8 bits e ISA 16 bits.

Atributo do Sistema PC ou XT PC AT Clássico

Processador 8088/8086 286 e maior Modos da CPU Real Real/Protegido Slot de Expansão 8 bits 16 bits Tipo de slot ISA 8 bits ISA 16 bits Interrupções 8 + NMI 16 + NMI Canais de DMA 4 8 RAM máxima 1 MB 16 MB Controlador Disco Flexível 360 KB / 720 KB 1.2 MB / 1.44 MB

Tabela 8 – Barramentos ISA 8 bits e 16 bits

Com o avanço tecnológico e o surgimento do INTEL 80386, com um barramento de dados de 32 bits, a paz nas indústrias terminou e, como já mencionado, surgiu uma briga entre o MCA da IBM e o EISA da Gang dos Nove, vencida pelo EISA em termos mercadológicos, durante certo tempo. A Tabela 9 exibe uma comparação entre o EISA e o ISA 16 bits.

Atributo do Sistema ISA 16 bits EISA

Capacidade de Memória 16 MB 4 GB Largura do Bus de Dados 16 bits 32 bits Faixa de DMA 16 MB 4 GB Caminho de dados do DMA 8/16 bits 8/16/32 bits Máxima Taxa de DMA 2 Mbytes/s 33 Mbytes/s Arbitração de Barramento Única 6 Bus Masters Caminho de dados do Bus Master

16 16/32

Clock Síncrono 8.33 MHz 8.33 MHz

Tabela 9 – ISA 16 bits e EISA

III.1.2 - O Barramento EISA O Barramento EISA ("Extended Industry Standard Architecture") de 32 bits foi um produto resultante da formação de um consórcio composto de fabricantes de "clones" ("Gang of Nine") ou a Gang dos Nove,

Page 85: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

85

nominalmente: Wyse, AST Research, Tandy, Compaq, Hewlett-Packard, Zenith, Olivetti, NEC e Epson, mnemonicamente chamado, "WATCHZONE". O argumento desses fabricantes era o de que sempre procuraram oferecer aos seus usuários produtos de mais baixo custo e com ampla disponibilidade de placas de expansão, qualidades que na época (e nem hoje) não eram (não são) encontradas na opção pelo barramento MCA. Para que o barramento EISA fosse compatível com a maioria das placas (ISA 8 e ISA 16) já disponíveis no mercado, os conectores da placa mãe (onde se encaixam as placas de expansão) dos microcomputadores foram mudados para conectores EISA/ISA. Ou seja, tanto placas ISA de 8 ou 16 bits, quanto placas EISA podiam e podem ser inseridas nos slots do sistema. O artifício consistiu de dotar o conector de duas linhas de contactos, uma ISA e outra EISA. Placas ISA penetram até a metade do conector fazendo uso da primeira linha de contatos (compatível ISA 8 e 16 bits). Placas EISA penetram completamente no conector fazendo uso da segunda linha de contatos (compatível EISA). A profundidade de penetração das placas é determinada pelo número de ranhuras das placas. No caso das placas ISA existe somente uma única ranhura e no das placas EISA existem 6 ranhuras (uma ranhura maior e cinco menores). Assim, a profundidade dos contatos do pente das placas de expansão EISA passa dos atuais 0,79 cm para 1,32 cm.

III.1.3 - O Barramento MCA O Barramento MCA ("Micro Channel Architecture"), também de 32 bits, embora tenha havido uma versão de 16 bits, foi o padrão de barramento adotado pela IBM para os slots de um micro ou supermicrocomputador, o qual era incompatível com os barramentos ISA (8 bits e 16 bits). Mesmo com a decisão da IBM de abrir o projeto de seu barramento para outros fabricantes de placas de expansão, o padrão ISA/EISA fez parte da maioria dos sistemas 486 disponíveis no mercado americano e brasileiro da época. Segundo artigo da revista BYTE americana de novembro de 1989, o barramento EISA permite a taxa de transferência máxima de 33 Megabytes/segundo, enquanto no barramento MCA 16 bits esta taxa cai para 20 MBytes/segundo. Ainda segundo a mesma revista, as placas EISA são mais baratas e de fabricação mais fácil. Matérias na revista PC Magazine Brasil de agosto de 1992 apontavam o desempenho de 40 Mbytes/segundo para o barramento MCA de 32 bits, numa freqüência de relógio da ordem de 10 MHz, diferentemente dos 8,0 MHz utilizados nos ISA e EISA.

III.2 - Os Barramentos Locais Secundários VESA, PCI e AGP Independentemente dos barramentos principais, surgiram no mercado, no início da década de 90, máquinas fazem uso de um barramento local ("Local Bus"), ou seja, máquinas que implementam uma conexão direta entre a CPU e a parte de I/O. Assim, o tráfego de dados da CPU para os periféricos fica na velocidade da CPU, atingindo um desempenho de até 200 MegaBytes/segundo.

III.2.1 - O Barramento VESA A VESA (“Video Electronics Standards Association”), baseada na idéia de que as interfaces de vídeo integradas à placa-mãe eram uma limitação às rápidas atualizações que surgiam a todo o momento no mercado de vídeo, lançou um padrão de conexão para placas de vídeo. A associação já existia antes do advento do barramento local e cuidava de padrões de arquitetura e compatibilidade de projetos relacionados a vídeo de alta performance. Assim, em 1992, foi elaborado um projeto de barramento de 32 bits, direcionado originalmente às interfaces de vídeo. O padrão VL-Bus, como ficou conhecido, teve aceitação imediata, não só pelas definições de vídeo como também por sua arquitetura aberta, que permitia a implementação de outros tipos de interfaces de barramento local, como de discos e redes. O VESA Local Bus veio introduzir o conceito de barramento próprio, interligado diretamente à CPU. Operando em 32 bits e na mesma freqüência do processador principal o barramento VESA consegue taxas de transferências de até 132 MB/s, mas somente no modo rajada (“Burst”). Basicamente, o barramento VESA duplica os sinais do 486, o que reduz o custo do projeto das placas-mães e melhora sensivelmente o desempenho em relação ao barramento ISA.

Page 86: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

86

Uma das limitações deste barramento é quanto à freqüência e número de conectores, ou placas a ele conectadas. Isto ocorre por estar ligado diretamente ao barramento do processador e operar em freqüências muito altas. Assim, o número de periféricos conectados é de no máximo três. Os projetistas podem acrescentar mais conectores, além do número máximo recomendado pela associação, mas fazendo isto sacrificariam a velocidade do barramento. O VL-Bus, da VESA, desenvolveu uma maneira de acelerar gráficos, descarregando-os do barramento ISA, mais lento. Antes da adoção do padrão VESA, foram desenvolvidos alguns barramentos locais proprietários, que davam poucas opções aos usuários, pois seus conectores não eram padronizados. Com a nova versão 2.0, o VESA VL-BUS soluciona muitas das limitações do seu antecessor. O barramento pode operar a 50 MHz, possuindo um caminho de dados de 64 bits, ao invés de 16 ou 32. A VESA produziu um procedimento para testes de compatibilidade e conformidade para adaptadores. Com isto, os fabricantes de placa podiam colocar um logotipo "compatível com VESA" na caixa. A maioria das empresas nacionais suportava o padrão VL-Bus. Este não somente foi, em sua época, o mais difundido, como era o padrão para o qual havia o maior número de placas de expansão do mercado.

III.2.2 - O Barramento PCI O Barramento PCI (“Peripheral Component Interconnect”), outra arquitetura com barramento local, foi criado pela Intel logo após o VESA. O Local Bus PCI veio aperfeiçoar o conceito VESA, introduzindo um controlador de periféricos padronizado e definindo uma freqüência fixa de operação em 33 MHz. O resultado foi um barramento mais barato que o EISA e MCA, embora um pouco mais caro que o VESA. A diferença básica entre o PCI e o VL-Bus está no projeto. Mais moderno e com capacidade para suportar futuras alterações no hardware dos PCs, o PCI reúne características que o tornaram mais atraente e mais enxuto que o VESA. Além de ter sido projetado prevendo ambientes com múltiplos processadores, o PCI define o uso de componentes multimídia no barramento local. O “bus mastering” também é suportado, junto com uma linguagem própria de controle de barramento. Segundo a Intel, placas desenhadas para serem usadas em barramento PCI funcionam em qualquer máquina, seja ISA, EISA ou MCA. Outra característica existente nas especificações do PCI e ausente do VESA é a facilidade de configuração. As placas PCI são autoconfiguráveis, dispensando ajustes por “jumpers” ou chaves DIP. Para isso, porém, todas as placas precisam ter 256 registradores, para armazenamento de informações, dispostos de uma certa maneira para assegurar a compatibilidade entre diversos computadores. O PCI tem como características o barramento assíncrono e a arquitetura multiplexada, significando que linhas de endereços e linhas de dados compartilham conexões. Possui um modo de rajada próprio, o qual permite que um ciclo de endereço pode ser seguido por tantos ciclos de dados quanto o overhead do sistema permitir. O PCI possui uma largura de barramento de 32 ou 64 bits, o que o torna mais apropriado para processadores baseados no chip Pentium. É um barramento do tipo mezzanino, ou seja, nem ligado diretamente à CPU, nem ligado diretamente aos dispositivos de I/O. Além disso, a especificação do PCI é mais precisa do que a do VESA e isto já resultaram em incompatibilidades em adaptadores VESA. Finalmente, o PCI não é dedicado a um processador INTEL x86, mas também pode ser usado por processadores Motorola. A 33 MHz pode transferir 32 bits por período de relógio, implicando numa taxa de 132 MBytes/s (4 bytes x 33 Mbits/s). A especificação 2.1 do PCI inclui um barramento de 64 bits a 66 MHz, implicando em uma taxa teórica máxima de 528 MBytes/s (8 bytes x 66 Mbits/s). O PCI supera, atualmente, tudo o que existe em matéria de barramento de comunicação, apresentando taxas de transferência de dados na ordem 264 MB/s em 32 bits e de até 8.000 MB/s em 64 bits em sua mais recente versão (2007), PCI Express 32x. Em relação ao número de slots de expansão, o PCI permite o controle de até 10 dispositivos auto-configuráveis de alto desempenho. Na comunicação de vídeo, o PCI supera todas as expectativas, apresentando uma performance 3 vezes superior a uma VGA ISA e 3 vezes a de uma VGA-VESA.

Page 87: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

87

Os dois barramentos locais descritos têm praticamente a mesma velocidade em 32 bits, atingindo picos de desempenho de 132 MB/s, mas este número pode variar muito, se forem considerados os estados de espera e as operações do modo burst. A tabela 10 procura relacionar cronologicamente as várias velocidades envolvidas nos barramentos mencionados, incluindo as últimas versões do barramento PCI. A Tabela 11 exibe não só a limitação já superada de 33 MHz do barramento PCI, como a relação entre a velocidade da máquina e o CHIPSET da mesma. .

Versão do

Barramento Relógio Placa-

Mãe (MHz) Velocidade no

Barramento de Dados (MHz)

Tamanho do Barramento de Dados

(bits)

Velocidade no Barramento (MBytes/s)

ISA 8 8 8 8 8 ISA 16 8 8 16 16 MCA 16 10 10 16 20 MCA 32 10 32 40 EISA 8,25 32 33 PCI 32 (PCI 1.0) 33 32 132 PCI 32 66 32 264 PCI 32 66 32 264 PCI 64 33 64 264 PCI 64 (PCI 2.1) 66 64 528 PCI 64 100 64 800 PCI-X 133 133 64 1.064 PCI-X 266 (2x) 133 64 2.132 PCI-X 533 (4x) 133 64 4.266 PCI-Express 1X 2.5 GHz serial/1 via 250 PCI-Express 2X 2.5 GHz serial/2 vias 500 PCI-Express 4X 2.5 GHz serial/4 vias 1.000 PCI-Express 16X 2.5 GHz serial/16 vias 4.000 PCI-Express 32X 2.5 GHz serial/32 vias 8.000

Tabela 10 – Desempenho de Barramentos

Page 88: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

88

CPU CLK da

Placa-Mãe (MHz)

CLK x CLKIN da CPU (MHz)

Chip Set (CK/2)

Velocidade no Barramento de Dados (Mbps)

Velocidade Placa de

Vídeo (Mbps) P60 60 1 60 30 30 15 P66 66 1 66 33 33 16,5 P75 50 1,5 75 25 25 12,5 P90 60 1,5 90 30 30 15 P100 66 1,5 99 33 33 16,5 P120 60 2 120 30 30 15 P133 66 2 132 33 33 16,5 P150 60 2,5 150 30 30 15 P166 66 2,5 165 33 33 16,5 P200 66 3 198 33 33 16,5 6X86-120 50 2 100 25 25 12,5 6X86-133 55 2 110 ? ? ? 6X86-150 60 2 120 30 30 15 6X86-166 66 2 132 33 33 16,5 6X86-200 66 3 198 33 33 16,5 K6-166 66 2,5 165 33 33 16,5 K6-200 66 3 198 33 33 16,5 K6-233 66 3,5 231 33 33 16,5 PPRO 180 60 3 180 30 30 15 PPRO 200 66 3 198 33 33 16,5 PMMX 166 66 2,5 165 33 33 16,5 PMMX 200 66 3 198 33 33 16,5 PMMX 233 66 3,5 231 33 33 16,5 PII 233 66 3,5 231 33 33 16,5 PII 266 66 4 264 33 33 16,5 PII 300 66 4,5 297 33 33 16,5

A arquitetura P54C (Pentium Clássicos - de 60 a 200 MHz) suporta os multiplicadores de 1,5 a 3 A arquitetura P55C (Pentium PRO – de 180 a 200 MHz) possui os multiplicadores de 2,5 a 4 A arquitetura P6 (Pentium II - de 233 a 333 MHz) possui os multiplicadores de 3,5 a 5

Tabela 11 – Desempenho do Barramento de Dados

III.2.3 - O Barramento AGP O Barramento AGP (“Accelerated Graphics Port”) é uma nova plataforma de especificação de barramento direcionada para capacidades gráficas de alto desempenho, em particular, gráficos 3D. Tais aplicações requerem grande área armazenamento de informações a fim de que a imagem 3D do monitor possa ser “refrescada” ou atualizada o mais rápido possível. A interface AGP é promovida pelo A.G.P. Implementors Forum, o qual provê suporte e facilidades na adoção da especificação. Fazem parte deste Forum vários fabricantes de PCs, assim como fabricantes de componentes gráficos. Esta interface, como é conhecida, adiciona novas características às placas aceleradoras gráficas, tais como: acesso em pipeline dedicado à memória principal e taxas de transferência mais rápidas. Esta interface não é concorrente do barramento PCI, pois foi projetada pela INTEL especialmente para uso dedicado por controladores gráficos e não para substituir o PCI. Este permanece um padrão para um sistema de barramento de I/O, de uma maneira mais geral.

Page 89: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

89

A interface AGP foi projetada para componentes gráficos ponto-a-ponto e é fisicamente separada do barramento PCI, usando um conector separado. A AGP permite alocação dinâmica da memória principal, tornando-a mais flexível. Esta interface está incorporada à maioria das placas-mães de hoje baseadas no processador Pentium II e III. A figura 77 mostra um diagrama de blocos da interface AGP, na presença dos componentes da placa-mãe.

Figura 77 – A Interface AGP

Page 90: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

90

A figura 78 exibe os barramentos PCI e AGP em uma arquitetura de placa-mãe e chipset em 2005.

Figura 78 – Arquitetura de uma placa-mãe

Page 91: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

91

A figura 79 exibe uma placa-mãe com 4 slots PCI (brancos) e 1 slot AGP (marron) e 3 slots ISA 16 bits.

Figura 79 – Exemplo de placa-mãe

A Figura 80 (fonte: www.tomshardware.com/agp.html#AGP - Some Critical Thoughts) procura exibir as taxas de transferência envolvidas no barramento AGP. No artigo mencionado, o autor procura demonstrar que o pico teórico para o AGP é de 528 MBytes/s (8 x 66 Mbits/segundo), pois a atual limitação do transporte de dados da CPU para a memória principal está em 66 MHz do Clock do barramento: “Therefore AGP will never be able to get a throughput of 528 MB/s, since this is the whole bandwidth of main memory and thus it has to be shared with CPU and others”. E mais, esta taxa somente é válida com o uso de memórias SDRAM, pois em memórias do tipo EDO é consideravelmente mais lenta. O autor explicava que o AGP realmente necessitava é de que o barramento principal das máquinas subisse para 100 MHz, quando então o pico teórico seria de 800 Mbytes/s, o que já ocorreu. Existem propostas concorrentes do AGP da INTEL, as quais colocam nas placas gráficas a memória necessária ao refrescamento do vídeo e não usam a memória principal do sistema que é compartilhada por todos os outros periféricos. A INTEL raciocina que isto pode resultar em um custo mais elevado do que proposta AGP, em função do alto custo das memórias.

Figura 80 – Desempenho da Interface AGP

Page 92: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

92

A figura 81 exibe um benchmark entre uma placa gráfica com barramento PCI e uma com barramento AGP. Enfatiza-se que os barramentos, como mencionado anteriormente, não são comparáveis, uma vez que se destinam a diferentes objetivos. Notar que em resoluções normais, 640x480 pixels, não há praticamente diferença de desempenho entre as duas placas testadas.

Figura 81 – Benchmark entre duas placas gráficas – AGP e PCI

O quadro a seguir exibe o desempenho das várias versões do barramento AGP.

Barramento Clock Número de bits

Dados/ciclo de clock

Taxa máxima de transferência

AGP X1 66 MHz 32 1 266 MB/s AGP X2 66 MHz 32 2 533 MB/s AGP X4 66 MHz 32 4 1.066 MB/s AGP X8 66 MHz 32 8 2.133 MB/s

Uma tendência atual (2007) é a adoção do padrão PCI Express para uso com placas de vídeo gráficas, a julgar pela configuração oferecida pelas placas-mães mais recentes, muitas delas incluindo slot PCI Express.

III.3 - Os Barramentos Secundários IDE, EIDE (PATA) e SATA Atualmente há três tipos de barramentos, ditos aqui, secundários: O EIDE (“Enhanced Integrated Drive Eletronics”), o SATA e o SCSI (“Small Computer System Interface”). Nesta seção, serão tratados os dois primeiros tipos. Na seção seguinte será visto o barramento SCSI. Na literatura técnica, normalmente esses barramentos são chamados de interface. Portanto, a partir deste ponto usaremos os dois termos indistintamente.

III.3.1 - A interface IDE Esta interface se tornou padrão de mercado durante muitos anos por dois bons motivos: a facilidade de uso e o baixo custo. Desenvolvida pela Western Digital e pela Compaq, foi uma evolução natural da interface de disco original do IBM AT - a ST 506 - apresentada em 1984. As controladoras IDE (e não EIDE) não possuiam ROM na placa, pois os

Page 93: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

93

sistemas IBM PC AT e compatíveis dispunham de rotinas internas da BIOS para suportar este padrão de disco rígido. As controladoras IDE usam endereços de portas I/O de 1F0 a 1F7 para os registradores de controle e IRQ14 para o atendimento às interrupções. A antiga controladora IDE continha um pequeno cache de disco, que variava de 32 a 512 KB, o qual proporcionava um ganho de desempenho. Os discos IDE possuem a controladora integrada no próprio disco. A controladora é conectada ao barramento do sistema usando um único cabo de fita achatada. Ele é acoplado a um conector de 40 pinos na placa-mãe ou numa placa adaptadora separada. A placa é simplesmente uma interface para o barramento do sistema PC. Uma de suas características populares é a transparência. Não é necessário um driver especial para um disco IDE, pois este é definido e suportado na BIOS do sistema e na própria interface IDE. As desvantagens principais da interface IDE são: a limitação no tamanho dos discos que podem ser acoplados e nas taxas de transferência de dados que podem ser alcançadas. A capacidade dos drives IDE é restringida não pela BIOS ou pela interface individualmente, mas pela combinação das duas. Tanto a BIOS do PC padrão, quanto a interface IDE suportam drives de grande capacidade. Entretanto, quando combinadas, não conseguem suportar drives acima de 528 MB, devido aos diferentes números de bits que cada uma reserva para definir as diferentes características: cilindros, cabeças e setores por trilha - de um drive. A taxa de transferência de uma unidade IDE está limitada ao máximo de 5 MBytes/s, num barramento ISA. Uma placa IDE controlava no máximo dois discos rígidos e dois acionadores de discos flexíveis.

III.3.2 - A Interface EIDE A interface EIDE (“Enhanced IDE”) é uma versão mais avançada da interface IDE, com melhor desempenho, mais recursos, suportando até 4 drives de (dois canais) dispositvos conectados ao barramento, incluindo CD-ROMs e melhor aproveitamento do barramento local, seja VESA ou PCI. Os discos do antigo padrão IDE tinham no máximo 528 MB e velocidade máxima de 5 MBytes/s, enquanto os EIDE chegam até 8,4 GB, tamanho máximo de disco e arquivo reconhecido pelo Windows NT, por exemplo. A velocidade máxima atingida por esses discos é 13,3 MBytes/s. Em condições normais a taxa alcançada pelo EIDE é de 10 MBytes/s. A tabela 12 a seguir exibe as taxas atuais das interfaces EIDE.

Taxas de Transferência Teóricas do Barramento IDE (ATA) single word DMA 0 2.1 MByte/s

PIO mode 0 3.3 Mbyte/s

single word DMA 1, multi word DMA 0 4.2 MByte/s

PIO mode 1 5.2 MByte/s

PIO mode 2, single word DMA 2 8.3 MByte/s

Taxas de Transferência Teóricas do Barramento EIDE (ATA-2) PIO mode 3 11.1 MByte/s multi word DMA 1 13.3 MByte/s PIO mode 4, multi word DMA 2 16.6 MByte/s Ultra DMA mode 2 33.3MB/s

Taxas de Transferência do Barramento Ultra-ATA (33 e 100 ou ATA-3)

multi word DMA 3 33.3 MByte/s Taxas de Transferência do Barramento Ultra-ATA (ATA-4)

Ultra DMA mode 4 66.6MB/s

Tabela 12 – Taxas de Transferência EIDE e Ultra-ATA

Page 94: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

94

III.3.3 - A Interface SATA

O barramento Serial ATA (SATA), é primariamente projetado para transferir dados para e do disco rígido. SATA é o sucessor do legado padrão ATA (“Advanced Technology Attachment”), também conhecido como IDE ou EIDE. Esta velha tecnologia foi retroativamente renomeada para “Parallel ATA” ou PATA, de forma a se fazer a distinção para Serial ATA.

O barramento SATA é definido sobre 2 conectores separados: um conector para dados e outro conector para alimentação elétrica. Um disco rígido SATA pode ter um terceiro conector para conexão de alimentação legada PATA. Pode-se usar o conector de alimentação PATA, ao invés do SATA. O conector de alimentação PATA é mais confiável que a conexão de alimentação do SATA. A figura 82 exibe o conector SATA.

Figura 82 – Conector SATA

A interface Serial ATA é a versão serial da especificação IDE (ATA). SATA usa um cabo de 4 condutores com 2 pares diferenciais (TX/RX), mais 3 pinos de Terra e 1 conector de potência separado.

Os dados são transmitidos a 150 MB/s (1.5 GHz) usando codificação 8B/10B e sinal de 250 mV, com um comprimento máximo de barramento de 1 metro. Melhoramentos na interface SATA estão movendo a velocidade de transferência de dados para: 300MBps (3.0 Gbps) e 600MBps (6.0 Gbps). A velocidade atual para SATA é de 300MBps (3.0 Gbps).

A pinagem do padrão SATA e de alimentação PATA são mostrados a seguir:

Pinagem SATA, DadosPin # Nome do Sinal Descrição do Sinal

1 GND Ground 2 A+ Transmit + 3 A- Transmit - 4 GND Ground 5 B- Receive - 6 B+ Receive + 7 GND Ground

Page 95: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

95

Pinagem SATA, AlimentaçãoPin # Nome do Sinal Descrição do Sinal

1 V33 3.3v Power 2 V33 3.3v Power 3 V33 3.3v Power, Pre-charge, 2nd mate 4 Ground 1st Mate 5 Ground 2nd Mate 6 Ground 3rd Mate 7 V5 5v Power, pre-charge, 2nd mate 8 V5 5v Power 9 V5 5v Power 10 Ground 2nd Mate 11 Reserved - 12 Ground 1st Mate 13 V12 12v Power, Pre-charge, 2nd mate 14 V12 12v Power 15 V12 12v Power

Pinagem IDE - Alimentação Pin # Função do Sinal Fio 18 AWG

1 +12V DC Yellow 2 +12V Return Black 3 +5V Return Black 4 +5V DC Red

SATA 1.5 Gb/s

A primeira geração da interface serial, SATA/150, opera a 1,5 GHz. Como já mencionado, SATA usa codificação 8B/10B na camada física. Esta codificação tem uma eficiência de 80%, resultando na taxa de transferência atual de 1.2 Gbps ou 150 Megabytes/s (MBps). A simplicidade relativa de um link serial e o uso de LVDS (“Low-Voltage Diferential Signaling”) permite o uso de cabos mais longos e o caminho de transição para velocidades mais altas.

SATA 3.0 Gb/s

Logo depois da introdução do SATA, melhoramentos foram feitos no padrão. A taxa de sinalização de 3,0 Gbps foi adicionada à camada física, oferecendo o dobro da taxa de transmissão de dados. Para assegurar a compatibilidade com a versão anterior, os discos rígidos de 3,0 Gbps suportam a taxa anterior de 1,5 Gbps. Na prática, discos mais antigos são dotados de um jumper para serem manualmente limitadas a taxa de 1,5 Gbps. Os discos novos de 3,0 Gbps suportam negociação de velocidades e operam tanto numa como noutra velocidade.

A versão SATA 3Gb/s também usa a codificação 8B/10B da versão anterior. Logo, a taxa de transferência atual desta última versão é de 2.4 Gb/s ou 300 MB/s.

A especificação de 3.0 Gb/s tem sido amplamente referenciada como “Serial ATA II”, contrariando o desejo da organização de padrões SATA, que é a autora do projeto. O site oficial da organização em http://www.sata-io.org/namingguidelines.asp ressalta que SATA II era um nome que foi dado em um dado momento e sugere que o nome a ser utlizado seja “SATA 3Gbps”. A “Serial ATA Standards Organization” mudou de nome e chama-se hoje “The Serial ATA International Organization” (ver http://www.sata-io.org/), abreviadamente, SATA-IO.

Page 96: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

96

SATA 3Gb/s é algumas vezes também referenciado no mercado como “SATA/300” ou “SATA II”, continuando a linha PATA/100, PATA/133 e SATA/150.

SATA 6.0 Gb/s

A SATA-IO está planejando o aumento máximo da taxa de transmissão do SATA para 600 MB/s em 2007. Embora esse pico teórico de velocidade seja dobrado, discos convencionais não respondem a essa velocidade.

III.3.4 - Inovações do padrão SATA

O SATA não usa o esquema de barramento compartilhado Mestre/Escravo usado no EIDE ou PATA, fornecendo a cada dispositivo um cabo e largura de banda dedicados. Diferentemente do PATA, o SATA inclui hot-swapping e enfileiramento nativo de comandos.

Para facilitar a transição para SATA, muitos fabricantes têm produzido drives que usam controladores quase idênticos aos drives PATA e incluem um “bridge chip” sobre a placa lógica. Drives “bridged” que possuem um conector SATA podem incluir uma ou ambas as espécies de conectores de alimentação. Eles podem, entretanto, necessitar de suporte para características específicas SATA. Todos os maiores fabricantes de disco rígido têm produzido drives SATA nativos ou “bridged”.

Drives SATA podem ser plugados a controladores SCSI (do tipo SAS – “Serial Attached SCSI”) e se comunicar sobre o mesmo cabo físico como os discos nativos SATA. Discos SAS, entretanto, não podem ser plugados dentro de um controlador SATA.

Cabos e Conectores

Fisicamente, cabos de alimentação e dados SATA são notavelmente diferentes dos cabos PATA. O padrão SATA define um cabo de dados usando 7 condutores e uma “wide wafer” de 8mm de largura em cada terminal. Cabos SATA podem ter até 1 metro de comprimento. O cabo largo PATA porta 40 ou 80 fios condutores e são limitados a 46 cm de comprimento. A redução de condutores faz os conectores e cabos SATA muito mais estreitos que os do PATA, tornando-se então mais convenientes ao encaminhamento dentro de espaços estreitos e reduzindo obstruções a ventilação de ar. Cabos SATA são chaveados, não necessitando da considerável força de instalação.

O padrão SATA também especifica um conector de alimentação muito diferente do conector Molex de 4 pinos usados pelos drives PATA e muitos outros componentes de computador. Como o cabo de dados, este é baseado em uma waffer, mas sua forma mais larga de 15 pinos previne de uma confusão entre os dois. A largura do conector é justificada pelo grande número de pinos usados para fornecer 3 diferentes voltagens, se necessário: 3,3V, 5V e 12V. Cada voltagem é fornecida por 3 pinos engatados juntos (e 5 pinos de terra). Pinos pequenos não podem fornecer corrente suficiente para alguns dispositivos, então eles são combinados. 1 pino de cada uma das 3 voltagens é utilizado para hotplugging. As mesmas conexões físicas são usadas em discos rígidos de 3,5 pol. (90mm) e 2,5 pol. (70mm).

External SATA (eSATA)

eSATA foi padronizado no meio de 2004, com cabos, conectores e requisitos de sinal para drives SATA externos. O drive eSATA é caracterizado por:

• Velocidade total SATA para discos externos (115MB/s medidos com RAID enclosures) • Nenhuma conversão de protocolo de IDE/SATA para USB/Firewire. Todos as características dos discos

estão disponíveis para o host; • O comprimento do cabo é restrito 2m. Com USB e Firewire se alcança distâncias maiores. • Mínima e máxima voltagem de transmissão de 400mV - 500mV • Mínima e máxima voltagem de recepção de 40mV - 500mV

USB e Firewire requerem conversão de toda a comunicação com o disco externo. Então encapsulamentos USB/Firewire incluem uma pastilha bridge IDE ou SATA que translaciona do protocolo ATA para USB ou Firewire. A velocidade de transferência obtida com USB/Firewire é somente cerca de metade da taxa de barramento de dados de cerca de 50MB/s. Portanto, conexões externas através de USB/Firewire são bem mais lentas que as conexões nativas SATA.

Page 97: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

97

Atualmente, a maioria das placas-mães não tem conector eSATA. eSATA pode ser habilitado através da adição de uma HBA (“Host Bus Adapter”) eSATA ou conector para sistemas desktop Cardbus ou ExpressCard para notebooks.

Antes da especificação final para eSATA, houve numerosos produtos projetados para conexões externas de drives SATA. Alguns usam um conector interno SATA ou mesmo conectores projetados para outras especificações de interfaces, tais como IEEE 1394. Esses produtos não são eSATA compliant.

eSATA não provém alimentação, o que significa que discos externos de 2.5", os quais serão alimentados sobre cabo USB ou Firewire, necessitam de um cabo separado de alimentação quando conectado sobre eSATA. A Tabela 13 exibe alguns parâmetros de comparação de eSATA com outros barramentos.

eSATA comparado a outros barramentos

Barramento eSATA PATA Fire Wire 1394b USB 2.0

Velocidade atual 2.4 >Gb/s 1064 Mb/s 786 Mb/s ~375 Mb/s

Máx comp. do cabo 2 metros 46 cm 4.5 metros 16 cabos podem ser encadeados até 72 metros 5 meters

Cabo de Alimentação? Sim Sim Não Não

Dispositivos por Canal

1 (5 com multiplicador)

3 (3° disp. read -only) 63 127

Tabela 13 – Comparação de eSATA com outros barramentos

Compatibilidade com legado

A compatibilidade de SATA com dispositivos anteriores não existe, uma vez que o mesmo não opera com os mesmos conectores que IDE, SCSI ou qualquer outro formato de disco rígido conectado a este. É possível comprar conversores que se ligam em discos SATA e permitem que funcione como um drive IDE. Isto pode ser útil em situações onde se deseja usar um drive SATA sobre placas-mães que não possuem conexões SATA.

SATA vs SCSI

SCSI atualmente oferece taxas de transferência mais altas que SATA, mas é um barramento mais complexo, resultando em um custo mais alto para o usuário. Alguns fabricantes oferecem garantias por período mais longo para SCSI, indicando que o controle de qualidade de fabricação de dispositivos SCSI é melhor do que para dispositivos PATA/SATA.

III.4 - Os Barramentos Secundários SCSI e SAS

III.4.1 - O Barramento SCSI

Em 1979 a empresa Shugart Associates Systems Interface criou uma tecnologia que permitia altas taxas de transferência de dados. Em 1980 essa tecnologia era definida como SCSI-1 direcionada a discos rígidos e passa a ser reconhecida no mercado logo em seguida. A interface SCSI é uma interface de propósito geral usada para acoplar vários dispositivos de I/O ao computador. Esta consiste num barramento paralelo de 8 bits que pode suportar até oito dispositivos, entre discos rígidos, acionadores de discos flexíveis, CD-ROMs, fitas DAT, Scanners e a própria placa controladora. Cada um possui um controlador próprio, que recebe instruções através do barramento. A placa de interface SCSI, que ocupa um conector de expansão do PC, é chamada de placa hospedeira. Ela controla o barramento SCSI, enviando comandos e dados para os dispositivos, recebendo confirmações e dados dos mesmos.

Page 98: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

98

O barramento SCSI usa um protocolo de comandos e não uma interface de unidade. Para ler um bloco de dados, a placa hospedeira envia um comando através do barramento, como uma seqüência de bytes. O dispositivo alvo decodifica e executa, enviando depois os dados. Teoricamente, isto oferece independência de dispositivo. Na prática, entretanto, nem sempre isto se verifica, devido às variações nas implementações de diferentes fabricantes. O padrão SCSI define um tipo de dispositivo que possui algoritmo interno de manipulação das requisições de leitura e escrita de dados. Ao contrário das interfaces IDE, que operam numa relação Mestre-Escravo, as controladoras SCSI podem reordenar as requisições aleatórias de dados, provenientes de diversos dispositivos, para minimizar o tempo de busca das informações. Os discos rígidos SCSI têm capacidade que varia desde 200 MB até centenas de gigabytes, não precisando de nenhum recurso especial de configuração. Vale lembrar que o DOS 6.22 e o Windows 3.11 “viam” arquivos e discos de até 2 GB, apenas. Essas diferenças refletem-se nas aplicações destinadas aos dois tipos de interface (SCSI e IDE). Os sistemas SCSI são recomendados para ambientes que exijam segurança, rapidez e suporte a vários dispositivos. O SCSI-1 é o padrão inicial que definiu um barramento paralelo de 8 bits e suportava taxas de transferências de até 5 MBytes/s. O SCSI-2 surgiu logo depois da consolidação do primeiro padrão. O SCSI-2 suporta um barramento mais rápido, de 16 ou 32 bits e mantém a compatibilidade com o anterior, de 8 bits. O SCSI-2 foi divulgado publicamente em 1990 e pode atingir, teoricamente, a taxa de transferência de até 40 MBytes/s. Os dispositivos SCSI-2 que suportam o barramento mais rápido, de 10 MBytes/s, são chamados Fast SCSI, enquanto os que aceitam barramento de 16 ou 32 bits de 20 MBytes/s, são conhecidos como Wide SCSI. Existem ainda interfaces e dispositivos que combinam esses dois padões, o Fast SCSI e o Wide SCSI, que podem atingir velocidades de até 40 MBytes/s. O padrão denominado SCSI-3 é um barramento de 16 bits, com velocidade de até 40 MBytes/s, cabeamento de fibra óptica, podendo suportar de 8 a 32 dispositivos. Uma controladora SCSI Disk Array possui alta performance e confiabilidade. Dentro do Disk Array, todos os discos são vistos como um só. Isto possibilita a distribuição dos dados pelos vários discos, permitindo um acesso de alto desempenho através de operações de I/O simultâneas. Além disso, o Disk Array dispõe de várias implementações de RAID (Redundant Array of Inexpensive Disk) que garantem a integridade das informações, como o espelhamento (“mirroring”) e a técnica de paridade. As Tabelas 14, 15 e 16 a seguir exibem um resumo das velocidades alcançadas e outros parâmetros, pelos diversos padrões de barramento secundário.

Barramento Dados Conector (pinos)

Periféricos (número)

Taxa de Transferência (MBytes/s)

IDE 16 40 2 5 EIDE 16 40 4 10 SCSI 8 50 8 5 Fast SCSI-2 8 50 8 10 Fast & Wide SCSI-2 8/16/32 50/68 8 20 Ultra Fast Wide SCSI-2 8/16/32 50/68 32 40 Wide Ultra-2 SCSI 8/16 50/68 16 80 Ultra160 16 68 16 160 Ultra320 16 68 16 320

Tabela 14 – Barramentos EIDE e SCSI

Taxas de Transferência do Barramento SCSI

SCSI bus clock 8-bit (cabo de 50 vias) 16-bit (cabo de 68 vias, Wide SCSI)

5 MHz (SCSI 1) 5 MBytes/s - 10 MHz (Fast SCSI, SCSI II) 10 MByte/s 20 MBytes/s 20 MHz (Fast-20, Ultra SCSI) 20 MByte/s 40 MBytes/s

Page 99: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

99

40 MHz (Fast-40, Ultra-2 SCSI) 40 MByte/s 80 MBytes/s Ultra-160 SCSI - 160 MByte/s Ultra-320 SCSI - 320 MByte/s

Tabela 15 – Taxas de Transferência SCSI

Tecnologia Comp. Máx. do cabo (metros)

Vel. Máxima (MBps)

Número Máx. de Dispositivos

SCSI-1 6 5 8 SCSI-2 6 5 8 or 16 Fast SCSI-2 3 10 8 Wide SCSI-2 3 20 16 Fast Wide SCSI-2 3 20 16 Ultra SCSI-3, 8-bit 1.5 20 8 Ultra SCSI-3, 16-bit 1.5 40 16 Ultra-2 SCSI 12 40 8 Wide Ultra-2 SCSI 12 80 16 Ultra-3 (Ultra160) SCSI 12 160 16 Ultra-3 (Ultra320) SCSI 12 320 16

Tabela 16 – Detalhes do Barramento SCSI

III.4.2 - O Barramento SAS A interface SAS (“Serial Atacched SCSI”) procura reunir a confiabilidade do protocolo SCSI com a flexibilidade da transmissão serial. Entre outros aspectos, a transmissão serial é considerada estável, confiável e permite a utilização de conectores mais simples. SATA e SAS estão mais posicionadas no mercado de discos para desktops e Servidores de Armazenamento de Dados (DAS – “Direct Attached Storage”) de empresas, respectivamente. Já a interface Fibre Channel tem sua aplicação mais comum no mercado de Redes de Armazenamento de Dados (SAN – “Storage Area Networks”). A tabela 17 exibe algumas características das interfaces SATA, SAS e Fibre Channel.

Interface SATA SAS Fibre Channel

Desempenho Half-Duplex Full-Duplex Full-Duplex 150/300/600 Mbps 300/600 Mbps 200/400 Mbps

Conectividade Cabo Interno de 1m

Cabo Externo de até 6m Cabo Externo de até 15m

1 dispositivo por interface Até 128 dispositivos Até 127 dispositivos ligados em

Loop apenas SATA SAS e SATA apenas FC

Interfaces

HDs de porta única SATA

HDs com 2 portas (SAS e SATA)

HDs c/ 2 portas (SAS ou SCSI e FC)

Conexão simples ponto-a-ponto

Multi-origem ponto-a-ponto

Multiorigem em meio compartilhado ou ponto-a-ponto

Tabela 17 – Características das Interfaces SATA, SAS e FC

A Interface SAS suporta 3 protocolos de transporte:

• O SSP – Serial Protocol SCSI ( discos SCSI) • O STP – Serial ATA Tunneling Protocol (discos SATA) • O SMP – Serial Management Protocol (expansores SAS)

Page 100: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

100

Essa característica permite a conectividade de discos SATA e SAS simultaneamente. Uma HBA (“Host Bus Adapter”) SAS, placa de conexão a um barramento instalada em computador, de duas portas pode controlar tanto discos SATA, quanto discos SAS. Um conector SAS suporta drives SATA, mas um conector SATA não suporta drives SAS. Podem ser encontradas informações detalhadas em http://www.scsita.org/.

III.5 - Barramentos Fibre Channel e InfiniBand

III.5.1 - O Barramento Fibre Channel Fibre channel é uma tecnologia que foi primeiramente criada para armazenamento de dados em rede. Foi padronizado pelo Comitê Técnico T11 da ANSI (American National Standards Institute). Fibre Channel ou resumidamente FC é um conjunto de protocolos. As implementações atualmente utilizadas são o Fibre Channel Arbitrated Loop (FC-AL) e o Switched Fabric (FC-SW). Os protocolos Fibre Channel surgiram para simplificar as ligações e diminuir as perdas de sinal, aumentando assim as distâncias máximas permitidas. A foto a seguir mostra um adaptador FC.

São três as maneiras de interligação de dispositivos FC: - Point-to-Point (FC-P2P): Dois dispositivos são ligados diretamente. Esta é a topologia mais simples. - Arbitrated Loop (FC-AL): Todos os dispositivos estão ligados em loop ou anel. Adicionar ou remover dispositivos obriga a interrupção de toda a atividade. A falha num dispositivo quebra o anel. Existem Hubs Fibre Channel que permitem ligações múltiplas entre dispositivos. - Switched Fabric (FC-SW): Todos os dispositivos FC estão ligados a switches, numa ligação similar às redes Ethernet atuais. A arquitetura de protocolos FC consiste de 5 camadas: FC0 - Camada Física - inclui cabos, conectores, parâmetros ópticos e elétricos, etc; FC1 - Camada de Enlace de dados - implementa a codificação e descodificação do sinal e controle de erros; FC2 - Camada de rede - define a estrutura dos quadros do FC e os protocolos de sinal, de Controle de Fluxo e as classes de serviço que o FC suporta. Para suportar estes serviços, o FC-2 define formatos de mensagens: Ordered Set, Frame, Sequence e Exchange; FC3 - Camada que implementa funções auxiliares;

- Striping - Multiplica largura de banda usando multiplas N_ports; - Hunt groups - Habilidade de mais do que uma porta responder a um mesmo endereço (diminui as hipoteses de procurar N_port ocupadas); - Multicast - Uma transmissão para várias portas destino. (p.e. todas as N_Ports de um Fabric (broadcast) ou apenas para um subconjunto de N_Ports num Fabric)

FC4 - Camada da Aplicação - define interfaces com vários protocolos de nível superior; responsável pelo encapsulamento das várias camadas; FC0, FC1 e FC2 são também conhecidas por FC-PH - Camada Física do FC.

Page 101: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

101

Os produtos FC estão disponíveis a velocidades de 1 Gbps, 2 Gbps e 4 Gbps. Já existe o padrão de 10 Gbps, mas ainda não há produtos disponíveis. Está sendo desenvolvido também um padrão de 8 Gbps. Produtos baseados nos padrões 1, 2, 4 e 8 Gbips deverão ser interoperáveis , mas o padrão de 10 Gbps precisará de mudanças importantes. As grandes vantagens desta tecnologia são:

• Hot-pluggability - os discos FC podem ser instalados e removidos com o sistema em operação, característica crucial em sistemas de alta velocidade e servidores de grande uso com pouco ou nenhum tempo offline;

• Adaptadores padrão Standard ANSI para interfaces série – Fibre Channel não requer adaptadores especiais, que podem ser caros.

• Velocidade – Bem configurado, o FC é a opção mais rápida (atualmente até 4 Gbps), mas expansível até 10 Gbps.

• Loop redundância – Fibre channel permite alta integridade de dados em sistemas com múltiplos drives, incluindo Fibre Channel RAID.

• Cabeamento mais longo – FC consegue manter a integridade dos dados em cabos compridos, pois usa LVD - Low Voltage Differencial.

III.5.2 - O Barramento InfiniBand InfiniBand é um link de comunicação primariamente usado para computação de alto desempenho. O InfiniBand ainda está em desenvolvimento e promete várias novidades para o futuro. O principal objetivo deste novo barramento de dados é interligar servidores e dispositivos de armazenamento localizados a curtas distâncias, servindo como uma opção mais rápida às redes Ethernet. Usando o InfiniBand, um servidor de bancos de dados poderia acessar um dispositivo de armazenamento externo, sem nenhum gargalo, como se fosse um dispositivo local, o que abre muitas possibilidades nos servidores de alto desempenho, clusters e servidores virtualizados . O InfiniBand é um barramento serial que oferece 2.5 Gbps (312 MB/s) por par de cabos, onde um envia e outro recebe dados. Como a comunicação é bidirecional, temos 312 MB/s em cada sentido, totalizando um barramento total de 625 MB/s, mas que poderia ser utilizado plenamente apenas caso ambos os dispositivos transmitissem grandes quantidades de dados ao mesmo tempo, um cenário semelhante ao que temos ao habilitar a transmissão full-duplex numa rede Ethernet. Também é possível aumentar a largura do barramento usando mais cabos, A especificação original fala em links com até 12 pares, que permitiria links de até 3.75 GB/s em cada sentido, muito mais do que as redes Gigabit Ethernet (125 MB/s) e 10 Gigabit Ethernet (1.25 GB/s) são capazes de oferecer. Em compensação, as redes Ethernet já estão aí, enquanto o InfiniBand continua sendo uma promessa. Entretanto, já há fabricantes de servidores de alta densidade de primeira linha que já utilizam e comercializam seus produtos com o InfiniBand. Espera-se que a especificação final do InfiniBand permita que o barramento seja utilizado também para interligar componentes internos dos PCs, substituindo o PCI ou funcionando como um barramento complementar, o que aumentaria bastante a flexibilidade.

Page 102: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

102

IV - SUPORTE AO DESENVOLVIMENTO DE SOFTWARE BÁSICO

IV.1 - Estrutura de um Programa na Memória A Figura 83 exibe a evolução da estrutura de um programa na memória, desde o 8085 até o i486. 80386/i486 8086/8088 8080/8085 FFFFFFFF FFFFF FFFF 4.0 GB => 64 KB => 1.0 MB => 0000 00000 00000000

Figura 83 – Estrutura de um Programa na Memória (do 8085 ao i486)

IV.2 - Montadores e Depuradores de Linguagem Assembly O desenvolvimento de software em linguagem Assembly assemelha-se em muito com o desenvolvimento de software em linguagens de alto nível, como C, PASCAL, etc. No caso das linguagens de alto nível temos programas editores, compiladores, ligadores e depuradores para auxiliar no desenvolvimento de software. O processo de desenvolvimento de software é mostrado na figura 84.

COMPILADORES LIGADORES MONTADORES CARREGADORES

Figura 84 – Processo de Desenvolvimento de Software em Assembly A linguagem Assembly depende do microprocessador utilizado. Mesmo microprocessadores da mesma família possuem conjuntos de instruções diferentes. As linguagens são dependentes da arquitetura do microprocessador e exigem o conhecimento desta. No caso das linguagens de baixo nível têm-se MONTADORES, CARREGADORES e DEPURADORES. Em seguida, são dadas as respectivas definições. • MONTADORES: São programas que traduzem o programa fonte escrito em linguagem Assembly para

programas objetos. Montadores testam a correção da sintaxe utilizada pela linguagem para representar o programa fonte;

Código Código Código

Dados

Pilha

Dados

Pilha

Extra

Dados 2

Dados 1

Pilha

Módulo Fonte ou Programa Fonte

Módulo Objeto ou Programa Objeto

Módulo de Carga ou Programa Executável

Page 103: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

103

• CARREGADORES: São programas que transferem o conteúdo do programa objeto, já montado, da memória secundária para a memória principal do microcomputador;

• DEPURADORES: São programas que auxiliam no processo de testar a correção do programa objeto.

Depuradores testam a semântica do programa objeto já montado.

IV.3 - Uso de um Depurador de Linguagem Assembly O formato típico de uma linha fonte inclui os campos RÓTULO, MNEMÔNICO, OPERANDO(S) e COMENTÁRIOS, separados por caracteres separadores de campos, tais como ":" e ";". Têm-se três tipos de linhas fonte: INSTRUÇÕES, DIRETIVAS e CONTROLES (próprios de cada montador Assembly ou "Assembler"). O montador Assembly do 8080/Z80, a partir de um arquivo ".ASM" gera dois tipos de arquivo, um em formato hexadecimal, ".HEX" (programa objeto) e outro em formato hexadecimal mais o programa fonte original, ".PRN" (este último pode ser impresso). O carregador usa como entrada o arquivo em hexadecimal para gerar um programa executável, ".COM", como saída. Existem vários montadores Assembly para o 8086/8088, entre eles o chamado MASM ("Macro ASseMbler Programming"). O texto a seguir mostra o processo de geração de arquivos com o MASM e demonstra o uso de um depurador Assembly. C:\>edlin arq.asm ==> Gera arq.asm ... C:\>masm arq; ==> Gera arq.obj ... C:\>link arq; ==> Gera arq.exe ... C:\>debug arq.exe ==> Depura arq.exe -A 100 ==> Assemblar 0939:0100 MOV AH,2 0939:0102 MOV DL,21 0939:0104 INT 21 0939:0106 INT 20 0939:0108 <Enter> -U 100 106 ==> Desassemblar (“Unassenbly”) 0939:0100 B402 MOV AH,02 0939:0102 B221 MOV DL,21 0939:0104 CD21 INT 21 0939:0106 CD20 INT 20 -R ==> Mostrar conteúdo dos Registradores AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0939 ES=0939 SS=0939 CS=0939 IP=0100 NV UP DI PL NZ NA PO NC 0939:0100 B402 MOV AH,02 -T ==> Executa passo-a-passo (“Trace”) AX=0200 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0939 ES=0939 SS=0939 CS=0939 IP=0102 NV UP DI PL NZ NA PO NC 0939:0102 B221 MOV DL,21

Page 104: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

104

-T ==> Executa passo-a-passo AX=0200 BX=0000 CX=0000 DX=0021 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0939 ES=0939 SS=0939 CS=0939 IP=0104 NV UP DI PL NZ NA PO NC 0939:0104 CD21 INT 21 -G ==> Executa programa (“Go”) ! Program terminated normally -Q ==> Sai do DEBUG (“Quit”) C:\> Para concluir este item pode-se dizer que qualquer software em linguagem Assembly pode ser desenvolvido e testado em um microcomputador comum para posterior gravação em memória PROM, EPROM ou EEPROM, a qual ficaria residente no sistema controlado por microprocessador. Programadores e apagadores de EPROM estão disponíveis no mercado, para facilitar o processo de programação física da EPROM e eventual apagamento devido a alterações no programa residente. No caso da EEPROM, isto não é necessário, pois este tipo de memória pode ser apagado e reprogramado (“Electricaly Erasable”) diretamente no sistema a microprocessador, sem desligamento da máquina.

Page 105: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

105

V - Os Microprocessadores da Motorola A fabricante Motorola era a principal concorrente da Intel na época do surgimento do PC (“Personal Computer”). No interior deste capítulo serão citadas, oportunamente, as diferenças entre o microprocessador 68.000 da Motorola e o seu concorrente mais próximo na época, o 8086. Será dado um enfoque comparativo para que se possa ter uma idéia das diferenças de arquitetura entre os micros da linha PC/PS e os da linha Apple/Macintosh e suas implicações no desempenho dessas máquinas.

V.1 - O 68.000 O 68.000 foi o primeiro microprocessador de 16 bits da MOTOROLA e o terceiro a surgir no mercado, tendo sido precedido pelo 8086 da INTEL e pelo Z8000 da ZILOG. O 68.000 não é compatível em software com a família de 8 bits da MOTOROLA (família 6800). A empresa optou pelo projeto de um conjunto de instruções de máximo desempenho e simplicidade, ao invés de compatibilidade com os seus predecessores. O 68.000, possui características internas apropriadas para suportar o sistema operacional UNIX. Em outras palavras, foi concebido para receber um sistema operacional multitarefa e multiusuário, diferentemente do 8086. Por essa e outras características, pode-se dizer que este possui muito mais capacidade do que um 8086. O nome Macintosh surgiu quando em 1796, em Ontário - Canadá, um fazendeiro de nome McIntosh tornou popular uma maçã, lhe dando o seu nome. Jef Raskin, consumidor habitual deste tipo de maçã e responsável, no seu início, pelo projeto de um micro revolucionário na APPLE, batizou este micro de Macintosh (com erro voluntário de ortografia).

V.1.1 - Arquitetura A arquitetura do 68.000 usava a técnica de "pipeline" para aumentar a taxa de execução de instruções. O 8086 também fazia uso de "pipeline", utilizando para isso uma fila de 6 bytes para código objeto. O 68.000 endereçava 16.0 MBytes diretamente, através de suas 24 linhas de endereço, e indiretamente 64 MBytes. O 8086 podia endereçar diretamente apenas 64 Kbytes e 1.0 Mbytes, respectivamente, através de seus registradores de segmento. O 68.000 operava em dois modos: modo Supervisor e modo Usuário. No Modo Supervisor o 68.000 podia executar instruções privilegiadas, não executáveis no Modo Usuário. Assim, o 68.000 suportava um sistema operacional multitarefa e multiusuário. O 8086 não possuía modos similares, apenas a partir do 80286 pode-se contar com o suporte a ambientes multitarefa e multiusuário. Internamente, o 68.000 possuía 17 registradores de 32 bits, sendo oito para dados e nove para endereços (dois desses últimos reservados para apontadores de pilha). O 8086 tinha somente 4 registradores de 16 bits mais três registradores de índice separados. Esta característica trazia vantagens em desempenho para o 68.000, uma vez que mais operações podiam ser realizadas no interior da pastilha, evitando acessos frequentes à memória principal, o que significaria atrasos ainda maiores no processamento. O 68.000 em seu encapsulamento de 64 pinos possuía linhas de dados e endereços separadas. Já o 8086 multiplexava linhas de dados e endereços em seu encapsulamento de 40 pinos, sendo então necessária uma lógica de demultiplexação externa a pastilha para recuperar os barramentos de dados e endereços. Se por um lado a MOTOROLA não economiza espaço, ao mesmo tempo elimina a necessidade de circuitos adicionais na placa-mãe. O 68.000 era compatível em hardware com os circuitos periféricos de 8 bits da própria MOTOROLA. Uma similaridade é encontrada no 8088 da INTEL, também compatível em hardware com os circuitos periféricos de 8 bits da própria INTEL. As duas fábricas sempre lançam pastilhas compatíveis com circuitos periféricos de seus antecessores. Os tipos de dados suportados pelo 68.000 são: bit, nibble (4 bits), byte, word e long-word (32 bits). Este opera em ponto flutuante tão rápido quanto o par 8086/8087. Aqui praticamente não existem diferenças importantes.

Page 106: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

106

V.1.2 - Diferenças no Conjunto de Instruções O conjunto de instruções do 68.000 era composto de apenas 56 instruções básicas, podendo atingir até 1000 combinações. O 8086 possuía um conjunto complexo de instruções em número elevado e na sua maioria com finalidades específicas. Do ponto de vista do programador Assembly é razoável raciocinar que este consiga programar mais rápido com um conjunto poderoso de poucas instruções ao invés de um conjunto também poderoso, mas com um número elevado de instruções a escolher.

V.1.3 - Capacidade de Interrupção A MOTOROLA usa a designação de "Exceção" para o que o 8086 interpreta como "Interrupção". A MOTOROLA considera que interrupções são casos particulares de exceções. O 68.000 tratava dois tipos de exceção: as exceções geradas internamente e as geradas externamente, como segue. • Exceções Internas: procedimentos de exceção são executados quando a CPU detecta erros internos, tais como:

erros de endereçamento, violação de privilégio e códigos de operação ilegais ou quando a CPU executa determinadas instruções de programa, tais como: TRAP e TRACE;

• Exceções Externas: procedimentos de exceção são executados quando a CPU recebe sinais de hardware de

fontes externas, tais como: erros de barramento, reset e pedido de interrupção. Uma tabela de vetores para processamento de exceções fica alocada na memória residente, contendo 256 possíveis vetores para processamento de exceções (1024 bytes). No 68.000 há 7 (sete) níveis de prioridade para exceções. No 8086 havia 3 (três) níveis de prioridade de interrupção (software, não mascarável e mascarável, nessa ordem). Isto não chega a ser uma vantagem do 68.000, uma vez que no caso de microcomputadores, tais níveis são largamente suficientes. A vantagem do 68.000 aqui vinha do fato de que o tratamento de exceções possuía um esquema mais direto e simples que no 8086, onde o programador tem mais preocupações. Vale ressaltar, que quanto menor é o tempo de programação maior é a produtividade do programador e mais rapidamente os produtos são lançados no mercado.

V.2 - O 68.010 Há pouco a dizer sobre o 68.010, a não ser que este é idêntico ao 68.000, com algumas ressalvas. A primeira é a de que usa suporte para memória virtual, ou seja, possui os pinos e os sinais necessários à comunicação com um circuito gerenciador de memória virtual (não disponível no 68.000). A segunda é a de que inclui algumas novas instruções, justamente para gerenciamento desta memória virtual.

V.3 - O 68.020 O 68.020, diferentemente do 68.010, é um microprocessador interna e externamente de 32 bits, ou seja possui uma arquitetura interna preparada para manipular quantidades de 32 bits e acessa a memória de dados de 32 em 32 bits. Além disso, pode endereçar diretamente 4 Gigabytes de memória, através de seu barramento de endereços de 32 bits. O 68.020 é dotado de 3 (três) unidades lógicas e aritméticas, possui uma memória cache interna de 256 bytes ou 64 "long-words" (32 bits) e usa uma estrutura "pipeline" de 3 instruções (busca, decodificação e execução) de 32 bits. A busca de uma instrução no 68.020 significa um acesso a uma instrução de 32 bits e não dois acessos de 16 bits para buscar uma única instrução (como ocorre no 68.000 e 68.010). O 68.020 a 16.67 Mhz é compat¡vel em código objeto com o 68.010 e possui um desempenho 6 (seis) vezes superior ao do 68.000 a 8 Mhz. Foram incluídas ainda, 20 novas instruções e dois novos registradores foram acrescentados no modo supervisor.

V.4 - O 68.030

Page 107: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

107

O antigo Mac SE/30 (CPU 68.030 a 15,667 Mhz) era 4 (quatro) vezes mais rápido que o Mac SE (CPU 68.000). A pastilha 68.030 incorpora a unidade de gerenciamento de memória virtual ou PMMU ("Paged Memory Management Unit"). O barramento do Mac SE/30 foi mudado do NuBus (dos Mac Plus e SE) para o chamado "Direct Slot 030", a fim de se adaptar a capacidade de endereçamento de 32 bits do 68.030. Por isso, este microcomputador não aceitava placas de expansão usadas nas versões anteriores. Um outro antigo modelo, o Mac IIcx também operava sob controle da CPU 68.030, mas numa frequência de relógio de 25 Mhz. Além disso, incorporava uma pastilha (68.882) de gerenciamento de memória virtual e um slot adicional para cache. Não se pode comparar a frequência de relógio de 15,76 Mhz do 68.030 com as frequências, por exemplo do i386 33 Mhz. Arquiteturalmente diferentes, os microprocessadores da INTEL usam vários períodos de relógio (algumas instruções necessitam de até 236 períodos de relógio) ou vários ciclos de máquina para executarem uma instrução, enquanto que os microprocessadores MOTOROLA usam poucos períodos de relógio (a mais longa instrução tem uma duração de apenas 74 períodos de relógio). Portanto, as frequências baixas utilizadas pelos microprocessadores MOTOROLA não significam baixo desempenho como se poderia precipitadamente concluir. Um resumo das característica é listado a seguir. • Compatibilidade em código com a família 68.000; • Unidade de Ponto Flutuante fora da pastilha; • Unidade de Gerenciamento de Memória “on-chip”; • 256 Bytes de cache de instruções e dados; • Interface de Memória de Rajada (“Burst”); • Mecanismo de “Dynamic Bus Sizing”, o qual permite rodar código de 8, 16 e 32 bits; • Disponível em 16, 20, 25, 33, 40 e 50 MHz; • 18 MIPS a 50 MHz;

V.5 - O 68.040 As primeiras versões de Macintosh eram baseadas na CPU 68.000. Versões mais recentes são baseadas nas CPUs 68.040, 68.060 e Power PC. O Diagrama em Blocos do 68.040 é mostrado na Figura 85.

Figura 85 – Diagrama em Blocos do 68.040

Page 108: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

108

Duas unidades de memória independentes se comunicam com a IU e a FPU. Cada unidade possui uma MMU, unidade de gerenciamento de memória virtual, que translaciona endereço lógico para físico. Instruções no interior da pastilha e cache de dados operam independentemente e são acessados em paralelo com a translação de endereço. O cache aumenta o desempenho geral. Tanto a IU como a FPU possuem pipeline e a IU executa concorrentemente com a FPU. O Controlador de Barramento opera em modo Burst, de forma concorrente com todas as outras unidades funcionais. O nível Write-Back de pipeline recebe sempre um resultado prévio da computação que poderá ou não ser escrito em memória externa. Isto aumenta o desempenho, pois o acesso à memória externa é sempre mais demorado que o acesso ao cache interno. Assim, o resultado da computação só é escrito em memória externa, após confirmação do mesmo. As principais características do 68.040 são: • Barramentos de Endereços (4 GBytes) e Dados de 32 bits não multiplexados; • Pipeline de 6 estágios (ver Unidade de Inteiros) • Compatibilidade em código com a família 68.000; • Suporte de Ponto Flutuante “on-chip” (diferentemente do 68.030); • Unidade de Gerenciamento de Memória “on-chip” (como no 68.030); • 4 KB de cache de instruções e 4 KB de cache de dados; • Interface de Memória de Rajada (“Burst”); • Mecanismo de “Dynamic Bus Sizing”, o qual permite rodar código de 8, 16 e 32 bits; • 44 MIPS a 40 MHz; • Disponível em 25, 33 e 40 MHz; • O 68040V é alimentado por 3,3 Volts. O Barramento do Macintosh Neste ponto, vale comentar brevemente o barramento do principal concorrente do PC. O padrão de barramento do Macintosh, por volta de 1989, era o NuBus, ou ANSI/IEEE 1196-1987, concebido no MIT no fim dos anos 70, com forte apoio da Western Digital e da Texas Instruments. A banda passante do NuBus era de 20 MBytes/s e, se utilizado em "modo bloco" podia chegar a uma taxa de 37,6 MBps. Neste ponto, vale ressaltar as bandas passantes, na época, do PC XT, 1,0 MBps, e de um PC AT, 2 MBps. Naqueles anos, o único barramento comparável era o MCA 16 bits, utilizado nos PS/2 da IBM, o qual possuía a mesma banda passante do NuBus. Com este barramento os Macintosh aceitavam placas de 8, 16 e 32 bits. Já nos PCs/PSs, isto variava segundo a máquina. O NuBus foi concebido para ser utilizado por qualquer microprocessador, enquanto que o MCA aceitava somente microprocessadores da INTEL. A implicação disto era que um Macintosh aceitava uma placa 386 da INTEL, podendo rodar DOS ou OS/2, o inverso não era verdadeiro, isto é, não se podia, em princípio, colocar uma placa da APPLE em um PS/2. O fato é que os antigos barramentos dos XTs e ATs estão definitivamente obsoletos, pela sua banda passante hoje considerada insuficiente. Sobre o Sistema Operacional do Macintosh Enquanto os PCs funcionavam sob controle do DOS e do controvertido OS/2, os Macintosh eram controlados por um sistema operacional de propriedade da APPLE, que desde seu lançamento, em 1984, procurou não ser hermético e chegar de uma vez mais próximo do usuário final. Corre o boato que o MS-Windows na sua versão inicial nada mais era do que uma cópia pior do sistema operacional do Macintosh. Assim a APPLE, aproveitando os resultados dos trabalhos do PARC ("Palo Alto Research Center") da XEROX, apresentou um dos primeiros sistemas a adotar a representação simbólica, sob a forma de "ícones" (pictograma que representa um documento, um programa, uma função, etc) de arquivos. Este sistema era composto de um trio: a memória ROM da máquina, os arquivos "System" e "Finder", aos quais vieram se somar cerca de 20 outros módulos anexos. A memória ROM teve pelo menos três versões e continha, além dos programas de interfaceamento com o hardware, programas gráficos, caixa de ferramentas, etc. Os arquivos "System" e "Finder" eram indissociáveis e complementares. Um Macintosh não era "bootável" se estes dois arquivos não fosem encontrados no mesmo subdiretório.

Page 109: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

109

As palavras-chave do sistema operacional do Macintosh são muitas: menus "pop-up" e "pull-down", janelas, ícones, memória morta (ROM), memória viva (RAM), interface SCSI ("Small Computer System Interface"), ToolBox (sub-programas em ROM), "copy", "paste", HFS ("Hierarchical File System"), etc. Juntamente com a versão 5.0 do sistema operacional, foi lançado o "MultiFinder", um "Finder" multitarefa. O "MultiFinder" foi disponibilizado em 1987, anos antes do aparecimento dos primeiros sistemas operacionais multitarefa para micros. A APPLE tem, assim, larga experiência com este tipo de sistema. Por volta de 1992, a Apple anunciou que o sistema operacional acompanhando os novos micros seria o "System 7.1". O Sistema se tornaria "internacional", ou seja, com telas e menus em inglês, espanhol, francês, japonês e português. Esta versão do software vinha embutida nos Macintosh.

V.6 - O 68.060 As principais características do 68.060 são resumidas a seguir. • Compatibilidade total em código com o 68.040; • Implementação Superescalar da arquitetura do 68.000; • Execução de 3 instruções por período de relógio; • 2 Caches de 8 KB “on-chip”; • Barramento de Dados e Endereços de 32 bits não multiplexados (como no 68.040); • Disponível em 50 e 66 MHz; • 100 MIPS a 66 MHz; • 68EC060 não possui FPU, nem MMUs; • 68LC060 não possui FPU O Diagrama em Blocos do 68.060 é mostrado na Figura 86.

Figura 86 – Diagrama em Blocos do 68.060 O mais importante nesta CPU é que a unidade de Inteiros, IU, contém um pipeline dual, uma interface lógica para a FPU e controle lógico para a escrita de dados no cache e MMU. Isto implica na execução de mais de uma instrução durante cada ciclo de clock.

Page 110: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

110

Os seis estágios no pipeline de execução de inteiros são: 1. Decode – (DS) – A instrução é completamente decodificada; 2. Cálculo do Endereço Efetivo (AG) – Cálculo da locação do dado; 3. Busca do Endereço Efetivo (OC) – O dado é buscado da locação de memória; 4. Execução de Inteiros (EX) – O dado é manipulado durante a execução; 5. Disponibilidade de dados (DA) – O resultado está disponível; 6. Write-Back (WB) – O dado resultante é escrito no cache “on-chip” ou na memória externa. O “Branch Cachê” na Unidade de Busca permite a detecção antecipada do salto, antes que a mudança de fluxo afete a unidade inteira.

V.7 - Os PowerPC (IBM/APPLE/MOTOROLA)

V.7.1 - Origem A idéia inicial das 3 gigantes da indústria era a de projetar um microprocessador de enorme desempenho em um único chip. Isto permitiria um balanceamento entre máximo desempenho, facilidade de fabricação e baixo custo. A raiz do projeto foi a arquitetura POWER da IBM. Assim, os projetistas removeram instruções raramente utilizadas e minimizaram características que restringiam o paralelismo. Também foram incluídas extensões para prover um suporte adicional à funções freqüentemente utilizadas. Instruções LOAD e STORE Simplicidade na Implementação. Retirada de update “degenerado”. Uma instrução de LOAD que tenta carregar um operando no mesmo registrador usado pelo endereço efetivo resultante é dita degenerada (somente um valor deve ser carregado no registrador alvo). No PowerPC isto foi deixado em aberto. Esta mudança não reduz a funcionalidade, mas simplifica a implementação. Exceções de Ponto-Fixo Diminuição do Período de Latência. Instruções de ponto - fixo ou ponto-flutuante atualizam um registrador de condição baseado no tipo de resultado. Esta atualização pode aumentar o período de latência. Mesmo sendo necessário, tal modo de funcionamento não é de uso freqüente. No PowerPC foi acrescentada uma instrução SUBTRACT para completar o conjunto de instruções de ponto - fixo, a qual não altera ou usa o bit de CARRY. Computação de Ponto-Fixo Remoção/Substituição de Instruções. Foram retiradas do conjunto, quatro instruções baseadas em “Diferença ou Zero” e “Valor absoluto” por causa de seu uso não freqüente e benefício limitado de desempenho. Três outras instruções que envolviam três operandos fonte também foram removidas por adicionarem complexidade à implementação. Tais instruções foram substituídas por três ou quatro outras instruções. Ponto-Flutuante A arquitetura POWER provém um modelo computacional de ponto-flutuante que contém um conjunto completo de instruções LOAD e STORE para operandos de ponto-flutuante de simples e dupla precisão. Contudo, a computação de precisão simples é feita usando operações de precisão dupla, em seguida arredondando o resultado para precisão simples. Foi adicionado ao PowerPC um conjunto completo de operações aritméticas e de acumulação de precisão simples, de forma a baixar o custo e aumentar a velocidade de operações de precisão simples, tornando mais lenta a computação em precisão dupla. Em sistemas pequenos, isto aumenta o desempenho significativamente, uma vez que gráficos, por exemplo, não necessitam de precisão dupla. Modelo de Armazenamento A arquitetura do POWER relegava a tarefa de manter a coerência do cache ao software e usava um modelo de consistência fraco de armazenamento. O PowerPC também depende do software para manter a consistência de

Page 111: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

111

armazenamento de instruções, mas adicionalmente permite ao software especificar quais páginas de armazenamento de dados o processador manterá em um estado consistente. Extensões de 64 bits Os registradores acessíveis às instruções de ponto - fixo foram estendidos para 64 bits, com poucas exceções. Um bit de Modo de ambiente foi adicionado ao registrador de status da máquina para selecionar ambiente de 32 ou 64 bits. As especificações de 4 instruções existentes de LOAD de ponto-fixo foram mudadas para implementações de 64 bits. Várias instruções aritméticas, de ponto - fixo e de ponto-flutuante foram adicionadas para manipular operações com e sem sinal em 64 bits.

V.7.2 - A Família PowerPC A família PowerPC da Motorola possui vários membros, os quais possuem utilização específica. Os microprocessadores usados em computadores handheld, notebooks, desktops, workstations e servidores são: • PowerPC 601; • PowerPC 603; • PowerPC 604; • PowerPC 620; Os utilizados embutidos em hardwares para rede, comunicações e microcontroladores são: • PowerPC 602; • PowerPC 603; • MPC821; • MPC823; • MPC860; • MPC505. Como não podia deixar de ser, além dos microprocessadores, a Motorola também fabrica circuitos a serem utilizados como periféricos desses microprocessadores, tais como: MPC105 (Controlador de cache, ponte PCI e interface de DRAM num único chip). A seguir serão fornecidas resumidamente as características de alguns deles. PowerPC 620 O PowerPC 620 é uma implementação de 64 bits da arquitetura RISC do PowerPC com as seguintes características: • Compatível em software com os 601, 603 e 604; • Capacidade de execução de 4 instruções por período de relógio; • 6 unidades de execução independentes, incluindo:

• 2 unidades de Inteiros de Ciclo Único • Unidade de Inteiros Multiciclo • Unidade de Processamento de Saltos • Unidade Load/Store • Unidade de Ponto Flutuante

• 32 Kbytes de cache de instruções e 32 Kbytes de cache de dados, fisicamente separados; • Suporte a Cache 128 bits L2 on-chip de 1 a 128 Mbytes; • MMU suporta 1 TeraBytes de memória física e 1 HeptaBytes de memória virtual; • Barramento de Dados de 128 bits; • Barramento de Endereços de 40 bits;

Page 112: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

112

• 7 milhões de transistores integrados; • Tecnologia de Processo CMOS estático de 0,5 micron. PowerPC 750/740 Os microprocessadores PowerPC 750/740 são implementações de 32 bits, de baixa potência, da arquitetura RISC PowerPC. A única diferença entre os mesmos é a de que o 750 possui uma interface de cache L2 dedicada “on-chip”. As principais características do PowerPC 750 são; • Compatível em software e barramento com os 603e e 604e; • Capacidade de execução de 3 instruções por período de relógio; • 6 unidades de execução independentes, incluindo:

• 2 unidades de Inteiros • Unidade de Registradores de Sistema • Unidade de Processamento de Saltos • Unidade Load/Store • Unidade de Ponto Flutuante

• Projeto de 1,9 a 2,5 Volts (interno) e 3,3 Volts (I/O) com 3 modos de salvamento de potência; • Cache L1 de 32 Kbytes para instruções e 32 Kbytes para dados, fisicamente separados; • Suporte a Cache L2 on-chip de até 1 MBytes (o PowerPC 740 não possui cache L2 “on-chip”); • MMU suporta 4 GigaBytes de memória física e 1 PetaBytes (2 52 bits) de memória virtual; • Barramento de Dados de 64 bits; • Barramento de Endereços de 32 bits; • 6,5 milhões de transistores integrados; • Tecnologia de Processo CMOS estático de 0,25 ou 0,29 micron; • O PowerPC 750 opera nas velocidades de 200, 233, 266, 300, 333 e 366 MHz; • O PowerPC 740 opera nas velocidades de 200, 233, 266 e 300 MHz; • 671 MIPS @ 366 MHz (750) e 550 MIPS @ 300 MHz (740).

V.7.3 - O PowerPC G4 As principais características do PowerPC G4 são: • Capacidade acima de 1 Gigaflop (1 billhão de operações em ponto flutuante por segundo); • Cerca de 90% mais rápido que o INTEL Pentium 4 2,5 Ghz; • 256 KB de cache L2 “on-chip” rodando na velocidade do processador; • Até 2 MB de cache L3 por processador; • 162 novas instruções; • Barramento de sistema de 167 MHz suportando até 1,3 Gbytes/s de desempenho; • Barramento de dados de 128 bits; A figura 87 exibe uma foto do Power PC G4. A figura 88 mostra dados comparativos de desempenho e a figura 89 a arquitetura em blocos de um microcomputador da Apple, chamado Power Mac G4.

Figura 87 – Foto do PowerPC G4

Page 113: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

113

Figura 88 – Desempenho do Power Mac G4

Figura 89 – Arquitetura Power Mac G4 Dual 1.25 GHz

V.7.4 - O PowerPC G5 • 76,6 Gigaflops (1 billhão de operações em ponto flutuante por segundo); • Cerca de 85% mais rápido que o Power Mac G4; • 1 MB de cache L2 “on-chip” por Core; • Barramento frontal de 1 GHz; 1,15 GHz (Dual) e 1,25 GHz p/processador (Quad); • Memória de PC2-4200 DDR2 SDRAM (NECC), 533 MHz endereçando até 16 GB; A figura 90 exibe uma foto do substrato do Power PC G5 Quad. A figura 91 mostra dados comparativos de desempenho e a figura 92 a arquitetura em blocos do Power Mac G5 Dual.

Page 114: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

114

Figura 90 – Foto do PowerPC G5 Quad

Figura 91 – Desempenho relativo dos Power Mac G5 Dual e Quad

Figura 92 – Arquitetura Power Mac G5 Dual 1.25 GHz Fotos do site: http://www.apple.com/br/powermac/dualcore.html

Page 115: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

115

1. Barramento frontal dual bidirecional Impulsionando a arquitetura dual de barramento frontal, pioneira no Power Mac G5 original, cada processador dos sistemas Power Mac G5 Quad possui sua própria interface para o controlador de sistema; 2. Controlador de sistema Esse circuito integrado para aplicativos específicos de alta velocidade (ASIC) utiliza um subsistema de memória de baixa latência com suporte para DDR2 SDRAM ultra-rápida. 3. Gráficos PCI Express Com a introdução da arquitetura PCI Express vem uma nova interface gráfica PCI Express de 16 vias, suportando os mais recentes controladores gráficos para até 4.000 MBytes/s de processamento de dados. Isso representa o dobro do processamento do protocolo AGP 8x anterior, que é de 2.133 MBytes/s. 4. Memória principal DDR2 533MHz O controlador de memória de 128-bit no Power Mac G5 suporta memória principal DDR2 de até 533MHz. Em adição a dupla velocidade, ou seja, duas vezes a taxa de velocidade do ciclo, o controlador de memória acelera as operações de leitura e gravação. Endereçando dois bancos de SDRAM ao mesmo tempo, o Power Mac G5 pode alcançar uma taxa de até 8,5 GBps, um aumento de 25 por cento sobre seu antecessor. Os sistemas Power Mac G5 podem endereçar até oito DIMMs de 2GB — até 16GB de memória — com a opção de memória ECC (“Error Correction Code” – Código de Correção de Erro) para usuários em ambientes de missões críticas ou computações intensas. 5. Expansão PCI Express Ao contrário das tecnologias paralelas mais antigas, a PCI Express garante a cada dispositivo largura de banda dedicada para e a partir do controlador de sistema. Placas e slots PCI Express são definidas por sua largura de banda, ou número de vias de dados — geralmente uma via (1x), quatro vias (4x), oito vias (8x), ou dezesseis vias (16x). A 250 MBps por via, um slot com quatro vias pode transferir dados em até 1 GBps e um slot de oito vias, em até 2 GBps — quase duas vezes mais rápido que um slot PCI-X de 133MHz com um processamento máximo de apenas pouco mais de 1GBps. 6. Dual Gigabit Ethernet Duas interfaces 10/100/1000BASE-T (Gigabit) Ethernet configuráveis independentemente apresentam uma tremenda largura de banda de rede sem contenção entre seu tráfego de rede e outro dispositivo I/O. Cada controlador Gigabit Ethernet do novo Power Mac G5 suporta frames gigantes (pacotes de até 9000 bytes), etiquetas Virtual LAN (IEEE 802.1Q) e agregação de link. 7. Drive de DVD-RW com suporte de camada dupla O chamado SuperDrive integrado lê e grava em uma grande variedade de mídias de DVD e CD, incluindo discos de camada dupla (DVD+R DL) capazes de armazenar até 8,5 GB de dados. 8. Armazenamento Serial ATA O Power Mac G5 pode armazenar dois drives internos SATA de 500 GB para uma capacidade total de 1TB de armazenamento. Cada drive situa-se em um barramento independente, assim não existe competição por performance de drive como acontece com um ATA Paralelo. Desenvolvido para suprir a demanda de criação e edição de vídeo digital, armazenamento e reprodução de áudio, além de outros aplicativos que requerem grande quantidade de dados, o Serial ATA suporta 1,5 Gbps de processamento por canal (equivalente a uma taxa de dados de 150 MBytes/s). 9. I/O integrados As tecnologias Serial ATA, FireWire, USB, de áudio e sem fio são integradas através de dois interconectores bidirecionais HyperTransport de 800MHz para um processamento máximo de 1,6 GBps, proporcionando amplo processamento para uma grande variedade de periféricos.

V.7.5 - O PowerPC 5000 Este processador não será aqui detalhado.

Page 116: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

116

VI - INTRODUÇÃO AOS MICROCONTROLADORES

VI.1 - Arquitetura Interna Os microcontroladores são microprocessadores de propósito especial. Estas pastilhas contêm todos os circuitos integrados periféricos necessários aos equipamentos normalmente utilizados na área de controle processos. Os microprocessadores comuns são considerados de propósito geral. Como o nome indica, são microprocessadores destinados a controlar. A arquitetura interna dos mesmos, normalmente, é dotada de CPU, memória RAM, memória EPROM, portas paralelas, portas seriais, temporizadores, contadores e lógica de expansão de barramento. A título de exemplo são detalhados três microcontroladores. O primeiro é um antigo membro da família de microcontroladores da INTEL, o 8052. Este é citado por razões históricas e práticas, pois é de 8 bits e muitos equipamentos de hoje ainda são baseados nesta pastilha. O segundo é o popular PIC, da empresa Microchips. O terceiro é um microcontrolador mais sofisticado, fabricado pela Motorola, o MPC860.

VI.2 - Os Microcontroladores 8051 e 8052 da INTEL Como já mencionado, o 8052 faz parte de uma família de microcontroladores, conforme tabela a seguir:

As características gerais, especificamente do 8052 incluem: • CPU de 8 bits; • Oscilador e Circuitos de Relógio Embutidos; • 32 linhas de Entrada e Saída; • 64 KB para endereços da memória de dados; • 64 KB para endereços da memória de programa; • 3 contadores/temporizadores de 16 bits; • 5 fontes de interrupção (2 externas, 2 internas e 1 da porta serial); • Porta Serial Full-Duplex; • Processador Booleano; • 4 modos de funcionamento para os 3 Temporizadores; • 4 modos de funcionamento para a Porta Serial. O Diagrama em Blocos da Arquitetura do Microcontrolador 8052 da INTEL é mostrado na Figura 93.

8051 8031 8751 8052 8032 83C512BROM Interna 4 KB - 4 K (EPROM) 8 K - 16 a 32 KRAM Interna 128 128 128 256 256 512

Page 117: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

117

Figura 93 – Diagrama em Blocos do Microcontrolador 8052 da INTEL Para dar uma idéia comparativa, em relação a microprocessadores de propósito geral, são listados abaixo os Registradores Internos do 8052. A – Acumulador B – Reg. Utilizado em operações de multiplicação, divisão e rascunho PSW – Reg. De Status (CY, ACY, OVF, PARITY, ...) SP – Stack Pointer DPTR – Endereço de 16 bits P0, P1, P2 e P3 – Latches das Portas SBUFF – Buffer para a Porta Serial TH0, TL0, TH1, TL1, TH2, TL2 – Temporizadores de 16 bits IP, IE, TMOD, TCON, SCON, PCON – Reg. de Controle O acesso à memória externa é feito com o auxílio dos seguintes sinais: PSEN (“Programa Store Enable”) para a memória de programa e RD (“Read”) e WR (“Write”) para a memória de dados mais os endereços correspondentes. A Figura 94 mostra a organização de memória do 8052.

ROM /EPROM

(8 KBytes)

RAM(256 Bytes)

3 Contadores/Temporiza-

dores(16 bits)

CPU (8 bits)8052

Controle deExpansão deBarramento

Entrada/SaídaParalela

Programável(32 Linhas)

Entrada/SaídaSerial

Programável

Page 118: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

118

Figura 94 – Organização de memória do 8052 As interrupções são:

• INT 0 e INT 1 – Pinos da CPU projetados para receber pedidos externos de interrupção;

• TF0 e TF1 – São geradas pelos Contadores/Temporizadores internos;

• INT – Proveniente da Porta Serial interna.

VI.3 - O MPC860 da Motorola O MPC860 é uma combinação de microprocessador e periférico projetado para funcionar em uma ampla variedade de aplicações de controlador, particularmente em produtos de comunicação e rede. Esta pastilha é a geração seguinte do MC68360 para aplicações de redes e comunicação de dados. Esta pastilha integra 2 blocos de processamento: o primeiro é o núcleo do PowerPC e o segundo é o Módulo Processador de Comunicação (CPM), muito similar ao MC68360. Esta arquitetura dual provém um consumo mais baixo de potência do que o tradicional, por que o CPM assume as tarefas de controle de periféricos do núcleo PowerPC.

RAM Externa(Programas)

ROM Interna(8 KBytes)

RAM Interna

RAM Externa(Dados)

RegistradoresInternos

64KBytes

64KBytes

128Bytes

Page 119: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

119

As principais características do MPC860 são: • Núcleo PowerPC embutido com capacidade de 88 MIPS a 66 MHz; • 4 KB de Cache de instruções; • 4 KB de Cache de Dados; • 32 bits de barramento de dados; • 32 linhas de endereço; • MMUs de dados e instruções; • Controlador de Memória (8 bancos); • 4 Temporizadores de 16 bits ou 2 de 32 bits; • Unidade de Integração de Sistema (SIU): Monitor de IRQ espúria, Sintetizador de Clock, Decrementador

PowerPC, controlador de RESET, ...; • 7 IRQs externas, 16 IRQs internas e 12 pinos de porta com capacidade de interrupção; • Módulo Processador de Comunicações (CPM): 16 canais de DMA, 3 registradores paralelos de I/O, até 5 KB de

RAM de porta dual, controlador RISC, ...; • 4 Geradores de Baud Rate (independentes); • 4 Controladores de Comunicação Serial (SCC): Ethernet, HDLC/SDLC, UART, Apple Talk, Infravermelho serial

(IrDA); • 2 Canais de Gerenciamento Serial (SMC); • 1 interface periférica serial; • Interface paralela (porta Centronics ou mais rápida); • Interface PCMCIA (2 soquetes independentes); • Atribuidor de “Time Slot”, permitindo SCCs e SMCs rodarem em operação multiplexada e não-multiplexada,

suporta T1, ISDN,...; • Opera em 3,3 Volts e é compatível com TTL 5,0 Volts

VI.4 - Os PICs da Microchips Os hoje famosos PICs (“Programmable Integrated Circuit”) assumiram um papel que antes era privilégio dos microprocessadores. Esses últimos se encontram em estágio tão avançado, que inviabiliza seu uso para construção de hardware específico. Além disso, novas tecnologias de desenvolvimento de circuitos digitais foram introduzidas no mercado, exigindo que o projetista examine com atenção qual ferramenta deve utilizar para o projeto dos seus circuitos, desde a fase de concepção. Os PICs são CIs pequenos e baratos, mas extremamente poderosos. Utilizados na medida certa, são de grande ajuda para projetistas de hardware digital. O material teórico deste item não faz parte da apostila, mas será fornecido aos alunos separadamente. Obviamente, toda e qualquer informação sobre um PIC específico encontra-se no site do fabricante, por exemplo, a Microchips em http://www.microchips.com/.

VI.5 - Outros Microcontroladores Microcontroladores Atmel, eZ80, e outros menos conhecidos não serão aqui detalhados.

Page 120: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

120

VII - As Arquiteturas RISC

VII.1 - Noções de Arquitetura RISC Todos os processadores mencionados até a seção anterior, em geral, são considerados como máquinas CISC ("Complex Instruction Set Computer"). Guardadas as diferenças de projeto arquitetônico entre INTEL e MOTOROLA, todas essas máquinas possuem um conjunto de instruções, considerado por pesquisadores de arquitetura como, demasiado grande. Ainda que estruturas pipeline possam ser encontradas no interior das máquinas CISC, isto não significa que seu projeto tenha sido direcionado para a otimização da compilação de programas, como é bem o caso das RISC. As máquinas RISC ("Reduced Instruction Set Computer") apareceram no início dos anos 80 em laboratórios de empresas (p.e. IBM), como o IBM 801, e em instituições de pesquisa: RISC I e RISC II na Universidade da Califórnia - Berkeley e MIPS na Universidade de Stanford. Em 1985, todas as três estavam operacionais. Cada um dos projetos tinha diferentes requisitos e objetivos, mas alguns princípios eram comuns: 1. As operações eram registrador-para-registrador (e não memória-para-memória) com somente instruções LOAD e

STORE para acesso à memória; 2. Tanto operações (muitas delas completadas em um único ciclo) como modos de endereçamento eram reduzidos

(somente os modos Indexado e Relativo ao Contador de Programa); 3. O formato das instruções eram simples e não ultrapassavam o limite do tamanho de palavra; 4. O tratamento dado aos Saltos ou "JUMPS" RISC evitavam penalidades na estrutura pipeline. O objetivo das máquinas RISC era o de aumentar a eficiência da interface entre o compilador e o hardware e não, diminuir o "gap" entre o usuário e o hardware. Este último tem sido o objetivo das máquinas consideradas CISC, como os microprocessadores de desktops e alguns servidores. A compilação em processadores RISC é simples e o código gerado é eficiente, até mesmo em função da própria filosofia de se ter um conjunto reduzido de instruções. Ao lado disso, com o avanço tecnológico da integração VLSI ("Very Large Scale Integration"), também tornou-se possível realizar o máximo de operações no interior do circuito integrado, aumentando sobremaneira a velocidade das operações. Pelo fato das instruções serem simples e pouco numerosas, várias transferências CPU/Memória e vice-versa são necessárias. Este problema vem sendo resolvido com a técnica de "cache", ou seja, ler um grupo de instruções de uma única vez, enfileirá-las e executá-las em seguida. Um outro aspecto diz respeito aos numerosos registradores internos a processadores RISC. Pode-se armazenar nesses registradores uma grande quantidade de dados temporários, no interior da pastilha, sem que sejam necessários vários acessos à memória principal. A técnica de "pipeline" em vários níveis também é utilizada para aumentar ainda mais a taxa de execução de instruções. Algumas máquinas RISC executam uma instrução por ciclo de relógio, isto para implementar um pipeline eficiente. As máquinas clássicas utilizam vários ciclos de máquina, contendo vários ciclos de relógio para a execução de uma única instrução. As instruções RISC, em geral, são de mesmo comprimento para aproveitar de maneira eficiente a estrutura pipeline, uma vez que comprimentos diferentes levariam ao aumento do número de acessos à memória para busca de instruções e, no caso de necessidade de uso de memória virtual, poderiam haver quebras de páginas difíceis de serem gerenciadas.

VII.2 - O projeto MIPS Pelas razões mencionadas na sessão anterior, processadores RISC possuem, no momento, um desempenho superior ao de processadores CISC.

Page 121: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

121

Pode-se dizer também que máquinas RISC foram construídas para diminuir o "gap de desempenho" das máquinas e não o "gap semântico" entre o usuário e a máquina. Processadores CISC, ao contrário, como qualquer um pode notar, diminuíram muito esse "gap semântico". Outro aspecto não menos importante foi o contra-senso, durante uma certa época, de se utilizar máquinas RISC como equipamento central controlando vários terminais, pois certamente o projeto da sua arquitetura não foi direcionado para tal e sua parte de Entrada/Saída muito menos. O que uma máquina que usa um processador RISC como CPU faz é otimizar a ação de compiladores e aumentar muito a velocidade de processamento, tornando-a adequada ao desenvolvedor de aplicações "pesadas" ou aqueles que necessitam de recursos gráficos e de processamento, considerados hoje, de primeira qualidade. Com o aumento sistemático do desempenho de microprocessadores padrão da indústria, incluindo características arquiteturais de máquinas RISC, a diferença conceitual entre uma e outra arquitetura praticamente inexiste.

VII.3 - Tendências em Arquiteturas RISC Com a introdução pela Intel dos, embora controversos, mas poderosos microprocessadores Itanium II, os grandes fabricantes de servidores de rede deixaram de investir em projetos usando máquinas RISC.

Page 122: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

122

VIII - Arquiteturas não Convencionais

VIII.1 - Arquiteturas Paralelas A primeira pergunta a fazer é: O que é uma Arquitetura Paralela ? “É uma coleção de elementos de processamento cooperantes para resolver problemas grandes mais rapidamente” A segunda pergunta seria: Qual a motivação para as pesquisas em Computação Paralela ?

1. Aumento de Desempenho - Premissa do arquiteto de computadores: Projetar e construir os vários níveis de um sistema de computador para maximizar o desempenho e programabilidade, dentro dos limites de tecnologia e custo;

2. Demanda de Usuários: Estruturas organizacionais inovadoras e diversas, freqüentemente chegam a necessidade de criação de novos modelos de programação;

3. Demanda de Aplicações: física, química, biologia, CAD, Vídeo, gráficos, ..

4. Tendências de Tecnologia: Crescimento de clock esperado é lento, número de transistores num chip crescendo;

5. Tendências de Arquitetura: Paralelismo no nível de instruções é limitado;

6. Tendências de hoje: microprocessadores de hoje possuem suporte a multiprocessamento, servidores e estações chegando ao multiprocessamento, microprocessadores de amanhã são multiprocessadores;

7. Tendências de Aplicações: variação do desempenho com o custo aumentando progressivamente. SPEEDUP = Desempenho (P processadores) / Desempenho (1 processador)

As figuras que se seguem procuram demonstrar as motivações para investimentos em arquiteturas paralelas

Page 123: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

123

Demanda de Aplicações

Figura 95 – Evolução nas necessidades em computação científica

Figura 96 – Evolução nas necessidades de processamento de voz e imagem

1980 1985 1990 1995

1 MIPS

10 MIPS

100 MIPS

1 GIPS

Sub-BandSpeech Coding

200 WordsIsolated SpeechRecognition

SpeakerVeri¼cation

CELPSpeech Coding

ISDN-CD StereoReceiver

5,000 WordsContinuousSpeechRecognition

HDTV Receiver

CIF Video

1,000 WordsContinuousSpeechRecognitionTelephone

NumberRecognition

10 GIPS

Page 124: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

124

Tendências de Tecnologia

Figura 97 – Crescimento do Desempenho de Computadores

Figura 98 – Taxa de Crescimento da Freqüência de Relógio

Per

form

ance

0.1

1

10

100

1965 1970 1975 1980 1985 1990 1995

Supercomputers

Minicomputers

Mainframes

Microprocessors

0.1

1

10

100

1,000

19701975

19801985

19901995

20002005

Clo

ck ra

te (M

Hz)

i4004i8008

i8080

i8086 i80286i80386

Pentium100

R10000

Page 125: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso_____

A figsão múltSISDData

o de Microproce______________

gura 100 exibclassificada

tiplas instruçD (“Single Ina”).

Tran

sist

ors

1

essadores _____________

Figu

be uma classas em SISD,ções sobre mnstruction Sin

1,0

10,0

100,0

1,000,0

10,000,0

100,000,0

_____________

ra 99 – Taxa

sificação am, SIMD, MIS

múltiplos dadngle Data”),

000

000

000

000

000

000

19701

i40i8

_____________

a de Crescim

plamente usSD e MIMD,dos, a MIMD SIMD (“Sing

Figura 100

9751980

0048008

i8080

i80

i80286

_____________

mento do Núm

sada na litera sendo mais(“Multiple In

gle Instructio

– Classificaç

01985

19

086

i80

R

_____________

mero de Tran

atura de arqus poderosa

nstructions Mn Multiple D

ção de Flynn

9901995

0386

R2000

PeR10

R300

_____________

nsistores por

uitetura de coaquela que

Multiple Data”ata”) e SIMD

n

2000200

entium 0000

00

_____________

r Chip

omputadoresimplementa

”). A sigla daD (“Single In

05

_____________

s. As arquiteta a execuçãas restantes struction Mu

___

125

turas ão de

são: ultiple

Page 126: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

126

Na área de arquiteturas especificamente paralelas outras classificações podem ser encontradas. Uma das quais estabelece 4 classes de Arquiteturas Paralelas: 1. Arquiteturas Vetoriais

• Processadores específicos (proprietários)

• Memória centralizada

• Espaço de endereçamento único (vários processadores endereçam a mesma memória)

• Tempo de acesso uniforme (os processadores acessam qualquer parte da memória em tempos iguais)

• Componentes específicos

• Tecnologia agressiva

• Memória compartilhada

2. Arquiteturas SIMD

• Processadores específicos (proprietários)

• Memória distribuída

• Espaço de endereçamento múltiplo (cada processador possui sua própria memória)

• Tempo de acesso não uniforme (o tempo de acesso à memória por um processador pode diferir, dependendo da localização da célula)

• Componentes específicos ou disponíveis comercialmente

• Tecnologia padrão

• Memória distribuída

• Passagem de Mensagens (através de uma rede de comunicação)

3. Arquiteturas MIMD com espaço de endereçamento único

• Processadores comerciais (microprocessador)

• Memória centralizada ou distribuída

• Espaço de endereçamento único

• Tempo de acesso uniforme ou não uniforme

• Componentes disponíveis comercialmente (memória, lógica)

• Tecnologia padrão

• Memória compartilhada

4. Arquiteturas MIMD à Passagem de Mensagens

• Processadores comerciais (microprocessador)

• Memória distribuída

• Espaço de endereçamento múltiplo

• Tempo de acesso não uniforme

• Componentes disponíveis comercialmente

• Tecnologia padrão

• Memória distribuída

• Passagem de Mensagens (através de uma rede de comunicação)

Page 127: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

127

Outro conceito importante são as fontes de paralelismo:

• Paralelismo de Dados: há um reagrupamento de dados devendo seguir o mesmo processamento;

• Paralelismo de Controle: há a presença de partes independentes (tarefas, sequência de operações) dentro de um programa;

• Paralelismo de Fluxo: há um jogo de dados renovado constantemente durante a execução.

Resta perguntar: Quais os problemas a resolver numa arquitetura paralela ? 1. Alocação de Recursos

• Quão grande é a coleção ? • Qual a potência dos seus elementos ? • Quanta memória utilizar ?

2. Acessos a Dados, Sincronização e Comunicação

• Como fazer os elementos cooperarem e se comunicarem ? • Quantos dados são transmitidos entre processadores ? • Quais são as abstrações e primitivas para a cooperação ?

3. Desempenho e escalabilidade

• Quais as conseqüências no desempenho ? • Como graduar isto ?

A seção seguinte tratará especificamente de máquinas MIMD à Passagem de Mensagens, simplesmente por que estas têm merecido a atenção de pesquisadores do mundo todo.

VIII.2 - Máquinas MIMD À Passagem de Mensagens Em 1999, verificava-se uma taxa de 50 a 100% de aumento de desempenho nos microprocessadores a cada ano. A capacidade das RAMs dinâmicas quadruplica a cada 3 anos. A densidade dos discos magnéticos cresce 50% anualmente. Isto força uma tendência de se utilizar microprocessadores padrão. Além disso, o usuário força uma tendência de que a potência dos sistemas de computador deve aumentar com o número de processadores, o que hoje não corresponde a realidade. Um outro aspecto é verificar os modelos utilizados pelos 500 computadores mais rápidos do mundo. A figura 101 exibe a tendência de uso de máquinas à Passagem de Mensagens. As Siglas têm o seguinte significado: MPP – Messages Passage Processor, PVP – Processing Vetorial Processor e SMP – Symetrical Multiprocessing Processor.

Page 128: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

128

Figura 101 – Os 500 computadores mais rápidos do mundo Pode-se classificar as Máquinas à Passagem de Mensagens em 2 classes, segundo o gerenciamento de memória: 1. Multiprocessadores de Memória Compartilhada (espaço de endereçamento único) 2. Multicomputadores à Passagem de Mensagens (memória distribuída nos nós) A figura 102 mostra as diferenças entre as classes.

Num

ber o

f sys

tem

s

11/93 11/94 11/95 11/960

50

100

150

200

250

300

350

PVPMPP

SMP

319

106

284

239

63

187

313

198

110

10673

Page 129: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

129

Figura 102 – Dois Modelos de Arquiteturas Paralelas MIMD

Mensagens

Dados

Processo

Dados

Processo

Dados

Processo

Dados

Processo

Dados Particionados (espaços de endereços privados)

Modelo de Programação à Passagem de Mensagens

Operações deSincronização

Dados

Processo Processo Processo Processo

Dados globalmente acessíveis(espaço de endereço compartilhado)

Modelo de Programação com Memória Compartilhada

Page 130: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

130

Exemplo de Máquinas à Passagem de Mensagens

Figura 103 – O IBM SP-2

Memory bus

MicroChannel bus

I/O

i860 NI

DMA

DR

AM

IBM SP-2 node

L2 $

Power 2CPU

Memorycontroller

4-wayinterleaved

DRAM

General interconnectionnetwork formed from8-port switches

NIC

Page 131: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

131

Exemplo de Máquinas à Passagem de Mensagens

O INTEL PARAGON

Figura 104 – O INTEL Paragon Kai Hwang definiu 3 gerações de máquinas MIMD à Passagem de Mensagens:

Memory bus (64-bit, 50 MHz)

i860

L1 $

NI

DMA

i860

L1 $

Driver

Memctrl

4-wayinterleaved

DRAM

IntelParagonnode

8 bits,175 MHz,bidirectional2D grid network

with processing nodeattached to every switch

Sandia’ s Intel Paragon XP/S-based Supercomputer

Page 132: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

132

Primeira geração (1983-1987) – Tecnologia de placas de processadores utilizando redes hipercubo, sendo a passagem de mensagens realizada pelo software. Um exemplo dessas máquinas é o Cosmic Cube, desenvolvido pela Caltech por C. Seitz e o INTEL iPSC/1. Segunda Geração (1988-1992) – Arquitetura com uma topologia de grade, sendo o roteamento realizado por hardware. Um exemplo é o INTEL Paragon e iPSC/2. Terceira Geração (1992-1997) – Tende a ser uma arquitetura de paralelismo sofisticado, podendo serem citados a J-Machine, a Corporation Machine CM5 e o IBM SP/2. O IBM SP-2 é uma tentativa de assegurar preferencialmente a transição a partir das estações de trabalho até máquinas paralelas topo de linha, ao invés de visar diretamente o mercado topo de linha. O Cosmic Cube Entidade básica: o processo, que envia e recebe mensagens. Operação: Cada nó pode conter vários processos que são executados concorrentemente, se entrelaçando. Arquitetura: 64 processadores 8086/8087 – 5 Mhz. Cada nó é ligado a 6 outros nós (6-cube) por canais de comunicação bidirecionais, assíncronos e ponto-a-ponto. Nós possuem 128 KB de RAM e 8 KB de ROM (inicialização, boot, refrescamento de memória e programas de diagnóstico). Sistema Operacional: Cada nó executa um micro-núcleo. Cada micro-núcleo pode criar e matar processos sobre seu nó, gerenciar carga em memória e tratar interrupções. A cada processo está associado um único e global ID (identificador) para endereçamento de mensagens. Cada mensagem possue um cabeçalho contendo DESTINO, ID do EMISSOR, TIPO DE MENSAGEM e TAMANHO DA MENSAGEM. O INTEL Paragon O Paragon oferece um alto nível de desempenho, flexibilidade e utilizabilidade em aplicações destinadas a supercomputadores, acima dos tradicionais computadores vetoriais. Arquitetura: Cada nó é um multiprocessador de memória compartilhada e usa no mínimo 2 processadores i860XP: um ou mais (processadores de aplicação) destinado a executar as aplicações e um (processador de mensagens) dedicado à comunicação entre nós. Os nós são distribuídos em uma rede 2D com ligações de 16 bits suportando até 175 Mbytes/s em cada direção. Isto viabiliza uma largura de banda de até 5,6 Gbytes/s para um modelo XP/s com 76 nós. A transferência de blocos de dados da memória para a interface de rede é feita através de dois canais de DMA a uma velocidade de 400 Mbytes/s com um sistema de coerência de cache. Sistema Operacional: Consiste de UNIX melhorado, totalmente distribuído ao longo dos nós, eliminando a necessidade de se ter um “host” ou “front-end”. Linguagens: Compiladores Fortran-77, C, C++ e Ada produzem código otimizado para aplicações paralelas O Paragon é o resultado de 10 anos de pesquisas e desenvolvimento começado na Caltech por C. Seitz, depois no MIT por W. Dally e enfim pelo projeto Touchstone Intel-DARPA. A J-Machine A J-Machine é um computador concorrente implementado segundo o modelo MIMD de memória distribuída. Seu projeto começou no MIT em 1988 à partir das experiências de Dally na Caltech sobre o processamento à base de passagem de mensagens. A idéia central é de que “processadores são baratos e memória é cara”. Foi projetado para implementar todos os modelos de programação (passagem de mensagens, memória compartilhada, dados paralelos, data-flow e atores). Entidade básica: MDP (“Message-Driven Processor”). O MDP é um microcomputador VLSI de 36 bits e 1,1 milhão de transistores, memória de 4096 palavras de 36 bits e uma porta de rede. Foi concebido para ser eficiente dentro de um multiprocessador. Cada nó contém 4K do MDP mais 1 Mbytes de memória externa. O MDP possui ainda 6 portas

Page 133: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

133

de rede de duplo sentido e 1 porta de diagnóstico. Cada porta de rede corresponde a uma direção (+x, -x, +y, -y, +z, -z) que faz o MDP se corresponder com um MDP adjacente. Cada nó pode injetar na rede 2 palavras de 72 bits por ciclo de relógio. Uma rede de 1024 nós permite um largura de banda de 1,8 Gbytes/s. Ambiente e Programação: Smaltalk concorrente e C dirigido à mensagens.

VIII.3 - Tendências em Arquiteturas Paralelas Pode-se resumir as atuais tendências em arquiteturas paralelas nos seguintes pontos:

• Redes de Estação de Trabalho

• Redução do tempo de Desenvolvimento

• Arquiteturas baseadas em Tecnologia Padrão

• Suporte a todos os Modelos de Programação

Redes de Estação de Trabalho - Alguns autores comparam a evolução dos sistemas de informática atuais à uma cadeia alimentar invertida, na qual “os pequenos comerão os grandes”. Os PCs atacam o mercado de estações de trabalho que por sua vez consumiram o de minicomputadores e avançam sobre o de mainframes e supercomputadores. A relação Preço/desempenho das estações de trabalho aumenta 80% por ano e não aumenta mais que 20 a 30% para os supercomputadores. Nota-se também uma convergência entre as Redes de Estações de Trabalho e os Processadores massivamente paralelos. Redução do Tempo de Desenvolvimento – A estatística do tempo de desenvolvimento de supercomputadores mostra que este é demasiadamente longo. A solução SP/2 da IBM parece adaptar-se bem a esta deficiência. Os projetistas procuram fundar sua concepção em técnicas já testadas e provadas, sendo descartada sistematicamente, toda inovação considerada complexa de realizar. Arquiteturas baseadas em Tecnologia Padrão – Esta idéia é inicialmente fundamentada no fator custo, mas também se baseia no aproveitamento rápido das últimas evoluções em microprocessadores. Suporte a todos os Modelos de Programação – Este é um requisito que tem se tornado desejável, a fim de evitar a especialização das máquinas. Ou seja, a arquitetura deve possuir o suporte necessário à execução de aplicações nos modelos de: passagem de mensagens, dados paralelos, memória compartilhada, etc.

Page 134: CURSO: MICROPROCESSADORES E … Page/Docs-Micro/Curso_Microprocessadores... · CURSO: MICROPROCESSADORES E MICROCONTROLADORES Autor: Marcelo Barretto Ano: 2010 Mestre em Engenharia

Curso de Microprocessadores ___________________________________________________________________________________________________________________

134

IX - BIBLIOGRAFIA IX.1 - Livros 1. W. STALLINGS, Arquitetura e Organização de Computadores, 8a edição, Prentice-Hall, Pearson 2010 2. TANENBAUM, Andrew :"Structured Computer Organization", second edition, Prentice-Hall, Inc., 1984. 3. RUSSELL, Rector; ALEXY, George: "The 8086 Book", Ed. Osborne/ McGraw-Hill, 1981; 4. ARTWICK, Bruce A., "Practical Hardware Details for 8080, 8085, Z80 e 6800 Microprocessors Systems",

Prentice-Hall, 1981; 5. KANE, Gerry, "68000 Microprocessor Handbook", Osborne/McGraw-Hill, 1981; 6. OSBORNE, Adam; KANE, Gerry; "OSBORNE 16-bit Microprocessor Handbook", Osborne/McGraw-Hill, 1981; 7. NORTON, Peter, "Desvendando o PC", Editora Campus Ltda., 1987; 8. LEVENTHAL, Lance; WALSH, Colin;"Microcomputer Experimentation with the INTEL SDK-85", Prentice-Hall,

1980;

IX.2 - Links www.lri.fr www.intel.com www-techdoc.intel.com http://developer.intel.com/sites/developer/ www.amd.com www.tomshardware.com www.mot.com www.mcu.motsps.com/index.htm http://ee.stanford.edu/ http://umunhum.stanford.edu/papers.html http://www.clubedohardware.com.br/ http://www.techiwarehouse.com/ http://www.hardwarezone.com/home/ http://www.xbitlabs.com/ http://www.microchips.com/ http://www.arduino.cc/

IX.3 - Artigos 1. "Microprocessors - The First Twelve Years"; Proceedings IEEE, Vol. 71, No. 11, november 1983. 2. "Microprocessors in Brief"; IBM Journal Research and Development, Vol. 29, No. 2, march 1985. 3. "Optimizing Microprocessor Input/Output Techniques"; Computer Design, april 1981. 4. "A Survey of Advanced Microprocessors and HLL Computer Architectures"; IEEE Computer, august 1986. 5. "An Introduction to GaAs Microprocessor Architecture for VLSI"; IEEE Computer, march 1986. 6. Artigos diversos das revistas: Byte USA, Byte Brasil, Electronic Design, Exame Informática, Computer Design, PC

Magazine USA, PC Magazine Brasil, PC World, SVM Macintosh. 7. FEDAK, Gilles; “Les Machines MIMD à Passage de Messages”, Laboratoire de Recherche en Informatique, 1996

IX.4 - Manuais 1. INTEL Corporation,"80386 High Performance Microprocessor with Integrated Memory Management" - Advance

Information, october 1985; 2. INTEL Corporation, "Microsystem Components Handbook - Volume I, 1984; 3. INTEL Corporation, "The MCS-85 Family User's Manual, january 1983; 4. INTEL Corporation,"iAPX 86/88, 186/188 User's Manual" - Programmer's Reference, may 1983; 5. INTEL Corporation, "An Introduction to ASM 86", 1981; 6. INTEL Corporation,"MCS-51 Family of Single Chip Microcomputers User's Manual, july, 1981; 7. MOTOROLA Inc., "Motorola Microprocessors Data Manual", 1981; 8. INTEL Corporation, "Application Techniques for the intel 8085 Bus", 1978; 9. INTEL Corporation, "8080/8085 Assembly Language Programming Manual, 1978; 10. ZILOG, Inc., "Z80-CPU Technical Manual", 1977; 11. ZILOG, Inc., "Z80-Assembly Language Programming Manual", 1977.