A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Florianópolis, março de 2010. Universidade Federal de Santa Catarina.

Apresentações semelhantes


Apresentação em tema: "EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Florianópolis, março de 2010. Universidade Federal de Santa Catarina."— Transcrição da apresentação:

1 EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Florianópolis, março de Universidade Federal de Santa Catarina Centro Tecnológico – CTC Departamento de Engenharia Elétrica

2 EEL7030 – Microprocessadores 2/143 Links: Microprocessadores

3 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

4 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 Microprocessadores permitem implementar sistemas digitais, baseados em software, para aplicações em geral. Revisão

5 EEL7030 – Microprocessadores 5/143 RISC e CISC

6 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

7 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.

8 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.

9 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,...).

10 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.

11 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.

12 EEL7030 – Microprocessadores 12/143 RISC

13 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

14 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?

15 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

16 EEL7030 – Microprocessadores 16/143 CISCRISC Ênfase no hardwareÊnfase no software Instruções complexas multi-ciclo Instruções simples de 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

17 EEL7030 – Microprocessadores 17/143 Equação de desempenho: Tempo de CPU = segundos programa instruções programa ciclos instrução segundos ciclo =xx CISC e RISC

18 EEL7030 – Microprocessadores 18/143 instrução Equação de desempenho: Tempo de CPU = segundos programa instruções programa ciclossegundos ciclo =xx 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

19 EEL7030 – Microprocessadores 19/143 programa Equação de desempenho: Tempo de CPU = segundos programa instruçõesciclos instrução segundos ciclo =xx 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

20 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

21 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

22 EEL7030 – Microprocessadores 22/143 Milhõ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

23 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

24 EEL7030 – Microprocessadores 24/143 CISC: Pentium Pro - Arquitetura IA32

25 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

26 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

27 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)

28 EEL7030 – Microprocessadores 28/143 CISC: IA32 TC Fetch: Trace Cache Fetch Realiza leitura da uOP RISC na Execution Trace Cache

29 EEL7030 – Microprocessadores 29/143 CISC: IA32 Drive: Atraso nos barramentos Direciona as uOPs para a unidade de alocação

30 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

31 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)

32 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

33 EEL7030 – Microprocessadores 33/143 CISC: IA32 Sch: Schedule Escrita nos escalonadores e verificação de dependências. Procura dependências a serem resolvidas

34 EEL7030 – Microprocessadores 34/143 CISC: IA32 Disp: Dispatch Envio das uOPs para a unidade de execução apropriada

35 EEL7030 – Microprocessadores 35/143 CISC: IA32 RF: Register File Leitura dos registradores, que contém os operandos das operações pendentes (operandos das ULAs,...)

36 EEL7030 – Microprocessadores 36/143 CISC: IA32 Ex: Execute Executa as uOPs na unidade apropriada (recurso alocado)

37 EEL7030 – Microprocessadores 37/143 CISC: IA32 Flgs: Flags Cálculo dos flags (zero, negativo,...). Flags normalmente servem de entrada para instruções de desvio.

38 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

39 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

40 EEL7030 – Microprocessadores 40/143 CISC: IA32

41 EEL7030 – Microprocessadores 41/143 MIPS: arquitetura interna

42 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 rdshamtfunct op rs rt 16 bit address op 26 bit address RIJRIJ

43 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 IJIJ

44 EEL7030 – Microprocessadores 44/143 MIPS – arquitetura interna

45 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? data M u x 1 Registers Read data 1 Read data 2 Read register 1 Read register 2 16 Sign extend Write register Write data Read data 1 ALU result M u x ALU Zero ID/EX Data memory Address

46 EEL7030 – Microprocessadores 46/143 MIPS – Forwarding e Hazard Detection Unit Unidade de detecção de hazard: parada no pipeline, deixando um nop prosseguir /ID.RegisterRt IF/ID.RegisterRs Rt Rs Rd Rt EX/MEM.RegisterRd MEM/WB.RegisterRd

