首页> 中国专利> 一种支持FORTH语言的计算机体系结构

一种支持FORTH语言的计算机体系结构

摘要

本发明是一种支持第四代计算机高级语言FORTH,并采用RISC、CISC和WISC技术而设计的计算机体系结构,它包括新颖的栈管理部件、运算部件、移位寄存器部件及控制部件等,所有这些部件的组合及单个设计都体现了本发明的总体构思,与传统的计算机相比,本发明的计算机的运算速度更快,结构更简单,操作编程更容易和灵活。

著录项

  • 公开/公告号CN1035571A

    专利类型发明专利

  • 公开/公告日1989-09-13

    原文格式PDF

  • 申请/专利权人 北京市大兴多思软件有限公司;

    申请/专利号CN89101048.3

  • 发明设计人 刘大力;

    申请日1989-03-04

  • 分类号G06F15/00;

  • 代理机构中国国际贸易促进委员会专利代理部;

  • 代理人余刚;李勇

  • 地址 北京市西四北三条10号

  • 入库时间 2023-12-17 12:06:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2007-05-02

    专利权的终止未缴年费专利权终止

    专利权的终止未缴年费专利权终止

  • 2002-04-24

    其他有关事项 其他有关事项:1992年12月31日以前的发明专利申请,授予专利权且现仍有效的,其保护期限从15年延长到20年。根据国家知识产权局第80号公告的规定,下述发明专利权的期限由从申请日起十五年延长为二十年。在专利权的有效期内,所有的专利事务手续按照现行专利法和实施细则的有关规定办理。 申请日:19890304

    其他有关事项

  • 2001-02-28

    著录项目变更 变更前: 变更后: 申请日:19890304

    著录项目变更

  • 1991-07-03

    授权

    授权

  • 1990-12-12

    审定

    审定

  • 1989-09-13

    公开

    公开

  • 1989-08-23

    实质审查请求

    实质审查请求

查看全部

说明书

本发明涉及一种计算机体系结构,更具体地说,本发明涉及一种能直接支持第四代高级计算机语言-FORTH语言的计算机体系结构。

目前的计算机系统中都配备了丰富的软件,其中传统的高级语言(例如:FORTRAN、COBOL、PASCAL、BASIC等)都得到了广泛的应用。但是,这类高级语言的功能都是有限的,而且对这类语言本身的二次开发工作一般都需要由生产厂家完成,靠语言本身是不能完成的。此外,这类语言虽然书写程序比较方便、规范,但是由于它们与机器之间的界面过多,所以编译速度和效率都较低。由于对机器的不透明性,使得程序的质量和运行效率的提高也受到很大的限制。例如,在使用FORTRAN语言时,首先要在操作系统界面上使用文本编辑软件,编辑一个FORTRAN源程序文件,接着要在FORTRAN编译系统界面上,对源程序文件进行二遍扫描编译,从而产生相应的目标程序文件;编译通过之后,再回到操作系统界面上使用系统的链接软件,对目标文件进行链接定位,使之产生相应的可执行文件,这样一个可执行文件才可在操作系统界面上直接运行。当FORTRAN程序中需要调用汇编语言程序时,则需要通过与产生FORTRAN目标程序文件相类似的方法,使用系统的文本编辑软件和汇编语言来生成汇编目标程序文件,然后与FORTRAN目标程序文件一起链接定位。由此可见,这样的编译过程十分繁索,界面的转换也很多,大大影响了编译速度和效率,初学者也不易掌握。

近年来,人们愈来愈积极地寻求界面简单、结构化好及编译效率高,并能自扩展(自我二次开发)的高级软件工具,因而出现了具有明显优势的第四代高级程序设计语言FORTH语言。

FORTH语言系统与其它高级语言不同,FORTH系统一旦生成后,就不必进行任何界面的转换,只在FORTH系统这一层界面上就可以进行从编辑、编译到运行器各个状态下的工作。这是因为FORTH系统容纳了操作系统的常驻模块的主要功能,并且有自己的文本编辑器。另外,FORTH系统中还包含了完全结构化的一次扫描的FORTH汇编,它可以在FORTH系统中直接编译和运行汇编程序。此外,FORTH语言还具有许多优于其它高级语言的优点,例如它是完全结构化的,并具有自我扩展能力,它是透明的语言,也是目标代码最短的语言等等,因为具有上述优点,FORTH语言已经在世界各国,尤其是在美国,得到了愈来愈广泛的应用。

