universidade federal de santa catarina …bezerra/disciplinas/microprocessadores/aulas/... · modos...

11
22:43 1 “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 EEL7030 – Microprocessadores 2/62 Links: http://eduardo.bezerra.name/ http://www.eel.ufsc.br/hari/ http://www.eel.ufsc.br/eel7030/ Microprocessadores EEL7030 – Microprocessadores 3/62 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 RISCEEL7030 – Microprocessadores 4/62 Projeto e Implementação de Produtos Tecnológicos Baseados em Circuitos Eletrônicos Sem Projeto de Dispositivos Com Projeto de Dispositivos Chip Sets Sistema 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 EEL7030 – Microprocessadores 5/62 RISC e CISC EEL7030 – Microprocessadores 6/62 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

Upload: phamlien

Post on 04-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

1

“EEL7030 – Microprocessadores”

Prof. Eduardo Augusto Bezerra

[email protected]

Florianópolis, março de 2010.

Universidade Federal de Santa CatarinaCentro Tecnológico – CTC

Departamento de Engenharia Elétrica

EEL7030 – Microprocessadores 2/62

Links:

http://eduardo.bezerra.name/

http://www.eel.ufsc.br/hari/

http://www.eel.ufsc.br/eel7030/

Microprocessadores

EEL7030 – Microprocessadores 3/62

• 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”

EEL7030 – Microprocessadores 4/62

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

EEL7030 – Microprocessadores 5/62

RISC e CISC

EEL7030 – Microprocessadores 6/62

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 2: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

2

EEL7030 – Microprocessadores 7/62

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.

EEL7030 – Microprocessadores 8/62

CISC – “Complex Instruction Set Computer”

• Restrições de projeto/tecnológicas que direcionaram o desenvolvimento da arquitetura CISC (programas em assemblye 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.

EEL7030 – Microprocessadores 9/62

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, ...).EEL7030 – Microprocessadores 10/62

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.

EEL7030 – Microprocessadores 11/62

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.

EEL7030 – Microprocessadores 12/62

RISC

Page 3: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

3

EEL7030 – Microprocessadores 13/62

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 registradoresEEL7030 – Microprocessadores 14/62

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?

EEL7030 – Microprocessadores 15/62

• 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

EEL7030 – Microprocessadores 16/62

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

EEL7030 – Microprocessadores 17/62

Equação de desempenho:

Tempo de CPU =segundos

programa

instruções

programa

ciclos

instrução

segundos

ciclo= x x

CISC e RISC

EEL7030 – Microprocessadores 18/62

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 4: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

4

EEL7030 – Microprocessadores 19/62

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

EEL7030 – Microprocessadores 20/62

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

EEL7030 – Microprocessadores 21/62

• 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

EEL7030 – Microprocessadores 22/62Milhõ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 Alphaprecisa de diversas instruções para calcular SQRT.

CISC e RISC

EEL7030 – Microprocessadores 23/62

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

EEL7030 – Microprocessadores 24/62

CISC: Pentium Pro - Arquitetura IA32

Page 5: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

5

EEL7030 – Microprocessadores 25/62

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

EEL7030 – Microprocessadores 26/62

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

EEL7030 – Microprocessadores 27/62

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)

EEL7030 – Microprocessadores 28/62

CISC: IA32

TC Fetch: “Trace Cache Fetch”

Realiza leitura da uOP RISC na Execution Trace Cache

EEL7030 – Microprocessadores 29/62

CISC: IA32

Drive: “Atraso nos barramentos”

Direciona as uOPs para a unidade de alocação

EEL7030 – Microprocessadores 30/62

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 6: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

6

EEL7030 – Microprocessadores 31/62

CISC: IA32

Rename: “Register renaming”

Renomeia os registradores locais (EAX, ...) associando aos registradores de trabalho existentes

no hardware (128 no total)

EEL7030 – Microprocessadores 32/62

CISC: IA32

Que: “Write into the uOP Queue”

As uOPs são colocadas nas filas, onde permanecem até que os escalonadores estejam disponíveis

EEL7030 – Microprocessadores 33/62

CISC: IA32

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

Procura dependências a serem resolvidas

EEL7030 – Microprocessadores 34/62

CISC: IA32

Disp: “Dispatch”

Envio das uOPs para a unidade de execução apropriada

EEL7030 – Microprocessadores 35/62

CISC: IA32

RF: “Register File”

Leitura dos registradores, que contém os operandos das operações pendentes (operandos das ULAs, ...)

EEL7030 – Microprocessadores 36/62

CISC: IA32

Ex: “Execute”

Executa as uOPs na unidade apropriada (recurso alocado)

Page 7: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

