这个帖子的网络id叫阿文,他这个帖子并没有说操作系统的有关事情,而只是说刚开始对编译器非常感兴趣,大学的时候参加了几个相关的项目,发现自己对cpu的结构学了很久都没有熟悉,于是便产生了自己动手亲自做一个cpu的想法,以此来让自己完全熟悉cpu的工作原理和结构。通过学习数字逻辑电路和计算机原理方面的相关知识,他知道,一个cpu其实也是有很多ttl集成电路组成的,其基本元件不外乎是晶体管、电阻和电容等,区别就只在于工艺方面而已。也就是说,从理论上来将,完全可以由这些基本电气元件来制作比较简单的cpu,实现一些简单的功能。事实上,cpu的发展就经历了这么一个过程。
考虑到水平的问题,这个想法一直留在阿文的脑海中,并没有动手实施。这样一直到大二的某一天下午,他在国外一个专业性的硬件论坛读到了一篇文章,据那个文章的发表者说,这篇文章曾经是一本老杂志上的,他见里面涉及的内容非常专业和精彩,于是便收工将整篇文章敲了上来,作者没有联系到。
这篇文章讲的就是如何使用ttl集成电路来制作极其简单的cpu,里面将总体过程大略地介绍了一遍,例如制作这个cpu主要涉及到哪几个主要的步骤以及哪些知识等,并且在文章的最后,作者还说,这个试验事实上是能够做成功的,他和几个朋友曾经做过一个这样的cpu,当然,它是一个庞然大物。
看到这篇文章之后,阿文终于下了决心,决定自己打造一个cpu。帖子到这里就结束了,在末尾,阿文说看到这里的人气很旺,希望到这里能够找到志同道合的朋友,一起来交流这方面的知识,到目前为止,他的计划已经顺利地完成了一部分了。阿文在末尾留下了一个飞飞号码。
在帖子的后面,只有寥寥几个回帖,无非是“你强”、“厉害”之类的话。很显然,大家并不相信阿文说的话是真的,或者说,阿文所做的事情把大家给吓住了,自己手工制作cpu。难道你以为仅仅是去打磨一下么!
许毅仔细阅读了这个叫阿文的帖子,里面他的措词非常严谨,并没有什么不合理的地方。虽然他所做的事情有点太过匪夷所思了,但也并不是完全不可能,生活中的高手是很多的。许毅接着在站内搜索了一下阿文所发表和参与的帖子,发现他发的帖子很少,回帖也少,不过他回复的那几个帖子的内容的质量却非常高,而且都集中在硬件方面。
从这点来看,他应该不是那种说话不负责的人。想到此,许毅登陆上飞飞,按照阿文提供的号码将其查找出来,发现他需要验证才能加为好有,许毅填了一个“cpu”。
很快,对方通过验证的消息就传了过来――他现在在线。
许毅没有立刻发信息过去,对方好像也不着急,并没有发信息来询问。最后还是许毅主动发信息过去:“你好,我是在黑客学院的操作系统版块看到你的飞飞号码的,我对你手中的那个有关cpu的项目比较感兴趣。”
对方直接发来一句:“首先先回答我三个问题。”
许毅还没来得及应答,对方的问题就已经发了过来,三个问题,考察的内容有对相关硬件知识的概念,也有cpu某个部位的具体作用。好在许毅对这方面还有点了解,这三个问题都没能难道他,很顺利地就通过了阿文的考核。
“终于来了以为稍微懂行的人了!”阿文发来的消息中这样说道。按照他的说法,前面应该也有人找过他,而且也遇到过这种待遇。
“很多人来找过你吗?你问的这三个问题并不是很难呀。”许毅奇怪地问道。
“也不多,就四五个人,你是这些人当中水平最高的。题目之所以这么容易是因为我把题目难度降低了很多,不过我相信,前面的人都回答不出什么东西来。”
“呵呵,你过奖了!在黑客学院翻到你的帖子,特意来找你问问情况。”
“这么说来,你是真的相信我在帖子中所说的话了?”
“那是肯定,不相信还跑来干嘛?”许毅反问,“再说我也知道用ttl集成电路的确是可以做出简单功能的cpu的,虽然事情比较烦琐了一点。”
“看来今天还真碰到能够聊几句的人了。”对方的话里透露者兴奋,“在你之前的那几个,都是半斤八两,对这方面涉及的并不是很深,所以我跟他们没有共同语言。”他之所以设立这样一个考核规矩,主要是因为前面两个人聊了半天,连什么是cpu的cache是什么都不知道,浪费了阿文好多时间。
“请问你现在已经做到哪里了?”许毅开门见山地问到。
“现在我已经完成了alu/寄存器的架构和控制面板的架构!”
“哦?”他这么说,许毅并不能看得很懂,谁知道他口中的控制面板是什么东西,alu和寄存器许毅倒知道。
“我这么说你可能看不懂,这样吧,我把我的项目日志给你看看。”阿文想到了许毅的难处。
“那最好不过了!”
接着,阿文发出了一段文字,格式非常简单,就是前面是日期,然后主要做了哪些事情。
1996年10月6日:开始写项目日志,并为这个项目制定了日程表。
1996年10月18日:完成了错误处理和中断机制的基本设计。
1996年10月29日:完成微代码的第一轮设计,并将这个cpu命名为smartech1
1996年11月13日:smartech-1的汇编器基本成型。
1996年12月28日:在模拟器中完成了页面错误机制。
对指令集架构进行了意义重大的改变.
设计用于多进程的上下文环境切换
完成对微代码的重写工作
一直到前两天的“完成控制面板的架构”工作。
许毅看到,他这个项目已经历时一年多了,而且在整个项目的过程中,他进行了大量的重写改进工作,有好几次甚至是完全推翻前面的设计,将自己学到的新知识应用到smartech1的制作当中去,从这份简单的项目日志看来,可以清晰地看到阿文在这方面的进步。在项目刚开始,他完全还是个菜鸟,很多设计都非常不合理,很多知识也不知道。可是现在,他已经成为了这方面的高手,对整个smartech-1了如指掌,同时也将cpu的很多工作原理和结构完全掌握。
看到这份日志,许毅知道 ,阿文确确实实在做这个项目,他实在佩服阿文的毅力和耐性。
“我看了你的日志,你的确非常厉害。我想问下,你的smartech-1的最终目标是想达到一个什么样的程度?”
“刚开始的时候,我只是抱着熟悉cpu的工作原理和结构的目的开始这个项目的,可是现在,我发现我已经喜欢上了smartech1,从某种意义上来说,它是我的孩子,我现在的目标已经有了改变,不再满足于最初的想法,我想真正将这个cpu做出来,成为一个功能完全的cpu!”
“我要让它支持完整的硬件地址转换、内存映射io和dma,当然,多线程也少不了!这个cpu的地址总线是8位的,做成功之后,它的主频应该会达到3mhz!每个进程拥有128k地址空间,其中包括32个2k的数据页和32个2k的代码页,这些地址映射到22位的物理地址空间中,如果算上外部设备的地址空间就是23位物理地址空间!”
“将来,我打算用这个cpu来组装一台微型计算机,它的名字我都已经想好了,就叫它smartech-1!呵呵,也许,以后还可以用这台计算机来做一个web服务器!我现在已经在为这台cpu设计c语言编译器了”
阿文滔滔不绝地向许毅描述着他的蓝图,而许毅则一直在一边静静地听看着,从这些不断传输过来文字,许毅看到了一个技术人员对技术的疯狂和沉迷。从他身上,许毅看到了计算机历时上早期计算机黑客的身影。那个时候的黑客,绝大多数都是硬件黑客,他们对电子硬件非常精通,极大地推动了计算机硬件的发展,第一台微型电脑就是由硬件黑客爱德华络伯茨发明的。
通过进一步聊天许毅知道,阿文做这个cpu完全是出于自己的爱好和兴趣,除此之外别无他想,不过他的出现,却让许毅有了一个新的决定。
“阿文,我对你的smartech非常感兴趣,我们经常保持联系,另外,你如果想找志同道合的人一起实施这个计划的话,我想我可以帮到你.....”