eel7030 – microprocessadores prof. eduardo augusto bezerra [email protected]...

143
“EEL7030 – Microprocessadores” Prof. Eduardo Augusto Bezerra [email protected] Florianópolis, março de 2010. Universidade Federal de Santa Catarina Centro Tecnológico – CTC Departamento de Engenharia Elétrica

Upload: internet

Post on 17-Apr-2015

112 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

“EEL7030 – Microprocessadores”

Prof. Eduardo Augusto Bezerra

[email protected]

Florianópolis, março de 2010.

Universidade Federal de Santa Catarina

Centro Tecnológico – CTC

Departamento de Engenharia Elétrica

Page 2: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 2/143

Links:

http://eduardo.bezerra.name/ http://www.eel.ufsc.br/hari/ http://www.eel.ufsc.br/eel7030/

Microprocessadores

Page 3: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 3/143

• Objetivos: – Conhecer a arquitetura de um microprocessador CISC– Conhecer a arquitetura de um microprocessador RISC– Descrever estudo comparativo das arquiteturas RISC e CISC– Estudar e avaliar um estudo de caso de projeto com

microprocessadores

Plano de Aula

“Microprocessadores: arquitetura CISC e RISC”

Page 4: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 4/143

Projeto e Implementação de Produtos Tecnológicos Baseados em

Circuitos Eletrônicos

Sem Projeto de Dispositivos

Com Projeto de Dispositivos

Chip SetsSistema digital dedicado, programável

(microcontroladores e/ou DSPs)

Sistemas computacionais programáveis

(e.g. PC)

Dispositivos personalizáveis

(FPGAs e CPLDs)

Dispositivos projetados

e fabricados sob encomenda ASIC

(gate-arrays ou

standard cells)

Aumento de desempenho (maior velocidade e menor potência dissipada), sigilo de projeto, custo de desenvolvimento

Diminuição da complexidade de projeto

Revisão

Page 5: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 5/143

RISC e CISC

Page 6: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 6/143

Componentes básicos de sistemas computacionais processados:

– CPU– Memória de dados e programa– Sistema de entrada/saída

Microcontroladores são computadores em um único chip

– Os periféricos estão embarcados no mesmo chip da CPU– Algumas características: tamanho e custo reduzidos, alto desempenho com baixo consumo de energia, uso eficiente de espaço no PCB, baixo clock, endereçamento bit-a-bit

Microprocessadores são computadores de propósito geral

– São necessários componentes periféricos, externos, para apoio à execução das aplicações

Microprocessadores

Page 7: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 7/143

CISC – “Complex Instruction Set Computer”

• Arquiteturas projetadas para facilitar a programação (assembly), e com acesso eficiente a memória

• Memória cara e lenta representava na época situação ideal para CISC• Exemplos de arquiteturas da época incluem o PDP-11 e o DEC system 10 e

20• Por razões semelhantes, arquiteturas de microprocessadores largamente

utilizados no passado tais como o Intel 80x86 e o Motorola 68K também seguiram a filosofia CISC

• Avanços na tecnologia de software e hardware levaram a uma reavaliação na filosofia CISC, resultando em novas arquiteturas híbridas implementando princípios RISC

• CISC foi desenvolvido para facilitar o desenvolvimento de compiladores. Por exemplo, o compilador não precisa gerar longas seqüências de instruções para calcular uma raiz quadrada, uma vez que existe no hardware das arquiteturas CISC instruções com essa funcionalidade.

Page 8: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 8/143

CISC – “Complex Instruction Set Computer”

• Restrições de projeto/tecnológicas que direcionaram o desenvolvimento da arquitetura CISC (programas em assembly e memória lenta, escassa e cara) resultaram em algumas características marcantes.

• Formato de instruções com dois operandos (fonte, destino). Instruções do tipo Registrador/Registrador, Registrador/Memória e Memória/Registrador.

• Diversos modos de endereçamento a memória, incluindo modos especiais para acesso a arrays indexados.

• Instruções de tamanho variável, de acordo com o modo de endereçamento.

• Instruções que necessitam diversos ciclos de clock.

• O Pentium é um exemplo de arquitetura CISC da atualidade.

Page 9: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 9/143

CISC – “Complex Instruction Set Computer”

• Arquiteturas CISC compartilham diversas características.

• Lógica de decodificação de instruções complexa devido a necessidade de

suporte a instruções com vários modos de endereçamento.

• Conjunto reduzido de registradores de uso geral, devido a existência de

instruções que acessam diretamente a memória.

• Área reduzida no chip para lógica de decodificação de instruções, execução e

armazenamento de microcódigo.

• Diversos registradores de uso especial – ponteiros para pilha, manipulação de

interrupções, strings, entre outros.

• Isso facilita o projeto do hardware, porém o conjunto de instruções se torna

mais complexo.

• Registrador de “condição” para armazenar o resultado da última operação

(informando se foi igual a zero, se menor ou igual a, ...).

Page 10: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 10/143

CISC – “Complex Instruction Set Computer”

Desvantagens das arquiteturas CISC• Aumento na complexidade do conjunto de instruções e hardware de novas

gerações de processadores, que incluem as gerações anteriores na forma de um subconjunto por questões de compatibilidade binária.

• Devido aos requisitos de memória, arquiteturas CISC tendem a armazenar o máximo possível de instruções, de tamanhos diferentes, evitando qualquer desperdício. Dessa forma, instruções diferentes irão necessitar de número de ciclos de clocks diferentes para execução, reduzindo a velocidade de processamento.

• Instruções “especializadas” não são executadas com frequência suficiente para justificar sua existência. Apenas 20% do total de instruções são utilizadas em um programa.

• A atualização dos flags de condição realizada por diversas instruções representa custo de processamento, e o programador precisa lembrar de verificar esses flags antes que a próxima instrução seja os altere.

