qwe*_*iop 5 intel trusted-computing
是否可以将大于 EPC 内存的程序加载到飞地?我觉得理论上这是允许的,因为
EEXTEND
以 256 字节增量测量飞地所以理论上,似乎可以只使用一页 EPC 内存来加载一个大程序:
我在理论上理解正确吗?虽然在实践中,我在加载大程序时立即出错。
小智 4
我在英特尔论坛上问了类似的问题。总结[1]很有帮助。
简短的回答:不,您目前无法加载大于 EPC 的飞地。
由于当前缺乏分页支持(并且缺乏 v2 将提供的动态页面分配),这意味着同时加载的所有 enclave 的 HeapMaxSize 总和不能超过上述的 ~90MB。[1]
长答案:在 SGX 中有两种动态内存管理机制:
那么为什么不能加载比 EPC 更大的 enclave呢?
因此,您的 enclave 在当前硬件上必须使用远低于 90MB 的堆大小。我尝试了 SDK 模拟,发现它允许的堆最大大小约为 1GiB [2]。未来的操作系统版本将有望支持 EPC 页面交换,从而允许更大的静态 enclave 大小。未来的 SGX 硬件将允许动态页面分配,从而允许动态飞地大小。
[1] https://software.intel.com/en-us/forums/intel-isa-extensions/topic/607004#comment-1857071
[2] 1GiB - 64KiB - TCSnum * 128KiB,其中 TCSnum 是线程数。超过此 HeapMaxSize 会导致模拟错误
归档时间: |
|
查看次数: |
1379 次 |
最近记录: |