性能不错的老款6502微处理器,但要大7000倍

2020-10-16 04:42:29

MOS 6502是革命性的,它被用于几个著名的商业产品,例如Apple I或Atari 800。它已经在晶体管水平上进行了完全的反向工程,你现在就可以在你的计算机上模拟它!但是有一样东西不见了,一个真人大小的6502微处理器,由离散的表面贴装晶体管组成,但现在不是这样了!

为了充分理解这项工作的范围,让我们从6502微处理器开始,看看为什么它会如此受欢迎。然后经过逆向工程过程,最后创造出怪兽6502。

故事始于摩托罗拉,1973年查克·皮德尔开始在那里研发摩托罗拉6800。当时,摩托罗拉在制造方面存在问题,最初的重点是降低客户的总设计成本。摩托罗拉以175美元的价格出售其芯片,然而,陪同顾客兜售的人知道芯片的高昂价格让他们望而却步;他决定通过删减“花哨的指令”和减小芯片的大小来制造一种性价比高的微处理器。但问题缠身的摩托罗拉对低成本微处理器计划没有表现出兴趣,并要求他停止这一计划。后来摩托罗拉承认这一决定是错误的,并将其归咎于公司的管理制度。

但是波德尔和他的团队并没有放弃,他们去寻找资金来源,他们找到了一家新成立的公司,该公司正在研究计算器芯片,MOS技术公司。MOS技术公司欣然接受了这一概念,因此在1974年8月19日,查克·佩德尔、比尔·门施、罗德·奥吉尔、哈里·鲍科姆、雷·赫特、迈克·简斯、特里·霍尔特和威尔·马蒂斯离开摩托罗拉加入了MOS。

该团队的目标是设计和生产一种用于嵌入式应用的低成本微处理器,并以尽可能广泛的客户群为目标;只有在微处理器成本低的情况下,这才是可能的。最后,在1975年,他们推出了每个芯片的6502,定价为25美元,是竞争对手价格的七分之一。

该芯片现在被认为是有史以来最有影响力的微芯片之一,被用于各种著名的商业产品。苹果I、Commodore PET、Apple II、Atari 8位系列、橡子原子、BBC Micro、Commodore VIC-20、Commodore 64、任天堂娱乐系统(NES)和Atari Lynx是20世纪70年代将MOS 6502集成到他们系统中的顶级公司。

6502是一个8位微处理器,可以寻址64KB的内存。它最初的芯片尺寸为33.9 mm x 4.3 mm,并使用8µm工艺制造。它只有56条指令,而摩托罗拉6800和英特尔8080有72条指令,后者的解码器和控制逻辑更小。

尽管6502的时钟速度很低,只有1到2 MHz,但它的性能与运行速度高得多的CPU相媲美;原因是与其他处理器相比,它使用了更多的组合逻辑。就像6800一样,6502的寄存器很少。6502的寄存器包括一个8位累加器寄存器(A)、两个8位索引寄存器(X和Y)、7个处理器状态标志位(P)、一个8位堆栈指针(S)和一个16位程序计数器(PC)。

要对处理器进行反向工程,我们需要准确和全面的信息;但是关于6502的官方文档和信息非常少。MOS Technology在1976年被Commodore收购,但Commodore在1994年破产,ESCOM和GMT微电子购买了它的不同部分。事情并没有到此为止,ESCOM在1995年破产,还有三四家公司购买了ESCOM的不同部分。

此外,微处理器的原始设计也丢失了,因为在那个年代,集成电路完全是在特殊的红宝石塑料上纯手工设计的,没有数字拷贝可用。几乎唯一有价值的东西就是芯片本身。2001年,Beregnyei Balázs用6502的显微图像分析了芯片,并绘制了芯片上存在的每一个晶体管的示意图。但结果是用匈利语发表的,还有改进的空间。

2009年,格雷格·詹姆斯(Greg James)、巴里·西尔弗曼(Barry Silverman)和布莱恩·西尔弗曼(Brian Silverman)启动了Visual6502,以正确地对6502进行逆向工程。他们在6502D上喷洒硫酸,对其进行拆封。然后,他们在显微镜下拍摄了一张18000x19000的图像。这些图像是不够的,因为金属层并不是完美无缺的,所以金属层和多晶硅层被剥离并再次捕捉。

他们使用这些图像来定位和记录每一个晶体管或轨迹。他们分析和调试了数据,并用JavaScript编写了一个开源模拟,您现在就可以在浏览器中运行它!他们的工作令人震惊,他们正在利用他们的经验将这种方法应用到其他芯片上。

Eric Schlaepfer是这个项目的创始人;他说,最初他有创建微处理器的离散版本的想法,但他认为这将是耗时的、困难的,甚至是不切实际的。6502内部大约有3500个晶体管;如果我们可以在一平方厘米内安装4个表面贴装晶体管,那么最终的电路板将大约为32x32厘米。6502中使用的一些动态NMOS逻辑很难找到,但Eric设法找到了一个4端子MOSFET。他制作了几块电路板的原型,发现它实际上是可以工作的。

然后在2015年7月3日,他编写了一个Python程序,将Visual6502网表转换为3500行的电子表格。之后,他将所有的晶体管一一输入到一份61页的示意图中。Eric还在各种控制线和数据位上添加了167个彩色LED。

埃里克随后不得不设计电路板布局;在几个月的时间里,有4304个部件全部手工放置和布线。它原来是一块30.5x38厘米的4层电路板,两边都有表面贴装组件。电路板制造出来后,运行得无懈可击。该电路板在5V时吸引近2安培,或总计10W。LED是功耗的重要组成部分。

这块板可以在60 kHz下运行,比起原来芯片上的1到2 MHz要低很多。但它仍然足以运行程序。由于它只是一个微处理器,埃里克还努力在它周围建造了一台功能齐全的计算机,带有键盘和显示器接口。他建造了一台以怪兽6502为处理器运行的单板计算机。实际上,您可以在该计算机中使用30x38厘米的电路板或原始的插入式6502集成电路。

想参加讨论吗?欢迎贡献!在此浏览器中保存我的姓名、电子邮件和网站,以便下次我发表评论时使用。