HP Nanoprocessor内部:不会折叠的高速处理器



纳米处理器组合光掩模。数据总线左侧的GLB是开发人员George Latham和Larry Bauer的缩写。



HP纳米处理器是惠普在1974年开发的几乎被遗忘的处理器(有关更多详细信息,请参阅《被遗忘的人:HP纳米处理器》,《HP9825.com》《惠普9845项目》),将其用作公司各种产品的微控制器。奇怪的是,该处理器甚至不能加或减-也许这就是为什么他们决定不称其为处理器,而是称其为“纳米处理器”。尽管存在这些局限性,纳米处理器还是管理着从惠普到前端面板和电压表到频谱分析仪和数据采集终端的各种设备。



我确定纳米处理器已专门用于惠普的以下产品:HP 9845B频谱分析仪,HP 3585AHP 3325A合成器/函数发生器HP 9885软盘驱动器HP 3070B数据采集终端HP 98034 HPIB HP 9825计算器接口,HP 9825计算机实时时钟HP 98035,胶片驱动器HP 7970E接口,路由器HP 4262A,频谱分析仪HP 3852,电压表HP 3455A...保罗·亨宁·坎普(Paul-Henning Camp)还告诉我,HP 3336合成器/函数发生器和HP 9411开关控制器



中使用了纳米处理器,该纳米处理器主要特点是成本低,速度快:与当前的Motorola 6800相比,该纳米处理器的价格为15美元,而不是360美元。 ,并以更快的速度处理管理任务。



有趣的是,纳米处理器开发的竞争对手是Motorola 6800,而不是英特尔的处理器。纳米处理器最值得夸耀的是速度:考虑到6800的工作频率为1 MHz,它的工作频率为4 MHz。两种处理器都需要2个时钟周期来执行基本指令,而6800则需要7个时钟周期来执行更复杂的指令。



纳米处理器开发人员进行了速度比较,并建议纳米处理器的读取速度比6800快6倍,并且处理中断的速度快16倍以上。但是,然后假设纳米处理器将以5 MHz的频率运行,而实际芯片的4 MHz频率则略低于此标准。纳米处理器的初始价格为15美元,而摩托罗拉6800的初始价格为360美元。



我不太同意纳米处理器可以称为微控制器,因为它使用带有程序的外部ROM,而微控制器通常在一块芯片上包含所有内容,包括ROM。看起来像Intel 4004)。但是,纳米处理器几乎在所有方面都类似于微控制器:它是为嵌入式应用而设计的,其哈佛架构并且指令集针对I / O进行了优化,它以最小的数据存储量运行ROM中的程序。



至于无法添加的计算机-IBM 1620计算机的大小(始于1959年)没有加法运算,但为此使用了一个结果表。他的代号是CADET,人们开玩笑地将其译为“无法添加,甚至不尝试” [无法添加,甚至不尝试]。



最近,芯片设计师拉里·鲍尔(Larry Bauer)发布了六个用于制造纳米处理器的光掩模,以及其设计细节。在CPU小屋中清洁并扫描了光罩,然后由Antoine Berkovichi清洁(可从链接下载122 MB PSD文件))。下面的光掩模的合成图像显示了IC的内部电路。蓝色层是芯片的顶部金属层,绿色层是底部的硅层。外围有黑色正方形-40个焊盘,用于与IC的外部触点通信。我使用这些光掩模对处理器进行了反向工程,以了解其简单而又精巧的类似于RISC的电路。



纳米处理器与精简指令集计算机(RISC)处理器非常相似,尽管它出现在几年之前。尤其是,纳米处理器采用简单的指令系统设计,所有指令均在一个时钟周期内执行(在采样时钟之后),寄存器组很大且正交,并且寻址简单。与更复杂的处理器相比,RISC的这些固有特性导致了更高的时钟速度。



纳米处理器是在1974年开发的,同时宣布了经典的英特尔8080和摩托罗拉6800处理器,但是纳米处理器的硅制造过程滞后了几年-他们使用金属栅晶体管代替在1960年代后期开发。两者之间的差异似乎令人困惑,但是从几个方面来说,硅栅极要好一些。首先,它们更小,更快,更可靠。其次,他们有一个多晶硅层,除了金属外还有导体。结果,芯片布局几乎是密度的两倍。第三,金属栅极晶体管需要额外的+ 12V电源。1971年,英特尔4004处理器使用了硅栅极,所以令我惊讶的是,惠普在1974年仍然使用金属栅极。



