多输入多输出处理器流水线数据同步装置及方法

文档序号:10470900阅读:294来源:国知局
多输入多输出处理器流水线数据同步装置及方法
【专利摘要】本发明公开一种多输入多输出处理器流水线数据同步装置及方法,所述装置包括:具有多个运算流水级的多输入多输出功能部件,通过执行对输入操作数的运算响应指令;流水线控制器,接收指令,解析指令所需的输入操作数并判断输入操作数的有效性,若全部有效,则发送指令进入功能部件,若至少一个无效,则发送空指令进入功能部件;流水线控制器接收功能部件的输出请求,并判断可行性,若可行,则在芯片的一个节拍周期内接收所述输出请求,并在一定时间内将输出请求转发至存储器,若不可行,则阻塞功能部件的输出。由此,不仅解决了多输入多输出功能部件的流水线同步化问题,同时能很大程度降低处理器访存开销,提高处理器的访存效率。
【专利说明】
多输入多输出处理器流水线数据同步装置及方法
技术领域
[0001]本发明属于计算机电子领域,特别涉及一种多输入多输出处理器流水线数据同步装置及方法。
【背景技术】
[0002]数据处理设备采用切分多个流水级的流水线处理器,具有能同时执行多条指令的优势,从而可增加处理器主频,提高处理器数据吞吐量,提高处理器运算性能。然而,在执行任何特定指令期间,该指令都将经过处理器的各个流水级,指令经由处理器的最后一个流水级时,指令执行结束,在该点指令修改处理器数据设备反映指令的执行结果。
[0003]对数据同步化的需求源于处理器的功能部件在指令执行阶段需和存储器进行数据交互。例如,当出现了数据读冲突导致功能部件不能在芯片的一个时钟周期节拍内获得所有的输入操作数,则可以延迟指令的发射;或者功能部件的输出数据不能写入目标存储地址或者缓存内,可以阻塞流水线。
[0004]专利文件1(公开号为CN 103383641A)公开了一种多流水线同步装置,在该装置中,控制状态寄存器传送单元完成流水线之间的控制状态寄存器传送,包括流水线A对流水线B的控制寄存器配置操作,以及流水线A对流水线B的状态寄存器读操作。流水线寄存器传送单元完成流水线A中普通寄存器与流水线B中流水线配置寄存器的寄存器传送,以此流水线B得到其运转所需的寄存器信息。同步逻辑单元负责接收调度指令以及阻塞信息,并根据控制状态寄存器,为流水线A产生停顿信号,为流水线B产生调度使能及传递调度信息。但该装置仅支持多核CPU的核间同步,且为单输入单输出处理器流水线数据的同步,并且仅通过同步逻辑单元产生调度使能和停顿信号来实现核内多流水线的同步。在实现核内多流水线的同步时,当功能部件的输入操作数或者输出操作数的个数增加时,功能部件和存储器的交互更加频繁,数据冲突更为严重,如何以一种高效的方式解决多输入多输出功能部件的流水线数据同步化问题更为突出。

【发明内容】

