CN107045433B - 用于在基于加法器的电路中处理数据的系统和方法 - Google Patents

用于在基于加法器的电路中处理数据的系统和方法 Download PDF

Info

Publication number
CN107045433B
CN107045433B CN201710063784.6A CN201710063784A CN107045433B CN 107045433 B CN107045433 B CN 107045433B CN 201710063784 A CN201710063784 A CN 201710063784A CN 107045433 B CN107045433 B CN 107045433B
Authority
CN
China
Prior art keywords
token
addend
unary
bit
phase error
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
Application number
CN201710063784.6A
Other languages
English (en)
Other versions
CN107045433A (zh
Inventor
J·查特文
J·位索基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN107045433A publication Critical patent/CN107045433A/zh
Application granted granted Critical
Publication of CN107045433B publication Critical patent/CN107045433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/504Adding; Subtracting in bit-serial fashion, i.e. having a single digit-handling circuit treating all denominations after each other
    • G06F7/5045Adding; Subtracting in bit-serial fashion, i.e. having a single digit-handling circuit treating all denominations after each other for multiple operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本申请涉及用于在基于加法器的电路中处理数据的系统和方法。本文公开了在诸如集成电路的基于加法器的电路中处理数据的系统和方法的各种方面。根据一种实施例,将第一加数编码为第一一元数。第一一元数包括令牌比特。将第二加数编码为第二一元数。基于第二一元数在第一一元数中的令牌比特上执行第一移位操作。执行第一移位操作以生成输出一元数。将生成的输出一元数解码成对应于第一加数和/或第二加数的数表示的数表示。解码数表示指示第一加数和第二加数的和。

Description

用于在基于加法器的电路中处理数据的系统和方法
相关申请的交叉引用/通过参考的结合
技术领域
本公开的各种实施例涉及在基于加法器的电路中的数据处理。更具体地,本公开的各种实施例涉及用于若干加数的和的基于加法器的电路中的数据处理。
背景技术
随着集成电路(IC)处理和/或设计技术中的最近的进步,加法器在补充不断进步的数据处理技术中的作用也已经不断增加。对于计算机、处理器、和/或其它数字集成电路的操作来说加法器被认为是关键的,所述其它数字集成电路是诸如用于要求用于生成高频率时钟源的高速数据传输的电路和/或数字信号处理器(DSP)的数字锁相环(DPLL)电路、乘累加(MAC)电路。
目前,大多数数字IC一次在单对数上执行数据处理操作。通常定制数据处理操作以处理要求很多比特用于表示的大数。在某些场景中,当要求数据处理操作处理大量的小数时,传统数据处理技术通过使用传统加法器引发对涉及延时、功率和\或面积的处理性能的惩罚。因此,可能要求有效的技术或机制以在先进的基于加法器的电路中处理数据,其中可以以优化的方式相加和/或相减若干加数。
通过所述系统与在本申请的其余部分中参考附图所陈述的本公开的一些方面的比较,传统和惯常的方法的其它限制和缺点将对于本领域技术人员是显而易见的。
发明内容
一种在基于加法器的电路中处理数据的系统和方法充分地示出在至少一个图中,和/或关于至少一个图描述,并且在权利要求中更完整地陈述。
通过回顾本公开的以下详细描述,连同相似附图标记自始至终参考相似部分的附图,将理解本公开的这些和那些特征和优点。
附图说明
图1A是图示根据本公开的实施例的用于实现公开的系统和方法的集成电路的示例性顶层图的框图。
图1B和1C是图示根据本公开的实施例的涉及用于实现公开的系统和方法的集成电路中的DeMUX、相位检测器逻辑和数字环路滤波器的信号流的框图。
图2A和2B是图示根据本公开的实施例的加法器的示例性电路架构的框图。
图3A、3B和3C图示根据本公开的实施例的涉及加法器中编码加数的数据处理操作。
图4A到4G图示根据本公开的实施例的涉及加法器中的令牌移位机制的数据处理操作。
图5A和5B图示根据本公开的实施例的用于实现公开的系统和方法以在基于加法器的电路中处理数据的第一示例性场景。
图6图示根据本公开的实施例的用于实现公开的系统和方法以在基于加法器的电路中处理数据的第二示例性场景。
图7图示根据本公开的实施例的用于实现公开的系统和方法以在基于加法器的电路中处理数据的第三示例性场景。
图8是图示根据本公开的实施例的在加法器中处理数据的示例性方法的流程图。
图9A和9B共同地描绘图示根据本公开的实施例的在基于加法器的电路中处理数据的另一种示例性方法的另一个流程图。
具体实施方式
可以在基于加法器的电路中处理数据的公开的系统和方法中找到下面描述的实现方式。本公开的示例性方面可以包括可以被配置成将第一加数编码为第一一元数的系统。第一一元数可以包括令牌比特。可以将第二加数编码为第二一元数。可以基于第二一元数在第一一元数中的令牌比特上执行第一移位操作。可以执行第一移位操作以生成输出一元数。可以将生成的输出一元数解码成可以对应于第一加数和/或第二加数的数表示的数表示。根据一种实施例,解码数表示可以指示第一加数和第二加数的和。
根据一种实施例,可以由令牌编码器编码第一加数。可以由移位编码器编码第二加数。可以由令牌移位器执行令牌比特上的移位操作。可以由令牌解码器解码生成的输出一元数。
根据一种实施例,移位操作可以对应于基于第二一元数的第一一元数中的令牌比特的位置的移位。可以执行移位第一一元数中的令牌比特的位置的移位操作以生成输出一元数。根据一种实施例,可以基于在某一时刻输入信号的信号沿与参考信号的另一个信号沿的比较来生成多态信号,诸如三态信号。生成的多态信号可以表示相位误差信息。
根据一种实施例,可以检测相位误差信息是否小于或等于预定的阈值,诸如零。当相位误差信息大于预定的阈值时可以执行第一移位操作。
根据一种实施例,可以将相位误差信息编码成二进制编码数。编码的相位误差信息可以作为一个或多个比特储存在存储器元件中。一个或多个比特可以表示二进制编码数。生成的输出一元数中令牌比特的位置的移位可以指示二进制编码数的数值中的增量或减量。根据一种实施例,二进制编码数可以对应于储存的和编码的相位误差信息。
根据一种实施例,可以在生成的输出一元数中的令牌比特的位置上执行第二移位操作。第二移位操作可以基于第三一元数。根据一种实施例,第三一元数可以是编码的第三加数。编码的第三加数可以对应于进入的(incoming)相位误差信息。
根据一种实施例,可以在进入的相位误差信息不等于零或者大于预定的阈值时执行第二移位操作。第一加数可以对应于储存的二进制编码数。第二加数可以对应于进入的相位误差信息。
根据一种实施例,可以确定生成用于压控振荡器(VCO)的控制信号的更新信息。可以基于生成的输出一元数中令牌比特的位置确定更新信息。控制信号可以用于调整VCO的频率。调整的频率可以对应于参考信号。
根据一种实施例,可以基于指示第一加数和第二加数的和的解码数表示来确定生成用于VCO的控制信号的更新信息。根据一种实施例,第一一元数的令牌比特的比特值可以与对应于第一一元数的其它比特的比特值不同。根据一种实施例,第一一元数可以包括n比特宽令牌。可以通过n根线的集合来表示n比特宽令牌。n比特宽令牌中令牌比特的位置可以指示第一加数的值。
图1A是图示根据本公开的实施例的用于实现公开的处理数据的系统和方法的集成电路的示例性顶层图的框图。参考图1A,示出了用于数字锁相环(DPLL)100a的集成电路的顶层图。DPLL 100可以包括一个或多个电路,诸如数据采样器102、分频器104、多路分配器(DeMUX)106、数字相位检测器逻辑108、数字环路滤波器110、数字到模拟转换器(DAC)112和压控振荡器(VCO)114。数字环路滤波器110可以通信地耦合到数字相位检测器逻辑108和DAC 112。
数据采样器102可以包括可以被配置成通过使用来自VCO 114的时钟信号(参考输入)采样输入数据的合适的逻辑、电路系统、代码和/或接口。数据采样器102的示例可以包括,但不限制于,基于奈奎斯特数据采样的采样器,和/或过零(zero crossing)采样器,和/或现有技术中已知的其它数据采样器。
分频器104可以包括可以被配置成分频进入的信号的频率的合适的逻辑、电路系统、接口和/或代码。分频器104的输出可以作为到DeMUX 106的时钟。分频器104的输出的一部分可以从DeMUX 106反馈到数字相位检测器逻辑108。
DeMUX 106可以包括可以被配置成如所示的那样将数据信号分配到几个输出线路的合适的逻辑、电路系统、接口和/或代码。DeMUX 106可以被配置成接收来自分频器104的时钟信号和来自数据采样器102的数字数据输出信号。DeMUX 106可以输出恢复的数据和恢复的时钟。
数字相位检测器逻辑108可以指的是可以通过比较与数据采样器102相关联的输入信号的沿的相对定时来检测相位误差信号的合适的逻辑、电路系统、接口和/或代码。在一种实现方式中,数据采样器102、DeMUX 106和数字相位检测器逻辑108可以被实现在单个单元中,诸如通过使用砰砰(bang-bang)相位检测器。然而在不限制本公开的范围的情况下,可以采用其它类型的相位检测器来执行如图1A中所述的数字相位检测器逻辑108和/或一个或多个其它单元的功能。因此在不限制本公开的范围的情况下,可以组合或者作为单独的实体实现如图1A中所述的一个或多个其它单元。其它类型的相位检测器的示例可以指的是XOR相位检测器、沿触发JK触发器相位频率检测器、双D型相位比较器、和/或其它I型相位检测器或II型相位检测器、等等。可替代地,根据一种实施例,当进入的信号是在相同的频率时,数字相位检测器逻辑108可以通过比较所应用的输入信号的沿的相对定时来检测相位误差信号。来自参考源的数字数据输入信号可以作为一个输入信号馈送到数字相位检测器逻辑108并且来自VCO 114的输出的参考信号可以作为另一个输入信号馈送到数字相位检测器逻辑108。数字相位检测器逻辑108可以检测输入信号的相位是否落后参考信号的相位以生成相位误差信息。
数字环路滤波器110可以包括可以被配置成控制DPLL 100的动态行为和稳定性的合适逻辑、电路系统、接口和/或代码。数字环路滤波器110可以用于移除可以扰乱VCO 114的期望操作的不想要的假信号(spurious signal)。数字环路滤波器110的一个或多个部分可以被配置成利用数字环路滤波器110的传递函数,使得数字环路滤波器110可以通过在时间上积分接收的输入相位误差信号来输出控制信号。根据一种实施例,如同在图1B和1C中所示的那样示出和解释的数字环路滤波器110和数字相位检测器逻辑108(或当出现时的砰砰相位检测器)之间的连接。根据一种实施例,可以利用多个加数以最小化相位误差信息。根据一种实施例,可以基于,但是不限制于,有限冲激响应(FIR)滤波器或者无限冲激响应(IIR)滤波器实现数字环路滤波器110。根据一种实施例,数字相位检测器逻辑108和数字环路滤波器110可以被实现为单个实体(如图1A中示出的那样)。
DAC 112可以包括可以被配置成将从数字环路滤波器110接收的数字数据信号转换成模拟数据信号的合适的逻辑、电路系统、和/或接口。可以进一步将模拟数据信号传输到VCO 114。DAC 112的示例可以包括,但不限制于,逐次逼近DAC、R-2R梯形DAC、二进制加权DAC、一元数加权DAC、分段式DAC、温度计码DAC、和/或混合DAC。
VCO 114可以包括可以被配置成经由DAC 112接收来自数字环路滤波器110的控制信号(诸如,电压控制信号)的合适的逻辑、电路系统、代码和/或接口。基于接收的控制信号,VCO可以调整(在VCO 114中的)振荡器的频率以生成可以在多个VCO周期上最小化相位误差信息的时钟信号。生成的时钟信号可以是在数字相位检测器逻辑108的输入处的参考信号。VCO 114的实现方式的示例可以包括,但不限制于,模拟压控振荡器、数字控制振荡器(DCO)、和/或数值控制振荡器(NCO)。在一种实施例中,VCO 114可以是模拟压控振荡器。为了供应模拟电压控制信号,可以采用DAC 112以将可以是数字控制信号的来自数字环路滤波器110的控制信号转换成模拟控制信号。根据一种实施例,VCO 114可以是数字压控振荡器。在这种情况中,DPLL 100可以不要求DAC 112。
在操作中,数据采样器102可以被配置成接收数据输入信号。可以从参考源(在图1A中未示出)接收数据输入信号。根据一种实施例,可以通过使用从VCO 114接收的时钟信号采样接收的数据输入信号。采样的数据输入信号可以被传达到DeMUX 106。分频器104可以配置成通过预定的因子分频时钟信号的频率。来自分频器104的时钟信号可以用作DeMUX106的另一个输入。
根据一种实施例,DeMUX 106可以被配置成向数字相位检测器逻辑108供应数据输入信号和时钟信号。数字相位检测器逻辑108可以被配置成比较对应于来自VCO 114的时钟信号的上升沿和来自参考源的数据输入信号的沿的相对时间。根据一种实施例,数字相位检测器逻辑108可以被配置成基于在某一时刻输入信号(诸如,数据输入信号)的信号沿与参考信号(诸如,时钟信号)的另一个信号沿的比较来生成多态信号。根据一种实施例,生成的多态信号可以对应于相位误差信息。
根据一种实施例,相位误差信息可以表示时钟信号的上升沿相对于数据输入信号的沿是否已经更早到达或者更晚到达。根据一种实施例,相位误差信息可以进一步表示时钟信号的下降沿相对于数据输入信号的沿是否已经更早到达或者更晚到达。本领域技术人员将会理解的是,本公开的范围不应该限制到对应于时钟信号与数据输入信号的沿的相对时间的比较。
根据一种实施例,数字相位检测器逻辑108可以将生成的多态信号传达到数字环路滤波器110。数字环路滤波器110可以将对应于相位误差信息的接收的多态信号编码成二进制编码数。根据一种实施例,可以通过使用二补码表示编码相位误差信息以生成二进制编码数。用于编码相位误差信息的编码技术的示例可以包括,但不限制于,一补码表示、有符号二进制数表示、和/或无符号二进制数表示。
根据一种实施例,数字相位检测器逻辑108可以在多态信号向数字环路滤波器110的传达之前编码生成的多态信号。根据一种实施例,DPLL 100可以进一步包括被配置成将编码的相位误差信息储存为一个或多个比特的存储器元件。一个或多个比特可以表示二进制编码数。例如,存储器元件可以是被配置成将编码的相位误差信息储存为一个或多个比特的寄存器。
根据一种实施例,数字相位检测器逻辑108可以被配置成检测对应于相位误差信息的值(诸如,相位误差值)是否小于或大于预定的阈值。可能期望的是通过预设置预定的阈值为最小值(诸如,近似地接近零的值)来最小化相位误差信息。
在对应于相位误差信息的值大于预定的阈值的实例中,数字环路滤波器110可以被配置成利用多个加数来积分相位误差信息。例如,当在模拟域中实现环路滤波器时,可以用电荷泵和电容器实现相位误差信息的积分。电容器的电荷可以如同受控时钟的相位相比较于参考相位那样变化,并且因此可以通过由使用电荷泵的来自电容器的电荷的加或减来处理来自若干次比较的相位信息。在这种情况中,电容器上的电压可以作为控制信号馈送到VCO 114。然而,当在数字域中实现环路滤波器(诸如,数字环路滤波器110)时,如上所述的,相位误差信息可以作为可以表示数(诸如,二进制编码数)的单独的比特储存在存储器元件(诸如,寄存器)中。可以将相位误差信息加到或减到寄存器中的值,其可以导致相位误差的积分。可以通过使用加法器和多个加数,执行相位误差信息的加法或减法。多个加数可以是存储器元件(诸如,寄存器)的现有内容,和/或进入的相位误差信息。
根据一种实施例,多个加数的第一加数可以对应于储存在存储器元件中的二进制编码数。多个加数的后续的加数(诸如,第二加数或第三加数)可以对应于进入的相位误差信息。例如,相位误差信息可以是多态信息,诸如,在图1B和1C中作为示例示出的三态信息而不是两态信息(诸如,二进制)。
数字环路滤波器110可以被配置成将第一加数编码为第一一元数。编码也可以被称为第一加数向第一一元数表示的转换。第一一元数可以包括令牌比特。第一一元数可以对应于可以包括令牌比特的n比特宽令牌。n比特宽令牌中令牌比特的位置可以指示第一加数的值。
根据一种实施例,数字环路滤波器110可以被配置成将第二加数编码为第二一元数。第二一元数可以表示进入的相位误差信息。数字环路滤波器110可以被配置成基于第二一元数在第一一元数中的令牌比特上执行第一移位操作。第一移位操作可以导致n比特宽令牌中至少1比特位置的令牌比特的移位。根据一种实施例,第一移位操作可以对应于涉及令牌比特的位置的无移位、左移位或者右移位操作。数字环路滤波器110可以基于第一移位操作生成输出一元数。根据一种实施例,生成的输出一元数中的令牌比特位置的移位可以指示对应于储存的并且编码的相位误差信息的二进制编码数的数值中的增量或减量。
根据一种实施例,数字环路滤波器110可以被配置成基于另一个一元数在生成的输出一元数中的令牌比特的位置上执行第二移位操作。根据一种实施例,其它一元数可以是第三一元数。第三一元数也可以表示进入的相位误差信息。
根据一种实施例,数字环路滤波器110可以被配置成确定生成用于VCO 114的控制信号的更新信息。根据一种实施例,更新信息可以基于生成的输出一元数中令牌比特的位置。可以利用生成的控制信号调整VCO 114的频率。调整的频率可以用于更新可以由VCO114生成的时钟信号。
根据一种实施例,数字环路滤波器110可以被配置成将生成的输出一元数解码成类似于第一加数和/或第二加数的数表示的数表示。例如,在第一加数和第二加数表示为二补码数的状态中,可以将生成的输出一元数解码成二补码数表示。进一步地,通过将生成的输出一元数解码而获得的解码数表示可以是可以指示多个加数(诸如,第一加数和第二加数)的和的数表示。获得的和结果可以对应于在处理由数字相位误差检测器逻辑108(诸如,砰砰相位检测器)生成的相位误差信息时的比特(诸如,相位误差比特)的计数。
根据一种实施例,DAC 112可以被配置成将输出一元数从数字信号转换成模拟信号。如上所述,转换的模拟信号可以作为用于VCO 114的控制信号。根据一种实施例,VCO114可以被配置成接收来自DAC 112的控制信号(这个情况中是模拟形式)。基于接收的控制信号,VCO 114可以调整振荡器的频率以生成时钟信号,该时钟信号可以在数字环路滤波器110的控制下在多个VCO周期上最小化进入的相位误差信息。由数字环路滤波器110从数字相位检测器逻辑108接收的相位误差信息,可以在时间上积分以获得恢复的数据输出信号。例如,当生成的多态信号的值(称为相位误差)小于预定的阈值时,DeMUX 106可以被配置成生成恢复的数据输出信号和恢复的时钟信号。
根据一种实施例,恢复的数据输出信号与进入的数据输入信号可以具有固定关系。恢复的数据输出信号可以具有与数据输入信号相同的频率。根据一种实施例,恢复的数据输出信号可以具有可以是数据输入信号频率的倍数的频率。恢复的数据信号可以用作用于可以使用集成电路(诸如,DPLL 100)的电子设备的其它部分的控制信号。恢复的数据输出信号和/或恢复的时钟信号的应用的示例可以包括,但不限制于,FM解调器电路、信号重构电路、时钟恢复和/或频率合成。
根据本公开的一个示例性方面,示出了集成电路实现为DPLL 100以描述多个加数的处理。然而,存在要求在大量小数(诸如,加数)上执行数据处理操作的多种应用。这些应用包括,但不限制于,用于数字信号处理器(DSP)并且也使用在要求高速数据的传输或者用于高频时钟源的生成的电路中的乘累加电路(MAC)、DPLL(诸如,如上所述的DPLL 100)。要求在大量小数(诸如,加数)上执行数据处理操作的其它应用包括音频识别、语音识别以及还有雷达和/或地质领域。这些应用都依赖若干加数的处理(诸如,求和)和其它既定技术以执行所要求的操作。
IC的处理性能的典型度量是功率、面积和延时,目标是为给定数据处理操作最小化每一个。在传统技术中,大多数数字IC可以一次在单对数上执行数据处理操作。可以定制数据处理操作以处理要求许多比特用于表示的大数。在某些情景中,当数据处理操作要求大量小数(诸如,加数)时,传统数据处理技术可以引发涉及延时、功率和面积的处理性能的惩罚。例如,为了处理由数字相位误差检测器逻辑108生成的相位误差信息的多个比特,数据处理器可以涉及连续计算(tally)进入的相位误差信息。相位误差信息一变成可用的,数据处理器就可以执行数据处理操作。因此,与本公开相比传统技术可能涉及延时。此外,互补金属氧化物半导体(CMOS)逻辑的功率消耗随频率线性增加。
本公开的各种实施例可以包含很多优势。通过将高速、串行数据信号多路分解(de-multiplexing)成低速、并行数据信号可以节省大量功率。低速数据信号可以进一步降低功率消耗。例如,当处理速度降低一半时,功率消耗可以降低二分之一(a factor oftwo)。根据一种实施例,可以优化方法或系统使得各种操作被配置成并行地执行。根据一种实施例,如在上文以及本公开的各种实施例中所述的简单、一元数表示系统的使用允许电路的更简单的复杂度和低延时实现。进一步地,如所讨论的那样,公开的方法或系统可以被配置成相比于现有技术耗费更少的功率。
传统数据处理技术通过使用传统加法器(诸如,半加器、全加器、逐位进位加法器、超前进位加法器和/或并行加法器)可以引发涉及延时、功率和/或面积的处理性能的惩罚。例如,半加器可以是接受两个单比特输入值并且输出输入值的二进制和的电路。半加器电路可以是受限制的,因为对于输入值“0+0”或者输入值“1+1”来说输出可以是相同的。全加器是半加器的扩展,具有进位输入(输入)信号和进位输出(输出)信号。
在传统加法器的另一个示例中,逐位进位加法器可以并行地使用多个全加器(一个逐位进位加法器用于被求和的输入数字的每一个比特)以一次确定两个大数的和。因此,n比特求和要求“n”个全加器。来自第“0”比特操作的进位输出信号发送到第一比特操作的进位输入。相应地,下一个进位输出可以发送到下一个全加器,诸如此类。在逐位进位加法器的情况中,为了将两个n比特数加在一起,进位信号必须传播通过所有“n”个全加器。这意味着执行操作的时间随着输入加数的比特数线性增加,这可能是不期望的。
在传统加法器的另一个示例中,现有技术中的超前进位加法器可以在相加非常大(宽)的数的同时改善逐位进位加法器的延时。在超前进位加法器电路中,基于每一对输入比特计算最高位比特的进位信号,并且对于n比特加法不要求进位信号传播通过所有n比特。对于每一个比特对,可以创建一对信号,称为传播信号和生成信号。当从进位输入得到进位输出时可以断定传播信号。当在任何条件中得到进位输出时可以断定生成信号。用于每一个全加器的进位输入信号可以是传播信号和用于每一个加数的次最高位比特的生成信号的函数。尽管这降低了加法操作的延时,但是要求比逐位进位加法器更大的电路面积和更多的功率。
所提到的传统加法器(诸如,半加器、全加器、逐位进位加法器和超前进位加法器)没有一个被设计成并行地相加许多单比特数。超前进位加法器的某些配置可以相加许多并行比特。例如,对于“m”个输入值,在输入处可以要求“m/3”个全加器,并且可以要求“log2(m)”深度的加法器以将许多小“1比特”数转换成“log2(m)比特”二进制表示的和。由于要求大量全加器执行数据处理操作,电路的这种配置再次引发对面积和延时的大的惩罚。为了优化涉及延时、功率和/或面积的处理性能,公开的系统和方法提供了一种在改进加法器中处理数据的有效机制(诸如,如在图1A、1B、1C、2A、2B、3A到3C、4A到4G、5A、5B和6到9B中所描述的,公开的示例性加法器和相关联的数据处理技术)。
在上面提到的应用之外,公开的系统和方法也可以应用于光学处理元件(诸如,在光学计算设备中使用的集成计算元件(ICE)核心)。例如,要求分析、监视、和/或检测化学物质(诸如,碳氢化合物、钻井液和完井液)的各种行业(诸如、油气行业、涂料行业、制药行业、和美容行业)利用光学处理元件(诸如,ICE核心)。在光学处理元件(诸如,ICE核心)的设计、评估和制作期间需要计算各种性能因子,诸如大量ICE核心设计的标准校正误差(SEC)。通过并行地并且以优化的方式在大量小数(诸如,加数)上执行数据处理操作,公开的系统和方法可以有利地用于这样的设计、评估和制作中。
进一步地,众所周知的是光学元件在数据处理中的使用可以具有并行性和宽带宽的优势。然而,对接这样的基于光学元件的解决方案和电子电路的需求通常造成限制,该限制无效了在数据处理中使用光学元件的固有优势。公开的系统和方法可以克服这样的限制以提供适当的电子电路接口以优化公开的改进的加法器的处理性能。进一步地,公开的系统和方法还可以应用于要求量子比特(量子位)的快速处理的量子计算。在上文和本公开的各种实施例中描述的简单的一元数表示系统和令牌比特移位机制可以允许适合在量子计算中使用的更简单电路复杂度和低延时实现。
图1B和1C是图示根据本公开的实施例的涉及用于实现所公开的系统和方法的集成电路中的DeMUX、相位检测器逻辑和数字环路滤波器的信号流的框图。已经连同来自图1A的元件描述图1B和1C。参考图1B,示出了在数字相位检测器逻辑108和数字环路滤波器110之间的第一示例性通信连接100b。进一步示出了DeMUX 106。
DeMUX 106可以传达采样的输入信号。根据通信连接100b,如所示的那样,可以由数字相位检测器逻辑108为每一个接收的采样值计算每一个单独的相位误差加数(诸如,“pe0”、“pe1”和“pe2”)。可以由三态信号(诸如,“{-1,0,1}”)表示单独的相位误差加数。数字相位检测器逻辑108可以进一步被配置成计算单独的相位误差加数的和。根据一种实施例,三个周期上的单独的相位误差加数的和的信号范围可以是{-3,-2…+2,+3}。数字相位检测器逻辑108可以进一步被配置成将计算的和传达到数字环路滤波器110。数字环路滤波器110可以被配置成接收所计算的和并且积累相位误差(积分)。这样的积累的相位误差可以等效于与传统模拟电荷泵中的电容器和电荷泵相关联的相位误差。
参考图1C,示出了在数字相位检测器逻辑108和数字环路滤波器110之间的第二示例性通信连接100c。进一步示出了DeMUX 106。根据通信连接100c,每一个单独的相位误差加数(诸如,“pe0”、“pe1”和“pe2”),如所示的那样。如在图1B中所述的,可以由多态信号(诸如,三态信号“{-1,0,1}”)表示单独的相位误差加数。数字相位检测器逻辑108可以进一步被配置成将单独的相位误差加数传达到数字环路滤波器110。数字环路滤波器110可以被配置成接收单独的相位误差加数并且积累相位误差。如在图1B中所述的,这样的积累的相位误差可以等效于与传统模拟电荷泵中的电容器和电荷泵相关联的相位误差。
图2A和2B是图示根据本公开的实施例的加法器的示例性电路架构的框图。已经结合来自图1A到1C的元件描述图2A和2B。参考图2A,示出了示例性加法器200A。加法器200A可以包括令牌编码器202、移位编码器204a、令牌移位器206a和令牌解码器208。进一步示出了第一加数210a、第二加数210b、第一一元数212、第二一元数214a、输出一元数216a和解码数表示218。根据一种实施例,如图1A中所述的,可以在数字相位检测器逻辑108中和/或DPLL100的数字环路滤波器110中实现加法器200A,以处理多个加数。虽然,在不限制本公开的范围的情况下,加法器可以使用或实现在其它IC中(诸如,数字延迟锁定环(DDLL)、用于数字信号处理器(DSP)的乘累加(MAC)电路)、用于在现场可编程门阵列(FPGA)、图形处理单元(GPU)、微处理器、微控制器、数据转化器中处理数据,用于算数逻辑单元(ALU)中一个或多个乘法器电路、和/或专用集成电路中的减法电路。
令牌编码器202可以包括可以被配置成将存储器元件(诸如,寄存器)的现有内容(诸如,二进制编码数)编码成一元数表示的合适的逻辑、电路、逻辑门、算数逻辑单元(ALU)、和/或接口。例如,令牌编码器202可以将储存的二进制相位信息(诸如,第一加数210a)编码成第一一元数表示212。换言之,储存的二进制相位信息的编码操作可以指的是将要被表示为一元数的输入二进制编码数的转换。根据一种实施例,第一一元数212可以包括令牌比特。可以使用组合逻辑电路设计实现令牌编码器202。在一种实现中,令牌编码器202可以是使能对数的加法的对数令牌编码器。
移位编码器204a可以包括可以被配置成将进入的相位误差信息(诸如,第二加数210b)编码成第二一元数表示的合适的逻辑、电路系统、逻辑门、ALU、和/或接口。换言之,进入的相位误差信息的编码操作可以指的是将要被表示为第二一元数214a的编码的相位误差信息的转换。在一种实现中,移位编码器204a可以作为多个加数的乘法器而不是生成加法或减法的效果。
令牌移位器206a可以包括可以被配置成基于另一个一元数(诸如,第二一元数214a)在输入一元数(诸如,第一一元数212)中的令牌比特上执行第一移位操作的合适的逻辑、电路系统、逻辑门、ALU、和/或接口。移位操作可以生成输出一元数216a。
令牌解码器208可以包括可以被配置成将生成的输出一元数216a解码成对应于第一加数210a和第二加数210b的数表示的合适的逻辑、电路系统、逻辑门、ALU、和/或接口。解码数表示218可以指示第一加数210a和第二加数210b的和。根据一种实施例,可以使用组合逻辑设计实现令牌解码器208的功能。
在操作中,令牌编码器202可以将第一加数210a编码以获得第一一元数212。输入第一加数210a可以是二补码二进制数表示。本领域技术人员应当理解的是,本公开的范围不应限制于通过使用二补码表示的第一加数210a的表示。第一加数210a可以采用下述形式:无符号二进制、有符号二进制、一补码二进制、独热编码或者适合用于在其中使用加法器200A的应用的其它数表示系统。
根据一种实施例,令牌编码器202可以将可以表示为二补码数的输入第一加数210a编码成第一一元数212。根据一种实施例,移位编码器204a可以将可以表示为二补码数的输入第二加数210b编码成第二一元数214a。
根据一种实施例,第一一元数212可以包括令牌比特。例如,第一一元数212可以包括单个比特值“1”作为令牌比特。第一一元数212的所有其它比特值可以是“0”。根据一种实施例,第一一元数212可以包括单个“0”作为令牌比特。第一一元数212的所有其它比特值可以是“1”。因此,令牌比特可以是编码的(或转换的)一元数(诸如,第一一元数212)的比特值之中的独特的比特值。令牌比特在n比特宽令牌中的位置可以表示第一一元数212的值。
在一种实现中,第一一元数212也可以采用温度计码的形式。可以由一串连续“1”和一串连续的“0”来形成温度计码。在这种情况中,可以由一串“0”和一串“1”之间的边界的位置表示令牌比特。可以由温度计码中从“0”到“1”的立即过渡之后的“1”的位置表示令牌比特。根据一种实施例,可以由一串连续的0和一串连续的1形成温度计码。在这种情况中,可以由温度计码中从“1”到“0”的立即过渡之后的“0”的位置表示令牌比特。令牌比特的位置可以表示第一一元数212的值。
根据一种实施例,第一一元数212可以包括若干令牌比特而不是一个令牌比特。根据一种实施例,可以利用若干令牌比特表示多值数位(digit)。例如,将要由第一一元数212表示的数可以包括两个正交分量,诸如复数。复数可以包括实部和虚部。实部可以由令牌比特表示而虚部可以表示为模拟电压。在第一一元数212表示复数的情况中,数据处理操作(诸如,加法或减法)将仅影响实部然而虚部保持不变。
根据一种实施例,第一一元数212中的若干令牌比特可以描述若干数字并且(如图7中所述的)在由若干令牌比特表示的一组数上同时实施算数操作。例如,可以由第一一元数212中的两个令牌比特同时表示两个数。本领域技术人员将会理解的是,第一一元数212中令牌比特的数量是示例性的。对应于第一一元数212的相同的n比特宽输入令牌(由相同的一组线物理地表示)可以拥有若干不同的数,因为可以通过令牌比特的位置而不是所有线一起的状态表示数。
参考图2B,示出了另一个示例性加法器200B。加法器200B可以类似于加法器200A。加法器200B可以包括加法器200A的元件,诸如令牌编码器202、移位编码器204a、令牌移位器206a、令牌解码器208、以及根据需要的这些元件的额外实例(如所示的那样)。例如,当要处理额外的加数(诸如,第三加数210c到第n加数210n)时,如图2B中所示的,可以为每一个加数采用额外的移位编码器204b到204n和对应的令牌移位器206b到206n。
根据一种实施例,加法器200B可以被配置成执行多个加数210a到210n的求和。如在图2B中所述的,可以通过增加对应于每一个额外输入加数的移位编码器和对应的令牌移位器来执行多个加数的求和。随着每一个额外的加数,对应于生成的输出一元数(诸如,输出一元数216a到输出一元数216n)的输出令牌的宽度可以在每一个移位操作中增加以允许可以由输入加数的和所表示的期望的数的全部范围。
图3A、3B和3C图示了根据本公开的实施例的涉及基于加法器的电路中(诸如,在加法器200A或加法器200B中)加数的编码的数据处理操作。已经连同来自图1A、1B、1C、2A和2B的元件描述图3A、3B和3C。参考图3A,示出了根据本公开的实施例的描绘将第一加数210a编码成第一一元数212的数据处理操作的示例性真值表。
第一加数210a可以是由n根线的集合上的多态信号物理地表示的n比特宽数。在这种情况中,因为第一加数210a是二补码和3比特二进制编码数,所以第一加数210a可以表示最多“23”个组合。根据一种实施例,如图3A中所示的,在该示例中“23”个组合可以表示具有从“-4到3”的十进制值的8个数的范围。
根据一种实施例,可以将输入第一加数210a编码成另一种数表示形式并且二进制编码数的大小可以是可变的n比特宽数,其中“n”可以是任意正值整数值。基于n比特宽二进制编码数的大小,由第一加数210a表示的数的范围可以变化。
根据一种实施例,可以将第一加数210a编码(或者转换)成第一一元数212。令牌编码器202的输出可以是第一一元数212,其可以是由8根线上的多态信号物理地表示的8比特宽编码输出。第一一元数212可以物理地表示为8根线(在图3A中描绘为“a-4到a3”)的一个上的二进制电压。如图3A中所示的,8比特宽第一一元数212(可以是令牌编码器202的输出)中的一个比特可以是“1”,而剩余的(n-1)比特填充“0”。表示“1”的第一一元数212中的比特位置可以称为令牌比特。可以由8比特宽令牌中(或者第一一元数212中)令牌比特“1”(具有比特值“1”的独特的令牌比特)的位置表示第一一元数212的值。
根据一种实施例,如上所述,因为还可以由8根线上的多态信号物理地表示第一一元数212,所以8根线的一根线可以携带电压“1”。具有电压“1”的线可以表示单独的数。根据一种实施例,8根线可以表示8个单独的数,诸如“-4、-3、-2、-1、0、+1、+2、+3”。根据一种实施例,如所示的,可以由8根线的阵列中令牌比特的位置指示第一一元数212表示的数。
根据一种实施例,由令牌比特的位置表示的数的范围可以包括但不限制于,连续的整数范围(诸如,“0、1、2、3、4、5、6、7”)、
连续的负整数范围(诸如,“-8、-7、-6、-5、-4、-3、-2、-1”)、偶数范围(诸如“0、2、4、6、8、10、12、14”)、随机整数范围(诸如,“0、1、3、4、5、6、7、9”)和/或表示二次幂的数的范围(诸如,“1、2、4、8、16、32、64、128”)等,而不是表示像“-4、-3、-2、-1、0、+1、+2、+3”的数的范围。
参考图3B,示出了用于第一一元数212的另一种示例性编码技术的真值表。根据一种实施例,可以用典型的温度计码的形式表示第一一元数212。可以由一串连续的“1”和一串连续的“0”形成温度计码。在这种情况中,可以由一串“0”(具有比特值“0”的若干连续比特)和一串“1”(具有比特值“1”的若干连续比特)之间的边界的位置表示令牌比特。可替代地,可以由温度计码中从“0”到“1”过渡的位置表示令牌比特。令牌比特的位置可以表示第一一元数212的值。根据一种实施例,可以通过第一一元数212中令牌比特的位置指示由第一一元数212表示的数的值。根据一种实施例,可以存在一个从“1”到“0”的过渡。从比特值“1”到“0”的过渡可以表示单独的数。
参考图3C,示出了用于第二加数210b的示例性编码技术的真值表。移位编码器204a到204n(图2A和2B)可以实现像令牌编码器202的类似的转换方法。根据一种实施例,移位编码器204a可以被配置成将第二加数210b编码成第二一元数214a。根据一种实施例,3比特编码第二一元数214a(可以是移位编码器204a的输出)中的一个比特可以是“1”,而剩余(n-1)比特是值“0”。表示“1”的第二一元数214a中的比特值可以被称为令牌比特。根据一种实施例,可以由第二一元数214a的令牌比特的位置指示由编码第二一元数214a表示的数的值。
在一种实现中,移位编码器204a可以接收输入的第二加数210b,作为2比特宽编码数。可以由2根线上的信号物理地表示2比特宽二进制编码数。进一步地,可以由3根线上的信号物理地表示第二一元数214a。根据一种实施例,所有3根线可以表示3个单独的数。根据一种实施例,仅1根线可以携带电压“1”。具有电压“1”的线可以表示单独的数。可以由3根线的阵列中令牌比特的位置描述第二一元数214a表示的数。
根据一种实施例,可以以二补码、2比特二进制编码数的形式表示第二一元数214a并且移位编码器204a的输出可以是3比特宽编码输出。在这种情况中,如图3C中所示的,移位编码器204a可以利用3个组合表示具有从“-1到1”的十进制值的3个数的范围。尽管,类似于第一加数210a,在不限制本公开的范围的情况下,可以以任意其它形式的数表示(诸如二补码数表示)编码第二加数210b。根据一种实施例,二进制编码数的大小可以是m比特数,其中“m”可以是任意正整数值。基于m比特二进制编码数的大小,由第二加数210b表示的数的范围可以变化。
图4A到4G图示了根据本公开的实施例的涉及加法器(诸如,加法器200A和200B)中移位操作机制的数据处理操作。已经连同来自图1A、1B、1C、2A、2B、3A、3B和3C的元件描述了图4A到4G。参考图4A,示出了第一示例性令牌移位器(诸如,令牌移位器206a)以解释移位操作机制。进一步示出了第一一元数212、第二一元数214a、虚拟线402a和402b、以及输出一元数216a。如图4A中所示的,令牌移位器206a可以被配置成通过使用简单的开关矩阵执行移位操作。
对应于n比特宽输入令牌的第一一元数212可以包括令牌比特,诸如“1”。虚拟线402a和402b可以被配置成保持无效虚拟比特,诸如可以与输入令牌比特的比特值(诸如,“1”)不同的全“0”比特值。可以提供虚拟线402a和402b以保证由10根线(诸如,如所示的“b-5到b4”)物理地表示的输出令牌总是具有路由源(routing source)。输出令牌可以对应于输出一元数216a。输出一元数216a可以是10比特(n+2)宽输出令牌,其可以是由于移位操作的扩展令牌输出。
在操作中,令牌移位器206a可以被配置成,基于第二一元数214a,通过应用无移位、左移位或右移位将第一一元数212的输入令牌比特路由到输出。换言之,令牌移位器206a可以在移位编码器204a的输入的指导下路由输入令牌比特。
根据一种实施例,在一元数表示系统中,在左或右方向上的令牌移位操作可以对应于移位操作在其上执行的输入数的值的增量或减量。根据一种实施例,移位操作可以涉及基于第二一元数214a以若干比特位置移位第一一元数212中的令牌比特。在这种情况中,若干比特位置的在左或右方向上的令牌移位操作可以对应于可能已经对其执行移位操作的数的值的乘法或除法。
根据一种实施例,由于移位操作可以发生输出一元数216a的比特位置的数量中的增加(由线的数量中的增加物理地表示)。输出一元数216a的比特位置(或者线)的数量中的增加可以是由于这样的事实:可以由第一加数210a和第二加数210b的加法实现的数的集合已经增加。例如,在这种情况中,第一加数210a的范围可以是从“-4到3”并且第二加数210b的范围可以是从“-1到1”。第一加数210a和第二加数210b的加法可以为将范围增加至“-5到4”。因此,可以扩展对应于生成的输出一元数216a的输出令牌宽度,以便捕获数的全部范围。根据一种实施例,在移位操作的后续周期期间,每一次移位操作之后的n比特宽输入令牌的大小可以增加。
图4B示出了根据本公开的实施例的图4A的令牌移位器206a的开关矩阵的示例性部分以进一步描述移位机制。参考图4B,示出了令牌移位器206a的第n根输出线404、令牌移位器206a的输入线405到407、路由路径408到410,以及移位编码器204a的输入线411到413。
令牌移位器206a的第n根输出线404可以是携带二进制电压的线中的一根或者表示对应于输出一元数216a的输出令牌中令牌比特的最终位置的线中的一根。如由图4A和4B两者中朝向第n根输出线404的3个进入的箭头所示出的,令牌移位器206a的每一根输出线(诸如,第n根输出线404)可以具有路由到它的3根输入线405到407。在输入线406处示出的粗箭头标记可以表示第一一元数212中的输入令牌比特的位置。路由路径408到410可以实现为开关但是也可以被实现为具有缓冲器的开关。尽管,在不限制本公开的范围的情况下可以由任何其它合适的路由方法实现路由路径408到410。
在操作中,当输入线411是活跃的时,那么通过使用路由路径408将令牌比特由输入线405路由到第n根输出线404。类似地,当输入线412是活跃的时,那么通过使用路由路径409将令牌比特(或者电压“1”)由输入线406路由到第n根输出线404。最终,当输入线413是活跃的时,那么通过使用路由路径410将令牌比特由输入线407路由到第n根输出线404。根据一种实施例,当移位编码器204a的输入线411到413的一根是活跃的时,其表明活跃的输入线携带二进制电压、或者表示第二一元数214a中令牌比特(诸如,“1”)的位置。
图4C示出了根据本公开的实施例的图4A的令牌移位器206a的开关矩阵的另一个示例性部分以进一步描述与输出令牌的一端相关联的移位机制。参考图4C,示出了令牌移位器206a的第n根输出线414。第n根输出线414可以位于令牌移位器206a(图4A)的输出线(诸如,“b-5到b4”)的一端(诸如,最左端线)。进一步示出了虚拟线402a、令牌移位器206a的输入线415、路由路径416到418、以及移位编码器204a的输入线411到413。
令牌移位器206a的第n根输出线414可以是与虚拟线402a相关联的端线(endwire)。在输入线415处示出的粗箭头标记可以表示第一一元数212的输入令牌比特的位置。路由路径416到418可以类似于路由路径408到410,并且可以实现为开关。如下面所述的,在输出令牌的两端(诸如,在这种情况中如在图4A中所示的最左端线“b-5”和最右端线“b4”)的移位机制可以要求不同的路由机制。
在操作中,当输入线411是活跃的时,通过使用路由路径418将第一一元数212的令牌比特由输入线415路由到第n根输出线414。可以用“0”比特值填充虚拟线402a。可以通过使用虚拟线402a在令牌移位器206a内人为地加宽由输入线(诸如,这种情况中的8根线“a-4到a3”)表示的输入n比特宽令牌以保证令牌移位器206a的输出线(诸如,这种情况中的10根线“b-5到b4”)总是具有路由源。通过使用虚拟线402a可以人为加宽令牌移位器206a的输入线(诸如,这种情况中的8根线“a-4到a3”),以适应输出一元数216a(可以称为(n+2)比特宽输出令牌)相比于输入第一一元数212(可以称为输入n比特宽令牌)的加宽。
图4D示出了根据本公开的实施例的图4A的令牌移位器206a的开关矩阵的另一个示例性部分以进一步描述与输出令牌的另一端相关联的移位机制。参考图4D,示出了令牌移位器206a的第n根输出线419。第n根输出线419可以位于令牌移位器206a的输出线(诸如,“b-5到b4”)的另一端(诸如,最右端线)。进一步示出了虚拟线402b,令牌移位器206a的输入线420、路由路径421到423、以及移位编码器204a的输入线411到413。
令牌移位器206a的第n根输出线419可以是与虚拟线402b相关联的端线。在输入线420处示出的粗箭头标记可以表示第一一元数212的输入令牌比特的位置。路由路径421到423可以类似于路由路径408到410或路由路径416到418,并且可以实现为开关。
在操作中,当输入线413是活跃的时,通过使用路由路径421将令牌比特由输入线420路由到第n根输出线419。可以用“0”比特值填充虚拟线402b。可以通过使用虚拟线402b在令牌移位器206a内人为地加宽由输入线(诸如,这种情况中的8根线“a-4到a3”)物理地表示的输入n比特宽令牌。该加宽发生以保证令牌移位器206a的第n根输出线419(诸如,这种情况中的10根线“b-5到b4”输出线的最右端线)总是具有路由源。通过使用虚拟线402b可以人为加宽令牌移位器206a的输入线,以适应输出一元数216a(可以称为(n+2)比特宽输出令牌)相比于输入第一一元数212(可以称为输入n比特宽令牌)的加宽。
图4E示出了根据本公开的实施例的图4A的令牌移位器206a的开关矩阵的示例性真值表以进一步描述移位机制。参考图4E,示出了描绘令牌移位器206a的功能性的概括的真值表。
根据一种实施例,真值表表明对应于第二一元数214a的3根输入线411到413(来自移位编码器204a)中的一个的活跃状态与输出一元数216a(通过令牌移位器206a的输出线“b-5到b4”表示)中移位的令牌比特之间的关系。
根据一种实施例,令牌移位器206a可以被配置成在其中第二一元数214a的输入线412是活跃的情况中通过应用无移位将第一一元数212的输入令牌比特路由到输出令牌。根据一种实施例,令牌移位器206a可以被配置成在其中第二一元数214a的输入线411是活跃的情况中通过应用左移位将第一一元数212的输入令牌比特路由到输出令牌。根据一种实施例,令牌移位器206a可以被配置成在其中第二一元数214a的输入线413是活跃的情况中通过应用右移位将第一一元数212的输入令牌比特路由到输出令牌。在一种实施例中,由输出令牌表示的数字可以用作输出一元数216a。
根据一种实施例,可以将输出一元数216a传递到令牌移位器206b。传递的输出一元数216a可以馈送到另一个令牌移位器206b的(n+2)比特宽输入令牌以由令牌移位器206b执行后续移位操作,诸如第二移位操作。第二移位操作可以得到第二输出一元数216b。
可替代地,根据一种实施例,可以将输出一元数216a传递到令牌解码器208。令牌解码器208可以将输出一元数216a解码成对应于第一加数210a和/或第二加数210b的数表示。解码数218可以指示多个加数(诸如,第一加数210a和第二加数210b)的和。最终和可以是10比特宽解码输出,由10根线上的信号物理地表示。
在一种实现中,可以将输出一元数216b传递到令牌解码器208(当为了3个加数的并行处理而实现加法器200B时)。令牌解码器208可以将输出一元数216a解码成对应于第一加数210a、第二加数210b和/或第三加数210c的数表示。解码数218可以指示多个加数(在这种情况中诸如,第一加数210a、第二加数210b以及第三加数210c)的和。最终和可以是12比特宽解码输出,由12根线上的信号物理地表示。
令牌解码器208将解码数218解码(或转换)成使用公开的加法器200A的应用的原生编码。例如,令牌解码器208可以将解码数218解码成二补码二进制数表示。根据一种实施例,解码数218可以对应于由数字相位检测器逻辑108生成的相位误差比特的计数。根据一种实施例,求和结果可以对应于由数字相位检测器逻辑108生成的相位误差比特的计数。
图4F示出了根据本公开的实施例的另一种示例性令牌移位器(诸如,令牌移位器206a)以解释移位操作机制。参考图4F,示出了根据本公开的可替代的实施例的移位操作机制。
根据一种实施例,由解码数218表示的数的范围可以是这样的:多个输入加数的和(诸如,如在图2A中所示和所述的第一加数和第二加数的和,或者如在图2B中所示和所述的第一加数直到第n加数的和)不会引起任何算数溢出。这可以通过如图4A中所述的在每一个令牌移位器206a到206n的输出处加宽输出令牌空间(输出一元数)来实现。然而,某些应用可能要求求和(诸如,输出令牌空间)是特定宽度的,而不管多个输入加数的数的范围或大小。在这种情况中,可以执行如图4F中所示的环绕(wrapping)操作。
在环绕操作中,如所示的,可以修改位于令牌移位器206a的端部的用于输出线(诸如,“b-4”和“b3”)的路由路径。例如,可以修改从n比特宽输入令牌(对应于第一一元数212)到输出令牌的路由路径,使得n比特宽输入令牌和输出令牌的大小保持恒定。输出令牌可以对应于输出一元数216a并且可以由10根线(诸如在一种示例中的“b-4到b3”)物理地表示。基于这样的路由机制,返回的和可以是由输出令牌表示的数张成空间(span)的模。
图4G示出了根据本公开的可替代的实施例的令牌移位器206a的开关矩阵的另一个示例性部分以进一步描述移位机制。参考图4G,示出了令牌移位器206a的第n根输出线404、令牌移位器206a的输入线424到431、路由路径432到439、以及移位编码器204a的输入线440到447(用于其中移位编码器204a包括8根线上的信号的情况)。
根据一种实施例,多个加数的大小可以是根据要求可变的。所有输入加数可以具有或者可以不具有相同的数的大小和范围。如在图2A、2B、3A、3B和4A中所示和所述的,第一加数210a具有范围“-4到+3”、而输入第二加数210b到第n加数210n具有范围“-1到+1”。在可替代的实施例中,输入加数(诸如,第二加数210b到第n加数210n)可以表示更宽的数的范围。例如,如在图4G中所示的,第二一元数448可以表示第二加数210b,并且包括从“-4到+3”的数范围。在这种情况中,移位编码器204a的输入线440到447的数量可以是8根线。因此,相比于图4B、4C和4D的令牌移位器206a的开关矩阵的示例性部分,用于令牌移位器206a的第n根输出线404的路由路径的数量可以从“3”增加到“8”。令牌移位器206a的第n根输出线404可以是携带二进制电压或表示对应于输出一元数449的输出令牌中的令牌比特的最终位置的多个线中的一根线。在这种情况中对应于输出一元数449的输出令牌的宽度(或大小)可以增加以表示增加的输出数的范围。
根据一种实施例,如所示的,令牌移位器206a的每一根输出线(诸如,第n根输出线404)可以具有路由到它的8根输入线424到431中的一根。在输入线428处示出的粗箭头标记可以表示第一一元数212的输入令牌比特的位置。路由路径432到439可以实现为开关但是也可以实现为具有缓冲器的开关。
根据一种实施例,多个加数的每一个输入加数可以具有不同大小并且可以表示不同范围的数。根据一种实施例,所有加数可以具有相同大小并且可以表示相同范围的数。关于用于加法器200A或加法器200B的实现的其它加数,可以不在单独的输入加数的大小或数的范围上加以限制。
图5A和图5B图示了根据本公开的实施例的用于实现在基于加法器的电路中处理数据的所公开的系统和方法的第一示例性场景。已经连同来自图1A、1B、1C、2A、2B、3A到3C和4A到4G的元件描述了图5A和5B。参考图5A,示出了实现具有5个加数210a到210e的加法器500的示例性电路架构。如所示的,加法器500可以类似于加法器200A和加法器200B,但是用4对移位编码器204a到204d和令牌移位器206a到206d实现。加法器500可以进一步包括令牌编码器202和令牌解码器208。
根据一种实施例,第一加数210a和第二加数210b的处理可以类似于如图2A、2B、3A到3C和4A到4G所述的处理。可以通过在令牌移位器206a之后级联3个额外的令牌移位器206b到206d来完成更多加数的相加。随着每一个额外的令牌移位器206b到206d,可以在每一次移位操作之后增加输出令牌的宽度。因此可以通过增加具有10根线的输入和12根线的输出的令牌移位器206b来相加第三加数210c并且对于剩余加数也这样做。例如,可以通过增加具有12根线的输入和14根线的输出的令牌移位器206c来相加第四加数210d。类似地,可以通过增加具有14根线的输入和16根线的输出的令牌移位器206d来相加第五加数210e。最终令牌移位器206d的最终输出一元数216d可以表示所有5个输入加数210a到210e的和,但是是以通过使用16根线表示的令牌比特编码形式。
令牌解码器208可以将1-16令牌编码(1-of-16token coding)转换(或解码)成应用的原生编码,诸如使用加法器500的5个输入加数210a到210e的二补码二进制表示。可以通过使用组合逻辑实现令牌解码器208的功能。解码结果可以是求和输出,诸如解码数表示218。解码数表示218可以指示基于如图2A、2B和4A到4G中所述的令牌比特移位机制而计算的5个输入加数210a到210e的和。
根据一种实施例,在某些应用中,加法器500执行的数据处理操作可以涉及输入加数在它们求和之前的固定因子的乘法。在这种情况中,公开的方法和系统可以允许一个或多个加数在加数的求和之前乘以非2次幂因子。进一步地,加数可以具有相同的或不同的乘法因子。
在一种示例中,在图5A中描绘的加法器500可以实现下面的数学公式(1):
和=第一加数210a+第二加数210b+第三加数210c+第四加数210d+第五加数210e(1)
在另一种示例中,当第二加数210b表示从“-1”到“1”的数的范围,并且乘以因子3(非2次幂因子)时,加法器500可以实现下面的数学公式(2):
和=第一加数210a+3×第二加数210b+第三加数210c+第四加数210d+第五加数210e(2)
相比于图4B中所示的路由路径,可以通过如图5B中所示的那样修改用于令牌移位器206a中每一根输出令牌线的路由线路来实现数学公式(2)。
参考图5B,示出了令牌移位器206a的示例性部分。根据一种实施例,相比于图4B中所示的路由路径,可以通过修改从n比特宽输入令牌(由输入线“an-3”到“an+3”物理地表示)到每一根输出令牌线(诸如,令牌移位器206a的第n根输出线404)的路由路径来实现乘法。
根据一种实施例,路由跳过两根输入线并且将每第三根输入线路由到令牌移位器206a的第n根输出线404(不同于图4B中所示的从相邻的输入线405到407路由的路由路径408到410)。因此,在求和之前可以将因子3引入到第二加数210b中。尽管,在不限制本公开范围的情况下,也可以通过由路由路径跳过的输入线的数量的变化来实现其它因子。根据一种实施例,在移位编码器204a的输出(第二一元数214a)的控制之下,可以从来自n比特宽输入令牌的3根输入线的一个来路由令牌移位器206a的第n根输出线404。
图6图示了根据本公开的实施例的用于实现在基于加法器的电路中处理数据的公开的系统和方法的第二示例性场景。已经连同来自图1A、1B、1C、2A、2B、3A到3C、4A到4G、5A和5B的元件描述了图6。参考图6,示出了加法器600。加法器600可以包括令牌编码器202、移位编码器204a到204d、令牌移位器206a到206d、令牌解码器208、输入加数210a到210e、以及令牌比特601。
根据第二示例性场景,第一加数210a、第二加数210b、第三加数210c、第四加数210d和第五加数210e可以分别是数值“0”、“+1”、“+1”、“-1”和“0”。解码数218可以是“+1”。
在操作中,可以由令牌编码器202将第一加数210a编码为第一一元数212。根据一种实施例,第一一元数212可以包括令牌比特601。例如,第一一元数212可以包括单个比特值“1”作为令牌比特。如图6中所示的,第一一元数212的所有其它比特值可以是“0”。第一一元数212可以是9比特宽输入令牌,其中令牌比特601(诸如,9比特宽输入令牌中的“1”)的位置可以表示第一一元数212的值。可以由移位编码器204a将可以是数值“+1”的第二加数210b编码为第二一元数214(诸如,图3C中所示的“001”)。
根据一种实施例,令牌移位器206a可以基于第二一元数214a在第一一元数212中的令牌比特601上执行第一移位操作以生成输出一元数216a(诸如,“000001000”)。在这种情况中,如在图6中所示的,第一移位操作可以是令牌比特601的右移位,其可以在9比特宽令牌中将令牌比特601向右移位1比特位置。已经在图4B到4F中详细描述了移位操作。
根据一种实施例,可以由移位编码器204b将表示值“+1”的第三加数210c编码为第三一元数214b(诸如,图3C中所示的“001”)。令牌移位器206b可以被配置成,基于第三一元数214b在生成的输出一元数216a中的令牌比特601上执行第二移位操作。第二移位操作可以得到输出一元数216b(诸如“000000100”)。在这种情况中,如在图6中所示的,第二移位操作可以是令牌比特601的另一个右移位,其可以在9比特宽令牌中将令牌比特601向右再移位1比特位置。
根据一种实施例,可以由移位编码器204c将表示值“-1”的第四加数210d编码为第四一元数214c(诸如,图3C中所示的“100”)。令牌移位器206c可以基于第四一元数214c在生成的输出一元数216b中的令牌比特601上执行第三移位操作。第三移位操作可以得到输出一元数216c(诸如,“000001000”)。在这种情况中,如在图6中所示的,第三移位操作可以是令牌比特601的左移位,其可以相对于输出一元数216b中的令牌比特601在9比特宽令牌中将令牌比特601向左移位1比特位置。
根据一种实施例,第五加数210e可以表示值“0”。可以由移位编码器204d将第五加数210e编码为第五一元数214d(诸如,“010”)。令牌移位器206d可以基于第五一元数214d在生成的输出一元数216c中的令牌比特601上执行第四移位操作。在这种情况中,第四移位操作可以是无移位操作并且因此第四移位操作的输出的值,诸如输出一元数216d(诸如,“000001000”),可以与输出一元数216c相同。输出一元数216d中的令牌比特601的位置可以指示在一元数表示中输入加数210a到210e的和。
根据一种实施例,可以从并行输入数据采样器(输入数据采样器的示例是如图1A中所示和所述的数据采样器102)接收输入加数210a到210e。根据一种实施例,若干输入加数210a到210e的令牌求和处理可以在相位检测器(诸如,数字相位检测器逻辑108)内发生。
令牌移位器206a到206d的输出可以表示相位误差测量结果,其然后可以输入到环路滤波器,诸如数字环路滤波器110(图1A)。根据一种实施例,可以在不同时刻从单个输入数据采样器(诸如,数据采样器102)接收输入加数210a到210e。根据一种实施例,令牌解码器208可以将生成的输出一元数216d解码成对应于加数210a到210e的数表示。解码数218指示“0”+“1”+“1”-“1”+“0”的和。解码数218的值可以是“+1”。
图7图示了根据本公开的实施例的用于实现在基于加法器的电路中处理数据的公开的系统和方法的第三示例性场景。已经连同来自图1A、1B、1C、2A、2B、3A到3C、4A到4G、5A、5B和6的元件描述了图7。参考图7,示出了用于在加法器700中处理数据的示例性电路架构。加法器700可以包括令牌编码器202、移位编码器204a到204d、令牌移位器206a到206d、令牌解码器208、输入加数701a到701e、两个令牌比特702和703、第一一元数704、其它输出一元数705a到705e(基于移位操作生成),以及解码数表示706。
根据一种实施例,用于若干数的求和操作可以同时发生。例如,可以由两个令牌比特(诸如,令牌比特701和702)表示的两个数(诸如,“-2”和“+2”)可以放置在相同的线的集合上(诸如,令牌移位器206a的输入线“a-4到a4”)。相同的线的集合能够保持若干、非相同的数,因为数由令牌比特的位置表示而不是所有线在一起的状态。根据第三示例性场景,示出了在(一个或多个)令牌移位器的相同的线的集合中具有值“-2,+2”的两个数的同时处理。具有值“-2,+2”的两个数可以对应于第一加数701a。第二加数701b、第三加数701c、第四加数701d、和第五加数701e可以分别是数值“+1”、“+1”、“-1”和“0”,类似于图6中所述的那样。如所示的,解码数表示706可以是“+1”和“+3”。
在操作中,可以由令牌编码器202将第一加数701a编码为第一一元数704(诸如,“001000100”)。令牌比特702(诸如,“1”)的位置可以指示对应于第一一元数704的9比特宽输入令牌中的数“-2”。令牌比特703的位置可以指示在对应于第一一元数704的相同的9比特宽输入令牌中的数“+2”。
处理可以类似于之前在图2A、2B和6中所述的那样。例如,可以由移位编码器204a将可以是数值“+1”的第二加数701b编码为第二一元数(诸如,图3C中所示的“001”)。令牌移位器206a可以基于第二一元数在两个令牌比特702和703上执行第一移位操作以生成输出一元数705a(诸如,“000100010”)。在这种情况中,如图7中所示的,第一移位操作可以是令牌比特702和703两者同时在9比特宽令牌中向右移1比特位置的右移位。可以通过使用移位编码器204b到204d和令牌移位器206b到206d的额外的对来处理每一个额外的输入加数(诸如,第三加数701c、第四加数701d和第五加数701e)。输出一元数表示705d中令牌比特702和703的位置可以指示在一元数表示中输入加数701a到701e的和。
根据一种实施例,令牌解码器208可以将生成的输出一元数705d解码成对应于输入加数701a到701e的数表示。解码数表示706指示加数701a到701e的和。如图7中所示,在这种情况中同时处理的解码数表示706的值可以是“-1,+3”。
本领域技术人员将理解的是,已经提供出于说明性目的的用于实现处理数据的公开的系统和方法的所示和所述的示例性加法器200A、200B、600和700的电路架构,并且不应该被解释为限制本公开的范围。可以用具有一个或多个变化的各种其它电路架构实现本公开,所述变化诸如在不偏离本公开的范围的情况下的如之前所述的加数大小、加数数量、加数的乘法、令牌宽度、令牌比特表示、算数溢出、或下溢环绕、若干令牌比特的同时处理中的变化。
图8是图示根据本公开的实施例的用于在加法器中处理数据的示例性方法的流程图。已经连同图1A、1B、1C、2A、2B、3A到3C、4A到4G、5A、6和7的元件描述图8。可以在加法器(诸如,可以在诸如DPLL 100的集成电路中使用的加法器200A、200B、500、600或700)中实现方法800。方法从步骤802开始并且进行到步骤812。
在步骤804,可以接收第一加数(诸如,第一加数210a)。可以在加法器(诸如,加法器200A、200B、500、600或700)的令牌编码器(诸如,令牌编码器202)接收第一加数。根据一种实施例,第一加数可以对应于可以储存在存储器元件(诸如,寄存器)中的二进制编码数。
在步骤806,可以将第一加数编码(或转换)成第一一元数(诸如,第一一元数212)。可以由令牌编码器(诸如,令牌编码器202)编码第一加数。第一一元数可以包括令牌比特(诸如,令牌比特601)。根据一种实施例,第一一元数可以对应于可以包括多个令牌比特的n比特宽输入令牌(如图7中所示的)。n比特宽输入令牌中的(一个或多个)令牌比特的位置可以指示(一个或多个)第一加数的值。
在步骤808,可以接收第二加数(诸如,第二加数210b)。可以在加法器的移位编码器(诸如,移位编码器204a)接收第二加数。根据一种实施例,第二加数可以对应于进入的相位误差信息。
在步骤810,可以将第二加数(诸如,第二加数210b)编码成第二一元数(诸如,第二一元数214a)。可以由移位编码器(诸如,移位编码器204a)编码第二加数。
在步骤812,可以基于第二一元数在第一一元数中的令牌比特(诸如,令牌比特601)上执行移位操作。可以由令牌移位器(诸如,令牌移位器206a)执行移位操作。基于移位操作,令牌移位器206a可以生成输出一元数(诸如,输出一元数216a)。移位操作可以得到至少一比特位置的令牌移位。
在步骤814,可以将生成的输出一元数(诸如,输出一元数216a)解码成类似于第一加数和/或第二加数的数表示(诸如,解码数218)。可以由令牌解码器(诸如,令牌解码器208)解码生成的输出一元数。根据一种实施例,获得的解码数(诸如,解码数218)可以是指示多个加数(诸如,在这种情况中的第一加数和第二加数)的和的数。根据一种实施例,可以如图2B中所述的为每一额外的加数重复步骤810和步骤812。控制可以转到结束步骤816。根据一种实施例,解码数可以指示多个加数的和。根据一种实施例,可以从并行输入数据采样器(输入数据采样器的示例是如在图1A中所示和所述的数据采样器102)接收输入加数。
图9A和9B共同地是图示根据本公开的实施例的用于在基于加法器的电路中处理数据的另一种示例性方法的流程图。连同图1A、1B、1C、2A、2B、3A到3C、4A到4G、5A、5B、6、7和8的元件描述图9A和9B。可以在基于加法器的电路(诸如,DPLL的集成电路)中实现方法900。方法在步骤902开始并且进行到步骤904。
在步骤904,可以接收时钟信号输入和数据输入信号。可以从VCO 114接收时钟信号输入,并且可以通过使用来自VCO 114的时钟信号采样接收的数据输入信号。在步骤906,参考一个或多个时刻可以将来自VCO 114的时钟信号的上升沿和来自参考源的数据输入信号的沿进行比较。根据一种实施例,可以由数字相位检测器逻辑108执行比较。
在步骤908,可以基于在某个时刻输入信号(诸如,数据输入信号)的信号沿和参考信号(诸如,时钟信号)的另一个信号沿的相对时间的比较来生成多态信号(称为相位误差)。可以由数字相位检测器逻辑108生成这样的多态信号。根据一种实施例,生成的多态信号可以对应于相位误差信息。相位误差信息可以表示时钟信号的上升沿关于数据输入信号的沿是否已经更早到达或更晚到达(滞后)。根据一种实施例,相位误差信息可以表示时钟信号的下降沿相对于数据输入信号的沿是否已经更早到达或更晚到达。
在步骤910,可以将生成的多态信号编码成二进制编码数。根据一种实施例,数字相位检测器逻辑108可以被配置成编码多态信号。可替代地,根据一种实施例,数字环路滤波器110可以被配置成编码多态信号。例如,可以通过使用二补码表示编码多态信号以生成二进制编码数。用于编码相位误差信息的编码技术的示例可以包括,但是不限制于,一补码表示、有符号二进制数表示、和/或无符号二进制数表示。
在步骤912,编码的相位误差信息可以储存为存储器元件(诸如,寄存器)中的一个或多个比特。根据一种实施例,可以确定对应于相位误差信息的值(诸如,相位误差值)是否小于或等于预定的阈值。通过预设置预定的阈值到最小值来最小化相位误差信息是期望的。例如,可以将预定的阈值设置到零或者大约到零。可以由数字相位检测器逻辑108执行这样的确定。可替代地,根据一种实施例,对应于相位误差信息的相位误差值是否小于或等于预定的阈值的这种确定可以不发生。在这种实施例中,一个或多个加数的处理仍然可以发生以积分相位误差信息。可以在每一个VCO周期中输出恢复的数据和时钟信号。根据一种实施例,可以在每一个VCO周期中用最小化的相位误差输出恢复的数据和时钟信号,以便可以在若干VCO周期上执行相位误差积分。
根据一种实施例,可以将寄存器中的值加上或减去相位误差信息并且可以以这样的方式执行相位误差积分。可以通过使用具有多个加数的加法器(诸如,加法器200A、200B、500、600、700)来执行相位误差信息的加法或减法。多个加数可以对应于存储器元件的现有内容和进入的相位误差信息。
在步骤914,可以将可以是储存的二进制编码数的第一加数编码为第一一元数。在图2A、2B和3A中示出和描述了第一加数(诸如,第一加数210a)的编码(或转换)的示例。例如,令牌编码器202可以将储存的二进制相位信息(诸如,第一加数210a)编码成第一一元数212表示。第一一元数可以包括令牌比特。换言之,第一一元数可以对应于可以包括令牌比特(物理地表示为n根线之一中的二进制电压)的n比特宽令牌(物理地表示为n根线,诸如图3A中的输入线“a-4”到“a3”)。n比特宽令牌中的令牌比特的位置可以指示二进制编码数(第一加数)的值。
在步骤916,可以将可以是进入的相位误差信息的第二加数编码为第二一元数。例如,如在图2A、2B和3C示例中所示和所述的,移位编码器204a可以将输入第二加数210b(可以表示为二补码数)编码成第二一元数214a。
在步骤918,可以基于第二一元数(诸如,第二一元数214a)在第一一元数(诸如,第一一元数212)的令牌比特上执行移位操作(诸如,第一移位操作)。第一移位操作可以生成输出一元数(诸如,输出一元数216a)。在一种实现中,如在图2A、2B和4A中所述的,输出一元数可以是表示n比特宽输入令牌的令牌宽度的扩展的“n+2”宽输出令牌。根据一种实施例,在移位操作的后续周期期间,每一个移位操作之后的n比特宽输入令牌的大小可以增加。在另一种实现中,如在图4F、6和7中所示和所述的,在移位操作中可以不扩展令牌宽度。在图4A到4G中示出和描述了移位操作的示例。
根据一种实施例,可以由数字环路滤波器110执行多个加数(诸如,第一加数)和后续的加数的处理。根据一种实施例,可以接收对应于后续的输入加数(诸如,第三加数、第四加数等等)的其它的进入的相位误差信息。根据一种实施例,可以从并行输入数据采样器(如图1A中所示和所述,输入数据采样器的示例是数据采样器102)接收输入加数。根据一种实施例,可以从一个输入数据采样器同时地或者在某些时间间隔接收输入加数。根据一种实施例,来自第一移位操作的输出一元数(诸如,输出一元数216a)可以是第一加数和第二加数的和,其指示当前相位误差信息。可以利用这个相位误差信息在若干VCO周期上最小化相位误差以生成积分的数据输出信号和时钟信号。
根据一种实施例,还可以接收另一个输入加数。在这种情况中,在步骤920,可以将对应于其它进入的相位误差信息的另一个输入加数(诸如,第三加数210c)编码成另一个一元数(诸如,第三一元数214b)。例如,如图2B和5A中所示和所述的,移位编码器(诸如,移位编码器204b)可以被配置成将第三加数210c编码(或转换)成第三一元数214b。
在步骤922,可以在生成的输出一元数(在第一移位操作中生成)的令牌比特上执行另一个移位操作(诸如,第二移位操作)。可以基于其它一元数(诸如,第三一元数214b)由令牌移位器(诸如,令牌移位器206b)执行其它移位操作以生成另一个输出一元数(诸如,输出一元数216b)。根据一种实施例,来自第二移位操作的输出一元数(诸如,输出一元数216b)可以是第一加数、第二加数和第三加数的和,其指示更新的相位误差信息。可以进一步利用这个相位误差在另一个VCO周期(在若干VCO周期)上最小化相位误差。
在步骤924,可以将生成的其它输出一元数(诸如,输出一元数216b)解码成类似于多个加数(诸如,第一加数、第二加数和/或第三加数)的数表示的数表示。在其它输出一元数中令牌比特的位置指示其它输出一元数(诸如,输出一元数216b)的值。
在步骤926,可以确定更新信息以生成用于VCO 114的控制信号。更新信息可以基于生成的输出一元数(诸如,输出一元数216b)中的令牌比特的位置。在步骤928,可以利用生成的控制信号调整VCO 114的频率。调整的频率可以用于更新时钟信号。更新的时钟信号可以在多个VCO周期上最小化进入的相位误差信息。可以将接收的相位误差信息在时间上积分以获得积分的恢复的数据输出信号和时钟信号。
在步骤932,可以在每一个VCO周期生成恢复的数据输出信号和恢复的时钟信号。例如,当可以称为相位误差值的进入的相位误差信息的值小于或等于预定的阈值(诸如,0)时,由于更新的时钟信号,如在图1A中所示和所述的,DeMUX 106可以被配置成生成具有最小化的或没有(积分的)相位误差的恢复的数据输出信号和恢复的时钟信号。可以在每一个VCO周期输出恢复的数据和时钟信号。根据一种实施例,可以在每一个VCO周期中用最小化的相位误差输出恢复的数据和时钟信号,以便可以在若干VCO周期上执行相位误差积分。控制可以返回到开始另一个VCO周期。例如,在一种示例中,控制可以传回到步骤904或者可以接收另一个进入的相位误差信息以进一步处理以积分相位误差。
根据本公开的一种实施例,公开了一种在基于加法器的电路中处理数据的系统。系统可以包括基于加法器(诸如,(如分别在图2A、2B、5A、6和7中所述的)加法器200A、200B、500、600或700)的电路,诸如积分电路(积分电路的示例可以是DPLL 100a(图1A))。积分电路的一个或多个电路可以被配置成将第一加数210a编码为第一一元数212。第一一元数212可以包括令牌比特(诸如,令牌比特601)。一个或多个电路可以进一步被配置成将第二加数210b编码为第二一元数214a。积分电路的一个或多个电路可以被配置成基于第二一元数214a在第一一元数212中的令牌比特上执行第一移位操作,以生成输出一元数216a。积分电路的一个或多个电路可以被配置成将生成的输出一元数216a解码成对应于第一加数210a和/或第二加数210b的数表示。解码数表示可以指示第一加数210a和第二加数210b的和。
本公开的各种实施例可以提供非瞬态计算机可读介质和/或储存介质,和/或非瞬态机器可读介质和/或储存介质,所述介质具有储存在其上的,由机器和/或计算机可执行的以在所公开的电子设备的基于加法器的电路中处理数据的指令的集合。电子设备中的指令的集合可以引起机器和/或计算机执行包括将第一加数210a编码为第一一元数212的步骤。第一一元数212可以包括令牌比特。可以将第二加数210b编码为第二一元数214a。可以基于第二一元数214a在第一一元数212中的令牌比特上执行第一移位操作。可以执行第一移位操作以生成输出一元数216a。可以将生成的输出一元数216a解码成可以对应于第一加数210a和/或第二加数210b的数表示的数表示218。解码数表示218可以指示第一加数210a和第二加数210b的和。
可以在硬件、或硬件和软件的组合中实现本公开。可以以集中式的方式在至少一个计算机系统中实现本公开,或者可以以分布式的方式(其中不同元件可以分布跨越许多互联的计算机系统)实现本公开。本文描述的适用于执行所述方法的计算机系统或其它装置可以是合适的。硬件和软件的组合可以是具有计算机程序的通用计算机系统,当所述计算机程序装载和执行时,可以控制计算机系统,使得其执行本文所述的方法。可以在包括还执行其它功能的集成电路的一部分的硬件中实现本公开。
本公开也可以嵌入在计算机程序产品中,该计算机程序产品包括使能实现本文所述方法的所有特征,并且当其装载在计算机系统中时能够执行这些方法。在本上下文中,计算机程序意味着以任意语言、代码或注释的指令集合的任意表达,所述指令的集合旨在引起具有信息处理能力的系统或者直接地或者在a)转换到另一种语言、代码或注释;b)以不同材料形式复制的任一者或两者之后执行特定功能。
尽管已经参考某些实施例描述了本公开,但是本领域技术人员应该理解的是,可以在不偏离本公开的范围的情况下进行各种改变并且可以被等同物替代。此外,在不偏离本公开的范围的情况下可以作出很多修改而使具体情况或材料适应本公开的教导。因此,本公开旨在不被限制到所公开的特定实施例,而是将包括落入所附权利要求的范围内的所有实施例。

