移位寄存器、电子设备、控制方法 |
|||||||
申请号 | CN201110318568.4 | 申请日 | 2011-10-19 | 公开(公告)号 | CN102543202B | 公开(公告)日 | 2015-07-01 |
申请人 | NXP股份有限公司; | 发明人 | 尤尔根·吉尔灵斯; | ||||
摘要 | 公开了一种移位寄存器(200,400),包括输入(205)、输出(230)以及在输入和输出之间 串联 连接的多个寄存器单元(210),每个寄存器单元经由 节点 与相邻单元相连,至少一些所述节点包括多路复用器(220),所述多路复用器(220)具有与下游寄存器单元耦合的输出、以及多个输入,所述多个输入给在与不同的上游寄存器单元耦合,使得可以选择性地绕过移位寄存器的不同长度段,移位寄存器还包括有助于交织数据与解交织数据之间转换的一组并行IO通道(230,410),IO通道各自与所述节点中不同节点耦合,并行IO通道的数目小于移位寄存器中寄存器单元的总数目。 | ||||||
权利要求 | 1.一种移位寄存器(200,400),包括输入(205)、输出(230)以及在输入和输出之间串联连接的多个寄存器单元(210),每个寄存器单元经由节点与相邻单元相连,其中,至少一些所述节点包括多路复用器(220),所述多路复用器(220)具有与下游寄存器单元耦合的输出、以及多个输入,所述多个输入各自与不同的上游寄存器单元(210)的输出耦合,使得(M-1) |
||||||
说明书全文 | 移位寄存器、电子设备、控制方法技术领域[0001] 本发明涉及移位寄存器,所述移位寄存器包括输入、输出及在输入与输出之间串联连接的多个寄存器单元,每个寄存器单元通过节点与相邻单元相连,其中,至少一些所述节点包括多路复用器,所述多路复用器具有与下游寄存器单元耦合的输出、以及多个输入。 [0002] 本发明还涉及包括该移位寄存器的电子设备。 [0003] 本发明还涉及控制该移位寄存器的方法。 背景技术[0005] 在数字电子电路中,移位寄存器已变得普遍。移位寄存器的一种最普遍用途是提供串行到并行或并行到串行的数据转换。例如,可以并行方式将数据加载入移位寄存器,以串行方式将数据移出移位寄存器,或备选地,在以并行方式将数据读出之后,可以将数据串行地移入移位寄存器。 [0006] 只要数据转换级别最高,就可以通过比如软件指令等在诸如中央处理单元(CPU)之类的控制器上高效地实现对移位寄存器的控制。当数据不需要在并行到串行转换的情况下的解交织或在串行到并行转换的情况下的交织时,即当对于N比特数据,转换是在N个并行通道与单个串行源之间时,获得最高的数据转换级别。 [0007] 但是,典型地,在(解)交织的情况下,控制器需要相对大量的指令来执行所需数据转换。图1示出了配置的示例,其中,必须将来自串行移动寄存器10的数据解交织到两个串行通路20和30,其中,来自奇数寄存器单元的数据进入到串行通路20,而来自偶数寄存器单元的数据进入到串行通路30。 [0008] 问题在于如何使用诸如RISC CPU指令集之类的现有技术控制器的 状态来高效地选择偶数比特和奇数比特。对于通常的移位寄存器处理,必须独立地移入和加载每个比特。因此,对于M比特的字,需要M-1个移位指令和M个存储指令。例如,对于M=32,就需要 32个加载+31个移动=63个指令来解交织移位寄存器10中的并行数据。在高速应用领域,对于执行这种用于数据字串行到并行转换或并行到串行转换的大量指令的需求可能使得包括移位寄存器的电子设备的总体性能发生不可接受的劣化。 发明内容[0009] 本发明旨在提供一种移位寄存器,当对进入或出自移位寄存器的数据进行(解)交织时,可以更高效地控制移位寄存器。 [0010] 本发明还旨在提供包括该移位寄存器的电子设备。 [0011] 本发明还旨在提供控制该移位寄存器的方法,以及实现该方法的软件程序产品。 [0012] 根据本发明的第一方面,提供了一种移位寄存器,所述移位寄存器包括输入、输出和在输入与输出之间串联连接的多个寄存器单元,每个寄存器单元经由节点与相邻单元相连,其中,至少一些所述节点包括多路复用器,所述多路复用器具有与下游寄存器单元耦合的输出、以及多个输入,所述多个输入各自与不同的上游寄存器单元耦合,使得可以选择性地绕过移位寄存器的不同长度段,移位寄存器还包括有助于交织数据与解交织数据之间的转换的一组并行IO通道,所述并行IO通道各自与所述节点中不同的节点耦合,并行IO通道的数目小于移位寄存器中寄存器单元的总数目。 [0013] 该移位寄存器具有的益处在于:多个IO通道的存在允许将数据并行地载入或载出移位寄存器,多路复用器的相互连接性确保可以绕过正确数目的寄存器单元,使得可以将用于包含属于相同交织数据部分的比特的寄存器单元直接互连,使得可以在这些寄存器单元之间对属于相同交织数据部分的比特直接移位,从而使用本发明的移位寄存器,显著地减少了串行到并行或并行到串行数据转换所需的指令数量。 [0014] 在实施例中,并行IO通道包括与N个最下游寄存器单元之间的节 点耦合的一组并行输出,N是正整数,具有至少为1的值。因为可以将数目N选择为与移位寄存器中交织数据部分的数目相等,所以本实施例尤其适于实现并行到串行数据转换,即,解交织。因此,在操作中,在每个移位周期,可以将N个比特从N个最下游寄存器单元移入到串行通道中,其中多路复用器确保对于每个寄存器单元,将来自上游N个位置的比特直接加载到下游寄存器单元中,从而确保通过使用多路复用器配置移位寄存器移位路径,来在移位寄存器内部执行解交织。 [0015] 在备选实施例中,并行IO通道包括与N个最上游寄存器单元之间的节点耦合的一组并行输入,N是正整数,具有至少为1的值。因为可以将数目N选为与移位寄存器中交织数据部分的数量相等,所以本实施例尤其适于实现串行到并行数据转换,即,交织。因此,在操作中,在每个移位周期,可以将N个比特并行移入到N个最上游移位寄存器中,其中多路复用器确保对于每个寄存器单元,相继地将每个加载的比特向下游移动N个位置,从而提供特别高效的交织结构。 [0016] 优选地,多路复用器的多个输入与相应寄存器单元的输出耦合,使得对于每个输(M-1)入,绕过2 个寄存器单元,M是来自所述多个输入中的输入的输入编号,M至少为1。换句话说,与多路复用器的特定输入相连的寄存器单元可以被定义为2的幂,其中,2的幂对与该特定输入相连的第n个上游寄存器加以标识,从而绕过第n个上游寄存器单元和多路复用器之间的n-1个寄存器单元。 [0017] 在优选实施例中,多路复用器输入的数目与并行IO通道的数目相匹配,使得在多路复用器的至少一种配置中,可以使用所有的并行IO通道。 [0018] 至少一些所述节点还可以包括另一多路复用器,所述另一多路复用器具有与所述多路复用器的输出耦合的第一输入、用于接收负载数据的第二输入、以及与下游寄存器单元耦合的输出。该另一多路复用器可以用于以并行方式将数据写入整个移位寄存器或者从整个移位寄存器读出数据。 [0019] 根据本发明的另一方面,提供了一种电子设备,所述电子设备包括本发明的移位寄存器、以及用于选择相应多路复用器的输入的控制器。 与使用现有移位寄存器实现的电子设备相比,该电子设备能够以更高速率执行数据(解)交织。 [0020] 在实施例(其中,并行IO通道包括与N个最下游寄存器单元之间的节点耦合的一组并行输出,N是正整数,具有至少为1的值)中,控制器被配置为将移位寄存器中的并行数据解交织成相应并行输出上的串行数据流。 [0021] 备选地,在实施例(其中,并行IO通道包括与N个最上游寄存器单元之间的节点耦合的一组并行输入,N是正整数,具有至少为1的值)中,控制器被配置为以交织形式将移位寄存器中的串行输入数据并行化。因此,在这些实施例中,与使用现有移位寄存器实现的设备相比,控制器可以控制数据(解)交织,所需要的加载和移位指令的数量显著减少。 [0022] 控制器可以是微控制器,比如有限状态机或CPU。 [0023] 根据本发明的另一方面,提供了一种控制本发明移位寄存器的方法,包括步骤:在移位寄存器的串行移位模式中,选择多路复用寄存器的输入之一,使得在所述输入上接收的数据绕过预定数目的寄存器单元;以及在并行通信模式中,在并行IO通道上,与所选择的寄存器单元并行地通信数据。当对(解)交织使用移位寄存器时,与先前可用的数据速率相比,串行移位模式与并行通信模式的变更有助于以明显更高的数据速率对数据进行(解)交织。 [0024] 在实施例中,并行IO通道包括与N个最下游寄存器单元之间的节点耦合的一组并行输出,N是正整数,具有至少为1的值,数据通信步骤包括将移位寄存器中的并行数据解交织成相应并行输出上的串行数据流。 [0025] 在备选实施例中,并行IO通道包括与N个最上游寄存器单元之间的节点耦合的一组并行输入,N是正整数,具有至少为1的值,数据通信步骤包括将移位寄存器中的串行输入数据以交织形式并行化。 [0026] 可以软件程序产品的形式实现本发明的方法,当在本发明电子设备的控制器上执行时,所述软件程序产品用于执行本发明方法的步骤。可以将该软件程序产品存储在计算机可读介质上,比如CD、DVD、USB记忆棒、外围存储设备、互联网可访问的存储设备(比如互联网服务器 或数据库)等等。附图说明 [0027] 参考附图更详细地并且以非限制性示例的方式描述本发明实施例,其中: [0028] 图1示意性地示出了用于并行到串行数据转换的现有技术移位寄存器; [0029] 图2示意性地示出了本发明移位寄存器的实施例; [0030] 图3示意性地示出了本发明移位寄存器另一实施例的方面; [0031] 图4仍然示意性地示出了本发明移位寄存器的另一实施例; [0032] 图5示意性地示出了本发明电子设备的实施例;以及 [0033] 图6示意性地示出了本发明方法的实施例。 具体实施方式[0034] 应该理解的是,附图仅是示意性的,并且未按照比例绘制。还应该理解的是,在所有附图中,相同的参考标记用于指示相同或相似的部件。 [0035] 图2示出了根据本发明的移位寄存器200的第一实施例。移位寄存器200尤其适合于更高效地实现并行到串行数据转换,即解交织,其中,可以任何适宜的方式将交织数据字并行地加载到移位寄存器单元210a-f中。为清楚起见,图2中并未明确示出针对并行写操作的连接。 [0036] 在本发明的上下文中,将数据看作从移位寄存器输入205向着移位寄存器输出230流传输,其中,对于每对移位寄存器单元210,距离输入205较近的移位寄存器单元被看作是上游移位寄存器单元,距离输出230较近的移位寄存器单元被看作是下游移位寄存器单元。 [0037] 移位寄存器200包括多个移位寄存器单元210,多个移位寄存器单元210经由相应节点彼此相连。每个节点包括多路复用器220。在图2中,仅以非限制示例的方式示出了标记为210a-f的六个单元以及标记为220a-e的五个多路复用器;本领域技术人员应该理解,可以使用任何适宜数量的移位寄存器单元和多路复用器。多路复用器220用于可配置地将每个下游移位寄存器单元210与多个不同上游移位寄存器单元相连, 使得在串行移位模式期间,当将数据从上游移位寄存器单元210移动到下游移位寄存器单元210时,可以绕过选定数目的移位寄存器单元210。例如,多路复用器220e具有用于接收来自移位寄存器单元210e、210d和210b的输出的输入,使得可以将移位寄存器单元210f配置为接收分别绕过了0、1和3个移位寄存器单元比特。 [0038] 此外,移位寄存器200包括与选择的节点相连的多个IO通道240,以及这是除了移位寄存器输入205和移位寄存器输出230之外的。在图2中,IO通道是输出通道。典型地,如果IO通道240是输出,那么N个通道将与移位寄存器200的N个最下游节点相连。备选地,如果IO通道是输入,那么N个通道将与移位寄存器200的N个最上游节点相连。 [0039] 如图2所示,在移位模式期间绕过选定数目的移位寄存器单元210的能力以及在捕获模式期间在输出230及附加输出240a-c上输出多个比特的能力相组合,这有助于高效地实现存储在移位寄存器200中数据字的解交织。通过以下示例对此进行说明。在32位移位寄存器200(即,移位寄存器200具有32个移位寄存器单元2100-21031)的情况下,可以将具有如下所示的比特模式的数据字存储在移位寄存器200中。A0B1C2D3A4B5C6D7A8B9C10D11A12B13C14D15A16B17C18D19A20B21C22D23A24B 25C26D27A28B29C30D31 [0040] 数据字包括四个交织部分AAAAAAAA、BBBBBBBB、CCCCCCCC和DDDDDDDD。下标指示将每个比特存储在哪个移位寄存器单元210中。可以仅使用单个指令配置多路复用器200,以在移位寄存器单元210的移位模式期间绕过3个移位寄存器单元,使得例如移位寄存器单元2100中的比特A被移位到移位寄存器单元2104,移位寄存器单元2104中的比特A被移位到移位寄存器单元2108,以此类推。在捕获模式期间,移位寄存器单元21028-31分别在输出通道240和输出230上产生比特模式ABCD,使得在每个捕获周期期间,这些输出(可以被看作串行通路)产生形成了数据字的解交织数据部分的单个比特。因此,可以明显看出,与使用图1配置时需要32个加载指令和31个移位指令相反,可以仅以8个加载指令和7个移位指令来实现数据字的完全解交织。 [0041] 应该理解的是,可以任何适宜的方式实现移位寄存器200。例如,移位寄存器单元210和多路复用器220的实现方式对于本发明而言不是本质的;可以使用任何适宜的设计。 还应该明显看到,并非所有的节点需要存在多路复用器220;例如,可以省略两个最上游移位寄存器单元210之间节点处的多路复用器220,因为可能无需绕过最上游移位寄存器单元210。其它的设计优化对本领域技术人员来说是明显的。 [0042] 图3描述了本发明移位寄存器200的备选实施例的方面,其中,每个节点包括附加多路复用器250,位于多路复用器220的输出与移位寄存器单元210N的输入之间。在该非限制性实施例中,多路复用器220具有四个输入,即用于接收移位寄存器单元210N-1(绕过0个移位寄存器单元),210N-2(绕过1个上游寄存器单元),210N-4(绕过3个上游寄存器单元)和210N-8(绕过7个上游寄存器)的输出的输入。多路复用器250具有两个输入;第一输入用于将多路复用器220的输出与移位寄存器单元210N相连,第二输入用于在移位寄存器200的并行写入模式中将数据字经由并行输入260写入到移位寄存器200中。稍后将更详细地说明,分别由控制信号222和252控制多路复用器220和另一多路复用器250。 [0043] 图4示出了本发明的移位寄存器400的实施例,其尤其适于交织数据字,即串行到并行转换。在图4中,为清楚起见,多路复用器220被省略,但是仍然构成本实施例的一部分。为此,移位寄存器400包括N个串行输入,N个串行输入分别与移位寄存器400的N个最上游节点相连。以非限制性示例的方式说明移位寄存器400的操作,其中,在输入205和相应的输入通道410a-c上将接收四个数据部分AAAAAAAA,BBBBBBBB,CCCCCCCC和DDDDDDDD。配置多路复用器220(图4中未示出),使得在移位模式期间,绕过3个移位寄存器单元210,使得对于32位移位移位寄存器而言,可以通过8个捕获指令和7个移位指令来完成这四个数据部分的完整交织。移位寄存器400还可以包括一组并行输出,各自与移位寄存器单元 210之一的输出相连,使得可以并行读出已交织的数据字。因为这是移位寄存器的常规特征,所以为清楚起见,在图4中不明显示出。 [0044] 在这个阶段,应该理解的是,图2中输出通道240与输出230的数 目之和,或者图4中输入通道410和输入205的数目之和,应该理想地与移位寄存器200或400中存储的数据字的最大交织度(interlacing degree)相匹配。还应该理解的是:当然不必总是使用所有的IO通道来进行(解)交织操作;例如,参见图4中示出的非限制性实施例,同样可能的是,应用该实施例,来仅使用输入205和IO通道410a来对具有交织度2的数据字(即,数据字ABABABABAB...)进行交织。 [0045] 类似地,可以对每个多路复用器220的输入的数目进行选择,以与移位寄存器200或400要处理的不同数目的(解)交织度相匹配。例如,对于移位寄存器200,可以用作: [0046] -用于非交织数据字AAAA...的简单移位寄存器, [0047] -用于ABABABAB...类型交织数据字的移位寄存器, [0048] -用于ABCDABCD...类型交织数据字的移位寄存器, [0049] -用于ABCDEFGHABCDEFGH...类型交织数据字的移位寄存器, [0050] 如图3所示,每个多路复用器220需要四个输入来将下游移位寄存器单元210N与移位寄存器单元210N-1,210N-2,210N-4和210N-8相连。 [0051] 图5示出了本发明的电子设备500的实施例。电子设备500包括根据本发明实施例之一的移位寄存器(这里由图3所示移位寄存器实施例的方面所描述)、以及可以是CPU的控制器520。CPU 520被配置为控制多路复用器220和250,使得可以在经由输入260的并行捕获模式与特殊移位模式之间操作移位寄存器200,如先前所述,在所述特殊移位模式中,CPU 520配置多路复用器220,以绕过适宜数目的上游移位寄存器单元210。为此,CPU520可以接收指令或一些其它形式的信息,所述指令或信息对要与移位寄存器通信的数据的(解)交织度加以指示,CPU 520相应地配置多路复用器220。由于存在多路复用器220与IO通道230(或410)的组合,与图1中所示的现有配置相比,CPU 520可以使用减少数目的指令来实现(解)交织操作,这意味着使用本发明的电子设备500可以获得更快的操作速度。 [0052] 在优选备选实施例中,控制器520包括CPU和有限状态机(FSM),所述CPU用于将数据从移位寄存器200或400并行加载成读数据,所述 有限状态机(FSM)用于操作移位寄存器200和400的移位和捕获操作。因此,可以使用专用FSM时钟信号,益处在于可以产生高质量的时钟信号。例如,对于CPU的操作状态的较大变化而导致的抖动,向CPU提供的时钟信号通常较敏感;FSM时钟倾向于对抖动较不敏感,使得可以实现移位寄存器200或400的更快操作速度。 [0053] 图6示意性示出了本发明的操作原理,即本发明的控制移位寄存器的方法。在步骤610,将数据移动通过移位寄存器200或400,其中绕过预定数目的移位寄存器单元210,所述数目是预定的,以与相同数据部分的比特之间的交织距离相匹配。在步骤620中,IO通道230或419用于对进入移位寄存器或从移位寄存器出来的多个比特进行同时捕获。在步骤630,确保对步骤610和620进行重复,直到所有的比特已被移入移位寄存器或移出移位寄存器为止。 |