ZK 29.1.08

Anonym... at 2008-01-29 15:03:05
  1. Výpadky stránek: 2B, 4kB str, 8kB dat, 3 urovne // asi 20

  2. Inkrementace globlni promeny pomoci 5ti vláken ..jaka v ni bude hodnota?

count = 0;

spust 5x vlakno

for i:=0 to 99 do
count++;

//asi 100-500

  1. pocet vypadku bloku pri 4 blocich a metode CLOCK .. posloupnost 12344321516 // prej 7

  2. prevedte 55E27C3A z 16tkový do 2jkový .. byly 4 možnosti


prefix a zasobnik

preruseni vnitrni vnejsi

ridici hazard v pipeline

neco dalsiho

Blaf at 2008-01-29 15:29:00

Posledni ukol byl napsat instrukci load ACC relative v mikrokodu (tzn. adresu pricist k akumulatoru a to loadnout).
Ohledne toho counteru v prvni casti nam Bulej po zkousce napsal mail, ze spravna moznost nebyla vubec uvedena a tudiz uzna vsechny krome "vzdy 500", ktera znaci nepochopeni problemu pristupu nekolika vlaken ke globalni promenne. Jake bylo spravne reseni, to netusim, mne tech 100-500 pripada rozumne.

Zlosynus at 2008-01-29 15:45:01

Reseni te ctvrte ulohy jsem tedka pred chvilkou nekomu psal, snad je dobre:
LOAD s relative adresou:

fetch:
T0: PC_out, MAR_in
T1: read, pcincr
T2: MDR_out, IR_in
decode:
T3: decode opcode in IR
execute:
T4: IR_out (addrpart), MDR_in
T5: ACC_out, aluadd
T6: TEMP_out, MAR_in
T7: read
T8: MDR_out, ACC_in, reset to T0

lubos at 2008-01-29 16:19:35

z mailu:

Dobry den,

je mi to lito, ale pri priprave dnesniho zadani pisemne prace jsem udelal  

chybu v jejimz dusledku se u druhe zaskrtavaci otazky (citac) neobjevila spravna
odpoved.

Za toto pochybeni se omlouvam.

Otazku budu tedy hodnotit tak, ze za nespravnou budu povazovat pouze odpoved "vzdy
500", ktera ukazuje na nepochopeni dusledku pristupu ke sdilene promenne bez
jakekoliv synchronizace.

Lubomir Bulej

Him at 2008-01-29 16:32:52
  1. je to opravdu 20

a jake byly moznosti u te 2) ?

hoboj at 2008-01-29 16:51:27

1-500
5-500
100-500
vzdy 500

Donarus at 2008-01-29 17:07:47

fuj no dneska to to bylo asi pekne hnusne .. dneska bych to nedal ... jeste ze to mam zasebou ..

Jiří at 2008-01-29 17:11:56

Hele, jak prsne funguje CLOCK. Pochopil jsem LRU, ale u toho Clock si nejsem jistej, kteoru teda vyhodi???

Him at 2008-01-29 17:13:08

