Você está na página 1de 73

EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

João Ranhel

Bom dia,
Boa tarde,
Boa noite..!
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Aula passada... João Ranhel

Von Neumann Memória Memória de Harvard


Mem. de dados
(ROM+RAM) Programa
(ROM+RAM)
(ROM+RAM)
⟡ dados ⟡
⟡ dados ⟡
⟡ instruções ⟡ ⟡ instruções ⟡

DATA ENDEREÇO DATA INSTRUÇÕES

CPU CPU
ENDEREÇO DE ENDEREÇO DE
DADOS INSTRUÇÃO

periféricos periféricos
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Aula passada... João Ranhel

Von Neumann
O projeto da Unidade de Controle na CPU deve levar em conta
que o barramento de dados ora transporta INSTRUÇÕES e ora
(Princeton architecture) transporta DADOS, multiplexados no tempo.

Memória A memória externa à CPU tem instruções e dados intercalados,


portanto, a unidade de controle tem que coordenadar
(ROM+RAM) quando/onde está buscando instrução e quando/onde está
⟡ dados ⟡ buscando ou gravando dados.
⟡ instruções ⟡

Exemplos mais conhecidos de computador x86 e AMD


DATA ENDEREÇO
Vantagens:
→ Não precisa de blocos de memória separados (mais barato)
CPU
Gargalos:
→ Dados e instruções compartilham o mesmo barramento,
portanto há necessidade de dividirem o tempo de uso. Isso
diminui a taxa de transferência de dados/instruções
(throughput).
periféricos
Desvantagens:
Por compartilharem o mesmo bus, tendem a ser mais lentos
nos algoritmos que fazem busca/gravação constante na
memória, algumas vezes solucionados por memória CACHE.
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Aula passada... João Ranhel

Memória de Harvard
Mem. de dados
Programa
(ROM+RAM)
(ROM+RAM)
A Unidade de Controle na CPU pode operar os ⟡ dados ⟡
barramentos simultaneamente. ⟡ instruções ⟡

Isso significa que pode ocorrer busca de


INSTRUÇÕES ao mesmo tempo em que dados são
DATA INSTRUÇÕES
buscados ou gravados na memória de dados.
Operação em “pipeline” pode aumentar a
eficiência do processamento.
CPU
ENDEREÇO DE ENDEREÇO DE
Por outro lado, implica que a unidade de controle DADOS INSTRUÇÃO
tem que lidar com dois endereçamentos.

periféricos
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Exemplos de arquitetura Harvard : microcontroladores PIC João Ranhel

Diagrama de blocos do processador PIC (imagem divulgação na internet)


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Exemplos de arquitetura Harvard : microcontroladores AVR - Arduino João Ranhel

➢ Diagrama blocos AVR

Identificando Harvard...
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Exemplos de arquitetura Harvard : microcontroladores AVR - Arduino João Ranhel

➢ Diagrama blocos AVR

Identificando Harvard...

Registradores

ULA (ou ALU)

O AVR tem 32 registradores de uso geral + registrador de


status (em vez de apenas os registradores X, Y, A e F usados na
aula passada...)

Qualquer desses registradores pode ser um operando da


ALU e qualquer outro pode receber resultado via DATA BUS
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Exemplos de arquitetura Harvard : microcontroladores AVR - Arduino João Ranhel

➢ Diagrama blocos AVR

Identificando Harvard...

Memória de Instruções

Registrador de instruções

Contador de Programa

O contador de programa (PC) endereça uma memória


separada (Flash – memória de instruções ou de
programa...)

A instrução (saída da Flash) vai direto para o registrador


de instrução e daí para a unidade de controle (Instruction
Decoder) que gera as linhas de controle internos.

Esse caminho não depende do barramento de dados


(data bus de 8-bits).
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Exemplos de arquitetura Harvard : microcontroladores AVR - Arduino João Ranhel

➢ Diagrama blocos AVR

Identificando Harvard...

DADOS fluem no controlador pelo DATA BUS 8-bits.

Há uma memória de rascunho RAM (volátil) e


uma memória EEPROM não volátil.

Todos os periféricos se comunicam com a ULA ou com os


registradores (e RAM) via data bus.
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Exemplos de arquitetura Harvard : microcontroladores AVR - Arduino João Ranhel

➢ Tendência é integrar CPU com processadores dedicados, criando SoC (system on Chips)

