搜索
bottom↓
回复: 48

强!用集成电路手工打造CPU

[复制链接]

出0入162汤圆

发表于 2006-10-17 22:36:30 | 显示全部楼层 |阅读模式
在如今越来越靠程序化、流水线作业来完成生产的制造业中,想找一件手工打造的产品,真是越来越难了。





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



Magic-1是一个名叫Bill Buzbee的家伙手工打造的CPU,也是基于这个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的硬件设计完毕









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



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



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

ALU/寄存器板的元件面





ALU/寄存器板的连线面









出0入0汤圆

发表于 2006-10-17 22:44:26 | 显示全部楼层
虽然这DIY精神真的值得景仰下,但个人认为,学CPU,还是直接用FPGA模拟比较好……



PS:最近的那些两百多块钱的中高档FPGA,用来模拟标准i386是丝毫不成问题的……同时VHDL程序还可以很轻易的转化成标准的TTL电路图……真要搞DIY也没必要排斥现代科技成果么……

出0入0汤圆

发表于 2006-10-17 22:46:34 | 显示全部楼层
现在的FPGA是够便宜的了,可EEPROM一点都不便宜。18V02什么价钱?

出0入0汤圆

发表于 2006-10-17 22:49:42 | 显示全部楼层
哈,什么时候有空,搞几个真空管来试试看。

出0入0汤圆

发表于 2006-10-17 22:53:35 | 显示全部楼层
他还开了个单线程的Telnet,我上去过,还有点小游戏,比较有意思~~~

出0入0汤圆

发表于 2006-10-17 23:17:24 | 显示全部楼层
真空管搞的话你一开机恐怕要跳闸的!

出0入0汤圆

发表于 2006-10-17 23:47:07 | 显示全部楼层
佩服老外的专业精神,也羡慕老外有那么多的空闲时间可以做自己喜欢的事情
头像被屏蔽

出0入0汤圆

发表于 2006-10-18 00:22:22 | 显示全部楼层
留意一下这张图:







使用的就是我们邮购部供应的 wire-wrapping 线。 不过我们目前只是建议会员用作焊线,它的真正用途叫“柯机线”(即OK线)。



那位在使用这种方法连线? 长时间工作可靠吗?

出0入0汤圆

发表于 2006-10-18 00:27:38 | 显示全部楼层
景仰!这个也是兄弟我上大学时候的理想!当时想用74系列搭个4位的CPU,只是当时囊中羞涩买不起那么多74。



用74搭一个和用FPGA做一个那感觉是完全不一样的,只有酷爱DIY的兄弟才会理解,就像爬山和坐缆车上山的区别。

出0入71汤圆

发表于 2006-10-18 00:29:00 | 显示全部楼层
佩服啊,老外真是够厉害,这种执着的精神让我们佩服得五体投地。我在2003年的时候也做个一个CPU,名字是RIVER-C0,不过是用在地形跟踪上的。CPU的性能比这个老外的好多了可以运行到160MIPS,48位的ALU,累加器64位,总线采用24位。工艺是1.8um,发热量巨大,可以用来煎鸡蛋。支持4条流水线,支持3层神经网络节点硬件运算,不是冯诺依曼也不是哈佛结构,是我们自己的CPU,不过现在看来更像DSP。






-----此内容被dellric于2006-10-18,00:34:32编辑过

出0入0汤圆

发表于 2006-10-18 00:31:14 | 显示全部楼层
那么多的线够打双袜子了,哈哈哈哈~~

出0入0汤圆

发表于 2006-10-18 00:34:51 | 显示全部楼层
俺也想用 Xilinx 的 XC3S1000 实现M8的功能,不知有没有毅力做下来。

出0入0汤圆

发表于 2006-10-18 00:44:31 | 显示全部楼层
这叫绕接,非常可靠,可靠性高于焊接,接触电阻远远低于焊接。美国60~70年代军用计算机绝大多数是采用这种连接方法。但是对绕线柱的尺寸和绕接线的硬度都有要求,这个肯定不是所谓的OK线,是单股硬线。



