工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 863|回复: 3

DIY CPU~~~~~~~~

[复制链接]
发表于 2005-10-6 09:05 | 显示全部楼层 |阅读模式
强!用集成电路手工打造CPU
    在如今越来越靠程序化、流水线作业来完成生产的制造业中,想找一件手工打造的产品,真是越来越难了。

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



难道这真的是一个CPU?
    看看上面这张图,究竟是个什么东东呢?可能有人会说,这不过是个大学生用的实验仪器吧。但细心的朋友则肯定已经看到这个东西下面的“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项目拉开了序幕——
很强!纯手工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的硬件设计完毕非常强!纯手工CPU的庐山真面目





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





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

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






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

    这款“家酿”CPU可以支持完整的硬件地址转换、内存影射IO和DMA,并且支持多进程,主频“高达”3MHz;该CPU采用8位地址总线,每个进程拥有128K地址空间,其中包括32个2K的数据页和32个2K的代码页,这些地址影射到22位的物理地址空间中,如果算上外部设备的地址空间就是23位物理地址空间。
 楼主| 发表于 2005-10-6 09:06 | 显示全部楼层
强!用集成电路手工打造CPU
    在如今越来越靠程序化、流水线作业来完成生产的制造业中,想找一件手工打造的产品,真是越来越难了。
    好在当今社会中,还是有一些强人在孜孜不倦的在完成着心中的“完美DIY”梦想。因此也使我们多了一些大开眼界、崇拜和向慕的机会。

难道这真的是一个CPU?
    看看上面这张图,究竟是个什么东东呢?可能有人会说,这不过是个大学生用的实验仪器吧。但细心的朋友则肯定已经看到这个东西下面的“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项目拉开了序幕——
很强!纯手工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的硬件设计完毕非常强!纯手工CPU的庐山真面目



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



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

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




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

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

使用道具 举报

 楼主| 发表于 2005-10-6 09:06 | 显示全部楼层
强!用集成电路手工打造CPU
    在如今越来越靠程序化、流水线作业来完成生产的制造业中,想找一件手工打造的产品,真是越来越难了。
    好在当今社会中,还是有一些强人在孜孜不倦的在完成着心中的“完美DIY”梦想。因此也使我们多了一些大开眼界、崇拜和向慕的机会。

难道这真的是一个CPU?
    看看上面这张图,究竟是个什么东东呢?可能有人会说,这不过是个大学生用的实验仪器吧。但细心的朋友则肯定已经看到这个东西下面的“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项目拉开了序幕——
很强!纯手工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的硬件设计完毕非常强!纯手工CPU的庐山真面目


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



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

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



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

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

使用道具 举报

发表于 2005-10-6 12:20 | 显示全部楼层
转贴的吧~~
看过了~~
不过没看完~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-15 10:38

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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