第321章 从零开始的长城二号(第1页)
正月十六,清晨六点。陈星睁开眼睛时,有那么几秒钟不知道自己身在何处。不是陕北窑洞低矮的土炕,不是火车硬座车厢摇晃的座椅,而是一张真正的床。虽然只是基地临时宿舍的铁架床,铺着薄薄的褥子,但平整,干净。他猛地坐起来,环顾四周。十平米左右的房间,摆着四张床,其他三张都空着。靠窗有张旧桌子,桌上摆着他昨晚修改到凌晨的设计图。不是梦。他真的在这里,在香山基地,在中国计算机技术的最前沿。陈星跳下床,用最快的速度洗漱。水龙头里流出的自来水冰凉刺骨,但他毫不在意,甚至觉得清醒。换上那身不太合身的旧军装,他小心翼翼地把设计图叠好,装进布包。王技术员说了,今天上午要开项目启动会。推开房门,走廊里已经有人走动。穿着蓝色工装的技术员们端着搪瓷缸子,匆匆走向食堂。陈星跟着人流,心里有些忐忑。食堂里热气腾腾。大桶里是玉米粥,筐里是窝头,还有一小盆咸菜。陈星学着别人的样子,打了一份,找了个角落坐下。刚吃两口,对面坐了个人。“新来的?”对方三十多岁,戴着眼镜,头发有些乱,像是一夜没睡。“嗯,我叫陈星,昨天刚报到。”陈星连忙说。“杨振华。”对方简单自我介绍,咬了口窝头,含糊不清地说,“听说你是自学的?”“是……自学的,可能有很多不足。”杨振华推了推眼镜,仔细打量他:“赵总工说你画了个4位处理器架构图,能给我看看吗?”陈星赶紧放下窝头,从布包里拿出那沓纸。杨振华接过来,一边吃一边看。他的阅读速度极快,几乎是一目十行,但偶尔会停下来,盯着某处思考几秒。“这里,”他指着一处电路设计,“你用二极管做与门,理论上没错,但实际应用中会有压降问题。为什么不用晶体管?”“我……我没学过晶体管电路。”陈星脸红了,“那本书只讲到电子管和二极管。”杨振华抬起头,看了他一会儿,忽然笑了:“半本书,学到这个程度,很不错了。”他把图纸还给陈星:“吃完饭去会议室。今天启动‘长城二号’项目,你是设计组的。”“设计组?”陈星愣住,“我才刚来……”“赵总工点的名。”杨振华站起来,端着空碗,“抓紧吃,八点准时开会。”看着杨振华离开的背影,陈星心跳加速。设计组?他能行吗?上午八点,会议室里坐满了人。陈星找了个角落的位置坐下,尽量不引人注意。但陈启明一进来就看见了他,招手让他坐到前面。“过来,坐这儿。”陈启明指着身边的位置,“一会儿要分组讨论,你跟紧我。”“陈老师,我……”“别叫我老师。”陈启明拍拍他肩膀,“咱们都是同事。”“赵总工说了,你是设计组的,那就得参与核心讨论。别怕,有什么不懂就问。”陈星点头,手心却在出汗。八点整,赵四准时推门进来。他今天穿了件灰色的中山装,显得很精神,但眼下的阴影透露出昨晚又熬夜了。“人都到齐了,咱们开始。”赵四走到黑板前,没有寒暄,直接进入主题。“今天会议只有一个议题:‘长城二号’8位微处理器项目,正式启动。”他在黑板上写下几个大字:目标:tel8080级别集成度:5000晶体管主频:1hz时间:三年,1979年底前完成设计定型会议室里响起低低的议论声。“安静。”赵四敲了敲黑板,“我知道大家在想什么。难,太难了。”“咱们的‘长城一号’只有2300晶体管,良品率才15,现在直接翻一倍还多,是不是太冒进了?”他顿了顿,环视全场:“我告诉大家,不是我们冒进,是形势逼人。”“国际市场上,tel的8080已经量产,zilog的z80马上要发布,ostechnology的6502也出来了。”“8位处理器时代已经到来,我们再抱着4位不放,等咱们造出来,市场早就淘汰了。”张卫东举手:“赵总工,工艺跟不上怎么办?”“咱们现在最多做到5微米制程,要集成5000晶体管,至少得3微米。”“工艺渐进。”赵四写下这四个字,“这就是我们的策略。不追求一步到位,而是分阶段提升。”“第一阶段,用现有工艺,通过优化布局,先做到集成4000晶体管。”“第二阶段,等新光刻机到位,再往3微米走。”林雪皱眉:“可是布局优化有极限,5000晶体管真的可能吗?”,!“可能。”说话的是杨振华。他站起来,走到黑板前,拿起粉笔,“我昨晚算了一夜。如果我们采用新的单元库设计,把标准单元的面积缩小20,再优化布线,在5微米工艺下,极限可以做到4800晶体管。”他在黑板上飞快地画着草图:“看,这是传统的布局方式,浪费了大量空间。”“如果我们改成这样,用蛇形走线,这里,这里,都能节省面积。”陈星紧紧盯着黑板。那些复杂的图形和公式,有些他能看懂,有些完全陌生。但他强迫自己记住每一个细节,就像在窑洞里记那些电路图一样。“杨工的计算给了我们信心。”赵四接着说,“但光有硬件设计还不够。这次‘长城二号’项目,我要成立一个‘软件小组’。”“软件小组?”下面有人疑惑。“对。”赵四点头,“咱们过去只关注硬件,芯片造出来,怎么用?谁来编程?有什么软件能跑?”“这些问题,以前可以不想,但现在必须想。因为芯片的价值,最终要靠软件实现。”他看向张卫东:“卫东,软件小组你来牵头。”“任务有三个:第一,开发‘长城二号’的汇编语言和编译器;”“第二,设计一个最简化的操作系统内核;“第三,编写基础的应用软件,比如文本编辑器、简单计算器。”张卫东深吸一口气:“赵总工,这任务……比硬件设计还难。”“咱们现在懂软件的人,一只手数得过来。”“所以要从头培养。”赵四说,“从今天起,每个硬件设计师,每周至少要花一天时间学软件。”“反过来,软件组的人也要学硬件原理。我要的是复合型人才,是既懂芯片又懂编程的人。”会议室里安静下来。这个要求,超出了很多人的认知范围。在他们看来,硬件是硬件,软件是软件,就像钳工和电工,各干各的活。“我知道大家不习惯。”赵四的声音缓和下来,“但这就是未来。”“计算机不是孤立的芯片,它是一个系统。”“硬件是躯体,软件是灵魂。没有灵魂的躯体是行尸走肉,没有躯体的灵魂是无根浮萍。”他走到窗边,推开窗户。冷风吹进来,带着早春的气息。“同志们,咱们在做的,不是一份工作,是一场革命。一场从‘制造’到‘创造’,从‘跟跑’到‘并跑’的革命。这条路没人走过,所以每一步都得我们自己摸索。”“可能会摔跤,会走弯路,会被人笑话。但如果我们不走,就永远只能跟在别人后面,吃别人剩下的。”他转过身,目光扫过每一个人:“现在,愿意跟我走这条路的,留下。觉得太难想退出的,我不怪你,可以申请调去其他项目。”没有人动。陈启明第一个站起来:“赵总工,我跟你走。”林雪第二个:“我也跟。”张卫东推了推眼镜:“软件这块,我拼了命也得搞出来。”杨振华慢条斯理:“算法我负责,没问题。”王技术员眼圈红了:“我老婆子不懂什么软件硬件,我就知道,赵总工指的路,准没错。”一个接一个,所有人都站了起来。陈星也站起来了。他站得笔直,手在微微发抖,但眼神坚定。赵四看着这一张张脸,年轻的脸,不再年轻的脸,都有同样的光芒。“好。”他只说了一个字。但足够了。会议持续到中午。分组讨论时,陈星被分到陈启明的设计一组。“咱们组负责cpu核心设计。”陈启明在白板上画着框图,“算术逻辑单元、寄存器堆、指令译码器、控制单元……小陈,你对哪块最熟?”陈星老实说:“我都……都不熟。书上只讲了原理,没讲具体设计。”旁边一个年轻技术员笑了:“那你来干什么?”“小刘!”陈启明瞪了他一眼,转向陈星,“没关系,谁都是从不会开始的。”“这样,你先跟我做指令集设计。这是芯片的灵魂,也是最考验设计功力的地方。”他递给陈星一本厚厚的笔记:“这是我这些年收集的tel8080指令集分析,还有z80的一些资料。你先看,有问题随时问我。”陈星接过笔记,沉甸甸的。翻开第一页,工整的字迹,详细的注释,还有手绘的时序图。“陈老师,这……”“叫老陈就行。”陈启明拍拍他肩膀,“抓紧看,下午咱们要开讨论会。”“记住,咱们不是简单仿制,是要设计自己的指令集。”“既要考虑兼容性,又要考虑扩展性,还要考虑易用性。这可是个大学问。”整个上午,陈星都泡在那本笔记里。他像一块干渴的海绵,疯狂吸收着知识。很多概念他第一次接触。小主,这个章节后面还有哦,,后面更精彩!寻址方式、中断处理、流水线设计。但他强迫自己理解,不懂就问,问陈启明,问组里其他人。午饭时,他端着饭盒,一边吃一边看笔记。杨振华坐过来,看了眼他正在看的内容。“指令编码这一章?”杨振华问。“嗯,看不懂。”陈星老实说,“为什么要设计这么多寻址方式?直接寻址、间接寻址、立即寻址、变址寻址……太复杂了。”“为了灵活。”杨振华拿过他的笔,在桌上画起来,“你看,假如你要处理一个数组。”“如果用直接寻址,你得知道每个元素的具体地址,太麻烦。”“但用变址寻址,只需要一个基地址,一个偏移量,循环起来方便多了。”他简单几笔,画出了一个循环读取数组的示例。陈星恍然大悟:“原来是这样……那中断又是为什么?”“让cpu能同时处理多个任务。”杨振华继续画,“比如你在计算,突然有键盘输入。”“如果没有中断,你得不停地去查键盘有没有按,浪费cpu时间。”“有了中断,键盘按下去,发个信号,cpu暂停手头工作,先去处理输入,处理完再回来继续计算。”“我明白了!”陈星眼睛发亮,“就像……就像一个人本来在看书,突然电话响了,他接完电话再回来看书。”“对,就是这个意思。”杨振华笑了,“你很会比喻。搞技术的人,有时候缺的就是这种把复杂问题简单化的能力。”陈星不好意思地挠挠头:“我是真不懂,所以只能想些土办法理解。”“土办法才是好办法。”杨振华认真说,“技术归根结底,是为了解决实际问题。能解决问题的办法,就是好办法。”吃完饭,陈星继续看笔记。下午的讨论会,他坐在角落里,认真听,拼命记。讨论很激烈。关于指令集应该设计多少条指令,大家争得面红耳赤。“指令越多,功能越强!”一个技术员说。“但电路越复杂,成本越高,出错概率越大!”另一个反驳。“要兼顾,既不能太少,也不能太多……”陈启明听着,偶尔插话引导,但大多数时间让年轻人自己争论。等大家吵得差不多了,他才开口:“小陈,你说说看。”所有人都看向陈星。陈星愣住了。他一个新人,刚来第一天,哪有资格在这种问题上发言?“别怕,想到什么说什么。”陈启明鼓励道。陈星深吸一口气,站起来。他想起在陕北的日子,想起老乡们用算盘算账的样子。“我……我觉得,指令就像工具。”他慢慢说,“一个木匠,不需要一百种刨子,但常用的那几种必须好用。”“咱们设计指令集,是不是也应该这样?”“最常用的操作,比如加减乘除、数据搬运、逻辑判断,这些指令要设计得高效、快速。、”“不常用的操作,可以简化,甚至不要。”他顿了顿,声音更坚定了些:“我在农村,看老乡们用算盘。”“算盘只有加减乘除,但能解决大多数问题。太复杂的计算,他们也不用算盘,用笔算。”“芯片是不是也可以这样?把基础功能做扎实,复杂功能让软件去实现?”会议室里安静了几秒。杨振华第一个鼓掌:“说得好!这就是risc思想的前身。精简指令集。虽然现在国际上流行cisc,但你这个思路,很有前瞻性。”陈启明也点头:“小陈这个比喻很形象。指令集不是越复杂越好,是要好用。好用的标准是什么?是让编程的人舒服,让芯片跑得快。”讨论继续,但方向清晰了很多。陈星的话像一颗石子,让争论的漩涡找到了出口。散会时,陈启明叫住陈星:“今天表现不错。晚上有空吗?”“有!”“来我办公室,我给你补补课。指令集设计,门道多着呢。”“谢谢陈老师!”“说了叫老陈。”陈启明笑着走了。晚上八点,陈星敲开陈启明办公室的门。屋里堆满了书和图纸,几乎没有下脚的地方。陈启明正在一张大图纸上画着什么,见他进来,招招手:“过来,看这个。”那是一张极其复杂的芯片布局图,上面密密麻麻的线条,像一座微缩城市。“这就是‘长城一号’的版图。”陈启明说,“2300个晶体管,咱们花了两年时间。现在要做5000个,你觉得关键在哪里?”陈星仔细看着图纸,许久才说:“布线……布线太复杂了。”“对!”陈启明一拍桌子,“就是布线。晶体管可以画小,但线不能太细,否则电阻大,容易断。线不能太密,否则干扰大。线不能太长,否则延迟大。”他抽出一张白纸,开始画:“所以咱们得重新设计单元库。把常用的逻辑门。与门、或门、非门、触发器。做成标准模块,像搭积木一样组合。每个模块的接口要规范,这样布线才容易。”小主,这个章节后面还有哦,,后面更精彩!他一边画一边讲,从晶体管原理讲到版图设计,从功耗计算讲到时序分析。陈星听得如饥似渴,遇到不懂的就问,陈启明也不厌其烦地解释。讲到夜里十一点,陈启明忽然停下:“差不多了,今天先到这儿。你回去消化消化,明天继续。”陈星站起来,深深鞠躬:“谢谢陈老师!”“说了叫老陈。”陈启明摆摆手,“赶紧回去休息,明天任务更重。”走出办公楼,夜风很冷。但陈星心里是热的。他抬头看天,北京的夜空比陕北明亮得多,能看到更多的星星。那些星星有的亮,有的暗,有的聚成团,有的孤零零。他想,自己现在就像其中一颗。也许不是最亮的,但至少发光了。回到宿舍,同屋的另外三个人都回来了。都是年轻人,一个来自清华,一个来自北大,还有一个从上海微电子所调来的。“你就是陈星?”清华的那个上下打量他,“听说你是自学成才?”“谈不上成才,还在学。”陈星老实说。“别谦虚了。”北大的那个递给他一个苹果,“赵总工特招的人,肯定有两把刷子。以后多指教。”上海来的那个推了推眼镜:“听说你懂电路设计?我正好有个问题……”四个人围在一起,讨论起技术问题。苹果在桌上传来传去,谁渴了咬一口。图纸摊了满床,铅笔在纸上沙沙作响。夜深了,楼管来催熄灯。他们才意犹未尽地收拾。躺在黑暗里,陈星睡不着。他想起了陕北的窑洞,想起煤油灯下那半本破书,想起队长恨铁不成钢的眼神,想起爹信里“安分守己”的嘱咐。如果那时放弃了,现在会怎样?大概还在黄土高原上,日出而作,日落而息,等着不知道什么时候才能到来的回城机会。但现在,他在这里。在中国计算机技术的核心,参与着一个伟大项目的起步。这一切,像梦,又不是梦。隔壁床传来轻微的鼾声。陈星翻了个身,看着窗外透进来的月光。他想,这就是科学的春天吧。不是阳光普照的温暖,而是冰雪消融时,种子在冻土下积蓄力量,等待破土而出的那一刻。而他,就是其中一颗种子。虽然小,虽然不起眼,但终究,发芽了。闭上眼睛时,陈星默默许了个愿:三年后,当“长城二号”成功的那天,他要回陕北一趟,告诉队长,告诉爹,告诉所有说他“不务正业”的人。看,这条路,我走通了。不只是我,还有千千万万像我一样的人,都在走。走一条从零开始的路。走一条中国人自己的路。:()穿越五九,开局签到八级钳工