47 EEL7030 – Microprocessadores 47/143 MIPS - Flush Hazard detection unit Forwarding unit IF.Flush IF/ID Sign extend Control M u x = Shift left 2 M u x

48 EEL7030 – Microprocessadores 48/143 PIC: arquitetura interna

49 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

50 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

51 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

52 EEL7030 – Microprocessadores 52/143 A penas 35 instruções PIC – arquitetura interna

53 EEL7030 – Microprocessadores 53/143 AVR: arquitetura interna

54 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

55 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

56 EEL7030 – Microprocessadores 56/143 Memória Flash Memory128 kB EEPROM Data Memory4096 B SRAM Data Memory4096 B General Purpose Registers (Accumulators)32 External data memory interface (64kB)Sim MCU Clock Frequency MHz Supply Voltage V Sleep Modes6 Hardware MultiplierSim I/O Pins53 On Chip OscillatorSim Interrupts34 Interrupts, External pins8 Brown-out DetectionSim Power-on ResetSim Fully Static OperationSim On-Chip Debug support via JTAG portSim IEEE (JTAG) Boundary ScanSim AVR – arquitetura interna

57 EEL7030 – Microprocessadores 57/143 Temporizadores / Contadores Timer/Counters (8-bit)2 Watchdog Timer with On-chip OscillatorSim Real Time CounterSim Timer/Counters (16-bit)2 Pulse Width Modulator6+2 ch Entrada / saída analógica Analog ComparatorSim Analog-to-Digital Converter (10-bit)8 ch Analog Gain Stage2 ch Modos de programação In-System Programming via SPI PortSim High Voltage Parallel Programming (12V)Sim Self-Programming via on-chip Boot ProgramSim In-System Programming via JTAG portSim Entrada / saída serial Full Duplex Serial Peripheral Interface (SPI)Sim 2-wire Serial Interface (I2C compatible)Sim Full Duplex USART2 AVR – arquitetura interna

58 EEL7030 – Microprocessadores 58/143 AVR ATMega 128 – arquitetura interna

59 EEL7030 – Microprocessadores 59/143 Pinagem: pinos compartilhados uso de latches e mux AVR ATMega 128 – arquitetura interna

60 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

61 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

62 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

63 EEL7030 – Microprocessadores 63/143 Microcontroladores

64 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

65 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

66 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ória Conversor A/D Conversor D/A MICROCONTROLADOR Microcontroladores

67 EEL7030 – Microprocessadores 67/143 Conversor A/D Conversor D/A Sensores Atuadores Memória Interface humana Ferramentas diagnósitco Sistemas auxiliares power,... Ambiente externo Eletromecânicos (by-pass e segurança) MICROCONTROLADOR Microcontroladores

68 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 Unit Composta por CPU e periféricos no mesmo encapsulamento

69 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 Unit Composta por CPU e periféricos no mesmo encapsulamento

70 EEL7030 – Microprocessadores 70/143 Microcontroladores Fluxo de dados

71 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

72 EEL7030 – Microprocessadores 72/ : arquitetura interna

73 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%

74 EEL7030 – Microprocessadores 74/ – arquitetura interna 5 Interrupções (2 externas, 2 dos timers/counters e 1 da porta serial)

75 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

76 EEL7030 – Microprocessadores 76/143 RAM interna 8051 – arquitetura interna

77 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 serial BK2 interrupção INT1 BK1 interrupção INT0 BK0 trabalho 8051 – arquitetura interna

78 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) possui conjunto mínimo, outros 51 podem possuir mais SFRs 8051 – arquitetura interna

79 EEL7030 – Microprocessadores 79/143 Mapa da RAM interna 8051 – arquitetura interna

80 EEL7030 – Microprocessadores 80/143 Bit de uma das portas paralelas 8051 – arquitetura interna

81 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

