Register boyutundan kasıt nedir onu tam olarak anlayamadım.. İntelin LGA 775 pin socket yuvalı olan tüm işlemcileri 64 bitlik işlemcilerdir.

cevap için sağolun...

Şimdi de Resimlerdeki Kod larin anlamlarini yazim. AX : Akümülatör Registeri, Dörtişlem operasyonlarında kullanılmaktadır. BX : Base Registeri, Bellek lokasyonlarında baz adres göstericisi olarak kullanılır, yani bir tür index registeri gibi kullanılabilir. CX : Counter Registeri, Döngü işlemlerinde sayaç olarak kullanılır, yani döngü kaç defa daha dönecek bunun sayısını tutar. DX : Data Registeri, Donanım ile yapılan giriş çıkış işlemlerinde kullanılır. CS : Code Segment Registeri, Segmentler bellekte bir alt bölümü işaret ederler. Önemli olan içeriklerinin ne olduğudur. Bizim en önemli segmentimiz kod segmentdir. İçeriğinde ise tahmin edebileceğiniz gibi yazdığımız programın komutları yer alır. Hem programcı hemde kullanılan işletim sistemi kod segmentteki komutlar üzerine başka dataların yazılmayacağının garantisini almalıdır. Aksi taktirde programımız garip hatalar verir ve kitlenir. Programların sağlıklı çalışmaları için Code Segment içeriği en önemli noktadır. (NT çekirdeği taşıyan Windows 2000 ve XP işletim sistemleri gelişmiş bellek yönetimleri sayesinde Windows 9x sistemlere göre daha kararlıdırlar. Windows 9x sistemlerde programlardaki hatalar sistemi çökertebilecek seviyeye çıkabilir. Mavi ekran hataları bu sebepledir. ) DS : Data Segment Registeri, programımızı yazarken kullandığımız değişkenler, karakter dizileri ayrıca çalışma anında oluşturulan değişken tiplerinin tamamı bu segment altında tutulur. SS : Stack Segment Registeri, Stack çok özel bir data segment tipidir. Alt programlardan, dll dosyaları içinde bulunan fonksiyonlardan, windows api fonksiyonlarından kodlar yürütülmeden önce gerekli değişkenler bu segmente sadece bu amaçla kullanılan bir assembly komutu ile alınırlar. Daha sonra çağırma işlemi yapılır. Önemli olan çalışma prensibini anlamaktır. Burada diğer data segmentlerden olduğu gibi istenilen adresinden veri çekilebilmektedir. Farkı ise stack'a yollanan son verinin çağırılma esnasında ilk olarak geri dönmesidir. Yani son giren-ilk çıkar mantığı. Veriler stackin sonundan başına doğru alınırlar. Stacka son yollanan veriyi SP isimli Stack Pointeri işaret eder. ES : Extra Data Segment Registeri, Data segment ile aynı özelliklere sahiptir. Özel olarak bu segmenti kullanan birkaç komut bulunmaktadır. FS, GS : Bu segment registerleri ihtiyaç olduğu zaman kullanılmaktadır. Aslında ek olarak kullanılan Data Segment Registerleridir. BP : Base Pointer, Stack segmentin başlangıç noktasını gösterir. Yani genelde içeriği sıfırdır. SP : Stack Pointer, Stack segment içine gönderilmiş olan son değerin adresini göstermektedir. Stack içine veriler yollandıkça değeri azalır çünkü veri segmetin sonundan başına doğru alınırlar. Veriler stackdan çekildikçe değeri artar, böylece eski verileri gösterir, eski veriler silinmez ama SP değeri değiştiği için işlem hata vermeden yürümektedir. BP ve SP aslında SI ve DI gibi segmentler içindeki verinin adresini gösterirler. Stack Segmentin özel bir çalışma şekli olduğu için bu Pointer registerleri özel olarak sadece Stack Segmentin sağlıklı çalışması için görev yapmaktadır. SI : Source Index, Data segment veya istenirse başına küçük bir tanımlama eklenerek diğer data segmentlerdeki verileri de göstermek için kullanılan bir index registerdir. DI : Destination Index, SI ile tamamen aynı özelliklere sahiptir. Fakat SI ve DI bazı string komutları tarafından kaynak ve hedef işaretçisi olarak da kullanılmaktadır. IP : Bir işaretçi registerdir. Çok özel bir işaretçidir. Code Segment içinde işlenecek bir sonraki komutun yerini işaret eder. Yaptığınız işten emin olmadan üzerinde oynama yapmayın! FLAGS : 32 bitlik yine çok özel bir işlevi olan registerdir. Bu registerin içeriğindeki bitler çok önemlidir. Bazı bitler anlamsızdır, diğerleri ise daha önce işlenen komutların sonuçları ile ilgili bilgiler verir. Örneğin CMP komutu ile iki sayı karşılaştırılır ise sayıların eşit olma veya birinin diğerine göre büyük olması bu register içindeki bazı bitleri 1 veya 0 durumuna getirecektir. Daha sonra kullanılacak bir dallanma komutu ile bu flaglar kontrol edilerek sonuca göre belirli adreslere dallanmalar yapılır. İçeriğini biz direkt olarak kullanmayacağız. Bazı komutlar işleyişleri sırasında bu registeri gizli olarak kullanmaktadırlar. Aşağıda hangi segmentlerin hangi işaretçi registerler ile kullanılacakları verilmektedir: CS:IP DS:SI DSI SS:BP SS:SP birde PentiumD 820 işlemcim var demişsin. 64 Bit bir işlemcidir zaten Dual Core sistemlerin hepsi 64 bit dir.