网上有AVR的Cores,到opencores.org看看。

出0入0汤圆

发表于 2006-10-18 01:28:27 | 显示全部楼层
这种接线的方法我在早期日本产(可能是50-60年代)的功放机里见过,当时折这些线的时侯费了很大劲,绕的很紧.是不是OK线就不知道,线径有1MM,线的材质是多股线然后不知道镀了什么东西像锡但又不是.我在阿莫那买的OK线是单股硬线.
头像被屏蔽

出0入0汤圆

发表于 2006-10-18 07:02:51 | 显示全部楼层
【13楼】 fetish : 应该就是OK线,就是我们邮购部供应的那种。是单股硬线。



迟些采购一些工具试一下效果。



另:我也是在日本旧功放里看到这种绕线方法。一般是用于大功率并且发热量大的场合,应该比焊锡可靠得多。

出0入0汤圆

发表于 2006-10-18 07:48:56 | 显示全部楼层
有与这种OK线配合的面包(实验)板码?

出0入0汤圆

发表于 2006-10-18 10:43:02 | 显示全部楼层
具体怎么用?似乎还要什么绕线柱、绕线枪之类的。是不是绕好后有塑料套管的?

出0入0汤圆

发表于 2006-10-18 15:42:21 | 显示全部楼层
断通测试仪的模板连线就是用这种方法,需要绕线枪,上千元一把。

出0入0汤圆

发表于 2006-10-18 18:20:07 | 显示全部楼层


头像被屏蔽

出0入0汤圆

发表于 2006-10-18 18:32:25 | 显示全部楼层
谢谢【19楼】 jzyy 金忠阳的资料,真的非常有用,解决了我一直以来的一些疑问。

出0入0汤圆

发表于 2006-10-18 19:08:40 | 显示全部楼层
以前在日本产的录像机里见过这种接线方法,一直不明白为什么不焊接,要用绕线法来接,原来还有这么多学问。

出0入0汤圆

发表于 2006-10-18 19:14:25 | 显示全部楼层
上傳個80年代未期做的古董 :)

手工的繞線筆,當時大約一佰元一枝。

從來不用擔心繞線的可靠性。

出0入0汤圆

发表于 2006-10-18 22:24:55 | 显示全部楼层
以前在电话交换机房做过,这种绕线器我有一套。

出0入0汤圆

发表于 2006-10-18 23:19:27 | 显示全部楼层
但是绕线还是基本上被淘汰了,原因很简单,太占用人力,成本太高。

出0入0汤圆

发表于 2006-10-19 01:54:01 | 显示全部楼层
線繞是十分容易方便的事情,被淘汰的原因除了人力、成本外,相信主要是由於器件的密度增大,100mil 的間距不再是主流。



另外就是速度問題。當時的板子繞得好像老外那CPU般齊整,頂多跑到20MHz的時鐘,也不穩定。於是嘗試繞得如上圖般亂七八糟,期望減低串音,提高執行速度,試了很久,還是失敗。最後用6層PCB,跑33MHz一點問題也沒有。
头像被屏蔽

出0入0汤圆

发表于 2006-10-19 02:39:52 | 显示全部楼层
绕线只能用人工方法,不能用现代的焊接机器方法。所以效率太低。



不过大电流高要求的场合,它还是有地位的,不能说是被淘汰。



迟些我们邮购部将供应价格合理的绕线设备。

出0入0汤圆

发表于 2006-10-19 06:14:13 | 显示全部楼层
……大约啥时候?
头像被屏蔽

出0入0汤圆

发表于 2006-10-21 17:27:02 | 显示全部楼层
已经采购到了。



电动的非常贵,要3500元并且要订货。



手工的不错,是美国最出名的品牌“OK”牌。(这种线也叫OK线)。台湾制造的。