@Hoboj: Taky bych rekl 100-500 .. (http://en.wikipedia.org/wiki/Race_condition)

neví někdo správnou odpověď?

Him at 2008-01-29 17:37:53

@Jiri: http://www.cs.binghamton.edu/~nael/cs35 ... -lec21.pdf - clock algorithm, http://www.root.cz/clanky/porovnani-linux-freebsd-11/, http://www.student.cvut.cz/cwut/index.p ... organizace (pokud neurazi)

Pokud jde o ten clock, tak ja bych to asi delal takhle:

12344321516

  1. 4 vypadky pro 1234 ... predpokladam, ze na zacatku neni v pameti zadnej ramec namapovanej ====== 4 VYPADKY

  2. pak 4321 - ty uz namapovane jsou, takze zadny vypadek ===== 0 VYPADKU

  3. nyni jedeme po smeru hodinovych rucicek a odebirame accessed (A) priznak a davame tam dirty, skoncime zase na jednicce

  4. takze jednicku vymenime za 5 a nastavime priznak A ===== 1 VYPADEK

  5. jednicka uz neni namapovana, takze odebereme priznak A petce, posuneme se o jeden prvek dal, tam neni priznak A, tak misto dvojky dame 1 ========== 1 VYPADEK

  6. sestka neni namapovana vubec, takze dalsi vypadek stranky ======= 1 VYPADEK

celkem 7 vypadku

Him at 2008-01-29 17:48:10

preruseni - vnitrni vnejsi

Vnitrni - vypadek stranky, neexistujici instrukce, specialni volani (syscall, int)
vnejsi - poruchy HW, význačné stavy I/O a čítáčů

ridici hazard v pipeline

nacitani instrukci za skokem (zpozdeny skok)

  • nutno učinit rozhodnutí před vykonáním instrukce => tohle ma bulej a obdrzalek ve slidech, ale nevim, co tim presne mysli, kdyby si aspon mezi sebou nekopirovali ty slidy :-/ :D
    mozna se tim mysli predikce

prefix a zasobnik

timhle se mysli prefixova notace a jak to souvisi se zasobnikem?

HonzaK at 2008-01-29 18:12:48

Neměla v tý posloupnosti v příkladu 3, první část testu, být na konci ještě dvojka??

Him at 2008-01-29 18:33:14

me tak napada, chodi se na tuhle zkousku v saku?

Blaf at 2008-01-29 18:36:15

Him wrote:me tak napada, chodi se na tuhle zkousku v saku?

Ani nahodou :lol:

Sven Wiersen at 2008-01-29 18:53:38

Hele, vy jste tady samý chytrý lidi, prozradíte mi, co je to sakra ten semafor, co je zhruba v polovině zadání?

Donarus at 2008-01-29 19:06:11

google wikipedia

http://cs.wikipedia.org/wiki/Semafor_%2 ... onizace%29

google -> semafor -> prvni odkaz co ma co spolecneho s pocitacema je to prave orechove :D

ale jinak nic rad jsem pomohl :D :D

= PS: je dulezite pochopit "synchronizacni primitivum" - pak pochopis semafor a monitor hned

Him at 2008-01-29 20:33:31

Je možné, že na ty principy se člověk musí učit víc než na analýzu? Už u toho tvrdnu přes přes 8 dní a pořád si moc nevěřim, nejlepší je, že ty otázky se neopakují, ale pořád přibývají nové, které nikde nejsou, což není dobrý.. viz tento test, některé otazky jsou originály :-/

hippies at 2008-01-29 22:32:45

Ja (ale uz je to hodne davno) nektere drobnosti dohledaval tady:
http://www.fi.muni.cz/usr/pelikan/ARCHI ... OBSAH.HTML

onashackem at 2008-01-29 23:33:26

Tak je to tady, učim se to jak debil. Taky sem nečekal, že to až tak pozmění. Přeju všem hodně štestí zejtra a pozejtří!

anonym... at 2008-01-30 22:23:36

HonzaK wrote:Neměla v tý posloupnosti v příkladu 3, první část testu, být na konci ještě dvojka??

Ano..došlo k chybě.. na konci posloupnosti byla v zadání ještě dvojke, tedy

123443215162

OndraC at 2008-02-04 14:30:18

Ahoj, chtěl jsem se zeptat... co by se mělo napsat k tý otázce "prefix a zásobník"???? Ve slajdech toho o tom moc není...

dobry_den at 2008-02-04 14:44:40

ptal jsem se kamose a priblizne tedy toto:

"joo no byl tam zápis v prefixu, tak si měl říct jakym zpusobem se bude vyhodnocovat v počítači (to je ta znalost zásobníku), něco o tý notaci a pak jakej bude výsledek + nějak přiblížit/popsat algoritmus toho procesu počítání v zásobníku"

OndraC at 2008-02-04 14:55:07

Díky...

Ellrohir at 2008-02-11 12:48:18

Zlosynus wrote: T4: IR_out (addrpart)

co tady přesně znamená ten parametr "addrpart" ? případně "kde se vzal" ?

(procházím si teď různý mikrokódy a snažím se je převést si je na to, "jak to běhá" na CPU, ale tohle nějak nevím, co si o tom myslet... :oops: )

a ještě sem se chtěl zeptat, jak je tam u kroku T1 "pcincr", tak jestli to má nějakej význam, že se to děje zrovna v tomhle kroku a nebo by to klidně mohlo bejt i někdy jindy (protože jestli to dobře sleduju, tak hodnota z programovýho čítače se používá jenom v kroku T0, čili by se "pcincr" mohlo teoreticky provést kdykoliv v krocích T1-T8

mousemclion3 at 2009-02-04 07:31:04

Zlosynus wrote:Reseni te ctvrte ulohy jsem tedka pred chvilkou nekomu psal, snad je dobre:
LOAD s relative adresou:

fetch:
T0: PC_out, MAR_in
T1: read, pcincr
T2: MDR_out, IR_in
decode:
T3: decode opcode in IR
execute:
T4: IR_out (addrpart), MDR_in
T5: ACC_out, aluadd
T6: TEMP_out, MAR_in
T7: read
T8: MDR_out, ACC_in, reset to T0

Nevim zda li to přijde vhod, ale jestli se nepletu tak tohle neni load, neco jako load skřiženy s add, a ješte trošku tvurči představivosti k tomu

load mame primo ve slajdech:

Mikroprogram pro instrukci load:
fetch
T0: PC_out, MAR_in
T1: read, pcincr
T2: MDR_out, IR_in
decode
T3: decode opcode in IR
execute
T4: IR_out(addr part), MAR_in
T5: read
T6: MDR_out, ACC_in, reset to T0

(Dobre si taky omrknout http://www.cs.clemson.edu/~mark/uprog.html )

hjk at 2009-02-04 12:02:59

mouse: jasně, ale tohle není klasický load, ale load s relative adresou, ty vypadají trošku jinak...
doporučuju omrknout další příklady zde na fóru nebo: http://mff.lokiware.info/PrincipyPocita ... zky?v=16n8

Jenom mi není úplně jasný ten load indirect:
execute
T4: IR_out (addr part), MAR_in
T5: read
T6: MDR_out, MAR_in
T7: read, reset to T0

Na konci to proženu znova pamětí a do ACC už to neházím (jako v klasickém load)?

Anonymous at 2009-02-07 16:28:01

Ahoj,

chapu to dobre, ze mikroinstrukce aluadd se podiva, co je na sbernici, a pricte to k hodnote MDR a ulozi zpatky do MDR ?
Takze kdyz napriklad chci pricist hodnotu z MDR k ACC tak:

ACC_out, aluadd
ACC_in, MDR_out

?

Diky

Anonymous at 2009-02-07 16:31:01

Teda takto: aluadd secte hodnotu na sbernici s hodnotou MDR a ulozi ji do TEMP.
Takze kdyz chci pricist hodnotu z MDR k ACC tak:

ACC_out, aluadd
TEMP_out, ACC_in

geckon at 2009-02-09 16:37:52

Návštěvník wrote:Teda takto: aluadd secte hodnotu na sbernici s hodnotou MDR a ulozi ji do TEMP.
Takze kdyz chci pricist hodnotu z MDR k ACC tak:

ACC_out, aluadd
TEMP_out, ACC_in

Tak by to, myslím, mělo být.

Ellrohir wrote: co tady přesně znamená ten parametr "addrpart" ? případně "kde se vzal" ?

Já bych řekl že to pochází z "address part" = adresová část ;-)