• Sonuç bulunamadı

Mikroişlemcilerde sanal adreslerden yararlanılarak geçici hatalara karşı koruma sağlanması

N/A
N/A
Protected

Academic year: 2021

Share "Mikroişlemcilerde sanal adreslerden yararlanılarak geçici hatalara karşı koruma sağlanması"

Copied!
60
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

MKRO“LEMCLERDE SANAL ADRESLERDEN

YARARLANILARAK GEǝC HATALARA KAR“I KORUMA SA‡LANMASI

YAMAN ÇAKMAKÇI

YÜKSEK LSANS TEZ BLGSAYAR MÜHENDSLG

TOBB EKONOM VE TEKNOLOJ ÜNVERSTES FEN BLMLER ENSTTÜSÜ

TEMMUZ 2012 ANKARA

(2)

Fen Bilimleri Enstitü onay

Prof. Dr. Ünver KAYNAK Müdür

Bu tezin Yüksek Lisans derecesinin tüm gereksinimlerini sa§lad§n onaylarm.

Doç. Dr. Erdo§an Do§du Anabilim Dal Ba³kan

Yaman ÇAKMAKÇI tarafndan hazrlanan MKRO“LEMCLERDE SANAL ADRESLERDEN YARARLANILARAK GEǝC HATALARA KAR“I KO-RUMA SA‡LANMASI adl bu tezin Yüksek Lisans tezi olarak uygun oldu§unu onaylarm.

Doç. Dr. O§uz Ergin Tez Dan³man

Tez Jüri Üyeleri

Ba³kan : Yrd. Doç. Dr. Hüsrev Taha Sencar

Üye : Doç. Dr. O§uz Ergin

(3)

TEZ BLDRM

Tez içindeki bütün bilgilerin etik davran³ ve akademik kurallar çerçevesinde elde edilerek sunuldu§unu, ayrca tez yazm kurallarna uygun olarak hazrlanan bu çal³mada orijinal olmayan her türlü kayna§a eksiksiz atf yapld§n bildiririm.

(4)

Üniversitesi : TOBB Ekonomi ve Teknoloji Üniversitesi

Enstitüsü : Fen Bilimleri

Anabilim Dal : Bilgisayar Mühendisli§i Tez Dan³man : Doç. Dr. O§uz Ergin

Tez Türü ve Tarihi : Yüksek Lisans  Temmuz 2012

Yaman ÇAKMAKÇI

MKRO“LEMCLERDE SANAL ADRESLERDEN

YARARLANILARAK GEǝC HATALARA KAR“I KORUMA SA‡LANMASI

ÖZET

Bu tez çal³masnda bir sistemdeki etkin sayfalar önbelle§i, ziksel yazmaç dosyas ve program sayac gibi sanal adres saklayan yaplarn olu³abilecek geçici hatalara kar³ korunmasn sa§layan yeni bir yöntem önerilmektedir. Çal³ma geçici hatalarn sanal adres saklayan yaplardaki etkilerini göstererek yola çkmaktadr. Önerilen çözüm, ba§lama zamannda sanal adreslerin atanmasnda do§rusal blok kodlayc kulllanlmasdr. Bahsi geçen kodlaycnn sanal adreslerin sayfa numaras ksmnn atanmasnda kullanlmas ve bu kodlaycnn sayfa hatas kotarcsna yerle³tirilmi³ bir çözücü ile desteklenmesi sayesinde sistemin hatalara kar³ tahammüllünün artrld§ gözlemlenmi³tir. Ayrca, donanmda gerçeklen-mi³ çözücüler kullanlarak program sayac ve ziksel yazmaç dosyasna kodlama yükü getirmeden hata düzeltici kodlarn sa§lad§ faydadan yararlanlabilinmesi öngörülmü³tür.

Bu tezin temel katks incelenen i³lemci yaplarnn MHAE'lerinde elde edilen dü³ü³tür. etkin veri sayfalar önbelle§i 42.5%, etkin buyruk sayfalar önbelle§i 40.3%, program sayacnda 69.2% ve ziksel yazmaç dosyasnda 33.3% düzeyinde bir iyile³tirme sa§lanm³tr.

Anahtar Kelimeler: Hataya dayankllk, Sanal adresleme, Do§rusal blok kodlar, geçici hatalar.

(5)

University : TOBB University of Economics and Technology Institute : Institute of Natural and Applied Sciences

Science Programme : Computer Engineering Supervisor : Associate Prof. O§uz Ergin Degree Awarded and Date : M.Sc.  July 2012

Yaman ÇAKMAKÇI

EXPLOITING VIRTUAL ADDRESSES FOR ACHIEVING FAULT TOLERANCE IN MICROPROCESSORS

ABSTRACT

In this thesis a novel method to protect a system against errors resulting from soft errors occuring in the virtual address storing structures such as translation buers, physical register le and the program counter. The work is motivated by showing how soft errors impact the structures that store virtual addresses. A solution is proposed by employing linear block encoding methods to be used as a virtual addressing scheme at link time. Using the encoding scheme to assign virtual page numbers for virtual addresses, it is shown that the system can tolerate soft errors using software with the help of the discussed decoding techniques applied to the page fault handler. Hardware solutions can also be applied at the program counter and the physical regiser le providing ECC protection without the burden of using circuit level encoding.

The main contribution of this thesis is the decreasing of AVF for data translation buer by 42.5%, instruction translation buer by 40.3%, program counter by 69.2% and physical register le by 33,3%.

(6)

TE“EKKÜR

Bu çal³may gerçekle³tirmemde eme§i olan dan³manm O§uz Ergin'e ve beni her zaman destekleyen aileme te³ekkür ederim.

(7)

ÇNDEKLER

1 GR“ 2

2 TEMEL KONULAR 4

2.1 Mikroi³lemci Mimarisi . . . 4

2.1.1 Boru Hatt . . . 5

2.1.2 Çok Yollu ³lemciler . . . 6

2.1.3 Dallanma öngörüsü . . . 8

2.1.4 Yazmaç Yeniden Adlandrmas . . . 9

2.1.5 Bellek Sralama . . . 11

2.1.6 Program Sayac . . . 12

2.2 Mimari Hataya Açklk Etkeni . . . 12

2.3 Sanal Adresleme . . . 13

2.4 Do§rusal Blok Kodlar . . . 15

3 L“KL ÇALI“MALAR 16

(8)

4.1 Ba§layc Üzerinde Gerçeklenmi³ Döngüsel Kodlayc . . . 24 4.2 Önerilen Yöntemin leti³im Sistemlerine Benzerli§i . . . 27 4.3 Donanm Üzerinde Gerçeklenmi³ Sendrom Çözme . . . 29

5 DENEYSEL SONUÇLAR 31

5.1 Deney Ortam . . . 34

6 SONUÇ 39

EKLER 46

A Hata Sayfa Kotarcs Üzerinde Gerçeklenmi³ Çözücünün

Kay-nak Kodu 47

(9)

“EKLLERN LSTES

2.1 Boru hatt evreleri . . . 5

2.2 Çok yollu i³lemci mimarisi . . . 7

2.3 Veri ba§mllklar . . . 10

2.4 Sanal adresten ziksel adrese çevirim . . . 14

4.1 Fiziksel olarak dizinlenmi³ sanal etiketli adres . . . 20

4.2 Program sayacnda bit hatas olu³mas . . . 22

4.3 Fiziksel yazmaçta bit hatas olu³mas . . . 22

4.4 SPEC2006 ölçüm programlarnn kullandklar sayfa saylar . . . 23

4.5 Buyruk snarnn da§lmlar . . . 24

4.6 Bir programn adreslenme ya³am döngüsü . . . 25

4.7 letilecek bilginin kodlanmas ve çözülmesi . . . 28

5.1 Sayfa hata kotarcsnda gerçeklenmi³ sendrom çözücünün ba³arma etkisi . . . 32

5.2 EBSÖ için MHAE'deki azalma . . . 33

5.3 EVSÖ için MHAE'deki azalma . . . 34

(10)
(11)

ǝZELGELERN LSTES

2.1 Boru hattnn i³leyi³i . . . 6

2.2 Hamming (7,4,3) kod kelimeleri . . . 15

4.1 Örnek program adreslemesi . . . 20

4.2 Örnek ESÖ satrlar . . . 22

4.3 Kodlanm³ adresler kullanan program . . . 26

4.4 Yazma eri³imlerinin toplam eri³imlere oran . . . 30

5.1 Ölçüm programlar açklamalar . . . 36

(12)

Ksaltma Ksaltma(ng) Açklama ngilizce

MHAE MHAE Mimari Hataya Açklk

Etkeni Architectural Vulnera-bility Factor

MDDY MDDY Mimari Düzeyinde

Do§ru Yürütüm Architecturally CorrectExecution

PHAE PVF Program Hataya Açklk

Etkeni Program VulnerabilityFactor

DHAE HVF Donanm Hataya

Açk-lk Etkeni Hardware VulnerabilityFactor

SAU VAS Sanal Adres Uzay Virtual Address Space

YSY WAW Yazma Sonras Yazma Write After Write

OSY WAR Okuma Sonras Yazma Write After Read

FDH DUE Farkedilen

Düzeltilemeyecek Hatalar

Detectable

Unrecoverable Errors GVY SDC Gizli Veri Yozla³mas Silent Data Corruption

ESÖ ESÖ Etkin Sayfalar Önbelle§i Translation Lookaside Buer

EVSÖ DESÖ Etkin Veri Sayfalar

Ön-belle§i Data Translation Looka-side Buer

EBSÖ IESÖ Etkin Buyruk Sayfalar

Önbelle§i Instruction TranslationLookaside Buer FSN PPN Fiziksel Sayfa Numaras Physical Page Number SSN VPN Sanal Sayfa Numaras Virtual Page Number TBÇV SIMD Tek Buyruk Çoklu Veri Single Instruction

(13)

1. GR“

Artan saat vuru³ sklklaryla desteklenen kayda de§er ba³arm art³lar, daha ufak boyutlarda üretim yaplabilmesi ve dü³ük kaynak gerilimleri, geçici hatalar olarak bilinen sorunlarn yaygn olarak gözlemlenmesine sebep olmu³tur. Geçici hatalar [39][18] alfa ³mas sonucu ortaya çkan alfa parçacklarnn ve kozmik ³nlarda barnan yüksek enerjili nötrönlar ile protonlarn i³lemci üzerindeki saklama alanlarna çarpmas sonucu ortaya çkmaktadrlar. Bu parçacklarn çarptklar s§ann dolmasna veya bo³almasna sebep olmalarndan ötürü yarat-tklar hatalar kalc de§ildir. Geçici hatalarn i³lemciler üzerinde yaygn olarak görülmeleriyle birlikte, güvenilirlik de ba³arm ve enerji tasarrufu ile beraber i³lemci tasarmnn temel tasarm ilkesi olarak kabul edilmeye ba³lanm³tr. Yonga üzerindeki kullanlabilir silikon alann art³ ile birlikte geçici hata sorunun ileride art³ gösterece§i öngörülmektedir[11][1]. Geçici hatalara duyarl sistemlerde bu hatalardan korunmak için yararlanlabilecek yöntemler kapsaml bir ³ekilde [10] ile sunulmu³tur.

