32位操作系统内存大小识别

内存大小的计算与操作系统支持最大内存 :"(bit)"是电子计算机中最bai小的数据单。每一的du状态只能是0或1。 字节:8个二进制构成1个"字节(Byte)",它是存储空间的基本计量单。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。 KB:在一般的计量单中,通常K表示1000,但在二进制中K表示1024,也就是2的10次方。1KB表示1K个Byte,也就是1024个字节。 MB:1MB表示1K个KB,也就是1024个KB。 GB:1GB表示1K个MB,也就是1024个MB。 TB:1TB表 阅读详情

500元、300元、150元......随着DDR2价格的逐渐崩盘,目前连2GB DDR2-800内存的价格也已经跌至百元,越来越多的朋友为爱机装上了4GB内存。随着4GB电脑的逐渐增加,一个长期存在的问题又再次被人们所关注:为何我只能看到3.25GB物理内存?

1.jpg (58.97 KB)

2009-4-20 18:02


  无论是WinXP-32bit还是Vista-32bit,所有的用户都可以发现自己的任务管理器中最多只显示3.25GB物理内存,更甚者还会有2.8GB甚至更低的数值出现。我们花钱购买的内存就这样白白不见了么?   人们当然不会允许这样的事情发生,于是各种论坛上展开了关于4GB内存的大量讨论。重装系统、打开PAE、使用Ramdisk、开启Memory Remapping等等各种手段层出不穷,所有人都想找回那失去的内存。再逐一尝试之后,人们发现始终能够在32bit系统上找到那0.75GB内存的下落。人们所寄希望的Vista系统也仅仅是能够在系统属性上看到4.00GB的字样,设备管理器的物理内存依然安逸的保持在3.25GB。期间,各大电脑网站和杂志也刊登了一些关于这方面的文章,介绍了大量内容,最终人们将一切归罪于32bit操作系统。   这样的审判似乎很正确,毕竟我们可以真实的看到64bit系统下那>3.25GB的物理内存显示,32bit系统显然贪污掉了0.75GB内存。然而事实上,操作系统却在这里成为了不折不扣的替罪羊。因为事实上即使是在64bit系统中,内存同样会被“侵蚀”;而32bit系统也同样可以使用超过4GB的内存。为了让广大网友都能够了解事实究竟,今天笔者就为操作系统客串一次辩护律师,为其平反这个内存贪墨案,找寻那失落的内存。真相永远只有一个!

  注:文本将以Intel当代芯片组的内存分配机制为例讲述,其他品牌芯片组在细节上或许有与本文所描述不同之处,但结论上不会有太大出入。

32bit操作系统,32bit处理器,有着32bit寻址能力,可以访问2^32 = 4G物理地址,于是拥有识别4GB内存的能力,这似乎是完全顺理成章的事情。然而其中有一个关键,什么是物理地址?物理地址就是物理内存的地址?非也。物理地址是指处理器和系统内存之间所用到地址,我们可以简单理解成是CPU“极方便访问的地址”。这个地址并非物理内存独享,尽管通常它基本都会与物理地址重叠,但也可以根据需要被其他设备占用,使得物理内存实际上只能够占用这4GB地址中的一部分。

www.hwit.net_点击在新窗口看大图_20090105-image002_s.jpg(85.89 KB)

