研究!rsc公司

关于编程的想法和链接,通过

RSS(RSS)

MOS 6502和世界最佳布局
发布于2011年1月3日星期一。

这个MOS 6502型在当时无处不在。6502及其轻微变体是Apple II的核心,Atari 2600、BBC Micro、,准将64,和任天堂娱乐系统,在其他中。想想这五个人一个非常有影响力的系统都是围绕同一个芯片构建的。

6502是楚克·佩德尔,当时是摩托罗拉的一名工程师。佩德尔是研究摩托罗拉6800他的工作之一就是,把6800卖给客户。客户非常喜欢除了300美元的价格标签。佩德尔试图说服摩托罗拉的管理层制造低成本微处理器,但摩托罗拉没有想把这样的芯片切进他们的非实体他们毫不含糊地告诉他他们不会制造这样的芯片。作为回应,佩德尔和其他6800名工程师离开了摩托罗拉,自己建了一个。这是MOS Technology 6502,售价25美元。尽管6800和6502都有时钟频率1 MHz的6502有一个最小的指令管道与下一条指令的获取重叠在可能的情况下执行当前命令,大大提高了它的性能。当然,它的售价要低十倍。所以它到处都是。

6502的故事构成了第一章Brian Bagnall的边缘:壮观的上升和准将的倒台.我最喜欢的发展描述部分6502是实际的芯片布局。现在,没有电脑你就无法设计和布局电脑芯片。Intel Core 2芯片有数亿个晶体管。6502有3510个,每一个都必须由一个工程师(一个人,而不是计算机)手工绘制布置芯片。主要是一个工程师,比尔·门施.

但它变得更好了。布局完成后双重检查&这意味着使用尺子需要几个月-它仍然存在必须转换成Rubylith光掩模这将在硅上蚀刻出正确的图案。6502的光掩模有一张足够大的桌子那么大工程师们爬到它上面执行从口罩上剪下布局的工作,同时要小心穿干净的没有洞的袜子,这样散落的脚趾甲就不会插入面具上不属于他们的痕迹。

整个过程中最令人惊讶的是一次就把6502弄对了。报价在边缘:

Bil Herd总结了情况。“第一次没有芯片工作,”他说着重强调。“没有芯片。它需要7到9转[修正],或者如果有人真的很好,他们会在五、六分钟内拿到。”

通常,大量缺陷都源于布局设计。毕竟,有六个层(和六个遮罩)必须与每个层对齐其他完美的。想象一下,设计一个拥有所有可能层次的城镇将一个基础设施置于另一个基础之上。管道是最低层,其次是地铁系统、地下走道、建筑物、高架走道、,最后是电话线。这些不同的层必须彼此完美连接;否则,该镇将无法运作。这种系统的巨大复杂性使得人类设计中会出现错误。

在制造一系列芯片并对其进行探测后,布局工程师通常必须对其原始设计和流程进行更改从Rubylith开始重复。“每次跑步都是几百次千美元”,Herd说道。

令人难以置信的是,工程师们在[Bill]Mensch的布局中没有发现任何错误。佩德尔说:“他制造了七种不同的芯片,从未出错。”他的声音里充满了怀疑。“几乎都是手工完成的。当我告诉人们这一点时,他们不会相信我,但这是真的。这家伙是个独特的人。他是世界上布局最好的人。”

第1章在边缘发布于巴格纳尔的网站在里面HTML格式PDF格式.这一章说佩德尔“创造了一个概念流水线,” 这可以解释为6502是第一个流水线处理器Peddle发明了它有人知道吗?[注:见文章末尾的更新。]

快进三十年。计算机现在已经足够老了,可以有重要的对保持这些古老古老设计的历史感兴趣。6502的实际纸张设计早已消失。

由三人组成的团队Greg James,巴里·西尔弗曼和布莱恩·西尔夫曼积累了一堆6502块芯片中,对其施加硫酸以剥离外壳并暴露出实际的芯片,用高分辨率显微镜扫描芯片,应用计算机图形学技术构建矢量芯片的表示,并最终从矢量中导出形成等于芯片电路图:所有3510个晶体管的列表输入、输出及其连接的对象。将其与相当通用的,随着这些事情的发展,琐碎)“晶体管电路”模拟器用JavaScript和HTML5编写,他们创建了一个动画6502网页观察芯片周围的电压变化当它执行时.有关更多信息,请访问他们的网站visual6502.org网站.

哦,它确实有效。他们采用了同样的技术Atari 10444D TIA芯片,将6502连接至Atari 2600原装电视,然后他们一起模拟了两个芯片能够运行实际的雅达利2600游戏.所以晶体管图可能(非常接近)是正确的。更令人印象深刻的是,他们做到了这一点无需调试.他们的SIGGRAPH 2010摘要解释说20000个组件的地图,所有错误都被发现了在矢量化过程中。历史重演。

