İçeriğe atla

Sözcük (bilgisayar mimarisi)

Vikipedi, özgür ansiklopedi
(Kelime (bilgisayar mimarisi) sayfasından yönlendirildi)
32 bitlik bir işlemci bellekteki ardışık dört baytı tek bir yükleme buyruğuyla 32 bitlik bir sözcük olarak yazmaca alır.

Sözcük (İngilizce: word), bilgisayar mimarisinde bir işlemcinin buyruk kümesinin ya da donanımının tek bir birim olarak işlediği, sabit uzunluklu doğal veri öbeğidir. Bir sözcükteki bit sayısına sözcük boyutu ya da sözcük uzunluğu denir. Sözcük boyutu bir işlemcinin yazmaçlarının genişliğinde, bellekle tek adımda aktarılan veri miktarında, adreslerin ve buyrukların uzunluğunda kendini gösterir. IBM System/360'ı tasarlayanlar da sözcük boyutunu karakter boyutu, buyruk alanı, dizin yazmaçlarının sayısı ve bellek kapasitesiyle birlikte tek bir temel biçim kararı içinde ele almıştır.[1]:33, 36, 39-40[2]:91-92

İlk bilgisayarların bir bölümü onluk sayılarla çalışıyordu; ENIAC'ın her biriktireci işaretiyle birlikte on basamaklı bir onluk sayı tutuyordu.[3] İkili makinelerden IBM 701'in temel bilgi birimi 36 bitlik sözcüktü.[4] System/360 sekiz bitlik baytı, bayt adreslemeyi ve 32 bitlik sözcüğü bir araya getirdi.[2]:91-92[5]:7-8, 12 Sonraki işlemcilerin çoğunda sözcük boyutu sekiz bitin katı olarak seçildi; 16 bitlik PDP-11, 32 bitlik VAX ve Intel 386, 64 bitlik Intel 64, AArch64 ve RV64 bu çizginin örnekleridir.[6][7][8]:2-1[8]:2-21[9][10]:4

"Sözcük" adı her mimaride işlemcinin doğal genişliğini göstermez. Intel'in x86 belgelerinde word 16 bittir, bu da 8086 yazmaçlarının genişliğidir; ad 64 bitlik işlemcilerin belgelerinde de aynı anlamda kullanılır. RISC-V belirtiminde ise sözcük, yazmaçlar 64 bit genişliğinde olduğunda bile 32 bittir.[8]:2-1[8]:4-1, 4-2[10]:6 Bu yüzden "sözcük", "yarım sözcük" ve "çift sözcük" gibi adların genişliği her mimari için ayrıca tanımlanır.

Terim, IBM'in Stretch (IBM 7030) projesini anlatan 1962 tarihli kitapta ayrıntılı olarak tanımlanır. Gerrit Blaauw, Fred Brooks ve Werner Buchholz'un yazdığı "Doğal Veri Birimleri" bölümüne göre sözcük, bir bellek çevriminde belleğe ya da bellekten koşut olarak aktarılan veri bitlerinin sayısıdır ve sözcük boyutu bu yüzden belleğin yapısal bir özelliğidir. Aynı bölüm baytı, bir karakteri kodlayan ya da giriş/çıkış birimleriyle koşut aktarılan bit öbeği olarak tanımlar; yazarlar, Bull firmasının Gamma 60 bilgisayarında sözcük kavramına catena adının verildiğini de belirtir.[1]:33, 36, 39-40

Aynı yazarlara göre her işlem türünün kendine özgü bir doğal veri birimi vardır. Kayan nokta işlemleri, sabit noktalı aritmetik, adres aritmetiği, mantık işlemleri ve metin biçimlendirme işlemleri uzunluk, uzunluğun sabit ya da değişken oluşu ve iç yapı bakımından birbirinden ayrılan birimlerle çalışır.[1]:33, 36, 39-40 Bir mimari bu birimleri bir temel boyut ve onun katlarıyla karşılar. System/360'ta yarım sözcük iki bayt, sözcük dört bayt, çift sözcük iki sözcüktür; RISC-V'te yarım sözcük, sözcük, çift sözcük ve dörtlü sözcük (quadword) sırasıyla 16, 32, 64 ve 128 bittir.[5]:7-8, 12[10]:6

Mimarinin tanımladığı sözcük, donanımın bellekten bir adımda okuduğu genişlikle aynı olmak zorunda değildir. System/360 ailesinin modelleri farklı genişlikte bellek ve veri akışı yollarıyla tasarlanmıştı; en dar modelde bu genişlik 8, en genişinde 64 bitti ve ailenin bütün modelleri aynı makine dilini çalıştırıyordu.[2]:87[2]:94-96

Sözcük boyutunun yansıdığı yerler

[değiştir | kaynağı değiştir]

Sözcük boyutundaki birimler, bilgisayarın düzenine bağlı olarak birkaç ayrı iş için kullanılır.

Tam sayılar ve kayan noktalı sayılar

Tam sayı işlemlerinin çoğu sözcük genişliğinde yapılır; daha kısa birimler bellekten okunurken sözcük genişliğine getirilir. 32 bitlik RISC-V'te LH buyruğu bellekten okuduğu 16 bitlik değeri işaretle genişleterek 32 bitlik yazmaca yazar, LB ise aynı işi 8 bitlik değerler için yapar.[10]:24-25 Kayan noktalı sayılar çoğunlukla bir ya da iki sözcük uzunluğundadır; System/360'ta bu uzunluk 32 ya da 64 bittir.[2]:91-92

Yazmaçlar

Genel amaçlı yazmaçlar çoğunlukla bir sözcük genişliğindedir. System/360'ın mantıksal tasarımında on altı adet 32 bitlik genel amaçlı yazmaç ve dört adet 64 bitlik kayan nokta yazmacı vardır.[2]:94-96 RISC-V belirtimi tam sayı yazmaçlarının bit cinsinden genişliğine XLEN adını verir; bu değer RV32I'de 32, RV64I'de 64'tür ve adres uzayının boyutunu da belirler.[10]:4

Adresler

