《表3 SGX ecall和ocall性能测试》
SGX SDK[16]提供的用于进行跨enclave函数调用的标准方法ecall和ocall都会触发enclave上下文切换.文献[35,44,50]分别对SGX的ecall和ocall的性能开销进行了评测.任何ecall和ocall都会导致性能开销,因为硬件必须执行某些操作来维护SGX的安全保障.Enclave代码还必须验证所访问数据的完整性,例如ecall的参数、ocall的返回值和从不可信内存读取的数据.本文对评测结果进行了总结,具体见表3.从表中总结结果来看,直接使用SGX SDK的边缘函数性能开销高达8 000到17 000个时钟周期(CPU cycle).Ecall的开销大约为8 000个时钟周期,ocall的开销大约为10 000个时钟周期,这相比于系统调用150个时钟周期来说是非常高的.因此,减少模式切换导致的开销变得非常重要.目前,避免或降低模式切换的技术主要有通过共享内存和专用线程避免切换、增加库操作系统来减少切换操作以及合理地设计enclave接口.
图表编号 | XD00205365400 严禁用于非法目的 |
---|---|
绘制时间 | 2021.01.01 |
作者 | 董春涛、沈晴霓、罗武、吴鹏飞、吴中海 |
绘制单位 | 北京大学软件与微电子学院、北京大学软件工程国家工程研究中心、高可信软件技术教育部重点实验室(北京大学)、北京大学软件与微电子学院、北京大学软件工程国家工程研究中心、高可信软件技术教育部重点实验室(北京大学)、北京大学信息科学技术学院、北京大学软件工程国家工程研究中心、高可信软件技术教育部重点实验室(北京大学)、北京大学软件与微电子学院、北京大学软件工程国家工程研究中心、高可信软件技术教育部重点实验室(北京大学)、北京大学软件与微电子学院、北京大学信息科学技术学院、北京大学软件工程国家工程研究中心、高可信软 |
更多格式 | 高清、无水印(增值服务) |