精减指令集计算机处理器 交换设备中的多层复用交换程序,或数据协议需要各自满足其应用目的的组件。例如纯逻辑电路或为复用所确定的集成电路或精减指令集计算机(RISC)处理器被布置在这些组件上。对在交换设备中,特别在接口组件中出现的交换程序或将要执行的数据协议提出更为严格的涉及失效安全的要求。
已知的RISC处理器的缺点在于,由于外部影响或程序错误,在程序运行时出现错误,在这些情况下处理器在程序循环中闭锁。
除了上述缺点,高处理速度时,常规RISC处理器中的正常中断控制限制了其使用。
本发明的任务在于提供一种RISC处理器结构以及一种方法,由此有可能防止处理器闭锁。
借助权利要求1和7的特征该任务得以实现。
本发明提供的优点在于,在程序运行过程中,RISC处理器的运行不持续的闭锁是可能的,因为在某一干扰后,由任一程序地址跳回到初始状态。
本发明提供的优点在于借助实施任务和功能栈指令序列可被可靠并快速地执行。
本发明其它有利的扩展在从属权利要求中给出。
借助附图参照实施例,通过下面详细的描述本发明其它地特征显而易见。
其中:
图1示出一种RISC处理器的结构,
图2示出一种软件结构,以及
图3示出一种顺序控制器的结构。
图1示意性示出一RISC处理器的结构。该图给出了主要以流水线(Pipeline)设置的RISC处理器的部件。这些部件为,例如顺序控制器SC,功能栈FS和任务栈TS,指令译码器ID,寄存器读单元RR,执行单元E,数据传送单元DT,寄存器写单元RW,输入和输出单元I/O以及寄存器文件RF。顺序控制器SC主要为指令译码器ID提供地址,以便从操作码存储器读取指令码。操作码存储器例如设置在ROM存储器部件的一个区域内。在指令译码器ID中,由指令码形成的命令CMD1,CMD2,…,CMDn用于图1所示的RISC处理器各个设置在流水线中的单元。然后命令CMDn由指令译码器ID向左和向右发送至分别设置在流水线中的处理单元。对于这些处理单元RR,E,DT,RW或SC中的每一个,为此制定命令字段。走向右侧,例如,用于寄存器读单元RR,执行单元E,数据传送单元DT和寄存器写单元RW的命令字段,而向左侧发送用于直接转移指令的命令字段。直接转移指令在时钟周期内由指令译码器ID和顺序控制器SC执行。直接(绝对)转移指令无延迟地实行。这对于程序结构特别有利,在程序结构中任务和功能借助转移指令经表格实现。通过寄存器读单元RR,从寄存器文件RF中读取命令并发送至执行单元E。从寄存器文件RF读取的数据是进入寄存器SCR和进入寄存器AluSrc1,AluSrc2(两个操作数)的数据。在执行单元E中,所有的算术和逻辑指令均被执行,即所有的加法和减法指令以及所有的逻辑运算。
转移被表示在指令译码器ID的命令CMD中。在这种情况下,对命令CMD0,CMD1,CMD2等等加以区别。此外,还有用于在程序内用于分支的地址确定的另一方案(间接转移)。在该方案中,处理器程序中的分支经相对转移地址(rel.Jump)执行。在这种情况下,新地址由执行单元E形成并经电流信号传输至顺序控制器SC。该转移(相对地址)不在指令译码器ID中编码,而首先在执行单元E中确定。
存在用于填充任务栈TS的命令,并且借助该命令在时钟周期中实现至绝对地址的转移指令,和随后的执行地址进入任务栈TS。
为此的等效移出命令为后继(Next)指令。使用后继指令,经指令译码器ID将命令送给顺序控制器SC,它确保新程序地址由存放在任务栈TS的地址形成。
存在用于填充功能栈FS的命令,并且借助该命令在时钟周期中实现至绝对地址的转移指令NEXT,同时将随后的执行地址存放在功能栈FS。
为此的等效移出命令为返回指令。使用返回指令,借助指令译码器ID将命令送给顺序控制器SC,它确保新程序地址由存放在功能栈FS的地址形成。
在该实施例中,子程序嵌套被限制为2(任务,调用)(见图2)。另一嵌套级可通过附加栈,调用指令和返回指令实现。
图2示出RISC处理器中实施的程序的结构。RISC处理器的程序例如被存储在ROM中。在这种情况下,处理器的程序以这种方式构造,任务调用Tnx只经任务表格TT形成,而另一功能调用Funcx只由任务Tnx形成。为此,指令NEXT的第一返回地址暂时存储在任务栈TS中,而指令RET的第二返回地址暂时存储在功能栈FS中。这种情况下在调用子程序时,第一和第二返回地址NEXT,RET分别由当前地址的链式地址(Folgeadresse)形成(见图3)。因为每个功能Funcx以返回功能RET结束,以及每个任务Tnx以返回任务NEXT结束,所以将确保总存在至任务表格TT的返回。任务和功能的嵌套级1意味着只有一个任务可以被调用。没有其它的功能或任务可以由功能Funcx调用。但是,其它功能可以由任务调用。任务由任务表格TT执行。除了任务调用,任务表格TT还包含SYNC指令。当执行SYNC指令时,处理器被保持直到由硬件产生一SYNC脉冲。当SYNC脉冲到达时,指向任务表格TT内新地址的转移地址由通过硬件施加的时隙号码产生。
第一地址对应于时隙号码TSN。借助如上所述的程序结构,程序运行时持续的闭锁被有效地阻止。
图3示出一程序计数器PCT。该程序计数器PCT为顺序控制器SC的一部分。程序计数器PCT由寄存器RPC,加法器ADD和第一选择开关,例如复用器MU1组成。使用命令CMDn第一复用器MU1被驱动。在命令CMD0的情况下,例如继续,执行或局部存储等简单指令被实现。在CMD1的情况下实现绝对转移,在CMD2的情况下实现至绝对地址的调用,在CMD3的情况下使用绝对地址实现任务调用,在CMD4的情况下由功能栈FS实现返回RET,在CMD5的情况下,通过任务栈TS实现后继指令,以及在CMD6的情况下实现SYNC指令,以及在CMD7的情况下实现相对转移。为了驱动任务栈TS和功能栈FS,命令CMDn首先被馈送给译码器DEC。读/写控制信号由译码器单元DEC中的命令CMDn解码。根据来自译码器单元DEC的控制信号,第一和第二返回地址被存储在任务栈TS和功能栈FS中。经第二选择开关,例如复用器MU2,可在当前程序地址(SYNC=0)和对应于时隙号码TSN的第一地址(SYNC=1)间为SYNC指令(CMD=6)进行选择。
如上所述,顺序控制器SC基本上具有计算和提供下一程序地址PC的任务。存在控制顺序控制器SC的几种可能的方法:
在每个时隙TSN的起始时使用同步脉冲SYNC,在任务表格中在下一SYNC指令CMD6,通过复用器MU1/MU2顺序控制器SC准备分支至任务TS1,TS2…。任务表格TT范围内的地址使用外部施加的时隙号码TSN确定。
使用同步脉冲SYNC,时钟T附加被启动,每个任务TnA,…,Tnx有可能使用其计数器状态以确定,任务是否可以在时隙结束之前运行完。在SYNC指令CMD6的情况下,顺序控制器SC停留在当前地址并等待SYNC脉冲,此后顺序控制器SC根据时隙号码TSN分配一新程序地址。为了实现指令CMD,RISC处理器接收不同的用于任务或功能调用(CMD2(TASK)/CMD3(CALL))和相应的返回(CMD4(NEXT)/CMD5(RET))的指令,以及用于用相关的时隙号码TSN与SYNC脉冲同步的SYNC指令CMD6。为此顺序控制器SC被提供以两个栈寄存器(功能和任务栈)FS,TS用于存储返回地址。