位于计算机内存中的黑洞

人类历史上第一张实拍黑洞照片出炉了,实际上,这幅照片也是利用有限的数据进过计算推演出来的,因为要实拍下这个黑洞全貌,需要大于地球直径口径的望远镜。

然而你知道么,计算机的内存中竟然也存在“黑洞”!!

宇宙是个大空间,在这个空间中弥漫着大量的火花——恒星,如果把宇宙演化的过程加快,这些恒星就像转瞬即逝的烟花一样。以及行星和星云等各种天体。

而CPU的可寻址范围也是个大空间,被称为物理地址空间,比如64bit物理地址空间中最大可包含2的64次方个地址,每个地址上可以存放一个字节。然而,如同宇宙一样,CPU的这64bit物理地址空间其实蛮大的,而也如同宇宙一样,在这个物理空间中,分布着各种存储器,包括:

  1. SDRAM。也就是俗称的主存。这里存放着操作系统和应用程序代码和数据。
  2. BIOS ROM。包括主板BIOS ROM和外部设备比如各类PCIE卡上的BIOS ROM。这里存放着用于早期启动的原始程序和数据。
  3. 设备寄存器/存储器。这里存储的是用于与设备之间交互的各种控制信息或者数据缓冲。

上述三种存储器在实际计算机中的容量都是有限的,比如单台计算机配备的RAM通常从几GB到几TB之间,而ROM也就是数MB空间,外部设备中的存储器空间通常在数KB到数GB之间。这些存储器空间被映射在CPU的物理地址空间中,至于应设在哪段区域,则由BIOS和操作系统共同管理和决定。

也就是说,整个CPU物理地址空间中很大一部分其实是真空的,没有存储任何内容,而程序也不会发出针对这些地址的访问,否则会被认为是非法访问而。目前物理和天文学家认为,宇宙中充满了暗能量,也就是那些没有被物质填充的所谓“真空”中,其实是有能量形式存在的,这就像应用程序认为整个物理存储器都是它自己的,一马平川,而实际上SDRAM中还存在操作系统内核程序和数据,以及其他应用程序的代码和数据,而这些它看不到的东西,就是计算机空间中的暗物质/暗能量。

那么,CPU物理地址空间中是否存在类似宇宙中黑洞的结构呢?答案是肯定的。在《大话计算机》一书第862页上,该书作者冬瓜哥进行了详细的阐释:

原来,主板BIOS ROM和Video BIOS ROM都可以被shadow到SDRAM中从而加速CPU执行ROM中的代码,那么这两块ROM被映射在物理空间中的区域就成了“黑洞”。在早期32bit CPU时代,没开启PAE的话,CPU最大可访问32bit物理地址空间,也就是那时的宇宙只有4GB大小,而那时候已经有4GB的RAM了,一个RAM就能把整个宇宙占满,如果宇宙中还存在这些黑洞的话,那么就不得不砍掉一些RAM容量,少映射一些到空间中,那就很不划算了。

冬瓜哥在其著作《大话计算机》中,对hole给出了详细的阐释,在尾声部分,也思考了整个宇宙模型与计算机模型之间的联系和区别,对事物本质、过程的思考丝丝入扣,令人拍案惊奇!

原文发布于微信公众号 - 大话存储(dahuacunchu)

原文发表时间:2019-04-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券