Anda di halaman 1dari 103

CURSO: MICROPROCESSADORES

Prof.: Eli Fonseca

Ano: 2006

Microprocessadores _________________________________________________________________________________________________ ____

Sumrio

Captulo 1: Conceitos Bsicos


1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 - Histrico - CPU, Memrias e Dispositivos de Entrada/Sada - Sistema de Barramentos - Arquitetura Padro de um Microprocessador - Execuo de Instrues em Microprocessadores - Algumas Instrues Importantes - Capacidade de Interrupo - Tcnicas de Entrada/Sada

Captulo 2: Os Microprocessadores da INTEL


2.1. O 8086/8088 2.1.1. Arquitetura 2.1.2. Caractersticas Gerais 2.1.3. Capacidade de Interrupo 2.2. O 80286 2.2.1. Arquitetura e Caractersticas 2.2.2. Diferenas no Conjunto de Instrues 2.2.3. Implicaes no Desempenho de um Microcomputador 2.3. Os 80386 2.3.1 - Diferenas de Arquitetura e Caractersticas 2.3.2 - Diferenas no Conjunto de Instrues 2.3.3 - Verses 80386, 80386SX e 80386SL 2.3.4 - Implicaes no Desempenho de um Microcomputador 2.4 - Os i486 2.4.1 - Diferenas de Arquitetura e Caractersticas 2.4.2 - Diferenas na Capacidade de Processamento 2.5 - Os Pentium, Pentium MMX e PRO 2.5.1 - Diferenas de Arquitetura e Caractersticas 2.5.2 - Benchmarks 2.6 - Os Pentium II 2.6.1 - Arquitetura e Caractersticas 2.6.2 - Benchmarks 2.6.3 - Implicaes no Desempenho de Desktops e Servidores de Rede 2.7 ltimos Microprocessadores da INTEL

Captulo 3: Caractersticas Gerais dos Sistemas de Barramentos


3.1 3.2 3.3 3.4 - Os Barramentos Principais ISA, EISA e MCA - Os Barramentos Locais Secundrios VESA e PCI - Os Barramentos Secundrios IDE e Enhanced IDE - Os Barramentos Secundrios SCSI

Captulo 4: Suporte ao Desenvolvimento de Software Bsico


4.1 - Estrutura de um Programa na Memria 4.2 - Montadores, Carregadores e Depuradores 4.3 - Uso de um Depurador de Linguagem Assembly

Pgina 2

Microprocessadores _________________________________________________________________________________________________ ____

Captulo 5: Caractersticas Gerais dos Microprocessadores da MOTOROLA


5.1 - O 68.000 5.1.1 - Arquitetura 5.1.2 - Diferenas no Conjunto de Instrues 5.1.3 - Capacidade de Interrupo 5.2 - O 68.010 5.3 - O 68.020 5.4 - O 68.030 5.5 - O 68.040 5.6 O 68.060 5.7 Os PowerPC (IBM/Apple/Motorola)

Captulo 6: Introduo aos Microcontroladores


6.1 - Arquitetura Interna 6.2 - O microcontrolador 8052 da INTEL 6.3 O MPC860 da Motorola

Captulo 7: Introduo s Arquiteturas RISC


7.1 - Noes da Arquitetura RISC 7.2 - Implicaes no Desempenho de um Computador

Captulo 8: Arquiteturas No Convencionais


8.1 - Arquiteturas Paralelas 8.2 - Arquiteturas MIMD 8.3 - Arquiteturas Passagem de Mensagens

Pgina 3

Microprocessadores _________________________________________________________________________________________________ ____

CAPTULO 1: CONCEITOS BSICOS


1.1 - HISTRICO

A histria dos microprocessadores brevemente resumida a seguir com o destaque de algumas datas importantes: Dcada de 40: Vlvula e Transistor (1948) Dcada de 50: Comercializao do transistor Dcada de 60: Circuitos Integrados SSI ("Small Scale Integrated") Dcada de 70: Circuitos Integrados MSI ("Medium Scale Integrated") 1971: => Circuitos Integrados LSI ("Large Scale Integrated") => INTEL 4004 (CPU do primeiro microcomputador de 4 bits) => INTEL 8008 (CPU do primeiro microcomputador de 8 bits) INTEL 8080 (10 vezes mais rpido que o 8008) => MOTOROLA 6800 => TEXAS 9800 (CPU do primeiro microcomputador de 16 bits) MOSTEK 6502 ==> Apple I, II e II plus ZILOG Z80 ==> TRS-80 => Circuitos Integrados VLSI ("Very Large Scale Integrated") => MOTOROLA 6809 (Melhor CPU de 8 bits do mercado) INTEL 8088/8086 (29.000 transistores integrados) => Microprocessadores BIT-SLICE (de 2 a 64 bits)

1972: 1974:

1976: 1977:

1978:

Dcada de 80: 1980: 1981: 1982: 1984: 1985: 1986: 1988: 1989: => MOTOROLA 68.000 (68.000 transistores integrados) => MOTOROLA 68.010 => INTEL 80186/80188 => INTEL 80286 (130.000 transistores integrados) => MOTOROLA 68.020 => INTEL 80386 (ou 80386DX, ou i386) => MOTOROLA 68.030 => INTEL 80386SX => INTEL i486 (1.200.000 transistores)

Dcada de 90:

1991: 1992: 1993: 1995:

=> INTEL i386SL, i486SX Microprocessadores com tecnologia RISC => INTEL i486DX2/50 e i486DX2/66 => INTEL Pentium => INTEL Pentium Pro
Pgina 4

Microprocessadores _________________________________________________________________________________________________ ____

1997:

INTEL Pentium II

Tendncias: Mquinas CISC ou Mquinas RISC Pentium 166 Mhz Pentium II a 300 Mhz Mquina de Controle Seqencial Mquina de Controle Paralelo Mquina de Arquitetura SIMD Mquina de Arquitetura MIMD ("Data-Flow") Arquiteturas orientadas p/ o HW Arquiteturas orientadas p/ o SW Mquinas processando texto Mquinas processando dados multimdia

1.2 - CPU, MEMRIAS E DISPOSITIVOS DE ENTRADA/SADA

Os prximos pargrafos procuram dar uma idia da nomenclatura utilizada no restante deste documento e introduzir os componentes principais da arquitetura de microcomputadores ou d e circuitos controlados a microprocessador. HARDWARE: consiste de circuitos eletrnicos responsveis pela execuo direta de instrues em linguagem de mquina: CIs, placa impressa, cabos, fontes de alimentao, etc. SOFTWARE: consiste de algoritmos e suas representaes no computador (programas). FIRMWARE: consiste de um software embutido em circuitos eletrnicos. comum dizer que qualquer operao feita por software pode tambm ser construda por hardware e qualquer instruo executada pelo hardware pode tambm ser simulada por software. Um sistema de microcomputador tpico mostrado na figura 1. Basicamente, so trs os componentes de qualquer sistema controlado por microprocessador ou mesmo de um sistema de computao: Unidade Central de Processamento (CPU), Memria e Dispositivos de Entrada/Sada (E/S). A CPU tem finalidade bvia, a de controlar o sistema como um todo. A memria serve para armazenar os dados que sero manipulados e os dispositivos de E/S para a comunicao da mquina com o mundo exterior (usurio). Os vrios tipos de Memria so definidos a seguir: RAM - "Random Access Memory": memria de leitura/escrita, voltil, para armazenamento temporrio de programas e dados; RAM Esttica - RAM com menor densidade e mais rpida que a RAM dinmica. No necessita de circuitos adicionais em um microcomputador. RAM Dinmica - RAM com maior densidade e mais lenta que a RAM esttica. Necessita de circuitos adicionais de controle em um microcomputador. ROM - "Read Only Memory": memria programada quando a pastilha fabricada, no podendo ser modificada. usada para armazenamento permanente de programas e dados; PROM - "Programmable ROM": memria programada por um dispositivo programador de PROM. Programvel uma nica vez;

Pgina 5

Microprocessadores _________________________________________________________________________________________________ ____

EPROM - "Erasable PROM": memria que pode ser apagada e reprogramada vrias vezes. Apagvel pela incidncia de raios ultra-violeta e programvel por um dispositivo programador de EPROM; EEPROM - "Erasable Electrically PROM": memria EPROM eletricamente modificvel, sem necessidade de dispositivos externos apagadores ou programadores. Os Dispositivos de Entrada/Sada so os componentes que viabilizam a interface com o usurio, tais como: portas seriais, portas paralelas, conversores anlogo-digitais, etc Estes componentes so ligados atravs de um sistema de barramentos, o qual ser explicado na prxima seo.

Microprocessador (CPU)

Memria RAM

Memria EPROM

Barramento de Endereos

Barramento de Dados

Barramento de Controle

Interfaces de Interao c/ o Usurio

Interfaces para Memria Secundria

Interfaces de Controle e Sensoreamento

HD

CD-ROM R/W Sensor Vlvula

Imp. Matricial

Monitor

Modem Scanner

Figura 1 Sistema de Microcomputador Tpico e suas Interfaces

Pgina 6

Microprocessadores _________________________________________________________________________________________________ ____

1.3 - SISTEMA DE BARRAMENTOS

Um sistema de barramentos definido como um conjunto fsico de linhas de sinal que possuem funes especficas dentro do sistema. O sistema de barramentos de um microcomputador composto de 3 barramentos (ver figura 1) independentes em suas funes eltricas: o barramento de endereos, o barramento de dados e o barramento de controle. O Barramento de Endereos apenas de sada (em relao CPU) e define o caminho de comunicao dentro do sistema. O Barramento de Dados bidirecional, sendo o meio de comunicao entre os componentes do sistema. Na sada de dados da CPU, estes so gerados pelo microprocessador (CPU) e enviados uma unidade que selecionada pelo barramento de endereos. Na entrada de dados, estes so gerados por uma unidade particular e enviados ao microprocessador. O Barramento de Controle, como o prprio nome indica, envia e recebe os sinais de controle necessrios transferncia de dados no sistema. Este barramento composto, basicamente, de 4 tipos de sinais: leitura de memria ativa, escrita de memria ativa, entrada atravs de dispositivo externo ativo e sada atravs de dispositivo externo ativo.

1.4 - ARQUITETURA PADRO DE UM MICROPROCESSADOR


Depois de se examinar um sistema de microcomputador de forma global, nesta seo ser apresentada a arquitetura padro de um microprocessador, exibida na figura 2. Destacam-se os seguintes blocos: Registrador de Instruo (RI) - registrador que armazena a instruo sendo executada; Contador de programa ("Program Counter - PC") - registrador que armazena o endereo de memria da prxima instruo a ser executada; Acumulador - registrador que contm o dado a ser processado; Apontador de pilha ("Stack Pointer - SP") - registrador que aponta para o endereo de retorno de subrotina, sendo este ltimo armazenado em uma pilha na memria; Unidade Lgica e Aritmtica (ULA) - circuito combinacional utilizado para operaes lgicas e aritmticas envolvendo dois operandos; Decodificador de instrues - circuito combinacional utilizado para determinar qual a prxima instruo a ser executada. Isto feito a partir do cdigo de operao armazenado previamente no Registrador de Instruo; Unidade de controle - circuito seqencial interno ao microprocessador utilizado para gerar os sinais de controle necessrios execuo da instruo previamente decodificada; Registradores auxiliares - conjunto de registradores de rascunho que podem ser usados em conjunto ou separadamente para operaes intermedirias, sem que seja necessrio o acesso sistemtico memria;
Pgina 7

Microprocessadores _________________________________________________________________________________________________ ____

Flags conjunto de Flip-Flops destinados a guardar as condies resultantes da execuo de instrues. Tais flags so fundamentais no sentido em que se constituem no nico mecanismo que o programador Assembly dispe para desvios de processamento e implementao de algoritmos.

Barramento de Dados Buffer de Dados

Acumulador RI Cdigo de Instruo Informao Complementar SP Decodificador X Apontador de Pilha Contador de Programa R1

. . .
Rn Registradores de Rascunho Unidade Lgica e Aritmtica (ALU) S Z CY AC

PC

Unidade de Controle

Buffer de Endereo Sinais de Controle Barramento de Endereos

P Flags

Figura 2 Arquitetura Padro de um Microprocessador

1.5 - EXECUO DE INSTRUES EM MICROPROCESSADORES

Nesta seo sero dadas as explicaes bsicas para o entendimento dos microprocessadores mais comuns do mercado. Antes de mostrar o procedimento de execuo de instrues necessrio detalhar alguns aspectos: os flags de condio, o formato das instrues e as operaes bsicas (de leitura e escrita) de um microprocessador.

Flags de Condio:

Um "flag" "SETADO", forando-se o bit de flag para "1" e "RESETADO", forando-se o bit de flag para "0". Quando uma instruo afeta um flag este alterado da seguinte maneira: ZERO: Se o resultado da instruo tem valor 0,
Pgina 8

Microprocessadores _________________________________________________________________________________________________ ____

ento Z 1 seno Z 0;

SINAL: Se o bit mais significativo do resultado da operao tem valor 1, ento S 1 seno S 0;

PARIDADE: Se a soma dos bits do resultado da operao 0, ento P 1 (paridade PAR) seno P 0 (paridade MPAR);

CARRY: Se o resultado da instruo provoca um "carry" (na adio) ou um "borrow" (na subtrao ou comparao), ento C 1 seno C 0;

CARRY AUXILIAR: Se a instruo causou um carry do bit 3 para o bit 4, ento AC 1 seno AC 0.

Cada microprocessador tem seus prprios bits de flag. Os flags anteriormente mencionados so os mais comuns de serem encontrados na maioria dos microprocessadores. Mostra-se a seguir o formato de instruo, por exemplo, de um microprocessador de 8 bits. A partir deste entendimento, pode-se por analogia, entender o formato de instrues de outros microprocessadores. Assim, o formato de instruo do INTEL 8085 utilizado como exemplo bsico. Formato de Instruo e dado no 8085 1. Instrues de um byte D7 D6 D5 D4 D3 D2 D1 D0 Cdigo de Operao Ex.: MOV R1,R2 ; R1 <- R2

Obs.: O endereo do primeiro byte das instrues sempre usado como o endereo de instruo. 2. Instrues de dois bytes D7 D6 D5 D4 D3 D2 D1 D0 Cdigo de Operao

D7 D6 D5 D4 D3 D2 D1 D0 Ex.: MVI R,dado ; R <- dado

Info. Complementar

3. Instrues de trs bytes


Pgina 9

Microprocessadores _________________________________________________________________________________________________ ____

D7 D6 D5 D4 D3 D2 D1 D0 Cdigo de Operao

D7 D6 D5 D4 D3 D2 D1 D0

Info. Complementar

D7 D6 D5 D4 D3 D2 D1 D0 Ex.: LXI Rp, dado 16 ; Rh <- (byte3) ; Rl <- (byte 2)

Info. Complementar

Nas sees anteriores foram mostrados os componentes bsicos de um circuito controlado a microprocessador, a arquitetura padro dos microprocessadores e a CPU do sistema. Isto era indispensvel para a compreenso do captulo e do curso como um todo. Ainda com o intuito de mostrar como instrues so executadas em microprocessadores, tambm se faz necessrio explicar as operaes bsicas de um computador ou circuito controlado a microprocessador. Estas, so as operaes de leitura de memria e escrita na memria. Operaes Bsicas de um Computador:

Operao de Leitura:

1. A memria recebe o endereo e a solicitao de leitura; 2. A memria localiza a clula decodificando o endereo; 3. Operao de leitura propriamente dita; 4. Intervalo em que a memria no acessvel por razes tcnicas ("Descanso").

Ciclo de Acesso Memria: fases 1, 2 e 3 Ciclo da Memria: fases 1, 2, 3 e 4

Operao de Escrita:

1. A memria recebe o endereo, o dado e uma solicitao de escrita; 2. A memria localiza a clula decodificando o endereo; 3. Operao de escrita propriamente dita;

Pgina 10

Microprocessadores _________________________________________________________________________________________________ ____

4. ("Descanso"). Obs.: A operao de leitura muito mais freqente que a operao de escrita.

Ciclo de Instruo

Uma instruo executada por um microprocessador durante um intervalo de tempo particular instruo, chamado, CICLO DE INSTRUO. Um ciclo de instruo composto de vrios ciclos de mquina que variam de acordo com a instruo. Cada ciclo de mquina, por sua vez tem a durao de vrios perodos de relgio. Em seguida, o ciclo de instruo detalhado. O formato da instruo em linguagem de mquina mostrado a seguir. Com base neste formato pode-se descrever textualmente o ciclo de instruo.

Linguagem de Mquina ==>

Cdigo de Operao

Informao Complementar

CICLO DE INSTRUO: 1. BUSCA a) Envio de um endereo para a memria e execuo de uma leitura; b) Incremento do registrador de endereo de instruo; 2. EXECUO a) Decodificao do cdigo de operao; b) Execuo da instruo; 3. VOLTA PARA FASE 1 --> Pode haver desvio: - Incondicional: o valor do registro de endereo de instruo alterado; - Condicional: se a condio satisfeita, a seqncia linear interrompida.

importante ressaltar que cada ciclo de instruo composto por vrios ciclos de mquina.. A figura 3 procura ilustrar o procedimento de execuo de um pequeno programa, passo-a-passo, j armazenado na memria e a figura 4 mostra, sob a forma de diagrama de tempo, a execuo da instruo LDA 0420, com todos os seus ciclos de mquina e perodos de relgio.

Pgina 11

Microprocessadores _________________________________________________________________________________________________ ____

Caracter "A" do teclado

Porta de Entrada 01
5

Acumulador Registrador de Instruo

5 16

Microprocessador

1 3 6 8 12 14

Endereo 0100 0101 0102 0103 0104 0105 0106 0107

Contedo IN 01 STA 00 20 OUT 10 ...

2 4 7 9 13 15

Memria de Programa

10

Endereo 2000 2001 2002 2003

Contedo A

11

Memria de Dados

16

Porta de Sada 10
16

Caracter "A" para o monitor de Vdeo

Figura 3 Execuo de Instrues por um Microprocessador Passo-a-Passo


Pgina 12

Microprocessadores _________________________________________________________________________________________________ ____

T1 T2 T3 T4 T5 Fase Busca Exec.

T1 T2 T3 T4 T5 T 1 T2 T3 T4 Busca Exec. Busca

T5 T1 T2 T 3 T 4 T 5 Busca Exec.

Exec.

Ciclo

Ciclo

M1
No Usado

Ciclo

M2
No Usado

Ciclo

M3
No Usado

Ciclo

M4

Oper.

RI <- LDA 1001 ->1002

RI <- 04

RI <- 20

Bar. A <Dados (0420) <-(0420) 1004

PC

1002 ->1003

1003

1004

Busca do Cdigo de Operao da Instruo e Transferncia deste cdigo para o Registrador de Instruo (RI)

Busca do primeiro byte do endereo e transferncia para dentro da parte de endereo do RI, byte demenor ordem

Busca do segundo byte do endereo e transferncia para dentro da parte de endereo do RI, byte demaior ordem

A parte de endereo do RI depositada no barramento de endereos

Acumulador recebe o contedo da posio de memria, cujo endereo 0420

RI

Figura 4 Execuo da Instruo LDA 0420

1.6 - ALGUMAS INSTRUES IMPORTANTES

Normalmente, pode-se separar as instrues de linguagem Assembly de um microprocessador em grupos. Tais grupos podem ser generalizados para a maioria dos microprocessadores com algumas pequenas diferenas. A ttulo de exemplo, os grupos de instrues no 8085 so mostrados abaixo.

Pgina 13

Microprocessadores _________________________________________________________________________________________________ ____

