1 / 143

“EEL7030 – Microprocessadores” Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer

Universidade Federal de Santa Catarina Centro Tecnológico – CTC Departamento de Engenharia Elétrica. “EEL7030 – Microprocessadores” Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer.org Florianópolis , março de 2010. Microprocessadores. Links: http://eduardo.bezerra.name/

kaycee
Télécharger la présentation

“EEL7030 – Microprocessadores” Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@computer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. Projeto e Implementação de Produtos Tecnológicos Baseados em Circuitos Eletrônicos Sem Projeto de Dispositivos Com Projeto de Dispositivos Dispositivos projetadose fabricados sob encomenda ASIC (gate-arrays ou standard cells) Dispositivos personalizáveis (FPGAs e CPLDs) Sistemas computacionais programáveis (e.g. PC) Sistema digital dedicado, programável (microcontroladores e/ou DSPs) Chip Sets Aumento de desempenho (maior velocidade e menor potência dissipada), sigilo de projeto, custo de desenvolvimento Diminuição da complexidade de projeto Revisão Microprocessadores permitem implementar sistemas digitais, baseados em software, para aplicações em geral.

  5. RISC e CISC

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

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

  13. 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. 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. CISC e RISC • 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.

  16. CISC e RISC

  17. CISC e RISC Equação de desempenho: segundos instruções ciclos segundos Tempo de CPU = = x x programa programa instrução ciclo

  18. CISC e RISC Equação de desempenho: segundos instruções ciclos segundos Tempo de CPU = = x x programa programa instrução ciclo • 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)

  19. CISC e RISC Equação de desempenho: segundos instruções ciclos segundos Tempo de CPU = = x x programa programa instrução ciclo • 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

  20. CISC e RISC CISC RISC mov ax, 0 mov bx, 10 mov cx, 5 add ax, bx loop Inicio mov ax, 10 mov bx, 5 mul bx, ax 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

  21. CISC e RISC • 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

  22. CISC e RISC • Comparação entre CISC (Alpha) e RISC (Pentium Pro) no SPEC • Pentium Pro converte instruções CISC para RISC, onthefly, 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. Milhões

  23. CISC e RISC 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

  24. CISC: Pentium Pro - Arquitetura IA32

  25. 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. 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. 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. CISC: IA32 TC Fetch: “Trace Cache Fetch” Realiza leitura da uOP RISC na Execution Trace Cache

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

  30. 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. CISC: IA32 Rename: “Register renaming” Renomeia os registradores locais (EAX, ...) associando aos registradores de trabalho existentes no hardware (128 no total)

  32. 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. CISC: IA32 Sch: “Schedule” Escrita nos escalonadores e verificação de dependências. Procura dependências a serem resolvidas

  34. CISC: IA32 Disp: “Dispatch” Envio das uOPs para a unidade de execução apropriada

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

  36. CISC: IA32 Ex: “Execute” Executa as uOPs na unidade apropriada (recurso alocado)

  37. CISC: IA32 Flgs: “Flags” Cálculo dos flags (zero, negativo, ...). Flags normalmente servem de entrada para instruções de desvio.

  38. 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. 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. CISC: IA32

  41. MIPS: arquitetura interna

  42. 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 R I J op rs rt 16 bit address op 26 bit address

  43. MIPS – arquitetura interna • Instruções: • bne $t4,$t5,Label • beq $t4,$t5,Label • j Label • Formatos: • Endereços de desvionãosão de 32 bits op rs rt 16 bit address I J op 26 bit address

  44. MIPS – arquitetura interna

  45. 0 M u x 1 I F / I D E X / M E M M E M / W B A d d A d d 4 A d d r e s u l t S h i f t l e f t 2 n o i t A d d r e s s P C c u r t s n I I n s t r u c t i o n m e m o r y 0 0 W r i t e 3 2 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? I D / E X R e a d r e g i s t e r 1 R e a d d a t a 1 R e a d Z e r o r e g i s t e r 2 R e g i s t e r s A L U R e a d A L U R e a d W r i t e A d d r e s s d a t a 2 1 r e s u l t d a t a r e g i s t e r M M u D a t a u W r i t e x m e m o r y x d a t a 1 d a t a 1 6 S i g n e x t e n d

  46. I D / E X . M e m R e a d H a z a r d d e t e c t i o n u n i t I D / E X e t W B i r E X / M E M W D M I / F C o n t r o l u M W B I M E M / W B x 0 E X M W B I F / I D e t i r W M n C o P u i t c x u r t s R e g i s t e r s n I D a t a I n s t r u c t i o n A L U P C m e m o r y M m e m o r y u x M u x I F I F / I D . R e g i s t e r R t M u I F / I D . R e g i s t e r R d x I D / E X . R e g i s t e r R t F o r w a r d i n g u n i t MIPS – Forwarding e Hazard Detection Unit Unidade de detecção de hazard: parada no pipeline, deixando um nop prosseguir I F / I D . R e g i s t e r R s / I D . R e g i s t e r R t R t E X / M E M . R e g i s t e r R d R d R s M E M / W B . R e g i s t e r R d R t

  47. I D / E X W B E X / M E M M W B M E M / W B 0 E X M W B 4 M u x R e g i s t e r s D a t a I n s t r u c t i o n A L U P C m e m o r y M m e m o r y u x M u x M u x MIPS - Flush I F . F l u s h H a z a r d d e t e c t i o n u n i t M u x M u C o n t r o l x I F / I D S h i f t l e f t 2 = S i g n e x t e n d F o r w a r d i n g u n i t

  48. PIC: arquitetura interna

  49. PIC – arquitetura interna • 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.

  50. PIC – arquitetura interna • Memória de programa • Pilha para chamada de sub-rotinas • Portas (I/O) • Memória de dados • Timers • Serial síncrona • Serial assíncrona • Conversor A/D

More Related