结构
那么多格子,怎么找到一个?
上次说,把记忆格子攒几十亿个,就成了内存。可在那么多格子里,我想要的就那么一个格子,怎么一下子就找到?
01
格子太多就找不着
记忆格子几十亿个。
量大得吓人。
可这儿就出问题了。
在这么多格子里,
“刚才存的那个值”,
在哪个格子里,
怎么再找出来?
没名字,长得还都一样。
全长得一个样。怎么把一个格子挑出来?
想象图书馆里几万本书,
没编号,
乱七八糟插着。
想找的书,
几乎找不着。
内存也是一样的问题。
得有个办法。
02
给每个格子都编上号
办法跟储物柜一样。
想想游泳池的储物柜。
长得一样的储物柜,
每个都贴着号。
0号、1号、2号。
内存也这样。
给每个格子,
按顺序编上号。
上面是格子号(地址),下面是格子里装的值。
这个号叫地址。
就像每家都有地址,
邮件才能准准送到,
每个格子有地址,
想要的格子就能准准,
找到。
03
一叫地址,就去那个格子
有了地址,
找起来一瞬间。
说“把3号格子的值拿来”,
内存就直奔3号,
把里头的值取出来。
就算几十亿个格子,
只要知道号,
一下子就到。
输入地址试试。
输入地址,按读取
输入地址,就去那个格子。
凭一个号,
直接去想要的格子。
这就是内存快的诀窍。
不从头一个一个数,
用地址直接点。
04
往想要的格子里放值
不光能取。
说“往5号格子放这个值”,
值就存进那个格子。
读是凭地址取,
写是凭地址放。
这两样,
就是内存干的全部活。
你亲手放放看。
输入地址和值,按写入
定好地址,把值放进去。
凭地址读,凭地址写。
简单吧?
可这简单的两个动作,
是所有程序的根基。
变量也好,照片也好,啥都好,
到头来都这么,
凭地址进出。
05
CPU凭地址来求
现在看大图。
会算的CPU,
要值的时候,
凭地址向内存求。
“给我3号的值,
这个结果放7号。”
CPU和内存,
凭地址你来我往,
把活干下去。
CPU计算
给我3号→←值给你
内存(编了号的格子)
凭地址你来我往。
这下,电脑的身体,
那个基础,转了一整圈。
从0和1开始,
会算、会记,
到凭地址找到。
从下次起,
我们看看这些部件怎么,
听真正的命令。
一句话总结给长得一样的好多格子编上号,那就是地址。像储物柜一样。凭地址读、凭地址写这简单的两个动作,是所有程序的根基。
← 结构