(四)内存

2016-05-20  本文已影响51人  墨白找

计算机是处理数据的设备,而程序则表现处理顺序和数据结构。在计算机内部,数据被存储在内存和磁盘中,因此程序必须要能够自由使用内存和磁盘。
因此认识内存很重要。
几种不同类别的内存:ROM,DRAM,SRAM


内存的物理机制

内存IC

物理上,内存实际上是一种名叫内存IC的电子元件。内存IC含有大量的引脚。引脚可以被配置为表示不同的信号,包括控制信号、数据信号、地址信号和电源等。


下面用一个虚拟内存IC示例。


能指定多少个地址?
A0~A9为地址信号引脚,这里有10个,因此可以指定2^10=1024个不同的地址。
一次可以输入输出多少数据?
D0~D7为数据信号引脚,这里有8个,因此可以指定长度为8bit的数据,即1字节的数据。
一共可以存储多少数据?
1024x1字节=1024字节=1KB的数据。
RD、WR能控制什么?
RD,即read,该引脚信号为1时,该内存IC为“读”模式,可以输出数据。WR,即write,该引脚信号为1是,内存IC为“写”模式,可以输入数据。RD和WR都为0时,既不能读,也不能写。

内存的逻辑模型


数据类型:代表在内存中存储的是哪种类型的数据。

指针

指针也是一种变量,存储数据在内存中的地址。在32位系统中,指针变量的长度也是32位。


数组

数组:多个同样类型的数据在内存中连续存放的数据结构。
通过 首地址索引 来找到数组中的某一项。对比CPU中的基址寄存器和变址寄存器的机制,可以发现两者是一致的。

栈、队列和环形缓冲区

栈和队列:不通过指定地址和索引即可访问数组的元素。

栈:LIFO (Last In First Out),先进后出。
队列:FIFO (First In First Out),先进先出。

这两种数据结构已经基本了解了,就不记了。。。。。。

环形缓冲区

队列的一种常用的使用方式。


链表和二叉查找树

同样,它们都不用通过指定地址和索引即可访问数组元素。
一般地,
链表:对数组元素的增、删、改操作更为高效。
二叉查找树:对数组元素的索引更为高效。

链表已经基本熟悉了,就不记了。。。。

印象:数组是使用内存的基础。

上一篇 下一篇

猜你喜欢

热点阅读