我是一个内存条,刚刚从深圳的一个工厂里被生产出来,跟我一块儿的还有一批小伙伴,长得跟我如出一辙,下了流水线后咱们就被扔进了一处黑暗的角落。编程
“这是哪里啊,黑漆漆的”,一个小伙伴说到。浏览器
“这里是内存条仓库”,黑暗中有人在说话,声音中略有一丝沧桑,像是一个老头。缓存
“谁?谁在那里”编程语言
“别怕,我也是一个内存条,比大家早几个月被生产出来”,那老头说到。编辑器
“啥,你都被关在这里几个月了,完了完了”,小伙伴急了。blog
“不是的,我出去过,后来被发现是残次品,又被回收了关在了这里,大家跟我不同,刚刚生产出来,应该很快就能出去,被安装到电脑主板上,实现大家的价值。”接口
“电脑主板?那是什么地方?”,我好奇的问到。内存
那声音继续说到:“那是计算机最核心的地方,是一个巨大的电路板,上面住着CPU、硬盘、网卡、显卡、声卡,固然,还有咱们内存条。计算机必须有咱们才能正常运转,由于CPU工做须要的指令和数据都存储在我们内存中”get
刚说完,咱们身边亮起了灯光,这时,咱们才看清我和小伙伴们的样子。it
“咱们身上那几块黑乎乎的东西是什么,真是有点拉低颜值啊!”
“你可别小瞧了它们,那但是我们内存条的核心存储芯片,咱们的数据都是放在这里面的,它们一个就是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异口同声的问到。
这家伙眯着眼说到:“我是内存控制器,专门为二位服务的。”
“啥,你要控制我?”
“您别误会,我就是一个中介,为两位提供服务而已”
见我俩一头雾水,这家伙接着说到:“内存老哥,你的存储数据电路单元中的电容是否是常常漏电,须要定时刷新?并且按照规定,最多64ms就得要刷新一次?你放心,这数据刷新的工做之后就交给我了”
“你怎么知道的?”
这家伙笑了笑继续说道:“这算啥,我还知道你的数据存储在你身上的每个存储芯片之上,每个芯片里面又分了不少个分片,每一个分片里面又有不少的比特位存储格子。想要访问哪一个比特位,就得指定对应的芯片、对应的分片、对应格子的行地址和列地址,我说的对不对?”
我点了点头,没想到这家伙竟然对我了解的这么清楚。
“阿Q啊,大家CPU这边想要访问数据,确定不想这么麻烦吧?”,这家伙笑着问到。
“那固然!”
“因此啊,我就派上用场了啊,用比特位做为读写单元太麻烦了,我们按8个比特位为一组,叫作一个字节,大家CPU这边统一给内存兄弟的存储空间编址,之后要读取数据的时候呢,就把地址交给我,我再告诉内存兄弟具体是读写哪一个芯片哪一个分片的哪些位置,怎么样,是否是为大家解决了大麻烦?”,说完,内存控制器露出了得意的笑容。
“听上去不错啊,我们开始吧!”
“如今还不行,还没通电呢!”
不过咱们没等过久,就听见一阵嘶嘶声响,来电了!
随后咱们就开始配合工做起来,初次见面,合做的就很是顺利,CPU对我全部的存储位按照字节为单位进行了统一编址,之后只须要一个地址,内存控制器就转换成具体的数据存储位置交给我,我再完成读写操做就能够了。
后来,看到内存控制器表现很是不错,在阿Q的牵线下,还把他集成到了CPU内部,如今成为了他们的一份子了!
我和CPU一直相处的不错,可没过多久,他们竟然开始嫌我慢了,要说慢,硬盘那家伙可比我慢多了!
他们发现拿我没有办法,因而在CPU内部又搞了个缓存出来,不用每次都问我要数据,却是给我省了很多工做量。
个人日子就这样过着,本觉得就要在这主板上干到退休了,没想到那一天,一个浏览器程序告诉我说:“内存大哥你完了,刚刚我看到主人在网上买新的DDR4内存条,你要被淘汰了”
难道我也要被打入小黑屋了吗?