Microprocessadores e Microcontroladores



Documentos relacionados
IA32. Walter Fetter Lages. Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica.

Arquitetura do 8086/8088

Portas lógicas e circuitos digitais. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Linguagem de Montagem

2 - Processadores. CEFET-RS Curso de Eletrônica. Organização de Computadores. Profs. Roberta Nobre & Sandro Silva

Memórias Semicondutoras

Estrutura de um Computador

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória

28/3/2011. Família Intel 80x86. Arquitetura dos Processadores Intel 80x86

Visão Geral de Sistemas Operacionais

Hardware 2. O Gabinete. Unidades Derivadas do BYTE. 1 KB = Kilobyte = 1024B = 2 10 B. 1 MB = Megabyte = 1024KB = 2 20 B

MODULO II - HARDWARE

Infraestrutura de Hardware. Memória Virtual

MODELO DE S.O. DEFINIÇÕES

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

R S Q Tabela 17 - Tabela verdade NOR

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

Bits internos e bits externos. Barramentos. Processadores Atuais. Conceitos Básicos Microprocessadores. Sumário. Introdução.


Escola. Europeia de. Ensino. Profissional ARQUITETURA DE COMPUTADORES

Portas lógicas e Circuitos. Marcos Monteiro, MBA

AULA 1. Informática Básica. Gustavo Leitão. Disciplina: Professor:

IDENTIFICAÇÃO MANUTENÇÃO

Informática Aplicada à Química. Hardware - armazenamento

Memória ROM. Organização Funcional de um. Computador. ROM (Read-Only Memory) Memória Somente Leitura.

MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL

Gerenciamento Básico B de Memória Aula 07

Sistemas Operacionais. Prof. André Y. Kusumoto

MEMÓRIAS. Sistemas Digitais II Prof. Marcelo Wendling Set/10

Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual

CIÊNCIA E TECNOLOGIA DO RIO INFORMÁTICA BÁSICA AULA 03. Docente: Éberton da Silva Marinho ebertonsm@gmail.com 25/06/2014

Gerenciamento de Memória

Arquitetura de Computadores - Revisão -

Evolução dos Processadores

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

Circuitos de Memória: Tipos e Funcionamento. Fabrício Noveletto

PROFESSOR ÉVERSON MATIAS DE MORAIS SISTEMAS OPERACIONAIS. Sistemas operacionais (so) Roteiro

Organização e Arquitetura de Computadores

Arquitetura de Computadores. Prof. João Bosco Jr.

Microprocessadores II - ELE 1084

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Disciplina: Introdução à Engenharia da Computação

Microcomputadores. Prof. Marcelo GonG. onçalves. Rubinstein

Acetatos de apoio às aulas teóricas

Introdução a Informática. Prof.: Roberto Franciscatto

Armazenar dados e programas que serão utilizados pelo processador (CPU Unidade Central de Processamento)

Programação de Sistemas

Sistemas de Computação. Dentro da Unidade do Sistema

Sistemas Operacionais

Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET

Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal. Memória principal

Introdução. Hardware (Parte II) Informações Adicionais. Universidade Federal de Campina Grande Departamento de Sistemas e Computação

ROM e RAM. Memórias 23/11/2015

No. de bits. O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).

Figura 1 - Memória 1. OBJETIVO. Conhecer os principais tipos de memórias entendendo suas funcionalidades e características.

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel

Fundamentos de Sistemas Operacionais

Sistemas Operativos I

Arquitetura de Computadores para. Sistemas Operacionais. Sistemas Operacionais. Sumário

Capítulo 12) Dispositivos de Memória

O Hardware Dentro da Unidade do Sistema

Uso de interrupções de BIOS/DOS

LABORATÓRIO DE LINGUAGEM DE MONTAGEM INTERRUPÇÕES DO DOS E DA BIOS

for Information Interchange.

ENTRADA E SAÍDA DE DADOS

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados

Universal Serial Bus USB

1. CAPÍTULO COMPUTADORES

EA075 Memória. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof.

ARQUITETURA DE COMPUTADORES

Disciplina: Introdução à Informática Profª Érica Barcelos

Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32