考虑到这些限制,纳米处理器的布线密度给我留下了深刻的印象-一层金属,没有多晶硅。我在寻找其他金属门芯片,它们的布线效率极低-导体比晶体管多。同时,纳米处理器链可以高效定位,并且不会浪费额外的空间。



纳米处理器技术在一个方面超过了英特尔8080和摩托罗拉6800:它使用了耗尽模式上拉晶体管,比8080和6800中使用的增强模式晶体管更先进。第一项技术提供的逻辑门速度更快,消耗更少,但需要额外的生产步骤。在纳米处理器中,此步骤中使用3号光掩模(灰色)。诸如MOS Technology 6502和Zilog Z80之类的处理器,具有自己通道的上拉晶体管允许它们以一种电压而不是三种电压工作。不幸的是,由于金属栅极晶体管,纳米处理器仍然需要不同的电压。



纳米处理器的一个非常奇怪的特性是基板的交流偏置电压。出于速度原因,许多1970年代的微处理器都向硅基板施加了负电压,并通过偏置触点施加了-5V。纳米处理器有一个偏置引脚,但是每个芯片的偏置电压从-2 V到-5 V不等,这是很奇怪的。在生产过程中,需要的电压被手动写入芯片上(见下文)。每个纳米处理器都必须安装一个匹配的电阻才能获得正确的电压。如果在板上更换了纳米处理器,则也必须更换电阻器。可变偏差看起来像制造缺陷-我无法想象英特尔在处理器中做到这一点。



早期的DRAM芯片和微处理器通常需要三个电源电压:+5 V(Vcc),+ 12 V(Vdd)和-5 V(Vbb)补偿电压。在1970年代后期,制造技术的进步使使用单个电压成为可能。 1974年的Intel 8080微控制器使用了需要三个电压的感应沟道晶体管,但是8085(1976)的改进版本使用了具有自己的沟道并由一个+ 5V电压供电的晶体管。自1970年代后期以来,许多微处理器都使用了电荷泵发生器。位于芯片上以产生负偏置电压。





HP Nanoprocessor部件号1820-1691。注意手写电压:-2.5V。部件号(1)的最后一位也是手写的,代表芯片的速度。



像那个时代的大多数处理器一样,纳米处理器是8位的。但是,它不使用随机存取存储器,而是从2KB外部ROM运行代码。它具有16个8位寄存器-比大多数处理器更多,并且足以弥补许多应用程序中内存的不足。就晶体管的数量而言,纳米处理器比英特尔8008(1972)更复杂,比6800(1974)或6502(1975)更容易。



根据我的计算,纳米处理器有4639个晶体管。根据位置考虑,指令解码器由成对的小晶体管组成。这些对的组合产生3829个独特的晶体管。其中,1061为上拉电阻,2668为有源。为了进行比较,6502有4237个晶体管,其中3218个处于活动状态; 8008有3500个晶体管,而Motorola 6800有4100个晶体管。



但是其架构使用晶体管的目的不同于这些处理器。纳米处理器没有ALU,但是有大量的寄存器占用了芯片的大部分面积。纳米处理器拥有48个团队,大大少于6800个72个团队。但是,纳米处理器具有便利的设置,复位和位检查操作,而上述处理器则没有。纳米处理器支持按索引访问寄存器,但是它不像其他处理器那样具有复杂的寻址模式。



早期的微处理器没有设置,复位和检查操作的位(尽管它们可以通过AND和OR来实现)。 Z80(1976)添加了按位运算,但是它们每个都是两个字节,并且比Nanoprocessor慢得多。