Page 11: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 11/143

RISC – “Reduced Instruction Set Computer”

• Processadores RISC possuem um número reduzido de instruções, e

altamente otimizadas

• Primeiros projetos RISC foram desenvolvidos pela IBM (IBM 801),

Stanford (MIPS) e Berkeley (RISC 1 e 2) no final dos anos 70 e início

dos anos 80.

• Uma instrução por ciclo: processadores RISC possuem CPI = 1, devido

a otimização das instruções na CPU e também pelo uso de pipeline.

• Pipeline: técnica que possibilita a execução em paralelo de parte (ou

estágios) das instruções.

• Aumento na quantidade de registradores: utilizados, por exemplo, para

evitar acessos seguidos a memória.

Page 12: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 12/143

RISC

Page 13: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 13/143

RISC – “Reduced Instruction Set Computer”

Processadores CISC:

• Número considerável de instruções

• Instruções complexas e eficientes

• Diversos modos de endereçamento para operações na memória

• Poucos registradores

Processadores RISC possuem características opostas:

• Quantidade reduzida de instruções

• Instruções simples, menos complexas

• Poucas opções de endereçamento a memória, basicamente por meio

de instruções LOAD e STORE

• Quantidade considerável de registradores simétricos, organizados em

uma tabela de registradores

Page 14: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 14/143

RISC – “Reduced Instruction Set Computer”

Desvantagens do RISC:

• Comunidade RISC defende que a arquitetura é rápida e econômica,

sendo a escolha ideal para os computadores do futuro

• Porém, ao simplificar o hardware, arquiteturas RISC transferem uma

grande responsabilidade para o software

• Com os avanços tecnológicos, arquiteturas não RISC acabam se

tornado também rápidas e econômicas, vale a pena o esforço a nível

de software imposto pelas arquiteturas RISC?

Page 15: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 15/143

• Implementações CISC e RISC vem se tornando cada vez mais similares

• Arquiteturas RISC da atualidade possuem um número de instruções

equivalente as arquiteturas CISC de gerações anteriores

• Com o aumento da velocidade da tecnologia atual, arquiteturas CISC passaram

a executar mais de uma instrução por ciclo, utilizando pipeline

• Com o aumento da densidade de transistores em um chip, arquiteturas RISC

passaram a incorporar instruções mais complexas, semelhantes as CISC

• Com esses avanços tecnológicos, CISC e RISC passaram a possuir diversas

similaridades, e a distinção entre as mesmas deixa de ser tão relevante

• Porém, apesar do aumento no conjunto de instruções, RISC continua

utilizando instruções de um ciclo, com um grande número de registradores.

Além disso, continua utilizando apenas instruções LOAD/STORE para acesso

a memória.

CISC e RISC

Page 16: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 16/143

CISC RISC

Ênfase no hardware Ênfase no software

Instruções complexasmulti-ciclo

Instruções simplesde um ciclo (pipeline)

Memória para memória:"LOAD" e "STORE"incorporados nas

instruções

Registrador para registrador:"LOAD" e "STORE"

são instruções independentes

Binários (executáveis) reduzidos, alta taxa de

ciclos por segundo

Binários (executáveis) longos, baixa taxa de ciclos por

segundo

Transistores usados para armazenar instruções

complexas

Transistores utilizados na implementação de

registradores

CISC e RISC

Page 17: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 17/143

Equação de desempenho:

Tempo de CPU =segundos

programa

instruções

programa

ciclos

instrução

segundos

ciclo= x x

CISC e RISC

Page 18: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 18/143

instrução

Equação de desempenho:

Tempo de CPU =segundos

programa

instruções

programa

ciclos segundos

ciclo= x x

• Arquitetura RISC diminui tempo de execução ao reduzir o número de

ciclos por instrução (instruções simples são decodificadas mais

rapidamente)

CISC e RISC

Page 19: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 19/143

programa

Equação de desempenho:

Tempo de CPU =segundos

programa

instruções ciclos

instrução

segundos

ciclo= x x

• Arquitetura RISC diminui tempo de execução ao reduzir o número de

ciclos por instrução (instruções simples são decodificadas mais

rapidamente)

• Arquitetura CISC diminui tempo de execução ao reduzir o número de

instruções em um programa

CISC e RISC

Page 20: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 20/143

CISC

mov ax, 10

mov bx, 5

mul bx, ax

RISC

mov ax, 0

mov bx, 10

mov cx, 5

add ax, bx

loop Inicio

Inicio:

CISC:

(2 movs x 1 ciclo) + (1 mul x 30 ciclos) = 32 ciclos

RISC:

(3 movs x 1 ciclo) + (5 adds x 1 ciclo) + (5 loops x 1 ciclo) = 13 ciclos

CISC e RISC

Page 21: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 21/143

• Arquitetura Intel IA32 – CISC de sucesso

• Alto volume de fabricação de chips

• Compatibilidade binária com enorme quantidade de

software legado padrão IBM-PC

• Conversão interna CISC para RISC – aumenta eficiência

do pipeline

• Escala suficiente para suportar todo o hardware extra

CISC e RISC

Page 22: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 22/143Milhões

Comparação entre CISC (Alpha) e RISC (Pentium Pro) no SPEC

•Pentium Pro converte instruções CISC para RISC, on the fly, gerando uops.

•Para esse tipo de conversão em hardware, e “por instrução”, espera-se um número maior de uops do que o gerado por um compilador.

•Para benchmarks de inteiros e para o spice (menor conteúdo de FP), o número de uops é próximo ao de instruções RISC.

•Em benchmarks FP, RISC gera menos instruções, exceto para ora onde Alpha precisa de diversas instruções para calcular SQRT.

CISC e RISC

Page 23: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 23/143

Arquitetura ideal?