然而,目前的计算机都是传统的冯·依曼型计算机。这种类型的计算机都有一套机器的指令系统,机器的CPU只能分析、执行这套机器指令集,人们必须在这个指令系统的基础上去开发软件。因此便需要开发出一种能直接运行FORTH高级语言的新一代计算机。

目前,传统的计算机体系结构主要是采用复杂的指令系统计算机结构,即CISC(Complex    Instruction    Set    Computer)结构。为了能得到更快的执行命令的速度,同时使结构简单,电路简化,成本更低廉,又出现了一种新的计算机体系结构-RISC(Reduced    Instruction    Set    Computer)结构。RISC结构计算机的特点是在每个时钟周期内执行一条指令;其指令使用固定格式。RISC结构计算机强调使用载出/存入设计,以存贮器执行指令方式完成从存贮器载出和存入存贮器。另外,RISC结构计算机使用硬件布线来实现指令控制,不用微代码设计,以保证快速度、单周期操作码的运行。1987年底,美国的Koopman提出了一种交互式计算机结构,它能把RISC结构和CISC结构综合在一起,产生出一种更有兴趣、布局合理、灵活、速度快的机器,该结构被命名为WISC(Writable    Instruction    Set    Computer)结构。

有关FORTH高级语言和CISC、RISC及WISC体系结构的参考文件请见    刘大力、黎晓准、张汉煜编著的,人民邮电出版社于1988年2月出版的《第四代计算机高级语言-FORTH》一书,以及《Communication    of    the    ACM》杂志1985年第1期刊登的文章“Reduced    Instruction    Set    Computer”,《Byte》杂志1987年April的文章“The    WWISC    Concept”Phil    Koopman。

本发明的目的是提供一种新型的计算机体系结构,该计算机体系结构是支持计算机高级语言FORTH的硬件环境。该计算机所完成的基本操作能很有效地描述FORTH语言基本单词的语义,FORTH语言的基本单词相当于该计算机的“汇编指令”。本发明的计算机体系结构是直接面向第四代语言、综合采用CISC、RISC、WISC技术和宏技术设计的计算机体系结构,其主频、运算速度、寻址能力等各项技术指标都达到了八十年代后期世界先进水平。

本发明的计算机体系结构中包括一个存放操作的准备数据、操作的中间结果及完成操作的最终结果的第一存贮装置;一个存放子程序调用的断点地址及调用返回时恢复断点的地址的第二存贮装置;一个存放计算机的系统软件,指令和用户程序的主存贮装置;一个根据指令译码所产生的微操作控制信号完成对第一存贮装置的写入操作和读出操作的第一存贮装置管理装置;一个根据指令译码所产生的微操作控制信号完成对第二存贮装置的写入操作和读出操作的第二存贮装置管理装置;一个管理访问主存贮装置的地址的主存贮装置管理装置;一个接收主存贮装置读出的指令或数据并为对主存贮装置的写入操作准备数据的主存贮装置数据端口;一个对主存贮装置中取出的指令进行译码并产生多个微操作信号的组合逻辑译码控制装置;一个由多路转换器和进行算术逻辑运算的算术逻辑运算装置组成的运算装置;以及一个至少包含第一寄存器和第二寄存器的移位寄存器装置。

图1是本发明的计算机体系结构的总体框图;

图2是说明本发明的焦点,发散数据通路的示意图;

图3是具体说明本发明的参数栈管理部件的示意图;

图4是具体说明本发明的返回栈管理部件的示意图;

图5是具体说明本发明的移位寄存器部件的示意图;

图6是具体说明本发明的指令重复执行控制部件的示意图;

图7是具体说明本发明的运算器部件的示意图;

图8是具体说明本发明的主存贮器地址管理部件的示意图;

图9是具体说明本发明的主存贮器数据端口部件的示意图;

图10是具体说明本发明的串行、并行I/O端口部件的示意图;

图11是具体说明本发明的并行I/O端口部件的示意图;

图12是具体说明本发明的开平方运算硬件线路的示意图;

图13是说明本发明的计算机完成一条指令过程的示意图;

图14是说明本发明所采用的双锁存器原理的示意图;

图15是说明本发明的计算机中的TOP寄存器和NXT锁存器原理的示意图;

图16是说明本发明的计算机中的时钟信号波形的示意图;

图17是说明本发明的计算机中的双锁存器结构的示意图。

下面将参考附图说明本发明的一个实施例,同时阐明本发明的设计思想。值得注意的是,此处所叙述的各具体内容只不过是借以解释本发明构思的手段,并不限制本发明的范围。本技术领域的人员可能据此做出不脱离本发明范围的各种变更和修改。因此,确定本发明专利申请保护范围应当根据所附的权利要求。