2009-4-20 18:03


  认真看看上面这个P45芯片组的系统地址区域图。图中的方块代表的是不同区域的“地址”,这些地址囊括了一台电脑中所有能和操作系统以及芯片组关联的设备地址,而不仅仅是“物理内存地址”。同样的,那个4G的红线代表的是第4G个Byte的地址,并不是4GB物理内存的分界线,尽管内存控制器很多时候确实会让它们重叠在一起。P45芯片组是一款支持36bit寻址的产品,即可以支持64GB地址,但为了去迎合操作系统以及各种软件,因此需要保证系统运转所必须的所有设备地址都可以在4GB范围内找到,否则会给硬件32bit驱动程序的制作带来很多麻烦,对驱动程序兼容性造成极大程度的影响。很显然,让一个系统正常运行并不仅仅包括内存,还要包括各种I/O设备等。在4GB的寻址范围内,物理内存实际上只占据了一块,就是那个被称为Main Memory Address Range的区域(图中绿色框)。安装4GB以下内存的话,Windows的任务管理器会确认1MB至TOLUD寄存器数值作为系统可用的物理内存(无板载显卡占用)。TOLUD全称是Top of Low Usable Dram,这个16bit寄存器由BIOS赋予一个适当的数值,其含义是4GB地址内的可用物理内存地址顶端。如果安装2GB内存,那么TOLUD的数值就是7FFFFFFFh,也就是16进制的2GB(加上0地址),任务管理器一般会显示2046MB(见小贴士)。既然内存并不能占据整个4GB地址,那么其他地址主要被谁占据了呢?

  小贴士:相信不少非4GB用户会发现自己的内存同样被偷吃了几MB,比如2GB内存用户通常在设备管理器中只能看到2047MB或者2046MB内存等等。这是因为还有两块地址范围被占据,这两个区域分别是LegacyAddress Range和TSEG,他们会使用一部分内存(比如加载系统BIOS)。由于这两个区域都处于TOLUD以下的地址范围内,包含了BIOS等底层部件的Legacy Address Range更是固定占据00000000h000FFFFFh1MB最底层地址空间,所以无论系统安装了多少内存,Windows任务管理器显示的数值都会受到影响。

www.hwit.net__20090105-image003.jpg(47.3 KB)

2009-4-20 18:03


  上面的图中展示了00000000h至FFFFFFFFh共4GB地址的详细分配(上图中方块大小于占用地址多少无关),4GB物理内存本身会自然排布其上,但会有一些优先级更高的分派来争夺物理地址空间,使得真正留下的物理内存只在Main Memory区域,而其他部分通常会占据几MB最多十几MB的地址空间,但其中有一个地址大户:PCI Memory Address Range(PCI Memory Range)。

PCI Memory Address Range这一部分包含了各种I/O设备,系统总线等部分所需的地址,上面的图中我们可以看到ICH10的磁盘控制器、PCIE(显卡)等该系统现有设备所占据的地址范围。这些I/O设备地址被通过一种叫做MMIO的技术使得CPU可以高速便捷的访问它们。根据设备状况的不同,PCIMemory Address Range的大小也会发生变化,这都一切取决于硬件本身及硬件驱动的需求,例如芯片组、显卡等等。

www.hwit.net__20090105-image005.jpg(255.99 KB)

2009-4-20 18:05


  小贴士:MMIO全称是Memory-mapped I/O,是一种在CPU和外围设备之间执行输入输出功能的途径。MMIO简单说就是将各种外围设备的控制寄存器映射到物理内存地址上,CPU可以像访问内存一样方便的访问I/O设备,而无需重复再三的去调用IO控制函数。CPU会将自己的寻址空间预留一块用于I/O设备,这也意味着内存地址被占用了一块,但并不会真的占用物理内存存储空间。

www.hwit.net__20090105-image009.jpg(90.14 KB)

2009-4-20 18:05


  没有板载显卡的话,PCIMemory Address Range基本可以与MMIO区域划等号。MMIO会占据TOLUD至4GB的地址空间,不过这只是将物理地址分派给各种外围设备,而不会真的占用物理内存。上图中的系统只有2GB内存,那么TOLUD的值就是2GB(7FFFFFFFh),PCI Memory Address Range也就自动占据了80000000h至FFFFFFFFh这剩下2GB的地址空间。而且很明显,它不占用内存,因为后面2GB根本没有内存。MMIO区域所占据的地址实际上对应的物理设备是外围设备的寄存器之类,相对于这些设备的寄存器来说,MMIO是一块逻辑地址区间。

 

www.hwit.net__20090105-image006.jpg(115.18 KB)

2009-4-20 18:06


       上图展示了P45芯片组(Intel芯片组)的典型MMIO分配,里面包含了大量系统所必须的内容:High BIOS、DMI总线、FSB中断、APIC、PCIE等多方面的设备地址。这些都是一款Intel芯片组正常运行所必须的东东,尤其是DMI总线(连接Intel芯片组南北桥)管理着主板上的大多数IO设备,它们自然必须在任何时候都享受着MMIO所分配的地址,而这个地址范围通常就是0.75GB。

www.hwit.net__20090105-image007.jpg(164.6 KB)