Ilustração em blocos do processador AVR (usado no ARDUINO) – imagem divulgação da Internet.


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Diagrama de blocos de um SoC baseado em ARM (NXP – LPC1102) João Ranhel
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Diagrama de blocos de um SoC baseado em ARM (NXP – LPC1102) João Ranhel

Interface p/ DEPURAÇÃO (debug)

núcleo (CORE) processador


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Diagrama de blocos de um SoC baseado em ARM (NXP – LPC1102) João Ranhel

A ARM criou o padrão de barramentos Advanced


Microcontroller Bus Architecture (AMBA)
usado em todos os µC baseados em ARM core.

Matriz de barramentos AHB


(advanced high-performance bus)
de alta velocidade...
(liga FLASH, RAM e ROM)

Ponte (bus bridge)


com bus de periféricos
de baixa velocidade

Barramento APB
(advanced peripheral bus) que
interliga os periféricos...
INF-317A - IA: COMPUTAÇÃO HETEROGÊNEA – Básicos: SPI e Dual-Port RAM

⟡ ARM – núcleo processador... João Ranhel


INF-317A - IA: COMPUTAÇÃO HETEROGÊNEA – Básicos: SPI e Dual-Port RAM

⟡ lembrando... : LATCH– célula base de um registrador João Ranhel

Célula básica de uma RAM estática - célula 6T


INF-317A - IA: COMPUTAÇÃO HETEROGÊNEA – Básicos: SPI e Dual-Port RAM

⟡ Lembrando... : RAM – Matriz de células 4 endereços x 4 bits João Ranhel


INF-317A - IA: COMPUTAÇÃO HETEROGÊNEA – Básicos: SPI e Dual-Port RAM

⟡ LAB : Dual Port RAM – conceito e símbolo do bloco João Ranhel

Port 1 Port 2

➢ Na RAM dual-port cada posição de memória pode ser lida/escrita por dois
portos
diferentes, cada porto tem seu bus de endereço e dados, e pode ter CLK, WE e
RE.
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Recordando: Flip-Flop tipo D, registradores (latch), lógica 3-state João Ranhel

bus #0

bus #1
Single-port register

D0 D0 Q0’
Latch tipo D
→ armazena 1 bit na
descida do comando LE D1 D1 Q 1’

D2 D2 Q2 ’

•••
DN-1 DN-1 QN-1’

LE
OE1
Latch-D 3-STATE
→ Permite a saída do bit
memorizado no FF-D quando
o sinal OE = ‘1’.
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Recordando: Flip-Flop tipo D, registradores (latch), lógica 3-state João Ranhel

➢ CONCEITO NOVO: DUAL-PORT REGISTER (DUAL-PORT RAM)


bus #0

bus #1
Dual-port register bus #2

D0 D0 Q0’
Latch tipo D
→ armazena 1 bit na
descida do comando LE D1 D1 Q 1’

D2 D2 Q2 ’

•••
DN-1 DN-1 QN-1’

LE
OE1
Latch-D 3-STATE OE2
→ Permite a saída do bit
memorizado no FF-D quando
o sinal OE = ‘1’.
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Elementos básicos na arquitetura ARM – arquitetura HARVARD João Ranhel

R0
R1
R2
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Elementos básicos na arquitetura ARM – arquitetura HARVARD João Ranhel

R0
R1
Unidade Lógica e Aritmética R2
R3
→ Soma A e B R4
→ Subtrai A de B R5
→ Faz AND de A com B R6
→ Faz OR de A com B R7
→ ... R8
→ Compara A com B R9
R10
Tudo controlado por sinais de seleção de operação... R11
R12
R13 (SP)
R14 (LR)
R15 (PC)
cpsr

Seleção de
operação ALU
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Elementos básicos na arquitetura ARM – arquitetura HARVARD João Ranhel

R0
R1
R2
R3
→ Bus A – leva o valor de um registrador Ra à ALU, R4
R5
→ Bus B - leva o valor de outro registrador Rb à ALU, R6
R7
→ Bus Alu – retorna o resultado p/ um dos registradores R8
R9
R10
R11
R12
R13 (SP)
R14 (LR)
R15 (PC)
A bus
cpsr

B bus

ALU
ALU bus
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Elementos básicos na arquitetura ARM – arquitetura HARVARD João Ranhel