Grupo de Transferncia de Dados Move dados entre registradores ou entre locaes de memria e registradores; Ex.: "MOVEs", "LOADs", "STOREs" e EXCHANGE; Grupo Aritmtico "ADDs", "SUBTRACTs", "INCREMENTs" ou DECREMENTs" dados nos registradores ou na memria; Grupo Lgico "ANDs", "ORs", "XO Rs", "COMPAREs", "ROTATEs" ou registradores ou entre locaes de memria e registradores; Grupo de Salto "JUMPs", "CALLs" e "RETs" condicionais ou incondicionais; Grupo de Instrues de Pilha, E/S e Controle de Mquina Inclui instrues de manuteno de pilha, leitura escrita na/da memria, "seta" ou l mscaras de interrupo, seta ou limpa "FLAGs" "COMPLEMENTs" dados entre

1.7 CAPACIDADE DE INTERRUPO

Uma das tcnicas de Entrada/Sada de dados mais utilizadas na atualidade a Interrupo. Seu uso aplica-se tanto em computadores de um modo geral, como tambm no ambiente de automao industrial. INTERRUPO (IRQ) um sinal de hardware enviado por um dispositivo perifrico necessitando de imediata ateno da CPU. A utilizao desta tcnica, forosamente, envolve sinais de hardware. comum em softwares de apoio tradicionais, como o Norton Utilities, observar a distino entre Interrupes por Hardware e por Software. Segundo nomenclatura da INTEL, a diferena bsica que na Interrupo por Hardware , o endereo de salto, para o qual o microprocessador ir desviar o processamento predefinido pelo hardware do microprocessador, enquanto que na Interrupo por Software , este endereo de salto pode ser alterado pelo usurio programador Assembly. Um outro conceito relacionado as interrupes tambm merece ser comentado. o mascaramento de Interrupes. Existem as Interrupes Mascarveis e as Interrupes No Mascarveis. Quando as Interrupes so Mascarveis o processador tem a capacidade de no aceitar o pedido de interrupo do perifrico, deixando-o pendente, de tal forma que possa atend-lo um tempo depois. J nas Interrupes No Mascarveis, o processador no pode fazer isso, sendo obrigado a atender imediatamente a solicitao de interrupo do perifrico. A fim de exemplificar estes conceitos e subsidiar as explicaes sobre o mecanismo de Interrupo, fornecida a seguir a sintaxe e a semntica de uma instruo bsica para o entendimento deste mecanismo, a instruo RESTART.

Pgina 14

Microprocessadores _________________________________________________________________________________________________ ____

Instruo RST n (Restart) RST uma instruo CALL de propsito especial. RST "push" ou "empurra" bytes do Program Counter (PC) sobre a pilha e ento faz a CPU saltar para um dentre vrios endereos predeterminados. ((SP) - 1) <-- (PCH) ((SP) - 2) <-- (PCL) (SP) <-- (SP) - 2 (PC) <-- 8 * (NNN) NNN - Nmero binrio 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 Ex.: Endereos de salto possveis no INTEL 8085:

HEXADECIMAL 0000 0008 0010 0018 0020 0024 0028 002C 0030 0034 0038 003C

DECIMAL 0 8 16 24 32 36 40 44 48 52 56 60

RST 0 1 2 3 4 TRAP 5 5.5 6 6.5 7 7.5

Interrupes por Hardware: Ex.: O 8085 inclui 4 sinais de entrada (hardware) que geram internamente instrues RST: RST 5.5, RST 6.5 e RST 7.5 (Mascarveis) TRAP (no Mascarvel)

Interrupes por Software: Quando um dispositivo de E/S pede o servio de interrupo e a IRQ est habilitada pelo sistema de interrupo do processador, este reconhece o pedido e prepara suas linhas de dados para aceitar qualquer instruo de um byte do dispositivo. RST geralmente a instruo escolhida, pois uma instruo CALL de propsito especial que estabelece o retorno ao programa principal.

Ex.: O 8085 possui 1 entrada e 1 sada que implementa este tipo de interrupo INTR pino de entrada INTA pino de sada

Pgina 15

Microprocessadores _________________________________________________________________________________________________ ____

Para o processador no se confundir, ao receber dois pedidos de interrupo simultneos, provido um mecanismo de prioridade que estabelece uma ordem no atendimento destes pedidos.

Prioridade das Interrupes no 8085

NOME TRAP RST 7.5 RST 6.5 RST 5.5 INTR

PRIORIDADE 1 2 3 4 5

ENDEREO DE SALTO (1) 0024H 003CH 0034H 002CH (2)

TIPO DE "TRIGGER" Pulso Positivo amostrado at Alto Nvel Pulso Positivo "Latched" Sensvel a Nvel (Alto) Sensvel a Nvel (Alto) Sensvel a Nvel (Alto)

(1) O processador coloca o contedo do Program Counter sobre a pilha, antes de saltar para o endereo indicado (2) - Depende da Instruo fornecida a CPU quando a Interrupo reconhecida

A figura 5 ilustra o mecanismo de Interrupo no 8085. A figura 6 mostra o mesmo para o ZILOG Z80 e a figura 7 exibe os circuitos integrados tpicos dos ambientes INTEL e ZILOG. importante ressaltar a diferena entre os mecanismos de prioridade de interrupo das duas empresas.

Pgina 16

Microprocessadores _________________________________________________________________________________________________ ____

1 INTEL 8085 2 3

INTR INTA RST nn Dispositivo Perifrico

Ex.: RST 7 3 Endereo 0038 0039 003A Dado C3 (JMP) 00 80 1 INTR 6

Programa sendo executado 6001 6002 6003 Pilha (SP) 02 60

Subrotina de Servio de Interrupo 8000 ... ... RET

Figura 5 Mecanismo de Interrupo no INTEL 8085

Pgina 17

Microprocessadores _________________________________________________________________________________________________ ____

1 ZILOG Z80 2

___ INT ____ INTA

Dispositivo Perifrico

Registrador da CPU

80

80

04

Programa sendo executado 4002 4003 4004 2 (SP) Pilha 04 40

1 ___ INT 6 3

Subrotina de Servio de Interrupo 6050 60XX 4 ... ... RETI

Tabela de Endereos de Interrupo 8003 8004 50 8005 60 8006

Figura 6 Mecanismo de Interrupo (Modo 2) no ZILOG Z80

Pgina 18

Microprocessadores _________________________________________________________________________________________________ ____

PIO

DMA

Barramentos Z80 CPU Mecanismo "Daisy Chain" CTC Prioridade Fixa SIO

8274

8253

Barramentos 8085 CPU

8259 (PIC) Prioridade Controlada

8257

8272

Figura 7 Mecanismos de Prioridade de Interrupo ZILOG e INTEL

8259 Controlador de Prioridade de Interrupo (PIC) 8257 Controlador de DMA Programvel (PDC) 8272 Controlador de Disco Flexvel 8274 Controlador Serial Multiprotocolo 8273 Temporizador Programvel

1.8 TCNICAS DE ENTRADA E SADA

Pgina 19

Microprocessadores _________________________________________________________________________________________________ ____

Alm da tcnica de Interrupo detalhada na seo anterior, existem duas outras tcnicas, tambm muito utilizadas em sistemas de computao de um modo geral. So estas: "Polling" e Acesso Direto Memria (ou DMA Direct Access Memory). "POLLING": uma tcnica de Entrada/Sada de dados onde a CPU, explicitamente, consulta o perifrico com o objetivo de saber se o mesmo possui dados para transmitir ou se est livre para os receber. Esta tcnica no envolve sinais de hardware e pode ser implementada por software; ACESSO DIRETO MEMRIA: uma tcnica de Entrada/Sada de dados onde a CPU no participa do processo de transferncia de dados, exceto no seu incio e aps o seu trmino. Um outro dispositivo perifrico necessrio, o chamado "Controlador de DMA", para assumir o controle dos barramentos do sistema e controlar as transferncias de dados. Na maior parte dos casos, o uso desta tcnica obriga o uso combinado das anteriores para que o processo de transferncia de dados seja iniciado e terminado corretamente. A figura 8 ilustra passoa-passo o procedimento de transferncia de dados para a ou da memria, sem interferncia da CPU.

Memria

Disp. 0

Disp. 1

Barramentos
s do Da

CPU

HOLD CDMA

DRQ 1 DACK 4

Disp. 3

Disp. 2

3 HOLDA

Driver ptico

Figura 8 Entrada/Sada por Acesso Direto Memria

1 DRQ Data Request: Solicitao de Acesso Direto Memria feito pelo dispositivo perifrico ao Controlador de DMA (CDMA); 2 HOLD Hold Request: Solicitao de controle de barramentos feito pelo CDMA ao processador; 3 HLDA Hold Acknowledgement Resposta do processador ao CDMA, avisando que partir daquele momento, este poder assumir o controle temporrio dos barramentos para a transferncia de dados; 4 DACK Data Acknowledgement Resposta do CDMA ao dispositivo perifrico, avisando que assumiu o controle dos barramentos e a transferncia de dados poder se iniciar. A programao do CDMA consiste basicamente de informar o mesmo sobre o endereo inicial do bloco de bytes a ser transferido, o sentido da transferncia e o tamanho de bloco ou o endereo final. Depois que os comandos so fornecidos ao dispositivo perifrico o processo continua, sem

Pgina 20

Microprocessadores _________________________________________________________________________________________________ ____

interferncia da CPU. Aps a transferncia, o sinal DRQ retirado, consequentemente, todos os outros sinais so retirados e a CPU reassume o controle dos barramentos.

Pgina 21

Microprocessadores _________________________________________________________________________________________________ ____

CAPTULO 2: OS MICROPROCESSADORES DA INT EL


2.1 O 8086/8088
A figura 9 exibe o Diagrama em Blocos da Arquitetura do 8086.

2.1.1 Arquitetura

Unidade de Execuo AH BH CH DH SP BP SI DI AL BL CL DL

Unidade de Interface de Barramento

0000 CS DS SS ES

IP 0000 0000 0000 0000

Unidade de Controle de Barramento

ALU (Unidade Lgica e Aritmtica) Unidade de Controle Status

1 2 3 4 5 6 Fila de Cdigo Objeto de Instruo

Registrador de Instruo

Figura 9 Arquitetura do 8086

Fonte: "The 8086 Book", Rector R. e Alexy G. - OSBORNE/McGraw-Hill

Pgina 22

Microprocessadores _________________________________________________________________________________________________ ____

Registradores do 8086/8088

Registrador AX = AH + AL BX = BH + BL CX = CH + CL DX = DH + DL SP BP SI DI IP Flags H + Flags L CS DS SS ES

Finalidade Acumulador Base (2 acumulador) Contador (usado em instrues de mltiplas interaes) Dado (algumas instrues movem dados de uma porta de E/S para a posio de memria endereada por DX) Apontador de Pilha Apontador de Base ndice Fonte ndice Destino Apontador de Instruo Flags Segmento de Cdigo Segmento de Dados Segmento de Pilha Segmento Extra

Observaes: 1. 2. 3. 4. O registrador SP est estreitamente ligado ao ES, em funo das operaes relacionadas manuteno da pilha; O registrador IP est estreitamente ligado ao CS , em funo das operaes relacionadas execuo de instrues; O endereo fonte de um String de dados obtido partir de SI + DS ; O endereo destino de um String de dados obtido partir de DI + ES .

2.1.2 Caractersticas Gerais

Capacidade de Endereamento: 20 bits de endereamento => 1.0 Megabytes ou 512 Kwords Operaes com: Bit, Byte, Word e Bloco Organizao da Memria: a) Fsica: => 2 x 512 Kbytes. End. mpar (D7 D0) End. Par (D15-D8) b) Endereamento relativo base de endereos de Registradores de Segmento: Code (CS), Data (DS), Stack (SS) e Extra (ES).

Endereo End. da Memria de Programa

Registrador IP CS (IP+CS) Endereo Final

Contedo 0MMMM NNNN0 PPPPM

Pgina 23

Microprocessadores _________________________________________________________________________________________________ ____

End. da Memria de Dados

XX DS (XX+DS) Endereo Final XX SS (XX+SS) Endereo Final XX ES (XX+ES) Endereo Final

0MMMM NNNN0 DDDDM 0MMMM NNNN0 SSSSM 0MMMM NNNN0 DDDDM

End. da Memria de Pilha

End. da Memria Extra

Observaes: 1. Cada registrador de segmento (16 bits) identifica o incio de um segmento 64 Kbytes. Como so 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, tm-se apenas 1 de 16 possveis segmentos endereveis diretamente (1 MBytes / 64 Kbytes = 16); XX pode ser um registrador qualquer da CPU, como por exemplo: IP, quantidade de 16 bits, DI ou SI, BX, BP, etc.

2.

c) Posies de FFFF0-FFFFF (32 Bytes) reservadas para Reset => Aps o Reset, a CPU executa sempre a instruo contida no endereo FFFFF0, onde normalmente existe um JUMP. d) Posies de 00000-003FF (1024 Bytes) reservadas para operaes com Interrupo => 256 possveis vetores de interrupo;

Endereamento de Entrada/Sada - 256 dispositivos diretamente; - 64 Kbytes indiretamente Tamanho dos Registradores Internos : 16 bits Tamanho do Barramento de Dados: 16 bits Coprocessador matemtico: 8087

2.1.3 Capacidade de Interrupo

1. Interrupes Predefinidas (requisitadas por hardware ou software) De 0 a 31: IRQ 0 IRQ 1 IRQ 2 ... Diviso por Zero Passo-a-Passo NMI (Not Maskable Interrupt)

2. Interrupes de Hardware (definidas pelo usurio) De 32 a 255: Solicitadas via pino INTR da CPU

Pgina 24

Microprocessadores _________________________________________________________________________________________________ ____

Observao: O dispositivo solicitante deve colocar em D0-D7 (8 bits menos significativos do barramento de dados) o Nmero de Interrupo para a CPU. A CPU multiplica este nmero por 4 e com o resultado, enderea a posio de memria contendo o vetor correspondente na TABELA DE VETORES DE INTERRUPO. A figura 10 ilustra estes conceitos.

1a. Instruo Rotina de Servio de Interrupo IRET

Nmero de Interrupo x 4 Tabela de Vetores de Interrupo

003FF

IP CS

00000

Figura 10 Busca da Rotina de Servio de Interrupo no 8086

Dos 4 bytes do VETOR DE INTERRUPO, os 2 primeiros formam o contedo do IP (Instruction Pointer) e 2 bytes restantes formam o contedo do CS - Registrador de Segmento de Cdigo (Code Segment). Desta maneira formado o Endereo de Incio da Rotina de Servio de Interrupo. 3. Interrupes de Software (definidas pelo usurio) De 32 a 255: Solicitadas via instruo "INT nn" nn = Nmero da Interrupo a ser executada Para finalizar este item deve-se comentar a posio do microprocessador 8088 em relao ao 8086. Sobre o 8088

Pgina 25

Microprocessadores _________________________________________________________________________________________________ ____

Uma das nicas diferenas 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 perifricos do 8080 (mais conhecidos e mais baratos), reduzindo sobremaneira o custo final da mquina. Como o 8086, efetivamente, no e ra utilizado como um microprocessador de 16 bits, propagandeou-se em larga escala que microcomputadores com CPU 8088 possuam o mesmo desempenho e mais baixo custo do que mquinas com CPU 8086. A verdade que o momento era de transio para uma CPU mais poderosa e os fabricantes de placas ainda no haviam tomado uma posio definitiva respeito. Assim, o 8088 arquiteturalmente (rodava os mesmos programas) igual ao 8086, com a diferena principal apenas no comprimento do barramento de dados.

Sobre o par 80186/80188 Aps os microprocessadores 8086 e 8088, a INTEL lanou 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 utilizao na rea de controle de processos, gerenciamento de terminais e automao industrial. Entretanto, no fez sucesso comercial na rea de microinformtica, pois suas melhorias em relao a software eram muito poucas. A exemplo do par 8086/8088, uma CPU 80188 tambm foi produzida pela INTEL, com as mesmas caractersticas do 80186, exceo do barramento de dados, dimensionado para 8 bits

2.2 O 80286

2.2.1 Arquitetura e Caractersticas


O microprocessador 80286 surgiu com duas grandes novidades para a rea de microinformtica. A primeira foi que o barramento de endereos da pastilha cresceu para 24 bits (no mais os 20 bits do 8086 e 80186), o que implica em uma capacidade de endereamento de 16 MBytes. A segunda foi a introduo de dois modos de funcionamento da CPU: o MODO REAL (compatvel com o 8086) e o MODO PROTEGIDO (especfico para o 286). Uma terceira inovao, o suporte a memria virtual (na poca, no totalmente explorada), permitia o endereamento de at 1 Gigabytes. Os itens que se seguem procuram fornecer mais detalhes sobre esta CPU. Modo Real: Neste modo, o 80286 compatvel em software (a nvel de cdigo objeto) com o 8086/8088. O fato de emular o 8086/8088 significa dizer que a memria a ser utilizada pelo programa no pode ultrapassar 1.0 MBytes, consequentemente, no utilizando toda a capacidade de endereamento disponvel. Sendo a CPU mais evoluda em hardware e permitindo a utilizao de osciladores a cristal de freqncias mais altas, sem dvida mquinas com esta CPU, mesmo operando neste modo, possuam maior desempenho que os famosos XTs. Modo Protegido: Neste modo, o 80286, tambm pode rodar programas 8086/8088 e alm disso, rodar programas escritos especificamente com o cdigo fonte 80286. Neste modo, o 80286 automaticamente mapea 1.0 Gigabytes de endereos virtuais por tarefa dentro de um espao de endereo real de 16.0 Megabytes. No modo protegido, o 80286 prov proteo de memria 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 multiusurio.

Pgina 26

Microprocessadores _________________________________________________________________________________________________ ____

Registradores do 80286

Registrador AX = AH + AL BX = BH + BL CX = CH + CL DX = DH + DL SP BP SI DI IP Flags H + Flags L CS DS SS ES

Finalidade Acumulador Base (2 acumulador) Contador (usado em instrues de mltiplas interaes) Dado (algumas instrues movem dados de uma porta de E/S e a posio de memria endereada por DX) Apontador de Pilha Apontador de Base ndice Fonte ndice Destino Apontador de Instruo Flags Segmento de Cdigo Segmento de Dados Segmento de Pilha Segmento Extra

Observao: Exatamente os mesmos registradores do 8086

Capacidade de Endereamento: 24 bits de endereo 16.0 MBytes Operaes com: byte, word, double word, quad word, BCD, ASCII, apontador e ponto flutuante; Relgio: 80286-4 80286-6 80286 80286x ==> 4.0 Mhz ==> 6.0 Mhz ==> 8.0 Mhz ==> 12.0 Mhz e 16 Mhz

Organizao de Memria: a) fsica 2 x 8.0 MBytes;

b) Endereamento: 31 16 15 Offset 0

Seletor de Segmento

O seletor de segmento (16 bits) especifica um ndice dentro de uma tabela em memria residente cujo contedo um endereo base de 24 bits. O endereo real de memria obtido com a soma deste endereo base (24 bits) mais o offset (16 bits), totalizando 24 bits de endereo. c) Posies de 00000-003FF (1024 bytes 256 possveis vetores de interrupo) reservadas, como no 8086, para operaes com interrupo, no modo real;

d) Posies de FFFF0-FFFFF reservadas para "reset", no modo real;


Pgina 27

Microprocessadores _________________________________________________________________________________________________ ____

Endereamento de Entrada/Sada: - 256 dispositivos diretamente; - 64 Kbytes indiretamente Tamanho dos Registradores Internos: 16 bits Tamanho do Barramento de Dados: 16 bits Coprocessador matemtico: 80287 Capacidade de Processamento de Instrues: aprox. 1.5 MIPS (80286 a 8 Mhz)

2.2.2 - Diferenas no Conjunto de Instrues

O conjunto de instrues do 80286 dividido em sete categorias: transferncia de dados, aritmticas, deslocamento/lgicas, manipulao de strings, controle de transferncia, de alto nvel e de controle de processador. Entre as instrues adicionais podem ser citadas as seguintes: PUSHA salva o contedo da totalidade dos registradores; POPA restaura o contedo da totalidade dos registradores; INS entra string de caracteres; OUTS sai string de caracteres; ENTER chama procedure; LEAVE libera procedure; e mais 15 instrues que somente podem ser executadas no modo protegido;