参见图1,为了使本发明的计算机体系结构支持FORTH语言,把FORTH语言中的双栈-参数栈、返回栈设置成两个独立的存贮区,即图1中的参数栈存贮区1和返回栈存贮区2。参数栈存贮区的容量可以是1K×16bit;返回栈存贮区的容量可以是1K×20bit。相应的,CPU3中设有该两个栈的管理部件:参数栈管理部件FSD和返回栈管理部件FRD。参数栈的作用是存放一个操作的准备数据,中间结果及完成操作的最终结果。对参数栈写入一个数,意味着完成了一次入栈操作。相反,从参数栈读出一个数,则相当于完成了一次出栈操作。返回栈在FORTH语言中的作用是保存单词(子程序)调用的断点地址,在调用返回时恢复断点地址,同时在一定条件下可以为某一操作存放中间结果。为保存20位的地址,返回栈是20位的,而参数栈是16位的。栈管理部件FSD和FRD的主要功能是根据指令译码所产生的微操作控制信号完成对栈存贮区的写入操作(入栈)和读出操作(出栈)。

在本发明的体系结构中,主存贮区4的容量可以为220=1M字,用于存放系统软件和用户程序。计算机不断地从该存贮区中取出指令并执行该指令。在程序中的一条指令得到执行前,CPU3必须给出该指令或一个数据在主存贮区的地址,才能完成对主存贮区的访问。主存贮区地址管理部件FPCA的主要作用是形成访问主存贮区的地址。主存数据端口部件FD的作用是接收从主存贮区读出的指令或数据,为完成主存贮区的写入操作准备好数据,如果从主存贮区中取出的是指令,则该指令送到组合逻辑译码控制部件FCC,由其产生各种微操作信号(各种开关信号),从而完成一条指令所规定的操作。

运算器部件FALU由三部分组成,即:一个多路转换器(此处为24选一多路转换器)MUX-Y,其作用是选择CPU内部各个用户可用的寄存器作为操作数;另一个是算术逻辑运算单元ALU,它可以进行9种算术逻辑运算,5个FORTH单词的操作;再一个是开平方硬件线路SQR,该线路通过将开平方算法硬件化,可以在8个时钟周期内完成一个16位无符号二进制数的开平方运算。

CPU3中还包括一个指令重复执行控制部件FREPT,该部件中有一个寄存器REPT,在该寄存器有效时可以控制CPU重复执行并指令。

CPU3中还包括一个移位寄存器部件FTN,它主要是由两个寄存器组成,即:TOP寄存器和NXT寄存器。ALU部件的操作结果必然送到FTN部件中。FTN部件中还包括两个桶形移位器(Barral    Shifter),从而完成对ALU运算结果的移位操作。另外,FTN部件可以把结果送到各个寄存器之中。TOP寄存器和NXT寄存器的主要作用是作为FORTH语言语义的参数栈栈顶和次栈顶。

该CPU3结构中还安排了两个I/O端口,即16位并行I/O端口FP和8位串行、并行I/O端口FDS/P。FDS/P端口除了能完成并行I/O操作外,通过对该端口控制寄存器的设置,可以使其完成串行I/O操作。

寄存器是CPU中用得最多的基本部件,本发明结构中各寄存器之间的关系如图2所示,它反映了本发明的数据通道。

本发明的结构中的数据通路、焦点与发散是围绕ALU的操作设计的。可以选择多个寄存器中的任何一个参与ALU运算,运算结果直接送入TOP寄存器,而后由TOP寄存器发送到各个寄存器中。

图2中的多路转换器MUX-Y是由指令格式的5位来控制选择寄存器的。下面说明图2中各寄存器与图1各部件的关系。

返回栈管理部件FRD中含有RD、RPL寄存器;

参数栈管理部件FSD中含有SD、SPL寄存器;

移位寄存器部件FTN中含有TOP、NXT、TH、NH寄存器;

指令重复执行控制部件FREPT中含有REPT、RT寄存器;

运算器部件FALU中包含了SR、MD寄存器;

主存地址管理部件FPCA中包含了PC寄存器;

主存数据端口FD中包含了D、IL寄存器;

8位串行、并行I/O端口FD    S/P包含了DS/P、XBS、XSP、XIO寄存器;

16位并行I/O端口FP中包含了P、BBS、BIO寄存器。