迈克尔·斯泰尔获取电路信息并开始查找密切关注芯片是如何做到这一点的。在上周的混沌通信大会27C3会议上,他做了50分钟的演讲,介绍了6502体系结构然后使用电路图解释各种细节和芯片的未记录功能。原始公告位于Steil的博客.有一个版本的在YouTube上聊天,在博客评论中,你可以找到高分辨率副本的链接。无论以何种形式,都值得一看,看看有多有趣Peddle、Mensch和6502团队的其他成员挤满了人集成到极少数晶体管中。

更新,2015年1月。

以上链接指向的第1章在边缘出版商网站上不再工作,但有一个Internet Archive中HTML版本的副本.

如以下评论所述曼彻斯特阿特拉斯,这个疾控中心6600,IBM 7030(拉伸)在6502问世前至少十年,他们都使用了流水线技术。此外,6502所做的并不是现代意义上的流水线。在某些情况下,它将指令执行与下一条指令的获取重叠,英特尔8080(击败6502进入市场)及其时代的其他微处理器也是如此。Bagnall声称Peddle为6502创建了流水线,这似乎完全没有道理。

此外,在链接的章节中,Bagnall解释说“当摩托罗拉公开发布6800时,查克·佩德尔(Chuck Peddle)和来自工程和营销部门的七位同事离开了摩托罗拉,追求他们自己的愿景。团队成员包括威尔·马修斯(Will Mathis)、比尔·门施(Bill Mensch)、罗德·奥吉尔(Rod Orgill)、雷·赫特(Ray Hirt)、哈里·巴库姆(Harry Bawcum)、迈克·詹姆斯(Mike James)、特里·霍尔特(Terry后来,巴格纳尔写道,“布局团队由两名主要工程师组成:Bill Mensch和Rod Orgill。第三名工程师Harry Bawcum[sic]帮助布局艺术家。他们的任务是将抽象框图转化为微处理器表面的大规模表示。Orgill负责6501芯片,Mensch负责6502芯片。”再也没有提到其他人了。Mensch获得了所有荣誉。2015年1月,我通过电子邮件从Harry Bawcom收到以下通知:

仅供参考。

比尔·门施(Bill Mensch)没有在另外两个人的帮助下布置6502。

事实上,我们都是作为一个团队工作的,但比尔在6502的第一个版本上并没有画一条线。模具上有我的首字母缩写。

后来的版本我不在那里。

很有趣。还有另外两位电路设计师参与其中,一位比比尔年长。他们也值得称赞。

《EE时报》1975年8月的文章显示6502团队的照片,以及标题,其中列出了Harry Bawcom是“布局设计师”,Bill Mensch是“设计工程师”这似乎证实了Bawcom的记录。(请注意,文章中打印的照片已被镜像反转。)我对书中关于Chuck Peddle和6502引入了流水线的说法持怀疑态度是正确的。我不怀疑我引用的故事的其余部分可能是错误的。这太好了,难以置信。然而,Visual6502的故事仍然是一个美好的结局。



附言:如果你喜欢这个,你可能也会喜欢计算机.此外,巴里·西尔弗曼(Barry Silverman)和布莱恩·西尔夫曼(Brian Silver曼)(如上所述)是两人背后的人PDP-1模拟器用Java编写,运行Spacewar!

(评论最初通过Blogger发布。)

  • Jan-willem公司 (2011年1月3日上午8:16)维基百科似乎认为流水线由Cray在XMP中使用。我敢肯定,这至少可以追溯到CDC时代,可能也要追溯到IBM。但当我得知6502是第一款流水线微处理器时,我并不感到惊讶。

  • 俄罗斯考克斯 (2011年1月3日上午8:36)@珍妮·威廉姆:谢谢。我看到了,但无法重建时间线。6502于1975年出厂,同年克雷1号也开始出厂。克雷X-MP于1982年发布。

  • 普雷斯顿 (2011年1月3日上午10:23)我认为IBMStretch是第一个流水线处理器(1961年交付),但维基百科指出,伊利亚克II可能是第一个流水处理器。Z1(大约'39年)有一种简单的流水线形式。

    普雷斯顿

  • 匿名(2011年1月3日下午12:42)雅达利2600没有使用6502;)

  • 俄罗斯考克斯 (2011年1月3日12:55 PM)@匿名:6507是一款6502,一些地址线被切断。它是“轻微的变体”之一。

    NES是一个类似的故事:它使用了理光2A03,这是一个6502和其他一些视频逻辑在同一个核心上。

  • 匿名(2011年1月3日下午1:55)RICOH(NES)处理器严格来说不是6502,因为它省略了十进制模式。官方说法是,它被“出于空间原因”排除在外,但更可能的是,这一遗漏与MOS Technology在芯片上拥有的主要专利有关

  • 俄罗斯考克斯 (2011年1月3日下午2:05)@匿名:你是说,通过减少十进制模式部分,他们可以在2A03的硅上插入一个未经修改的6502电路,而无需向MOS Technology支付版税吗?这对我来说似乎很奇怪。

    在这个视频中http://www.youtube.com/watch?v=N9DYmlprCKA在9点30分,你可以看到2A03和6502的死亡画面。

  • 匿名(2011年1月4日凌晨3:08)有人说Cray和CDC使用了流水线,这是对的。它出现在1964年发布的控制数据6600中,这台机器开创了下一个40年的CPU技术。值得找一本吉姆·桑顿的书计算机的设计完整的故事。

  • 匿名(2011年1月4日凌晨3:44)6502个内核最终也出现在winmodem中。这种设计发展到了今天的ARM处理器。确实是一位值得尊敬的祖先。

  • 利奥·理查德·科默福德 (2011年1月4日上午6:05)似乎作为西部设计中心,Mensch仍在销售6502兼容芯片和“65xx IP”。因此,无论Mensch或WDC是否仍然拥有原始6502文档,在Visual 6502项目之前,6502的内部工作仍然不清楚的原因似乎不是因为知识在时间的迷雾中丢失了,而是因为知识过去(现在)是仍然被拥有它的人视为具有商业价值。

  • 沙尔兹 (2011年1月4日上午7:37)它并没有进化成ARM处理器,除了Acorn在设计ARM之前在早期的微型计算机中使用6502之外,它们是完全无关的。

  • 匿名(2011年1月4日9:12 PM)我之前读过6800和6502基本上是引脚兼容的。你的文章引出了对这种情况的原因和方式的新见解。

  • 俄罗斯考克斯 (2011年1月4日9:43 PM)6800和6501是引脚兼容的,芯片大小相同,电源、数据和地址线的位置相同,但我不认为这意味着指令集兼容。

    6502不兼容针脚。

    http://www.variantpress.com/view.php?content=ch001

  • 拉尔夫·科尔德罗伊 (2011年1月5日上午10:08)夏尔兹说得对,CISC 6502并没有演变成ARM.Acorn的员工索非威尔森他是6502的专家,是包含BBC BASIC的6502代码的16KiB ROM的作者,设计了ARM的RISC指令集,并继续在ARM中编写BBC BASIC V以及当时新颖的视频编解码器。

  • 匿名(2011年1月5日上午10:10)Bill Mensch也设计了65816微处理器,这是用于超级任天堂和苹果IIg的芯片。他说所有的设计和布局都是由他自己和他的妹妹完成的。

  • 乍得 (2011年1月5日下午8:59)公平地说,这个设计“第一次就不对”。如前所述,ROR指令中至少有一个勘误表在这里.

  • 匿名(2011年1月6日下午8:09)我很惊讶他们不得不求助于逆向工程这样的事情,在某个地方的档案中没有实际的记录或电路图。考虑到芯片的影响,电路图应该像宪法一样受到尊重。

    这让人想知道我们在这一过程中还失去了什么。

  • 匿名(2011年1月6日下午8:44)第一台流水线机器是1962年的曼彻斯特阿特拉斯。

    http://en.wikipedia.org/wiki/Atlas_Computer_%28曼彻斯特%29

  • 匿名(2011年1月6日9:33 PM)C=64使用了6510而不是6502。
    http://en.wikipedia.org/wiki/MOS_Technology_6510

  • 匿名(2011年1月6日10:11 PM)>匿名匿名者说。。。
    >
    >C=64使用了6510而不是6502。
    >

    不是维克20吗?

  • 匿名(2011年1月6日11:54 PM)6510只是一款带有8位数据端口的6502,价格为$00/$01。

    Commodore在进入计算机行业时收购了MOS Technology(Chuck Peddle的公司),这样他们就可以在内部构建所有芯片。

  • 米凯尔·蒂列尼乌斯 (2011年1月7日上午6:07)Intel 8080(1974年推出,比6502早一年)使用了类似的流水线。顺便说一句,这不是现代意义上的流水线。处理器只是将一条指令的最后一部分与下一条的提取重叠。这是当时众所周知的技术。

  • 迈克·戈拉 (2011年1月7日下午8:04)最晚在20世纪70年代中期,Fortran编译器利用了流水线技术,甚至针对不同版本的大型机上的不同深度的流水线进行了优化。(就在那之前,即1973年左右,虚拟内存变得很常见,必须对Fortran代码进行优化,以避免在初始化二维数组时首先通过错误的下标进行循环时出现最坏情况的分页。)

  • 匿名(2011年1月8日上午10:01)那么,苹果公司使用的65c02怎么样。。。

  • 匿名(2011年1月9日下午6:42)我有一个早期6502的ROR指令有缺陷,查德提到。我有MOS编程手册,其中省略了说明。(但愿我仍然拥有这两者)。零件装在陶瓷包装中。有一次,我兴高采烈地将朋友的Commodore PET中的6502换成了我的无ROR部件。PET开始运行,但逐渐变得陌生,直到屏幕上出现几分钟的奇怪现象后,它最终崩溃。