【问题标题】:Shuffling variables between a vector and the variable's original alignement在向量和变量的原始对齐之间打乱变量
【发布时间】:2011-05-24 20:14:57
【问题描述】:

在以下段落中: “指令集要求本地内存的加载和存储是 128 位对齐的。寄存器是 128 位宽的,指令将这 128 位视为十六个 8 位、八个 16 位、四个 32 位或两个 64 位的向量-位值,取决于操作。因此,堆栈推入和弹出操作必须在寄存器的第一个向量槽和变量的原始对齐之间打乱变量“ 有人可以向我解释洗牌变量的含义吗?

【问题讨论】:

    标签: java operating-system jvm virtual-machine


    【解决方案1】:

    您的问题似乎与 Java 无关,而是 SSE2 寄存器如何工作?

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

    您能否为您所谈论的内容提供一些背景信息? Google 找不到您提供的此报价。

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

    【讨论】:

    • 问题更多是关于jvm的实现。引用来自一篇关于称为 Hera-JVM 的 JVM 的文章,该 JVM 在异构多核 Cell 处理器(在 Playstation 3 中使用)上实现。引用是关于在 SPE 核心(协同处理引擎)上实现 JVM,但您的回答仍然阐明了“改组变量”的含义。谢谢
    猜你喜欢
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2019-11-02
    • 2021-01-08
    相关资源
    最近更新 更多