第一、二章:编程不是请客吃饭
作者:三分糊涂    更新:2021-10-30 09:33
  (本章说错乱是因为第一章暂被屏蔽,合并在第二章。2天后申请解禁……)
  嘀嗒。
  嘀嗒。
  嘀嗒……
  苏远山的视线从长耳朵的铁壳闹钟上离开。
  床头挂着史泰龙,床尾贴着周慧敏。书桌面上贴着玻璃,下面压着他从小到大的相片。书桌靠墙是一台三洋的双卡收录机,上面放着一排英语磁带。
  再远一点是用红绸布盖着的Laser-310学习机,书架上放着他从小到大的课本和几本电子类书籍。
  这是苏远山中学时代的卧室。
  苏远山用了半个小时来接受自己回到了1991年的事实。
  1991年2月25日,农历正月十一。
  这一年苏远山未满十七,刚上高一。
  如果按照轨迹,他会在七中读完高中,考上电科大,然后与妻子叶如黛在校园相遇,随后在父亲手下毕业,之后留学哥伦比亚大学攻读计算机工程硕博。再然后加入intel,呆了三年见证了P3到P4的诞生后与妻子回国,紧接着受师兄秦为民的邀请加入国芯,担任国芯的逻辑设计工程师,妻子则回到电科大教书。
  此后他会在国芯八年,直至心力交瘁才应邀前往一家EDA公司做仿真工具顾问,直到师兄邀请加入海芯。
  负责过逻辑设计、结构设计,甚至还负责过微代码编译的全能资历,让苏远山当仁不让地成为了海芯的首席架构师。
  ……
  苏远山用力闭眼,把叶如黛和女儿的身影埋在心底。
  既然重生,中年人的多愁善感就不需要了。
  1991年,对于执念国产芯片的苏远山来说,不算最坏,但也谈不上好。
  这一年,因特尔一边对80486做最后的修补,一边开始憋大招。
  而因为在386时代因特尔就取消了对其他“第二供应商”的X86授权,这一年的AMD[ www.boquge.me]和cyrix等正在用无尘室“clean room”大法做着让因特尔骂娘的逆向山寨。
  当然,就算其他厂商在无尘室进行白盒测试复刻——类似于解剖一颗CPU,然后盲猜微代码最终实现和与原产品兼容的功能——但只要你做的是x86架构,就一定绕不开intel在这个架构下的各种专利。
  其中最臭名昭著的莫过于那条克劳福德338号专利(The Crawford ‘338 Patent),这是条有关内存管理和高速缓存的专利,据说X86下无人能绕开。
  得益于此,因特尔挥舞专利大棒,把一干山寨党揍得溃不成军就不多说了——除了cyrix这个白嫖鬼才。
  对了,山寨党们的CPU都叫XX386,XX486。
  两年后,因特尔的CEO安迪·格鲁夫气得跳脚说新CPU如果再叫586除非踏着我尸体过去,于是Pentium诞生。
  ——灯,等灯等灯。
  相比之下,此时的国内百废待兴——80年代,国内引进了数十条半导体生产线,最终成功投产的只有几条,再加上部分高端产品得以进口国内,使得人们诞生了“造不如买”的错觉。
  要知道,当初国内山寨intelC8008造出DJS-050时,只落后五年。
  而尚处于论证阶段的908工程将会在明年正式批复,却会因为种种原因停滞不前。
  苏远山记得很清楚,明年EDA三巨头之一的Cadence就要进入国内,开始对国产EDA软件熊猫ICCAD进行碾压。
  一段段记忆就如积满黄沙的落叶,随着思绪的蔓延渐渐变得清晰,也让苏远山理清了脉络。
  他的眼睛渐渐明亮。
  碾压熊猫CAD?
  那拥有未来三十年的EDA软件使用经验,知晓所有EDA使用中的难点痛点,以及后世各种优秀算法的自己如果写出一款EDA,那又该是什么?
  降维打击?
  ……
  母亲的呼唤打断了苏远山的思绪。
  “小山。”
  “诶,妈。”苏远山抹了下脸,笑着应道。
  “快收拾下楼,你小舅快到了,说是给你带了礼物。”
  “小舅?”这个已经在脑海中消失许久的称呼,顿时唤醒了苏远山记忆中的不愉快,不由得沉声道:“他来干什么?”
  苏远山的小舅叫张克,在8,90年代算是家族里了不起的人才——他伙同一帮人当倒爷,从南到北,再到遥远的北方帝国,几年就赚下了几百万的身家。为此张秀云没少嘀咕丈夫苏星河,埋怨丈夫身为一个教授还不如一个投机倒把分子赚得多。
  平心而论,小舅并不是那种赚了钱就翘尾巴的土老帽,在高知识分子的姐夫面前,他一向很尊敬,还曾经送过一台浪潮486给苏远山的父亲。
  可一切都在张克结识了那位靠倒卖二手飞机赚了一个亿的牛人后发生了改变。
  之前还对知识怀着敬畏的张克变得目空一切,在那位牛人的指导下杀进期货市场,结果赔得裤衩都不剩。
  后来他找到苏远山的母亲,张秀云这个后世中的“扶弟魔”相信了弟弟“最多一个月就还本”的鬼话,把家中积蓄全部给了弟弟不说,还挪用了十万公款。
  结果可想而知……
  苏星河副教授急得差点一夜白头,到处求人才借钱把窟窿填上。
  这事虽然最终没被发现,但家中却从此没有了安宁——这也是苏远山当初申请留学的原因之一。
  此后小舅便一蹶不振,变成一个到处坑蒙拐骗、满嘴谎言的无赖。
  苏远山的语气让张秀云很惊讶,张克向来对苏远山很好,而儿子也一直很喜欢他这个小舅,今天这小子是吃错药了?
  就在张秀云准备骂人时,便听到苏远山语气变得惊喜起来。
  “是小舅?我下去接他!”
  苏远山穿上外套,迅速拉开房门。
  出门前,他瞥了一眼母亲。
  母亲今年刚过四十,满头青丝,正慵懒地靠在沙发上看电视。
  “妈,你好年轻。”
  “嗯?”
  顾不上母亲的疑惑,苏远山笑着跑下楼梯。
  ——此时的小舅还没有变成那个人人讨厌的赖皮,还是那个对自己极好的小舅。
  那在开发EDA之前先定个小目标,把小舅拉回来。
  至少也得把小舅的钱保住。
  *
  *
  接到小舅没多久,苏星河也开完会回家,姐夫和小舅子两人坐在一起天南海北的聊起天,苏远山趁机溜进书房开始捣鼓电脑——没错,小舅的礼物正是记忆中的486。
  麻利接上显示器和鼠标,摁开电源,一阵等待之后,显出了一个光标。
  苏远山知道,这是Windows3.0等他输入那个有着十分仪式感的命令。
  ——Win。
  “满满的回忆啊。”
  笑了笑,晃着粗笨的轨迹球鼠标,点开桌面菜单。
  和记忆中一样,“名义上”这电脑是送给自己,但里面软件却全是父亲才用得上的。除了Pascal,VC/C++,居然还有Fortran。看来给张克装机的这位也是个高手,知道一个计算机工科的教授需要什么。
  这台自带win3.0的486电脑,用的CPU是去年那一批主频50Mz的,加了几条指令集,比起386快了不少,但阉割了浮点运算。
  内存只有4M,没有声卡,只有一张ISA接口的2D显卡。
  此时的Windows还没有中文版,除了个自带的纸牌也没什么可玩的。
  苏远山启动C++,看着古老的界面再次一笑。
  回到91年,时间挺够。
  他有足够的时间赖完成一套超前贴心的EDA。然后凭着这套EDA,来敲开那些半导体公司的合作之门——谈钱伤感情,就是交个朋友。
  特别是霓国的那些半导体企业此时已经嗅到了危机,纷纷来国内开辟新的市场。要知道现在的光刻机领域,尼康才是老大,日后独孤求败的ASML在尼康面前就是个弟弟。
  苏远山收回思绪,抓起趣÷阁记本和铅趣÷阁,开始思考框架。
  ……
  身后传来父亲的声音。
  “咦?”
  苏远山知道这是父亲和小舅进了书房,但他没有回头,而是做出一副冥思苦想的模样,继续写库代码。
  91年,C++标准库才提出两年,没有多少轮子不说,国内也只有各大高校才能搞到。
  而且现在的编译器都还没有统一,TurboC/C++和VC/C++都有市场。
  张克看着外甥正在快速地输入单词语句,以为他在练英语。不料就在他准备招呼苏远山时,苏星河一把拉住了他,并凑近了显示器。
  苏副教授当然知道自己儿子在干什么。
  所以他才惊讶——这小子不是才学会C++么?居然都会自己写库了?
  苏远山停了一下,深深皱眉,他转过头,仿佛才发现父亲和小舅一样忙道:“爸,小舅。”
  小舅摁住他肩膀笑道:“你小子学英语呢?”
  “嘿嘿,我想搞个软件。”苏远山冲小舅一笑,然后望向父亲:“爸,怎么解决垂悬指针引起的崩溃?”
  最了解理工男的,莫过于另外一个理工男。
  所以苏远山直接用问题堵住父亲的嘴,而且还得是简单问题。
  苏星河怔了怔后笑道:“问就是不要非法使用指针,多用智能指针。”
  接着,他马上问苏远山:“你想设计什么软件?”
  “是这样的,前阵子听留校的师兄们说起BP机,我就去看了一下原理。发现它的芯片挺简单,就想捣鼓一下。但机房电脑里面只有Protel,用来设计PCB还行,设计芯片就糟糕了一点……所以就想自己写个侧重芯片设计的。”
  苏星河听得一愣一愣的,最后终于失笑:“臭小子,有志气!话说你不是才学C++吗?现在就有胆子写EDA软件了?”
  苏远山咳了一声:“什么叫才学……我好歹是苏星河教授的儿子,从小练童子功的,编程是咱家祖传手艺好不好。”
  一句话听得小舅哈哈大笑:“哥,小山这句话说得没错。他这是真正的虎父无犬子啊!”
  苏副教授也笑出了声,那句祖传手艺深得他心。
  当爹的,谁不希望自己儿子牛逼?而且还是在自己的领域牛逼。
  不过苏星河并没把苏远山当回事:“不过一个EDA可不是你一个人能捣鼓出来的。”
  苏远山笑道:“所以我打算把大体框架做出来,然后请爸帮忙呗。”
  苏星河摇头笑道:“加上我也不行。”
  “那就把秦师兄唐师兄他们全部加上,不行就把电科研究生部的师兄全叫来。”
  听到苏远山的狮子大张口,苏星河首先怀疑自己儿子是不是魔障了,但当看到苏远山那清澈、坚定的眼神时,苏副教授知道自己儿子没有魔障,而是坚定地认为这件事可以做。
  沉吟片刻,苏星河示意儿子把电脑让给自己。
  代码并不多,很多都是基于前端框架,算是入门级。那个库因为是刚开始写,所以也看不出来水平。
  但他能看出来,自己儿子的编程习惯很好——注释既规范又准确。
  “远山,我告诉你,一个EDA软件连带配套的设计输入工具、仿真元件验证工具、布局排线工具……起码上百万行代码。又因为它是专业软件,所以很多工具需要对电子电路有一定的了解,否则代码写出来会很难看。最后,你还得和半导体制造企业对接。”
  “再说,国内EDA,华大已经搞了三四年,我办公室的电脑就装得有。”
  苏星河望向儿子,他的意思很明显,你就别折腾了。
  “熊猫CAD我看过了,不行。”苏远山沉默了几秒后笑道:“爸,我之前一直以为我的C++还差点意思,但看了你的源码之后,我发现我挺厉害的。呵呵。”
  “呵!臭小子。”苏星河再次失笑:“不知道天高地厚,你等着。”
  苏星河拿出两张软盘回到书房。
  “这是你秦师兄用C++写的一个电器元件查询小工具,有点小BUG——秦为民的C++虽然半吊子水平,但在电科大一干研究生里还算可以,你能把BUG解决了再说。”
  “什么BUG?”
  “自己调试找。”
  丢下这句话后,苏副教授便不再管儿子,拉着小舅子出了书房。
  ……
  苏星河相信自己的儿子具有远超同龄人的计算机水平,就如苏远山所说,毕竟有童子功在。但再童子功,都不可能有编写一款EDA软件的实力。
  要熟练掌握C/C++,需要的知识不是高中生阶段能掌握的。
  苏远山沉浸在源码中。
  秦为民是他父亲手下的研究生之一,在国芯时期是苏远山的顶头上司,水准一流,属于标准的理工男。
  苏远山很快就找到了BUG所在的代码位置,修改完毕并作出了注释后。他开始给秦师兄做代码精简。
  小舅敲门:“小山,吃饭了。”
  “噢,好!叫我爸来一下。”
  苏远山按下最后一次调试,默默算了一下效率。在他操刀之后,这个小程序的响应时间提升了将近50%。
  苏星河副教授慢慢踱步,脸上自信满满。他知道,儿子必定是遇到难题了。
  “怎么样?臭小子。”苏星河笑呵呵的看着儿子:“知道编程不是请客吃饭了吧。”
  苏远山一笑:“爸,那可不一定。”
  说着苏远山起身,把椅子让给苏星河。
  *
  *
  苏家吃饭没有什么特别规矩,张秀云早就习惯丈夫沉迷工作,所以只是把菜夹到一旁便自顾拉着弟弟问东问西。
  只是小舅的心思并不在他姐的唠叨上,敷衍了几句后挨着苏远山,低声道:“你小子不会真搞定那啥八哥了吧?”
  “当然。”苏远山夹起一块腊肉,凑近小舅道:“小舅,接下来想去哪发财?”
  “就是不知道才来问问你爸,不过你爸也给不出个好建议,白瞎了我一台电脑。”张克开着玩笑说。
  苏远山呵呵笑道:“他是典型的学者,你问他不如问我妈——妈,你说现在做什么最赚钱?”
  “房地产呗,南边不都疯了一样么?”张秀云给丈夫碗里夹了块香肠,冲书房大喊:“苏老师,出来吃饭了!”
  苏远山耸耸肩,冲小舅道:“你看,房地产就是个好项目。”
  小舅失笑:“泡沫那么严重,现在入场不是找死?”
  苏远山笑笑不说话。南边的房地产泡沫是开始了,而且在普通人眼中确实严重。但真要戳破还得等93年的6月,那才是一声惊雷,满地鸡毛。
  这时苏副教授走出书房,他一脸凝重,仿佛不认识儿子一般来到桌前,拿着筷子却不动,只是紧紧地盯着苏远山。
  苏远山镇定自若:“爸,吃饭。”
  “你微积分跟谁学的?”
  “自学的。”
  “……你把老子当鬼糊弄呢。”苏星河哭笑不得,这微积分要是高一都能自学了,自己这儿子怕不是个数学天才。
  “线性代数我都学了点,我又不做数据模型,不需要精通,反正哪里需要学哪里。”苏远山嘿嘿笑道:“不说这些,就问你,你儿子的水平怎么样?”
  苏星河拿起筷子就作势预敲儿子的脑袋。
  “爸,电科不是在筹备成立电子工程学院吗?”苏远山低头躲过筷子,望着父亲笑道:“你好歹也算喝过洋墨水的学者,现在系里那些教授有几个比你懂集成电路懂程序的?”
  “而且你这么年轻,腰好肩好,我觉得你可以挑更重的担子!”
  苏星河怔住了,他夹起一片火腿慢慢咀嚼。
  苏远山乘热打铁:“你看啊,先搞套一流水准的EDA出来,再培养一批微电路设计的人才,指不定咱们国家的半导体行业就原地起飞了。”
  “瞎扯。”苏星河放下筷子,盯着儿子:“你把你的思路给我说一下。”
  “一时半会说不清,待会我整理一下,把思路、标准、流程、团队需求这些做成报告给你。我大致估算了一下,如果没有熟手,要在半年内干完所有的活起码得有个五十人的团队。”
  “至于验证对接,国内的芯片生产线虽然落后,但总是有那么一两条的。蒋庆川师兄所在的江阴晶体管,锡城华晶,SH贝岭都有。甚至878厂都还有一条三英寸的硅片厂,只是现在没人管罢了。”
  见儿子如数家珍般报出这些普通人不可能知晓的半导体企业,苏星河终于相信,儿子是下了功夫的。
  盯着儿子,苏星河沉声道:“你给我个项目报告,会写不?”
  “小菜!”苏远山一脸灿烂。