下面的框图显示了纳米处理器的内部结构。 I / O的主要功能是4位“ I / O指令设备选择”,它允许15个设备接收I / O命令。换句话说,所选的引脚确定哪个I / O设备正在从数据总线读取或写入。外部电路将这些信号用于特定应用所需的一切-将数据存储在锁存器中,发送到另一个系统,读取值。通过直接控制I / O引脚(GPIO引脚)提供了更多的I / O,适用于输入和输出。如果这些引脚未连接到外部电路,则它们将用作便利位标志;否则,它们将用作便利位标志。纳米处理器可以设置一个值,然后读取它。在没有算术逻辑模块的情况下,控制逻辑模块在加法器上执行递增,递减,移位运算和位运算。





纳米处理器用户手册中的框图



我对基于光掩模的纳米处理器进行了反向工程,并将功能块的位置映射到了芯片上。最大的元素是中心左侧的一组16个寄存器。右边是比较器和加法器,以及它们的递增,递减,移位和补码电路。指令解码器占据了电池比较器上方和右侧的大部分空间。芯片的底部主要由一个11位指令计数器,一个单项中断堆栈和一个子例程堆栈占据。控制电路实现最简单的命令同步:一个提取周期后跟一个执行周期。大多数微处理器的控制电路占据了芯片的很大一部分,但是纳米处理器控制电路却很小。



纳米处理器坚持其在一个周期内执行指令的模型,即使对于双字节指令也是如此:第二个字节是在执行周期内请求的,因此指令的总执行时间不会改变。





HP Nanoprocessor功能组件



了解光罩



该芯片是使用六个光掩模制造的,每个光掩模都通过光刻技术用于生产其中一个处理器层。下图显示了光罩。每个都是47.2 x 39.8厘米的聚酯薄膜片,是100倍的放大的光掩模,用于生产4.72 x 3.98毫米的硅晶体(比6800晶体小33%)。每个3英寸的硅晶片包含大约200个IC,这些IC同时生产,然后进行测试,切割和放置在封装中。







为了解释掩模的作用,我将从描述纳米处理器中使用的金属栅极MOS结构开始。在下图中,借助于杂质使硅(绿色)的两个部分导电,并形成晶体管的源极和漏极。它们之间的金属带形成一个栅极,该栅极通过一层薄薄的绝缘氧化物与硅隔开(因此,结构名称为金属,氧化物,半导体)。可以将晶体管视为由栅极控制的开关。同样,金属层提供了将IC组件与导体连接的主要方法,尽管某些导体也穿过硅层。





具有金属栅极的MOS结构示意图



光掩模在定位组件时是IC制造过程中的关键部分。下图显示了如何使用光掩模将杂质添加到硅的某些区域。首先,在硅衬底上形成绝缘氧化物层,然后添加光敏光刻胶...紫外线(1)会在所有地方聚合并固化光致抗蚀剂,除了遮罩挡住了光线(2)的地方。然后去除尚未暴露于紫外线辐射的软光刻胶(3)。基材暴露于氢氟酸中,从而去除了未被光致抗蚀剂(4)保护的氧化层。氧化物中出现的孔与光掩模上的图案相对应。然后,将基板暴露于热气体中,该热气体会渗透到未保护的硅区域中并改变其导电性能(5)。该过程产生小面积的带有杂质的硅,对应于光掩模(6)上的图像。其他光掩模用于其他生产步骤,但它们使用与光致抗蚀剂相同的工艺。





如何使用光掩模将杂质添加到硅区域中,我将



放大纳米处理器的一部分,以展示如何由六个光掩模形成一个电路(这是一个反相器,用于改变提供给输入的二进制值)。使用第一光掩模和上述光刻工艺,使硅区域导电。带有杂质的绿色标记区域将形成晶体管或组件结的源极/漏极。





第一个光掩模产生导电硅片



然后用绝缘氧化物层覆盖晶体。第二个光掩模(紫色)用于蚀刻暴露下层硅的氧化物中的孔。这些孔可用于创建晶体管的栅极以及连接金属导体和硅。





第二个光掩膜在氧化物层上形成孔,



第三个光掩膜(灰色)暴露出用于离子注入的区域,这些离子会改变硅的性质,从而改变晶体管的性质。这将上部晶体管变成一个沟道晶体管,将逻辑门的输出上拉。





第三个光掩模(灰色)在上晶体管的硅中产生杂质