R0
R1
R2
R3
R4
a) Como se controla qual registrador vai usar o barramento A ou R5
o barramento B ? R6
b) É possível executar a operação: R1  R1 + R5 ? R7
R8
c) Quantos pulsos de clock seriam necessários nessa instrução?
R9
R10
R11
R12
R13 (SP)
R14 (LR)
R15 (PC)
cpsr
A bus
B bus

ALU
ALU bus
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Elementos básicos na arquitetura ARM – arquitetura HARVARD João Ranhel

R0
R1
R2
➢ RESPOSTAS: R3
R4
a) Como se controla qual registrador vai usar o barramento A ou R5
o barramento B ? R6
b) É possível executar a operação: R1  R1 + R5 ? R7
R8
c) Quantos pulsos de clock seriam necessários nessa instrução?
R9
R10
R a) A unidade de controle liga o OE de apenas 1 registrador para o R11
barramento A, e o OE de apenas 1 registrador para o barramento B.
Então, liga o LE do registrador que recebe o resultado. R12
R13 (SP)
R b) Sim, o mnemônico pode ser: ADD R1,R1,R5
R14 (LR)
R c) Depois do FETCH e DECODIFICAÇÃO, seria necessário + 1 clock apenas.
R15 (PC)
cpsr
A bus
B bus

ALU
ALU bus
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: barrel shifter / rotator (deslocador de bits << ou >>) João Ranhel

Recordando... Registrador Universal de deslocamento


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: barrel shifter / rotator (deslocador de bits << ou >>) João Ranhel

Recordando... Registrador Universal de deslocamento

a) O que significa DESLOCAR 2 bits para a


esquerda em um número binário sem sinal?
b) O que significa deslocar 1 bit para a direita?
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: barrel shifter / rotator (deslocador de bits << ou >>) João Ranhel

Recordando... Registrador Universal de deslocamento

R a) Considerando que o bit mais significativo (MSB) fica à


esquerda, deslocar 2 bits para a esquerda significa multiplicar
o número BCD por 4

a) O que significa DESLOCAR 2 bits para a


R b) Considerando MSB à esquerda, deslocar 1 bit para a esquerda em um número binário sem sinal?
direita significa dividir o número por 2
b) O que significa deslocar 1 bit para a direita?
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: barrel shifter / rotator (deslocador de bits << ou >>) João Ranhel

Problema com o registrador de deslocamento é que cada bit deslocado usa 1 clock.
Criou-se então o circuito BARREL SHIFTER (feito apenas com lógica combinacional)!

➢ CONCEITO NOVO: BARREL SHIFTER (deslocador programável de N bits)


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: barrel shifter / rotator (deslocador de bits << ou >>) João Ranhel

Problema com o registrador de deslocamento é que cada bit deslocado usa 1 clock.
Criou-se então o circuito BARREL SHIFTER (feito apenas com lógica combinacional)!
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: barrel shifter / rotator (deslocador de bits << ou >>) João Ranhel

Problema com o registrador de deslocamento é que cada bit deslocado usa 1 clock.
Criou-se então o circuito BARREL SHIFTER (feito apenas com lógica combinacional)!
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: barrel shifter / rotator (deslocador de bits << ou >>) João Ranhel

Problema com o registrador de deslocamento é que cada bit deslocado usa 1 clock.
Criou-se então o circuito BARREL SHIFTER (feito apenas com lógica combinacional)!
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: barrel shifter / rotator (deslocador de bits << ou >>) João Ranhel

Também é possível criar BARREL SHIFTER a partir de MULTIPLEXADORES ...


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE de um microprocessador ARM João Ranhel

A31..A0 Controle
R0
R1
ADDRESS REG R2
R3
R4
R5
R6
++ R7
R8
NÚCLEO ( CORE ) R9 decodificador
R10
simplificado R11 de instruções
R12
de um processador R13 (SP) e
ARM R14 (LR)
R15 (PC)
controle
cpsr
A bus
banco de
Advanced B bus
registradores
Risc Multiplic.
Architecture
barrel shifter

ALU
ALU bus

DATA OUT DATA IN

barramento de dados D31..D0


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE de um microprocessador ARM João Ranhel

NÚCLEO ( CORE ) A31..A0 Controle


