专利名称:采用块移动指令的微处理机的制作方法
本申请揭示的发明主题也是专利号为4,491,910的美国专利揭示的主题,该专利在1985年1月1日颁发给科德尔(Caudel)、曼格尔(Magar)和利(Leigh),该专利已转让给得克萨斯仪器公司,在该专利中,已对发明主题的背景和先有技术进行了讨论。
本发明的主要目的是提供微型计算机装置和系统的改进了的特征,特别是提供适用于诸如实时数字信号处理之类的微型计算机装置和系统的改进了的特征。另一目的是提供一种增强能力的高速微型计算机。
按照本发明的一个实施例,本发明的特征包括在一种实时数字信号处理系统中,这种系统使用单芯片上的微型计算机装置,(该装置具有分开的位于芯片上的程序只读存储器ROM和数据随机存取存储器RAM,程序和数据具有分开的地址和数据通路。外接的程序地址总线允许位于芯片外的程序以一种扩展的方式取出指令或数据,运算代码由外接的数据总线返回。一总线的互换组件允许分开的内部程序和数据总线之间在特定环境中传送。内部总线是16位的,而运算器ALU和累加器是32位的,一乘法器电路产生一单态的与运算器分开的16×16的乘法功能,其32位的输出是连接到运算器上。运算器的一个输入穿过具有符号扩展的0至15位的移位器。
在另一个实施例中,处理机芯片的构造如上,但是不带有位于芯片上的程序只读存储器,而是含有另一位于芯片上的随机存取存储器,这种附加的随机存取存储器可以安排为程序存储器,也可以安排为数据存储器。这样,处理机可全部用位于芯片外的程序存储器和位于芯片上的一个大的数据存储器操作,或者用由耒自位于芯片上的随机存取存储器执行程序操作(该程序是由位于芯片外的程序存储器取出后装入的)。
在本发明的权利要求
书中列出了作为本发明特征的新颖特征。然而,通过结合附图耒参阅下述详细说明,将使发明本身以及本发明的其它特征和优点得到最好的理解。其中图1是采用本发明特征的微型计算系统的电气方框图;
图2是图1中的系统所使用的并采用本发明特征的金属氧化物半导体MOS/大规模集成电路LSI的微型计算机装置(包括中央处理单元CPU的电气方框图;
图3是与图2相类似的但是包括本发明的另一实施例特征的微型计算机装置的电气方框图;
图4a和图4b分别用于图2和图3中的装置的逻辑地址空间的存储图。
微处理机系统将在此处描述的微型计算机装置主要是用于信号处理,但是它的基本原理可以在各种结构的处理装置中使用,同时这些微型计算机装置可以在很多不同的系统中使用。在一个实施例中,微型计算机是用在图1中以概括的形式表示出耒的系统中。例如,这种系统可以是电话通信系统,语言分析系统,小型的个人或家用计算机,单板通用微型计算机,文字处理系统,具有地区性处理能力的、带有显示器和打字键盘的计算机终端或者是多方面的各种类型的应用中的任何一种。这种系统包括单芯片的金属氧化物半导体/大规模集成电路的中央处理单元或微型计算机[10],这种中央处理机或微型计算机将与程序或数据存储器[11]、输入/输出I/O装置[12]一起加以详细的描述。通常,用于典型系统中的I/O装置包括模数和/或数模转换器,调制一解调器,键盘,阴极射线管CRT显示器,磁盘驱动器等。这种I/O[12]往往包括对通用处理机的耦合功能;也就是说,这种微型计算机[10]是一种带有通过I/O[12]进行接口的装在更大的系统中的处理机。借助于两多位的、并行的只读存储器地址总线RA和数据总线D并连同控制总线[13]微型计算机[10],程序或数据存储器[11]和I/O[12]能互相连通。
概括地说,图1中的系统是以下列方式工作的通过在内部对只读存储器[14]取指令字或者在外部把只读存储器的地址总线RA上的地址发送到存储器[11](和控制总线[13]上的只读存储器时钟脉冲RCLK),微型计算机[10]取出指令字。如果是在外部,借助数据总线D把指令字从存储器[11]中被寻址的单元中接收回去。这种指令是在由20兆赫的时钟脉冲或晶振脉冲X1,X2确定的周期为200毫微秒的下一个机器循环中被执行,与此同时又取出一条新的指令;一条指令的执行可以包括为一操作数而对位于芯片上的随机存取存储器[15]进行存取,或者把结果写入数据的随机存取存储器[15]中,或者在运算器中做运算和逻辑运算。
在将要详细描述的例子中,在内部被施加到只读存储器[14]或在外部被施加到只读存储器地址总线的12位指令地址直接对只读存储器[14]和存储器[11]中的212或4K字的程序指令或常数寻址。当从存储器[11]读出时,数据总线启动线DEN命令在控制总线[13]上被断言。也可以写到存储器[11]中去。为此目的,写启动线WE命令被装置[10]在控制总线[13]的一根线上被断言;存储器[11]可以在一些或全部地址空间容纳读/写存储器装置,从而这种写启动线命令允许作写操作I/O装置[12]是按端口编址的;这种对外部装置[12]的接口采用地址总线RA和数据总线D和控制总线[13]耒加以实现的,但是I/O装置并不象存储器[11]那样占据逻辑地址空间中的单元。
通过(I/O)或外围设备[12]的数据输入/输出使用耒自总线RA的3位字段RAP以便在外围设备电路[12]中的八个16位端口PO至P7中选出一个端口。每个端口可以由DEN-或WE-来决定是作为输入或是作为输出。所以实际上这些端口是十六个16位端口,其中八个作为输入,八个作为输出。选出的16位端口先由RAP和DEN或WE寻址,再借助于数据总线D进行读或写的存取。这种操作采用的是存入指令IN或取出指令OUT这两个指令中的一个指令。在控制总线[13]上,WE是处于写入或取出OUT的运行状态,或者DEN-是处于读出或存入IN的运行状态。除DEN-或WE-处于运行状态的时间之外,只读存储器时钟脉冲RCLK在每一个机器周期中在控制总线上均处于运行状态这也就是说,由RCLK耒触发存储器[11]以便能在每一个机器循环中从芯片外存取指令字,但是如果采用DEN或WE耒对外围设备[12]进行存取的话,则RCLK就不出现。
微型计算机芯片在图2中的详细的方框图中所表示的是微型计算机[10]的内部结构。该装置是一个安装在标准的40条引脚的双列直插式封装或芯片载体中的单芯片半导体集成电路。封装的十六条引脚或终端是用于16位数据总线D的,封装的十二条引脚用于地址总线RA,剩下的引脚用于电源Vdd和Vss,晶振脉冲X1、X2和控制总线[13]。
除了程序存储器[14]和数据存储器[15]之外,微型计算机[10]还包含用于图1中的系统的中央处理单元或CPU。这种CPU包括32位的运算/逻辑单元或ALU,32位的用耒保持操作数和运算结果的累加器Acc,与ALU分开的乘法器M,作为ALU的一个输入端的移位器S,状态或标志译码器SD和指令译码器ID1,该指令译码器ID1接收现行指令字和产生对装置[10]中的CPU和数据存储器部分的控制位。
与程序存储器[14]相关的部分是用耒保持指令地址的程序计数器PC,该指令地址被用于对只读存储器ROM[14]进行存取或在地址总线RA上被发送到存储器[11],用于接收耒自ROM[14]的指令字的指令寄存器IR,用耒保存程序寄存器地址的堆栈ST,用耒接收现行指令字和产生对微型计算机中的程序存储器部分的控制位的指令译码器ID2。这种指令译码器ID1和ID2当然是可以合并到一个较大的控制ROM中,或者分成更小的可编程序逻辑阵列PLAS或随机逻辑。
与数据存储器[15]相关的部分是两个辅助的用于数据存储器[15]的地址寄存器AR0和AR1,在寄存器AR0和AR1之间进行选择以使其用作为数据存储器地址的页面寄存寄ARP,用耒保持数据寄存器地址的某些位的数据页面缓冲器DP。
这种CPU面向着两条内部总线一条是16位程序总线P-bus,另一条16是位数据总线D-bus。因此,能够同时进行程序存取和数据存取。而其地址空间是互相分开的。因此,这种微型计算机是属于哈佛德(Harvavd)体系,但是它有一个总线互换组件BIM允许例如装入耒自Acc的程序计数器PC或通过P-pus、BIM和D-bus对ROM[14]作带数存取。
对处理信号的微型计算机的两个主要的要求是快速运算和灵活性。通过采用分开的、主要的位于芯片上的程序存储器[14]和数据存储器[15],一个大的累加器Acc和并行的乘法器M耒达到这种性能。在数据存储器中可以形成用于特定用途的操作,也就是数据的移动,它在卷积运算中进一步增强了这种性能。通过形成一个指令组耒实现灵活性,这一点将结合表A加以描述包括存储器的扩展与单级中断。
作为一种例子,可使本装置带有位于芯片上的不到2K或211个字的程序存储器[14],然而这种体系通过在存储器[11]中附加外接的程序存储器能允许使存储器扩展到4K或212个字。此外,一种分立的工作方式能使这种装置[10]被安排成系统仿真装置;在这种“系统仿真”方式中,全部的4K字的存储空间都是外接的,不用ROM[14]。
带有双RAM的信号的处理机参见图3。下面将描述图1至图2中的处理机的另一实施例。图3中的装置与图2中的芯片[10]在绝大多数方面是相同的,甚至执行专利号为4,491,910的专利中的表A中的指令系统(除了将在下面加以描述的一些例外),同时还执行附加的重要指令。图3中的处理机包含如前所述的数据总线D-bus和程序总线P-bus,以及小运算/逻辑单元ALU,乘法器M,累加器Acc,带有符号扩充的鼓式移位器S,程序计数器PC,堆栈ST,辅助的寄存器ARO和ARI和数据RAM[15],并按照在所谓的哈佛德体系中所述的那样提供分开的程序和数据通路。
然而,和图2中的实施例所不同的是,图3中的处理机不具有位于芯片上的ROM[14],而代之以第二RAM[15p],这种RAM[15p]既可用于数据存储,也可用于程序存储。而且,还使用另外三个辅助的寄存器AR2,AR3和AR4。
一个重要的特征是,采用将要加以描述的配置指令,这两个RAM[15]和[15p]这就是说,存储器[15p]可以在将其用作如同RAM[15]那样的数据存储器和将其用作同图2中的ROM[14]那样的程序存储器这两者之间转换。通过把程序计数器PC的输出提供给外部的地址总线RA和借助于外部的数据总线D接收耒自位于芯片外的存储器的被寻址的指令,即佛不具有位于芯片上的程序存储器,这种处理机也能够工作。或者,在采用移动指令时,能将一块指令字从芯片外的源装入到RAM[15D]中,接着将RAM[15]用作快速执行重复程序入程序存储器。在一个例子中,这种RAM[15]含有288个字(每个字是16位)被永久地映射到数据存储器的空间中,而RAM[15p]含有256个字,这些字通过程序控制或是能被映射到数据存储的空间中,或是能被映射到程序存储的空间中。因此,位于芯片上的RAM[15]和[15p]的全部544个字都能被用作数据存储,而由位于芯片外的装置(图1中的存储器[11]以全速提供指令。在另一种结构中,RAM[15]中的288个字可被用作数据存储,RAM[15p]中的尺b个字用作程序的超高速缓冲存储,从而使指令从位于芯片外的较慢速度的存储装置卸下后装到位于芯片上的RAM上并以全速加以执行。为了有效地管理这些存储空间,添加了若干个块传送指令;这些指令可以移动指令字,数据或I/O信息,穿过芯片上或芯片外的地址空间的移动速度可达每个机器周期一个字。
这种双RAM的体系也允许在单循环周期中执行下面所描述的乘法累加指令MAC,在这种情况中,数据总线D-Bus和程序总线P-Bus都被用耒将操作数传送给乘法器M,与此同时RAC指令被重复。在芯片上的RAM[15]中执行数据移动操作以便提供用于数据滤波的算法的延迟操作;“带有数据移动的乘法/累加指令MACD提供为在单机器循环中完成横向滤波器抽头所述要的全部操作。通过类似于图2中的做法,即或是对ALU的输出端处的32位乘积进行右移,或是采用使ALU的输出和的方式,可以使往往由乘法引起的溢出得到解决。
图3中的处理机有三个主要的对存储器寻址的方法直接寻址方式中,地址在指令中产生在间接寻址中。由五个16位辅助的文件寄存器ARO至AR4是由16位的辅助寄存器运算单元ARA支援的,在进行数据操作的同时,能对这种ARA编制程序以便使其作向上或者向下的变址。在采用运算单元ARA时,还能对这种处理机编制程序以便转移到对选出的辅助寄存器ARO至AR4中的信息进行比较。这种1处理机具有一定范围的立即寻址指令,在这些指令中数据在程序中往往被定义为常数,这种指令常用于滤波算法中。通过采用每个机器周期一个字的速率的读表指令,在程序的执行期间,还可以将一个常数表在一个外部的程序存储器中(图1中的存储器[11]进行分类编组以便读入数据存储空间(例如RAM[15p]。数据也可以按同样的速率从数据存储空间移到程序存空间。重复指令RPT压缩用于代码和减少分支额外开销;RPTKn指令使下一个指令执行n+1次。例如,通过两条指令RPTK49和MACD能给出一个50个抽头的横向滤波器代码。
图3中的处理机可以通过单个外部数据总线D,地址总线R及控制总线[13]对位于芯片外的程序,数据,I/O装置或其它处理机进行传递。因为等待状态能够插入到存储周期中,这种外部的装置(图1中的存储器[11]或I/O[12]可以根据系统的要求,具有不同的存取时间。这种处理机还具有几个附加的用于支援多处理接口的部分,其中一部分外部数据存储器能为几个处理机共享;例如,在图3中的两个或更多的处理机可以连接在一个系统中。控制总线[13]中的引脚和三个断引脚用于主/从系统构造和多重任务处理。此外,这些处理机中的几个能通过同步引脚在时间脉冲一级一起同步操作。
存储变换图1和图2中实施例的存储变换表示在图4a中;图3中实施例的存储变换出表示在图4b中。因为图2中的处理机[10]具有12位的地址总线RA,故程序存储空间是4K或4096字;ROM[14]在这个程序存储空间中所占空间不到2K。同样,数据存储器允许具有4K的地址范围,其中安放了288个字的RAM[15]。I/O的地址空间为8个字,这8个字是由图2中的线RAI上的3位地址确定的。如图4所示,图3中的装置以一种类似的方式具有三个分开的、分别用于程序存储,数据存储和I/O的地址空间。借助了控制总线上的程序选通信号,数据选通信号和I/O选通信号在外部对这些空间进行区分。这种位于芯片上的存储块是由总数为544的字组成,这些字是由RAM[15]和RAM[15p]所组成的。程序/数据RAM(25b个字)在被配置为数据RAM时,存在于数据存储变换的页4和页5中,而在被配置为程序RAM号存在于页510和页511中。这种由RAM[15]组成的块(始终是数据RAM)存在于页6和页7中,以及在页O的上面的32个字,注意,数据存储变换的其余部分是由某些存储变换存储器和保留单元组成的。保留单元可以不用于贮存,当读出时,它们的存储信息是未定义的。
这种配置指令CNFD和CNFP用耒将RAM[15p]配置为数据存储器或是程序存储器。一个从程序存储器向数据存储器作块移的指令BLKP可以用耒把程序信息卸到RAM[15],此时RAM[15p]被配置为数据RAM,接着将块配置为程序存储器的指令CNFP可以用耒使RAM[15p]转变为程序RAM。注意在CNFD或CNFP指令之后的第一个指令取出是从先前的存储器配置中取出。还要注意的是,复位使RAM[15p]配置为数据RAM。
图3中的处理考具有六个可变换到数据存储空间的地址单元0至5处的寄存器。这些寄存器被标作为DRR,DXR,TIM,PRD,IMR和REG。寄存器DRR是16位的串行端口的数据传送寄存器。寄存器TIM是16位的定时寄存器,而寄存器PRD是在计时操作中使用的周期寄存器。中断屏蔽寄存器IMR含有6位的中断屏蔽。GREG单元是8位的全局存储单元分配寄存器。这些寄存器可以以和任何其它的数据存储单元相同的方法存取,所不同的是不允许用BLKD从这些寄存储变换存储单元进行块移。
这种处理机提供(使数据和程序块移的指令和提供有效使用在芯片上的可配置RAM[15p]的数据移动功能。这种BLKD指令使块在数据存储空间范围中移动,BLKP指令使块从程序存储空间移到数据存储空间。这些指令使从芯片是或芯片外的存储器的块移得以执行。
数据移动指令DMOV对于执行采用所谓的Z延迟操作的算法是有用的,即诸如卷积和数据通过时间宽的数字滤波这样一类操作。这种数据移动操作穿过芯片上的数据存储块的边界时是续的,但是如果涉及芯片外的数据存储器时,就不能使用这种指令。指令DMO在芯片上的RAM[15]或RAM[15p]中执行时,它的功能图2中的装置的功能等效。DMOV允许一个字从芯片上的RAM中的正在寻址的数据存储单元拷贝到下一个较高位的单元,而耒自被寻址的单元的数据则在同一循环中被运算(例如通过ALU)。当采用间接寻址方式时,也可以在同一循环中在辅助的运算单元ARU中进行运算。乘法、累加和数据移动指令MACD和装入T寄存器、累加先前的乘积和移动数据的指令LTD也能使用这种数据移位操作。
程序计算和堆栈图3中的处理机含有16位程序计数器PC和用于贮存PC中的信息的四单元的硬件堆栈。这种程序计数器在取指令时通过P-bus对内部和外部的程序存储器寻址。在中断,调用,返回和一些用于特殊目的的,诸如从程序/数据存储器向数据存储器块移的指令BLKP/BLKD、表的读/写指令TBLR/TBLW之类的指令执行期间,堆栈ST被用耒在程序存储空间和数据存储空间之间作数据传送。借助于程序地址总线P-bus,程序计数器PC对芯片是的或芯片外的程序存储器寻址,从而通过从程序存储器中取出指令并把它放到指令寄存器中去。当装入IR时,程序计数器已可以开始下一个取指周期。当RAM[15p]被配置为程序存储器时,PC对位于芯片上的RAM[15p]寻址。或者经过16位地址总线RA和外部的数据总线D对位于芯片外的程序存储器寻址。在执行使数据块从数据存储器的一个域向另一个区域移动的指令BLKD时,程序计数器还对数据存储器寻址。在采用BIM时累加器Acc中的信息可以装到程序计数器PC中以便由BIM执行如上所述的“计算转向”操作。
对于诸如转移,调用或中断这样一类指令,给PC装入PC+1或转移地址以便开始一个新的取指周期。在条件转移的情况中,在没有进行转移时,使PC在转移地址之外再作一次递增,即PC+2。这种处理机还具有允许下一个单指令执行N+1次的重复指令特征,其中N是通过装入-8位计算器的重复计数RPTC耒确定的。如果采用这种重复特征,这种指令即被执行,同时RPTC递减,直到RPTC达到霾为止。这一特征可用于很多指令,例如使累加器中的信息为一化的指令NORM,乘法、累加数据移动的指令MACD和减法条件指令SUBC。
通过采用把信息推入堆栈的指令PUSH和使信息由堆栈弹出的指令POP,可对堆栈ST进行存取;当PC中的信息被推入到堆栈的顶部时原先在每一层中的内容被下推,而堆栈的第四单元中的内容则被推出而失去。因此,在一个POP指令出现之前连续推入超过四次,将会使数据丢失。在作POP操作时情况相反。在三个连续的PO之后的任-ROP总是产生堆栈第四位的某个数值,于是所有四个堆栈层均含有同样的数值。两个附加的指令PSHD和将数据存储器的数值推入堆栈,例如从RAM[15]推到堆栈ST上,或者将数值从堆栈中弹到数据存储器上。通过采用软件,这些指令可在数据存储器RAM[15]中建造一个堆栈以便对超过四个层次的子程序中断进行嵌套。
局部存储器的接口是由外部的16位的并行数据总线D,16位的程序地址总线RA,在控制总线[13]中用于存储空间选择的三个引脚PS、DS、IS以及多个其它系统控制信号组成。R/W信号控制传送方向,STRB提供计时信号以控制传送。使用就绪信号READY能产生等待状态以便芯片外的较慢速的存储器连通。
CPU这种CPU含有16位定标移位器S,32位运算辑单元ALU的通路,32位累加器Acc和附加的可在累加器和乘法器的输出端使用的移位器。
在执行一个曲型的ALU指令的过种中出现下列步骤(1)在数据总线D-bus上从RAN[15]中取出数据;(2)数据经过定标移位器S和ALU并在ALU中完成运算;和(3)将运算结果移到累加器Acc中,ALU的一个输入始终是从累加器Acc传送过耒的;ALU的另一个输入可以是由乘法器M的乘积寄存器P提供,而该定的标移位器是通过D-bus由数据存储器装入的。
这种定标位器具有有与数据总线D-bus相连的16位输入和与ALU相连的32位输出,并按照编在指令中的某些位上的程序使输入数据向左移动0至15位。输出的LSBs被填上零,而MSBs既可以填上零,也可以填上扩充符号,究竟填上哪一种,取决于编程到状态寄存器STO的符号扩充方式位SXM的状态。
32位字宽的运算逻辑单元ALU和累加器执行宽范围的运算和逻辑指令,大多数指令是在一个时冲循王中执行的。通过溢出置位指令SOVM和溢出复位指令ROVM可以对溢出馋和方式编程。当累加器处于溢出饱和方式时出现溢出时,累加器装入最大的数或负数,而数字正负取决于溢出的方向。输入到的ALU的数据可以由定标移位器S定标。
处理机执行取决于ALU状态的转移指令。转移到累加中的地址的指令BACC具备转移到由累加器中给定的地址的能力。位测试指令BIT和对由于寄存器给定的位测试指令BITT可以对数据存储器(例如RAM[15]中的一字的给定位进行测试。
这种处理机为需要大动态范围的应用提供浮点操作。为一化指令NORM通过数字左移对包含在累加器中的定点数字作为一化处理。通过输入定标移位器将尾数左移。累加器装入由T寄存器确定的位移的指令LACT可对浮点1数作去归一化处理。在这种情况中,移位一个数是由T寄存器的四个低位位确定的阶码值。累加器加上由T寄存器确定的位移的指令ADDT或从累加器减去的指令SUBT允许进行附加的算术运算。从而,能对具有16位的尾数和4位阶码的浮点数加以处理。
32位的累加器Acc被分割成两个16位的供数据存储器作数据存储用的段累加器高段AccH和累加器低段AccL。在累加器输出端的附加的移位器可以将数据向左移位,1位或4位。这种移位在数据被传送到数据总线D-bus供存储时进行;累加器Acc中的信息保持不变。当AccH的数据左移时,LSBS由Acc/传送过耒,而MSBS丢失。当ACCL左移时,LSBs被填上零,而MSBs丢失。
累加器Acc还具有适当的向左或向右移一位的指令SFL或SFR以便对累加器右移指令SFR的定义。当SXM=1,SFR执行算术右移,同时保存累加器数据的符号。当SXM=O,SFR执行逻辑移位,把LSB移出累加器并移进零累加器左移指令SFL不受SXM位的影响并能在这两种情况中起到相同的作用,即将MSB移出和将零移入。RPT或RPTC可以可以和这些指令一起使用以进行多次移位。
二进制补码16×16位的硬件乘法器M能够在一个机器循环周期中能计算32位的乘法。与这种乘法器相关的两个寄存器是能保持用于乘法器的一个操作数的16位的暂存寄存器TR和能保持由乘法运算产生的乘积的32位的乘法寄存器P。通常,装入寄存器指令LT装入T以提供一个耒自数据总线的操作数,乘法指令MPY提供第二个操作数(也是耒自于数据总线)。在这种情况中,每两个周期可得一乘积,一个周期装入T,另一个周期用于乘法操作。
两个乘/累加指令MACD充分使用了乘法器的带宽,使上述两个操作数能被同时处理。对于MAC和MACD耒说,这两个操作数在每次循环中供助于程序总线P-bus和数据D-bus被传送到乘法器M。当和RPT或RPTK指令一起使用时,当对一个数据存储器的值作平方运算时,平方/加指令SQRA和平方/减指令SQRS将相同的值传送到乘法器的两个输入上。
在两个16位的二进制补码数相乘之后,把32位的乘积装入到32位的乘积寄存器P中。这种乘积可以直接传送到ALU,或者在被传送到ALU的输入之前作有选择性的移位。对于乘积寄存器P的输出有四种移位方式可供采用。状态寄存器ST1的PM字段规定了移位的方式P如果是00,不移位;如果是01,向左移一位;如果是10,向左移四位;如果是11,向右移6位。由PM值决定的左移对于执行小数运算是有用的。通过在移PM值能使127乘/累加(或更多)得以执行而不会出现累加器溢出的现促象。这种T寄存器的四个最低位有效位还经过定标移位器S为LACT/ADDT/SUBT指令(装入/加到累加器/从累加器减去由T寄存器确定的移位)形成可变移位。这些指令在浮点运算中是有用的。浮点运算中的数需要非为一化,即从浮点1数转为定点数位测试指令BITT能根据包含在T寄存器的四个LSBs中的数值对数据存储器中的一个字的一个位进行测试这种CPU还具有含有不同的条件和不同的状态的两个状态寄存器ST0,ST1,指令SST和SST1用于把状态寄存器贮存到数据存储器中去。指令LST和LST1则从数据存储器装入状态寄存器。在这种1方式中装置的现行状态在中断或调用时能被贮存起耒。状态寄存器的组织和状态位的作用,请参阅下述有关部分。
系统控制和接口通过位于芯片上的定时器重复计数器,外部和内部的中断信号和外部的复位信号使系统控制操作能在处理机的芯片上进行。
这种作16位的存储变换的;供外部控制操作用的定时器是一种由一内部时钟脉冲作连续计时的递减计数器。这种时钟脉冲是将频率CLKOUT1的频率四。而得的复位信号将定时器置于最大值(FFFF)但不对周期寄存器PRD清零。在复位信号解除后,定时器开始递减,此后定时器或周期寄存器PRD可以在程序控制下通过指令从新加以装入。
每次定时器递减至零时,就产生定时器中断信号TINT。这种定时器在达到零的同一循环内重新装入周期寄存器PRD中的数值,从而能将中断编程使其以4×(PRD)CLKOVT1循环的间隔定时出现。这种特征对于对外围设备进行同步采样或同步写入上有用的。这种定时寄存器TIM和周期寄存器PRD在任何时候都能通过一条指令耒加以存取。对于周期寄存器不允许具有数值“零”。如果不采用定时器,应将定时器中断屏蔽,或者通过DINT指令使所有可屏蔽的中断都被禁止。
重复特征使得一个指令被重复执行256次。借助于RPT指令,使重复计数器RPTC装入数据存储器的数值,或者借助于RPTK指令使重复计数器RPTC装入立即数值。这种操作数的值比下一个指令被执行的次数少一。这种重复特征能够为诸如乘/累加,块移,I/O传送和读/写表这样一类指令所采用。当采用重复特征时,那些通常是多循环的指令工作于流水线方式,从而有效地成为单循环指令。例如,读表指令通常要三个循环周期但被重复时,由于重叠操作,就能在每一次循环中对表中的单元进行读取。
这种处理机的芯片具有三个外部的可屏蔽的供外部的使处理机中断的装置使用的用户中断TNT2至INTO。通过串行出入口RINT和XINT,通过定时器TINT,通过软件中断TRAP指令,可以产生内部中断。中断具有优先级,其中复位具有最高优先权而串行出入口具有最低优先权。在存储器变换中的所有中断单元都是位于两字边界,从而,如果需要的话,能将转移指令容纳在那些单元中。控制线保持多循环指令从受中断影响;如果在多循环指令执行期间出现中断,在该指令执行完毕之前对中断不作处理。这种机理既能适用于重复的指令,又能适用于因READY信号而变成多循环的指令。
在控制总线上采用的RS信号非同步地使处理机停止工作和迫使程序计数器PC复零。因为系统是工作于电源接通状态,复位RS信号必须持续至少五个时钟脉冲循环才能保证使装置复位。处理机的操作是开始于图4中的单元0,它通常含有转移指令以便将程序执行引向系统的预置刁程序(初始化程序)
图4中的数据、程序和I/O地址空间对存储器和I?O提供接口。局部存储器接口的组成是16位的并行数据总线D;16位的地址总线RA,数据、程序和I/O空间选择信号DA、PS和IS和其它的系统控制信号。R/W信号控制传送方向STRB提供计时信号以控制传送。通过将I/O以类似于存储器的方式看待,使I/O的设计简化。通过类似于存储器变换装置的方式使用处理机的外部地址和数据总线,使I/O装置变换到I/O地址空间中,但需采用选择信号。通过采用READY线,使连接存储器和各种速度的I/O装置的接口得以完成。当采用较慢的装置进行处理时,处理机一直等待直到其主装置完成了它们的功能并经过READY线向处理机发出信号。在接到信号后,处理机继续工作。
一串行出入口以最少的外部硬件与诸如编码译码器、串行A/D换器和其它其它串行系统之类的器件相连通。这种串行出入口还可以在多重处理应用中在处理机和处理之间作互连之用。这种串行出入口具有下列两种存储器变换寄存器;数据传送寄存器DXR和数据接受寄存器DRR。因为这些寄存器是存储变换的,它们可以按与任何其它的数据存储单元相同的方式存取。DRR寄存器和DXR寄存器都具有用耒确定接收位或传送位从MSB开始的移位寄存器。一外部时钟信号耦合到DXR上,一工作方式位TXM决定帧脉冲FSX是在芯片上产生还上从芯片外输入。DRR具有串行出入口时钟脉冲CLKR并有一FSR脉冲与其相耦合。串行出18入既可以字节方式操作,也可以以16位的字方式操作。
这种体系统结构的灵活性可以满足多种系统的需要,这种处理机芯片所在的这样一些系统独立处理机,带有并行装置的多处理机,带有全局存储空间的从属/主机的多处理机;或借助于处理机控制的信号与另一装置接口的外围处理机。下面描述各种多处理机的结构。
为了应用到多处理方面,处理机芯片具有分配全局数据存储空间和借助于总线请求BR和READY控制信号与上述空间相连通的能力。全局存储器是由一个以上的处理机共享的数据存储器。全局存储器是由一个以上的处理机共享的数据存储器。全局数据存储器的存取必须通过判优耒进行。8位的存储变换存储器的分配寄存器GREG将部分数据存储空间规定为全局外部存储器。寄存器GREG中的内容决定为全部存储空间的大小。如果现行的指令在上述空间范围内的操作数寻址,总线请求BR被断言要求控制总线。存储循环的长度是由READY线控制的。
采用HOL和HOLDA信号,处理机对其外部的程序/数据存储器支援直接存储存取DMA。另一处理机通过断言使HOLD处于低由平从而使处理机对其地址、数据和控制线处于三态而实现对外部存储器的完全控制。
中断图3中的处理机[10]具有七个优先的向量中断,其优先次序从最高到最低依次排列复位;用户中断#1和#2;内部定时中断;串行出入口接收收中断和串行出入口发送中断。除右位以外的全部中断都是可屏蔽的。
复位是一个能在任何时间用耒把芯片置于一已知状态中的不可屏蔽的中断;在机器处于随机状态时,复位一般是在工作于电源接通状态之后加上的。当复位一般是由对在控制总线[13]上的RA(复位)输入引脚加一低电平所触发时,就会不同步地停止执行现行指令和迫使程序计数器DC为零。程序存储单元0一般含有转移指令以便把程序执行引向该系统的预定程序初始化程序。这种复位使各寄存器和状态位初始化。
在收到RS信号时,发生下列动作将逻辑O装入到状态寄存器ST1中的CNF位中,并使所有的RAM安置为数据存储器;程序计数器PC被置O,用全零耒驱动地址总线RA,此时RA为低电平;由I/O缓冲器使数据总线D三整化;当RS为低电平时通过使所有的存储器和I/O的空间控制信号PS,DS,IS,R/W,STRB和BR置于高电平耒解除对这些信号的断言。通过把INTM位置于高电平使所有的中断不能执行。注意RS是不可屏蔽的,而且IFR被置于全零;状态位也被复位于零;XF被置于1;GREG被清除以便使所有存储器均为部存储器;RPTC被清除,DX引脚被三整化,对串行出入口的发送/接收操作却被停止,TXM位被复位到低电平,从而使RSX引脚构成输入端;定时器寄存器TIM被置于FFFF并在解除对RS的断言之后开始递减,而周期寄存器不受影响;以与可屏蔽的中断相同的方式产生IACK信号;将串行出入口格位FO复位到逻辑零。
当RS信号取高电平时执行,从外部程序存储器的单元O开始。注意,如果RS被断言而又处于保持状态时,通常的复位操作在内部出现,但全部的总线和控制线保持三态。当HOLD和RS解除时,执行从单元零开始。
用于全部内部和外部中断的向量单元和优先权列于下表。正如该表中所示的那样,复位具有最高优先权,而串行出入口传送中断具有最低优先权。用于使软件中断的TRAP指令是没有优先权的,但仍被列在表中,这是因为该指令具有其自己的向量单元。每个中断地址都已隔开两个单元,从而可使转移指令容纳在中间不编号的存储单元之中。
中断名称 存储单元 优先权 功能RS 0 1(最高) 外部复位信号INTO 2 2 外部用户中断#0INT1 4 3 外部用户中断#1INT2 6 4 外部用户中断#2T1NT 24 5 内部定时中断RINT 26 6 串行出入口接收中断TRAP 30 N/A(没有)TRAP指令地址当中断发生时,它被贮存在6位中断标记寄存器IFR中。这种寄存器由外部用户中断INT(2-0)和内部中断RINT,XINT和TINT置位。各个中断一直贮存到它被认可为止,接着由中断确认IAC信号或控制总线上的RS信号清除。这种RS信号不贮存在IFR中。不存在用于从IFR读出或写入IFR之中的指令。
这种处理机具有屏蔽外部和内部中断的存储变换中断屏蔽寄存器IMR。在16位的空间中因有6个LSBs在IMR中被使用。IMR中的位位5至位位0中的“1”启动相应的中断,只要INTM=0。IMR的读或写操作可以通过D-bus进行,但不能采用BLKD读出。RS不被包括在IMR中,因此,IMR对复位不起作用。
中断方式INTM,即状态寄存器STO的第9位能启动所有的可屏蔽中断或者使可屏蔽中断不能执行。在INTM中的“0”能启动所有没有屏蔽的中断,而“1”则使这些中断不能执行。通过中断确认信号IACKDONT指令或复位使INTM被置为“1”此位由EINT指令复位于零INTM实际上不改变IMR或中断标记寄存器IFR。
控制线路ID保护多循环指令;如果在多循环指令执行期间出现中断;直到该指令执行完毕才对中断加以处理。当指令正借助于RPT或RPTK指令重复时,控制线路也不允许对中断加以处理。在重复计数器RPTC递减为零之前,中断一直被贮存的IFR中,在RPTC递减为零之后才对中断进行处理。即使在对RPT或RPTK指令进行处理的同时解除对中断的断言,这种中断也将依然由IFR锁存并在RPTC递减为零之前处于未决状态。中断不能在EINT和程序顺序中的下一个指令之间被处理。例如,假如中断出现在ETNT指令执行期间,这种装置总是不但完成EINT,而且还完成在未决指令被处理之前的、位于ETNT之后的指令。这样就保证了在下一个指令被处理之前使RET能被执行,假定RET指令是跟随在EINT之后。在接收1到中断1时,机器的状态可以被贮存和复原。
状态寄存器这种处理机具有两个状态寄存器STO和STI,这种寄存器含有不同条件和方式的状态。注意DP,ARP和APB寄存器在图3中的处理机方框图中被表示为分开的寄存器。因为这些寄存器没有把它们贮存在RAM中的分开的指令,它们被包括在状态寄存器中。把状态寄存器贮存到数据存储器中和把它们从数据存储器装入的这种能力使机器的状态被贮存和复原以便用于中断或子程序。采用LST,LST1 SST和SST1指令,可读出或写入全部的状态位。INTM例外,它不能被LST指令装入。然而,一些附加指令或操作可以影响表中所指出的那些位。
上下文转换当处理子程序调用或中断时,通常需要上下文转换。在图3中的处理机上的上下文开关中,有几种机理被用耒贮存处理机的现行状态。例如,程序计数器PC自动贮存到硬件堆栈ST上。如果在其它的诸如状态或辅助寄存器之类的寄存器中存在任何重要的信息,这些信息必须由软件命令保存。通过辅助寄存器AR0至AR4辨别的、在数据存储器RAM[15]中的堆栈在处理中断时对贮存机器状态是有用的。被选择的AR起堆栈指针的作用,机器寄存器被保存在RAM[15]中并以同样的顺序复原;被保存的寄存器是ACCH,ACCL,ARO至AR3,PR,STO,ST1,TR和硬件堆栈中的四个层次。
存储器管理图4中的存储变换的结构是可编程的,并能针对处理机的各个操作任务加以改变。提供用于将外部数据存储器或外部程序存储器的块移到数据中,将位于芯片上的数据RAM的块配置成程序存储器和将部分外部数据存储规定为全局存储器。对存储器的移动,配置和操作的例子将作简要的描述。
因为这种处理机对64K存储器的两个区埃直接寻址,数据块或程序代码能在芯片外被保存到慢速存储器中,然 将它们装到芯片上以便作快速处理。BLKD和BLKP指令有助于在处理机TMS320 20上作存储器对存储器的块移。BLKD指令使块在数据存储器之内移动,并且一般在它之前有一个含有诸如255这样的数它的RPTK指令以移动256字。
位于芯片上的RAM的结构可配置性能和大量的外部储存器使将数据储存器或储存器放到芯片中的过程大为简化。同样,因为在芯片上作重新规定时RAM[15]中的数据得以维持,故RAM[15P]能为数据储存器和程序储存器两者都作动态配置。图4画出在作结构配置改变时在芯片上的RAM中发生的变化;具体地说,CONFD和CONFP指令改变了RAM[15P]的有效地址,并改变了RAM[15]的地址总线和数据总线。由复位或由CNFD和CNFP指令来对芯片上的储存器加以配置。通过执行CNFD或复位,将RAM[15]配置为数据储存器;或者由CNFP指令将这一块配置为程序储存器。例如,采用BLKD,能将程序代码装入到RAM[15P],接着执行CNFP指令以便再次配置,接着执行来自于RAM[15P]的代码。在CNFP或CNFD指令之后取出的第一个指令是取自先前的存储结构的;也就是说,如果在一个或多个外部取指以后执行要从位于单元65280处的RAM[15P]的第一个字开始,则必须把CNFP指令放到外部的程序储存器单元65,278处。如果这种放在单元65,279处的指令是两个字的指令,则第二个字就能从RAM[15P]的第一个单元中取出。或者,如果所有芯片上的RAM被用作数据储存器,用户可以从外部程序储存器[12]来执行。RAM[15P]总是被变换到数据储存器空间中。对于几乎是所有的指令,对芯片上的RAM中的程序和对工作时不带有等待状态的外部存储器中的程序,其执行时间都是相同的,假定这些数据是处于内部的RAM的。这种情况的一个例外是IN和OUT指令当从芯片上的RAM执行时,这些指令在一个循环中执行。
全局储存器是由一个以上的处理机共享的储存器,由此,对这种储存器的存取必须进行判优。当采用全局储存器时,这种处理机的地址空间被划分成局部和全局两部分。局部部分被处理机用来完成它的独自的功能,全局部分被用来与其他的处理机相连通。存储变换寄存器GREG被用在允许部分数据存储器被规定为全局外部存储器的处理机中。在数据存储器地址单元[5]处作存储变换的GREG是一个八位寄存器,这种寄存器与内部总线D-bus的八个LSBs相连接。GREG中的信息内容决定全局存储空间的大小。GREG的合法数值和相应的全局存储空间列于下表如果一条指对全局存储器中的数据寻址,在控制总线[13]上的总线请求信号BR被断言以便要求使用全局存储器。在执行这种存储器的存取之前,控制线路检验一下READY是否被断言。当READY被断言时,执行全局存储器的存取。在执行完毕全局存储器的存取周期之后,如果总线判优逻辑继续对READY断言,则处理机在每一个机器循环中执行全局存储器的存取,直到READY被解除为止。
定时器的工作这种处理机使用芯片上的定时器和它的有关的中断以固定的时间隔执行各种操作。通过将1至65,535(FFFF)的值装入周期寄存器PRD,每4至262,144个循环中能分别产生一定时中断TINT。两个存储变换寄存器用于操作定时器。定时寄存器TIM,数据存储单元[2]保持定时器的现行计数。每逢第四个CLKOUT1循环时,TIM递减1。PRD寄存器,数据存储单元[3]保持定时器的起始计数。当TIM递减到零时,产生定时器中断TINT。在同一循环中,PRD寄存器中的信息内容被装入到TIM寄存器中。在这种方式中,每隔CKOUT1的4×(PRD)周期产生一TINT信号。借助于D-bus,在任一循环中,这种定时器和周期寄存器能够被读出或写入。通过对TIM寄存器的读取,能对计数加以监测。能将新的计数周期写入周期寄存器,而不干扰现行定时器的计数。在现行计数完成之后,这种定时器将接着开始新的周期。如果PRD和TIM寄存器两者都被装入新的周期,这种定时器开始对新的周期作递减而不产生中断。因此,程序编制器完全控制了定时器的现行和下一个周期。在复位时,将这种TIM寄存器置于它的最大值(FFFF),并仅仅在RS解除断言之后开始递减。在复位期间,不对周期寄存器置位。如果不采用这种定时器,TINT应被屏蔽。于是PRD能被用作通用数据存储单元。如果采用TINT,PRD和TIM寄存器应在未对TINT屏蔽之前被编上程序。
单指令循环当对时间非常重要、计算量很大的任务编制程序时,往往有必要对同样的操作重复多次。因为这种处理机只有高度的并行性,很多指令执行一完整的操作(诸如MACD之类的指令)。针对这些情况,提供了允许对下一个单指令执行N+1次的重复指令。N是由一个八位重复计数器RPTC决定的,RPTC是借助于D-bus由RPT或RPTK指令装入的,于是执行紧接着的下面一个指令,RPTC寄存器不断递减直到零为止。当采用这种重复特征时,被重复的指令仅仅被取出一次。作为一种结果,许多多循环指令在被重复时就变成一个或两个循环。这一点对于诸如TBLR,TBLW,IN或OUT之类的I/O指令特别有意义。诸如滤波执行之类的程序需要一能在尽可能小的小时内就能加以控制的循环。
外部转移控制这种处理机具有一受外部控制的转移指令,这种指令给系统设计员提供了另一种监控外部条件的中断形式。一个标记为BIO(在I/O上的转移)的外部引脚由BIOZ指令加以检验,如果这种引脚处于低电平它就转移。这种在I/O上的转移特征对于来自于中断寄存器的一个中断独立地加以询问是有意义的。此外,这种BIO引脚不被锁存这一点就使BIO的功能对于监督仅仅在某些条件是真实的或变成真实的时候才需要加以服务的装置是有意义的。外部读/写操作这些处理机具有用于与外部存储器和I/O接口的程序、数据和I/O地址空间。对于这些地址空间的存取是由在控制总线[13]上的PS,DS和IS(程序,数据和I/O选择)处理机信号加以控制的。因为这种处理机以同样方式处理各个地址空间,所以这种系统是简明的系统。
在外部读循环过程中的一系列的事件列在下面1)在时钟脉冲的四分之一相位[3]这段时间内,处理机开始驱动地址总线和一个存储空间选择信号。R/W被驱动为高电平以便表示外部存储器的读取。
2)在四分之一相位[4]起始处,STRB被断言以表示地址总线有效。STRB连同R/W一起,可以被用来选通读启动信号。
3)在对地址存储区域进行译码之后,在四分之一相位[4]的这段期间,用户的存储器接口必须建立相应的READY信号,READY在四分之一相位[1]的起始处由处理机采样。
4)如果READY在在合适的时间(proper time)为高电平,则数据在四分之一相位[1]的末端被记下时间。
5)在四分之一相位[2]的起始处,STRB被解除断言,处理机通过解除对地址总线和PS,DS或IS的触发来终止对存储器的存取。
这些控制信号PS,DS,IS,STRB和R/W仅在对外部地址单元被存取时才被断言。
在外部写循环过程中的一系列事件列在下面1)在时钟脉冲的四分之一相位[3]这段时间,处理机开始驱动地址总线RA和一个存储空间选择信号。R/W被驱动为低电平以便表示外部存储器的写。
2)在四分之一相位[4]的起始处,STRB被断言以表示地址总线有效。STRB连同R/W一起可以被用来选通写启动信号。
3)在对地址存储区域进行译码之后,在四分之一相位[4]的这段期间,用户的存储器[12]的接口必须对READY信号输入提供相应的逻辑电平,READY在四分之一相位[1]的起始处由处理机采样。
4)数据总线在四分之一相位[4]的起始处开始被驱动。
5)在四分之一相位[2]的起始处,STRB接着被断言。处理机通过解除对地址总线和PS,DS或IS来终止对存储器的存取。
在存储器或I/O存取中的循环次数是由READY输入的状态决定的。在四分之一相位[1]的起始处,处理机对READY输入采样。如果READY是高电平,则在CLKOUT1的下一个下降沿处,存储器的存取终止。如果READY是低电平,存储器循环延长一个机器循环,同时所有其他的信号仍保持有效。在下一个四分之一相位[1]的起始处,这种序列被重复。
尽管在这里结合实施例对本发明进行了描述,但并不受这种对实施例的描述的限制。对于参阅了上述描述的本技术领域:
内的熟练人员来说,上述用图表示的实施例的各种改进及本发明的其他实施例将被认为是显而易见的。因此下述权利要求
将复盖此类改进或其他实施例,即它们仍将落在本发明的专利保护范围之内。
权利要求
1.一种微型计算系统,本发明的特征在于,该系统包括A)制在一个集成电路中的和具有数据输入/输出终端和地址输出终端的微型计算机装置,B)位于微型计算机之外的、具有地址输入和数据输出的外部存储部件,C)用于把信息传送到外部设备上或从外部设备中传送出来的输入/输出外围部件,所述外围部件具有地址输入部件和数据输入/输出部件,D)耦合到这种微型计算装置的地址输出终端上的外部地址总线部件,该部件还与所述外围部件的地址输入部件和所述存储部件的地址输入部件相耦合,E)耦合到这种微型计算机装置的所述数据输入/输出终端上的外部数据总线部件,该部件还与所述外围部件输入/输出部件和存储部件的数据输出部件相耦合,F)这种微型计算机装置在所述集成电路中包括具有数据输入和数据输出的运算/逻辑单元,具有地址输入和具有数据输入/输出部件的第一读/写存储器,与运算/逻辑单元的数据输入和数据输出相耦合的并且与第一读/写存储器的数据输入/输出部件相耦合的内部数据总线部件,具有地址输入和具有数据输入/输出部件的第二读/写存储器,这种第二读/写存储器贮存数据或指令字,与第二读写存储器的地址输入连接的程序地址部件,与所述第二读/写存储器的所述数据输入/输出部件,所述数据输入/输出终端相耦合的并且与所述程序地址部件相耦合的内部程序总线部件,具有耦合在所述程序总线部件上的输入和产生相应控制字的微控制信号的控制部件,这种信号是决定运算/逻辑单元传送到内部总线部件和从内部总线传送出来的工作的信号。所述控制部件包括执行将一系列相继存储器地址内容从外部存储部件拷贝到第一读/写存储器上的第一块移指令,和执行将一系列相继存储器地址内容拷贝到第二读/写存储器中的第二块移指令。
2.据权利要求
1中所述的系统,其特征在于,该系统包括用于建立重复操作循环的时序部件,在重复循环周期的一个周期期间,数据从重复的第一存储器传送到运算/逻辑单元的所述数据输入端,程序地址部件把一地址提供到第二存储器的地址输入端上,控制部件接收来自程序存储器的指令字,在其中所述操作循环的连续循环是重叠的。
3.据权利要求
1中所述的系统,其特征在于,内部数据总线部件包括字宽为N位的总线和字宽为2N位的运算/逻辑单元的数据输入和输出。
4.据权利要求
1中所述的系统,其特征在于,所述第二读/写存储器的所述数据输入/输出部件是可与所述内部数据总线部件也可与所述内部程序总线部件作耦合以响应来自所述指令的一个字的控制信号的部件。
5.据权利要求
1中所述的系统,其特征在于,每一所述第一和第二块移指令,所述系列的地址是在所述程序寻址部件中产生的,在所述第一或第二读/写存储器中的目的地址是在数据存储器寻址部件中产生的,该数据存储器寻址部件是与所述第一与第二读/写存储器的所述地址输入端相连接的。
专利摘要
实时数字信号处理中的系统,使用具有芯片上的分开的程序和数据存储器的单片微机,芯片有程序和数据分开的地址和数据通路。外部程序地址总线允许芯片外的程序以扩展方式取指并由数据总线返回操作码。总线互换组件允许在分开的内部程序和数据总线间在特定环境中传送。内部总线为16位,ALU和累加器为32位,乘法器电路产生单态为16×16的乘法功能且与ALU分开,32位输出接到ALU。ALU的一输入通过0-15位的有符号扩展的移位器。
文档编号G06F9/30GK86101043SQ86101043
公开日1987年2月4日 申请日期1986年2月8日
发明者萨里德·S·马格尔, 里查德·D·辛普森, 丹尼尔·L·依辛, 爱德华特·R·柯得尔, 斯蒂芬·P·马斯霍尔, 凯文·麦克唐纳 申请人:得克萨斯仪器公司导出引文BiBTeX, EndNote, RefMan