2009-4-20 18:06


  DFI的X58主板给出了一个很有意思的选项,名叫MemoryLowGap。这个选项可以让用户自定义选择TOLUD的地址,或者说自定义选择MMIO区域的大小。该选项的范围为1024M至3072M,即MMIO区域的大小为1024MB-3072MB。可能是因为需要映射到物理地址的寄存器数量很大,一些顶级显卡的驱动程序会要求比较大的MMIO区域支持,例如NVIDIA的GTX280、GTX295之类。4GB内存用户甚至可以发现,当更换显卡后,设备管理器显示的物理内存大小竟然也会发生变化,甚至会降低到3GB以下的数值,这就是因为某些高阶显卡申请了更大的MMIO,使得内存在4GB以下的地址空间被进一步压缩,我们可以在Windows的设备管理器内看到地址分布的变化。

www.hwit.net_点击在新窗口看大图_20090105-image008_s.jpg(115.57 KB)

2009-4-20 18:06



  当我们把DFIX58主板BIOS中的Memory LowGap调至一个巨额的数值之后,上图中的景象就出现了。由于MMIO的进一步扩张,我们发现连2GB的内存竟然也被侵蚀了好大一块,50000000h(1280MB)之后的地址就已经开始被MMIO占据。4GB地址就像是一辆拥挤的公共汽车,空间总共就那么大,PCIMemory Address Range挤上去了、满载了,内存自然就上不去了。难道内存就这么白费了?先不用着急,继续向下看,我们会把内存找回来的。

让我们再来温习一下这张图,并再次明确一件事情:PCI Memory Address Range中的MMIO占去的仅仅是物理地址,并不会去占据内存空间。每个内存颗粒中每个可以存储1bit的晶体管本身并不会拥有地址,所有的地址都是由系统进行分配的。这一切的地址排布与操作系统是多少位并无太多关联,而操作系统方面对MMIO大小的影响主要来自于系统自身驱动以及设备驱动程序等方面的要求。因此我们可以发现在一些默认功能开启较少,硬件驱动地址开销较少的系统中(如Win Sever),任务管理器显示的物理内存会大一些(例如3.6GB)。因为此时的MMIO相对较小。从根本上来说,这是芯片组来自于兼容性方面的考量,必须让MMIO位于4GB以内。

www.hwit.net__20090105-image009.jpg(90.14 KB)

2009-4-20 18:08


  由于兼容性的考量,即使使用了64bit操作系统和64bit处理器,MMIO仍然会被芯片组安置于4GB地址以内。MMIO必须占用这段地址空间,且MMIO有着比内存更高的优先级,物理内存又会老老实实的自然排布,这使得当安装了接近4GB或更多物理内存时,PCI Memory Address Range必然会与物理内存交叠,在整个物理内存地址中形成一个MemoryHole。

www.hwit.net__20090105-image0010.jpg(64.2 KB)

2009-4-20 18:08


  小贴士:MemoryHole其实很好理解,就像上面的图中那样,Main Memory被分成了两段,而那段被占用的地址空间就像一个“洞”(Hole),所以称之为Hole。。。。。。上面图中PCI Memory Address Range就充当了这个Hole的角色,它并不占用内存存储空间,只是一个物理地址上的横亘,使得Hole的地址与内存地址发生了重叠。

www.hwit.net_点击在新窗口看大图_20090105-image011_s.jpg(88.6 KB)

2009-4-20 18:08



  芯片组设计师们自然有其他的考量去解决物理内存地址的分配问题,毕竟会白白浪费内存的芯片组是不讨人喜欢的。既然4GB以下地址如此紧张,我们为何不将物理内存分配到更高的地址空间去呢?于是,TOM、 TOUUD寄存器以及RECLAIMBASE、RECLAIMLIMIT寄存器诞生了。

 

TOM即“Top of Memory”,其描述的是系统上所安装的物理内存的总量。TOM寄存器值并不见得代表最高内存地址,因为MMIO的地址分配要优先于TOM寄存器,内存地址中基本都会存在一些hole(PCI Memory Address Range),所以TOM寄存器的地址最终还需要加上这些hole的地址,从而会更高一些。TOM寄存器之下将会有1-64MB内存被Manageability Engine占用(图中的EP-UMA),这是确确实实被占有的内存。

www.hwit.net__20090105-image012.jpg(101.78 KB)

