来源 |
编程技术宇宙
作者 |
轩辕之风O
我是内存条
我是一个内存条,刚刚从深圳的一个工厂里被生产出来,跟我一起的还有一批小伙伴,长得跟我一模一样,下了流水线后我们就被扔进了一处黑暗的角落。
“这是哪里啊,黑漆漆的。”一个小伙伴说道。
“这里是内存条仓库。”黑暗中有人在说话,声音中略有一丝沧桑,像是一个老头。
“谁?谁在那里?”
“别怕,我也是一个内存条,比你们早几个月被生产出来。”那老头说道。
“啥,你都被关在这里几个月了,完了完了。”小伙伴急了。
“不是的,我出去过,后来被发现是残次品,又被回收了关在了这里,你们跟我不一样,刚刚生产出来,应该很快就能出去,被安装到电脑主板上,实现你们的价值。”
“电脑主板?那是什么地方?”我好奇地问道。
那声音继续说道:“那是计算机最核心的地方,是一个巨大的电路板,上面住着CPU、硬盘、网卡、显卡、声卡,当然,还有我们内存条。计算机必须有我们才能正常运转,因为CPU工作需要的指令和数据都存储在咱们内存中。”
刚说完,我们身边亮起了灯光,这时,我们才看清我和小伙伴们的样子。
“我们身上那几块黑乎乎的东西是什么,真是有点拉低颜值啊!”
“你可别小瞧了它们,那可是咱们内存条的核心存储芯片,我们的数据都是放在这里面的,它们一个就是1GB,总共16个,就是16GB的空间呢!”那老头又开口说道。
奇怪的是,我们还是看不到他。
“你在哪里,怎么亮了灯还是看不到你呢?”一个小伙伴问道。
“我在隔壁的柜子里,像我这种残次品估计是没机会出去了。”
“你刚才说16个存储芯片,这不是明明只有8个吗?”
“你转过身去看看,背上还有8个呢。”
我们几个纷纷转身看去,果然如此。
老头继续说到:“除了存储芯片,还有
PCB电路板
和
金手指
,这三部分共同构成了我们的身体。”
“金手指是什么东西?”
“就是脚下那一排土豪金颜色的部分了,那是我们连接主板插槽的接触点,一面有120个,两面就是240个,因为每个点看起来像手指,人们就把这叫做金手指了。”
“那为什么中间留了一个缺口呢?”
“我们的每个金手指都有不同的功能,正反面可不能弄混,为了防止愚蠢的人类把我们插错,所以中间留了一个缺口,要是弄反了可是插不进去的。通过主板上的电路,我们就能接通到计算机的总线系统上,可以和CPU对话了。”
原来如此,我们都若有所思地点点头。
数据存储
接下来,这位老头还讲了很多我们内存条先辈的故事。
原来,我们还有一个更专业的名字:
RAM,随机存储器
,因为我们可以随意读写任意位置的数据。
老头还说,现在计算机基本上都是二进制的,不管什么样的数据或者代码指令,在我们这里都是一串串的0和1的比特位。
为了存储这一个比特位,我们的先辈们可是费了不少功夫!
曾经有两种电路方案摆在先辈们的面前,第一种是静态方案:
是不是很复杂?我也觉得。这种电路方案的好处是可以稳定地维持在0和1之间的某个状态,所以叫静态
SRAM
。
但是需要用到的晶体管实在太多了,一个比特位就要用好几个晶体管,16GB那得用多少才够啊,成本太高了,造出来我们的个头肯定会特别大,主板上空间这么局促,哪里装得下啊。
先辈们没有选择这种方案,用了第二种方案:
看,是不是简单了许多?通过一个电容器的电荷就能决定这是一个1还是一个0。
在我们身上的每一个存储芯片里,这样的比特位存储单元都有很多:
再缩小一下看,它们密密麻麻地排列着,每一个位都由行地址和列地址来确定的:
图源知乎@老狼
但这种电路方案有个毛病,就是里面的那个电容会“漏电”,电容中的电荷会慢慢消失,电压也就变小了,这样就没办法区分这是表示的1还是0了,为了解决这个问题,必须得周期性地去给它们充电,才能维持数据的稳定,这叫动态数据刷新,所以这种方案叫动态
DRAM
。
内存编址
老头正给我们讲得兴起,突然有人把我们打包起来,所有的小伙伴都被分开了。
又经过了好长一段日子的黑暗和孤独,那一天突然咔嚓一声,我的金手指和卡槽连接了起来,难道这就是传说中的主板吗?
“你就是内存啊,我们可等你好久了,你来了我们总算可以开始工作了!”旁边一个家伙跟我打起了招呼。
“你哪位啊?”
“你好,我是CPU里的阿Q,你看就在你隔壁,咱们以后少不了要天天打交道了。对了,快告诉我,你有多大存储空间?”
我检查了一下,回答道:“我有16GB空间,也就是137438953472个比特位!”
“哇,这么多!太给力了!不过我该怎么使用你来存储数据呢?”
“这简单,你要访问哪个bit位,告诉我芯片号、bank号、行地址、列地址,我把数据取给你不就行了吗!”
“怎么这么麻烦?你这不讲武德啊,这些内部细节应该封装一下啊,提供给我一个简单接口就是了。”阿Q吐槽道。
“两位大哥,看这里。”这时,主板上不远处又有一个家伙开口了。
“你是谁?”我和阿Q异口同声地问道。
这家伙眯着眼说道:“我是
内存控制器
,专门为二位服务的。”