计算机的内存存的是什么?是电信号还是别的东西? 存取内存的时候又是怎么...

发布网友

我来回答

3个回答

热心网友

当前使用的DRAM本质上是电容阵列,由一个晶体管作为开关,一个电容用于存储电子,用高电平代表1,低电平代表0,也就是电容充电和放电的情况。读取只要判断当前电容的状态就可以了,具体的电路设计就比较复杂,超出了在下的知识范畴,但大致原理如此。DRAM需要实时刷新,因为电容存在漏电的现象,每一次读取都要重新充入电子,保证之前为充满状态的电容不会因为漏电变成放空状态。
还有一种内存用在CPU内部,叫SRAM,它不使用电容,而仅仅使用晶体管,利用开关的通断来存储信息,每一位需要多个晶体管,因此成本更高,但不存在漏电问题,只要维持供电就能够维持开关的状态不变,耗电非常低,同时晶体管开关状态的变更速度可以做到很快,远胜于电容充放电的速度,因此被用作高速缓存。
上述两种是当前使用的主要内存类型,其内部存储的具体内容也就是这样,实际上出现过的内存有很多很多种,但最终都是提供一个可以分辨的电信号,不论是开关的通断,电容的满空,磁场的有无,荧光的亮灭,最终都要被识别为电流的有无或者电压的高低。

一个地址存储的是一个位(bit),而用于存储地址的空间,依内存总量而定,需要为每一位提供一个的编址,才能正确访问,如同门牌号码,确实是发出一个字长的信号返回一个位,内存总量越大,这个字长就越大,一般来说发送一个位和发送多个位的时间是一样的,因为总线带宽也是多位的,所以时间不是问题,问题是空间。
但在使用中,并不会存储每一位内存的地址,而只存储需要使用的地址,比如申请了一个变量,需要保存的就是这个变量的起始地址和变量的长度,访问的时候去寻找起点和连续访问多少位,比如一个字符至少是8位,一个整型数可以是32位,不需要存储这些位的每一个位地址的,从起始点连续访问过去就可以了。你或许也可以这样理解,内存相当于一个城市,每一户都有门牌号码(内存中,每一个单元位置是以电路的形式固定了的,比如1111111,这个数字表示它是第256位,电路会通向这个内存单元),当你需要访问某些户的时候,你才会去记那一个号码,你手中并没有一个门牌号的清单。实际上程序中地址也是一个变量,用被称为指针的变量来存储(指针长度取决于内存的量以及系统架构),如果你试图保存每一个可访问内存的地址,你很快就会耗光全部的内存,在内存极为有限的计算机上设计程序,减少变量、或者减少变量的长度都是很重要的。追问那一块未被使用的内存是不是就是表示是一块空的电容阵列?

追答既然你说一块,那么说的应该不是一个,那么确实是一块电容阵列,但是它未见得是空的,计算机在使用内存的过程里只有在必须更新其内容的时候才会执行写入操作,当前未使用的内存,很可能是上一轮使用后“废弃”的,这时候它的内部有值,被称为垃圾值,这就是为什么刚刚申请到的变量,不初始化,会有不可预测的数值。当计算机释放一块内存的时候,仅仅是不再保留它的相关信息,而不会去一个个位清零。
不过说电容阵列,指的是DRAM,其它种类的内存不是,其它内存包括但不限于SRAM、磁芯、磁鼓、水银延迟线、选数管、威廉姆斯管(阴极射线管)等,其中有些还是“非挥发性”内存,断电数据不消失,即使死机强行关机后,依然可以从内存中找出死机的原因,比如磁芯。

热心网友

内存是存放电脑里临时文件的,就是在运行的文件。屏幕上的每一个点都要费内存的。
把打开的文件直接放在内存里,要保存就进硬盘了。

热心网友

计算机的内存按地址进行编址,也就是每一个内存地址对应一个内存单元,即一个字节Byte.
地址单元有多长意味着可以寻址的范围,32位地址就相当于可以访问2^32个内存单元,也就是将近4G的内存容量。
内存中存放的信息按照用户来分,可以分为操作系统用户程序和数据,以及一般用户程序和数据。
CPU一般根据被读取指令中的逻辑地址,将该逻辑地址送往地址译码部件,和基址寄存器中的起始地址运算生成绝对地址,绝对地址就是唯一确定的内存单元地址,依据绝对地址就可以到内存中取操作数。 至于说每次访存可以取得多少位的数据,这和内存的存储宽度和并行读取的存储部件数量有关,数量越多每次访存周期中可以读取的数据位数也就越多。就像2车道每次只能通过2辆车,4车道就能翻倍。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com