Você está na página 1de 68

Microprocessadores e Microcontroladores

Walter Fetter Lages


w.fetter@ieee.org

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Eltrica Programa de Ps-Graduao em Engenharia Eltrica ELE00002 Sistemas de Automao

Copyright (c) Walter Fetter Lages p.1

Instrumento Inteligente

Copyright (c) Walter Fetter Lages p.2

Instrumento Inteligente

Hardware Processador Memria Dispositivos de I/O Interfaces com sensores e/ou atuadores Software Sistema de tempo-real Comunicao (protocolos) Driver para os dispositios Registradores de congurao Blocos funcionais

Copyright (c) Walter Fetter Lages p.3

Sistema Microprocessado

Copyright (c) Walter Fetter Lages p.4

Sinalizao no Barraemnto

Copyright (c) Walter Fetter Lages p.5

Unidade de Execuo

Copyright (c) Walter Fetter Lages p.6

Diagrama Funcional

Copyright (c) Walter Fetter Lages p.7

Registradores (8086/8088)

Registradores de 8 bits AL, AH, BL, BH, CL, CH, DL, DH Registradores de 16 bits AX=AH:AL BX=BH:BL CX=CH:CL DX=DH:DL SI, DI, BP SP IP Flags CS, DS, SS, ES

Copyright (c) Walter Fetter Lages p.8

Registradores de Uso Especco


Ponteiro de instrues: IP Ponteiro de pilha: SP Flags Segmento de cdigo: CS Segmento de dados: DS Segmento de pilha: SS Segmento extra: ES

Copyright (c) Walter Fetter Lages p.9

Personalidade dos Registradores

Quase todas as instrues do 8086/8088 so simtricas em relao aos registradores Alguns registradores possuem usos preferenciais Acumulador: AL ou AX Base: BL, BX ou BP Contador: CL ou CX Dados: DL ou DX ndice de fonte: SI ndice de destino: DI

Copyright (c) Walter Fetter Lages p.10

Flags

Carry: CF Paridade: PF Carry Auxiliar: AF Zero: ZF Sinal: SF Trap: TF Interrupo: IF Direo: DF Overow: OF

Copyright (c) Walter Fetter Lages p.11

Registradores de Segmento

Dependendo do tipo de acesso memria utilizado um registrador de segmento CS: busca de instrues DS: acesso dados na memria SS: acesso pilha endereamento indireto por SP ou BP ES: destino de operaes de string As instrues podem utilizar um prexo para utilizar um segmento diferente do default

Copyright (c) Walter Fetter Lages p.12

Organizao da Memria

A famlia x86 little-endian A famlia 68K big-endian

Copyright (c) Walter Fetter Lages p.13

Memrias
ROM Read-Only Memory ROM PROM Programmable ROM EPROM Ereasable PROM EEPROM Electrically Ereasable PROM Flash-EEPROM RAM Random Access Memory SRAM Static RAM Async SRAM Sync SRAM PB SRAM Pipelined Burst SRAM DRAM Dynamic RAM

Copyright (c) Walter Fetter Lages p.14

DRAM
DRAM Dynamic RAM DRAM F(E)PM RAM Fast (Enhanced) Page-mode RAM EDO RAM Extended Data Output RAM BEDO RAM Burst Extended Data Output RAM SDRAM Synchronous DRAM DDR SDRAM Double Data Rate SDRAM VRAM Video RAM

Copyright (c) Walter Fetter Lages p.15

SRAM x DRAM

SRAM Clula bsica = ip-op Alta velocidade Baixa densidade, alto custo Alto consumo DRAM Clula bsica = capacitor Baixa velocidade Alta densidade, baixo custo Baixo consumo Necessita refresh

Copyright (c) Walter Fetter Lages p.16

Processadores de 32 bits

80386DX, 80386SX 80486DX, 80486SX, 80486DX2, 80486DX4 Intel Pentium, Pentium-MMX Intel Pentium Pro, Pentium II, Celeron Intel Pentium III, Celeron Intel Pentium 4, Pentium 4 D, Celeron Core Duo, Centrino Intel Core 2 Duo, Core 2 Quad EMT64, x86 64 EMT64 = IA64

Copyright (c) Walter Fetter Lages p.17

Processadores de 32 bits

AMD 5x86, K5, 6x86 AMD K6, K6II, K6III AMD Athlon, Duron Athlon XP, Semprom, Turion AMD Athlon 64, Turion 64 AMD64, x86 64 AMD64 EMT64 AMD Athlon 64 X2, Turion 64 X2 AMD64, x86 64 Transmeta Cruso Cyrix 5x86, M1

