Re: [問題] 32位元及64位元os的記憶體

看板Nethood (電腦入門)作者 (花生)時間13年前 (2010/08/12 08:57), 編輯推噓3(3073)
留言76則, 7人參與, 最新討論串2/2 (看更多)
※ 引述《west928 (hakkinen)》之銘言: : 爬文已知xp作業系統記憶體可用到3g : 想請教w7 32位元及64位元最高可用到多少記憶體 : 又w7不同版本是否有所不同 各可支援多少記憶體 : 新手發文 請多包涵 所謂的32位元64位元的意思是說 CPU可以認得到的地址數量 32位元就是代表32個0與1組成的記憶體地址 ex:00000000 00000000 00000000 00000000 即為一個記憶體位址 那麼依據高中學過的乘法原理得知 總共有2的32次方種記憶體位址,也就是2^32 = 4GB,所以說呢,32位元的CPU 最多只能使用4GB的記憶體空間。 32位元的作業系統即是提供一個給CPU執行應用程式的環境,這個環境規定 記憶體位址長度就是32位元,搭配32位元的CPU即可使32位元應用程式順暢執行。 那為什麼有些32位元的作業系統可以定址超過4GB呢? 其實他只是用一點點小技巧來達成的 (OS需與記憶體控制器合作) 例如說把記憶體空間某些地方設定成4GB選擇器,也就是說 那個地方是0的話即選到第一組4GB空間,1即選到第二組4GB空間 所以他沒有違反32位元只能使用4GB記憶體的事實。 那為什麼實際上只能用3.25?? 3.75GB呢 因為作業系統會把其中少量的空間做為保留區,這個保留區使用者不能使用 只有作業系統才能使用。 同理 64位元CPU即可認到2^64 = 16777216 TB 這麼多的記憶體 裡面有些術語可能要有一點計算機概論的知識才能比較容易了解 希望對你有幫助 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.73.182 ※ 編輯: HwaSIn 來自: 218.167.73.182 (08/12 09:02)

08/12 09:18, , 1F
10個人都說讚
08/12 09:18, 1F
※ 編輯: HwaSIn 來自: 218.167.73.182 (08/12 09:22)

08/12 10:00, , 2F
謝謝
08/12 10:00, 2F

08/12 12:04, , 3F
不是很認同
08/12 12:04, 3F

08/12 12:04, , 4F
作業系統會把其中少量的空間做為保留區
08/12 12:04, 4F

08/12 12:04, , 5F
剩餘的記憶體使用者可透過ramdisk方式加以利用
08/12 12:04, 5F

08/12 12:05, , 6F
這個保留區使用者不能使用....何解?
08/12 12:05, 6F

08/12 12:06, , 7F
再者...可以讀取到3g或3.25g是主機板的因素
08/12 12:06, 7F

08/12 12:06, , 8F
並不是作業系統決定的
08/12 12:06, 8F

08/12 15:57, , 9F
北橋要保留4G定址內的部分位置給I/O,多的RAM可以REMAP
08/12 15:57, 9F

08/12 16:25, , 10F
小智:決定就是你了~~ 皮卡丘
08/12 16:25, 10F

08/13 00:38, , 11F
回m大,作業系統必須割畫一塊空間做為保存page table使用
08/13 00:38, 11F

08/13 00:39, , 12F
至於何為page table可能要麻煩您翻一下作業系統的書籍
08/13 00:39, 12F

08/13 00:41, , 13F
主機板上有北橋主管記憶體控制的,與可用記憶體多大無關
08/13 00:41, 13F

08/13 00:46, , 14F
還好如同s大所說,作業系統與I/O溝通的方式之一為memory
08/13 00:46, 14F

08/13 00:46, , 15F
mapped I/O, 所以必須保留一些記憶體空間給I/O使用
08/13 00:46, 15F

08/13 00:47, , 16F
使用者並不能使用這些區域,memory mapped I/O請洽os書籍
08/13 00:47, 16F