然后在硅上涂覆一层额外的绝缘氧化物薄层,以形成晶体管的栅极氧化物。第四个光掩模(橙色)从那些将成为硅与金属层之间接触的区域去除了此氧化物。在此步骤之后,大多数晶体被厚绝缘氧化物覆盖。在晶体管的栅极上方(紫色),氧化层非常薄,并且具有用于与当前光掩模(橙色)接触的孔。





第四个光掩模在氧化物中产生孔



第五个光掩模(蓝色)用于从上方创建金属导体-为此,首先要涂覆均匀的金属层,然后将不需要的部分蚀刻掉。在第四掩模在氧化物中形成孔的那些地方,金属层与硅接触并形成导电接触。在第三个掩模产生了一层氧化物薄层的情况下,金属层在两块硅之间形成了晶体管的栅极。最后,整个基底覆盖有玻璃保护层。第六个光掩模用于在芯片边缘的触点上方的该层中创建孔。将整个基板切割成单个晶体后,将焊丝焊接到这些触点上,并将它们连接到外部触点。





第五个光掩模创建金属布局



下图显示了该电路如何形成具有两个晶体管的反相器。晶体管的两个符号对应于使用光掩模获得的两个晶体管。在没有输入信号的情况下,上部晶体管(连接至+5 V)将输出上拉。输入信号为高电平时,它会导通较低的晶体管。这会将插座接地,将插座向下拉。因此,电路将输入信号反相。





匹配上述模板的N-MOS逆变器电路



尽管上图显示了单个反相器,但是这些步骤使用光掩模来创建具有所有4,639个晶体管的完整处理器。下图显示了芯片的较大部分,其中许多晶体管形成了更复杂的栅极和电路。我注意到其中一个光罩上有一个感人的东西-芯片号下有一个内有HP字母的小心脏。



纳米处理器具有两个不同的部件号。1820-1691表示2.66 MHz版本,1820-1692表示4 MHz版本。经过验证后,最后一位数字是手动写入每个芯片上的。零件编号与芯片上的9-4332A芯片编号无关。





芯片图纸



纳米处理器如何管理手表



为了了解实际中如何使用纳米处理器,我对HP 98035时钟模块的代码进行了反向工程,该模块连接到HP 9825台式计算机并用作实时时钟,还可以测量间隔并以毫秒精度触发周期性事件。时钟模块电路异常。为了保持计算机关闭时的当前时间,时钟模块是基于带有备用电池的数字时钟芯片构建的。该时钟芯片不是为计算机控制而设计的,这带来了不便:它生成了7段信号来控制LED,并配置了三个按钮。为了找出时间,Nanoprocessor必须将7段显示器的输出转换回数字。要设置纳米处理器时间,您必须模拟正确的按钮按下顺序。



HP 9825是16位台式计算机,支持与BASIC类似的语言。它于1976年推出,比IBM PC早五年,当时它是一个相当先进的系统。在背面,它具有三个用于添加模块(例如实时时钟模块)的连接器。





带有LED显示屏,磁带驱动器和打印机的HP 9825



为了节省能源,德州仪器(TI)的时钟芯片在集成注入逻辑(I2L)上实现。今天的低功耗芯片将使用CMOS,但那在当时是很少见的。 I2L建立在类似于TTL的双极晶体管上,但使用具有高密度和低功耗的不同电路。也许是DIP封装中的X-902芯片。





纳米处理器(白芯片)作为HP时钟模块的一部分。左侧是2KB ROM。右侧是两个256位x 4存储芯片。德州仪器(TI)时钟芯片是绿色NiCad电池下方的黑色大芯片。



计算机通过向时钟模块发送ASCII字符串(例如“ S 12:07:12:45:00”)来控制时钟模块,该字符串应将时间设置为12:45:00 12月7日(或欧洲记法为7月12日)。通过诸如“ Unit 2 Period 12345”之类的命令,以类似的方式启动了模块的各种间隔计时器,警报和计数器。该模块支持24个命令,并且Nanoprocessor需要识别它们