Organização de Computadores Como a informação é processada?

Programmable Interval Timer

Arquitetura de Computadores. Sistemas Operacionais IV

Introdução a Ciência da Computação Conceitos Básicos de Sistema PROFESSORA CINTIA CAETANO

Microprocessadores II - ELE 1084

Fundamentos em Informática

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

Informática Aplicada

Manutenção de Computadores Montagem de microcomputadores: Entendendo melhor os processadores. Professor: Francisco Ary

Capítulo 8: Gerenciamento de Memória

Informática. Aulas: 01 e 02/12. Prof. Márcio Hollweg. Visite o Portal dos Concursos Públicos

Unidade: Unidade Lógica e Aritmética e Registradores. Unidade I:

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Introdução à Engenharia de Computação

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação

HARDWARE FUNDAMENTAL. Unidade de sistema CPU Memória Primária Bus ou Barramento

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

Informática. Técnico em Agronegócio 1º. Módulo Profa. Madalena Pereira da Silva

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Memória RAM. A memória RAM evolui constantemente. Qual a diferença entre elas? No clock (velocidade de comunicação com o processador)

EEL Microprocessadores

Transcrição:

Microprocessadores e Microcontroladores Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Programa de Pós-Graduação em Engenharia Elétrica ELE00002 Sistemas de Automação Copyright (c) Walter Fetter Lages p.1

Instrumento Inteligente Copyright (c) Walter Fetter Lages p.2

Instrumento Inteligente Hardware Processador Memória Dispositivos de I/O Interfaces com sensores e/ou atuadores Software Sistema de tempo-real Comunicação (protocolos) Driver para os dispositios Registradores de configuração Blocos funcionais Copyright (c) Walter Fetter Lages p.3

Sistema Microprocessado Copyright (c) Walter Fetter Lages p.4

Sinalização no Barraemnto Copyright (c) Walter Fetter Lages p.5

Unidade de Execução 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 Específico Ponteiro de instruções: IP Ponteiro de pilha: SP Flags Segmento de código: 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 instruções do 8086/8088 são simétricas em relação 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 Interrupção: IF Direção: DF Overflow: OF Copyright (c) Walter Fetter Lages p.11

Registradores de Segmento Dependendo do tipo de acesso à memória é utilizado um registrador de segmento CS: busca de instruções DS: acesso à dados na memória SS: acesso à pilha endereçamento indireto por SP ou BP ES: destino de operações de string As instruções podem utilizar um prefixo para utilizar um segmento diferente do default Copyright (c) Walter Fetter Lages p.12

Organização da Memória A família x86 é little-endian A família 68K é big-endian Copyright (c) Walter Fetter Lages p.13

Memórias 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 Célula básica = flip-flop Alta velocidade Baixa densidade, alto custo Alto consumo DRAM Célula básica = 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 Operação Modo protegido Modo virtual 86 Emulação 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 função de economia de energia Endereçamento similar ao modo real Copyright (c) Walter Fetter Lages p.21

Níveis de Privilégio Copyright (c) Walter Fetter Lages p.22

Verificação de Privilégios Copyright (c) Walter Fetter Lages p.23

Ambiente de Execução Básico 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

Utilização da memória Alocação e desalocação de memória Estática Dinâmica Memória virtual Segmentação de memória Copyright (c) Walter Fetter Lages p.32

Sistemas Monotarefa Um único programa na memória O programa utiliza toda a memória O programa deve ter todos os drivers de I/O Divisão da memória entre o programa e o sistema operacional Copyright (c) Walter Fetter Lages p.33

Sistemas Multitarefa Partições fixas Partições definidas manualmente pelo operador Uma partição de tamanho suficiente é alocada para cada tarefa Em geral, o número de tarefas > número de partições =>diversas politicas para utilização das partições Uma fila de tarefas para cada partição Uma fila única Fila única com best-fit Fila única com best-fit e máximo de skip-over Copyright (c) Walter Fetter Lages p.34

Partições Fixas Copyright (c) Walter Fetter Lages p.35