Bilimsel yönteme göre incelenen olgularn ölçülebilir olmas büyük önem te³kil etmektedir. Bir i³lemci yapsnn geçici hatalara kar³ dayankll§ Mimari Hataya Açklk Etkeni (MHAE)[28] ile belirtilir. Donanmsal yaplarn MHAE'lerinin ölçülmesi için Mimari Düzeyinde Do§ru Yürütüm (MDDY) analizi yöntemi kullanlr[2]. MDDY bitleri saklanan bir de§erin hata sonucu olu³an bir de§i³iminin programn do§rulu§unu etkileyip etkilemedi§ini belirdir. Örne§in, öngörücü kullanmayan bir sistemin program sayacnn bütün bitleri çal³ma zamannn yakla³k olarak %100'ünde MDDY bitleridir. Program sayacnda olu³acak herhangi bir bit de§i³imi programn ak³n tamamen de§i³tirecek ve

(14)

yanl³ bir çktya sebep olacaktr.

Çe³itli ara³trmaclarn MHAE'yi temel alarak ortaya çkardklar farkl ölçüm yöntemleri de geli³tirilmi³tir. MHAE hata maskelemeyi de dikkate alacak ³ekilde Program Hataya Açklk Faktörü (PHAE)[37] olarak geni³letilmi³tir. Ardndan Donanm Hataya Açklk Faktörü (DHAE)[38] MHAE ve PVF olgularn bir-le³tirmek için geli³tirilmi³tir.

Derleyiciler, tanmlanm³ bir dildeki kaynak programn farkl bir hedef dildeki dengine tercüme etmeye yarayan programlardr. Derleyiciler sayesinde yazlm-cnn üst seviye bir programlama dilinde kolayca ifade edebilece§i kavramlarn i³lemcinin çal³trabilece§i makine diline çevrilmesi ve makine dilinin karma³k-l§ndan uzak bir ³ekilde yaplacak i³e odaklanmas mümkün klnmaktadr. Bu temel özelliklerinin yannda, olu³turduklar yürütülebilir programn ba³armnn yüksek, kod boyutunun küçük olmas önemlidir. Fazla yaygn olmamakla birlikte derleyici üzerinden sistemin geçici hata toleransnn arttrlmasnn mümkün oldu§u farkl çal³malarda gösterilmi³tir [3][25][22].

Bu tezde bir sanal adres uzayndaki (SAU) sanal adreslerin içindeki sayfa numaralarnn do§rusal blok kodlar kullanlarak ba§lama zamannda kodlanmas ve daha sonra yazlm ve donanm üzerinde gerçeklenmi³ sendrom çözücüler kul-lanlarak sistemin içinde bulunan farkl yaplarn MHAE'sinin nasl dü³ürülebile-ce§i anlatlmaktadr.

Çal³mann devamnda 2. bölümde çal³ma içinde kullanlacak kavramlar açklanm³tr. 3. bölüm derleyici ve i³lemci mimarisi etkile³imi ile ili³kili çal³malarn bir özetinden olu³maktadr. Daha sonra, 4. bölümde önerilen yöntem anlatlm³tr. 5. bölümde deneysel sonuçlarn bir de§erlendirilmesi ve 6. bölümde çal³mann ileride nasl ³ekillenebilece§iyle ilgili yorumlar yer almaktadr.

(15)

2. TEMEL KONULAR

Bu bölümde yaplan tez çal³masnn kapsamnda anla³lmas gereken konular ile ilgili temel bilgiler yer alacaktr.

2.1 Mikroi³lemci Mimarisi

Bir bilgisayar program buyruklar silsilesi olarak tanmlanr. Buyruklar mimariye göre farkllk göstermekle birlikte programn anlam mimariler arasnda de§i³iklik göstermemektedir. Mikroi³lemcinin görevi verilen programn srasn bozmadan buyruklar i³letmektir. Bir mikroi³lemci mimarisinin kendi içinde ba³armn belirleyen en temel etken bir saat vuru³unda i³letebildi§i buyruk saysdr. Ba³arm mikroi³lemci mimarileri arasnda de§erlendirmek için a³a§daki den-klemden yararlanlabilir:

Ba³arm = buyruk says ×1 saat vuru³u ×buyruk saat vuru³ skl§1

Burada buyruk saysn belirleyen etkenlerden ilki buyruk kümesi mimarisidir. Örne§in baz mimarilerde karma³k görevleri tek bir buyruk yerine getirebilirken, baz mimariler bu görevi yerine getirmek için birden fazla buyruk kullanmak durumunda kalabilirler. kinci etken ise derleyicinin üretti§i kod boyutudur. Derleyicinin programn anlamn bozmadan en az buyrukla ifade edebilece§i kod, o program için ba³arm açsndan ideal buyruk saysn belirtir.

(16)

Bellekten

getir Çöz Yürüt Bellek Yaz

“ekil 2.1: Boru hatt evreleri

Ba³arm arttrmann bir di§er yolu da saat vuru³ skl§n arttrmaktr. Fakat bu yöntemin güç tüketimini istenmeyecek düzeylerde arttrmasnn sonucu olarak yüksek saat vuru³ skl§na sahip tek çekirdekli i³lemcilerden, daha basit yapda ve daha dü³ük saat vuru³ skl§nda çal³an çok çekirdekli i³lemcilere bir yönelim olu³mu³tur[29].

2.1.1 Boru Hatt

lk i³lemci tasarmlar bir saat vuru³unda bir buyruk i³lenecek ³ekilde yaplm³tr. Daha sonra bir buyruk i³lenirken gerçekle³en a³amalar parçalara ayrlarak sistemin ayn anda farkl evrelerde birkaç buyruk i³lemesine olanak sa§layabilen bir yöntem olarak boru hatt tekni§i geli³tirilmi³tir.

Boru hatt evreleri “ekil 2.1 ile gösterilmi³tir. Bu evreleri açklamak gerekirse:

1. Çek: Program sayacnn belirtti§i adresteki buyru§u bellekten çeker ve program sayacn i³lemci buyruk boyutu kadar arttrr.

2. Çöz: Bu evrede buyru§un kaynak i³lenenleri yazmaç dosyasndan okunurlar. Ayrca, buyruk bir sonuç üretiyorsa bu sonucu yazabilece§i bir yazmaç atanr. Buyru§un hangi yürütme birimine gönderilece§i de bu evrede belirlenir.

3. Yürüt: Bu a³amada buyru§un ihtiyac olan yürütme, ilgili yürütme biriminde gerçekle³tirilir.

(17)

Çizelge 2.1: Boru hattnn i³leyi³i Zaman(Saat vuru³u)

Buyruk 1 2 3 4 5 6 7 8 9

i Çek Çöz Yürüt Bellek Yaz 0 0 0 0

i+1 0 Çek Çöz Yürüt Bellek Yaz 0 0 0

i+2 0 0 Çek Çöz Yürüt Bellek Yaz 0 0

i+3 0 0 0 Çek Çöz Yürüt Bellek Yaz 0

i+4 0 0 0 0 Çek Çöz Yürüt Bellek Yaz

4. Bellek: Bellekten okuma ve belle§e yazma i³lemleri bu a³amada gerçek-le³tirilir.

5. Yaz: Buyruk tarafndan üretilen bir sonuç var ise bu sonuç çöz a³amasnda atanm³ olan yazmaça yazlr.

Buyruklarn boru hatt içinde zamana göre nasl ilerledi§i Çizelge 2.1 ile gösterilmi³tir. Çizelgede görüldü§ü üzere 5nci saat vuru³uyla beraber boru hattnda bulunan buyruk says 5'e çkm³tr. Bundan sonra, boru hatt duraklamalar ve bo³altmalar olmad§ varsaylarak, her saat vuru³u yeni gelen buyrukla beraber boru hattnn içinde 5 buyruk olmaya devam edecektir.

Boru hatt evreleri ile ilgili daha fazla bilgi için [31] referansna ba³vurulabilir.

2.1.2 Çok Yollu ³lemciler

Çok yollu i³lemciler bir saat vuru³unda birden fazla buyruk i³letilebilmesine olanak sa§layan i³lemcilerdir. Burada temel ilke buyruk düzeyindeki par-alelliklerden(yani birbirinden ba§msz buyruklardan) yararlanarak ba³armn arttrlmasdr. Çok yollu i³lemler boru hattna birden fazla buyruk çekebilir, ayn anda birden fazla buyru§u çözebilir ve bunlar farkl yürütme birimlerine da§tabilirler.

(18)

“ekil 2.2: Çok yollu i³lemci mimarisi

Buyruk i³lenmesi açsndan üç ayr ak³tan söz etmek mümkündür. Bunlar:

• Buyruk ak³: Dallanma buyruklarnn i³lenmesinde izlenen yoldur. Uygu-lanan iyile³tirme yöntemi dallanma öngörüsüdür.

• Yazmaç veri ak³: Aritmetik mantk buyruklarnn i³lenmesinde izlenen yoldur. Burada yazmaç yeniden kullanm ve dinamik zamanlama yöntem-leri kullanlmaktadr.

• Bellek veri ak³: Yükleme/saklama buyruklarnn i³lenmesinde izlenen yoldur. Yükleme atlatma ve yükleme iletme yöntemleri kullanlmaktadr.

Bu üç ak³ birbirlerinden temiz bir ³ekilde ayrlmam³ olup, ayr ak³lar olarak ifade edilmelerine ra§men birinde olu³an bir de§i³iklik di§erine olumlu veya olumsuz bir ³ekilde sirayet edebilmektedir.

(19)

2.1.3 Dallanma öngörüsü

Dallanma öngörüsü kullanmayan sistemlerde, ko³ullu bir dallanma buyru§u yürütme birimine girdi§inde yürütme tamamlanana kadar boru hattnn çal³-masna ara verilir. Dallanma buyru§u tamamlandktan sonra boru hattna buyruk çekilmeye devam edilir. Bu durum ba³arm dü³ürücü bir etki yarat-maktadr.

Dallanma öngörüsü, bir dallanma buyru§u boru hattnda yürütülürken, boru hat-tnn çal³masna devam edebilmesini sa§lamak için ortaya atlm³ bir kirdir. Be-lirlenmi³ bir takm kriterlere göre dallanma buyru§unun nasl sonuçlanaca§ tah-min edilerek boru hattndaki duraksama engellenebilir. Dallanma öngörüsünde kullanlan iki temel kavram olan dallanma hedef tahmini ve dallanma ko³ul tahmini a³a§da açklanm³tr.

Dallanma hedef tahmini, i³letilen dallanma buyru§unun atlayaca§ adresi ke-stirmek için kullanlan bir yöntemdir. Dallanmann hangi adrese gidece§ini hesaplamak uzun bir i³lem oldu§u için dallanma hedef belle§i(BTB) adnda bir önbellek kullanlr. Bu önbellek dallanmann gidece§i adresi do§rudan sa§lad§ için, bu adresin hesaplanmas dolaysyla olu³an saat vuru³u kayplar engellenir.

Dallanma ko³ul tahmini ise i³letilen dallanma buyru§unun hangi dal seçece§ini kestirmek için kullanlmaktadr. Burada kullanlan temel yöntemler basit karara dayal ve geçmi³e dayal olarak ikiye ayrlabilir.

