CN101655784B - 流水线操作处理器和控制系统 - Google Patents
流水线操作处理器和控制系统 Download PDFInfo
- Publication number
- CN101655784B CN101655784B CN2009101426621A CN200910142662A CN101655784B CN 101655784 B CN101655784 B CN 101655784B CN 2009101426621 A CN2009101426621 A CN 2009101426621A CN 200910142662 A CN200910142662 A CN 200910142662A CN 101655784 B CN101655784 B CN 101655784B
- Authority
- CN
- China
- Prior art keywords
- instruction
- control information
- memory
- pipeline
- access
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 claims abstract description 92
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000003780 insertion Methods 0.000 claims abstract description 19
- 230000037431 insertion Effects 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 73
- 230000008569 process Effects 0.000 claims description 72
- 238000012937 correction Methods 0.000 claims description 19
- 238000006073 displacement reaction Methods 0.000 claims description 14
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 7
- 230000001915 proofreading effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001343 mnemonic effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000009365 direct transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开一种流水线操作处理器和控制系统。流水线操作处理器(2)包括:流水线处理单元(2b);和指令插入控制器(2a),其在请求对操作存储器(4)的访问时插入指令,并通过参照级的控制信息校正控制信息。当控制程序(4a)正在执行时,在接收到请求对所述操作存储器(4)进行访问的访问请求指令时,所述指令插入控制器从所述指令解码单元(2b2)插入NOP指令,代替所述访问请求指令。在流水线处理单元(2b)不执行操作时执行所述访问请求指令,并随后,继续所述流水线处理。
Description
技术领域
本发明涉及具有流水线处理功能的流水线操作处理器,以及涉及包括共享存储器的控制系统,所述共享存储器存储由流水线操作处理器执行的程序和操作数据。更具体地,本发明涉及一种流水线操作处理器,其在对共享存储器进行共享的另一处理器访问共享存储器时减小处理效率的劣化,以及涉及包括所述流水线操作处理器的控制系统。
背景技术
近年来,已经采用具有流水线处理功能的流水线操作处理器来满足控制系统的高速处理的需求。
传统地,在工厂等的控制系统中利用具有图11所示的配置的系统。该控制系统包括:流水线操作处理器12,其高速处理来自外部输入-输出(I/O)设备(例如进程传感器或致动器)的数据;通用处理器11a和11b,其管理流水线操作处理器12或执行不同的处理;外部输入-输出(I/O)存储器13,其用作传送外部I/O设备的输入和输出数据的接口;以及操作存储器14,其存储由流水线操作处理器12执行的控制程序14a,并且由流水线操作处理器12和通用处理器11a和11b共享。
流水线处理单元12b包括:取指令单元12b1、指令解码单元12b2、指令执行和地址生成单元12b3、存储器访问单元12b4和12b5、以及写单元12b6。流水线处理单元12b还包括控制这些单元之间的数据路径的旁路控制电路(未示出)、外部I/O存储器访问单元12b8、操作存储器访问单元12b9、以及连接流水线处理单元12b的各个单元的流水线总线12b7。
流水线处理单元12b将指令分成分别对应于取指令单元(IF)12b1、指令解码单元(ID)12b2、指令执行和地址生成单元(MAR)12b3、存储器访问单元(MADR、MDR)12b4和12b5、以及写单元(WR)12b6的6个基础级(stage)。因此,并行执行指令以提高处理的吞吐量。当被调度的级的操作中发生改变时,级的执行在中途被暂停(suspend)(或停止(stall)),从起点重新开始,或需要改变指令序列。
由负载指令引起的数据冲突(data hazard)是这种改变的起因的一个实例。例如,在日本专利No.3435267中公开了一种预测加载指令的地址的方法,用于防止由数据冲突引起的流水线停止。
例如,在1996年6月26日由Nikkei商业出版公司出版的、由John L.Hennessy和David A.Patterson撰写的“ComputerArchitecture and Design(Vol.2)”的第6章第23-70页中公开了流水线处理的原理以及在流水线处理的执行中解决各种冲突的技术。
图12A和12B示出由工厂等的控制系统进行的流水线处理的典型操作,所述控制系统利用图11所示的传统流水线操作处理器。
例如,在图12A中所示的6个级中处理指令A至F中的每个,并且使得每个级的操作与时钟信号同步。各个指令的执行偏移一个级。
传统地,例如在写单元WR的级中处理指令B的情况下,当经由存储器访问单元12a从通用处理器11a访问共享存储器时,存储器访问单元12a发送用于停止流水线处理单元12b的所有级的操作的信号,如图12B所示,并且在停止期间内经由操作存储器访问单元12b9访问操作存储器14。
在这种情况下,停止期间中断了运行中的指令B至F的存储器循环处理,因此,由图12B的虚线包围的级的操作阶段从同步存储器的操作阶段改变,并且不能正常执行。
因此,在如图12B所示停止流水线处理被取消之后,指令B至F需要再次执行。因此,大大降低流水线操作处理器12的处理效率。
即,当被调度的操作中发生改变时,由于从起点重新开始运行到中途的流水线处理级的缺点,所以使用传统流水线操作处理器的处理性能会劣化。
发明内容
本发明的目的在于提供一种流水线操作处理器和一种包括该流水线操作处理器的控制系统,其在访问共享存储器时可继续流水线处理,同时防止由于指令之间的数据路径的同步位移(displacement)而发生的冲突,减少流水线操作处理器处理效率的劣化,并且使得能够高速执行控制程序。
根据本发明一个实施例的一种控制系统包括:
一个或多个通用处理器;
流水线操作处理器,其具有流水线处理功能并连接至所述一个或多个通用处理器的总线;
第一存储器,其被配置为存储由所述流水线操作处理器执行的控制程序和操作数据,所述控制程序和所述操作数据被所述一个或多个通用处理器和所述流水线操作处理器共享;
第二存储器,其被配置为从所述流水线操作处理器访问,并用作传送所述流水线操作处理器输入或输出的外部数据的接口;
所述流水线操作处理器包括:
流水线处理单元,包括:作为级的取指令单元、指令解码单元、指令执行和地址生成单元、存储器访问单元、划分指令并且并行执行指令的写单元;和流水线总线,其被配置为连接所述级、指令访问单元、和指令访问单元;以及
指令插入控制器,其被配置为,当从所述一个或多个通用处理器请求对所述第一存储器的访问时,在所述流水线处理单元中插入指令;以及被配置为,校正所述级的控制信息的相对位移,以控制在所述级之间的数据路径;
当从所述一个或多个通用处理器接收到请求对所述第一存储器进行访问的访问请求指令时,在所述取指令单元从所述第一存储器取出指令并且所述控制程序正在执行的情况下,所述指令插入控制器插入来自所述指令解码单元的无操作指令,代替所述控制程序的被调度的随后指令,以使得所述流水线处理单元不执行操作;或通过所述指令解码单元检测在所述控制程序中嵌入的无操作指令,以使得所述流水线处理单元不执行操作;以及
在不中断所述流水线操作处理器的处理的情况下,所述流水线处理单元执行随后指令并继续执行所述流水线处理。
根据本发明另一实施例的一种流水线操作处理器,包括:
流水线处理单元,其具有用于并行处理控制程序的流水线处理功能,并包括:作为级的取指令单元、指令解码单元、指令执行和地址生成单元、存储器访问单元、划分指令并且并行执行指令的写单元;和流水线总线,其被配置为连接所述级;以及
指令插入控制器,其被配置为,当从通用处理器请求对第一存储器的访问时,在所述流水线处理单元中插入指令;以及被配置为,校正所述级的控制信息的相对位移,以控制在所述级之间的数据路径;以及
当从所述通用处理器接收到请求对所述第一存储器进行访问的访问请求指令时,在所述取指令单元从所述第一存储器取出指令并且所述控制程序正在执行的情况下,所述指令插入控制器插入来自所述指令解码单元的无操作指令,代替所述控制程序的被调度的随后指令,以使得所述流水线处理单元不执行操作;或通过所述指令解码单元检测在所述控制程序中嵌入的无操作指令,以使得所述流水线处理单元不执行操作;以及
在不中断所述流水线操作处理器的处理的情况下,所述流水线处理单元执行随后指令并继续执行所述流水线处理。
在随后的说明中将阐述本发明的其他目的和优点,并且根据说明将部分地变得明显,或可通过本发明的实践获知。可通过以下特别指出的手段和组合来实现和获得本发明的目的和优点。
附图说明
被结合并构成说明书的一部分的附图示出本发明的实施例,并且与以上给出的发明内容和以下给出的具体实施方式一起用于解释本发明的原理,在附图中:
图1是示出根据本发明实施例的包括流水线操作处理器的控制系统的配置的视图;
图2是示出根据本发明实施例的流水线操作处理器的配置的视图;
图3A和3B是示出在访问操作存储器(共享存储器)时的流水线控制操作实例的视图;
图4是示出根据本发明实施例的校正控制信息缓冲器的配置的视图;
图5A和5B是示出校正控制信息缓冲器的流水线控制操作实例的视图;
图6是示出校正控制信息缓冲器的另一流水线控制操作实例的视图;
图7是示出对准误差的视图;
图8是示出对准误差的检测和指令插入控制器的操作的视图;
图9是示出当一个指令引起多个指令的执行时的指令插入控制器的操作实例的视图;
图10是示出当一个指令引起多个指令的执行时的指令插入控制器的另一操作实例的视图;
图11是示出包括传统流水线操作处理器的控制系统的配置的视图;以及
图12A和12B是示出对包括传统流水线操作处理器的控制系统的共享存储器进行访问的操作的视图。
具体实施方式
以下参照附图说明本发明的实施例。
第一实施例
以下参照图1至6说明根据本发明第一实施例的包括流水线操作处理器的控制系统。将参照图1和3A说明本发明的配置和典型操作。
包括流水线操作处理器的控制系统包括:通用处理器1a和1b;流水线操作处理器2,其经由总线1c连接至通用处理器1a和1b;外部输入-输出(I/O)存储器3,其存储控制目标处理的输入-输出(I/O)设备的输入和输出数据;以及操作存储器4,其存储由流水线操作处理器2执行的控制程序4a及其操作数据。
流水线操作处理器2包括:流水线处理单元2b,其执行流水线处理;和指令插入控制器2a,其将指令插入到包括多个级的流水线处理单元2b,并参照用于控制级之间的数据路径的级的控制信息来校正控制信息的位移。
指令插入控制器2a包括:存储器访问单元2a1,其控制从通用处理器1a或1b的到操作存储器4的访问请求;和指令插入器2a2,其在接收到来自通用处理器1a或1b的对操作存储器4的访问请求时将无操作(NOP)指令插入到指令解码单元2b2(以下将说明)中。
指令插入控制器2a包括校正控制信息缓冲器2a3和多路复用器2a4。当指令插入器2a2通知校正控制信息缓冲器2a3关于NOP指令的插入时,或当指令解码单元2b2经由指令插入器2a2通知校正控制信息缓冲器2a3关于在控制程序中预先嵌入的NOP指令的插入时,校正控制信息缓冲器2a3存储在插入时的流水线处理单元2b的级的控制信息,校正在存储的控制信息和在执行NOP指令随后的指令时的级的控制信息之间的相对位移,以及输出校正控制信息。当生成NOP指令时,多路复用器2a4将流水线处理单元2b的控制信息改变为校正控制信息缓冲器2a3的输出,并重新配置该信息。
执行流水线处理的流水线处理单元2b包括:作为级的取指令单元2b1、指令解码单元2b2、指令执行和地址生成单元2b3、存储器地址访问单元2b4、存储器数据访问单元2b5、和写单元2b6,写单元2b6将指令分成级并且并行执行指令。流水线处理单元2b还包括:输入-输出(I/O)存储器访问单元2b8,其控制对I/O存储器3的访问;操作存储器访问单元2b9,其控制对操作存储器4的访问;和流水线总线2b7,其连接流水线处理单元2b的组件。
此外,流水线处理单元2b包括:预建立的控制信息设置单元(未示出),其对级之间的数据路径进行旁路控制;及其控制线。
在本实施例中,流水线处理单元2b包括与指令的6个级对应的从信息取出单元2b1到写单元2b6的6个单元。然而,流水线处理单元2b的配置可对应于5个级或8个级。仅需要流水线处理单元2b具有流水线处理功能。级的数目不限于6。
I/O存储器3用作传送与流水线操作处理器2的操作相关的输入和输出数据的接口。在流水线总线2b7的预设基本总线周期中,从存储器地址访问单元2b4通过流水线总线2b7和I/O存储器访问单元2b8向I/O存储器3写入输出数据。
相反,从I/O存储器3读取输入数据,并将该输入数据通过I/O存储器访问单元2b8发送至存储器数据访问单元2b5。
操作存储器4包括同步存储器,并且从存储器地址访问单元2b4通过操作存储器访问单元2b9向操作存储器4写入数据。
相反,与流水线总线2b7的时钟信号同步地从操作存储器4读取数据,并将该数据经由操作存储器访问单元2b9发送至存储器数据访问单元2b5。
接下来,将对于典型流水线处理在执行中的情况说明以上配置的控制系统的典型控制操作。如图1中的虚线箭头所指示的,由流水线操作处理器2执行的控制程序4a使得取指令单元2b1经由流水线总线2b7请求指令,操作存储器访问单元2b9访问操作存储器4,并且将要执行的指令发送至指令解码单元2b2。
图3A中的符号IF至WR分别代表与每个级(包括取指令单元2b1至写单元2b6)对应的流水线处理的级。例如,并行处理读指令A至F,在6个级中处理每个指令,并且指令的执行偏移1个级。
接下来,将参照图2和3B给出关于以下内容的说明,即在流水线操作处理器2执行典型控制操作的情况下,当请求从通用处理器1a或1b到操作存储器4的访问时的操作。
如图2的虚线所指示,当经由存储器访问单元2a1从通用处理器1a请求对操作存储器4的访问时,指令插入器2a2将NOP指令插入指令解码单元2b2代替指令E(如图3B所示,其被调度执行),并且在NOP指令期间级的单元不执行任何处理。
在NOP指令期间内,指令插入器2a2经由操作存储器访问单元2b9向操作存储器4写入或从其中读取请求数据,如图2中的点划线所指示。
图3B的下部示出以下操作,即在通用处理器1a请求访问操作存储器4的情况下,当在指令D和E之间插入NOP指令时的流水线操作处理器2的操作。为了比较的目的,图3B的上部示出停止处理的所有级的传统操作。
如图所示,与停止所有级的传统情况相比,当插入一个NOP指令并且流水线处理继续时,已经在执行中的指令B至F不需要完全停止和重新执行,并且处理的延迟被限制为由NOP指令的插入引起的一个级。因此,保证流水线处理的连续性,并且可减小由于对共享存储器的访问请求引起的处理效率的劣化。
此外,对操作存储器4的访问可嵌入在控制程序中,并且流水线操作处理器2可执行访问。在这种情况下,当通知从指令插入器2a插入NOP指令时,指令解码单元2b2检测预先嵌入在控制程序中的NOP指令,并通知指令插入器2a2。指令插入器2a2通知校正控制信息缓冲器2a3关于NOP指令的生成。
在发出NOP指令的通知之后,校正控制信息缓冲器2a3类似于通用处理器1a发出对操作存储器4的访问请求的情况进行操作。
接下来,参照图2和图4至6,将详细说明指令插入控制器2a的配置和操作。
当指令插入器2a2插入来自ID解码单元2b2的NOP指令代替被调度执行的指令E时,如图5B所示改变在插入的NOP指令之前的指令级与插入之后的指令级之间的相对位置,即改变用于控制级之间的依赖性关系的控制信息的相位关系。
因此,当插入指令时,需要校正用于控制级之间的数据路径的控制信息的相位。校正控制信息缓冲器2a3校正控制信息的位移。将参照图4说明校正控制信息缓冲器2a3的细节。
校正控制信息缓冲器2a3包括:存储体选择器2a31,其在每次指令插入器2a2将NOP指令插入指令解码单元2b2时选择用于存储控制信息的存储体;控制信息存储器2a32,其包括含有多个缓冲寄存器的存储体,所述缓冲寄存器用于存储控制信息;以及校正控制信息选择器2a33,其在执行NOP指令之后的指令时校正在插入NOP指令引起的级之间的控制信息的相对位移,并从相应存储体选择和输出校正信息。
存储体选择器2a31包括输入选择环(ring)缓冲单元2a311和门电路2a312。输入选择环缓冲单元2a311包括3个缓冲器,所述缓冲器存储来自指令插入器2a2的指令插入的存在或不存在,与流水线的时钟信号Ck同步旋转,并且在来自指令插入器2a2的输出存在且其高电平输出认为是“真”的时间段期间停止。当输入选择环缓冲单元2a311输出真时,门电路2a312接收流水线处理单元2b的级的输入控制信息,并将来自任意环缓冲器的为真的输出发送到对应存储体。
校正控制信息选择器2a33包括输出选择环缓冲单元2a331和多路复用器2a332。输出选择环缓冲单元2a331对控制信息存储器2a32进行控制,以在与插入指令的数目对应的时间段(即在与停止的级对应的时间段)延迟输出控制信息存储器2a32的存储体中存储的控制信息。多路复用器2a332输入在控制信息存储器2a32的3个存储体(L,M,N)之一中存储的控制信息,并输出根据来自输出选择环缓冲单元2a331的输出所选择的控制信息。
基于在流水线处理的一个指令中访问共享操作存储器4的处理器的数目和每个级的访问次数来预先确定输入选择环缓冲单元2a311的缓冲器的数目、输出选择环缓冲单元2a331的缓冲器的数目、和控制信息存储器2a32的存储体的数目。如此配置的同步主存储器允许高速地并与流水线处理的时钟信号同步地校正控制信息。
接下来,将说明如上配置的校正控制信息缓冲器2a3的控制操作。
例如,当在指令解码(ID)单元2b2的级中使用存储器数据访问(MDR)单元2b5的级的操作结果时,典型流水线处理可按这样的方式操作,即由指令解码(ID)单元2b2的级来参照根据指令A的存储器数据访问(MDR)单元2b5的控制信息。然而,在生成对操作存储器4的访问的请求的情况下,当在插入NOP指令之后的ID级(st3)中按原样地参照MDR级(st1)的控制信息时,适当的控制信息被随后执行的指令更新而引起冲突,并且不能够使用适当的控制信息。
因此,校正控制信息缓冲器2a3临时存储适当的控制信息,从而可在ID级中参照该控制信息。
即,为了在流水线处理操作中将顺序的级的控制信息顺序地存储并使得可参照控制信息,如上所述,校正控制信息缓冲器2a3包括控制信息存储器2a32,其包括相对于控制信息的输入并行配置的存储体;以及包括存储体选择器2a31和校正控制信息选择器2a33,其基于任意并行存储体的选择以及与时钟信号Ck同步旋转的选择条件来选择和控制所述控制信息的输入条件或输出条件。校正控制信息缓冲器2a3与时钟信号同步地在指令插入时校正控制信息的相位位移,并使得校正控制信息可以在流水线的级中参照;因此,即使在生成多个指令的访问请求时,控制信息也可以被正常参照。
例如,如图6所示,在指令B是助记符号为CMP的比较指令、指令F是表示为JMP的条件分支指令、并且指令F参照从指令B得到的控制信息的情况下,当在指令D和E之间插入NOP指令、并且在指令E和F之间顺序插入3个NOP指令时,如箭头所指示在级st3和级st6至st9中的每个中适当设置从MDR的级导出的ID的级的控制信息,即,设置与没有插入NOP指令的情况对应的适当相位(phase)的控制信息,并且处理正常运行。
第二实施例
以下参照图7和8说明根据本发明第二实施例的包括流水线操作处理器的控制系统。
将以相同的标号指示与第一实施例相同的部分,并且将省略对它们详细的说明。
在第二实施例中,通过规定对于每个指令执行一次对操作存储器4的存储器访问来简化流水线处理。
通常,当访问存储器映射上的地址时,处理固定长度数据的处理器特别符合与偶数字节的整数倍对应的对准。处理器符合用于处理32位数据的4字节对准,以及符合用于处理16位数据的2字节对准。此外,没有符合意味着对准误差。
在这种情况下,如图7所示,每个存储器访问可写入或读取4字节的对准数据。然而,如果数据导致需要存储器访问两次的对准误差,则需要相同的指令插入并存储控制信息,以能够多次进行存储器访问,并且能够进行正常流水线处理,而不会由于多次存储器访问引起控制信息的冲突。
因此,如图8所示,在指令解码单元2b2中,ID电路2b12取出用以访问操作存储器4的指令以及存储器地址和指令的数据大小,并且对准检测电路2b13检测对准误差并向指令插入器2a2发送得到的检测信号。因此,类似于第一实施例,通过指令插入控制器2a,流水线操作处理器2可对每一个指令两次适当执行存储器访问。
因此,可导致对准误差的数据的存储器访问不需要通过编译控制程序来防止,而可由流水线操作处理器来执行。甚至可变长度数据的存储器访问可由用于执行固定长度指令的流水线操作处理器来执行;因此,流水线操作处理器的处理变得更快。
第三实施例
以下,将参照图8至10说明根据本发明第三实施例的包括流水线操作处理器的控制系统。
将以相同的标号指示与第一实施例相同的部分,并且将省略对它们详细的说明。
在第三实施例中,可通过一个指令实现对于多个指令的从流水线操作处理器2到I/O存储器3的访问,以提高操作效率。
指令解码单元2b2包括如图8所示的访问指令检测电路2b14。访问指令检测电路2b14检测在ID电路2b12中设置的指令,以多次访问流水线操作处理器2的I/O存储器3。在检测到访问请求的指令时,访问指令检测电路2b14通知指令插入器2a2关于该指令,指令插入器2a2通知ID电路2b12关于该指令的执行,并且通过I/O存储器访问单元2b8执行与多次指令插入对应的存储器访问,直到完成存储器访问。
例如,在图9中,指令D是助记符号为MEM WR的写入访问指令,并且将多个指令插入到指令D的执行和存储器访问的完成之间。
在准备向MADR级直接传送从执行在指令D之前的指令A至C所得到的写数据的情况时,在执行指令D之后执行多个指令的插入,直到完成存储器访问。因此,在级之间的写数据的直接传送不生成数据冲突,并且能够对操作存储器4进行存储器访问。
在图10中,指令D是助记符号为MEM RD的读访问指令,在执行指令C之后且在开始执行指令D时插入多个指令。存储器访问的完成引起指令D的执行,即,MEM RD。
在准备指令D之后的执行指令E至H利用从MDR级直接传送的读数据时,从指令D的执行开始插入多个指令,直到刚好在存储器访问的完成之前,并随后执行指令D。因此,在级之间的读数据的直接传送不产成数据冲突,并且能够进行存储器访问。
根据第三实施例,来自通用处理器的存储器访问能够最小化对流水线操作处理器的流水线控制的影响,并且可提高流水线操作处理器的操作性能。
本发明不限于以上所述实施例。指令插入控制器仅需要向共享操作存储器中插入NOP指令,并校正在插入时生成的控制信息的位移(冲突的生成)。在不脱离本发明精神的情况下,可按各种方式修改流水线处理单元的级配置和操作存储器的电路配置。
本领域普通技术人员容易理解其他优点和修改。因此,本发明在其更宽泛方面不限于这里所示和所述的具体细节和代表性实施例。因此,在不脱离由所附权利要求及其等同物限定的一般发明概念的精神或范围的情况下,可进行各种修改。
Claims (13)
1.一种控制系统,其特征在于,包括:
一个或多个通用处理器(1a,1b);
流水线操作处理器(2),其具有流水线处理功能并连接至所述一个或多个通用处理器(1a,1b)的总线(1c);
第一存储器(4),其被配置为存储由所述流水线操作处理器(2)执行的控制程序(4a)和操作数据,所述控制程序(4a)和所述操作数据由所述一个或多个通用处理器(1a,1b)和所述流水线操作处理器(2)共享;和
第二存储器(3),其被配置为从所述流水线操作处理器(2)访问,并用作传送所述流水线操作处理器(2)输入或输出的外部数据的接口;
所述流水线操作处理器(2)包括:
流水线处理单元(2b),包括:作为级的取指令单元(2b1)、指令解码单元(2b2)、指令执行和地址生成单元(2b3)、存储器访问单元(2b4,2b5)、划分指令并且并行执行指令的写单元(2b6);和流水线总线(2b7),其被配置为连接所述级、第一存储器访问单元(2b9)、和第二存储器访问单元(2b8);以及
指令插入控制器(2a),其被配置为,当从所述一个或多个通用处理器(11a,11b)请求对所述第一存储器(4)的访问时,在所述流水线处理单元(2b)中插入指令;以及被配置为,校正所述级的控制信息的相对位移,以控制在所述级之间的数据路径;
当从所述一个或多个通用处理器(1a,1b)接收到请求对所述第一存储器(4)进行访问的访问请求指令时,在所述取指令单元(2b1)从所述第一存储器(4)取出指令并且所述控制程序(4a)正在执行的情况下,所述指令插入控制器(2a)插入来自所述指令解码单元的无操作指令,代替所述控制程序(4a)的被调度的随后指令,以使得所述流水线处理单元(2b)不执行操作;或通过所述指令解码单元(2b2)检测在所述控制程序(4a)中嵌入的无操作指令,以使得所述流水线处理单元(2b)不执行操作;以及
在不中断所述流水线操作处理器(2)的处理的情况下,所述流水线处理单元(2b)执行随后指令并继续执行所述流水线处理。
2.根据权利要求1所述的控制系统,其特征在于,所述第一存储器(4)包括同步存储器,以及
所述第一存储器访问单元(2b9)与所述流水线总线(2b7)的时钟信号同步地执行从所述同步存储器读取数据以及向所述同步存储器写入数据。
3.根据权利要求1所述的控制系统,其特征在于,
所述指令插入控制器(2a)从所述一个或多个通用处理器(11a,11b)接收请求对所述第一存储器(4)进行访问的访问请求,并在执行无操作指令时通过所述第一存储器访问单元(2b9)访问所述第一存储器(4)。
4.根据权利要求1所述的控制系统,其特征在于,
所述指令插入控制器(2a)包括:
指令插入器(2a2),其被配置为,当从所述一个或多个通用处理器(1a,1b)接收对所述第一存储器(4)的访问请求指令时,在所述指令解码单元(2b2)中插入无操作指令;
校正控制信息缓冲器(2a3),其被配置为,存储在插入所述元操作指令时所述流水线处理单元(2b)的级的控制信息;校正在执行在所述无操作指令随后的指令时在所述校正控制信息缓冲器(2a3)中存储的控制信息与所述级的控制信息之间的相对位移;以及在从所述指令插入器(2a2)通知插入所述无操作指令时,或经由所述指令插入器(2a2)从所述指令解码单元(2b2)通知在所述控制程序(4a)中嵌入的无操作指令时,输出校正控制信息;以及
第一多路复用器(2a4),其被配置为,当生成所述无操作指令时,将所述流水线处理单元(2b)的控制信息改变为所述校正控制信息缓冲器(2a3)的输出,并重新配置所述控制信息。
5.根据权利要求4所述的控制系统,其特征在于,
所述校正控制信息缓冲器(2a3)包括:
控制信息存储器(2a32),包括用于存储所述控制信息的存储体;
存储体选择器(2a31),被配置为,在每次插入所述无操作指令时选择用于存储所述控制信息的存储体中的一个;
校正控制信息选择器(2a33),其被配置为,校正在插入所述无操作指令引起的级之间的每个存储体中存储的控制信息的相对位移;在执行所述无操作指令随后的指令时重新配置校正控制信息;以及从相应存储体选择和输出所述校正控制信息;以及
第二多路复用器(2a332),其被配置为,选择来自所述校正控制信息选择器(2a33)的输出和在插入所述无操作指令之前的所述控制信息中的一个。
6.根据权利要求4所述的控制系统,其特征在于,
所述指令解码单元(2b2)包括:
ID电路(2b12),其被配置为,存储由所述取指令单元(2b1)取出的指令的指令代码和所述指令的地址;以及
对准误差检测电路(2b13),其被配置为,基于所述ID电路(2b12)中存储的所述指令代码和地址检测对准误差的存在或不存在;
当所述对准误差检测电路(2b13)检测对准误差时,向所述指令插入器(2a2)通知关于所述对准误差的存在或不存在;以及
所述指令插入器(2a2)基于所述对准误差的存在或不存在向所述ID电路(2b12)通知关于与对准误差的存在或不存在对应的指令代码的插入,以执行对所述第一存储器(4)的访问。
7.根据权利要求4所述的控制系统,其特征在于,
所述指令解码单元(2b2)包括:
ID电路(2b12),其被配置为存储由所述取指令单元(2b1)取出的指令的指令代码;以及
访问指令检测电路(2b14),其被配置为,基于在所述ID电路(2b12)中存储的指令代码检测对所述第二存储器(3)进行多次访问的请求指令;
当所述访问指令检测电路(2b14)检测到多次访问的请求指令时,向所述指令插入器(2a2)通知关于访问的次数;以及
所述指令插入器(2a2)向所述ID电路(2b12)通知关于与所述次数相应的指令代码的插入,以执行对所述第二存储器(3)的多次访问。
8.一种流水线操作处理器,其特征在于,包括:
流水线处理单元(2b),其具有用于并行处理控制程序(4a)的流水线处理功能,并包括:作为级的取指令单元(2b1)、指令解码单元(2b2)、指令执行和地址生成单元(2b3)、存储器访问单元(2b4,2b5)、划分指令并且并行执行指令的写单元(2b6);和流水线总线(2b7),其被配置为连接所述级;以及
指令插入控制器(2a),其被配置为,当从通用处理器(1a,1b)请求对第一存储器(4)的访问时,在所述流水线处理单元(2b)中插入指令;以及被配置为,校正所述级的控制信息的相对位移,以控制在所述级之间的数据路径;以及
当从所述通用处理器(1a,1b)接收到请求对所述第一存储器(4)进行访问的访问请求指令时,在所述取指令单元(2b1)从所述第一存储器(4)取出指令并且所述控制程序(4a)正在执行的情况下,所述指令插入控制器(2a)插入来自所述指令解码单元(2b2)的无操作指令,代替所述控制程序(4a)的被调度的随后指令,以使得所述流水线处理单元(2b)不执行操作;或通过所述指令解码单元(2b2)检测在所述控制程序(4a)中嵌入的无操作指令,以使得所述流水线处理单元(2b)不执行操作;以及
在不中断所述流水线操作处理器(2)的处理的情况下,所述流水线处理单元(2b)执行随后指令并继续执行所述流水线处理。
9.根据权利要求8所述的流水线操作处理器,其特征在于,所述第一存储器(4)包括同步存储器,以及
所述流水线操作处理器(2b)还包括:指令访问单元(2b9),其被配置为与所述流水线总线(2b7)的时钟信号同步地执行从所述同步存储器读取数据以及向所述同步存储器写入数据。
10.根据权利要求8所述的流水线操作处理器,其特征在于,
所述指令插入控制器(2a)包括:
指令插入器(2a2),其被配置为,当从所述通用处理器(1a,1b)接收对所述第一存储器(4)的访问请求指令时,在所述指令解码单元(2b2)中插入无操作指令;
校正控制信息缓冲器(2a3),其被配置为,在插入所述无操作指令时存储所述流水线处理单元(2b)的级的控制信息;当从所述指令插入器(2a2)通知插入所述无操作指令时,在执行在所述无操作指令随后的指令时校正在所述校正控制信息缓冲器(2a3)中存储的控制信息与所述级的控制信息之间的相对位移;以及在从所述指令插入器(2a2)通知插入所述无操作指令时,或经由所述指令插入器(2a2)从所述指令解码单元(2b2)通知在所述控制程序(4a)中嵌入的无操作指令时,输出校正控制信息;以及
第一多路复用器(2a4),其被配置为,当生成所述无操作指令时,将所述流水线处理单元(2b)的控制信息改变为所述校正控制信息缓冲器(2a3)的输出,并重新配置所述控制信息。
11.根据权利要求10所述的流水线操作处理器,其特征在于,
所述校正控制信息缓冲器(2a3)包括:
控制信息存储器(2a32),包括用于存储所述控制信息的存储体;
存储体选择器(2a31),被配置为,在每次插入所述无操作指令时选择用于存储所述控制信息的存储体中的一个;
校正控制信息选择器(2a33),其被配置为,在执行随后指令时校正在插入所述无操作指令引起的级之间的每个存储体中存储的控制信息的相对位移;并且从相应存储体选择和输出所述校正控制信息;以及
第二多路复用器(2a332),其被配置为,选择来自所述校正控制信息选择器(2a33)的输出和在插入所述无操作指令之前的所述控制信息中的一个。
12.根据权利要求10所述的流水线操作处理器,其特征在于,
所述指令解码单元(2b2)包括:
ID电路(2b12),其被配置为,存储由所述取指令单元(2b1)取出的指令的指令代码和所述指令的地址;以及
对准误差检测电路(2b13),其被配置为,基于所述ID电路(2b12)中存储的所述指令代码和地址检测对准误差的存在或不存在;
当所述对准误差检测电路(2b13)检测对准误差时,向所述指令插入器(2a2)通知关于所述对准误差的存在或不存在;以及
所述指令插入器(2a2)基于所述对准误差的存在或不存在向所述ID电路(2b12)通知关于与对准误差的存在或不存在对应的指令代码的插入,以执行对所述第一存储器(4)的访问。
13.根据权利要求10所述的流水线操作处理器,其特征在于,
所述指令解码单元(2b2)包括:
ID电路(2b12),其被配置为存储由所述取指令单元(2b1)取出的指令的指令代码;以及
访问指令检测电路(2b14),其被配置为,基于在所述ID电路(2b12)中存储的指令代码检测对第二存储器(3)进行多次访问的请求指令;
当所述访问指令检测电路(2b14)检测到多次访问的请求指令时,向所述指令插入器(2a2)通知关于访问的次数;以及
所述指令插入器(2a2)向所述ID电路(2b12)通知关于与所述次数相应的指令代码的插入,以执行对所述第二存储器(3)的多次访问。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008213351 | 2008-08-21 | ||
JP2008-213351 | 2008-08-21 | ||
JP2008213351A JP5395383B2 (ja) | 2008-08-21 | 2008-08-21 | パイプライン演算プロセッサを備える制御システム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101655784A CN101655784A (zh) | 2010-02-24 |
CN101655784B true CN101655784B (zh) | 2013-03-06 |
Family
ID=41566931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101426621A Active CN101655784B (zh) | 2008-08-21 | 2009-06-05 | 流水线操作处理器和控制系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8200950B2 (zh) |
JP (1) | JP5395383B2 (zh) |
KR (1) | KR101092955B1 (zh) |
CN (1) | CN101655784B (zh) |
DE (1) | DE102009024012A1 (zh) |
TW (1) | TWI408601B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826052B (zh) * | 2010-05-04 | 2012-07-04 | 中国人民解放军国防科学技术大学 | Nual执行语义微处理器中保持延时一致性的断点实现方法 |
CN101866281B (zh) * | 2010-06-13 | 2013-05-22 | 清华大学 | 一种多周期指令执行方法和装置 |
US8522076B2 (en) * | 2010-06-23 | 2013-08-27 | International Business Machines Corporation | Error detection and recovery in a shared pipeline |
US9529596B2 (en) * | 2011-07-01 | 2016-12-27 | Intel Corporation | Method and apparatus for scheduling instructions in a multi-strand out of order processor with instruction synchronization bits and scoreboard bits |
US8635501B2 (en) | 2011-07-25 | 2014-01-21 | Microsoft Corporation | Detecting memory hazards in parallel computing |
CN102830953B (zh) * | 2012-08-02 | 2017-08-25 | 中兴通讯股份有限公司 | 指令处理方法及网络处理器指令处理装置 |
US9268597B2 (en) * | 2014-04-01 | 2016-02-23 | Google Inc. | Incremental parallel processing of data |
WO2019021344A1 (ja) * | 2017-07-24 | 2019-01-31 | オリンパス株式会社 | 画像処理装置および撮像装置 |
CN111857831B (zh) * | 2020-06-11 | 2021-07-20 | 成都海光微电子技术有限公司 | 一种存储体冲突优化方法、并行处理器及电子设备 |
CN111930426A (zh) * | 2020-08-14 | 2020-11-13 | 西安邮电大学 | 一种可重构计算的双模指令集架构及其应用方法 |
US12111913B2 (en) | 2021-09-26 | 2024-10-08 | Ceremorphic, Inc. | Core processor and redundant branch processor with control flow attack detection |
DE112022004589T5 (de) * | 2021-09-26 | 2024-10-24 | Ceremorphic, Inc. | Kernprozessor und redundanter zweigprozessor mit detektion von kontrollflussattacken |
US11921843B2 (en) | 2021-09-26 | 2024-03-05 | Ceremorphic, Inc. | Multi-threaded secure processor with control flow attack detection |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1530826A (zh) * | 2003-01-28 | 2004-09-22 | ���µ�����ҵ��ʽ���� | 低电力动作控制装置及程序最佳化装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05100844A (ja) * | 1991-10-08 | 1993-04-23 | Nec Corp | マイクロ・プロセツサのプログラムウエイト制御回路 |
JPH06161778A (ja) * | 1992-11-26 | 1994-06-10 | Fujitsu Ltd | マルチフロー命令制御方法及び命令処理装置 |
JP3435267B2 (ja) | 1995-11-07 | 2003-08-11 | 株式会社東芝 | マイクロプロセッサ及びそのロードアドレス予想方法 |
US5860000A (en) * | 1996-01-31 | 1999-01-12 | Hitachi Micro Systems, Inc. | Floating point unit pipeline synchronized with processor pipeline |
JP3014682B2 (ja) * | 1997-11-21 | 2000-02-28 | 松下電器産業株式会社 | プログラム制御方法及び装置 |
US6112297A (en) * | 1998-02-10 | 2000-08-29 | International Business Machines Corporation | Apparatus and method for processing misaligned load instructions in a processor supporting out of order execution |
JP2000298652A (ja) * | 1999-04-14 | 2000-10-24 | Mitsubishi Electric Corp | マルチプロセッサ |
WO2000070483A2 (en) * | 1999-05-13 | 2000-11-23 | Arc International U.S. Holdings Inc. | Method and apparatus for processor pipeline segmentation and re-assembly |
WO2001095101A2 (en) | 2000-06-02 | 2001-12-13 | Sun Microsystems, Inc. | Synchronizing partially pipelined instructions in vliw processors |
US7248585B2 (en) * | 2001-10-22 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
US6877077B2 (en) * | 2001-12-07 | 2005-04-05 | Sun Microsystems, Inc. | Memory controller and method using read and write queues and an ordering queue for dispatching read and write memory requests out of order to reduce memory latency |
US6891543B2 (en) * | 2002-05-08 | 2005-05-10 | Intel Corporation | Method and system for optimally sharing memory between a host processor and graphics processor |
US7373536B2 (en) | 2004-08-04 | 2008-05-13 | Kabushiki Kaisha Toshiba | Fine granularity halt instruction |
US7278014B2 (en) * | 2004-12-02 | 2007-10-02 | International Business Machines Corporation | System and method for simulating hardware interrupts |
US7437537B2 (en) * | 2005-02-17 | 2008-10-14 | Qualcomm Incorporated | Methods and apparatus for predicting unaligned memory access |
US7814487B2 (en) | 2005-04-26 | 2010-10-12 | Qualcomm Incorporated | System and method of executing program threads in a multi-threaded processor |
-
2008
- 2008-08-21 JP JP2008213351A patent/JP5395383B2/ja active Active
-
2009
- 2009-06-02 TW TW098118219A patent/TWI408601B/zh active
- 2009-06-04 US US12/478,227 patent/US8200950B2/en active Active
- 2009-06-04 KR KR1020090049577A patent/KR101092955B1/ko active IP Right Grant
- 2009-06-05 DE DE102009024012A patent/DE102009024012A1/de not_active Ceased
- 2009-06-05 CN CN2009101426621A patent/CN101655784B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1530826A (zh) * | 2003-01-28 | 2004-09-22 | ���µ�����ҵ��ʽ���� | 低电力动作控制装置及程序最佳化装置 |
Non-Patent Citations (2)
Title |
---|
JP特开2004-240537A 2004.08.26 |
JP特开平5-100853A 1993.04.23 |
Also Published As
Publication number | Publication date |
---|---|
JP5395383B2 (ja) | 2014-01-22 |
US8200950B2 (en) | 2012-06-12 |
US20100050026A1 (en) | 2010-02-25 |
DE102009024012A1 (de) | 2010-02-25 |
KR20100023731A (ko) | 2010-03-04 |
JP2010049500A (ja) | 2010-03-04 |
KR101092955B1 (ko) | 2011-12-12 |
CN101655784A (zh) | 2010-02-24 |
TW201011644A (en) | 2010-03-16 |
TWI408601B (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101655784B (zh) | 流水线操作处理器和控制系统 | |
TWI494852B (zh) | 維持與處理器內之屏障相關之指令的次序之方法及處理器 | |
US9081606B2 (en) | Asynchronous persistent stores for transactions | |
JP3866261B2 (ja) | ロード/ストア操作をバイパスするために投機的ソースオペランドを使用するシステムおよび方法 | |
US8850121B1 (en) | Outstanding load miss buffer with shared entries | |
CN101776989B (zh) | 乱序执行微处理器及提升效能的方法、执行方法 | |
WO2000068784A1 (en) | Data processing device, method for executing load or store instructions and method for compiling programs | |
JP2007026452A (ja) | 強化マイクロプロセッサのための方法及びシステム | |
CN101164040B (zh) | 用于可变长度指令的功率节省方法和设备 | |
CN105446773A (zh) | 高速缓存行的非对齐加载指令的推测并行执行系统和方法 | |
CN102662634A (zh) | 非阻塞发射和执行的存储器访问执行装置 | |
US20100332800A1 (en) | Instruction control device, instruction control method, and processor | |
CN103729306A (zh) | 经由地址范围检查的多cpu块无效操作绕过 | |
JP2008107983A (ja) | キャッシュメモリ | |
US20220113966A1 (en) | Variable latency instructions | |
JP2005235135A (ja) | ベクトル処理装置、及び、追い越し制御回路 | |
US20230350681A1 (en) | Mechanism for interrupting and resuming execution on an unprotected pipeline processor | |
JP5091481B2 (ja) | リプレイ機構を備えた読み出し/書き込みユニット | |
US20130326200A1 (en) | Integrated circuit devices and methods for scheduling and executing a restricted load operation | |
US6701425B1 (en) | Memory access address comparison of load and store queques | |
US20080244224A1 (en) | Scheduling a direct dependent instruction | |
JP5630281B2 (ja) | ベクトル命令制御回路及びリストベクトルの追い越し制御方法 | |
JP2006525595A (ja) | マイクロプロセッサにおいてデータ推測オペレーションを識別する推測ポインタ | |
US6981127B1 (en) | Apparatus and method for aligning variable-width instructions with a prefetch buffer | |
WO2020214624A1 (en) | Variable latency instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |