作者HuangJC (吹笛牧童)
看板ask-why
标题Re: [斧正] 关於数位电子的一些问题
时间Fri Jul 24 02:08:27 2009
: 所以电脑内部是 0 与 1 的世界吗?
: 这..只讲数位的话,是..
: 讲到实现它的类比技术,我也不确定
除了这个问题,一般我们也说电脑用二进位在'运算'
但其实现在的电脑不运算已经很久了
当然,计概里还在教我们二进位的加减乘除
要这样说的话,那中文驱动程式+CPU 能不能说电脑懂中文?
什麽是电脑?什麽是电脑的外挂?
学生把小抄刻在桌上可不可以说是自己懂的一部份?
open book 考试又如何解释?
这些问题都突显了我们需要另一个方式思考:'电脑'的界限在哪里
通常我们用层次的观念来解释
比如网路有七层协定
又比如从核心看 driver,driver 是软体
但从应用程式看 driver,driver 可以是硬体的一部份
有人把模糊界定的称为 F/W,但其实 F/W 间一样有层次关系
所以 H/W,F/W,S/W 这样三层是不够的,N 层更好理解
而对问题的理解或解释,也要看到是针对哪一层的
二进位是可以做算数的,但光讲加法,就有进位的问题
如果一位元加法要一秒,那八位元加法要八秒 (事实上我们说'机械周期')
因为要等前一个位元进位才能做下一个位元加法
在八位元时代可以见到这个现象,而某些 CPU 连乘法都不会,已经要跑副程式了
用层次来看,这颗 CPU+副程式=懂乘法的电脑
看,这样就不用争辩电脑懂不懂乘法;而是说这一整个架构的框框到哪里时,它有什麽能力
现在的 CPU 不管做一位元加法,或32位元加法,乘法,都一样一个机械周期
因为已经没在运算了,而是'背'--查表法
也因为'背',所以三角函数也可以背进去了
再次用层次来看,我们熟知的16位元以上,80系列的 CPU 是懂加减乘除的
而浮点及三角函数要挂上浮点运算器才懂;不管是挂上硬体的87或是软体的模拟器
因此电脑用二进位在'运算'吗?已经愈来愈少;而是用二进位在查表
如果连外挂副程式都要叫做电脑的一部份,那电脑会微积分,也会下象棋
如果副程式不能算,只能计较 CPU 的基本能力的话,那有的还不懂乘除法
计概一般未必这样教,因为会引起大混乱
通常说电脑用二进位运算就好了
但继续往下学半加器,全加器,多位数加法器加速等等
会发现只要肯多用些线路,电脑'背'的愈来愈多,直接处理掉的计算也愈多
既然是查表法,我能不能打造一个十进位的电脑出来呢?
那就当然可以了 XD (人在做长乘法时,还不是先死背九九乘法表)
说到底二进位只是'最划算',不是'不用二进位就做不出电脑'
把框框画最小,画到 CPU,有的连乘除法都不会
画大一点,加入副程式,有的已经会做三角函数
再画大一点点,电脑插上音效卡,唱歌也会了
那你还认为电脑和生物'非常不同'吗?
板上讨论的架构,正好把生物的感觉绕过一轮
从受器一直讨论到作动
(什麽是听觉,什麽是视觉,什麽是味觉;如何发光,如何发声,...etc)
为什麽我们可以在电脑上找到很多对应呢?
因为它是长久历史的结晶,它不是一个人设计的
是一大堆人在改进它,观察自然界的生物,再以之加强它外部回路
所以,电脑很笨;但我不敢说自己比它聪明 :P
话说回来,外加硬体很多人不承认是电脑的一部份
他们一定要谈'电脑只懂0与1'这样的范围
(那你能用电脑听音乐是怎麽回事?大家的字眼太模糊了)
其实,0与1是有,但这框框要画得小些
比如 CPU,或者 CPU 内的 ALU
如果你要用 ALU 来界定电脑的基本能力的话
那的确就很硬了
也就因为计概通常讲 ALU 里的那块
所以大家以为电脑只懂0与1
喔,我还没和你讲调变解频咧,那是交流电的范围
从前会吱吱响的 MODEM 就这东西
它实作连续0就不是送出连续低电压了;再怎麽送也得是交流
用核心 IC 界定范围好不好?
不好,单晶片混合型 DSP,只要一颗就可以发出音频
你是不是要跟我说电脑会唱歌,懂乐谱?
全矽技术做的单晶片数位CCD,以矽玻璃做镜头,直接黏在 IC 上面
只要一颗 IC 就可以做出数位相机,那你要说电脑会拍照?
(目标是只要一颗 IC 就做出保全,所以还要内建网卡直接上网咧)
所以电脑用什麽讯号,那真的得画定范围才能谈
虽然电脑比不上人脑精密
但要说电脑用0与1,和人脑不同...这就未必了
也许我们也可以谈谈人脑的计算里有没有 Sample & Hold 回路
抽象化逻辑思考等等
(人看到十颗树,是记下十颗树的样子,还是记下数字十,乘以树?
那人也蛮'数位'的嘛 XD)
讨论归讨论,考试时我还是会写'电脑只懂0与1,使用二进位'
就好像在路上要守交通规则,但回家後可以讨论交通规则一样
如果要讨论,就不要框框;拿框框出来放大绝就很难讨论
;;
事实上有很多负逻辑运作的电路,以高压为 0,以低压为 1,正好是相反的 XD
这是硬体上的实务,那你还怎麽坚持电脑内的世界简单?
0 与 1 是抽象逻辑,不是实务上的必然
实务上可能调变,也可能用负逻辑
如果只讲 ALU,调变是不太可能了,但负逻辑还是有
就纯数位而言,I2C(念成I平方C) 也可以很复杂
编码编到不是单纯的0与1...
为什麽不做XXX的设计?
嗯,这问题的答案可能是:你怎麽知道没有
电脑并不只 Intel 出的这系列
我们除了被计概统一,难不成也被 Intel 统一?
能不能和卖得好不好是两回事
能!但卖得不好,也许是个答案
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.179.152