微软平台技术学习笔记

学习,思考,实践

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

今天产生了一个问题,什么是32位的CPU,什么是32位的OS, 什么是32位的程序?为什么32位的CPU只能支持4G的内存呢?

问题是这样产生的。今天跑SSIS发现内存不够用了,检查内存发现4G的内存只显示3G多,想加内存,但是听说过32位的电脑最多只能支持4G的内存。为什么呢?不知道。都怪年轻时候没好好学习。少壮不努力,老大徒伤悲。赶紧查查吧。

GOOGLE结果如下。内存管理的时候,每块内存都需要一个地址。一块内存的大小是8位,也就是一个byte。这个地址用INT表示,32位的CPU当然只能支持4G的内存了。

顺便解决一个小问题,为什么OS里面显示的内存不是4G呢?32位支持啊?另外的那些内存呢?因为显卡,PCI等其他东西也需要地址空间。

按道理应该结束了,可实际不然。为什么只能用INT来表示内存地址呢?为什么不用long呢?用LONG就可以支持264B的内存了啊。

继续GOOGLE. 发现Word size(不知道怎么翻译)就是CPU一次能处理的位数(bit numbers),32位的CPU一次性能处理32bit 通常Word  size is as same as memory address size. But it does not always hold.  For instance, almost all 8-bit processors, such as 6502, supported 16-bit addresses— if not they would have been limited to a mere 256 byte memory. 之所以32位的CPU只支持32位的内存地址,是因为这样一个内存地址就可以存在一个wordCPU一次所能读取的位数)里,大概这样CPU会更快吧。

这样终于知道了什么是32位的CPU了,但是什么是32位的OS?什么是32位的程序呢?

posted on 2010-12-07 17:31  旴江老段  阅读(1510)  评论(0编辑  收藏  举报