这21个寄存器的作用将在后面说明。图2基本上反映了本发明的CPU的数据通道,但不是全部。它只反映了围绕ALU的数据通路。寄存器之间的数据通路没在图2中表示。但可以从TOP寄存器送各个寄存器的通路上有所反映。在一些寄存器的输入端具有多路选择开关,它们就是为寄存器间的数据传送而设置的,这些多路选择开关是受指令译码控制部件FCC的微操作信号控制的。

上面介绍了本发明结构的各部件功能及数据通路。参照图1、图2和图13,CPU完成一条指令的过程如下:

在上一条指令周期里,已从主存贮区取出的一条指令存放在主存数据端口FD的指令寄存器IL中,并在指令译码控制部件FCC中进行了预处理;

进入该指令周期后,FCC部件释放出经过预处理之后的微操作控制信号;

微操作控制信号控制各部件做相应动作,完成指令所规定的操作。

在完成该指令的同时,完成从主存贮区取出下一条指令的操作,并进行预处理,等待下一个指令周期的到来。例如FORTH语言的4个单词RSWAP-2/,本发明的计算机体系结构可以在单单周期内完成这4个FORTH语言单词所规定的操作。参照图1和图2,其过程如下:把返回栈栈顶寄存器RT的内容由多路转换器MMUX-Y送至ALU;ALU完成Y-TOP(即RT-TOP)的操作;ALU的运算结果送移位寄存器部件FTN的TOP寄存器,通过TOP寄存器中包含的桶形移位器完成2/操作。

在FORTH语言中,任何操作都与参数栈和返回栈有关,具体地说,任何算术、逻辑运算,存取操作(即!,),子程序调用(单词调用)的参数准备,结果的传递等均在参数栈上进行;子程序(单词)调用时断点地址的保护及恢复均在返回栈上进行,一些操作的中间结果的保存可在返回栈上进行。然而一般的堆栈固有的缺点是:栈的一端固定,一端浮动,只有一个操作点,这就使对栈上数据进行操作时效率低。例如对于FORTH语言动词“十”而言,要完成参数栈栈顶、次栈顶的加法,栈状态的变化如下式:

(s    n    t→S(n+t))

该操作过程一般描述为:取出栈顶值作为ALU的输入之一;取出次栈顶值作为ALU的另一个输入值;完成加法操作;把结果压栈。这一操作要花费4个周期(这里设对栈存贮区的读出和写入均在单周期内完成)。

可见,解决上述问题是面向堆栈的机器的关键。本发明的结构中,上述操作不但可在单周期内完成,而且可以复合其它多条非ALU运算的FORTH指令,在单周期内完成。也就是说,可以高效地表达FORTH语言单词的语义。

本发明中对参数栈和返回栈的管理部件FSD、FRD及移位寄存器部件FIN的设计解决了上述问题,后面将具件说明上述部件结构。

FORTH语言任何单词的操作都以栈上数据准备好为条件,而当前单词的执行结果又为下一单词的执行准备好数据,因此这里零寻址方式。访问内存的操作由一个FORTH单词依据栈上的地址实现,已不属于寻址方式的意义范围,而最初的地址或数据可以由当前PC为地址,从内存中取一数据压栈的指令完成。在本发明的体系结构中,内存地址管部部件FPCA反映了这种需要,如图8所示。后面将具体叙述它的结构。

提高CPU内部各部件的并行执行度是计算机体系结构设计共同追求的目标。与传统的计算机相似,本发明结构中具有指令预取,预处理功能。除此之外,还具有一般计算机所没采用的新设计。下面将具体说明。

本发明的体系结构中的TOP寄存器和NXT寄存器中采用了双锁存器设计。双锁存器的原理如图14所示。双锁存器的作用是:寄存器的输入和输出可以同时进行,或者可以做到先输入后输出与先输出后输入,可以通过两个锁存开关信号的控制对寄存器进行破坏性或非破坏性写入。本发明中的SD、RT、RD、RPL、SPL、REPT、PC寄存器也采用了这种结构。

图15中表示了本发明结构中TOP、NXT寄存器的双锁存器结构。在ALU的输出进入TOP寄存器的同时,TOP的原值同时可送入NXT,同时NXT寄存器原来的内容可送往其他地方。这一操作由TL、NL信号控制,这是使本发明堆栈高效进行操作的主要设计之一。

相对于传统计算机的时序控制而言,本发明采用了无时序控制方式。

