Questions tagged «cpu-architecture»

CPU或微控制器的硬件微体系结构(x86,x86_64,ARM等)。

4
在英特尔Sandybridge系列CPU中取消对管道程序的优化
我已经花了一个星期的时间来尝试完成这项任务,我希望这里的人可以带领我走上正确的道路。让我从讲师的指示开始: 您的分配与我们的第一个实验分配相反,后者是优化素数程序。您在此作业中的目的是简化程序,即使其运行缓慢。这两个都是占用大量CPU的程序。他们需要几秒钟才能在我们的实验室PC上运行。您可能无法更改算法。 要优化程序,请使用有关Intel i7管道运行方式的知识。想像一下重新排序指令路径以引入WAR,RAW和其他危险的方法。想办法最大限度地减少缓存的有效性。令人作呕的无能。 作业中选择了磨刀石或蒙特卡洛程序。缓存效率注释大部分仅适用于Whetstone,但我选择了蒙特卡洛模拟程序: // Un-modified baseline for pessimization, as given in the assignment #include <algorithm> // Needed for the "max" function #include <cmath> #include <iostream> // A simple implementation of the Box-Muller algorithm, used to generate // gaussian random numbers - necessary for the Monte Carlo method below …

3
什么是retpoline,它如何工作?
为了减轻对内核或跨进程的内存泄露(在幽灵攻击),Linux内核1将用新的选项进行编译,-mindirect-branch=thunk-extern推出gcc通过一个所谓的执行间接调用retpoline。 这似乎是一个新发明的术语,因为Google搜索仅在最近才使用(通常在2018年全部使用)。 什么是retpoline?它如何防止最近发生的内核信息泄露攻击? 1它不是特定于Linux的-类似或相同的构造似乎被用作其他OS 的缓解策略的一部分。





2
sjlj vs dwarf vs seh有什么区别?
我找不到足够的信息来确定应该使用哪个编译器来编译我的项目。在不同的计算机上有多个程序可以模拟一个过程。在Linux上,我正在使用GCC。一切都很棒。我可以优化代码,它可以快速编译并使用不太多的内存。 我使用MSVC和GCC编译器做自己的基准测试。稍后的版本会生成稍快的二进制文件(针对每个子体系结构)。尽管编译时间比MSVC多得多。 因此,我决定使用MinGW。但是找不到有关MinGW中异常处理方法及其实现的任何解释。我可以对不同的操作系统和体系结构使用不同的发行版。 注意事项: 编译时间和内存对于我的用法并不重要。唯一重要的是运行时优化。我需要我的程序足够快。慢速编译器是可以接受的。 操作系统:Microsoft Windows XP / 7/8 / Linux 架构:Intel Core i7 / Core2 /和运行XP的非常老的i686:P


16
是否有修改运行时代码的明智案例?
您能想到运行时代码修改(程序在运行时修改自己的代码)的任何合法(智能)用途吗? 现代操作系统似乎对执行此操作的程序不满意,因为病毒已使用此技术来避免检测。 我所能想到的就是某种运行时优化,通过在运行时知道一些在编译时无法知道的内容,可以删除或添加一些代码。

10
为什么x86丑陋?与其他人相比为什么被认为是次等的?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 最近,我一直在阅读一些SO档案,并遇到了针对x86体系结构的声明。 为什么我们需要针对服务器,小型/大型机和混合核的不同CPU体系结构?他说: “ PC体系结构是一团糟,任何OS开发人员都会告诉你。 ” 学习汇编语言值得吗?(已存档)说: “意识到x86架构充其量是可怕的 ” 有什么简单的方法来学习x86汇编程序?表示: “ 大多数大学都在MIPS之类的课程上教授汇编语言,因为它更容易理解,x86汇编确实很难看。 ” 还有更多评论,例如 “与大多数体系结构相比,X86非常糟糕。” “ X86不如MIPS,SPARC和PowerPC,这绝对是传统观念 ” “ x86很丑 ” 我尝试搜索,但没有找到任何原因。我认为x86不错,可能是因为这是我所熟悉的唯一体系结构。 有人可以给我理由比其他人考虑x86丑/坏/劣等。

5
“ FS” /“ GS”寄存器的用途是什么?
因此,我知道以下寄存器及其用途是什么: CS =代码段(用于IP) DS =数据段(用于MOV) ES =目标段(用于MOVS等) SS =堆栈段(用于SP) 但是,以下寄存器打算用于什么? FS =“文件段”? GS = ??? 注意:我不是在问任何特定的操作系统,而是在问它们打算由CPU使用什么(如果有的话)。


14
字和字节有什么区别?
我做了一些研究。一个字节是8位,而一个字是可以在存储器中寻址的最小单元。单词的确切长度会有所不同。我不明白的是拥有一个字节有什么意义?为什么不说8位呢? 我问一个教授这个问题,他说现在大多数机器都是字节寻址的,那会产生什么呢?

5
回写与直写式缓存?
我的理解是,这两种方法之间的主要区别在于,在“直写”方法中,数据会立即通过高速缓存写入主内存,而在“写回”中,数据是在“较后的时间”内写入的。 我们仍然需要在“延迟时间内”等待内存,因此“直写”的好处是什么?

3
原子操作成本
原子操作(比较和交换或原子加/减的任何操作)的成本是多少?它消耗多少个周期?它会暂停SMP或NUMA上的其他处理器,还是会阻止内存访问?它将刷新乱序CPU中的重排序缓冲区吗? 缓存会受到什么影响? 我对流行的现代CPU感兴趣:x86,x86_64,PowerPC,SPARC,Itanium。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.