2009-4-20 18:09


  TOUUD即“Top of Upper UsableDRAM”,其描述的是可设定地址的物理内存总量。TOLUD寄存器会始终在4GB内存地址以下工作,但我们知道现在的主流芯片组都能安装高达16GB的内存,TOUUD就可以解决这个问题。TOUUD会在4GB以上地址定义物理内存范围,这个范围会从4GB到可用物理内存顶端(TOM),经过鉴定的物理内存可以直接被使用。这并不受操作系统的影响,而是芯片组的工作,也就是至少BIOS肯定是能够接受16GB内存的。

  OK,现在我们要回收那块被“占用”的内存地址了。MMIO占据了TOLUD到4GB的地址空间,所以芯片组需要去回收这段地址重叠的物理内存。物理内存并不能直接搬家,芯片组会开启一个remap window(Main Memory Reclaim Address Range),其底端地址由RECLAIMBASE寄存器定义,顶端地址由RECLAIMLIMIT寄存器定义,总大小会与被MMIO占用的内存地址范围完全相等。然后会将原本将落在TOLUD至4GB地址之间的物理内存回收,重映射到4GB以上EP Stolen Base之下的地址空间中,属于remap window中的地址都会去对应由TOLUD至4GB的这段物理内存。

  注:由于笔者目前不确定芯片组的Memory Reclaim功能是否可以通过主板BIOS开关,所以某些品牌主板BIOS中的Memory (Hole) Remapping选项可能控制了Memory Reclaim功能的开关。

www.hwit.net__20090105-image013.jpg(75.56 KB)

2009-4-20 18:09



  OK,现在我们要回收那块被“占用”的内存地址了。MMIO占据了TOLUD到4GB的地址空间,所以芯片组需要去回收这段地址重叠的物理内存。物理内存并不能直接搬家,芯片组会开启一个remap window(Main Memory Reclaim Address Range),其底端地址由RECLAIMBASE寄存器定义,顶端地址由RECLAIMLIMIT寄存器定义,总大小会与被MMIO占用的内存地址范围完全相等。然后会将原本将落在TOLUD至4GB地址之间的物理内存回收,重映射到4GB以上EP Stolen Base之下的地址空间中,属于remap window中的地址都会去对应由TOLUD至4GB的这段物理内存。

  在主板BIOS中的Memory Remapping(也有的叫Memory Hole Remapping)实际上控制的就是芯片组(内存控制器)的MemoryReclaim,只有当开启这个选项的时候芯片组才会回收与MMIO交叠的内存。某些主板,尤其是采用award bios的主板上可能没有这个选项(例如技嘉主板),但事实上该选项其实都默认开启了,因为此功能任何时候都完全没有关闭的需要。

  尽管芯片组的MemoryReclaim功能为我们回收了内存,但我们的任务管理器现在还不能显示它们,因为我们的物理地址只有4GB,MMIO会占据一部分地址。被置于4GB以上地址区间的内存显然早已超出了32bit寻址范围。不过我们有办法去利用那些位于4GB地址以上的内存。想知道究竟?请继续向后看。

在早年的计算机中,地址的转换很单纯,有效地址就直接等于物理存储器的地址,这适合同一时间只有一个进程在运作。但Windows不会只有一个Window,多进程并存是现代计算机的基本情形。后来人们决定为每个进程划定一块专用内存区域,这样可以让多个进程同时运作。但这种分段方式会让内存在进程开开关关的过程中产生很多碎片,很多小块内存无法被利用。由于内存空间总是相对有限的,因此应用程序也不能疯狂的将所有东西直接塞进内存当中。同时我们也不能依赖硬盘这个缓慢的二级存储器去充当内存,那实在太慢了。为了调和这个矛盾,操作系统都引入了虚拟内存机制。

www.hwit.net__20090105-image014.jpg(175.96 KB)

2009-4-20 18:10


  Windows的虚拟内存并非简单的指位于我们硬盘上的那个pagefile.sys文件,或者是在内存装不下的时候用于应急的“模拟内存”。在当代Windows系统中,任何一个进程都会被赋予其自己的虚拟地址空间,这是一种逻辑地址空间,并不存在实体,该虚拟地址空间可以覆盖了一个相当大的范围。对于一个32位进程,其可以拥有的虚拟地址空间为2^32=4GB,典型情况为2GB用户空间,2GB系统内核空间(最大可调整为3GB用户空间和1GB内核空间),这与安装了多少物理内存没有任何关系。每个进程的虚拟地址空间都会被标上各自的ID,这样两个进程之间的虚拟地址就不会互相干扰。虽然每一个32位进程可使用4GB的地址空间,但并不意味着每一个进程实际拥有4GB的物理地址空间或使用4GB物理内存,虚拟地址仅仅是一种逻辑地址。

