人类历史上第一张实拍黑洞照片出炉了,实际上,这幅照片也是利用有限的数据进过计算推演出来的,因为要实拍下这个黑洞全貌,需要大于地球直径口径的望远镜。
然而你知道么,计算机的内存中竟然也存在“黑洞”!
!
宇宙是个大空间,在这个空间中弥漫着大量的火花——恒星,如果把宇宙演化的过程加快,这些恒星就像转瞬即逝的烟花一样。
以及行星和星云等各种天体。
而CPU的可寻址范围也是个大空间,被称为物理地址空间,比如64bit物理地址空间中最大可包含2的64次方个地址,每个地址上可以存放一个字节。
然而,如同宇宙一样,CPU的这64bit物理地址空间其实蛮大的,而也如同宇宙一样,在这个物理空间中,分布着各种存储器,包括:
-
SDRAM。
也就是俗称的主存。
这里存放着操作系统和应用程序代码和数据。
-
BIOS ROM。
包括主板BIOS ROM和外部设备比如各类PCIE卡上的BIOS ROM。
这里存放着用于早期启动的原始程序和数据。
-
设备寄存器/存储器。
这里存储的是用于与设备之间交互的各种控制信息或者数据缓冲。
上述三种存储器在实际计算机中的容量都是有限的,比如单台计算机配备的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给出了详细的阐释,在尾声部分,也思考了整个宇宙模型与计算机模型之间的联系和区别,对事物本质、过程的思考丝丝入扣,令人拍案惊奇!
扫码购书!
大话计算机
大话存储