Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Univerzitet u Novom Sadu
Fakultet tehničkih naukaOdsek za računarsku tehniku i
računarske komunikacije
Memorijski podsistem i adresni režimi procesora
JEDINICA ZA GENERISANJE ADRESA 1/3
Zbog specifične – harvard arhitekture uvode se JEDINICE ZA GENERISANJE ADRESA - AG
Kod AG instrukcija, osnova je PC:
AG mora obavljati izvesne aritmetičke operacije
AG mora da podrži hardversku petlju
Brojač ciklusa (smanjuje se kada se izvrši segment koda)
Registar početka segmenta- START
Registar kraja segmenta – STOP (ili registar dužine segmenta)
AG mora da obezbedi skokove na adrese vektora prekida:
1) PC se smesta na sistemski stek
2) U PC se smesta početna reč rutine za obradu prekida
3) Po završetku obrade prekida, u PC se smešta vrh steka
JEDINICA ZA GENERISANJE ADRESA 2/3
Jedinica za generisanje adresa podataka:
Odgovorna za generisanje adrese u memoriji za podatke na osnovu adrese u adresnom delu instrukcije
Podržano adresiranje:
Kružno ili modulo adresiranje
Bit-obrnuto adresiranje
JEDINICA ZA GENERISANJE ADRESA
3/3
MUX
ALJ
REGISTAR DUŽINE
OBRTANJE BITA
ZAJEDNIČKA MAGISTRALA
REGISTAR PETLJE ADRESNI REGISTAR
LOGIKA PETLJE
Prikaz pristupa podacima u memoriji
5
6
Adresni generator podataka -adresiranje
Informacije koje su potrebne procesoru se mogu nalazitiili u memoriji ili u registrima
U zavisnosti gde se te informacije nalaze procesorpodržava različite adresne režime
Adresiranje je operacija kojom se definišu lokacijeOPERANADA u memoriji
7
Adresni režimi
Današnji procesori podržavaju neke od sledećih adresnihrežima:
1. PRETPOSTAVLJENO ADRESIRANJE
2. NEPOSREDNO ADRESIRANJE
3. MEMORIJSKO DIREKTNO ADRESIRANJE
4. REGISTARSKO DIREKTNO ADRESIRANJE
5. REGISTARSKO INDIREKTNO ADRESIRANJE
6. REGISTARSKO INDIREKTNO ADRESIRANJE SA INDEKSACIJOM
Adresni režimi DSP procesora (1)
1. PRETPOSTAVLJENO ADRESIRANJE (IMPLIED ADDRESSING) (podazumeva se da je operand u nekoj lokaciji, npr: namenskim registrima za tu inst.)
2. DIREKTNI PODACI (immediate data) NEPOSREDNA ADRESA. Sam operand (a ne njegova adresa) se nalazi u instrukcionoj reči.(male reči u instr.)
3. MEMORIJSKO – DIREKTNO ADRESIRANJE (MEMORY DIRECT ADDRESSING), naziva se i apsolutno adresiranje, podaci koji se adresiraju, stoje u memoriji na lokaciji čija je adresa kodirana u instrukciji.
Adresni režimi DSP procesora (2)
4. REGISTARSKO – DIREKTNO ADRESIRANJE (REGISTER DIRECT ADDRESSING), adresirani podacisu u registru, u adresnom delu instrukcije se definišeadresa registra u kom su podaci.
5. REGISTARSKO – INDIREKTNO ADRESIRANJE je adresiranje kod koga se adresirani podaci nalaze u memoriji, a adresa memorijske lokacije koja ih sadržinalazi se u registru.REGISTARSKOG – INDIREKTNOG ADRESIRANJA SA POST ILI
PRE-INKREMENTOM
6. REGISTARSKO – INDIREKTNO ADRESIRANJE SA INDEKSACIJOM se odnosi na adresiranje u kome su vrednosti smeštene u dva adresna registra i sabiraju se radi formiranja efektivne adrese
10
Prikaz adresnih režimi
2.
3.
6.
4.
5.
Adresni režimi DSP procesora (3)
ADRESNI REŽIMI
REGISTARSKO – INDIREKTNO ADRESIRANJE SA MODULO ADRESNOM ARITMETIKOM
Primene kružnog bafera
Za rukovanje kružnim baferom, koriste se:Startna adresa
Adresa kraja/dužine
Pokazivač upisa
Pokazivač čitanja
X0
X1 X2
X3
X4
POKAZIVAČ
ČITANJA
POKAZIVAČ
UPISA
X0 X1 X2 X3 X4
POKAZIVAČ
ČITANJA
POKAZIVAČ
UPISA
a)
Adresni režimi DSP procesora (4)
REGISTARSKO-INDIREKTNO ADRESIRANJE SA BIT OBRNUTIM REDOSLEDOM
X0
X1
X2
X3
X4
X5
X6
X7
FFT
X0
X4
X2
X6
X1
X5
X3
X7
a)
BINARNI
BROJAČ
MSB LSB
0 0 0 = 0
0 0 1 = 1
0 1 0 = 2
0 1 1 = 3
1 0 0 = 4
1 0 1 = 5
1 1 0 = 6
1 1 1 = 7
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
=
=
=
=
=
=
=
=
0
4
2
6
1
5
3
7
Biti obrnuti
b)
c)
0 ti izlazni element =
=
=
=
=
=
=
=
X0
X4
X2
X6
X1
X5
X3
X7
4 ti izlazni element
2 gi izlazni element
6 ti izlazni element
1 vi izlazni element
5 ti izlazni element
3 ći izlazni element
7 mi izlazni element
d)
FFT česta primena:tranformacija vremenskog u frekventi domen->nedostatak je skremblovani ulaz/izlaz
Najneobičniji adresni režim, adresiranje obrtanjem bita koristi se za sračunavanje FFT
Memorijski sistem DSP procesora CS48X
CS48X sadrži 2 memorije za podatke (X i Y) i programskumemoriju
Adrese u programskoj memoriji generiše posebna jedinica(engl. Program Control Unit)
Adrese u memoriji podataka generiše posebna adresnajedinica (AGU engl. Address Generation Unit)
13
Jedinica za generisanje adresa podataka procesora CS48X (1)
Generiše adrese podataka za X i Y memoriju
Dve adresne magistrale, istovremeno adresiranje dvememorije podataka
Sve informacije potrebne za adresiranje se čuvajuparovima 16-bitnih registara
U AGU jedinici se nalaze 12 indeksnih (i0-i11) registara i 12 modulo-ofset registara (nm0-nm11)
Jedan deo modulo-ofset registara definiše adresni režim,a drugi deo indeksaciju (ofset)
14
Jedinica za generisanje adresa podataka procesora CS48X (2)
15
Adresni režimi procesora CS48X
Adresiranja koja podržava ovaj procesor:
NEPOSREDNO ADRESIRANJE
POSREDNO ADRESIRANJE
MODULO ADRESIRANJE (Podrška kružnom baferu)
LINEARNO ADRESIRANJE
POSREDNO ADRESIRANJE SA BIT OBRNUTIM REDOSLEDOM(Podrška za FFT algoritam)
16
Neposredno adresiranje(memorijski direktno)
Podatak se nalazi u nekoj od memorijskih zona (X ili Y), da bi prihvatili podatak moramo imati njegovu adresu
Za ovakav tip adresiranja koristimo instrukciju koja u sebi sadrži traženu adresu na kojoj se nalazi operand
Operand instrukcije je adresa (kao konstanta ili simbol kojipredstavlja to mesto u memoriji)
Primer: a0 = xmem[0x811] ili a0 = xmem[X_address]
Postoje dve verzije ovakvog adresiranja:
1. Zauzima se cela instukcijska reč
2. Zauzima se samo deo instrukcijske reči
Koje su prednosti druge verzije u odnosu na prvu?
17
Posredno adresiranje(registarsko indirektno)
Ovakav tip adresiranja zahteva da se u nekim od registaranalazi adresa u memoriji čijem sadržaju pristupamo
Kao operand navodimo jedan od indeksnih registara AGU (i0-i11)
Primer: x0 = xmem[i1] ili y0 = ymem[i1]
Sadržaj indeksnog registra se ažurira preko jednog od odgovarajućih nm registara
18
Linearno adresiranje
Poseban slučaj posrednog adresiranja
Pogodan pri prolasku kroz bafer, tako da indeksni registarmožemo uvećati pri svakoj operaciji nad njim za korakdefinisan u ofset delu nm registra
Sličan modulo adresiranju
Ovakvo adresiranje ne zahteva da veličina bafera budestepen broja dva
Indeks registar neće biti postavljen na početak bafera, kada dodje do kraja bafera
Kod ovakvog adresiranja modulo deo odgovarajućeg nmregistra postavlja se na 0x0
19
Adresiranje sa bit obrnutim redosledom
Podrška DSP-ova za rad sa FFT i IFFT
Modulo deo odgovarajuceg nm registra postavljen na 0xf
Ofset deo nm registra postavljen je na vrednost 2^(k-1) u slučajuveličine 2^k
Indeksni registar se inicijalizuje obično na početak bafera
Primer:
i0 = (X_Buffer) #<- i0 points to beginning of buffer
nm0 = (0xf010) #<- Set nm0 modulo and offset part
i1 = (X_Bit_Reverse_Buffer) #<- i1 points to buffer where data will
# be written in
do(0x20),>Loop
a0 = xmem[i0]; i0 += n #<- Read from X_Buffer in BitReverse
%Loop: xmem[i1] = a0; i1 += 1 #<- Write it to X_Bit_Reverse_Buffer
20
Ažuriranje indeksnog registra
Podrazumeva umanjenje ili uvaćanje sadržaja indeksnog registra
Ove operacije se obavljaju nezavisno od ALJ i akumulatora
Ovakve operacije se mogu istovremeno nalaziti u instrukcijskoj reči sa operacijama nad memorijom ili aritmetičkim i logičkim operacijama
Neke od operacija nad indeksnim registrom
Primer: i0 (+-)= 1 ili i0 (+-)= 2 ili i0 (+-)= n
a0 = xmem[i0]; i0 += 1
21
Modulo adresiranje
22
Poseban slučaj posrednog adresiranja
Važan za implementaciju kružnih bafera
Kružni bafer je veličine stepena dvojke (opseg 2^2-2^16)
Početna adresa bafera je umnožak njegove veličine
Modul po kom se vrši adresiranje definisan je modulodelom nm registra
Inkrementiranje indeksnog registra je definisano za koraku vrednosti ofset dela nm registra
Vrednost indeksnog registra se vraća na početak kružnog bafera kada se dostigne krajnja adresa bafera