2.2.3 Implicaes no Desempenho de um Microcomputador

Sistemas de microcomputador baseados no 80286 foram os primeiros sistemas com capacidade para rodar sistemas operacionais de rede multiusurio 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 funo de computador pessoal (desktop) e no mais a de servidor.

2.3 - OS 80386

2.3.1 - Diferenas de Arquitetura e Caractersticas

O microprocessador 80386 compatvel 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

Pgina 28

Microprocessadores _________________________________________________________________________________________________ ____

assim, o 386 executa a maioria dos programas escritos para o 8086 e 80286, simplesmente por que este emula estas CPUs, no fazendo uso de todas as suas capacidades. Primeiro microprocessador de 32 bits da INTEL, o 80386 trouxe um novo modo de operao, em adio aos dois modos do 80286 (Real e Protegido), o modo Virtual. O microprocessador abordado nos prximos pargrafos o 80386 mais potente da famlia, que na literatura chamado de 80386DX, ou 80386 "Full" ou ainda, como a INTEL o denominou, simplesmente, 80386. A figura 11 mostra os registradores do 80386.

Registradores Gerais de Endereo e Dados 31 15 7 0 AH AL BH BL CH CL DH DL SI DI BP SP EAX EBX ECX EDX ESI EDI EBP ESP

Registradores Seletores de Segmento 15 CS SS DS ES FS GS 0 Cdigo Pilha Dados

Apontador de Instruo e Registrador de Flags IP FLAGS EIP EFlags

Figura 11 Registradores do 80386

No MODO REAL, o 80386 compatvel em software (a nvel de cdigo objeto) com o 8086/8088, inclusive com a mesma limitao de memria (1.0 MBytes). Sendo a CPU mais evoluda em hardware (p.e. registradores de 32 bits) e permitindo a utilizao de osciladores a cristal de freqncias ainda mais altas que os 80286, sem dvida, mquinas com esta CPU possuem desempenho bem maior que os 286. Assim, neste modo, o mecanismo de endereamento, o tamanho de memria e a manipulao de interrupes so todos idnticos ao modo real do 80286. As instrues 80386 tambm podem ser utilizadas neste modo. No MODO PROTEGIDO, o 80386, se comporta exatamente como no modo de mesmo nome do 80286, sendo que enderear 4.0 Gigabytes de memria real (ao invs dos 16.0 MBytes do 80286) e 64 Terabytes de memria virtual. Neste modo, o mecanismo de endereamento tambm diferente daquele utilizado no 80286. Enquanto no 80286 o endereo base de 24 bits (aos quais so adicionados 16 bits de offset), no 80386 este endereo de 32 bits (aos quais so adicionados 16 ou 32 bits de offset). Quando operando no modo protegido, o 80386 pode fazer uso de uma tcnica chamada de SEGMENTAO. Esta tcnica organiza a memria em mdulos lgicos chamados segmentos. Este modo de gerenciamento de memria provm a base para a proteo de segmentos de memria. Por
Pgina 29

Microprocessadores _________________________________________________________________________________________________ ____

exemplo, uma tabela do sistema operacional pode residir em um segmento e, como tal, deve ser protegido da interferncia de usurios no privilegiados, os quais poderiam "derrubar" o sistema. Uma outra tcnica til de gerenciamento de memria para sistemas operacionais multitarefa em memria virtual a tcnica chamada de PAGINAO. Independentemente da segmentao, a qual modulariza programas e dados em segmentos de comprimento varivel, a paginao divide programas em pginas uniformes mltiplas. Dessa forma, somente um pequeno nmero de pginas de cada tarefa precisa estar na memria em um dado instante. A paginao til para o gerenciamento da memria fsica do sistema. O 80386 possui 4 nveis de proteo otimizados para suportar as necessidades de sistemas operacionais multitarefa, os quais devem proteger e isolar programas de usurios, uns dos outros, e programas do prprio sistema operacional, dos usurios. Tais nveis de proteo se constituem, em outras palavras, em um sistema de privilgio hierrquico de 4 nveis: PL=0 (mais privilegiado) - Ncleo do sistema operacional; PL=1 - Servios do Sistema Operacional; PL=2 - Extenses do Sistema Operacional e PL=3 - Aplicaes. Quando operando no MODO VIRTUAL, o 80386 permite a execuo simultnea de aplicaes 8086, sistemas operacionais 8086 e suas aplicaes, aplicaes 80286 e, ainda, aplicaes 80386. Assim, em um computador 386 multiusurio, uma pessoa pode estar rodando uma planilha DOS, enquanto outra usa o DOS e uma terceira roda mltiplos utilitrios e aplicativos UNIX. A MEMRIA CACHE um bloco de memria RAM (do tipo esttica) que, tendo tempo de acesso menor que a memria principal (do tipo dinmica), pode ser lido muito mais rapidamente. Assim, antes de se executar um programa que est na memria principal, a regio contendo o programa transferida para a memria cache e s ento o programa executado. Isto reduz drasticamente o tempo de acesso RAM e aumenta a velocidade de execuo dos programas. No 80386, o uso de memria cache era opcional, isto , apenas algumas mquinas (dependendo do fabricante) incluam uma pastilha controladora de memria cache, o 82385 (gerenciavam at 256 Kbytes), e sua incluso implicava em um aumento da placa me. Esta pastilha s era encontrada nas ltimas verses micros 386.

Caractersticas Principais: Capacidade de Endereamento: 32 bits de endereo 4.0 Gigabytes Operaes com: bit, campos de bit, string de bits, byte, word, double word, quad word, BCD, ASCII, apontador e ponto flutuante; Relgio: 80386-12 80386-16 80386x 80386x Am386-40 12.5 Mhz 16.0 Mhz 20.0 Mhz 33.0 Mhz 40.0 Mhz

Organizao de Memria: a) Fsica: 2 x 2.0 Gigabytes; 4 x 1.0 Gigawords; 8 x 0.5 Gigalongwords

b) Endereamento:
Pgina 30

Microprocessadores _________________________________________________________________________________________________ ____

3 espaos de endereo ==> lgico, linear e fsico Endereamento Lgico (ou Virtual): Consiste de um segmento seletor (14 bits) e de um offset (soma de componentes de endereamento: BASE, INDEX, DISPLACEMENT => 32 bits), totalizando 46 bits de endereamento, consequentemente, um espao de 64 Terabytes; Endereamento Linear: A unidade de segmentao translaciona o endereo lgico para um endereo linear de 32 bits, implicando em 4.0 Gigabytes; Endereamento Fsico: Se a unidade de paginao no est habilitada, o endereo linear de 32 bits corresponde a um endereo fsico, tambm de 4.0 Gigabytes. c) Posies de 00000000-000003FF (1024 bytes 256 possveis vetores de interrupo) reservadas, como no 8086 e 80286, para operaes com interrupo, no modo real;

d) Posies de FFFFFFF0-FFFFFFFF reservadas para "reset", no modo real; Endereamento de Entrada/Sada: - 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 matemtico: 80387 Capacidade de Processamento de Instrues: aprox. 4.0 a 10.0 MIPS (80386 32 bits em 16, 20 e 25 Mhz)

2.3.2 - Diferenas no Conjunto de Instrues


O conjunto de instrues do 80386 dividido em nove categorias: transferncia de dados, aritmticas, deslocamento/lgicas, manipulao de strings, controle de transferncia, suporte de linguagem de alto nvel, suporte de sistema operacional e de controle de processador. As diferenas no conjunto de instrues esto intimamente ligadas s instrues de suporte de linguagem de alto nvel e de sistema operacional. Uma das fraquezas do projeto 286 foi a sua incapacidade de emular o 8086, mantendo a proteo e a memria virtual. Com o 286, s se poderia emular o 8086 se este estivesse no modo real, quando a proteo est completamente desabilitada. O projeto do 386 corrigiu este problema e permitiu ento que vrias 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 instrues de 16 bits no modo real e no modo protegido. Prevendo a expanso para o 386, a INTEL, especificou para o 286 que os bits no 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 contedo de um bit D do descritor de segmento. Se "0", ento todos os comprimentos de operando e endereos efetivos so assumidos como de 16 bits (cdigo 286). Se 1, ento o comprimento default de 32 bits (cdigo 386). Independentemente da preciso default, o 80386 pode executar instrues de 16 ou 32 bits, atravs de um prefixo automaticamente adicionado pelos montadores Assembly da INTEL.

Pgina 31

Microprocessadores _________________________________________________________________________________________________ ____

Fonte: "80386 High Performance Microprocessor with Integrated Memory Management", INTEL Corporation - Advance Information, october 1985;

Alm das diferenas anteriormente mencionadas, pode-se ainda citar algumas outras: 1. O tempo de execuo das instrues diferente em vrios casos. Na maior parte, o 386 mais rpido que o 286; Existem vrios cdigos indefinidos no 286 que, se executados, provocariam uma falha de cdigo (INT 6). No 386 a instruo ser executada; O prefixo L OCK (impede que outros dispositivos acessem a memria do processador) para o 8086 irrestrito, mas para o 386 proibido em vrias instrues. O problema era que o uso indiscriminado do LOCK resultava em que dispositivos eram inibidos por perodos inaceitavelmente longos. No ambiente no protegido do 8086, cabia s aplicaes no deixar que isto ocorresse. No ambiente protegido do 386, apenas algumas instrues podem ser precedidas deste prefixo, quelas que no interferem com a velocidade de execuo de tarefas.

2.

3.

2.3.3 Verses 80386, 80386SX e 80386SL

O 80386SX podia ser interfaceado a circuitos perifricos 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). Enderea at 16 MBytes de memria real (bem menos que os 4 Gigabytes do 80386). Era comercializado pela INTEL com relgio mximo de 20 Mhz (o 80386 era encontrado com relgio de 33 Mhz). Sua capacidade de execuo de instrues 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. O 80386SL era um microprocessador tambm derivado do 80386 e foi projetado especialmente para uso em computadores portteis ("Lap Tops"). Esta pastilha foi o resultado da integrao de trs circuitos: a CPU 386SL, um controlador de barramento e um controlador de vdeo grfico, diminuindo assim, o tamanho e o peso do equipamento, alm de proporcionar uma caracterstica particular de economia de energia. A memria real enderevel do 386SL era de 32 MBytes (16 MBytes a mais que o 386SX), sua freqncia de operao era de 20 Mhz e o barramento de dados de 16 bits (como no 386SX). A unidade gerenciadora de energia era capaz de b aixar a zero a atividade na CPU, enquanto se l a tela do micro ou no intervalo da digitao. A aplicabilidade do 386SL em "lap Tops" foi indiscutvel.

2.3.4 - Implicaes no Desempenho de um Microcomputador

Com base nas explicaes fornecidas nos itens anteriores pode-se dizer o seguinte: A exemplo do que ocorreu com o 80286 em relao ao 8086, sistemas de microcomputador baseados no 80386, paulatinamente, passaram de servidores a desktops. Uma verso do Netware da Novell, a verso 3.12, at os dias atuais muito utilizada, usa toda a capacidade deste microprocessador, uma vez que foi escrita em C e assembly 386.

Pgina 32

Microprocessadores _________________________________________________________________________________________________ ____

O 80386 dispunha de um modo de execuo 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.

2.4 - OS I486

A INTEL, segundo deciso da justia dos EUA, no pode registrar nmeros, 386 e 486 p.e., como suas marcas. Optou ento, por acrescentar um "i" (i minsculo) na frente dos nmeros. 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.

2.4.1 - Diferenas de Arquitetura e Caractersticas

A arquitetura interna do i486 foi otimizada em relao ao 80386 ou i386. Isto possibilitou a introduo na pastilha de algo acima de um milho de transistores (quatro vezes mais que o i386 possui). Os fabricantes de computadores foram diretamente beneficiados por esta densidade de integrao, uma vez que a placa me sofreu uma reduo significativa de tamanho e o processo de projeto e montagem foi simplificado. Tambm o microcdigo de instrues foi otimizado, de forma a manter o mximo possvel as operaes no interior da pastilha e, consequentemente, eram necessrios menos ciclos de relgio para executar as mesmas instrues que o i386 j executava. O 486 usa ambas as bordas do sinal de Relgio 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 memria cache e do coprocessador (essencial em ambientes de CAD/CAM). Entretanto, em ambientes de microinformtica, considerados mais simples, que usam planilhas e bancos de dados, o ganho de desempenho com o uso do coprocessador foi praticamente nulo. O i486 incorpora o i386 com as suas instrues, memria cache de 8 Kbytes de RAM esttica (mais rpida que a dinmica) e gerenciador prprio (80385) e coprocessador aritmtico (80387). Foram adicionadas ao conjunto de instrues do i386 cinco instrues: trs para gerenciamento da memria cache e duas, includas a pedido da Microsoft, para tratamento de tarefas concorrentes pelo OS/2. Como no i386, a pastilha enderea diretamente at 4.0 Gigabytes e indiretamente at 64 Terabytes.

2.4.2 - Diferenas na Capacidade de Processamento

O i486 a 25 Mhz possui uma capacidade de processamento de instrues de aproximadamente 20.0 MIPs (duas vezes mais rpido que um i386 nos mesmos 25 Mhz) e totalmente compatvel com este ltimo. Como mencionado, a capacidade de processamento do 486 foi amplamente influenciada pela memria cache. Isto detalhado a seguir. H muitas discusses sobre o melhor tamanho da memria cache, mesmo entre os fabricantes de microcomputadores, por isso mesmo so oferecidas ao usurio as mais diferentes opes. Uma vez que esta a responsvel direta pelo aumento de desempenho da mquina, uma escolha acertada

Pgina 33

Microprocessadores _________________________________________________________________________________________________ ____

poderia beneficiar grandemente o usurio. O que se constata na literatura especializada que o melhor tamanho para a memria cache o tamanho do maior programa que vai ser executado naquela mquina. Entretanto pode-se tornar excessivamente caro colocar o mximo possvel de memria cache, no compensando os benefcios correspondentes. O i486 permitiu memria cache externa, alm dos 8 Kbytes internos. Assim, algumas mquinas eram oferecidas com 256 Kbytes externos. Considerando-se o desempenho relativo a um XT 4.77 Mhz, pode-se fornecer alguns dados de desempenho, como discriminados abaixo:

i486, 33 Mhz, cache externo de 64 Kbytes Cache interno e externo desabilitado Somente cache externo habilitado Somente cache interno habilitado Caches interno e externo habilitados 6,5 vezes mais rpido; 26 vezes mais rpido; 38 vezes mais rpido; 72 vezes mais rpido;

Conclui-se destes dados que o cache interno extremamente importante, mesmo sendo muito menor que o externo. Isto se deve a sua lgica de construo e, obviamente, ao fato de estar dentro da prpria pastilha de CPU. Quando se carrega um programa na memria cache e este executado, considera-se que isto um "acerto" e cada vez que se deve movimentar um bloco da memria 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 memria 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 mquina como um todo.

Sobre o i486SX

O i486Sx foi lanado pela INTEL para fazer frente a concorrncia acirrada do microprocessador Am386-40 de 40 Mhz da Advanced Micro Devices (AMD), mais veloz que o seu microprocessador mais rpido, o i386 33 Mhz. Deve-se entender o "SX" com uma verso desprovida de algo que sua verso completa, ou "full", ou ainda "DX", continha. O i486SX possui um barramento de dados de 32 bits, exatamente como o i486. Isto no aconteceu com o i386SX, o qual possui 16 bits para dados, 16 a menos que i386. Basicamente, o i486SX opera a uma taxa de relgio 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 diminuio no custo da pastilha de 60% em relao ao i486. O i486SX, mesmo a 20 Mhz segundo a INTEL, era 45% mais rpido que o i386 (33 Mhz), com um custo apenas 17 % superior. J o i486 25 Mhz era 20% mais rpido que o i486SX (20 Mhz) e custava 270% mais caro (custo em maro de 1992). Um quadro exibido pela revista Micro Sistemas em maro de 1992 mostrava o seguinte:

CPU (clock) i386 (33) i486SX(20)

Custo (US$) 214 250

MIPs 11,4 16,5

Custo do MIP (US$) 18,77 15,15


Pgina 34

Microprocessadores _________________________________________________________________________________________________ ____

i486 (25)

671

20,0

33,55

Sobre o i486 50 Mhz (i486/50 e i486DX2/50)

Em junho de 1991 a INTEL lanou o i486 50 Mhz e somente em junho de 1992 a revista PC Magazine americana publicou testes de desempenho sobre as primeiras mquinas fabricadas com esta CPU. Antes desta CPU, a lder em desempenho da INTEL era o i486 33 Mhz. Segundo a citada revista, o i486/50 30% mais rpido que i486/33 a um custo (naquele ano) 10 a 20% maior. Uma observao importante que mquinas equipadas com esta CPU definitivamente no eram baratas, mas a relao custo beneficio em relao ao i486/33 era atraente. Isto significou, em outras palavras, que se algum estivesse disposto a pagar o preo de uma mquina 486/33, era melhor que o fizesse por uma i486/50, em funo da melhor relao custo/benefcio. Em maro de 1992 a INTEL anunciou as chamadas pastilhas "Speed-Doubler". Tais pastilhas introduziram opes de preo e desempenho nos i486. Uma dessas opes, 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 opo a pastilha "full" i486DX/50. Esta pastilha 30% mais rpida que a anterior. Em linhas gerais, pode-se dizer que para mquinas necessitando de uma atividade de Entrada/Sada intensa, como servidores de arquivos p.e., o i486DX2/50 no seria a primeira escolha. J para mquinas "stand-alone" em ambientes de CAD/CAM esta seria uma boa escolha. O i486DX/50 contm basicamente a mesma lgica de processador que o i486DX/33, com coprocessador, 8 Kbytes de cache e 1,2 milho de transistores, mas houve alguns refinamentos tcnicos na p arte de 50 Mhz, a qual usa um projeto de pastilha de trs camadas e no de duas camadas como o i486DX/33.

Sobre os i486DX2/66 e i486DX4/100

Em novembro de 1992, foram disponibilizadas comercialmente mquinas 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 rpida 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 Observaes: Os problemas relacionados a estes microprocessadores so a quantidade de calor desprendida, que precisa ser dissipada, e a emisso de sinais de alta frequncia, podendo tambm sofrer interferncias do meio ambiente, como o caso das televises que emitem sinais na faixa de 54 a 890 Mhz. A partir dos i486, os fabricantes iniciaram a utilizao de ventiladores acoplados aos dissipadores, para reduzir os efeitos da alta temperatura. Tambm alguns gabinetes so comercializados com algum tipo de blindagem interna de modo a minimizar a influncia das frequncias externas. Com a crescente demanda do mercado por redes de computadores e, consequentemente, por equipamentos de gerenciamento e interconexo de tais redes, observou-se que as CPUs de pontes
Pgina 35

Microprocessadores _________________________________________________________________________________________________ ____

(Bridges), roteadores (Routers), ponte-roteadores (Brouters) e passarelas (Gateways) frequentemente, so CPUs INTEL do tipo 286 e 386. Neste mercado, modelos mais sofisticados desses equipamentos frequentemente fazem uso de CPUs MOTOROLA e alguns at mesmo de processadores RISC.

2.5 - OS PENTIUM, PENTIUM MMX E PRO

2.5.1 - Diferenas de Arquitetura e Caractersticas


Antes de iniciar as explicaes sobre os Pentium MMX e PRO, necessrio mencionar os primeiros microprocessadores da classe Pentium, os simplesmente Pentium (ncleo P54C).

Os Pentium
Essencialmente, o Pentium consiste de dois processadores i486 em paralelo. Logo, mais instrues so processadas ao mesmo tempo, tipicamente, o dobro. Pode-se destacar algumas caractersticas importantes.