Basit karara dayal yöntemler belirlenmi³ bir kritere göre dallanmann ilerleye-ce§ini varsayarak buyruk çekilmesine devam edilmesini saplayan yöntemlerdir. Bu basit yöntemler bütün ko³ullu dallanmalarn do§ru sonuçlanaca§ veya en ksa dallanmann seçilece§i gibi basit varsaymlara dayanan yöntemlerdir.

(20)

izledi§i yollar bir geçmi³ tablosunda tutularak, dallanmann hangi yolu seçece§ine dair kestirimler bu tablodaki veriler ³§nda yaplr.

Bu konu ile ilgili daha ileri yöntemler bulunmkla beraber, bu çal³mada bunlara yer verilmeyecektir. lgilenen okuyucu [35] [9][36] [14] kaynaklarndan konuyla ilgili daha detayl bilgi edinebilir.

2.1.4 Yazmaç Yeniden Adlandrmas

Yazmaç yeniden adlandrlmas buyruk düzeyi paralellikten yararlanmak için geli³tirilmi³ olan bir srasz yürütme tekni§idir. Bu teknik Okuma Sonras Yazma (OSY) ve yazma sonras yazma (YSY) gibi hatal ba§mllklar ortadan kaldrr. Ard³k buyruklarn sonuç i³lenenleri ve/veya kaynak i³lenenleri arasnda olan ba§mllklar veri ba§mllklar olarak adlandrlr. Bunlar üç ayr snfa ayrlm³tr:

1. Gerçek ba§mllk(Yazma sonras okuma): Burada b1 buyru§undan sonra

gelen b2 buyru§unun kaynak i³lenenleri b1 buyru§unun sonuç i³leneniyle

ayn ise buna gerçek ba§mllk denir.

2. Kar³t ba§mllk(Okuma sonras yazma): b1 buyru§unun kaynak

i³lenen-lerinden biri b2 buyru§unun sonuç i³leneni ise bu durum kar³t ba§mllk

olarak adlandrlr.

3. Çkt ba§mll§(Yazma sonras yazma): b1 buyru§unun sonuç i³leneni ile

b2 buyru§unun sonuç i³leneni ayn ise bu duruma çkt ba§mll§ denir.

Yukarda bahsi geçen veri ba§mllklar “ekil 2.3 ile gösterilmi³tir. Okuma sonras okumann herhangi bir zarar olmad§n ve ba§mllk olarak geçmedi§ini belirtmek gerekmektedir.

Paralel olarak yürütülebilecek buyruklarn kullanacaklar yazmaçlar için birden fazla yerin ayrld§ yapya ziksel yazmaç dosyas ad verilir. Fiziksel yaz-maç dosyas bellek hiyerar³isinin en tepesinde bulunur. En hzl, küçük ve

(21)

“ekil 2.3: Veri ba§mllklar

en pahal bellek tipidir. Hedef i³lenen içeren bir buyruk i³lemci tarafndan çözüldü§ünde, buyru§un sonucunu yazmak için ziksel yazmaç dosyasnda bo³ bir yazmaç ayrlr. ³lemci buyru§u yürütmeyi tamamlad§nda sonucunu ayrlm³ olan bu yazmaça yazar. Ardndan gelen buyruklarn bahsi geçen yazmaçtaki veriye eri³meleri gerekir ise, bu buyruklarn girdi i³lenenlerine ziksel yazmaç dosyasndan eri³ilir. Yazmaçtaki veriye ihtiyac olan bütün tüketici buyruklar emekli olduktan sonra yazmaç içn ayrlan satr özgür braklr. Fiziksel yazmaç dosyas, veri bütünlü§ünün korunmas gereken en kritik i³lemci yaplarndan biridir. Bu yap mimarinin mevcut durumunu saklad§ndan ötürü hatalara kar³ dayankl olmaldr. Ça§da³ i³lemci tasarmlarnda ziksel yazmaç dosyasn veri yozla³masna kar³ korumak için hata düzeltici kodlar kullanlmaktadr[4][5]. Güvenilirli§i sa§larken ba³armn çok fazla dü³ürülmemesi de tasarm açsndan önem ta³maktadr.

Yazmaç yeniden adlandrlmas yaplrken bir ziksel yazmacn ömrü a³a§da belirtildi§i gibi geçer:

1. Yazmaç atanmas: Bir buyruk çözüldü§ünde, bo³ bir ziksel yazmaç o buyruk sonucunu yazabilsin diye ayrlr.

2. Geri yazma: ³letilen buyru§un sonucu ayrlm³ olan yazmaça yazlr. 3. Ba§ml okumalar: Yazmaçtaki de§ere girdi olarak ihtiyac olan müteakip

buyruklar veriyi yazmaçtan okurlar.

4. Yazmaç braklmas: Fiziksel yazmaça boru hatt içinde ba³ka bir referans kalmad§nda yazmaç özgür braklr.

(22)

Fiziksel yazmaçlarn hataya açk olduklar zaman geri yazmann tamamlanmas ile ba§ml okuyucularn sonuncusunun okumay tamamlamas arasnda geçen zamandr. Yazmacn de§erini üreten buyru§un da i³lenmi³ olmas gerekmektedir.

Buyruklar üç ayr snfa ayrlrlar; yükleme/saklama , aritmetik ve dallanma. Bu üç snf içinden yükleme/saklama ve dallanma buyruklarnn ürettikleri sonuçlar mimariye göre de§i³mekle birlikte sanal veya ziksel adreslerden olu³maktadrlar.

Bu çal³mada kullanlan Alpha mimarisi 24 farkl yükleme/saklama ve 17 farkl dallanma buyru§unun sonuçlarn sanal adres olarak hesaplamaktadr[6].

2.1.5 Bellek Sralama

Yükleme buyruklar bellekteki bir adreste bulunan veriyi yazmaç dosyasna kopyalamak için kullanlr. Saklama buyruklar ise yüklemenin tam tersi olan yazmaç dosyasndaki veriyi bellekte belirtilen adrese kopyalar. Belle§e do§rudan eri³im ve önbellek eri³imi ziksel yazmaçlara eri³meye oranla daha yava³ yaplabilmektedir. Belle§e eri³im için gerekli olan adres üretimi de tek bir buyrukta yaplamamaktadr. Bu sebeplerden ötürü yükleme/saklama buyruklar i³lemci içinde çal³an buyruklara oranla daha fazla saat vuru³unda tamamlanabilen buyruklardr. Bu i³lemlerin gerçekle³me zamanlarnn nispeten daha uzun sürmesi boru hatt için bir darbo§az olu³turmaktadr. Bu bölümde bu darbo§az a³mak için önerilmi³ olan yöntemler anlatlmaktadr.

Ayn adres üzerinde yükleme/saklama yapmas gereken buyruklar arasnda da yazmaç yeniden adlandrmada ya³anan ba§mllk tipleri olu³abilmektedir. Bir yükleme buyru§u bellek üzerinde bir adresteki veriyi okuduktan sonra, bu adrese bir saklama buyru§u yeni bir veri yazabilir(okuma sonras yazma) veya da bunun tam tersi bir durum olu³abilir(yazma sonras okuma). Ayrca iki ayr saklama buyru§u bu adresteki veriyi yakn zamanlarda de§i³tirebilir(yazma sonras yazma).

(23)

Bellek sralama ve bellek veri ak³ teknikleri ile ilgili olarak [35][15][41][30] referanslarndan ayrntl bilgi alnabilir.

2.1.6 Program Sayac

Program sayac, çekme evresinde önbellekten çekilecek olan sradaki buyru§un adresini tutmakla sorumlu yazmaça verilen isimdir. Bir ko³ullu dallanma buyru§u görene kadar program sayac buyruklar sral bir ³ekilde tutar.

2.2 Mimari Hataya Açklk Etkeni

Bir sistemin Mimari Hataya Açklk Etkeni(MHAE), incelenen saysal donanm yapsnn geçici hatalardan etkilenmeye uygunlu§unu ölçer.

Donanm yaplarnn MHAE'lerini hesaplamak için Mimarisel Do§ru Yürütme(MDDY) analizi yöntemi kullanlr. ncelenen yapdaki bir bitteki de§i³ikli§in programn hatal çkt vermesine sebep olmas, o bitin MDDY bit oldu§u anlamna gelir. Burada dikkat edilmesi gereken bir nokta, bir bitin MDDY biti olup olmad§nn zamana göre de§i³ebilece§idir. Mesela, geçersiz bir önbellek satrnn veri blokunda bulunan bitlerin de§i³imi programn çktsana hiçbir ³ekilde etki et-meyecekken, bu satr geçerli oldu§unda veri blokunda olu³abilecek de§i³ikliklerin hatal program çktsna sebep olma ihtimali bulunmaktadr.

Bir donanm yapsnn MHAE'si a³a§da belirtildi§i gibi tanmlanr:

MHAE = Toplam Çevrim SaysΣ MDDY bitlerinin etkin oldu§u çevrimler× Donanm Yapsndaki Toplam Bit Says Hatalar farkedilen ve farkedilmeyen olarak snandrlr. Gizli veri yozla³mas

(24)

(GVY), farkedilmeyen hatalar için kullanlan bir terimken, farkedilen düzeltile-meyecek hatalar(FDH) belirlenen hatalar için kullanlr.

2.3 Sanal Adresleme

Sanal adresleme kri belle§e s§amayacak kadar büyük programlar desteklemek için ortaya atlm³tr. Ayrca bir sanal adres uzayna bir di§er adres uzayndan eri³ilmesini engelleyerek çok görevli i³letimin güvenli bir biçimde yaplmasna yardmc olur. Bu ³ekilde çal³an sistemlerde bir adres uzaynda ko³an programn bir ba³ka adres uzaynda ko³an programn belle§ine do§rudan eri³imi yoktur.

Ça§da³ sistemlerin sanal adreslemeyi gerçeklemek için kullandklar yönteme sayfalama denir. Sayfa, sabit boyutlu bir bellek bloku olarak ba§layc tarafndan atanan sanal sayfa numaras ile belirtilen bellek parças olarak tanmlanr. Program kod ve veri bölütleri sayfalarn içinde tutulur.

Bir program i³letim sistemi tarafndan çal³trlaca§ zaman, sayfalar ziksel adres uzayna kar³lk gelecek ³ekilde e³le³tirilir. ³letim sistemi her bir program için bu e³le³tirmeleri sayfa tablosu adnda bir yapda tutar. Sayfa tablosu sanal adresler ile ziksel adresler arasndaki e³le³meleri tutmak için uygun olmasna ra§men bellek üzerinde tutulmas sebebiyle sanal adreslerin ziksel kar³lklarnn sorgulanmas yava³ yürütülen bir süreçtir. Bu sebepten ötürü ça§da³ i³lemciler adres çeviri belle§i(ESÖ) adnda bir donanm yaps barndrrlar. ESÖ adres e³le³melerini tutmakla sorumlu ili³kili önbellektir. ESÖ'ler veri ve buyruk önbelleklerine benzer bir ³ekilde içerik adreslenebilir bellek(CAM) kullanarak gerçeklenmi³lerdir. Bu ³ekilde e³le³meler hzlca sorgulanabilmektedirler.

