Escolar Documentos
Profissional Documentos
Cultura Documentos
Ano: 2006
Sumrio
Pgina 2
Pgina 3
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:
=> INTEL i386SL, i486SX Microprocessadores com tecnologia RISC => INTEL i486DX2/50 e i486DX2/66 => INTEL Pentium => INTEL Pentium Pro
Pgina 4
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
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
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
HD
Imp. Matricial
Monitor
Modem Scanner
Pgina 6
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.
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.
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
P Flags
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
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
Info. Complementar
D7 D6 D5 D4 D3 D2 D1 D0 Cdigo de Operao
D7 D6 D5 D4 D3 D2 D1 D0
Info. Complementar
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").
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
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.
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
Porta de Entrada 01
5
5 16
Microprocessador
1 3 6 8 12 14
2 4 7 9 13 15
Memria de Programa
10
Contedo A
11
Memria de Dados
16
Porta de Sada 10
16
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 <- 04
RI <- 20
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
RI
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
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
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
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
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
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 1 2 3 4 5
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
1 INTEL 8085 2 3
Pgina 17
1 ZILOG Z80 2
Dispositivo Perifrico
Registrador da CPU
80
80
04
1 ___ INT 6 3
Pgina 18
PIO
DMA
Barramentos Z80 CPU Mecanismo "Daisy Chain" CTC Prioridade Fixa SIO
8274
8253
8257
8272
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
Pgina 19
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
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
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
2.1.1 Arquitetura
Unidade de Execuo AH BH CH DH SP BP SI DI AL BL CL DL
0000 CS DS SS ES
Registrador de Instruo
Pgina 22
Registradores do 8086/8088
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 .
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).
Pgina 23
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
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
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.
003FF
IP CS
00000
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
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
Pgina 26
Registradores do 80286
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
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
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;
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)
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;
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
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
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
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
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
b) Endereamento:
Pgina 30
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)
Pgina 31
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.
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.
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
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.
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.
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
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:
i486 (25)
671
20,0
33,55
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.
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
(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.
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
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)
Pipe U
Pipe V
Execuo
Execuo
Writeback
Writeback
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
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)
Execuo Writeback
Estgios do Pipe de Ponto Flutuante desacoplados Estgios Integrados dos Pipes Pipeline de Inteiros somente
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
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
Registradores MMX A figura 15 exibe o layout dos oito novos registradores MMX
Campo TAG
63
0 MM7
MM0
Pgina 40
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
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
Lgicas
3 1 1 1 1 6
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
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.
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
a3
a2
a1
FFFF
+
b3
+
b2
+
b1
+
8000
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
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
Giro e Escala
Translao
a0 b0 c0 d0
a1 b1 c1 d1
a2 b2 c2 d2
a3 b3 c3 d3
x y z 1
Perspectiva
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 Port 4 3
IFU0
IFU1
IFU2
ID0
ID1
RAT
RS
RRF
Pgina 45
Unidade de Retiro
Pool de Instrues
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
Barramento de Sistema
Cache L2
Cache de Instrues L1
Cache de Dados L1
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
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.
Pgina 48
2.5.2 Benchmarks
Pgina 49
Pgina 50
2.6 - OS PENTIUM II
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
Pgina 52
Pgina 53
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
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
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;
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
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
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).
Pgina 59
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
25 30 33
32
132
Pgina 60
PCI 64
64
264
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 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
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 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
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
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.
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
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.
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
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 AT Clssico 286 e maior Real/Protegido 16 bits ISA 16 bits 16 + NMI 8 16 MB 1.2 MB / 1.44 MB
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
EISA 4 GB 32 bits 4 GB 8/16/32 bits 33 Mbytes/s 6 Bus Masters 16/32 8.33 MHz
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
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.
Pgina 65
Pgina 66
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
0000
00000
00000000
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
CARREGADORES
Pgina 68
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.
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
Pgina 69
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
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
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
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.
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
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
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.
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
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
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 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
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.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
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.
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
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
8051 4 KB 128
8031 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
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
64 KBytes
64 KBytes
128 Bytes
RAM Interna
Registradores Internos
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.
Pgina 82
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
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
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.
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
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
Demanda de Aplicaes
10 GIPS 1,000 W ords Continuous Speech Recognition ISDN-CD Stereo Receiver CELP Speech Coding Speaker Veri cation
100 MIPS
10 MIPS
1 MIPS
1980
1985
1990
1995
Pgina 87
Pgina 88
Tendncias de Tecnologia
100
Supercomputers
0.1 1965
1970
1975
1980
1985
1990
1995
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
100
10
i8086 u
u u
uu u
i80286
i8080
uu u i8008
i4004
0.1 1970
1975
1980
1985
1990
1995
2000
2005
Pgina 89
100,000,000
u
i4004
Pgina 90
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).
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
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
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.
A seo seguinte tratar especificamente de mquinas MIMD Passagem de Mensagens, simplesmente por que estas tm merecido a ateno de pesquisadores do mundo todo.
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
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
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)
Pgina 94
Processo
Processo
Processo
Processo
Dados
Dados
Dados
Dados
Processo
Processo
Processo
Processo
Dados
Pgina 95
Pgina 96
O IBM SP-2
Power 2 CPU L2 $
Memory bus
Memory controller
Pgina 97
O INTEL PARAGON
i860 L1 $
i860 L1 $
DMA NI
Pgina 98
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
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.
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
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
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
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