• Soluções híbridas– Core RISC com interface CISC

• ISA desejado– Meio termo entre RISC e CISC– Poucas instruções complexas, cuidadosamente

escolhidas e úteis

CISC e RISC

Page 24: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 24/143

CISC: Pentium Pro - Arquitetura IA32

Page 25: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 25/143

CISC: Pentium Pro

• Diversas instruções complexas, com tamanhos variando de 1 a 15 bytes

• Necessidade de recursos consideráveis de hardware para implementação da lógica de decodificação e execução de instruções

• Uma única instrução pode realizar uma ou mais leituras/escritas na memória e uma ou mais operações na ULA

• Desafio para execução de mais de uma instrução por ciclo em um hardware super-escalar

Page 26: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 26/143

CISC: Pentium Pro

• Instruções CISC obtidas da memória (geradas por compilador) são colocadas nas caches L2 e L1 – instruções possuem tamanhos variados

• Arquitetura realiza tradução das instruções CISC contidas em L1, decodificando e transformando em instruções RISC de tamanho fixo (micro-operações ou uOPs)

• As uOPs são colocadas em reservatório com capacidade para armazenar 40 instruções, onde aguardam para entrar no fluxo de execução

• Quando os operandos necessários por uma determinada instrução estiverem disponíveis, e quando a unidade de execução a ser utilizada estiver livre, a instrução é retirada do reservatório e executada – EXECUÇÃO FORA DE ORDEM

• Após execução da uOP, os resultados são escritos nos registradores, na ordem original do fluxo do programa

• Esse processo é descrito a seguir, onde estágios 1 a 14 são operações do reservatório de uOPs, e do estágio 15 em diante uOPs são executadas

Page 27: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 27/143

CISC: IA32

TC Nxt IP: “Trace Cache Next Instruction Pointer”Ponteiro do Branch Target Buffer indica a localização

da próxima uOP (já transformada p/ RISC)

Page 28: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 28/143

CISC: IA32

TC Fetch: “Trace Cache Fetch”Realiza leitura da uOP RISC na Execution Trace

Cache

Page 29: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 29/143

CISC: IA32

Drive: “Atraso nos barramentos”Direciona as uOPs para a unidade de alocação

Page 30: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 30/143

CISC: IA32

Alloc: “Allocate”Alocação de recursos necessários para execução da uOP como, por exemplo, buffers para load/store, entre outros

Page 31: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 31/143

CISC: IA32

Rename: “Register renaming”Renomeia os registradores locais (EAX, ...)

associando aos registradores de trabalho existentes no hardware (128 no total)

Page 32: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 32/143

CISC: IA32

Que: “Write into the uOP Queue”As uOPs são colocadas nas filas, onde permanecem

até que os escalonadores estejam disponíveis

Page 33: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 33/143

CISC: IA32

Sch: “Schedule”Escrita nos escalonadores e verificação de dependências.

Procura dependências a serem resolvidas

Page 34: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 34/143

CISC: IA32

Disp: “Dispatch”Envio das uOPs para a unidade de execução

apropriada

Page 35: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 35/143

CISC: IA32

RF: “Register File”Leitura dos registradores, que contém os operandos das operações pendentes (operandos das ULAs, ...)

Page 36: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 36/143

CISC: IA32

Ex: “Execute”Executa as uOPs na unidade apropriada (recurso

alocado)

Page 37: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 37/143

CISC: IA32

Flgs: “Flags”Cálculo dos flags (zero, negativo, ...).

Flags normalmente servem de entrada para instruções de desvio.

Page 38: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 38/143

CISC: IA32

Br Ck: “Branch Check”Esse estágio compara o resultado obtido (calculado)

para uma operação de desvio, com a predição realizada originalmente

Page 39: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 39/143

CISC: IA32

Drive: “Atraso no barramento”Resultado da verificação do desvio (erro ou acerto na

predição) é informado para o início do processo

Page 40: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 40/143

CISC: IA32

Page 41: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 41/143

MIPS: arquitetura interna

Page 42: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 42/143

MIPS – arquitetura interna

• Instruções simples, todas de 32 bits• Bastante estruturada, sem componentes desnecessários• Apenas três formatos de instrução

• Depende dos compiladores para alcançar desempenho• Auxílio ao compilador sempre que possível

op rs rt rd shamt funct

op rs rt 16 bit address

op 26 bit address

R

I

J

Page 43: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 43/143

MIPS – arquitetura interna

• Instruções:bne $t4,$t5,Label

beq $t4,$t5,Label

j Label

• Formatos:

• Endereços de desvio não são de 32 bits

op rs rt 16 bit address

op 26 bit address

I

J

Page 44: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 44/143

MIPS – arquitetura internaMIPS operands

Name Example Comments$s0-$s7, $t0-$t9, $zero, Fast locations for data. In MIPS, data must be in registers to perform

32 registers $a0-$a3, $v0-$v1, $gp, arithmetic. MIPS register $zero always equals 0. Register $at is $fp, $sp, $ra, $at reserved for the assembler to handle large constants.

Memory[0], Accessed only by data transfer instructions. MIPS uses byte addresses, so

230 memory Memory[4], ..., sequential words differ by 4. Memory holds data structures, such as arrays,

words Memory[4294967292] and spilled registers, such as those saved on procedure calls.

MIPS assembly language

Category Instruction Example Meaning Commentsadd add $s1, $s2, $s3 $s1 = $s2 + $s3 Three operands; data in registers

Arithmetic subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three operands; data in registers

add immediate addi $s1, $s2, 100 $s1 = $s2 + 100 Used to add constants

load word lw $s1, 100($s2) $s1 = Memory[$s2 + 100] Word from memory to register

store word sw $s1, 100($s2) Memory[$s2 + 100] = $s1 Word from register to memory

