Вы находитесь на странице: 1из 3

REITVE: Naloga 1

Uradna reitev:
PREPISI: stmfd sp!, {r4r5, lr} movs r3,r3 ldmeqfd sp!,{r4-r5,pc} ldr r4,[r0],#4 ldrh r5,[r2],#2 str r4,[r1,r5,lsl #2] subs r3,r3,#1 bne ZANKA ldmfd sp!,{r4-r5,pc} @ @ @ @ @ @ @ @ @ shrani registre in povratni naslov R3 == 0 ? e je, se vrni iz podprograma preberi podatek preberi ciljni indeks shrani na ustrezno mesto zmanjaj tevec podatkov ponavljaj dokler t. podatkov != 0 vrnitev iz podprograma

ZANKA:

e najbolja ideja iz tudentskih reitev:


PREPISI: ZANKA: stmfd sp!,{r4r5, lr} subs r3,r3,#1 ldrpl r4,[r0],#4 ldrplh r5,[r2],#2 strpl r4,[r1,r5,lsl #2] bhi ZANKA ldmfd sp!,{r4-r5, pc} @ @ @ @ @ @ @ shrani registre in povratni naslov zmanjaj tevec podatkov preberi podatek samo e tevec >= 0 preberi ciljni indeks samo e tevec >= 0 shrani na ustrezno mesto samo e tevec >= 0 ponavljaj dokler t. podatkov > 0 vrnitev iz podprograma

Drugi program je kraji in, razen v primeru, ko prepisujemo prazen blok, tudi za dve urini periodi hitreji od uradne reitve, ki je v primeru prepisovanja praznega bloka hitreja.

Naloga 2
Pomnilnik flash: - branje bloka velikosti 65536B: 65536 * 38ns = 2,49ms pisanje bloka velikosti 65536 KB (najprej potrebno brisanje): 2ms (za brisanje bloka) + 65536B/2048B*600s = 2ms+19,2ms=21,2ms Magnetni disk: povpreni as za branje bloka velikosti 65536B je enak povprenemu asu pisanja bloka enake velikosti in je: 8ms (iskalni as) + 1/2 obr.*1/(7200 (obr.)/min.) + 65536B/100MB/s = 8ms+4,2ms+0,66ms=12,86ms Navedeni rezultati, ki nakazujejo, da so "diski" iz flash pomnilnikih ipov bistveno hitreji le pri branju, pri pisanju pa so lahko celo poasneji , veljajo le za zvezne bloke podatkov. Pri nakljuni razporeditvi podatkov se asi prenosov podatkov na/iz magnetnih diskov bistveno poveajo, medtem ko pri "diskih" iz flash pomnilnikih ipov

ostanejo enaki. Ravno zaradi hitrosti pri nakljunem dostopu do podatkov in zaradi tega, ker je pri veini obiajnih raunalnikih sistemov mnogo bolj pogosta operacija branja z diska kot operacija pisanja, so SSD diski precej hitreji od magnetnih. Ker ne vsebujejo gibljivih delov kar je zelo zaelena lastnost se kljub obutno viji ceni na bit in manji kapaciteti vedno bolj uveljavljajo posebno v prenosnih raunalnikih.

Naloga 3
a) Preslikamo zaetni in konni naslov programa. tevilka strani se preko ustreznega deskriptorja preslika v tevilko okvirja (preveriti je potrebno e, da sta bita P in V v deskriptorju postavljena!). 0x00001A00 ->(preslikava preko deskriptorja 0) deskriptor 1 (tevilka okvira je podrtana): 0x00005003 Sestavimo tevilko okvirja in naslov znotraj strani: 0x00005A00

0x00002009 ->(preslikava preko deskriptorja 2) deskriptor 2 (tevilka okvira je podrtana): 0x00002003 Sestavimo tevilko okvirja in naslov znotraj strani: 0x00002009 Program se preslika v dva okvirja, na fizine naslove 0x00005A00-0x00005AFF in 0x00002000-0x00002009. b) Del programa je v strani 1, del pa v strani 2. Obe sta prisotni (tabela strani, deskriptorja 0 in 1), torej zaradi prevzemanja ukazov ni napak strani. Izvorni podatki se nahajajo na naslovih 0x00004F00 0x000052FF (1024 B podatkov). To sta strani 4 in 5. Prepiejo se na naslove od 0x00003000 0x000033FF. Prva napaka bo pri prvem dostopu do strani 4 (naslov 0x00004F000), druga pri prvem dostopu do strani 3 (naslov 0x00003000) in tretja pri prvem dostopu do strani 5 (naslov 0x00005000). Ker se okvirji dodeljujejo po vrsti od okvirja 128 dalje, bo strani 4 dodeljen okvir 128, strani 3 okvir 129 in strani 5 okvir 130. Tabela strani bo taka:
naslov
0xFFF10000 0xFFF10004 0xFFF10008 0xFFF1000C 0xFFF10010 0xFFF10014 0xFFF10018

vsebina
0x00001003 0x00005003 0x00002003 0x00081003 0x00080003 0x00082003 0x00000001

...

...

c) Prepisani podatki so na navideznih naslovih 0x00003000 0x000033FF, tevilka strani (3) se preslika preko ustreznega deskriptorja (0x00081003 t. okvirja je podrtana). Fizini naslovi so torej 0x00081000 0x000813FF.

Naloga 4
KRMILI_LED: stmfd sp!,{r1-r6,lr} ldr r1,=TC0_BASE mov r2,#0b100 str r2,[r1,#TC_CCR] ldr r3,=PIOB_BASE mov r4,#1 << 16 mov r5,#8 str mov ldr tst beq @ shranimo registre na sklad

@ pobriemo tevec @ v R4 vrednost za vklop prve LED-ice @ preklapljamo 8 LED-ic

LOOP2:

r4,[r3,#PIO_SODR] @ vkljuimo LED-ico r6,r0 @ naloimo vrednost zakasnitve v R6 r2,[r1,#TC_SR] r2,#1 << 4 LOOP

LOOP:

@ gledamo bit CPCS @ akamo 1 ms

subs r6,r6,#1 bne LOOP

@ ponovimo akanje potrebno tevilo ms @ izkljuimo LED-ico pomaknemo vrednost za naslednjo LED ponovimo, e e nismo obdelali vseh 8 obnovimo registre in povratek iz podprograma

str r4,[r3,#PIO_CODR] mov r4,r4,lsl #1 @ subs r5,r5,#1 bne LOOP2 @ ldmfd sp!,{r1-r6,pc} @ @

Naloga 5
Pri izvorno sinhronskem prenosu imamo loen prenos podatkov in ukazov. Ukaze tvori enota, ki poilja in sicer jih tvori iz naslovnih in kontrolnih signalov. Naslovljena enota ukaze sprejema, shrani in izvruje drugega za drugim. Poiljanje ukazov je sinhronizirano s centralnim urinim signalom. Prenos podatkov pa ni ve sinhroniziran s centralnim urinim signalom, ampak enota, ki poilja, tvori poseben sinhronizacijski signal, ki ima fronto v asu trajanja veljavnosti podatkov. Podatki, ki se prenaajo po podatkovnih signalih, in sinhronizacijski signal morajo biti tako speljani, da potujejo po im bolj isti poti in imajo tako kar najbolj enako zakasnitev. S tem maksimalno izniimo vpliv urinega zamika, ki pri ostalih vrstah prenosa omejuje hitrost. Perioda sinhronizacijskega signala je v splonem N krat kraja od periode centralnega urinega signala, N pa je celo tevilo.

Вам также может понравиться