www.hwit.net__20090108-1231396638.jpg(24.93 KB)

2009-4-20 18:10



  应用程序自然不能总在看不见摸不着的虚拟地址里溜达,最终还是需要实实在在的物理存储器关联。应用程序会去为其虚拟地址申请物理存储空间,这个空间通常会小于应用程序的总虚拟空间。这里所说的物理存储器并不局限于计算机内存,还包括在磁盘空间上创建的页文件(pagefile.sys),其存储空间大小为计算机内存和页文件存储容量之和(所以Windows自动管理时的pagefile.sys是很大的)。由于通常情况下磁盘存储空间要远大于内存的存储空间,因此页文件的使用对于应用程序而言确实相当于透明的增加了其所能使用的内存容量,只是速度慢了点。有了虚拟内存的存在,程序本身就不用完全装入内存,或者完全存于硬盘,系统会将目前需要的部分读入内存处理,暂时不需要的就放在硬盘的页文件留作交换。不过CPU并不能直接去访问磁盘上的信息,每次磁盘访问都必须通过内存,所以若所需的内容在磁盘上的页文件中,就需要先加载到内存然后访问。

  应用程序本身并不关心自己占用的内存大小,它只要求提交物理存储器,无论是磁盘还是内存。那么自然是尽量分配更多的高速的内存作为物理存储器最佳,所以我们也知道内存大的机器在大量应用程序启动时会快。当一个进程的虚拟内存提交的物理存储器是物理内存时,我们就可以省去从磁盘的页文件加载数据到物理内存的时间,程序的工作效率自然就会提高。尽管我们的内存超出了32bit系统的地址结构范围,但我们只要将4GB地址以上的物理内存为虚拟内存所用就不会浪费内存了。

物理地址扩展(PAE)是早在Pentium Pro时代就有的东东,它可以提高IA32处理器应对4GB以上内存的能力。当启用 PAE之后,Windows操作系统将从两级线性地址转换变为三层地址转换,额外的一层转换用于访问超过4GB地址的物理内存,可以将超出4GB地址的物理内存映射为应用程序进程的虚拟地址空间以提升虚拟内存性能。地址窗口扩展(AWE)更是可以将未分页的物理内存转换到进程的虚拟地址。通过PAE,我们可以完整的利用到被回收至4GB以上地址的那部分内存。

www.hwit.net__20090105-image015.jpg(39.25 KB)

2009-4-20 18:12


  至于开启PAE的方法网上遍地都是,我想就不用在这里多费笔墨了。而且事实上,操作系统多数情况下会自动开启PAE,在使用多核心处理器时,无论安装多少物理内存,Windows都会因处理器需要而默认开启PAE功能。换句话说,在这个双核心处理器普及的时代我们基本上不用去考虑PAE的开启问题。

www.hwit.net__20090105-image016.jpg(73.91 KB)

2009-4-20 18:12


  现在万事俱备,只要芯片组与PAE都正常运作,那么我们的4GB内存就1字节都不会少。

  通过前面的讲述,我们现在明白了三点:1、MMIO只占据地址不占据内存空间;2、现代的芯片组和内存控制器完全具备回收(转移)与MMIO交叠的内存的能力;3、32bit操作系统通过PAE可以拥有访问位于4GB地址以上的内存的能力。

www.hwit.net__20090110-image016.jpg(23.61 KB)

2009-4-20 18:15


  然而多数人都会发现,我们虽然已经找到了开启4GB大门的钥匙,但却始终找不到钥匙孔。操作系统在多核心状况下PAE强制开启,处理器早在N年前就支持了PAE 36bit寻址,而PAE也处于活动状态,但我们始终就发现不了那完整的4GB内存。所有人都卡在了这里。

www.hwit.net_点击在新窗口看大图_20090110-image017_s.jpg(62.19 KB)

