Escolar Documentos
Profissional Documentos
Cultura Documentos
EEL7030 Microprocessadores
Microprocessadores
Links:
http://eduardo.bezerra.name/ http://www.eel.ufsc.br/hari/ http://www.eel.ufsc.br/eel7030/
EEL7030 Microprocessadores
2/143
Plano de Aula
Microprocessadores: arquitetura CISC e RISC
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
EEL7030 Microprocessadores
3/143
Reviso
Chip Sets
Aumento de desempenho (maior velocidade e menor potncia dissipada), sigilo de projeto, custo de desenvolvimento Diminuio da complexidade de projeto
EEL7030 Microprocessadores
4/143
RISC e CISC
EEL7030 Microprocessadores
5/143
Microprocessadores
Componentes bsicos de sistemas computacionais processados: CPU Memria de dados e programa Sistema de entrada/sada Microcontroladores so computadores em um nico chip Os perifricos esto embarcados no mesmo chip da CPU Algumas caractersticas: tamanho e custo reduzidos, alto desempenho com baixo consumo de energia, uso eficiente de espao no PCB, baixo clock, endereamento bit-a-bit Microprocessadores so computadores de propsito geral So necessrios componentes perifricos, externos, para apoio execuo das aplicaes
EEL7030 Microprocessadores
6/143
7/143
EEL7030 Microprocessadores
8/143
9/143
EEL7030 Microprocessadores
10/143
11/143
RISC
EEL7030 Microprocessadores
12/143
13/143
EEL7030 Microprocessadores
14/143
CISC e RISC
Implementaes CISC e RISC vem se tornando cada vez mais similares
Arquiteturas RISC da atualidade possuem um nmero de instrues equivalente as arquiteturas CISC de geraes anteriores Com o aumento da velocidade da tecnologia atual, arquiteturas CISC passaram a executar mais de uma instruo por ciclo, utilizando pipeline Com o aumento da densidade de transistores em um chip, arquiteturas RISC passaram a incorporar instrues mais complexas, semelhantes as CISC
15/143
CISC e RISC
CISC RISC
nfase no hardware
Instrues complexas multi-ciclo
nfase no software
Instrues simples de um ciclo (pipeline)
EEL7030 Microprocessadores
16/143
CISC e RISC
Equao de desempenho:
Tempo de CPU = segundos programa = instrues programa x ciclos instruo x segundos ciclo
EEL7030 Microprocessadores
17/143
CISC e RISC
Equao de desempenho:
Tempo de CPU = segundos programa = instrues programa x ciclos instruo x segundos ciclo
Arquitetura RISC diminui tempo de execuo ao reduzir o nmero de ciclos por instruo (instrues simples so decodificadas mais
rapidamente)
EEL7030 Microprocessadores
18/143
CISC e RISC
Equao de desempenho:
Tempo de CPU = segundos programa = instrues programa x ciclos instruo x segundos ciclo
Arquitetura RISC diminui tempo de execuo ao reduzir o nmero de ciclos por instruo (instrues simples so decodificadas mais
rapidamente)
Arquitetura CISC diminui tempo de execuo ao reduzir o nmero de instrues em um programa
EEL7030 Microprocessadores
19/143
CISC e RISC
CISC mov ax, 10 RISC mov ax, 0 mov bx, 10 mov cx, 5
mov bx, 5
mul bx, ax
CISC:
(2 movs x 1 ciclo) + (1 mul x 30 ciclos) = 32 ciclos RISC:
20/143
21/143
CISC e RISC
Comparao entre CISC (Alpha) e RISC (Pentium Pro) no SPEC
Pentium Pro converte instrues CISC para RISC, on the fly, gerando uops. Para esse tipo de converso em hardware, e por instruo, espera-se um nmero maior de uops do que o gerado por um compilador. Para benchmarks de inteiros e para o spice (menor contedo de FP), o nmero de uops prximo ao de instrues RISC. Em benchmarks FP, RISC gera menos instrues, exceto para ora onde Alpha precisa de diversas instrues para calcular SQRT.
EEL7030 Microprocessadores
Milhes
22/143
CISC e RISC
Arquitetura ideal?
Solues hbridas
Core RISC com interface CISC
ISA desejado
Meio termo entre RISC e CISC Poucas instrues complexas, cuidadosamente escolhidas e teis
EEL7030 Microprocessadores
23/143
EEL7030 Microprocessadores
24/143
CISC: Pentium Pro Diversas instrues complexas, com tamanhos variando de 1 a 15 bytes Necessidade de recursos considerveis de hardware para implementao da lgica de decodificao e execuo de instrues Uma nica instruo pode realizar uma ou mais leituras/escritas na memria e uma ou mais operaes na ULA Desafio para execuo de mais de uma instruo por ciclo em um hardware super-escalar
EEL7030 Microprocessadores
25/143
26/143
CISC: IA32
Ponteiro do Branch Target Buffer indica a localizao da prxima uOP (j transformada p/ RISC)
EEL7030 Microprocessadores
27/143
CISC: IA32
EEL7030 Microprocessadores
28/143
CISC: IA32
EEL7030 Microprocessadores
29/143
CISC: IA32
Alloc: Allocate Alocao de recursos necessrios para execuo da uOP como, por exemplo, buffers para load/store, entre outros
EEL7030 Microprocessadores
30/143
CISC: IA32
Renomeia os registradores locais (EAX, ...) associando aos registradores de trabalho existentes no hardware (128 no total)
EEL7030 Microprocessadores
31/143
CISC: IA32
As uOPs so colocadas nas filas, onde permanecem at que os escalonadores estejam disponveis
EEL7030 Microprocessadores
32/143
CISC: IA32
Sch: Schedule Escrita nos escalonadores e verificao de dependncias. Procura dependncias a serem resolvidas
EEL7030 Microprocessadores
33/143
CISC: IA32
Disp: Dispatch
EEL7030 Microprocessadores
34/143
CISC: IA32
Leitura dos registradores, que contm os operandos das operaes pendentes (operandos das ULAs, ...)
EEL7030 Microprocessadores
35/143
CISC: IA32
Ex: Execute
EEL7030 Microprocessadores
36/143
CISC: IA32
Flgs: Flags
Clculo dos flags (zero, negativo, ...). Flags normalmente servem de entrada para instrues de desvio.
EEL7030 Microprocessadores
37/143
CISC: IA32
Esse estgio compara o resultado obtido (calculado) para uma operao de desvio, com a predio realizada originalmente
EEL7030 Microprocessadores
38/143
CISC: IA32
Resultado da verificao do desvio (erro ou acerto na predio) informado para o incio do processo
EEL7030 Microprocessadores
39/143
CISC: IA32
EEL7030 Microprocessadores
40/143
EEL7030 Microprocessadores
41/143
26 bit address
Depende dos compiladores para alcanar desempenho Auxlio ao compilador sempre que possvel
EEL7030 Microprocessadores
42/143
Formatos:
I J op op rs rt 16 bit address
26 bit address
EEL7030 Microprocessadores
43/143
30
words
Category
add
Instruction
MIPS assembly language Example Meaning add $s1, $s2, $s3 $s1 = $s2 + $s3 sub $s1, $s2, $s3 $s1 = $s2 - $s3 $s1 = $s2 + 100 $s1 = Memory[$s2 + 100] Memory[$s2 + 100] = $s1 $s1 = Memory[$s2 + 100] Memory[$s2 + 100] = $s1 $s1 = 100 * 2
16
Comments
Three operands; data in registers
Arithmetic
subtract
Data transfer
addi $s1, $s2, 100 lw $s1, 100($s2) load word sw $s1, 100($s2) store word lb $s1, 100($s2) load byte sb $s1, 100($s2) store byte load upper immediate lui $s1, 100
add immediate branch on equal
Used to add constants Word from memory to register Word from register to memory Byte from memory to register Byte from register to memory Loads constant in upper 16 bits
if ($s1 == $s2) go to PC + 4 + 100 if ($s1 != $s2) go to PC + 4 + 100 if ($s2 < $s3) $s1 = 1; else $s1 = 0 else $s1 = 0
Conditional branch
$s1, $s2, 100 if ($s2 < 100) $s1 = 1; 2500 $ra 2500
Unconditional jump
Jump to target address go to 10000 For switch, procedure return go to $ra $ra = PC + 4; go to 10000 For procedure call
EEL7030 Microprocessadores
44/143
0 M u x 1
I F /I D
ID /E X
E X/ M E M
M E M /W B
PC
A d d re s s In s tr u c t i o n m e m o ry
R e ad d at a 1 R ea d re g i s t e r 2 R e g i s t e rs R e a d W ri t e d at a 2 re g i s t e r W ri t e d a ta
Z e ro 0 M u x 1 A LU A LU re s u l t A d d re s s D a ta m e m o ry W r i te d at a R ea d d a ta 1 M u x 0
16
S i gn e x te n d
32
EEL7030 Microprocessadores
45/143
EX/MEM WB
Control 0
MEM/WB WB
IF/ID
EX
P C W r it e
In str uctio n
PC
Instruction memory
M u x
Rt
Rd Rs Rt
M u x Forwarding unit
EX/MEM.RegisterRd
MEM/WB.RegisterRd
EEL7030 Microprocessadores
46/143
MIPS - Flush
IF.Flush Hazard detection unit M u x M u x ID/EX WB Control 0 IF/ID M EX EX/MEM WB M MEM/WB WB
M u x
Sign extend
M u x Forwarding unit
EEL7030 Microprocessadores
47/143
EEL7030 Microprocessadores
48/143
Fabricante Microchip Arquitetura Harvard RISC Srie 16 possui 35 instrues Barramento de dados separados para memria de dados e memria de programa.
EEL7030 Microprocessadores
49/143
EEL7030 Microprocessadores
50/143
Dados
51/143
EEL7030 Microprocessadores
52/143
EEL7030 Microprocessadores
53/143
54/143
Core RISC com ~100 instrues Velocidades de clock modestas (4-16 MHz) Barramento de 8 bits e 32 registradores de uso geral de 8 bits Flash programvel in-circuit (~1000 ciclos) Pequena quantidade de EEPROM e SRAM Diversos perifricos embarcados (UART, SPI, ADC, PWM, WDT)
EEL7030 Microprocessadores
55/143
128 kB 4096 B 4096 B 32 Sim 0 - 16 MHz 4.5 - 5.5 V 6 Sim 53 Sim 34 8 Sim Sim Sim Sim Sim
56/143
Sim Sim 2
57/143
EEL7030 Microprocessadores
58/143
EEL7030 Microprocessadores
59/143
Registradores: 32 registradores de 32 bits (r0 a r31) Os seis primeiros (r0 .. r5) podem ser utilizados como trs registradores de ndice de 16 bits (x, y e z)
EEL7030 Microprocessadores
60/143
Organizao da memria:
Espaos de endereamento separado para programas e dados. Endereamento at 8 Mbytes
EEL7030 Microprocessadores
61/143
EEL7030 Microprocessadores
62/143
Microcontroladores
EEL7030 Microprocessadores
63/143
Microcontroladores
Componentes bsicos de sistemas computacionais processados: CPU Memria de dados e programa Sistema de entrada/sada Microprocessadores so computadores de propsito geral So necessrios componentes perifricos, externos, para apoio execuo das aplicaes Microcontroladores so computadores em um nico chip
Os perifricos esto embarcados no mesmo chip da CPU Algumas caractersticas, tamanho e custo reduzidos, alto desempenho com baixo consumo de energia, uso eficiente de espao no PCB, baixo clock, endereamento bit-a-bit
EEL7030 Microprocessadores
64/143
Microcontroladores
Memria Cache
Memria
65/143
Microcontroladores
Memria
Memria
MICROCONTROLADOR
Conversor A/D Conversor D/A
66/143
Microcontroladores
Memria
MICROCONTROLADOR Sensores
Conversor A/D
Conversor D/A
Atuadores
Interface humana
Ferramentas diagnsitco
EEL7030 Microprocessadores
67/143
Microcontroladores
MCU Microcontroller Unit
Composta por CPU e perifricos no mesmo encapsulamento
- Memria de Dados e Programa; Portas de Entrada e Sada (I/O); Temporizadores (Timers); EEPROM; Conversores AD/DA; USB.
EEL7030 Microprocessadores
68/143
Microcontroladores
MCU Microcontroller Unit
Composta por CPU e perifricos no mesmo encapsulamento
Registradores RAM Flash EEPROM Portas digitais Portas Analgicas Timers Gerador de relgio DMA
I/O
Perifricos
CPU
Memria
EEL7030 Microprocessadores
69/143
EEL7030 Microprocessadores
70/143
Microcontroladores
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) ...
Outros fatores
Ferramentas disponveis Formato fsico Continuidade / Reaproveitamento de projeto
EEL7030 Microprocessadores
71/143
EEL7030 Microprocessadores
72/143
73/143
74/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
EEL7030 Microprocessadores
75/143
RAM interna
EEL7030 Microprocessadores
76/143
Bancos de registradores para salvamento de contexto (ex. interrupes). Troca de contexto executando apenas uma instruo. Exemplo de uso dos bancos:
BK3 interrupo porta serial BK2 interrupo INT1 BK1 interrupo INT0 BK0 trabalho
EEL7030 Microprocessadores
77/143
RAM interna com 256 bytes com nomes simblicos para acesso direto
128 bytes (dos 256) reservados para Registros de Funes Especiais (SFR).
8051 possui conjunto mnimo, outros 51 podem possuir mais SFRs
EEL7030 Microprocessadores
78/143
EEL7030 Microprocessadores
79/143
EEL7030 Microprocessadores
80/143
Famlia 8051
Memria Reset
Chip 8051
Comunicao serial
Single step
EEL7030 Microprocessadores
81/143
Fontes de Interrupo
A8H
External interrupt 0 enable Timer 0 interrupt enable bit External interrupt 1 enable bit Timer 1 interrupt enable bit
82/143
Fontes de Interrupo
IE - Interrupt Enable Register - Bit Addressable
7 EA 6 5 4 ES 3 ET1 2 EX1 1 ET0 0 EX0
A8H
External interrupt 0 enable Timer 0 interrupt enable bit bit External interrupt 1 enable bit Timer 1 interrupt enable
MOV IE,#10000101B;
EEL7030 Microprocessadores
83/143
Interrupes Externas
As interrupces externas INT0 e INT1 podem ser ativadas por nvel ou borda.
Os flags que identificam ocorrncia destas interrupces externas so os flags IE0 e IE1 de TCON.
EEL7030 Microprocessadores
84/143
LSB 88H
ITx - Interrupt control bit. 1 => borda de descida 0 => nvel lgico baixo
IEx - External Interrupt flag. Setado pelo hardware quando interrupo detectada. Apagada pelo software qdo salta para o tratador int.
EEL7030 Microprocessadores
85/143
TCON
LSB 88H
MOV A,TCON ORL A,#00000101B; habilita INTs por borda MOV TCON,A
EEL7030 Microprocessadores
86/143
Interrupes
B8H
External interrupt 0 priority Timer 0 interrupt priority bit External interrupt 1 priority bit Timer 1 interrupt priority bit
87/143
Interrupes
B8H
External interrupt 0 priority Timer 0 interrupt priority bit External interrupt 1 priority bit Timer 1 interrupt priority bit
MOV IP,#00000100B;
88/143
Faa 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.
EEL7030 Microprocessadores
89/143
equ 00h equ 03h ; local tratador equ 20h ;PC=0 depois de reset
volta:
inicio: mov ie,#10000001b ; habilita int mov tcon,#00000001b ; borda mov state,#0h ;inicializao mov r0,# state mov dptr,#tabela mov r1,#0
EEL7030 Microprocessadores
90/143
EEL7030 Microprocessadores
91/143
Fabricante Microchip Arquitetura Harvard RISC Srie 16 possui 35 instrues Barramento de dados separados para memria de dados e memria de programa.
EEL7030 Microprocessadores
92/143
EEL7030 Microprocessadores
93/143
Dados
94/143
EEL7030 Microprocessadores
95/143
EEL7030 Microprocessadores
96/143
97/143
Core RISC com ~100 instrues Velocidades de clock modestas (4-16 MHz) Barramento de 8 bits e 32 registradores de uso geral de 8 bits Flash programvel in-circuit (~1000 ciclos) Pequena quantidade de EEPROM e SRAM Diversos perifricos embarcados (UART, SPI, ADC, PWM, WDT)
EEL7030 Microprocessadores
98/143
128 kB 4096 B 4096 B 32 Sim 0 - 16 MHz 4.5 - 5.5 V 6 Sim 53 Sim 34 8 Sim Sim Sim Sim Sim
99/143
Sim Sim 2
100/143
EEL7030 Microprocessadores
101/143
EEL7030 Microprocessadores
102/143
Registradores: 32 registradores de 32 bits (r0 a r31) Os seis primeiros (r0 .. r5) podem ser utilizados como trs registradores de ndice de 16 bits (x, y e z)
EEL7030 Microprocessadores
103/143
Organizao da memria:
Espaos de endereamento separado para programas e dados. Endereamento at 8 Mbytes
EEL7030 Microprocessadores
104/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
105/143
FPGA: aplicaes
EEL7030 Microprocessadores
106/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
107/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
108/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
109/143
Microcontroladores: aplicaes
Embarcados em:
Sistemas automotivos Avinicos Brinquedos Dispositivos mdicos Eletrodomsticos
Bilhes de unidades
EEL7030 Microprocessadores
110/143
Microcontroladores: aplicaes
Produtos de uso pessoal: Celulares, pagers, relgios,
gravadores portteis, calculadoras, cmeras fotogrficas Laptops: mouse, teclado, modem, fax, placa de som, carregador de bateria Domtica: tranca eletromagntica, despertador, termostato, ar condicionado, controle remoto de TV, secador de cabelo, aparelho de DVD, geladeira, lavadora de roupa/loua, forno de microondas
EEL7030 Microprocessadores
111/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
112/143
Microcontroladores: aplicaes
Esptula eletrnica
EEL7030 Microprocessadores
113/143
Microcontroladores: aplicaes
Esptula eletrnica
EEL7030 Microprocessadores
114/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
115/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
116/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
117/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
118/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
119/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
120/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
121/143
Microcontroladores: aplicaes
EEL7030 Microprocessadores
122/143
EEL7030 Microprocessadores
123/143
Teste do software embarcado e idias para projeto do hardware: plataforma de prototipao com processador alvo
EEL7030 Microprocessadores
124/143
Reunies com o cliente para levantamento de requisitos, funcionalidades, Requisitos restries, prazos, ... Uso de ferramentas para modelagem da soluo proposta (ex. FSMs; Especificaes fluxogramas; diagramas UML; entre outros) auxilia o entendimento no Restries apenas da equipe de software/hardware, mas tambm a interface com o cliente Se disponvel, uso de simulador, cross-compiler e plataforma de protipao 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 validao do circuito (ex. Spice)
EEL7030 Microprocessadores
125/143
126/143
EEL7030 Microprocessadores
127/143
Especificao: A mquina fornece dois tipos de refrigerantes, denominados MEET e ETIRPS. Estes esto disponveis para escolha pelo usurio a partir de duas teclas no painel com o nome dos refrigerantes. Ambos refrigerantes custam R$1,50 e existe na mquina uma fenda para inserir moedas com um sistema eletromecnico 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 no reconhecido. Alm disso, durante a compra, o usurio pode desistir da transao e apertar a tecla DEV que devolve as moedas inseridas at o momento. Somente aps acumular um crdito mnimo de R$1,50 o usurio pode obter um refrigerante. A devoluo de excesso de moedas automtica sempre que o valor inserido antes de retirar um refrigerante ultrapassar R$1,50. Uma terceira simplificadora consiste em ignorar a composio exata das moedas inseridas na mquina, atendo-se apenas ao montante total inserido. Link para a especificao completa.
EEL7030 Microprocessadores
128/143
EEL7030 Microprocessadores
129/143
EEL7030 Microprocessadores
130/143
EEL7030 Microprocessadores
131/143
Reset
EEL7030 Microprocessadores
132/143
EEL7030 Microprocessadores
133/143
EEL7030 Microprocessadores
134/143
EEL7030 Microprocessadores
135/143
Prxima tarefa: desenvolvimento de aplicao com smart-card I2C e cdigo de barras no microcontrolador Renesas
EEL7030 Microprocessadores
136/143
Microcontroladores: Limitaes
EEL7030 Microprocessadores
137/143
Limitaes
Limitao importante: velocidade de processamento No adequados para aplicaes com tempo de resposta abaixo de poucos microsegundos
EEL7030 Microprocessadores
138/143
Limitaes
PIC Disponibilidade em encapsulamento DIP para uso direto em placas de prototipao Valores na ordem de US$1 a US$9
AVR Ferramentas gratuitas (gcc) IDE disponvel para Windows, Mac e Linux, incluindo debug AVR-Dragon da Atmel custa em torno de US$50 e pode ser utilizado para programao e depurao
139/143
Limitaes
Microcontrolador: Vantagens: - Mais verstil que CPLD, especialmente para aplicaes analgicas (A/D, D/A). - Facilidade para implementar algoritmos complexos e funes densas Desvantagens: - Temporizao difcil de ser determinada para aplicaes mais complexas (em C) - Normalmente, menos desempenho em tempo de execuo do que CPLD
CPLD: Vantagens: - Temporizao eficiente e precisa - Normalmente, melhor desempenho em tempo de execuo do que microcontroladores Desvantagens: - Limitao para aplicaes complexas e lgicas densas
EEL7030 Microprocessadores
140/143
Limitaes
pulse_lp0: bsf PORTB, 3 bcf PORTB, 3 decfsz counter, F goto pulse_lp0 return
Assembly
EEL7030 Microprocessadores
C
141/143
Limitaes
Compilador Ineficiente
/* pulses pin PORTB<3> eight times */ 0000: 0001: 0002: 0003: 0004: movlw movwf bsf bcf decfsz 0x8 0x20 0x6,0x3 0x6,0x3 0x20
/* pulses pin PORTB<3> eight times */
0005: 0006: 0007: 0008: 0009: 000A: 000B: 000C: 000D: 000E: 000F: 0010: 0011: 0012: 0013: CLRF MOVF SUBLW BTFSS GOTO BSF BCF BCF BSF BSF BCF BCF BCF INCF GOTO 21 21,W 07 03,0 014 03,5 06,3 03,5 06,3 03,5 06,3 03,5 06,3 21,F 006
142/143
EEL7030 Microprocessadores
143/143