Adres tutan alanlar, istenen adres aralığını gösterebilecek kadar geniş olmalıdır. RISC-V'te bellek 2XLEN bayttan oluşan tek bir bayt adreslemeli adres uzayı olarak tanımlanır.[10]:6 System/360'ta adresler 24 bitti ve en çok 16.777.216 bayt adreslenebiliyordu.[5]:7-8, 12 32 bitlik bir adres bayt düzeyinde en çok 4 gigabaytlık bir belleği seçebilir; 64 bitlik sistemlere geçişin başlıca gerekçesi de bu sınırdan daha büyük düz adres uzaylarına duyulan gereksinim olmuştur.[11]

Bellekle veri aktarımı

Sözcük, birçok makinede bellekle işlemci arasında bir adımda aktarılan veri miktarıdır. Burroughs B 5500'de bilgi işlemciler, bellek ve giriş/çıkış denetim birimleri arasında 48 bitlik sözcükler hâlinde koşut aktarılır; giriş/çıkış aygıtlarıyla aktarım ise her seferinde altı bitlik bir karakterle yapılır.[12]

Buyruklar

Buyrukların uzunluğu çoğu mimaride sözcüğün katı ya da kesridir. ARM mimarisinde ARM buyrukları bir sözcük (32 bit), Thumb buyrukları bir yarım sözcük (16 bit) uzunluğundadır. Thumb, ARM buyruk kümesinin yarım boyda yeniden kodlanmış bir alt kümesidir ve genellikle daha yüksek kod yoğunluğu sağlar.[13] RISC-V'in temel buyruk kümesinde buyruklar sabit 32 bit uzunluğundadır ve 32 bitlik sınırlara hizalanır; standart kodlama ise 16 bitlik parçalardan oluşan değişken uzunluklu buyruklara da yer bırakır.[10]:7 System/360'ta bir buyruk bir, iki ya da üç yarım sözcük uzunluğundadır ve her buyruk yarım sözcük sınırına yerleştirilmelidir.[5]:7-8, 12 CDC 6600'de ise 60 bitlik bir bellek sözcüğüne dört adet 15 bitlik buyruk, iki adet 30 bitlik buyruk ya da bunların bir bileşimi sığar.[14]

Sözcük, adres ve buyruk genişliklerinin ayrışması

[değiştir | kaynağı değiştir]

Sözcük boyutu, adres genişliği ve buyruk uzunluğu bir mimaride çoğu zaman birbirine bağlı olarak seçilir, ama aynı olmak zorunda değildir.

Control Data Corporation'ın 1963 tarihli başvuru el kitabına göre CDC 6600'ün ana belleği 60 bitlik sözcüklerden oluşur ve 131.072 sözcük tutar. Merkezî işlemcinin 24 işlem yazmacından sekizi 60 bitlik işlenen yazmacı, sekizi 18 bitlik adres yazmacı, sekizi de 18 bitlik artım (İngilizce: increment) yazmacıdır. Buyruklar 15 ya da 30 bit uzunluğundadır ve 60 bitlik sözcüklere paketlenir. Aynı sistemdeki on çevre ve denetim işlemcisinin her biri ise 12 bitlik 4096 sözcükten oluşan kendi belleğiyle çalışır.[14] Bu makinede veri sözcüğü, adres ve iki buyruk boyu birbirinden farklı genişliktedir.

System/360'ta sözcük 32 bit, adres 24 bit, buyruk ise 16, 32 ya da 48 bittir.[5]:7-8, 12 ARM mimarisinin 3. sürümden önceki sürümleri 32 bitlik sözcüklerle çalışıyordu, ama adres uzayı yalnız 226 bayttı; 16 bitlik yarım sözcük türü ise ancak 4. sürümle eklendi.[13]

Sözcük boyutunu büyüten mimariler eski genişlikleri de korur. Intel 64 mimarisi genel amaçlı yazmaçları 64 bite genişletir ve doğrusal adresi 64 bit olarak tanımlar; ancak 64 bitlik kipte varsayılan işlenen boyutu 32 bittir ve 64 bitlik bir işlenen için buyruğa REX öneki eklenmesi gerekir. Mimarinin ilk gerçekleştirmeleri de 64 bitin tamamını değil, 48 bitlik doğrusal adresleri destekler.[8]:3-2, 3-10, 3-19 RISC-V'in RV64I tabanı yazmaçları ve kullanıcı adres uzayını 64 bite genişletir, ama 32 bitlik değerlerle çalışan ADDW, ADDIW gibi buyrukları "W" sonekiyle ayrıca tanımlar; bu buyruklar sonucun düşük 32 bitini 64 bite işaretle genişletir.[10]:35-36 AArch64'te de 64 bitlik x0-x30 yazmaçlarının düşük 32 biti w0-w30 adlarıyla ayrıca kullanılabilir, buyruklar ise sabit 32 bit uzunluğundadır.[9]

Onluk makineler ve değişken sözcük uzunluğu

[değiştir | kaynağı değiştir]

ENIAC onluk bir makineydi. Yirmi biriktirecinin her biri işaretiyle birlikte on basamaklı bir sayı tutuyordu; çift duyarlıklı işlemlerde yirmi basamağa çıkılabiliyordu. Tasarımcılar onluk gösterimi, ikili gösterime göre daha az elektron tüpü gerektirdiği için seçmişti; sayının on basamağı makinenin içinde koşut aktarılıyordu.[3]

İş verisi işleyen makinelerin bir bölümünde sözcüğün sabit bir uzunluğu yoktu. 1959'da tanıtılan IBM 1401'de belleğin her konumu bir karakter tutar ve ayrı ayrı adreslenir. Her karakter altı bitlik ikili kodlanmış onluk kodun yanında bir eşlik biti ve bir sözcük imi (İngilizce: word mark) biti taşır. Sözcük imi bir buyruğun başını gösterir, bir veri sözcüğünün uzunluğunu belirler ve bir buyruğun yürütülmesinin bittiğini bildirir. Bir veri alanı sağdan sola okunur ve en anlamlı konumundaki sözcük imiyle biter; buyrukların uzunluğu da bir ile sekiz karakter arasında değişir.[15][16]

