在矢量和变量的原始对齐之间改变变量

时间:2010-12-13 18:19:04

标签: java operating-system jvm virtual-machine

在以下段落中: “指令集要求本地存储器的加载和存储是128位对齐的。寄存器是128位宽,指令将这128位作为16位8位,8位16位,4位32位或2位64的向量处理位值,取决于操作。因此,堆栈推送和弹出操作必须在寄存器的第一个向量槽和变量的原始对齐之间混洗变量“ 有人可以向我解释什么改组变量意味着什么?

1 个答案:

答案 0 :(得分:0)

您的问题似乎不是关于Java,而是SSE2注册如何工作?

SSE2指令集使用128位寄存器,但x86 / x64中的大多数寄存器都是32位或64位。在任何情况下,Java都会隐藏这些细节,您无需知道系统的本机寄存器大小。

你能谈谈你所谈论的内容吗? Google无法找到您提供的报价。

如果你在谈论SSE2,那么改组意味着CPU可以将多个较小的值打包成一个大值,每次8位值移位8,每次移位16位数值16等。这样做是为了它只需一次操作即可对所有值进行操作。像迷你固定大小的矢量。通过多次执行这些操作,可以操作更长的矢量。