计算机|内存知多少

​1、硬件层面

 

内存就是名为内存IC的电子元件。(IC,集成电路,内存也是一种集成电路)

 

计算机|内存知多少_第1张图片

内存IC的引脚配置

 

那这个内存IC能存多少数据?

 

数据信号引脚有D0~D7一共8个,表示一次输入输出8位数据(一个字节)。地址信号引脚有A0~A9一共10个,可以指定1024个地址。1024B=1KB,所以此内存IC能存1KB容量。

 

现在内存至少有4G,4GB÷1KB=4M。如果你电脑内有400万个内存IC的话~一个房间能否装下都是问题。一般内存IC会用更多的地址引脚增加数据存储。

 

2、内存的工作

 

写入:给VCC接入+5V,给GND接入0V,用地址信号A0~A9指明地址,用数据信号D0~D7存储数据,把WR信号设为1,就可以进行写入操作了。

 

读出:只需通过地址信号A0~A9指明地址,RD信号设为1就可以进行读出操作。

 

3、内存的逻辑模型

 

可以把内存模型看成楼房,一层存一字节。

 

计算机|内存知多少_第2张图片

 

这里从下到上越来越小,也有越来越大的情况,这涉及到内存的读取顺序问题,是历史上著名的大端小端之争,以后看ICS的时候再细说。

 

计算机|内存知多少_第3张图片

 

4、「简单」的指针

 

到这里就比较好理解学C时头疼的指针了。指针是一种变量,它表示的不是数据的值,而是存储数据「的」内存「的」地址。Window计算机程序通常是32位内存地址,这种情况,指针变量的长度也是32位即4字节。


同理,64位操作系统内存地址是8字节,但是如果想高层封装一下,指针不一定非得那么多位,然后在系统里其实更多的谈到地址的概念,那个时候就是系统位数了

——热心的信科大佬

 

5、常见的数据结构与内存的关系

 

数组是内存最直接的用法。数组是多个同样数据类型的数据在内存中连续排列的格式。作为数组元素的各个数据通过连续的编号隔开,编号就是索引。指定索引后,可以进行指定地址的内存读写。索引和内存地址变换工作由编译器完成(卜众耀)。

 

栈和队列都可以不通过指定地址和索引来对数组的元素进行读写。如果在内存中预留栈和队列的空间,确定写入读出顺序,就不需要指定地址和索引。

 

链表则更简单,对各个元素操作时,除了数据的值,还附带下一个元素索引即可。

 

的结构则是在链表基础上,附带多个元素索引。

 


关注有更多干货 ↓ 码文不易,给大家表演debug了

计算机|内存知多少_第4张图片

 

你可能感兴趣的:(计算机入门)