Bir CPU 16 bit adres yoluna ve 8 bit kelimeye sahipse, ne kadar bellek adresleyebilir?


23

Dönem sonu sınavı için çalışıyorum ve aşağıdaki soru ile karıştırıldım. Bir CPU 16bit adres yoluna ve 8 bit kelimeye sahipse, KB'lerde ne kadar bellek adresleyebilir? Anlayışım bunun 64KB'ye hitap edebileceğini söylerdi, ancak bunu yapmak için sadece 2 ^ 16 = 65,536 kullandım. Bu hesaplama aslında 8 bit kelimeyi hiç dikkate almadı, bu yüzden doğru olup olmadığından emin değilim. Ayrıca 8 bit kelime ne anlama geliyor?

Şerefe


16
Dolaylı olarak kullandınız: adreslenebilir belleğin toplam miktarı 2 ^ 16 * 8 bit. Bir bayt = 8 bit olduğundan, bu 2 ^ 16 bayt, yani 65536 bayt veya 64 KiB'dir. K'nin 1000 için SI öneki olduğunu unutmayın. 1024'ü kastediyorsanız, Ki'yi kullanın.
jcaron

2
SI öneki kilobayt (1.000 bayt) ve ikili önek kibibyte (1.024 bayt) arasındaki farka dikkat edin. 2 ^ 16 = 65,536 = 64 kibi ~ 65,5 kilo. Aranan cevap muhtemelen kilonun kibi anlamına geldiği bir cevaptır, ancak farkın gerçekten önemli olduğu zamanlar vardır. Tamamen emin olmak istiyorsanız, güvenli rotayı takip edin ve bayt sayısını belirtin ve öğretmeninize kolaylık sağlamak için kilobayt veya kibibyte gibi daha kullanışlı birimlere çeviri yapın. Vikipedi karşılaştırın : İkili önek . Bellek yongaları tipik olarak örneğin 65,536x8 bit belirtir.
17'de CVn


3
Sanırım bankanın değişmediğini varsayıyorsunuz. 16 bitlik işlemcilerin çoğu, yanıt vermeyi gerçekten zorlaştıran bazı banka takas biçimlerini kullanıyor.
Joshua,

1
@ MichaelKjörling Soru, her zaman 1024 bayt anlamına gelen KB'yi söylüyor.
kasperd

Yanıtlar:


38

Çoğu mimaride, tek bir işlemle çalışma hafızasına aktarılabilen en büyük veri parçasıdır.

Bellekteki bir yeri belirlemek için kullanılan en büyük adres boyutuna genellikle donanım kelimesi denir.

Böylece CPU'nuz 64KB'ye (2 ^ 16) hitap edebilecek, ancak sadece 8 işlemlik tek bir işlemle transfer edebilecek.


3
Eminim bu cevap öğretmenin peşindeydi, ama doğru mu? İşlemcilerin 64 KB'den daha fazla erişmesine izin vermek için 3 seviyeli hiyerarşiye (veya daha fazlasına) izin vermek için PAE gibi bir şey kullanamaz mısınız? Ben bir donanım uzmanı değilim ama Commodore 128, RAM bankalarının değiştirilmesine izin vererek 8 bitlik bir kelime ile 16 bitlik bir veri yolu üzerinde böyle bir şey yapmadı mı?
davidgo

5
Cümlenizin "sadece tek bir işlemde sadece 256B (2 ^ 8) transfer yapabileceğimi" anladığından emin değilim. Tek bir işlemde sadece 1 kelime = 1 byte = 8 bit aktarabilir.
jcaron

8
@davidgo hala PAE, adres veriyolunun uygun şekilde boyutlandırılmasını gerektirir. PAE'yi destekleyen Intel işlemcilerinin 36 bitlik bir adres veriyolu vardır.
Dmitry Grigoryev

6
PAE, modern x86 işlemcilere özgü bir marka / özellik adıdır. Evet, dolaylı olarak daha büyük miktarlarda belleğe yönelik şemalar yaşlara (örneğin, XMS) uygulanmıştır, bunlar sonunda hafıza alt sistemini, farklı hafızayı daha küçük bir adres alanına göstermek için sürekli olarak yeniden yapılandırılabilen bir çevre birimi gibi ele almaktadır. Ayrıca, eski okulun x86 parçalı bellek modeline bakın ...
rackandboneman

6
@ Genelde cevabınızı biraz netleştirmelisiniz. Hiç kimse gerçekten tek bir B'yi birim olarak kullanmaz ve bunun nedeni tam olarak burada olan şeydir - bitleri ve baytları karıştırıyorsunuz. OP durumları ", 8-bit kelime * - her bir kelime bu yüzden 8 bit (1 bayt) vardır ve tek bir işlemde bu aktarma 256, sadece transfer edilir ne kadar her bir kelime var olası değerler, sayısıdır..
adelphus

21

Bir makine kelimesi veya genel olarak sadece kelime , CPU'nun genel talimatları kullanarak bir bütün olarak işleyebileceği en büyük veri birimidir. Bunun hafıza adreslemeyle ilgisi yok.

Önemli olan, 16/32/64 bit mimarilerde bile 8 bitlik bir bayt olan adres çözümleme birimidir . Makine kelimesi boyutuna eşit olmak zorunda değildir, ancak muhtemelen sizin durumunuzdadır.

16 bit adres veriyolu ile birleştirilmiş 8 bit adreslenebilir bir ünite, CPU'nun adresleyebileceği 64 KB RAM değerindedir.


3
Ancak, adres çözünürlüğü biriminin 16 bit olduğu makineleri kullandım. (Yani konsept anlamlıdır.)
Martin Bonner, 12:

4
@MartinBonner Bununla birlikte, doğrudan CPU kelime büyüklüğü ile ilgili değildir.
glglgl

1
@glglgl - Çok ilgili. Ben orada inanmıyorum herhangi bir adres birimi yok mimariler ya 8 bit ya da kelime boyutu.
Jules

1
Bir kelimenin CPU'nun bir bütün olarak işleyebileceği en büyük birim olduğu ifadesine katılmıyorum . Intel i7 64 bit veri yoluna sahip ve hala 256 bit SIMD talimatlarını kullanabilir. Vikipedi doğruysa, kelime CPU veri yolu genişliğini değil, veri yolu genişliğini ifade eder.
Thomas Weller

1
@ThomasWeller: 8088'de 8 bitlik veri yolu var, ancak yine de 16 bitlik yönergeler var. Aslında daha küçük bir veritabanına sahip bir 8086'dır. Not: Veritabanının genişliği ve gerçek aktarım da farklıdır (yanlış hizalanmış verileri düşünün).
Giacomo Catenazzi

1

Ayrıca 8 bit kelime ne anlama geliyor?

Bağlamda, kelime büyüklüğü bellek yolunu tanımlamak için adres büyüklüğüyle birlikte gider. 16 bit vardır, bu sayede 64 bitlik konum seçebilmesi için belleğe glinglenir. Sonra, her konum 8 bit içerir.

Buradaki kelime büyüklüğü CPU hesaplama birimi büyüklüğü ile aynı olabilir veya olmayabilir ve bu adreslemedeki mantıksal ayrıntı düzeyi ile eşleşebilir veya olmayabilir.

Örneğin, bir CPU 16 bitlik bir otobüsü ilan edebilir (bu amaç için). Talimatlarında 16 bit adresleri kullanıyor ve örneğinizde olduğu gibi 64ki var. Ancak 15 bit adres veri yolu ve 16 bit veri veri yolu vardır. Yalnızca 32ki adresi gerekiyor ve her konum için her zaman 2 bayt alıyor. (Bir komut 1 byte isterse adresi en az bit eksik gönderir, o adımda her iki byte alır, sonra hangi yarıyı kullanacağınıza karar vermek için istenen adresin en az bitine bakar.)

Diğerlerinin bahsettiği banka hesaplarının değiştirilmesinin, PAE'nin vs. burada ilgili olmadığını unutmayın. Bir bellek yönetim birimi 16 bit adresleri kullanabilir ve 20 bit donanım adresine sahip olabilir, bu nedenle CPU'nun ele alınabilecek 20 bit adresli RAM yonga adres aralığını kullanmak için bir şeyleri değiştirmesi ve eşlemesi gerekir.

Cevaplarınızda birimler belirttiğinizden emin olun. “64ki”. Neyin? 8 bit kelime, (hala) adreslenebilir RAM'in 64ki baytını yapıyor . Bu adım karışıklığı ortadan kaldırır ve bu gibi önemsiz sorunları giderir.


0

Hesaplamalarda kelime boyutunu da kullanmak zorundasınız. Cevap 64 KB.

2 ^ 16 kelimeyi adresleyebilirsiniz ve her kelime 8 bit'dir (= 1 bayt). Bu nedenle 64 KB'dir.

Kelime büyüklüğü 16 bit ise. Cevap 128 KB olacaktır.


1
Hesaplamanız hala 2 ^ 32 byte belleği (4GB) adresleyebilen ortak (32GB) işlemciler için geçerli değil (2 ^ 32) * 4 (16GB).
Dmitry Grigoryev

Modern CPU'lar daha büyük “satırlara” hitap eder ve eşleşecek daha az adres satırına sahiptir. Soru adres otobüsü konuşuyor olayların fiziksel yönünden . Bu veri yolunun kelime büyüklüğü ile çarpılması (CPU kayıt büyüklüğü değil) doğrudur.
JDługosz

0

Bunun iki tarafı vardır, eğitmeninizin muhtemelen ona söylemenizi istediği şey ve gerçeğin ne olduğu.

İlk önce eğitmeninizin muhtemelen ona söylemenizi istediği şey.

"16 bit, 2 ^ 16 bellek yerine hitap edebilir, her konum 8 bittir. Bu nedenle, 524288 bit (65536 oktet) belleğe hitap edebiliriz."

Ancak bu, oldukça basitleştirilmiş bir dünya görüşünü yansıtıyor. Gerçek daha karmaşıktır ve kesin bir cevap vermek için daha fazla bilgi gerekir. Gerçek sistemlerin bunlardan daha karmaşık olabileceği yöntemlerden bazıları.

  • Çoğu işlemcinin özel bir GÇ haritası yoktur, bu nedenle bellek adres alanının bazı bölümlerinin bellek dışındaki şeyler için kullanılması gerekebilir.
  • İşlemcinin "kelime boyutu" nessaceral olarak, bellek veri yolunun genişliği veya adreslenebilen en küçük bellek birimi ile aynı değildir.
  • Bazı veri yolları, farklı büyüklükteki veri birimlerinin hareketine izin verir. Bu, ana adres veriyolunun bitleri tarafından idare edilebilecek veya edilemeyecek başka adresleme gerektirir.
  • Bazı otobüsler aynı hatlarda farklı sinyalleri çoğaltır. Örneğin, SDRAM bir "satır adresi" ve "sütun adresi" göndermek için aynı adres satırını iki kez kullanıyor.
  • Birçok sistem, programların işlemcinin doğal olarak adresleyebileceğinden daha fazla belleğe erişmesini sağlamak için banka değiştirme yaklaşımlarını kullandı.
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.