精華區beta CSSE 關於我們 聯絡資訊
※ 引述《fish39 (醒醒吧!!宅宅)》之銘言: : 64-bit CPU是指,data bus寬度為64條線 : 這個問題其實沒這麼複雜啊,也很簡單 : 會數位IC design的人,這是個常識喔!! : 就像寫一個堆疊記憶體 : 有分data bus 和address bus : data bus 就是一次存取data的寬度64-bit CPU就是這邊設計的 : address bus 就是你的堆疊記憶體的個數 : 簡單的說,address bus 假如有2條線,那就有2^2=4個堆疊空間每一個空間是64bit : address bus有10條線,就有2^10=1024個空間每一個空間是64bit 之所以會複雜化是因為現在 CPU 的設計常常很詭異, 正常又直覺的設計是 data bus 跟 register 寬度相同, 但是不少 CPU 又不是這樣子, 喜歡搞一堆有的沒的讓它們不同寬, 所以出現了一些爭議。 現在習慣上會對 architecture 跟 CPU 的 bit 數分開來稱呼, 64-bit architecture 通常泛指 data bus 有 64-bit, 64-bit CPU 泛指主要 registers 的 size 有 64-bit, 也就是會區分 internal 跟 external 的差異性, 不過這也是對名詞特別挑剔的人發明出來的講法。 非 load/store 架構因為 source operands 可以有 memory address, 所以 data bus width 和 register width 的概念常牽扯在一起。 對於寫 asm code 或做 compiler 的人, 之所以會去關心 CPU 是幾 bit, 通常是想知道操作 64-bit 的 data 能不能一道指令完成, 以 64-bit 加法來說, 32-bit CPU 需要一個能改變 carry flag 的 add 指令, 以及一個 add with carry 的 add 指令才能完成, 64-bit 的 CPU 只要單單一道 add 指令就能完成。 對 users 而言, 我個人是覺得這只是名詞上的爽度問題, 也沒有必要太深入探討和講究, 商業上的廣告名詞隨它去就好了, 這就像 Java 在廣告上被稱之為「跨平台」, 但瞭解技術細節的人會爭議它不是跨平台, 而是因為它本身就是平台一樣, 跟他們解釋 64-bit CPU 時, 可以使用「典型」和「非典型」這種詞彙, 無聊的爭議也會比較少。 -- Name: Tseng, Ling-hua E-mail Address: [email protected] School: National Tsing Hua University Department: Computer Science Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Software pipelining for VLIW architectures Homepage: https://it.muds.net/~uranus -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.222.165