第三课:内存
内存的物理结构
- ROM:只读内存;
- RAM:能够读取和写入( DRAM:经常更新);SRAM不经常更新 ,里面的数据断电即消)
内存引脚:
- 电源引脚:5V ~ 0V;
- 数据引脚:决定一次性读取、写入多少个数据;
- 地址引脚:代表了内存的寻址能力;
- 控制引脚:W 引脚(write),R 引脚(read)。
例:
一个芯片有D0到D7,8个数据引脚,能接收8个数据信号,8bit= 1byte;
A0到A9,0000000000~1111111111,10个地址引脚 ,表示1024个地址;
当前芯片的容量是 1024×1byte =1KB,能存储1kb的数据
内存的寻址过程
首先给芯片两边接入5V、0V的电压,CPU将地址写入地址引脚,再将数据写入数据引脚,将控制引脚w通电,写入数据。
内存容量=寻址能力X写入大小
内存的逻辑结构和数据结构
把内存想象为一间间存储数据的楼房,通过地址引脚,每个楼房都有楼层和门牌号,每层都有编号,就是地址;每个楼层的大小由数据引脚决定。
char=1byte;一层可以放下
int=4byte;把四层打包,取首楼层地址,楼层的编号还在
类数组方式
数组(访问数据最快):访问数据最快的方式是累加,连续读取,即数组方式(记录首地址(基址寄存器),不断的变换偏移(变址寄存器)值,以达到快速读取的目的)。
缺点:删除数据很慢,因为要把上面的数据往上移。
栈(用于数据记录):取一块大小固定的内存空间,从下向上记录,最先进栈的最后出来。
应用:记录查询、回溯。
原则:FILO(first in,last out)先进后出.
两种操作方式:入栈、出栈。
队列:按照进去的顺序,挨个读出来。
类数组的结构在执行删除和插入操作的时候,会非常慢
链表(方便删除和插入):在内容的下一个空间插入指针(内存地址)
程序在内存中执行
高级编程语言中的数据类型表示的是所占内存空间的大小;
32位环境中,地址总线长度32bit,即4byte;指针的值表示内存地址,所以指针的长度32bit,4byte。