82 EEL7030 – Microprocessadores 82/143 Fontes de Interrupção

83 EEL7030 – Microprocessadores 83/143 Fontes de Interrupção MOV IE,# B; habilita INT0 E INT1

84 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

85 EEL7030 – Microprocessadores 85/143 Temporizadores / Contadores Registradores 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

86 EEL7030 – Microprocessadores 86/143 Temporizadores / Contadores Registradores TCON MOV A,TCON ORL A,# B; habilita INTs por borda MOV TCON,A

87 EEL7030 – Microprocessadores 87/143 Interrupções

88 EEL7030 – Microprocessadores 88/143 Interrupções MOV IP,# B; prioridade INT1 superior às demais

89 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.

90 EEL7030 – Microprocessadores 90/143 reset equ 00h ltint0 equ 03h ; local tratador state equ 20h org reset ;PC=0 depois de reset jmp inicio org ltint0 jmp handler inicio: mov ie,# b ; habilita int mov tcon,# b ; borda mov state,#0h ;inicialização mov r0,# state mov dptr,#tabela mov r1,#0 volta: mov state,#0h mov a,r1 movc mov p1,a inc r1 cjne r1,#16,volta jmp $ handler: mov state,#1h reti tabela: db 'Microcontrolador' end

91 EEL7030 – Microprocessadores 91/143 PIC: arquitetura interna

92 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

93 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

94 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

95 EEL7030 – Microprocessadores 95/143 A penas 35 instruções PIC – arquitetura interna

96 EEL7030 – Microprocessadores 96/143 AVR: arquitetura interna

97 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

98 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

99 EEL7030 – Microprocessadores 99/143 Memória Flash Memory128 kB EEPROM Data Memory4096 B SRAM Data Memory4096 B General Purpose Registers (Accumulators)32 External data memory interface (64kB)Sim MCU Clock Frequency MHz Supply Voltage V Sleep Modes6 Hardware MultiplierSim I/O Pins53 On Chip OscillatorSim Interrupts34 Interrupts, External pins8 Brown-out DetectionSim Power-on ResetSim Fully Static OperationSim On-Chip Debug support via JTAG portSim IEEE (JTAG) Boundary ScanSim AVR – arquitetura interna

100 EEL7030 – Microprocessadores 100/143 Temporizadores / Contadores Timer/Counters (8-bit)2 Watchdog Timer with On-chip OscillatorSim Real Time CounterSim Timer/Counters (16-bit)2 Pulse Width Modulator6+2 ch Entrada / saída analógica Analog ComparatorSim Analog-to-Digital Converter (10-bit)8 ch Analog Gain Stage2 ch Modos de programação In-System Programming via SPI PortSim High Voltage Parallel Programming (12V)Sim Self-Programming via on-chip Boot ProgramSim In-System Programming via JTAG portSim Entrada / saída serial Full Duplex Serial Peripheral Interface (SPI)Sim 2-wire Serial Interface (I2C compatible)Sim Full Duplex USART2 AVR – arquitetura interna

101 EEL7030 – Microprocessadores 101/143 AVR ATMega 128 – arquitetura interna

102 EEL7030 – Microprocessadores 102/143 Pinagem: pinos compartilhados uso de latches e mux AVR ATMega 128 – arquitetura interna

103 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

104 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

105 EEL7030 – Microprocessadores 105/143 Microcontroladores: aplicações

106 EEL7030 – Microprocessadores 106/143 FPGA: aplicações

107 EEL7030 – Microprocessadores 107/143 Microcontroladores: aplicações

108 EEL7030 – Microprocessadores 108/143 Microcontroladores: aplicações

109 EEL7030 – Microprocessadores 109/143 Microcontroladores: aplicações

110 EEL7030 – Microprocessadores 110/143 Microcontroladores: aplicações Embarcados em: – Sistemas automotivos – Aviônicos – Brinquedos – Dispositivos médicos – Eletrodomésticos Bilhões de unidades