R0
simplificado R1
de um processador ADDRESS REG R2
R3
ARM R4
R5
R6
++ R7
R8
R9 decodificador
R10
R11 de instruções
R12
R13 (SP) e
R14 (LR)
R15 (PC)
controle
cpsr
A bus
Como executar a instrução: banco de
registradores
B bus
MOV R1  R0
Multiplic.

sem usar a CPU ?


barrel shifter
Como executar a instrução:
MOV R1  DATA IN
ALU
ALU bus

DATA OUT DATA IN

barramento de dados D31..D0


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE de um microprocessador ARM João Ranhel

A31..A0 Controle
R0
R1
ADDRESS REG R2
R3
R4
R5
R6
++ R7
R8
NÚCLEO ( CORE ) R9 decodificador
R10
simplificado R11 de instruções
R12
de um processador R13 (SP) e
ARM R14 (LR)
R15 (PC)
controle
cpsr
A bus banco de
registradores
Multiplic. B bus

BS

ALU
ALU bus

DATA OUT DATA IN

barramento de dados D31..D0


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE de um microprocessador ARM João Ranhel

A31..A0 Controle
R0
R1
ADDRESS REG R2
R3
R4
R5
R6
++ R7
R8
NÚCLEO ( CORE ) R9 decodificador
R10
simplificado R11 de instruções
R12
de um processador R13 (SP) e
ARM R14 (LR)
R15 (PC)
controle
cpsr
A bus banco de
registradores
Multiplic. B bus

BS

Matriz de BARRAMENTOS
✓ permite que dados sejam
ALU
transferidos da memória (MEM
ALU bus
bus – não mostrado) para o
registrador PC (instruções), DATA IN
DATA OUT
✓ ou da memória para um
registrador,
✓ ou entre registradores... barramento de dados D31..D0
(exemplo com 1 MUX)
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE de um microprocessador ARM João Ranhel

Todos os registradores são de 32 bits ! R0


porém, cada registrador pode conter: R1
R2
Byte = 8 bits R3
Half-word = 16 bits R4
Word = 32 bits R5
R6
R7
R8
R9
R10
R11
R12
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE de um microprocessador ARM João Ranhel

Todos os registradores são de 32 bits ! R0


porém, cada registrador pode conter: R1
R2
Byte = 8 bits R3
Half-word = 16 bits R4
Word = 32 bits R5
R6
➢ R13 – Stack Pointer R7
R8
(apontador da pilha – guarda o último ENDEREÇO da pilha na RAM)
R9
R10
➢ R14 – Link Register R11
(guarda o endereço de RETORNO quando uma subrotina é chamada) R12
R13 (SP)
R14 (LR)
➢ R15 – Program Counter
(guarda o endereço da próxima INSTRUÇÃO a ser executada) R15 (PC)
cpsr
banco de
registradores
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE de um microprocessador ARM João Ranhel

Todos os registradores são de 32 bits ! R0


porém, cada registrador pode conter: R1
R2
Byte = 8 bits R3
Half-word = 16 bits R4
Word = 32 bits R5
R6
➢ R13 – Stack Pointer R7
R8
(apontador da pilha – guarda o último ENDEREÇO da pilha na RAM)
R9
R10
➢ R14 – Link Register R11
(guarda o endereço de RETORNO quando uma subrotina é chamada) R12
R13 (SP)
R14 (LR)
➢ R15 – Program Counter
(guarda o endereço da próxima INSTRUÇÃO a ser executada) R15 (PC)
cpsr
➢ CPSR – reg de flags de status do programa
banco de
(Current Program Status Register).
registradores

➢ Centenas de registradores são usados para configurar dispositivos


I/0 dentro do CHIP, como veremos. Contudo, não são registradores de
uso geral, portanto não possuem instruções que os identifiquem. As
instruções do ARM têm como operando apenas estes registradores.

➢ Endereço de memória é relativo a 1 byte (para endereçar words = ++ 4 bytes)


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE de um microprocessador ARM João Ranhel

R0
➢ Toda a memória e periféricos estão mapeados em 32 bits! R1
R2
0xFFFFFFFF R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13 (SP)
R14 (LR)
R15 (PC)
cpsr
banco de
registradores

0x00000000
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Mapa de uma arquitetura ARM – mapa de um µC João Ranhel

0x5FFFFFFF ESPAÇO DE MEMÓRIA ON-CHIP

PERIF 0,5 Gbytes endereços de periféricos

