Professional Documents
Culture Documents
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
Instrumento Inteligente
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
Sistema Microprocessado
Sinalizao no Barraemnto
Unidade de Execuo
Diagrama Funcional
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
Ponteiro de instrues: IP Ponteiro de pilha: SP Flags Segmento de cdigo: CS Segmento de dados: DS Segmento de pilha: SS Segmento extra: ES
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
Flags
Carry: CF Paridade: PF Carry Auxiliar: AF Zero: ZF Sinal: SF Trap: TF Interrupo: IF Direo: DF Overow: OF
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
Organizao da Memria
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
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
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
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
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
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
Nveis de Privilgio
Vericao de Privilgios
Registradores de Segmento
Flags
Ambiente de Sistema
Registradores de Controle
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
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
Utilizao da memria
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
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
Parties Fixas
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
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
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
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
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
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
Modelo Flat
Multi-segmentos
Segmentao na IA32
GDT e LDT
Segmentao na IA32
Descritor de Segmento
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
Segmentao no 8086/8088
Memria Virtual
Tabela de Pginas
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
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
Coprocessador (FPU)
Registradores e opcodes ponto utuante Na IA32 opera em notao polonesa reversa A partir do 80486DX passou a ser FPU
Registradores FPU
Controle FPU
Status FPU
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
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 . . .
80C390