111 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

112 EEL7030 – Microprocessadores 112/143 Microcontroladores: aplicações

113 EEL7030 – Microprocessadores 113/143 Microcontroladores: aplicações Espátula eletrônica

114 EEL7030 – Microprocessadores 114/143 Microcontroladores: aplicações Espátula eletrônica

115 EEL7030 – Microprocessadores 115/143 Microcontroladores: aplicações

116 EEL7030 – Microprocessadores 116/143 Microcontroladores: aplicações

117 EEL7030 – Microprocessadores 117/143 Microcontroladores: aplicações

118 EEL7030 – Microprocessadores 118/143 Microcontroladores: aplicações

119 EEL7030 – Microprocessadores 119/143 Microcontroladores: aplicações

120 EEL7030 – Microprocessadores 120/143 Microcontroladores: aplicações

121 EEL7030 – Microprocessadores 121/143 Microcontroladores: aplicações

122 EEL7030 – Microprocessadores 122/143 Microcontroladores: aplicações

123 EEL7030 – Microprocessadores 123/143 Requisitos Especificaçõ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

124 EEL7030 – Microprocessadores 124/143 Requisitos Especificaçõ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

125 EEL7030 – Microprocessadores 125/143 Requisitos Especificaçõ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

126 EEL7030 – Microprocessadores 126/143 Requisitos Especificaçõ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

127 EEL7030 – Microprocessadores 127/143 Requisitos Especificações Restrições Estudo de caso: Controlador de uma máquina de venda de refrigerantes

128 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 completaLink para a especificação completa. Estudo de caso: Controlador de uma máquina de venda de refrigerantes

129 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

130 EEL7030 – Microprocessadores 130/143 Solução: Tabela de estados Estudo de caso: Controlador de uma máquina de venda de refrigerantes

131 EEL7030 – Microprocessadores 131/143 Solução: Tabela de estados Estudo de caso: Controlador de uma máquina de venda de refrigerantes

132 EEL7030 – Microprocessadores 132/143 Solução: Representação gráfica Estudo de caso: Controlador de uma máquina de venda de refrigerantes Reset

133 EEL7030 – Microprocessadores 133/143 Estudo de caso: Controlador de uma máquina de venda de refrigerantes

134 EEL7030 – Microprocessadores 134/143 Estudo de caso: Controlador máquina refrigerantes Link para a solução completa

135 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)

136 EEL7030 – Microprocessadores 136/143 Próxima tarefa: desenvolvimento de aplicação com smart-card I 2 C e código de barras no microcontrolador Renesas

137 EEL7030 – Microprocessadores 137/143 Microcontroladores: Limitações

138 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

139 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

140 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

141 EEL7030 – Microprocessadores 141/143 Limitações Programa Exemplo: Loop /* pulses pin PORTB eight times */ pulse: movlw 0x08 movwf counter pulse_lp0: bsfPORTB, 3 bcfPORTB, 3 decfsz counter, F gotopulse_lp0 return /* pulses pin PORTB eight times */ void pulse() { int i; for (i=0; i<8; i++) { output_high(PIN_B3); output_low(PIN_B3); } return; } AssemblyC

142 EEL7030 – Microprocessadores 142/143 Limitações Compilador Ineficiente /* pulses pin PORTB eight times */ 0000: movlw 0x8 0001: movwf 0x : bsf 0x6,0x3 0003: bcf 0x6,0x3 0004: decfsz 0x20 /* pulses pin PORTB eight times */ 0005: CLRF : MOVF 21,W 0007: SUBLW : BTFSS 03,0 0009: GOTO A: 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

143 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


Carregar ppt "EEL7030 – Microprocessadores Prof. Eduardo Augusto Bezerra Florianópolis, março de 2010. Universidade Federal de Santa Catarina."

Apresentações semelhantes


Anúncios Google