先打预防针我没看过windows的这个技术文件
以下纯粹依Linux/Unix上的实作经验推测
按照文章叙述有点类似RDMA的原理
以往读档案都是
应用程式呼叫file operation API进入system call等待
此时DMA开始搬运档案到内存
搬运完后触发interrupt 给CPU
CPU会暂停现在的动作处理并告诉刚刚在等待中的应用程式档案搬好了
此时档案内容会被存在应用程式事先宣告好的buffer中
如果使用类似RDMA的做法
应用程式在要读取档案时会先建立一个事件通道
这时候DMA会开始搬资料
搬完后会通知刚刚的事件通道告诉应用程式动作完成了
应用程式再到对应事先预留的指定memory pool位置读取资料
上面几乎每一个步骤使用bypass的方式都会让效能提升
如果读取档案有100次
那传统的方法就会慢100次
※ 引述《hn9480412 (ilinker)》之铭言:
: https://devblogs.microsoft.com/directx/directstorage-is-coming-to-pc/
: 前几天NV针对30系列提出一项技术,可以直接让GPU与SSD直接沟通,进而减少游戏读取
时
: 间。而这项功能其实是指微软的新API DirectStorage
: 微软表示为来Windows 10将会使用DirectStorage API。使用的是类似NVMe的技术,
: 透过这样的技术来减少游戏读取时间进而提升流畅的体验
: 但是这项技术必须游戏、系统和硬件都必须支援,同时硬件也必须有支援NVMe。而且SS
D
: 也必须支援NVMe协定。不过就算没有这些设备使用DirectStorage API的游戏也可以正
常
: 运行
: 原本这项技术是运用在Xbox Series X上,现在微软打算将这技术下放至Windows上
: (PS5也是使用类似的技术)
: 不过目前微软还在与合作伙伴制定相关规范,此API最快也要在明年才有机会出现