Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Apostila Microprocessadores . Pdf, Notas de estudo de Microprocessadores

Este documento é referente a Microprocessadores

Tipologia: Notas de estudo

2021

Compartilhado em 07/12/2021

dulamo-matsinhe
dulamo-matsinhe 🇲🇿

2 documentos

1 / 103

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIVERSIDADE FEDERAL DO PARÁ
CENTRO TECNOLÓGICO
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
CURSO:
MICROPROCESSADORESMICROPROCESSADORES
Prof.: Marcelo Barretto Ano: 2000
Mestre em Engenharia Elétrica - PUC/RJ
Professor Adjunto IV
Especialista em Redes Locais de Computadores
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Apostila Microprocessadores . Pdf e outras Notas de estudo em PDF para Microprocessadores, somente na Docsity!

UNIVERSIDADE FEDERAL DO PARÁ

CENTRO TECNOLÓGICO

DEPARTAMENTO DE ENGENHARIA ELÉTRICA

CURSO:

MICROPROCESSADORES MICROPROCESSADORES

Prof.: Marcelo Barretto Ano: 2000

Mestre em Engenharia Elétrica - PUC/RJ

Professor Adjunto IV

Especialista em Redes Locais de Computadores



Sumário

Capítulo 1: Conceitos Básicos

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

Capítulo 2: Os Microprocessadores da INTEL

2.1. O 8086/

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

Capítulo 3: Características Gerais dos Sistemas de Barramentos

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

Capítulo 4: Suporte ao Desenvolvimento de Software Básico

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

1.1 - HISTÓRICO

A história dos microprocessadores é brevemente resumida a seguir com o destaque de algumas datas importantes:

Década de 40 : Ë Válvula e Transistor (1948)

Década de 50 : Ë Comercialização do transistor

Década de 60 : Ë Circuitos Integrados SSI ("Small Scale Integrated")

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

1.2 - CPU, MEMÓRIAS E DISPOSITIVOS DE ENTRADA/SAÍDA

Os próximos parágrafos procuram dar uma idéia da nomenclatura utilizada no restante deste documento e introduzir os componentes principais da arquitetura de microcomputadores ou de circuitos controlados a microprocessador.

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;



1.3 - SISTEMA DE BARRAMENTOS

Um sistema de barramentos é definido como um conjunto físico de linhas de sinal que possuem funções específicas dentro do sistema.

O sistema de barramentos de um microcomputador é composto de 3 barramentos (ver figura 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.

1.4 - ARQUITETURA PADRÃO DE UM MICROPROCESSADOR

Depois de se examinar um sistema de microcomputador de forma global, nesta seção será apresentada a arquitetura padrão de um microprocessador, exibida na figura 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

1.5 - EXECUÇÃO DE INSTRUÇÕES EM MICROPROCESSADORES

Nesta seção serão dadas as explicações básicas para o entendimento dos microprocessadores mais comuns do mercado.

Antes de mostrar o procedimento de execução de instruções é necessário detalhar alguns aspectos: os flags de condição, o formato das instruções e as operações básicas (de leitura e escrita) de um microprocessador.

Flags de Condição:

Um "flag" é "SETADO", forçando-se o bit de flag para "1" e é "RESETADO", forçando-se o bit de flag para "0". Quando uma instrução afeta um flag este é alterado da seguinte maneira:

ZERO : Se o resultado da instrução tem valor 0,

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

D7 D6 D5 D4 D3 D2 D1 D

D7 D6 D5 D4 D3 D2 D1 D

D7 D6 D5 D4 D3 D2 D1 D

Nas seções anteriores foram mostrados os componentes básicos de um circuito controlado a microprocessador, a arquitetura padrão dos microprocessadores e a CPU do sistema. Isto era indispensável para a compreensão do capítulo e do curso como um todo.

Ainda com o intuito de mostrar como instruções são executadas em microprocessadores, também se faz necessário explicar as operações básicas de um computador ou circuito controlado a microprocessador. Estas, são as operações de leitura de memória e escrita na memória.

Operações Básicas de um Computador:

Operação de Leitura:

  1. A memória recebe o endereço e a solicitação de leitura;
  2. A memória localiza a célula decodificando o endereço;
  3. Operação de leitura propriamente dita;
  4. Intervalo em que a memória não é acessível por razões técnicas ("Descanso").

Ciclo de Acesso à Memória: fases 1, 2 e 3

Ciclo da Memória: fases 1, 2, 3 e 4

Operação de Escrita:

  1. A memória recebe o endereço, o dado e uma solicitação de escrita;
  2. A memória localiza a célula decodificando o endereço;
  3. Operação de escrita propriamente dita;

Ex.: LXI Rp, dado 16 ; Rh <- (byte3) ; Rl <- (byte 2)



  1. ("Descanso").

Obs.: A operação de leitura é muito mais freqüente que a operação de escrita.

Ciclo de Instrução

Uma instrução é executada por um microprocessador durante um intervalo de tempo particular à instrução, chamado, CICLO DE INSTRUÇÃO. Um ciclo de instrução é composto de vários ciclos de máquina que variam de acordo com a instrução. Cada ciclo de máquina, por sua vez tem a duração de vários períodos de relógio. Em seguida, o ciclo de instrução é detalhado.

O formato da instrução em linguagem de máquina é mostrado a seguir. Com base neste formato pode-se descrever textualmente o ciclo de instrução.

Linguagem de Máquina ==>

CICLO DE INSTRUÇÃO:

1. BUSCA

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;

  1. EXECUÇÃO

a) Decodificação do código de operação;