传统的计算机中的组合逻辑控制部件中包括三个部分:指令译码部分;时序发生器;组合逻辑译码电路。组合逻辑译码电路根据时序发生器的时序信号,综合当前指令的要求和状态反馈控制信号,最终产生一系列微操作控制信号,控制各部件完成指令所规定的各项操作。在此,一条指令包含多个CPU周期,而一个CPU周期包含多个节拍脉冲信号。组合逻辑译码电路可以在单个节拍脉冲内安排并行动作的微操作控制信号,而在不同的节拍脉冲里安排有先后次序的微操作控制信号。

本发明的体系结构中的组合译码逻辑将不需要上述的时序发生器,代之以把单个时钟脉冲经延时和译码产生两个小时钟控制信号,由这两个时钟脉冲控制有先后次序的微操作,而在数据通路及部件的设计上安排大部分的操作可以无时序地完成。尽管内部的微操作仍不可避免有先后操作,这里在一个时钟周期内的时序,与时序发生器的概念是不同的。在这个意义上,即在单个时钟周期内可以完成相关的有先后的微操作,可以说实现了无时序控制。

图16表示了时钟脉冲CLK与两个小时钟脉冲CP1和CP2之间的波形关系。CP1和CP2的主要作用是控制双锁存器开关的时刻,使一个寄存器的上下两个锁存器永远不能同时打开,保证可靠地读出和写入寄存器。

本发明的体系结构中,实现了FORTH语言的程序控制指令和结构指令,它们是:IF,ELSE,DO……+LOOP,BEGIN,UNTIL,REPEAT,WHILE,FOR……NEXT。这里便大大加快了FORTH的执行速度。

下面将参照附图对本发明体系结构中的各个部件的结构做出说明。

FORTH语言对参数栈的栈顶,次栈顶和第三项的操作最为频繁,本发明在CPU内部设置了三个寄存器:TOP寄存器,NXT寄存器和SD寄存器。对参数栈栈顶,次栈顶和第三项的操作相当于对寄存器的操作,使计算机执行FORTH语言的效率大大提高。当然,在CPU中不一定只限于设置三个寄存器,也可设四个五个……n个等等,此处只是举例说明。

上述寄存器采用双锁存器结构,在对栈顶寄存器TOP压入一数值的同时,可以把TOP寄存器的原值传送给次栈顶寄存器NXT,而NXT的原值传送给SD寄存器,SD寄存器的原值传送给参数栈存贮区,这样就完成了栈的压入操作。从参数栈中弹出一值,其操作过程正好相反。

图3和图4分别给出了二个栈的管理部件FSD和FRD的结构,从中也可以看出寄存器TOP、NXT和SD的关系。

图3中的各部分的说明如下:

WES:参数栈存贮区的读/写信号线,它还有控制三态门SD(PAD)的作用;

SDBUS:参数栈存贮区16位双向数据总线(外总线),出入栈的数据均通过该数据总线;

SDA:内部16位传输线,从参数栈存贮区读出的数据由此送到双锁存寄存器SD中;

SDB:内部16位传输线,对参数栈写入的数据由此送到SDBUS总线;

SPBUS:参数栈存贮区的10位地址总线(外部总线),通过它确定对栈存贮区的哪个单元做读或写操作;

SPEN:外部地址使能线,它控制SP的内容是否传送到SPBUS;

SP(PAD):三态门;

SP:内部栈存贮区地址总线,它由多路转换器MUX-SPL的输出决定;

TD:寄存器TOP或D的输出,即图5中的MUX-TD多路转换器的输出;

SPL:参数栈指针寄存器,也是双锁存器结构,LN1    SPL和LN2    SPL分别是其控制信号,其输出送往图7的MUX-Y多路转换器;

SPAS:参数栈指针SP的加1减1器,CSPAS为控制信号;

NXT:寄存器NXT的16位输出信号,可参见图5;

SD:SD寄存器,双锁存器结构,LN1SD和LN2SD分别为控制信号,其输出值送经图5中的多路转换器MUX-N

由图3可见,通过MUX-SD,在微操作控制信号MSD的控制下,可以选择TD或NXT作为参数栈写入的数据;通过MUX-SPL可以选择AS,SPL,TD三者之一作为参数栈写入、读出操作的地址值,AS是SPL的内容加1或减1的结果,MUX-SPL的常态输出是AS,而且是SPL减1的值,TD是TOP寄存器输出的低10位。