2009-4-20 18:15





  事实上,Windows内部的一些设定(不排除是bug)限制了我们的内存使用,桌面版Windows(包括Vista旗舰版)的36bit寻址功能无论PAE是否处于启用状态都无法访问32bit以上地址,甚至可以说PAE根本是无效的。这样就无法去访问被芯片组转移到高地址位的内存,哪怕该系统本身完全具备了这样的能力。而同样最大只支持4GB物理内存的Windows Sever 2008标准版却可以通过PAE访问高位地址,去享受被芯片组回收和转移那部分内存。笔者现在并不知道究竟是那些内部设置或bug限制了桌面系统的PAE功能,但我们有办法去改变现状。

www.hwit.net__20090110-image018.jpg(104.35 KB)

2009-4-20 18:15





  首先我们需要准备WindowsSever 2008标准版的tokens.dat文件和序列号。在C:WindowsServiceProfilesNetworkServiceAppDataRoamingMicrosoftSoftwareLicensing中我们可以看到一个名为tokens.dat的文件,这一个软件许可文件,我们需要在他身上做点文章。该文件正常状态始终为Software Licensing服务调用,是不可修改或替换的,我们可以安全模式或者在禁用Software Licensing服务之后进行替换。我们要做的事情,就是用WindowsSever 2008标准版的许可文件替换Vista的许可文件。   当文件替换完成之后,注销或者重启之后系统会提示当前序列号(Vista的序列号)不可用,要求输入新序列号,同时强制不可进入系统(安全模式正常)。此时我们输入Windows Sever 2008标准版的序列号,无论激活是否成功,序列号都会正确替换,同时重启后我们可以正常进入系统(若未激活会提示3天内激活)。许可文件对Vista的一些设置进行了调整,比如关闭Aero功能,开启事件跟踪程序之类Windows Sever 2008的特性。当然操作系统本身依然是Vista,我们可以打开Aero以及关闭不需要的服务器功能。

www.hwit.net_点击在新窗口看大图_20090110-1_s.jpg(110.91 KB)

2009-4-20 18:15


  欢呼吧,各位!尽管操作系统仍然是Vista,但由于内部某些设定的自动调整使得我们的操作系统完完整整、千真万确的利用到了所有的4GB内存。我们的内存不仅谁也没动,而且安然无恙的全部回来了。(若出现只显示2GB内存的状况,再次重启即可)

www.hwit.net_点击在新窗口看大图_20090110-2_s.jpg(100.1 KB)

2009-4-20 18:15


  看看设备管理器中的地址分配,MMIO还是牢牢霸占着4GB以下的物理地址,但芯片组的MemoryReclaim功能帮我们找回了内存。而操作系统嘛,再激活一次就一切正常了。

通过芯片组的 Memory Reclaim机制和CPU、操作系统PAE功能的正常运作,我们在32bit桌面系统上完整的利用到了4GB内存。这一切不能怪32bit操作系统本身,恐怕只能怪微软的设定(或bug)。不过无论如何,我们的内存谁也没动,并没有被任何东东占据我们的晶体管。  如果希望变回原版的Vista系统,只需要按照相同地方法替换Vista版的tokens.dat文件,并进行序列号更换即可。事实上我们或许不需要这样麻烦的去替换系统许可文件,相信只是一些内部设定妨碍了桌面系统PAE的正常发挥。笔者暂时恐怕无法找出究竟是哪一项设定造成的影响,期待各位热心的网友去发掘。

  修改许可文件之后会有一个后遗症,那就是Windows Update会认为你的操作系统是WindowsSever 2008,因而提供Windows Sever 2008版补丁下载。但是由于我们的操作系统是货真价实的Vista,所以安装Windows Sever 2008补丁会造成一些问题,请各位通过其他途径安装正确的Vista版补丁。

  后记:这篇文章写得还真是一波三折,由于意外的提早放出弄得我着实有点搓手不及。尽管我肯定了我的判断和分析是正确的,但始终找不到一个最正确的、最直观的最终答案。不过也正是意外的提早放出,借助网友的群策群力最终得到了一个圆满的结果。

Meta DINOv3实战指南:如何用7B参数ViT模型提升你的视觉任务性能(附Hugging Face部署教程) 本文提供了Meta DINOv3 7B参数ViT模型的实战部署指南。文章详细解析了该自监督视觉模型的优势,并重点演示了如何在Hugging Face平台上高效加载这一大规模模型,同时给出了图像分类、语义分割等下游任务的性能提升技巧与代码示例,帮助开发者在实际视觉任务中应用这一前沿技术。 阅读详情

