早期德州仪器(TI)计算器芯片中的反向工程RAM存储

2020-11-29 05:02:02

德州仪器(TI)在1974年推出了第一台商用单芯片计算机,它将CPU,RAM,ROM和I / O集成到一个芯片中。该4位处理器家族称为TMS1000。 1A 4位处理器现在似乎非常有限,但对于计算器来说是个不错的选择,每个小数位都可以容纳4位,该微控制器还用于手持游戏2和简单控制应用(例如微波炉)中。 3由于TMS1000的软件位于ROM中,因此每种应用都需要定制制造,但价格便宜,售价为2至4美元。它变得非常流行,并被认为是最畅销的“片上计算机”。

上面的照片显示了TMS1000的主要功能模块。区别于TMS1000(和大多数微控制器)与常规处理器的一件事是“哈佛体系结构”,其中代码和数据分别存储和访问。数据甚至具有不同的大小:指令为8位,并存储在1 KB的ROM中,而数据为4位,并存储在64×4(256位)的RAM中。 4由于RAM的空间有限,德州仪器(TI)开发了RAM的新电路。在这篇博文中,我介绍了TMS1000和后来的TI芯片如何实现其片上RAM。

1970年代初期,动态RAM彻底改变了存储器的存储方式。动态RAM使用一个很小的电容器来存储每个位,其中0或1表示电容器中存储的低电压或高电压,而动态RAM的问题在于电荷几毫秒后就会泄漏出去,因此需要通过读取数据,放大电压并将这些值存储回电容器来不断刷新这些值。 5Texas Instruments为TMS1000开发了一种新的动态RAM电路,从而避免了外部刷新电路的复杂性,而是每个存储单元都使用时钟信号在内部对其自身进行刷新。

下图放大了TMS1000芯片照片,显示了16×16的RAM存储单元网格。右侧的插图显示了一个存储单元。这张照片显示了芯片的金属层。晶体管在下面。

TMS1000由一种称为PMOS的晶体管构造而成,如下图所示。在底部,掺杂了两个硅区域(红色)以使其导电,从而形成了晶体管的源极和漏极。介于两者之间的金属带形成栅极,并通过一层薄薄的绝缘氧化物与硅隔开。 (这些层(金属,氧化物,半导体)赋予MOS晶体管名称。)可以将晶体管视为源极和漏极之间的开关,由栅极控制。金属层也提供集成电路的主要布线,尽管硅层也用于某些布线。

下图显示了TMS1000中一个存储位的特写镜头。第一张模具照片显示了淡黄色的金属层。金属层既连接电路又形成晶体管的栅极。第二张照片显示了金属被酸溶解后露出裸片下方的硅片。导电掺杂的硅粉红色,而晶体管为黄色正方形。左下方的黑点是通过将硅与上方的金属连接起来的黑点,由于难以解释照片,我在右侧创建了示意图,以澄清成分。五个白色正方形是位于粉红色硅区域之间的晶体管。通过重叠金属和硅产生两个电容器(标记为)。

一位RAM存储。第一张照片显示金属层,第二张照片显示下面的硅,第三张照片显示硅结构。在此处死掉Sean Riddle的照片。

下面的原理图与上述电路相对应,其中的晶体管处于近似的物理位置。要写入位,将该位放在数据I / O线上并激活地址线。 8这将打开晶体管Q4,并允许该位流到A点,该点由那里的电容器保持(暂时)。可以通过激活地址线以相同的方式读出该位。在典型的动态RAM芯片中,每个单元仅由该晶体管和电容器组成,但是TMS1000使用附加的晶体管刷新电容器上的电压。

TMS1000刷新电路由两个时钟信号驱动,时钟相位1(Φ1)和时钟相位5(Φ5)。 7激活时钟相位5会导通Q3,并使该位流向C点,即晶体管Q1的栅极。大晶体管Q1是刷新电路的关键组件,因为它会放大信号C.接下来,在时钟相位1时, B处的放大信号流经Q2,恢复存储在A处的原始位。该电路对芯片中256位RAM的存储重复256次,这些时钟信号以大约80 kHz的频率被激活,确保在刷新该位之前会流失。

CMOS(互补MOS)是将NMOS和PMOS晶体管相结合以降低功耗的一种电路.1978年,TI开始从TP0310和TP0320芯片开始制造CMOS计算器芯片。 6这些芯片用于TI-30-II(下图),TI-35和TI-50等计算器中。向CMOS的转换与TI从耗电的LED或真空荧光显示器(VFD)转换为低电压的同时发生。这些改进可以延长电池寿命。TI还使用CMOS来实现“ Constant Memory™”,即使关闭计算器也可以保留计算器数据。 CMOS的低功耗意味着可以连续给存储器供电而不会耗尽电池。

