已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也

看看上面这张图,究竟是个什么东东呢?可能有人会说,这不过是个大学生用的实验仪器吧。但细心的朋友则肯定已经看到这个东西下面的“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制造编年大史记

<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"6\" Month=\"12\" Year=\"2001\">2001年12月6日</st1:chsdate> Buzbee开始写项目日志,并为自己制定了一张艰难但还算乐观的日程表
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"18\" Month=\"12\" Year=\"2001\">2001年12月18日</st1:chsdate> 完成错误处理和中断机制的基本设计
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"29\" Month=\"12\" Year=\"2001\">2001年12月29日</st1:chsdate> 完成微代码的第一轮设计
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"6\" Month=\"1\" Year=\"2002\">2002年1月6日</st1:chsdate> 完成了Magic-1模拟器,可以对调用/返回指令序列进行跟踪
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"8\" Month=\"1\" Year=\"2002\">2002年1月8日</st1:chsdate> 模拟了Fibonacci函数,并丰富了软件接口约定
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"13\" Month=\"1\" Year=\"2002\">2002年1月13日</st1:chsdate> Magic-1汇编器(qas)成形
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"18\" Month=\"1\" Year=\"2002\">2002年1月18日</st1:chsdate> 决定是选择大尾数法还是小尾数法表示整数的字节顺序,最终选择了大尾数法
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"28\" Month=\"2\" Year=\"2002\">2002年2月28日</st1:chsdate> 在模拟器中完成了页面错误机制
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"9\" Month=\"3\" Year=\"2002\">2002年3月9日</st1:chsdate> 决定使用普通电线来进行连线
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"3\" Month=\"6\" Year=\"2002\">2002年6月3日</st1:chsdate> 对指令集架构进行了意义重大的改变

<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"4\" Month=\"6\" Year=\"2002\">2002年6月4日</st1:chsdate> 用C语言编写了Fabonacci程序并编译为Magic汇编程序
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"22\" Month=\"6\" Year=\"2002\">2002年6月22日</st1:chsdate> 改用分立的数据和代码地址空间
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"25\" Month=\"6\" Year=\"2002\">2002年6月25日</st1:chsdate> 设计用于多进程的上下文环境切换
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"12\" Month=\"7\" Year=\"2002\">2002年7月12日</st1:chsdate> 完成对微代码的重写工作
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"13\" Month=\"8\" Year=\"2002\">2002年8月13日</st1:chsdate> 放弃对rotate指令的支持
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"11\" Month=\"9\" Year=\"2002\">2002年9月11日</st1:chsdate> 上了Gil Smith的一堂电子电路课程
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"22\" Month=\"9\" Year=\"2002\">2002年9月22日</st1:chsdate> 从eBay上买了板材和外壳
2002年的其他日子 向Ken Sumrall请教如何使用寄存器,从他那里学到了Ohm规则
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"30\" Month=\"3\" Year=\"2003\">2003年3月30日</st1:chsdate> 从Jhon Doran的D16/M中得到了灵感,完成了ALU/寄存器板的架构
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"13\" Month=\"4\" Year=\"2003\">2003年4月13日</st1:chsdate> 完成控制板的架构
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"14\" Month=\"4\" Year=\"2003\">2003年4月14日</st1:chsdate> 思考前面板的架构
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"3\" Month=\"5\" Year=\"2003\">2003年5月3日</st1:chsdate> 第一轮架构设计完毕
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"6\" Month=\"5\" Year=\"2003\">2003年5月6日</st1:chsdate> 将构建环境从Linux一直到Windows
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"16\" Month=\"5\" Year=\"2003\">2003年5月16日</st1:chsdate> 构思新的Magic-1模拟器
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"27\" Month=\"5\" Year=\"2003\">2003年5月27日</st1:chsdate> 在新的模拟器上成功运行了Fibonacci程序
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"3\" Month=\"6\" Year=\"2003\">2003年6月3日</st1:chsdate> 完成了新的汇编器功能
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"21\" Month=\"6\" Year=\"2003\">2003年6月21日</st1:chsdate> Magic架构验证和测试用例达到了100%覆盖率
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"23\" Month=\"6\" Year=\"2003\">2003年6月23日</st1:chsdate> Alistair Roe通过email提出了Magic1外壳的构想

