虚拟内存在现代硬件中得到了很好的支持,但应用程序级别的内存分配仍然完全由软件实现,不管是类似C和C ++的手动堆内存管理,还是VM级垃圾收集。
超越经典的手动内存管理与垃圾回收辩论,为什么没有基于硬件的原语可以帮助在用户空间中构建高效的内存管理和/或垃圾收集方案(可能由操作系统公开或内置,然后各种VM)。
硬件用于加速图形操作,卸载网络堆栈的各个部分,加密算法以及音频/视频编解码器经常在硬件中实现,为什么不能构建用于更高级别内存管理的构建块?它似乎是如此普遍,但我不知道任何硬件辅助实现。
考虑到我的硬件知识缺乏,这对我来说有点模糊不清,但我很感兴趣听听
- 是否存在这样的事物(至少处于研究阶段),或者
- 相对传统的内存管理,它是否会提供任何好处,或者
- 为什么在硬件中构建这样的东西不可行?