0, 計算機中的K與M以及KB MBhtml
計算機中的K是指2^10, M是2^20; KB是2^10Byte,MB 是2^20Byte. 注意K和KB,M與MB是不一樣的單位。spa
0.1, 關於異或 和 同或 的說明.net
1,htm
微機原理、計算機組成原理、計算機體系結構的相互關係 https://zhidao.baidu.com/question/917976419381975419.htmlblog
2, 指令字長,數據字長,機器字長,存儲字長,存儲單元get
早期的馮.諾依曼計算機,指令字長=數據字長=機器字長,隨着計算機的發展,三者變的各不相同,但都必須是字節(8位)的整數倍。it
機器字長一般與存儲字長一致。主存中的MDR的位數與存儲字長是相等的。即:機器字長=存儲字長=MDR位數io
------------------------class
一個指令字中包含二進制代碼的位數,稱爲指令字長度。計算機能直接處理的二進制數據的位數稱爲機器字長,它決定了計算機的運算精度,機器字長一般與主存單元的位數一致(也就是說,機器字長一般與存儲字長一致)。原理
指令字長度等於機器字長的指令,稱爲單字長指令;指令字長度等於半個機器字長的指令,稱爲半字長指令;指令字長度等於兩個機器字長的指令,稱爲雙字長指令。例如,IBM 370系列32位機的指令格式有半字長的,單字長的,還有一個半字長的。在Pentium系列機中,指令字長度也是可變的,有8位、16位、32位、64位不等。
使用多字長指令的目的在於提供足夠的地址位來解決訪問主存任何單元的尋址問題。可是,使用多字長指令的一個主要缺點是必須兩次或屢次訪問主存以取出一整條指令,這樣作下降了CPU的運算速度,同時佔用了更多的存儲空間。
在一個指令系統中,若是各類指令字長度是相等的,就稱爲等長指令字結構,例如都採用單字長指令或半字長指令。這種指令字結構簡單,且指令字長度不變。若是各類指令字長度隨指令功能而異,好比有的指令是單字長指令,有的指令是雙字長指令,這就稱爲變長指令字結構。這種指令字結構靈活,能充分利用指令長度,但指令的控制較爲複雜。
3,書中例4.3中的答案分析:
在題目中講到,A0和BHE來控制按字節和按字兩種形式訪問,也就是說A0是不能用來傳地址的,也就是說CPU只有19根地址線來傳地址,所以地址總共有2^19種,每種地址表明的是一個存儲單元,也就是指向一個存儲字。 若是按字訪問就能夠訪問的地址範圍是2^19=512K 若是按字節訪問,因爲CPU有16根數據線,即一個存儲單元能夠存16位二進制代碼,也就是說一個存儲單元裏有兩個字節,因此按字節能夠訪問的地址範圍是2^19 x 2 = 1M. 注意單位是K和M而不是KB和MB!!
4.1, 單體多字系統
我的理解:在一個存取週期內,從同一地址取出4條指令,一個地址固然只能從一個存儲單元中取指令或數據,可是假設一組指令或數據 是存放在連續的存儲單元中,那麼就能夠由一個地址取到連續的幾個存儲單元中的指令或數據。因此這種方法要求指令或數據是連續存放的,不然效果不明顯。並且因爲一次取出的指令或數據的位數增長,須要 增長 MDR的位數和增長 數據總線的位數。
4, 2多模低位交叉編址 教材P104內容理解 http://blog.csdn.net/u011240016/article/details/53116620
[another quote: ] 這個確實比較難理解。後來經過題目和別的書上看到的,我我的理解是這樣,固然僅做參考。以實際數據爲例,這樣比較容易理解,好比說某個存儲體的有2個存儲芯片,每一個芯片的存儲週期爲100ns,若是你去讀數據,若是你的數據按照這種放置方法,先放第一個芯片,放滿後再放第2個芯片。那麼你讀數據的過程就是這樣:讀0位置數據,等100ns,讀1位置數據,等100ns讀2位置數據。很容易理解。但若是你換個方式來放,好比說我0位置是1號芯片起始,1位置是2號芯片起始位置,2位置是1號芯片第2個單元,3位置是2號芯片的第2個單元這樣交叉來編址。再回憶存儲週期的概念:其實從芯片中把數據讀到緩衝區,再從緩衝區讀到CPU,這個讀的過程很是短,僅僅是個脈衝就能夠解決的問題,但因爲芯片的物理屬性,你讀一個芯片後,必須間隔一段時間才能去讀。採用交叉編址後,你的讀過程就像這樣:讀0位置數據到緩衝區,40ns後,CPU取走了數據。這時1號芯片的100ns的週期還沒過,不能去讀,但幸運的是咱們讀的不是1號芯片,而是2號芯片,這樣,咱們就把2號芯片的數據讀到緩衝區。過了40ns後,CPU取走數據,此時過去了80ns,咱們只需再等20ns就能夠繼續去讀3號位置數據,這樣速度就比之前快了不少。我我的理解,LZ能夠仔細查查相關資料。