如果我们在RTOS设备中使用gcc的msse和msse2选项会没问题

时间:2013-01-21 17:08:02

标签: c performance gcc

根据我的知识mssemsse2选项gcc将通过更快地执行算术运算来提高性能。而且我也阅读了一些类似于使用寄存器,缓存等更多资源的地方。

如果我们在RTOS设备(如vxworks board)上使用通过这些选项生成的可执行文件,性能如何?

2 个答案:

答案 0 :(得分:1)

操作系统必须支持SSE(2)说明才能使您的应用程序正常工作。从谷歌搜索来看,VcWorks似乎支持这一点(并不是真的那么难,所需要的是操作系统每个任务使用SSE / SSE2有512字节的保存区域 - 在适当的情况下,它可以被分配按需,但通常更容易将其分配给所有任务]。保存/恢复SSE寄存器是“按需”完成的,也就是说,只有当一个与前一个不同的任务使用SSE时才使用SSE指令,是吗?保存寄存器是必要的。操作系统将使用特殊的中断(陷阱)来指示“新任务正在尝试使用SSE指令。

所以,只要处理器支持它,你应该没问题。

答案 1 :(得分:0)

我可能无法直接回答您的问题,但这里有一些我知道可能有用的事情:

  • SSE,SSE2等必须由处理器支持/实施,以便它们首先产生任何影响。
  • 您可以调用的特定函数使用这些扩展指令进行数学运算。这些功能可以在更广泛的数据类型上运行,也可以有效地对集合执行操作。
  • 在GCC中启用选项可以自动使用以前的API / builtins。这是我不确定的部分。