CN113128172B - 超导寄存器堆装置及其控制方法 - Google Patents
超导寄存器堆装置及其控制方法 Download PDFInfo
- Publication number
- CN113128172B CN113128172B CN202110439614.XA CN202110439614A CN113128172B CN 113128172 B CN113128172 B CN 113128172B CN 202110439614 A CN202110439614 A CN 202110439614A CN 113128172 B CN113128172 B CN 113128172B
- Authority
- CN
- China
- Prior art keywords
- register
- data
- input
- output
- receiving
- 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
- 238000000034 method Methods 0.000 title claims description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 101150056353 SPL2 gene Proteins 0.000 description 2
- 101150090744 SPL3 gene Proteins 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001066 destructive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 101100533902 Arabidopsis thaliana SPL13A gene Proteins 0.000 description 1
- 101100533904 Arabidopsis thaliana SPL13B gene Proteins 0.000 description 1
- 101150042817 NFS1 gene Proteins 0.000 description 1
- 101100043227 Oryza sativa subsp. japonica SPL13 gene Proteins 0.000 description 1
- 101710097688 Probable sphingosine-1-phosphate lyase Proteins 0.000 description 1
- 101100126298 Rickettsia conorii (strain ATCC VR-613 / Malish 7) iscS gene Proteins 0.000 description 1
- 101150114492 SPL1 gene Proteins 0.000 description 1
- 101710105985 Sphingosine-1-phosphate lyase Proteins 0.000 description 1
- 101710122496 Sphingosine-1-phosphate lyase 1 Proteins 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000263 scanning probe lithography Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
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)
- Static Random-Access Memory (AREA)
- Shift Register Type Memory (AREA)
Abstract
提供一种超导寄存器堆装置,包括m个寄存器组,每个寄存器组包括n个寄存器单元,其中m和n均为大于等于2的整数。每个寄存器单元包括用于接收数据输入的数据输入端,用于接收写入控制信号的写入控制端,用于接收时钟信号的时钟输入端,以及用于将数据输出的数据输出端。其中,m个寄存器组的相同位的寄存器单元的数据输入端通过多个SPL器件连接在一起;m个寄存器组的相同位的寄存器单元的数据输出端通过多个CB器件连接在一起。
Description
技术领域
本发明涉及超导电子电路领域,特别涉及一种超导寄存器堆装置及其控制方法。
背景技术
目前对于基于快速单磁通量子RSFQ的超导电路研究还处于基本原理和物理制造层面,对于结构性的设计尚未有大量相关的发明。现有的基于RSFQ超导电路技术可以实现简单的寄存器结构,但尚未有大规模的寄存器堆的相关设计。
现有技术中实现的超导处理器大部分利用了RSFQ超导电路运行主频高的特点,设计了行波流水的工作电路,但是由于超导元件在数据传输中存在延迟大的特点,大部分处理器没有设计寄存器堆,仅仅实现了运算器的功能。在兼容经典冯诺依曼架构的超导处理器设计中,寄存器的使用是必不可少的,因此需要设计一种能够尽可能高效的寄存器堆,来满足处理器的运算需求。
发明内容
基于现有技术的上述缺陷,本发明提出一种超导寄存器堆装置,包括m个寄存器组,每个寄存器组包括n个寄存器单元,其中m和n均为大于等于2的整数,
每个寄存器单元包括用于接收数据输入的数据输入端,用于接收写入控制信号的写入控制端,用于接收时钟信号的时钟输入端,以及用于将数据输出的数据输出端;
其中,所述m个寄存器组的相同位的寄存器单元的数据输入端通过多个SPL器件连接在一起;所述m个寄存器组的相同位的寄存器单元的数据输出端通过多个CB器件连接在一起。
优选地,第一寄存器组至第m-1寄存器组中的每个寄存器单元的数据输入端分别连接到一个SPL器件,所述SPL器件包括:
数据输入端,用于接收来自前一寄存器组的相同位的SPL器件的第二输出端的数据;
第一输出端,用于将所述数据输出至当前寄存器组的相同位的寄存器单元的数据输入端;以及
第二输出端,用于将所述数据输出至下一寄存器组的相同位的SPL器件的数据输入端。
优选地,当所述SPL器件连接至所述第一寄存器组的寄存器单元时,所述SPL器件的数据输入端用于接收来自外部的数据输入;当所述SPL器件连接至所述第m-1寄存器组的寄存器单元时,所述SPL器件的第二输出端直接输出至第m寄存器组的相同位的寄存器单元的数据输入端。
优选地,第二寄存器组至第m寄存器组中的每个寄存器单元的数据输出端分别连接到一个CB器件,所述CB器件包括:
第一输入端,用于接收来自上一寄存器组的相同位的CB器件的数据输出端的数据;
第二输入端,用于接收来自当前寄存器组的相同位的寄存器单元的数据输出端的数据;以及
数据输出端,用于将数据输出至下一个寄存器组的相同位的CB器件的第一输入端。
优选地,当所述CB器件连接至所述第二寄存器组的寄存器单元时,所述CB器件的第一输入端用于接收第一寄存器组的相同位的寄存器单元的数据输出端的数据;当所述CB器件连接至所述第m寄存器组的寄存器单元时,所述CB器件的数据输出端直接输出至外部。
优选地,还包括写地址译码器,其包括:
写地址输入端,用于接收写地址;
时钟输入端,用于接收写入控制信号;以及
m个输出端,每个输出端用于将译码后的数据作为写入控制信号输出至相应的寄存器组的每个寄存器单元的写入控制端。
优选地,还包括读控制译码器,其包括:
读地址输入端,用于接收读地址;
时钟输入端,用于接收时钟信号;以及
m个输出端,每个输出端用于将译码后的数据作为时钟信号输出至相应的寄存器组的每个寄存器单元的时钟输入端。
优选地,所述寄存器单元包括:
SPL,其包括用于接收所述写入控制信号的数据输入端,并将所述写入控制信号分别输出至第一输出端和第二输出端;
DFF,其包括用于接收所述第一输出端的数据的时钟输入端,以及用于接收数据输入的数据输入端;以及
NDRO,其包括用于接收所述第二输出端的数据的重置端,用于接收时钟信号的时钟输入端,用于接收所述DFF的输出数据的数据输入端以及用于将数据输出的数据输出端。
本发明还提供一种用于上述超导寄存器堆装置的数据写入方法,所述方法包括:
第一次写入步骤,其包括:
将数据输入至要写入的寄存器组的每个寄存器单元的数据输入端;
将写入控制信号输入至所述要写入的寄存器组的每个寄存器单元的写入控制端;
第二次写入步骤,其重复所述第一次写入步骤。
本发明还提供一种用于上述超导寄存器堆装置的数据读取方法,所述方法包括:将读取时钟信号输入至要读取的寄存器组的每个寄存器单元的时钟输入端。
本发明利用现有的RSFQ超导电路工艺,实现了一种超导寄存器堆的设计,能够实现经典的冯诺依曼处理器架构,为超导处理器的运算器提供数据存储。为了应对RSFQ超导电路存在的数据延迟大的问题,本发明提高了数据读取和写入的效率,压缩电路规模,缩短了整体部件的关键路径。
附图说明
图1A为触发器的状态转换图;
图1B为非破坏读出寄存器的状态转换图;
图2是本发明一个实施例的寄存器单元的电路图;
图3是本发明一个实施例的n位寄存器组的示意图;
图4A是本发明一个实施例的零偏差树结构的示意图;
图4B是本发明一个实施例的非对齐树结构的示意图;
图5是本发明一个实施例的寄存器堆的示意图。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,下面结合附图通过具体实施例对本发明作进一步详细说明。
现有的超导处理器大部分不使用寄存器,而是通过外部接口供给数据,这样看似实现了很高的运行频率,但是实际上不能完全发挥其高主频的特点,因为运算速度和数据读取速度存在不可避免的差距。因此本发明设计了一种高效的超导寄存器堆装置,可以与运算器一起组成兼容现有指令架构的RSFQ超导处理器。
本发明中的超导寄存器堆装置包括寄存器单元,寄存器单元由现有的触发器(DFF)和非破坏读出寄存器(NDRO)组成。以下结合图1A和图1B对DFF和NDRO的状态转换进行详细说明。
图1A为DFF器件的状态转换图,参照图1A,假设初始状态为0状态,若此时没有SFQ脉冲输入,则器件保持0状态,在器件0状态下输入时钟信号Clk,则不会有SFQ脉冲输出;当DFF器件有SFQ脉冲输入时,DFF器件会由0状态变为1状态,此时输入的SFQ脉冲会储存在器件的量子环中,不会有SFQ脉冲输出,当时钟信号Clk到来之后,DFF器件会将SFQ脉冲输出,且器件状态由1状态变为0状态。假设初始状态为1状态,此时不论有无SFQ脉冲输入,器件都会保持1状态,在此状态下,当时钟信号Clk到来之后,DFF器件会将SFQ脉冲输出,且器件状态由1状态变为0状态。
图1B为NDRO器件的状态转换图,参照图1B,假设初始状态为0状态,若此时没有SFQ脉冲输入,则器件保持0状态,在器件0状态下输入时钟信号Clk,则不会有SFQ脉冲输出;当NDRO器件有SFQ脉冲输入时,NDRO器件会由0状态变为1状态,且此时不会有SFQ脉冲输出,当时钟信号Clk到来之后,NDRO器件会将SFQ脉冲输出,但器件状态不变(即保持1状态),此时如果再有时钟信号到来,会有SFQ脉冲持续输出。假设初始状态为1状态,此时不论有无脉冲输入,器件都会保持1状态,在此状态下,当时钟信号Clk到来之后,NDRO器件会有SFQ脉冲输出,且器件状态不变(即保持1状态),此时如果再有时钟信号到来,会有脉冲持续输出。当输入reset(重置)信号之后,不论当前是什么状态,器件都会被清零,器件变为0状态。
由上述DFF和NDRO器件组成本发明的寄存器单元。图2是本发明一个实施例的寄存器单元的电路图,如图2所示,寄存器单元200由分离器(SPL)201、DFF 202以及NDRO 203组成。其中SPL 201包括用于接收写入控制信号write_en的数据输入端,并将该数据输入分别输出到NDRO 203的重置端以及DFF 202的时钟输入端。DFF 202的数据输入端用于接收写入数据信号data_in。NDRO 203的数据输入端用于接收来自DFF 202的输出数据,NDRO 203的时钟输入端用于接收时钟信号clock,以及NDRO 203的输出端用于将数据输出。
其中,对于DFF 202,其时钟信号(即write_en)要晚于data_in到达,到达的时间流程为data_in<write_en<data_out,这个时间可通过布线控制数据传输延迟来实现。对于NDRO 203,其重置信号(即write_en)要早于其输入数据到达,这也可以通过布线和DFF的工作延迟实现。总体来说,所有数据的时序都满足RSFQ超导元件的工作要求。读取信号作为NDRO 203的时钟信号clock输入,NDRO 203会将自身存储的数据发送到其输出端口。
下面结合图2对本发明的寄存器单元200的数据写入过程和数据输出过程进行描述。当需要将数据写入寄存器单元200中时,写入数据信号data_in到达DFF 202的数据输入端,此时输入的数据会储存在DFF 202的量子环中,不会有数据输出。随后写入控制信号write_en到达DFF 202的时钟输入端以及NDRO 203的重置端,先对NDRO 203清零,同时DFF202的时钟输入端接收到写入控制信号write_en,经过DFF器件本身的延时之后,将数据输出到NDRO 203中,完成输入数据的写入。随后时钟信号clock到达NDRO 203的时钟输入端,NDRO 203会将数据输出。
图3是本发明一个实施例的由n个图2的寄存器单元200的n位寄存器组的示意图,为了方便理解,在图3中将图2中的寄存器单元200抽象为四端口器件,例如寄存器单元301、302等。其中每个寄存器单元包括用于接收写入数据信号data_in的数据输入端,用于接收写入控制信号write_en的写入控制端,用于接收时钟信号的时钟输入端,以及用于将数据输出的数据输出端;寄存器单元可以在写入控制信号write_en的控制下将输入数据写入寄存器单元,并在时钟信号clock的控制下进行数据输出。
图3的寄存器组包括n个的寄存器单元,寄存器单元301-寄存器单元300+n。寄存器单元301-寄存器单元300+n的写入控制端连接在一起,用于接收写入控制信号write_en,寄存器单元301-寄存器单元300+n的时钟输入端连接在一起,用于接收读取时钟信号clock。寄存器单元301-寄存器单元300+n中的每一个寄存器单元的数据输入端分别用于接收相应的写入数据信号data_in 1-data_in n,以及寄存器单元301-寄存器单元300+n中的每一个寄存器单元的数据输出端用于分别输出数据data_out 1-data_out n。
其中,写入控制信号write_en通过SPL2或者SPL3器件扇出,并输入至每个寄存器单元的写入控制端。例如可以使用等长的零偏差树(如图4A所示),例如输入数据由3个SPL2组成的树结构扇出后,通过设置布线,使得数据同时到达每个输出端口。也可以使用非对齐树结构(如图4B所示),即输入数据依次到达每个输出端口。为避免模糊本发明,图3中没有示出写入控制信号write_en扇出的SPL树结构,本领域技术人员可根据需要选择合适的SPL树结构。同样,时钟信号clock也通过SPL2或者SPL3器件扇出,并输入至每个寄存器单元的时钟输入端。
以对寄存器单元301进行数据写入和数据输出为例对图3中的寄存器组进行详细说明。假设初始时,n个寄存器单元均处于0状态,即n个寄存器单元中的DFF和NDRO器件均为0状态。当需要将数据1写入寄存器单元301中时,data_in 1有SFQ脉冲输入,而data_in 2-data_in n没有SFQ脉冲输入。写入数据信号data_in 1到达寄存器单元301的数据输入端,此时输入的数据会储存在寄存器单元301的DFF中,寄存器单元301的DFF状态变为1,但不会有数据输出。而寄存器单元302-300+n没有数据输入,因此其DFF状态保持为0。随后写入控制信号write_en到达寄存器单元301-300+n的写入控制端,寄存器单元301的DFF将数据输出到NDRO中,完成输入数据的写入,而寄存器单元302-300+n没有数据写入。随后时钟信号clock到达寄存器单元301-300+n的时钟输入端,寄存器单元301会将数据输出,即输出为1,而寄存器单元302-300+n没有数据输出,即输出为0。寄存器组300可以实现n个寄存器单元同时进行数据写入和数据输出。
图5是本发明一个实施例的寄存器堆的示意图。寄存器堆500包括m个图3中的n位寄存器组,即共有m个存储地址。在本发明中,为便于说明,将相邻地址的n位寄存器组平行排列,组成一个m*n的寄存器单元的矩阵,m个寄存器组的相同位处于一列。但是在实际实现中,不要求排成矩阵形式。为了便于理解,用x-y平面直角坐标系表示图5中的m*n个寄存器单元的位置,其中,x方向为水平方向,y方向为垂直方向。寄存器堆500中左上角的寄存器单元11表示其x坐标值为1,y坐标值为1,右下角的寄存器单元nm表示其x坐标值为n,y坐标值为m,以此类推。图5中的SPL器件和CB器件也采用相似的编号顺序。
寄存器堆500包括平行布置的m个n位寄存器组,第一寄存器组、第二寄存器组…第m寄存器组,其分别代表m个寄存器地址,寄存器地址沿y方向(垂直方向)递增,即沿y方向依次为第一寄存器地址、第二寄存器地址…第m寄存器地址。其中第一寄存器组包括寄存器单元11、寄存器单元21…以及寄存器单元n1;第二寄存器组包括寄存器单元12、寄存器单元22…以及寄存器单元n2;以及第m寄存器组包括寄存器单元1m、寄存器单元2m…以及寄存器单元nm,以此类推。每个寄存器组的位数沿x方向(水平方向)递增,例如第一寄存器组、第二寄存器组…第m寄存器组的第一位分别为寄存器单元11、寄存器单元12…寄存器单元1m,第二位分别为寄存器单元21、寄存器单元22…寄存器单元2m,以此类推。
寄存器堆500还包括写地址译码器501,其包括用于接收写地址(write address)的写地址输入端,用于接收写入控制信号write_en的时钟输入端,以及m个输出端,用于将译码后的数据分别输出至m个寄存器组的写入控制端。其中,写地址输入端可包括log2 m位写入地址线,例如当m=8时,写入地址线就会有3条,此时写地址译码器501就是一个3/8译码器。当写入控制信号write_en到达后,写地址译码器501根据写地址输入端接收到的写地址,译码得到对应地址的写入控制信号,并传输给需要写入的寄存器组。同样,译码器501的每一个输出均通过SPL器件扇出,分别连接至相应的寄存器组中的每个寄存器单元的写入控制端。
寄存器堆500还包括读控制译码器502,其包括用于接收读地址(read address)的读地址输入端,用于接收时钟信号clock的时钟输入端,以及m个输出端,用于将译码后的数据分别输出至m个寄存器组的时钟输入端。其中,读地址输入端可包括log2 m位读取地址线,当时钟信号clock到达后,读控制译码器502根据读地址输入端接收到的读地址,译码得到对应地址的读取时钟信号,传输给需要读取的寄存器组。同样,读控制译码器502的每一个输出均通过SPL器件扇出,分别连接至相应的寄存器组中的每个寄存器单元的时钟输入端。
因此,每一个n位寄存器组都包含两个树状分支结构,分别是用于对时钟信号扇出的时钟信号树和用于对写入控制信号扇出的写入信号树。这两个信号树可以是等长的零偏差树,信号同时到达每个寄存器单元的端口。也可以是非对齐树结构,信号依次到达每个寄存器单元的端口。如果n位寄存器组采用等长的零偏差树构建时钟信号树,那么n位寄存器的输出是同时产生的,因此在整个寄存器的输出端口无需添加任何延迟线路,就可以保证输出的n位数据是同时产生的。如果n位寄存器组采用的是非对齐的时钟信号树,那么寄存器组产生的输出信号是n位依次输出的,如果后续电路需要寄存器堆输出0相位差的数据,就需要在整个寄存器堆的输出端口按位添加传输线延迟,使得输出数据同时到达输出端口。如果后续电路对于寄存器堆的输出信号没有严格相位要求,那么也可以省略用于对齐延迟的传输线。
寄存器堆500还包括(m-1)*n个SPL器件,其中从第一寄存器地址至第m-1寄存器地址中的每个寄存器单元对应一个SPL器件,每个SPL器件包括数据输入端,用于接收来自前一地址的相同位的SPL器件的第二输出端的数据;第一输出端,用于将数据输出至当前地址的相同位的寄存器单元的数据输入端;以及第二输出端,用于将数据输出至下一地址的相同位的SPL器件的数据输入端。当该SPL器件对应于第一寄存器地址的寄存器单元时,SPL器件的数据输入端用于接收来自外部的数据输入信号;当该SPL器件对应于第m-1寄存器地址的寄存器单元时,SPL器件的第二输出端直接输出至第m寄存器地址的相同位的寄存器单元的数据输入端。
如图5所示,m个n位寄存器组的每一个寄存器组的相同位的寄存器单元的数据输入端用于接收相同的写入数据信号。例如,m个n位寄存器组的每一个寄存器组的第一位寄存器单元(即第一列寄存器单元,寄存器单元11至寄存器单元1m)的数据输入端用于接收写入数据信号data_in 1。其中写入数据信号data_in 1使用SPL器件进行分流,以输入至每一个寄存器组的第一位寄存器单元的数据输入端。如图5所示,写入数据信号data_in 1输入至SPL 11的数据输入端,SPL 11的第一输出端将数据输出至寄存器单元11的数据输入端,SPL 11的第二输出端将数据输出至SPL 12的输入端,SPL 12的第一输出端将数据输出至寄存器单元12的数据输入端,SPL 12的第二输出端将数据输出至下一个地址的SPL13的数据输入端,以此类推,直到SPL 1(m-1)的第二输出端将写入数据信号data_in 1输出至寄存器单元1m的数据输入端。在本发明中,写入数据信号按位传输至m个寄存器组的相应位,由写入控制信号控制具体的写入单元,节约了数据写入信号线,可极大地减少电路面积,节约数据的传输时间。
寄存器堆500还包括(m-1)*n个组合器(CB)器件,其中从第二寄存器地址至第m寄存器地址中的每个寄存器单元对应一个CB器件,每个CB器件包括第一输入端,用于接收来自上一地址的相同位的CB器件的数据输出端的数据;第二输入端,用于接收当前地址的相同位的寄存器单元的数据输出端的数据;以及数据输出端,用于将数据输出至下一地址的相同位的CB器件的第一输入端。当该CB器件对应于第二寄存器地址的寄存器单元时,CB器件的第一输入端用于接收第一寄存器地址的相同位的寄存器单元的数据输出端的数据;当该CB器件对应于第m寄存器地址的寄存器单元时,CB器件的数据输出端直接输出至外部。
如图5所示,每个寄存器单元的输出与来自前一地址的相同位传输过来的数据经CB组合后作为当前地址的输出。例如,寄存器单元11的数据输出端将数据输出至CB11的第一输入端,寄存器单元12的数据输出端将数据输出至CB11的第二输入端,CB11将第一输入端的来自寄存器单元11的输出数据与第二输入端的来自寄存器单元12的输出数据组合后作为该地址的输出输出至CB12的第一输入端。以此类推,直到CB 1(m-2)的数据输出端将数据输出至CB 1(m-1)的第一输入端,寄存器单元1m的数据输出端将数据输出至CB 1(m-1)的第二输入端,CB 1(m-1)将数据组合后进行数据输出。通过CB器件将相邻的两个地址按位两两组合,最终只有一组数据输出端口,在寄存器堆内部实现了数据汇流,节约了数据输出电路,可极大地减少电路面积。
由于寄存器堆500采用了数据并联信号,每次写入的数据会到达m个寄存器组的相同位。因此在进行下一次的写入时可能会存在干扰信号,使得写入的数据不准确。下面以分别对寄存器单元11和寄存器单元12写入为例进行详细说明。假设初始状态均为零状态,即所有寄存器单元中的DFF和NDRO器件均为零状态。第一次输入的目的是将数据1写入寄存器单元11中,第二次输入的目的是将数据0写入寄存器单元12中。在第一次输入时,在data_in1输入SFQ脉冲,相当于输入为1。此时,数据输入到寄存器单元11-寄存器单元1m的数据输入端,其内部的DFF接收到该输入数据后状态均变为1。此后写入控制信号write_en信号到达译码器501,在写地址译码后,将写入控制信号传输至第一寄存器组,即寄存器单元11-n1的写入控制端。寄存器单元11的NDRO清零之后,将DFF中的数据输出至NDRO中,完成寄存器单元11的数据写入。此时寄存器单元11的DFF状态变为0,而寄存器单元12-1m由于没有进行写入操作,因此其DFF状态均保持为1。在第二次输入时,在data_in 1没有SFQ脉冲输入,相当于输入为0。但由于此时寄存器单元12的DFF状态为1,因此当write_en信号到达译码器501,在写地址译码后,将写入控制信号传输至第二寄存器组,即寄存器单元12-n2的写入控制端时,寄存器单元12的NDRO清零之后,将DFF中的数据1输出至NDRO中,完成数据写入,因此寄存器单元12会写入错误的数据1,而不是正确的数据0。
因此,在本发明中采用两次写入,即数据写入过程需要写入控制信号write_en和写入数据信号data_in到达寄存器单元两次。第二次写入控制信号和写入数据到达后,将正确的写入数据存入DFF中,然后write_en信号到达寄存器单元的写入控制端时,寄存器单元的NDRO清零之后,将DFF中的数据输出至NDRO中,完成正确的数据写入。例如上述示例中,对寄存器单元12再进行一次写入,即data_in 1再次输入0。此时寄存器单元12的DFF状态为0,因此当write_en信号到达寄存器单元12的写入控制端时,寄存器单元12的NDRO清零之后,将DFF中的数据0输出至NDRO中,完成正确的数据写入。
当需要输出数据时,读取时钟信号clock到达读控制译码器502的时钟输入端,读地址译码后,将读取时钟信号clock输出至相应的寄存器组的每个寄存器单元的时钟输入端,控制该n位寄存器单元的输出。
在本发明的一个实施例中,写入的数据按位传入,串通所有m个寄存器组,由写入控制信号控制具体的写入单元,节约了数据写入信号线,极大减少电路面积,节约数据的传输时间。读出的数据通过CB元件将相邻的两个地址按位两两汇聚,最终只有一组数据输出端口,在寄存器堆内部实现了数据汇流,节约了数据输出电路。将写地址通过译码作为了寄存器单元中的DFF的工作时钟信号,避免了复杂的写入控制电路。将读地址通过译码作为了寄存器单元的读取时钟信号,可以实现及时的数据输出,只要给定需要读取的寄存器地址信号,就能在固定时间延迟后输出相应寄存器组的内容,不需要额外的驱动信号。
本发明中,使用NDRO和DFF器件组成基本的存储单元,能够实现实时数据读出,使用写入控制信号实现数据写入。但本发明不限于此,也可以使用其他的寄存器单元。
最后应该说明的是,以上实施例仅用以解释本发明的技术方案而非限制。尽管上文参照实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围中。
Claims (6)
1.一种超导寄存器堆装置,包括m个寄存器组,每个寄存器组包括n个寄存器单元,其中m和n均为大于等于2的整数,
每个寄存器单元包括用于接收数据输入的数据输入端,用于接收写入控制信号的写入控制端,用于接收时钟信号的时钟输入端,以及用于将数据输出的数据输出端;
其中,所述m个寄存器组的相同位的寄存器单元的数据输入端通过多个SPL器件连接在一起;所述m个寄存器组的相同位的寄存器单元的数据输出端通过多个CB器件连接在一起;
其中,所述超导寄存器堆装置还包括读控制译码器,其包括:
读地址输入端,用于接收读地址;
时钟输入端,用于接收时钟信号;以及
m个输出端,每个输出端用于将译码后的数据作为时钟信号输出至相应的寄存器组的每个寄存器单元的时钟输入端;
其中,所述寄存器单元包括:
SPL,其包括用于接收所述写入控制信号的数据输入端,并将所述写入控制信号分别输出至第一输出端和第二输出端;
DFF,其包括用于接收所述第一输出端的数据的时钟输入端,以及用于接收数据输入的数据输入端;以及
NDRO,其包括用于接收所述第二输出端的数据的重置端,用于接收时钟信号的时钟输入端,用于接收所述DFF的输出数据的数据输入端以及用于将数据输出的数据输出端;
其中,需要两次写入步骤以将数据写入所述超导寄存器堆装置,第一次写入步骤,其包括:将数据输入至要写入的寄存器组的每个寄存器单元的数据输入端;将写入控制信号输入至所述要写入的寄存器组的每个寄存器单元的写入控制端;第二次写入步骤,其重复所述第一次写入步骤;
其中第二寄存器组至第m寄存器组中的每个寄存器单元的数据输出端分别连接到一个CB器件,所述CB器件包括:
第一输入端,用于接收来自上一寄存器组的相同位的CB器件的数据输出端的数据;
第二输入端,用于接收来自当前寄存器组的相同位的寄存器单元的数据输出端的数据;以及
数据输出端,用于将数据输出至下一个寄存器组的相同位的CB器件的第一输入端;
当所述CB器件连接至所述第二寄存器组的寄存器单元时,所述CB器件的第一输入端用于接收第一寄存器组的相同位的寄存器单元的数据输出端的数据;当所述CB器件连接至所述第m寄存器组的寄存器单元时,所述CB器件的数据输出端直接输出至外部。
2.根据权利要求1所述的一种超导寄存器堆装置,其中第一寄存器组至第m-1寄存器组中的每个寄存器单元的数据输入端分别连接到一个SPL器件,所述SPL器件包括:
数据输入端,用于接收来自前一寄存器组的相同位的SPL器件的第二输出端的数据;
第一输出端,用于将所述数据输出至当前寄存器组的相同位的寄存器单元的数据输入端;以及
第二输出端,用于将所述数据输出至下一寄存器组的相同位的SPL器件的数据输入端。
3.根据权利要求2所述的一种超导寄存器堆装置,其中,当所述SPL器件连接至所述第一寄存器组的寄存器单元时,所述SPL器件的数据输入端用于接收来自外部的数据输入;当所述SPL器件连接至所述第m-1寄存器组的寄存器单元时,所述SPL器件的第二输出端直接输出至第m寄存器组的相同位的寄存器单元的数据输入端。
4.根据权利要求1所述的一种超导寄存器堆装置,还包括写地址译码器,其包括:
写地址输入端,用于接收写地址;
时钟输入端,用于接收写入控制信号;以及
m个输出端,每个输出端用于将译码后的数据作为写入控制信号输出至相应的寄存器组的每个寄存器单元的写入控制端。
5.一种用于权利要求1-4之一所述的超导寄存器堆装置的数据写入方法,所述方法包括:
第一次写入步骤,其包括:
将数据输入至要写入的寄存器组的每个寄存器单元的数据输入端;
将写入控制信号输入至所述要写入的寄存器组的每个寄存器单元的写入控制端;
第二次写入步骤,其重复所述第一次写入步骤。
6.一种用于权利要求1-4之一所述的超导寄存器堆装置的数据读取方法,所述方法包括:将读取时钟信号输入至要读取的寄存器组的每个寄存器单元的时钟输入端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110439614.XA CN113128172B (zh) | 2021-04-23 | 2021-04-23 | 超导寄存器堆装置及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110439614.XA CN113128172B (zh) | 2021-04-23 | 2021-04-23 | 超导寄存器堆装置及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113128172A CN113128172A (zh) | 2021-07-16 |
CN113128172B true CN113128172B (zh) | 2023-10-27 |
Family
ID=76779578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110439614.XA Active CN113128172B (zh) | 2021-04-23 | 2021-04-23 | 超导寄存器堆装置及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113128172B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809327A (en) * | 1997-03-27 | 1998-09-15 | Atmel Corporation | Eight-bit microcontroller having a risc architecture |
CN111049503A (zh) * | 2019-12-19 | 2020-04-21 | 中国科学院计算技术研究所 | 一种超导触发器及其运行方法 |
CN111147045A (zh) * | 2019-12-23 | 2020-05-12 | 中国科学院计算技术研究所 | 一种超导电路的清零方法及系统 |
GB202010808D0 (en) * | 2020-07-14 | 2020-08-26 | Graphcore Ltd | Clearing register data |
CN112114875A (zh) * | 2020-08-27 | 2020-12-22 | 中国科学院计算技术研究所 | 一种超导并行寄存器堆装置 |
CN112116094A (zh) * | 2020-08-27 | 2020-12-22 | 中国科学院计算技术研究所 | 一种超导流水线电路及处理器 |
-
2021
- 2021-04-23 CN CN202110439614.XA patent/CN113128172B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809327A (en) * | 1997-03-27 | 1998-09-15 | Atmel Corporation | Eight-bit microcontroller having a risc architecture |
CN111049503A (zh) * | 2019-12-19 | 2020-04-21 | 中国科学院计算技术研究所 | 一种超导触发器及其运行方法 |
CN111147045A (zh) * | 2019-12-23 | 2020-05-12 | 中国科学院计算技术研究所 | 一种超导电路的清零方法及系统 |
GB202010808D0 (en) * | 2020-07-14 | 2020-08-26 | Graphcore Ltd | Clearing register data |
CN112114875A (zh) * | 2020-08-27 | 2020-12-22 | 中国科学院计算技术研究所 | 一种超导并行寄存器堆装置 |
CN112116094A (zh) * | 2020-08-27 | 2020-12-22 | 中国科学院计算技术研究所 | 一种超导流水线电路及处理器 |
Non-Patent Citations (1)
Title |
---|
一种容错可逆的通用移位寄存器设计;杨洁;汤其妹;陈付龙;齐学梅;叶和平;;量子电子学报(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113128172A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112114875B (zh) | 一种超导并行寄存器堆装置 | |
US4215401A (en) | Cellular digital array processor | |
CN1367491A (zh) | 具有多端口超高速缓存陈列的集成电路存储器设备及其操作方法 | |
JPH01122093A (ja) | 半導体記憶装置 | |
JP2679994B2 (ja) | ベクトル処理装置 | |
US3798607A (en) | Magnetic bubble computer | |
KR890002782A (ko) | 데이타 처리 회로용 교차 메모리 | |
CN113128172B (zh) | 超导寄存器堆装置及其控制方法 | |
US20020080672A1 (en) | First-in first-out memory device and method of generating flag signal in the same | |
US10997892B1 (en) | Data caching circuit, display panel and display device | |
WO2002019129A3 (en) | Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner | |
US5130976A (en) | Batcher and banyan switching elements | |
JPS6257190A (ja) | デイジタル信号遅延用回路装置 | |
US20110058570A1 (en) | Programmable crossbar structures in asynchronous systems | |
JPS63172362A (ja) | プロセツサ間通信方式 | |
US5875147A (en) | Address alignment system for semiconductor memory device | |
CN104125171A (zh) | 交换机结构以及入口流量处理方法 | |
US6901070B2 (en) | Dynamically programmable integrated switching device using an asymmetric 5T1C cell | |
CN115658145B (zh) | 数据循环移位方法和电路、以及芯片 | |
JP2516611B2 (ja) | 並列デ−タ処理装置 | |
CN114036087A (zh) | 基于fpga存储单元实现数据延时处理的系统 | |
WO2022220855A1 (en) | Virtual pipeline in programmable switches | |
SU1164720A1 (ru) | Ассоциативный матричный процессор | |
JPH04360425A (ja) | 半導体記憶装置 | |
CN117423371A (zh) | 一种全光存储器阵列及方法 |
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 |