7

EEL7030 – Microprocessadores 37/62

CISC: IA32

Flgs: “Flags”

Cálculo dos flags (zero, negativo, ...).Flags normalmente servem de entrada para

instruções de desvio.

EEL7030 – Microprocessadores 38/62

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

EEL7030 – Microprocessadores 39/62

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

EEL7030 – Microprocessadores 40/62

CISC: IA32

EEL7030 – Microprocessadores 41/62

MIPS: arquitetura interna

EEL7030 – Microprocessadores 42/62

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 8: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

8

EEL7030 – Microprocessadores 43/62

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

EEL7030 – Microprocessadores 44/62

MIPS – arquitetura interna

MIPS 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 Comments

add 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 * 2

16 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

EEL7030 – Microprocessadores 45/62

MIPS – Bloco de dados (data path)

Instruction

me mory

Add re ss

4

32

0

AddAdd

result

Shift

left 2

Instr

uc

tio

n

IF/ID EX/MEM MEM/WB

Mux

0

1

Add

PC

0Writedata

Mux

1

Registe rs

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

e xtend

Writeregister

Writedata

Readdata

1

ALUresult

Mux

ALU

Ze ro

ID/EX

Data

memory

Address

EEL7030 – Microprocessadores 46/62

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

Data

memory

Mux

Hazarddetection

unit

Forwarding

unit

0

Mux

IF/ID

Instr

uctio

n

ID/EX.MemRead

IF/ID

Wri

te

PC

Wri

te

ID/EX.RegisterRt

IF/ID.RegisterRd

IF/ID.RegisterRt

IF/ID.RegisterRt

IF/ID.RegisterRs

Rt

Rs

Rd

RtEX/MEM.RegisterRd

MEM/WB.RegisterRd

EEL7030 – Microprocessadores 47/62

MIPS - Flush

PCInstruction

memory

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

EEL7030 – Microprocessadores 48/62

PIC: arquitetura interna

Page 9: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

9

EEL7030 – Microprocessadores 49/62

• 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

EEL7030 – Microprocessadores 50/62

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

EEL7030 – Microprocessadores 51/62

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

EEL7030 – Microprocessadores 52/62

Apenas 35 instruções

PIC – arquitetura interna

EEL7030 – Microprocessadores 53/62

AVR: arquitetura interna

EEL7030 – Microprocessadores 54/62

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 10: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

10

EEL7030 – Microprocessadores 55/62

• 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

EEL7030 – Microprocessadores 56/62

MemóriaFlash Memory 128 kB

EEPROM Data Memory 4096 B

SRAM Data Memory 4096 B

General Purpose Registers (Accumulators) 32

External data memory interface (64kB) Sim

MCUClock Frequency 0 - 16 MHz

Supply Voltage 4.5 - 5.5 V

Sleep Modes 6

Hardware Multiplier Sim

I/O Pins 53

On Chip Oscillator Sim

Interrupts 34

Interrupts, External pins 8

Brown-out Detection Sim

Power-on Reset Sim

Fully Static Operation Sim

On-Chip Debug support via JTAG port Sim

IEEE 1149.1 (JTAG) Boundary Scan Sim

AVR – arquitetura interna

EEL7030 – Microprocessadores 57/62

Temporizadores / ContadoresTimer/Counters (8-bit) 2

Watchdog Timer with On-chip Oscillator Sim

Real Time Counter Sim

Timer/Counters (16-bit) 2

Pulse Width Modulator 6+2 ch

Entrada / saída analógicaAnalog Comparator Sim

Analog-to-Digital Converter (10-bit) 8 ch

Analog Gain Stage 2 ch

Modos de programaçãoIn-System Programming via SPI Port Sim

High Voltage Parallel Programming (12V) Sim

Self-Programming via on-chip Boot Program Sim

In-System Programming via JTAG port Sim

Entrada / saída serial

Full Duplex Serial Peripheral Interface (SPI) Sim

2-wire Serial Interface (I2C compatible) Sim

Full Duplex USART 2

AVR – arquitetura interna

EEL7030 – Microprocessadores 58/62

AVR ATMega 128 – arquitetura interna

EEL7030 – Microprocessadores 59/62

Pinagem:

• pinos compartilhados

• uso de latches e mux

AVR ATMega 128 – arquitetura interna

EEL7030 – Microprocessadores 60/62

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 11: Universidade Federal de Santa Catarina …bezerra/disciplinas/Microprocessadores/aulas/... · modos especiais para acesso a arrays indexados. ... Leitura dos registradores, que contém

22:43

11

EEL7030 – Microprocessadores 61/62

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

EEL7030 – Microprocessadores 62/62

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”