Data transfer load byte lb $s1, 100($s2) $s1 = Memory[$s2 + 100] Byte from memory to register

store byte sb $s1, 100($s2) Memory[$s2 + 100] = $s1 Byte from register to memory

load upper immediate lui $s1, 100 $s1 = 100 * 216 Loads constant in upper 16 bits

branch on equal beq $s1, $s2, 25 if ($s1 == $s2) go to PC + 4 + 100

Equal test; PC-relative branch

Conditional

branch on not equal bne $s1, $s2, 25 if ($s1 != $s2) go to PC + 4 + 100

Not equal test; PC-relative

branch set on less than slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = 0

Compare less than; for beq, bne

set less than immediate

slti $s1, $s2, 100 if ($s2 < 100) $s1 = 1; else $s1 = 0

Compare less than constant

jump j 2500 go to 10000 Jump to target address

Uncondi- jump register jr $ra go to $ra For switch, procedure return

tional jump jump and link jal 2500 $ra = PC + 4; go to 10000 For procedure call

Page 45: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 45/143

MIPS – Bloco de dados (data path)

Can you find a problem even if there are no dependencies? What instructions can we execute to manifest the problem?

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Inst

ruct

ion

IF/ID EX/MEM MEM/WB

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

1

ALUresult

Mux

ALUZero

ID/EX

Datamemory

Address

Page 46: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 46/143

MIPS – Forwarding e Hazard Detection Unit

Unidade de detecção de hazard: parada no pipeline, deixando um nop prosseguir

PCInstruction

memory

Registers

Mux

Mux

Mux

Control

ALU

EX

M

WB

M

WB

WB

ID/EX

EX/MEM

MEM/WB

Datamemory

Mux

Hazarddetection

unit

Forwardingunit

0

Mux

IF/ID

Inst

ruct

ion

ID/EX.MemReadIF

/ID

Wri

te

PC

Wri

te

ID/EX.RegisterRt

IF/ID.RegisterRd

IF/ID.RegisterRt

IF/ID.RegisterRt

IF/ID.RegisterRs

Rt

Rs

Rd

Rt EX/MEM.RegisterRd

MEM/WB.RegisterRd

Page 47: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 47/143

MIPS - Flush

PC Instructionmemory

4

Registers

Mux

Mux

Mux

ALU

EX

M

WB

M

WB

WB

ID/EX

0

EX/MEM

MEM/WB

Datamemory

Mux

Hazarddetection

unit

Forwardingunit

IF.Flush

IF/ID

Signextend

Control

Mux

=

Shiftleft 2

Mux

Page 48: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 48/143

PIC: arquitetura interna

Page 49: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 49/143

• Fabricante Microchip

• Arquitetura Harvard

• RISC

• Série 16 possui 35 instruções

• Barramento de dados

separados para memória de

dados e memória de programa.

PIC – arquitetura interna

Page 50: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 50/143

PIC – arquitetura interna

– Conversor A/D– Serial assíncrona– Serial síncrona– Timers– Memória de dados– Portas (I/O)

– Pilha para chamada de sub-rotinas

– Memória de programa

Page 51: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 51/143

PIC – arquitetura interna

– PC de 13 bits

– 4 bancos, cada um com SFR e GPR próprios

– Max 8 calls aninhados

• SFR x GPR

• RAM: 0x0C a 0x4F– 68 registradores (GPR)

– Dados

– Programa• 0x0000 a 0x1FFF• 1k x 14bits

• EEPROM: 0x00 a 0x3F– 64 bytes

Page 52: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 52/143

Apenas 35 instruções

PIC – arquitetura interna

Page 53: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 53/143

AVR: arquitetura interna

Page 54: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 54/143

AVR – arquitetura interna

• Microcontrolador RISC

• Arquitetura Harvard