[0005]本发明的目的在于,解决至少上述问题和缺陷,提供一种多输入多输出处理器流水线数据同步装置及方法,解决多输入多输出功能部件流水级数据同步化的控制,提高处理器性能。
[0006]本发明的多输入多输出处理器流水线数据同步装置,设置在具有指令发射器的芯片中,所述同步装置与一个或多个存储器相互通信,其中,所述同步装置包括:
[0007]具有多个运算流水级的多输入多输出功能部件,用于通过执行对多个输入操作数的运算响应指令;
[0008]与所述多输入多输出功能部件相连的流水线控制器:
[0009]用于接收所述指令发射器发送的指令,解析指令所需的输入操作数并判断输入操作数的有效性,若所述输入操作数全部有效,则在芯片周期的一个节拍内,发送指令进入所述多输入多输出功能部件;若所述输入操作数至少一个无效,则发送空指令进入所述多输入多输出功能部件;以及,
[0010]用于接收所述多输入多输出功能部件的多个输出请求,并判断所述输出请求的可行性,若可行,则在芯片的一个节拍周期内接收所述输出请求,并在所述芯片的一个节拍周期内将所述输出请求转发至所述存储器,若判断所述输出请求为不可行,则阻塞所述多输入多输出功能部件的输出;
[0011]与存储器和所述多输入多输出功能部件相连接的预取输入操作数逻辑,用于计算指令所需输入操作数地址,并向所述存储器发送输入操作数预取请求,以及缓存被预取回的数据;
[0012]其中,所述输入操作数的有效性是指,所述流水线控制器正在解析的指令所需的输入操作数已经被所述预取输入操作数逻辑预取或者是正在读取,能够保证在下一个芯片周期节拍内发送至所述功多输入多输出功能部件,则所述输入操作数为有效,否则为无效;
[0013]其中,所述输出请求的可行性是指,所述多输入多输出功能部件输出的输出操作数都能被缓冲器暂存或者都能被读入的存储器,则所述输出请求为可行,否则为不可行。
[0014]本发明的多输入多输出处理器流水线数据同步装置,其中:
[0015]所述流水线控制器是通过设置一输入逻辑,解析指令所需的输入操作数并对输入操作数的有效性进行判断;
[0016]所述流水线控制器是通过设置一输出逻辑,接收所述多输入多输出功能部件的多个输出请求并对所述输出请求的可行性进行判断。
[0017]本发明的多输入多输出处理器流水线数据同步装置,其中:
[0018]若所述输出逻辑阻塞所述多输入多输出功能部件的输出超过芯片周期的一个节拍以上,则阻塞指令进入所述多输入多输出功能部件。
[0019]另外,本发明还提供一种使用上述的多输入多输出处理器流水线数据同步装置实现多输入多输出处理器流水线数据的同步化的方法,包括如下步骤:
[0020]步骤I,所述流水线控制器接收指令发射器发送的指令,解析指令所需的输入操作数并判断输入操作数的有效性,若所述输入操作数全部有效,则在芯片周期的一个节拍内,发送指令进入所述多输入多输出功能部件,若所述输入操作数有至少一个无效,则发送空指令进入所述多输入多输出功能部件;
[0021]步骤2,所述多输入多输出功能部件,按照指令通过运算流水级执行对多个输入操作数的运算,并向所述流水线控制器发送输出请求;
[0022]步骤3,所述流水线控制器接收所述多输入多输出功能部件的多个输出请求,并判断所述输出请求的可行性,若可行,则在芯片的一个节拍周期内接收所述输出请求,并在所述芯片的一个节拍周期内将所述输出请求转发至存储器,若所述输出请求不可行,则阻塞所述多输入多输出功能部件的输出;
[0023]其中,所述输入操作数的有效性是指,所述流水线控制器正在解析的指令所需的输入操作数已经被所述预取输入操作数逻辑预取或者是正在读取,能够保证在下一个芯片周期节拍内发送至所述功多输入多输出功能部件,则所述输入操作数为有效,否则为无效;
[0024]其中,所述输出请求的可行性是指,所述多输入多输出功能部件输出的输出操作数都能被缓冲器暂存或者都能被读入的存储器,则所述输出请求为可行,否则为不可行。
[0025]本发明的多输入多输出处理器流水线数据的同步化的方法,其中,进一步包括如下步骤:
[0026]步骤10,输入逻辑接收所述指令发射器发送的指令,解析指令所需的输入操作数并判断输入操作数的有效性,若所述输入操作数全部有效,则在芯片周期的一个节拍内,发送指令进入所述多输入多输出功能部件;或者所述输入操作数有至少一个无效,则发送空指令进入所述多输入多输出功能部件;
[0027]步骤20,所述多输入多输出功能部件,按照指令通过运算流水级执行对多个输入操作数的运算,并向输出逻辑发送输出请求;
[0028]步骤30,输出逻辑接收所述多输入多输出功能部件的多个输出请求,并判断所述输出请求的可行性,若可行,则在芯片的一个节拍周期内接收所述输出请求,并在一定时间内将所述输出请求转发至所述存储器;或者若所述输出请求不可行,则阻塞所述多输入多输出功能部件的输出。
[0029]本发明的多输入多输出处理器流水线数据的同步化的方法,其中,进一步包括如下步骤:
[0030]步骤40,预取输入操作数逻辑计算指令所需操作数地址,并向存储有所述操作数的存储器发送预取请求,以及缓存被预取回的指令。
[0031]本发明的多输入多输出处理器流水线数据的同步化的方法,其中,若所述输出逻辑阻塞所述多输入多输出功能部件的输出超过芯片周期的一个节拍以上,则阻塞指令进入所述多输入多输出功能部件。
[0032]另外,本发明还提供一种包括上述多输入多输出处理器流水线数据同步装置的数据处理芯片。
[0033]本发明的效果如下:
[0034]根据本发明的多输入多输出功能部件流水线同步化的装置,实现输入数据的解析和预取以及对功能部件的含有多个输出操作数的输出请求应答,因此能够解决多输入多输出功能部件流水级数据同步化的控制,提高处理器性能。
【附图说明】
[0035]图1示出了本发明的实施方式的多输入多输出处理器流水线数据同步装置的构成图。
[0036]图2示出了本发明的另一实施方式的多输入多输出处理器流水线数据同步装置的构成图。
[0037]图3示出了图2的多输入多输出处理器流水线数据同步装置中的解析指令输入操作数有效性的逻辑(即输入逻辑7)的结构图。
[0038]图4示出了图2的多输入多输出处理器流水线数据同步装置中的功能部件输出请求仲裁和处理逻辑(即输出逻辑8)的结构图。
[0039]图5示出本发明的多输入多输出处理器流水线数据同步方法的流程图。
[0040]图6示出本发明的另一实施方式的多输入多输出处理器流水线数据同步方法的流程图。
[0041]图7示出本发明的实施方式的数据处理芯片。
[0042]附图标记说明
[0043]I?4-_RAM存储器、5…流水线控制器、6…多输入多输出功能部件、7…输入逻辑、8…输出逻辑、9..?两输入两输出功能部件、11…输入逻辑7的数据预取逻辑、12…输入逻辑7的内部控制逻辑、13...输入逻辑7的FIFO队列、14...输入逻辑7的数据冲裁逻辑、15...输入逻辑7的数据总线接口、16...输出逻辑8的内部控制逻辑、17...输出逻辑8的FIFO队列、18...输出逻辑8的数据冲裁逻辑、19...输出逻辑8的数据总线接口、100,300…输入控制信号、20(l...输出控制信号、400…多输入多输出处理器流水线数据同步装置、500…数据处理芯片。
【具体实施方式】
[0044]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的多输入多输出处理器流水线数据同步装置及方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0045]图1本发明的多输入多输出处理器流水线数据同步装置的构成图。所述多输入是指:a.输入数据来源于多个不同的RAM存储器;b.—个芯片周期节拍内功能部件的输入操作数可以是零个至多个;所述多输出是指:a.输出数据的目的地址可以是多个不同的RAM存储器;b.—个芯片周期节拍内功能部件的输出操作数可以是零个至多个;具体地,该同步装置包括:多输入多输出功能部件6,其与四个RAM存储器1、2、3、4相对应,可执行指令序列,功能部件I可有多个输入操作数、多个输出操作数,具有多个流水级,通过执行对多个输入操作数的运算响应指令;流水线控制器5,它设置在芯片中,所述流水线控制器接收芯片中指令发射器发送的指令,解析指令所需的输入操作数并判断输入操作数的有效性,如果所需的数据都是有效的,则在芯片的一个节拍周期内,给功能部件发送请求,若所述输入操作数有至少一个无效,则流水线控制器给功能部件发一条气泡指令,此空指令不会影响功能部件内部的数据寄存器;同时此流水线控制器接收功能部件的多个输出请求,并判断输出请求的可行性,若可行,则在芯片的一个节拍周期内接收请求,然后再在一定时间内将请求转发至存储器;若不可行,则阻塞功能部件流水线,但是当流水线控制器阻塞功能部件运算功能时,不阻塞流水线控制器解析当前指令以及数据预取功能。其中输入操作数的有效性是指:当流水线控制器正在解析的指令所需的输入操作数已经被预取或者是正在读取,能够保证在下一个芯片周期节拍内发送至功能部件,则认为输入操作数是有效的,否则认为无效;输出请求的可行性是指:功能部件输出的零个至多个输出操作数,它们都能被buffer暂存或者被读入了待写入的RAM的相应地址,则认为输出请求可行,否则认为输出请求不可行;输入操作数的有效性和输出请求的可行性都是在芯片的一个周期节拍内完成。另外,该具有多个流水级的功能部件6具有一项被配置为缓存一个输入指令操作和数据的buffer缓冲器。另外,流水线控制器在解析当前指令所需的输入数据的有效性的同时,解析之后多条指令功能部件所需的输入操作数,并预取数据。
[0046]图2示出了本发明的另一实施方式的多输入多输出处理器流水线数据同步装置的构成图。在该实施方式的多输入多输出处理器流水线数据同步装置中,作为多输入多输出功能部件而采用两输入两输出功能部件作为9,其与四个RAM存储器1、2、3、4相对应,但是其流水线控制器包括:解析指令输入操作数有效性的逻辑7(以下简称为“输入逻辑”)、功能部件输出请求仲裁和处理逻辑8(以下简称为“输出逻辑”)以及预取指令输入操作数的逻辑10(以下简称“预取输入操作数逻辑”)。
[0047]所述功能部件6包括多个流水级,被配置为通过所述输入操作数来执行响应指令,以及:A、寄存器寄存一条经过解析指令输入操作数有效性的逻辑解析后进入的指令;B、当输出数据的输出请求被输出请求仲裁和处理逻辑拒绝时,停顿功能部件流水线阻塞解析指令输入操作数有效性的逻辑指令进入。两输入两输出功能部件6采用流水线结构进行运算处理想量化数据,此功能部件可用于处理神经网络算法,图像处理算法等算法。
[0048]输入逻辑7,确认功能部件所需的输入操作数个数以及每个输入操作数来自于四个RAM中位置以及数据是否有效,即判断所有输入操作数是否被预取到缓存中或者是否能在芯片周期的一个节拍内被输入到功能部件,以及:A、如果所有输入操作数是否被预取到缓存中或者是否能在芯片周期的一个节拍内被输入到功能部件,则发送指令进入功能部件。B、否则,发送不会影响功能部件状态的空指令进入功能部件。其中发送空指令的目的是,不改变功能部件内部的数据寄存器以免发生数据流错误。另外,对于该输入逻辑7的具体结构将在下文进行阐述。
[0049]输出逻辑8,确认功能部件输出的操作数个数以及输出操作数应写入四个RAM中位置以及相应RAM地址或缓存是否可写入数据,以及:A、如果输出操作数中有任何一个所对应的存储器或者是缓存不可写入数据,则阻塞功能部件流水级输出。B、否则,将多个输出操作数分别写入各自的RAM地址或者是缓存。该输出逻辑8阻塞功能部件6流水级输出后,因为功能部件6能缓存一条经过解析指令输入操作数有效性的逻辑解析后进入的指令,不会立即阻塞输入逻辑7指令进入功能部件。该输出逻辑8阻塞功能部件流水级输出超过芯片周期一个节拍以上时,将阻塞输入逻辑7指令进入功能部件。所述功能部件6阻塞输入逻辑7指令进入时,所述预取指令输入操作数的逻辑功能正常执行。另外,对于该输出逻辑8的具体结构将在下文进行阐述。
[0050]预取输入操作数逻辑10,其被配置为通过指令域和寄存器信息计算之后若干条指令所需操作数地址,并发送预取请求值相应RAM;以及缓存被预取回的指令。
[0051]另外,图3示出了图2中的输入逻辑7的结构。其内部控制逻辑单元接12收外部控制并依据内部的寄存器状态确定发送至运算单元的控制指令,并确定与之相对应所需的操作数。当内部控制逻辑12确认运算单元所需的数据准备好之后将控制指令以及输入操作数发送给运算部件以实现流水线输入数据的同步化控制。为了不使运算部件流水级因等待输入数据而造成停顿,数据预取逻辑将和内部控制逻辑交互提前几个时钟周期解析出运算部件所需的输入操作数并给相应的存储块发送数据预取请求。因此,在输入数据同步化处理逻辑中有FIFO队列13缓存被预取的数据。同时,还有一个输入数据仲裁逻辑单元14确定输入运算部件的数据来源于FIFO队列还是直接从数据总线读取。
[0052]图4示出了图2中的输出逻辑8的结构。其内部控制逻辑单元16接收运算部件传递的控制信号并依照内部寄存器状态确认运算部件输出的操作数个数以及输出操作数应写入的存储块位置以及相应存储块地址或缓存是否可写入数据。同时,输出逻辑8依照输出数据是否可被写入接收判断是否阻塞运算部件流水线。同样的,为了避免运算部件因输出数据被阻塞,输出数据同步化处理逻辑8中含有FIFO队列17缓存不能被及时写入存储块的数据。而且为了维护输出数据一致性,需要有一个数据仲裁逻辑18确定当前时钟周期写入存储的数据来源于FIFO队列或直接从总线读取。
[0053]另外,本发明还提供一种使用上述的多输入多输出处理器流水线数据同步装置实现多输入多输出处理器流水线数据的同步化的方法,如图5所示,包括如下步骤:
[0054]步骤I,所述流水线控制器接收指令发射器发送的指令,解析指令所需的输入操作数并判断输入操作数的有效性,若所述输入操作数全部有效,则在芯片周期的一个节拍内,发送指令进入所述多输入多输出功能部件,若所述输入操作数有至少一个无效,则发送空指令进入所述多输入多输出功能部件;
[0055]步骤2,所述多输入多输出功能部件,按照指令通过运算流水级执行对多个输入操作数的运算,并向所述流水线控制器发送输出请求;
[0056]步骤3,所述流水线控制器接收所述多输入多输出功能部件的多个输出请求,并判断所述输出请求的可行性,若可行,则在芯片的一个节拍周期内接收所述输出请求,并在一定时间内将所述输出请求转发至存储器,若不可行,则阻塞所述多输入多输出功能部件的输出;
[0057]其中,所述输入操作数的有效性是指,所述流水线控制器正在解析的指令所需的输入操作数已经被预取或者是正在读取,能够保证在下一个芯片周期节拍内发送至所述功多输入多输出功能部件,则所述输入操作数为有效,否则为无效;所述输出请求的可行性是指,所述多输入多输出功能部件输出的输出操作数都能被缓冲器暂存或者都能被读入的存储器,则所述输出请求为可行,否则为不可行。
[0058]图6示出本发明的另一实施方式的多输入多输出处理器流水线数据同步方法的流程图。包括如下步骤:
[0059]步骤10,输入逻辑解析指令所需的输入操作数,并判断所有输入操作数是否已被预取到缓存中或者是否能在芯片周期的一个节拍内被输入到所述多输入多输出功能部件,若是,则发送指令进入所述多输入多输出功能部件,若否,则发送空指令进入所述多输入多输出功能部件;
[0060]步骤20,所述多输入多输出功能部件,按照指令通过运算流水级执行对多个输入操作数的运算,并向输出逻辑发送输出请求;
[0061]步骤30,输出逻辑判断所述输出请求的所有输出操作数所对应的存储器地址或者是缓存是否可写入数据,若是,则将所述输出操作数分别写入所对应的存储器地址或缓存,若否,则阻塞所述多输入多输出功能部件的输出。
[0062]本发明的多输入多输出处理器流水线数据的同步化的方法,其中,进一步包括如下步骤:
[0063]步骤40,预取输入操作数逻辑通过指令域和寄存器信息计算指令所需操作数地址,并向存储有所述操作数的存储器发送预取请求,以及缓存被预取回的指令。
[0064]本发明的多输入多输出处理器流水线数据的同步化的方法,其中,所述输出逻辑,阻塞所述多输入多输出功能部件的输出超过芯片周期的一个节拍以上,则阻塞指令进入所述多输入多输出功能部件。
[0065]以下,列举几个具体实施例来对本发明的多输入多输出处理器流水线数据的同步化的方法进行详细说明。
[0066]—个实例中,指令所有所需的数据都已经被预取,同时功能部件输出数据都能被写入相应的RAM或者是buffer缓冲器,则功能部件能每在芯片周期一个节拍内接受一条新指令,功能部件高速运行,并且这是一种极佳的方式,但这不仅于此。
[0067]另一个实例中,指令所需的输入操作数据中有一个未被预取,解析指令输入操作数有效性的逻辑立即发送读请求至此操作数据所在RAM,在此RAM不出现故障的情况下,操作数能在下一个芯片周期节拍被功能部件获取,因此可使指令进入功能部件而不造成阻塞。
[0068]另一个实例中,指令所有所需的输入操作数据都已经有效,但是功能部件输出数据在当前芯片周期节拍有一个或者都不能被写入相应的RAM或者是buffer缓冲器,然而在下一个芯片周期节拍可以写入,由于功能部件能缓存一条输入的指令,功能部件能仍可在下一芯片周期节拍接收指令及数据,不造成阻塞。
[0069]另一个实例中,预取指令输入操作数的逻辑根据当前指令特定域以及寄存器信息计算出之后若干条指令所需操作数的位置地址。在功能部件不和读取当前指令输入操作数据或者写入输出操作数据发生冲突的情况下,其将预取之后指令所需的输入操作数据,这种方式对于神经网络算法尤其有效,因为神经网络的数据种类繁多而且数据的空间局部性极高。在这种方式下,本发明所述的多输入多输出功能部件流水线同步化装置能极大程度减小处理器访存开销,提高处理器性能。
[0070]另外,如图7所示,本发明还提供一种包括上述多输入多输出处理器流水线数据同步装置400的数据处理芯片500。
[0071 ]另外,应当说明的是,本发明所述“指令”是指计算机程序指令,该计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定的方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0072]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0073]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0074]以上对本发明所提供的多输入多输出处理器流水线数据同步装置及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限值。
【主权项】
1.一种多输入多输出处理器流水线数据同步装置,设置在具有指令发射器的芯片中,所述同步装置与一个或多个存储器相互通信,特征在于,所述同步装置包括: 具有多个运算流水级的多输入多输出功能部件,用于通过执行对多个输入操作数的运算响应指令; 与所述多输入多输出功能部件相连的流水线控制器: 用于接收所述指令发射器发送的指令,解析指令所需的输入操作数并判断输入操作数的有效性,若所述输入操作数全部有效,则在芯片周期的一个节拍内,发送指令进入所述多输入多输出功能部件;若所述输入操作数至少一个无效,则发送空指令进入所述多输入多输出功能部件;以及, 用于接收所述多输入多输出功能部件的多个输出请求,并判断所述输出请求的可行性,若可行,则在芯片的一个节拍周期内接收所述输出请求,并在所述芯片的一个节拍周期内将所述输出请求转发至所述存储器,若判断所述输出请求为不可行,则阻塞所述多输入多输出功能部件的输出; 与存储器和所述多输入多输出功能部件相连接的预取输入操作数逻辑,用于计算指令所需输入操作数地址,并向所述存储器发送输入操作数预取请求,以及缓存被预取回的数据; 其中,所述输入操作数的有效性是指,所述流水线控制器正在解析的指令所需的输入操作数已经被所述预取输入操作数逻辑预取或者是正在读取,能够保证在下一个芯片周期节拍内发送至所述功多输入多输出功能部件,则所述输入操作数为有效,否则为无效; 其中,所述输出请求的可行性是指,所述多输入多输出功能部件输出的输出操作数都能被缓冲器暂存或者都能被读入的存储器,则所述输出请求为可行,否则为不可行。2.根据权利要求1所述的多输入多输出处理器流水线数据同步装置,其特征在于: 所述流水线控制器是通过设置一输入逻辑,解析指令所需的输入操作数并对输入操作数的有效性进行判断; 所述流水线控制器是通过设置一输出逻辑,接收所述多输入多输出功能部件的多个输出请求并对所述输出请求的可行性进行判断。3.根据权利要求2所述的多输入多输出处理器流水线数据同步装置,其特征在于, 若所述输出逻辑阻塞所述多输入多输出功能部件的输出超过芯片周期的一个节拍以上,则阻塞指令进入所述多输入多输出功能部件。4.一种使用权利要求1?3的任一项所述的多输入多输出处理器流水线数据同步装置实现多输入多输出处理器流水线数据的同步化的方法,其特征在于,包括如下步骤: 步骤I,所述流水线控制器接收指令发射器发送的指令,解析指令所需的输入操作数并判断输入操作数的有效性,若所述输入操作数全部有效,则在芯片周期的一个节拍内,发送指令进入所述多输入多输出功能部件,若所述输入操作数有至少一个无效,则发送空指令进入所述多输入多输出功能部件; 步骤2,所述多输入多输出功能部件,按照指令通过运算流水级执行对多个输入操作数的运算,并向所述流水线控制器发送输出请求; 步骤3,所述流水线控制器接收所述多输入多输出功能部件的多个输出请求,并判断所述输出请求的可行性,若可行,则在芯片的一个节拍周期内接收所述输出请求,并在所述芯片的一个节拍周期内将所述输出请求转发至存储器,若所述输出请求不可行,则阻塞所述多输入多输出功能部件的输出; 其中,所述输入操作数的有效性是指,所述流水线控制器正在解析的指令所需的输入操作数已经被所述预取输入操作数逻辑预取或者是正在读取,能够保证在下一个芯片周期节拍内发送至所述功多输入多输出功能部件,则所述输入操作数为有效,否则为无效; 其中,所述输出请求的可行性是指,所述多输入多输出功能部件输出的输出操作数都能被缓冲器暂存或者都能被读入的存储器,则所述输出请求为可行,否则为不可行。5.根据权利要4所述的多输入多输出处理器流水线数据的同步化的方法,其特征在于,进一步包括如下步骤: 步骤10,输入逻辑接收所述指令发射器发送的指令,解析指令所需的输入操作数并判断输入操作数的有效性,若所述输入操作数全部有效,则在芯片周期的一个节拍内,发送指令进入所述多输入多输出功能部件;或者所述输入操作数有至少一个无效,则发送空指令进入所述多输入多输出功能部件; 步骤20,所述多输入多输出功能部件,按照指令通过运算流水级执行对多个输入操作数的运算,并向输出逻辑发送输出请求; 步骤30,输出逻辑接收所述多输入多输出功能部件的多个输出请求,并判断所述输出请求的可行性,若可行,则在芯片的一个节拍周期内接收所述输出请求,并在一定时间内将所述输出请求转发至所述存储器;或者若所述输出请求不可行,则阻塞所述多输入多输出功能部件的输出。6.根据权利要5所述的多输入多输出处理器流水线数据的同步化的方法,其特征在于,进一步包括如下步骤: 步骤40,预取输入操作数逻辑计算指令所需操作数地址,并向存储有所述操作数的存储器发送预取请求,以及缓存被预取回的指令。7.根据权利要5所述的多输入多输出处理器流水线数据的同步化的方法,其特征在于, 若所述输出逻辑阻塞所述多输入多输出功能部件的输出超过芯片周期的一个节拍以上,则阻塞指令进入所述多输入多输出功能部件。8.—种包括权利要求1?3的任一项所述的多输入多输出处理器流水线数据同步装置的数据处理芯片。
【文档编号】G06F9/52GK105824604SQ201510824901
【公开日】2016年8月3日
【申请日】2015年11月24日
【发明人】李震, 刘少礼, 张士锦, 罗韬, 钱诚, 陈云霁, 陈天石
【申请人】中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1