“ekil 2.4 sanal adreslerin ziksel adreslere çevirim sürecini göstermektedir. ³lemciden Bellek ³letme Birimi(MMU)'ne gelen bir bellek iste§inde istenilen çevirim ESÖ tarafndan sa§lanabiliyorsa buna ESÖ çarpmas denir. Aranan çevirim ESÖ'de bulunamadysa bu durum ESÖ skas olarak adlandrlr.

(25)

Etkin

Sayfalar

Önbelleği

Sanal Adres(64) Sayfa No.(52) Eklenti(12) Fiziksel Adres(64) Fiziksel Sayfa(52) Eklenti(12) Adres bulundu

Sayfa

Tablosu

Adres Bulunamadı Sayfa Tablosu’ndan Adresi al ve ESÖ’yü güncelle

“ekil 2.4: Sanal adresten ziksel adrese çevirim

ESÖ'nin önbelleklere göre konumu da önemli bir tasarm karar olu³turmaktadr. Önbellekler ziksel olarak dizinlenmi³ sanal etiketli (PIVT), sanal olarak dizin-lenmi³ sanal etiketli(VIVT), veya sanal olarak dizindizin-lenmi³ ziksel etiketli (VIPT) olabilirler.

E³le³tirilmemi³ bir sayfaya bir buyruk tarafndan eri³ilmeye çal³ld§nda sayfa hatas meydana gelir. Sayfa hatasnn olma sebebi sanal adresin bir ziksel kar³l§nn henüz e³le³tirilmemi³ olmas veya buyru§un eri³mek istedi§i bellek alanna eri³imi olmamas olabilir.

(26)

Çizelge 2.2: Hamming (7,4,3) kod kelimeleri 0000000 0100101 1000011 1100110 0001111 0101010 1001100 1101001 0010110 0110011 1010101 1110000 0011011 0111100 1011010 1111111

2.4 Do§rusal Blok Kodlar

Blok kodlar sabit boyutta mesajlara bölütlenmi³ bilgi dizileridir. ki mesajn do§rusal kombinasyonu da do§rusal ise bu blok koda do§rusal blok kod denir. (n, k, d)'lik blok kod, k sembollük bir girdinin n boyutunda bir kod kelimesine gömülece§ini belirdir. Buradaki d ise iki kod kelimesi arasndaki asgari hamming mesafesini belirtir. k boyutunda bir bit dizisi kullanlarak 2k farkl mesaj

yaratlabilir. Kodlama süreci a³a§da belirtildi§i gibidir:

1. H ∈ {0, 1}mxn parite denetleme matrisi olsun, ve m = n − k için G ∈

{0, 1}kxn de C kodu için üreteç matrisi olsun.

2. Bir kodun sistematik olmas için üreteç matrisinin G = [Ik|P ] formunda

olmas gerekir. Bu durumda parite denetleme matrisi H = [PT|I

k] olur.

3. Girdi mesaj x = {x0, x1, ..., xk−1} olan c kod kelimesi c = mG olarak elde

edilir.

Örnek olarak Hamming (7,4,3) kodlamas kullanlarak olu³turulabilecek kod kelimlere Çizelge 2.2'de gösterilmi³tir. Görüldü§ü üzere bütün kod kelimeleri arasndaki hamming mesafesi 3 veya 3'ün üzerindedir. Bu ³ekilde bu kod kullanlarak tek hata düzeltimi ve çift hataya kadar hata tespiti yaplabilmektedir.

(27)

3. L“KL ÇALI“MALAR

Bu bölümde mikroi³lemcileri geçici hatalardan korumak ve hataya müsaitli§i ölçülebilir klmak için yaplm³ olan farkl çal³malar anlatlmaktadr.

MHAE'ye alternatif olarak bir sistemin güvenilirli§inin ölçülebilmesi için [23] çal³masnda olaslk tabanl bir kestirim modeli olu³turulmu³tur.

[33] çal³masnda i³lemcinin bellekten veri beklerken bo³ta kald§ zamanlarda kullanlmayan i³lem gücünün i³letilmi³ buyruklarn bu bekleme esnasnda tekrar i³letilerek hata tespiti yaplmasn önermektedir.

Fiziksel yazmaç dosyasn korumak için farkl bir yöntem de [26] ile önerilmektedir. Çal³mada, veri saklayan ziksel yazmaçlarn verilerinin kullanlmayan ziksel yazmaçlara yedeklenerek hata tespit edildi§inde hataya düzeltmek için yedek kopyann okunabilece§i ve bu ³ekilde ziksel yazmaç dosyasnn korunabilece§i anlatlmaktadr.

[34] çal³mas ile sistemi hataya dayankl klan mekanizmalarn sadece yazlm üz-erinde gerçeklenebilece§i, hataya dayankl sistemlerin donanm yardm olmadan, buyruk düzeyindeki paralellikten yararlanlarak sa§lanabilece§i gösterilmektedir.

[27] çal³masnda Alpha temelli bir i³lemcinin yannda, ayn i³lemcinin daha basitle³tirilmi³ bir türevi kullanlarak ana i³lemcideki hatalar yardmc i³lemci

(28)

sayesinde tespit edilerek hata denetimi ve düzeltilmesi sa§lanmaktadr.

[42] çal³mas hata düzelten kodlarn sanalla³trlmasndan yararlanlarak farkl kodlama biçimlerinin kullanlmasn ve hata düzelten kodlarn sadece hata olu³an durumlarda i³letilmesini önermektededir.

³lemci yazmaçlarnda tutulan dar de§erler üst bitleri 1 veya 0 dizisinden olu³an de§erler olarak tanmlanmaktadr. Saklanan verilerin darl§ndan yararlanlarak ba³arm, güç tasarrufu ve güvenilirlik alanlarnda olumlu etkileri olmu³ çe³itli çal³malar yaplm³tr[13][17] [24].

[20] çal³mas ziksel yazmaçta saklanan dar de§erlerin ayn yazmaç üzerinde kopyalarnn saklanmas sayesinde ziksel yazmaçn güvenilirli§inin arttrlabile-ce§ini önermektedir.

Geçici hatalara kar³ koruma sa§lamak için, [16] çal³mas dar de§erleri tespit ederek, üzerinde önerilen farkl yöntemler ile ba³arm etkilemeyecek bir ³ekilde i³lemci içerisindeki yazmaçlarn güvenilirli§inin artrlmasnn mümkün oldu§unu belirtmektedir.

Literatürde derleyici mimari etkile³imini konu alan çal³malar olmakla beraber, çal³mann konusu olan sanal adreslerin kullanlarak güvenilirli§in arttrlmasna yönelik bir çal³maya rastlanmam³tr .

[40] çalsmas yazmaç dosyasnn geçici hatalara kar³ açkl§n ölçmek için yazmaç hataya açklk etkenini geli³tirmi³tir ve sonrasnda derleyiciyi kullanarak yazma ve okuma i³lemlerinin konumlandrlmalarn de§i³tirerek kendi geli³tirmi³ oldu§u hataya açklk etkenindeki dü³ü³ gösterilmi³tir.

(29)

[3] ile MHAE'yi geli³tirmenin sadece donanm üzerinde de§il, derleyici kul-lanlarak da mümkün oldu§u belirtilmi³tir. Çal³mada MHAE kavramnn ba³arm ile etkisini belirtilen yeni bir kavram geli³tirili³mi³ olup, derleyici bayraklarnn kullanmlarna göre MHAE'ye etkileri gözlemlenmi³tir.

[25] statik analiz yöntemiyle bir programdaki korunmas önce likli olan program bölütlerini tespit ederek bunlar ksmi olarak korunan bir belle§in korumal ksmnda saklamay önermektedir. Bu ³ekilde bütün belle§i ECC ile korumak yerine kritik program parçalarnn korudu§u bir alan sa§lanarak güçten ve alandan tasarruf edildi§ini belirtmektedir.

[22] ise yazmaç dosyasnn hataya açkl§n derleme zamannda kestirebilen bir statik analiz yöntemi önermekte ve derleyici en iyile³tirmelerini kullanarak hatalara kar³ koruma sa§lanabildi§ini belirtmektedir.

Uyu³mazlk skas, küme ili³kili veya do§rudan harital önbelleklerde farkl bloklarn ayn satrlara yerle³tirilmesi sonucu olu³an bir durumdur. [32] çal³mas çok çekirdekli sistemlerde olu³abilecek uyu³mazlk skalarnn derleyici yönetimli sayfa boyama olarak isimlendirilmi³ bir yöntemle engellenebilece§ini göster-mi³tir. Bu yöntem derleyicinin eri³im desenleri hakknda bilgi sahibi olmasndan yararlanarak son seviye önbelle§in uygulamalar arasnda daha düzgün ³ekilde payla³trlmasn sa§lamaktadr.

(30)

4. Önerilen Hata Düzeltme Yöntemi

Sanal adresler, sanal sayfa ve eklenti olmak üzere iki bölümden olu³maktadrlar. “ekil 4.1 ile gösterilmi³ olan ziksel olarak dizinlenmi³ sanal etiketli sanal adreslerde, adresin eklenti ksm ziksel adreslerde de sanal adreslerde de ayn yeri ifade eder. Fiziksel adres ile sanal adres arasndaki farkllk sadece sanal sayfa numarasn tutan ksmdadr. Bu tarz adreslemede etiket özgün bir ³ekilde veriyi tanmlayamad§ndan ötürü ayn sanal adresler farkl ziksel adreslerle e³le³tirilebilmektedir. Bunu engellemek için her bir adres satrna ayrca adres uzay belirteni eklenir. Bu ³ekilde yaplan adres isteklerinin hangi adres uzayndan geldi§i takip edilebilmekte ve farkl programlarn ayn sanal adrese sahip bölümlerinin birbirlerinin çevirimlerine kar³mas engellenebilmektedir.

Günümüz sistemleri ana belle§i ve önbellekleri [21] [7] hata düzeltici kodlarla korumaktadrlar. Bellekler tamamen korumal olsalar bile buralardaki veriler i³lemci üzerindeki dizili yaplarn kritik yol üzerinde olmalar sebebiyle bunlar üz-erinde hata düzeltici kodlarn kullanlmas ba³arm olumsuz etkilemektedir. Bu sebepten ötürü parite denetlemesi gibi basit yöntemlerin kullanlmas mümkünken daha karma³k devreler gerektiren hata düzeltici kodlar tercih edilmemektedir [12][19].

Bir mikroi³lemcinin üzerinde saklanan de§erler adres de§erleri ya da veri de§erleri olarak ikiye ayrlabilir. Adres de§erleri bir dallanma sonucunda gidilecek adresi, bellekten yüklenmesi gereken bir verinin hangi adresten yüklenece§ini veya bellek üzerinde saklanmas gereken bir verinin hangi bellek adresi üzerinde

(31)

BELLEK YÖNETİM BİRİMİ

EKLENTİ SANAL SAYFA NUMARASI

0xC0004088

0xC0004 0x088

FİZİKSEL ADRES

EKLENTİ 0x088 FİZİKSEL SAYFA NUMARASI

0xDE020

0xDE0204088

