Adres veri yolu boyutu veya “8 bit, 16 bit, 32 bit, 64 bit” sistemleri belirleyen veri yolu boyutu mu?


15

Basit anlayışım aşağıdaki gibidir.

Bellek (RAM) bitlerden, her biri adreslenebilen bayt oluşturan 8'den oluşan gruplardan ve dolayısıyla bayt adresli bellekten oluşur.

Adres Veri Yolu, bir bellek baytının konumunu saklar.

Bir adres yolu büyüklüğü 32 bit ise, bu vasıtaların 2 kadar tutabilir 32 sayı ve dolayısıyla 2 kadar ifade edebilir 32 bellek = 4GB bellek ve gereksiz olduğundan daha bellek Greater bayt.

Veri yolu, belleğe yazılacak / okunacak değeri göndermek için kullanılır. 32 bit büyüklüğünde bir veri yolum varsa, bir kerede belleği okumak / okumak için maksimum 4 bayt yazılabileceği anlamına gelir. Bu boyut ile mümkün olan maksimum bellek boyutu arasında bir ilişki bulamıyorum.

Ama burada şunu okudum :

Çoğu sistem bayt-adreslenebilir olsa da, işlemcinin mümkün olduğunca fazla veri taşıması mantıklıdır. Bu veri yolu tarafından yapılır ve veri yolu boyutu 8 bitlik sistem, 16 bitlik sistem, 32 bitlik sistem, 64 bitlik sistem vb. Veri yolu 8 bit genişliğinde olduğunda, tek bir bellek işleminde 8 bit aktarabilir. Veri yolu 32 bit genişliğinde (en çok yazma sırasında olduğu gibi), en fazla 32 bit tek bir bellek işleminde taşınabilir.

Bu, veri yolu boyutunun bir işletim sistemine 8bit, 16bit ve benzeri bir isim veren şey olduğunu söylüyor. Anlayışımın nesi yanlış?


" Anlayışımda sorun nedir? " - Bir tanımın farklı şeylere uymasını sağlamaya çalışıyorsunuz . Bit boyutu tanımlayıcısı farklı zamanlarda farklı şeyler için kullanılmıştır.
talaş

1
Üreticinin ne söylediği anlamına gelir. Genellikle bu, kayıt boyutuna benzeyen bir şey olacaktır, ancak bunu sahte / dolaştırmanın birçok yolu vardır.
Daniel R Hicks

Yanıtlar:


12

