问题标签 [powerpc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hardware - powerpc 处理器上的外部中断如何向量化?
也许问题应该是,外部中断是否甚至在 PowerPC 上进行了矢量化?我一直在查看http://www.ibm.com/developerworks/eserver/library/es-archguide-v2.html,“第 3 册”,试图弄清楚处理器如何定位适当的中断服务例程以响应到外部中断。似乎暗示当 PPC 识别到外部中断时,它只是将执行跳转到 0x0000_0500。
我可能对 PPC 的工作方式存在误解。对于 x86,处理器以中断确认周期响应中断请求,并直接从设备获取“向量”。然后,向量(实际上是一个索引)允许 cpu 从其中断向量表中选择适当的处理程序例程。最重要的是,这种确认/向量获取是硬件、总线协议的事情,没有人需要编写任何代码来实现它。唯一需要编写(读取、软件)的代码是 ISR 本身。
PPC 会做类似的事情吗?在 0x500 处会有一个向量表吗?还是它做了一些完全不同的事情,并将获取设备向量的功能卸载到外部中断控制器?我想它可以只跳转到 0x500 处的代码,然后实际的软件会询问(假设的?)中断控制器以获取向量..然后在跳转表/你有什么中使用它,但我可以'找不到文件来验证这种情况,一种或另一种方式。
cocoa - 调试 Objective-C 垃圾回收崩溃的策略
我有一个非常令人沮丧的崩溃程序,它影响了我的一小部分用户。根据我的分析,它似乎与运行 10.5 的 PowerPC 用户隔离。当垃圾收集器在后台运行时,它会默默地杀死我的应用程序。这是崩溃日志中的相关片段。
我一直无法在我的旧 PPC Mac 上重现崩溃,并且错误的模糊性质使得我很难隔离我的 Mac 上发生崩溃的位置。
是否有任何调试策略或工具可以用来帮助隔离这一点?也许我可以传递给用户以帮助找出导致崩溃的位置/原因?
ruby - PowerPC G5 处理器上的 RubyCocoa (Leopard 10.5.7)
有谁知道这个处理器上运行的是哪个版本的 RubyCocoa(如果有的话)?
endianness - 无论 PPC 字节序如何处理 Altivec 加载和存储?
我在 Altivec 中有一些 SIMD 代码并行处理 32 位整数值。在某些情况下,我想将整数加载为小端,在其他情况下加载为大端(注意:此选择与本机 CPU 字节序无关;它基于正在运行的算法)。正如Apple所记录的,使用 Altivec 的置换操作非常容易进行实际的字节交换。
我担心的部分是PowerPC允许大端或小端操作,所以我不知道我是否需要在小端加载/存储或大端加载/存储上进行字节交换。(目前我的代码总是为小端执行它,并且从不交换大端内存操作,这在我目前使用的 970 上运行良好,因为它当然运行的是大端)。
据我所知,小端模式下的 PPC 相对较少,但它们确实存在,理想情况下,我希望无论模式如何,我的代码都能正确快速地工作。
有没有一种方法可以处理对 AltiVec 寄存器的大小字节序负载,而不管 CPU 字节序如何?还有其他与此相关的问题我应该知道吗?维基百科有(未引用,自然)声明:
“AltiVec 操作,尽管是 128 位,但被视为 64 位。这允许与在 AltiVec 之前设计的小端主板兼容。”
这让我觉得在 little-endian 模式下可能还有其他特定于 AltiVec 的讨厌。
xcode - 在 Snow Leopard 上开发时,我将 PPC Mac Mini 用作 10.5+ 应用程序的构建机器会有什么问题吗?
我们在 Snow Leopard 上使用 Xcode 3.2 进行开发。然而,我们正在开发的应用程序针对 10.5+ (Leopard)。
我正在考虑设置一个持续集成服务器(通过 CruiseControl)。
我身边有一台旧的 PPC Mac Mini。我意识到它只能使用 Xcode 3.1.3 运行 10.5。
我是否有可能将 Mini 设置为集成服务器,或者我可能会遇到太多问题而无法让它值得麻烦,从而更好地为英特尔机器进行竞选?
我正在考虑的一些事情:
- 如果我们开始开发 iPhone 应用程序,我们将无法在 PPC Mini 上构建它们。
- XCode 项目文件需要保持 3.1 兼容。
- 我相信 PackageMaker 在 10.6 中也收到了更新。我不确定更新的 .pmproj 文件是否向后兼容。
interrupt - 如何使用 MPIC 在 powerpc 中为 IPI 安装中断处理程序?
CPU(特别是 powerpc)是否允许为 IPI(处理器间中断)安装中断处理程序?我使用的 MPIC 每个内核支持 4 个 IPI,并且它具有用于设置这些 IPI 的向量和优先级的寄存器,但是我应该在哪里安装中断处理程序?CPU 内核具有 IVOR(中断向量偏移寄存器),用于为外部中断、内部中断、定时器中断、异常等设置中断处理程序,但对于 IPI 则没有。
macos - 在 OSX 上为 Intel 和 PPC CPU 编译
我有一台配备 64 位 Intel Core 2 Duo 处理器的 MacBook Pro,我正在使用 gcc (i686-apple-darwin9-gcc-4.0.1) 编译可以在我自己的机器上正常运行的可执行文件。最近有人试图在 PowerBook G4 上运行我的应用程序并收到“可执行文件中的错误 CPU 类型”错误,我认为这是因为他们的 CPU 是 PPC 而不是 Intel(也可能是 32 位而不是 64 位)
我是否可以使用 gcc 生成适用于所有各种 Mac 架构的二进制文件,如果可以,我应该使用哪些选项?
assembly - PowerPC 初始化
有人知道如何初始化 PowerPC 32 位处理器(例如 PPC-440),类似于 Intel 的 x86 保护模式切换和随后的地址表初始化等吗?是否有关于操作系统应该在这些处理器上处理的第一步的文档?
问候,
optimization - 是什么让 Apple 的 PowerPC memcpy 如此之快?
我已经编写了几个复制函数来寻找 PowerPC 上的良好内存策略。将 Altivec 或 fp 寄存器与高速缓存提示 (dcb*) 结合使用,可将大数据的简单字节复制循环的性能提高一倍。最初对此感到满意,我扔了一个普通的 memcpy 来看看它的比较……比我最好的快 10 倍!我无意重写 memcpy,但我确实希望从中学习并加速几个简单的图像过滤器,这些过滤器大部分时间都在将像素移入和移出内存。
Shark 分析表明,它们的内部循环使用 dcbt 进行预取,先读取 4 次向量,然后写入 4 次向量。在将我最好的函数调整为每次迭代也可以传输 64 个字节之后,memcpy 的性能优势仍然令人尴尬。我正在使用 dcbz 来释放带宽,Apple 什么都不使用,但是这两种代码在商店中往往会犹豫不决。
有没有人对为什么非常相似的代码有如此巨大的性能差距有一些想法?我很想在 memcpy 使用的任何秘密酱汁中腌制真实的图像过滤器!
附加信息:所有数据都是矢量对齐的。我正在制作图像的过滤副本,而不是替换原始图像。该代码在 PowerPC G4、G5 和 Cell PPU 上运行。Cell SPU 版本已经非常快了。
xcode - 测试mac的通用二进制文件
我正在 OS X 下的 intel mac 中开发一个 mac 程序。它也需要是一个通用二进制文件,所以猜测使用 Xcode 可以创建通用二进制文件(UB),我错了吗?
但我的问题是是否有某种虚拟机或其他方法,所以我可以测试二进制 powerpc 部分是否运行正常,但我只有 intel mac。
我还有一个 PS3,因为它有一个 pwerpc proc,我想知道是否可以在这里测试命令行应用程序。
谢谢