“ekil 4.1: Fiziksel olarak dizinlenmi³ sanal etiketli adres Çizelge 4.1: Örnek program adreslemesi

Adres Sembol 000000000040060b get_syndrome 0000000000400673 main 0000000000400b40 __libc_start_main 0000000000400df0 __libc_check_standard_fds 0000000000400e8e check_one_fd.part.0 0000000000400f00 __libc_setup_tls 0000000000401130 _dl_tls_setup 00000000004011a0 __pthread_initialize_mini

saklanaca§n tutarlar. Veri de§erleri ise aritmetik i³lem sonuçlarn tutarlar. Fiziksel olarak dizinlenmi³ sanal etiketli önbellek kullanan sistemlerde program sayacnda, ziksel yazmaç dosyasnda ve etkin sayfalar önbelle§inde sanal adres de§erleri saklanmaktadr.

Program sayac i³lemcinin sradaki buyru§u hangi adresten çekece§ini saklayan yapdr. Program sayacnn herhangi bir bitinde olu³acak bir hata program ak³nn de§i³mesine ve dolaysyla programn hatal bir ³ekilde sonlanmasna sebebiyet verecektir. Örne§in, “ekil 4.3'de SPARC tabanl bir sistemin program sayacnn bellekten bir sonraki getirmesi gereken adres olarak 0x403d2000 gözükmektedir. Bu adreste yazmaç üzerinde tutulan verinin 18 says ile

(32)

'mantksal ve' i³leminden geçirilerek sonucun ayn yazmaca yazlmasn belirten bir buyruk saklanmaktadr. Kesikli çizgi ise 0x403d2000 adresine hamming uzakl§ bir olan 0x403c2000 adresini göstermektedir. Bu adreste g4 yazmacnda tutulan adrese dallanlmasn belirten bir buyruk bulunmaktadr. Program sayacnn mevcut de§erinin 17. bitinin 1 iken 0 de§erine dönü³mesi program sayacnn dallanma buyru§unu göstermesine sebep olacaktr. Bu dallanma buyru§unun hatal bir ³ekilde bellekten getirilerek i³lemci tarafndan yürütülmesi program ak³n bozacaktr ve program çkts hatal olacaktr.

Fiziksel yazmaç dosyas yürütülen buyruklarn sonuçlarnn sakland§ donanm yapsdr. Fiziksel yazmaç dosyas üzerinde sonuç olarak adres saklayan buyruk-lar yükleme/saklama buyrukbuyruk-lar ve dallanma buyrukbuyruk-lardr. Bu buyrukbuyruk-larn sonuçlarnn saklanmalar esnasnda tutulduklar yazmacn sanal sayfa saklayan bit hücrelerinde meydana gelecek olan bir de§i³im belle§in yanl³ adresinden veri çekilmesi, üretilen bir sonucun yanl³ bellek adresine saklanmas veya programn yanl³ bir noktaya dallanmasyla sonuçlanabilir. Bu durumlara ek olarak saklanan adres tanmsz bir adrese dönü³erek programn ak³ geri dönülemeyen bir sayfa hatas ile son bulabilir. Sistem üzerinde i³letilen buyruklarn snarna göre da§lmlar “ekil 4.5 ile gösterilmi³tir. Buradan da görüldü§ü üzere i³letilen bütün buyruklarn %52'si bahsedilen durumdan etkilenmeye müsaitlerdir. “ekil 4.3 ile r0 yazmacndaki adrese ko³ulsuz dallanmak için kullanlan jmp buyru§unun de§eri program sayacnn bir sonraki saat vuru³unda gösterece§i adresi saklamaktadr. Bu adres ziksel yazmaç dosyasnda tutulurken sayfa numarasnn 2. biti 1'den 0'a de§i³ti§i takdirde sonraki program sayac yanl³ adresten buyruk çekecek ve program ak³ de§i³ti§inden ötürü program çkts hatal olacaktr.

ESÖ ise sanal adreslerin ziksel kar³lklarn sa§lamakla sorumludur. ESÖ üzerinde etkin olan iki satrda saklanan sanal etiketlerin birbirleri arasndaki hamming mesafesi 1 oldu§unda, bunlardan birinde olu³abilecek bir bitlik hata yanl³ adres çevirimine yol açp yanl³ verinin çekilmesine sebep olabilecektir. Çizelge 4.2 ile üç adet basitle³tirilmi³ ESÖ satr gösterilmektedir. Burada bütün satrlarn sanal sayfa numaralarnn birbirlerine olan hamming uzakl§ 1'dir. Örne§in, Birinci satrn sanal sayfa numarasnn 1. biti 1 oldu§u zaman 2.

(33)

Çizelge 4.2: Örnek ESÖ satrlar

Sanal Sayfa Numaras Adres Fiziksel Sayfa Numaras

0x400 0x180 0x401 0x243 0x402 0x854 Veri 000 004 000 004 0x8810000 0x81c12000 0xc20f6000 0x82086012

Eklenti Makina Dili

mov %g0,g4 jmp %g4 ldub [%i5], %g1 and %g1,18,%g1 0x403c2 0x403c2 0x403d2 0x403d2 Sayfa No Adres Program Sayacı 0x403d2000

“ekil 4.2: Program sayacnda bit hatas olu³mas

satrla ayn sayfa numaras farkl adresleri belirtecektir veya 3. satrn sanal sayfa numarasnn 2. biti 0 oldu§u zaman 1. satrla birlikte ayn sanal sayfa numarasna sahip olup farkl adresi göstereceklerdir.

Kullanlabilecek sayfa numaras says mimarinin kulland§ sayfa boyutuna göre de§i³iklik gösterir. Örne§in x86_64 mimarisi 4kB boyutunda sayfalar

Yazmaç Dosyası 0x10002 0x10000 0xD3ADB33F 0x004 0x82 R0 R2 R1 . . . Program Sayacı 0x403d2000 Buyruk jmp %r0 r0 Sonraki Program Sayacı 0x10002004 0x10000004

(34)

0 50000 100000 150000 200000 250000 as ta r b w av es b zip 2 cact u sADM calcu lix d ealII gam es s gcc G em sFDT D gromacs 0 50000 100000 150000 200000 250000 astar bwaves bzip2 cactusADM calculix dealII gamess gcc GemsFDTD gromacs h264ref hmmer lbm leslie3d libquantum mcf milc namd omnetpp povray sjeng zeusmp Ortalama

“ekil 4.4: SPEC2006 ölçüm programlarnn kullandklar sayfa saylar kulland§ için 252 sayfa tanmlamak mümkünken, Alpha mimarisinde 8kB

boyutunda sayfalar kullanlmas 251 sayfa tanmlanmasn mümkün klmaktadr.

Önemli bir nokta mevcut masaüstü ve sunucu sistemlerinde ko³an programlarn bu kadar sayfaya ihtiyaç duymamalardr. Örnek olarak SPEC2006 ölçüm programlarnn kullandklar sayfa saylar “ekil 4.4 ile verilmi³tir. Azami sayfa kullanmnn 214611(218'den az) sayfa saysyla mcf ölçüm programna ait oldu§u

(35)

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

yükleme saklama dallanma diğer

“ekil 4.5: Buyruk snarnn da§lmlar

4.1 Ba§layc Üzerinde Gerçeklenmi³ Döngüsel

Kod-layc

Sanal adresleme destekleyen bir mikroi³lemci üzerinde ko³acak bir programn buyruk ve verilerinin saklanacaklar sanal adreslerin bir ³ekilde atanmas gerek-mektedir. Bu süreç “ekil 4.6 ile gösterilmi³tir. Günümüz i³letim sistemlerinde programc tarafndan üst seviye bir programlama dilinde yazlm³ olan bir programn adres atanmas ortak kütüphane kullanlmad§ zamanlarda sadece ba§lama zamannda gerçekle³tirilir. Ortak kütüphane kullanlmas durumunda i³letim sistemi üzerindeki dinamik ba§layc/yükleyici ortak kütüphane ile ilgili sembolleri çözümler ve adreslemesini yapar. Derleyici farkl dosyalardan olu³an kodlar makina diline çevirir. Bunun sonucu ortaya çkan dosyalara nesne dosyalar ad verilir. Daha sonra bu nesne dosyalar ba§layc tarafndan bir araya getirilir ve adres atamalar yaplr. Ba§layc adres atamalarn yaparken Bu süreç sonunda ortaya çkan ikili dosya i³lemci üzerinde çal³abilecek hale gelmi³ olur.

Çizelge 4.1 ile 4kB boyutunda sayfalar kullanan, ortak kütüphane kullanmayan, Golay kodu üretmek için kullanlan örnek bir programn adreslemesinin bir

(36)

Kaynak Kod Dinamik Bağlayıcı/ Yükleyici Bağlayıcı Derleyici Sistem Yapıları

“ekil 4.6: Bir programn adreslenme ya³am döngüsü

parças gösterilmi³tir. 4kB sayfa kullanm 16lk sistemde belirtilmi³ adreslerin ilk 3 hanesinin eklentiden, adresin geri kalannn ise sayfa numarasndan olu³tu§unu belirtmektedir. Burada gösterilen program i³levleri iki ayr sayfada tutul-maktadrlar. 0x400 numaral sayfa get_syndrome, main, __libc_start_main, __libc_check_standard_fds, check_one_fd.part.0, __libc_setup_tls i³levler-ine ait buyruklar tutmaktadr. _dl_tls_setup, __pthread_initialize_mini ve yer tasarrufu nedeniyle çizelge de gösterilmemi³ i³levler ise 0x401 numaral sayfada saklanmaktadr.

Bir önceki bölümdeki mevcut sistemlerin kullanabileceklerinden çok daha fazla sayfa adreslemesinin mümkün oldu§u gözleminden yararlanarak sanal sayfa numaralarnn döngüsel(51,43,3) kodlayc kullanlarak birbirleri arasnda asgari hamming uzakl§ 3 olacak ³ekilde atand§ ve bu adreslerin tutuldu§u noktalarda 1 bitlik hatalarn düzeltilebilece§i bir yöntem bu bölümde önerilmektedir. Bu ³ekilde ESÖ'ler, yazmaç dosyas ve program sayacn hatalara kar³ korumak mümkün olacaktr.

Döngüsel kodlar, c kod kelimesinin döngüsel kaydrlmasnn da kod kelimesi olu³turdu§u do§rusal blok kodlara denir. Gerçeklemesi di§er kodlara göre daha kolaydr. BCH kodu da bir çe³it döngüsel koddur. Bu kod Hamming kodunun çoklu bit hatalarn düzelten bir genellemesidir.

(37)

Çizelge 4.3: Kodlanm³ adresler kullanan program

Adres Sembol Kodlanm³ Adres

0x4001d8 __rela_iplt_start 0x200cc1d8

0x4002f8 _init 0x200cc2f8

0x4003e0 _start 0x200cc2f8

0x401130 _dl_tls_setup 0x2017d130

0x401690 exit 0x2017d690

0x401ae0 srand 0x2017dae0

0x4021d0 printf 0x2021f1d0

0x402450 __libc_message 0x2021f450 0x402840 __libc_fatal 0x2021f840

Bir sanal adres uzay için sayfa numaralarn sral bir ³ekilde atamak yer-ine ba§layc üzerinde gerçeklenmi³ bir döngüsel kodlayc kullanlarak sayfa numaralar atanabilir. Alpha mimarisinde sayfa eklentileri 13 bit, yani 8K boyutunda sayfalar, oldu§u için (51, 43, 3)'lük bir döngüsel kodlayc bu i³ için uygun dü³mektedir. Alpha mimarisinde sayfa numaralar 43 veya 47 bit olarak ilklendirme zamannda ayarlanabilmektedir.

Ba§layc Çizelge 4.3 ile gösterilen do§rusal ³ekilde sayfa numaras atamak yerine, bu atad§ adresleri kodlaycdan geçirdikten sonra atayabilir. Bu ³ekilde bütün sayfa numaralarnn birbirlerinden en az hamming uzakl§ üç ile kodland§ garantilenmi³ olur.

Sendrom çözme do§rusal blok kodlarn çözümünde yaygn olarak kullanlan bir yöntemdir. Sistemdeki sayfa numaralar do§rusal blok kodlar ile kodland§ndan ötürü sendrom çözücüyü sayfa hata kotarcsnn içinde gerçekleyerek geçici hatalar sonucu olu³an sayfa hatalarna kar³ koruma sa§lanabilir. Sendrom çözücüyü gerçeklemek için ilk önce çözme i³leminde kullanlacak olan sendrom tablosunun olu³turulmas gerekmektedir. Bu i³lem için en dü³ük a§rl§a sahip olan w = 0, 1n kelimesi seçilir ve sendromu hesaplanr. Ayn sendroma sahip

(38)

Sendrom s = wHT ³eklinde hesaplanr.

Yukarda bahsedilen çözme yöntemi, daha önceden bahsedilmi³ olan kodlama yöntemi ile birlikte kullanlarak ESÖ, ziksel yazmaç dosyas ve program sayacnda saklanan sanal adreslerin sanal sayfa numaralarnda olu³an hatalarn sayfa sorgusu srasnda sayfa hata kotarcsnda düzeltilebilmesine olanak sa§la-maktadr.

4.2 Önerilen Yöntemin leti³im Sistemlerine

Ben-zerli§i

Bir ileti³im sisteminde veri üzerinde kaynaktan hedefe ula³ana kadar izlenen yol “ekil 4.7 ile gösterilmi³tir. letilmek istenilen sinyal öncelikle kaynak kodlamas kullanlarak sk³trlr ve verimli bir ³ekilde iletilebilecek hale getirilir. Daha sonra kanal kodlamas kullanlarak bu sinyale fazladan birkaç bit eklenir ve bu fazladan bitler sayesinde sinyalin olu³abilecek hatalara kar³ gürbüzlü§ü sa§lanr. Kanal kodlanmas da tamamlanm³ olan sinyal daha sonra verici tarafndan kullanlan ileti³im kanalna iletilir. Örnek olarak bu ileti³im kanal okyanus altndaki ber optik bir kablo veya kablosuz ileti³imde oldu§u gibi hava olabilir. leti³im ortamndaki çevresel gürültüden ötürü iletilmekte olan sinyalde hatalar olu³abilir.napim kuzen ben de burokratik biseyler bek Bu sinyal alc tarafna ula³t§nda alcda bulunan kanal çözücüsü bu hatalar düzelterek kaynak çözücüsüne iletir. Kaynak çözücüsü sk³trlm³ sinyali açtktan sonra sinyal hedefe ula³m³ olur.

Bu tez çal³masnda önerilen süreç ileti³im sistemlerinde kullanlmakta olan verinin kaynak tarafndan gönderilirken hamming kodlanmas ve alc tarafn-dan çözülmesi sürecine büyük bir benzerlik göstermektedir ve a³a§da mad-deler halinde açklanm³tr. Terimlerin benzerli§i açsndan kaynak kodlama kavramnn sinyalin temsil biçiminin de§i³tirilmesi oldu§u, kaynak kodun ise

(39)

Kaynak Gürültü İletişim Kanalı Hedef Kaynak Kodlayıcı Kanal Kodlayıcı Kanal Çözücü Kaynak Çözücü Verici Alıcı

“ekil 4.7: letilecek bilginin kodlanmas ve çözülmesi

program belirten ifadelerden olu³an yazlm parças oldu§una dikkat edilmelidir.

1. Kaynak(Program kaynak kodu): Üst seviye bir programlama dilinde yazlm³ program kaynak kodu iletilecek olan veriyi temsil eder.

2. Kodlayc: Üst seviye programn derleyici vastasyla makina koduna çevrilmesi i³lemi kaynak sinyalinin temsilinin de§i³tirilmesi olarak dü³ünülebilir. Bu noktada, yürütülmek istenilen algoritma üst düzey bir programlama dilinden i³lemcinin çal³trlabilece§i ikili dilde bir temsile dönü³türülür. Makina diline çevrilmi³ olan program bu noktada adresler ve bu adreslerde bulunan buyruklardan olu³maktadr. Bu tez ile önerilmekte olan yöntem kanal kodlamas kullanarak programdaki buyruklar saklayan adreslerin sayfa numaralarnn birbirlerinden hamming mesafesi üç uzakl§nda ola-cak ³ekilde konumlandrlmalaryla bu adreslerin saklandklar yaplarda olu³abilecek bir bit hatasnn programn ak³nda bir soruna yol açmamasn sa§lamaktadr.

(40)

3. leti³im kanal: Programn i³leyi³i srasnda sanal adreslerin sakland§ donanm yaplarnda kanal kodlamas kullanlarak üretilmesi sayesinde hatalara kar³ dayankl olmalar sa§lanr. Örne§in program sayacnda tutulan bir sanal adresin sayfa numarasnda bir bit hata olu³mas adreslerin sral bir ³ekilde saklanmalar durumunda yanl³ bir program ak³na sebep olacakken önerilen ³ekilde sayfa numaralandrlmas yapld§ için sistem olu³acak olan bir bitlik hatay tela edebilecektir.

4. Çözücü: Yaplacak olan her bir sanal adresten ziksel adres tercümesi sistemde ilk olarak ESÖ üzerinde sorgulanr. Bu sorguyu yapan adres saklayan donanm birimi üzerinde bir bitlik hata olu³tu§u durumlarda bütün adresler hamming mesafesi üç ile ayrld§ için sorgulanan adres ESÖ üzerinde bulunamyacaktr. ESÖ üzerinde bulunamayan adres sorgusu sayfa hatasna yol açar ve i³letim sistemi tarafndan saklanmakta olan sayfa tablosuna iletilir. Sayfa hata kotarcs üzerinde gerçeklenmi³ olan kanal çözücüsü adres saklayan birimin iletti§i adresteki bir bitlik hatay düzeltir ve düzeltilmi³ haliyle ESÖ satrn günceller. Bu ³ekilde programn ak³ olu³abilecek muhtemel bir sorundan arnm³ bir ³ekilde devam eder.

5. Hedef: Kaynak tarafndan gönderilen buyruk silsilesinin aradaki duraklarda olu³abilecek hatalara kar³ alnan önlemler sayesinde MDDY'yi bozmadan i³letilebilir halde sunulmas sa§lanlm³ olur.

Yukarda belirtilen süreçten de çkarlabilece§i üzere sanal adres saklayan bir donanm yapsnda her hata olu³tu§unda, sanal adresten ziksel adrese yaplan sorgularn nihai hede sayfa hata kotarcs olmaktadr. Bu tez ile incelenmi³ olan donanm yaplarnda olu³abilecek hata sürecleri a³a§da açklanm³tr.

4.3 Donanm Üzerinde Gerçeklenmi³ Sendrom Çözme

Tezde incelenen donanm yaplar için sendrom çözme için kullanlan standart hata düzeltici kod devreleri gerçeklenebilir. Buradaki durumun kullanlan ECC devrelerinden fark kodlama ksm ba§lama zamannda yapld§ için donanm

(41)

Çizelge 4.4: Yazma eri³imlerinin toplam eri³imlere oran Ölçüm program Oran Ölçüm program Oran

bzip2 0,35 cactusADM 0,37 calculix 0,36 gcc 0,36 gromacs 0,64 hmmer 0,37 lbm 0,17 libquantum 0,35 mcf 0,12 namd 0,36 omnetpp 0,34 povray 0,32 soplex 0,35 ortalama 0,36

üzerinde kodlayc gerçeklemeye gerek olmay³dr. Sadece yazmaç okumalarnda ECC devreleri çal³aca§ndan ötürü standart ECC yapsna göre güç tasarrufu sa§lanabilecektir. Bu ³ekilde sayfa hata kotarcsnda gerçeklenmi³ çözücünün ortaya çkard§ ba³arm kayb da engellenebilir. Fiziksel yazmaç dosyas için yazma eri³imlerinin toplam eri³imlere oran Çizelge 4.4 ile gösterilmi³tir.

(42)

5. DENEYSEL SONUÇLAR

Önerilen hata bulma ve düzeltme yönteminin ba³armn ölçmek için Linux 3.0 çekirde§i sayfa hata kotarcs içinde gerçeklenmi³ olan sendrom çözücü algoritmas SPEC2006 ölçüm programlaryla çal³trlm³tr. Sendrom çözücünün ba³arma etkisi “ekil 5.1 ile verilmi³tir. Hata kotarcsna eklenen blok çözücü %13 ba³arm kayb yaratm³tr. Intel mimarisinde bulunan TBÇV buyruklar veri seviyesinde paralellikten yararlanarak ayn veri üzerinde paralel i³lem yaplmasna olanak sa§layan buyruk kümesidir. Ayn çözücü TBÇV buyruk kümesindeki bir veri üzerinde 1 olan bitleri sayma buyru§u olan popcnt buyru§u kullanlarak gerçeklendi§inde ba³arm kayb %8 olmu³tur. Linux sayfa hata kotarcsnn içine gömülmü³ olan çözücü kodlar, TBÇV kullanan ve kullanmayan halleri ile birlikte Ekler ksmnda verilmi³tir.

Ba³armda ya³anan dü³ü³e kar³n, çal³mada kullanlan yöntem sayesinde buyruk ve veri ESÖ'lerinin MHAE'lerinde “ekil 5.2 ve 5.3 ile görüldü§ü gibi kayda de§er bir azalma sa§lanm³tr. Önerilen yöntem sanal adreslerin sayfa numaralar ksmn korudu§u için bu azalma sa§lanm³tr.

Alpha 21264 için bir ESÖ satr sanal etiketler, ziksel sayfa numaras, oku-ma/yazma izin bitleri, adres uzay belirteni, okuma yazma için hata bitleri ve geçerli bitinden olu³maktadr. ESÖ üzerinde sanal etiket yüzünden hata olu³abilmesinin tek yolu iki ayr satrn geçerli olduklar durumda birbirlerine olan hamming uzaklklarnn 1 olmas ve bu iki satrdan birinin sanal etiketinin bir geçici hata sebebiyle tek bitinin de§i³mesi sonucu ayn adresin farkl çevirilere sahip olmas durumudur.

(43)

0,7

0,75

0,8

0,85

0,9

0,95

1

Çözücü

TBÇV kullanan çözücü

“ekil 5.1: Sayfa hata kotarcsnda gerçeklenmi³ sendrom çözücünün ba³arma etkisi

ESÖ üzerinde sanal adres sayfa numaras saklayan bit hücrelerinde olu³abilecek bir bit hatas hamming distance bir uzakl§nda ba³ka bir adres olmayaca§ kodlama evresinde garanti edildi§inden ötürü sadece bir sayfa hatasna sebep olacaktr. ESÖ üzerinde sayfa numaralar birbirinden hamming uzakl§ bir ile ayrlm³ farkl adresler bulunamayaca§ndan dolay olu³abilecek tek bitlik hatalara kar³ koruma sa§lanm³ olur.

Bir ziksel yazmaçn hataya açk oldu§u an geri yazma ile tüketicilerin sonuncusu-nun okumasn bitirmesi aral§ndadr. Alpha mimarisinde, yükleme/saklama ve dallanma buyruklar sonuçlarn sanal adre olarak üretmektedirler. Kulland§mz yöntem ziksel yazmaç dosyasn hataya açk oldu§u zamanlarda koruyabilmek-tedir. Fiziksel yazmaç dosyasnda ortaya çkan MHAE'deki azalma “ekil ?? ile gösterilmi³ir. Kullanlan üç ayr buyruk snfndan dallanma ve yükleme/saklama

(44)

0 2 4 6 8 10 12 14

Etkin Buyruk Sayfaları Önbelleği MHAE

Etkin Buyruk Sayfaları Önbelleği MHAE Kazanımı

“ekil 5.2: EBSÖ için MHAE'deki azalma

buyruklarnn ürettikleri sonuçlar sanal adres olarak ziksel yazmaçlarda saklan-maktadrlar. Bu sonuçlar ba§ml okuyucu buyruklarn sonuncusunun saklanan de§eri okumasna kadar atanm³ olan yazmaçta tutulurlar. Saklanan sonuçlar kullanlacaklar zaman ESÖ üzerinden sorgulanarak ziksel adres kar³lklar ö§renilir. Bu duruma ba§l olarak sanal adres saklayan yazmaçlarda olu³acak bit hatalar sayfa hata kotarcsnda adres kar³l§nn sorgulanmasna sebep olur. Bu durumda da ayn program sayacnda oldu§u gibi sayfa hata kotarcs hatay düzelterek do§ru

Program sayacnda olu³abilecek bir geçici hata, boruhattnn bo³altlmakta olmad§ bütün durumlar için hatal sonuç üretecektir. Önerilen yöntem “ekil 5.5 program sayacnn sanal sayfa numaralar tutulan ksmn koruyabilmektedir. Program sayac üzerinde olu³an bir bitlik hata, program sayacnda tutulan sanal adresin tercüme edilmesi iste§i ile sonuçlanacaktr. Örne§in program sayacnda 0x10000000 olarak saklanmakta olan bir adres 0x10080000 olarak de§i³ebilir. Tezde önerilen yöntem do§rultusunda adresler hamming uzakl§ üç olacak ³ekilde kodlandklarndan, 0x10080000 adresi için sorgu sayfa hata kotarcsna ula³t§nda, sayfa hata kotarcs bu sorgunun aslnda 0x10000000 adresine oldu§unu farkederek sanal adresin do§ru ziksel kar³l§n sa§layabilir. Bu ³ekilde program sayac üzerinde olu³mu³ olan bir bitlik hata savu³turulmu³

(45)

80 100 120 0 2 4 6 8 10 12

Etkin Veri Sayfaları Önbelleği MHAE

Etkin Veri Sayfaları Önbelleği MHAE Kazanımı

“ekil 5.3: EVSÖ için MHAE'deki azalma olur.

5.1 Deney Ortam

Çal³mada yaplan bütün MHAE ölçümleri gem5[8] benzetim ortam üzerinde SPEC2006 ölçüm programlarn ko³turarark yaplm³tr. Benzetim ortam de§i³kenleri Tablo 5.2 ile gösterilmi³tir. Sunulan sonuçlar 250 milyon buyrukluk snma zamannn ardndan gem5'in 250 milyon buyruk ko³turulmasyla elde edilmi³tir. Bütün ölçüm programlarnn gem5 benzetim ortam üzerinde sa§lkl bir ³ekilde çal³trlmas sa§lanamad§ndan ötürü baz ölçüm programlaryla ölçüm alnamam³tr. Çal³mada kullanlm³ olan SPEC2006 ölçüm programlar ve açklamalar Tablo 5.1 ile gösterilmi³tir.

(46)

perlbench C Programlama dili Perl 5.8.7'den türetilmi³tir. çinde SpamAssassin,

MHonArc (e-posta

düzenleyicisi), and specdi (Ölçüm programlar çktlarn denetleyen SPEC arac )programlarn barndrr.

bzip2 C Sk³trma Julian Seward'n 1.0.3

sürümlü bellek-yo§un i³lem yapan bzip2 kodu.

gcc C C derleyicisi Opteron mimarisi için kod

üreten gcc 3.2 tabanl der-leyici

mcf C Kombinatoryel Eniyile³tirme Ayn zamanda ticari ürün-lerdede kullanlan bir a§ simpleks algoritmas kulla-narak araç takvimlesi ya-par.

gobmk C Yapay Us Go isimli kurallar basit

ama çok karma³k bir oyunu oynar.

hmmer C Gen dizisi aramas Prol gizli Markov

modelleri kullanarak protein dizileri analizi

sjeng C Yapay Us Farkl tarzlarda satranç

oy-nayabilen üst düzey bir satranç program

(47)

libquantum C Fizik / Kuvantum hesaplama Shor'un polinom zaman faktorizasyon algoritmasn ko³an bir kuvantum bilgisayarn benzetimini yapar

h264ref C Video Sk³trma H.264/AVC kodlaycsnn

referans gerçeklemesi. omnetpp C++ Ayrk olay benzetimi OMNet++ ayrk olay

ben-zetimini kullanarak büyük bir Ethernet a§nn benzeti-mini yapar

astar C++ Yol bulma algoritmalar 2 Boyutlu haritalar için yol bulma algoritmalar kütüphanesi. Bilindik A* algoritmasn da içerir. Çizelge 5.1: Ölçüm programlar açklamalar

(48)

0 2 4 6 8 10 12 14 16

Fiziksel Yazmaç Dosyası MHAE Fiziksel Yazmaç Dosyası MHAE Kazanımı

“ekil 5.4: Fiziksel yazmaç dosyas için MHAE'deki azalma

0

20

40

60

80

100

120

b

zip

2

cact

u

sADM

calculix

gcc

gromacs

h

m

m

er

lb

m

libq

u

an

tu

m

m

cf

n

am

d

o

mn

etp

p

p

o

vra

y

so

p

le

x

ort

alama

Program Sayacı MHAE

Program Sayacı MHAE Kazanımı

(49)

Çizelge 5.2: Benzetim ortam de§i³kenleri

Parametre Yaplandrma

³lemci Alpha 21264

Boru Hatt Geni³li§i 8 çek, çöz, yürüt, yaz

Pencere Boyutu 32 satr yükleme/saklama kuyru§u, 192 satr yeniden sralama belle§i, 256 satr yazmaç dosyas

ESÖ 64 satr veri, 48 satr buyruk

L1 Buyruk Önbelle§i 32KB, 2 yollu kümeli ili³kili, 64 bayt satr, 1 saat vuru³u isabet gecikmesi

L1 Veri Önbelle§i 64 KB, 2 yollu kümeli ili³kili, 64 bayt satr, 1 saat vuru³u isabet gecikmesi

L2 Birle³ik Önbellek 256 KB, 16 yollu kümeli ili³kili, 64 bayt satr, 10 saat vuru³u isabet gecikmesi

(50)

6. SONUÇ

Bu tez çal³masnda ziksel olarak dizinlenmi³ sanal etiketli sistemlerde sanal adres saklanan sistem yaplar olan etkin sayfalar önbelle§i, ziksel yazmaç dosyas ve program sayac üzerinde olu³mas muhtemel bit hatalarna kar³; sanal adres olu³turma zamannda kullanlan kodlama yöntemi ve sayfa hata kotarcs üzerinde gerçeklenmi³ çözücüsünün birlikte kullanm ile koruma sa§lanm³tr. Önerilmi³ olan yöntem sayesinde bahsi geçen donanm yaplar MHAE'lerinde etkin veri sayfalar önbelle§i için 42.5%, etkin buyruk sayfalar önbelle§i için 40.3%, program sayac için 69.2% ve ziksel yazmaç dosyas için 33.3% düzeyinde bir iyile³tirme sa§lanm³tr. Bu çal³maya ek olarak ileride farkl kodlama ve çözme yöntemleri kullanlarak, veya donanm yardm ile ba³armda olu³an dü³ü³ün önüne geçilebilir ve yöntemin sistem ba³armna etkisi göz ard edilebile-cek ³ekilde hatalara kar³ koruma sa§lanabilir.

(51)

KAYNAKLAR

[1] In Semiconductors Industry Association (SIA), International Tech-nology Roadmap for Semiconductors 2005, http://www.itrs.net/Links/ 2005ITRS/Home2005.htm.

[2] In S. Mukherjee, "Architecture Design for Soft Errors", (Boston,Morgan-Kafumann),2008.

[3] In T. M. Jones, M. F. P. O'Boyle, and O. Ergin, Evaluating the eect of compiler optimizations on MHAE, in Workshop on Interaction Between Compilers and Computer Architecture (INTERACT-12), 2008.

[4] In Kahle, J.; Sinharoy, B.; Starke, W.; Taylor, S.; Weitzel, S.; Chu, S.G.; Islam, S.; Zyuban, V.; , "The implementation of POWER7TM: A highly parallel and scalable multi-core high-end server processor," Solid-State Circuits Conference Digest of Technical Papers (ISSCC), 2010 IEEE International , vol., no., pp.102-103, 7-11 Feb. 2010.

[5] In KNaziger, S.D.; Hammond, G.; , "The implementation of the next- generation 64 b ItaniumTM microprocessor," Solid-State Circuits Conference, 2002. Digest of Technical Papers. ISSCC. 2002 IEEE International , vol.1, no., pp.344-472 vol.1, 2002.

[6] In "Alpha Architecture Reference Manual, Fourth Edition", Compaq, 2002. [7] In "AMD eighth generation processor architecture. AMD white paper, Oct

2001.".

[8] In "N. Binkert, B. Beckmann, G. Black, S. K. Reinhardt, A. Saidi, A. Basu, J. Hestness, D. R. Hower, T. Krishna, S. Sardashti, R. Sen, K. Sewell,

(52)

M. Shoaib, N. Vaish, M. D.Hill, and D. A. Wood. The gem5 simulator. SIGARCHComput. Archit. News, 39:17, Aug. 2011.

[9] In A. Gordon, editor, Programming Languages and Systems, volume 6012 of Lecture Notes in Computer Science, pages 165184. Springer Berlin Heidelberg, 2010.

[10] R. Baumann. Soft errors in advanced computer systems. IEEE Design and Test of Computers, 22(3):258266, 2005.

[11] S. Borkar. Designing reliable systems from unreliable components: the challenges of transistor variability and degradation. Micro, IEEE, 25(6):10  16, nov.-dec. 2005.

[12] F. Bower, P. Shealy, S. Ozev, and D. Sorin. Tolerating hard faults in microprocessor array structures. In Dependable Systems and Networks, 2004 International Conference on, pages 51  60, june-1 july 2004.

[13] D. Brooks and M. Martonosi. Dynamically exploiting narrow width operands to improve processor power and performance. In Proceedings of the 5th International Symposium on High-Performance Computing, page 13. IEEE Computer Society, 1999.

[14] I. Burcea and A. Moshovos. Phantom-btb: a virtualized branch target buer design. In Proceedings of the 14th international conference on Architectural support for programming languages and operating systems, ASPLOS '09, pages 313324, New York, NY, USA, 2009. ACM.

[15] H. Cain and M. Lipasti. Memory ordering: a value-based approach. In Computer Architecture, 2004. Proceedings. 31st Annual International Symposium on, pages 90  101, june 2004.

[16] O. Ergin, O. Unsal, X. Vera, and A. Gonzales. Exploiting narrow values for soft error tolerance. IEEE Computer Architecture Letters, 5(2), 2006. [17] O. Ergin, O. Unsal, X. Vera, and A. Gonzalez. Reducing soft errors through

operand width aware policies. Dependable and Secure Computing, IEEE Transactions on, 6(3):217 230, july-sept. 2009.

(53)

[18] J. F. Z. et al. Ibm experiments in soft fails in computer electronics(1978-1994). IBM Journal of Research and Development, 40(1), 1996.

[19] J. Friedrich, B. McCredie, N. James, B. Huott, B. Curran, E. Fluhr, G. Mittal, E. Chan, Y. Chan, D. Plass, S. Chu, H. Le, L. Clark, J. Ripley, S. Taylor, J. Dilullo, and M. Lanzerotti. Design of the power6 microprocessor. In Solid-State Circuits Conference, 2007. ISSCC 2007. Digest of Technical Papers. IEEE International, pages 96 97, feb. 2007.

[20] J. Hu, S. Wang, and S. G. Ziavras. In-register duplication: Exploiting narrow-width value for improving register le reliability. In Proceedings of the International Conference on Dependable Systems and Networks, pages 281290. IEEE Computer Society, 2006.

[21] J. Kim, N. Hardavellas, K. Mai, B. Falsa, and J. Hoe. Multi-bit error tolerant caches using two-dimensional error coding. In Proceedings of the 40th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 40, pages 197209, Washington, DC, USA, 2007. IEEE Computer Society. [22] J. Lee and A. Shrivastava. Static analysis to mitigate soft errors in register

les. In Proceedings of the Conference on Design, Automation and Test in Europe, DATE '09, pages 13671372, 3001 Leuven, Belgium, Belgium, 2009. European Design and Automation Association.

[23] X. Li, S. Adve, P. Bose, and J. Rivers. Softarch: an architecture-level tool for modeling and analyzing soft errors. In Dependable Systems and Networks, 2005. DSN 2005. Proceedings. International Conference on, pages 496  505, june-1 july 2005.

[24] M. H. Lipasti, B. R. Mestan, and E. Gunadi. Physical register inlining. In Proceedings of the 31st annual international symposium on Computer architecture, ISCA '04, pages 325, Washington, DC, USA, 2004. IEEE Computer Society.

[25] M. Mehrara and T. Austin. Exploiting selective placement for low-cost memory protection. ACM Trans. Archit. Code Optim., 5(3):14:114:24, Dec. 2008.

(54)

[26] G. Memik, M. Kandemir, and O. Ozturk. Increasing register le immunity to transient errors. In Design, Automation and Test in Europe, 2005. Proceedings, pages 586  591 Vol. 1, march 2005.

[27] F. Mesa-Martinez and J. Renau. Eective optimistic-checker tandem core design through architectural pruning. In Microarchitecture, 2007. MICRO 2007. 40th Annual IEEE/ACM International Symposium on, pages 236 248, dec. 2007.

[28] S. Mukherjee, C. Weaver, J. Emer, S. Reinhardt, and T. Austin. A systematic methodology to compute the architectural vulnerability factors for a high-performance microprocessor. In Microarchitecture, 2003. MICRO-36. Proceedings. 36th Annual IEEE/ACM International Symposium on, pages 29  40, dec. 2003.

[29] K. Olukotun and L. Hammond. The future of microprocessors. Queue, 3(7):2629, Sept. 2005.

[30] S. Onder and R. Gupta. Dynamic memory disambiguation in the presence of out-of-order store issuing. In Microarchitecture, 1999. MICRO-32. Proceedings. 32nd Annual International Symposium on, pages 170 176, 1999.

[31] D. A. Patterson and J. L. Hennessy. Computer Organization and Design, Fourth Edition, Fourth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design). Morgan Kaufmann, 2008.

