坐在书桌前的程远抬起了手掌,并在脑海中认真地想象着。
随后,一蓬蓬闪着微光的光点从他的身体中飘出,并静静地悬浮在他的掌心之上。
“……终于能够不受干扰地操控这些神奇的光点了啊!”
望着手中的那些听话无比的光点,程远一时间突然有种热泪盈眶的感觉。之前绝大部分的时候,他都要分出大半的精力去和大黑手指的“信息旋涡”斗智斗勇……就如同跑步时脚上绑着沉重的沙袋一样。而现在,他终于解下了这些沙袋!
“蕴含世界运行规则奥秘的光之精灵们啊,请实现我的愿望……变成逻辑门吧!”
程远中二地挥动起了手掌。随后,他掌中的一枚枚光点便听话地移动了起来。它们或是两两组合成了“非门”,又或是四个光点结合到一起,成为了程远所熟悉的“与门”,“或门”以及“异或”逻辑门。
随后,这些被这个位面的人称作“芯点”,被程远称作“逻辑门”的外形各异的光点安静地落到了程远面前早已准备好的,外形类似于“调色盘”的琥珀托盘中,等候他的进一步调遣!
“调取两个‘异或’,三个‘与门’,一个‘或门’芯点!”程远的手指在托盘上划过:“按照设计图上的形状,拼装出一个‘一位全加器’!”
芯点们精准地遵循着程远的指示,落到了另一侧的硅晶板上。随后程远的手指轻动,将这些芯点的“引脚”们一一连接了起来。他每绘制一条连接线,都需要付出一枚信息光点作为代价。
很快地,一组“一位全加器”算路成型!
随后,程远如法炮制,并将其它的大部分芯点加工后一一连接了起来……
“成型!”望着面前的一串有层次感的,可以真正实现整数加法运算的算路,程远满意地点了点头。
他自己并没有使用“三十二位超前进位加法器”,因为这个算路的结构过于复杂,拼装时的消耗也很大。但是他稍微取了个巧……他将“四位超前进位加法器”与“波纹进位加法器”的原理组合了一下,最终制作出了一串性能适中,结构又相对简单的算路——对于他当前的腕表所能够提供的时钟频率而言,这个算路的性能已经完全足够!
毕竟,在设计时,人们无法做到鱼与熊掌兼得,这时就要考虑到Trade Off,或者说需要作出一些取舍,以便在资源有限的情况下,让它们发挥出最大的效能。
“平均制作每个全加器算路……大概需要耗费一百六十枚最基础的信息光点。其中算路本身只包含四十枚光点,大约有四分之三在加工过程中消耗掉了。”程原的意念从通道中传来:“消耗还是蛮大的啊,你刷一个小时的题目攒出来的信息光点,刚刚只够写完ALU——也就是‘逻辑运算单元’中的一小部分。而要实现整个CPU,你还至少需要实现‘存储单元’和‘控制单元’几大块呢。”
“饭要一口一口吃。”程远乐呵呵地说道:“我今天的效率比昨天已经高出一截啦。再说,有了加法运算功能,其它的功能距离实现也就不远了。”
程原不置可否地点了点头。其实从严格的意义上来讲,程远的说法并没有错。
在CPU中,实现“减法”的方法其实异常简单——只需要将被减去的数字转换为“负数”,再将它扔进加法电路中,就能实现减法功能了。而将数字转换为“负数”的方法也很简单——在计算机领域中,人们已经形成了约定,用二进制数字的首位来表示符号……只要将这个数字中的每一位取反一下,它就可以直接变为对应的负数了。[1]
而乘法算路稍微复杂一点,但它的底层也是依赖于加法算路的。举个最简单的例子,如果要将一个数字乘上9,那只需要对这个数字连续执行九次加法,那自然就可以得到结果啦。
咳咳,当然在实际情况中,人们自然是不可能用这种笨方法的。实际上,人们会让CPU使用一点类似于“小学生速算技巧”的手段:比如,小学生速算12乘11,那可以将数字分解为12*(10+1),相当于12*10 + 12*1,这相当于一次移位运算和一次加法运算,计算起来就非常的简单了。而在CPU中,也是同样的道理,只不过计算机使用的是2进制——在它的眼中,2,4,8这些数字才是人们眼中的“10”一样的整数。而之前的乘9运算,CPU便会聪明地将它分解为乘(8+1)……它对CPU来说,同样也只需要一次移位运算和一次加法运算!
这便是最基础的乘法算路的原理。
当然,比起加减乘法来说,除法的难度确实要高上一截……但是没关系,程远可以直接参考乃至照搬地球位面中前人的设计图!
甚至……对于程远来说,只要允许他使用判断、循环和取反操作,那即使这个CPU只支持“加法”,甚至是只支持“+1”运算,程远都可以通过软件算法将自然数的加减乘除功能实现出来!
只不过,这个算法的效率会低到令人发指而已,除非这个“+1”操作不花费任何的时间……否则,在整个地球上,都不会有人真正地去做这种奇怪的CPU和算法的。
喜欢核芯位面请大家收藏:(www.zeyuxuan.cc)核芯位面泽雨轩更新速度最快。