火炬大厦地址:什么叫内寸?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 14:00:47
电脑参数内存256MB
究竟是指什么内存?

1、应用中的概念。

物理内存,在应用中,自然是顾名思义,物理上,真实的插在板子上的内存是多大就是多大了。看机器配置的时候,看的就是这个物理内存。

虚拟内存,这个概念就要稍微了解一下CPU了,^_^,只是稍微,毕竟我们现在谈的是应用中的概念。我们应该知道,对于一般的32位CPU,有32根地址线,那么它的寻址空间就是4GB。也就是说,如果没有其他的限制,我们的主板上最大可以安装4GB的物理内存。哈哈,一般的机器是不会装那么多物理内存的,大把的银子啊,性价比可合不上。程序员可不管这个,我们对CPU编程,不能一台机器根据你物理内存的大小我编一个程序吧?那也太原始社会了吧。所以程序员都是直接使用的4GB的奢侈的进程空间(或许,不应该用奢侈这么短视的词。曾几何时,128M的物理内存也是我们不可想象的呢?)。这怎么办?总不能不用那些程序了吧。好吧,这个问题交给OS去解决吧。这样,OS就提出了一个虚拟内存的概念。就是进程、用户、不必考虑实际上物理内存的限制,而直接对4GB的进程空间进行寻址。如果所寻址的数据实际上不在物理内存中,那就从“虚拟内存”中来获取。这个虚拟内存可以是一个专门文件格式的磁盘分区(比如linux下的swap分区),也可以是硬盘上的某个足够大的文件(比如win下的那个i386文件,好像是这个名字)。物理内存中长期不用的数据,也可以转移到虚拟内存中。这样的交换由OS来控制,用户看起来就好像物理内存大了一样。有了虚拟内存的概念,我们就可以自由的使用4GB的进程空间了。但是,前提是你的硬盘由足够的空间,而且你舍得划分出(4GB-物理内存)大的虚拟内存空间来。^_^。一般情况下,虚拟内存的大小,各个OS也进行了限制(比如linux的swap分区的大小,win下也可以调整虚拟内存文件的大小和位置)。所以,我们程序所能使用的存储空间大小就是:物理内存+虚拟内存。

2、CPU中的概念。

物理内存,CPU的地址线可以直接进行寻址的内存空间大小。比如8086只有20根地址线,那它的寻址空间就是1MB。我们就说8086能支持1MB的物理内存。即使我们安装了128M的内存条在板子上,我们也只能说8086拥有1MB的物理内存空间。同理32位的386以上CPU,就可以支持最大4GB的物理内存空间了。

虚拟内存,这便是一个和CPU的寻址方式有关的一个概念了。x86体系结构中,为了更好的管理内存空间,采用分段的方式来对内存进行寻址。比如8086就用两个字节的段基地址和两个字节的偏移地址来寻址整个可以寻址的内存空间,即:0000:0000方式(具体怎么计算出实际的地址,参见各种汇编教材)。这样,对整个1MB的物理内存空间寻址是没有问题了。可是,用这种方式,最大可以寻址到10FFEF这个地址。这超出了20根地址线的地址的FFEF大小的空间,就可以说是8086的虚拟内存了,所以可以说8086的虚拟内存地址空间可以达到10FFEF。^_^,具体怎么使用和看待这段内存,还取决于A20线的选通与否了,这是另外的话题了。同样的道理,386以上的CPU,由于在保护模式下使用了GDT和LDT,将段的定义放到了内存中,从而可以使用16位的段地址和32位的偏移地址。这样算来,386以上的CPU的虚拟内存地址空间就可以达到64TB了。真是大的惊人,看来,这么大的地址空间,一时还不能被软件的发展淘汰。

3、零碎的叫法。

零碎的叫法常常来自与相对感觉深奥诙涩的虚拟内存概念。物理的东西,人们大多不去碰它,毕竟是实实在在存在的。而虚拟内存就经常有别冒名顶替的。“一个进程有4个GB的虚拟内存”这样的说法屡见不鲜,其实,这是混淆了4GB的进程地址空间和虚拟内存这两个概念。也算令一种解释吧,毕竟那4个GB也是见不着影的,也是虚拟的。

什么是内存?

内存最小的物理单元是位,从本质上来讲,位是一个位于某种二值状态(通常是0和1)下的电气单元。

八位组成一个字节,这样组合的可能有256种(2的8次方)。字节是内存可访问的最小单元,每个这样的组合可代表单独的一个数据字符或指令。ascii码字符集实际上只使用了7位,因此支持128种可能的字符。对于所有的26个英文字母(包括大小写)、数字和特殊字符来说,这个数目完全够用。某些语种的字符数目比较庞大,因此它们可能会使用“双字节”字符集(例如汉字)。

pc机上所使用的内存可以分为两大类,分别是只读内存(rom)和随即访问内存(ram)。从它们的名字上可以看出,rom数据不能随意更新,但是在任何时候都可以读取。即使是断电,rom也能够保留数据。至于ram则在任何时候都可以读写,因此ram通常用作操作系统或其他正在运行的程序的临时存储介质(可称作系统内存)。不幸的是,掉电时ram不能保留数据,如果需要保存数据,就必须把它们写入到一个长期的存储器中(例如硬盘)。正因为如此,有时也将ram称作“可变存储器”。