[32] S. H. Pugsley, J. B. Spjut, D. W. Nellans, and R. Balasubramonian. Swel: hardware cache coherence protocols to map shared data onto shared caches. In Proceedings of the 19th international conference on Parallel architectures and compilation techniques, PACT '10, pages 465476, New York, NY, USA, 2010. ACM.

[33] M. Qureshi, O. Mutlu, and Y. Patt. Microarchitecture-based introspection: a technique for transient-fault tolerance in microprocessors. In Dependable Systems and Networks, 2005. DSN 2005. Proceedings. International Conference on, pages 434  443, june-1 july 2005.

(55)

[34] G. A. Reis, J. Chang, N. Vachharajani, R. Rangan, and D. I. August. Swift: Software implemented fault tolerance. In Proceedings of the international symposium on Code generation and optimization, CGO '05, pages 243254, Washington, DC, USA, 2005. IEEE Computer Society.

[35] J. Shen and M. Lipasti. Modern Processor Design: Fundamentals of Superscalar Processors. McGraw-Hill, 2005.

[36] J. E. Smith. A study of branch prediction strategies. In 25 years of the international symposia on Computer architecture (selected papers), ISCA '98, pages 202215, New York, NY, USA, 1998. ACM.

[37] V. Sridharan and D. Kaeli. Eliminating microarchitectural dependency from architectural vulnerability. In High Performance Computer Architecture, 2009. HPCA 2009. IEEE 15th International Symposium on, pages 117 128, feb. 2009.

