作者Daiblo2 (下學期要住外面了)
看板TransCSI
標題Re: [問題]一題記憶體的迷思...
時間Sat Jun 2 12:45:02 2007
※ 引述《stevennick (空中精靈小金剛)》之銘言:
: ※ 引述《ahongyeh (小葉子)》之銘言:
: : 一CPU有30條位址線,32條資料線,可定址之記憶體為:
: : (A) 4GB (B) 256MB (C) 512MB (D) 1GB
: : 我的問題是...
: : 像題目這樣子的問法~~
: : 到底是在問有幾個位址,
: : 還是在問有多少容量(空間)!?
: : 如果是問位址~~應該是1G吧~~
: : 如果是問容量~~應該是4GB吧~~
: : 我有說錯~~請指正~~
: : 麻煩強者了~~
: ㄟ 看來答案有出入
: 我解釋一下為甚麼選A好了...
: 首先呢,要有個GB、MB....的認知
: 大家都知道1GB=1024MB
: 1MB=1024KB
: 1KB=1024Bytes
: 1Byte=8Bit
: 看出來了嗎?
: 所謂的GB,指的是gigabyte(MB、KB 依此類推)
: 所以這題題目雖然沒有寫清楚
: 但是答案已經暗示是在問記憶體容量了
: 那麼
: 先不要管什麼記憶體不記憶體的
: 題目說有30條位址線(Address Line)
: 而每一條位址線可以表示0跟1兩種狀態
: 兩條可以表示2^2=4種狀態
: 三條可以表示2^3=8種..
: 依此類推,既然有30條位址線
: 那就可以表示2^30 = 1073741824 種狀態
: 也就是說可以定址1073741824個記憶體位址
: 從記憶體位址 0000000 到 3FFFFFF (Hex)
: 然後,題目又說它有32條資料線(Data Line)
: 每一條資料線就代表一個位元
: 而每個位元有兩種狀態,就是0跟1
: (好吧我這裡過份簡化了,有興趣的人請自行找相關資料)
: 兩條資料線就代表兩個位元....
: 所以32條資料線
到這裡之前我都能接受
: 代表這個系統對於每一個記憶體位址(透過Address Line指定)
: 它一次可以存取32個位元的資料(透過Data Line存取)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
上述這2行我就不能接受了
一個記憶體位址就只能放1Byte
怎麼可能一次存取4Byte資料呢?
一個word定義是說一次抓連續4個記憶體位址吧
: 也就是對這個系統而言
: 對於每個記憶體位址,記憶體都必須提供32個位元的空間供系統存取
: (不然怎樣對應32條位址線?)
: 而32位元 = 32 Bits = 4 Bytes
: 所以整個系統所需的記憶體容量
: 就是 2^30個位址 * 4 Bytes = 4294967296 Bytes
: = 4194304 KB
: = 4096 MB
: = 4 GB
: 這就是我的答案~
: 當然,雖然考試大家都是敵人
: 不過我們還是要懂得相親相愛,教學相長的
: 所以。。。要是在下不才
: 有說溜嘴的部份
: 還請高手趕快指正
: 免得耽誤大家前程那就糟糕啦
因此我的結論是2^30 = 1GB
我以前所學到就是假如問題是問最大記憶體位址定址空間
那就是算位址線有幾條來決定
這是我個人的意見
所以假如還是有問題還是可以再提出來討論
就如同上面大大所說的"教學相長"嘛
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.232.149
推 aubr3:所謂的定只是指有記憶體編號的locate 而32條資料線是說每一 06/02 14:49
→ aubr3:locate有32bits 06/02 14:50
→ aubr3:不然換個想法 只有lG那麼多的地址 最多也只能分給1g那麼多人 06/02 14:51
→ aubr3:一人有四敗特 06/02 14:52
→ aubr3:除非它加了特別的電路可以分兩次傳送位置訊號 不然也只能1G 06/02 14:53
推 aubr3:google了一下台東大學的題目 06/02 15:55
→ aubr3:是可以一次存取四個BYTES的 比較方便 一個INTEGER是4bytes 06/02 15:59
→ aubr3:不過那又是另一回事了 06/02 16:02