CN112861463B - 超导处理器及其输入输出控制模块 - Google Patents
超导处理器及其输入输出控制模块 Download PDFInfo
- Publication number
- CN112861463B CN112861463B CN202110266205.4A CN202110266205A CN112861463B CN 112861463 B CN112861463 B CN 112861463B CN 202110266205 A CN202110266205 A CN 202110266205A CN 112861463 B CN112861463 B CN 112861463B
- Authority
- CN
- China
- Prior art keywords
- register
- data
- state
- write data
- read
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Advance Control (AREA)
Abstract
提供一种用于超导处理器的输入输出控制模块,包括:取指令状态寄存器,用于指示取指令状态或者非取指令状态,以及用于将指令地址输出到内存;读数据等待状态寄存器,用于根据处理器的读数据请求以及取指令状态寄存器由取指令状态转换至非取指令状态,将读数据地址由暂存转换为输出到内存;读数据状态寄存器,用于指示读数据状态,以及用于将读数据地址输出到内存;写数据等待状态寄存器,用于根据处理器的写数据请求以及取指令状态寄存器由取指令状态转换至非取指令状态,将写数据地址和写数据内容由暂存转换为输出到内存;写数据状态寄存器,用于指示写数据状态,以及用于将写数据地址和写数据内容输出到内存。
Description
技术领域
本发明涉及超导电子电路领域,特别涉及一种超导处理器及其输入输出控制模块。
背景技术
目前的RSFQ超导处理器主流设计是利用行波流水,数据通路上任意一条路径经过一个逻辑门都要求其他所有数据路径都经过一个逻辑门来实现时钟对齐,如果没有相应的逻辑门元件,就要在数据通路上添加D触发器(DFF)来实现行波流水。如图1A和图1B所示,图1A是没有实现行波流水的超导逻辑电路的示意图,图1B是添加四个DFF器件实现行波流水的超导逻辑电路的示意图。由图1B可以看出,在添加四个DFF之后,数据通路的任意一条路径经过的超导逻辑器件的数量相等,实现了行波流水。
图1A和图1B中的逻辑门元件就是RSFQ超导逻辑门,由于其物理特性,所有逻辑门元件都需要有一个时钟信号来驱动,时钟信号和数据信号一样,都是单磁通量子。DFF也是如此,有一个时钟接入端口,时钟信号到来时,会把上一个时钟周期内从数据输入端收到的信号发送到数据输出端输出。
行波流水电路的特点是数据整体进入运算逻辑电路后,就在电路中连续运算传输下去,直到电路末端输出结果。这种使用行波流水的超导电路可以实现很高的运行频率,其特点在于每个逻辑门元件都需要时钟驱动,因此在没有逻辑门的纵向流水级,需要添加DFF触发器,同一个纵列(如图1B中虚线框所示的列1、列2和列3)组成一级行波流水级。因此在每个时钟周期都可以从数据输入端输入一组数据,然后每当时钟信号到来,数据流都会向下一级流动。但是与传统流水线概念不同,由于超导信号的传输需要通过约瑟夫森传输线(JTL)传递,其传播速度远低于电信号的传输速度,因此一条跨越若干流水级的JTL会造成极大的时间延迟,虽然超导电路可以很高速的运行,但是很难做到数据反馈。也就是说数据是“一次性”输入,“一次性”输出的,中间如果有需要数据前递,将会面临极大的设计困难。
同时,在现有的半导体处理器设计(例如,经典的五级流水线架构)中,通过下一级的反馈信号对上一级的流水线级进行控制,因此各级流水线之间存在很多反馈信号控制线,跨越多个流水级进行传递。这在使用导线传递电平信号时,可以忽略数据传输时间,因为电场信号在导体中传递速度达到光速量级。然而在RSFQ超导电路中,这样规模的磁通量子传导线JTL造成的时延是相当大的,跨越两个流水级距离的JTL造成的时延可能远超电路运行的时钟周期。这意味着在一个时钟周期内,反馈数据信号将难以达到目的地,然而反馈信号的作用就是及时控制流水线的运行状态,如果延迟若干个时钟周期才到达,将会引起很多运行问题,因此现有的半导体处理器设计不适用于RSFQ超导处理器。
发明内容
基于现有技术的上述缺陷,本发明提出一种用于超导处理器的输入输出控制模块,包括:
取指令状态寄存器,用于指示取指令状态或者非取指令状态,其根据所述处理器的取指令请求以及是否完成取指令操作设置,以及用于将指令地址输出到内存,所述内存用于存储所述超导处理器执行的指令和数据;
读数据等待状态寄存器,用于根据所述处理器的读数据请求以及所述取指令状态寄存器由所述取指令状态转换至非取指令状态,将读数据地址由暂存转换为输出到所述内存;
读数据状态寄存器,用于指示读数据状态,其根据所述处理器的读数据请求以及非取指令状态设置,以及用于将读数据地址输出到所述内存;
写数据等待状态寄存器,用于根据所述处理器的写数据请求以及所述取指令状态寄存器由所述取指令状态转换至非取指令状态,将写数据地址和写数据内容由暂存转换为输出到所述内存;
写数据状态寄存器,用于指示写数据状态,其根据所述处理器的写数据请求以及非取指令状态设置,以及用于将写数据地址和写数据内容输出到所述内存。
优选地,所述读数据等待状态寄存器接收到所述处理器的读数据请求,且此时处于取指令状态时,所述读数据等待状态寄存器指示读数据等待状态,以及
其中,所述写数据等待状态寄存器接收到所述处理器的写数据请求,且此时处于取指令状态时,所述写数据等待状态寄存器指示写数据等待状态。
优选地,所述输入输出控制模块还包括第一信号选择模块、数据地址缓存寄存器以及数据地址输出寄存器,所述第一信号选择模块被配置为:
当所述读数据等待状态寄存器指示读数据等待状态或者所述写数据等待状态寄存器指示写数据等待状态时,将读/写数据地址输出至数据地址缓存寄存器中,而当所述读数据等待状态寄存器没有指示读数据等待状态且所述写数据等待状态寄存器没有指示写数据等待状态时,将读/写数据地址输出至数据地址输出寄存器中。
优选地,所述输入输出控制模块还包括第二信号选择模块、数据内容缓存寄存器以及数据内容输出寄存器,所述第二信号选择模块被配置为:
当所述写数据等待状态寄存器指示写数据等待状态时,将写数据内容输出到所述数据内容缓存寄存器中,而当所述写数据等待状态寄存器没有指示写数据等待状态时,将写数据内容输出到所述数据内容输出寄存器中。
优选地,所述输入输出控制模块还包括第三信号选择模块,所述第三信号选择模块被配置为:
当所述取指令状态寄存器指示取指令状态时,将指令地址输出至内存;而当所述读数据状态寄存器指示读数据状态或者所述写数据状态寄存器指示写数据状态时,将所述数据地址输出寄存器中存储的读/写数据地址输出至内存。
优选地,所述输入输出控制模块还包括判断模块,其被配置为根据当前状态判断从内存读回的数据或指令的类型,
如果此时处于取指令状态,则指示读回的信息为指令内容,所述判断模块将该取回的指令传输至所述处理器的译码组合电路,如果此时处于读数据状态,则指示读回的信息为数据读回,所述判断模块将该取回的数据传输至所述处理器的写回组合电路。
优选地,当处于读数据等待状态时,如果此时所述读数据等待状态寄存器检测到指令读取完成,则将所述读数据等待状态寄存器的值输出至读数据状态寄存器,使得读数据等待状态结束,并且所述读数据状态寄存器指示读数据状态,并同时将数据地址缓存寄存器的内容输出到数据地址输出寄存器中,以输出至内存。
优选地,当处于写数据等待状态时,如果此时所述写数据等待状态寄存器检测到指令读取完成,则将所述写数据等待状态寄存器的值输出至写数据状态寄存器,使得写数据等待状态结束,并且所述写数据状态寄存器指示写数据状态,同时将数据内容缓存寄存器的内容输出到数据内容输出寄存器中,以输出至内存。
优选地,所述取指令状态寄存器、读数据等待状态寄存器、读数据状态寄存器、写数据等待状态寄存器以及写数据状态寄存器是NDRO。
本发明还提供一种超导处理器,所述超导处理器包括:
上述内容所述的输入输出控制模块;
组合电路,其包括取指模块组合电路、译码组合电路、运算器组合电路以及写回组合电路,所述组合电路由所述输入输出控制模块控制以与内存进行数据交换;
所述组合电路的每一个之间至少包含一个流水线间寄存器组,所述寄存器组与所述组合电路进行数据交换;
其中所述输入输出控制模块通过向所述流水线间寄存器组的每一个发送清零信号,控制所述流水线间寄存器组的每一个的清零。
优选地,所述输入输出控制模块通过向所述译码组合电路发送无内容的空指令以控制整个流水线进入等待状态。
本发明提出的四级流水线结构紧凑,可高效的实现数据处理。本发明的超导流水线技术可以节约当前超导电路设计中,为了实现行波流水而添加的大量DFF触发器,节约电路面积和超导元件数量。
附图说明
图1A是没有实现行波流水的超导逻辑电路的示意图;
图1B是添加DFF器件实现行波流水的超导逻辑电路的示意图;
图2是本发明一个实施例的可清零超导寄存器组的电路图;
图3是本发明一个实施例的超导流水线电路的示意图;
图4是本发明一个实施例的四级流水线超导处理器的示意图;
图5A是本发明一个实施例的IF/ID寄存器组的内部寄存器分布示意图;
图5B是本发明一个实施例的ID/EX寄存器组的内部寄存器分布示意图;
图5C是本发明一个实施例的EX/WB寄存器组的内部寄存器分布示意图;
图6是本发明一个实施例的I/O模块的内部结构示意图。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,下面结合附图通过具体实施例对本发明作进一步详细说明。
现有典型的RSFQ超导电路设计是通过添加DFF来实现与逻辑门时钟对齐的行波流水电路,其运算效果是使输入数据在电路中通过行波流水的方式逐级传递,进行相应的逻辑运算。这种电路中,每个逻辑门和DFF都接入有一个快速时钟(fast clock,在本文中称为fclk)。每次fclk到来时,电路中的数据都会流向后续一列“行波流水级”,注意这里的“行波流水级”是指图1B所示的行波流水电路中的一列(如图1B虚线框所示的列1、列2以及列3),和本发明中所指的整体处理器的“流水线级”不是一个概念。这样的行波流水电路,在每个fclk周期都可以输入一组数据,如果一个行波流水超导电路有m个行波流水级,即有m列逻辑门,那么在同一时刻,电路中可以有最多m组不同的数据存在,分别在m个行波流水级中进行传递,然后每个fclk时钟周期,输出端口都会输出一组运算结果。
这种经典的使用单时钟的行波流水超导电路,优点是运算速度快,快速时钟fclk的频率可以非常高,现有研究成果已经可以达到70GHz甚至更高。但是缺点是难以实现行波流水线的控制,数据一旦输入,就会一直传输下去,在电路中进行传递,该过程中难以让数据停止,或者反馈给前级电路。并且在电路设计时,为了保证数据传递的整齐,行波流水线的稳定,需要添加大量DFF来使电路实现行波流水,与逻辑门电路对齐,增加了电路的面积。
为了实现流水线清零以及跳转等的流水线控制,本发明优选地使用带有清零功能的超导寄存器组(也称为可清零寄存器组)来组织处理器电路,提供一种高效的四级流水线超导处理器。本发明中的超导可清零寄存器组例如可以由公布号为CN111049503A、发明名称为“一种超导触发器及其运行方法”的中国专利申请中所公开的超导触发器组成,但是也可以使用其他基于约瑟夫森结组成的具有锁存功能的超导寄存器组。
图2是本发明一个实施例的可清零超导寄存器组的电路图,如图2所示,超导寄存器组200包括四个超导触发器,每个超导触发器由分离器(SPL)、可复位触发器(RDFF)以及非破坏读出寄存器(NDRO)组成。其中,SPL包括用于接收使能信号EN的数据输入端,并将该使能信号EN分别输出到NDRO的重置端以及RDFF的时钟输入端;RDFF的数据输入端用于接收输入数据(In0-In3),RDFF的重置端用于接收清零信号clear;NDRO的数据输入端用于接收来自RDFF的输出数据,NDRO的时钟输入端用于接收快速时钟fclk信号,NDRO的数据输出端用于将数据输出(Out0-Out3)。
图2所示的可清零超导寄存器组中,快速时钟fclk用于配合寄存器组之间的组合电路工作;使能信号EN用于控制整体处理器流水线的工作,同时还有一个清零信号clear,用于对RDFF中的数据清零。该寄存器组例如可以采用纵向排列,通过共用快速时钟fclk、使能信号EN以及清零信号clear,可以实现在使能信号EN到来后同步读取数据(即使能信号EN到来后,同步将数据读取到NDRO中),在快速时钟fclk到来后,同步发送数据,在清零信号clear到来后的下一个使能信号EN到来时,同步清空寄存器组。
在流水线电路设计中,使用可清零寄存器组,最主要的功能是可以实现流水线的清零,比如在经典的传统五级流水线处理器设计中,如果遇到一条跳转指令,需要在第3级“执行级”才能得到是否跳转的结论,此时后续指令已经加载到“取指级”和“译码级”,如果需要执行跳转,那么就要把前面两级的流水线数据清空,不再执行错误的指令。利用本发明的可清零的寄存器组就能够实现这样的设计需求。
图3是本发明一个实施例的超导流水线电路的示意图,如图3所示,该超导流水线电路300包括第一可清零寄存器组301、第一逻辑组合电路302、第二可清零寄存器组303、第二逻辑组合电路304以及第三可清零寄存器组305。应当注意,图3中所示的可清零寄存器组以及逻辑组合电路的数量仅仅是示例性的,根据实际应用可使用更多或更少的可清零寄存器组以及逻辑组合电路的数量。图3中的清零信号clear被输入到图2所示的寄存器组的clear输入端,作用是清空寄存器组。在本发明的处理器中,该清零信号clear由输入输出控制模块(I/O模块)产生(请参考图4)。
如图3所示,第一可清零寄存器组301用于在使能信号EN的控制下接收数据输入,并在快速时钟fclk的控制下,将接收的输入数据输出到第一逻辑组合电路302;第一逻辑组合电路302经运算之后,在快速时钟fclk的控制下,将数据输出到第二可清零寄存器组303;第二可清零寄存器组303用于在使能信号EN的控制下接收数据,并在快速时钟fclk的控制下,将接收的数据输出到第二逻辑组合电路304;第二逻辑组合电路304经运算之后,在快速时钟fclk的控制下将数据输出到第三可清零寄存器组305;第三可清零寄存器组305用于在使能信号EN的控制下接收数据,并在快速时钟fclk的控制下,将接收的数据进行输出。用于控制第一可清零寄存器组301、第二可清零寄存器组303以及第三可清零寄存器组305的清零信号clear由图4所示的I/O模块409产生,后面将结合图4详细描述。
图3中的逻辑组合电路是指省略DFF以后的由超导逻辑门组成的电路,虽然称为“组合电路”但是由于超导元件的特点,其内部每个逻辑门依然接入了时钟信号,工作频率均为fclk(但本发明不限于此,实际应用中也可以使用其他频率的时钟信号)。图3中的流水线结构的使能信号EN,控制可清零寄存器组的数据读取,只有使能信号EN到来之后的一个快速时钟fclk周期内,可清零寄存器组才会将从组合电路部分输入的数据写入可清零寄存器组的NDRO中,然后以fclk的快速时钟周期不断的发出数据,提供给后续逻辑组合电路运算。所以使能信号EN是用于控制流水线整体工作的信号,快速时钟fclk用于提供给超导元件保证超导逻辑门的正常工作。
下面将结合图2和图3具体说明超导流水线电路中的清零功能。
在正常数据传输过程中,输入数据会存储在第一可清零寄存器组301的RDFF中,等使能信号EN到达后,先对NDRO清零,同时RDFF的时钟输入端接收到使能信号EN,经过RDFF器件本身的延时之后,将数据输出到NDRO中(此时,NDRO已经完成清零),随后快速时钟fclk到达,NDRO会将数据持续输出到第一逻辑组合电路302中;第一逻辑组合电路302对所接收的数据进行运算处理之后,在快速时钟fclk的控制下,将结果输出到第二可清零寄存器组303中。由于第一逻辑组合电路302中没有添加DFF,即数据通路的任意一条路径经过的超导逻辑器件的数量不相等(可以参考图1A的没有实现行波流水的电路),因此第一逻辑组合电路302中的各个路径进行数据处理并输出的时间并不相同,因此需要设计使能信号EN的时钟周期足够长,使得在第一逻辑组合电路302中,运算时间最长的路径可以完成运算并输出数据,在第一逻辑组合电路302运算期间,第一可清零寄存器组301在快速时钟fclk的作用下持续向第一逻辑组合电路302输入数据,使得第一逻辑组合电路302中的运算时间较短的路径可以持续运算并产生输出。当第一逻辑组合电路302中,运算时间最长的路径完成运算后,使能信号EN到达,第二可清零寄存器组303即可接收来自第一逻辑组合电路302的输出数据,并在快速时钟的作用下继续传输数据。
当后续的流水级发现有例外或者指令跳转时,则可以由I/O模块(图3中未示出,具体参见图4)向流水线间寄存器组发送清零指令,及时清除无效的指令信息,保证流水线的连续高效运行。例如,如图3所示,当在第二逻辑组合电路304中发现有例外等情况,则会通过I/O模块向第一可清零寄存器组301以及第二级可清零寄存器组303发送清零信号,第一和第二可清零寄存器组的RDFF的重置端接收到清零信号clear后,其RDFF变为零状态,在使能信号EN到来后,NDRO被清零,且由于RDFF中没有数据输出到NDRO中,因此在快速时钟fclk到来后,NDRO不会有数据输出到下级逻辑组合电路中,即实现了流水线的清零。
图4是本发明一个实施例的四级流水线超导处理器的示意图,处理器400包括取指模块组合电路(IF)401、译码组合电路(ID)403、运算器组合电路(EX)407、写回组合电路(WB)406以及输入输出控制模块(I/O模块)409。图4所示的处理器400还包括流水线间寄存器组,包括IF/ID寄存器组(IF/ID reg)402、ID/EX寄存器组(ID/EX reg)404、EX/WB寄存器组(EX/WB reg)408以及寄存器堆(RegFile)405。为了便于理解,图4中的流水线间寄存器可以选用图2所示的可清零超导寄存器组,在clear信号到来后,会把寄存器内容清空,以控制流水线的清零(例如在开始对处理器进行通电时,发送clear信号,以对处理器进行初始化)。但本发明不限于此,实际应用中也可以采用其他类型的带有清零功能的超导寄存器组。应当注意,本发明利用I/O模块409统筹整个处理器的数据运行,为了不模糊本发明,图4中省略了超导组合电路中提供给每个超导逻辑门元件的快速时钟,省略了三个流水线间寄存器组和I/O模块接入的快速时钟和使能信号。
图4中的每个流水线间寄存器组中可以包括多个寄存器组,以满足数据传输和处理的需求。图5A至图5C中示例性地给出了寄存器的结构示意图,应当注意,图5A至图5C中的寄存器结构仅是示例性的,实际应用中可根据需要使用不同的寄存器结构。图5A是本发明一个实施例的IF/ID寄存器组402的内部寄存器分布示意图,其中的箭头表示数据传输方向。IF/ID寄存器组402包括PC寄存器(PC)、跳转地址寄存器(PC_JMP)、PC地址选择位寄存器(PC_SRC)以及PC递增信号寄存器(PC_ADDER)。其中PC寄存器用于存储指令地址,PC_JMP用于存储来自ID模块的跳转地址,PC_SRC用于指示当前是否需要跳转,例如值为1则指示需要跳转,以及PC_ADDER用于指示当前PC值是否需要加1,例如值为1则指示当前PC值需要加1。
参见图5A和图4,当需要取指令时,IF 401接收来自PC寄存器的指令地址,并将该指令地址以及读指令请求通过双向通路1发送给I/O模块409,以通过I/O模块409向内存410读取指令。I/O模块409读指令完成后,将指令内容通过单向通路2发送至ID 403,并将读指令完成信号(读指令Ready信号)通过双向通路1发送至IF 401,以通知IF 401指令读取完成,IF 401即可以控制读取下一条指令。IF 401在收到读指令完成信号后,会将该信号传输给PC_ADDER,使得PC_ADDER的值为1,然后通过IF 401中的加法器将当前PC值(即当前地址)加1,得到next PC值,并将该next PC值写回IF/ID寄存器组402中的PC寄存器中,用于更新PC值,更新后的PC值即为该next PC值。当需要跳转时,ID 403会将得到的跳转地址传输至PC_JMP中,并将PC_SRC置1,当IF 401检测到PC_SRC的值为1时,会直接取PC_JMP中的跳转地址并传输到I/O模块。在本发明的其他实施例中,如果是多发射指令的情况,PC寄存器还可以向ID 403传输指令地址,以与取回的指令相对应。
图5B是本发明一个实施例的ID/EX寄存器组的内部寄存器分布示意图,其包括操作数1寄存器(num1_reg),操作数2寄存器(num2_reg)以及控制位寄存器(control_reg)。其中num1_reg和num2_reg用于接收从寄存器堆405取出的数据,control_reg用于接收来自ID403的控制信号,该控制信号可包括具体指令操作符、目的寄存器地址等以指示EX模块执行何种运算操作。
参见图5B和图4,ID 403可以通过单向通路2接收来自I/O模块409所读取的指令内容,并对指令内容进行译码处理。ID 403通过单向通路8向寄存器堆405发送操作数地址,并通过单向通路9接收从寄存器堆405所取得的数据,随后ID 403将该数据通过单向通路7发送至ID/EX寄存器组404中的num1_reg和/或num2_reg。ID 403译码产生的控制信号也通过单向通路7发送至ID/EX寄存器组404中的control_reg。EX 407接收来自num1_reg和/或num2_reg的数据,并根据control_reg中的控制信号执行相应的操作。
图5C是本发明一个实施例的EX/WB寄存器组的内部寄存器分布示意图,其包括数据寄存器(data_reg)、地址寄存器(reg_addr),取数据状态位寄存器(load_op),写回指示位寄存器(reg_op)。其中data_reg用于接收来自EX 407的运算结果。reg_addr用于接收来自EX 407的目的寄存器地址。load_op指示当前是否处于数据读取状态,如果该位是1,则表示处理器处于数据读取状态,那么WB 406不动作,等待数据取回后(即WB 406接收到读数据完成信号(读数据ready信号)),将取回的数据写回寄存器堆的reg_addr地址。reg_op用于指示当前执行的指令结果是否需要写回寄存器堆,如果该位是1,那么WB模块会把data_reg中的数据写入寄存器堆的reg_addr地址。
EX 407可以通过单向通路3向I/O模块409发送读数据请求、读数据地址、写数据请求、写数据地址以及写数据内容。EX 407运算完成后通过单向通路11将运算结果传输至data_reg,将目的寄存器地址传输至reg_addr。当WB 406检测到reg_op为1时,就将data_reg中的数据写入寄存器堆405的reg_addr中的地址。WB 406可通过单向通路4接收来自I/O模块409的读写完成信号(读写ready信号)以及读回的数据。当WB406检测到load_op为1,且接收到读数据ready信号时,WB 406就会将读回的数据通过单向通路13写入寄存器堆405的reg_addr地址。
图6本发明一个实施例的I/O模块的内部结构示意图。I/O模块409可以通过双向通路0向内存(RAM)410发送数据读信号(可以是取指令请求或读数据请求)、地址(可以是指令地址或数据地址)、数据写信号、以及数据输出(即写数据内容),并从内存410接收读回的数据、读回的指令以及ready信号(可以是读指令完成信号、读数据完成信号或写数据完成信号)。应当注意,这里的“数据读取”指的是处理器400从内存410中读取数据,“数据写”是指处理器400向内存410写入数据,不包括对寄存器堆405的读写。I/O模块409还用于向流水线间寄存器组,包括IF/ID寄存器组402、ID/EX寄存器组404、EX/WB寄存器组408以及寄存器堆405发送清零信号,以控制流水线间寄存器组的清零。
如图6所示,I/O模块409包括取指令状态寄存器502、读数据等待状态寄存器503、读数据状态寄存器504、写数据等待状态寄存器505、写数据状态寄存器506、数据地址缓存寄存器507、数据地址输出寄存器508、数据内容缓存寄存器509、数据内容输出寄存器510、判断模块501以及信号选择模块511、512和513。其中取指令状态寄存器502、读数据等待状态寄存器503、读数据状态寄存器504、写数据等待状态寄存器505以及写数据状态寄存器506这五个状态寄存器用于表示当前的工作状态,进而根据不同的工作状态来决定输入端和输出端的数据流向。例如当取指令状态寄存器502的值为1时,则表示I/O模块409目前处于取指令状态,值为0时,则表示I/O模块目前没有处于取指令状态。这五个状态寄存器可以是五个一位的寄存器,例如单个的NDRO器件或其他带有锁存功能的寄存器,这五个状态寄存器也可以是一个五位的寄存器,只要能表示五个工作状态即可。
数据地址缓存寄存器507和数据地址输出寄存器508用于接收读/写数据地址,数据内容缓存寄存器509和数据内容输出寄存器510,用于接收写数据内容。信号选择模块512是逻辑组合电路,其例如可以由基本的与门、或门以及非门组成,其功能是,当读数据等待状态寄存器503或者写数据等待状态寄存器505的状态为1时,将读/写数据地址输出至数据地址缓存寄存器507,而当读数据等待状态寄存器503和写数据等待状态寄存器505的状态均为0时,将读/写数据地址输出至数据地址输出寄存器508中。信号选择模块513是逻辑组合电路,其例如可以由基本的与门、或门以及非门组成,其功能是,当写数据等待状态寄存器505的状态为1时,将写数据内容输出到数据内容缓存寄存器509中,而当写数据等待状态寄存器505的状态为0时,将写数据内容输出到数据内容输出寄存器510中。信号选择模块511也是逻辑组合电路,其例如可以由基本的与门、或门以及非门组成,其功能是,当取指令状态寄存器502的状态为1时,输出指令地址,而当读数据状态寄存器504或者写数据状态寄存器506的状态为1时,将数据地址输出寄存器508中存储的读/写数据地址输出。
内存410不需要判断请求的数据是指令还是数据,内存410的存储空间可针对本发明中的CPU特别设计,其指令空间和数据空间的划分在CPU开始工作之前就已经确定。因此内存410只需要根据CPU提出的取数据请求信号和对应的地址获取数据,然后传回CPU即可。
图6中的判断模块501根据状态寄存器的当前状态判断读回的数据或指令的类型。如果此时处于取指令状态(即取指令状态寄存器502的值为1),则读回的信息为指令内容,ready信号为读指令完成信号,I/O模块409可将该取回的指令通过数据通路2传输至ID403,并将读指令完成信号通过数据通路1传输至IF 401。如果此时处于读数据状态(即读数据状态寄存器504的值为1),则读回的数据或指令为数据读回,I/O模块409可将该数据读回通过数据通路4传输至WB 406,并将读/写完成信号通过数据通路4传输至WB 406。判断模块501可以是逻辑组合电路,其例如可以由基本的与门、或门以及非门组成。
以下结合图4-6对I/O模块409的工作状态和流程进行详细的描述。在本发明中,默认状态为指令读取状态,优先进行指令读取操作。当I/O模块409接收到取指令请求和指令地址时,取指令状态寄存器502的状态变为1,当指令读取完成,接收到读指令完成信号时,取指令状态寄存器502的状态变为0。在取指令状态寄存器502的状态变为0后,如果没有遇到EX 407发送来的数据读/写请求,那么继续自动进入指令读取状态,即取指令状态寄存器502的状态变为1,向外请求下一条指令内容。
当遇到数据读取指令时,由EX 407发送过来读数据请求和需要读取数据的读数据地址,1)如果此时正处于指令读取状态(即取指令状态寄存器502的值为1),那么进入数据读取等待状态,即读数据等待状态寄存器503的值变为1,读数据地址缓存至数据地址缓存寄存器507中;等指令读取完成后,即读数据等待状态寄存器503接收到读指令完成信号后,将读数据等待状态寄存器503中锁存的数据输出到读数据状态寄存器504,此时读数据状态寄存器504的状态变为1,而读数据等待状态寄存器503的状态变为0,并将读数据地址从数据地址缓存寄存器507输出到数据地址输出寄存器508中,进入数据读取状态;2)如果此时处于空闲状态,则直接进入数据读取状态,即读数据状态寄存器504的值变为1,读数据地址直接存储至数据地址输出寄存器508中。最后,通过CPU与外部的接口发送数据读取信号和目标地址值。当数据读完成之后,接收到读数据完成信号时,读数据状态寄存器504的值变为0。
当遇到数据写回指令时,由EX 407发送写数据请求和写数据地址以及写数据内容,1)如果此时正处于指令读取状态,即取指令状态寄存器502的状态为1,那么进入数据写回等待状态,即写数据等待状态寄存器505的值变为1,需要写回的数据目标地址(写数据地址)缓存至数据地址缓存寄存器507中,需要写回的数据(写数据内容)缓存至数据内容缓存寄存器509中;等指令读取完成后,即写数据等待状态寄存器505接收到读指令完成信号后,将写数据等待状态寄存器505中锁存的数据输出到写数据状态寄存器506,此时写数据状态寄存器506的状态变为1,而写数据等待状态寄存器505的状态变为0,并将写数据地址从数据地址缓存寄存器507输出到数据地址输出寄存器508中,写数据内容从数据内容缓存寄存器509输出到数据内容输出寄存器510中,进入数据写回状态;2)如果此时处于空闲状态,则直接进入数据写回状态,即写数据状态寄存器506的值变为1,写数据地址直接存储至数据地址输出寄存器508中,写数据内容直接存储至数据内容输出寄存器510中。最后,通过CPU与外部的接口发送数据写信号、地址值以及需要写回的数据值。当数据写指令完成之后,接收到写数据完成信号时,写数据状态寄存器506的值变为0。
以上给出了流水线中信号传递的典型内容,实际实现中包括但不限于上述的信号,可以根据实际指令集设计灵活修改。根据具体指令集的不同,图4所示的处理器400可以实现各种具体的指令操作。本发明的超导处理器主要面向RISC(精简指令集)类型,其特点在于一般源操作数来自于寄存器,运算结果也是存储到寄存器中。当然本发明的流水线架构也可以实现其他类型的指令集。本发明的四级流水线处理器400的流水线工作流程如下:
(1)IF 401通过双向通路1向I/O模块409申请读指令,其指令地址来源于IF/ID寄存器组402中的PC寄存器,I/O模块409得到读指令请求和指令地址后,其内部的取指令状态寄存器502值为1,并向内存410发出数据读信号和指令地址以读取指令;
(2)外部读回指令,内存410将读回的指令以及读指令完成信号发送给I/O模块409,I/O模块409将读回的指令内容通过双向通路2传输给ID 403,在等待读取指令期间,I/O模块409一直在双向通路2上发送无内容的空指令,使得ID 403保持空转等待,直到指令取回。此后,ID 403对指令内容进行译码处理。下面分情况描述:
(3)如果取回的是一条跳转指令,那么此时ID 403已经得到跳转的目的地址,将会直接将跳转地址写回IF/ID寄存器组402的PC_JMP中,并且将PC_SRC的值置1,在下一次取指令时,IF就会发送出PC_JMP中的指令地址,节约大量反馈信号线和流水线时间;
(4)如果取回的是一条普通逻辑运算指令,有一个或两个操作数参与运算,那么ID403就会把操作数的寄存器地址发送到寄存器堆405,寄存器堆405会立即根据单向通路8提供的寄存器地址,将操作数内容通过单向通路9发送给ID 403。ID 403通过ID/EX寄存器组404将操作数和译码产生的控制信号发送至EX 407。EX 407计算完成后将运算结果和要写回的目的寄存器地址发送到EX/WB寄存器组408,WB 406通过单向通路12得到信息后会将运算结果通过单向通路13写回寄存器堆405;
(5)如果ID 403得到一条读内存指令,会把相应译码信息通过ID/EX寄存器组404发送至EX 407,EX 407此时不进行计算,而是通过单向通路3向I/O模块发出读数据请求,并提供数据地址,同时EX 407通过单向通路11向EX/WB寄存器组408中的reg_addr发送目的寄存器地址。I/O模块409得到读数据请求后,向内存410发送读数据信号,提供数据内存地址,此后由于处理器400内外电路工作频率不一致,需要处理器等待一段时间才能得到读回的数据,此时I/O模块409会控制整个流水线进入等待状态,具体地,I/O模块409会一直在双向通路2上发送无内容的空指令,ID 403保持空转等待,此时IF 401由于不会收到读指令完成信号,因此IF 401不会读取下一条指令,ID 403由于一直接收到空指令,会将空数据发送到ID/EX寄存器组404,使得ID/EX寄存器组404被清空,同时,由于EX 407此时不进行计算,因此不会有新的数据输送到EX/WB寄存器组408中,因此EX/WB寄存器组408会在读数据完成信号到来之前保持不变,整个流水线处于不工作的等待状态。已经发送到I/O模块409的信息会暂存。等待数据取回后,I/O模块409将读回的数据通过单向通路4发送给WB 406,然后恢复流水线的继续运行。WB 406得到取回的数据,根据EX/WB寄存器组408中的reg_addr提供的目的寄存器地址,将数据写入寄存器堆405。
(6)如果ID 403得到一条写内存指令,会把相应的寄存器地址通过数据通路8发送至寄存器堆405,寄存器堆405将需要写入内存的数据通过数据通路9传输至ID 403。ID 403通过ID/EX寄存器组404将需要写入内存的写数据内容以及要写入内存的写数据地址传输至EX 407。EX 407此时不进行计算,而是通过单向通路3向I/O模块409发出写数据请求,并提供写数据地址和写数据内容。I/O模块409得到写数据请求后,向内存410发送写数据信号,提供数据和目标内存地址,此后由于处理器内外电路工作频率不一致,需要处理器等待一段时间才能得到写入完成信号,此时I/O模块409会控制整个流水线进入等待状态,已经发送到I/O模块的信息会暂存,等待数据写入完成后,恢复流水线工作。
本发明提出的超导处理器包括由现有的非行波流水电路(即未添加DFF以实现行波流水的电路)组成的组合电路部分,以及由可清零超导寄存器组构成的流水线间寄存器组部分,实现了经典半导体电路的寄存器转换级电路(Register Transfer Level,RTL)效果。利用上述的超导寄存器,可以节约超导组合电路部分用于时钟对齐的DFF触发器,节约大量电路面积和超导元件。
本发明提出了一种高效的四级流水线处理器,各级流水线紧密合作,引入一个I/O控制模块,作为处理器与外界的接口进行数据交互,同时管理各级流水线的数据分发,节约大量反馈信号线和流水线时间。本发明提出了一种简洁高效的RSFQ超导处理器架构,每个流水级之间紧密合作,数据通路简短迅速,尽可能实现超导处理器高主频的优点,同时克服JTL传输线高时延的缺点。
应当注意的是,上述实施例中仅给出了简单的处理器(例如8位处理器)的示例,以详细说明I/O控制模块与各级流水线电路的数据传输以及控制。本领域技术人员根据本发明公开的内容,可以容易地应用于更多位(机器字长)的处理器。并且根据复杂处理器的需要,可以实现经典流水线中的其他功能,例如相对跳转、阻塞等。
最后应该说明的是,以上实施例仅用以解释本发明的技术方案而非限制。尽管上文参照实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围中。
Claims (9)
1.一种用于超导处理器的输入输出控制模块,包括:
取指令状态寄存器,用于指示取指令状态或者非取指令状态,其根据所述处理器的取指令请求以及是否完成取指令操作设置,以及用于将指令地址输出到内存,所述内存用于存储所述超导处理器执行的指令和数据;
读数据等待状态寄存器,用于根据所述处理器的读数据请求以及所述取指令状态寄存器由所述取指令状态转换至非取指令状态,将读数据地址由暂存转换为输出到所述内存;
读数据状态寄存器,用于指示读数据状态,其根据所述处理器的读数据请求以及非取指令状态设置,以及用于将读数据地址输出到所述内存;
写数据等待状态寄存器,用于根据所述处理器的写数据请求以及所述取指令状态寄存器由所述取指令状态转换至非取指令状态,将写数据地址和写数据内容由暂存转换为输出到所述内存;
写数据状态寄存器,用于指示写数据状态,其根据所述处理器的写数据请求以及非取指令状态设置,以及用于将写数据地址和写数据内容输出到所述内存;
其中,所述读数据等待状态寄存器接收到所述处理器的读数据请求,且此时处于取指令状态时,所述读数据等待状态寄存器指示读数据等待状态,以及
其中,所述写数据等待状态寄存器接收到所述处理器的写数据请求,且此时处于取指令状态时,所述写数据等待状态寄存器指示写数据等待状态;
其中,所述输入输出控制模块还包括判断模块,其被配置为根据当前状态判断从内存读回的数据或指令的类型,
如果此时处于取指令状态,则指示读回的信息为指令内容,所述判断模块将该取回的指令传输至所述处理器的译码组合电路,如果此时处于读数据状态,则指示读回的信息为数据读回,所述判断模块将该取回的数据传输至所述处理器的写回组合电路。
2.根据权利要求1所述的用于超导处理器的输入输出控制模块,其中,所述输入输出控制模块还包括第一信号选择模块、数据地址缓存寄存器以及数据地址输出寄存器,所述第一信号选择模块被配置为:
当所述读数据等待状态寄存器指示读数据等待状态或者所述写数据等待状态寄存器指示写数据等待状态时,将读/写数据地址输出至数据地址缓存寄存器中,而当所述读数据等待状态寄存器没有指示读数据等待状态且所述写数据等待状态寄存器没有指示写数据等待状态时,将读/写数据地址输出至数据地址输出寄存器中。
3.根据权利要求1所述的用于超导处理器的输入输出控制模块,其中,所述输入输出控制模块还包括第二信号选择模块、数据内容缓存寄存器以及数据内容输出寄存器,所述第二信号选择模块被配置为:
当所述写数据等待状态寄存器指示写数据等待状态时,将写数据内容输出到所述数据内容缓存寄存器中,而当所述写数据等待状态寄存器没有指示写数据等待状态时,将写数据内容输出到所述数据内容输出寄存器中。
4.根据权利要求2所述的用于超导处理器的输入输出控制模块,其中,所述输入输出控制模块还包括第三信号选择模块,所述第三信号选择模块被配置为:
当所述取指令状态寄存器指示取指令状态时,将指令地址输出至内存;而当所述读数据状态寄存器指示读数据状态或者所述写数据状态寄存器指示写数据状态时,将所述数据地址输出寄存器中存储的读/写数据地址输出至内存。
5.根据权利要求2所述的用于超导处理器的输入输出控制模块,其中,当处于读数据等待状态时,如果此时所述读数据等待状态寄存器检测到指令读取完成,则将所述读数据等待状态寄存器的值输出至读数据状态寄存器,使得读数据等待状态结束,并且所述读数据状态寄存器指示读数据状态,并同时将数据地址缓存寄存器的内容输出到数据地址输出寄存器中,以输出至内存。
6.根据权利要求3所述的用于超导处理器的输入输出控制模块,其中,当处于写数据等待状态时,如果此时所述写数据等待状态寄存器检测到指令读取完成,则将所述写数据等待状态寄存器的值输出至写数据状态寄存器,使得写数据等待状态结束,并且所述写数据状态寄存器指示写数据状态,同时将数据内容缓存寄存器的内容输出到数据内容输出寄存器中,以输出至内存。
7.根据权利要求1所述的用于超导处理器的输入输出控制模块,其中,所述取指令状态寄存器、读数据等待状态寄存器、读数据状态寄存器、写数据等待状态寄存器以及写数据状态寄存器是NDRO。
8.一种超导处理器,所述超导处理器包括:
根据权利要求1-7之一所述的输入输出控制模块;
组合电路,其包括取指模块组合电路、译码组合电路、运算器组合电路以及写回组合电路,所述组合电路由所述输入输出控制模块控制以与内存进行数据交换;
所述组合电路的每一个之间至少包含一个流水线间寄存器组,所述寄存器组与所述组合电路进行数据交换;
其中所述输入输出控制模块通过向所述流水线间寄存器组的每一个发送清零信号,控制所述流水线间寄存器组的每一个的清零。
9.根据权利要求8所述的超导处理器,其中所述输入输出控制模块通过向所述译码组合电路发送无内容的空指令以控制整个流水线进入等待状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110266205.4A CN112861463B (zh) | 2021-03-11 | 2021-03-11 | 超导处理器及其输入输出控制模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110266205.4A CN112861463B (zh) | 2021-03-11 | 2021-03-11 | 超导处理器及其输入输出控制模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112861463A CN112861463A (zh) | 2021-05-28 |
CN112861463B true CN112861463B (zh) | 2023-04-25 |
Family
ID=75994110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110266205.4A Active CN112861463B (zh) | 2021-03-11 | 2021-03-11 | 超导处理器及其输入输出控制模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112861463B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113361718B (zh) * | 2021-06-22 | 2023-04-28 | 中国科学院计算技术研究所 | 超导译码器装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6353880B1 (en) * | 1998-07-22 | 2002-03-05 | Scenix Semiconductor, Inc. | Four stage pipeline processing for a microcontroller |
CN1731346A (zh) * | 2005-08-15 | 2006-02-08 | 中国航天时代电子公司第七七一研究所 | 微处理器的整数单元中五级容错流水结构的实现方法 |
EP1770507A2 (en) * | 2005-09-30 | 2007-04-04 | Fujitsu Ltd. | Pipeline processing based on RISC architecture |
CN112114875A (zh) * | 2020-08-27 | 2020-12-22 | 中国科学院计算技术研究所 | 一种超导并行寄存器堆装置 |
CN112116094A (zh) * | 2020-08-27 | 2020-12-22 | 中国科学院计算技术研究所 | 一种超导流水线电路及处理器 |
-
2021
- 2021-03-11 CN CN202110266205.4A patent/CN112861463B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6353880B1 (en) * | 1998-07-22 | 2002-03-05 | Scenix Semiconductor, Inc. | Four stage pipeline processing for a microcontroller |
CN1731346A (zh) * | 2005-08-15 | 2006-02-08 | 中国航天时代电子公司第七七一研究所 | 微处理器的整数单元中五级容错流水结构的实现方法 |
EP1770507A2 (en) * | 2005-09-30 | 2007-04-04 | Fujitsu Ltd. | Pipeline processing based on RISC architecture |
CN112114875A (zh) * | 2020-08-27 | 2020-12-22 | 中国科学院计算技术研究所 | 一种超导并行寄存器堆装置 |
CN112116094A (zh) * | 2020-08-27 | 2020-12-22 | 中国科学院计算技术研究所 | 一种超导流水线电路及处理器 |
Non-Patent Citations (1)
Title |
---|
邵铮 ; 谢憬 ; 王琴 ; 毛志刚 ; .数字信号处理器分布式寄存器的写回设计.微电子学与计算机.2013,(第07期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112861463A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6272616B1 (en) | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths | |
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
CN112116094B (zh) | 一种超导流水线电路及处理器 | |
EP2289003B1 (en) | Method & apparatus for real-time data processing | |
KR100464406B1 (ko) | 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법 | |
EP3776229A1 (en) | Apparatuses, methods, and systems for remote memory access in a configurable spatial accelerator | |
WO2020005448A1 (en) | Apparatuses, methods, and systems for unstructured data flow in a configurable spatial accelerator | |
JPH04245540A (ja) | 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム | |
CN112861463B (zh) | 超导处理器及其输入输出控制模块 | |
US20030159021A1 (en) | Selected register decode values for pipeline stage register addressing | |
US8402251B2 (en) | Selecting configuration memory address for execution circuit conditionally based on input address or computation result of preceding execution circuit as address | |
US5617549A (en) | System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer | |
CN101727435B (zh) | 一种超长指令字处理器 | |
US7143268B2 (en) | Circuit and method for instruction compression and dispersal in wide-issue processors | |
US20090319762A1 (en) | Dynamic reconfigurable circuit and data transmission control method | |
EP1986094A1 (en) | System and method for processing data in a series of computers | |
KR970007262B1 (ko) | 데이타패스 및 명령세트 확장이 용이한 risc 구조 | |
US10534608B2 (en) | Local computation logic embedded in a register file to accelerate programs | |
JP3520372B2 (ja) | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 | |
JP2861560B2 (ja) | データ処理装置 | |
CN113407239B (zh) | 一种基于异步单轨的流水线处理器 | |
CN101930281B (zh) | 一种降低cpu功耗的方法及一种低功耗cpu | |
JPH05143333A (ja) | 並列演算処理装置 | |
GB2609243A (en) | A data processing apparatus and method for transmitting triggered instructions between processing elements | |
KR950014162B1 (ko) | 파이프라인(Pipeline)이 구비된 프로세서에서 간단한 반복명령어의 구현방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |