將內存劃分爲銀行有什麼好處?爲什麼8086內存分爲奇數和偶數銀行?
8086如何使用此方案訪問單個訪問中的單詞,但無法使用單個內存芯片進行訪問? (AFAIK處理器通常以大塊訪問內存而不是單個字節,所以無法理解爲什麼在單個內存芯片的情況下不能訪問單個訪問單詞)
是否將內存劃分爲銀行一個物理的還是邏輯的?
如果數據線連接到存儲器的情況下存在偶數和奇數組以及單芯片的情況如何?
0
A
回答
1
8086具有用於存儲器訪問的20位尋址模型。每個地址代表一個字節 - 但是,8086的自然字大小爲2個字節,所以您需要一種方法來同時讀取兩個字節 - 因此,需要兩個存儲區。這裏的主要優點是簡化 - 無需內存控制器,CPU直接訪問8位模塊中的數據。
現代處理器以大塊訪問內存,是的。當8086被設計時,情況並非如此--CPU足夠慢,內存延遲並不重要。如果你有一個8位內存模塊,它給了你8位,就是這樣。後來的32位486可以使用4個8位存儲區或「非存儲區」32位模塊配置,並利用板載內存高速緩存和指令流水線--8086都沒有。
物理和邏輯。
一家銀行擁有所有奇數字節,其他所有偶數字節在一個字中。
有參與一些其他的複雜性,但基本上,點是很簡單 - 你擔任技術還不存在,或者是不切實際昂貴。隨着時間的推移晶體管越來越便宜,我們得到越來越多的好東西。
相關問題
- 1. 行爲奇怪的變數(Intel 8086)
- 2. 奇數和總和爲偶數
- 3. 如何將整數數組分爲偶數和奇數?
- 4. 將正偶數,正數奇數,負數奇數和負數偶數分離爲新數組
- 5. 爲什麼奇數/偶數不適用於附加元素?
- 6. 爲什麼這個腳本不工作? (奇數/偶數)
- 7. 奇數偶數和
- 8. Haskell:將偶數和奇數元素分解爲元組
- 9. 用遞歸區分偶數和奇數
- 10. 爪哇,偶數偶數,奇數奇數
- 11. 在未定範圍內對奇數和偶數進行求和
- 12. 使用Python分隔奇數行和偶數行
- 13. 奇數和偶數行的表
- 14. 爲迴文檢查偶數/奇數?
- 15. 我應該如何將數組的值分爲偶數,奇數?
- 16. 奇數和偶數位
- 17. Pascal - 奇數和偶數
- 18. 調用偶數和奇數
- 19. Div奇數和偶數
- 20. 奇數和偶數排隊
- 21. 奇怪的iOS內存分配行爲
- 22. 如果字符串數爲偶數,則返回「偶數」,如果字符串數爲奇數,則返回「奇數」
- 23. 爲數據幀選擇多個奇數或偶數列/行
- 24. 查找最大值和最小值爲偶數和奇數
- 25. 爲什麼我的偶數和奇數打印程序打印多次打印奇數?
- 26. 爲什麼我們用int數據爲鏈表分配內存?
- 27. 爲什麼Jquery:odd選擇偶數元素?
- 28. 排序爲偶數和奇數的輸入數組
- 29. 爲什麼添加和分配(+ =)與numpy.ndarrays奇怪行爲?
- 30. 複製在不同的列是什麼偶數和奇數分離經 「:」
好吧,清除一點,但8086如何實際訪問單個訪問一個字,說它需要在20000H和20001H字節,然後地址總線將有20000H,但20001H如何在同一週期訪問?你也可以在第3點詳細說明一下嗎?最後有點無關,但現代處理器如何以塊的形式訪問內存呢?對不起,如果問題太愚蠢 – nino
@nino數據總線是16位寬。一個銀行映射到位0-7,另一個映射到8-15。在16位方案中,兩個存儲區的地址是相同的(只有A1-19位用於尋址,BHE和BLE選擇存儲區),所以當您從20000h讀取存儲器時,您同時得到兩個字節。你想知道關於3的什麼?現代系統具有更寬的數據總線,並且存儲器模塊具有它們自己的邏輯,允許它們按順序快速發送幾行,但是完整的描述很容易找到,並且太長以至於不能適應這裏的邊緣:) – Luaan
因此,如果我們再次考慮20000H並且特殊引腳將決定哪些存儲區啓用訪問,那麼兩個銀行都將收到A1-19即二進制(0010 0000 0000 0000 000),但我並不真正瞭解「地址是相同的兩個銀行在16位的情況下「,我們使用19位否? ,關於第3點我不明白這個劃分如何是物理的和邏輯的 – nino