CHERI-D Reincarnate:通过分配重生实现高效多核CHERI时间内存安全(草稿版)
CHERI-D Reincarnate: efficient multicore CHERI temporal memory safety through allocation reincarnation (draft version)
- University of Cambridge(剑桥大学)
机构由 AI 辅助整理,请以论文原文为准。
AI总结:
提出CHERI-D Reincarnate架构扩展,通过分配重生动态分配新ID而非隔离内存,实现高效多核时间内存安全,显著降低扫描频率和隔离开销。
AI中文摘要:
我们提出CHERI-D Reincarnate(Reinc),一种对CHERI的架构扩展,用于实现可扩展且高效的时间内存安全。先前的工作CHERI-D在固定位置存储有限宽度的生成ID,当对象的ID耗尽时,需要将其隔离。Reinc进一步提供了释放后使用缓解,同时通过分配重生允许对象立即重用已释放的内存:当分配槽的当前ID耗尽时,Reinc不是将该槽隔离,而是动态地为其分配新ID。耗尽的ID被隔离并在之后回收,而底层内存仍然可用于立即重用。通过隔离ID而非内存,Reinc在常见情况下实现了内存的持续重用,显著降低了内存扫描频率和隔离内存开销。Reinc进一步引入了连贯的ID缓存,同时保持完全去中心化的ID组织。时间元数据与其保护的内存保持同位,在避免集中式元数据结构的同时保留了局部性。为了支持多核执行,Reinc使用轻量级反向映射和基于过滤器的机制,将物理一致性事件连接到虚拟寻址的ObjID缓冲区。我们将Reinc实现为跨越CHERI-Toooba(超标量FPGA软核)、QEMU、LLVM/Clang和CheriBSD的硬件-软件协同设计。在我们评估的工作负载中,Reinc显著降低了内存扫描频率和内存隔离,同时引入了较低的性能和硬件开销。
英文摘要:
We propose CHERI-D Reincarnate (Reinc), an architectural extension to CHERI for scalable and efficient temporal memory safety. Prior work CHERI-D has a finite-width generation ID stored at a fixed location, requiring an object to be quarantined when its ID is exhausted. Reinc further provides use-after-free mitigation while permitting immediate freed memory reuse for objects through allocation reincarnation: rather than quarantining an allocation slot upon ID exhaustion, Reinc dynamically assigns a new ID to that slot when its current ID is exhausted. Exhausted IDs are quarantined and later reclaimed, while the underlying memory remains available for immediate reuse. By quarantining IDs rather than memory, Reinc enables continuous reuse of memory in the common case, substantially reducing both memory-sweep frequency and quarantine memory overhead. Reinc further introduces coherent ID caching while retaining a fully decentralized ID organization. Temporal metadata remains colocated with the memory it protects, preserving locality while avoiding centralized metadata structures. To support multicore execution, Reinc connects physical coherence events to the virtually addressed ObjID buffer using lightweight reverse-map and filter-based mechanisms. We implement Reinc as a hardware-software co-design spanning CHERI-Toooba (superscalar FPGA softcore), QEMU, LLVM/Clang and CheriBSD. Across our evaluated workloads, Reinc substantially reduces memory-sweep frequency and memory quarantine while incurring low performance and hardware overhead.