支持源指令执行过程仿真的扩展浮点运算的制作方法

文档序号:1761阅读:354来源:国知局
专利名称:支持源指令执行过程仿真的扩展浮点运算的制作方法
本发明所包含的主题与题为根据浮点运算结果提前发放指令的快速正确性反应、编号为896879的那个美国专利申请中所叙述的发明有关。该申请于1986年8月15日申请发明人是David A.Hrusecky,该申请转让给本申请的同一受让人并在本申请中供参考。
本发明属于机器仿真领域,特别是仿真一个源CPU操作的源系统,仿真的过程是把源CPU指令翻译为目标CPU指令供目标CPU发放和执行。更具体地说,本发明是通过某种方法在源浮点算术指令正在被仿真时加快指令的翻译和发放功能来扩充这样一个系统的仿真能力,此方法通过执行目标机的寄存器一寄存器型的浮点运算指令来仿真源浮点RX型指令的执行。
仿真的含义是用一个(“目标”)CPU来模仿另一个(“源”)CPU的操作。目标CPU经过专门的程序编排和结构设计使其能够执行针对源CPU编写的程序。一个为源CPU编写的程序包含一个逐条供给目标CPU的源指令序列。目标CPU通过执行一条或多条目标指令对每条源指令作出响应。
在Fisk等人发明的编号为4587612的美国专利(转让给本受让人并在本文中供参考)中,有一个仿真辅助处理器(EAP)接收源指令流并把每条源指令转换为一条或多条目标指令,这些目标指令则被送往目标CPU的指令处理部件(IPU)。在上面列出的那个专利中,EAP把多个字段的源指令转换为多个字段的目标指令并把目标指令顺序地送到IPU供它处理和发放。
如所周知,当源CPU包含一个象1BM370主计算机那样的机器时,(在编号为3400371的美国专利中对此作了描述,该专利转让给本受让人并在本文中供参考),其源指令系统包括多个字段的浮点算术指令,其中主要是RX型指令。利用1BM370指令集的源指令程序在特征上受到一个称为条件码(CC)的状态的约束,这个条件码状态是一种指示,它是依据包括浮点算术指令的某条指令的执行结果而建立的。当1BM370浮点指令产生一个异常结果(例如一个全0结果)或者试图作一个异常操作(例如除数为0的除法)时,将建立一个中断指示,从而把控制从正在执行的程序转到一个管理程序以便执行某个中断处理过程。对于1BM370源程序的分枝和中断特性的仿真要求目标程序保持条件码和中断指示,以便有效地映象程序的分枝和中断。
虽然,在源程序和目标程序之间必须保持分枝和中断的对应关系是无可争辩的,可是,借助于这样一种能力即在正在执行的浮点算术指令的操作完成之前,可靠地予测条件码和中断指示器的状态,从而能够加快仿真的速度,这一点也同样应该认识到。不过,仿真速度的任何提高不仅要考虑到源指令到目标指令的翻译,还要考虑到转换后的目标指令的发放。
在编号为4587612的美国专利中,EAP的可能的操作环境之一将对目标机的浮点指令的执行强加了某些结构上的瓶颈。为此,目标CPU的指令部件和浮点部件用32位宽的数据总线互相连接。当仿真源CPU的RX型浮点指令时,源指令中用X字段表示的操作数必须从主存中去取来供FPU使用。这种为了从主存中获得X-字段操作数的职责的传递延长了该指令的执行时间。当源指令是一条扩充的RX型指令,从而要做两次顺序的内存访问以便经过32位数据总线获得一个64位的操作数时,目标浮点指令的执行时间就更长了。
本发明适用于一个仿真源CPU指令执行过程的系统,该系统包含一个带有主存贮器的目标CPU、若干功能部件和一个目标指令部件,这个目标指令部件加工并发放被转换后的目标指令以供目标机的诸功能部件执行。该仿真系统还包括一个指令翻译部件(翻译器),该部件接收源指令并把它们译成目标指令。本发明的结果在改善系统的性能,它提供了一种机构来加快浮点指令的翻译和执行。为此,本发明在其指令翻译器中有一个令牌发生器,该发生器随着源浮点指令的翻译而产生一个浮点等待令牌信号。在目标CPU的浮点功能部件中的结果产生器在被发放的目标浮点指令完成之前,提前产生一个完成信号以指明所发放的那条指令的执行结果。该系统还包含一种系统设施,它能根据令牌信号来限制指令的翻译和发放。指令翻译器中还有最后一个设施叫多级等待队列,这个等待队列和上述的系统设施相连用来接收和保存一旦产生的诸等待令牌信号,并在出现反映源浮点指令翻译为目标浮点指令已经完成的结束信号之后取消这个令牌信号。
本发明来源于一系列非予料的观察,本发明者观察到如果指令的翻译和目标指令的发放对应地有一个加快目标浮点指令执行结果的指示,那么,翻译、发放以及由此而完成的仿真就可能被加快;如果在发放翻译后的目标指令之前能够得到源RX型指令的X字段的操作数,那么源RX型浮点指令的仿真能够借助于目标机的RR型指令的执行来实现,从而避免了指令发放后的主存贮器访问周期;而且,如果在成功的主存贮器存取周期内能得到扩展的浮点源指令的X字段操作数的两半,那么该源指令的仿真可以用一组目标浮点指令实现,这组目标指令传送上述X型的操作数并启动执行RR型目标指令序列,这就减少了仿真源指令所需的主存存取周期数。
因此,本发明的主要目标是改善一个系统在仿真一个源CPU程序的性能时的操作过程,而源CPU程序包含有RX型的浮点算术指令,改善操作过程的途径是加快源指令到目标指令的翻译和翻译后目标指令的发放。
本发明的进一步目标是通过减少目标CPU仿真源RX型浮点算术指令的执行过程时所需的操作时间来改进这样一个仿真系统的操作。
结合下面带有说明的附图读完本发明的详细描述后,将会更清晰地理解本发明的各个目标和进一步的附加好处。
图1说明仿真一个1BM370型的源CPU程序用的一个系统的结构配置。
图2详尽地描述了仿真器辅助处理器(EAP)和指令处理器(IPU)的功能部件,这些功能部件根据浮点部件(FPU)在目标浮点算术操作完成前给出的加快完成指示,加速翻译功能和目标机的指令发动功能。
图3说明IPU和FPU中包括的功能部件,这两个部件利用RR型浮点目标指令来支持RX型浮点源指令的仿真。
图4是一个流程图,它说明在仿真短RX源指令时由图3配置所执行的操作顺序。
图5也是一张流程图,它说明在仿真扩展的RX型浮点源指令过程中图3配置所执行的操作顺序。
图1说明本发明的应用环境。此环境包括一个构成目标CPU的具有压缩指令集的计算机(RISC)。正如Radin在“801微型计算机”一文(1983年5月发表于1BM研究和开发杂志,27卷第3期,第237-246页)中所描述的那样,这样的一台计算机有两个独立的指令流和数据流,它们分别来自各自的高速暂存器。在这个计算机中,指令从高速指令暂存器中得到而数据则从另一个单独的高速数据暂存器中得到,这两个高速暂存器都在指令处理部件(IPU)10之中并由这个处理部件管理。IPU通过存取主存贮器12装满这两个高速暂存器的内容。IPU10加工高速暂存器中的指令并把这些指令发放到一个或多个处理部件(PU)14和一个浮点处理部件(FPU)16去执行。因为部件10,12,14和16构成了目标CPU,所以由IPU发出的指令称为目标指令并通过目标指令总线19被发放到这些处理部件。操作数和结果(O/R)数据经由O/R数据总线18在IPU和处理部件14和16之间进行交换。
在上述假定的环境中,作为例子的801计算机有一32位的体系结构,这是由数据和指令总线18和19的相应宽度反映出来的。此外,除了高速数据暂存器外,801中的IPU10还包含一组通用寄存器。
当目标CPU用作为仿真器时,它的仿真器的辅助处理器(EAP)20协同操作。在上述的仿真方式中,由源CPU来的指令构成一个程序通过IPU10中的一部分高速数据暂存器、借助于数据通路21、10、22流向EAP20。在EAP20中,源指令被转换为目标指令并扦入到目标CPU的指令流中,这将不打扰由IPU10执行的正常的目标CPU指令的执行顺序。转换后的指令流借助于数据通路23提供给IPU10。关于IPU10和EAP20在完成指令的转换和产生目标指令流过程中的合作情况,在本文参考的Fisk专利中有清晰的描述,在此不再赘述。但是在指令转换中涉及到的某些结构和功能必须列清楚,以便恰到好处地说明本发明。
现在来参看图2,图中画出了EAP20、IPU10和FPU16。把IPU分成两个功能块来表示仅仅是为了下面的讨论方便;事实上,IPU10只是一个单一的部件。在图2中,IPU10的10a部分借助于21接收源指令流,这个部件包括一个存储源指令流的高速数据暂存器24和一个存储微指令的高速指令暂存器25。源指令流借助于信号线22从高速数据暂存器被送到EAP20,它们通过源指令寄存器(SIR)26,一条指令接着一条指令地在EAP中进行处理,源指令寄存器为指令转换电路27提供一个操作舞台。如同Fisk的专利中所述那样,指令转换电路27形成提供给IPU10的高速指令暂存器25使用的下一指令地址,这个地址还导致来自指令暂存器的微指令的形成,该微指令借助于信号线30送到EAP。信号线30上微指令被送给EAP中微指令寄存器(MIR)31。如同列入的Fisk的专利中所讲的那样,保存在寄存器31中的微指令还包括能够在信号线29上产生下一条指令地址的下一指令字段。因此,寄存器26中的源指令将生成为一条或一串微指令,这些微指令借助于信号线30送到EAP。与此相关,源指令的仿真可能牵涉到从指令暂存器中去取一串微指令并让目标处理机去执行取来的那一串目标指令。送给寄存器31的微指令包括一个控制段和一个基干目标指令。这个基干目标指令借助于信号线23a送到IPU10中的指令合并寄存器32。正如上面提到的Fisk专利中所讲的那样,基干指令包括一个操作码字段和寄存器与位移字段。转换电路27用寄存器31中的那条微指令中的控制段和寄存器26中的那条源指令的操作数字段装入到IPU10中的指令合并寄存器32中的那条基干指令的零操作数字段和/或控制字段。填充的信息借助于信号线23b从转换电路中得到。因此,信号线23a和23b构成图1所示的信号线23,目标指令流就是借助于这条信号线送到IPU10的。当IPU10发放一条指令时,这条指令就从指令合并寄存器32送到指令寄存器(I寄存器)33。当这条目标指令驻留在I寄存器33中时,IPU10就做指令发放操作,摘要说明如下。
在叙述本发明的操作上的来龙去脉时,假定源指令流中包含有象IBM370CPU指令集中所具有那样的多字段指令。这个指令集中至少有一个独特的格式称为RX(寄存器/变址)格式。RX格式具有如下的形式
OP R1 X2 B2 D2(操作码)在一条RX(操作码)型的指令中,OP码字段指出所要求的操作,第一个操作数位于寄存器R1中,第二个操作数位于主存储器单元中,其地址是X2+B2+D2。X2和B2一般系指通用寄存器的操作方式,但对上面这条指令而言,则作为变址器和基地寄存器,D2是一个位移量。当执行这条指令时,其结果放在寄存器R1中。
如所周知,RX型指令包含有一个浮点算术运算型的子指令集。浮点运算的含义是很好理解的。关于浮点数据格式、术语和操作过程在Anderson等人的文章“1BM360系统91型的浮点执行部件(1BMSYSTEM/360 Model91Floating-Point Execution Unit)”中详细地作了评论,这篇文章刊登在1967年1月的IBM杂志(IBM Journal)的34到53页,并在上面提到的供本文参考用的专利申请中也对这些内容作了评述。
RX型浮点算术源指令由EAP20转换为浮点算术目标指令供IPU发放并供FPU16执行。
RX型浮点算术指令能够产生修改条件码(CC)或提出程序中断请求(IR)的结果。如所周知,CC条件的状态确定正在执行的源程序的分枝路径。中断请求将导致程序的控制从正在执行的程序中转移。因此,在仿真源指令流的时候,必须考虑这些指示。在EAP20中,CC和IR的当前状态保持在一个状态寄存器34中。指令转换电路27检查状态寄存器34中的内容,以便在必要时执行程序分枝和中断动作。
影响上述指示的浮点指令是在FPU16中实现的,CC和IR是由FPU16连同其它一些信息源提供的。CC和IR分别借助于信号线35和36提供。FPU16还借助于信号线38提供一个加快了的正确性响应(AVR)信号。FPU16在CC和IR正确地反映出当前由这个FPU16正在执行的那条浮点算术指令的结果时就给出AVR信号。正如上面读到过的那个美国专利申请中所讲的那样,FPU16能够在浮点算术指令完成之前建立CC和IR,而通常是由浮点算术指令的结果来确定它们的状态。当CC和IR产生以后,FPU16激励AVR,通知EAP20可以检查寄存器34的内容了。AVR的出现时间可能在一条浮点算术指令开始后不久直到指令完成这一段时间区间内,按照传统的方法,CC和IR是在指令结束时被取样的。
为了利用FPU16提前生成的CC和IR,本发明为EAP20提供一个等待令牌电路,这个电路通知EAP20和IPU10浮点算术目标指令完成翻译和发放的时刻,在随着已发放的那条浮点算术目标指令的执行而产生CC和IR之前限制再翻译和发放目标指令、并通知EAP20和IPU10CC和IR的产生时间,从而使得指令的翻译和发放能够提前恢复。
当源浮点算术指令装入寄存器26时,指令转换电路27产生翻译源指令时要用到的微指令串的首地址。由浮点算术指令产生的所有微指令序列均以WAIT微指令结尾。这个WAIT微指令是告诉本发明设施开始产生等待令牌的信号。为此,在源浮点算术指令存放到寄存器26时,它的OP码字段就提供给通常的译码器(D)40,产生一个为首的令牌先兆信号。在生成的微指令序列尾部的WAIT微指令存入寄存器31时,那条微指令的操作码也被送到译码器40,产生第二个令牌先兆信号。符合译码器42对上述两个令牌先兆信号作出反应,在信号线43上产生一个WAIT TOKEN(等待令牌)信号。这个WAIT TOKEN信号被送到等待令牌队列45,该队列由多级暂存器序列组成,其中包括暂存器46和47。当WAIT微指令处于微指令寄存器31中时,基干目标浮点指令连同由指令转换电路27提供的关于该指令用的操作数字段的数据分别借助于信号线23a和23b一起进入指令合并寄存器32。利用多相管道时钟的一个相位时钟把WAIT TOKEN从暂存器46送到暂存器47。当这个WAIT TOKEN信号进入暂存器47时,这个暂存器产生一个HOLD信号,该信号被送到指令转换电路27、指令合并寄存器32和指令寄存器33,还送到状态寄存器34。只要HOLD信号保持有效,就能防止更改寄存器32、33和34中的数据。同时,HOLD信号还中止指令转换电路27的操作。
在WAIT TOKEN信号随着第二个多相时钟(CLKB)被送入暂存器47的同时,目标浮点指令在IPU10中从指令合并寄存器移到指令寄存器33。在这个指令寄存器33中,这条指令被发送并送到FPU16。FPU16执行被发放的那条指令的操作并针对反映该指令执行结果的状态建立条件码CC和中断请求。在FPU16产生CC和IR后,AVR随着出现,它将清除暂存器47,从而使HOLD信号失效。
当HOLD信号失效时,现行的CC和IR从FPU16进入状态寄存器34。在有了状态时,指令转换电路27检查状态寄存器34中的内容,以便采取必要的分枝或中断操作。随着HOLD信号的消失和下一条基干指令的生成,一条合并后的指令将寄放在寄存器32,接着又被送到指令寄存器33。
熟悉上述技巧的人将会很清楚,WAIT TOKEN电路45对快速生成的AVR信号作出反应,并使目标指令的翻译和发放在一条正执行的目标浮点算术指令完成之前就开始进行。有经验的技术人员将会赞同这种加速性的操作提高了图1所示的那个仿真器操作的并发性,因此,增加了这个仿真器操作的总速度。
参考图3将会明白本发明如何实现上述的第二个目标即在仿真源RX型浮点算术指令的执行时,如何减少执行目标机操作所需的时间。在图3中,IPU除了包括指令寄存器33外,还包括一组通用寄存器(GPR)50、一个译码电路52和一对多路转换器(MUX)54,56。通用寄存器用于IPU10中的指令处理操作。译码控制电路按常规从寄存器33中的那条目标指令的OP码字段那里接收OP码信息和该指令D字段中的信息。D字段规定要被执行的控制操作,标明哪个控制器负责本操作。责任明确之后,译码控制电路52为多路转接器54、56和通用寄存器50产生控制信号以便执行OP码所指定的操作,当需要做加工指令的操作时,D字段指明译码控制电路52并使该电路能够处理一个规定的操作。此种操作可能是从主存贮器中取数据,此时,由MUX54完成把取出的数据送往一个指定的GPR的操作。当要用O/R数据总线18交换数据时,译码控制电路52指使MUX56传输此数据,还指使一个GPR送出或接收此数据。由译码电路52所实现的补充操作还包括取立即数指令,这条指令使存放在寄存器33中的那条指令的寄存器字段(RT、RA或RB)中的一个值送到预先确定的一个GPR寄存器中去。
图3还详细地说明了FPU16,它包括一个可以由被发放的目标指令的D字段指定的控制部件60,用来控制或使FPU各资源的操作同步,以指挥在被发放的那条目标指令的OP字段和D字段中所规定的指令的执行。FPU有一些内部用的资源,其中包括一组浮点寄存器(FPR)62。这一组FPR62包含许多通用的64位寄存器,用于临时贮存由FPU控制的浮点操作的操作数和结果。FPU的算术和逻辑操作由执行部件(X)64和65实现。如所周知,执行部件可以包括(举例说)乘/除执行部件、加/减/移位部件和执行基数操作的部件。因为IPU和与它有关的其它功能部件都是用32位数据和指令结构组装起来的,所以FPU16的数据界面是一个32位的界面寄存器(IR)66,它与32位的数据总线18交换数据。
现在让我们同时参看图3和图4,就不难理解本发明在仿真“短”RX型浮点算术源指令时的操作过程。术语“短”指的是RX型的操作数是32位长。因此,IPU10和FPU16之间的数据界面18能够在单个存贮周期内传输整个操作数。在图4中S1这一步,当一条短源RX型指令进入EAP20时,EAP将着手做一个微指令序列,这个微指令序列包括一条要送到IPU10去的LOAD IMMEDIATE(直接取)指令,该指令指定IPU为其执行部件。这条指令将用指令寄存器字段(RT、RA和RB)之一来传送与RX型指令的X2、B2、D2三字段之和对应的存贮器地址。该地址将被取到某个GPRi。接着,在微指令序列执行期间,IPU的一条LOAD指令将按保存在GPRi指定的地址取出操作数存放到GPRj中。这就是图4中S2这一步。现在,微指令序列的最后一条指令导致一条目标浮点算术指令被取到寄存器33准备发放。被发放的指令作为一条扩展的RX(ERX)短型目标指令。这样的一条指令使IPU的控制电路52把GPRj的内容放到数据总线21上;此内容就是源RX指令的X字段的操作数。FPU接收发送来的那条指令并把它译码为寄存器型的浮点算术指令,其中第一个操作数位于该指令的RA字段指定的FPR寄存器中,第二个操作数位于发送来的那条指令的RB字段指定的界面寄存器66之中。目标指令的执行结果放在该指令的RT字段指出的FPR寄存器中。
图4所示的流程适用于用目标寄存器一寄存器型浮点指令来仿真源RX型浮点算术指令的情形。如果在图4中不增设RX型这个条件,那么必须扦入把GPRj中的操作数送到一个浮点寄存器去然后再执行一条浮点寄存器一寄存器型指令的附加步骤。这个附加步骤应扦在图4中S2和S3的这两步之间。
现在来看图3和5,我们将会明白为了仿真一条RX型的长(64位)操作数的浮点算术指令本发明是如何工作的。在EAP响应扩充的RX型指令的要求而生成的微指令序列中,图4所示的序列作为开头,S10这一步提供一条LOAD IMMEDIATE(直接取)指令,该指令把RX指令的X字段的地址放到GPRi之中,我们将会意识到GPRi中的地址定义了一个64位长的双字操作数。因此接着LOAD IMMEDIATE指令之后,有两条LOAD指令(S11和S12这两步)也被加入到微指令序列,从而使IPU先把X字操作数的高位(HO)四字节取到GPRi,然后把这个操作数的低位(LO)四字节取到GPRk。在S13这一步中,有一条EAP生成的供IPU用的微指令序列的倒数第二条指令,它由一条准备供FPU执行的长扩展RX(ERX)型浮点指令组成。实际上,FPU把这条指令看成一条扩展的寄存器一寄存器型指令,它涉及到一对64位长的操作数,操作数之一存放在该指令的RA字段指出的FPR寄存器中。FPU从界面寄存器66中得到第二个操作数。第二个操作数是经过界面寄存器66分段送到FPU的,即在发放指令的同时把GPRj中的高位4字节先送到界面寄存器66,这就是S13这一步,然后是S14,在这一步,随同微指令序列中最后一条目标指令传送低四字节。最后一条指令指明为FINRX指令,只供IPU执行。指令的执行过程包括把GPRk中的低位4字节传送到界面寄存器66。因此,图5所示的执行过程能够借助于扩充的寄存器一寄存器型目标浮点指令来有效地仿真源RX型浮点指令。FINRX哑指令采用了32位目标机体系结构的仿真序列。
显然,根据以上解释,本发明可以有许多修正和变种,因此不难理解我们后面的附加要求,这些要求使本发明能够实际做成与前面具体描述过的不一样的设施。
权利要求
1.用来仿真源CPU指令执行的一个系统,该系统包括一个主存器、一个作为加工和发放翻译后目标指令用的目标指令部件、若干执行目标指令用的目标功能部件和一个用于接收源指令并把源指令翻译为目标指令的指令翻译部件(翻译器),及一种用以加快源指令的翻译和执行的改进,其特征在于在所说的翻译器中有一种设施,在源浮点算术指令的翻译过程中,这种设施能产生一个浮点令牌信号;在所说的浮点部件中有一个结果设施,它能够产生结束信号以指出翻译后得到的那条目标浮点指令的执行结果,所说的结果信号能在所说的被发现的目标浮点指令执行完成之前生成;在所说的与上述系统设施相连的翻译器中,还有一个多级等待队列,用来接收所说的令牌信号并随着上述翻译过程的要求把此令牌信号移到一个等待阶段,在上述的结束信号出现后再从所说的等待阶段中转去所说的等待令牌信号;还有一个与所述的等待阶段相连的系统设施,用在所说的等待阶段中如果有等待令牌信号的话就限制指令的翻译和发放。
2.上述权利要求
1的进一步改进,其特征是所说的源浮点算术指令为RX型指令,所说的目标指令为RR型指令,此目标指令可针对所说的RX型指令的操作数执行,这种改进还包括在所说的指令部件中有一个寄存器,用来接收所述的RX型指令的X字段指出的一个浮点操作数;在所说的浮点部件中有一个可以选接到上述寄存器的一个数据接口设施,用以缓冲对于所说的浮点部件的操作数;在所说的指令部件中还有一个设施,用在发放所说的RR型目标指令之前,从所说的X字段指出的主存单元中得到所说的操作数,并使上述的数据接口设备与上述的寄存器接通,以便与发放RR型目标指令的同时传送所说的操作数。
3.上述权利要求
1的另一种改进,其特征是所说的源指令为扩展的RX型指令,所说的目标指令是RR型指令,该指令能以上述RX型指令的操作数为背景进行操作,这种改进还包括在所说的指令部件中有两个寄存器,分别称之为第一个和第二个,这两个寄存器分别用于接收所说的RX型指令的X字段所指出的扩充浮点操作数的前半和后半;在所说的浮点部件中有一个数据接口设施,它可以和上述的第一寄存器或第二寄存器选通,以便顺序地缓冲对上述浮点部件的第一半和第二半操作数;在所述的指令部件中还有一个设施,用在发放所述的RR型目标指令之前从所说的X字段指出的主存单元中取得所说操作数的前半和后半、并使上述的数据接口设施成功地和上述的第一和第二寄存器接通,以便在所说的RR型目标指令被发放的同时传送分成两半的操作数。
专利摘要
在一个仿真源CPU指令执行的一个系统中,有一个把源指令转换为目标指令的翻译部件(翻译器)和一个用来处理和发放翻译后目标指令的目标CPU指令部件。在仿真某些源浮点算术指令的执行时,上述设施为加快指令的翻译、发放和执行提供了条件。当一条源浮点算术指令被仿真时,有一个令牌被放入翻译器中的等待队列中,以便在得到有效的条件码或中断信息之前阻止源指令的翻译和目标指令的发放。
文档编号G06F9/44GK87106442SQ87106442
公开日1988年6月15日 申请日期1987年9月19日
发明者詹姆斯·阿莱克桑德·米彻尔, 约翰·弗里德里克·比克德尔 申请人:国际商用机器公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1