栈存贮区的写入有两种选择,即多路转换器MUX-SD控制的TOP寄存器或D寄存器和NXT寄存器的输出。另外,栈存贮区的读出值一定送往SD寄存器,而SD寄存器的输出是参数栈次栈顶寄存器NXT的输入之一,SD的内容也可以由多路转换器MUX-Y选择参与ALU运算(可以参见图7)。

对参数栈的读、写操作如下:

TOP、NXT、SD分别为栈顶、次栈顶和第三项,栈存贮区的实际栈顶的内容与SD寄存器相同。因此,完成一次压栈或出栈,实际上要完成三个寄存器之间的传送,并使SD寄存器始终保持与栈存贮区内实际栈顶的内容一致。

设压入一个新值VX(见图3):

VX送到TOP同时TOP原值送到NXT同时NXT原值通过MUX-SD送到SDB同时在WES为低(三态门导通)时送到SDBUS总线,同时通过SDBUS和SDA总线送到SD寄存器。

写入的地址由MUX-SPL选通AS,送到SPBUS,在WES有效时完成对栈的写入操作。完成操作后,把SP值送SPL寄存器,完成栈指针的修改,即AS=SPL-1送到SPL。

设要把TOP寄存器的内容VX弹出,则对栈的操作过程如下(见图3):

取出TOP中的值VX,同时NXT值送TOP,同时SD内容送NXT寄存器,同时CSPAS=1使AS=SPL+1,MUX-SPL选择AS作为栈读出操作的地址由SP送到SPBUS,在WES为1时读有效,送到SDBUS,同时回送到SD寄存器,完成读出操作后把SP的值送入寄存器SPL中,完成修改指针SPL+1送SPL的操作。

在参数栈的管理中,考虑到入栈操作必须尽快空出TOP寄存器,故此NXT寄存器的内容必须尽快送入栈存贮区,因此,使多路转换器MUX-SPL的常通态所选的栈存贮区地址就是入栈操作时NXT寄存器的内容所要存入的单元地址,这就是设置多路转换器MUX-SPL的常通态为SPL-1的原因(SPL-1所指的是栈存贮区空单元)。

与此相反,在出栈操作时,要求从栈存贮区取出数据S1的操作不必太快,只要求尽快把TOP寄存器内容送出,尽快改变TOP、NXT寄存器的内容即可,而这些操作都是寄存器间的操作,故自然满足要求。这样,只要求在当前指令周期内把S1值送入SD寄存器。在完成这一操作时,可以较从容地完成SPL+1的操作,MUX-SPL选通,然后才完成栈存贮区的读操作。

可以看出,通常涉及外通路的操作延时在这里对参数栈操作的速度并不产生影响,对栈存贮器的速度要求不高(与主存贮器的访问频宽相同即可)。从指令执行的效果看,这里的栈管理达到了快速、并行,解决了外通路提供数据的速率远低于CPU的处理速率的这一矛盾。

参见图4对返回栈管理部件FRD的说明如下:

在CPU内部配置了两个寄存器作为返回栈栈顶和次栈顶。它们分别是RT寄存器(20位)和RD寄存器(20位)。RT寄存器设在图6所示的指令重复执行控制部件FREPT之中,但也可设在返回栈管理部件FRD之中。返回栈存贮区被设置为20位,以满足保存寻址能力为1M字的20位地址的需要。在图4中,有一个4位的扩展寄存器ID,其作用与栈管理部件FRD无密切关系,它仅仅是为了扩展外部存贮区空间而备用。

返回栈的作用是:通过把程序计数器PC值压入返回栈和把返回栈栈顶值弹出并送程序计数器PC实现单词调用时保护和恢复断点地址。

返回栈栈顶寄存器RT与程序计数器PC的数据通路见图8所示的主存贮区地址管理部件FPCA。RT(L)和RT(H)分别是20位寄存器的低16位和高4位,PC寄存器的输出送RT寄存器的情况可以在图6中看出,即PC(H)和PC(L)分别送入多路转换器MUX-RTH和MUX-RT。

图5表示了本发明的结构中的移位寄存器,部件FTN,它包含了一部分控制电路。FTN部件的主要作用是作为带有移位功能的参数栈栈顶寄存器和次栈顶寄存器。下面具体说明图5中的各个部分。

TN是带有移位功能的双锁存寄存器,其结构如图17所示。其中LN1和LN2为二级锁存器的开关信号,在该二级锁存器之间设置一个桶形移位器(Barral    Shifter),该桶形移位器可以完成右移二位,一位,不移,左移一位的操作。进入TOP寄存器的数据可以经过桶形移位器的移位或不移而传送到第二级锁存器。