Partições Variáveis O tamanho das partições varia conforme a criação/destruição das tarefas Fragmentação de memória Compactação de memória Consome muito tempo -> normalmente feito durante a alocação/desalocação de memória em sistemas não tempo real Espaço para a memória das tarefas crescer Alocação dinâmica de memória para dados Copyright (c) Walter Fetter Lages p.36

Lay-out de Memória das Tarefas Copyright (c) Walter Fetter Lages p.37

Relocação Em sistemas multitarefa, cada tarefa terá um endereço inicial diferente. Como o programador/compilador/linker saberá o endereço inicial (e endereços de subrotinas, dados, etc...) da tarefa? Problema da relocação Gerar apenas código com endereços relativos Código relocável Relocação durante a carga da tarefa na memória Copyright (c) Walter Fetter Lages p.38

Segmentação Associa-se a cada área de memória um valor de base e um valor de limite base=endereço inicial limite=endereço máximo ou tamanho Todas as tarefas são codificadas assumindo que a sua área de memória começa em 0 Quando a tarefa é selecionada para executar, base e limite são carregados pelo sistema operacional em registradores especiais na CPU Copyright (c) Walter Fetter Lages p.39

Segmentação Endereço físico = offset + base Soma feita por hardware a cada acesso à memória Endereços são verificados quanto ao limite Uma tarefa não pode acessar a área das outras Copyright (c) Walter Fetter Lages p.40

Exemplo 64kB de memória total Programa 1 Tamanho de 16kB Carregado no endereço físico 1000h Programa 2 Tamanho de 32kB Carregado no endereço físico 6000h Ambos acessam o endereço lógico 3000h Tabela de segmentos no endereço físico 0400h Copyright (c) Walter Fetter Lages p.41

Segmentação O seletor e descritor de segmento são controlados pelo sistema operacional O offset é controlado pelo programa de aplicação Proteção Usualmente o descritor de segmento tem algums bits associados que são utilizados para determinar as características de proteção do segmento Permissões de leitura, escrita, execução Cache de descritor de segmento Evita dois acessos a memória 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

Segmentação 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

Segmentação 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

Segmentação no 8086/8088 Processadores sem modo protegido Sem proteção, não tem sentido a existência de permissões e limite no segmento O descritor de segmento resume-se à base Como os registradores são de 16 bits decidiu-se limitar o início de segmentos apenas alinhados com "parágrafos" Segmentação mal implementada O "tamanho máximo"do segmento é 64KB O limite do segmento não é garantido Na verdade é apenas um esquema para endereçar 1MB utilizando 2 registradores Copyright (c) Walter Fetter Lages p.51

Segmentação no 8086/8088 Endereço físico=reg. de segmento * 16 + offset Endereço físico=reg. de segmento «4 + offset Copyright (c) Walter Fetter Lages p.52

Memória Virtual Paginação Falta de página Page-table Endereço Virtual Físico Copyright (c) Walter Fetter Lages p.53

Tabela de Páginas Copyright (c) Walter Fetter Lages p.54

Hardware de Paginação Usualmente a tabela de páginas é mantida em memória e não em registradores Registrador de base da tabela de páginas Translation look-aside buffer (TLB) Evita dois acessos a memória Páginas também podem ter bits de proteção associados Bit de presença/ausência Copyright (c) Walter Fetter Lages p.55

Páginas de 4MB na IA32 Copyright (c) Walter Fetter Lages p.56

Páginas de 4KB na IA32 Copyright (c) Walter Fetter Lages p.57

Segmentação e Paginação IA32 Copyright (c) Walter Fetter Lages p.58

Proteção de I/O na IA32 Existe um nível de privilégio de I/O Apenas processos com nível de privilégio menor ou igual podem executar instruções de I/O Associado a cada processo pode existir um bitmap de permissões de I/O Apenas as portas habilitadas podem ser acessadas Hardware Virtual Virtualização 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 flutuante Na IA32 opera em notação 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] # a fadd [ebp+12] # b fwait pop ebp ret Copyright (c) Walter Fetter Lages p.65

Microcontroladores Microprocessadores otimizados para aplicações de controle/automação Processador RAM ROM, EPROM, flash 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 Memória do 80C390 Copyright (c) Walter Fetter Lages p.68