Amdahl, Blaauw ve Brooks'a göre IBM'in 702-7080 ve 1401-7010 aileleri değişken uzunluklu alanları bayt bayt, seri olarak işliyordu, 650-7074 ailesi ise sabit sözcük uzunluklu onluk aritmetik kullanıyordu. İş kayıtlarındaki alanların uzunluğu çok değiştiğinden, değişken uzunluklu alanlarla doğrudan çalışmak bellek kapasitesinde, teyp hızında ve işlemci hızında kazanç sağlıyordu.[2]:91-92

İkili makinelerde 36, 48, 60 ve 64 bit

[değiştir | kaynağı değiştir]

IBM'in 1953 tarihli 701 el kitabına göre makinenin temel bilgi birimi, 35 bit ve bir işaret bitinden oluşan 36 bitlik tam sözcüktü. Her tam sözcük, 17 bit ve bir işaretten oluşan 18 bitlik iki yarım sözcüğe bölünebiliyordu. El kitabı, 3⅓ bitin yaklaşık bir onluk basamağa denk geldiğini hatırlatarak tam sözcüğün yaklaşık on, yarım sözcüğün yaklaşık beş onluk basamaklık duyarlık verdiğini belirtir.[4]

IBM 7030 (Stretch) 64 bitlik sözcük kullandı; makinenin ilk örneği 1961'de Los Alamos Ulusal Laboratuvarı'na teslim edildi.[17] Stretch'te bir bitin konumu da doğrudan adreslenebiliyordu; 24 bitlik tam bir adresin 18 biti sözcüğü, 6 biti sözcük içindeki biti seçiyordu. Sözcükteki bit sayısı ikinin bir kuvveti olduğu için bir sözcüğün son bitinin adresinden sonra bir sonraki sözcüğün ilk bitinin adresi geliyordu ve bellek ardışık numaralanmış bitlerden oluşan bir dizi gibi görülebiliyordu. Yarım sözcüklere başvuran buyruklar 19 bitlik adres kullanıyordu.[1]:29-30 "Bayt" adı da karakteri kodlayan bit öbeğine bu projede verildi; yazarlar sözcüğün İngilizce bite sözcüğünden türetildiğini ve bit ile karışmaması için farklı yazıldığını belirtir.[1]:33, 36, 39-40

Control Data'nın 6600'ü 60 bitlik sözcük kullandı. Makinenin kayan nokta biçimi bir sözcüğü 1 bitlik işarete, 11 bitlik üsse ve 48 bitlik katsayıya ayırıyordu.[14] Burroughs B 5500'de bir bellek sözcüğü 48 bit ve bir eşlik bitinden oluşuyordu; makine sözcük kipinde sözcüklerle çalışıyor, karakter kipinde ise her sözcüğü altı bitlik sekiz karakter olarak işliyordu.[12]

IBM System/360 ve sekiz bitlik bayt

[değiştir | kaynağı değiştir]

System/360'ın tasarımında karakter boyutu sözcük boyutunu da belirleyen ilk karardı. Amdahl, Blaauw ve Brooks'un aktardığına göre onluk basamaklar dört, harf ve rakamlardan oluşan karakterler altı bit gerektiriyordu. Tartışılan üç seçenek her şey için altı bit, basamaklar için dört ve karakterler için sekiz bit ya da basamaklar için dört ve karakterler için altı bitti. Sonuncusu üç gerekçeyle reddedildi. Tek tek karakterlerin adreslenebilmesi isteniyordu, harfleri altı bitle sınırlamak uzağı göremeyen bir karar sayılıyordu ve mühendislik güçlükleri boşa giden bitlerden pahalıya gelebilirdi. Dört ve sekiz bitlik düzen seçildi; bu düzen iş kayıtlarında sayısal verinin harfli veriden iki kattan daha sık geçmesi nedeniyle kodlamada daha verimliydi, karakter kümesine büyüme payı bırakıyordu ve 32/64 bitlik kayan nokta sözcüğü ile 16 bitlik buyruk alanıyla uyuşuyordu.[2]:91-92 Yazarlara göre Amerikan Standartlar Birliği'nin 1963'te yedi bitlik ASCII kodunu kabul etmesi, 1961'de sekiz bitlik karakteri seçmenin yerinde bir karar olduğunu göstermişti.[2]:91-92

System/360'ın el kitabına göre bellekteki bayt konumları sıfırdan başlayarak ardışık numaralanır ve her numara o baytın adresidir. Bir bayt öbeği en soldaki baytının adresiyle anılır. İki ardışık bayttan oluşan yarım sözcük buyrukların temel yapı taşıdır; dört ardışık bayt bir sözcük, iki sözcük de bir çift sözcük oluşturur.[5]:7-8, 12 Kayan nokta için de hem 32 hem 64 bitlik uzunluk tanımlandı. Tasarımcılar büyük modellerde toplama süresinin sözcük uzunluğuyla yavaş, çarpma süresinin ise neredeyse doğrusal arttığını, küçük ve seri çalışan modellerde ise toplama süresinin doğrusal, çarpma süresinin sözcük uzunluğunun karesiyle arttığını gözlemlemişti; büyük makinelerin daha çok duyarlığa, küçük makinelerin daha kısa işlenenlere gereksinim duyması bu ikili seçimi doğurdu.[2]:91-92

Minibilgisayarlar

[değiştir | kaynağı değiştir]

Minibilgisayarlarda daha kısa sözcükler kullanıldı. Digital Equipment Corporation'ın 1966 tarihli el kitabı PDP-8'i tek adresli, sabit sözcük uzunluklu, koşut çalışan ve 12 bitlik ikiye tümleyen aritmetik kullanan bir bilgisayar olarak tanıtır; makinenin manyetik çekirdek belleği 4096 sözcük tutuyordu ve çevrim süresi 1,5 mikrosaniyeydi. Kısa sözcük aritmetiği de sınırlıyordu. İki 12 bitlik işaretli sayının çarpımı bir alt programla yaklaşık 315 mikrosaniyede hesaplanıyor ve 24 bitlik çarpımın en anlamlı 12 biti biriktireçte kalıyordu; isteğe bağlı genişletilmiş aritmetik birimiyle çarpma ve bölme yaklaşık 15 ve 30 mikrosaniyeye iniyordu.[18]