相关推荐

电子元器件选型与实战应用—01 电阻选型

大家好, 我是记得诚。这是《电子元器件选型与实战应用》专栏的第一篇文章,今天的主角是电阻,在每一个电子产品中,都少不了电阻的身影,其重要性不言而喻。

记得诚 3466

c# 获取6432系统内存、cpu和磁盘使用情况

c# 获取6432系统内存、cpu和磁盘使用情况,64系统和32系统在获取内存的时候有一点区别,代码里有注释,注意查看

修改windows32识别内存

软件的用途就是让Windows32突破3.25GB的内存限制,使用到4GB以上的内存。

我的内存谁也没动:4GB内存终极解迷

<br />前言<br /><br />       500元、300元、150元......随着DDR2价格的逐渐崩盘,目前连2GB DDR2-800内存的价格也已经跌至百元,越来越多的朋友为爱机装上了4GB内存。随着4GB电脑的逐渐增加,一个长期存在的问题又再次被人们所关注:为何我只能看到3.25GB物理内存?<br /><br />  无论是WinXP-32bit还是Vista-32bit,所有的用户都可以发现自己的任务管理器中最多只显示3.25GB物理内存,更甚者还会有2.8GB甚至更低的数值出现。

Matrix_Designer的专栏 4180

32bit操作系统下用好4GB物理内存

32bit操作系统下用好4GB物理内存 最近内存价格一路下滑直接导致很多朋友或打算增加内存或新装机采购4GB内存CPU都支持64bit了然而很多人并不愿意直接使用64bit操作系统甚至有不少人装了64bit的Vista后又卸掉重新回到32bit时代重装完后问题来了仔细查看系统内存怎么不是4GB少了很多嘛有些是3GB有些是3.25GB甚至有的少于3GB究竟是XP不支持4GB...

weixin_33725270的博客 256

为何我只能看到3.25GB物理内存

用win7企业版,看到了4G内存只有3.25G可用,于是搜索想知道为什么? 发现这篇解释得比较合理特此转载,不过看下去头有点大,有兴趣了解就看看吧。 一个长期存在的问题又再次被人们所关注:为何我只能看到3.25GB物理内存? 无论是WinXP-32bit还是Vista-32bit,所有的用户都可以发现自己的任务管理器中最多只显示3.25GB物理内存,更...

weixin_33851604的博客 782

内存地址重映射的选项_内存控制设置请教

匿名用户1级2016-02-08 回答Bank Interleaving:Bank交错存取。内存bank 交错存取可以让系统对内存的不同bank同时存取,可以提升内存速度及稳定性。设置值有Auto和Disabled,默认值是Auto(开启交错存取)。内存条上的记忆体芯片必须时常被刷新或被访问才能保证正常工作,刷新时会占用时间。bank interleaving可以允许内存条上不同bank的记忆体轮...

weixin_42104778的博客 2768

oracle安装过程中的内存不足问题

由于D盘没有共享存储,电脑没有办法检测内存大小 解决办法: 开启C盘的默认共享:打开doc窗口,输入net share c=c:关闭C盘的默认共享:打开doc窗口,输入netsharec=c: 关闭C盘的默认共享:打开doc窗口,输入net share c=c:关闭C盘的默认共享:打开doc窗口,输入netsharec /delete ...

qq_41377367的博客 3072

aix unix常用命令

命令内核如何知道自己在运行 32 内核还是 64 内核?要显示内核启用的是 32 还是 64 ,可输入以下命令:bootinfo -K如何知道自己在运行单处理器还是多处理器内核?/unix 是指向已启动内核的符号链接。要了解正在运行什么内核模式,可输入 ls -l /unix 并查看 /unix 链接到什么文件。下面是 ls -l /unix 命令的三种可能输出及其对应的内核: /unix -> /usr/lib/boot/unix_up # 32 bit uniprocessor kernel

GaoDong blog 838

32支持8G内存

非原创:原文链接不详(从别人那截取的她也没写出处,留下来以后方便找) 最近新拿了几台IBM服务器做测试,服务器配置很不错,标称8G的内存,在装完Fedora 9之后使用”free”命令查看机器内存却发现系统显示的内存大小只有3G,并没有像标称那样到8G: total used free shared buffers cached Mem: 3106944 213288 2...

