Home » Posts tagged "x86"

C++ 與組語的速度...

Hacker News Daily 上看到「Why is this C++ code faster than my hand-written assembly for testing the Collatz conjecture?」覺得很有趣...

作者寫了一段 assembly,但跑起來比用 C++ 同義的版本慢多了。目前最高分的答案給了很清楚的解釋...

even:
    mov rbx, 2
    xor rdx, rdx
    div rbx

上面這段 code 是作者寫的組語版本,用到 div 指令,這是非常慢的指令:

On Intel Haswell, div r64 is 36 uops, with a latency of 32-96 cycles, and a throughput of one per 21-74 cycles.

相較於 C++ 的版本,用到的是 shr (logical shift right,以位元方式往右平移,最高位補零),速度快太多:

shr rax, 1 does the same unsigned division: It's 1 uop, with 1c latency, and can run 2 per clock cycle.

這是用到無號整數透過 shr 平移一格剛好是除以二的特性,因為速度的關係,這個用法到現在還是很常被拿來用,但對於平常沒在寫 assembly 的人就會有上面的誤解 XDDD

各種有趣的小板子...

Slashdot 的「Ringing In 2015 With 40 Linux-Friendly Hacker SBCs」報導了「Ringing in 2015 with 40 Linux-friendly hacker SBCs」這篇文章,裡面介紹了不少可以跑 Linux 的小板子。

還蠻多有趣的板子,大多都是 ARM,不過還是有一些 x86 的板子可以玩,另外還有一張 MIPS 的板子...

另外翻了翻還看到 SAMA5D3 Xplained 這張有兩個網卡的板子 (不過是 GE + FE),好像可以拿來做些有趣的東西?

不過上次從 zonble 那邊弄來的 Raspberry Pi 好像都還沒動...

AMD 的 AMD64 (以及後來 Intel 的 EM64T)...

Slashdot 上看到一段歷史:「The Chip That Changed the World: AMD's 64-bit FX-51, Ten Years Later」,以及引用的報導「The chip that changed the world: AMD’s 64-bit FX-51, ten years later」。

當年 Intel 決定以 Itanium 架構為主,不相容於原來的 x86 架構,而 AMD 則是針對 x86 相容開發出 AMD64,而 AMD 的第一顆 AMD64 CPU 就是 FX-51。

這個決策改變了整個產業的發展,也讓 AMD 在當時的市占率追近 Intel 不少,逼的 Intel 後來推出與 AMD64 相容的 EM64T。十年過去,現在看不到 Itanium 了...

一段歷史...

Archives