首批优惠价是135元,我们会尽快将这个产品做出系统内。

出0入0汤圆

发表于 2006-10-21 18:16:23 | 显示全部楼层
看过电信淘汰的绕线器(俗称打线抢),就是一个小电转,转头时空心的。国产的,应该价格不贵。搬家时丢了,不然就上个图了

出0入0汤圆

发表于 2006-10-21 19:57:13 | 显示全部楼层
盼星星盼月亮,盼得深山出太阳。阿莫终于有了手工绕线器了。一但亮相,偶首先要一个。
头像被屏蔽

出0入0汤圆

发表于 2006-10-21 20:34:07 | 显示全部楼层
【31楼】 olin ,



手工的更简单,如果要按材料成本算,估计2元就做出来了。



(不过,劳力士表的成本如果只按材料计算,国产的做出来估计也不会超过20元 :)

出0入0汤圆

发表于 2007-12-25 10:44:55 | 显示全部楼层
.

出0入0汤圆

发表于 2010-4-13 19:53:16 | 显示全部楼层
非常好的帖子,先标记一下!

出0入0汤圆

发表于 2010-4-13 21:34:24 | 显示全部楼层
欢迎访问我的豆丁网主页

出0入0汤圆

发表于 2010-4-14 00:02:09 | 显示全部楼层
敬佩

出0入0汤圆

发表于 2010-4-14 01:08:41 | 显示全部楼层
楼主的名字跟我一个老师很像,他一般喜欢叫Arwen

出0入0汤圆

发表于 2011-5-2 01:32:38 | 显示全部楼层
真厉害,佩服

出0入0汤圆

发表于 2011-5-2 09:01:04 | 显示全部楼层
景仰

出0入0汤圆

发表于 2011-5-2 17:24:46 | 显示全部楼层
很羡慕这种自由追求的生活
他不用挣钱养家吗

出0入0汤圆

发表于 2011-5-3 15:30:55 | 显示全部楼层
回复【27楼】armok 阿莫
绕线只能用人工方法,不能用现代的焊接机器方法。所以效率太低。
不过大电流高要求的场合,它还是有地位的,不能说是被淘汰。
迟些我们邮购部将供应价格合理的绕线设备。
-----------------------------------------------------------------------

现在在一些ICT上依旧使用这种绕线的方法,

有的时候接触点没有办法使用设备焊接,如果用人工焊接,很慢!

那个绕线是使用一个工具,吧线套进去,一转工具,就绕好了!



在一些大功率的设备上,焊锡能承受的温度是230以下,使用用焊锡焊接不可行了,

一般使用是这样的绕线,或者用螺丝打住,还有的 是直接用硬钎料焊住

出0入0汤圆

发表于 2011-5-3 18:54:49 | 显示全部楼层
真是强

出0入0汤圆

发表于 2014-1-21 13:28:05 | 显示全部楼层
学习了。

出0入0汤圆

发表于 2014-1-22 18:48:45 | 显示全部楼层
“然后在下一次午餐上,Buzbee对Ken说起决定自己打造一个CPU,Ken说:为什么不呢?于是,Bill Buzbee的Magic-1项目拉开了序幕”
中国人和美国人的区别就是,如果美国人说要做一个cpu,他的朋友会说为什么不呢,而如果一个中国人说要做一个cpu,他的朋友会说你脑子坏掉了吧。

出0入0汤圆

发表于 2014-1-22 22:19:34 | 显示全部楼层
敢于尝试,好样的!我在想,我的梦呢?

出0入0汤圆

发表于 2014-1-22 23:29:09 | 显示全部楼层
只有这样才能做出近似无厘头的东西来,创造往往就是在这样的人中产生的,国内的环境以及教育体制告诉我们,在国内很难这么样去折腾,说实话,喜欢折腾的人,是有能力的人,我很佩服那些喜欢折腾的人,说不定哪天一个不经意的DIY就创造了一个新的实用的产品
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 10:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表