Pipelines O microprocessador Pentium construdo em torno de 2 pipelines (ou Pipes) inteiros (U e V), paralelos, de propsito geral e 1 unidade com pipeline, de ponto flutuante . O pipe U chamado de Principal e o pipe V chamado de Secundrio. O Pipe U possue algumas limitaes sobre instrues que executa. Os dois Pipes tem cinco estgios cada um, como mostrado na figura 12. O Pentium pode buscar at 2 instrues por ciclo. Durante a execuo de uma instruo, as prximas duas instrues so testadas. Se possvel, a primeira executada no Pipe U e a Segunda no Pipe V. Se no possvel, uma instruo passada ao Pipe U e nenhuma instruo passada ao Pipe V. O comportamento funcional das instrues nos dois Pipes exatamente o mesmo de instrues executadas sequencialmente. Caches O Pentium possui um subsistema de cache interno com 2 conjuntos (um para instruo 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 referncias sejam para bancos diferentes.

Prebuscador de Instrues (Instruction Prefetcher) O, aqui chamado, Prebuscador de Instrues possui 4 buffers de 32 Bytes. No estgio 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 instruo de salto buscada, o BTB prev se o salto ocorrer ou no. Se o salto no 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 no for realizado, os pipelines de instruo so limpos e a atividade de prebusca recomea. Como o cache de instrues e dados so separados, prebuscas de instrues no conflitam com referncias a dados para acesso ao cache.

Pgina 36

Microprocessadores _________________________________________________________________________________________________ ____

O Pentium emprega um esquema de previso dinmica de saltos (Dynamic Branch Prediction). Se a previso correta, no h penalidade na execuo de uma instruo de salto. Se no correta, as penalidades so as seguintes: 1. 2. 3. 3 ciclos, se o JUMP condicional foi no Pipe U; 4 ciclos, se o JUMP condicional foi no Pipe V e 3 ciclos em qualquer dos Pipes para CALLs e instrues de JUMP incondicional.

Prefetch (PF)

Estgio de Decodificao 1 (DS1)

Estgio de Decodificao 2 (DS2)

Estgio de Decodificao 2 (DS2)

Pipe U

Pipe V

Execuo

Execuo

Writeback

Writeback

Figura 12 Pipelines de Inteiros do Pentium

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 memria. Esses buffers de 64 bits so carregados simultaneamente em um perodo de relgio. Escritas nesses buffers so enviadas para o barramento externo do processador. Tais operaes de escrita acontecem sempre na ordem em que ocorrem. No so possveis leituras intermedirias.

Pgina 37

Microprocessadores _________________________________________________________________________________________________ ____

Unidade de Ponto Flutuante A Unidade de Ponto Flutuante do Pentium acrescenta um Pipeline de 3 estgios aos Pipes j mencionados (U e V). As instrues de ponto flutuante seguem normalmente pelo pipeline at o estgio E (Execuo). Aps este estgio, as instrues dispendem pelo menos um clock para cada um dos 3 estgios: X1, X2 e WF. A maioria das instrues de ponto flutuante tem um perodo de latncia superior a um perodo de relgio. Entretanto, tal latncia escondida pela existncia dos 3 estgios. Alm disso, instrues com inteiros (e no de ponto flutuante) so tratadas durante este perodo de latncia. A figura 13 exibe a integrao dos Pipelines de Inteiros e Ponto Flutuante. Os 3 primeiros estgios do Pipe de Inteiros so desacoplados do Pipe de Ponto Flutuante. Os dois ltimos so integrados.

X1

X2

WF

Prefetch (PF)

Estgio de Decodificao 1 (DS1)

Estgio de Decodificao 2 (DS2)

Execuo Writeback

Estgios do Pipe de Ponto Flutuante desacoplados Estgios Integrados dos Pipes Pipeline de Inteiros somente

Figura 13 Integrao dos Pipelines de Inteiros e de Ponto Flutuante do Pentium

Os Pentium MMX
Os microprocessadores Pentium com tecnologia chamada pela INTEL de MMX (algo como Multimedia Extensions) trouxeram quatro enriquecimentos bsicos de projeto arquitetnico: 1. 2. 3. 4. Arquitetura SIMD; 4 novos tipos de dados. 8 registradores MMX de 64 bits e 57 novas instrues;

Como a prpria INTEL propagandeia, esta mudana na arquitetura do processador foi a mais importante desde o 80386, o qual extendeu a arquitetura de 16 para 32 bits e introduziu trs modos de funcionamento (real, protegido e virtual). Como de fato se verificou, tais mudanas foram incorporadas a todas as geraes de processadores subsequentes da empresa. Segundo a INTEL, a definio desta tecnologia foi resultado de trabalho conjunto entre arquitetos de microprocessadores e desenvolvedores de software. Dentre os softwares analisados, incluiram-se Grficos, Vdeo MPEG, Sntese de msica, compresso de voz, reconhecimento de voz,

Pgina 38

Microprocessadores _________________________________________________________________________________________________ ____

processamento de imagens, jogos e vdeo-conferncia. O ncleo deste processador foi chamado de P55C. Esta anlise mostrou muitas caractersticas comuns entre as diversas categorias de software. Os atributos chave para estas aplicaes foram: Tipos de dados pequenos e inteiros (por exemplo: pixel grfico de 8 bits, amostras de udio de 16 bits); Loops pequenos altamente repetitivos; Multiplicaes e acumulaes frequentes; Algoritmos de computao intensiva; Operaes altamente paralelas.

Assim, foi projetado um grupo de instrues novo, com instrues inteiras de propsito geral, visando a otimizao do processamento de tais aplicaes. Arquitetura SIMD (Single Instruction Multiple Data) Tcnicas SIMD foram utilizadas de forma a permitir que mltiplas peas de informao pudessem ser processadas com uma nica instruo, provendo um certo paralelismo, reduzindo loops de computao intensiva e, consequentemente, aumentando o desempenho de aplicaes multimdia e de comunicaes. Novos Tipos de Dados O tipo de dado principal da arquitetura MMX um pacote inteiro de ponto fixo, onde mltiplas palavras inteiras so agrupadas em uma nica quantidade de 64 bits. Estes pacotes so manipulados por registradores MMX de 64 bits. Como exemplo de benefcio 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 instruo MMX ao ser executada, busca 8 pixels de uma s vez, faz as operaes lgicas e aritmticas sobre os oito elementos e escreve o resultado em um outro registrador MMX. A figura 14 exibe os novos tipos de dados do Pentium MMX.

Pgina 39

Microprocessadores _________________________________________________________________________________________________ ____

Packet Byte (8 elementos de 8 bits) 63 31 7 0

Packet Word (4 elementos de 16 bits) 63 31 0

Packet Doubleword (2 elementos de 32 bits) 63 31 0

Quadword (1 elemento de 64 bits) 63 0

Figura 14 Novos Tipos de Dados do Pentium MMX

Registradores MMX A figura 15 exibe o layout dos oito novos registradores MMX

Campo TAG

63

0 MM7

MM0

Pgina 40

Microprocessadores _________________________________________________________________________________________________ ____

Figura 15 Registradores MMX

Novas Instrues As instrues MMX cobrem vrios grupos funcionais, incluindo: 1. 2. 3. 4. 5. 6. Operaes aritmticas bsicas; Operaes de comparao; Instrues de converso entre novos tipos de dados (packets) e de pequenos para grandes tipos de dados; Operaes lgicas tais como: AND, OR, NOT e XOR; Operaes de Shift; Instrues MOV para dados de 32 ou 64 bits;

As instrues lgicas e aritmticas so projetadas para suportar diferentes tipos de dados. Tais instrues possuem um cdigo de operao para cada tipo de dado suportado. Como resultado, as novas instrues so implementadas com 57 cdigos de operao. Um aspecto importante que instrues MMX no so privilegiadas, podendo ser usadas em aplicaes, codificadores/decodificadores, algoritmos e drivers.

Categoria

Mnemnico PADD [B,W,D] PADDS [B,W] PADDUS [B,W] PSUB [B,W,D]

Nr. De Cdigos de Operao Diferentes 3 2 2 3 2 2 1 1 1 3 3 1 2 3

Descrio Add with wrap-around on [byte, word, doubleword] Add signed with saturation on [byte, word] Add unsigned with saturation on [byte, word] Subtract with wrap-around on [byte, word, doubleword] Subtract signed with saturation on [byte, word] Subtract unsigned with saturation on [byte, word] Packed multiply high on words Packed multiply low on words Packed multiply on words and add resulting pairs Packed compare for equality [byte, word, doubleword] Packed compare greater than [byte, word, doubleword] Pack words into bytes (unsigned with saturation) Pack [words into bytes, doublewords into words] (signed with saturation) Unpack (interleave) high-order [bytes, words, doublewords] from MMXTM register

Aritmtica

PSUBS [B,W] PSUBUS [B,W] PMULHW PMULLW PMADDWD PCMPEQ [B,W,D] PCMPGT [B,W,D] PACKUSWB PACKSS [WB,DW] PUNPCKH [BW,WD,DQ]

Comparao

Converso

Pgina 41

Microprocessadores _________________________________________________________________________________________________ ____

Lgicas

PUNPCKL [BW,WD,DQ] PAND PANDN POR PXOR PSLL [W,D,Q]

3 1 1 1 1 6

PSRL [W,D,Q] Shift

PSRA [W,D]

Transferncia MOV [D,Q] de Dados Gerenciamen- EMMS to de Estado MMX e Ponto Flutuante

4 1

Unpack (interleave) low-order [bytes, words, doublewords] from MMX register Bitwise AND Bitwise AND NOT Bitwise OR Bitwise XOR Packed shift left logical [word, doubleword, quadword] by amount specified in MMX register or by immediate value Packed shift right logical [word, doubleword, quadword] by amount specified in MMX register or by immediate value Packed shift right arithmetic [word, doubleword] by amount specified in MMX register or by immediate value Move [doubleword, quadword] to MMX register or from MMX register Empty MMX state

Pipeline Superescalar Os Pentium MMX adicionam mais estgios ao pipeline. A integrao do Pipe MMX com o Pipe de inteiros muito similar a do Pipe de Ponto Flutuante. A Figura 16 mostra esta estrutura de pipeline. Os Pentium MMX adicionam um estgio de pipeline inteiro. Os bytes de instruo so prebuscados do cache de cdigo no estgio de prebusca PF e passados ao estgio de busca F. Quaisquer prefixos so decodificados no estgio F.

Pgina 42

Microprocessadores _________________________________________________________________________________________________ ____

MR/W

Mex

WM/M2

M3

WMul

PF

DS1

DS2

WB

E1

E2

E1

E2

E3

Estgios do Pipe de MMX desacoplados Estgios Integrados dos Pipes Pipeline de Inteiros somente
Figura 16 Estrutura Pipeline MMX

O estgio F desacoplado da decodificao de instrues por meio de um buffer FIFO (First In, First Out), o qual est situado entre os estgios F e D1 (Decode 1). Esta FIFO mantm at 4 instrues. A cada perodo de relgio, 2 instrues so colocadas nesta FIFO. Pares de instruo so colocados para fora de F e dentro de D1. Uma vez que a taxa mdia de execuo de instrues 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 instruo. Esta FIFO previne, o estgio de Execuo do pipe, de um freio na execuo de instrues.

Exemplos de Instrues MMX

Para ilustrao, o tipo de dado ser uma palavra de 16 bits (word), contudo a maioria das operaes pode ser realizada para 8 e 32 bits. A figura 17 mostra uma operao de adio (PADD[W] - Add with wrap-around on [word]). So realizadas 4 adies de 8 elementos de 16 bits. Cada uma independente da outra e em paralelo. Neste caso, o resultado mais direta excede o valor mximo representvel em 16 bits e o 17 bit perdido.

Pgina 43

Microprocessadores _________________________________________________________________________________________________ ____

a3

a2

a1

FFFF

+
b3

+
b2

+
b1

+
8000

a3+b3 a2+b2 a1+b1 7FFF

Figura 17 Instruo PADD[W]

A figura 18 mostra uma outra operao de adio (PADDUS[W] - Add unsigned with saturation on [word]). Neste caso, uma saturao ocorre. Saturao significa que se a adio resulta em overflow ou a subtrao em underflow, o resultado alterado para o maior ou para o menor valor representvel, respectivamente. Para uma operao sem sinal, com uma palavra de 16 bits, o maior e o menor valor so: FFFFh e 0000h. Isto importante para clculos de pixels, onde a perda do 17 bit poderia causar um pixel preto logo aps um pixel branco em um grfico 3D.

a3

a2

a1

FFFF

+
b3

+
b2

+
b1

+
8000

a3+b3 a2+b2 a1+b1 FFFF

Figura 18 Instruo PADDUS[W]

Os novos games 3D manipulam objetos 3D. Estas computaes, tipicamente, so baseadas em matrizes 4 x 4, as quais so multiplicadas por 4 vetores vrias vezes. O vetor possui a informao de X, Y, Z e a correo de perspectiva para cada pixel. A matriz 4 x 4 usada para girar, escalonar, translacionar e atualizar a informao de correo das perspectiva para cada pixel. Esta matriz aplicada a muitos vetores. A figura 19 mostra esses clculos e o que faz a instruo PMADD.

Pgina 44

Microprocessadores _________________________________________________________________________________________________ ____

Giro e Escala

Translao

x' y' z' w' =

a0 b0 c0 d0

a1 b1 c1 d1

a2 b2 c2 d2

a3 b3 c3 d3

x y z 1

Perspectiva

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

Figura 19 Instruo PMADD

Os Pentium PRO
Diferentemente dos 5 estgios do Pentium. O Pentium PRO possui um pipeline de 12 estgios, desacoplado. Isto lhe confere um desempenho 33% superior ao Pentium comum. Sua microarquitetura superescalar torna possvel a execuo de 2 instrues por clock. A figura 20 detalha este pipeline. O Pipeline do Processador Pentium PRO possui 3 unidades que se comunicam atravs de um Pool de Instrues: A Unidade de Busca/Decodificao (ou Front-End), a Unidade de Despacho/Execuo (ou Core) e a Unidade de Retiro (ou Retire). A figura 21 exibe a ligao entre estas unidades.

Port 2 BTB 0 BTB 1 ROB Rd

Port Port 4 3

IFU0

IFU1

IFU2

ID0

ID1

RAT

RS

ROB Wb Port 0 Port 1

RRF

Figura 20 Pipeline do Pentium PRO

Pgina 45

Microprocessadores _________________________________________________________________________________________________ ____

Unidade de Busca/ Decodificao

Unidade de Despacho/ Execuo

Unidade de Retiro

Pool de Instrues

Figura 21 As 3 unidades do Pentium PRO

A Unidade de Busca/Decodificao possue como entrada o conjunto de instrues de programa de usurio armazenado no cache de instrues L1 (interno). Tal unidade decodifica este conjunto em uma srie de microperaes que representam o fluxo de dados daquele conjunto. A Unidade de Despacho/Execuo aceita o fluxo de dados, esquematiza a execuo das microperaes sujeitas a dependncia de dados e disponibilidade de recursos. Em seguida, armazena o resultado dessas execues especulativas. A Unidade de Retiro conhece como e quando confirmar do resultado especulativo temporrio para um estado arquitetural permanente. A Unidade de Interface de Barramento responsvel pela conexo 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 22 ilustra mais detalhadamente estes aspectos.

Pgina 46

Microprocessadores _________________________________________________________________________________________________ ____

Barramento de Sistema

Cache L2

Unidade de Interface de Barramento

Cache de Instrues L1

Cache de Dados L1

Unidade de Busca/ Decodificao

Unidade de Despacho/ Execuo

Unidade de Retiro

Pool de Instrues

Figura 22 A Interface das 3 unidades com a memria usando Caches Unificados de 8K/8K do Pentium PRO

Execuo Dinmica de Instrues Execuo Dinmica, segundo a INTEL, a combinao nica de 3 tcnicas de processamento: Predio de Mltiplos Saltos. Inicialmente o processador olha mltiplos passos atrs no software e prediz quais saltos ou grupos de instrues, provavelmente, sero processadas; Anlise do Fluxo de Dados. Em seguida, analisa quais instrues so dependentes do resultado ou dados de outras instrues, para criar uma sequncia otimizada de instrues;

Pgina 47

Microprocessadores _________________________________________________________________________________________________ ____

Execuo Especulativa. As instrues so ento puxadas especulativamente, com base no esquema otimizado.

Arquitetura Superscalar Arquitetura Superscalar uma microarquitetura capaz de sinmultaneamente buscar, decodificar e executar mltiplas operaes inteiras por perodo de relgio. Tipicamente o Pentium PRO percebe entre 20 e 30 instrues na frente do IP (Instruction Pointer).

Suporte a Mltiplos Processadores O barramento externo do Pentium PRO foi otimizado para suportar de 1 a 4 CPUs. A figura 23 ilustra este fato.

Figura 23 Esquema de Multiprocessamento do Pentium PRO

Pgina 48

Microprocessadores _________________________________________________________________________________________________ ____

2.5.2 Benchmarks

Pgina 49

Microprocessadores _________________________________________________________________________________________________ ____

Pgina 50

Microprocessadores _________________________________________________________________________________________________ ____

2.6 - OS PENTIUM II

2.6.1 - Arquitetura e Caractersticas


O Pentium II vem evoluindo continuamente, de acordo com os novos desenvolvimentos ou opes da INTEL. Trataremos aqui da arquitetura inicial deste processador, cujo codinome ainda Klamath. A caracterstica principal do Pentium II foi a incorporao da tecnologia MMX s Unidades de Execuo do processador Pentium PRO. Sendo assim, tornou-se recomendvel tanto para servidores, quanto para desktops. So discriminadas a seguir as principais caractersticas do Pentium II. Cache interno L1 32 Kbytes (16 K para instrues + 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 plstico que inclui o ncleo da CPU; Tecnologia de Processo de fabricao CMOS de 0,35 microns. A verso 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 Force Insertion); Suas primeiras verses, com arquitetura idntica, operam nas velocidades de 233, 266, 300 e 333 MHz. Verses a 350 e 400 MHz, trazem ligeiras diferenas; Opera na velocidade interna de 66 MHz FSB (Front-Side Bus), exatamente como o Pentium PRO; Possui 5 unidades de execuo, como no Pentium PRO; Alimentao de 2,8 Volts; Endereamento fsico de at 64 Gigabytes; 7,5 milhes de transistores integrados; Suporte para at 2 processadores em uma placa, permitindo o multiprocessamento simtrico (SMP); Segundo a INTEL, sua arquitetura foi otimizada para aplicaes 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 incio do ano 2000 em verses mais avanadas deste processador, tais como o Katmai 450 e 500 MHZ e o Coppermine 533 a 6xx MHz;

2.6.2 - Benchmarks
A Figura 24 apresenta o iCOMP 2.0 (Benmchmark Multimdia da INTEL) para vrias verses do Pentium II, excluindo-se a verso de 333 MHz. Em seguida exibida na Figura 25, uma CPU Pentium II na presena de uma interface de acelerao grfica AGP (Advanced Graphics Port).

Pgina 51

Microprocessadores _________________________________________________________________________________________________ ____

Pgina 52

Microprocessadores _________________________________________________________________________________________________ ____

Figura 24 Desempenho do Pentium II Relativo ao Pentium MMX e PRO

Pgina 53

Microprocessadores _________________________________________________________________________________________________ ____

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


Pgina 54

Microprocessadores _________________________________________________________________________________________________ ____

2.6.3 Implicaes no Desempenho de Desktops e Servidores de Rede

Obs.: Transparncias mostradas em sala de aula

2.7 ltimos Microprocessadores da INTEL

Pode-se identificar 3 linhas ligeiramente diferentes de processadores da INTEL: 1. 2. 3. 4. Pentium II passando a Pentium III Celeron e Itanium (antigo codnome Merced) Prximas CPUs: McKinley, Madison, Deerfield, ...

Linha Pentium II

1.

Pentium II - KLAMATH

Pgina 55

Microprocessadores _________________________________________________________________________________________________ ____

KLAMATH Antigo codinome da primeira verso do Pentium II; 512 KB de Cache L2 a velocidade nas verses de 266 a 300 MHz; Arquitetura P6 (mais evoluda do que a do Pentium PRO P55C); Processo de fabricao CMOS de 0,35 microns (igual ao do Pentium PRO); 66 MHz FSB (Front-Side Bus).

2.

Pentium II - DESCHUTES Segunda verso do Pentium II; 512 KB de Cache L2 a velocidade na verso de 333 MHz; Arquitetura P6; Processo de fabricao CMOS de 0,25 microns; 100 MHz FSB (Front-Side Bus) nas verses de 350 e 400 MHz.

3.

Pentium III (codnome Katmai) Terceira verso do Pentium II; Conjunto de Instrues com 70 novas instrues MMX2 ou KNI (Katmai New Instructions); Registradores de 128 bits; 512 K de cache nvel 2; Arquitetura P6; Suporte a DirectX 6.1; Barramento do sistema de 100 e 133 MHz FSB; Verses de 450, 500, 533, 550, 600, 650, 677, 700, 750, 733, 750, 800, 850, 866 e 1000 MHz.

4.

Pentium III - COPPERMINE Verso menor do KATMAI; Processo de fabricao CMOS de 0,18 microns; Conjunto de Instrues MMX2 ou KNI (Katmai New Instructions); 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 verses de 450 e 500 MHz.

5.

Pentium II - XEON Ncleo do DESCHUTES; Processo de fabricao CMOS de 0,25 microns; 512 KB ou 1 MB de Cache L2, full speed (operando na mesma velocidade do ncleo), fora da pastilha, em 400 MHz; 100 MHz FSB em SDRAM; Arquitetura Dual, P6; 4 GB de RAM Principal e 64 GB de RAM enderevel.

6.

Pentium III Xeon (Tanner) 500 e 550 MHz ) Pentium II Xeon com KNI; Suporte a operao 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 instrues) de cache nvel 1;
Pgina 56