Genellikle veritabanının boyutu, işlemci kayıtlarının boyutuna göre belirlenir. Genellikle OS tipini belirleyen işlemci kayıtlarının boyutudur (64'e 32). Fiziksel veri yolu boyutları teknik olarak bundan farklı olabilir (örnek olarak 8088), ancak teklifinizin yazarı muhtemelen ikisini birlikte ilişkilendirir.

Genellikle işaretçi boyutu da kayıt boyutunu izler, ancak fiziksel adres veri yolu genişliği daha büyük (20'de 8086 16 bit gibi) veya daha küçük (AMD 64'te 48 gibi) olabilir


2
" fiziksel adres veri yolu genişliği daha büyük olabilir " - Özellikle 4 bit ve 8 bit işlemcilerle!
talaş

Tamam. Ama ben önemsiz bir şekilde anlamaya çalışıyorum. Veri yolu boyutu ile açıklayabildiğim gibi, veritabanının boyutu ile mümkün olan maksimum bellek arasında bir ilişki bulamadım. Yani cevap "ADRES OTOBÜS BOYUTU DEĞİL, VERİ OTOBÜS BOYUTU" gibi görünüyor (çünkü genellikle işlemci kayıtları kadar büyük). Bir şey mi kaçırıyorum?
öğrenen

@learner Bu doğru, karışıklık ayrıca bir sistemin maksimum işaretçi boyutunun işlemci kayıtlarının boyutu olması gerçeğinde yatmaktadır. Düzgün bir adres alanında, işlemci kayıtlarının boyutuyla sınırlı olmak anlamına gelen çoğu modern sistemde olduğu gibi, işaret ettiğiniz gibi adresleme sınırlamaları. Bazı işlemciler, özellikle de daha eski işlemciler, bu sorunu çözmek için özel bölümlü adresleme gibi hilelerden yararlandı.
Dougvj

@ Dougvj, Tamam, daha netleşiyor. Peki neden adres veri yolu boyutlarını işlemci kayıt boyutlarından farklı kıldılar? Onları aynı tutmak daha anlamlı olmaz mıydı? Ve adreslerin nerede tutulduğu konusunda kafam karıştı? (adres veriyolu veya işlemci kaydı?) Teşekkür ederim
öğrenci

1
@ öğrenen Doğru. Özetlemek gerekirse: İşletim sistemi adı, işlemci kayıtlarının boyutuna tam olarak karşılık gelir. Adres veriyolu, işlemci kayıtları ile aynı boyutta olabilir veya olmayabilir, bu nedenle olası maksimum adreslenebilir RAM bundan bağımsızdır. Bununla birlikte, işlemci dahili olarak neredeyse her zaman işlemci kayıtlarıyla aynı boyutta işaretçiler içeren bir tür adresleme şemasına sahiptir.
Dougvj

1

İşlemci içindeki kayıt boyutu ve bellek kullanımıdır.

Hileler kullanarak, bir 16 bit işlemci 20 bit adres veriyoluna sahipti, bu yüzden işlemcinin dışındaki bellek değil.


1

"Saf" 32 veya 64 bit sistem yoktur ve bu nedenle terimler zaten yaklaşık değerlerdir.

Örneğin "Bellek (RAM), her biri adreslenebilen bayt oluşturan 8'lik gruplardan oluşan bitlerden oluşur" ifadesini alın . Bu çok yaygın değil. Bilgisayarların RAM'leri DIMM modüllerinde bulunur ve bunlar 64 bit genişliğindedir. 90'lı yıllarda, SIMM'leriniz vardı ve bunlar 32 bit genişliğindeydi.

Bazı sistemlerde DIMM'ler 128 bitlik bir veri tabanı olacak şekilde eşleştirilebilir veya eşleştirilebilir ("toplu" / "çift kanal"). Bu konsept, AMD ve Intel'den "64 bit" işlemcilerden önce geliyor.

Tek bir DIMM'den 64 bitlik bu gruplar gerçekten 8 baytta alt gruplara ayrılabilir. Bu, CPU'nuz tarafından oldukça şeffaf bir şekilde yapılır. Ayrıca 64 biti 4 * 16 bit, 2 * 32 bit olarak kırabilir veya 64 bitin tümünü tek bir değişken olarak kullanabilir.

Ancak en önemli soru bir adresin genişliği. Bellekteki her baytın kendi adresi vardır, ancak her biti yoktur. Bu, tek bir DIMM'den aldığınız 64 bitin 8 adresi olduğu anlamına gelir. Bunların en düşüğü her zaman 8'in katlarıdır: Şimdi, CPU kaç farklı adresi destekliyor? En azından teoride iki ortak cevap var. Bazı CPU'lar 2 32 farklı adresi, bazıları 2 64'ü destekler . Bu ayrım 32 ve 64 bit sistemler arasındaki en yaygın ayrımdır.

Pratikte, 64 bit sistemler bugün 64 64 bayttan daha az RAM'i desteklemektedir. Bu uygun değildir ve yine de normal bir PC'ye sığmaz. Bu kadar bellek birkaç milyon ton ağırlığındaydı!


Bir adresin tutulduğu işlemci kaydı mı, yoksa adres veriyolu mu? "Bazı CPU'lar 2 ^ 32 farklı adresi destekliyor ..." diyorsunuz. Tam olarak neyle sınırlıdırlar?
öğrenen

Tipik olarak, hem kayıt boyutları hem de MMU (Bellek Yönetim Birimi, CPU'nun bellekten doğrudan sorumlu olan kısmı).
MSalters

0

Aslında ikisi de.

CPU'daki bitler normal olarak dahili kayıtlarının boyutuna bir referanstır. 32 Bit CPU, parçalara bölünebilen veya bölünmeyen 32 Bit kayıtlara sahiptir.

Tüm verileri bellekten doğrudan kayıtlara aktarabileceğiniz, ancak herhangi bir veri yolu boyutuna sahip olabileceğiniz için 32 bit veri yolu ile 32 Bit CPU'ya sahip olmak mantıklıdır. Yani 32 Bit CPU normalde veri aktarmayı kolaylaştırmak için 32 Bit veri yoluna sahiptir.

Ayrıca iki nedenden ötürü 32 Bit Adres veriyoluna sahip olmak da mantıklı. Daha büyük bir adres veri yolu dolaylı adresleme yapmayı zorlaştıracaktır, çünkü bir bellek adresini saklamak için daha büyük bir kaydınız olmazdı veya CPU bellek adresleme için özel bir kayda ihtiyaç duyacaktır, Intel 8080 gibi eski CPU'ların 8 bit ve 16 bit adres yolu. Tersi, kayıttan daha küçük bir adres veriyolu sadece kaynak israfıdır. Daha küçük adres veriyolu kullanan mikro denetleyiciler vardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.