PDP-11 16 bitlik sözcük kullanır, ama belleği bayt düzeyinde adresler. 1972 tarihli PDP-11/20 el kitabına göre işlemci 32.768 adet 16 bitlik sözcüğü ya da 65.536 adet 8 bitlik baytı doğrudan adresleyebilir ve sözcükler her zaman çift numaralı adreslerden başlar.[6] Aynı şirketin VAX-11 mimarisi PDP-11 ailesinin genişletilmiş biçimi olarak tasarlandı; adreslenebilir temel birimi 8 bitlik bayt, sanal adresleri 32 bit uzunluğundadır.[7]

Mikroişlemciler

[değiştir | kaynağı değiştir]

Tek yonga üzerindeki işlemciler kısa sözcüklerle başladı. Bilgisayar Tarihi Müzesi'ne göre Intel 4004 4 bitlik bir aygıttı; 8008 1972'de duyurulan 8 bitlik bir tasarımdı ve 1974'te Intel'in 8080'i ile Motorola'nın 6800'ü 8 bitlik ikinci kuşağı oluşturdu.[19] 1978'de çıkan Intel 8086'da 16 bitlik yazmaçlar, 16 bitlik bir dış veri yolu ve 1 megabaytlık adres uzayı veren 20 bitlik adresleme vardı; 8088 ise aynı işlemcinin 8 bitlik dış veri yollu biçimiydi.[8]:2-1 Motorola 68000 ailesinin veri yazmaçları bit alanı, bayt (8 bit), sözcük (16 bit) ve uzun sözcük (32 bit) işlemleri için kullanılır.[20]

Intel 386 (1985), IA-32 ailesinin ilk 32 bitlik işlemcisiydi. İşlenen ve adres tutmak için 32 bitlik yazmaçlar getirdi; her 32 bitlik yazmacın alt yarısı önceki kuşakların 16 bitlik yazmaçlarının özelliklerini korudu.[8]:2-1 ARM mimarisinin ilk sürümlerinde de sözcük 32 bitti; 4. sürüme kadar yalnız bayt ve sözcük türleri destekleniyordu ve ARM buyrukları bir sözcük uzunluğundaydı.[13] Intel 64 mimarisi yazılımın doğrusal adres uzayını 64 bite genişletti ve 64 bitlik bir işletim sisteminin eski 32 bitlik yazılımların çoğunu değiştirmeden çalıştırabilmesi için bir uyumluluk kipi tanımladı.[8]:2-21 ARMv8, 64 bitlik buyruk kümesi içeren ilk ARM mimarisiydi ve ARM ayrıntılarını 28 Ekim 2011'de açıkladı. Mimarinin AArch64 yürütme durumu 64 bitlik işlem için yeni A64 buyruk kümesini getiriyor, AArch32 durumu ise var olan ARM buyruk kümesini destekliyordu.[21]

RISC-V tek bir sözcük boyutu yerine yazmaç genişliğine göre ayrılan taban buyruk kümeleri tanımlar. RV32I ve RV64I sırasıyla 32 ve 64 bitlik adres uzayı sağlar; 128 bitlik düz adres uzayı için RV128I taslak hâlinde tanımlanmıştır. Küçük mikrodenetleyiciler için tanımlanan RV32E, RV32I'nin bir alt kümesidir ve tam sayı yazmaçlarının sayısı yarıya indirilmiştir. Belirtimin yazarlarına göre 64 bitlik adres uzayları büyük sistemler için zorunludur; 32 bitlik adres uzayları ise birçok gömülü ve istemci aygıtı için on yıllarca yeterli kalacak ve bellek trafiğini, enerji tüketimini azalttığı için yeğlenecektir.[10]:4

Sözcük boyutunun seçimi

[değiştir | kaynağı değiştir]

Bir mimari tasarlanırken adresler, karakterler, tam sayılar ve kayan noktalı sayılar için ayrı ayrı uygun görünen genişlikler birbirine bağlanmak zorundadır. Stretch'i tasarlayanların deyişiyle her işlem türünün doğal veri birimi farklıdır; bu birimlerin hepsini belirlemek için gereken bilginin bedeli ödenmek zorundadır ve tasarımcı yalnız bu bedelin nasıl ödeneceğini seçebilir.[1]:33, 36, 39-40 System/360 tasarımında bu bağlantı açıkça görülür. Karakter boyutunun sekiz bit seçilmesi, 32 ve 64 bitlik kayan nokta sözcüğünü ve 16 bitlik buyruk alanını getirmişti; altı bitlik karakter seçilseydi 48 bitlik kayan nokta sözcüğü ve 24 bitlik buyruk alanı daha uygun düşecekti.[2]:91-92

Sözcük boyutunun ikinin kuvveti olması adres hesabını kolaylaştırır. Stretch'te bit adreslemenin kesintisiz işlemesi 64'ün ikinin kuvveti olmasına dayanıyordu.[1]:29-30 Bayt adreslemeli makinelerde de iki, dört ve sekiz baytlık birimlerin doğal sınırları, ikili adresin en düşük bir, iki ya da üç bitinin sıfır olmasıyla tanınır.[5]:7-8, 12

Sözcük boyutunu büyütmenin başlıca gerekçesi zamanla adres uzayı oldu. The Open Group'un 64 bitlik programlama modelleri üzerine hazırladığı incelemeye göre bayt düzeyinde adresleyen 32 bitlik adresler en çok 4 gigabaytlık belleği seçebiliyordu ve 64 bitlik sistemlere asıl fırsatı daha büyük düz adres uzayına duyulan istek açıyordu.[11] Daha kısa sözcüklerin de üstünlükleri sürer. RISC-V belirtiminin yazarları 32 bitlik adres uzaylarını bellek trafiğini ve enerji tüketimini azalttığı için gömülü aygıtlarda yeğlenecek seçenek olarak görür.[10]:4 Var olan yazılımla uyum da seçimi kısıtlar. Intel 386 16 bitlik yazmaçların özelliklerini 32 bitlik yazmaçların alt yarısında, Intel 64 ise 32 bitlik yazılımları uyumluluk kipinde korudu.[8]:2-1[8]:2-21