08/13 01:29, , 17F
那為什麼實際上只能用3.25?? 3.75GB呢
08/13 01:29, 17F

08/13 01:29, , 18F
建議您再多累積一些實際經驗
08/13 01:29, 18F

08/13 01:30, , 19F
你就可以懂得如何作就能去使用那0.75或0.25G了
08/13 01:30, 19F

08/13 01:42, , 20F
您的觀念有錯哦,ramdisk是把使用者可用的記憶體空間
08/13 01:42, 20F

08/13 01:42, , 21F
我覺得...不需要去爭這個耶 -_- MMIO就只是單純的軟硬體衝突
08/13 01:42, 21F

08/13 01:42, , 22F
但你說∵OS作為保留區這說法是有點奇怪啦...基本上是能利用的
08/13 01:42, 22F

08/13 01:42, , 23F
即便超過4G,也是如你文中所說,可借由pae及awe重新定址
08/13 01:42, 23F

08/13 01:43, , 24F
拿來當作disk使用,但是ramdisk還是無法使用保留區的
08/13 01:43, 24F

08/13 01:44, , 25F
我覺得一個人理論與實際都懂那當然很好,那如果理論都不懂
08/13 01:44, 25F

08/13 01:44, , 26F
一昧批評別人,有失公允喔
08/13 01:44, 26F

08/13 01:46, , 27F
t大,這個MMIO不是衝突耶,OS只是把I/O設備看成記憶體位址
08/13 01:46, 27F

08/13 01:46, , 28F
然後利用這些記憶體位址來使用這些設備,例如USB裝置
08/13 01:46, 28F

08/13 01:50, , 29F
唔~我用衝突這兩個字很怪,我改成軟硬體使用的預期結果好了
08/13 01:50, 29F

08/13 01:51, , 30F
不過一般說法,不會特別歸因在誰造成的,說是os的限制也行囉
08/13 01:51, 30F

08/13 01:52, , 31F
嘛~我只是想說聲,想用是能用,非ramdisk是真的能當實體ram用
08/13 01:52, 31F

08/13 01:57, , 32F
假設說user在32bitOS裝了16GB的RAM好了
08/13 01:57, 32F

08/13 01:57, , 33F
那可以透過一些小技巧如PAE來把16-4=12GB當成RAMDISK沒錯
08/13 01:57, 33F

08/13 01:58, , 34F
但是如我文中所說,這些保留的記憶體位址是給系統使用的
08/13 01:58, 34F

08/13 01:59, , 35F
甚至是BIOS的nonmaskable area都會霸占記憶體
08/13 01:59, 35F

08/13 02:00, , 36F
這些被霸佔的記憶體空間有什麼功用呢?
08/13 02:00, 36F

08/13 02:02, , 37F
例如一台筆電鍵盤上有很多按鈕是其中一顆按下去會使電腦
08/13 02:02, 37F

08/13 02:03, , 38F
重新開機(冷開機),即為BIOS存放在記憶體內的某段code稿的
08/13 02:03, 38F

08/13 02:06, , 39F
還有當電腦處於休眠狀態,按了某鍵又醒過來,都靠這些code
08/13 02:06, 39F

08/13 02:07, , 40F
達成不用靠OS就可執行某些功能。
08/13 02:07, 40F

08/13 02:09, , 41F
再來t大您說的衝突其實也對,他是一種MMIO的一種現象
08/13 02:09, 41F

08/13 02:09, , 42F
當兩個周邊使用同一個記憶體位址當作I/O port的話
08/13 02:09, 42F

08/13 02:10, , 43F
那兩個裝置會不正常動作,俗稱"衝到" or "衝突"。
08/13 02:10, 43F

08/13 02:12, , 44F
推文長度有限~您的文意接著後兩句表示著3.25or3.75
08/13 02:12, 44F

08/13 02:13, , 45F
其它無法使用是保留區
08/13 02:13, 45F