Claims (15)

1.一种用于数据处理的系统,所述系统包括:
数字相位检测器逻辑电路,被配置成:
基于输入信号的第一信号沿与参考信号的第二信号沿在一时刻的比较来生成多状态信号;以及
基于所述多状态信号生成相位误差信息;
数字环路滤波器,被配置成对所生成的相位误差信息进行编码;
存储器,被配置成存储所编码的相位误差信息,其中所述数字环路滤波器包括:
令牌编码器,被配置成将第一加数编码为第一一元数,其中所述第一加数对应于存储的相位误差信息,以及其中所述第一一元数包括令牌比特;
移位编码器,被配置成将第二加数编码为第二一元数;
令牌移位器,被配置成:
通过第一移位操作对所述第一一元数中的所述令牌比特进行移位,其中基于所述第二一元数对所述令牌比特进行移位,以及
基于所移位的令牌比特,生成输出一元数;
令牌解码器,被配置成:
将所生成的输出一元数解码;以及
基于解码的所生成的输出一元数,生成对应于所述第一加数和/或所述第二加数的数表示,其中所述数表示指示所述第一加数和所述第二加数的和;以及
其中所述数字环路滤波器还被配置为:
基于所生成的指示所述第一加数和所述第二加数的所述和的数表示确定更新信息;以及
基于所述更新信息,生成用于压控振荡器(VCO)的控制信号。
2.如权利要求1所述的系统,其中所述第一移位操作对应于为生成所述输出一元数,基于所述第二一元数的所述第一一元数中的所述令牌比特的位置的移位,以及
其中所生成的输出一元数指示二进制编码数的数值中的增量或减量。
3.如权利要求1所述的系统,其中所述数字相位检测器逻辑电路还被配置成检测与所述相位误差信息相关联的相位误差值,以及其中所述相位误差值大于特定阈值误差值。
4.如权利要求1所述的系统,其中所述数字相位检测器逻辑电路还被配置成基于所述生成的输出一元数中的所述令牌比特的位置确定所述更新信息,其中所述控制信号用于调整所述VCO的频率,并且其中所调整的频率对应于所述参考信号。
5.如权利要求2所述的系统,其中所述数字环路滤波器还被配置成将所述相位误差信息编码成二进制编码数。
6.如权利要求5所述的系统,其中所述存储器进一步被配置成将编码的相位误差信息储存为一个或多个比特,其中所述至少一个比特表示所述二进制编码数。
7.如权利要求6所述的系统,其中所述生成的输出一元数中的所述令牌比特的位置的移位指示所述二进制编码数的所述数值中的所述增量或所述减量,以及
其中所述二进制编码数对应于所储存的所述编码的相位误差信息的。
8.如权利要求6所述的系统,其中所述第二加数对应于进入的相位误差信息。
9.如权利要求6所述的系统,其中所述令牌移位器还被配置成通过第二移位操作基于第三一元数对所述生成的输出一元数中的所述令牌比特的位置进行移位,以及其中所述第三一元数是对应于进入的相位误差信息的编码的第三加数。
10.如权利要求9所述的系统,其中基于不等于零或大于特定阈值误差值的所述进入的相位误差信息,通过所述第二移位操作移位所述令牌比特。
11.如权利要求1所述的系统,其中所述第一一元数的所述令牌比特的第一比特值与对应于所述第一一元数的除所述令牌比特外的比特的第二比特值不同。
12.如权利要求1所述的系统,其中所述第一一元数对应于由n根线的集合所表示的n比特宽令牌,以及
其中所述n比特宽令牌中的所述令牌比特的位置指示所述第一加数的值。
13.如权利要求1所述的系统,其中所述数字相位检测器逻辑电路还被配置成在所述第一移位操作中将所述第一一元数的所述令牌比特从所述令牌移位器的输入路由到所述令牌移位器的输出以生成所述输出一元数,以及
其中通过在所述第二一元数的控制下从所述令牌移位器的多个路由路径中选择路由路径来路由所述令牌比特。
14.一种用于数据处理的方法,所述方法包括:
在包括数字相位检测器逻辑电路、数字环路滤波器和存储器的系统中,其中所述数字环路滤波器包括令牌编码器、移位编码器、令牌移位器和令牌解码器:
由所述数字相位检测器逻辑电路基于输入信号的第一信号沿与参考信号的第二信号沿在一时刻的比较来生成多状态信号;以及
由所述数字相位检测器逻辑电路基于所述多状态信号生成相位误差信息;
由数字环路滤波器对所生成的相位误差信息进行编码;
在存储器中存储所编码的相位误差信息;
由所述令牌编码器将第一加数编码为第一一元数,其中所述第一加数对应于存储的相位误差信息,以及其中所述第一一元数包括令牌比特;
由移位编码器将第二加数编码为第二一元数;
由所述令牌移位器对所述第一一元数中的所述令牌比特进行移位,
其中基于所述第二一元数对所述令牌比特进行移位,
由所述令牌移位器基于所移位的令牌比特,生成输出一元数;
由所述令牌解码器将所生成的输出一元数解码;以及
由所述令牌解码器基于解码的所生成的输出一元数,生成对应于所述第一加数和/或所述第二加数的数表示,其中所述数表示指示所述第一加数和所述第二加数的和;以及
由所述数字环路滤波器基于所生成的指示所述第一加数和所述第二加数的所述和的数表示确定更新信息;以及
基于所述更新信息,生成用于压控振荡器(VCO)的控制信号。
15.如权利要求14所述的方法,其中所述第一一元数对应于由n根线的集合所表示的n比特宽令牌,以及其中所述n比特宽令牌中的所述令牌比特的位置指示所述第一加数的值。
CN201710063784.6A 2016-02-05 2017-02-04 用于在基于加法器的电路中处理数据的系统和方法 Active CN107045433B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/017,330 US10402166B2 (en) 2016-02-05 2016-02-05 System and method for processing data in an adder based circuit
US15/017,330 2016-02-05