0x40000000
0x3FFFFFFF

SRAM 0,5 Gbytes endereços de memória RAM estática

0x20000000
0x1FFFFFFF

CODE
0,5 Gbytes endereços de memória RAM estática
(flash)

0x00000000
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Mapa de uma arquitetura ARM – mapa de um µC João Ranhel

ESPAÇO DE MEMÓRIA OFF-CHIP

0xDFFFFFFF

PERIFÉRICOS
0,5 Gbytes endereços de periféricos EXTERNOS
(EXTERNOS)

0xA0000000
0x9FFFFFFF

RAM
0,5 Gbytes endereços de memória RAM EXTERNA
(EXTERNA)

0x60000000
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Mapa de uma arquitetura ARM – mapa de um µC João Ranhel

ESPAÇO DE MEMÓRIA DO FABRICANTE


(e espaço reservado para funções específicas – 1MB)

0xFFFFFFFF

ESPECÍFICA
(FABRICANTE: 0,5 Gbytes endereços liberados para um fabricante...
ST, NXP,TI, etc)

0xE0100000
0xE00FFFFF
1 Mbytes barramento periférico privado
PRIVADO - Nested Vector Interrupt Controller – NVIC
(PERIFÉRICOS - System Tick Timer – SysTick
ESPECÍFICOS) - Fault Status and Control
- Depurador do processador (debugging)
0xE0000000
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: SoC baseado em um núcleo ARM João Ranhel

⟡ SoC (System on Chip) baseado em core ARM

D MATRIZ
CORE ARM A DE BUSES
alta performance
T
A
+
A
D
D
+
Para saber mais sobre JTAG:
C
https://youtu.be/ZkvdVkRCJM0 B
T
U
https://youtu.be/PhaqHKyAvR4 R
S
L
P
E
BUS
R para
I periféricos
F.
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: SoC baseado em um núcleo ARM João Ranhel

⟡ Várias empresas licenciam o “core” ARM e seus barramentos, e inserem processadores (periféricos)
adicionais (como ADC, DAC, USB, PWM, timers, etc.); memórias (FLASH, EEPROM, RAM) e bus-bridges.
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
⟡ Arquitetura HARVARD: SoC baseado em um núcleo ARM João Ranhel

⟡ SoC (System on Chip) baseado em core ARM – exemplo: Atmel SAM4S


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Arquitetura ARM – registradores / mapa de memória / I-O João Ranhel

Os registradores podem conter:

Dados
Endereços

Todos de 32 bits!

É tarefa do programador interpretar


se o conteúdo do registrador é dado
ou endereço!
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Arquitetura ARM – registradores / mapa de memória / I-O João Ranhel

Periféricos internos
mapeados pelo fabricante do chip
(timers, watchdog, UART, SPI, I2C...)
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Arquitetura ARM – registradores / mapa de memória / I-O João Ranhel

Memória ROM e RAM interna


mapeados pelo fabricante do chip
(flash, eeprom, SRAM...)

3FFF FFFFh
...
2008 0000h
2000 FFFFh ON-CHIP
2000 8000h 64k
RAM
2000 7FFFh
2000 0000h 32k
1FFF FFFFh
...
0008 0000h
0007 FFFFh
0004 0000h 512k
0003 FFFFh
0002 0000h 256k
0001 FFFFh ON-CHIP
0001 0000h 128k ROM
0000 FFFFh
0000 8000h 64k
0000 7FFFh
0000 0000h 32k
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Arquitetura ARM – registradores / mapa de memória / I-O João Ranhel

...

ON-CHIP
64k RAM

32k

...

512k

256k
ON-CHIP
128k ROM

64k

32k
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Relembrando que ARM é uma arquitetura HARVARD João Ranhel

➢ Na arquitetura Harvard a memória de dados é separada da de instruções !!!

Memória de Harvard
Mem. de dados
Programa
(ROM+RAM)
(ROM+RAM)
⟡ dados ⟡
⟡ instruções ⟡

DATA INSTRUÇÕES

CPU
ENDEREÇO DE ENDEREÇO DE
DADOS INSTRUÇÃO

periféricos
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Relembrando que ARM é uma arquitetura HARVARD João Ranhel

➢ Na arquitetura Harvard a memória de dados é separada da de instruções !!!