08/13 02:14, , 46F
您要我去翻書~我建議您多累積些經驗~不要光看書~
08/13 02:14, 46F

08/13 02:14, , 47F
又何胃的批評呢?如果硬要說有那可是您起的頭?
08/13 02:14, 47F

08/13 02:15, , 48F
08/13 02:15, 48F

08/13 02:16, , 49F
第一你所謂的經驗違背了如同1+1=2的真理,小弟我才提出反駁
08/13 02:16, 49F

08/13 02:17, , 50F
你的文詞違背了你的推文~你反駁了你自己不是?
08/13 02:17, 50F

08/13 02:17, , 51F
ramdisk他是作業系統環境下的一個應用程式,OS都無法用這些
08/13 02:17, 51F

08/13 02:17, , 52F
"那為什麼實際上只能用3.25?? 3.75GB呢" 連看底下三行
08/13 02:17, 52F

08/13 02:18, , 53F
ramdisk何來可使用這些空間的道理,若真能使用會有什麼後果
08/13 02:18, 53F

08/13 02:18, , 54F
你的詞意表示了如果只能用3.25~表示0.75是保留區
08/13 02:18, 54F

08/13 02:18, , 55F
你根本也不知道
08/13 02:18, 55F

08/13 02:18, , 56F
無法拿來使用
08/13 02:18, 56F

08/13 02:19, , 57F
別再隨意誤導人了
08/13 02:19, 57F

08/13 02:20, , 58F
會有什麼後果~你可以去試試看~我可是用了不知幾台了
08/13 02:20, 58F

08/13 02:20, , 59F
我跟你說過了,即使你用ramdisk開了750MB的空間仍然不代表
08/13 02:20, 59F

08/13 02:20, , 60F
他侵犯了OS及北橋或BIOS所規劃的不可使用空間。
08/13 02:20, 60F

08/13 02:21, , 61F
你文意表示那750mb整個是保留區
08/13 02:21, 61F

08/13 02:21, , 62F
你聽懂了嗎
08/13 02:21, 62F

08/13 02:21, , 63F
是呀~os跟北橋快要去按鈴申告了
08/13 02:21, 63F

08/13 02:31, , 64F
你開的750MB仍然是在3.25GB內割出來的哦
08/13 02:31, 64F

08/13 02:32, , 65F
你會講出這句話...所以我說...請去增加些實務
08/13 02:32, 65F

08/13 02:32, , 66F
當然不是用一搬的方法開的呀~
08/13 02:32, 66F

08/13 02:35, , 67F
所以大家都說32bit用不到的RAM可以拿來RAMDISK
08/13 02:35, 67F

08/13 02:35, , 68F
照你的講法就是大家的觀念都是錯的
08/13 02:35, 68F

08/13 02:39, , 69F
你認為RAMDISK是從3.25GB切出來 那如果我今天插8G呢
08/13 02:39, 69F

08/13 02:39, , 70F
為什麼我用RAMDISK設定後 顯示4.75G?
08/13 02:39, 70F

08/13 02:40, , 71F
那多的1.5G是鬼月阿飄給的就是了
08/13 02:40, 71F

08/13 02:40, , 72F
你真的有實際用過RAMDISK嗎?
08/13 02:40, 72F

08/13 02:59, , 73F
唉,那是PAE的關係你才能使用超過4GB的記憶體。
08/13 02:59, 73F

08/13 09:00, , 74F
其實這只是OS的記憶位址線跟資料線的使用方式而已...
08/13 09:00, 74F

08/13 09:15, , 75F
只要口袋拿出coco,想要怎樣的功能系統商都會做出來的啦XD
08/13 09:15, 75F

08/13 10:08, , 76F
顆顆
08/13 10:08, 76F
文章代碼(AID): #1COqRi9P (Nethood)
討論串 (同標題文章)
文章代碼(AID): #1COqRi9P (Nethood)