Publications (2)

Publication Number Publication Date
CN107045433A CN107045433A (zh) 2017-08-15
CN107045433B true CN107045433B (zh) 2020-11-13

Family

ID=59497732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710063784.6A Active CN107045433B (zh) 2016-02-05 2017-02-04 用于在基于加法器的电路中处理数据的系统和方法

Country Status (3)

Country Link
US (1) US10402166B2 (zh)
JP (1) JP6338079B2 (zh)
CN (1) CN107045433B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10666984B2 (en) * 2016-03-08 2020-05-26 Qualcomm Incorporated Apparatus and method for vector-based entropy coding for display stream compression
US10057049B2 (en) 2016-04-22 2018-08-21 Kandou Labs, S.A. High performance phase locked loop
US10193716B2 (en) 2016-04-28 2019-01-29 Kandou Labs, S.A. Clock data recovery with decision feedback equalization
US10411922B2 (en) 2016-09-16 2019-09-10 Kandou Labs, S.A. Data-driven phase detector element for phase locked loops
CN115333530A (zh) 2017-05-22 2022-11-11 康杜实验室公司 多模式数据驱动型时钟恢复方法和装置
US10554380B2 (en) 2018-01-26 2020-02-04 Kandou Labs, S.A. Dynamically weighted exclusive or gate having weighted output segments for phase detection and phase interpolation
US11290115B2 (en) * 2018-06-12 2022-03-29 Kandou Labs, S.A. Low latency combined clock data recovery logic network and charge pump circuit
US10637640B2 (en) * 2018-07-22 2020-04-28 SiliconIntervention Inc. Asynchronous data recovery
CN111090413A (zh) * 2018-10-23 2020-05-01 成都鼎桥通信技术有限公司 一种累加数字序列的方法和装置
US10958251B2 (en) 2019-04-08 2021-03-23 Kandou Labs, S.A. Multiple adjacent slicewise layout of voltage-controlled oscillator
US10630272B1 (en) 2019-04-08 2020-04-21 Kandou Labs, S.A. Measurement and correction of multiphase clock duty cycle and skew
US10826678B1 (en) * 2019-11-06 2020-11-03 Rohde & Schwarz Gmbh & Co. Kg Method for recovering a clock signal and clock recovery module
US10951230B1 (en) * 2020-03-17 2021-03-16 Qualcomm Incorporated Method and apparatus for ternary mapping
CN112394905B (zh) * 2020-11-27 2022-11-08 重庆邮电大学 一种量子除法器的设计方法
US11769071B2 (en) * 2020-11-30 2023-09-26 IonQ, Inc. System and method for error correction in quantum computing
US11463092B1 (en) 2021-04-01 2022-10-04 Kanou Labs Sa Clock and data recovery lock detection circuit for verifying lock condition in presence of imbalanced early to late vote ratios
US11563605B2 (en) 2021-04-07 2023-01-24 Kandou Labs SA Horizontal centering of sampling point using multiple vertical voltage measurements
US11496282B1 (en) 2021-06-04 2022-11-08 Kandou Labs, S.A. Horizontal centering of sampling point using vertical vernier

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7675440B1 (en) * 2008-04-28 2010-03-09 Altera Corporation Thermometer-code-to-binary encoders
CN101677236B (zh) * 2008-09-19 2013-02-13 阿尔特拉公司 用于调整反馈时钟信号的数字环路滤波器和方法
CN104135285A (zh) * 2014-08-07 2014-11-05 上海交通大学 一种频率校准电路及其方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5342503B1 (zh) * 1973-07-20 1978-11-11
KR100400316B1 (ko) * 2001-06-30 2003-10-01 주식회사 하이닉스반도체 클럭 동기 장치
EP1814230A1 (en) * 2006-01-30 2007-08-01 Infineon Technologies AG Phase locked loop circuitry with digital loop filter
US8045669B2 (en) * 2007-11-29 2011-10-25 Qualcomm Incorporated Digital phase-locked loop operating based on fractional input and output phases
US8212610B2 (en) * 2008-09-19 2012-07-03 Altera Corporation Techniques for digital loop filters
JP5300671B2 (ja) * 2009-09-14 2013-09-25 株式会社東芝 クロックリカバリ回路およびデータ再生回路
US8198929B2 (en) * 2010-08-31 2012-06-12 Intel Corporation Dynamic element matching for time-to-digital converters
US9356614B1 (en) * 2015-01-23 2016-05-31 Qualcomm Incorporated Thermometer code converter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7675440B1 (en) * 2008-04-28 2010-03-09 Altera Corporation Thermometer-code-to-binary encoders
CN101677236B (zh) * 2008-09-19 2013-02-13 阿尔特拉公司 用于调整反馈时钟信号的数字环路滤波器和方法
CN104135285A (zh) * 2014-08-07 2014-11-05 上海交通大学 一种频率校准电路及其方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Clock recovery from random binary signals;Alexander等;《Electronics Letters》;19751031;第11卷(第22期);On Path Delay Fault Testing of Multiplexer - Based Shifters *
On Path Delay Fault Testing of Multiplexer - Based Shifters;H.T.Vergos等;《VLSI,1999.Proceedings.Ninth Great Lakes Symposium on》;20020831 *

