Soru Adreslenebilir ve bayt adreslenebilir sözcük arasındaki fark


Birisi farklı olanı açıklayabilir mi Word ve Byte adreslenebilir? Bellek boyutu vb. İle nasıl bağlantılı?


21
2018-04-27 19:39


Menşei


Bakınız byte- ve kelime adresleme şemaları:> Bayt ve kelime tabanlı adresleme şemalarının bir gösterimi. - Andrew Hare


Cevaplar:


Bellek birimleri Hangi adreslenebilir. Kullanabileceğimiz tek yol budur bellek.

Gerçekte, bellek sadece bayt adreslenebilir. Anlamı:

  • bir ikili adres her zaman işaret eder a single  bayt bir tek.
  • bir sözcük sadece a group of  bayt - 2, 4, 8 bağlı olarak veri yolu size of CPU.

Anlamak için hafıza işlemi tamamen, çeşitli ile aşina olmalısınız kayıtlar arasında İşlemci ve bellek bağlantı noktaları arasında Veri deposu. Anlamlarını bildiğini sanıyorum:


  • MAR(hafıza adresi kaydı)
  • MDR(hafıza veri kaydı)
  • PC(program sayacı)
  • MBR(bellek arabelleği kaydı)

Veri deposu vardır two çeşitleri bellek bağlantı noktaları:

  1. 32-bits için veri/adresler
  2. 8-bit için OPCODE.

varsaymak İşlemci okumak istiyor a  sözcük (söylemek 4  bayt) adres  xyz itibaren. CPU koyardı adres üzerinde MAR, bir gönderir hafıza okuma sinyali göre bellek denetleyici çipi. Alma üzerine adres ve sinyal oku, bellek denetleyicisi bağlamak olurdu veri yolu için 32-bit  Liman ve 4 bytes başlayarak adres  xyz dışarı akar Liman göre MDR.

Eğer İşlemci bir sonraki almak istiyor talimat, koyardı adres üzerine PC kaydı ve bir getirme gönderir işaret göre bellek denetleyicisi. Alma üzerine adres ve getir işaret, bellek denetleyicisi bağlamak olurdu veri yolu için 8-bit bağlantı noktası ve a single bayt uzun  işlemkodu bulunan adres Alınan Veri deposu içine İşlemci'ler MDR.

Yani kesin bir şekilde söylediğimizde bu demek oluyor. kayıt olmak olduğu hafıza adreslenebilir veya bayt adreslenebilir. Şimdi koyduğun zaman ne olacak? decimal 2 içinde binary üzerinde MAR okumak niyetiyle sözcük  2, değil (bayt yok hayır 2)?

sözcük yok hayır 2 anlamına geliyor bayt  4, 5, 6, 7 için 32-bit makinesi. İçinde gerçek fiziksel hafıza olduğu bayt adreslenebilir bir tek. Yani işlemek için bir numara var kelime adresleme.

Ne zaman MAR üzerine yerleştirilir adres yolu, onun 32-bits üzerine harita yok 32  adres satırları(0-31 sırasıyla). Yerine, MAR  bit 0 için kablolu adres yolu  line 2, MAR  bit 1 için kablolu adres yolu  line 3 ve bunun gibi. Üst 2 bits arasında MAR sadece gerekli olduğu için atılır kelime adresleri yukarıdaki 2^32 hiçbiri bizim için yasal değildir 32 bit makinesi.
Bu haritalamayı kullanırken MAR olduğu 1, address 4 üzerine koymak otobüs, ne zaman MAR olduğu 2, address 8 üzerine koymak otobüsve benzeri

Anlamak için başlangıçta biraz zor. Bunu öğrendim Andrew Tanenbaums'ler yapılandırılmış bilgisayar organizasyonu.


26
2018-02-15 01:00





Bu resim anlaşılmasını kolaylaştırmalı: http://i.stack.imgur.com/rpB7N.png

Basit ifadeyle,

• Bayt adresleme şemasında, ilk sözcük adres 0'da başlar ve ikinci kelime, adres 4'te başlar.

• Kelime adresleme şemasında, ilk kelimenin tüm baytları bulunur. Adres 0'da ve ikinci kelimenin tüm baytları adres 1'de bulunur.

Bayt adreslemenin avantajı, verileri bir seferde bir bayt işleyen uygulamaları dikkate aldığımızda açıktır. Bayt adresli bir sistemde tek bir bayt erişimi yalnızca tek bir adresin verilmesini gerektirir. 16 bitlik bir adresli adreslenebilir sistemde, önce baytı içeren sözcüğün adresini hesaplamak, bu sözcüğü getirmek ve sonra da bayt sözcüğünü iki baytlık sözcükten çıkarmak gerekir. Bayt ekstraksiyonu için işlemler iyi anlaşılsa da, bunlar doğrudan byte'a erişmekten daha az verimlidir. Bu nedenle, birçok modern makine bayt adreslenebilir.


2
2018-02-06 04:51





Adreslenebilirlik, kendi adresi olan bir bellek biriminin boyutudur. Ayrıca, komşularını etkilemeden değiştirebileceğiniz en küçük bellek yığınıdır.

Örneğin: baytların normal 8 bit ve kelime boyutu = 4 bayt olduğu bir makine. Eğer bir kelime-adresli makine ise, ikinci bir baytın adresi diye bir şey yoktur. int. Dizelerle uğraşmak (örneğin, bir dizi gibi) char str[]) rahatsız edici olur, çünkü hala birlikte paketlenmiş karakterleri saklarsınız. Sadece değiştiriliyor str[1] bu kelimeyi içeren kelimeyi yüklemek, değişikliği uygulamak için bazı vardiya / ve / veya işlemleri yapmak, ardından bir kelime mağazası yapmak anlamına gelir.

Bunun, hizasız sözcük yükleme / depolamaya izin vermeyen bir makineden farklı olduğunu unutmayın (bir sözcük adresinin 2 bitinin 0 olması gerekir). Bu tür makineler genellikle bir bayt yük / mağaza talimatına sahiptir. Makineden bile söz etmiyoruz.

CPU adresleri hala düşük bitleri içerebilir, ancak bunların her zaman sıfır olmasını (veya yok saymasını) gerektirebilir. Ancak, sıfır olduklarını kontrol ettikten sonra, atılabilir, böylece bellek sisteminin geri kalanı sadece iki bitişik kelimenin 1 (4 değil) ile farklılık gösteren bir adrese sahip olduğu kelimeyi görür. Ancak, bir kaydın yalnızca 64k farklı adres tutabildiği 16 bitlik bir CPU'da bunu yapmazsınız. Her bir ayrı CPU adresi, düşük biti atmak yerine, farklı bir 2 baytlık bellek anlamına gelir. 2B kelime adresli bellek, bayt adreslenebilir bellek ile sadece 64kiB yerine 128 kb bellek adreslemenize izin verir.

Eğlenceli gerçek: ARM, bir adresin düşük 2 bitini, hizalanmamış sözcük yüklemeleri için bir karışıklık denetimi olarak kullanırdı. (Ancak her zaman bayt yükleme / mağaza talimatları vardı.)


Ayrıca bakınız:


Bit adreslenebilir belleğin var olabileceğini unutmayın, ancak yapmaz. 8 bitlik baytlar neredeyse evrensel olarak standarttır. (Eski bilgisayarların bazen daha büyük baytları vardı, wikipedia'nın Byte makalesi.)


1
2017-08-25 01:27