标签: cpu-architecture

如何确定编译可执行文件的平台?

我需要使用为x86,x64和IA64制作的Windows可执行文件.我想通过检查文件本身以编程方式找出平台.

我的目标语言是PowerShell,但C#示例可以.如果您知道所需的逻辑很好,那么其中任何一个都会失败.

c# powershell cpu-architecture

50
推荐指数
5
解决办法
3万
查看次数

x64和IA-64有什么区别?

我在微软的网站上注意到两个不同的安装程序,一个用于x64,另一个用于IA-64.参考:安装.NET Framework 4.5,4.5.1

我的理解是IA-64是x64的子类,所以我很好奇它为什么会有一个单独的安装程序.如果可能的话,我们将不胜感激.

64-bit x86-64 itanium cpu-architecture

50
推荐指数
4
解决办法
5万
查看次数

每个循环的FLOPS用于沙桥和haswell SSE2/AVX/AVX2

我对使用Sandy-Bridge和Haswell可以完成每个核心每个循环的触发器感到困惑.据我所知,对于SSE,每个核心每个周期应该为4个触发器,对于AVX/AVX2,每个核心每个周期应该有8个触发器.

这似乎在这里得到验证, 如何实现每个周期4个FLOP的理论最大值? ,这里, Sandy-Bridge CPU规范.

然而,下面的链接似乎表明,Sandy-bridge每个核心每个周期可以执行16个触发器,每个核心每个循环使用Haswell 32个触发器 http://www.extremetech.com/computing/136219-intels-haswell-is-an-前所未有-threat-to-nvidia-amd.

谁可以给我解释一下这个?

编辑:我现在明白为什么我感到困惑.我认为术语FLOP仅指单浮点(SP).我现在看到如何在每个循环中实现理论最大值4 FLOP的测试实际上是双浮点(DP),因此它们为SSE实现4个DP FLOP /周期,为AVX实现8个DP FLOP /周期.在SP上重做这些测试会很有趣.

cpu intel cpu-architecture avx flops

49
推荐指数
2
解决办法
6万
查看次数

直接映射缓存如何工作?

我正在参加系统架构课程,我无法理解直接映射缓存的工作原理.

我看了几个地方,他们用不同的方式解释它让我更加困惑.

我无法理解的是标签和索引是什么,它们是如何被选中的?

从我的演讲的解释是:"地址划分是分为两名部分的索引用于寻址(32K)的RAM地址直接的休息时,标签被存储,并与输入标签进行比较(例如,15个比特)."

那个标签来自哪里?它不能是RAM中内存位置的完整地址,因为它使直接映射缓存无用(与完全关联缓存相比).

非常感谢你.

caching system cpu-architecture

47
推荐指数
2
解决办法
6万
查看次数

将32位C++代码移植到64位 - 值得吗?为什么?

我知道x64架构的一些显而易见的好处(更高的可寻址RAM地址等)......但是:

  • 如果我的程序没有真正需要在本机64位模式下运行怎么办?我应该移植它吗?
  • 是否有任何可预见的截止日期为32位支持?
  • 我的应用程序会像原生x64代码一样运行得更快/更好/更安全吗?

c++ 64-bit x86 x86-64 cpu-architecture

44
推荐指数
4
解决办法
1万
查看次数

为什么x86是小端?

我最近一直在问自己的一个真正的问题是,设计选择带来了x86是一个小端架构而不是大端架构?

x86 intel cpu-architecture endianness microprocessors

44
推荐指数
3
解决办法
3万
查看次数

装配指令如何变成CPU上的电压变化?

在过去的3到5年里,我一直在C和CPython工作.考虑一下我的知识基础.

如果我要使用汇编指令(如MOV AL, 61h支持它的处理器),处理器内部究竟是什么解释此代码并将其作为电压信号发送?如何进行如此简单的指导?

当我试着想到包含MOV AL, 61h甚至包含的众多步骤时,大会甚至感觉像是一种高级语言XOR EAX, EBX.

编辑:我读了一些评论,询问为什么我把它作为嵌入式,当x86系列在嵌入式系统中不常见时.欢迎来到我自己的无知.现在我想,如果我对此一无所知,也有可能其他人也对此一无所知.

考虑到你们在答案中付出的努力,我很难选择一个最喜欢的答案,但我觉得有必要做出决定.没有伤害感情,伙计们.

我经常发现,我对计算机的了解越多,我就越不会意识到我真正知道的.感谢您对微码和晶体管逻辑的开放态度!

编辑#2:感谢这个帖子,我刚刚理解了为什么XOR EAX, EAX比这更快MOV EAX, 0h.:)

embedded assembly cpu-architecture

43
推荐指数
7
解决办法
7224
查看次数

为什么 __int128_t 在 x86-64 GCC 上比 long long 快?

这是我的测试代码:

#include <chrono>
#include <iostream>
#include <cstdlib>
using namespace std;

using ll = long long;

int main()
{
    __int128_t a, b;
    ll x, y;

    a = rand() + 10000000;
    b = rand() % 50000;
    auto t0 = chrono::steady_clock::now();
    for (int i = 0; i < 100000000; i++)
    {
        a += b;
        a /= b;
        b *= a;
        b -= a;
        a %= b;
    }
    cout << chrono::duration_cast<chrono::milliseconds>(chrono::steady_clock::now() - t0).count() << ' '
         << (ll)a % 100000 << '\n';

    x = …
Run Code Online (Sandbox Code Playgroud)

c++ performance x86-64 cpu-architecture integer-division

43
推荐指数
2
解决办法
3808
查看次数

程序计数器和指令寄存器

程序计数器保存下一个应该执行的指令的地址,而指令寄存器保存要执行的实际指令.他们中的其中一个不够吗?

这些寄存器中每一个的长度是多少?

谢谢.

cpu-architecture cpu-registers program-counter

42
推荐指数
2
解决办法
7万
查看次数

确定Windows上静态库(LIB)的CPU体系结构

我刚刚使用VS2008在64位Windows机器上构建了libpng.它libpng.lib在\ projects\visualc71\Win32_Lib_Release目录中生成一个文件(配置使用的是"LIB Release").

我曾经dumpbin检查过这个LIB文件:

C:\Temp\libpng-1.4.3>dumpbin projects\visualc71\Win32_LIB_Release\libpng.lib
Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file projects\visualc71\Win32_LIB_Release\libpng.lib

File Type: LIBRARY

  Summary

         8E4 .debug$S
         DF2 .drectve
        2BCD .rdata
       21165 .text

C:\Temp\libpng-1.4.3>
Run Code Online (Sandbox Code Playgroud)

但是它没有显示LIB文件的体系结构.如何查找给定的LIB文件是为32位还是64位架构构建的?

windows 64-bit cpu-architecture static-libraries libpng

40
推荐指数
1
解决办法
1万
查看次数