Memória de Harvard
Mem. de dados
Programa
(ROM+RAM)
(ROM+RAM)
ENTÃO... ⟡ dados ⟡
⟡ instruções ⟡
ENQUANTO A CPU EXECUTA UMA
INSTRUÇÃO, PODEMOS BUSCAR
OUTRA... DATA INSTRUÇÕES

ESSE É O CONCEITO DE PIPELINE !


CPU
ENDEREÇO DE ENDEREÇO DE
DADOS INSTRUÇÃO

periféricos
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Relembrando que ARM é uma arquitetura HARVARD João Ranhel

➢ Pipeline permite buscar instruções (fetch – IF ) e executá-las simultaneamente !!!


O número de estágios da
pipeline é definida no projeto
do microprocessador...

(um exemplo com 5 estágios...)

latches
(armazenagem entre estágios)

Write Back
(salva na memória)

Instruction Decoder
(decodifica a instrução)

Intruction Fetch
(unidade que busca a instrução)
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Arquitetura ARM – execuções de instruções na pipeline João Ranhel

No modelo de 3 estágios, algumas instruções requerem cálculo de endereço de memória


para terminar a instrução. Isso pode causar um delay nas instruções seguintes...

➢ CONCEITO NOVO: PIPELINE (cadeia simultânea de operações)


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Arquitetura ARM – modelo de pipeline mais comum (5 estágios) João Ranhel


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Arquitetura ARM – harzards em pipeline de 5 estágios... João Ranhel

3 tipos de “hazards” (ameaças) à execução correta do programa:


Structural hazard: quando 2 ou mais instruções precisam usar o
mesmo recurso de hardware (estágio do pipeline) ao mesmo tempo;
Data hazard: quando uma operação em uma instrução depende de um
dado que ainda está sendo calculado na pipeline;
Control hazard: uma ameaça surge quando se faz uma transferência
(e.g. JUMP) dependente de informações ainda em processamento na
pipeline.
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel

barramento de instruções

controle de
acesso direto à
memória

✓ A CPU busca instruções na FLASH via barramento de instruções;


✓ grava/lê dados da SRAM também pelo barramento de dados na bus matrix...
✓ grava/lê dados na FLASH via barramento de dados, pela matriz de barramentos
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel

alimentação

clock e timers

RESET
supervisão de
alimentação
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel

bus de alta
performance

(ponte) bus-bridge barramento de periféricos


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel


bus de alta
performance

clock e timers
supervisão de
alimentação e
reset
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel

5 ports ( GPIO )
PA...PE (16 bits)
pinos de entrada e saída genéricos

2 conversores AD
( ADC1 ADC2 )
12 bits cada conversor

1 sensor de temperatura
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel

(4) TIMERS
usos diversos

WDG timer
(Independent Watch Dog)
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel

COMUNICAÇÃO
SERIAL
(spi,usart,i2c,can,usb)

SRAM
expansão
até 512 KB
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ CORE do microprocessador ARM CORTEX M3 (STM32F103...) João Ranhel


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Placa ARM CORTEX M3 (STM32F103...) João Ranhel

pinos físicos do CI...


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Placa ARM CORTEX M3 (datasheet do STM32F103...) João Ranhel


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Placa ARM CORTEX M3 (datasheet do STM32F103...) João Ranhel

apenas conferindo alguns pinos !!!


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Placa ARM CORTEX M3 (STM32F103...) João Ranhel


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Resumo da aula de hoje... João Ranhel

➢ Vimos os conceitos básicos do núcleo do processador ARM;

➢ ARM possui 16 registradores de uso geral (3 reservados: PC, LR, SP)

➢ Os registradores são interligados entre si, com a RAM e a FLASH via matriz de
barramentos de alta performance (AMBA-AXI);

➢ Também são interligados com periféricos via barramento mais lento (AMBA-APB)

➢ Registradores são de 32 bits – podem conter endereços ou dados!

➢ Mapa de memória é predefinido (232 = 4 Gbytes de endereços)

➢ Memória e Periféricos estão mapeados em um único espaço de endereços

➢ A ARM licencia o núcleo para que fabricantes agreguem periféricos/memória


EN2617 – SμP: processadores ARM – (Advanced RISC Machines)

⟡ Aulas seguinte ... João Ranhel

➢ CONJUNTO DE INSTRUÇÕES e a forma de operação do ARM.

Obrigado...
Até a próxima aula.

Você também pode gostar