Professional Documents
Culture Documents
AR1R 2021 10 ARM Pipeline
AR1R 2021 10 ARM Pipeline
Izvođenje naredaba i
protočna struktura
Efikasno izvođenje poslova
AR1R 2
1
2
3 1 1 1 2 2
3
2
2 3 3 3 1
1 3
2 3 2 1 2
3 1
• Npr. neka imamo redom naredbe ADD, SUB i EOR koje se trebaju izvesti:
Dohvati Dekodiraj Izvedi
ADD ADD ADD ADD
Dohvati Dekodiraj Izvedi
SUB SUB SUB SUB
Dohvati Dekodiraj Izvedi
EOR EOR EOR EOR
T1 T2 T3 T4 T5 T6 T7 T8 T9
• Primjer:
Procesor A
• Kašnjenje log. vrata= 0.1ns
• Kašnjenje za logički blok
• Procesor A = 0.6 ns
• Procesor B = 0.4 ns
• Max. frekvencija
• Procesor A = 1.66 GHz
• Procesor B = 2.5 GHz
Procesor B
• Minimizacijom logike i
promjenom izvedbe (npr.
carry look-ahead zbrajala
umjesto običnih) postižu se
značajna ubrzanja bez
mijenjanja tehnologije
Podjela funkcijskih modula na manje cjeline
AR1R 11
( a + b) c fmax = 1 GHz
1 ns
CLK
Protočna struktura
procesora ARM
Protočna struktura procesora ARM
AR1R 14
Dohvat
• Svaka naredba izvodi se u tri koraka:
• u prvom koraku naredba se dohvaća
• u drugom koraku naredba se dekodira Dekodiranje
• u trećem koraku naredba se izvodi
Izvođenje
Address register
Address
incrementer
koristi se za generiranje adrese
iz PC-a i slanje te adrese na
Rd Registers PC
vanjsku adresnu sabirnicu
Rn Rm
Instruction
32 x 8
Multiplier
decoder and • Naredba se učitava iz memorije i
ALU bus
bus
32-bit
protočna struktura postoji da bi
ALU ARM mogao čitati dijelove
strojnog koda naredbe sve do
trenutka njenog izvođenja
Write data reg. Instruction pipeline
Read data register
Thumb instr. controller
D[31:0]
ARM protočna arhitektura : DEKODIRANJE
AR1R 16
A[31:0]
Dekodiranje naredbe:
Address register
• Naredba pročitana u
PC bus
Address
incrementer
prethodnom periodu se
Rd Registers PC dekodira
Rn Rm
Instruction
32 x 8
• Ovdje se može vidjeti da
decoder and
Multiplier
ALU bus
ARM tijekom
bus
Barrel
shifter
DEKODIRANJA ne koristi
B bus
A[31:0]
Address
incrementer
Instruction
32 x 8
Multiplier
decoder and • Vidimo da IZVOĐENJE ne utječe na
ALU bus
bus
Barrel
shifter
naredbe niti na dio procesora koji
B bus
D[31:0]
IZVOĐENJE: Naredbe za obradu podataka
AR1R 19
ADDS
EOR
CMP
SUB
MOV
BIC Dekodiranje
ADDS
EOR
CMP
SUB
MOV
BIC Izvođenje
• Naredba STM:
• Korak izvođenja traje n+1 period (n je broj registara koji se
spremaju)
• Period 1: Računanje adrese za spremanje podatka +
dohvat sljedeće naredbe koja će se kasnije izvesti
• Period 2: Pisanje prvog podatka u memoriju
• Period 3: Pisanje drugog podatka u memoriju
• ...
Objašnjenje izvođenja naredbe STR
AR1R 25
ADD R0,R1,R2
Dohvat Dekodiranje Izvođenje STR R0,[R6+2]
1 Dohvat ADD SUB R5,R6,R7
2 Dohvat STR Dekodiranje ADD AND R8,R9,R0
3 Dohvat SUB Dekodiranje STR Izvođenje ADD EOR R1,R2,R3
4 Dohvat AND Računanje adrese R6+2 za STR
5 Dekodiranje SUB Spremanje u memoriju STR
6 Dohvat EOR Dekodiranje AND Izvođenje SUB
7 Dekodiranje EOR Izvođenje AND
8 Izvođenje EOR
Napomene:
- Za vrijeme računanja adrese može se pristupati memoriji pa se to
koristi za dohvat slijedeće naredbe (ali se prethodna ne dekodira)
- Za vrijeme spremanja u memoriju ne može se dohvaćati iduća naredba
Izvođenje naredaba za prijenos podataka: LDR, LDM
AR1R 26
Zaključak:
• Za vrlo kratke odsječke uvjetno izvođenje je brže bez obzira na statistiku
uvjeta (tj. koliko puta je uvjet istinit, a koliko puta je lažan)
• Za dulje odsječke ili za odsječke s memorijskim naredbama uvjetno grananje
je brže
Sabirnički periodi na AHB (samo za informaciju)
AR1R 32
• Podsjetnik:
• MUL{cond}{S} Rd,Rm,Rs
• MLA{cond}{S} Rd,Rm,Rs,Rn