




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este documento é referente a Microprocessadores
Tipologia: Notas de estudo
1 / 103
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































































Sumário
1.1 - Histórico 1.2 - CPU, Memórias e Dispositivos de Entrada/Saída 1.3 - Sistema de Barramentos 1.4 - Arquitetura Padrão de um Microprocessador 1.5 - Execução de Instruções em Microprocessadores 1.6 - Algumas Instruções Importantes 1.7 - Capacidade de Interrupção 1.8 - Técnicas de Entrada/Saída
2.1.1. Arquitetura 2.1.2. Características Gerais 2.1.3. Capacidade de Interrupção 2.2. O 80286 2.2.1. Arquitetura e Características 2.2.2. Diferenças no Conjunto de Instruções 2.2.3. Implicações no Desempenho de um Microcomputador 2.3. Os 80386 2.3.1 - Diferenças de Arquitetura e Características 2.3.2 - Diferenças no Conjunto de Instruções 2.3.3 - Versões 80386, 80386SX e 80386SL 2.3.4 - Implicações no Desempenho de um Microcomputador 2.4 - Os i 2.4.1 - Diferenças de Arquitetura e Características 2.4.2 - Diferenças na Capacidade de Processamento 2.5 - Os Pentium, Pentium MMX e PRO 2.5.1 - Diferenças de Arquitetura e Características 2.5.2 - Benchmarks 2.6 - Os Pentium II 2.6.1 - Arquitetura e Características 2.6.2 - Benchmarks 2.6.3 - Implicações no Desempenho de Desktops e Servidores de Rede 2.7 – Últimos Microprocessadores da INTEL
3.1 - Os Barramentos Principais ISA, EISA e MCA 3.2 - Os Barramentos Locais Secundários VESA e PCI 3.3 - Os Barramentos Secundários IDE e Enhanced IDE 3.4 - Os Barramentos Secundários SCSI
4.1 - Estrutura de um Programa na Memória 4.2 - Montadores, Carregadores e Depuradores 4.3 - Uso de um Depurador de Linguagem Assembly
CAPÍTULO 1: CONCEITOS BÁSICOS
A história dos microprocessadores é brevemente resumida a seguir com o destaque de algumas datas importantes:
Década de 40 : Ë Válvula e Transistor (1948)
Década de 50 : Ë Comercialização do transistor
Década de 60 : Ë Circuitos Integrados SSI ("Small Scale Integrated")
Década de 70 : Ë Circuitos Integrados MSI ("Medium Scale Integrated")
1971: => Circuitos Integrados LSI ("Large Scale Integrated") => INTEL 4004 (CPU do primeiro microcomputador de 4 bits)
1972: => INTEL 8008 (CPU do primeiro microcomputador de 8 bits)
1974: Ë INTEL 8080 (10 vezes mais rápido que o 8008) => MOTOROLA 6800
1976: => TEXAS 9800 (CPU do primeiro microcomputador de 16 bits)
1977: Ë MOSTEK 6502 ==> Apple I, II e II plus Ë ZILOG Z80 ==> TRS-
1978: => 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)
Década de 80 :
1980: => MOTOROLA 68.000 (68.000 transistores integrados) 1981: => MOTOROLA 68. 1982: => INTEL 80186/ => INTEL 80286 (130.000 transistores integrados) 1984: => MOTOROLA 68. 1985: => INTEL 80386 (ou 80386DX, ou i386) 1986: => MOTOROLA 68. 1988: => INTEL 80386SX 1989: => INTEL i486 (1.200.000 transistores)
Década de 90 :
1991: => INTEL i386SL, i486SX Microprocessadores com tecnologia RISC 1992: => INTEL i486DX2/50 e i486DX2/ 1993: => INTEL Pentium 1995: => INTEL Pentium Pro
1997: Ë INTEL Pentium II
Tendências:
Máquinas CISC ou Máquinas RISC Pentium 166 Mhz Ë Pentium II a 300 Mhz Máquina de Controle Seqüencial Ë Máquina de Controle Paralelo Máquina de Arquitetura SIMD Ë Máquina de Arquitetura MIMD ("Data-Flow") Arquiteturas orientadas p/ o HW Ë Arquiteturas orientadas p/ o SW Máquinas processando texto Ë Máquinas processando dados multimídia
Os próximos parágrafos procuram dar uma idéia da nomenclatura utilizada no restante deste documento e introduzir os componentes principais da arquitetura de microcomputadores ou de circuitos controlados a microprocessador.
HARDWARE : consiste de circuitos eletrônicos responsáveis pela execução direta de instruções em linguagem de máquina: CIs, placa impressa, cabos, fontes de alimentação, etc.
SOFTWARE : consiste de algoritmos e suas representações no computador (programas).
FIRMWARE : consiste de um software embutido em circuitos eletrônicos.
É comum dizer que qualquer operação feita por software pode também ser construída por hardware e qualquer instrução executada pelo hardware pode também ser simulada por software.
Um sistema de microcomputador típico é mostrado na figura 1. Basicamente, são três os componentes de qualquer sistema controlado por microprocessador ou mesmo de um sistema de computação: Unidade Central de Processamento (CPU), Memória e Dispositivos de Entrada/Saída (E/S).
A CPU tem finalidade óbvia, a de controlar o sistema como um todo. A memória serve para armazenar os dados que serão manipulados e os dispositivos de E/S para a comunicação da máquina com o mundo exterior (usuário).
Os vários tipos de Memória são definidos a seguir:
RAM - "Random Access Memory": memória de leitura/escrita, volátil, para armazenamento temporário de programas e dados;
RAM Estática - RAM com menor densidade e mais rápida que a RAM dinâmica. Não necessita de circuitos adicionais em um microcomputador.
RAM Dinâmica - RAM com maior densidade e mais lenta que a RAM estática. Necessita de circuitos adicionais de controle em um microcomputador.
ROM - "Read Only Memory": memória programada quando a pastilha é fabricada, não podendo ser modificada. É usada para armazenamento permanente de programas e dados;
PROM - "Programmable ROM": memória programada por um dispositivo programador de PROM. Programável uma única vez;
Um sistema de barramentos é definido como um conjunto físico de linhas de sinal que possuem funções específicas dentro do sistema.
O sistema de barramentos de um microcomputador é composto de 3 barramentos (ver figura 1) independentes em suas funções elétricas: o barramento de endereços, o barramento de dados e o barramento de controle.
O Barramento de Endereços é apenas de saída (em relação CPU) e define o caminho de comunicação dentro do sistema.
O Barramento de Dados é bidirecional, sendo o meio de comunicação entre os componentes do sistema. Na saída de dados da CPU, estes são gerados pelo microprocessador (CPU) e enviados à uma unidade que é selecionada pelo barramento de endereços. Na entrada de dados, estes são gerados por uma unidade particular e enviados ao microprocessador.
O Barramento de Controle , como o próprio nome indica, envia e recebe os sinais de controle necessários à transferência de dados no sistema. Este barramento é composto, basicamente, de 4 tipos de sinais: leitura de memória ativa, escrita de memória ativa, entrada através de dispositivo externo ativo e saída através de dispositivo externo ativo.
Depois de se examinar um sistema de microcomputador de forma global, nesta seção será apresentada a arquitetura padrão de um microprocessador, exibida na figura 2. Destacam-se os seguintes blocos:
Registrador de Instrução (RI) - registrador que armazena a instrução sendo executada;
Contador de programa ("Program Counter - PC") - registrador que armazena o endereço de memória da próxima instrução a ser executada;
Acumulador - registrador que contém o dado a ser processado;
Apontador de pilha ("Stack Pointer - SP") - registrador que aponta para o endereço de retorno de subrotina, sendo este último armazenado em uma pilha na memória;
Unidade Lógica e Aritmética (ULA) - circuito combinacional utilizado para operações lógicas e aritméticas envolvendo dois operandos;
Decodificador de instruções - circuito combinacional utilizado para determinar qual a próxima instrução a ser executada. Isto é feito a partir do código de operação armazenado previamente no Registrador de Instrução;
Unidade de controle - circuito seqüencial interno ao microprocessador utilizado para gerar os sinais de controle necessários à execução da instrução previamente decodificada;
Registradores auxiliares - conjunto de registradores de rascunho que podem ser usados em conjunto ou separadamente para operações intermediárias, sem que seja necessário o acesso sistemático à memória;
Flags – conjunto de Flip-Flops destinados a guardar as condições resultantes da execução de instruções. Tais flags são fundamentais no sentido em que se constituem no único mecanismo que o programador Assembly dispõe para desvios de processamento e implementação de algoritmos.
Figura 2 – Arquitetura Padrão de um Microprocessador
Nesta seção serão dadas as explicações básicas para o entendimento dos microprocessadores mais comuns do mercado.
Antes de mostrar o procedimento de execução de instruções é necessário detalhar alguns aspectos: os flags de condição, o formato das instruções e as operações básicas (de leitura e escrita) de um microprocessador.
Flags de Condição:
Um "flag" é "SETADO", forçando-se o bit de flag para "1" e é "RESETADO", forçando-se o bit de flag para "0". Quando uma instrução afeta um flag este é alterado da seguinte maneira:
ZERO : Se o resultado da instrução tem valor 0,
Buffer de Dados
Buffer de Endereço
Barramento de Endereços
PC
SP
Registradores de Rascunho
Acumulador
Unidade Lógica e Decodifi-cador Aritmética (ALU)
Unidade de Controle
Código de Instrução
Informação Comple- mentar
RI (^) X
Apontador de Pilha Contador de Programa
R
Rn
. . .
Barramento de Dados
Sinais de Controle
S Z CY AC P Flags
Código de Operação
Info. Complementar
Info. Complementar
Nas seções anteriores foram mostrados os componentes básicos de um circuito controlado a microprocessador, a arquitetura padrão dos microprocessadores e a CPU do sistema. Isto era indispensável para a compreensão do capítulo e do curso como um todo.
Ainda com o intuito de mostrar como instruções são executadas em microprocessadores, também se faz necessário explicar as operações básicas de um computador ou circuito controlado a microprocessador. Estas, são as operações de leitura de memória e escrita na memória.
Operações Básicas de um Computador:
Operação de Leitura:
Ciclo de Acesso à Memória: fases 1, 2 e 3
Ciclo da Memória: fases 1, 2, 3 e 4
Operação de Escrita:
Ex.: LXI Rp, dado 16 ; Rh <- (byte3) ; Rl <- (byte 2)
Obs.: A operação de leitura é muito mais freqüente que a operação de escrita.
Ciclo de Instrução
Uma instrução é executada por um microprocessador durante um intervalo de tempo particular à instrução, chamado, CICLO DE INSTRUÇÃO. Um ciclo de instrução é composto de vários ciclos de máquina que variam de acordo com a instrução. Cada ciclo de máquina, por sua vez tem a duração de vários períodos de relógio. Em seguida, o ciclo de instrução é detalhado.
O formato da instrução em linguagem de máquina é mostrado a seguir. Com base neste formato pode-se descrever textualmente o ciclo de instrução.
Linguagem de Máquina ==>
a) Envio de um endereço para a memória e execução de uma leitura;
b) Incremento do registrador de endereço de instrução;
a) Decodificação do código de operação;
b) Execução da instrução;
--> Pode haver desvio:
É importante ressaltar que cada ciclo de instrução é composto por vários ciclos de máquina..
A figura 3 procura ilustrar o procedimento de execução de um pequeno programa, passo-a-passo, já armazenado na memória e a figura 4 mostra, sob a forma de diagrama de tempo, a execução da instrução LDA 0420, com todos os seus ciclos de máquina e períodos de relógio.
Código de Operação Informação Complementar
Figura 4 – Execução da Instrução LDA 0420
Normalmente, pode-se separar as instruções de linguagem Assembly de um microprocessador em grupos. Tais grupos podem ser generalizados para a maioria dos microprocessadores com algumas pequenas diferenças. A título de exemplo, os grupos de instruções no 8085 são mostrados abaixo.
Ciclo
Busca Exec. Busca Exec.
Ciclo M1 Ciclo M
Não RI <- 04 Usado
Não Usado
Oper.
Fase (^) Busca Exec. Busca Exec.
Ciclo M3 Ciclo M
Bar. Dados <-(0420)
Não Usado
Busca do Código de Operação da Instrução e Transferência deste código para o Registrador de Instrução (RI)
Busca do primeirobyte do endereço e transferência para dentro da parte de endereço do RI, byte demenor ordem
Busca do segundobyte do endereço e transferência para dentro da parte de endereço do RI, byte demaior ordem
A parte de endereço do RI é depositada no barramento de endereços
Acumulador recebe o conteúdo da posição de memória, cujo endereço é 0420
Grupo de Transferência de Dados
Move dados entre registradores ou entre locações de memória e registradores;
Ex.: "MOVEs", "LOADs", "STOREs" e EXCHANGE;
Grupo Aritmético
"ADDs", "SUBTRACTs", "INCREMENTs" ou DECREMENTs" dados nos registradores ou na memória;
Grupo Lógico
"ANDs", "ORs", "XO Rs", "COMPAREs", "ROTATEs" ou "COMPLEMENTs" dados entre registradores ou entre locações de memória e registradores;
Grupo de Salto
"JUMPs", "CALLs" e "RETs" condicionais ou incondicionais;
Grupo de Instruções de Pilha, E/S e Controle de Máquina
Inclui instruções de manutenção de pilha, leitura escrita na/da memória, "seta" ou lê máscaras de interrupção, seta ou limpa "FLAGs"
Uma das técnicas de Entrada/Saída de dados mais utilizadas na atualidade é a Interrupção. Seu uso aplica-se tanto em computadores de um modo geral, como também no ambiente de automação industrial.
INTERRUPÇÃO ( IRQ ) é um sinal de hardware enviado por um dispositivo periférico necessitando de imediata atenção da CPU. A utilização desta técnica, forçosamente, envolve sinais de hardware.
É comum em softwares de apoio tradicionais, como o Norton Utilities, observar a distinção entre Interrupções por Hardware e por Software. Segundo nomenclatura da INTEL, a diferença básica é que na Interrupção por Hardware , o endereço de salto, para o qual o microprocessador irá desviar o processamento é predefinido pelo hardware do microprocessador, enquanto que na Interrupção por Software , este endereço de salto pode ser alterado pelo usuário programador Assembly.
Um outro conceito relacionado as interrupções também merece ser comentado. É o mascaramento de Interrupções. Existem as Interrupções Mascaráveis e as Interrupções Não Mascaráveis. Quando as Interrupções são Mascaráveis o processador tem a capacidade de não aceitar o pedido de interrupção do periférico, deixando-o pendente, de tal forma que possa atendê-lo um tempo depois. Já nas Interrupções Não Mascaráveis, o processador não pode fazer isso, sendo obrigado a atender imediatamente a solicitação de interrupção do periférico.
A fim de exemplificar estes conceitos e subsidiar as explicações sobre o mecanismo de Interrupção, é fornecida a seguir a sintaxe e a semântica de uma instrução básica para o entendimento deste mecanismo, a instrução RESTART.
Para o processador não se confundir, ao receber dois pedidos de interrupção simultâneos, é provido um mecanismo de prioridade que estabelece uma ordem no atendimento destes pedidos.
Prioridade das Interrupções no 8085
TRAP 1 0024H Pulso Positivo amostrado até Alto Nível RST 7.5 2 003CH Pulso Positivo "Latched" RST 6.5 3 0034H Sensível a Nível (Alto) RST 5.5 4 002CH Sensível a Nível (Alto) INTR 5 (2) Sensível a Nível (Alto)
(1) – O processador coloca o conteúdo do Program Counter sobre a pilha, antes de saltar para o endereço indicado
(2) - Depende da Instrução fornecida a CPU quando a Interrupção é reconhecida
A figura 5 ilustra o mecanismo de Interrupção no 8085. A figura 6 mostra o mesmo para o ZILOG Z e a figura 7 exibe os circuitos integrados típicos dos ambientes INTEL e ZILOG. É importante ressaltar a diferença entre os mecanismos de prioridade de interrupção das duas empresas.
Figura 5 – Mecanismo de Interrupção no INTEL 8085
Figura 7 – Mecanismos de Prioridade de Interrupção ZILOG e INTEL
8259 – Controlador de Prioridade de Interrupção (PIC) 8257 – Controlador de DMA Programável (PDC) 8272 – Controlador de Disco Flexível 8274 – Controlador Serial Multiprotocolo 8273 – Temporizador Programável
Além da técnica de Interrupção detalhada na seção anterior, existem duas outras técnicas, também muito utilizadas em sistemas de computação de um modo geral. São estas: "Polling" e Acesso Direto à Memória (ou DMA – “Direct Access Memory”).
" POLLING ": É uma técnica de Entrada/Saída de dados onde a CPU, explicitamente, consulta o periférico com o objetivo de saber se o mesmo possui dados para transmitir ou se está livre para os receber. Esta técnica não envolve sinais de hardware e pode ser implementada por software;
ACESSO DIRETO À MEMÓRIA : É uma técnica de Entrada/Saída de dados onde a CPU não participa do processo de transferência de dados, exceto no seu início e após o seu término. Um outro dispositivo periférico é necessário, o chamado " Controlador de DMA ", para assumir o controle dos barramentos do sistema e controlar as transferências de dados.
Na maior parte dos casos, o uso desta técnica obriga o uso combinado das anteriores para que o processo de transferência de dados seja iniciado e terminado corretamente. A figura 8 ilustra passo- a-passo o procedimento de transferência de dados para a ou da memória, sem interferência da CPU.
Figura 8 – Entrada/Saída por Acesso Direto à Memória
1 – DRQ – “Data Request”: Solicitação de Acesso Direto à Memória feito pelo dispositivo periférico ao Controlador de DMA (CDMA); 2 – HOLD – “Hold Request: Solicitação de controle de barramentos feito pelo CDMA ao processador; 3 – HLDA – “Hold Acknowledgement” – Resposta do processador ao CDMA, avisando que à partir daquele momento, este poderá assumir o controle temporário dos barramentos para a transferência de dados; 4 – DACK – “Data Acknowledgement” – Resposta do CDMA ao dispositivo periférico, avisando que assumiu o controle dos barramentos e a transferência de dados poderá se iniciar.
A programação do CDMA consiste basicamente de informar o mesmo sobre o endereço inicial do bloco de bytes a ser transferido, o sentido da transferência e o tamanho de bloco ou o endereço final. Depois que os comandos são fornecidos ao dispositivo periférico o processo continua, sem
Driver Óptico
Dados