Sentry: light-weight auxiliary memory access control

Arrvindh Shriraman, S. Dwarkadas
{"title":"Sentry: light-weight auxiliary memory access control","authors":"Arrvindh Shriraman, S. Dwarkadas","doi":"10.1145/1815961.1816016","DOIUrl":null,"url":null,"abstract":"Light-weight, flexible access control, which allows software to regulate reads and writes to any granularity of memory region, can help improve the reliability of today's multi-module multi-programmer applications, as well as the efficiency of software debugging tools. Unfortunately, access control in today's processors is tied to support for virtual memory, making its use both heavy weight and coarse grain. In this paper, we propose Sentry, an auxiliary level of virtual memory tagging that is entirely subordinate to existing virtual memory-based protection mechanisms and can be manipulated at the user level. We implement these tags in a complexity-effective manner using an M-cache (metadata cache) structure that only intervenes on L1 misses, thereby minimizing changes to the processor core. Existing cache coherence states are repurposed to implicitly validate permissions for L1 hits. Sentry achieves its goal of flexible and light-weight access control without disrupting existing inter-application protection, sidestepping the challenges associated with adding a new protection framework to an existing operating system. We illustrate the benefits of our design point using 1) an Apache-based web server that uses the M-cache to enforce protection boundaries among its modules and 2) a watchpoint-based tool to demonstrate low-overhead debugging. Protection is achieved with very few changes to the source code, no changes to the programming model, minimal modifications to the operating system, and with low overhead incurred only when accessing memory regions for which the additional level of access control is enabled.","PeriodicalId":132033,"journal":{"name":"Proceedings of the 37th annual international symposium on Computer architecture","volume":"22 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2010-06-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"14","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 37th annual international symposium on Computer architecture","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1815961.1816016","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 14

Abstract

Light-weight, flexible access control, which allows software to regulate reads and writes to any granularity of memory region, can help improve the reliability of today's multi-module multi-programmer applications, as well as the efficiency of software debugging tools. Unfortunately, access control in today's processors is tied to support for virtual memory, making its use both heavy weight and coarse grain. In this paper, we propose Sentry, an auxiliary level of virtual memory tagging that is entirely subordinate to existing virtual memory-based protection mechanisms and can be manipulated at the user level. We implement these tags in a complexity-effective manner using an M-cache (metadata cache) structure that only intervenes on L1 misses, thereby minimizing changes to the processor core. Existing cache coherence states are repurposed to implicitly validate permissions for L1 hits. Sentry achieves its goal of flexible and light-weight access control without disrupting existing inter-application protection, sidestepping the challenges associated with adding a new protection framework to an existing operating system. We illustrate the benefits of our design point using 1) an Apache-based web server that uses the M-cache to enforce protection boundaries among its modules and 2) a watchpoint-based tool to demonstrate low-overhead debugging. Protection is achieved with very few changes to the source code, no changes to the programming model, minimal modifications to the operating system, and with low overhead incurred only when accessing memory regions for which the additional level of access control is enabled.
哨兵:轻量级辅助存储器访问控制
轻量级,灵活的访问控制,它允许软件调节读取和写入任何粒度的内存区域,可以帮助提高当今的多模块多程序员应用程序的可靠性,以及软件调试工具的效率。不幸的是,当今处理器中的访问控制与对虚拟内存的支持绑定在一起,这使得它的使用既繁重又粗糙。在本文中,我们提出了一种辅助级别的虚拟内存标记,它完全隶属于现有的基于虚拟内存的保护机制,并且可以在用户级别进行操作。我们使用M-cache(元数据缓存)结构以一种复杂性有效的方式实现这些标签,该结构仅干预L1缺失,从而最大限度地减少对处理器核心的更改。现有的缓存一致性状态被重新利用,以隐式地验证L1命中的权限。Sentry在不破坏现有应用程序间保护的情况下实现了灵活和轻量级访问控制的目标,避免了在现有操作系统中添加新保护框架的挑战。我们使用1)一个基于apache的web服务器,该服务器使用M-cache在其模块之间强制执行保护边界;2)一个基于观察点的工具来演示低开销调试。通过对源代码进行很少的更改,不更改编程模型,对操作系统进行最小的修改,并且只有在访问启用了额外访问控制级别的内存区域时才会产生较低的开销,从而实现保护。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信