这是从时钟板ROM反向工程的一段代码。这是来自中断处理程序的代码,该代码每秒钟增加计时器和日期。该代码确定一个月中的天数,以便知道何时将月份更改为下一个日期。列-字节值,命令和我的解释。 该代码获取月份号(01-12 BCD),将其存储在累加器中,并在寄存器0中返回月份的天数(28、30或31 BCD)。尽管忽略了leap年,但对于16个字节的代码来说还不错。他如何工作?在7月(7月)之后的月份中,它减去1。然后,如果月份为奇数,则为31天,如果为偶数,则为30天。要处理2月,代码将清除1个月的位。如果月份为0(2月),则为28天。



d0 STR-0 (7) 0.

07

0c SLE , <= 0.

03 DED 1

5f NOP

d0 STR-0 (0x31) 0

31

30 SBZ-0 , 0 0

81 JMP-1 0x1c9 ( )

c9

a1 CBN-1 1

d0 STR-0 (0x30) 0

30

0f SAN , 0

d0 STR-0 (0x28) 0

28








从代码中您可以看到,即使没有加法运算的处理器看起来毫无用处,按位运算和Nanoprocessor的增/减也允许比您想象的更多的计算。



在代码中,我遇到了一个需要添加两个BCD编号并形成一个字节的地方。这是通过减少一个数字并增加另一个数字的循环来完成的。当第一个数字为零时,第二个得到它们的总和。因此,即使没有ALU,也可以进行添加,尽管速度很慢。



您还可以看到,纳米处理器代码紧凑高效。您可以在一个字节中完成很多工作,而在其他处理器中则需要几个字节。大量的Nanoprocessor寄存器使您可以避免往返于乏味的数据之间。尽管有些人认为纳米处理器比微处理器更像是一个状态机,但这将低估了纳米处理器的功能和作用。



尽管纳米处理器没有ALU或随机存取存储器命令,但是它们可以作为附加的I / O设备进行连接。手表有一个256字节的随机存取存储器,用于存储计数器和计时器的值,通过I / O端口组织对其的访问。其他产品添加了ALU以支持算术运算。



时钟板图显示了如何将两个256x4 RAM芯片连接到纳米处理器。纳米处理器的I / O端口选择一个引脚并连接到“ 3-8解码器” U5,U5为每个I / O端口输出单独的信号。它们中的三个进入RAM芯片的控制引脚,而一个则控制数据锁存器U9和U10的芯片,这些锁存器保存着写入的数据。







所有I / O端口都使用Nanoprocessor数据总线(顶部)交换数据,因此该总线连接到RAM芯片的地址引脚和数据引脚。为了读取,将存储器地址通过一个I / O端口写入芯片,然后通过另一个端口从存储器中读取数据。在这两种情况下,值都通过数据总线传递,并且来自``3-8解码器''的信号指示如何处理这些值。为了进行写入,第一个I / O操作将字节值存储在锁存器中,然后第二个I / O操作将地址发送到存储芯片。这听起来像是笨拙的Goldberg机器风格的方法,但实际上它运行良好,并且可以使用两个字节的指令来完成读/写操作。



许多处理器(例如6502)使用内存映射的I / O设备被映射到内存地址空间,并通过读/写操作进行访问。纳米处理器以相反的方式工作,将内存插入I / O端口并通过I / O操作对其进行访问。



添加ALU时,使用类似的方法-如使用两个纳米处理器的HP 3455A电压表一样。该电压表使用两个74LS181 ALU芯片来实现一个8位ALU,它用于缩放值并计算误差百分比。两个出口提供自变量,一个定义操作。从端口读取8位结果,处理器通过GPIO引脚读取传输(使您怀疑使用带有算术支持的处理器是否更容易)。



结果



纳米处理器是一种不寻常的处理器。乍一看,由于缺乏基本的算术运算,在我看来它甚至是“伪处理器”。该芯片基于过时的金属门技术,落后于其他微处理器几年了。最奇怪的是,每个芯片都需要自己的电压,这是在外壳上手动编写的,这表明生产质量稳定的困难。但是,纳米处理器在微控制器中的作用很快,比其他现代处理器要快得多。惠普(Hewlett-Packard)在1970年代和1980年代的许多产品中都使用了纳米处理器,其作用比预期的要复杂。



尽管纳米处理器早已被遗忘,甚至没有在Wikipedia上写过,但其创建者最近发布的光罩揭示了处理器历史上这个不寻常的角落。



All Articles