v5browser 396

32操作系统64操作系统的区别

文章目录一、3264的关系二、3264的“”是什么三、3264操作系统的区别1、支持的系统不同2、运行数据的速度不同3、支持内存大小不同4、软件5、系统体积大小不同 一、3264的关系 3264指的是处理器 CPU,32处理器每次最多能处理32数据,而64处理器每次最多处理64数据。 电脑系统,也针对32处理器和64处理器,分别开发了32操作系统64操作系统,这样系统与处理器匹配,可以使处理器的性能发挥到最大程度。 二、3264的“”是什么 “”,

_ 6034

电脑安装32操作系统还是64操作系统好?从内存角度分析

相信很多人都发现新买的电脑都自带64 windows10操作系统,很少有人使用32操作系统了。那么,这是什么原因呢?64操作系统32操作系统又有什么区别呢?那到底安装哪个系统好呢?接下来,我们一起来分析一下,相信能帮助你们解决心中的疑惑。 一、32操作系统最大支持4GB内存大小的电脑 我们都知道,计算机只能识别二进制数字。而Bit)是计算机的最小存储,存放0或1。32操作系统是指系统的最大寻址能力为32,那么对应的地址空间就为: 232÷1024÷1024÷1024=4(GB) 2^

weixin_49199646的博客 2008

计算机中64指的是什么意思,地是什么 3264什么意思?

可能你也不止一次的听到诸如3264的说法。这里的“”到底是什么意思呢?相信通过这篇文章,你可以找到答案。什么是?,是计算机的最小存储单元,一,可以存放一个二进制数字其实,的概念非常简单,我们知道,在计算机中,无论是数字还是字符,无论是图片还是音乐,存储时,都是使用二进制格式的数字来存储,这个二进制数字的其中一就是“”的概念。比如,一个字符'a',在unicode编码下,它的二进...

weixin_39781363的博客 4326

查看Windows以及linux操作系统的CPU核数、数、内存大小

  win7系统开始,就分为6432,什么操作系统一般是由用户的硬件配置决定;32系统最大只能支持3.5GB内存,如果在32系统中使用的是4GB或者更大容量内存,电脑只可以识别到3.4GB可用,而64系统最大可以支持128GB大内存。   其实我们说的3264,指的是CPU每一次处理多少的数据。对于32CPU,其一次只能处理32(即4个字节)的数据;而64CPU一次...

huosenbulusi的博客 3146

32处理器和32地址线区别以及为什么32地址线内存大小为4G的解释

在网上看到很多朋友分不清32处理器和32地址线的问题,还有就是提出32地址线为什么是4G大小的内存? 首先这是一个很好的问题,但是网上却有很多不好的答案。因为回答的人本身也没有搞清楚,把32处理器和32地址线当做一回事给别人解释,误导他人。 32处理器: 32处理器表示我们的处理器一次可以处理的数据量,也就是32大小,即4个字节。 那么我们现在常见的还有64处理器,它代表处理器一次可以处理8个字节的大小。 处理器的数代表了处理器处理数据的能力。 32地址线: 32地址线

学无止境 6172

电脑系统3264有哪些区别?3264是什么意思 ?

电脑系统3264有哪些区别?3264是什么意思 ?

weixin_63318044的博客 1万+

64处理器_电脑操作系统为什么有3264?一分钟教你分辨清楚cpu处理器

大家平时可能注意到了一件事,电脑系统,无论是win7系统,还是win10系统,都有3264两种,有时候下载软件,也会提示你,是下载32软件,还是64软件!对于初学者朋友来说,有时候会犯迷糊,3264、软件、系统、处理器,他们之间到底是什么关系呢?下面毛毛虫逐条来解析,他们之间的区别,以及如何判断哪个是哪个!一、3264的关系本质上,3264指的是处理器cpu,32处理...

weixin_39827625的博客 2590

工具变量-创新型产业集群城市DID数据(2000-2025年).xlsx

详细介绍及样例数据:https://blog.csdn.net/T0620514/article/details/155820516

上一篇: PMON start.S 串口输出函数讲解
下一篇: CISC RISC ARM MIPS区别与联系
专注嵌入式
博客等级 码龄16年 352粉丝 74原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值