May28 Posted 2006年7月17日 08:04 分享 Posted 2006年7月17日 08:04 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项目拉开了序幕。 CPU 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的硬件设计完毕 怎么样?够强的吧?这还不算什么,这个Buzbee还用这个CPU组装了一台微型计算机,名字就叫Magic-1,这台计算机包括两个串口和一块20M的1.3吋硬盘和另一块30M硬盘。最让人“乍舌”的事,这位朋友还将这台计算机做为一个Web服务器,同时支持Telnet会话(虽然只支持一个会话)。哦,还有,为了让这个系统能够跑起来,Buzbee还为它准备了一个C编译器! 数字逻辑和数字电路的朋友一定知道,通过使用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/寄存器连线面 控制卡 引用 Link to comment Share on other sites More sharing options...
Rorschach Posted 2006年7月20日 04:19 分享 Posted 2006年7月20日 04:19 谁帮我做一个Xoen 8.0的?? 引用 Link to comment Share on other sites More sharing options...
钢管猫 Posted 2006年7月20日 05:20 分享 Posted 2006年7月20日 05:20 强 引用 Link to comment Share on other sites More sharing options...
被啃鲍鱼 Posted 2006年7月20日 15:09 分享 Posted 2006年7月20日 15:09 那些寄存器连线太恐怖鸟! 引用 Link to comment Share on other sites More sharing options...
int15 Posted 2006年7月22日 03:08 分享 Posted 2006年7月22日 03:08 那些寄存器连线太恐怖鸟! 这是设计用的实验板,飞线比较多,按照图纸制作成印制板就整洁多了,不过那样的话反而没了味道 回头把我的实验板也翻出来,做一个小玩意儿玩玩。 引用 Link to comment Share on other sites More sharing options...
K.泰莎 Posted 2006年7月23日 07:13 分享 Posted 2006年7月23日 07:13 有钱人!恩,就这么定了 引用 Link to comment Share on other sites More sharing options...
A.A.A Posted 2006年10月23日 13:39 分享 Posted 2006年10月23日 13:39 好东东 引用 Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.