CN201716564U - 高性能可编程控制器专用处理器体系结构 - Google Patents

高性能可编程控制器专用处理器体系结构 Download PDF

Info

Publication number
CN201716564U
CN201716564U CN2010202381679U CN201020238167U CN201716564U CN 201716564 U CN201716564 U CN 201716564U CN 2010202381679 U CN2010202381679 U CN 2010202381679U CN 201020238167 U CN201020238167 U CN 201020238167U CN 201716564 U CN201716564 U CN 201716564U
Authority
CN
China
Prior art keywords
instruction
functional block
redirect
data
registers group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CN2010202381679U
Other languages
English (en)
Inventor
曾舒婷
杨志家
吕岩
谢闯
刘志峰
段茂强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Bowei Polytron Technologies Inc
Original Assignee
Shenyang Institute of Automation of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenyang Institute of Automation of CAS filed Critical Shenyang Institute of Automation of CAS
Priority to CN2010202381679U priority Critical patent/CN201716564U/zh
Application granted granted Critical
Publication of CN201716564U publication Critical patent/CN201716564U/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

本实用新型涉及一种高性能可编程控制器专用处理器体系结构,包括PLC专用指令集处理器、通用处理器,其中PLC专用指令集处理器通过PLC专用集处理器与通用处理器的接口与通用处理器相连;所述PLC专用指令集处理器具有以下结构:指令存储器、指令计数器、指令寄存器、指令译码器、控制单元、功能块单元、功能块寄存器组、数据存储器、寄存器组、位处理器、跳转调用指令及存取指令处理单元、I\O数据存储器、状态寄存器,本实用新型通过设计符合PLC指令特征的PLC专用指令集,减少PLC处理器执行的指令数,加快可编程控制器程序的执行速度,提高了PLC处理器对功能块指令的处理性能。

Description

