看了上面这张图片, 你也许觉得奇怪, 这不是一张 TELNET 终端的图片么? 有什么奇怪的?
那么, 请你再看看下面这张图片:
这是什么东西? 你也许以为只是一个普通的设备. 如果你细心点, 你会发现这东西的底部印着 Magic-1 Homebrew CPU 的字样. 没错, 这确实是一块 CPU, 是一个叫Bill Buzbee人全手工焊出来的 CPU! Buzbee 举四年之力, 以个人之力, 做出了这么一台全手工造的 CPU, 功能齐全, 实在是不简单. 这台全手工的 CPU 可以支持完整的硬件地址转换、内存影射IO和DMA,并且支持多进程,主频“高达”3MHz;该CPU采用8位地址总线,每个进程拥有128K地址空间,其中包括32个2K的数据页和32个2K的代码页,这些地址影射到22位的物理地址空间中,如果算上外部设备的地址空间就是23位物理地址空间。
更厉害的是, 他用这台 CPU 组装了一台电脑,名字也就叫 Magic-1。这台计算机包括两个串口和一块20M的1.3吋硬盘和另一块30M硬盘。为了让这个系统跑起来, Buzbee 将 LLC 编译器移植到了它上面. 更另人吃惊的是, 他还将这台电脑做为一个 WEB 服务器, 同时支持 TELNET 会话! 第一张图就是我在美国山地时间 2005.09.15 04:15 TELNET 登录到这台服务器上时, 收到的回馈信息.
感兴趣的朋友,可以用如下地址 TELNET 到 MAGIC-1 上面去看看:
telnet magic-1.org
作者的网站 http://www.homebrewcpu.com/首页第一段是这样说的:
Magic-1 is a homebuilt minicomputer. It doesn't use an off-the-shelf microprocessor, but rather has a custom CPU made out of 74 Series TTL chips. Altogether there are more than 200 chips in Magic-1 connected together with thousands of individually wrapped wires. And, it works. Not only the hardware, but there's also a full ANSI C compiler for Magic-1 (retargeted LCC), and a rudimentary homebrew operating system.
|
12-6-2001: I begin a running development diary, and start off with an embarrassingly optimistic schedule. 12-18-2001: Do basic design of fault/interrupt mechanism, and make mistake that eventually becomes the last bug to fix before Magic-1 comes alive two-and-a-half years later. 12-29-2001: Complete first rev. of the microcode. 1-6-2002: Magic-1 simulator complete enough to trace call/return sequence. 1-8-2002: Simulate Fibonacci function and flesh out software conventions 1-13-2002: Magic-1 assembler (qas) takes shape 1-18-2002: Big-endian vs. little-endian 2-28-2002: Page fault mechanism works in simulator 3-9-2002: Decide on construction technique: wire-wrap prototype boards 6-3-2002: During LCC retargeting, decide to significantly change Magic instruction set architecture 6-4-2002: Compile Fibonacci program in C to Magic assembly 6-22-2002: Move to split code and data spaces 6-25-2002: Design context switch to work well with Minix operating system 7-12-2002: Complete microcode rewrite 8-13-2002: Drop support for rotate instructions 9-11-2002: Gil Smith give me basic electronics lesson, as well as a wire-wrap gun & supplies 9-22-2002: Buy card cage on eBay and begin construction [pictures] Fall 2002: During a Vito's lunch, I ask Ken Sumrall how to know what value resistors to use. He introduces me to Ohm's Law. 3-30-2003: Inspired by John Doran's D16/M, complete ALU/Register card schematics 4-13-2003: Complete control card schematics 4-14-2003: Thoughts on front panel 5-3-2003: First rev of schematics complete 5-6-2003: Move build environment from Linux to Windows 5-16-2003: Thoughts on new Magic-1 simulator 5-27-2003: Fibonacci runs on new simulator 6-3-2003: New assembler functional 6-21-2003: Hit 100% coverage on Magic architectural validation test suite 6-23-2003: Alistair Roe emails with thoughts on an enclosure for Magic-1 8-3-2003: Retarget LCC C compiler to Magic & create retargeting notes 8-10-2003: On my birthday, C version of Fibonacci runs in simulator 8-27-2003: David Conroy teaches me about signal integrity 9-18-2003: Decide to use cut-strip-wrap wire-wrapping technique 1-3-2004: Design complete, construction begins 1-18-2004: Magic-1's heart beats for the first time [pictures] 1-26-2004: Front panel logic card complete, [pictures] 2-9-2004: Memory card complete, [pictures] 2-20-2004: EPROM daughter card complete, [pictures] 2-26-2004: Device card complete, [pictures] 3-7-2004: Microcode sequencer comes to life 3-9-2004: First instruction executed 3-19-2004: Control card complete, [pictures] 4-8-2004: Premature bringup attempt 4-12-2004: ALU/Register card complete, [pictures] 4-12-2004: Bring-up attempt - failure! 4-13-2004: Success! Magic-1 runs Fibonacci, [video] 4-25-2004: Dave Conroy debugging session finds ungrounded memory chip 5-3-2005: Magic-1 talks 5-8-2004: Sieve of Erasthones benchmark runs 5-16-2004: IDE interface comes alive; Alistair Roe's enclosure concept 7-23-2004: Basic bringup complete 9-12-2004: User-mode programs work; telnet access to Magic-1 9-15-2004: Dhrystone benchmark runs 9-22-2004: fork() implemented using copy-on-write 10-23-2004: Magic-1's Dhrystone score hits 384 (0.25 MIPS) 10-31-2004: Colossal Cave Adventure runs 4-9-2005: Alistair Roe's enclosure and front panel arrives on doorstep 5-13-2005: Magic-1 is hardware complete.
2001.12.06: Buzbee开始写项目:志,并为自己制定了一张艰难但还算乐观的:程表 2001.12.18: 完成错误处理和中断机制的基本设计 2001.12.29: 完成微代码的第一轮设计 2002.01.06: 完成了Magic-1模拟器,可以对调用/返回指令序列进行跟踪 2002.01.08: 模拟了Fibonacci函数,并丰富了软件接口约定 2002.01.13: Magic-1汇编器(qas)成形 2002.01.18: 决定是选择大尾数法还是小尾数法表示整数的字节顺序,最终选择了大尾数法 2002.02.28: 在模拟器中完成了页面错误机制 2002.03.09: 决定使用普通电线来进行连线 2002.06.03: 对指令集架构进行了意义重大的改变 2002.06.04: 用C语言编写了Fabonacci程序并编译为Magic汇编程序 2002.06.22: 改用分立的数据和代码地址空间 2002.06.25: 设计用于多进程的上下文环境切换 2002.07.12: 完成对微代码的重写工作 2002.08.13: 放弃对rotate指令的支持 2002.09.11: 上了Gil Smith的一堂电子电路课程 2002.09.22: 从eBay上买了板材和外壳 2002 的其他日子 向Ken Sumrall请教如何使用寄存器,从他那里学到了Ohm规则 2003.03.30: 从Jhon Doran的D16/M中得到了灵感,完成了ALU/寄存器板的架构 2003.04.13: 完成控制板的架构 2003.04.14: 思考前面板的架构 2003.05.03: 第一轮架构设计完毕 2003.05.06: 将构建环境从Linux一直到Windows 2003.05.16: 构思新的Magic-1模拟器 2003.05.27: 在新的模拟器上成功运行了Fibonacci程序 2003.06.03: 完成了新的汇编器功能 2003.06.21: Magic架构验证和测试用例达到了100%覆盖率 2003.06.23: Alistair Roe通过email提出了Magic-1外壳的构想 2003.08.03: 将LCC(C编译器)移植到了Magic上 2003.08.10: 在模拟器上成功地实现了Fibonacci程序的C语言版本 (这一天是Buzbee的生日) 2003.08.27: 从David Conroy那里学到了信号完整性 2003.09.18: 决定使用普通的带皮电线进行连接 2004.01.03: 完成了全部的设计工作,开始制作 2004.01.18: Magic-1有了第一次心跳 2004.01.26: 前面板完成 2004.02.09: 内存板完成 2004.02.20: EPROM子板完成 2004.02.26: 设备板完成 2004.03.07: 微代码序列成功运转 2004.03.09: 执行了第一条指令 2004.03.19: 控制板完成 2004.04.08: 尝试发布前期的工作 2004.04.12: ALU/寄存器板完成;同:被告知,发布尝试失败 2004.04.13: Magic-1成功运行了Fibonacci程序! 2004.04.25: Dave Conroy的测试会话发现了不真实的内存碎片 2004.05.03: Magic-1能“说话”了 2004.05.08: 运行“Sieve of Erasthones”基准 2004.05.16: 完成了IDE接口,Alistair Roe完成了外壳设计 2004.07.23: 发布基本架构 2004.09.12: 用户模式程序可以工作 2004.09.15: 运行“Dhrystone”基准 2004.09.22: 使用copy-on-write实现了fork() 2004.10.23: Magic-1的Dhrystone得分达到了384(0.25MIPS) 2004.10.31: 运行Colossal Cave Adventure 2005.04.09: Alistair Roe设计的外壳到货 2005.05.13: Magic-1的硬件设计完毕
|
在网页 http://www.homebrewcpu.com/photo_gallery.htm 中, 我们可以看到这台全手工 CPU 运行状态的各种图片:
1. 工作中
2. 作者在调试时的照片:
3. 机箱内部。绚美的蓝光,异常美丽。
4. 内存板 Component side of the memory board
5. ALU/寄存器连线面 Wire-wrap side of the ALU/Register card
6. 控制卡 Component side of the control card
相关文章: 深圳高交会之神州龙芯 CPU 映象记[图文]