Escolar Documentos
Profissional Documentos
Cultura Documentos
02 SuP Microprocessador ARM Cortex Hardware
02 SuP Microprocessador ARM Cortex Hardware
João Ranhel
Bom dia,
Boa tarde,
Boa noite..!
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
CPU CPU
ENDEREÇO DE ENDEREÇO DE
DADOS INSTRUÇÃO
periféricos periféricos
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
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 de Harvard
Mem. de dados
Programa
(ROM+RAM)
(ROM+RAM)
A Unidade de Controle na CPU pode operar os ⟡ dados ⟡
barramentos simultaneamente. ⟡ instruções ⟡
periféricos
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
Identificando Harvard...
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
Identificando Harvard...
Registradores
Identificando Harvard...
Memória de Instruções
Registrador de instruções
Contador de Programa
Identificando Harvard...
➢ Tendência é integrar CPU com processadores dedicados, criando SoC (system on Chips)
Barramento APB
(advanced peripheral bus) que
interliga os periféricos...
INF-317A - IA: COMPUTAÇÃO HETEROGÊNEA – Básicos: SPI e Dual-Port RAM
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)
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)
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)
R0
R1
R2
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
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)
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)
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)
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
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)!
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
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
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
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)
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)
0x40000000
0x3FFFFFFF
0x20000000
0x1FFFFFFF
CODE
0,5 Gbytes endereços de memória RAM estática
(flash)
0x00000000
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
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)
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
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
Dados
Endereços
Todos de 32 bits!
Periféricos internos
mapeados pelo fabricante do chip
(timers, watchdog, UART, SPI, I2C...)
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
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)
...
ON-CHIP
64k RAM
32k
...
512k
256k
ON-CHIP
128k ROM
64k
32k
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
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)
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
periféricos
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
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)
barramento de instruções
controle de
acesso direto à
memória
alimentação
clock e timers
RESET
supervisão de
alimentação
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
bus de alta
performance
clock e timers
supervisão de
alimentação e
reset
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
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)
(4) TIMERS
usos diversos
WDG timer
(Independent Watch Dog)
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
COMUNICAÇÃO
SERIAL
(spi,usart,i2c,can,usb)
SRAM
expansão
até 512 KB
EN2617 – SμP: processadores ARM – (Advanced RISC Machines)
➢ 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)
Obrigado...
Até a próxima aula.