Also Published As

Publication number Publication date
US10402166B2 (en) 2019-09-03
JP6338079B2 (ja) 2018-06-06
US20170228215A1 (en) 2017-08-10
CN107045433A (zh) 2017-08-15
JP2017138986A (ja) 2017-08-10

Similar Documents

Publication Publication Date Title
CN107045433B (zh) 用于在基于加法器的电路中处理数据的系统和方法
US6205458B1 (en) Adder and multiplier circuits employing logic gates having discrete, weighted inputs and methods of performing combinatorial operations therewith
US4841467A (en) Architecture to implement floating point multiply/accumulate operations
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
US5993051A (en) Combined leading one and leading zero anticipator
US20010056454A1 (en) Method and apparatus for performing subtraction in redundant form arithmetic
EP0920137A1 (en) Single-cycle, soft decision, compare-select operation using dual-add processor
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
US20140358979A1 (en) GENERATING A FAST 3x MULTIPLAND TERM FOR RADIX-8 BOOTH MULTIPLICATION
Putra A novel fixed-point square root algorithm and its digital hardware design
TWI466017B (zh) 執行浮點有效減法的裝置與方法以及預測負差中的前導符號數元的裝置與方法
GB2223111A (en) Sticky bit predictor for floating-point multiplication
JP3003467B2 (ja) 演算装置
EP0436905B1 (en) High performance adder using carry predictions
US20140059104A1 (en) Arithmetic circuit for calculating correction value
US8933731B2 (en) Binary adder and multiplier circuit
Mohan et al. Implementation of Quaternary Signed Adder System
RU2799035C1 (ru) Конвейерный сумматор по модулю
Rangisetti et al. Area-efficient and power-efficient binary to BCD converters
JP4408727B2 (ja) ディジタル回路
JP2002023997A (ja) 浮動小数点演算のための選択ベースの丸め方法
CN112243504B (zh) 低功率加法器电路
Paidi et al. A novel high speed leading zero counter for floating point units
Tyanev et al. Hardware divider. Calculation of the remainder
Amin et al. Efficient decimal leading zero anticipator designs

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