RISC-V belirtimi 128 bitlik düz bir adres uzayı için RV128I tabanını tanımlar. Yazarlara göre tam sayı yazmaçlarını genişletmenin başlıca nedeni daha büyük adres uzaylarıdır. Belirtimin yazıldığı sırada TOP500 ölçütüne göre dünyanın en hızlı süper bilgisayarındaki 1 petabaytı aşan DRAM tek bir adres uzayında toplansaydı 50 bitten fazla adres gerekecekti. Eksa ölçekli sistemler üzerine yapılan araştırmalar ise 100 petabaytlık bellek sistemlerini hedefler, bu da 57 bitlik bir adres uzayı demektir. Yazarlar, geçmişteki büyüme hızı sürerse 2030'dan önce 64 bitten geniş bir adres uzayının gerekebileceğini, o zaman bölütleme ya da 96 bitlik adresler gibi seçenekler yeniden tartışılsa da sonunda en yalın çözüm olarak düz 128 bitlik adres uzayının benimseneceğini öngörür. RV128I, RV64I'nin RV32I üzerine kurulduğu biçimde RV64I üzerine kurulur ve tam sayı yazmaçlarını 128 bite (XLEN=128) genişletir; 32 bitlik değerlerle çalışan W sonekli buyruklar korunur, 64 bitlik değerler için D sonekli yeni buyruklar eklenir. Belirtimde 128 bitlik birimin adı dörtlü sözcüktür ve RV128I bu birimi yüklemek ve saklamak için LQ ile SQ buyruklarını ekler. Tasarım, 128 bitlik adres uzaylarının gerçek kullanımına göre değişebileceği için dondurulmamıştır.[10]:6, 41-42

Bayt adresleme ve sözcük adresleme

[değiştir | kaynağı değiştir]

Bir mimaride ardışık iki adresin gösterdiği bellek birimine adres çözünürlüğü birimi denir. Bu birim sözcükse makine sözcük adreslemeli, baytsa bayt adreslemeli diye anılır.

İlk ikili makinelerin bir bölümünde adres bir sözcüğü gösteriyordu. CDC 6600'ün ana belleğinde her adres 60 bitlik bir sözcüğü gösterir.[14] Burroughs B 5500'de her bellek modülü 4096 sözcük tutar; modül içindeki sözcük 12 bitle, modülün kendisi 3 bitle seçilir ve bir sözcüğün tam adresi 15 bittir.[12] Sözcük adreslemede aynı sayıda adres biti daha büyük bir belleğe ulaşır, ama tek bir karaktere erişmek zorlaşır. System/360'ı tasarlayanların dört ve altı bitlik karma düzeni reddetme nedenlerinden biri, bu düzenin en küçük adreslenebilir birim olarak 12 bitlik bir öbek gerektirmesi ve tek tek karakterlerin adreslenmesini engellemesiydi.[2]:91-92

System/360 ile bayt adresleme yerleşti; her baytın kendi adresi vardır ve daha uzun birimler ilk baytlarının adresiyle anılır.[5]:7-8, 12 PDP-11, VAX, ARM ve RISC-V de belleği bayt düzeyinde adresler.[6][7][13][10]:6 Stretch ise bir adım daha ileri giderek bit düzeyinde adreslemeye izin vermişti.[1]:29-30

Adres çözünürlüğü, aynı genişlikteki bir adresle erişilebilecek bellek miktarını da belirler. 32 bitlik bir adres bayt adreslemede 4 gigabayta ulaşır.[11] Aynı adres dört baytlık sözcükleri gösterseydi, 16 gigabaytlık bir belleğe ulaşılabilirdi. ARM mimarisi aynı 232 baytlık adres uzayını 230 adet 32 bitlik sözcükten ya da 231 adet 16 bitlik yarım sözcükten oluşan bir uzay olarak da tanımlar; her sözcüğün adresi dördün, her yarım sözcüğün adresi ikinin katıdır.[13]

Bellek kapasitesinin birimi

[değiştir | kaynağı değiştir]

Sözcük adreslemeli makinelerin belgeleri bellek kapasitesini çoğunlukla sözcük cinsinden verir. PDP-8'in çekirdek belleği 4096 sözcük, CDC 6600'ün ana belleği 131.072 sözcük olarak tanıtılır; Burroughs B 5500'de 4096 sözcüklük modüllerle kurulan bir sistemin belleği en çok 32.768 sözcüğe ulaşır.[18][14][12] Bayt adreslemeli System/360'ın el kitabı ise bellek kapasitelerini, donanımda gerçekte kullanılan fiziksel sözcük boyutundan bağımsız olarak bayt sayısıyla verir.[5]:7-8, 12 İki birimi yan yana kullanan PDP-11 el kitabına göre 4096 sözcüklük bir PDP-11 belleği 8192 bayt tutar.[6]

Bir veri öğesinin bellekteki adresi, öğenin bayt cinsinden uzunluğunun katıysa öğe hizalı ya da doğal sınırında sayılır. System/360 el kitabı bu sınırı, adresi birimin bayt uzunluğunun katı olan konum olarak tanımlar. Buna göre sözcüklerin adresi dördün, yarım sözcüklerin ikinin, çift sözcüklerin sekizin katı olmalıdır. Değişken uzunluklu alanlar bu kısıtlamaya bağlı değildir ve herhangi bir bayttan başlayabilir.[5]:7-8, 12 Sınıra uymayan bir veri, buyruk ya da denetim sözcüğü adresi, System/360'ta belirtim hatası (İngilizce: specification exception) adlı bir program kesmesine yol açar.[5]:30, 79

Amdahl, Blaauw ve Brooks bu kuralın System/360 ailesinde bir uyumluluk sorunundan doğduğunu anlatır. 8 bit genişliğindeki bir model için karakter sınırları yeterliyken 64 bit genişliğindeki bir model, alanların iki ayrı 64 bitlik çift sözcüğe bölünmemesini yeğlerdi. Benimsenen genel kurala göre her sabit uzunluklu alan kendi uzunluğunun katı olan bir adreste başlar; programların bütün modellerde çalışabilmesi için bütün modeller bu kurala uyulmasını denetlemek zorundadır.[2]:94-96

