《表3 SGX ecall和ocall性能测试》

《表3 SGX ecall和ocall性能测试》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《SGX应用支持技术研究进展》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

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接口.