原创 最强之DIYCPU也可通过纯手工来打造

2006-11-30 19:30 1792 3 3 分类: 工程师职场

这是一个名字叫Bill Buzbee的朋友用200多块74系列的TTL集成电路通过纯手工制造的CPU,名字叫Magic-1,也是基于这个CPU制造的计算机的名字。制作Magic-1的念头是在一次午餐中冒出来的Buzbee说。Buzbee是一位编译器作者,但他为自己不熟悉CPU的实际工作而感到郁闷,因此想到动手来亲自作一个CPUBuzbee在大学时候没有学过任何电子类的课程,而且对于晶体管、电阻、电容等也只是一知半解。他的朋友Ken想到有一本老杂志曾经介绍过如何使用TTL集成电路来制作极其简单的CPU,并推荐他去看一看。一周后,Buzbee找到了这些文章,并全部读了一遍。然后在下一次午餐上,BuzbeeKen说起决定自己打造一个CPUKen说:为什么不呢?于是,Bill BuzbeeMagic-1项目拉开了序幕。


       2001126 Buzbee开始写项目日志,并为自己制定了一张艰难但还算乐观的日程表 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


20011218 完成错误处理和中断机制的基本设计
  20011229 完成微代码的第一轮设计
  200216 完成了Magic-1模拟器,可以对调用/返回指令序列进行跟踪
  200218 模拟了Fibonacci函数,并丰富了软件接口约定
  2002113 Magic-1汇编器(qas)成形
  2002118 决定是选择大尾数法还是小尾数法表示整数的字节顺序,最终选择了大尾数法
  2002228 在模拟器中完成了页面错误机制
  200239 决定使用普通电线来进行连线
  200263 对指令集架构进行了意义重大的改变
  200264 C语言编写了Fabonacci程序并编译为Magic汇编程序
  2002622 改用分立的数据和代码地址空间
  2002625 设计用于多进程的上下文环境切换
  2002712 完成对微代码的重写工作
  2002813 放弃对rotate指令的支持
  2002911 上了Gil Smith的一堂电子电路课程
  2002922 eBay上买了板材和外壳
  2002年的其他日子 Ken Sumrall请教如何使用寄存器,从他那里学到了Ohm规则
  2003330 Jhon DoranD16/M中得到了灵感,完成了ALU/寄存器板的架构
  2003413 完成控制板的架构
  2003414 思考前面板的架构
  200353 第一轮架构设计完毕
  200356 将构建环境从Linux一直到Windows
  2003516 构思新的Magic-1模拟器
  2003527 在新的模拟器上成功运行了Fibonacci程序
  200363 完成了新的汇编器功能
  2003621 Magic架构验证和测试用例达到了100%覆盖率
  2003623 Alistair Roe通过email提出了Magic-1外壳的构想
  200383 LCCC编译器)一直到了Magic
  2003810 在模拟器上成功地实现了Fibonacci程序的C语言版本 (这一天是Buzbee的生日)
  2003827 David Conroy那里学到了信号完整性
  2003918 决定使用普通的带皮电线进行连接(奇怪,前面已经决定一次了)
  200413 完成了全部的设计工作,开始制作
  2004118 Magic-1有了第一次心跳
  2004126 前面板完成
  200429 内存板完成
  2004220 EPROM子板完成
  2004226 设备板完成
  200437 微代码序列成功运转
  200439 执行了第一条指令
  2004319 控制板完成
  200448 尝试发布前期的工作
  2004412 ALU/寄存器板完成;同日被告知,发布尝试失败
  2004413 Magic-1成功运行了Fibonacci程序!
  2004425 Dave Conroy的测试会话发现了不真实的内存碎片
  200453 Magic-1说话
  200458 运行“Sieve of Erasthones”基准
  2004516 完成了IDE接口,Alistair Roe完成了外壳设计
  2004723 发布基本架构
  2004912 用户模式程序可以工作
  2004915 运行“Dhrystone”基准
  2004922 使用copy-on-write实现了fork()
  20041023 Magic-1Dhrystone得分达到了3840.25MIPS
  20041031 运行Colossal Cave Adventure
  200549 Alistair Roe设计的外壳到货
  2005513 Magic-1的硬件设计完毕


 


点击看大图


 


55f1bd36-3da1-47f8-95a1-780880f2532e.jpg


实物照片大曝光,已经在工作状态……


 


3eb318b2-3cec-4f66-94dc-f614feba3fb3.jpg


这小朋友抱着DIY出来的CPU,不知道心里是个什么滋味呢?


 


学过数字逻辑和数字电路的朋友一定知道,通过使用TTL门电路,的确是能够实现一个CPU的;笔者在大学时也曾在软件上使用74系列芯片模拟过功能非常简单的CPU。然而,Buzbee朋友搞得这个家伙却是一个功能完全的CPU,我不知该如何形容它的功能,我本想说麻雀虽小,五脏俱全,但是……


这款家酿”CPU可以支持完整的硬件地址转换、内存影射IODMA,并且支持多进程,主频高达”3MHz;该CPU采用8位地址总线,每个进程拥有128K地址空间,其中包括322K的数据页和322K的代码页,这些地址影射到22位的物理地址空间中,如果算上外部设备的地址空间就是23位物理地址空间。


怎么样?够强的吧?这还不算什么,这个Buzbee还用这个CPU组装了一台微型计算机,名字就叫Magic-1,这台计算机包括两个串口和一块20M1.3吋硬盘和另一块30M硬盘。最让人乍舌的事,这位朋友还将这台计算机做为一个Web服务器,同时支持Telnet会话(虽然只支持一个会话)。哦,还有,为了让这个系统能够跑起来,Buzbee还为它准备了一个C编译器!


 


点击看大图


CPU


 


点击看大图


工作中


 


点击看大图


调试时的照片


 

点击看大图


机箱内部


 

432ee392-3de3-43a4-9b50-75942d62b6b3.jpg


镂空的顶板,可以看到内部的照明蓝光,非常绚丽


 

7d60d0cb-fe4a-4269-bddd-32a4ed44eda0.jpg


 

点击看大图


内存板      从来没有这么强过!手工电路板特写图秀


 

d1dac75b-a4c3-48cc-b490-c43faa047e08.jpg


ALU/寄存器连线面


 

a8cd77a2-8028-4c35-bb42-f2d0c246f688.jpg


控制卡


 

0701dfb0-5282-4c0a-99ba-5b9b05badb06.jpg


设备板的元件面,注意中间有一块锂电池


 

366671e3-f582-449d-83aa-f1b03d0007e3.jpg


大特写!背面连线的局部图


 

b1e99417-0ca6-4ac2-9752-69c96fa58f6e.jpg


可实现Telnet服务功能


 


作者的日志地址:


http://www.homebrewcpu.com/construction.htm


感兴趣的DIYer可以到这位仁兄的网页上敬仰一下。网址:http://www.homebrewcpu.com/

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /1 下一条