Merhaba. Bu konuda kafam epey bi karıştı bir sürü okumaktan. Şimdi bir işlemcinin kaç bitlik olduğu aynı anda işleyebildiği veri miktarına göre adlandırılıyor. yani register boyutu. Kafamın karıştığı nokta şu. işlemcinin 64 bit ver yolu var diyelim. O zaman bu 64 bitlikmidir. Yani register boyutuda 64 midir. Yoksa veriyolu genişliği 6 bit olsa bile register boyutu daha düşük olabiliyor mu? Birde şunu sorayım ek olarak. Intelin ilk 64 bitlik işlemcisi core2duomu?Pentium-d 820 bir işlemcim var. bunlar 64 bitlikmi? Teşekkürler...

Sana biraz ince ayrıntıyla açıklim Öncelikle komut seti kavramını ele alalım. Komut seti işlemcinin anlayabildiği en temel ve ilkel komutlar kümesidir. Bu seti oluştuan komutların formatını ve içeriğini işlemcinin mimarisi belirler. Birçok komut setinde ortak olan komutlara örnek olarak toplama, çarpma gibi aritmetik işlemleri, büyük mü, eşit mi ya da küçük mü gibi karşılaştırma işlemlerini, VE, VEYA, SOLA KAYDIR gibi mantık işlemlerini, koşullu/koşulsuz dallanma gibi program akışını kontrol eden komutları gösterebiliriz. Bütün bu komutların ortak özellikleri girdi olarak ya belirli bir bellek adresinde ya da bir işlemci yazmacında saklanan değerleri almaları ve karşılığında yine bir değer oluşturup belli bir bellek konumuna kaydetmeleridir. Örneğin toplama işlemini ele alırsak: TOPLA R1, R2, R3 Bu komut, R1 ve R2 yazmaçlarındaki değerleri toplayıp sonucu R3 yazmacına yazar. Bu ve benzeri komutların üzerinde işlem yaptıkları ve sonucu yazdıkları yazmaçların genişliği yani kaç bitten oluştukları değişken olabilir. Temel olarak aynı olan komut set içerisinde farklı adlandırılarak değişik boyutlarda veri üzerinde işlem olanağı sağlanır. Mesela toplama işlemi: TOPLA_B : Byte, yani 8-bit Toplama işlemi TOPLA_W : Word, yani 16-bit Toplama İşlemi TOPLA_LW: Long Word, yani 32-bit Toplama İşlemi gibi farklı biçimler alabilir. Konumuz olan 64-bit kavramını bu noktada devreye sokabiliriz. 32-bitlik bir işlemcide komutların üzerinde işlem yapabildikleri en uzun temel veri 32 bit iken, 64-bitlik bir işlemcide bu tam tamına iki katı; yani 64-bit. Bir örnekle açıklamak istersek 64-bitlik bir işlemcinin komut setinde iki 64-bit sayıyı toplayıp sonucu 64-bit (ve varsa 1 bitlik eldesi) olarak saklayabilen bir komuta rastlamak mümkündür. 32-bitlik bir işlemci için de 64-bitlik toplama yapan bir komut tanımlamak mümkün olurdu ancak bunu yapabilmenin tek yolu 64-bitlik toplamayı üst ve alt 32-bitleri iki ayrı 32-bitlik toplama işleminde birinin eldesini diğer toplama işlemine aktararak gerçekleştirmek ve iki sonucu 64 bit olarak yanyana birleştirmek olduğundan durum işlemcinin tasarımı ve mimarisi açısıdan daha karmaşık bir hal alırdı. Bununla kalmayıp sonucun elde edilmesi için en az iki toplama işlemi kadar beklemek durumunda kalırdık. 64-bit işlemcimizde ise aynı işlem iki yerine sadece bir 32-bitlik toplama işleminin süresi kadar olacak. Çarpma gibi toplamaya kıyasla çok daha karmaşık olan işlemler için ise bu avantaj çok daha belirgin bir hal alır. Kısaca, çok daha kısa bir sürede daha büyük tamsayılar ya da daha yüksek çözünürlüklü ondalık sayılar üzerinde aritmetik ve mantık işlemleri gerçekleştirebileceğiz. 64-bit kullanarak 2 üzeri 64, yani 18446744073709551616 farklı sayı ifade edebilmek mümkün. 32-bit'in sınırı olan 2 üzeri 32, yani 4294967296 ile kıyaslandığında bu çok büyük bir avantaj. Bu sayede işlemci, örneğin, ekran kartına gönderilmek üzere çok daha detaylı veriyi çok daha kısa zamanda hazırlayabilir. Internet! teki veri trafiğinde güvenlik amacıyla kullanılan şifreleme algoritmalarında olabildiğince büyük sayılarla kısa sürede veri işleyebilmek güvenliği çok daha üst seviyelere taşır. Bu da demektir ki çok daha güvenli bir internet ortamına çok daha hızlı erişim sağlamamız mümkün olacak. 32-bit uygulamaların çalıştırılmasında da büyük avantajlar sağlamak mümkün. Eğer kod düzenleyiciler gerekli desteği verirse 32-bit uygulamaları çok daha verimli ve hızlı çalıştırabileceğiz. Mesela iki 32-bit toplama işlemini iki ayrı toplama işlemi yerine tek bir 64-bitlik toplamaya dönüştürerek performans arttırılabilir. Adresleme açısından da büyük avantajlar mevcut. Adreslenebilen bellek aralığı (2 üzeri 64) 32-bit işlemcilere göre 2 üzeri 32 kat büyük. Bu sayede daha yüksek kapasitelerde veri saklamak, daha büyük sabit disklere ve RAM belleklere erişim sağlayabileceğiz. Bunun yanında yazılımların okuyup yazabildikleri dosya boyutları da genişleyecek. Özellikle bilimsel araştırmalarda kullanılan uzun zamanlı ve detaylı gerçek hayat simulasyonlarında olağanüstü performans artışları sağlanacak ve daha önceden ancak çok yüksek fiyatlı iş istasyonlarında mümkün olanları evimizde gerçekleştirmek bir hayal olmaktan çıkacak. 64-bit'in getirdiği bu tarz avantajlara en güzel örneği insanın gen haritasının çıkarılmasını mümkün kılan, eski adıyla Digital Equipment Corporation; sonraki el değiştirmenin ardından Compaq tarafından tasarlanan 64-bitlik Alpha işlemcileridir. Daha önce 64-bitlik Alpha işlemcilerini evlerimize uygun fiyatlarla sokabilme fırsatı denenmiş ancak Microsoft'un Alpha NT işletim sistemini geliştirmeyi durdurması buna bir nokta koymuştur. Bunların yanısıra tam performans sağlayabilmek için bu işlemcileri 32-bitlik olanlara göre daha büyük kapasitede belleklerle beslemek gerekecek. Bu gereklilik özellikle kasa belleklerde kendini gösteriyor. İşlemci yongası üzerinde yer aşan ve işlemciyle aynı hızlarda çalışabilen birinci, ikinci ve bazı durumlarda üçüncü seviye tampon belleklerin (L1, L2 ve L3 cache) performanslarını belirleyen unsur, saklayabildikleri BİRİM veri sayısıdır. Burada BİRİM kelimesini vurgulamamızın nedeni bu birimin 64-bit işlemcilerde 64-bit, 32-bit işlemcilerde ise 32-bit; yani yarısı olması. Bu demek oluyorki, aynı miktarda bellek 64 bitlik bir işlemcide 32-bitliğin yarısı sayıda BİRİM veri depolayabilecektir, ki bu da performansının düşük olacağı anlamına gelir. Bu açığı dengelemek için yonga üzerine en az iki kat daha büyük tampon bellek yerleştirmeyi gerektirir. Tamin edeceğiniz gibi yonga üzerinde daha fazla bellek demek daha büyük yonga, yani daha düşük üretim verimi, yani daha pahalı yonga demektir. 0.13 mikron teknolojisiyle bir Athlon64 çekirdeği üretmek bir Barton çekirdeği üretmeye kıyasla daha maliyetli olacaktır. Yonganın alanca büyümesine sebep olan diğer bir etken de çekirdek üzerinde oradan oraya dolaşan veri/adres yollarının ve zaten çok yer kaplayan aritmetik-mantık işlem ünitelerinin artık 32 bit yerine 64 bit olmaları, dolayısıyla yonga üzerindeki zaten hat safhadaki karmaşanın ikiye katlanması. Bu konu, üretimin yanı sıra tasarım ve test süreçlerinin uzunluğunu, yönetimini ve gerekli insan gücünün boyutunu da arttırarak tasarım ve test maliyetinin de artmasına yol açar. Bu açığın kapatılması daha küçük yonga alanı gerektirecek olan yeni üretim teknolojileriyle mümkün olacaktır. Yonga üzerindeki veri/adres yollarının ve bellek hücrelerinin sayıca ikiye katlanması güç tüketen elemanların sayısının da en az iki katına çıkması demektir, ki bu da güç tüketimini mantıklı değerlerde tutmayı oldukça güçleştirir. Bu dezavantaj da diğerleri gibi yeni kılıflama ve yerı-iletken üretim teknolojilerinin sağladıklarıyla dengelenecektir. Athlon64'te kullanılan 940 ve üzeri sayıda pin gereksiniminin altında yatan sebepler yukarıda bahsettiğimiz karmaşanın bir sonucudur. Daha çok transistör demek, daha çok akım; çok akım ise aynı besleme voltajında daha çok güç tüketimi anlamına gelir. Çok akımı mümkün olduğunca verimli biçimde işlemciye aktarmanın yolu ise besleme gerilimi ve toprak için daha çok sayıda pin kullanmayı gerektirir. 64-bitlik sistemlerimizin olmasi pek bir şeyi şu an ifade etmiyor ama çünki 64bit lik programlar ve oyunlar için daha zaman var bekliyoruz bi kaç tane şey çıktı ama yeterli değil. Birde Fatih dostum Register i biraz açayim ufak tefek bilgilendirme yapim. İşlemcimizin bize sundukları üzerinden program yazdığımız için işlemcimizi de tanımalıyız. Komut setini yani assembly komutlarını bir sonraki derste anlatmaya başlayacağız. Registerler işlemci çalışması sırasında değişik amaçlar için kullanılan değişkenlerdir. Bellekteki verilere ulaşmak belirli bir zaman gerektirir, fakat registerler işlemci çekirdeğindedir ve fazladan zaman harcanmadan istenen işleme göre içerikleri kullanılabilmektedir. Fakat sınırlı sayıda bulunurlar. Registerler genel amaçlı kullanılabilecekleri gibi bazıları sadece özel görevleri üstlenmektedir. Bunlar ileride anlatılacaktır. Şimdi i386 uyumlu bir işlemcinin registerlarıni biraz inceleyek Bu aşağidaki de registerlerin sınıflandırılmış hali -