西西河

主题:【震惊】地球最强DIY——CPU也可以用纯手工打造 -- 大卫

共:💬18 🌺34 新:
全看树展主题 · 分页 下页
家园 【震惊】地球最强DIY——CPU也可以用纯手工打造

在如今越来越靠程序化、流水线作业来完成生产的制造业中,想找一件手工打造的产品,真是越来越难了。

好在当今社会中,还是有一些强人在孜孜不倦的在完成着心中的“完美DIY”梦想。因此也使我们多了一些大开眼界、崇拜和向慕的机会。

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133309]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

看看上面这张图,究竟是个什么东东呢?可能有人会说,这不过是个大学生用的实验仪器吧。但细心的朋友则肯定已经看到这个东西下面的“Magic-1 Homebrew CPU”字样了。

难道这真的是一个CPU?请赶快闭好你张大了的嘴巴。让笔者来告诉你答案:的确是!这是一个名字叫Bill Buzbee的朋友用200多块74系列的TTL集成电路通过纯手工制造的CPU。

这个神奇的Magic-1,就是由一个名叫Bill Buzbee的家伙手工打造的CPU。而Magic-1也是基于这个CPU制造的计算机的名字。有意思的是,“制作Magic-1的念头是在一次午餐中冒出来的”,Buzbee说。

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

2001年12月6日 Buzbee开始写项目日志,并为自己制定了一张艰难但还算乐观的日程表

2001年12月18日 完成错误处理和中断机制的基本设计

2001年12月29日 完成微代码的第一轮设计

2002年1月6日 完成了Magic-1模拟器,可以对调用/返回指令序列进行跟踪

2002年1月8日 模拟了Fibonacci函数,并丰富了软件接口约定

2002年1月13日 Magic-1汇编器(qas)成形

2002年1月18日 决定是选择大尾数法还是小尾数法表示整数的字节顺序,最终选择了大尾数法

2002年2月28日 在模拟器中完成了页面错误机制

2002年3月9日 决定使用普通电线来进行连线

2002年6月3日 对指令集架构进行了意义重大的改变

2002年6月4日 用C语言编写了Fabonacci程序并编译为Magic汇编程序

2002年6月22日 改用分立的数据和代码地址空间

2002年6月25日 设计用于多进程的上下文环境切换

2002年7月12日 完成对微代码的重写工作

2002年8月13日 放弃对rotate指令的支持

2002年9月11日 上了Gil Smith的一堂电子电路课程

2002年9月22日 从eBay上买了板材和外壳

2002年的其他日子 向Ken Sumrall请教如何使用寄存器,从他那里学到了Ohm规则

2003年3月30日 从Jhon Doran的D16/M中得到了灵感,完成了ALU/寄存器板的架构

2003年4月13日 完成控制板的架构

2003年4月14日 思考前面板的架构

2003年5月3日 第一轮架构设计完毕

2003年5月6日 将构建环境从Linux一直到Windows

2003年5月16日 构思新的Magic-1模拟器

2003年5月27日 在新的模拟器上成功运行了Fibonacci程序

2003年6月3日 完成了新的汇编器功能

2003年6月21日 Magic架构验证和测试用例达到了100%覆盖率

2003年6月23日 Alistair Roe通过email提出了Magic-1外壳的构想

2003年8月3日 将LCC(C编译器)一直到了Magic上

2003年8月10日 在模拟器上成功地实现了Fibonacci程序的C语言版本 (这一天是Buzbee的生日)

2003年8月27日 从David Conroy那里学到了信号完整性

2003年9月18日 决定使用普通的带皮电线进行连接(奇怪,前面已经决定一次了)

2004年1月3日 完成了全部的设计工作,开始制作

2004年1月18日 Magic-1有了第一次心跳

2004年1月26日 前面板完成

2004年2月9日 内存板完成

2004年2月20日 EPROM子板完成

2004年2月26日 设备板完成

2004年3月7日 微代码序列成功运转

2004年3月9日 执行了第一条指令

2004年3月19日 控制板完成

2004年4月8日 尝试发布前期的工作

2004年4月12日 ALU/寄存器板完成;同日被告知,发布尝试失败

2004年4月13日 Magic-1成功运行了Fibonacci程序!

2004年4月25日 Dave Conroy的测试会话发现了不真实的内存碎片

2004年5月3日 Magic-1能“说话”了

2004年5月8日 运行“Sieve of Erasthones”基准

2004年5月16日 完成了IDE接口,Alistair Roe完成了外壳设计

2004年7月23日 发布基本架构

2004年9月12日 用户模式程序可以工作

2004年9月15日 运行“Dhrystone”基准

2004年9月22日 使用copy-on-write实现了fork()

2004年10月23日 Magic-1的Dhrystone得分达到了384(0.25MIPS)

2004年10月31日 运行Colossal Cave Adventure

2005年4月9日 Alistair Roe设计的外壳到货

2005年5月13日 Magic-1的硬件设计完毕

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133310]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

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

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133311]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

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

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

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133358]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

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

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

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133312]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

ALU/寄存器板的元件面

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133313]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

ALU/寄存器板的连线面

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133314]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

控制板的元件面

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133315]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

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

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133357]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

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

怎么样?够强的吧?这还不算什么,这个Buzbee还用这个CPU组装了一台微型计算机,名字也叫Magic-1。

[url=http://www.pcpop.com/doc/App/ImageShow.aspx?category=article&sn=000133361]

点看全图

外链图片需谨慎,可能会被源头改

[/url]

可实现Telnet服务功能

这台计算机包括两个串口和一块20M的1.3吋硬盘和另一块30M硬盘。最让人“乍舌”的事,这位朋友还将这台计算机做为一个Web服务器,同时支持Telnet会话(虽然只支持一个会话)。哦,还有,为了让这个系统能够跑起来,Buzbee还为它准备了一个C编译器!

关键词(Tags): #CPU
家园 牛人, 花!
家园 精彩
家园 厉害
家园 NB!

NBA NBA

家园 崇拜
家园 牛人!
家园 NB大了
家园 哼哼,别以为这是新鲜想法

长城零五零三的CPU,你要能找得着那就叫奇迹!

家园 又一个包子?萨大给讲讲?
家园 能跑高清吗?
家园 牛人,米人.

不过用FPGA搞就好多.

家园 好奇,搞编译器的人会不知道CPU运作
家园 那是,他要是能用分立元件搞一个还差不多

不过即使如此也不新鲜,最早的计算机就是这样搞出来的,而且还是电子管的。

家园 彻底被雷了

多年来,我是这么兜售software engineering的好处的。

Software,只需要有台PC就可以自己干上了,如果加个宽带那算附加分。其它行业呢?你想自个造飞机汽车火箭?理论上虽然可行,但是你我普通人,还是算了吧。至于CPU之类芯片,你先造个fab给大家看看。

看来我错了。。很高兴,我错了。

全看树展主题 · 分页 下页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河