我最近遇到了一个变换器只读存储(TROS)模块,它在IBM System / 360大型计算机中存储了微码。这一异常存储机制使用一堆Mylar纸张持有15,360位,相当于1920 BYTES.BY现代标准,这是一种荒谬的少量数据,但在1964年,半导体只读存储芯片Weren' t可用,所以使用MylaR纸张存储是一个合理的解决方案。在这个博客文章中,我解释了TROS模块的工作方式它在IBM系统的成功中的作用/ 360。
一个tros模块,约15" (39厘米)长。在左侧,60个变压器通过128个Mylar纸张的堆叠。 (仅可见变压器的方形端部。)纸张连接到右侧的二极管板。 TROS模块通过背面的连接器电缆连接到其余的计算机。
下图显示了TRO后面的概念,简化为三个比特的两个单词。三个变压器(方形环)每个都具有一个感测绕组,从而生成一个输出的一位输出。移交(A或B)具有传递的驱动线通过变压器(1位)或围绕变压器(用于0位)。在图中,驱动线B(红色)由电流脉冲激活。它从第二和第三变压器生成脉冲(蓝色),用于Word B的Bbits 011。另一方面,用于Word A的接线生成位101.通过穿过更多驱动线(或者)来完成更多单词(或周围)变形金刚,每个单词的变换器。可以存储一个位模式,具体取决于驱动线路的连接方式。
实际的TROS模块具有60个变压器和256个驱动线路,因此它持有256个60位的单词。通过变压器的机灰地穿过256根电线是困难的,因此TROS模块使用巧妙的技术来使线索组装或修改。接线印在Mylar(称为磁带)上印刷,基本上是一个柔性印刷电路板。胶带有两个接线(称为字线)的循环,可以通过变压器或围绕变压器,因此128个Mylar磁带提供了256个字的布线。
一个MyLar磁带,持有120位数据。它由两个线环组成,连接到底部的四个引脚。
如下所示,MyLar磁带堆叠在60个变压器上。使用的60个变压器包括U形,其双臂通过堆叠128个磁带。在这种方式中,Mylar磁带有效地通过和周围创建了接线变压器,而不是穿线单独的电线。
从下面观察变压器的结构。每个变压器由通过磁带的U形件组成,以及完成变压器的I-BAR。从模型40功能单位。
一旦堆栈完成,将一个I-Bar放置在每个U的顶部以关闭变压器内核。感测线(下面的红色布线)TWA在每个I形栏周围缠绕多次以检测输出信号.ECHEACH已连接到检测输出信号的读出放大器,以产生60位输出。(从TROS模块中缺少I-Bar和Sense行,但在下面的模块中可见。)
感测绕组缠绕在I形杆上并连接到销钉。底部的I形杆被拆除,显示通过Mylar磁带粘上的变压器U形件的顶部。这个TROS模块位于计算机历史博物馆。
通过电线冲压孔来编程MyLar磁带,以打破不需要的布线路径。下面的照片显示了其中一个胶带的特写,显示了磁带上印刷的接线,为变压器腿的大方孔,以及较小的圆形孔通过字线布线打孔。右侧的图表说明了由孔模式产生的接线路径。磁带通过或在每个变压器(灰度矩形)上或周围有两个字线(以红色和绿色表示)。
特写镜头的troos磁带。右侧的图表说明了两个迹线(红色和绿色)如何通过磁带中打孔的孔或围绕变压器(灰度矩形)。
要读取256个单词中的一个,一个特定的Mylar磁带上的一个字线(线路)接收到电流脉冲。直接实现将使用256脉冲驱动器,其中一个由地址位选择,但是这种很多硬件将昂贵。相反,TROS模块由A&#34驱动;矩阵"方法。 256字线逻辑地连接到16×16矩阵。地址分为一半,并且每份半部分被解码以选择16行中的一个。在两端线上选择的字线将接收当前脉冲并被激活。 2
每个Mylar磁带插入二极管板。注意" 2020"在左侧,表示该模块来自系统/ 360型号20。
每个MyLar磁带连接到两个二极管板中的一个,导致数百个连接(上图)。(这些二极管防止矩阵信号从所有短路一起缩短。)二极管在下面的方形铝模块内。IBM系统/ 360没有#39; T使用集成电路,而是使用SLT模块,包含微小半导体和厚纤维电阻的混合模块。下面的SLT模块包含8个二极管。
二极管板的这个特写镜头显示了标有361485的正方形金属SLT模块。每个都包含8个二极管。 MyLar磁带连接位于顶部和底部,而" FIN"在中间是从TROS模块到其余的电脑的接线。
根据它的标签,我已经在低端系统/ 360型计算机上使用了TROS模块。型号20是慢速,剥离的系统,缺少完整的系统/ 360指令集.Even,其低成本(每月1280美元)使其成为最受欢迎的系统/ 360型号。型号20包含8个TROS模块,保持6144微型指令(每60位单词3微型指令)。 3这些模块在下面的计算机的左侧可见,垂直安装。TROS模块在计算机内部占用大量空间。
IBM System / 360型号20. TROS模块位于左侧。从本Franske,CC的照片到2.5。
如果你'重新想知道模型20微码的样子,样本如下。微代码本身(在十六进制中)以蓝色突出显示,助记符以绿色爆发。评论在右侧。模型20' S微码比较大系统/ 360系统中的水平微码更简单。 4.
从系统360/20的微码。代码中的微型操作是"如果零&#34 ;,""添加直接""分支,如果加上"和& #34;如果减去",分支,所有在寄存器R1上行动。FEMDM VOL 2。
计算机设计中最困难的部分是创建控制逻辑,告诉处理器的每个部分如何执行每个指令。在1951年,Maurice Wilkes提出了Microcode的想法:而不是从复杂的门建造控制逻辑电路,控制逻辑可以用存储在名为Control Store的特殊内存中的代码(即微代码)替换。要执行指令,计算机内部执行由微代码指定的几个更简单的微型指令。处理器' S控制逻辑成为一个编程任务而不是逻辑设计任务。
然而,在20世纪50年代,储存技术Weren' t快速和廉价足以使微码实用。它是IBM System / 360(1964)的IBM System / 360(1964),商业计算机进行了大量的微代码。 Microdode在系统/ 360的成功中播放了关键作用,帮助IBM产生具有相同指令集架构的计算机线,并具有不同的实现.MicroCode还简化了向后兼容性,帮助系统/ 360支持较旧的IBM系统的指令集。 5.
IBM使用了几种不同的只读存储技术来存储微码,以便组合政治和技术原因。在英国的IBM'在英国的Hursley网站开发了组合。该网站开始于微码,因为晶体管在英格兰非常昂贵20世纪50年代,微否定减少所需的晶体管数量。 Hursley为Scamp 6计算机开发了一个TRO。接下来是在系统/ 360型号20和型号40上使用的TROS I' VE,以及IBM 2841文件控制单元。
竞争类型的只读存储是CCROS(电容耦合只读存储),它使用了用作电容矩阵的Mylar纸张。CCROS的有趣特征是Mylar纸张与IBM打卡具有相同的大小Somicrocode可以通过用标准的keypunch.cros在IBM' snodicott网站上进行打孔来编程Somicrocode。由于系统/ 360型型号也在那里开发出来,它使用本地开发的CCROS,即使CCROS比TROS.ECH的CCROS卡较慢,可靠地保持12个60位字。型号30有42个CCRO板,每个CCROS板,每个保持8张卡,总共4032个60位字。
ccros纸的细节。它是通过用keypunhine冲出它的冲孔。
高性能模型50,65和67需要更快的控制商店,因此他们使用了第三种技术,BCROS(平衡电容只读存储).like CCROS,通过传感电容,BCROS读取比特,但是每位都有两个电容器(平衡电容器)有助于降低噪音和增加的速度。BCROS的Mylar纸张为20“×8½”,比TROS和CCROS板更大。蚀刻BCROS中的数据(下图),相当而不是冲压孔。移位由两个正方形表示:一个连接到上线,一个连接到下线(或反之亦然),形成平衡电容器。移植到100位的176个字,以及系统使用了16张,提供2816个单词。
而不是使用特殊技术存储微码,低端模型25held Microcode在称为控制存储的核心内存的16千字节部分中。在该模型中,从卡片甲板或磁带加载不同的微代码,以在系统/ 360之间切换操作模式并仿真传统IBM 1400系列。
这些存储技术的一个重要特征是通过将握住微码的Mylar纸张(或卡片甲板)交换Mylar纸张(或卡片甲板)可以在客户站点上轻松更新微代码.Many系统错误可以通过更改微代码来廉价地固定。 (相比之下,AN"工程变更"在较旧的IBM 1401上通常需要工程师修改背板上的接线,更加耗时的时间,如果客户购买的话也可以升级微代码新功能。
TROS与Apollo Guidance Computer(AGC)使用的核心绳存储有一些相似之处,以存储程序,因为两者都通过核心的电线模式中的只读数据。核心绳索和TROS的权衡是不同的。 39; S核心绳索比TRO更致密,空间飞行的一个重要特征。然而,通过更换塑料胶带,可以轻松改变TRO,同时修改核心绳索所需的昂贵的8周制造过程,以连接新的模块。
核心绳索内存接线细节从早期(块i)apollo引导计算机。照片来自雷神。
TROS和核心绳索在结构上是相反的,反转单词(地址)线和感测线路的典型线路.TROS数据依赖于哪条字线或周围变压器,而核心绳索数据依赖于哪条感测线路或周围核心。要在AGC中读取一个单词,激活一个核心,而在TRO中,所有变压器(潜在)被激活。在TRO中的变压器有一个感测线,与一个输出位相关联。在AGC中的每个核心与一个输出位相关联。 #39; S核心绳索有192个感测线,与12个单词相关联。(我在这里核心绳索写得更多)。
TROS和其他只读存储技术是IBM System / 360的压倒性成功的关键成分,因为它们是Microcode实用的。然而,在20世纪70年代的廉价半导体ROM的到来量大量的复杂存储技术,如Tros.nowadays,大多数微处理器仍然使用微码,但它存储在芯片内的ROM中而不是mylar.microcode中的ROM中可以通过下载文件来修补,而不是替换计算机内的Mylar纸张。 7.
我在Twitter上宣布了我最新的博客帖子,所以跟着我@kenshirriff以供未来的文章。我也有RSS饲料。
下图说明了矩阵选择和二极管的工作方式。该图已简化为2个驱动程序,4个门和8字线;真实系统有16个驱动器,16个门和256条字线。(IBM呼叫A"门"这不是逻辑门,但是电流槽形成电路的另一端。)通过激励特定的驱动器和门对,选择字线。例如,如果驱动器1和门3被激励,则选择字线3,如红色所示。请注意,没有二极管,信号可以向后,不正确地激励多个字线。
↩词线矩阵选择。激励驱动程序DR1和门G3选择字线W3。基于型号40功能单元,P61。
型号20使用了22位微码字,因此这是如何使用60位TRO的工作方法是如何将一些微代码字被截断为16位,SOECH TROS Word持有三个微代码字:两个22位单词和一个16位Word.in型号20' s microcode,每个单词都包含下一个MicroInstruction的地址来执行.Since截断的16位字只能分支到NextMicroinstructions的有限子集.thus,微代码汇编程序具有要小心地安排微代码,因此微型指令需要更长的分支,以较长的22位单词中的一个存储。 ↩
模型50中的90位微指令可以并行执行半十几个不同的功能。例如,下面的每个黄色框是单个微型指令,即浮点乘法的一部分。框中的行是一个单独的动作;微指令可以并行地控制发射器,加法器,移位器,移动器和本地存储。点是模型50更快(部分),因为它具有多个功能单元,并且微致备用控制它们更加复杂。
系统/ 360型号50中的两个微指令(黄色)。这是微码的一部分,用于处理浮点乘法期间的指数下溢和溢出。黑线显示控制流程。框外的文字是评论。从模型50图QG702
大多数系统/ 360计算机使用微码,因为它降低了成本,增加了灵活性,并提高了发展速度.IBM强加了系统/ 360计算机必须在微代码中实现的规则,除非有一个非常好的原因而不是。使用硬连线最快的模型但是,控制电路最大化性能。 ↩
令人困惑的是,IBM有两个称为Scamp的无关计算机。使用TROS是科学计算机和调制器处理器,该计算机在IBM Hursley开发的Scientific应用程序,而不是便携式IBM 5100(特殊计算机APL机器移动设备)的更好的销售仪器。 ↩
现代X86芯片具有硬编码的微码,以及一些SRAM,可容纳微码贴片以修复处理器缺陷。每个开机后,将通过BIOS(详细信息)将修补程序下载到处理器中。 ↩