Microprocessadores _________________________________________________________________________________________________ ____

100 MHz FSB, indo para 133 MHz FSB;

7.

Pentium II - CASCADES Verso Menor do Tanner; Processo de fabricao CMOS de 0,18 microns; 256 KB de Cache L2, full speed, dentro da pastilha (on-die); 133 MHz FSB; Clock maior do que 600 MHz.

Linha CELERON 1. CELERON (verso sem cache) Ncleo do DESCHUTES em 0,25 microns; Sem Cache L2; Arquitetura P6 (do Pentium PRO); Interface em SLOT 1 (encapsulamento do Pentium II); 66 MHz FSB; Descontinuado em 1999.

2.

CELERON (codnome Mendocino) (verso com 128 K da cache) Nova verso do CELERON; Encapsulamento PPGA de 370 pinos (Plastic Pin Grid Array); Verses 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 instrues) de cache nvel 1; Arquitetura P6 (do Pentium Pro) Barramento de sistema de 66 MHz FSB; Verses de 400, 433, 466, 500 e 533 MHz; Interface Slot 1 dever ser abandonada, passando a slot 2;

ITANIUM (codnome Merced)

Lanamento previsto para o ano 2000; Usar Interface SLOT M (nova); EPIC (Explicit Parallel Instruction Computing); 128 registradores de Inteiros; 128 registradores de Ponto Flutuante; Mltiplas Unidades de Inteiros e de Ponto Flutuante; Arquitetura de 64 bits (precisar de sistema operacional de 64 bits); Frequncia de Relgio provvel de 1 Ghertz; Mais de 30 milhes de transistores integrados; Processo de fabricao de 0,18 ou 0,13 microns.

Pgina 57

Microprocessadores _________________________________________________________________________________________________ ____

CAPTULO 3: CARACTERSTICAS GERAIS DOS SISTEMAS DE BARRAMENTOS


3.1 OS BARRAMENTOS PRINCIPAIS ISA, EISA E MCA

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 expanso contendo um nico pente. J o ISA 16 bits suporta placas de expanso contendo dois pentes separados por uma ranhura. Este barramento tambm conhecido no jargo tcnico como AT. Os famosos XTs baseava-se em CPUs 8088 ou 8086. J os PCs AT baseavam-se em CPUs 80286, 80386 e at i486. Na arquitetura ISA, a comunicao com os perifricos gerenciada pelo microprocessador e realizada atravs de canais de E/S. As transferncias se davam de 16 em 16 bits (tamanho do barramento de dados) a uma frequncia de apenas 8 MHz, mesmo na presena de um processador mais rpido, como por exemplo, o 486DX4/100. Isto se tornou um problema com o aumento da velocidade dos microprocessadores. A taxa de transferncia fica restrita a 1 MBytes/segundo. Surgiram ento novas propostas de barramento principal para os microcomputadores do mercado, entre as quais as propostas EISA e MCA. O Barramento EISA ("Extended Industry Standard Architecture") de 32 bits foi um produto resultante da formao de um consrcio composto de fabricantes de "clones" ("Gang of Nine") ou a Gang dos Nove, nominalmente: W yse, 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 usurios produtos de mais baixo custo e com ampla disponibilidade de placas de expanso, qualidades que na poca (e nem hoje) no eram (no so) encontradas na opo pelo barramento MCA. Para que o barramento EISA fosse compatvel com a maioria d as placas (ISA 8 e ISA 16) j disponveis no mercado, os conectores da placa me (onde se encaixam as placas de expanso) 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 artifcio 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 (compatvel ISA 8 e 16 bits). Placas EISA penetram completamente no conector fazendo uso da segunda linha de contatos (compatvel EISA). A profundidade de penetrao das placas determinada pelo nmero 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 expanso EISA passa dos atuais 0,79 cm para 1,32 cm. O Barramento MCA ("Micro Channel Architecture"), tambm de 32 bits, embora tenha havido uma verso de 16 bits, foi o padro de barramento adotado pela IBM para os slots de um micro ou supermicrocomputador, o qual era incompatvel com os barramentos ISA (8 bits e 16 bits). Mesmo com a deciso da IBM de abrir o projeto de seu barramento para outros fabricantes de placas de expanso, o padro ISA/EISA fez parte da maioria dos sistemas 486 disponveis no mercado americano e brasileiro da poca. Segundo artigo da revista BYTE americana de novembro de 1989, o barramento EISA permite a taxa de transferncia mxima de 33 Megabytes/segundo, enquanto no barramento MCA 16 bits esta taxa

Pgina 58

Microprocessadores _________________________________________________________________________________________________ ____

cai para 20 MBytes/segundo. Ainda segundo a mesma revista, as placas EISA so mais baratas e de fabricao mais fcil. Matrias na revista PC Magazine Brasil de agosto de 1992 apontavam o desempenho de 40 Mbytes/segundo para o barramento MCA de 32 bits numa frequncia de relgio da ordem de 10 MHz, diferentemente dos 8,0 Mhz utilizados nos ISA e EISA).

3.2 OS BARRAMENTOS LOCAIS SECUNDRIOS VESA, PCI E AGP


Independentemente dos barramentos principais, surgiram no mercado, no incio da dcada de 90, mquinas fazem uso de um barramento local ("Local Bus"), ou seja, mquinas que implementam uma conexo direta entre a CPU e a parte de I/O. Assim, o trfego de d ados da CPU para os perifricos fica na velocidade da CPU, atingindo um desempenho de at 200 MegaBytes/segundo. O Barramento VESA A Video Electronics Standards Association VESA - baseada na idia de que as interfaces de vdeo integradas placa-me eram uma limitao s rpidas atualizaes que surgiam a todo momento no mercado de vdeo, lanou um padro de conexo para placas de vdeo. A associao j existia antes do advento do barramento local e cuidava de padres de arquitetura e compatibilidade de projetos relacionados a vdeo de alta performance. Assim, em 1992, foi elaborado um projeto de barramento de 32 bits, direcionado originalmente s interfaces de vdeo. O padro VL-Bus, como ficou conhecido, teve aceitao imediata, no s pelas definies de vdeo como tambm por sua arquitetura aberta, que permitia a implementao de outros tipos de interfaces de barramento local, como de discos e redes. O VESA Local Bus veio introduzir o conceito de barramento prprio, interligado diretamente CPU. Operando em 32 bits e na mesma frequncia do processador principal o barramento VESA consegue taxas de transferncias 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-mes e melhora sensivelmente o desempenho em relao ao barramento ISA. Uma das limitaes deste barramento quanto frequncia e nmero de conectores, ou placas a ele conectadas. Isto ocorre por estar ligado diretamente ao barramento do processador e operar em frequncias muito altas. Assim, o nmero de perifricos conectados de no mximo trs. Os projetistas podem acrescentar mais conectores, alm do nmero mximo recomendado pela associao, mas fazendo isto sacrificariam a velocidade do barramento. O VL-Bus, da VESA, desenvolveu uma maneira de acelerar grficos, descarregando-os do barramento ISA, mais lento. Antes da adoo do padro VESA, foram desenvolvidos alguns barramentos locais proprietrios, que davam poucas opes aos usurios, pois seus conectores no eram padronizados. Com a nova verso 2.0, o VESA VL-BUS soluciona muitas das limitaes do seu antecessor. O barramento pode operar a 50 MHz, possuindo um caminho de dados de 64 bits, ao invs 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 "compatvel com VESA" na caixa. A maioria das empresas nacionais suportavam o padro VL-Bus. Este no somente foi, em sua poca, o mais difundido, como era o padro para o qual havia o maior nmero de placas de expanso do mercado. O Barramento PCI O Barramento PCI (Peripheral Component Interconnect), outra arquitetura com barramento local, foi criado pela Intel logo aps o VESA. O Local Bus PCI veio aperfeioar o conceito VESA, introduzindo um controlador de perifricos padronizado e definindo uma frequncia fixa de operao em 33 MHz.

Pgina 59

Microprocessadores _________________________________________________________________________________________________ ____

O resultado foi um barramento mais barato que o EISA e MCA, embora um pouco mais caro que o VESA. A diferena bsica entre o PCI e o VL-Bus est no projeto. Mais moderno e com capacidade para suportar futuras alteraes no hardware dos PCs, o PCI rene caractersticas que o tornaram mais atraente e mais enxuto que o VESA. Alm de ter sido projetado prevendo ambientes com mltiplos processadores, o PCI define o uso de componentes multimdia no barramento local. O bus mastering tambm suportado, junto com uma linguagem prpria de controle de barramento. Segundo a Intel, placas desenhadas para serem usadas em barramento PCI funcionam em qualquer mquina, seja ISA, EISA ou MCA. Outra caracterstica existente nas especificaes do PCI e ausente do VESA a facilidade de configurao. As placas PCI so autoconfigurveis, dispensando ajustes por jumpers ou chaves DIP. Para isso, porm, todas as placas precisam ter 256 registradores, para armazenamento de informaes, dispostos de uma certa maneira para assegurar a compatibilidade entre diversos computadores. O PCI tem como caractersticas o barramento assncrono e a arquitetura multiplexada, 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, significando que ele independente do barramento do processador. Alm disso, a especificao do PCI mais precisa do que a do VESA e isto j resultou em incompatibilidades em adaptadores VESA. Finalmente, o PCI no dedicado a um processador INTEL x86, mas tambm pode ser usado por processadores Motorola. O PCI supera, atualmente, tudo o que existe em mteria de barramento de comunicao, apresentando taxas de transferncia de dados na ordem de 132 MB/s em 32 bits e de at 264 MB/s em 64 bits. Em relao ao nmero de slots de expanso, o PCI permite o controle de at 10 dispositivos auto-configurveis de alto desempenho. Na comunicao de vdeo, o PCI supera todas as expectativas, apresentando uma performance 3 vezes superior a uma VGA ISA e 3 vezes a de uma VGA-VESA. Os dois barramentos locais descritos tm praticamente a mesma velocidade em 32 bits, atingindo picos de desempenho de 132 MB/s, mas este nmero pode variar muito, se forem considerados os estados de espera e as operaes do modo burst. A tabela 1 procura relacionar as vrias velocidades envolvidas nos barramentos mencionados. A Tabela 2 exibe no s a limitao de 33 MHz do barramento PCI, como a relao entre a velocidade da mquina e o CHIPSET da mesma.

Barramento

Relgio PlacaVelocidade no Me (MHz) Barramento de Dados (MHz) 8 8 8 10 8 8 33

Tamanho do Barramento de Dados (bits) 8 16 32 16 32 32

Velocidade no Barramento (Mbytes/s) 8 16 20 40 33

ISA 8 ISA 16 ISA 16 MCA 16 MCA 32 EISA PCI 32 PCI 32 PCI 32

25 30 33

32

132

Pgina 60

Microprocessadores _________________________________________________________________________________________________ ____

PCI 64

64

264

Tabela 1 - Desempenho de Barramentos da Placa-Me

CPU

P60 P66 P75 P90 P100 P120 P133 P150 P166 P200 6X86-120 6X86-133 6X86-150 6X86-166 6X86-200 K6-166 K6-200 K6-233 PPRO 180 PPRO 200 PMMX 166 PMMX 200 PMMX 233 PII 233 PII 266 PII 300

CLK da Placa-Me (MHz) 60 66 50 60 66 60 66 60 66 66 50 55 60 66 66 66 66 66 60 66 66 66 66 66 66 66

CLK x

CLKIN da CPU (MHz) 60 66 75 90 99 120 132 150 165 198 100 110 120 132 198 165 198 231 180 198 165 198 231 231 264 297

Chip Set (CK/2) 30 33 25 30 33 30 33 30 33 33 25 ? 30 33 33 33 33 33 30 33 33 33 33 33 33 33

1 1 1,5 1,5 1,5 2 2 2,5 2,5 3 2 2 2 2 3 2,5 3 3,5 3 3 2,5 3 3,5 3,5 4 4,5

Velocidade no Barramento de Dados (Mbps) 30 33 25 30 33 30 33 30 33 33 25 ? 30 33 33 33 33 33 30 33 33 33 33 33 33 33

Velocidade Placa de Vdeo (Mbps) 15 16,5 12,5 15 16,5 15 16,5 15 16,5 16,5 12,5 ? 15 16,5 16,5 16,5 16,5 16,5 15 16,5 16,5 16,5 16,5 16,5 16,5 16,5