b) Execução da instrução;

  1. VOLTA PARA FASE 1

--> Pode haver desvio:

  • Incondicional: o valor do registro de endereço de instrução é alterado;
  • Condicional: se a condição é satisfeita, a seqüência linear é interrompida.

É importante ressaltar que cada ciclo de instrução é composto por vários ciclos de máquina..

A figura 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

1.6 - ALGUMAS INSTRUÇÕES IMPORTANTES

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

RI <- LDA

Não RI <- 04 Usado

Não Usado

PC

Oper.

Fase (^) Busca Exec. Busca Exec.

Ciclo M3 Ciclo M

RI <- 20

Bar. Dados <-(0420)

Não Usado

A <-

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

RI

T 1 T 2 T 3 T 4 T 5 T 1 T 2 T 3 T 4 T 5 T 1 T 2 T 3 T 4 T 5 T 1 T 2 T 3 T 4 T 5



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"

1.7 – CAPACIDADE DE INTERRUPÇÃO

Uma das técnicas de Entrada/Saída de dados mais utilizadas na atualidade é a Interrupção. Seu uso aplica-se tanto em computadores de um modo geral, como também no ambiente de automação industrial.

INTERRUPÇÃO ( IRQ ) é um sinal de hardware enviado por um dispositivo periférico necessitando de imediata atenção da CPU. A utilização desta técnica, forçosamente, envolve sinais de hardware.

É comum em softwares de apoio tradicionais, como o Norton Utilities, 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

NOME PRIORIDADE ENDEREÇO DE SALTO (1) TIPO DE "TRIGGER"³

TRAP 1 0024H Pulso Positivo amostrado até Alto Nível RST 7.5 2 003CH Pulso Positivo "Latched" RST 6.5 3 0034H Sensível a Nível (Alto) RST 5.5 4 002CH Sensível a Nível (Alto) INTR 5 (2) Sensível a Nível (Alto)

(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

INTEL

Dispositivo

Periférico

INTR

INTA

RST nn

0038 C3 (JMP)

003A 80

Ex.: RST 7

INTR

(SP) 02

Pilha

Subrotina de Serviço de

Interrupção

Programa sendo executado

RET

Endereço Dado



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

1.8 – TÉCNICAS DE ENTRADA E SAÍDA

Z

CPU

PIO DMA

CPU

CTC SIO

(PIC)

Mecanismo

"Daisy Chain"

Prioridade Fixa

Prioridade

Controlada

Barramentos

Barramentos



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

CPU

Memória Disp. 0

CDMA

Disp. 3 Disp. 2

Barramentos

Disp. 1

Driver Óptico

Dados

DRQ

DACK

HOLD

HOLDA