CMOS的悠久历史始于1963年的发明.RCA进行了CMOS的早期开发,1968年推出了4000系列集成电路,1974年推出了第一个CMOS处理器RCA 1802.不幸的是,RCA十年了CMOS在市场上取得成功还为时过早;尽管CMOS的较低功耗使其成为了航空航天市场的重要市场,但NMOS处理器在微处理器行业占据了主导地位。然而,主流微处理器最终在1985年转向Intel 80386,并在1987年进入摩托罗拉68030,成为当今的主流技术。

TI在1978年从金属栅PMOS转移到CMOS的情况很不寻常。其他制造商(例如Intel)在1971年左右从金属栅晶体管转移到性能更好的硅栅晶体管,然后在1974年左右从PMOS转移到NMOS。目前尚不清楚为什么德州仪器(TI)继续使用劣质金属栅极PMOS电路已有数年;也许计算器并不需要改进的性能,因此切换成本效益不高,但随后德州仪器(TI)完全跳过了NMOS的一代,在主流微处理器行业的十年之前跳到了CMOS。低功耗CMOS是电池供电计算器的明显优势。奇怪的是,即使转向CMOS,TI仍继续使用劣质的金属栅晶体管。

这段历史表明,用新技术和改进技术代替旧技术并不是技术进步的直接途径。取而代之的是,像CMOS这样的新技术可能需要几年的时间才能流行起来,在特定市场上获得成功,但要等到经济因素和工程折衷方法改变后才能在其他市场取得进展。

回到TP0320,下面的裸片照片显示了TP0320裸片,放大了RAM阵列。该32×24阵列可容纳768位,是TMS1000的显着升级。右侧特写放大了一位;位缓存的布局与TMS1000 RAM不同;设计从动态RAM切换为静态RAM,消除了在本节中,我将解释如何实现此RAM单元。

TMS-0320的管芯,放大了32×24 RAM阵列和单个存储单元。肖恩·里德尔(Sean Riddle)的原始照片。

下图显示了如何将两个反相器以循环方式连接以存储0或1。如果上信号为1,则右侧的反相器在底部输出0,而左侧的反相器在输出1。在顶部,增强原始信号。或者,顶部信号可以如右图所示为0.此静态电路与先前的动态电路之间的关键区别在于静态电路将保持任意长时间的位。该位不会像动态RAM中那样从电容器泄漏出来,因此不需要刷新。

为了使存储单元可用,在上面的反相器电路中增加了寻址机制,当地址选择线被激活时,晶体管将反相器连接到数据线,要进行读取,将从数据中读取单元的值对于写操作,将所需的位及其补码应用于数据线,以使逆变器中存储的值过载,并将其切换为新的位值。这种类型的存储单元用于在许多处理器中实现寄存器,包括Zilog Z80和Intel 8085。

下图显示了如何由两个晶体管构成CMOS反相器。上晶体管是PMOS晶体管,下晶体管是NMOS晶体管。输入为0时,PMOS晶体管导通,将输出连接到正电压(1)。输入为1时,NMOS晶体管导通,将输出接地(0)。因此,输出与输入相反,正如您期望的那样。

将所有这些放在一起将产生以下示意图。晶体管Q1和Q3实现一个反相器,而晶体管Q2和Q4实现第二个反相器。晶体管Q5和Q6根据地址选择单元。晶体管排列在原理图上以匹配其物理位置。

下方的照片展示了TP0320处理器中存储单元的实现方式,第一张照片显示了将电池连接在一起的三个垂直金属迹线,第二张照片中用酸去除了金属以露出下方的硅。握住PMOS晶体管(Q1和Q2),下部握住NMOS晶体管(Q3至Q6)。晶体管显示为白色矩形,而掺杂硅显示为绿色或红色线条。黑点是将硅与该图可以与上面的示意图进行比较。

TP0320中有一个RAM单元。第一张照片显示了金属层。第二张照片显示了底层硅。该图显示了合并的层。死亡照片由Sean Riddle提供。

下图缩小了一点,以显示NMOS和PMOS晶体管的排列方式。注意包围NMOS晶体管的“ P环”。这形成了一个容纳NMOS晶体管的P型硅槽(该P环是上方裸片照片中Q2下方的水平绿线)。芯片包含许多这样的槽,将PMOS和NMOS晶体管分隔开。

NMOS晶体管位于被P型硅环环绕的P型“管”中。