<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"3\" Month=\"8\" Year=\"2003\">2003年8月3日</st1:chsdate> 将LCC(C编译器)一直到了Magic上
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"10\" Month=\"8\" Year=\"2003\">2003年8月10日</st1:chsdate> 在模拟器上成功地实现了Fibonacci程序的C语言版本 (这一天是Buzbee的生日)
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"27\" Month=\"8\" Year=\"2003\">2003年8月27日</st1:chsdate> 从David Conroy那里学到了信号完整性
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"18\" Month=\"9\" Year=\"2003\">2003年9月18日</st1:chsdate> 决定使用普通的带皮电线进行连接(奇怪,前面已经决定一次了)
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"3\" Month=\"1\" Year=\"2004\">2004年1月3日</st1:chsdate> 完成了全部的设计工作,开始制作
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"18\" Month=\"1\" Year=\"2004\">2004年1月18日</st1:chsdate> Magic-1有了第一次心跳
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"26\" Month=\"1\" Year=\"2004\">2004年1月26日</st1:chsdate> 前面板完成
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"9\" Month=\"2\" Year=\"2004\">2004年2月9日</st1:chsdate> 内存板完成
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"20\" Month=\"2\" Year=\"2004\">2004年2月20日</st1:chsdate> EPROM子板完成
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"26\" Month=\"2\" Year=\"2004\">2004年2月26日</st1:chsdate> 设备板完成
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"7\" Month=\"3\" Year=\"2004\">2004年3月7日</st1:chsdate> 微代码序列成功运转
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"9\" Month=\"3\" Year=\"2004\">2004年3月9日</st1:chsdate> 执行了第一条指令
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"19\" Month=\"3\" Year=\"2004\">2004年3月19日</st1:chsdate> 控制板完成
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"8\" Month=\"4\" Year=\"2004\">2004年4月8日</st1:chsdate> 尝试发布前期的工作
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"12\" Month=\"4\" Year=\"2004\">2004年4月12日</st1:chsdate> ALU/寄存器板完成;同日被告知,发布尝试失败
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"13\" Month=\"4\" Year=\"2004\">2004年4月13日</st1:chsdate> Magic-1成功运行了Fibonacci程序!
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"25\" Month=\"4\" Year=\"2004\">2004年4月25日</st1:chsdate> Dave Conroy的测试会话发现了不真实的内存碎片

<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"3\" Month=\"5\" Year=\"2004\">2004年5月3日</st1:chsdate> Magic-1能“说话”了
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"8\" Month=\"5\" Year=\"2004\">2004年5月8日</st1:chsdate> 运行“Sieve of Erasthones”基准
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"16\" Month=\"5\" Year=\"2004\">2004年5月16日</st1:chsdate> 完成了IDE接口,Alistair Roe完成了外壳设计
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"23\" Month=\"7\" Year=\"2004\">2004年7月23日</st1:chsdate> 发布基本架构
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"12\" Month=\"9\" Year=\"2004\">2004年9月12日</st1:chsdate> 用户模式程序可以工作
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"15\" Month=\"9\" Year=\"2004\">2004年9月15日</st1:chsdate> 运行“Dhrystone”基准
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"22\" Month=\"9\" Year=\"2004\">2004年9月22日</st1:chsdate> 使用copy-on-write实现了fork()
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"23\" Month=\"10\" Year=\"2004\">2004年10月23日</st1:chsdate> Magic-1的Dhrystone得分达到了384(0.25MIPS)
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"31\" Month=\"10\" Year=\"2004\">2004年10月31日</st1:chsdate> 运行Colossal Cave Adventure
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"9\" Month=\"4\" Year=\"2005\">2005年4月9日</st1:chsdate> Alistair Roe设计的外壳到货
<st1:chsdate w:st=\"on\" IsROCDate=\"False\" IsLunarDate=\"False\" Day=\"13\" Month=\"5\" Year=\"2005\">2005年5月13日</st1:chsdate> Magic-1的硬件设计完毕

非常强!纯手工CPU的庐山真面目



394_2308_122.jpg

394_2308_123.jpg

文号 / 2290

盖世豪杰
名片发私信
学术分 40
总主题 650 帖总回复 1183 楼拥有证书:进士 学者 机友 笔友
注册于 2005-11-29 23:44最后登录 2024-02-19 21:27
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步

个人简介

暂未填写
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
ID: {{user.uid}}