作者tinlans ( )
看板CSSE
标题Re: [问题] 关於作业系统的bit数目
时间Tue Jan 30 00:32:47 2007
※ 引述《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