Sonraki mimariler hizalanmamış erişime farklı yaklaştı:

  • PDP-11'de buyruklar sözcük olduğu için çift numaralı adreslerden getirilmelidir; tek numaralı bir adresten buyruk getirilmeye çalışılırsa sınır hatası tuzağı oluşur.[6]
  • ARM mimarisinin 2000 tarihli başvuru el kitabına göre yarım sözcükler iki baytlık, sözcükler dört baytlık sınırlara hizalanmalıdır.[13]
  • VAX-11'de sözcük, uzun sözcük (longword), dörtlü sözcük (quadword) ve sekizli sözcük (octaword) türlerinin her biri herhangi bir bayt sınırından başlayabilir.[7]
  • x86'da sözcüklerin, çift sözcüklerin ve dörtlü sözcüklerin doğal sınırlarına hizalanması gerekmez. Ancak Intel, hizalanmamış bir erişimin iki ayrı bellek yolu çevrimi gerektirdiğini, hizalı erişimin ise tek erişimle yapıldığını belirterek veri yapılarının, özellikle de yığıtların doğal sınırlarına hizalanmasını önerir. 128 bitlik işlenenlerle çalışan bazı buyruklar ise hizalanmamış bir işlenen verildiğinde genel koruma hatası üretir.[8]:4-1, 4-2
  • RISC-V'te doğal sınırına hizalı yükleme ve saklama buyrukları hiçbir zaman hizalama hatası üretmez. Hizalanmamış erişimlerin nasıl ele alınacağını yürütme ortamı belirler; bu erişimler donanımda ya da yazılımın görmediği bir tuzakla tamamlanabilir ya da hizalama hatası üretebilir. Belirtimin yazarları bu esnekliği eski yazılımların taşınmasındaki ve paketlenmiş SIMD işlemlerindeki gereksinimle açıklar.[10]:24-25
  • AArch64 işlemcilerde Windows, hizalanmamış basit bellek erişimlerini işlemcinin kendiliğinden tamamlamasına izin verir. Ancak böyle bir erişim bölünmez değildir ve başka bir işlemci çekirdeğinin aynı anda yazdığı bir değerin yarısı eski, yarısı yeni okunabilir.[22]

Bayt sıralaması

[değiştir | kaynağı değiştir]

Bir sözcük birden çok bayttan oluştuğunda, baytlarının bellekte hangi sırayla dizileceği de mimarinin bir kararıdır. Danny Cohen 1980 tarihli yazısında bu ayrıma Jonathan Swift'in Gulliver'in Gezileri adlı yapıtından alınmış adları verir. Cohen, bir sözcüğün bitlerini iletirken küçük uçtaki biti önce gönderenleri Little-Endians, büyük uçtaki biti önce gönderenleri Big-Endians diye adlandırır.[23]

System/360'ta bir bayt öbeği en soldaki baytının adresiyle anılır ve bitler soldan sağa numaralanır; bu düzene büyüğü başta (İngilizce: big-endian) denir.[5]:7-8, 12 PDP-11'de bir sözcüğün düşük baytı çift, yüksek baytı tek numaralı adreste durur.[6] Intel 64 ve IA-32 işlemcileri küçüğü başta (İngilizce: little-endian) düzenini kullanır ve bir sözcüğün baytları en az anlamlı bayttan başlayarak numaralanır.[8]:1-5 RISC-V'in tasarımcıları, ticari pazarda küçüğü başta sistemler baskın olduğu için bu düzeni seçtiklerini belirtir; belirtim ayrıca büyüğü başta ve iki düzeni de destekleyen türleri tanımlar.[10]:9

Boyut aileleri ve adlandırma

[değiştir | kaynağı değiştir]
8, 16, 32 ve 64 bitlik birimlerin RISC-V, ARM ve IBM System/360 belgelerindeki adları (solda) ile x86 ve Windows API'deki adları (sağda). Çubuk uzunluğu bit sayısıyla orantılıdır.

Bir mimari ailesi sözcük boyutunu büyüttüğünde eski boyutlar da geriye uyumluluk için kullanılmayı sürdürür ve belgelerdeki adlar çoğunlukla ailenin ilk üyesindeki anlamlarını korur. Bu yüzden word adı bir mimaride 16, ötekinde 32 bitlik bir birimi gösterebilir.

Intel'in x86 belgelerinde temel veri türleri bayt (8 bit), word (16 bit), doubleword (32 bit), quadword (64 bit) ve double quadword (128 bit) diye adlandırılır.[8]:4-1, 4-2 Windows API de aynı adları kullanır; BYTE 8 bitlik, WORD 16 bitlik, DWORD 32 bitlik, QWORD 64 bitlik işaretsiz tam sayıdır.[24] VAX-11'de word iki, longword dört, quadword sekiz, octaword on altı bayttır.[7] Aynı ad ilişkili iki mimaride bile farklı bir düzeni gösterebilir; VAX-11 belgeleri, uzun sözcük biçiminin PDP-11'in FP-11 kayan nokta işlemcisindeki uzun sözcük biçiminden farklı olduğunu, orada bitlerin anlamlılığının 16'dan 31'e, ardından 0'dan 14'e doğru arttığını belirtir.[7] Motorola 68000 ailesi de 16 bitlik birime word, 32 bitlik birime long word der.[20] Buna karşılık System/360'ta, ARM'da ve RISC-V'te sözcük 32 bittir ve 16 bitlik birim yarım sözcük (halfword), 64 bitlik birim çift sözcük (doubleword) diye anılır.[5]:7-8, 12[13][10]:6

Bazı mimarilerde genişliklere verilen adlar
Mimari16 bit32 bit64 bit128 bit
x86 (Intel 64, IA-32)[8]:4-1, 4-2sözcük (word)çift sözcük (doubleword)dörtlü sözcük (quadword)çift dörtlü sözcük (double quadword)
Windows API[24]WORDDWORDQWORD
VAX-11[7]sözcük (word)uzun sözcük (longword)dörtlü sözcük (quadword)sekizli sözcük (octaword)
Motorola 68000 ailesi[20]sözcük (word)uzun sözcük (long word)dörtlü sözcük (quad-word)
IBM System/360[5]:7-8, 12yarım sözcük (halfword)sözcük (word)çift sözcük (doubleword)
ARM (32 bit)[13]yarım sözcüksözcük
RISC-V[10]:6yarım sözcüksözcükçift sözcükdörtlü sözcük (quadword)

