Buscar

AULA 7 - Microprocessadores - Graduação - Wiki do IF-SC (Parte 3)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Arquiteturas de Von Neumann x Harvard
A Arquitetura de von Neumann é uma arquitetura de computador que se caracteriza pela possibilidade de uma máquina digital armazenar os programas no mesmo
espaço de memória que os dados, podendo assim manipular programas.
A Arquitetura de Harvard é uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento
e ligação ao processador.
Baseia-se na separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados, permitindo que um processador possa
acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de von Neumann, pois pode buscar uma nova instrução enquanto executa
outra.
A arquitetura Havard logicamente é mais complexa; permite pipelining, normalmente utilizada em arquiteturas RISC e também possui um repertório com menos
instruções que a de Von-Neumann, e essas são executadas apenas num único ciclo de relógio.
A diferença entre a arquitetura Von Neunmann e a Harvard é que a Harvard separa o armazenamento e o comportamento das instruções do CPU e os dados, enquanto a
Von Neumann utiliza o mesmo espaço de memória para ambos.
Na arquitetura Von-Neumann, é processada uma única informação por vez, visto que nessa tecnologia, execução e dados percorrem o mesmo barramento, o que torna o
processo lento em relação à arquitetura Harvard.
A tecnologia Harvard mais utilizada nos PC's e microcontroladores, pois proporcionam maior velocidade de processamento, pois enquanto a CPU processa uma
informação, outra nova informação está sendo buscada, de forma sucessiva.
Arquiteturas Von Neumann x Harvard nas famílias ARM
Os processadores ARM mais modernos podem ser encontrados nas duas arquiteturas.
São Von Neumann (Não existe separação entre barramentos de dados e o barramento da memória de programa):
ARM 7TDMI
Cortex-M0 -->Microcontroladores mais simples, suportam somente o set de instruções Thumb com algumas instruções do Thumb2 (sempre executam no modo
Thumb);
Cortex-M0+ -->Apresentam algumas melhorias em relação ao M0, além de ter suporte opcional à proteção de memória (MPU);
Cortex-M1 -->São utilizados juntos com FPGAs;
São Harvard (Possuem barramentos separados para dados e instruções):
Cortex-M3 -->São microcontroladores mais poderosos, suportam completamente os sets Thumb e Thumb2, além de multiplicação têm divisão por hardware;
Coxtex-M4 -->Têm instruções para processamento de sinais (DSP), têm uma unidade de ponto flutuante opcional (Cortex-M4F).
Pipelines
Pipeline é uma técnica de hardware que permite que a CPU realize a busca de uma ou mais instruções além da próxima a ser executada.
Estas instruções são colocadas em uma fila de memória dentro do processador (CPU) onde aguardam o momento de serem executadas: assim que uma instrução
termina o primeiro estágio e parte para o segundo, a próxima instrução já ocupa o primeiro estágio.
Em resumo, é o processo pelo qual uma instrução de processamento é subdividido em etapas, uma vez que cada uma destas etapas é executada por uma porção
especializada da CPU, podendo colocar mais de uma instrução em execução simultânea.
https://wiki.ifsc.edu.br/mediawiki/index.php/Arquivo:MIPvneum.png
https://wiki.ifsc.edu.br/mediawiki/index.php/Arquivo:MIPharvard2.png
Isto traz um uso mais racional da capacidade computacional com ganho substancial de velocidade.
Entre os problemas enfrentados estão a dependência de instruções anteriores e desvios que dificultam o processo, bem como a diferença de complexidade de instruções
que fazem com que as mesmas possam levar um tempo variável para execução.
A técnica de pipeline é utilizada para acelerar a velocidade de operação da CPU, uma vez que a próxima instrução a ser executada está normalmente armazenada nos
registradores da CPU e não precisa ser buscada da memória principal que é muito mais lenta.
É semelhante a uma linha de produção de fábrica. Cada instrução de um microprocessador passa por diversas fases até sua execução. Estas fases podem ser:
Busca da instrução
Decodificação da instrução
Cálculo de endereço de operandos
Busca de operandos
Execução da instrução
Escrita de operandos
Se conseguirmos separar todas estas fases de forma independente, e separar cada fase por ciclo de relógio teríamos (neste exemplo) 6 ciclos por instrução.
Se usarmos uma técnica de pipeline poderíamos colocar 6 instruções ao mesmo tempo no microprocessador (cada uma numa fase distinta) e termos 6 instruções
executadas em 6 ciclos (1 instrução por ciclo, idealmente).
Outros problemas advém desta técnica, como desvios (como saber as próximas instruções), e dependência de instruções (a próxima depende da anterior).
Na prática todos os microprocessadores modernos utilizam-se de várias (dezenas) fases no processamento para usufruir de clocks maiores (quanto menor a fase, mais
rápido pode ser o ciclo).
https://wiki.ifsc.edu.br/mediawiki/index.php/Arquivo:MIPpipeline.png
https://wiki.ifsc.edu.br/mediawiki/index.php/Arquivo:MIPpipepent4.png
Tempo de processamento
O tempo gasto no processamento de M instruções em um pipeline com K estágios e ciclo de máquina igual a t é dado por:
T = [ K + (M –1 )] * t
Quando M >> K (caso comum), T é aproximadamente M * t
Exemplo:
Se um programa tem 10.001 instruções, quanto tempo leva para ser executado em um processador com pipeline de 5 estágios e relógio de 100 ns? E sem o pipeline?
T= (5 + (10.000))*100x10-9 =~ 1 ms (com pipeline)
T = 500 ns * 10.000 =~ 5ms (sem pipeline)
Problemas
Estágios podem ter tempos de execução diferentes:
Solução 1: Implementar esses estágios como um pipeline onde cada sub-estágio possui tempo de execução semelhante aos demais estágios do pipeline principal.
Solução 2: Replicar esse estágio, colocando réplicas em paralelo no estágio principal. O número de réplicas é
dado pela razão entre o tempo do estágio mais lento e os demais.
O sistema de memória é incapaz de manter o fluxo de instruções no pipeline
O uso de memória cache com alta taxa de acerto e tempo de acesso compatível com o tempo de ciclo do pipeline.
Dependências ou Conflitos (“Hazards”)
Conflitos Estruturais - Pode haver acessos simultâneos à memória feitos por 2 ou mais estágios.
Dependências de Dados - As instruções dependem de resultados de instruções anteriores, ainda não completadas.
Dependências de Controle - A próxima instrução não está no endereço subseqüente ao da instrução anterior.
Tratamento de Exceções
Pipeline na família ARM
São normalmente Pipelines de 3 a 6 Estágios:
1. Busca (Fetch) – Busca da instrução na memória
2. Decodificação (Decode) – Decodificação dos registradores usados na
instrução
1. Execução (Execute)
1. Leitura de registradores
2. Operações lógicas, aritméticas e de deslocamento;
3. Escrita em registradores, etc
https://wiki.ifsc.edu.br/mediawiki/index.php/Arquivo:MIPpipepent4.png
Pipeline: Situação Ideal
⇒ Todas as operações realizadas em registradores → 6 instruções em 6 ciclos de clock (ARM Cortex-M3)
Pior caso:
Salto indireto (instrução BX), 3 ciclos de clock para completar o salto (ARM Cortex-M3)
Arquitetura x Organização de computadores
Arquitetura = documento de especificação
Instruções
Exceções
Registradores
Memória
Ex: ARMv4, ARMv7, etc.
Não tem custo, pode ser obtido diretamente do website da ARM
Organização = implementação física (silício)
Ex: ARM7TDMI, ARM Cortex-M3, etc.
ARM vende a implementação de núcleos em VHDL ou máscara de difusão para empresas licenciadas
Outras características
18 registradores de 32 bits
• Tratamento muito eficiente de interrupções
https://wiki.ifsc.edu.br/mediawiki/index.php/Arquivo:MIPpipe1.png
https://wiki.ifsc.edu.br/mediawiki/index.php/Arquivo:MIPpipe2.png
• Gerenciamento de consumo de energia
• Projetado para ser programado em C (completamente, até mesmo tratamento de reset, interrupções e exceções)
• Permite uso de sistemas operacionais (RTOS)
– Modelo Usuário/Supervisor
Arquitetura ARMv7M
•Sem memória cache ou Unidade de Gerenciamento de Memória (MMU)
• Tabela de vetores contém endereços, não instruções
• Instrução DIV
• Interrupções salvam e recuperam automaticamente o estado do processador
Controlador de Interrupções é parte da macrocélula Cortex-M3
• Mapa de memória fixo
• Registrador único de estado do processador
• Núcleo de processamento Thumb-2
– Mistura de instruções de 16 e 32 bits (alta densidade de código), mas não requer alinhamento para instruções de 32 bits
<< Página da disciplina < Conjunto de Instruções Aula 7 - Estrutura e Funcionamento da CPU Arquitetura ARM >
Disponível em "https://wiki.ifsc.edu.br/mediawiki/index.php?title=AULA_7_-_Microprocessadores_-_Graduação&oldid=70318"
Esta página foi modificada pela última vez à(s) 15h13min de 25 de abril de 2023.
Conteúdo disponível sob GNU Free Documentation License 1.2, salvo indicação em contrário.
https://wiki.ifsc.edu.br/mediawiki/index.php/MIP
https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_5_-_Microprocessadores_-_Gradua%C3%A7%C3%A3o
https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_8_-_Microprocessadores_-_Gradua%C3%A7%C3%A3o
https://wiki.ifsc.edu.br/mediawiki/index.php?title=AULA_7_-_Microprocessadores_-_Gradua%C3%A7%C3%A3o&oldid=70318
http://www.gnu.org/copyleft/fdl.html

Outros materiais