最新消息:

一块带给无数人年少欢乐的CPU,别说你没用过它

硬件 eben 504浏览 0评论
Part1一块带给无数人年少欢乐的CPU,别说你没用过它
图上的这些你有用过吗?
1975 年推出时,它是市场上最便宜的微处理器(售价25美元),其优势相当可观。它最初的售价不到大公司(如 6800 或英特尔 8080)竞争设计成本的六分之一。它的推出导致整个处理器市场的价格迅速下降。与Zilog Z80 一起,它引发了一系列项目,导致了 1980 年代初期的家用计算机革命。此后,这块CPU被广泛的应用于苹果电脑、任天堂FC及兼容机、学习机等。到了90年代,当时中国学生几乎人手一台的文曲星也用了这块CPU,培养了整整一代中国玩家。这块CPU的名字叫6502,让我们从其诞生说起。
1
摩托罗拉的起源
说起6502,首先不应该介绍他的设计公司MOS(科技)公司(MOS Technology, Inc. ),而是他的起源-摩托罗拉。
一块带给无数人年少欢乐的CPU,别说你没用过它-1
MOS Technology, Inc. LOGO
6502 是由设计摩托罗拉 6800微处理器系列的许多工程师设计的(其实也不多)。摩托罗拉于 1971 年启动了 6800 微处理器项目,Tom Bennett 是主要架构师。芯片布局始于 1972 年底,第一批 6800 芯片于 1974 年 2 月制造,全系列于 1974 年 11 月正式发布。约翰·布坎南 (John Buchanan) 是 6800 芯片的设计者和后来设计了 6501 的 Rod Orgill 协助 Buchanan 进行电路分析和芯片布局。Bill Mensch从亚利桑那大学(26 岁)毕业后于 1971 年 6 月加入摩托罗拉。他的第一个任务是帮助定义 6800 系列的外围 IC,后来他成为 6820外围接口适配器(PIA)的首席设计师。摩托罗拉的工程师可以在IBM 370-165大型计算机上运行设计。Bennett于 1973 年聘请Chuck Peddle为已经开发的 6800 系列产品做架构支持工作。Chuck Peddle在许多领域做出了贡献,包括 6850 ACIA(串行接口)的设计。
一块带给无数人年少欢乐的CPU,别说你没用过它-2
摩托罗拉的目标客户是惠普、泰克、天合和克莱斯勒等老牌电子公司。1972 年 5 月,摩托罗拉的工程师开始拜访选定的客户,并分享他们提出的具有 ROM、RAM、并行和串行接口的 8 位微处理器系统的详细信息。1974 年初,他们提供了芯片的工程样品,以便客户可以制作他们的设计原型。摩托罗拉的“全产品系列”战略并不着眼于微处理器的价格,而是着眼于降低客户的总设计成本。他们在分时度假计算机上提供开发软件、“EXORciser”调试系统、现场培训和现场应用工程师技术支持。英特尔和摩托罗拉最初都宣布单个微处理器的价格为 360 美元。但是生产数量的实际价格要低得多。摩托罗拉以 300 美元的价格提供了一个包含带有六个支持芯片的 6800 的设计套件。
陪同销售人员拜访客户的 Peddle 发现,微处理器芯片的高成本让客户望而却步。与此同时,这些访问无一例外地导致他介绍的工程师生成所需说明的清单,这些清单比 6800 中包含的“所有这些花哨的说明”要小得多。Peddle 和其他团队成员开始概述改进功能、缩小尺寸的微处理器的设计。当时,摩托罗拉在德克萨斯州奥斯汀的新半导体制造工厂生产 MOS 芯片遇到困难,1974 年中期是半导体行业长达一年的衰退的开始。此外,亚利桑那州的许多梅萨员工对即将搬迁到德克萨斯州奥斯汀市感到不满。
摩托罗拉的半导体产品部管理层被问题搞得不知所措,对 Peddle 的低成本微处理器提议毫无兴趣。最终 Peddle 收到了一封正式信函,告诉他停止在该系统上工作。Peddle 对命令做出回应,通知摩托罗拉,这封信代表了“项目放弃”的官方声明,因此,他开发到那时的知识产权现在是他的。在 1975 年 11 月的一次采访中,摩托罗拉董事长罗伯特·高尔文最终同意 Peddle 的概念是一个很好的概念,并且该部门错失了机会,“我们没有在半导体产品部门选择合适的领导者。” 部门进行了重组,管理层更换了。新的集团副总裁约翰韦尔蒂说,“半导体销售组织失去了对客户需求的敏感性,无法迅速做出决定。” (管理者眼光的重要性)
Peddle 开始在摩托罗拉之外寻找这个新项目的资金来源。他最初接触了Mostek首席执行官LJ Sevin,但他拒绝了。塞文后来承认这是因为他担心摩托罗拉会起诉他们。
Paivinen于 1969 年与 General Instrument 的另外两名高管 Mort Jaffe 和 Don McLaughlin一起成立了MOS Technology。Allen-Bradley是一家电子元件和工业控制供应商,于 1970 年获得了多数股权。该公司为客户设计和制造定制 IC,并开发了一系列计算器芯片。
1974 年 8 月 19 日,Chuck Peddle、Bill Mensch、Rod Orgill、Harry Bawcom、Ray Hirt、Terry Holdt 和 Wil Mathys 离开摩托罗拉加入 MOS。迈克·简斯 (Mike Janes) 后来加入。在 6800 团队的 17 名芯片设计师和布局人员中,剩下 8 名。该团队的目标是设计和生产用于嵌入式应用的低成本微处理器,并以尽可能广泛的客户群为目标。只有当微处理器成本低并且团队将价格目标定为 5 美元时,这才有可能。Mensch 后来表示,目标不是处理器价格本身,而是创造一组售价 20 美元的芯片,以与最近推出的英特尔 4040竞争在类似的完整芯片组中售价 29 美元。
芯片是通过在“晶圆”(一种高纯度硅的薄盘)表面印刷多个芯片设计副本来生产的。更小的芯片可以在同一晶片上印刷更多的数量,从而降低它们的相对价格。此外,晶片总是包含一些散布在表面上的微小物理缺陷。在该位置打印的任何芯片都将失败,必须丢弃。较小的芯片意味着任何单个副本都不太可能打印在缺陷上。由于这两个原因,最终产品的成本在很大程度上取决于芯片设计的尺寸。
最初的 6800 芯片设计为180 × 180 mils (4.6 × 4.6 mm),但布局完成后为212 × 212 mils (5.4 × 5.4 mm),即面积为 29.0平方毫米。对于新设计,成本目标要求尺寸目标为153 × 168 密耳 (3.9 × 4.3 毫米),或面积为 16.6 平方毫米。实现这一目标需要一些新技术。
2
NMOS技术助力6502
就在设计 6502 时,市场上出现了两项重大进步,显着降低了成本。首先是转向耗尽负载 NMOS。6800 使用早期的 NMOS 工艺,需要三个电源电压,但该芯片的一个特点是板载倍压器,允许在内部使用单个 +5V 电源用于 +5、-5 和 +12,而不是其他芯片像Intel 8080这样需要三个独立电源引脚的时代。虽然此功能降低了电源和引脚布局的复杂性,但它仍然需要单独的电源轨连接到芯片上的各个门,从而增加了复杂性和尺寸。通过转向新的耗尽负载设计,只需要一个 +5 电源,消除了所有这些复杂性。
另一个实际优势是,早期 CPU 的时钟信号必须足够强以承受其通过电路时的所有耗散,这几乎总是需要一个单独的外部芯片来提供足够强的信号。随着 NMOS 功率要求的降低,时钟可以移到芯片上,从而简化了整体计算机设计。这些变化大大降低了实施完整系统的复杂性和成本。
正在发生的另一个变化是引入了投影遮蔽。以前,通过在晶片表面放置掩模,然后在其上照射强光,将芯片图案化到晶片表面上。掩膜在从芯片上剥离时通常会沾上微小的污垢或光刻胶,从而在任何后续掩膜中导致这些位置出现缺陷。对于像 CPU 这样的复杂设计,将使用 5 或 6 个这样的掩蔽步骤,并且这些步骤中的至少一个步骤引入缺陷的可能性非常高。在大多数情况下,90% 的此类设计存在缺陷,导致 10% 的良率。工作样品的价格必须涵盖被扔掉的 90% 的生产成本。
1973 年,Perkin-Elmer推出了Micralign系统,该系统将掩模的图像投影到晶片上,而不需要直接接触。掩模不再从晶圆上沾上灰尘,并且持续使用 100,000 次而不是 10 次。这消除了以前在复杂设计中出现的逐步失败和高缺陷率。CPU 的良率立即从 10% 跃升至 60 或 70%。这意味着 CPU 的价格下降了大致相同的数量,微处理器突然变成了商品设备.
MOS Technology 使用了上诉的两个最新技术制作了6502,从而性能显著优于6800。而且由于对制程工艺的要求相对较低,造成6502的良品率出奇的高。
3
6501和6502的诞生
MOS 科技 将引入两个基于相同底层设计的微处理器:6501 将插入与摩托罗拉 6800 相同的插座,而 6502 重新安排引脚排列以支持片上时钟振荡器。两者都可以与为 6800 设计的其他支持芯片一起工作。但是它们不会运行 6800 软件,因为它们具有不同的指令集、不同的寄存器和不同的寻址模式。Rod Orgill 负责 6501 的设计;他曾协助摩托罗拉的约翰·布坎南 (John Buchanan) 开发 6800。比尔·门施 (Bill Mensch) 设计了 6502;他是摩托罗拉 6820 外设接口适配器 (PIA) 的设计师。Harry Bawcom、Mike Janes 和 Sydney-Anne Holt 帮助完成了布局。
一块带给无数人年少欢乐的CPU,别说你没用过它-3
MOS Technology 的微处理器推出不同于传统的长达数月的产品发布。新集成电路的第一批运行用于内部测试,并作为“工程样品”与选定的客户共享。这些芯片通常有一两个小的设计缺陷,在生产开始之前会得到纠正。Chuck Peddle 的目标是在 1975 年 9 月 16 日开始的旧金山 Wescon 贸易展上向与会者销售第一批 6501 和 6502 芯片。Peddle 是一位非常有效的发言人,并且 MOS Technology 微处理器在贸易媒体中得到了广泛的报道。最早的一篇文章是 1975 年 7 月 24 日《电子》杂志上关于 MCS6501 和 MCS6502 微处理器的整版报道。EE Times(1975 年 8 月 24 日)、 EDN(1975 年 9 月 20 日)、 Electronic News(1975 年 11 月 3 日)、 Byte(1975 年 11 月) 和Microcomputer Digest(1975 年 11 月)。1975 年 8 月的第一周,6501 的广告出现在一些出版物中。6501 将在 Wescon 以每个 20 美元的价格出售。1975 年 9 月,广告中同时包含 6501 和 6502 微处理器。6502 的价格仅为 25 美元(相当于 2020 年的 120 美元)(价格只有摩托罗拉6800和英特尔8080的1/15)
一块带给无数人年少欢乐的CPU,别说你没用过它-4
)。
一块带给无数人年少欢乐的CPU,别说你没用过它-5
1976 年 5 月的数据表省略了1975 年 8 月版本中的 6501 微处理器。
6800、6501和6502的不同
4
电脑和游戏的革命
由于法律纠纷(摩托罗拉起诉),MOS 科技仍然让开发人员试用他们的处理器,这促使 Chuck Peddle 设计了 MDT-650(“微型计算机开发终端”)单板计算机。公司内部的另一个小组设计了KIM-1,它以半成品出售,并且可以通过添加第 3 方计算机终端和紧凑型磁带驱动器变成一个可用的系统。令他们惊讶的是,KIM-1 卖给了爱好者和DIYer,以及它所针对的工程师。相关的罗克韦尔AIM 65控制/培训/开发系统做得很好。AIM 65 中的软件基于 MDT 中的软件。另一个大致相似的产品是 Synertek SYM-1。
该设计的第一个“公共”用途之一是1976 年推出的Apple I 微型计算机。史蒂夫·乔布斯找人在自己父母车库中手工组装了200台Apple I电脑,并亲自售卖,但最终用了十个月时间才卖出25台,当时一台Apple I的售价为667美元,而现在拍卖价格已达到了100万美元。
一块带给无数人年少欢乐的CPU,别说你没用过它-6
沃茨和乔布斯在研究自己捣鼓出来的Apple I主板,Apple I采用6502 CPU
接下来,6502 用于Commodore PET和Apple II,均于 1977 年发布。
一块带给无数人年少欢乐的CPU,别说你没用过它-7
沃茨和乔布斯手持Apple II主板,Apple II也采用6502 CPU
后来6502广泛用于家用计算机和企业的设计,例如:于Atari 8 位系列和Acorn Atom家用计算机、BBC Micro、 Commodore VIC-20、Ohio Scientific和Oric、Commodore 64、Commodore 128D。
1978年,参与6502设计的Bill Mensch离开Commodore创立了WDC(Western Design Center)公司,继续6502架构的研发,并推出了W65C02(CMOS版的6502)及W65C816(16位的6502)等CPU产品,其中W65C816在1986年被用于AppleIIGS电脑。1979年,雅达利公司也加入了6502的阵营。
6500 系列的另一个重要用途是在电子游戏中。第一个使用处理器设计的是 Atari VCS,后来更名为Atari 2600。VCS 使用了 6502 的一个变体,称为6507,它的引脚较少,因此只能寻址 8 KB的内存。将售出数百万台 Atari 游戏机,每台游戏机都配备 MOS 处理器。
一块带给无数人年少欢乐的CPU,别说你没用过它-8
雅达利2600,1977年推出,用的是6507 CPU(6502改进型号)
另一个重要用途是任天堂娱乐系统和 Famicom。NES 中使用的 6502 是Ricoh的第二个源版本,它是部分片上系统,没有二进制编码的十进制模式,但添加了 22 个内存映射寄存器和用于声音生成、游戏手柄读取和精灵列表DMA的片上硬件。称为2A03在NTSC控制台和2A07在PAL控制台(区别在于存储器分隔为音频采样率比和查找表),该处理器被独家生产用于任天堂。
NES(美版FC)主板,1987年制造,打红框的芯片则是理光的RP2A03G(6502.7),旁边那块理光RP2C02是图像CPU(兼容机多用台湾联华电子UA6538)
一块带给无数人年少欢乐的CPU,别说你没用过它-9
SFC上的5A22CPU,理光生产,16位的6502
一块带给无数人年少欢乐的CPU,别说你没用过它-9
PC Engine上的HuC6280A CPU,Hudson研发,精工爱普生生产,CMOS版的6502
在 1980 年代,流行的电子杂志 Elektor/Elektuur 在其微处理器开发板Junior Computer 中使用了该处理器。
在中国大陆,上世纪末红遍大江南北的FC兼容机/小霸王学习机们和后来几乎人手一台的文曲星都采用了6502 CPU。小霸王们多采用台湾联华电子生产的UA6527,可以说这块CPU陪伴了中国80后和90后的童年和少年时代。
一块带给无数人年少欢乐的CPU,别说你没用过它-10
经典的文曲星CC800
一块带给无数人年少欢乐的CPU,别说你没用过它-11
文曲星上的游戏《英雄坛说》
5
使用 6502 或其变体的家用电脑和视频游戏机
6
6502软件部分说明
6502 是具有16 位地址总线的小端 8 位处理器。原始版本是使用8 µm 工艺技术芯片制造的, 芯片尺寸为3.9 mm × 4.3 mm(宣传为153 mils × 168 mils),总面积为 16.6 平方毫米。
内部逻辑与外部时钟速率相同的速度运行,但尽管时钟速度较低(通常在 1 到 2 MHz 左右),但 6502 的性能与使用明显更快时钟的其他当代 CPU 相比具有竞争力,因为6502有一个指令流水线(在一条指令执行的同时,就取下一条指令)。
低时钟频率缓和了连接到 CPU 的内存和外围设备的速度要求,因为只有大约 50% 的时钟周期可用于内存访问(由于异步设计,该部分在芯片版本之间差异很大)。这在负担得起的内存访问时间在250-450 ns范围内时至关重要。
因为芯片只在时钟周期的某些部分访问内存,而这些周期由 PHI2 低时钟输出引脚指示,系统中的其他芯片可以在 6502 不在总线上的那些时间访问内存。这有时被称为“隐藏访问”。这种技术被计算机系统广泛使用;他们将使用能够以 2 MHz 访问的内存,然后以 1 MHz 的频率运行 CPU。这保证了 CPU 和视频硬件可以交错访问,总性能与存储设备相匹配。当 1980 年代出现更快的内存时,较新的机器可以以更高的时钟频率运行,例如BBC Micro 中的 2 MHz CPU ,并且仍然使用总线共享技术。
寄存器
与其前身 6800 一样,6502 的寄存器很少。6502 的寄存器包括一个 8 位累加器寄存器(A)、两个 8 位索引寄存器(X 和 Y)、7 个 1 位处理器状态标志位(P)——特别是从 P 中的第 7 位到第 0 位,这些是负数 (N)、溢出 (V)、保留、中断 (B)、十进制 (D)、中断禁用 (I)、零 (Z) 和进位 (C) 标志 – 一个 8 位堆栈指针(S),和一个 16 位程序计数器(PC)。这与同一时代的典型设计相比-Z80,z80有8个通用8位寄存器,可以组合成4个16位寄存器。Z80 还有一套完整的备用寄存器,总共有 16 个通用寄存器。
为了在一定程度上弥补寄存器的不足,6502 包含了一种零页寻址模式,该模式在指令中使用一个地址字节,而不是寻址整个 64 KB 内存所需的两个字节。这样可以使用较短的指令快速访问 RAM 的前 256 个字节。Chuck Peddle 在接受采访时表示,其具体意图是允许这些前 256 字节的 RAM 像寄存器一样使用。
堆栈地址空间硬连线到内存页
,即地址范围0100 – $01FF ( 256 – 511 )。对堆栈的软件访问是通过四个隐含的寻址模式指令完成的,其功能是压入或弹出(拉出)累加器或处理器状态寄存器。相同的堆栈也用于通过 JSR(跳转到子例程)和 RTS(从子例程返回)指令的子例程调用以及中断处理。
寻址
该芯片通过多种寻址模式有效地使用索引和堆栈寄存器,包括快速“直接页”或“零页”模式,类似于在PDP-8上找到的模式,它使用单个访问地址 0 到 255 的存储器位置。8 位地址(节省获取地址高位字节通常所需的周期)——6502 的代码使用零页,就像其他处理器的代码使用寄存器一样。在一些带有操作系统的基于 6502 的微型计算机上,操作系统使用了大部分零页,只为用户留下了少数位置。
间接寻址
间接模式对于数组处理和其他循环很有用。在 5/6 周期“(间接),y”模式下,8 位 Y 寄存器添加到从零页读取的 16 位基地址,该地址位于操作码后的单个字节处。因此,Y 寄存器是一个索引寄存器,因为它用于保存实际索引(与 6800 中的 X 寄存器相反,在该寄存器中直接存储基地址并且可以添加立即偏移量)。递增索引寄存器以逐字节遍历数组只需要两个额外的周期。对于不太常用的“(indirect,x)”模式,操作的有效地址位于通过将指令的第二个字节添加到 X 寄存器的内容而形成的零页地址处。使用索引模式,零页有效地充当一组多达 128 个附加(虽然非常慢)地址寄存器。
6502 能够执行二进制或二进制编码的十进制加法和减法。使用SED(设置 D 标志)指令将 CPU 置于 BCD 模式
01会导致十进制算术,这将导致
和进位
标志被设置。在二进制模式(
,清除
标志)下,相同的操作将导致9A和进位标志被清除。除了Atari BASIC 之外,BCD 模式很少用于家用计算机应用程序。
6502汇编语言的一个简单但有特点的例子的文章https://en.wikibooks.org/wiki/Computer_Programming/Hello_world#Accumulator_+_index_register_machine:_MOS_Technology_6502,_CBM_KERNEL,_MOS_assembler_syntax。
指令和操作码
6502个指令操作代码(操作码)由8位长,并且具有一般形式AAABBBCC,其中AAA和CC定义操作码,和BBB定义的寻址模式。
例如,考虑ORA这样一条指令,它对累加器中的位与另一个值执行按位或运算。指令操作码的格式为 000bbb01,其中 bbb 可以是 010 表示立即模式值(常量),001 表示零页固定地址,011 表示绝对地址,依此类推。
在65C816,16位CMOS 6502的后代,还支持24位寻址,其结果在指令被组装三字节操作数,也设置在小端格式。
汇编语言
6502汇编语言语句由三字符指令助记符,后跟任何操作数 组成。不采用单独操作数而是基于寻址模式以单个寄存器为目标的指令在指令助记符中组合目标寄存器,因此汇编器使用INX而不是INC。
一块带给无数人年少欢乐的CPU,别说你没用过它-12
7
6502变体和衍生品
8
16 位CPU
西方设计中心(The Western Design Center)设计并生产了W65C816S处理器,它是65C02的 16 位静态核心后继产品,具有大大增强的功能。W65C816S 是 65C816 的更新版本,它是Apple II GS计算机的核心,也是为超级任天堂娱乐系统提供动力的理光 5A22处理器的基础. W65C816S 在 65C816 的基础上进行了一些细微的改进,这使得较新的芯片不是早期芯片的精确硬件兼容替代品。这些改进之一是转换为静态内核,这使得可能在任一阶段停止时钟,而寄存器不会丢失数据。到 2020 年 3 月,W65C816S 可通过电子分销商获得,官方额定运行频率为 14 MHz。
西方设计中心还设计并生产了65C802,这是一个 65C816 内核,具有 64 KB 地址空间,采用 65(C)02 引脚兼容封装。65C802 可以改装为 6502 板,并在加电时用作 65C02,在“仿真模式”下运行。与 65C816 一样,两条指令序列会将 65C802 切换到“本机模式”操作,暴露其 16 位累加器和索引寄存器,以及其他 65C816 增强功能。65C802 没有被广泛使用;主要原因是设计几乎总是围绕 65C816 构建,导致 65C802 停产。
9
参考资料
https://opencores.org/projects/t65
https://github.com/orgs/freecores/repositories
https://spectrum.ieee.org/chip-hall-of-fame-mos-technology-6502-microprocessor/particle-1
10
总结
从诞生至今的40多年来,6502对个人电脑和家用游戏主机行业产生了极其深刻的影响,或许我们可以从这一颗古老的CPU学习到什么,或许是他的成功,或许是他的设计方案,无论是什么,学习古老CPU,启示现今的我们。
曾经的你,因为这颗古老的CPU产生多少欢乐呢???
Part2勘误
在《Intel/Altera 系列FPGA简介》中图中结论有误:
经过知乎作者:yoka 主页(https://www.zhihu.com/people/yu-li-dong-96)指正和修改:
agilex是10nm制程其对标的主要还是acap,ultrascale+的16nm 效能必然落后于agilex,ultrascale+还是应对同为16nm s10。(该回答由作者提供,版权归作者所有)
更多回答请查看《https://zhuanlan.zhihu.com/p/413840098》。
NOW

转载请注明:落伍老站长 » 一块带给无数人年少欢乐的CPU,别说你没用过它

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址