1981年,德州仪器(TI)推出了功能更强大的TP0455,紧随其后的是TP0456。TP0456芯片用于TI-55-II科学计算器,TI-35和TI-60等计算器以及益智玩具,例如Little Professorand SpellingB。

下图是TP0456,RAM阵列在下图的左下角,而ROM在右下角.TP0456的RAM阵列宽32个单元,高16个单元,提供512位存储空间,小于TP0320的768位。

TI-55-II计算器中使用的TP0456的模具照片;计算器使用两个TP0456芯片。死亡照片由Sean Riddle提供。

TP0456使用与早期CMOS芯片几乎相同的静态单元结构,但布局略有变化,特别是选择线在两条反相器线之间而不是在侧面运行,我不知道他们为什么这样做改变,因为它似乎并没有改变密度。静态RAM电路与前面描述的TP0320相同,因此在此不再赘述。

TP0456中有两个RAM单元。较长的垂直选择线在较短的反相器线之间延伸,这与早期单元的布局不同。

尽管RAM存储看似微不足道,但早期的微控制器需要新的方法来将存储空间适配到裸片上的有限空间中。甚至只有256位占用了芯片的很大一部分。德州仪器(TI)为TMS1000微控制器开发了新的动态RAM电路,随后在切换至CMOS微控制器时又采用了完全不同的静态电路。

几十年后,微控制器的存储容量仍然有限。例如,Arduino Uno具有32 KB的闪存用于程序存储和2 KB RAM。现代高端微控制器可以具有MB的程序存储和数百KB RAM,但这仍然比典型的微型计算机小几个数量级。就像在TMS1000中一样,将所有内容装配到单个芯片上的限制仍然限制了容量,并且仍然需要新颖的解决方案。

我会在Twitter上发布我的最新博客文章,所以请在kenshirriff上关注我。我也有一个RSS feed。感谢Datamath的Joerg Woerner提出了这个主题,并感谢Sean Riddle的照片。

德州仪器(TI)在1971年被认为是开发TMS0100(与TMS1000不同)的微控制器的发明者。虽然TMS0100具有微控制器的特性,但它还是作为“片上计算器”销售的。但是,作为计算器类型的应用程序和中小型控制应用程序的“单芯片计算机”销售。 ↩

著名的Speak&Spell使用了TMS1100微控制器,这是TMS1000的版本,具有两倍的RAM和ROM。此处是一个裸照;它与TMS1000裸照几乎相同,只是RAM和ROM区域垂直延伸以增加容量。

TMS1000的体系结构由于其源于计算器芯片而非常不寻常。它只有四根输入线,被设计为连接到按钮网格。输出也很不寻常:它具有8条“ O”输出线,但是这些不是单独可控制的。而是由可定制的PLA解码器将5位值转换为八个输出。其背后的动机是驱动7段显示器。微控制器还具有11个“ R”输出,通常用于多路复用LED显示和扫描键盘。TMS1000的另一个令人惊奇的功能是指令集是有点可定制。

相比之下,流行的8048(1976)和8051(1980)等英特尔微控制器更像是标准的8位微处理器。与TMS1000不同,英特尔微控制器具有熟悉的功能,例如8位CPU,8位I / O端口,中断,堆栈以及带有布尔运算(AND,OR,XOR)和移位的固定指令集。从TMS1000指令集来看,它看起来有些陌生,而8048的指令集与当时的微处理器相似。 ↩

动态RAM有时用于处理器(例如Intel 8008)中的寄存器存储,尽管静态RAM更常见,因为它不需要刷新。 ↩

Datamath计算器博物馆拥有有关Texas Instruments计算器的大量信息,IC列表尤其相关。 ↩

TMS1000采用复杂的逻辑电路,使用五相时钟来实现.TMS1000使用了耗尽负载,门控负载或预充电逻辑的混合以节省功率。我不确定为什么TMS1000使用五相时钟。四相逻辑当时是一种逻辑设计方法,但是TMS1000电路似乎没有使用四相原理,其中TMS1000的相是不规则的,每个周期Φ4脉冲两次。 ↩

TI的随机存取存储单元专利(1974年)描述了TMS1000中使用的存储单元。专利中的布局与实际布局相似但不完全相同。晶体管Q5出现在电路中,但并非专利中。当时钟相位5处于活动状态时,它将点B拉至0,确保将C处的0位恢复为更强的0位。

尽管大多数专利并没有提供太多有用的信息,但德州仪器(TI)的计算器专利却异常详细和翔实,提供了原理图,源代码和清晰的解释。它们似乎是由工程师编写的。(我觉得我应该以TI的专利质量为荣。)