• Licença Atmel (http://www.atmel.com)

• Projetado para atender aplicações específicas

• Operação com consumo bastante reduzido de energia

• 118 instruções

• Uma instrução por ciclo para maioria das instruções (pipeline)

• Operações registrador-registrador

• Projetado para implementar soluções “single chip”

Page 55: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 55/143

• Core RISC com ~100 instruções

• Velocidades de clock modestas (4-16 MHz)

• Barramento de 8 bits e 32 registradores de uso geral de 8 bits

• Flash programável in-circuit (~1000 ciclos)

• Pequena quantidade de EEPROM e SRAM

• Diversos periféricos embarcados (UART, SPI, ADC, PWM, WDT)

AVR – arquitetura interna

Page 56: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 56/143

MemóriaFlash Memory 128 kBEEPROM Data Memory 4096 BSRAM Data Memory 4096 BGeneral Purpose Registers (Accumulators) 32

External data memory interface (64kB) SimMCUClock Frequency 0 - 16 MHzSupply Voltage 4.5 - 5.5 VSleep Modes 6Hardware Multiplier SimI/O Pins 53On Chip Oscillator SimInterrupts 34Interrupts, External pins 8Brown-out Detection SimPower-on Reset SimFully Static Operation SimOn-Chip Debug support via JTAG port SimIEEE 1149.1 (JTAG) Boundary Scan Sim

AVR – arquitetura interna

Page 57: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 57/143

Temporizadores / ContadoresTimer/Counters (8-bit) 2Watchdog Timer with On-chip Oscillator SimReal Time Counter SimTimer/Counters (16-bit) 2Pulse Width Modulator 6+2 chEntrada / saída analógicaAnalog Comparator SimAnalog-to-Digital Converter (10-bit) 8 chAnalog Gain Stage 2 chModos de programaçãoIn-System Programming via SPI Port SimHigh Voltage Parallel Programming (12V) Sim

Self-Programming via on-chip Boot Program SimIn-System Programming via JTAG port SimEntrada / saída serialFull Duplex Serial Peripheral Interface (SPI) Sim2-wire Serial Interface (I2C compatible) SimFull Duplex USART 2

AVR – arquitetura interna

Page 58: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 58/143

AVR ATMega 128 – arquitetura interna

Page 59: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 59/143

Pinagem:

• pinos compartilhados

• uso de latches e mux

AVR ATMega 128 – arquitetura interna

Page 60: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 60/143

Registradores:

•32 registradores de 32 bits (r0 a r31)

•Os seis primeiros (r0 .. r5) podem ser utilizados como três registradores de índice de 16 bits (x, y e z)

AVR ATMega 128 – arquitetura interna

Page 61: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 61/143

Organização da memória:

• Espaços de endereçamento separado para programas e dados.

• Endereçamento até 8 Mbytes

AVR ATMega 128 – arquitetura interna

Page 62: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 62/143

Próxima aula

– Arquitetura de um microcontrolador genérico– Arquitetura de famílias de microcontroladores largamente

utilizados– Aplicações de microcontroladores– Estudo de caso de projeto com microcontroladores– Limitações para o uso de microcontroladores em projetos de

sistemas digitais

“Microcontroladores: arquitetura interna, aplicações e limitações”

Page 63: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 63/143

Microcontroladores

Page 64: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 64/143

Componentes básicos de sistemas computacionais processados:

– CPU– Memória de dados e programa– Sistema de entrada/saída

Microprocessadores são computadores de propósito geral

– São necessários componentes periféricos, externos, para apoio à execução das aplicações

Microcontroladores são computadores em um único chip

– Os periféricos estão embarcados no mesmo chip da CPU– Algumas características, tamanho e custo reduzidos, alto desempenho com baixo consumo de energia, uso eficiente de espaço no PCB, baixo clock, endereçamento bit-a-bit

Microcontroladores

Page 65: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 65/143

Componentes básicos de sistemas embarcados:

– CPU– Memória de dados e programa– Sistema de entrada/saída

Memória Cache

Memória

Microcontroladores

Page 66: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 66/143

Microcontroladores são computadores em um único chip

– Os periféricos estão embarcados no mesmo chip da CPU– Algumas características, tamanho e custo reduzidos, alto desempenho com baixo consumo de energia, uso eficiente de espaço no PCB, baixo clock, endereçamento bit-a-bit

MemóriaMemória

ConversorA/D

ConversorD/A

MICROCONTROLADOR

Microcontroladores

Page 67: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 67/143

ConversorA/D

ConversorD/A

Sensores Atuadores

Memória

Interface humana

Ferramentas

diagnósitcoSistemas auxiliares power, ...

Ambiente externo

Eletromecânicos(by-pass e segurança)

MICROCONTROLADOR

Microcontroladores

Page 68: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 68/143

- Memória de Dados e Programa; Portas de Entrada e Saída (I/O); Temporizadores (Timers); EEPROM; Conversores AD/DA; USB.

Microcontroladores

MCU – Microcontroller UnitComposta por CPU e periféricos no mesmo encapsulamento

Page 69: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 69/143

– Registradores– RAM– Flash– EEPROM– Portas digitais– Portas Analógicas– Timers– Gerador de relógio– DMA

Microcontroladores

I/O

Periféricos

CPU Memória

MCU – Microcontroller UnitComposta por CPU e periféricos no mesmo encapsulamento

Page 70: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 70/143

Microcontroladores

Fluxo de dados

Page 71: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 71/143

Diversidade de fabricantes e modelos

– LINHA PIC (Microchip)– LINHA AVR (Atmel)– LINHA 8051 (Philips, Dallas, Intel,

Cygnal, Texas, TDK, Siemens ... )– Z8 Encore (Zilog)– HC08 (Motorola)– ...

Escolha do dispositivo

– Capacidade de processamento• 8 bits, 16 bits, 32 bits• Clock, 4MHz, 40Mhz, ...

– Periféricos necessários– Capacidade de memória

• Programa• Dados

– Outros fatores• Ferramentas disponíveis• Formato físico• Continuidade / Reaproveitamento

de projeto

Microcontroladores

Page 72: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 72/143

8051: arquitetura interna

Page 73: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 73/143

Características do 8051:

• 111 Instruções:- 1 ciclo → 64 → 58%- 2 ciclos → 45 → 40%- 4 ciclos → 2 → 2%- 1 byte → 49 → 44%- 2 bytes → 46 → 41%- 3 bytes → 16 → 15%

• 98% de 1 ou 2 ciclos → velocidade

• 85% de 1 ou 2 bytes → compacto

8051 – arquitetura interna

- 1 ciclo → 64 → 58%- 2 ciclos → 45 → 40%

- 1 byte → 49 → 44%- 2 bytes → 46 → 41%

Page 74: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 74/143

8051 – arquitetura interna

• 5 Interrupções (2 externas, 2 dos timers/counters e 1 da porta serial)

Page 75: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 75/143

4 KB de ROM interna ativada pelo pino EA (External Access Enable):

→ se EA=0 → 64 KB de programa externo→ se EA=1 → 4 KB de ROM interna e 60 KB de programa externo

8051 – arquitetura interna

Arquitetura Harvard- 64 KB de Memória de Programa (PC=16 bits)- 64 KB de Memória de Dados

Page 76: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 76/143

RAM interna

8051 – arquitetura interna

Page 77: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 77/143

Bancos de registradores para salvamento de contexto (ex. interrupções).

Troca de contexto executando apenas uma instrução.

Exemplo de uso dos bancos:

BK3 → interrupção porta serialBK2 → interrupção INT1BK1 → interrupção INT0BK0 → trabalho

8051 – arquitetura interna

Page 78: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 78/143

RAM interna com 256 bytes com nomes simbólicos para acesso direto

128 bytes (dos 256) reservados para Registros de Funções Especiais (SFR).

8051 possui conjunto mínimo, outros ‘51 podem possuir mais SFRs

8051 – arquitetura interna

Page 79: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 79/143

Mapa da RAM interna

8051 – arquitetura interna

Page 80: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 80/143

Bit de uma das portas paralelas

8051 – arquitetura interna

Page 81: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 81/143

Família 8051

Chip 8051

Memória

Saída porta paralela (LEDs)

Entrada porta paralela e INT

Comunicação serial

Single step

Cristal clock

externo

Reset

Page 82: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 82/143

EA ES ET1 EX1 EX0

External interrupt 0 enablebitTimer 0 interrupt enablebit

ET0

Serial interface interrupt enablebit

sable all interrupts

IE - Interrupt Enable Register - Bit Addressable

07 123456

External interrupt 1 enablebitTimer 1 interrupt enable

A8H

Fontes de Interrupção

Page 83: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 83/143

EA ES ET1 EX1 EX0

External interrupt 0 enable bit Timer 0 interrupt enable bit

ET0

Serial interface interrupt enable bit

Disable all interrupts

IE - Interrupt Enable Register - Bit Addressable

0 7 1 2 3 4 5 6

External interrupt 1 enable bit Timer 1 interrupt enable

A8H

Fontes de Interrupção

MOV IE,#10000101B; habilita INT0 E INT1

Page 84: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 84/143

As interrupcões externas INT0 e INT1 podem ser ativadas por nível ou borda.

Depende dos bits IT0 e IT1 do registrador TCON.

Os flags que identificam ocorrência destas interrupcões externas são os flags IE0 e IE1 de TCON.

Interrupções Externas

Page 85: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 85/143

Temporizadores / Contadores Registradores

LSBMSB

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 88H

TCON

IEx - External Interrupt flag. Setado pelo hardware quando interrupção detectada. Apagada pelo software qdo salta para o tratador int.

ITx - Interrupt control bit. 1 => borda de descida 0 => nível lógico baixo

Page 86: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 86/143

Temporizadores / Contadores Registradores

LSBMSB

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 88H

TCON

MOV A,TCONORL A,#00000101B; habilita INTs por bordaMOV TCON,A

Page 87: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 87/143

Interrupções

PS PT1 PX1 PX0

External interrupt 0 prioritybitTimer 0 interrupt prioritybit

PT0

Serial interface

IP - Interrupt Priority Register - BitAddressable 07 123456

External interrupt 1 prioritybitTimer 1 interrupt priority

B8H

interrupt priority bit

Page 88: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 88/143

Interrupções

PS PT1 PX1 PX0

External interrupt 0 prioritybitTimer 0 interrupt prioritybit

PT0

Serial interface

IP - Interrupt Priority Register - BitAddressable 07 123456

External interrupt 1 prioritybitTimer 1 interrupt priority

B8H

interrupt priority bit

MOV IP,#00000100B; prioridade INT1 superior às demais

Page 89: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 89/143

Faça um programa que aceite int0 (acionada por borda). Qdo a int0 for solicitada, escrever na porta P1, caractere por caractere, a cadeia de 16 caracteres: ‘Microcontrolador’.

Page 90: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 90/143

reset equ 00hltint0 equ 03h ; local tratadorstate equ 20h

org reset ;PC=0 depois de reset jmp inicio

org ltint0 jmp handler

inicio: mov ie,#10000001b ; habilita int mov tcon,#00000001b ; borda

mov state,#0h ;inicialização mov r0,# state mov dptr,#tabela mov r1,#0

volta: cjne @r0,#1,voltamov state,#0h

mov a,r1 movc a,@a+dptr mov p1,a inc r1

cjne r1,#16,volta jmp $

handler: mov state,#1h reti

tabela: db 'Microcontrolador' end

Page 91: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 91/143

PIC: arquitetura interna

Page 92: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 92/143

• Fabricante Microchip

• Arquitetura Harvard

• RISC

• Série 16 possui 35 instruções

• Barramento de dados

separados para memória de

dados e memória de programa.

PIC – arquitetura interna

Page 93: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 93/143

PIC – arquitetura interna

– Conversor A/D– Serial assíncrona– Serial síncrona– Timers– Memória de dados– Portas (I/O)

– Pilha para chamada de sub-rotinas

– Memória de programa

Page 94: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 94/143

PIC – arquitetura interna

– PC de 13 bits

– 4 bancos, cada um com SFR e GPR próprios

– Max 8 calls aninhados

• SFR x GPR

• RAM: 0x0C a 0x4F– 68 registradores (GPR)

– Dados

– Programa• 0x0000 a 0x1FFF• 1k x 14bits

• EEPROM: 0x00 a 0x3F– 64 bytes

Page 95: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 95/143

Apenas 35 instruções

PIC – arquitetura interna

Page 96: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 96/143

AVR: arquitetura interna

Page 97: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 97/143

AVR – arquitetura interna

• Microcontrolador RISC

• Arquitetura Harvard

• Licença Atmel (http://www.atmel.com)

• Projetado para atender aplicações específicas

• Operação com consumo bastante reduzido de energia

• 118 instruções

• Uma instrução por ciclo para maioria das instruções (pipeline)

• Operações registrador-registrador

• Projetado para implementar soluções “single chip”

Page 98: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 98/143

• Core RISC com ~100 instruções

• Velocidades de clock modestas (4-16 MHz)

• Barramento de 8 bits e 32 registradores de uso geral de 8 bits

• Flash programável in-circuit (~1000 ciclos)

• Pequena quantidade de EEPROM e SRAM

• Diversos periféricos embarcados (UART, SPI, ADC, PWM, WDT)

AVR – arquitetura interna

Page 99: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 99/143

MemóriaFlash Memory 128 kBEEPROM Data Memory 4096 BSRAM Data Memory 4096 BGeneral Purpose Registers (Accumulators) 32

External data memory interface (64kB) SimMCUClock Frequency 0 - 16 MHzSupply Voltage 4.5 - 5.5 VSleep Modes 6Hardware Multiplier SimI/O Pins 53On Chip Oscillator SimInterrupts 34Interrupts, External pins 8Brown-out Detection SimPower-on Reset SimFully Static Operation SimOn-Chip Debug support via JTAG port SimIEEE 1149.1 (JTAG) Boundary Scan Sim

AVR – arquitetura interna

Page 100: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 100/143

Temporizadores / ContadoresTimer/Counters (8-bit) 2Watchdog Timer with On-chip Oscillator SimReal Time Counter SimTimer/Counters (16-bit) 2Pulse Width Modulator 6+2 chEntrada / saída analógicaAnalog Comparator SimAnalog-to-Digital Converter (10-bit) 8 chAnalog Gain Stage 2 chModos de programaçãoIn-System Programming via SPI Port SimHigh Voltage Parallel Programming (12V) Sim

Self-Programming via on-chip Boot Program SimIn-System Programming via JTAG port SimEntrada / saída serialFull Duplex Serial Peripheral Interface (SPI) Sim2-wire Serial Interface (I2C compatible) SimFull Duplex USART 2

AVR – arquitetura interna

Page 101: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 101/143

AVR ATMega 128 – arquitetura interna

Page 102: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 102/143

Pinagem:

• pinos compartilhados

• uso de latches e mux

AVR ATMega 128 – arquitetura interna

Page 103: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 103/143

Registradores:

•32 registradores de 32 bits (r0 a r31)

•Os seis primeiros (r0 .. r5) podem ser utilizados como três registradores de índice de 16 bits (x, y e z)

AVR ATMega 128 – arquitetura interna

Page 104: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 104/143

Organização da memória:

• Espaços de endereçamento separado para programas e dados.

• Endereçamento até 8 Mbytes

AVR ATMega 128 – arquitetura interna

Page 105: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 105/143

Microcontroladores: aplicações

Page 106: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 106/143

FPGA: aplicações

Page 107: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 107/143

Microcontroladores: aplicações

Page 108: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 108/143

Microcontroladores: aplicações

Page 109: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 109/143

Microcontroladores: aplicações

Page 110: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 110/143

Microcontroladores: aplicações

• Embarcados em:– Sistemas automotivos– Aviônicos– Brinquedos– Dispositivos médicos– Eletrodomésticos

• Bilhões de unidades

Page 111: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 111/143

• Produtos de uso pessoal: Celulares, pagers, relógios,

gravadores portáteis, calculadoras, câmeras fotográficas

• Laptops: mouse, teclado, modem, fax, placa de som,

carregador de bateria

• Domótica: tranca eletromagnética, despertador, termostato,

ar condicionado, controle remoto de TV, secador de cabelo,

aparelho de DVD, geladeira, lavadora de roupa/louça, forno

de microondas

Microcontroladores: aplicações

Page 112: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 112/143

Microcontroladores: aplicações

Page 113: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 113/143

Microcontroladores: aplicações

Espátula eletrônica

Page 114: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 114/143

Microcontroladores: aplicações

Espátula eletrônica

Page 115: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 115/143

Microcontroladores: aplicações

Page 116: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 116/143

Microcontroladores: aplicações

Page 117: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 117/143

Microcontroladores: aplicações

Page 118: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 118/143

Microcontroladores: aplicações

Page 119: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 119/143

Microcontroladores: aplicações

Page 120: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 120/143

Microcontroladores: aplicações

Page 121: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 121/143

Microcontroladores: aplicações

Page 122: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 122/143

Microcontroladores: aplicações

Page 123: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 123/143

RequisitosEspecificações

Restrições

• Reuniões com o cliente para levantamento de requisitos, funcionalidades, restrições, prazos, ...

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

• Uso de ferramentas para modelagem da solução proposta (ex. FSMs; fluxogramas; diagramas UML; entre outros) – auxilia o entendimento não apenas da equipe de software/hardware, mas também a interface com o cliente

Page 124: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 124/143

RequisitosEspecificações

Restrições

• Reuniões com o cliente para levantamento de requisitos, funcionalidades, restrições, prazos, ...

• Uso de ferramentas para modelagem da solução proposta (ex. FSMs; fluxogramas; diagramas UML; entre outros) – auxilia o entendimento não apenas da equipe de software/hardware, mas também a interface com o cliente

• Se disponível, uso de simulador, cross-compiler e plataforma de protipação para desenvolvimento do software e primeiros contatos com o projeto de hardware

Teste do software embarcado e idéias

para projeto do hardware: plataforma de prototipação com

processador alvo

Desenvolvimento do software embarcado:

Simulador, cross-compiler

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Page 125: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 125/143

RequisitosEspecificações

Restrições

• Reuniões com o cliente para levantamento de requisitos, funcionalidades, restrições, prazos, ...

• Uso de ferramentas para modelagem da solução proposta (ex. FSMs; fluxogramas; diagramas UML; entre outros) – auxilia o entendimento não apenas da equipe de software/hardware, mas também a interface com o cliente

• Se disponível, uso de simulador, cross-compiler e plataforma de protipação para desenvolvimento do software e primeiros contatos com o projeto de hardware

• Busca e compra de componentes (procurement) • Uso de ferramentas de CAD (ex. Orcad) para projeto do hardware. Projeto do

PCB, roteamento, layout, planta baixa. Uso de simuladores de hardware para validação do circuito (ex. Spice)

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Page 126: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 126/143

RequisitosEspecificações

Restrições

• Para projetos simples, é interessante uma prototipagem inicial do circuito em um proto-board, de forma a corrigir bugs de SW/HW a partir dos requisitos iniciais. O desenvolvimento das placas finais e soldagem possui um custo mais elevado em relação ao protótipo em proto-board.

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Page 127: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 127/143

RequisitosEspecificações

Restrições

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Page 128: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 128/143

Projetar o circuito de controle para gerência das operações de uma máquina de venda de refrigerantes.

Especificação:

A máquina fornece dois tipos de refrigerantes, denominados MEET e ETIRPS. Estes estão disponíveis para escolha pelo usuário a partir de duas teclas no painel com o nome dos refrigerantes. Ambos refrigerantes custam R$1,50 e existe na máquina uma fenda para inserir moedas com um sistema eletromecânico capaz de reconhecer moedas de R$1,00, R$0,50 e R$0,25, e capaz de devolver automaticamente qualquer outro tipo de moeda ou objeto não reconhecido. Além disso, durante a compra, o usuário pode desistir da transação e apertar a tecla DEV que devolve as moedas inseridas até o momento. Somente após acumular um crédito mínimo de R$1,50 o usuário pode obter um refrigerante. A devolução de excesso de moedas é automática sempre que o valor inserido antes de retirar um refrigerante ultrapassar R$1,50. Uma terceira simplificadora consiste em ignorar a composição exata das moedas inseridas na máquina, atendo-se apenas ao montante total inserido. 

Link para a especificação completa.

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Page 129: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 129/143

Solução: Diagrama de blocos

Informações fornecidas pelos sensores

Informações enviadas para os atuadores (eletro-mecânicos

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Page 130: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 130/143

Solução: Tabela de estados

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Page 131: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 131/143

Solução: Tabela de estados

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Page 132: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 132/143

Solução: Representação gráfica

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Reset

Page 133: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 133/143

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Page 134: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 134/143

Estudo de caso: Controlador máquina refrigerantes

Link para a solução completa

Page 135: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 135/143

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

Microcontrolador Renesas: plataforma de prototipação•Renesas foi criada por divisões da Mitsubishi e Hitachi •Microcontrolador da família M16C/26•M16C/26 – MCU de 16 bits com CPU da série M16C/60•Kit QSK26A conectado via USB (usado também como fonte)

Page 136: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 136/143

Próxima tarefa: desenvolvimento de aplicação com smart-card I2C e código de barras no microcontrolador Renesas

Page 137: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 137/143

Microcontroladores: Limitações

Page 138: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 138/143

•Tamanho dos programas e dados

(recursos de memória escassos)

•Programas sequenciais

•Limitação importante: velocidade de processamento

•Não adequados para aplicações com tempo de resposta abaixo de

poucos microsegundos

•Ambiente de desenvolvimento (compiladores, montadores, linkers,

bibliotecas, plataformas de software e hardware, ...) – pode ser de uso

complexo e custo elevado

Limitações

Page 139: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 139/143

PIC

• Disponibilidade em encapsulamento DIP para uso direto em placas de

prototipação

• Valores na ordem de US$1 a US$9

• Limitação: Custo das ferramentas – Compilador ~US$200; Debug ~US$150.

AVR

• Ferramentas gratuitas (gcc)

• IDE disponível para Windows, Mac e Linux, incluindo debug

• AVR-Dragon da Atmel custa em torno de US$50 e pode ser utilizado para

programação e depuração

• Limitação: poucas famílias de dispositivos disponíveis (pouca variedade) ao se

comparar com o PIC

Limitações

Page 140: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 140/143

Microcontrolador:

Vantagens: 

Desvantagens:

CPLD:

Vantagens: 

Desvantagens:

Limitações

- Mais versátil que CPLD, especialmente para aplicações analógicas (A/D, D/A).

- Temporização eficiente e precisa

- Temporização difícil de ser determinada para aplicações mais complexas (em C)

- Limitação para aplicações complexas e lógicas densas

- Facilidade para implementar algoritmos complexos e funções densas

- Normalmente, menos desempenho em tempo de execução do que CPLD

- Normalmente, melhor desempenho em tempo de execução do que microcontroladores

Page 141: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 141/143

Limitações

Programa Exemplo: Loop/* pulses pin PORTB<3> eight times */

pulse: movlw 0x08 movwf counter

pulse_lp0: bsf PORTB, 3 bcf PORTB, 3 decfsz counter, F goto pulse_lp0 return

/* pulses pin PORTB<3> eight times */

void pulse() { int i;

for (i=0; i<8; i++) { output_high(PIN_B3);

output_low(PIN_B3); }

return; }

Assembly C

Page 142: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 142/143

Limitações

Compilador Ineficiente

/* pulses pin PORTB<3> eight times */

0000: movlw 0x8 0001: movwf 0x20 0002: bsf 0x6,0x3 0003: bcf 0x6,0x3 0004: decfsz 0x20

/* pulses pin PORTB<3> eight times */ 0005: CLRF 21 0006: MOVF 21,W 0007: SUBLW 07 0008: BTFSS 03,0 0009: GOTO 014 000A: BSF 03,5 000B: BCF 06,3 000C: BCF 03,5 000D: BSF 06,3 000E: BSF 03,5 000F: BCF 06,3 0010: BCF 03,5 0011: BCF 06,3 0012: INCF 21,F 0013: GOTO 006

Assembly gerado pelo compilador

Assembly escrito pelo desenvolvedor

Page 143: EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis, março de 2010. Universidade Federal de Santa Catarina

EEL7030 – Microprocessadores 143/143

Próxima aula

– Arquitetura de um microprocessador CISC– Arquitetura de um microprocessador RISC– Estudo comparativo das arquiteturas RISC e CISC– Estudo de caso de projeto com microprocessadores

“Microprocessadores: arquitetura CISC e RISC”