MUX-T和MUX-N是两个多路转换器。写入TOP和NXT寄存器的数据分别有4个来源,通过这二个多路转换器分别选一种送上述寄存器。

MUX-TD是选择TOP寄存器的输出和D寄存器(位于主存数据端口部件FD内)的输出的多路转换器。从图1和图2中可以看出,TOP寄存器是本发明的体系结构中数据通路的发散点,而D寄存器是主存数据端口数据寄存器,通过TD信号通路,可以把主存取出的数据和参数栈栈顶的数据发送到各个寄存器。

TH和NH均为4位寄存器,它们的作用是当需要用寄存器TOP和NXT处理20位的地址值时,在其中存放20位地址的高4位。

MUX-TH和MUX-NH分别是TH和NH寄存器的输入信号多路转换器。

MUX-HAS和MUX-AS分别是TH、NH寄存器和TOP、NXT寄存器的输出多路转换器,其作用是选择(TH,TOP)还是(NH,NXT)进入一个20位的加1减1器TNAS。

加1减1器TNAS可以实现对参数栈栈顶或次栈顶的加1减1操作,这种操作在FORTH语言中经常遇到。

在图5中下方的一组信号线表示它们是从译码控制部件FCC发出或送入FCC的控制信号反馈信号。图上方的输入信号线的内容如下:

SD是参数栈第三项寄存器SD的输出信号线,它可以通过多路转换器MUX-N送入NXT双锁存寄存器;

D和ALU分别代表从数据寄存器D和算术逻辑运算器ALU的输出,它们可以通过多路转换器MUX-T的选择,写入参数栈栈顶寄存器TOP;

IL(0-7)是16位指令格式的低8位,其作用是,在以指令格式的低8位立即数为20位地址的高4位时,通过该通路可以把高4位地址分别写入TH,NH寄存器。

图6中的信号线中:NCC,EQN是ALU的运算结果状态标志值,NCC是进位位的“非”,EQN是“相等”状态的“非”;DRX和DTX是一位信号线,DRX可以把串、并I/O端口FDS/P从外部接收到的串行输入信号送入TOP寄存器的最高位DTX可以把TOP寄存器的最低位传送到I/O端口EDS/P,实现串行输出;TOP和NXT代表参数栈栈顶、次栈顶输出信号,TOP送往FALU部件的ALU输入端和FPCA部件,NXT送往三个不同部件,即多路转换器MUX-Y、MUX-SD及FPCA部件;HCLK是加速时钟,它来自CPU之外,可以对乘、除、开方、平方算法加速。

FTN部件是本发明中重要部件之一,它的主要功能有:

1.作为参数栈的栈顶、次栈顶,实现对栈的灵活操作;

2.作为计算机体系结构的数据通路的发散点;

3.作为移位寄存器,可对写入TOP和NXT寄存器的数据进行右移二位、一位或左移一位的操作;

4.作为并行串行I/O端口,在串行输入输出时的串/并、并/串转换电路实现串行通讯;

5.作为乘除运算的两个移位寄存器和开平方运算的乘除寄存器;

6.作为存放主存贮区地址之用,通过TOP和NXT的输出送主存地址管理部件FPCA,实现以TOP、NXT为地址的主存贮区的访问

7.除了CP1和CP2信号用于TOP和NXT双锁存寄存器的两级开关控制具有先后次序之外,其他从FCC控制部件发出的控制信号都是无时序的,可使FTN部件的操作与其他部件操作并行进行。

图6表示了本发明结构中的指令重复执行部件FREPT。该部件结构较简单,它由一个16位的指令重复执行控制寄存器,20位的返回栈栈顶寄存器(RT、RTH)和一个加1减1器组成。RD寄存器作为返回栈栈顶寄存器,其输出值可以写入返回栈次栈顶寄存器,写入程序计数器PC,RT寄存器的输入信号来源有返回栈吹栈顶寄存器RD和程序计数器PC。在图6中,MUX-RTH和MUX-RT的输入端可以看到这些信号。

指令重复执行控制寄存器REPT是一个16位双锁存器,该锁存器的最高位被单独引出作为指令译码控制部件FCC的输入信号,在其有效时(等于零),使FCC发生重复执行一条指令所需要的控制信号,每执行一次当前的指令,通过加1减1器REPTIAS把REPT寄存器的值减1,一直到REPT=FFFFH时为止。

图7表示了本发明的体系结构中的运算部件FALU,它由四个部分组成:

MUX-Y是多路转换器,它可以选择24路输入信号参与ALU运算;