Programlama dillerinde

[değiştir | kaynağı değiştir]

C dili temel veri türleri arasındaki ilişkileri belirler, ama bu türlerin gerçek genişliklerini bilerek açık bırakır. Genişlikleri platformun benimsediği veri modeli belirler. The Open Group'un incelemesi 64 bitlik sistemler için üç modeli karşılaştırır. LP64'te long türü ve işaretçiler 64 bittir; ILP64'te bunlara int de katılır; LLP64'te int ve long 32 bitte kalır, 64 bitlik tam sayı için long long türü eklenir. 32 bitlik sistemlerin çoğu int, long ve işaretçinin 32 bit olduğu ILP32 modelini kullanır; Windows 3.1 için 16 bitlik Win16 arayüzüyle yazılmış C programlarının çoğu ise int türünün 16 bit kaldığı LP32 modelini kullanır. İnceleme, açık sistemlerde 64 bitlik programlama için LP64'ü savunur.[11] 64 bitlik Windows, yalnız işaretçilerin 64 bite genişlediği LLP64 modelini benimsemiştir.[25]

C veri modellerinde tür genişlikleri (bit)[11]
Veri türüILP32LP32LP64LLP64ILP64
char 88888
short 1616161616
int 3216323264
long 3232643264
long long 6464
işaretçi 3232646464

Bazı işlemcilerde sözcük boyutu

[değiştir | kaynağı değiştir]
Bazı işlemcilerde sözcük, adres ve buyruk genişlikleri
MakineYılSözcük (bit)Adres (bit)Buyruk uzunluğu (bit)Not
ENIAC1946–––10 onluk basamak ve işaret; çift duyarlıkta 20 basamak[3]
IBM 701195236121818 bitlik yarım sözcük[26][4]
IBM 14011959değişken––Her konum bir karakter; uzunluk sözcük imiyle belirlenir[15][16]
IBM 7030 (Stretch)1961642432, 64Bit adresinde 18 bit sözcüğü, 6 bit bit konumunu seçer[17][1]:9, 21, 29-30
CDC 66001964601815, 3012 bitlik çevre işlemcileri[27][14]
Burroughs B 5500–481512Program sözcüğünde dört hece; karakter kipinde altı bitlik sekiz karakter[12]
IBM System/3601964322416, 32, 48Bayt adresleme[2]:87[5]:7-8, 12
PDP-8–1212124096 sözcüklük çekirdek bellek[18]
PDP-11–16–16, 32, 48Bayt adresleme; 32.768 sözcük ya da 65.536 bayt[6]
Intel 400419714––[19]
Intel 8008, Intel 80801972, 19748––[19]
Intel 808619781620–[8]:2-1
VAX-11–3232–Adres sanaldır; belgelerde word 16 bit[7]
Motorola 68000 ailesi–32–16-176Veri yazmaçları 32 bit; belgelerde word 16, long word 32 bit[20]
Intel 38619853232–Yazmaçların alt yarısı 16 bitlik yazmaçları korur[8]:2-1
ARM (3. sürümden önce)–322632[13]
Intel 64 (x86-64)–6464–Varsayılan işlenen boyutu 32 bit; ilk gerçekleştirmelerde 48 bitlik doğrusal adres[8]:3-2, 3-10, 3-19
AArch64201164–32Sabit uzunluklu buyruklar[21][9]
RISC-V RV32I, RV64I–32, 6432, 6432XLEN; belirtimde word iki tabanda da 32 bit[10]:4, 6-7

Sözcükten küçük birimler

[değiştir | kaynağı değiştir]

Dört bitlik birime yarım bayt (İngilizce: nibble) denir. Bir onluk basamak dört bitle kodlanabildiği için bir bayta iki onluk basamak sığar.[2]:91-92 Intel'in x86 belgelerinde paketlenmiş BCD biçimi bir bayta iki basamak koyar; yüksek yarım bayttaki basamak düşük yarım bayttakinden daha anlamlıdır.[8]:4-9, 4-10 System/360'ın onluk dönüştürme buyruklarında bir çift sözcük 15 onluk basamak ile dört bitlik bir işaret tutar.[5]:30, 79 Yarım bayt aynı zamanda bir on altılı basamağın gösterdiği bilgi miktarıdır; IPv6 adreslerinin DNS'teki ters sorgu adlarında adres, her biri bir on altılı basamakla gösterilen yarım baytlara ayrılarak ters sırayla yazılır.[28]

Bazı mimarilerde sözcük, kendisinden kısa birden çok buyruk taşır. Burroughs B 5500'de 48 bitlik bir program sözcüğünde 12 bitlik dört buyruk vardır ve bunların her birine hece (İngilizce: syllable) denir. İki bitlik L yazmacı, program sözcüğündeki dört heceden hangisinin sırada olduğunu tutar; son hece yürütülünce bir sonraki program sözcüğü getirilir.[12] CDC 6600'de de 60 bitlik bir sözcük 15 ve 30 bitlik birden çok buyruk taşır.[14]

B 5500'de ilk hece program sözcüğünün 0-11 numaralı bitlerinden oluşur. Yürütülen hece 12 bitlik T yazmacına, dört heceli program sözcüğü 48 bitlik P yazmacına alınır.[12]:5-1 Sözcük kipinde heceler değişmez çağrısı (Literal Call), işleç (Operator), işlenen çağrısı (Operand Call) ve tanımlayıcı çağrısı (Descriptor Call) olmak üzere dört türe ayrılır. Türü hecenin en az anlamlı iki biti olan 11 ve 10 numaralı bitler belirler; bu iki bit sırasıyla 00 ise hece değişmez çağrısı, 10 ise işleç, 01 ise işlenen çağrısı, 11 ise tanımlayıcı çağrısıdır. Kalan on bit işleç hecesinde işlemin türünü gösterir, işlenen ve tanımlayıcı çağrısında ise göreli adreslemede kullanılan sıra numarasını tutar.[12]:5-2 Değişmez hecesi bu on bitte değeri en çok 1023 olan bir tam sayı taşır ve yürütülünce bu sayıyı yığıtın tepesine koyar. İşlenen çağrısı işlenenin kendisini, tanımlayıcı çağrısı ise işlenenin mutlak adresini taşıyan bir veri tanımlayıcısını yığıta koyar.[12]:3-6