[38] V. Sridharan and D. R. Kaeli. Using hardware vulnerability factors to enhance mhae analysis. In Proceedings of the 37th annual international symposium on Computer architecture, ISCA '10, pages 461472, New York, NY, USA, 2010. ACM.

[39] C. Weaver, J. Emer, S. Mukherjee, and S. Reinhardt. Techniques to reduce the soft error rate of a high-performance microprocessor. In Computer Architecture, 2004. Proceedings. 31st Annual International Symposium on, pages 264  275, june 2004.

[40] J. Yan and W. Zhang. Compiler-guided register reliability improvement against soft errors. In Proceedings of the 5th ACM international conference on Embedded software, EMSOFT '05, pages 203209, New York, NY, USA, 2005. ACM.

[41] Y. Yang, G. Gopalakrishnan, G. Lindstrom, and K. Slind. Analyzing the intel itanium memory ordering rules using logic programming and sat. In D. Geist and E. Tronci, editors, Correct Hardware Design and Verication Methods, volume 2860 of Lecture Notes in Computer Science, pages 8195. Springer Berlin / Heidelberg, 2003.

(56)

[42] D. H. Yoon and M. Erez. Virtualized and exible ecc for main memory. In Proceedings of the fteenth edition of ASPLOS on Architectural support for programming languages and operating systems, ASPLOS '10, pages 397408, New York, NY, USA, 2010. ACM.

(57)
(58)

A. Hata Sayfa Kotarcs Üzerinde

Gerçeklenmi³ Çözücünün Kaynak

Kodu

A³a§da verilmi³ olan kod hata sayfa kotarcsnn giri³inde ça§rlan ve aranan sorguda bir hata olup olmad§n anlamak için kullanlan koddur. TBCV_ETKIN makrosu tanml oldu§unda TBÇV buyruklarn kullanarak verinin bitlerini saymak için kullanlr, aksi takdirde daha dü³ük ba³arml olan bit sayma algoritmas çal³r.

/∗ popcnt : x1 g i r d i s i n d e b i r olan b i t s a y i s i n i dondurur ∗/ uint64_t popcnt ( uint64_t x1 )

{ #i f d e f TBCV_ETKIN return _mm_popcnt_u64( x1 ) ; #e l s e unsigned i n t c ; f o r ( c = 0 ; x1 ; c++) { x1 &= x1 − 1 ; } return c ; #e n d i f }

(59)

/∗ decode_cw : recvd i l e b e l i r t i l e n sanal a d r e s t e hata var i s e bunu d u z e l t i r ve sonuc olarak d u z e l t i l m i s h a l i n i dondurur ∗/

uint64_t decode_cw ( uint64_t recvd , uint64_t ∗ synd_table ) {

uint64_t r e s u l t = 0 ;

f o r ( i n t i = 0 ; i < SYND_TABLE_SIZE; i++) { i f ( ( popcnt ( recvd&synd_table [ i ])&1)) {

__set_bit ( i , &r e s u l t ) ; }

}

return r e s u l t ; }

Şekil

Çizelge 2.1: Boru hattnn i³leyi³i Zaman(Saat vuru³u)
Çizelge 4.2: Örnek ESÖ satrlar
Çizelge 4.1 ile 4kB boyutunda sayfalar kullanan, ortak kütüphane kullanmayan, Golay kodu üretmek için kullanlan örnek bir programn adreslemesinin bir
Çizelge 4.3: Kodlanm³ adresler kullanan program
+3

Referanslar

Benzer Belgeler

O sebeple kurulacak bir folklor sitesi ile bir geleneğin veya inancın farklı bölqelerdeki, hatta aynı bölgenin ayrı yörelerin- deki uygulanışı, söz konusu geleneğin

Hırsızlar parmak izini ele geçirebilmek için parmak uçlarının net bir görüntüsünü bulmak, parmak izinin kalıbını çıkarmak ve ardından akıllı telefonunuza

Sanal uzayda ol uşt urul an t asarı mları n bil gi t abanlı yapıl arı ve et kileşi mli dur uml arı artı k fi zi ksel uzayda gerçekl eştirdi ği miz t asarıml arı mızı

Grinberg; Bitcoin’in çalışma yöntemlerini, internet siteleri ve hizmetlerinin ekosistemini, Bitcoin gibi dijital altın para birimi olarak işlem yapan diğer

Another example of Sinan Agha’s prowess as an urban planner creating architectural compositions according to the shape of the land is Topkapı Kara Ahmet Pasha Kulliye, which

In a typical PIFA, the planar patch area is above the antenna ground plane (top surface), ground plane (bottom surface), short-circuiting pin or plate, microstrip line feeding

The basic data is represented as N = {(n j, mi)|mi ∈ M} of the numerous messages in the famous discussion, the multi-message interaction-driving mechanism is extracted from

Bu Yönetmelik uyarınca yat iĢletmeciliği kapsamında kullanılan Bakanlıktan belgeli yabancı bayraklı ticari yatlar, ücret ve navlun mukabili liman içinde ve Türk