2016-08-18 37 views
0
  1. 將內存劃分爲銀行有什麼好處?爲什麼8086內存分爲奇數和偶數銀行?

  2. 8086如何使用此方案訪問單個訪問中的單詞,但無法使用單個內存芯片進行訪問? (AFAIK處理器通常以大塊訪問內存而不是單個字節,所以無法理解爲什麼在單個內存芯片的情況下不能訪問單個訪問單詞)

  3. 是否將內存劃分爲銀行一個物理的還是邏輯的?

  4. 如果數據線連接到存儲器的情況下存在偶數和奇數組以及單芯片的情況如何?

回答

1
  1. 8086具有用於存儲器訪問的20位尋址模型。每個地址代表一個字節 - 但是,8086的自然字大小爲2個字節,所以您需要一種方法來同時讀取兩個字節 - 因此,需要兩個存儲區。這裏的主要優點是簡化 - 無需內存控制器,CPU直接訪問8位模塊中的數據。

  2. 現代處理器以大塊訪問內存,是的。當8086被設計時,情況並非如此--CPU足夠慢,內存延遲並不重要。如果你有一個8位內存模塊,它給了你8位,就是這樣。後來的32位486可以使用4個8位存儲區或「非存儲區」32位模塊配置,並利用板載內存高速緩存和指令流水線--8086都沒有。

  3. 物理和邏輯。

  4. 一家銀行擁有所有奇數字節,其他所有偶數字節在一個字中。

有參與一些其他的複雜性,但基本上,點是很簡單 - 你擔任技術還不存在,或者是不切實際昂貴。隨着時間的推移晶體管越來越便宜,我們得到越來越多的好東西。

+0

好吧,清除一點,但8086如何實際訪問單個訪問一個字,說它需要在20000H和20001H字節,然後地址總線將有20000H,但20001H如何在同一週期訪問?你也可以在第3點詳細說明一下嗎?最後有點無關,但現代處理器如何以塊的形式訪問內存呢?對不起,如果問題太愚蠢 – nino

+0

@nino數據總線是16位寬。一個銀行映射到位0-7,另一個映射到8-15。在16位方案中,兩個存儲區的地址是相同的(只有A1-19位用於尋址,BHE和BLE選擇存儲區),所以當您從20000h讀取存儲器時,您同時得到兩個字節。你想知道關於3的什麼?現代系統具有更寬的數據總線,並且存儲器模塊具有它們自己的邏輯,允許它們按順序快速發送幾行,但是完整的描述很容易找到,並且太長以至於不能適應這裏的邊緣:) – Luaan

+0

因此,如果我們再次考慮20000H並且特殊引腳將決定哪些存儲區啓用訪問,那麼兩個銀行都將收到A1-19即二進制(0010 0000 0000 0000 000),但我並不真正瞭解「地址是相同的兩個銀行在16位的情況下「,我們使用19位否? ,關於第3點我不明白這個劃分如何是物理的和邏輯的 – nino