ram内存可以进一步分为静态ram(sram)和动态内存(dram)两大类。由于实现方法上的差异,dram要比sram慢。sram由逻辑晶体管组成,数据采用触发的方式进行存储。因此改变和读取内存单元格的速度非常快。而dram使用电容存储数据。由于电容会逐渐放电,所以必须周期性的对它重新充电(即:刷新)。由于在执行读操作时电容也会放电,因此每次读操作之后也必须重新充电。刷新操作需要占用时钟周期,这可能会影响到其他的操作。虽然sram比dram的速度要快近10倍,但是它的价格也要比dram贵许多—
事实上,sram要比dram贵近10倍。

内存的使用

使用rom内存来保存pc上的bios程序非常理想,后者是一个基本的引导程序。这个引导程序非常小,可以驻留在较小的内存中(小于2mb)。rom内存包括可编程rom(prom)、可擦写可编程rom(eprom)、电可擦写可编程rom(eeprom)等等。目前bios一般使用eeprom,由于它可以通过加电擦除改写,由此能够对bios进行程序升级,从而在芯片中置入新的引导程序。这就是所谓的“闪写bios”。

起初的微机都是朝着廉价低档方向设计,其组件的成本也很低,系统内存也一直使用廉价(因此速度也慢)的dram。在pc出现时,dram的速度足够处理8086/8088
4.77mhz的总线速度,甚至在较快的80286处理器(总线速度可达12mhz,或80ns)上也是如此。

随着80386的出现,时钟速度可以达到20mhz、25mhz、甚至33mhz时,当时现有的dram就不能满足速度的要求。

为了消除处理器和主存速度之间的不一致,设计人员开始在主板上使用少量的sram内存,它们运行在系统总线速度下,用来保存最近使用过的数据。尽管sram的速度要比dram快很多,但是没过多久处理器的速度就再次超过了主板缓存的速度。在80486出现时,其芯片内部已经置入了8k的sram缓存,因为它运行在cpu速度下,因此被称作第一层(l1)缓存,而主板上的缓存则被称作l2。今天高性能的系统仍在沿用这种“内存层次结构”。

内存方面值得关注的问题

所有的dram的基本内核都相同,因此内部速度也相同,而等待时间也都相对比较大。在过去几年中,人们设计出了许多方案来优化或消除这些局限,然而结果往往是某个方面得到了改善,而另外某个方面却不如以前。由于sram的成本相对较高,行业的竞争相当激烈,因此dram仍然是大容量系统内存唯一可行的选择,包括在图形子系统中常常也是如此。sram内存通常仅用作缓存:外部缓存(位于主板上)或者内部缓存(内置到处理器或dram芯片中很少量的一部分)。

处理器主频的发展速度是相当惊人的,因此内存设计人员不得不在不显著提高其成本的前提下大力提高dram的速度。如果处理器需要一个以上的时钟周期来执行一条指令,而内存子系统可以以慢两到三倍的速度运行,那么内存还能够和cpu速度相协调。随着处理器性能越来越优良,已经可以在一个时钟周期内执行一条甚至多条指令。不幸的是,虽然处理器目前的速度可以达到500mhz,但是主存的速度却局限于100mhz(在某些情况下可能会达到133mhz)。这时内存和处理器之间的速度就存在失调现象。造成这种失调的主要原因是,主存通常使用dram,这种类型的内存本身就太慢了。

人们提出了许多设计sram和dram的方法并付诸实施。每种方法都希望能够着解决一定情况下的速度问题。然而不幸的是,我们还没有找到一种“理想”的内存体系结构来解决所有的问题。因为任何人都没有能够做到显著的提高dram的速度而不用显著的提高其成本。

目前的发展方向

处理器的速度仍在飞速的增长。大约在2000年主流处理器的速度将达到1ghz。现在正在使用的内存很快就会显得太慢,当然很快也会出现新的设计方案。在过去的一些年中,人们提出了许多种设计方案,但是由于营销和公司政策方面的原因,它们或被舍弃,或局限于很小的应用范围。

sram和dram内存经历了一个逐步演变的过程,从单芯片、异步、单排结构发展到多芯片、同步的多排结构,同时还采用了更多的先进技术,例如流水线操作、脉冲模式访问以及数据预取。此外还专门为图形、通信以及其他应用设计了专用的dram。有一点似乎是确定的——处理器和内存都将渐渐变得越来越廉价,生命周期也会相对变短许多。最终我们可能会看到这样一个局面:不仅l2缓存被嵌入到了芯片中,整个系统ram也被嵌入了进来。到那时由于dram可以运行在,或者接近于,处理器速度下,因此没有必要再使用sram缓存。内存的升级也就是处理器的升级,然而总价格仍然维持在一个相对较低的水平上。

就是指内存储器啊!它分为RAM ROM 啊!

物理内存