我们要干啥
我写的都是随笔,随便bb下,装装下。:-)
1. 国外IT(包括但不限于半导体)比国内先进,而且可能先进很多
2. 老外有不少牛人
但是:
1. 也没有牛到一个人完全独立发明整套牛东西的程度,基本上是一代代一个个积累起来的。当然辨证唯物主义告诉我们量变会导致质变
2. 中国聪明人很多,比如王安,再如according to某本讲半导体历史的书,国外半导体行业有许多中国人做出了重要贡献,身居高位
3. 有人在Minecraft里用红石搭了个电脑,巴贝奇搞了机械计算机。不要光Wa wa wa几声,或者对拉瓦锡的老婆漂不漂亮大感兴趣。多But how? 有个网站叫homebrew cpu,在家酿造cpu,有接线密如蛛网,能跑操作系统的。没时间/能力搞复杂的,搞搞简单的也行啊,量变导致质变。做不一定成功,不做一定不成功,顺便复习下充分、必要和充要条件。做是成功的啥条件?
我们的目标:
1. 3岁前学会二进制:盯着灯变来变去,聪明的宝宝可能就会想why, 自己悟到。不加个:-)我自己都看不下去了。
2. 小学会编程。for (i = 1, j = 2; j >= 0; --j) ++i; 把1和2等数(后面还有两个1)改改也算。
3. 初中会写for循环。
4. 高中能基本看懂cpu.
5. 大一能造cpu.
我们的目标2:
这个东西的芯片成本不到1元人民币吧?主要是开关和灯。我国是制造业大国啊。卖给非洲1美元1个,卖给土豪镀金镶钻版的,1万美元还配不上人的身份。所有的机器上都印着Suanpan,争取让这个词进入英语词典,百科保底。
latch: 门闸、锁住。把二进制位锁在“盒子”里。gate: 门,想象下汽车开过自动洗车机,0通过门后变成了1。有个游戏,用各种stuff搭生产线,实现比如大绿块放左边,小红块放右边的功能。The Incredible Machine、磁力大冒险也很有意思,可惜现在好像没有了。织布时用卡片来控制提花,穿孔卡片做分类和统计……
在我们这个奇葩的系统里,每个pin都自带锁存功能。发一声喊“时间,停止!”,电就不流了,可以把多个位print出来看。所以我想register: 有D,W, Q三根线。D和W输入,Q输出,兼做存储。Q总是可读的。当W=1时 Q=D。W=0是 D不往Q抄。register file: 应该是线始终是连着的,Multiplexer has maximum of 2^n data inputs, 'n' selection lines and single output line. De-Multiplexer performs the reverse operation of Multiplexer. 我们只有两个寄存器,也许可以把它们当继电器用,或者给register增加根reading线(好像不行)。
如果我们想用S, R, D搞出个Q来,python里的map是1到n路输入,1路输出。如果输入已经有序,归并时每次从各路队首取最小的输出,就是归并排序。如果各路在不同的电脑上,那不是MapReduce?直白地说,我认为MapReduce不能算凭空出世,不过Lisp语言也不是中国人发明的,MapReduce也没那么简单。反正多学习,比如Lisp语言吃不了亏,上不了当。别误会,我不是卖Lisp书的。被互联网薅过的羊毛,我们要薅回来,买纸质书,才不屑呢。:-) 当然啦,事物是一分为二的,确实好的,还是应该支持下的。我要去买机器猫漫画了。我也不是卖漫画的。
我们可以卖散件。像电子积木那样一个黑块上面写着寄存器三个字。线用排线,一次插n根。这个cpu很容易改成7位(数据改4位),6(3)也不是不行。灯用八卦或算盘珠子(高低电平)?上下各一个电磁铁。散件散的程度有各种级别,如10岁以下蒙眼CPU组装比赛。积木块带发光二极管,直接看到针脚状态。积木块可以带开关。
还可以1位cpu蹦蹦乐。jmp 1机器码0,jmp -1机器码1, 在此过程中pc会变化的。mem 2位,pc1位,加法器不用考虑进位。
inc ax如何在一个时钟周期内完成?难道它锁存和加法器二合一?
跟着赋值走,紧抓住=手,要的是不必插线的feel, Fan out? we don't care. Just remember hardware do them simultaneously. It's all logic. Ah-oh, fan in, 这我们可犯了愁。Wait a minute, we thought we saw stuff called multiplexer somewhere. Ah-ha! There you are. But how to control it?