ALU是算术逻辑运算单元,其作用是完成9种算术逻辑运算,即:T+Y,T+Yc,T-Y,T-Yc,Y-T,Y-Tc,与,或,非。5种FORTH动词,即:NIPDUP,SWAP,NIPOVER,DROPDUP,DROPOVER。两种其余操作(即ALU=T和ALU=T);

COM是一个比较器,作用是把RD寄存器的值与ALU的输出值做比较,产生一个状态信号GEQ送FCC部件,以此改变一些操作的控制;

MSR是一个开平方算法硬布线,通过把开平方算法硬化的方法,可以大大提高开平方的运算速度。

利用本发明结构中的FTN和ALU部件可以实现两个16位二进制数的乘除、开平方运算。乘除运算分别需要16和17个时钟周期,开平方运算仅需8个的时钟周期。

开平方运算的硬件设计原理如图12所示。图中,TOP、NXT和SR为双锁存寄存器,其中TOP存放被开平方数,NXT存放开平方数,SR初值为零,终值为TOP寄存器中数据的平方根值。图12中所示的电路主要是完成图18所示的开平方算法,它可以在单周期内完成一次图18所示的过程,由REPT寄存器控制循环8次,即在8个时钟周期内完成开平方运算。

开平方硬件电路的特点在于它利用指令重复执行控制寄存器REPT,以一条ALU操作指令的重复执行完成开平方操作,使开平方算法可以利用现有的硬件资源,如ALU,TOP,NXT寄存器,节省了硬件开销,使在一个CPU中实现开平方硬件线路成为可能。

本发明的体系结构中的乘除算法及硬件电路的设计原理与一般计算机的设计大致相同,不同点在于:一般的设计中,使用专用加法器而不是使用本发明所用的ALU来进行乘除运算。因为本发明可以利用指令重复执行控制寄存器重复执行一条ALU操作指令来完成乘除操作,所以它节约了硬件开销。

图8表示了主存贮区地址管理部件FPCA的结构。FPCA是由三个部分组成的,它们是:程序计数器PC(20位);地址偏值加法器PCAADD;多路转换器MUX-AL的MUX-AH。

图8中的ABUS是主存贮区地址总线(20位);A(PAD)是三态门;A是20位地址线,通过三态门与ABUS相连;A(H)是20位地址线的高4位;A(L)是20位地址线的低16位;IL(0-14)是指令格式的低15位立即数,TOP20是TOP和TH寄存器的输出信号;NXT20是NXT和NH寄存器的输出信号;RT20是返回栈栈顶寄存器的输出信号。

FPCA部件通过多路转换器MUX-AH和MUX-AL的选择,选出八种地址来源作为访问主存贮区的地址,同时地址偏值加法器PCAADD修改指针,然后送PC寄存器保存。该部件的特点是,它改变了传统设计中由程序计数器PC直接向地址总线提供地址的设计。

图9表示了本发明体系结构中的数据端口部件FD,它由两个寄存器和一个多路转换器组成,其中D寄存器用于存放从主存贮区读出或写入主存贮区的数据,IL寄存器用于存放从主存贮区取出的指令;多路转换器MUX-DIO用于选择4种数据来源的一种送主存贮区数据总线DBUS。图中的WED是读写控制信号。

图10表示了本发明的体系结构的八位串/并I/O端口FDS/P部件,它可以实现并行、串行I/O通讯,可以实现位屏蔽控制。在图10中,XSP是一个8位寄存器,其作用是设置FDS/P端口的串行或并行工作方式,图中的XIO是一个8位寄存器,其作用是设置FDS/P端口为输入状态或输出状态;XBS是一个8位寄存器,其作用是屏蔽FDS/P端口的8位I/O通路的任意几位或全部位;XBSDR是位屏蔽译码驱动器,其作用是通过对指令的第5~7位的译码,强行改变XBS寄存器所设置的位屏蔽状态;DS/P内部包括一个数据寄存器及对XBS、XIO、XSP信号的译码电路,以实现XBS、XIO和XSP的控制作用。

图11表示了本发明结构中的并行I/O端口FP,它是16位端口,其结构非常简单。FP端口由三部分组成:一个位屏蔽寄存器BBS,它与FDS/P端口中的XBS作用相同;一个输入输出方向寄存器BIO,它与FDS/P端口中的XIO作用相同;一个部件P,它包括一个数据寄存器及BBS、BIO的译码控制电路,以实现BBS、BIO的I/O方向控制及位屏蔽功能。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号