jeni duke lexuar...
Ushtrime

Ushtrim…pipeline, llogaritje performancash (CPI)

Supozojmë  se në një procesor  pipeline  të papriturat strukturore (“structural hazards”) janë evituar. Pra, faza “fetch” dhe kapja e kujtesës qëndrore (p.sh. me instruksione Load/Store) mund të kryhet në të njejtin cikël clocku. Për një program të caktuar, kemi këto të dhëna:

  • 35 % e instruksioneve janë “Load”
  • 20 % e instruksioneve janë “branch”
    • 60 % e instruksineve “branch” , programi kërcen instruksionin e rradhës (pra, “kërcimi” kryhet).
    • 40 % e instruksioneve, si rezultat i të papriturave të të dhënave (“data hazards“), janë të varur nga paraardhësit.

Duke supozuar se programi është mjaftueshmërisht i gjatë (miliona instruksione që ekzekutohen), të gjenden :

  1. Cila është vlera e CPI për këtë program që ekzekutohet në këtë procesor?
  2. Për të përmirsuar performancat e programit që ekzekutohet në këtë “in ordrer pipeline”, ai modifikohet, duke bërë që për instruksionet “branch” arrihet të përcaktohet në se kemi të bejmë me kërcim ose jo që në fazën e dekodimit. Sa do të ishte vlera e CPI në këtë rast?

Zhvillim

a.

Për “ngecjet” në pipeline që shkaktohen prej “pipeline hazard”s, në mënyrë simbolike mund të shkruajmë:

CPI pipeline= 1 + cikle vonesë për instruksion nga hazards (structural + data + control)

Shënim : barazimi i mësipërm është i vërtetë, sepse në pipeline të tipit “in-order” vonesat e shkaktuara nga  “hazards”, në përgjithësi, nuk mbivendosen.

Barazimi i mësipërm do të mund të shkruhej edhe kështu:

CPI pipeline= 1 + Σ (frekuenca e ngecjeve * penalizim nga ngecjet)

Duke patur parasysh se “structural hazards” janë evituar, përftojmë :

CPI pipeline= 1 +  frekuenca e “control hazards” * penalizim nga “control hazards” +  frekuenca e “data hazards” * penalizim nga “data hazards”

Ekzekutimi në pipeline i instruksineve “branch” do të ishte si në figurën e mëposhtëme

Ndërsa ekzekutimi i instruksioneve “data dependent” që shkatojnë “data hazards” do të ishte si më poshtë :

Mund të llogaritim :

CPI = 1 + (0.2 x 0.6 x 3)  + (0.35 x 0.4 x 2) = 1+ 0.64 = 1.64

Shënim :

60 % e instruksionve branch do të shkatojnë vonesa me 3 cikle clocku të pipeline-s. Ndërsa 40 % e instruksioneve Load do te vonojnë pipeline me 2 cikle.

b.

Në këtë rast, si rezultat i përmirësimeve, ekzekutimi i pipeline do  të ishte si më poshtë:

Ndërsa ekzekutimi i instruksioneve “data dependent” që shkatojnë “data hazards” do të ishte si më poshtë (pra, i pandryshuar, njëlloj si në rastin a.) :

Përfundimisht mund të llogaritim :

CPI = 1 + (0.2 x 0.6 x1)  + (0.35 x 0.4 x 2) = 1+ 0.4 = 1.4

Diskutim

Ende pa komente.

Lini një Përgjigje

Ju lutemi, bëni hyrjen me një nga këto metoda që të postoni komentin tuaj:

Stema e WordPress.com-it

Po komentoni duke përdorur llogarinë tuaj WordPress.com. Dilni /  Ndryshoje )

Foto Google

Po komentoni duke përdorur llogarinë tuaj Google. Dilni /  Ndryshoje )

Foto Twitter-i

Po komentoni duke përdorur llogarinë tuaj Twitter. Dilni /  Ndryshoje )

Foto Facebook-u

Po komentoni duke përdorur llogarinë tuaj Facebook. Dilni /  Ndryshoje )

Po lidhet me %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Regjistroni adresën tuaj e-mail për të marrë artikujt e rinj nëpërmjet mesazheve ...

Kategori

Intel CPU Architectures

Procesore Apple Ax

Apple A12 Bionic
Këtë e pëlqejnë %d blogues: