PCIE硬盘能否直接被CPU读取?

发布于 2020-03-05  982 次阅读


本文来自于一次与计组老师的互杠(不是
起始于老师反驳我说的,走PCIe通道的固态硬盘可以直接被CPU所读取。
讲道理,我在学计组前也是半桶水,只知其一不知其二,趁着这个机会正好全网搜索一下资料,弥补弥补自己欠缺的知识,顺便端正学习态度。


那就来总结一下我在搜索中发现的内容吧

1.PCIE是有区别的

有直通CPU的PCIe,也有需要走PCH芯片组的PCIe

Z390系列主板Block结构图

2.PCIE直通的并不是CPU内核

从封装上来说,是直连。硬盘控制器通过PCIe总线直接连接到了CPU封装上。从拓扑上来说,不是。无论任何情况下CPU核心都无法直接访问存储设备上的数据。

PCIE的拓扑图
PCIE硬盘能否直接被CPU读取?
PCIE硬盘能否直接被CPU读取?
冯诺依曼结构

对于在冯诺依曼结构里规定的,CPU只能从内存里访问数据,而PCIE口的SSD,无疑需要通过PCIE控制器,先将数据写入内存,CPU再从内存里读取(当然,过程细分下去会涉及到多个寄存器)
但随着科技发展,现在广义上的CPU内部已经封装了众多元器件,其中包括PCIE控制器、北桥和一系列寄存器,那么从这种角度上说,CPU(整个组合)直接读写PCIE的数据,好像也没那么扯了?

最高的一级是 CPU内的寄存器,跟 CPU的速度一样快。然后是多级Cache(中文:高速缓存),每一级速度略慢。接着是前面提到的内存。以上统称为一级存储,通常断电后数据丢失。
再往下就是硬盘。也就是二级存储,我们的数据大都放在这里,断电也不会丢。SSD或者Flash也在这一级。
—— 来源 https://www.zhihu.com/question/20370250/answer/14955751

再看一个有意思的东西

Intel 傲腾

上图这个插在M.2插槽上的东东,英特尔称它为“内存”
M.2插槽给的总线要么是SATA,要么是PCIE,前者显然不太可能,那如果是后者,为何走“内存”是走PCIE的呢?
其实吧,这也是厂商玩的小阴谋,此物件名为“内存”,实为“外存”。


傲腾之所以被称为内存,是因为它利用新的内存介质,将信息存储到与处理器更近的位置,这个方面和系统DRAM内存的功能比较相似 。
缺点呢,就是只能搭配自家平台。
总而言之,傲腾内存可以和普通内存串联成一个虚拟驱动器,然后使用智能软件例如英特尔快速存储技术,来提升电脑的性能和响应速度 。

PCIE硬盘能否直接被CPU读取?
组RAID后接入PCIE3.0X16槽
(转,都可以转)

最后来做个小总结吧
首先,CPU确实是无法直接访问PCIE硬盘的,数据仍然需要通过中间的各种存储介质来走完硬盘到CPU的漫漫长路
但得益于存储器的分层结构(主要表现在 Cache-主存 与 主存-辅存 这两级结构中),利用合理先进的缓存技术能大幅度提高数据的存取速度。
内存是由CPU直接寻址进行操作的,而所有外存都属于I/O设备的一环。
拓宽来讲,即使独立显卡上有“显存”,但CPU却无法直接通过PCIE总线访问显存中的内容,根本原因就在于显卡作为挂载在PCIE总线上的外部设备,并没有能力直接与CPU进行交互,CPU只能通过控制器间接地向对应设备发送指令,然后等待设备的响应。

此图像的alt属性为空;文件名为image-7.png

还是回到这张图
主板芯片组厂商说明图上都直接把线接到了CPU上,这让普通消费者咋整

学计算机组成原理果真可以涨知识