高性能可编程控制器专用处理器体系结构
技术领域
本实用新型涉及一种应用于自动控制领域中的处理器,具体的说是一种高性能可编程控制器的处理器体系结构。
背景技术
可编程控制器(PLC)是以微处理器为核心,把自动化技术、通信技术融为一体的新型工业自动控制装置。可编程控制器以其可靠性高、抗干扰能力强、实时性强、控制程序可变、体积小、功耗低、使用方便、易维护等特点,广泛应用于工业行业的各个领域,如钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输等。
随着可编程控制器国际标准IEC 61131-3的颁布,可编程控制器在系统结构上,从传统的单机向多处理器发展;在控制系统组态上,从单机控制系统到分布式及过程控制系统发展;在编程语言上,呈多样化及简易化发展,创造了符合控制要求及通信能力的编程环境。由于信息技术的迅猛发展,可编程控制器对工业网络通信能力及实时性要求越来越高。这不仅要求可编程控制器通信能力的提高,而且需求可编程控制器的核心处理器提高其处理性能。
现有自主研发的可编程控制器微处理器,大多采用通用微处理器或者通用处理器和布尔协处理器相结合的形式。通用处理器主要面向字节、字的处理,而可编程控制器指令主要面向比特位操作,占可编程控制器指令使用频率的69%。这就迫切需要推出适合于可编程控制器处理特征的处理器。
实用新型内容
针对现有技术中存在的处理器速度不能充分满足工业自动控制领域有关实时性的要求,本实用新型要解决的技术问题是提供一种能够很好的满足实时性要求的高性能可编程控制器的处理器体系结构。
为解决上述技术问题,本实用新型采用的技术方案是:
本实用新型一种高性能可编程控制器的处理器体系结构,包括PLC专用指令集处理器、通用处理器,其中PLC专用指令集处理器通过PLC专用集处理器与通用处理器的接口与通用处理器相连;
所述PLC专用指令集处理器具有以下结构:指令存储器、指令计数器、指令寄存器、指令译码器、控制单元、功能块单元、功能块寄存器组、数据存储器、寄存器组、位处理器、跳转调用指令及存取指令处理单元、I\O数据存储器、状态寄存器,其中:
指令存储器,存储通用处理器并行编译后的指令,在指令计数器的控制下,将指令发送至指令寄存器;
指令计数器,计算下一条指令地址,实现指令地址的自增,并在跳转调用指令及存取指令处理单元的控制下,按照跳转调用指令中指令地址偏移需求,改变指令地址;在位处理器的控制下,按照可跳转位逻辑运算指令指令地址偏移需求,改变指令地址;将自增后的指令地址、执行跳转调用指令后改变的指令地址及执行可跳转位逻辑运算指令后改变的指令地址,通过指令计数器中指令地址选择,将指令存储器中对应的指令输出至指令寄存器;
指令寄存器,接收指令计数器选择的指令存储器中的指令,输出该指令至指令译码器;
指令译码器,将从指令寄存器输入的指令进行译码后,将操作码输出至位处理器、跳转调用指令及存取指令处理单元、功能块单元,将操作数地址输出至寄存器组、功能块寄存器组、数据存储器及I\O存储器;
控制单元,向指令计数器、指令寄存器、指令译码器发送控制指令;接收指令译码器操作码中的组码,分别对位处理器、跳转调用指令及存取指令处理单元和功能块单元进行控制;并控制与通用处理器进行中断信号的接收或发送;
功能块单元,接收控制单元的控制信号和指令译码器的操作码,与功能块寄存器组进行数据的存取操作;
功能块寄存器组,存储来自功能块单元的执行结果,根据来自跳转调用指令及存取指令处理单元的控制信号及指令译码器对其的操作数地址的选择信号,存取数据存储器的数据,或取出功能块寄存器组的数据,并通过多路选择器送至寄存器组中的累加器堆栈中;
数据存储器,通过跳转调用指令及存取指令处理单元的控制及指令译码器对其操作数地址的选择,存取寄存器组、功能块寄存器组的数据;
寄存器组,通过跳转调用指令及存取指令处理单元的控制及指令译码器传来的操作数地址,选择寄存器组中的寄存器,将该寄存器中的操作数输出至位处理器进行处理;或存取数据存储器及I\O数据存储器中的数据;
位处理器,通过指令译码器的操作码,对来自寄存器组的操作数以及通过多路选择器选择的来自功能块寄存器组、数据存储器、I\O数据存储器并存储在寄存器组累加器堆栈中的数据进行相应处理,并将处理结果存储到寄存器组、状态寄存器、数据存储器或I\O数据存储器中;
跳转调用指令及存取指令处理单元,接收来自控制单元的控制信号,根据指令译码器传来的操作码,分别对指令计数器进行操作,对寄存器组、功能块寄存器组、数据存储器、I\O数据存储器进行存取操作控制;
I\O数据存储器,接收来自跳转调用指令及存取指令处理单元的控制信号以及指令译码器的操作数地址选择信号,与寄存器组、功能块寄存器组以及I\O数据存储器进行数据存取;
状态寄存器,保存位处理器执行后的状态结果,并通过中断方式,将状态信号发送至通用处理器。
功能块单元中每类功能块并行扩展1~16个同类功能块单元,每个功能块具有自己的功能块寄存器组。
所述指令译码器译码使用的指令格式为位逻辑运算指令格式、可跳转位逻辑运算指令格式、跳转调用及存取指令格式以及功能块指令格式,其中:
位逻辑运算指令格式,第31~30位为组码;第29~26位为操作码;第25位用于判断当前位逻辑运算指令的操作数是否存储在累加器堆栈当中;第24位为条件位,用于对通用处理器运算的条件使能,其值决定于存储在状态寄存器中的状态结果;第23~16位,用于存储保存位逻辑运算结果的寄存器地址,其寄存器地址编码位数为8位;第15~8位,用于存储保存位逻辑运算操作数之一的寄存器地址;第7~0位,用于存储保存位逻辑运算另一操作数的寄存器地址。
可跳转位逻辑运算指令格式,第31~30位为组码;第29~26位为操作码;第25位决定是否跳转的条件位;第24位为条件位,用于对通用处理器运算的条件使能,其值决定于状态寄存器的状态结果;第23~8位,为跳转偏移位,其跳转偏移量为该可跳转位逻辑运算指令跳转到可跳转位逻辑运算指令跳转结束符或累加器堆栈中的操作数出栈并求或指令的偏移量;第7~0位,为存储累加器堆栈指针寄存器保存的当前累加器堆栈值的地址;
跳转调用及存取指令格式,第31~30位为组码;第29~26位为操作码;第25位,用于区分跳转调用指令及存取指令,当I=0时,代表跳转调用指令,当I=1时,代表存取指令;第24位,为条件位,用于基于条件位跳转偏移的跳转调用指令,其条件位的值来自于累加器堆栈当前值或功能块单元输出值或来自通用处理器的运算结果,如通用处理器执行比较指令后的比较结果;第23~16位,表示累加器堆栈栈顶地址或寄存器地址;第15~0位,表示跳转调用偏移位或操作数存取地址;
功能块指令格式,第31~30位为组码;第29~26位为操作码;第25位,表示复位优先位或加计数器输入的上升沿触发位;第24位,表示置位优先位或减计数器输入的上升沿触发位;第23位表示复位或时钟电平;第22位,表示装入加减计数器初始值使能位或计时器使能位;第21~11位,表示计数器当前值或计时器当前值;第10~0位,表示计数器予置值或计时器予置值。
所述指令译码器译码使用的指令格式中组码及操作码表示的指令集为位逻辑运算指令集、可跳转位逻辑运算指令集、跳转调用指令集、存取指令集、功能块指令集,其中:
位逻辑运算指令集包括:位与操作指令、位与非操作指令、位或操作指令、位异或操作指令以及位异或非操作指令;
可跳转位逻辑运算指令集包括:位累与操作指令、位累与非操作指令、位累或操作指令、位累或非操作指令、可跳转位逻辑运算指令跳转结束符、累加器堆栈栈顶操作数出栈并求或指令;
跳转调用指令集包括:无条件跳转指令、符合条件跳转指令、不符合条件跳转指令、无条件功能块调用指令、符合条件功能块调用指令、不符合条件功能块调用指令、无条件从功能或功能块返回指令、符合条件功能或功能块返回指令、不符合条件功能或功能块返回指令。
存取指令集包括:
LOADQBIT:取功能块单元的布尔输出值到累加器堆栈中;
STOREQBIT:将功能块单元的布尔输出值存储到功能块寄存器组中;
LOADNQBIT:取功能块单元的输出值后取反输出到累加器堆栈中;
STORENQBIT:将功能块单元的输出值取反存储到功能块寄存器组中;
LOADMBIT:从存储器单元取操作数到寄存器组或功能块寄存器组中;
STOREMBIT:将寄存器组或功能块寄存器组的数据直接存储到存储器单元中;
LOADNMBIT:从存储器单元取操作数取反后存储到寄存器组或功能块寄存器组中;
STORENMBIT:将寄存器组或功能块寄存器组的数据取反后存储到存储器单元中;
LOADIOBIT:从I\O数据存储器直接取数到寄存器组中;
STOREIOBIT:将寄存器组数据直接送到I\O数据存储器中;
LOADNIOBIT:从I\O数据存储器取的数据取反后存储到寄存器组中;
STORENIOBIT:将寄存器组数据取反后送到从I\O数据存储器中;
LOADRMBIT:将寄存器组的内部寄存器的值压栈到累加器堆栈中;
STORERMBIT:将累加器堆栈中的值出栈到寄存器组的内部寄存器中;
LOADNRMBIT:将寄存器组的内部寄存器的值取反压栈到累加器堆栈中;
STORENRMBIT:将累加器堆栈中的值取反出栈到寄存器组的内部寄存器中;
功能块指令集包括:置位优先功能块指令、复位优先功能块指令、上升沿检测功能块指令、下降沿检测功能块指令、加计数器功能块指令、减计数器功能块指令、加减计数器功能块指令、脉冲功能块指令、接通延时功能块指令、断开延时功能块指令、实时时钟功能块指令。
本实用新型具有以下有益效果及优点:
1.本实用新型通过设计符合PLC指令特征的PLC专用指令集,减少PLC处理器执行的指令数,加快可编程控制器程序的执行速度。
2.本实用新型通过设计嵌入在PLC专用指令集处理器中的功能块单元及功能块寄存器组,提高了PLC处理器对功能块指令的处理性能。
3.本实用新型通过设计PLC专用指令集处理器中符合PLC高频数据访问特征的寄存器组、数据存储器、I\O数据存储器的直接存取方式,加快了PLC数据的存取速度。
4.本实用新型通过设计针对PLC大多采用位数据类型的特征,对寄存器组、数据存储器按位编址,提高了PLC专用指令集处理器对位数据存取的速度,相应地提高了PLC专用指令集处理器的处理性能。
附图说明
图1为本实用新型可编程控制器专用处理器的体系结构框图;
图2为本实用新型中可编程控制器专用指令集处理器的体系结构框图;
图3为本实用新型中可编程控制器专用指令集处理器的位处理器框图;
图4为本实用新型中可编程控制器专用指令集处理器的位处理器执行过程图;
图5为本实用新型中可编程控制器专用指令集处理器的可跳转位逻辑运算流程图;
图6为本实用新型中可编程控制器专用指令集处理器的指令计数器;
图7为本实用新型中可编程控制器专用指令集处理器工作流程图。
具体实施方式
本高性能可编程控制器专用处理器,拥有符合可编程控制器特征的专用指令集,并能够实现硬件加速。通过分析可编程控制器指令,设计出专用的可编程控制器指令集,和其相对应的可编程控制器专用处理器的体系结构,使其处理器能够快速处理可编程控制器程序,从而提高的可编程控制器处理性能。
如图1所示,可编程控制器处理器所在片上系统体系结构包括:在高速总线上的可编程控制器处理器、Ethernet MAC 10/100M及高速总线仲裁器;并通过高速/低速总线桥,连接低速总线上的外设,如AD、DA转换器,通用型输入输出接口,计时器,计数器及中断控制器。其中该可编程控制器处理器包括:通用处理器与PLC专用指令集处理器,其接口主要通过中断方式,利用缓冲器实现数据交换。其可编程控制器处理器实施过程如下:通用处理器通过可编程控制器并行编译器,将编译好的数据存储到SRAM中。待PLC专用指令集处理器初始化后,将SRAM中PLC专用指令集处理器的相关数据传输到PLC专用指令集处理器中的指令RAM和数据RAM中。当PLC专用指令集处理器执行到非PLC专用指令集中的指令时,向通用处理器发出中断,并将数据通过缓冲器发送给通用处理器。若PLC专用指令集处理器中的下一条指令与通用处理器将要执行的指令无关时,两处理器可并行执行;否则PLC专用指令集处理器将等待通用处理器执行结果。待通用处理器执行完成后,向PLC专用指令集处理器发出中断,并将数据传输到缓冲器中。
如图2所示,所述PLC专用指令集处理器具有以下结构:指令存储器、指令计数器、指令寄存器、指令译码器、控制单元、功能块单元、功能块寄存器组、数据存储器、寄存器组、位处理器、跳转调用指令及存取指令处理单元、I\O数据存储器、状态寄存器,其中:
指令存储器,存储通用处理器并行编译后的指令,在指令计数器的控制下,将指令发送至指令寄存器;
指令计数器,计算下一条指令地址,实现指令地址的自增,并在跳转调用指令及存取指令处理单元的控制下,按照跳转调用指令中指令地址偏移需求,改变指令地址;在位处理器的控制下,按照可跳转位逻辑运算指令指令地址偏移需求,改变指令地址;将自增后的指令地址、执行跳转调用指令后改变的指令地址及执行可跳转位逻辑运算指令后改变的指令地址,通过指令计数器中指令地址选择,将指令存储器中对应的指令输出至指令寄存器;
指令寄存器,接收指令计数器选择的指令存储器中的指令,输出该指令至指令译码器;
指令译码器,将从指令寄存器输入的指令进行译码后,将操作码输出至位处理器、跳转调用指令及存取指令处理单元、功能块单元,将操作数地址输出至寄存器组、功能块寄存器组、数据存储器及I\O存储器;
控制单元,向指令计数器、指令寄存器、指令译码器发送控制指令;接收指令译码器操作码中的组码,分别对位处理器、跳转调用指令及存取指令处理单元和功能块单元进行控制;并控制与通用处理器进行中断信号的接收或发送;
功能块单元,接收控制单元的控制信号和指令译码器的操作码,与功能块寄存器组进行数据的存取操作;
功能块寄存器组,存储来自功能块单元的执行结果,根据来自跳转调用指令及存取指令处理单元的控制信号及指令译码器对其的操作数地址的选择信号,存取数据存储器的数据,或取出功能块寄存器组的数据,并通过多路选择器送至寄存器组中的累加器堆栈中;
数据存储器,通过跳转调用指令及存取指令处理单元的控制及指令译码器对其操作数地址的选择,存取寄存器组、功能块寄存器组的数据;
寄存器组,通过跳转调用指令及存取指令处理单元的控制及指令译码器传来的操作数地址,选择寄存器组中的寄存器,将该寄存器中的操作数输出至位处理器进行处理;或存取数据存储器及I\O数据存储器中的数据;
位处理器,通过指令译码器的操作码,对来自寄存器组的操作数以及通过多路选择器选择的来自功能块寄存器组、数据存储器、I\O数据存储器并存储在寄存器组累加器堆栈中的数据进行相应处理,并将处理结果存储到寄存器组、状态寄存器、数据存储器或I\O数据存储器中;
跳转调用指令及存取指令处理单元,接收来自控制单元的控制信号,根据指令译码器传来的操作码,分别对指令计数器进行操作,对寄存器组、功能块寄存器组、数据存储器、I\O数据存储器进行存取操作控制。
I\O数据存储器,接收来自跳转调用指令及存取指令处理单元的控制信号以及指令译码器的操作数地址选择信号,与寄存器组、功能块寄存器组以及I\O数据存储器进行数据存取;
状态寄存器,保存位处理器执行后的状态结果,并通过中断方式,将状态信号发送至通用处理器。
为了实现PLC专用指令集处理器,本实用新型设计了符合可编程控制器特征的专用指令格式和指令集,其中指令格式为位逻辑运算指令格式、可跳转位逻辑运算指令格式、跳转调用及存取指令格式以及功能块指令格式共四种,具体为:
(1)位逻辑运算指令格式(表1),第31~30位为组码;第29~26位为操作码,操作码有四位,其可编程控制器指令表语言中的位逻辑运算指令有AND、ANDN、OR、ORN、XOR、XORN,对应的可编程控制器专用指令集处理器指令集中的指令为ANDBIT、ANDNBIT、ORBIT、ORNBIT、XORBIT、XORNBIT;第25位用于判断当前位逻辑运算指令的操作数是否存储在累加器堆栈当中,若不在累加器堆栈中,一般此指令为可跳转位逻辑运算指令后一个位逻辑运算指令,其运算结果将保存在累加器堆栈中;第24位为条件位,用于对通用处理器相关运算的条件使能,其值决定于状态寄存器的状态值;第23~16位,用于存储保存位逻辑运算结果的寄存器地址,其寄存器地址编码位数为8位;第15~8位,用于存储保存位逻辑运算操作数之一的寄存器地址(可以为寄存器组中的内部寄存器地址、累加器堆栈指针中保存的累加器堆栈地址);第7~0位,用于存储保存位逻辑运算另一操作数的寄存器地址(可以为寄存器组中的内部寄存器地址、累加器堆栈指针中保存的累加器堆栈地址)。
(2)可跳转位逻辑运算指令格式(表2),其组码为01,其可编程控制器指令表语言中的指令包括:AND(、OR、ANDN(、ORN(、)、ORLD,对应的可编程控制器专用指令集处理器指令集中的指令为ANDCRBIT、ORCRBIT、ANDNCRBIT、ORNCRBIT、CR、PUSHOR;第25位为跳转条件位,即该可跳转位逻辑运算指令满足跳转条件,如指令为ANDCRBIT时,且累加器堆栈当前值为0时,ANDCRBIT指令后的位逻辑运算不用执行,并跳转到、可跳转位逻辑运算指令跳转结束符CR指令,其可跳转位逻辑运算流程图(图5)表明了详细执行流程;第24位为条件位,用于对通用处理器相关运算的条件使能,其值决定于状态寄存器的状态信号;第23~8位,为跳转偏移量,即偏移到可编程控制器专用指令集中CR及PUSHOR指令;第7~0位,为存储累加器堆栈指针寄存器保存的当前累加器堆栈值的地址。
(3)跳转调用及存取指令格式(表3),第31~30位为组码,其组码为10;第29~26位为操作码;第25位,用于区分跳转调用指令及存取指令,当I=0时,代表指令为跳转调用指令,其可编程控制器指令表语言中的指令包括JMP、JMPC、JMPCN、CALL、CALLC、CALLCN、RET、RETC、RETCN,对应的可编程控制器专用指令集处理器指令集中的指令为JMPBIT、JMPCBIT、JMPCNBIT、CALBIT、CALCBIT、CALCNBIT、RETBIT、RETCBIT、RETCNBIT;当I=1时,其可编程控制器指令表语言中的指令包括:LD、LDN、ST、STN,对应的可编程控制器专用指令集处理器指令集中的指令依据存取类型分为LOADBIT、LOADNBIT、STOREBIT、STORENBIT、LOADMBIT、STOREMBIT、LOADNMBIT、STORENMBIT、LOADIOBIT、STOREIOBIT、LOADNIOBIT、STORENIOBIT、LOADRMBIT、LOADNRMBIT、STORERMBIT、STORENRMBIT;第24位,为条件位,用于基于条件位跳转偏移的跳转调用指令,其条件位的值来自于累加器堆栈当前值或功能块单元输出值或来自通用处理器的运算结果,如通用处理器执行比较指令后的比较结果;第23~16位,表示累加器堆栈栈顶地址或寄存器地址;第15~0位,表示跳转调用偏移位或操作数存取地址;
(4)功能块指令格式(表4)。功能块分为触发器、边沿检测、计数器、定时器,它有自身的功能块单元寄存器组。第31~30位为组码,其指令的组码为11;第29~26位为操作码,其可编程控制器指令表语言中的指令包括SR、RS、R_TRIG、F_TRIG、CTU、CTD、CTUD、TP、TON、TOF、RTC,对应的可编程控制器专用指令集处理器指令集中的指令为FB SR、FBRS、FB_R TRIG、FBF_TRIG、FB CTU、FB CTD、FB CTUD、FB TP、FB TON、FB TOF、FB RTC;第25位,表示复位优先位或加计数器输入的上升沿触发位;第24位,表示置位优先位或减计数器输入的上升沿触发位;第23位表示复位或时钟电平;第22位,表示装入加减计数器初始值使能位或计时器使能位;第21~11位,表示计数器当前值或计时器当前值;第10~0位,表示计数器予置值或计时器予置值。
指令集共五种,具体如下:
(1)位逻辑运算指令集包括:位与操作指令、位与非操作指令、位或操作指令、位异或操作指令以及位异或非操作指令;该指令集依据操作数来源分为两类:第一、操作数有一方是来自累加器堆栈,另一方来自寄存器组,如ANDBIT CR,RS,Rm;第二、操作数两方都来自寄存器组,此位逻辑运算指令主要位于可跳转位逻辑运算后的第一个位逻辑运算,如ANDBIT RS1,RS2,Rm。该指令集依据指令结果存储地址分为两类:第一、结果存储在累加器堆栈中,如ANDBIT RS1,R2,CR;第二、结果存储在寄存器组的内部寄存器当中,如ANDBIT RS1,RS2,Rm。
(2)可跳转位逻辑运算指令集(表6),位累与操作指令、位累与非操作指令、位累或操作指令、位累或非操作指令、可跳转位逻辑运算指令跳转结束符、累加器堆栈栈顶操作数出栈并求或指令;依据是否为位逻辑运算指令,分两类,第一类、位逻辑运算指令:ANDCRBIT、ANDNCRBIT、ORCRBIT、ORNCRBIT;第二类、可跳转位逻辑运算指令的结束符——CR或PUSHOR。依据符合IEC_61131-3标准的可编程控制器指令表编程语言指令-ORLD,对应的可编程控制器专用指令集指令为PUSHOR,用于对前几项操作数输入指令LD或LDN输入到累加器堆栈中的值进行或运算,并将运算的值输入返回累加器堆栈当中。
(3)跳转调用指令集(表7),包括无条件跳转指令、符合条件跳转指令、不符合条件跳转指令、无条件功能块调用指令、符合条件功能块调用指令、不符合条件功能块调用指令、无条件从功能或功能块返回指令、符合条件功能或功能块返回指令、不符合条件功能或功能块返回指令。依据是否带条件位分为两类,第一类、带条件位,包括JMPCBIT、JMPCNBIT、CALCBIT、CALCNBIT、RETCBIT、RETCNBIT;第二类、不带条件位,包括JMPBIT、CALBIT、RETBIT。
(4)存取指令(表8),依据存取地址分为三类,第一类、取数地址为功能块存储单元,其指令包括:LOADQBIT、LOADNQBIT、STOREQBIT、STORENQBIT;第二类、存取数地址为存储器,其指令包括:LOADMBIT、STOREMBIT、LOADNMBIT、STORENMBIT;第三类、存取数地址为I\O端口,其指令包括:LOADIOBIT、STOREIOBIT、LOADNIOBIT、STORENIOBIT;第四类、存取数地址为内部寄存器,其指令包括:LOADRMBIT、LOADNRMBIT、STORERMBIT、STORENRMBIT。
存取指令集包括:
LOADQBIT:取功能块单元的布尔输出值到累加器堆栈中;
STOREQBIT:将功能块单元的布尔输出值存储到功能块寄存器组中;
LOADNQBIT:取功能块单元的输出值后取反输出到累加器堆栈中;
STORENQBIT:将功能块单元的输出值取反存储到功能块寄存器组中;
LOADMBIT:从存储器单元取操作数到寄存器组或功能块寄存器组中;
STOREMBIT:将寄存器组或功能块寄存器组的数据直接存储到存储器单元中;
LOADNMBIT:从存储器单元取操作数取反后存储到寄存器组或功能块寄存器组中;
STORENMBIT:将寄存器组或功能块寄存器组的数据取反后存储到存储器单元中;
LOADIOBIT:从I\O数据存储器直接取数到寄存器组中;
STOREIOBIT:将寄存器组数据直接送到I\O数据存储器中;
LOADNIOBIT:从I\O数据存储器取的数据取反后存储到寄存器组中;
STORENIOBIT:将寄存器组数据取反后送到从I\O数据存储器中;
LOADRMBIT:将寄存器组的内部寄存器的值压栈到累加器堆栈中;
STORERMBIT:将累加器堆栈中的值出栈到寄存器组的内部寄存器中;
LOADNRMBIT:将寄存器组的内部寄存器的值取反压栈到累加器堆栈中;
STORENRMBIT:将累加器堆栈中的值取反出栈到寄存器组的内部寄存器中;
(5)功能块指令集(表9),包括置位优先功能块指令、复位优先功能块指令、上升沿检测功能块指令、下降沿检测功能块指令、加计数器功能块指令、减计数器功能块指令、加减计数器功能块指令、脉冲功能块指令、接通延时功能块指令、断开延时功能块指令、实时时钟功能块指令;按功能分为三大类,第一类、置位复位功能;第二类、边沿检测功能;第三类、计数器功能;第四类、计时器功能。
为提高可编程控制器程序执行速度,本实用新型设计的可编程控制器专用指令集处理器体系结构,通过对可跳转位逻辑运算指令的处理,可加速可编程控制器专用指令集处理器对位逻辑运算指令的操作;并可在处理器内执行功能块指令,节省了对其输入输出数据的存取时间,提高了可编程控制器专用指令集处理器的实时性与精确度;其寄存器组,针对该可编程控制器专用指令集处理器处理开关量数据的特点,采用位编址方式,能够加快数据存取的速度;针对功能块指令数据的特征,另外设计了功能块寄存器组;数据存储器针对该可编程控制器专用指令集处理器的数据特征,分别对开关量数据及功能块数据进行编址。该可编程控制器专用指令集处理器包括:指令存储器、指令计数器、指令寄存器、指令译码器、控制单元、功能块单元、功能块寄存器组、数据存储器、寄存器组、位处理器、跳转调用指令及存取指令处理单元、I\O数据存储器;该处理器采用四级流水线,取指、译码、执行、回写。
(1)指令存储器,其指令存储容量设定为64KB;因指令格式采用32位,则一条指令需要一个字的单元存储,该指令存储器则可存储211条指令;该指令存储器采用小端方式存储,即低地址存储低端数据,高地址存储高端数据。
(2)指令计数器(图6),该指令计数器中当前PC值分为三类:第一,当前PC值为下一条指令地址,即当前PC值=上一条指令地址+4;第二,当遇到可跳转位逻辑运算指令,则当前PC值=上一条指令地址+跳转偏移量;第三,当遇到跳转调用指令时,则当前PC值=上一条指令地址+跳转调用偏移量。其可跳转位逻辑指令的处理流程图如图5所示,由指令译码器向位处理器输入组码,位处理器通过组码识别是否为可跳转位逻辑指令;
(3)控制单元,控制可编程控制专用指令集处理器的四个流水阶段,即在取指阶段,控制指令计数器的操作;在译码阶段,控制指令译码器的操作;在执行阶段,接收指令译码器操作码中的组码,分别对位处理器、跳转调用指令及存取指令处理单元和功能块单元进行控制;并控制与通用处理器进行中断信号的接收或发送;在回写阶段,控制跳转调用指令及存取指令处理单元和功能块单元中存取指令的回写操作。
(4)功能块单元,该功能块单元主要处理功能块指令,如置位优先功能块指令、复位优先功能块指令、上升沿检测功能块指令、下降沿检测功能块指令、加计数器功能块指令、减计数器功能块指令、加减计数器功能块指令、脉冲功能块指令、接通延时功能块指令、断开延时功能块指令、实时时钟功能块指令;其功能块单元中每类功能块可并行处理1~16个相同功能块,符合可编程控制器程序需执行多个功能块指令的特征;功能块单元与功能块寄存器组相连,可节约数据存取时间,提高可编程控制器计时器的准确度及可编程控制器程序执行速度;该功能块单元输入信号有来自控制单元的控制信号;及来自指令译码器的信号,包括:操作码OP[3:0],置位优先的信号S1、复位优先信号R1、置位信号S、复位信号R、时钟信号CLK、加计数器上升沿触发信号CU、减计数器上升沿触发信号CD、装入加计数器LDU初始数使能信号、减计数器初始数使能信号LDD、加减计数器初始数使能信号LDUD、脉冲功能块使能信号INTP、接通延时功能块使能信号INTON、断开延时功能块使能信号INTOF、实时时钟功能块使能信号INRTC;有来自功能块寄存器组的信号,包括:计数器予置值PV[7:0]、计时器予置值PT[7:0]、实时时钟予置值PDT[7:0];其功能块输出信号为输出到功能块寄存器组的信号,信号包括:当前计数器值CV[7:0]、计时器结束时间ET[7:0]、实时时钟当前日期和时间CDT[7:0]。
(5)功能块寄存器组,该寄存器组分为四类,包括触发器功能块寄存器、边沿检测功能块寄存器、计数器功能块寄存器、计时器功能块寄存器;每类功能块可最多并行存储十六个同类功能块数据;该寄存器组可存储的数据包括:各功能块的输入信号与输出信号;该寄存器组可以以位或字节的方式存取数据;当该寄存器组有一功能块寄存器数据满时,可以请求外设功能块单元执行,并与数据存储器进行数据传输;其编址方式,如表10所示,共用11位对寄存器组进行编址,通过第10~9位寻址功能块类型,第8~5位寻址第几个功能块单元,第4位用于对寄存器组数据存取方式编址,第3~0位寻址输入输出数据。
(6)数据存储器,其存储总容量为64KB,分为输入存储器、输出存储器、内部存储器及功能块存储器。该存储器通过十六位编址对这四种存储器寻址。输入、输出、内部存储器主要存储位数据,功能块存储器主要存储内部及外设功能块的输入输出数据,每类功能块数据可并行存储256个。下面是对输入、输出及内部存储器的编址方式:第15位用于区别输入、输出、内部存储器和功能块存储器,其值为零是则为输入、输出、内部存储器;第14~13位用于对输入、输出及内部存储器编址,输入存储器编码为00、输出存储器编码为01、内部存储器编码为10;第12~3位用于对各存储器字节寻址,第2~0位用于对存储器位寻址。对功能块存储器编址(表11),第15位,其值为1,表示对功能块存储器寻址;第14~13位用于对四类功能块的寻址,触发器编址为00、边沿检测编址为01、计数器编址为10、计时器编址为11;第12~5位主要对指定第几个功能块数据寻址;第4位主要表示对存储数据的寻址方式,如为位数据时,则对一个字节的位进行寻址;第3~0位表示要各输入输出数据的编址。
(7)寄存器组,该寄存器组分为输入寄存器、内部寄存器、状态寄存器、累加器堆栈、累加器堆栈指针寄存器、指令寄存器。将寄存器组分为三类进行编址,第一类为输入、内部寄存器;第二类为状态寄存器、累加器堆栈及累加器指针寄存器;第三类为指令寄存器。对第一类寄存器编址如下:第7~6位表示对三类寄存器的编址,第一类寄存器编址为00;第5位表示对输入、内部寄存器的编址,输入寄存器编址为0,内部寄存器编址为1;第4~3表示对字节寻址;第2~0表示对位寻址。对第二类寄存器编址如下:第7~6位,第二类寄存器编址为01;第5位表示对状态寄存器、累加器堆栈的编址,累加器堆栈编址为0,状态寄存器编址为1;第4~3表示对字节寻址;第2~0表示对位寻址。特别地规定该第二类寄存器编址中第4~3位编址为00的字节存放累加器堆栈指针寄存器数据,即为累加器堆栈指针寄存器,则累加器堆栈指针寄存器地址为01000000。对第三类寄存器编址如下:第7~6位,第三类寄存器编址为01;第5~0表示对字节寻址,即可寻址32个字节,又指令格式为32位,占4个字节,则指令寄存器可存储八条指令;
(8)位处理器(如图3所示),该位处理器特征是采用累加器堆栈的形式存储操作数,由于位处理器经常要用到前一次甚至前几次累加器堆栈中的操作数,采用符合位处理器执行特征的堆栈形式保存操作数,并通过累加器堆栈指针寄存器中的地址来区别当前操作数与前几次操作数。该位处理器处理位逻辑运算指令及可跳转位逻辑运算指令;采用累加器堆栈的形式存储位处理器所需操作数及其运算结果;其累加器堆栈栈顶值来自寄存器组、功能块寄存器组、I\O数据存储器及位处理器运算结果;当位处理器执行位逻辑运算指令时,从累加器堆栈栈顶或寄存器组中取操作数后,进行位逻辑运算操作,将运算结果存储到累加器堆栈栈顶或寄存器组中。当位处理器执行可跳转位逻辑运算指令时,若该可跳转位逻辑运算指令为位累与运算指令、位累与非运算指令、位累或运算指令、位累或非运算指令,且满足跳转条件时,位处理器将跳转偏移量发送至指令计数器中,并执行相应的位逻辑运算,将运算结果保存在累加器堆栈栈顶。位处理器的运算结果,经跳转调用指令及存取指令处理单元执行存取指令后,分别存储在状态寄存器、数据存储器、寄存器组中的内部寄存器以及I\O数据存储器当中。
如图4所示,位处理器处理位逻辑运算指令及可跳转位逻辑运算指令包括以下步骤:
位处理器处理位逻辑运算指令及可跳转位逻辑运算指令;采用累加器堆栈的形式存储位处理器所需操作数及其运算结果;其累加器堆栈栈顶值来自寄存器组、功能块寄存器组、I\数据存储器及位处理器运算结果;
当位处理器执行位逻辑运算指令时,从累加器堆栈栈顶或寄存器组中取操作数后,进行位逻辑运算操作,将运算结果存储到累加器堆栈栈顶或寄存器组中;
执行完成后存储位处理器的运算结果;
当位处理器执行可跳转位逻辑运算指令时,按可跳转位逻辑运算指令的执行过程执行,执行完成后存储位处理器的运算结果;
如图5所示,跳转位逻辑运算指令的执行过程为:
如果是可跳转位逻辑指令,则指令译码器向位处理器输入操作码;
由位处理器器判断该可跳转位逻辑指令是否为位累与操作指令、位累与非操作指令、位累或操作指令、位累或非操作指令;
若为位累与操作指令,且累加器堆栈的栈顶值为0,则执行与操作,将与运算结果“0”存储在累加器堆栈的栈顶,并设置指令格式中jump condition跳转条件位为1,设置jump offset跳转偏移量值为可跳转位逻辑运算指令跳转结束符与该位累与操作指令的偏移量;若为位累与操作指令,但不满足累加器堆栈的栈顶值为0,则只执行与操作,将执行结果存储在累加器堆栈中,其跳转条件位为0,不执行跳转操作。
若为位累与非操作指令,且累加器堆栈的栈顶值为0,则执行与非操作,将与非运算结果“1”存储在累加器堆栈的栈顶,并设置指令格式中jumpcondition跳转条件位为1,设置jump offset跳转偏移量值为可跳转位逻辑运算指令跳转结束符到该位累与非操作指令的偏移量;若为位累与非操作指令,但不满足累加器堆栈的栈顶值为0,则只执行与非操作,将执行结果存储在累加器堆栈中,其跳转条件位为0,不执行跳转操作。
若为位累或操作指令,且累加器堆栈的栈顶值为1,则执行或操作,将或运算结果“1”存储在累加器堆栈的栈顶,并设置指令格式中jump condition跳转条件位为1,设置jump offset跳转偏移量值为可跳转位逻辑运算跳转结束符指令或累加器堆栈中的操作数出栈并求或指令到该位累或操作指令的偏移量;若为位累与操作指令,但不满足累加器堆栈的栈顶值为1,则只执行或操作,将执行结果存储在累加器堆栈中,其跳转条件位为0,不执行跳转操作。
若为位累或非操作指令,且累加器堆栈的栈顶值为1,则执行或非操作,将或非运算结果“0”存储在累加器堆栈的栈顶,并设置指令格式中jumpcondition跳转条件位为1,设置jump offset跳转偏移量值为可编程控制器可跳转位逻辑运算跳转结束符到该位累或非操作指令的偏移量;若为位累与操作指令,但不满足累加器堆栈的栈顶值为1,则只执行或非操作,将执行结果存储在累加器堆栈中,其跳转条件位为0,不执行跳转操作。
如图7所示,本实用新型高性能可编程控制器专用指令集处理器体系结构的实现方法按照该可编程控制器指令集处理器的四级流水线方式,包括以下步骤:
取指阶段:依据指令计数器计算的指令地址,从指令存储器取指令至指令寄存器当中;
译码阶段:从指令寄存器取出指令送入指令译码器进行译码,通过指令中操作数地址,取出操作数;并依据指令中组码,将相应的操作码及操作数送至对应的处理单元中;
执行阶段:依据指令译码器发出的操作码及操作数,位处理器、功能块单元、跳转调用指令及存取指令处理单元给予相应处理;如执行的指令不是可编程控制器专用指令集处理器的指令时,则由控制单元向通用处理器发出中断请求,该可编程控制器专用指令集处理器可继续执行与通用处理器指令无依赖关系的指令,当通用处理器向可编程控制器专用指令集处理器发送中断请求时,可编程控制器专用指令集处理器将保存通用处理器的执行结果到状态寄存器中;另外存储器访问阶段与执行阶段合为一个流水线阶段,由跳转调用指令及存取指令处理单元执行存储器访问;
回写阶段:将可编程控制器专用指令集处理器的结果,依据存取指令类型写回累加器堆栈、内部寄存器、数据存储器内部寄存器或I\O存储器当中。
  GP   OP   CRYN   condtion   Rm\CR   CR   Rs2\Rm
  组码2位(00)   操作码4位   1位   1位   Address占1字节   Address1字节   Address占1字节
  31…30   29…26   25   24   23…16   15……8   7……0
表1
  GP   OP   Jump condition   condition   Jump offset   CR
  组码2位(01)   操作码4位   1位   1位   16位   Address占1字节
  31…30   29…26   25   24   23………8   7……0
表2
Figure BSA00000157267400151
表3
  GP   OP   R1/CU   S1/CD   R/CLK   S/LD/IN   Rd1   Rs1
  组码2位(11)   操作码4位   复位优先/加计数器输入的上升沿触发   置位优先/减计数器输入的上升沿触发   时钟   装入加减计数器初始数使能/计时器使能   CV\CDT\ET计数器当前值INT\当前的日期和时间DT   PV\PT\PDT\予置计数器、计时器值INT
  31..30   29…26   25   24   23   22   21……11   10……0
表4
 操作符   操作码编码   描述   举例
 ANDBIT   000000   位与操作   ANDBIT CR,RS,RmANDBIT RS1,RS2,Rm/*将该指令结果保存在累加器堆栈中*/ANDBIT RS1,RS2,CR/*该指令为可跳转位逻辑指令后的位逻辑运算指令,其计算结果保存在累加器堆栈中*/ANDBIT RS1,CR/*操作数来自累加器堆栈,结果保存在累加器堆栈中*/
 ANDNBIT   000001   位与非操作   ANDNBIT CR,RS,RmANDNBIT RS1,RS2,RmANDNBIT RS1,RS2,CR/*该指令为可跳转位逻辑指令后的位逻辑运算指令,其计算结果保存在累加器堆栈中*/ANDNBIT RS1,CR
 ORBIT   000010   位或操作   ORBIT CR,RS,RmORBIT RS1,RS2,RmORBIT RS1,RS2,CR/*该指令为可跳转位逻辑指令后的位逻辑运算指令,其计算结果保存在累加器堆栈中*/ORBIT RS1,CR/*操作数来自累加器堆栈,结果保存在累加器堆栈中*/
 ORNBIT   000011   位或非操作   ORNBIT CR,RS,RmORNBIT RS1,RS2,RmORNBIT RS1,RS2,CR/*该指令为可跳转位逻辑指令后的位逻辑运算指令,其计算结果保存在累加器堆栈中*/ORNBIT RS1,CR
 XORBIT   000100   异或操作   XORBIT CR,RS,RmXORBIT RS1,RS2,RmXORBIT RS1,RS2,CR/*该指令为可跳转位逻辑指令后的位逻辑运算指令,其计算结果保存在累加器堆栈中*/XORBIT RS1,CR/*操作数来自累加器堆栈,结果保存在累加器堆栈中*/
 XORNBIT   000101   位异或非操作   XORNBIT CR,RS,RmXORNBIT RS1,RS2,RmXORNBIT RS1,RS2,CR/*该指令为可跳转位逻辑指令后的位逻辑运算指令,其计算结果保存在累加器堆栈中*/XORNBIT RS1,CR
表5
  操作符   操作码编码   描述  举例
  ANDCRBIT   010000   位累与操作  ANDCRBIT
  ANDNCRBIT   010001   位累与非操作  ANDNCRBIT
  ORCRBIT   010010   位累或操作  ORCRBIT
  ORNCRBIT   010011   位累或非操作  ORNCRBIT
  CR   010100   ANDCRBIT等可跳转位逻辑运算指令跳转结束符  CR
  PUSHOR   010101   累加器堆栈栈顶操作数出栈并求或  PUSHOR
表6
  操作符   操作码编码   描述   举例
  JMPBIT   1000000   无条件跳转指令   JMPBIT STATE/*无条件跳转到哪个状态*/
  JMPCBIT   1000010   符合条件跳转指令   JMPCBIT STATE/*符合某个条件则跳转到哪个状态*/
  JMPCNBIT   1000100   不符合条件跳转指令   JMPCNBIT STATE/*不符合某个条件则跳转到哪个状态*/
  CALBIT   1000110   无条件功能块调用指令   CALBIT Counter/*无条件调用计数器功能块*/
  CALCBIT   1001000   符合条件功能块调用指令   CALCBIT Counter/*符合条件则调用计数器功能块*/
  CALCNBIT   1001010   不符合条件功能块调用指令   CALCNBIT Counter/*不符合条件则调用计数器功能块*/
  RETBIT   1001100   无条件从功能或功能块返回指令   RET
  RETCBIT   1001110   符合条件功能或功能块返回指令   RETC
  RETCNBIT   1010000   不符合条件功能或功能块返回指令   RETCN
表7
  操作符   操作码编码   描述   举例
  LOADQBIT   1000001   取功能块单元的布尔输出值到累加器堆栈中   LOADQBIT Q,CR
  STOREQEBIT   1000011   将功能块单元的输出值存储到寄存器组中;   STOREQBIT Q,[mem]/Rm
  LOADNQBIT   1000101   取功能块单元的输出值后取反到累加器堆栈中   LOADNQBIT Q,CR
  STORENQBIT   1000111   将功能块单元的输出值取反存储到寄存器组中;   STORENQBIT Q,[mem]/Rm
  LOADMBIT   1001001   从存储器单元取操作数到寄存器组由   LOADMBIT[mem],Rs1/CR/*从存储器中获取操作数*/
  STOREMBIT   1001011   将寄存器数据直接存储到存储器单元中   STOREMBIT Rm/CR,[mem]/*数据存储到存储器当中*/
  LOADNMBIT   1001101   从存储器单元取操作数取反后存储到寄存器组中   LOADNMBIT[mem],CR/*从存储器中获取操作数*/
  STORENMBIT   1001111   将寄存器数据取反后存储到存储器单元中   STORENMBIT Rm/CR,[mem]/*数据存储到存储器当中*/
  LOADIOBIT   1010001   从I\O数据存储器直接取数到寄存器组中   LOADIOBIT[I/O],CR/*取IO数据到寄存器*/
  STOREIOBIT   1010011   将寄存器组数据直接送到I\O数据存储器中   STOREIOBIT Rm/CR,[I/O]/*取寄存器数据到IO端口*/
  LOADNIOBIT   1010101   从I\O数据存储器取的数据取反后存储到寄存器组中   LOADNIOBIT[I/O],Rs1/*取IO数据到寄存器*/
  STORENIOBIT   1010111   将寄存器组数据取反后送到从I\O数据存储器中   STORENIOBIT Rm/CR,[I/O]/*取寄存器数据到IO端口*/
  LOADRMBIT   1011001   将寄存器组的内部寄存器的值压栈到累加器堆栈中   LOADRMBIT Rm,CR
  STORERMBIT   1011011   将累加器堆栈中的值出栈到寄存器组的内部寄存器中   STORERMBIT CR,Rm
  LOADNRMBIT   1011101   将寄存器组的内部寄存器的值取反压栈到累加器堆栈中   LOADNRMBIT Rm,CR
  STORENRMBIT   1011111   将累加器堆栈中的值取反出栈到寄存器组的内部寄存器中   STORENRMBIT CR,Rm
表8
  操作符   操作码编码   描述   举例
  FB SR   110000   置位优先功能块指令   FB SR function block name.S
  FB RS   110001   复位优先功能块指令   FB RS function block name.S
  FB R_TRIG   110010   上升沿检测功能块指令   FB R_TRIG function block name.clk
  FB F_TRIG   110011   下降沿检测功能块指令   FB F_TRIG function block name.clk
  FB CTU   110100   加计数器功能块指令   FB CTU function block name.PV
  FB CTD   110101   减计数器功能块指令   FB CTD function block name.PV
  FB CTUD   110110   加减计数器功能块指令   FB CTUD function block name.PV
  FB TP   110111   脉冲功能块指令   FB TP function block name.PT
  FB TON   111000   接通延时功能块指令   FB TON function block name.PT
  FB TOF   111001   断开延时功能块指令   FB TOF function block name.PT
  FB RTC   111010   实时时钟功能块指令   FB RTC function block name.PT
表9
Figure BSA00000157267400201
表10
Figure BSA00000157267400211
表11

Claims (4)

1.一种高性能可编程控制器的处理器体系结构,其特征在于:包括PLC专用指令集处理器、通用处理器,其中PLC专用指令集处理器通过PLC专用集处理器与通用处理器的接口与通用处理器相连;
所述PLC专用指令集处理器具有以下结构:指令存储器、指令计数器、指令寄存器、指令译码器、控制单元、功能块单元、功能块寄存器组、数据存储器、寄存器组、位处理器、跳转调用指令及存取指令处理单元、I\O数据存储器、状态寄存器,其中:
指令存储器,存储通用处理器并行编译后的指令,在指令计数器的控制下,将指令发送至指令寄存器;
指令计数器,计算下一条指令地址,实现指令地址的自增,并在跳转调用指令及存取指令处理单元的控制下,按照跳转调用指令中指令地址偏移需求,改变指令地址;在位处理器的控制下,按照可跳转位逻辑运算指令指令地址偏移需求,改变指令地址;将自增后的指令地址、执行跳转调用指令后改变的指令地址及执行可跳转位逻辑运算指令后改变的指令地址,通过指令计数器中指令地址选择,将指令存储器中对应的指令输出至指令寄存器;
指令寄存器,接收指令计数器选择的指令存储器中的指令,输出该指令至指令译码器;
指令译码器,将从指令寄存器输入的指令进行译码后,将操作码输出至位处理器、跳转调用指令及存取指令处理单元、功能块单元,将操作数地址输出至寄存器组、功能块寄存器组、数据存储器及I\O存储器;
控制单元,向指令计数器、指令寄存器、指令译码器发送控制指令;接收指令译码器操作码中的组码,分别对位处理器、跳转调用指令及存取指令处理单元和功能块单元进行控制;并控制与通用处理器进行中断信号的接收或发送;
功能块单元,接收控制单元的控制信号和指令译码器的操作码,与功能块寄存器组进行数据的存取操作;
功能块寄存器组,存储来自功能块单元的执行结果,根据来自跳转调用指令及存取指令处理单元的控制信号及指令译码器对其的操作数地址的选择信号,存取数据存储器的数据,或取出功能块寄存器组的数据,并通过多路选择器送至寄存器组中的累加器堆栈中;
数据存储器,通过跳转调用指令及存取指令处理单元的控制及指令译码器对其操作数地址的选择,存取寄存器组、功能块寄存器组的数据;
寄存器组,通过跳转调用指令及存取指令处理单元的控制及指令译码器传来的操作数地址,选择寄存器组中的寄存器,将该寄存器中的操作数输出至位处理器进行处理;或存取数据存储器及I\O数据存储器中的数据;
位处理器,通过指令译码器的操作码,对来自寄存器组的操作数以及通过多路选择器选择的来自功能块寄存器组、数据存储器、I\O数据存储器并存储在寄存器组累加器堆栈中的数据进行相应处理,并将处理结果存储到寄存器组、状态寄存器、数据存储器或I\O数据存储器中;
跳转调用指令及存取指令处理单元,接收来自控制单元的控制信号,根据指令译码器传来的操作码,分别对指令计数器进行操作,对寄存器组、功能块寄存器组、数据存储器、I\O数据存储器进行存取操作控制;
I\O数据存储器,接收来自跳转调用指令及存取指令处理单元的控制信号以及指令译码器的操作数地址选择信号,与寄存器组、功能块寄存器组以及I\O数据存储器进行数据存取;
状态寄存器,保存位处理器执行后的状态结果,并通过中断方式,将状态信号发送至通用处理器。
2.按权利要求1所述的高性能可编程控制器的处理器体系结构,其特征在于:功能块单元中每类功能块并行扩展1~16个同类功能块单元,每个功能块具有自己的功能块寄存器组。
3.按权利要求1所述的高性能可编程控制器的处理器体系结构,其特征在于:所述指令译码器译码使用的指令格式为位逻辑运算指令格式、可跳转位逻辑运算指令格式、跳转调用及存取指令格式以及功能块指令格式,其中:
位逻辑运算指令格式,第31~30位为组码;第29~26位为操作码;第25位用于判断当前位逻辑运算指令的操作数是否存储在累加器堆栈当中;第24位为条件位,用于对通用处理器运算的条件使能,其值决定于存储在状态寄存器中的状态结果;第23~16位,用于存储保存位逻辑运算结果的寄存器地址,其寄存器地址编码位数为8位;第15~8位,用于存储保存位逻辑运算操作数之一的寄存器地址;第7~0位,用于存储保存位逻辑运算另一操作数的寄存器地址。
可跳转位逻辑运算指令格式,第31~30位为组码;第29~26位为操作码;第25位决定是否跳转的条件位;第24位为条件位,用于对通用处理器运算的条件使能,其值决定于状态寄存器的状态结果;第23~8位,为跳转偏移位,其跳转偏移量为该可跳转位逻辑运算指令跳转到可跳转位逻辑运算指令跳转结束符或累加器堆栈中的操作数出栈并求或指令的偏移量;第7~0位,为存储累加器堆栈指针寄存器保存的当前累加器堆栈值的地址;
跳转调用及存取指令格式,第31~30位为组码;第29~26位为操作码;第25位,用于区分跳转调用指令及存取指令,当I=0时,代表跳转调用指令,当I=1时,代表存取指令;第24位,为条件位,用于基于条件位跳转偏移的跳转调用指令,其条件位的值来自于累加器堆栈当前值或功能块单元输出值或来自通用处理器的运算结果,如通用处理器执行比较指令后的比较结果;第23~16位,表示累加器堆栈栈顶地址或寄存器地址;第15~0位,表示跳转调用偏移位或操作数存取地址;
功能块指令格式,第31~30位为组码;第29~26位为操作码;第25位,表示复位优先位或加计数器输入的上升沿触发位;第24位,表示置位优先位或减计数器输入的上升沿触发位;第23位表示复位或时钟电平;第22位,表示装入加减计数器初始值使能位或计时器使能位;第21~11位,表示计数器当前值或计时器当前值;第10~0位,表示计数器予置值或计时器予置值。
4.按权利要求3所述的高性能可编程控制器的处理器体系结构,其特征在于:所述指令译码器译码使用的指令格式中组码及操作码表示的指令集为位逻辑运算指令集、可跳转位逻辑运算指令集、跳转调用指令集、存取指令集、功能块指令集,其中:
位逻辑运算指令集包括:位与操作指令、位与非操作指令、位或操作指令、位异或操作指令以及位异或非操作指令;
可跳转位逻辑运算指令集包括:位累与操作指令、位累与非操作指令、位累或操作指令、位累或非操作指令、可跳转位逻辑运算指令跳转结束符、累加器堆栈栈顶操作数出栈并求或指令;
跳转调用指令集包括:无条件跳转指令、符合条件跳转指令、不符合条件跳转指令、无条件功能块调用指令、符合条件功能块调用指令、不符合条件功能块调用指令、无条件从功能或功能块返回指令、符合条件功能或功能块返回指令、不符合条件功能或功能块返回指令。
存取指令集包括:
LOADQBIT:取功能块单元的布尔输出值到累加器堆栈中;
STOREQBIT:将功能块单元的布尔输出值存储到功能块寄存器组中;
LOADNQBIT:取功能块单元的输出值后取反输出到累加器堆栈中;
STORENQBIT:将功能块单元的输出值取反存储到功能块寄存器组中;
LOADMBIT:从存储器单元取操作数到寄存器组或功能块寄存器组中;
STOREMBIT:将寄存器组或功能块寄存器组的数据直接存储到存储器单元中;
LOADNMBIT:从存储器单元取操作数取反后存储到寄存器组或功能块寄存器组中;
STORENMBIT:将寄存器组或功能块寄存器组的数据取反后存储到存储器单元中;
LOADIOBIT:从I\O数据存储器直接取数到寄存器组中;
STOREIOBIT:将寄存器组数据直接送到I\O数据存储器中;
LOADNIOBIT:从I\O数据存储器取的数据取反后存储到寄存器组中;
STORENIOBIT:将寄存器组数据取反后送到从I\O数据存储器中;
LOADRMBIT:将寄存器组的内部寄存器的值压栈到累加器堆栈中;
STORERMBIT:将累加器堆栈中的值出栈到寄存器组的内部寄存器中;
LOADNRMBIT:将寄存器组的内部寄存器的值取反压栈到累加器堆栈中;
STORENRMBIT:将累加器堆栈中的值取反出栈到寄存器组的内部寄存器中;
功能块指令集包括:置位优先功能块指令、复位优先功能块指令、上升沿检测功能块指令、下降沿检测功能块指令、加计数器功能块指令、减计数器功能块指令、加减计数器功能块指令、脉冲功能块指令、接通延时功能块指令、断开延时功能块指令、实时时钟功能块指令。
CN2010202381679U 2010-06-25 2010-06-25 高性能可编程控制器专用处理器体系结构 Expired - Lifetime CN201716564U (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010202381679U CN201716564U (zh) 2010-06-25 2010-06-25 高性能可编程控制器专用处理器体系结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010202381679U CN201716564U (zh) 2010-06-25 2010-06-25 高性能可编程控制器专用处理器体系结构

Publications (1)

Publication Number Publication Date
CN201716564U true CN201716564U (zh) 2011-01-19

Family

ID=43462570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010202381679U Expired - Lifetime CN201716564U (zh) 2010-06-25 2010-06-25 高性能可编程控制器专用处理器体系结构

Country Status (1)

Country Link
CN (1) CN201716564U (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298352A (zh) * 2010-06-25 2011-12-28 中国科学院沈阳自动化研究所 高性能可编程控制器专用处理器体系结构及其实现方法
CN102360344A (zh) * 2011-10-10 2012-02-22 西安交通大学 矩阵处理器及其指令集和嵌入式系统
CN103443721A (zh) * 2012-04-04 2013-12-11 三菱电机株式会社 Plc设计装置
CN103562807A (zh) * 2011-07-15 2014-02-05 欧姆龙株式会社 Plc的cpu单元、plc用的系统程序、保存有plc用的系统程序的记录介质、plc系统、plc辅助装置、plc辅助程序以及保存有plc辅助程序的记录介质
CN104714468A (zh) * 2014-12-31 2015-06-17 北京纵横机电技术开发公司 一种连续功能图文件的比较方法
CN106990747A (zh) * 2017-02-28 2017-07-28 深圳市麦格米特控制技术有限公司 一种plc指令执行器
CN108334338A (zh) * 2017-12-25 2018-07-27 北京普及芯科技有限公司 一种支持流水线的实时反压方法
CN109581976A (zh) * 2017-09-29 2019-04-05 欧姆龙株式会社 控制装置
CN113849433A (zh) * 2021-09-14 2021-12-28 深圳市昂科技术有限公司 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质
US20220253242A1 (en) * 2021-02-05 2022-08-11 Micron Technology, Inc. Event management for memory devices

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298352B (zh) * 2010-06-25 2012-11-28 中国科学院沈阳自动化研究所 高性能可编程控制器专用处理器体系结构及其实现方法
CN102298352A (zh) * 2010-06-25 2011-12-28 中国科学院沈阳自动化研究所 高性能可编程控制器专用处理器体系结构及其实现方法
CN103562807A (zh) * 2011-07-15 2014-02-05 欧姆龙株式会社 Plc的cpu单元、plc用的系统程序、保存有plc用的系统程序的记录介质、plc系统、plc辅助装置、plc辅助程序以及保存有plc辅助程序的记录介质
CN103562807B (zh) * 2011-07-15 2016-04-27 欧姆龙株式会社 Plc的cpu单元、plc系统、plc辅助装置
CN102360344A (zh) * 2011-10-10 2012-02-22 西安交通大学 矩阵处理器及其指令集和嵌入式系统
CN102360344B (zh) * 2011-10-10 2014-03-12 西安交通大学 矩阵处理器及其指令集和嵌入式系统
CN103443721B (zh) * 2012-04-04 2016-08-03 三菱电机株式会社 Plc设计装置
CN103443721A (zh) * 2012-04-04 2013-12-11 三菱电机株式会社 Plc设计装置
CN104714468B (zh) * 2014-12-31 2017-10-03 北京纵横机电技术开发公司 一种连续功能图文件的比较方法
CN104714468A (zh) * 2014-12-31 2015-06-17 北京纵横机电技术开发公司 一种连续功能图文件的比较方法
CN106990747A (zh) * 2017-02-28 2017-07-28 深圳市麦格米特控制技术有限公司 一种plc指令执行器
CN109581976A (zh) * 2017-09-29 2019-04-05 欧姆龙株式会社 控制装置
US10908577B2 (en) 2017-09-29 2021-02-02 Omron Corporation Control device
CN109581976B (zh) * 2017-09-29 2021-08-20 欧姆龙株式会社 控制装置
CN108334338A (zh) * 2017-12-25 2018-07-27 北京普及芯科技有限公司 一种支持流水线的实时反压方法
CN108334338B (zh) * 2017-12-25 2022-04-12 新岸线(北京)科技集团有限公司 一种支持流水线的实时反压方法
US20220253242A1 (en) * 2021-02-05 2022-08-11 Micron Technology, Inc. Event management for memory devices
US11561733B2 (en) * 2021-02-05 2023-01-24 Micron Technology, Inc. Interrupt mode or polling mode for memory devices
US11886749B2 (en) 2021-02-05 2024-01-30 Micron Technology, Inc. Interrupt mode or polling mode for memory devices
CN113849433A (zh) * 2021-09-14 2021-12-28 深圳市昂科技术有限公司 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN201716564U (zh) 高性能可编程控制器专用处理器体系结构
CN102298352B (zh) 高性能可编程控制器专用处理器体系结构及其实现方法
EP3602277B1 (en) Systems, methods, and apparatuses for dot production operations
CN100545804C (zh) 一种基于cisc结构的微控制器及其指令集的实现方法
CN117349584A (zh) 实行16位浮点矩阵点积指令的系统和方法
CN101221541B (zh) 用于soc的可编程通信控制器
CN1327340C (zh) 处理器和编译器
EP3757769A1 (en) Systems and methods to skip inconsequential matrix operations
CN105612509A (zh) 用于提供向量子字节解压缩功能性的方法、设备、指令和逻辑
CN102184092A (zh) 基于流水线结构的专用指令集处理器
CN110427337B (zh) 基于现场可编程门阵列的处理器内核及其运行方法
CN104346132B (zh) 应用于智能卡虚拟机运行的控制装置及智能卡虚拟机
CN104395876A (zh) 没有算术和逻辑单元的计算机处理器和系统
TW201344571A (zh) 唯一封裝資料元件識別處理器,方法,系統,及指令
CN1523496A (zh) 终止处理器中非必要处理的条件指令的方法与系统
CN118605946A (zh) 用于8位浮点矩阵点积指令的装置、方法和系统
CN111752533A (zh) 用于矩阵运算的加速器系统和方法
CN108733412A (zh) 一种运算装置和方法
CN101133390A (zh) 单循环低功率中央处理单元架构
CN102339386B (zh) 一种嵌入式指纹特征提取加速方法
CN104111817B (zh) 算术处理装置
CN101246435A (zh) 一种支持高级语言部分语句功能的处理器指令集
CN108351780A (zh) 邻接数据元素成对交换处理器、方法、系统和指令
CN103218207B (zh) 基于单/双发射指令集的微处理器指令处理方法及系统
CN100409180C (zh) 用于处理指令循环的方法和系统

Legal Events

Date Code Title Description
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SHENYANG ZHONGKE BOWEI AUTOMATION TECHNOLOGY CO.,

Free format text: FORMER OWNER: SHEN YANG AUTOMATION INST., CHINESE ACADEMY OF SCIENCES

Effective date: 20141201

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 110016 SHENYANG, LIAONING PROVINCE TO: 110179 SHENYANG, LIAONING PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20141201

Address after: Hunnan wavesource street in Shenyang City, Liaoning province 110179 17-8 building 1-3 No. 1 layer

Patentee after: Shenyang Zhongke Bowei Automation Technology Co., Ltd.

Address before: South Street in Dongling District of Shenyang city of Liaoning Province, No. 114 110016

Patentee before: Shen Yang Automation Inst., Chinese Academy of Sciences

Effective date of registration: 20141201

Address after: Hunnan wavesource street in Shenyang City, Liaoning province 110179 17-8 building 1-3 No. 1 layer

Patentee after: Shenyang Zhongke Bowei Automation Technology Co., Ltd.

Address before: South Street in Dongling District of Shenyang city of Liaoning Province, No. 114 110016

Patentee before: Shen Yang Automation Inst., Chinese Academy of Sciences

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Hunnan wavesource street in Shenyang City, Liaoning province 110179 17-8 building 1-3 No. 1 layer

Patentee after: Shenyang Bowei Polytron Technologies Inc

Address before: Hunnan wavesource street in Shenyang City, Liaoning province 110179 17-8 building 1-3 No. 1 layer

Patentee before: Shenyang Zhongke Bowei Automation Technology Co., Ltd.

Address after: Hunnan wavesource street in Shenyang City, Liaoning province 110179 17-8 building 1-3 No. 1 layer

Patentee after: Shenyang Bowei Polytron Technologies Inc

Address before: Hunnan wavesource street in Shenyang City, Liaoning province 110179 17-8 building 1-3 No. 1 layer

Patentee before: Shenyang Zhongke Bowei Automation Technology Co., Ltd.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20110119