Copyright (c) Walter Fetter Lages p.18

Diagrama de Blocos DX4

Copyright (c) Walter Fetter Lages p.19

Ciclo de Leitura Externa DX4

Copyright (c) Walter Fetter Lages p.20

Modos de Operao

Modo protegido Modo virtual 86 Emulao do modo real por uma tarefa de modo protegido Modo real Modo original do 8086 Modo default Modo de gerenciamento de sistema Introduzido com o 80386SL Utilizado para funo de economia de energia Endereamento similar ao modo real

Copyright (c) Walter Fetter Lages p.21

Nveis de Privilgio

Copyright (c) Walter Fetter Lages p.22

Vericao de Privilgios

Copyright (c) Walter Fetter Lages p.23

Ambiente de Execuo Bsico

Copyright (c) Walter Fetter Lages p.24

Registradores de Uso Geral

Copyright (c) Walter Fetter Lages p.25

Registradores de Segmento

Copyright (c) Walter Fetter Lages p.26

Flags

Copyright (c) Walter Fetter Lages p.27

Ambiente de Sistema

Copyright (c) Walter Fetter Lages p.28

Registradores de Controle

Copyright (c) Walter Fetter Lages p.29

Registradores de Controle
PG: Paging CD: Cache disable NW: Not write-through AM: Aligment mask WP: Write protect NE: Numeric error ET: Extension type TS: Task switched EM: Emulation MP: Monitor coprocessor PE: Protection enable

Copyright (c) Walter Fetter Lages p.30

Registradores de Controle
PCD: Page-level cache disable PWT: Page-leve write-through VME: Virtual-8086 mode extensions PVI: Protected-mode virtual interrupts TSD: Time stamp disable DE: Debugging extensions PSE: Page size extensions PAE: Physical address extension MCE: Machine-check enable PGE: Page global enale PCE: Performance-monitoring conter enable

Copyright (c) Walter Fetter Lages p.31

Utilizao da memria

Alocao e desalocao de memria Esttica Dinmica Memria virtual Segmentao de memria

Copyright (c) Walter Fetter Lages p.32

Sistemas Monotarefa

Um nico programa na memria O programa utiliza toda a memria O programa deve ter todos os drivers de I/O Diviso da memria entre o programa e o sistema operacional

Copyright (c) Walter Fetter Lages p.33

Sistemas Multitarefa

Parties xas Parties denidas manualmente pelo operador Uma partio de tamanho suciente alocada para cada tarefa Em geral, o nmero de tarefas > nmero de parties =>diversas politicas para utilizao das parties Uma la de tarefas para cada partio Uma la nica Fila nica com best-t Fila nica com best-t e mximo de skip-over

Copyright (c) Walter Fetter Lages p.34

Parties Fixas

Copyright (c) Walter Fetter Lages p.35

Parties Variveis

O tamanho das parties varia conforme a criao/destruio das tarefas Fragmentao de memria Compactao de memria Consome muito tempo -> normalmente feito durante a alocao/desalocao de memria em sistemas no tempo real Espao para a memria das tarefas crescer Alocao dinmica de memria para dados

Copyright (c) Walter Fetter Lages p.36

Lay-out de Memria das Tarefas

Copyright (c) Walter Fetter Lages p.37

Relocao

Em sistemas multitarefa, cada tarefa ter um endereo inicial diferente. Como o programador/compilador/linker saber o endereo inicial (e endereos de subrotinas, dados, etc...) da tarefa? Problema da relocao Gerar apenas cdigo com endereos relativos Cdigo relocvel Relocao durante a carga da tarefa na memria

Copyright (c) Walter Fetter Lages p.38

Segmentao

Associa-se a cada rea de memria um valor de base e um valor de limite base=endereo inicial limite=endereo mximo ou tamanho Todas as tarefas so codicadas assumindo que a sua rea de memria comea em 0 Quando a tarefa selecionada para executar, base e limite so carregados pelo sistema operacional em registradores especiais na CPU

Copyright (c) Walter Fetter Lages p.39

Segmentao

Endereo fsico = offset + base Soma feita por hardware a cada acesso memria Endereos so vericados quanto ao limite Uma tarefa no pode acessar a rea das outras

Copyright (c) Walter Fetter Lages p.40

Exemplo

64kB de memria total Programa 1 Tamanho de 16kB Carregado no endereo fsico 1000h Programa 2 Tamanho de 32kB Carregado no endereo fsico 6000h Ambos acessam o endereo lgico 3000h Tabela de segmentos no endereo fsico 0400h

Copyright (c) Walter Fetter Lages p.41

Segmentao

O seletor e descritor de segmento so controlados pelo sistema operacional O offset controlado pelo programa de aplicao Proteo Usualmente o descritor de segmento tem algums bits associados que so utilizados para determinar as caractersticas de proteo do segmento Permisses de leitura, escrita, execuo Cache de descritor de segmento Evita dois acessos a memria Alterado apenas quando o registrador de seletor de segmento alterado

Copyright (c) Walter Fetter Lages p.42

Modelo Flat

Copyright (c) Walter Fetter Lages p.43

Modelo Flat Protegido

Copyright (c) Walter Fetter Lages p.44

Multi-segmentos

Copyright (c) Walter Fetter Lages p.45

Segmentao na IA32

Local Descriptor Table (LDT) Global Descriptor Table (GDT)

Copyright (c) Walter Fetter Lages p.46

GDT e LDT

Copyright (c) Walter Fetter Lages p.47

Segmentao na IA32

Copyright (c) Walter Fetter Lages p.48

Seletor de Segmento na IA32

Copyright (c) Walter Fetter Lages p.49

Descritor de Segmento

Copyright (c) Walter Fetter Lages p.50

Segmentao no 8086/8088

Processadores sem modo protegido Sem proteo, no tem sentido a existncia de permisses e limite no segmento O descritor de segmento resume-se base Como os registradores so de 16 bits decidiu-se limitar o incio de segmentos apenas alinhados com "pargrafos" Segmentao mal implementada O "tamanho mximo"do segmento 64KB O limite do segmento no garantido Na verdade apenas um esquema para enderear 1MB utilizando 2 registradores

Copyright (c) Walter Fetter Lages p.51

Segmentao no 8086/8088

Endereo fsico=reg. de segmento * 16 + offset Endereo fsico=reg. de segmento 4 + offset

Copyright (c) Walter Fetter Lages p.52

Memria Virtual

Paginao Falta de pgina Page-table Endereo Virtual Fsico

Copyright (c) Walter Fetter Lages p.53

Tabela de Pginas

Copyright (c) Walter Fetter Lages p.54

Hardware de Paginao

Usualmente a tabela de pginas mantida em memria e no em registradores Registrador de base da tabela de pginas Translation look-aside buffer (TLB) Evita dois acessos a memria Pginas tambm podem ter bits de proteo associados Bit de presena/ausncia

Copyright (c) Walter Fetter Lages p.55

Pginas de 4MB na IA32

Copyright (c) Walter Fetter Lages p.56

Pginas de 4KB na IA32

Copyright (c) Walter Fetter Lages p.57

Segmentao e Paginao IA32

Copyright (c) Walter Fetter Lages p.58

Proteo de I/O na IA32

Existe um nvel de privilgio de I/O Apenas processos com nvel de privilgio menor ou igual podem executar instrues de I/O Associado a cada processo pode existir um bitmap de permisses de I/O Apenas as portas habilitadas podem ser acessadas Hardware Virtual Virtualizao de dispositivos

Copyright (c) Walter Fetter Lages p.59

I/O Permission Bit Map

Copyright (c) Walter Fetter Lages p.60

Coprocessador (FPU)

Registradores e opcodes ponto utuante Na IA32 opera em notao polonesa reversa A partir do 80486DX passou a ser FPU

Copyright (c) Walter Fetter Lages p.61

Registradores FPU

Copyright (c) Walter Fetter Lages p.62

Controle FPU

Copyright (c) Walter Fetter Lages p.63

Status FPU

Copyright (c) Walter Fetter Lages p.64

Exemplo FPU
.intel_syntax noprefix .text .global sum # float sum(float a,float b) sum: push ebp mov ebp,esp finit wait fld [ebp+8] fadd [ebp+12] fwait pop ebp ret

# a # b

Copyright (c) Walter Fetter Lages p.65

Microcontroladores

Microprocessadores otimizados para aplicaes de controle/automao Processador RAM ROM, EPROM, ash EEPROM Portas de I/O com latches e Tri-states Temporizadores Portas seriais Portas CAN, USB, I2C, one-wire . . .

Copyright (c) Walter Fetter Lages p.66

80C390

Copyright (c) Walter Fetter Lages p.67

Mapa de Memria do 80C390

Copyright (c) Walter Fetter Lages p.68