精华内容
下载资源
问答
  • 3264位系统寻址空间及最大内存

    千次阅读 2019-10-10 09:52:35
    理论上:32=2^32B = 4 * 2^30B = 4GB,这是 32 下单进程内存上限 ...64位架构下,地址线是46个,所以最大的物理地址是2^46B,折合64TB,可用地址空间也是这么大(目前为止): 为什么32Win...

     

    理论上:32位=2^32B = 4 * 2^30B = 4GB,这是 32 位下单进程内存上限

     

    目前(2015年5月),Intel的32位架构下,可使用的地址线是36个,可使用的最大物理地址是2^36B,折合64GB,可用的地址空间是4GB。

    64位架构下,地址线是46个,所以最大的物理地址是2^46B,折合64TB,可用地址空间也是这么大(目前为止):

     

    为什么32位Windows中实际可用内存少于4G:

    虽然物理地址有4G,但CPU如果要访问你的显卡上的显存,就必须把物理地址空间的一部分用于标识显存,这种技术被称为memory-mapped I/O,这样可以让CPU操作显存像操作内存一样。

    在Windows的设备管理器里,查看显卡的属性页里的“资源”,可以看到内存映射的地址范围,实际上不管32位还是64位,都需要占用一部分地址空间,32位Windows只有4G的地址空间,被显存占去了一部分,所以可用的地址空间就少于4G了

     

    实际上不仅仅是显存,你电脑上的PCI控制器,各种网卡、声卡、USB控制器等等都需要占用一定的物理内存,所以最终的后果就是可用的物理地址范围变得特别少,最少可能只有1.99GB,这种限制在32位Windows上是不可改变的。

    所以,32位WIN7的可用内存才变得那么少,解决问题的唯一途径是换64位系统,或者Linux。

     

     

     

    CPUCPU Address Bus Size Maximum RAM 
    808620 bit 1MB
    8088 20 bit 1MB
    80286 24 bit 16MB
    80386SX24 bit 16MB
    80386DX 32 bit 4GB
    80486SX 32 bit 4GB
    80486DX32 bit 4GB
    Pentium I 32 bit 4GB
    K632 bit 4GB
    Duron 32 bit 4GB
    Athlon 32 bit 4GB
    Athlon XP 32 bit4GB
    Celeron  36 bit64GB
    Pentium Pro36 bit 64GB
    Pentium II36 bit64GB
    Pentium III36 bit64GB
    Pentium 4 36 bit64GB
    Athlon  40 bit1TB 
    Athlon-64 40 bit1TB 
    Athlon-64 FX 40 bit1TB 
    Opteron  40 bit1TB 
    Itanium 44 bit 16TB 
    Itanium 2  44 bit16TB 

     

     

    PAE确实可以让x86硬件支持到能够访问64G的地址空间,Windows的内核也支持使用多达64G的物理地址空间,但是微软偏偏要对各个版本的Windows的物理内存上限作出限制,下面是XP和Win7的物理内存上限

     

     

     

    参考:https://blog.csdn.net/w892824196/article/details/80558114

    https://bbs.pediy.com/thread-137830.htm

    https://docs.microsoft.com/zh-cn/windows/win32/memory/memory-limits-for-windows-releases?redirectedfrom=MSDN

     

     

     

     

     

     

     

     

     

    展开全文
  • 32位系统寻址

    2013-06-17 23:02:04
    在保护模式下,其还是使用类似“段寄存器:32偏移量”的寻址。 说先理解几个概念:虚拟地址(逻辑地址)、线性地址、物理地址 一、有线性地址得到物理地址的机制: (1)如果分页标志(寄存器CR0的最高

    32位cpu(典型的从386开始)可支持实模式、保护模式、虚拟8086模式
    在其工作在实模式时,与16位完全一样,20位地址还是要移位得到的,因为在实模式下其不攒在eax等的高16位。
    在保护模式下,其还是使用类似“段寄存器:32位偏移量”的寻址。
    说先理解几个概念:虚拟地址(逻辑地址)、线性地址、物理地址


    一、有线性地址得到物理地址的机制:
    (1)如果分页标志位(寄存器CR0的最高位,即位31)为0,表示不采用分页机制,32位物理地址=32位线性地址
    (2)如果设置的分页标志位,即表示采用分页机制,此时32位线性地址内容分三部分:如下
    位31~0:位31~22(10位)、位21~12(10位)、位11~0(12位)
    含义分别是:页目录索引、页表索引、字节索引
    先假以名分别称呼为高10位、中10位、低12位

    1.32位寄存器CR3(也成页目录寄存器--PDBR)中高20位指出了页目录的物理地址的高20位。页目录物理地址低12位总为0,
    页目录的物理地址为【(CR3中高20位基址)0000 0000 0000】

    2.页目录为4kb内存块,以4bytes为一个页表描述符(顾名思义就是描述页表信息的内存结构)
    可容纳4kb/4bytes=1024=1k个页表的信息描述(其4bytes=32位为页表的物理地址)
    那个高10位就是在页目录中找出页表描述符的物理位置的索引,为【高10位*4+32位页目录物理地址】

    其连续存放的4bytes=32位内容即为页表的物理地址【4bytes页表描述符表示的32位页表物理地址】

    3.页表也是4kb内存块,以4bytes为夜歌页描述符(同理顾名思义就是描述页的信息的内存结构)
    可容纳4kb/4bytes=1024=1k个页的信息描述(其4bytes=32位为页的物理地址),
    那个中10位就在是页表中找出页描述符的物理位置的索引,为【中10位*4+位页表物理地址】
    其连续存放的4bytes=32位内容即为页的物理地址【4bytes页描述符表示的32位页物理地址】

    页为4kb内存块

    4.CR3低12位表示在页中的字节偏移量,加上页的物理地址后就是内存单元的物理地址


    =====================================================================
    以上解决了线性地址到物理地址的转换

    二、那怎么有虚拟地址(或称逻辑地址)得到线性地址呢?如下
    16位段寄存器:32位偏移量==》即表示逻辑地址或称虚拟地址
    在32位保护模式段寄存器还是16位,但其不直接表示段的起始地址
    16位段寄存器内容可分为三部分:位15~3(13位)、位2、位1~0
    其意涵分别为:段描述符索引、描述符表标志、特权控制
    386以上cpu中有这么几个寄存器:GDTR、LDTR、IDTR
    分别称为全局描述符表寄存器、局部描述符表寄存器、中断描述符表寄存器
    (其中GDTR、IDTR是48位的LDTR是16位的,
    你只需知道这几个硬部件指定了全局描述符表、局部描述符表、中断描述符表的线性地址)
    这三个描述符表中每8bytes表示一个段描述符(顾名思义,描述段的信息的内存结构)(64bit)
    【(16位段寄存器高13位)000】即为段描述符在描述表中的位置,段描述符(8bytes内存结构)中有32位段基址,这加上32位偏移量就得到线性地址
    (从哪个表中找呢,位3为1时从局部描述符表找,0时从全局描述符表找)

    这就解决虚拟地址到线性地址的转换

     

    三、总结
    =====================================================================
    32位汇编中:
    逻辑地址===(GDTR等)===》线性地址====(分页机制转换)=====》物理地址
    16位汇编:
    逻辑地址=====(简单转换)====》物理地址

    ===============
    顺便说句,16位有段有64k限制,内存有1M限制(当然还有各种扩展技术可以实现访问大于1M的高端地址内存),在32位中段的大小可大至4GB(甚至64GB,有些32位cpu其地址线是36位的),通常都是"平坦“模式,一个段常常ds,cs,ss指向的段描述符其基地址都是0开始,段限长都是4GB,即同一个段。阿门。。。。

    展开全文
  • 字长:处理器一次能处理的最大数据长度,一般用byte表示;32/8bite=4 64/8=8byte寻找范围:和地址总线的根数N有关,2^N一般32位系统为4G32位置系统中 gcc编译环境char 1byte short 2 int long float 4 double8...

    字长:处理器一次能处理的最大数据长度,一般用byte表示;32/8bite=4 64/8=8byte

    寻找范围:和地址总线的根数N有关,2^N一般32位系统为4G

    32位置系统中 gcc编译环境

    char 1byte  short 2   int long float 4   double8

    展开全文
  • 我们经常听说32操作系统最多能用4G内存。大部分情况下,这个上限都达不到。例如我的机器,虽然是4G物理内存,但实际上识别的只有3G。有的朋友说是可以识别到3.2G或者3.5G不等,我想这跟人品是没有什么关系的 那么...

    1. 什么是寻址空间

    寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题

    2. 我们经常听说32位操作系统最多能用4G内存。大部分情况下,这个上限都达不到。例如我的机器,虽然是4G物理内存,但实际上识别的只有3G。有的朋友说是可以识别到3.2G或者3.5G不等,我想这跟人品是没有什么关系的

    fcf18be3c65a4514b189159b06587e6d.png

    那么,这剩下的1个G左右的内存不是浪费了吗?可不是嘛,太心痛了。所有很多朋友都用一个软件将这部分内存转换为硬盘用

    http://blog.miniasp.com/post/2008/04/Useful-tools-Gavotte-Ramdisk.aspx

    【备注】我自己还没有这么用,要想试用该功能的同学,自己需要慎重。如果你用的好,记得反馈一下给我,呵呵

    3. 为什么说只能寻址到这个大小呢?我今天是要从程序的角度来解说一下

    首先说什么是32位?32位是针对CPU的一个术语

    对于程序员来说,这表示了我们在与计算机打交道的时候,能够使用的最大数字是2的32次方。这等于多少呢?

    67feceb2a67acb50db811529c8b78c37.png

    那么这个数字是什么为单位呢?bit ,也可以称为比特,或者位。这是计算机可以理解的东西。这个bit里面包含的值,只有两个,就是0和1

    好了,那么这个bit怎么样能转换为GB呢,很简单:将它连续除以3次1024.

    4294967296/1024/1024/1024

    结果等于多少呢?

    712f282b0bb14f0bbfd7d9fe5c482b4e.png

    为什么除3次?第一次转换为KB,第二次转换为MB,第三次就转换为GB了

    4. 那么64位的CPU的寻址空间可以到多大呢?

    f8a696ed35b046cdb2077e70c861c575.png

    我算一算,可以到多少GB呢?

    6fe6be2f5a6dd5022944beefc544a314.png

    额的神啊,根据摩尔定律的计算,我想我的有生之年是不需要担心内存不够用的问题的

    展开全文
  • 今晚在查资料的时候突然纠结到了一个问题: ip地址是32的,那么所有可能的ip地址一共有2**32=4G个。 那么问题来了,这所有的ip地址存储起来到底是多大的...于是第二个问题来了:32位寻址地址的操作系统内存应该是多大
  • 今天啃《鸟哥》,复习到swap时,鸟哥说目前linux 64位系统的最大寻址64GB,因此swap的总量也是64GB。我知道32位系统的最大寻址已经到4GB了,而64位系统的最大寻址64GB,感觉不科学。而且系统位数跟最大内存寻址...
  • 目前(2015年5月),Intel的32架构下,可使用的地址线是36个,可使用的最大物理地址是2^36B,折合64GB,可用的地址空间是4GB。以下内容摘自《Intel® 64 and IA-32 Architectures Software Developer's Manual》,...
  • 操作系统的位数决定寻址空间

    千次阅读 2018-11-02 11:09:46
    32 操作系统最大支持 4GB 内存(多装内存也没有用),64 操作系统最大为 17179869184G,但是目前 64 windows 系统最大只支持 192G、128G,可用内存大小还与主板有直接关系,主板跟不上加内存也没有用。...
  • 首先明确 数据总线,地址总线,控制总线的区别 及 操作系统位数对寻址范围的影响. 1.数据总线,地址总线,控制总线的区别 比如一封信到你家门口,邮递员会大喊一声:“信来了”。在计算机内部数据在数据总线上传递的,...
  • 操作系统寻址

    2013-07-21 00:59:08
    2. 我们经常听说32操作系统最多能用4G内存。大部分情况下,这个上限都达不到。例如我的机器,虽然是4G物理内存,但实际上识别的只有3G。有的朋友说是可以识别到3.2G或者3.5G不等,我想这跟人品是没有什么关系的 ...
  • 寻址能力 CPU的寻址能力与它的地址总线位宽有关,而我们通常说的CPU位宽指的是数据总线位宽,它和地址总线位宽半毛钱关系也没有,自然也与寻址能力无关。
  • part 1 CPU位数 = CPU中寄存器...操作系统位数 = 其所依赖的指令集位数 CPU寻址能力 = 2^S (s为地址总线宽度) chenqi@chenqi-OptiPlex-760:/$ cat /proc/cpuinfo | grep -i address address sizes : 36 bits p
  • “If we now decide to use only 48 of the 64 bits for addressing”. Why? & Why only 48bits? Why not some other number?系统架构师进行权衡. 256TB似乎有足够的空间为1个进程...只要指针是64位,这是比其他...
  • X64 操作系统内存寻址

    千次阅读 2017-07-19 14:52:50
    0x01 x64寻址简介 在保护模式,CPU发出的线性地址,内存管理单元(MMU),根据当前CR3寄存器所指向的页表物理地址将该线性地址翻译成物理地址进行内存访问,该过程称为地址翻译。 在x64体系结构中,线性地址的结构如图...
  •  实际这里我们只考虑了软件层面,64位系统要搭配64位的CPU才行,而实际最终决定寻址范围的是CPU的地址总线。32的CPU其地址总线是32根,每一根都可以看做二进制数中的一个,故其寻址范围为2^32个内存单元,而...
  • 自制操作系统 day3用寄存器表示内存地址 用寄存器表示内存地址 如果只用一个BX(base,基址寄存器)来表示内存地址(BX是一个16的寄存器,即2Byte,1Word) 那么只能表示0~0xffff的值。也就是只有0-65535(bit),共...
  • 借由这个问题,今天我们就把 32 CPU、64 CPU、32 操作系统64 操作系统之间的区别与联系彻底搞清楚。对于这个问题,博主也是一知半解了好长时间啊~ 基本概念 32的CPU与64位CPU 以下内容摘自维基百科...
  • 32位系统64位系统的区别

    千次阅读 2016-11-02 11:10:53
    3264位系统指的是:计算机CPU处理... 32位系统64位系统还涉及内存寻址方面,32位系统的最大寻址空间是2的32次方=4(Gb)左右,而64位系统的最大寻址空间则达到了2的64 次方,简单点说,32位系统的处理器最大只支持
  • 48位寻址模式

    2020-02-21 15:08:32
    然而,64位Linux操作系统下内存虚拟地址寻址空间并不是 264,而是 248 。 因为并不需要 264 这么大的寻址空间,过大空间只会导致资源的浪费。64位Linux一般使用48来表示virtual虚拟地址空间,36至40表示physical...
  • 32处理器,计算机中的...在Intel由16的286升级到386的时候,为了和16位系统兼容,它先推出的是386SX,这种CPU内部预算为32,外部数据传输为16。直到386DX以后,所有的CPU在内部和外部都是32的了。在计算...
  • 在之前的Blog 中,我们...因此,本文重点介绍 16 CPU的寻址方式。我们开始吧! 文章目录一、立即数寻址二、寄存器寻址三、存储器寻址3.1 直接寻址3.2 寄存器间接寻址3.3 基址寻址3.4 变址寻址3.5 基址变址寻址3...
  • 指令系统寻址方式

    千次阅读 多人点赞 2018-12-23 19:01:52
    用高级语言或者是汇编语言编写的...计算机系统的CPU能够直接识别并且执行的操作命令。一个处理器能够执行的所有的机器指令构成的集合,我们称之为指令集。指令集就是计算机系统软件和硬件的交界面。 软件通过指令系...
  • 文章目录指令寻址顺序寻址跳跃寻址数据寻址(重要)隐含寻址立即寻址直接寻址间接寻址寄存器寻址寄存器间接寻址寻址方式总结基址寻址变址寻址相对寻址例题总结堆栈寻址 指令寻址 始终由程序计数器PC给出 顺序...
  • 存储:   硬盘:持久化存放    内存:关机就会没有 更加快速进行随机访问 ...缓存:CUP里面 多个CPU共有或者单个CPU自己...操作系统寻址:   寻址空间 :   32->4G   64位->~10^1...
  • 通常我们说起操作系统会下意识地区分是32还是64位操作系统,那么这两者之间有什么区别呢?电脑版本其实实际上这取决于CPU一次处理数据的能力是32还是64位。现在市场上的CPU一般都是64位的,但是这些CPU并不是...
  • 32 cpu寻址

    2011-06-22 11:02:00
    32cpu寻址小结_ziyu2000_新浪博客 (转载)200016 收藏于 2011-06-22 阅读数:1 收藏数:2 公众公开 原文来源 修改<span style=
  • 本篇主要介绍了操作系统中,七种寻址方式。 一、立即数寻址 操作数作为指令的一部分,直接写在指令中,这样的寻址方式是立即数寻址。如果立即数为16或32,则按照高高低低储存。 MOV AH, 80H ADD AX, 1234H ...
  • 实际上课本讲的是偏移地址为16,则很明显,偏移地址的寻址可以寻到 2162^{16}216 个地址,即 64 K 个地址,计算机的存储单位为 Byte ,所以 16 地址的寻址能力为 64 KB (我是这么理解的) ...
  • 32位64位最大内存、寻址空间等问题

    万次阅读 2013-12-01 15:09:06
    寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题。数据在存储器(RAM)中存放是有规律的 ,CPU在运算的时候需要把数据提取出来就需要知道数据在那里 ,这... ,如32位寻址的CPU

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,018
精华内容 25,207
关键字:

64位系统寻址