Ayrıca bakınız

[değiştir | kaynağı değiştir]
  1. 1 2 3 4 5 6 7 8 9 Blaauw, Gerrit A.; Brooks, Frederick P., Jr.; Buchholz, Werner (1962). "Natural Data Units". Werner Buchholz (Ed.). Planning a Computer System: Project Stretch (PDF) (İngilizce). New York: McGraw-Hill. 3 Nisan 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Amdahl, Gene M.; Blaauw, Gerrit A.; Brooks, Frederick P., Jr. (1964). "Architecture of the IBM System/360". IBM Journal of Research and Development (İngilizce). 8 (2). doi:10.1147/rd.82.0087.
  3. 1 2 3 Van der Spiegel, Jan (24 Ekim 2003). "ENIAC: From Vacuum Tubes to Microchip, History, Operation and Reconstruction in VLSI" (PDF) (İngilizce). University of Pennsylvania, Moore School of Electrical Engineering. ss. 11, 21-23. 6 Ekim 2026 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 6 Ekim 2026.
  4. 1 2 3 IBM (1953). Principles of Operation: Type 701 and Associated Equipment (PDF). 24-6042-1 (İngilizce). New York: International Business Machines Corporation. ss. 12, 23-24. 9 Ekim 2022 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  5. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 IBM (1964). IBM System/360 Principles of Operation (PDF). A22-6821-0 (İngilizce). International Business Machines Corporation. 29 Şubat 2012 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  6. 1 2 3 4 5 6 7 Digital Equipment Corporation (1972). PDP-11/20 Processor Handbook (PDF) (İngilizce). Maynard, Massachusetts. ss. 9, 13, 32, 69, 106. 16 Ocak 2026 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  7. 1 2 3 4 5 6 7 8 Digital Equipment Corporation (Mayıs 1982). VAX-11 Architecture Reference Manual (PDF). EK-VAXAR-RM-001 (İngilizce). ss. 1-1, 2-1-2-3. 22 Nisan 2026 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  8. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Intel (Eylül 2016). Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 1: Basic Architecture (PDF) (İngilizce). Intel Corporation. 9 Mayıs 2026 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  9. 1 2 3 Chen, Raymond (26 Temmuz 2022). "The AArch64 processor (aka arm64), part 1: Introduction". The Old New Thing (İngilizce). Microsoft. 12 Ağustos 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  10. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Andrew Waterman, Krste Asanović, (Ed.) (Aralık 2019). The RISC-V Instruction Set Manual, Volume I: Unprivileged ISA (PDF). 20191213 (İngilizce). RISC-V Foundation. 9 Ekim 2022 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  11. 1 2 3 4 5 "64-Bit Programming Models: Why LP64?" (İngilizce). The Open Group. 6 Ekim 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  12. 1 2 3 4 5 6 7 8 9 Burroughs Corporation (Eylül 1968). Burroughs B 5500 Information Processing Systems Reference Manual (PDF). 1021326 (İngilizce). Detroit. ss. 1-5, 1-7, 3-4, 5-1. 22 Şubat 2025 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  13. 1 2 3 4 5 6 7 8 9 ARM Limited (2000). ARM Architecture Reference Manual (PDF). ARM DDI 0100E (İngilizce). ARM Limited. ss. vi, A2-2, A2-22. 6 Ekim 2026 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  14. 1 2 3 4 5 6 7 Control Data Corporation (Ağustos 1963). Control Data 6600 Computer System Reference Manual (PDF) (İngilizce) (2 bas.). ss. 8-9, 17. 9 Ekim 2022 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  15. 1 2 "The IBM 1401" (İngilizce). IBM. 6 Ekim 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  16. 1 2 IBM (Nisan 1962). Reference Manual: IBM 1401 Data Processing System (PDF). A24-1403-5 (İngilizce). International Business Machines Corporation. ss. 13-14, 16, 18. 29 Ocak 2026 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  17. 1 2 "The IBM 7030, aka Stretch" (İngilizce). IBM. 23 Eylül 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  18. 1 2 3 Digital Equipment Corporation (1966). Programmed Data Processor-8 Users Handbook (PDF) (İngilizce). Maynard, Massachusetts. ss. xiii, 3-4, 10. 7 Mayıs 2025 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  19. 1 2 3 "1971: Microprocessor Integrates CPU Function onto a Single Chip". The Silicon Engine (İngilizce). Computer History Museum. 25 Ağustos 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  20. 1 2 3 4 Motorola (1992). M68000 Family Programmer's Reference Manual (PDF) (İngilizce). Motorola Inc. ss. 1-2, 2-1. 4 Ekim 2026 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Ekim 2026.
  21. 1 2 "ARM Discloses Technical Details Of The Next Version Of The ARM Architecture" (İngilizce). Design & Reuse. 28 Ekim 2011. 16 Eylül 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  22. ↑ Chen, Raymond (10 Ağustos 2022). "The AArch64 processor (aka arm64), part 12: Memory access and alignment". The Old New Thing (İngilizce). Microsoft. 17 Haziran 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  23. ↑ Cohen, Danny (1 Nisan 1980). "On Holy Wars and a Plea for Peace". IEN 137 (İngilizce). USC/Information Sciences Institute. 22 Temmuz 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  24. 1 2 "Windows Data Types". Microsoft Learn (İngilizce). Microsoft. 7 Kasım 2024. 6 Ekim 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  25. ↑ "Abstract Data Models". Microsoft Learn (İngilizce). Microsoft. 31 Mayıs 2018. 6 Ekim 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  26. ↑ "IBM 700 Series" (İngilizce). IBM. 8 Ekim 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.
  27. ↑ "CDC 6600 operator console and quadrant". Revolution (İngilizce). Computer History Museum. Erişim tarihi: 6 Ekim 2026.
  28. ↑ Thomson, S.; Huitema, C.; Ksinant, V.; Souissi, M. (Ekim 2003). "DNS Extensions to Support IP Version 6". RFC 3596 (İngilizce). Internet Engineering Task Force. doi:10.17487/RFC3596. 1 Mart 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2026.