A arquitetura P54C (Pentium Clssicos - 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 2 - Desempenho do Barramentos de Dados

O Barramento AGP O Barramento AGP (Accelerated Graphics Port) uma nova plataforma de especificao de barramento direcionada para capacidades grficas de alto desempenho, em particular, grficos 3D. Tais aplicaes requerem grande rea armazenamento de informaes a fim de que a imagem 3D do monitor possa ser refrescada ou atualizada o mais rpido possvel.

Pgina 61

Microprocessadores _________________________________________________________________________________________________ ____

A interface AGP promovida pelo A.G.P. Implementors Forum, o qual prov suporte e facilidades na adoo da especificao. Fazem parte deste Forum vrios fabricantes de PCs, assim como fabricantes de componentes grficos. Esta interface, como conhecida, adiciona novas caractersticas s placas aceleradoras grficas, tais como: acesso em pipeline dedicado memria principal e taxas de transferncia mais rpidas. Esta interface no concorrente do barramento PCI, pois foi projetada pela INTEL especialmente para uso dedicado por controladores grficos e no para substituir o PCI. Este permanece um padro para um sistema de barramento de I/O, de uma maneira mais geral. A interface AGP foi projetada para componentes grficos ponto-a-ponto e fisicamente separada do barramento PCI, usando um conector separado. A AGP permite alocao dinmica da memria principal, tornando-a mais flexvel. Esta interface est incorporada maioria das placas-mes de hoje baseadas no processador Pentium II. A figura 26 mostra um diagrama de blocos da interface AGP, na presena dos componentes da placa-me.

Figura 26 A Interface AGP

A Figura 27 (fonte: www.tomshardware.com/agp.html#AGP - Some Critical Thoughts) procura exibir as taxas de transferncia envolvidas no barramento AGP.

Pgina 62

Microprocessadores _________________________________________________________________________________________________ ____

No artigo mencionado, o autor procura demonstrar que o pico terico para o AGP de 528 MBytes/s (8 x 66 Mbits/segundo), pois a atual limitao do transporte de dados da CPU para a memria 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 vlida com o uso de memrias SDRAM, pois em memrias do tipo EDO consideravelmente mais lenta. O autor explica que o que o AGP realmente necessita que o barramento principal das mquinas suba para 100 MHz (chegando atualmente ao mercado), quando ento o pico terico seria de 800 Mbytes/s. Existem propostas concorrentes do AGP da INTEL, as quais colocam nas placas grficas a memria necessria ao refrescamento do vdeo e no usam a memria principal do sistema que compartilhada por todos os outros perifricos. A INTEL raciocina que isto pode resultar em um custo mais elevado do que proposta AGP, em funo do alto custo das memrias.

Figura 27 Desempenho da Interface AGP

A figura 28 exibe um benchmark entre uma placa grfica com barramento PCI e uma com barramento AGP. Enfatiza-se que os barramentos, como mencionado anteriormente, no so comparveis, uma vez que se destinam a diferentes objetivos. Notar que em resolues normais, 640x480 pixels, no h praticamente diferena de desempenho entre as duas placas testadas.

Pgina 63

Microprocessadores _________________________________________________________________________________________________ ____

Figura 28 Benchmark entre duas placas grficas AGP e PCI

O propsito de um barramento de expanso prover um caminho para usurios adicionarem dispositivos de hardware (placas em slots) em um PC, usando conectores padronizados. O que difere uma proposta de outra so vrios aspectos. A Tabela 3 compara os atributos do sistema para os barramentos ISA 8 bits e ISA 16 bits.

Atributo do Sistema Processador Modos da CPU Slot de Expanso Tipo de slot Interrupes Canais de DMA RAM mxima Controlador Disco Flexvel

PC ou XT 8088/8086 Real 8 bits ISA 8 bits 8 + NMI 4 1 MB 360 KB / 720 KB

PC AT Clssico 286 e maior Real/Protegido 16 bits ISA 16 bits 16 + NMI 8 16 MB 1.2 MB / 1.44 MB

Tabela 3 Barramentos ISA 8 bits e 16 bits

Com o avano tecnolgico e o surgimento do INTEL 80386, com um barramento de dados de 32 bits, a paz nas indstrias 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 mercadolgicos. A Tabela 4 exibe uma comparao entre o EISA e o ISA 16 bits.

Atributo do Sistema Capacidade de Memria Largura do Bus de Dados Faixa de DMA Caminho de dados do DMA Mxima Taxa de DMA Arbitrao de Barramento Caminho de dados do Bus Master Clock Sncrono

ISA 16 bits 16 MB 16 bits 16 MB 8/16 bits 2 Mbytes/s nica 16 8.33 MHz

EISA 4 GB 32 bits 4 GB 8/16/32 bits 33 Mbytes/s 6 Bus Masters 16/32 8.33 MHz

Tabela 4 ISA 16 bits e EISA

Para finalizar este captulo, vale ressaltar alguns aspectos do barramento PCI. O PCI considerado um barramento mezzanino, ou seja, nem ligado diretamente CPU, nem ligado diretamente aos dispositivos de I/O. divorciado da CPU, dando a esta alguma independncia e a abilidade de competir com mais dispositivos. multiplexado no tempo, significando que linhas de endereos e linhas de dados compartilham conexes. Possui um modo de rajada prprio, o qual

Pgina 64

Microprocessadores _________________________________________________________________________________________________ ____

permite que um ciclo de endereo pode ser seguido por tantos ciclos de dados quanto o overhead do sistema permitir. A 33 MHz pode transferir 32 bits por perodo de relgio, implicando numa taxa de 132 MBytes/s (4 bytes x 33 Mbits/s). A especificao 2.1 do PCI inclui um barramento de 64 bits a 66 MHz, implicando em uma taxa terica mxima de 528 MBytes/s (8 bytes x 66 Mbits/s), conforme exibido na Figura 27.

3.3 OS BARRAMENTOS SECUNDRIOS IDE E ENHANCED IDE


Atualmente h dois tipos de barramentos, ditos aqui, secundrios: O EIDE (Enhanced Integrated Drive Eletronics) e o SCSI (Small Computer System Interface). Nesta seo trataremos destes dois tipos. Na literatura tcnica, normalmente este barramento chamado de interface. Portanto, a partir deste momento usaremos os dois termos indistintamente. A interface IDE Esta interface se tornou padro 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 evoluo natural da interface de disco original do IBM AT - a ST 506 - apresentada em 1984. As controladoras IDE (e no EIDE) no possuiam ROM na placa, pois os sistemas IBM PC AT e compatveis dispunham de rotinas internas da BIOS para suportar este padro de disco rgido. As controladoras IDE usam endereos de portas I/O de 1F0 a 1F7 para os registradores de controle e IRQ14 para o atendimento s interrupes. 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 prprio 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-me ou numa placa adaptadora separada. A placa simplesmente uma interface para o barramento do sistema PC. Uma de suas caractersticas populares a transparncia. No necessrio um driver especial para um disco IDE, pois este definido e suportado na BIOS do sistema e na prpria interface IDE. As desvantagens principais da interface IDE so: a limitao no tamanho dos discos que podem ser acoplados e nas taxas de transferncia de dados que podem ser alcanadas. A capacidade dos drives IDE restringida no pela BIOS ou pela interface individualmente, mas pela combinao das duas. Tanto a BIOS do PC padro, quanto a interface IDE suportam drives de grande capacidade. Entretanto, quando combinadas, no conseguem suportar drives acima de 528 MB, devido aos diferentes nmeros de bits que cada uma reserva para definir as diferentes caractersticas: cilindros, cabeas e setores por trilha - de um drive. A taxa de transferncia de uma unidade IDE est limitada ao mximo de 5 MBytes/s, num barramento ISA. Uma placa IDE controlava no mximo dois discos rgidos e dois acionadores de discos flexveis. A Interface EIDE O barramento IDE possui atualmente uma verso mais avanada, chamada de EIDE (Enhanced 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 padro IDE tinham no mximo 528 MB e velocidade mxima de 5 MBytes/s, enquanto os EIDE chegam at 8,4 GB, tamanho mximo de disco e arquivo reconhecido pelo Windows NT, por exemplo. A velocidade mxima atingida por esses discos 13,3 MBytes/s. Em condies normais a taxa alcanada pelo EIDE de 10 MBytes/s.

Pgina 65

Microprocessadores _________________________________________________________________________________________________ ____

3.4 OS BARRAMENTOS SECUNDRIOS SCSI


O Barramento SCSI A interface SCSI uma interface de propsito geral usada para acoplar vrios dispositivos de I/O ao computador. Esta consiste num barramento paralelo de 8 bits que pode suportar at oito dispositivos, entre discos rgidos, acionadores de discos flexveis, CD-ROMs, fitas DAT, Scanners e a prpria placa controladora. Cada um possui um controlador prprio, que recebe instrues atravs do barramento. A placa de interface SCSI, que ocupa um conector de expanso do PC, chamada de placa hospedeira. Ela controla o barramento SCSI, envi ando comandos e dados para os dispositivos, recebendo confirmaes e dados dos mesmos. O barramento SCSI usa um protocolo de comandos e no uma interface de unidade. Para ler um bloco de dados, a placa hospedeira envia um comando atravs do barramento, como uma sequncia de bytes. O dispositivo alvo decodifica e executa, enviando depois os dados. Teoricamente, isto oferece independncia de dispositivo. Na prtica, entretanto, nem sempre isto se verifica, devido s variaes nas implementaes de diferentes fabricantes. O padro SCSI define um tipo de dispositivo que possui algoritmo interno de manipulao das requisies de leitura e escrita de dados. Ao contrrio das interfaces IDE, que operam numa relao Mestre-Escravo, as controladoras SCSI podem reordenar as requisies aleatrias de dados, provenientes de diversos dispositivos, para minimizar o tempo de busca das informaes. Os discos rgidos SCSI tm capacidade que varia desde 200 MB (mnimo recomendvel) at dezenas de gigabytes, no precisando de nenhum recurso especial de configurao. Vale lembrar que o DOS 6.22 e o Windows 3.11 viam arquivos e discos de at 2 GB, apenas. Essas diferenas refletem-se nas aplicaes destinadas aos dois tipos de interface (SCSI e IDE). Os sistemas SCSI so recomendados para ambientes que exijam segurana, rapidez e suporte a vrios dispositivos. Os discos SCSI so atualmente divididos em SCSI-1, SCSI-2 e SCSI-3. O SCSI-1 o primeiro padro, define um barramento paralelo de 8 bits, que suporta tranferncias de at 5 MBytes/s. O SCSI-2 surgiu logo depois da consolidao do primeiro padro. O SCSI-2 suporta um barramento mais rpido, de 16 ou 32 bits e mantm a compatibilidade com o anterior, de 8 bits. O SCSI-2 foi divulgado publicamente em 1990 e pode atingir, t eoricamente, a taxa de transferncia de at 40 MBytes/s. Os dispositivos SCSI-2 que suportam o barramento mais rpido, de 10 MBytes/s, so chamados Fast SCSI, enquanto os que aceitam barramento de 16 ou 32 bits de 20 MBytes/s, so conhecidos como Wide SCSI. Existem ainda interfaces e dispositivos que combinam esses dois pades, o Fast SCSI e o Wide SCSI, que podem atingir velocidades de at 40 MBytes/s. O padro 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 so vistos como um s. Isto possibilita a distribuio dos dados pelos vrios discos, permitindo um acesso de alto desempenho atravs de operaes de I/O simultneas. Alm disso, o Disk Array dispe de vrias implementaes de RAID (Redundant Array of Inexpensive Disk) que garantem a integridade das informaes, como o mirroring (espelhamento) e a tcnica de paridade. A Tabela 5 exibe um resumo das velocidades alcanadas pelos diversos padres de barramento secundrio. Barramento IDE Dados 16 Conector (pinos) 40 Perifricos (nmero) 2 Taxa de Transferncia (Mbytes/s) 5

Pgina 66

Microprocessadores _________________________________________________________________________________________________ ____

EIDE SCSI Fast SCSI-2 Fast & Wide SCSI-2 Ultra Fast Wide SCSI-2

16 8 8 16 16

40 50 50 68 68

4 8 8 8 32

10 5 10 20 40

Pgina 67

Microprocessadores _________________________________________________________________________________________________ ____

CAPTULO 4: SUPORTE AO DESENVOLVIMENTO DE SOFTWARE BSICO

4.1 ESTRUTURA DE UM PROGRAMA NA MEMRIA


A Figura 29 exibe a evoluo da estrutura de um programa na memria, desde o 8085 at o i486. 80386/i486 8086/8088 8080/8085 FFFFFFFF FFFFF FFFF Pilha Dados 64 KB => Cdigo 1.0 MB => Extra Pilha Dados Cdigo Dados 1 4.0 GB => Dados 2 Cdigo Pilha

0000

00000

00000000

Figura 29 Estrutura de um Programa na Memria (do 8085 ao i486)

4.2 MONTADORES, CARREGADORES 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 nvel, como C, PASCAL, FORTRAN, etc. No caso das linguagens de alto nvel temos programas editores, compiladores, ligadores e depuradores para auxiliar no desenvolvimento de software. O processo de desenvolvimento de software mostrado na figura 30.

COMPILADORES

LIGADORES

Mdulo Fonte ou Programa Fonte MONTADORES

Mdulo Objeto ou Programa Objeto

Mdulo de Carga ou Programa Executvel

CARREGADORES

Pgina 68

Microprocessadores _________________________________________________________________________________________________ ____

Figura 30 Processo de Desenvolvimento de Software em Assembly A linguagem Assembly depende do microprocessador utilizado. Mesmo microprocessadores da mesma famlia possuem conjuntos de instrues diferentes. As linguagens so dependentes da arquitetura do microprocessador e exigem o conhecimento desta. No caso das linguagens de baixo nvel tm-se MONTADORES, CARREGADORES e DEPURADORES. Em seguida, so dadas as respectivas definies. MONTADORES : So programas que traduzem o programa fonte escrito em linguagem Assembly para programas objetos. Montadores testam a correo da sintaxe utilizada pela linguagem para representar o programa fonte; CARREGADORES: So programas que transferem o contedo do programa objeto, j montado, da memria secundria para a memria principal do microcomputador; DEPURADORES: So programas que auxiliam no processo de testar a correo do programa objeto. Depuradores testam a semntica do programa objeto j montado.

4.3 - USO DE UM DEPURADOR DE LINGUAGEM ASSEMBLY

O formato tpico de uma linha fonte inclui os campos RTULO, MNEMNICO, OPERANDO(S) e COMENTRIOS, separados por caracteres separadores de campos, tais como ":" e ";". Tm-se trs tipos de linhas fonte: INSTRUES, DIRETIVAS e CONTROLES (prprios 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 executvel, ".COM", como sada. Existem vrios montadores Assembly para o 8086/8088, entre eles o chamado MASM ("Macro ASseMbler Programming"). A figura abaixo mostra o processo de gerao de arquivos com o MASM e demonstra o uso de um depurador Assembly.

C:\>edlin arq.asm ... C:\>masm arq; ... C:\>link arq; ... C:\>debug arq.exe -A 100 0939:0100 MOV AH,2 0939:0102 MOV DL,21 0939:0104 INT 21 0939:0106 INT 20 0939:0108 <Enter> -U 100 106

==> Gera arq.asm ==> Gera arq.obj ==> Gera arq.exe ==> Depura arq.exe ==> Assemblar

==> Desassemblar (Unassenbly)

Pgina 69

Microprocessadores _________________________________________________________________________________________________ ____

0939:0100 B402 0939:0102 B221 0939:0104 CD21 0939:0106 CD20 -R

MOV MOV INT INT

AH,02 DL,21 21 20 ==> Mostrar contedo 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 -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 ! Program terminated normally -Q 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 gravao em memria PROM, EPROM ou EEPROM, a qual ficaria residente no sistema controlado por microprocessador. Programadores e apagadores de EPROM esto disponveis no mercado para facilitar o processo de programao fsica da EPROM e eventual apagamento devido a alteraes no programa residente. No caso da EEPROM, isto no necessrio, pois este tipo de memria pode ser apagado e reprogramado (Electricaly Erasable) diretamente no sistema a microprocessador sem desligamento da mquina. ==> Sai do DEBUG (Quit) ==> Executa programa (Go)

Pgina 70

Microprocessadores _________________________________________________________________________________________________ ____

CAPTULO 5: CARACTERSTICAS GERAIS DOS MICROPROCES-SADORES DA MOTOROLA


5.1 O 68.000
No interior deste captulo sero citadas, oportunamente, as diferenas entre o 68.000 e o seu concorrente mais prximo na poca, o 8086. Ser dado um enfoque comparativo para que se possa ter uma idia das diferenas de arquitetura entre os micros da linha PC/PS e os da linha Apple/Macintosh e suas implicaes no desempenho dessas mquinas. O nome Macintosh surgiu quando em 1796, em Ontrio - Canad, um fazendeiro de nome McIntosh tornou popular uma ma, lhe dando o seu nome. Jef Raskin, consumidor habitual deste tipo de ma e responsvel, no seu incio, pelo projeto de um micro revolucionrio na APPLE, batizou este micro de Macintosh (com erro voluntrio de ortografia). 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 no compatvel em software com a famlia de 8 bits da MOTOROLA (vide 6800). Esta optou pelo projeto de um conjunto de instrues de mximo desempenho e simplicidade, ao invs de compatibilidade com os seus predecessores. O 68.000, possui caractersticas internas apropriadas para suportar o sistema operacional UNIX. Em outras palavras, foi concebido para receber um sistema operacional multitarefa e multiusurio, diferentemente do 8086. Nestes termos, pode-se dizer que este muito mais potente que um 8086.

5.1.1 - Arquitetura
A arquitetura do 68.000 usava a tcnica de "pipeline" para aumentar a taxa de execuo de instrues. O 8086 tambm fazia uso de "pipeline", utilizando para isso uma fila de 6 bytes para cdigo objeto. O 68.000 endereava 16.0 MBytes diretamente, atravs de suas 24 linhas de endereo, e indiretamente 64 MBytes. O 8086 podia enderear diretamente apenas 64 Kbytes e 1.0 Mbytes, respectivamente, atravs de seus registradores de segmento. O 68.000 operava em dois modos: modo Supervisor e modo Usurio. No Modo Supervisor o 68.000 podia executar instrues privilegiadas, no executveis no Modo Usurio. Assim, o 68.000 suportava um sistema operacional multitarefa e multiusurio. O 8086 no possua modos similares, apenas a partir do 80286 pode-se contar com o suporte a ambientes multitarefa e multiusurio. Internamente, o 68.000 possua 17 registradores de 32 bits, sendo oito para dados e nove para endereos (dois desses ltimos reservados para apontadores de pilha). O 8086 tinha somente 4 registradores de 16 bits mais trs registradores de ndice separados. Esta caracterstica trazia vantagens em desempenho para o 68.000, uma vez que mais operaes podiam ser realizadas no interior da pastilha, evitando acessos frequentes memria principal, o que significaria atrasos ainda maiores no processamento. O 68.000 em seu encapsulamento de 64 pinos possua linhas de dados e endereos separadas. J o 8086 multiplexava linhas de dados e endereos em seu encapsulamento de 40 pinos, sendo ento necessria uma lgica de demultiplexao externa a pastilha para recuperar os barramentos de dados e endereos. Se por um lado a MOTOROLA no economiza espao, ao mesmo tempo elimina a necessidade de circuitos adicionais na placa-me.

Pgina 71

Microprocessadores _________________________________________________________________________________________________ ____

O 68.000 era compatvel em hardware com os circuitos perifricos de 8 bits da prpria MOTOROLA. Uma similaridade encontrada no 8088 da INTEL, tambm compatvel em hardware com os circuitos perifricos de 8 bits da prpria INTEL. As duas fbricas sempre lanam pastilhas compatveis com circuitos perifricos de seus antecessores. Os tipos de dados suportados pelo 68.000 so: bit, nibble (4 bits), byte, word e long-word (32 bits). Este opera em ponto flutuante to rpido quanto o par 8086/8087. Aqui praticamente no existem diferenas importantes.

5.1.2 Diferenas no Conjunto de Instrues


O conjunto de instrues do 68.000 era composto de apenas 56 instrues bsicas, podendo atingir at 1000 combinaes. O 8086 possua um conjunto complexo de instrues em nmero elevado e na sua maioria com finalidades especficas. Do ponto de vista do programador Assembly razovel raciocinar que este consiga programar mais rpido com um conjunto poderoso de poucas instrues ao invs de um conjunto tambm poderoso, mas com um nmero elevado de instrues a escolher.

5.1.3 Capacidade de Interrupo


A MOTOROLA usa a designao de "Exceo" para o que o 8086 interpreta como "Interrupo". A MOTOROLA considera que interrupes so casos particulares de excees. O 68.000 tratava dois tipos de exceo: as excees geradas internamente e as geradas externamente, como segue. Excees Internas: procedimentos de exceo so executados quando a CPU detecta erros internos, tais como: erros de endereamento, violao de privilgio e cdigos de operao ilegais ou quando a CPU executa determinadas instrues de programa, tais como: TRAP e TRACE; Excees Externas: procedimentos de exceo so executados quando a CPU recebe sinais de hardware de fontes externas, tais como: erros de barramento, reset e pedido de interrupo.

Uma tabela de vetores para processamento de excees fica alocada na memria residente, contendo 256 possveis vetores para processamento de excees (1024 bytes). No 68.000 h 7 (sete) nveis de prioridade para excees. No 8086 havia 3 (trs) nveis de prioridade de interrupo (software, no mascarvel e mascarvel, nessa ordem). Isto no chega a ser uma vantagem do 68.000, uma vez que no caso de microcomputadores, tais nveis so largamente suficientes. A vantagem do 68.000 aqui vinha do fato de que o tratamento de excees possua um esquema mais direto e simples que no 8086, onde o programador tem mais preocupaes. Vale ressaltar, que quanto menor o tempo de programao maior a produtividade do programador e mais rapidamente os produtos so lanados no mercado.

5.2 O 68.010

H pouco a dizer sobre o 68.010, a no ser que este idntico ao 68.000, com algumas ressalvas. A primeira a de que usa suporte para memria virtual, ou seja, possui os pinos e os sinais necessrios comunicao com um circuito gerenciador de memria virtual (no disponvel no 68.000). A segunda a de que inclui algumas novas instrues, justamente para gerenciamento desta memria virtual.

Pgina 72

Microprocessadores _________________________________________________________________________________________________ ____

5.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 memria de dados de 32 em 32 bits. Alm disso, pode enderear diretamente 4 Gigabytes de memria, atravs de seu barramento de endereos de 32 bits. O 68.020 dotado de 3 (trs) unidades lgicas e aritmticas, possui uma memria cache interna de 256 bytes ou 64 "long-words" (32 bits) e usa uma estrutura "pipeline" de 3 instrues (busca, decodificao e execuo) de 32 bits. A busca de uma instruo no 68.020 significa um acesso a uma instruo de 32 bits e no dois acessos de 16 bits para buscar uma nica instruo (como ocorre no 68.000 e 68.010). O 68.020 a 16.67 Mhz compatvel em cdigo objeto com o 68.010 e possui um desempenho 6 (seis) vezes superior ao do 68.000 a 8 Mhz. Foram includas ainda, 20 novas instrues e dois novos registradores foram acrescentados no modo supervisor.

5.4 O 68.030

O antigo Mac SE/30 (CPU 68.030 a 15,667 Mhz) era 4 (quatro) vezes mais rpido que o Mac SE (CPU 68.000). A pastilha 68.030 incorpora a unidade de gerenciamento de memria 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 endereamento de 32 bits do 68.030. Por isso, este microcomputador no aceitava placas de expanso usadas nas verses anteriores. Um outro antigo modelo, o Mac IIcx tambm operava sob controle da CPU 68.030, mas numa frequncia de relgio de 25 Mhz. Alm disso, incorporava uma pastilha (68.882) de gerenciamento de memria virtual e um slot adicional para cache. No se pode comparar a frequncia de relgio de 15,76 Mhz do 68.030 com as frequncias, por exemplo do i386 33 Mhz. Arquiteturalmente diferentes, os microprocessadores da INTEL usam vrios perodos de relgio (algumas instrues necessitam de at 236 perodos de relgio) ou vrios ciclos de mquina para executarem uma instruo, enquanto que os microprocessadores MOTOROLA usam poucos perodos de relgio (a mais longa instruo tem uma durao de apenas 74 perodos de relgio). Portanto, as frequncias baixas utilizadas pelos microprocessadores MOTOROLA no significam baixo desempenho como se poderia precipitadamente concluir. Um resumo das caracterstica listado a seguir. Compatibilidade em cdigo com a famlia 68.000; Unidade de Ponto Flutuante fora da pastilha; Unidade de Gerenciamento de Memria on-chip; 256 Bytes de cache de instrues e dados; Interface de Memria de Rajada (Burst); Mecanismo de Dynamic Bus Sizing, o qual permite rodar cdigo de 8, 16 e 32 bits; Disponvel em 16, 20, 25, 33, 40 e 50 MHz; 18 MIPS a 50 MHz;

5.5 O 68.040

Pgina 73

Microprocessadores _________________________________________________________________________________________________ ____

As primeiras verses de Macintosh eram baseadas na CPU 68.000. Verses mais recentes so baseadas nas CPUs 68.040, 68.060 e Power PC. O Diagrama em Blocos do 68.040 mostrado na Figura 27.

Figura 27 Diagrama em Blocos do 68.040

Duas unidades de memria independentes se comunicam com a IU e a FPU. Cada unidade possui uma MMU, unidade de gerenciamento de memria virtual, que translaciona endereo lgico para fsico. Instrues no interior da pastilha e cache de dados operam independentemente e so acessadoa em paralelo com a translao de endereo. 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 nvel Write-Back de pipeline recebe sempre um resultado prvio da computao que poder ou no ser escrito em memria externa. Isto aumenta o desempenho, pois o acesso memria externa sempre mais demorado que o acesso ao cache interno. Assim, o resultado da computao s escrito em memria externa, aps confirmao do mesmo.

As principais caractersticas do 68.040 so: Barramentos de Endereos (4 GBytes) e Dados de 32 bits no multiplexados; Pipeline de 6 estgios (ver Unidade de Inteiros) Compatibilidade em cdigo com a famlia 68.000; Suporte de Ponto Flutuante on-chip (diferentemente do 68.030); Unidade de Gerenciamento de Memria on-chip (como no 68.030); 4 KB de cache de instrues e 4 KB de cache de dados; Interface de Memria de Rajada (Burst); Mecanismo de Dynamic Bus Sizing, o qual permite rodar cdigo de 8, 16 e 32 bits; 44 MIPS a 40 MHz; Disponvel em 25, 33 e 40 MHz; O 68040V alimentado por 3,3 Volts.

Pgina 74

Microprocessadores _________________________________________________________________________________________________ ____

O Barramento do Macintosh Neste ponto, vale comentar brevemente o barramento do principal concorrente do PC. O padro 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 comparvel era o MCA 16 bits, utilizado nos PS/2 da IBM, o qual possua 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 mquina. O NuBus foi concebido para ser utilizado por qualquer microprocessador, enquanto que o MCA aceitava somente microprocessadores da INTEL. A implicao disto era que um Macintosh aceitava uma placa 386 da INTEL, podendo rodar DOS ou OS/2, o inverso no era verdadeiro, isto , no se podia, em princpio, colocar uma placa da APPLE em um PS/2. O fato que os antigos barramentos dos XTs e ATs esto 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 lanamento, em 1984, procurou no ser hermtico e chegar de uma vez mais prximo do usurio final. Corre o boato que o MS-Windows na sua verso inicial nada mais era do que uma cpia 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 representao simblica, sob a forma de "cones" (pictograma que representa um documento, um programa, uma funo, etc) de arquivos. Este sistema era composto de um trio: a memria ROM da mquina, os arquivos "System" e "Finder", aos quais vieram se somar cerca de 20 outros mdulos anexos. A memria ROM teve pelo menos trs verses e continha, alm dos programas de interfaceamento com o hardware, programas grficos, caixa de ferramentas, etc. Os arquivos "System" e "Finder" eram indissociveis e complementares. Um Macintosh no era "bootvel" se estes dois arquivos no fosem encontrados no mesmo subdiretrio. As palavras-chave do sistema operacional do Macintosh so muitas: menus "pop-up" e "pull-down", janelas, cones, memria morta (ROM), memria viva (RAM), interface SCSI ("Small Computer System Interface"), ToolBox (sub-programas em ROM), "copy", "paste", HFS ("Hierarchical File System"), etc. Juntamente com a verso 5.0 do sistema operacional, foi lanado 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 experincia 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 ingls, espanhol, francs, japons e portugus. Esta verso do software vinha embutida nos Macintosh.

Pgina 75

Microprocessadores _________________________________________________________________________________________________ ____

5.6 O 68.060
As principais caractersticas do 68.060 so resumidas a seguir. Compatibilidade total em cdigo com o 68.040; Implementao Superescalar da arquitetura do 68.000; Execuo de 3 instrues por perodo de relgio; 2 Caches de 8 KB on-chip; Barramento de Dados e Endereos de 32 bits no multiplexados (como no 68.040); Disponvel em 50 e 66 MHz; 100 MIPS a 66 MHz; 68EC060 no possui FPU, nem MMUs; 68LC060 no possui FPU

O Diagrama em Blocos do 68.060 mostrado na Figura 27.

Figura 28 Diagrama em Blocos do 68.060

O mais importante nesta CPU que a unidade de Inteiros, IU, contm um pipeline dual, uma interface lgica para a FPU e controle lgico para a escrita de dados no cache e MMU. Isto implica na execuo de mais de uma instruo durante cada ciclo de clock. Os seis estgios no pipeline de execuo de inteiros so: 1. 2. 3. 4. 5. 6. Decode (DS) A instruo completamente decodificada; Clculo do Endereo Efetivo (AG) Clculo da locao do dado; Busca do Endereo Efetivo (OC) O dado buscado da locao de memria; Execuo de Inteiros (EX) O dado manipulado durante a execuo; Disponibilidade de dados (DA) O resultado est disponvel; Write-Back (WB) O dado resultante escrito no cache on-chip ou na memria externa.

Pgina 76

Microprocessadores _________________________________________________________________________________________________ ____

O Branch Cache na Unidade de Busca permite a deteo antecipada do salto, antes que a mudana de fluxo afete a unidade inteira.

5.7 OS POWERPC (IBM/APPLE/MOTOROLA)

5.7.1 - Origem
A idia inicial das 3 gigantes da indstria era a de projetar um microprocessador de enorme desempenho em um nico chip. Isto permitiria um balanceamento entre mximo desempenho, facilidade de fabricao e baixo custo. A raiz do projeto foi a arquitetura POWER da IBM. Assim, os projetistas removeram instrues raramente utilizadas e minimizaram caractersticas que restringiam o paralelismo. Tambm foram includas extenses para prover um suporte adicional funes freqentemente utilizadas. Instrues LOAD e STORE Simplicidade na Implementao. Retirada de update degenerado. Uma instruo de LOAD que tenta carregar um operando no mesmo registrador usado pelo endereo efetivo resultante dita degenerada (somente um valor deve ser carregado no registrador alvo). No PowerPC isto foi deixado em aberto. Esta mudana no reduz a funcionalidade, mas simplifica a implementao. Excees de Ponto-Fixo Diminuio do Perodo de Latncia. Instrues de ponto-fixo ou ponto-flutuante atualizam um registrador de condio baseado no tipo de resultado. Esta atualizao pode aumentar o perodo de latncia. Mesmo sendo necessrio, tal modo de funcionamento no de uso freqente. No PowerPC foi acrescentada uma instruo SUBTRACT para completar o conjunto de instrues de ponto-fixo, a qual no altera ou usa o bit de CARRY. Computao de Ponto-Fixo Remoo/Substituio de Instrues. Foram retiradas do conjunto, quatro instrues baseadas em Diferena ou Zero e Valor absoluto por causa de seu uso no frequente e benefcio limitado de desempenho. Trs outras instrues que envolviam trs operandos fonte tambm foram removidas por adicionarem complexidade implementao. Tais instrues foram substitudas por trs ou quatro outras instrues. Ponto-Flutuante A arquitetura POWER provm um modelo computacional de ponto-flutuante que contm um conjunto completo de instrues LOAD e STORE para operandos de ponto-flutuante de simples e dupla preciso. Contudo, a computao de preciso simples feita usando operaes de preciso dupla, em seguida arredondando o resultado para preciso simples. Foi adicionado ao PowerPC um conjunto completo de operaes aritmticas e de acumulao de preciso simples, de forma a baixar o custo e aumentar a velocidade de operaes de preciso simples, tornando mais lenta a computao em preciso dupla. Em sistemas pequenos, isto aumenta o desempenho significativamente, uma vez que grficos, por exemplo, no necessitam de preciso dupla. Modelo de Armazenamento A arquitetura do POWER relegava a tarefa de manter a coerncia do cache ao software e usava um modelo de consistncia fraco de armazenamento. O PowerPC tambm depende do software para manter a consistncia de armazenamento de instrues, mas adicionalmente permite ao software

Pgina 77

Microprocessadores _________________________________________________________________________________________________ ____

especificar quais pginas de armazenamento de dados o processador manter em um estado consistente. Extenses de 64 bits Os registradores acessveis s instrues de ponto-fixo foram estendidos para 64 bits, com poucas excees. Um bit de Modo de ambiente foi adicionado ao registrador de status da mquina para selecionar ambiente de 32 ou 64 bits. As especificaes d e 4 instrues existentes de LOAD de ponto-fixo foram mudadas para implementaes de 64 bits. Vrias instrues aritmticas, de pontofixo e de ponto-flutuante foram adicionadas para manipular operaes com e sem sinal em 64 bits.

5.7.2 A Famlia PowerPC


A famlia PowerPC da Motorola possui vrios membros, os quais possuem utilizao especfica. Os microprocessadores usados em computadores handheld, notebooks, desktops, workstations e servidores so: PowerPC 601; PowerPC 603; PowerPC 604; PowerPC 620;

Os utilizados embutidos em hardwares para rede, comunicaes e microcontroladores so:

PowerPC 602; PowerPC 603; MPC821; MPC823; MPC860; MPC505.

Como no podia deixar de ser, alm dos microprocessadores, a Motorola tambm fabrica circuitos a serem utilizados como perifricos desses microprocessadores, tais como: MPC105 (Controlador de cache, ponte PCI e interface de DRAM num nico chip). A seguir sero fornecidas resumidamente as caractersticas de alguns deles.

PowerPC 620

O PowerPC 620 uma implementao de 64 bits da arquitetura RISC do PowerPC com as seguintes caractersticas: Compatvel em software com os 601, 603 e 604; Capacidade de execuo de 4 instrues por perodo de relgio; 6 unidades de execuo 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

Pgina 78

Microprocessadores _________________________________________________________________________________________________ ____

32 Kbytes de cache de instrues 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 memria fsica e 1 HeptaBytes de memria virtual; Barramento de Dados de 128 bits; Barramento de Endereos de 40 bits; 7 milhes de transistores integrados; Tecnologia de Processo CMOS esttico de 0,5 micron.

PowerPC 750/740

Os microprocessadores PowerPC 750/740 so implementaes de 32 bits, de baixa potncia, da arquitetura RISC PowerPC. A nica diferena entre os mesmos a de que o 750 possui uma interface de cache L2 dedicada on-chip. As principais caractersticas do PowerPC 750 so; Compatvel em software e barramento com os 603e e 604e; Capacidade de execuo de 3 instrues por perodo de relgio; 6 unidades de execuo 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 potncia; Cache L1 de 32 Kbytes para instrues e 32 Kbytes para dados, fisicamente separados; Suporte a Cache L2 on-chip de at 1 MBytes (o PowerPC 740 no possui cache L2 on-chip); MMU suporta 4 GigaBytes de memria fsica e 1 PetaBytes (2 52 bits) de memria virtual; Barramento de Dados de 64 bits; Barramento de Endereos de 32 bits; 6,5 milhes de transistores integrados; Tecnologia de Processo CMOS esttico 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).

Pgina 79

Microprocessadores _________________________________________________________________________________________________ ____

CAPTULO 6: INTRODUO AOS MICROCONTROLADORES

6.1 ARQUITETURA INTERNA


Os microcontroladores so microprocessadores de propsito especial. Estas pastilhas contm todos os circuitos perifricos necessrios aos equipamentos normalmente utilizados na rea de controle processos. Os microprocessadores comuns so considerados de propsito geral. Como o nome indica, so microprocessadores destinados a controlar. A arquitetura interna dos mesmos, normalmente, dotada de CPU, memria RAM, memria EPROM, portas paralelas, portas seriais, temporizadores, contadores e lgica de expanso de barramento. A ttulo de exemplo so detalhados dois microcontroladores. O primeiro um antigo membro da famlia de microcontroladores da INTEL, o 8052. Este citado por razes histricas e prticas, pois de 8 bits e muitos equipamentos de hoje ainda so baseados nesta pastilha. O segundo um microcontrolador mais sofisticado, fabricado pela Motorola, o MPC860.

6.2 O MICROCONTROLADOR 8052 DA INTEL


Como j mencionado, o 8052 faz parte de uma famlia de microcontroladores, conforme tabela a seguir:

ROM Interna RAM Interna

8051 4 KB 128

8031 128

8751 4 K (EPROM) 128

8052 8K 256

8032 256

83C512B 16 a 32 K 512

As caractersticas gerais, especificamente do 8052 incluem: CPU de 8 bits; Oscilador e Circuitos de Relgio Embutidos; 32 linhas de Entrada e Sada; 64 KB para endereos da memria de dados; 64 KB para endereos da memria de programa; 3 contadores/temporizadores de 16 bits; 5 fontes de interrupo (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.

Pgina 80

Microprocessadores _________________________________________________________________________________________________ ____

O Diagrama em Blocos da Arquitetura do Microcontrolador 8052 da INTEL mostrado na Figura 31.

ROM / EPROM (8 KBytes)

RAM (256 Bytes)

3 Contadores/ Temporizadores (16 bits)

CPU (8 bits) 8052

Controle de Expanso de Barramento

Entrada/Sada Paralela Programvel (32 Linhas)

Entrada/Sada Serial Programvel

Figura 31 Diagrama em Blocos do Microcontrolador 8052 da INTEL

Para dar uma idia comparativa, em relao a microprocessadores de propsito geral, so listados abaixo os Registradores Internos do 8052. A Acumulador B Reg. Utilizado em operaes de multiplicao, diviso e rascunho PSW Reg. De Status (CY, ACY, OVF, PARITY, ...) SP Stack Pointer DPTR Endereo 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 memria externa feito com o auxlio dos seguintes sinais: PSEN (Programa Store Enable) para a memria de programa e RD (Read) e WR (Write) para a memria de dados mais os endereos correspondentes.

Pgina 81

Microprocessadores _________________________________________________________________________________________________ ____

A Figura 32 mostra a organizao de memria do 8052.

ROM Interna (8 KBytes)

64 KBytes

RAM Externa (Dados)

64 KBytes

RAM Externa (Programas)

128 Bytes

RAM Interna

Registradores Internos

Figura 32 Organizao de memria do 8052

As interrupes so: INT 0 e INT 1 Pinos da CPU projetados para receber pedidos externos de interrupo; TF0 e TF1 So geradas pelos Contadores/Temporizadores internos; INT Proveniente da Porta Serial interna.

6.3 O MPC860 DA MOTOROLA


O MPC860 uma combinao de microprocessador e perifrico projetado para funcionar em uma ampla variedade de aplicaes de controlador, particularmente em produtos de comunicao e rede.

Pgina 82

Microprocessadores _________________________________________________________________________________________________ ____

Esta pastilha a gerao seguinte do MC68360 para aplicaes de redes e comunicao de dados. Esta pastilha integra 2 blocos de processamento: o primeiro o ncleo do PowerPC e o segundo o Mdulo Processador de Comunicao (CPM), muito similar ao MC68360. Esta arquitetura dual provm um consumo mais baixo de potncia do que o tradicional, por que o CPM assume as tarefas de controle de perifricos do ncleo PowerPC. As principais caractersticas do MPC860 so:

Ncleo PowerPC embutido com capacidade de 88 MIPS a 66 MHz; 4 KB de Cache de instrues; 4 KB de Cache de Dados; 32 bits de barramento de dados; 32 linhas de endereo; MMUs de dados e instrues; Controlador de Memria (8 bancos); 4 Temporizadores de 16 bits ou 2 de 32 bits; Unidade de Integrao de Sistema (SIU): Monitor de IRQ espria, Sintetizador de Clock, Decrementador PowerPC, controlador de RESET, ...; 7 IRQs externas, 16 IRQs internas e 12 pinos de porta com capacidade de interrupo; Mdulo Processador de Comunicaes (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 Comunicao Serial (SCC): Ethernet, HDLC/SDLC, UART, Apple Talk, Infravermelho serial (IrDA); 2 Canais de Gerenciamento Serial (SMC); 1 interface perifrica serial; Interface paralela (porta Centronics ou mais rpida); Interface PCMCIA (2 soquetes independentes); Atribuidor de Time Slot, permitindo SCCs e SMCs rodarem em operao multiplexada e nomultiplexada, suporta T1, ISDN,...; Opera em 3,3 Volts e compatvel com TTL 5,0 Volts

Pgina 83

Microprocessadores _________________________________________________________________________________________________ ____

CAPTULO 7: AS ARQUITETURAS RISC


7.1 - NOES DE ARQUITETURA RISC

Todos os processadores mencionados at a seo anterior, em geral, so considerados como mquinas CISC ("Complex Instruction Set Computer"). Guardadas as diferenas de projeto arquitetnico entre INTEL e MOTOROLA, todas essas mquinas possuem um conjunto de instrues, considerado por pesquisadores de arquitetura como, demasiado grande. Ainda que estruturas pipeline possam ser encontradas no interior das mquinas CISC, isto no significa que seu projeto tenha sido direcionado para a otimizao da compilao de programas, como bem o caso das RISC. As mquinas RISC ("Reduced Instruction Set Computer") apareceram no incio dos anos 80 em laboratrios de empresas (p.e. IBM), como o IBM 801, e em instituies de pesquisa: RISC I e RISC II na Universidade da Califrnia - Berkeley e MIPS na Universidade de Stanford. Em 1985, todas as trs estavam operacionais. Cada um dos projetos tinha diferentes requisitos e objetivos, mas alguns princpios eram comuns:

1. 2. 3. 4.

As operaes eram registrador-para-registrador (e no memria-para-memria) com somente instrues LOAD e STORE para acesso memria; Tanto operaes (muitas delas completadas em um nico ciclo) como modos de endereamento eram reduzidos (somente os modos Indexado e Relativo ao Contador de Programa); O formato das instrues eram simples e no ultrapassavam o limite do tamanho de palavra; O tratamento dado aos Saltos ou "JUMPS" RISC evitavam penalidades na estrutura pipeline.

O objetivo das mquinas RISC era o de aumentar a eficincia da interface entre o compilador e o hardware e no, diminuir o "gap" entre o usurio e o hardware. Este ltimo tem sido o objetivo das mquinas consideradas CISC, como os microprocessadores de desktops e alguns servidores. A compilao em processadores RISC simples e o cdigo gerado eficiente, at mesmo em funo da prpria filosofia de se ter um conjunto reduzido de instrues. Ao lado disso, com o avano tecnolgico da integrao VLSI ("Very Large Scale Integration"), tambm tornou-se possvel realizar o mximo de operaes no interior do circuito integrado, aumentando sobremaneira a velocidade das operaes. Pelo fato das instrues serem simples e pouco numerosas, vrias transferncias CPU/Memria e vice-versa so necessrias. Este problema vem sendo resolvido com a tcnica de "cache", ou seja, ler um grupo de instrues 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 temporrios, no interior da pastilha, sem que sejam necessrios vrios acessos memria principal. A tcnica de "pipeline" em vrios nveis tambm utilizada para aumentar ainda mais a taxa de execuo de instrues. Algumas mquinas RISC executam uma instruo por ciclo de relgio, isto para implementar um pipeline eficiente. As mquinas clssicas utilizam vrios ciclos de mquina, contendo vrios ciclos de relgio para a execuo de uma nica instruo.

Pgina 84

Microprocessadores _________________________________________________________________________________________________ ____

As instrues RISC, em geral, so de mesmo comprimento para aproveitar de maneira eficiente a estrutura pipeline, uma vez que comprimentos diferentes levariam ao aumento do nmero de acessos memria para busca de instrues e, no caso de necessidade de uso de memria virtual, poderiam haver quebras de pginas difceis de serem gerenciadas.

7.2 - IMPLICAES NO DESEMPENHO DE UM COMPUTADOR

Pelas razes mencionadas na sesso anterior, processadores RISC possuem, no momento, um desempenho superior ao de processadores CISC. Pode-se dizer tambm que mquinas RISC foram construdas para diminuir o "gap de desempenho" das mquinas e no o "gap semntico" entre o usurio e a mquina. Processadores CISC, ao contrrio, como qualquer um pode notar, diminuram muito esse "gap semntico". Um outro aspecto no menos importante foi o contra-senso, durante uma certa poca, de se utilizar mquinas RISC como equipamento central controlando vrios terminais, pois certamente o projeto da sua arquitetura no foi direcionado para tal e sua parte de Entrada/Sada muito menos. O que uma mquina que usa um processador RISC como CPU faz otimizar a ao de compiladores e aumentar muito a velocidade de processamento, tornando-a adequada ao desenvolvedor de aplicaes "pesadas" ou aqueles que necessitam de recursos grficos e de processamento, considerados hoje, de primeira qualidade. Com o aumento sistemtico do desempenho de microprocessadores padro da indstria, incluindo caractersticas arquiteturais de mquinas RISC, a diferena conceitual entre uma e outra arquitetura praticamente inexiste.

Pgina 85

Microprocessadores _________________________________________________________________________________________________ ____

CAPTULO 8: ARQUITETURAS NO CONVENCIONAIS


8.1 ARQUITETURAS PARALELAS

A primeira pergunta a fazer : O que uma Arquitetura Paralela ? uma coleo de elementos de processamento cooperantes para resolver problemas grandes mais rapidamente

A segunda pergunta seria: Qual a motivao para as pesquisas em Computao Paralela ? 1. Aumento de Desempenho - Premissa do arquiteto de computadores: Projetar e construir os vrios nveis de um sistema de computador para maximizar o desempenho e programabilidade, dentro dos limites de tecnologia e custo; Demanda de Usurios: Estruturas organizacionais inovadoras e diversas, frequentemente chegam a necessidade de criao de novos modelos de programao; Demanda de Aplicaes: fsica, qumica, biologia, CAD, Vdeo, grficos, .. Tendncias de Tecnologia: Crescimento de clock esperado lento, nmero de transistores num chip crescendo; Tendncias de Arquitetura: Paralelismo no nvel de instrues limitado; Tendncias de hoje: microprocessadores de hoje possuem suporte amultiprocessamento, servidores e estaes chegando ao multoprocessamento, microprocessadores de amanho so multiprocessadores; Tendncias de Aplicaes: variao do desempenho com o custo aumentando progressivamente (figura 35). SPEEDUP = Desempenho (P processadores) / Desempenho (1 processador)

2.

3. 4.

5. 6.

7.

As figuras que se seguem procuram demonstrar as motivaes para investimentos em arquiteturas paralelas

Pgina 86

Microprocessadores _________________________________________________________________________________________________ ____

Demanda de Aplicaes

Figura 33 Evoluo nas necessidades em computao cientfica

10 GIPS 1,000 W ords Continuous Speech Recognition ISDN-CD Stereo Receiver CELP Speech Coding Speaker Veri cation

1 GIPS T elephone Number Recognition 200 W ords Isolated Speech Recognition

5,000 Words Continuous Speech Recognition HDTV Receiver CIF Video

100 MIPS

10 MIPS

1 MIPS

Sub-Band Speech Coding

1980

1985

1990

1995

Figura 34 Evoluo nas necessidades de processamernto de voz e imagem

Pgina 87

Microprocessadores _________________________________________________________________________________________________ ____

Pgina 88

Microprocessadores _________________________________________________________________________________________________ ____

Tendncias de Tecnologia

100

Supercomputers

10 Performance Mainframes Microprocessors Minicomputers 1

0.1 1965

1970

1975

1980

1985

1990

1995

Figura 35 Crescimento do Desempenho de Computadores

1,000
u u u u u u u u R10000 u u u u u u u uu u u uu u u u u u u u Pentium100 u u u u u u uu uu u u u u uu u u uu u u u u uu ui80386

Clock rate (MHz)

100

10

i8086 u
u u

uu u

i80286

i8080

uu u i8008

i4004

0.1 1970

1975

1980

1985

1990

1995

2000

2005

Figura 36 Taxa de Crescimento da Freqncia de Relgio

Pgina 89

Microprocessadores _________________________________________________________________________________________________ ____

100,000,000
u

10,000,000 Transistors 1,000,000 100,000 10,000 1,000 1970

u u u u u R10000 u uu u uu u Pentium uu u u u u u u u u u uu u u u u uu u u u u u i80386 i80286 u u u u R3000 u u R2000 u u i8086 u u i8008 u u i8080

i4004

1980 1990 2000 1975 1985 1995 2005

Figura 37 Taxa de Crescimento do Nmero de Transistores por Chip

Pgina 90

Microprocessadores _________________________________________________________________________________________________ ____

A figura 38 exibe uma classificao amplamente usada na literatura de arquitetura de computadores. As arquiteturas so classificadas em SISD, SIMD, MISD e MIMD, sendo mais poderosa aquela que implementa a execuo de mltiplas instrues sobre mltiplos dados, a MIMD (Multiple Instructions Multiple Data). A sigla das restantes so: SISD (Single Instruction Single Data), SIMD (Single Instruction Multiple Data) e SIMD (Single Instruction Multiple Data).

Figura 38 Classificao de Flynn

Na rea de arquiteturas especificamente paralelas outras classificaes podem ser encontradas. Uma das quais estabelece 4 classes de Arquiteturas Paralelas: 1. Arquiteturas Vetoriais Processadores especficos (proprietrios) Memria centralizada Espao de endereamento nico (vrios processadores endeream a mesma memria) Tempo de acesso uniforme (os processadores acessam qualquer parte da memria em tempos iguais) Componentes especficos Tecnologia agressiva Memria compartilhada

Pgina 91

Microprocessadores _________________________________________________________________________________________________ ____

2.

Arquiteturas SIMD Processadores especficos (proprietrios) Memria distribuda Espao de endereamento mltiplo (cada processador possui sua prpria memria) Tempo de acesso no uniforme (o tempo de acesso memria por um processador pode diferir, dependendo da localizao da clula) Componentes especficos ou disponveis comercialmente Tecnologia padro Memria distribuda Passagem de Mensagens (atravs de uma rede de comunicao)

3.

Arquiteturas MIMD com espao de endereamento nico Processadores comerciais (microprocessador) Memria centralizada ou distribuda Espao de endereamento nico Tempo de acesso uniforme ou no uniforme Componentes disponveis comercialmente (memria, lgica) Tecnologia padro Memria compartilhada

4.

Arquiteturas MIMD Passagem de Mensagens Processadores comerciais (microprocessador) Memria distribuda Espao de endereamento mltiplo Tempo de acesso no uniforme Componentes disponveis comercialmente Tecnologia padro Memria distribuda Passagem de Mensagens (atravs de uma rede de comunicao)

Outro conceito importante so as fontes de paralelismo: Paralelismo de Dados: h um reagrupamento de dados devendo seguir o mesmo processamento; Paralelismo de Controle: h a presena de partes independentes (tarefas, sequncia de operaes) dentro de um programa; Paralelismo de Fluxo: h um jogo de dados renovado constantemente durante a execuo.

Pgina 92

Microprocessadores _________________________________________________________________________________________________ ____

Resta perguntar: Quais os problemas a resolver numa arquitetura paralela ?

1.

Alocao de Recursos Quo grande a coleo ? Qual a potncia dos seus elementos ? Quanta memria utilizar ?

2.

Acessos a Dados, Sincronizao e Comunicao Como fazer os elementos cooperarem e se comunicarem ? Quantos dados so transmitidos entre processadores ? Quais so as abstraes e primitivas para a cooperao ?

3.

Desempenho e escalabilidade Quais as conseqncias no desempenho ? Como graduar isto ?

A seo seguinte tratar especificamente de mquinas MIMD Passagem de Mensagens, simplesmente por que estas tm merecido a ateno de pesquisadores do mundo todo.

8.2 MQUINAS MIMD PASSAGEM DE MENSAGENS

No momento atual, ano 1999, verifica-se uma taxa de 50 a 100% de aumento de desempenho nos microprocessadores a cada ano. A capacidade das RAMs dinmicas quadruplica a cada 3 anos. A densidade dos discos magnticos cresce 50% anualmente. Isto fora uma tendncia de se utilizar microprocessadores padro. Alm disso, o usurio fora uma tendncia de que a potncia dos sistemas de computador deve aumentar com o nmero de processadores, o que hoje no corresponde a realidade.

Um outro aspecto verificar os modelos utilizados pelos 500 computadores mais rpidos do mundo. A figura 39 exibe a tendncia de uso de mquinas Passagem de Mensagens.

Pgina 93

Microprocessadores _________________________________________________________________________________________________ ____

350 300 n Number of systems 250 200 150 100 50 0s 11/93 s 63 11/94 11/95 u187 313 239 u n 198 110 s n 106 284 u

319 u u MPP n PVP s SMP 106 n s 73 11/96

Figura 40 Os 500 computadores mais rpidos do mundo

Pode-se classificar as Mquinas Passagem de Mensagens em 2 classes, segundo o gerenciamento de memria: 1. 2. Multiprocessadores de Memria Compartilhada (espao de endereamento nico) Multicomputadores Passagem de Mensagens (memria distribuda nos ns)

A figura 41 mostra as diferenas entre as classes.

Pgina 94

Microprocessadores _________________________________________________________________________________________________ ____

Modelo de Programao Passagem de Mensagens Mensagens

Processo

Processo

Processo

Processo

Dados

Dados

Dados

Dados

Dados Particionados (espaos de endereos privados)

Modelo de Programao com Memria Compartilhada Operaes de Sincronizao

Processo

Processo

Processo

Processo

Dados

Dados globalmente acessveis (espao de endereo compartilhado)

Figura 41 Dois Modelos de Arquiteturas Paralelas MIMD

Pgina 95

Microprocessadores _________________________________________________________________________________________________ ____

Pgina 96

Microprocessadores _________________________________________________________________________________________________ ____

Exemplo de Mquinas Passagem de Mensagens

O IBM SP-2

Power 2 CPU L2 $

IBM SP-2 node

Memory bus

General interconnection network formed fr om 8-port switches

Memory controller

4-way interleaved DRAM

MicroChannel bus NIC DRAM I/O i860 DMA NI

Pgina 97

Microprocessadores _________________________________________________________________________________________________ ____

Exemplo de Mquinas Passagem de Mensagens

O INTEL PARAGON

i860 L1 $

i860 L1 $

Intel Paragon node

Memory bus (64-bit, 50 MHz)

Mem ctrl Driver


Sandia s Intel Paragon XP/S-based Supercomputer

DMA NI

4-way interleaved DRAM

2D grid network with processing node attached to every switch

8 bits, 175 MHz, bidirectional

Pgina 98

Microprocessadores _________________________________________________________________________________________________ ____

Kai Hwang definiu 3 geraes de mquinas MIMD Passagem de Mensagens: Primeira gerao (1983-1987) Tecnologia de placas de processadores utilizando redes hipercubo, sendo a passagem de mensagens realizadapelo software. Um exemplo dessas mquinas o Cosmic Cube , desenvolvido pela Caltech por C. Seitz e o INTEL iPSC/1. Segunda Gerao (1988-1992) Arquitetura com uma topologia de grade, sendo o roteamento realizado por hardware. Um exemplo o INTEL Paragon e iPSC/2. Terceira Gerao (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 transio a partir das estaes de trabalho at mquinas paralelas topo de linha, ao invs de visar diretamente o mercado topo de linha.

O Cosmic Cube Entidade bsica: o processo, que envia e recebe mensagens. Operao: Cada n pode conter vrios processos que so executados concorrentemente, se entrelaando. Arquitetura: 64 processadores 8086/8087 5 Mhz. Cada n ligado a 6 outros ns (6-cube) por canais de comunicao bidirecionais, assncronos e ponto-a-ponto. Ns possuem 128 KB de RAM e 8 KB de ROM (inicializao, boot, refrescamento de memria e programas de diagnstico). Sistema Operacional: Cada n executa um micro-ncleo. Cada micro-ncleo pode criar e matar processos sobre seu n, gerenciar carga em memria e tratar interrupes. A cada processo est associado um nico e global ID (identificador) para endereamento de mensagens. Cada mensagem possue um cabealho contendo DESTINO, ID do EMISSOR, TIPO DE MENSAGEM e TAMANHO DA MENSAGEM.

O INTEL Paragon O Paragon oferece um alto nvel de desempenho, flexibilidade e utilizabilidade em aplicaes destinadas a supercomputadores, acima dos tradicionais computadores vetoriais. Arquitetura: Cada n um multiprocessador de memria compartilhada e usa no mnimo 2 processadores i860XP: um ou mais (processadores de aplicao) destinado a executar as aplicaes e um (processador de mensagens) dedicado comunicao entre ns. Os ns so distribudos em uma rede 2D com ligaes de 16 bits suportando at 175 Mbytes/s em cada direo. Isto viabiliza uma largura de banda de at 5,6 Gbytes/s para um modelo XP/s com 76 ns. A transferncia de blocos de dados da memria para a interface de rede feita atravs de dois canais de DMA a uma velocidade de 400 Mbytes/s com um sistema de coerncia de cache. Sistema Operacional: Consiste de UNIX melhorado, totalmente distribudo ao longo dos ns, eliminando a necessidade de se ter um host ou front-end. Linguagens: Compiladores Fortran-77, C, C++ e Ada produzem cdigo otimizado para aplicaes paralelas O Paragon o resultado de 10 anos de pesquisas e desenvolvimento comeado na Caltech por C. Seitz, depois no MIT por W. Dally e enfim pelo projeto Touchstone Intel-DARPA.
Pgina 99

Microprocessadores _________________________________________________________________________________________________ ____

A J-Machine

A J-Machine um computador concorrente implementado segundo o modelo MIMD de memria distribuda. Seu projeto comeou no MIT em 1988 partir das experincias de Dally na Caltech sobre o processamento base de passagem de mensagens. A idia central de que processadores so baratos e memria cara. Foi projetado para implementar todos os modelos de programao (passagem de mensagens, memria compartilhada, dados paralelos, data-flow e atores). Entidade bsica: MDP (Message-Driven Processor). O MDP um microcomputador VLSI de 36 bits e 1,1 milho de transistores, memria de 4096 palavras de 36 bits e uma porta de rede. Foi concebido para ser eficiente dentro de um multiprocessador. Cada n contm 4K do MDP mais 1 Mbytes de memria externa. O MDP possui ainda 6 portas de rede de duplo sentido e 1 porta de diagnstico. Cada porta de rede corresponde a uma direo (+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 relgio. Uma rede de 1024 ns permite um largura de banda de 1,8 Gbytes/s. Ambiente e Programao: Smaltalk concorrente e C dirigido mensagens.

8.3 TENDNCIAS EM ARQUITETURAS PARALELAS


Pode-se resumir as atuais tendncias em arquiteturas paralelas nos seguintes pontos:

Redes de Estao de Trabalho Reduo do tempo de Desenvolvimento Arquiteturas baseadas em Tecnologia Padro Suporte a todos os Modelos de Programao

Redes de Estao de Trabalho - Alguns autores comparam a evoluo dos sistemas de informtica atuais uma cadeia alimentar invertida, na qual os pequenos comero os grandes. Os PCs atacam o mercado de estaes de trabalho que por sua vez consumiram o de minicomputadores e avanam sobre o de mainframes e supercomputadores. A relao Preo/desempenho das estaes de trabalho aumenta 80% por ano e no aumenta mais que 20 a 30% para os supercomputadores. Nota-se tambm uma convergncia entre as Redes de Estaes de Trabalho e os Processadores massivamente paralelos.

Reduo do Tempo de Desenvolvimento A estatstica do tempo de desenvolvimento de supercomputadores mostra que este demasiadamente longo. A soluo SP/2 da IBM parece adaptar-se bem a esta deficincia. Os projetistas procuram fundar sua concepo em tcnicas j testadas e provadas, sendo descartada sistematicamente, toda inovao considerada complexa de realizar.

Pgina 100

Microprocessadores _________________________________________________________________________________________________ ____

Arquiteturas baseadas em Tecnologia Padro Esta idia inicialmente fundamentada no fator custo, mas tambm se baseia no aproveitamento rpido das ltimas evolues em microprocessadores.

Suporte a todos os Modelos de Programao Este um requisito que tem se tornado desejvel, a fim de evitar a especializao das mquinas. Ou seja, a arquitetura deve possuir o suporte necessrio execuo de aplicaes nos modelos de: passagem de mensagens, dados paralelos, memria compartilhada, etc.

Pgina 101

Microprocessadores _________________________________________________________________________________________________ ____

BIBLIOGRAFIA

Livros:

1.

TANENBAUM, Andrew :"Structured Computer Organization", second edition, Prentice-Hall, Inc., 1984. RUSSELL, Rector; ALEXY, George: "The 8086 Book", Ed. Osborne/ McGraw-Hill, 1981; ARTWICK, Bruce A., "Practical Hardware Details for 8080, 8085, Z80 e 6800 Microprocessors Systems", Prentice-Hall, 1981; KANE, Gerry, "68000 Microprocessor Handbook", Osborne/McGraw-Hill, 1981; OSBORNE, Adam; KANE, Osborne/McGraw-Hill, 1981; Gerry; "OSBORNE 16-bit Microprocessor Handbook",

2. 3.

4. 5.

6. 7.

NORTON, Peter, "Desvendando o PC", Editora Campus Ltda., 1987; LEVENTHAL, Lance; WALSH, Colin;"Microcomputer Experimentation with the INTEL SDK-85", Prentice-Hall, 1980;

Webgrafia

www.lri.fr www.laas.fr www.intel.com http://www-techdoc.intel.com/ http://developer.intel.com/sites/developer/ http://www.cyrix.com/site_index.html www.amd.com http://www.tomshardware.com/ www.mot.com http://www.mcu.motsps.com/index.html http://www.lri.fr/~fci/goinfreWWW/projets97/fedak/Survey.html http://ee.stanford.edu/ http://umunhum.stanford.edu/papers.html

Artigos:

1. 2. 3. 4.

"Microprocessors - The First Twelve Years"; Proceedings IEEE, Vol. 71, No. 11, november 1983. "Microprocessors in Brief"; IBM Journal Research and Development, Vol. 29, No. 2, march 1985. "Optimizing Microprocessor Input/Output Techniques"; Computer Design, april 1981. "A Survey of Advanced Microprocessors and HLL Computer Architectures"; IEEE Computer, august 1986.

Pgina 102

Microprocessadores _________________________________________________________________________________________________ ____

5. 6.

"An Introduction to GaAs Microprocessor Architecture for VLSI"; IEEE Computer, march 1986. Artigos diversos das revistas: Byte USA, Byte Brasil, Electronic Design, Exame Informtica, Computer Design, PC Magazine USA, PC Magazine Brasil, PC World, SVM Macintosh. FEDAK, Gilles; Les Machines MIMD Passage de Messages, Laboratoire de Recherche en Informatique, 1996

7.

Manuais:

1. 2. 3. 4. 5. 6. 7.

INTEL Corporation, "The MCS-85 Family User's Manual, january 1983; INTEL Corporation, "Application Techniques for the intel 8085 Bus", 1978; INTEL Corporation, "8080/8085 Assembly Language Programming Manual, 1978; INTEL Corporation, "Microsystem Components Handbook - Volume I, 1984; INTEL Corporation, "An Introduction to ASM 86", 1981; INTEL Corporation,"MCS-51 Family of Single Chip Microcomputers User's Manual, july, 1981; INTEL Corporation,"80386 High Performance Microprocessor Management" - Advance Information, october 1985; with Integrated Memory

8. 9.

INTEL Corporation,"iAPX 86/88, 186/188 User's Manual" - Programmer's Reference, may 1983; ZILOG, Inc., "Z80-CPU Technical Manual", 1977;

10. ZILOG, Inc., "Z80-Assembly Language Programming Manual", 1977; 11. MOTOROLA Inc., "Motorola Microprocessors Data Manual", 1981;

Pgina 103

Anda mungkin juga menyukai