根据35u.s.c.§119主张优先权
本专利申请案要求2015年8月14日提交的标题为“具有单端输入的n位比较逻辑(n-bitcomparelogicwithsingle-endedinputs)”的第62/205,604号临时申请案的优先权,所述临时申请案转让给本受让人且特此以引用的方式明确并入本文中。
所公开的方面涉及用于实施比较功能的集成电路。更具体地说,示范性方面涉及可对单端或非差分输入进行操作的比较器。
背景技术:
比较器在多种应用中使用。举例来说,比较器可在处理系统中用于两个数字或操作数的比较。举例来说,例如高速缓冲存储器等存储器结构可使用比较器用于比较待搜索的所需地址(或其部分)与存储于高速缓冲存储器中的地址(或其部分)(也被称作“标签”),以确定所需地址在高速缓冲存储器中是否存在(高速缓冲存储器命中)或不存在(高速缓冲存储器未中)。处理器的一些算术和逻辑单元(alu)可使用比较器用于比较操作,例如大于、小于、等于等等。在一些情况下,比较器也可用以测试条件(例如,用于条件指令),设定断言寄存器(用于经断言指令)等等。
比较器可使用硬件来实施,例如借助专门设计的电路以用于改善两个多位数字的比较速度。在此方面,常规地使用如此项技术中已知的多米诺(domino)互补金属氧化物半导体(cmos)、伪静态cmos、偏斜cmos或相似技术实施宽(例如,多位)比较器。在这些常规实施方案中,比较器以差分形式接收待比较的数字(即,提供所述数字的真版本和补数版本作为输入)。常规地,比较器被设计为多米诺逻辑(例如,具有多个级的级联结构)。当差分输入不含干扰时实现基于多米诺逻辑的比较器的正确功能性。实现无干扰输入是困难的。
考虑高速缓冲存储器结构中的比较器的以上实例应用,高速缓冲存储器中的所存储地址或标签是单端多米诺信号。如本文所使用,单端信号指代非差分的信号。然而,为了用作对比较器的输入以用于将标签与待搜索的所需地址进行比较,呈其原生形式的单端多米诺输入需要转换成差分多米诺输入。向差分多米诺输入的转换可能必须提供原生单端输入作为“真”部分且产生单端输入的反转版本用于“补数”部分。为了产生补数部分,真部分可以经反转且与定时时钟组合以便产生无干扰多米诺信号。虽然补数部分的产生可使用昂贵的逻辑(在面积和功率方面),但也存在由比较器使用的时钟与用以产生补数部分的定时时钟之间形成竞态条件的可能。增加的过程变化可导致加重竞态条件,继而要求较高的时序裕度,以满足比较器电路在变化的过程-电压-温度(pvt)拐角或pvt条件下的时序约束。
因此,此项技术中需要避免比较器的常规实施方案中的差分多米诺输入的缺陷。
技术实现要素:
本发明的示范性实施例是针对涉及第一数字和第二数字的比较的系统和方法。比较器接收可为n位宽的第一和第二单端输入(即,未以差分格式表示),其中所述第一输入是所述第一数字的反转版本且所述第二输入是所述第二数字的真版本。实施部分匹配电路以仅基于所述第一单端输入和所述第二单端输入而产生部分匹配输出。实施部分失配电路以仅基于所述第一单端输入和所述第二单端输入而产生部分失配输出。实施比较输出电路以基于所述部分匹配输出和所述部分失配输出而产生所述第一和第二数字的比较输出。
举例来说,示范性方面包含一种设备,其包括第一单端输入和第二单端输入。部分匹配电路经配置以仅基于所述第一单端输入和所述第二单端输入而产生部分匹配输出。部分失配电路经配置以仅基于所述第一单端输入和所述第二单端输入而产生部分失配输出。所述设备还包含比较输出电路,其经配置以基于所述部分匹配输出和所述部分失配输出而产生比较输出。
另一示范性方面涉及一种比较方法的方法,所述方法包括:接收第一单端输入,接收第二单端输入,仅基于所述第一单端输入和所述第二单端输入而确定部分匹配输出,仅基于所述第一单端输入和所述第二单端输入而确定部分失配输出,以及基于所述部分匹配输出和所述部分失配输出而确定比较输出。
又一示范性方面涉及一种设备,其包括第一单端输入,第二单端输入,用于仅基于所述第一单端输入和所述第二单端输入而确定部分匹配输出的装置,用于仅基于所述第一单端输入和所述第二单端输入而确定部分失配输出的装置,以及用于基于所述部分匹配输出和所述部分失配输出而确定比较输出的装置。
附图说明
呈现附图以辅助描述本发明的实施例,且提供所述附图仅用于实施例的说明且不加限制。
图1a-c图解说明示范性比较器。
图2图解说明根据本发明的一方面的比较的方法。
图3图解说明可在其中有利地使用本发明的一方面的示范性无线装置。
具体实施方式
在以下针对本发明特定实施例的描述及相关图式中揭示本发明的若干方面。可在不脱离本发明的范围的情况下设计替代性实施例。另外,将不会详细描述或将省略本发明的众所周知的元件以免混淆本发明的相关细节。
此外,词“示范性”在本文中用以意味着“充当实例、例子或说明”。在本文中被描述为“示范性”的任何实施例未必被理解为比其它实施例优选或有利。同样,术语“本发明的实施例”并不需要本发明的所有实施例包括包含所论述的特征、优点或操作模式。
本文中所使用的术语仅出于描述特定实施例的目的,且并不意图限制本发明的实施例。如本文所使用,单数形式“一”和“所述”希望还包括复数形式,除非上下文另外清楚地指示。应进一步理解,术语“包括(comprises、comprising)”及/或“包含(includes、including)”当在本文中使用时指定所陈述的特征、整数、步骤、操作、元件及/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。
另外,许多实施例是依据待由(例如)计算装置的元件执行的动作序列来描述。将认识到,本文所描述的各种动作可由特定电路(例如,专用集成电路(asic))、由正由一或多个处理器执行的程序指令或由两者的组合来执行。另外,本文中所描述的这些动作序列可被视为全部在任何形式的计算机可读存储媒体内体现,在所述计算机可读存储媒体中存储有对应的计算机指令集,所述计算机指令在执行时将致使相关联的处理器执行本文中所描述的功能性。因此,本发明的各种方面可以数个不同形式来体现,预期所有形式属于所主张的标的物的范围内。另外,对于本文中所描述的实施例中的每一者来说,任何此类实施例的对应形式可在本文中被描述为(例如)“经配置以(执行所描述的动作)的逻辑”。
本发明的示范性方面涉及经配置以接受单端输入且对其进行操作的比较器的设计。举例来说,示范性比较器包含经设计以接收单端第一和第二输入且产生第一和第二输入的比较(例如,第一和第二输入是相同还是不同的输出或指示)的硬件或电路。第一和第二输入可为n位宽,其中n可以是正整数。可在无第一和第二输入的真版本和补数版本或差分格式的情况下设计示范性比较器逻辑。而是,比较器可经设计有两个输入的仅单端真(即,非反转)版本(但在下文的具体实施方式中将见到,输入中的一个(例如,第一输入)可为将与第二输入进行比较的数字的反转版本,但所述数字的反转是在比较器外部执行,并且因此不形成示范性比较器逻辑的部分)。
示范性比较器也可经设计有多米诺cmos、偏斜cmos、伪静态cmos等,并且因此与现有技术兼容。虽然未图示,但第一输入可涉及高速缓冲存储器的所存储地址(例如,标签数据)且第二输入可涉及在高速缓冲存储器中将搜索的所需地址,其中比较器经配置以将所存储地址或标签数据与所需地址进行比较以确定高速缓冲存储器中是否存在命中或未中。
作为背景,将首先描述支持具有单端输入的示范性比较器的设计的算法。首先考虑a和b是单个位单端数字。用以确定a和b是否相等或不同的一位匹配功能可由逻辑表达式表示:“(a.b+a'.b')”,其中a'和b'分别表示a和b的补数(反转值),符号“.”表示与(and)功能且符号“+”表示或(or)功能。匹配功能“(a.b+a'.b')在a和b相等的情况下为高或“1”,且在a不等于b的情况下为低或“0”。为了本发明的目的,匹配功能“(a.b+a'.b')”可重写为其相等形式:“(a+b').(a'+b)”。使用用于一位输入a和b的一位匹配功能“(a+b').(a'+b)”的此替代表示作为起始点,现将描述用于n位输入a和b的n位匹配功能,其中n可为正整数。虽然示范性方面涵盖多位比较器,即其中n为大于或等于2的值的整数,但不排除其中n=1的更简单情况。因此,大体上针对n位比较器描述示范性方面,其中n可为值可大于或等于1的整数。
常规n位匹配由逻辑表达式提供:“∏{(a[i]+b'[i]).(a'[i]+b[i])}”,i=1到n(其中“∏”表示逐位乘积)。如可理解,此常规n位匹配功能使用a和b的差分值(即,a的真值和补数值,包括a[i]和a'[i],其中i=1到n,以及b的真值和补数值,包括b[i]和b'[i],其中i=1到n)。前述常规比较器可实施常规n位匹配功能。用以针对常规n位匹配函数评估分量表达式“(a[i]+b'[i])”和“(a'[i]+b[i])”的逻辑可涉及如此项技术中已知的2n异或(xor)门。xor门是昂贵的且消耗较大的面积和功率,这意味着当以硬件实施常规n位匹配功能时2nxor门带来面积和功率的显著消耗。
为了避免由依赖于a和b的差分值的常规n位匹配功能引发的费用,使用上文所提到的将1位匹配功能“(a.b+a'.b')”重写为其相等形式:“(a+b').(a'+b)”的技术来重新制定常规n位匹配功能。以下逻辑操控阐释了如何将常规n位匹配功能转换成被称为“等式1”的替代的n位匹配功能,其用以实施具有单端n位输入而不是差分n位输入的示范性比较器。(在以下等式中,“∑”表示逐位求和)
∏{(a[i]+b'[i]).(a'[i]+b[i])}”其中i=1到n
=∏(a[i]+b'[i]).∏(a'[i]+b[i])其中i=1到n
=∏(a[i]+b'[i]).∏(a[i].b'[i])'其中i=1到n
=∏(a[i]+b'[i]).not(∑(a[i].b'[i]))其中i=1到n
=∏(a'[i].b[i])'.not(∑(a'[i]+b[i])')其中i=1到n…..(等式1)
考虑等式1,见到等式1的配方中的n位匹配功能使用a的仅补数值(即,针对i=1到n的值的a'[i])以及b的仅真值(即,针对i=1到n的值的b[i]),而不是如在常规n位匹配功能的情况下依赖于a和b两者的真值和补数值两者。因此,示范性比较器经设计以实施等式1以便针对n位单端输入a'[i]和b[i]产生n位匹配功能,其中i=1到n。应理解,即使获得a[i]的补数以产生用于比较器的输入a'[i]可涉及n位反相器,但此反相器可提供于比较器的外部,且此外不需要与定时时钟同步或组合以提供a[i]的无干扰反转版本,因为仅一个输入、即a'[i]被馈送到比较器以便实施等式1的匹配功能。
等式1的电路实施方案可包含两个多米诺(或偏斜cmos)电路。第一电路可实施“部分匹配功能”,其在本发明中指代逻辑表达式∏(a'[i].b[i])',且第二电路可实施“部分失配功能”,其指代逻辑表达式∑(a'[i]+b[i])'。对于n位值a'[i]和b[i]的特定组合,如果第一电路评估为“1”或产生为高的部分匹配输出从而指示存在部分匹配,以及如果第二电路评估为“0”或产生为低的部分失配输出从而指示不存在部分失配,那么比较器的输出将指示匹配(即,a[i]=b[i],其中i=1到n)。如果部分匹配和部分失配电路未产生以上评估组合,那么比较器的输出将指示失配。
现在参看图1a-c,示出了示范性比较器100的示意图。在示范性方面中,比较器100可经配置以实施以上等式1的匹配功能。因此,比较器100经配置以接收两个单端n位输入(其中“n”是正整数,即,值可大于或等于1的整数)。第一数字a[n:1]将与第二数字b[n:1]进行比较。提供到比较器100的第一n位输入是a'[n:1],其为第一数字a[n:1]的反转版本(逐位反转);而提供到比较器100的第二n位输入是第二数字b[n:1]的真版本(即,相同)。可提供n位反相器150以反转第一数字a[n:1],且提供第一数字a[n:1]的反转版本作为第一输入a'[n:1]。n位反相器150可与比较器100分离,且因此在图1中示出于比较器100的外部。第一和第二n位输入a'[n:1]和b[n:1]是单端的(即,非差分),且都不需要同步于时钟,且对应地,对于比较器100可避免用以使第一和第二输入无干扰的电路。
比较器100包含部分匹配电路110(图1b)和部分失配电路120(图1c)。部分匹配电路110实施用以确定部分匹配功能∏(a'[i].b[i])'的评估的逻辑且产生部分匹配输出116。部分失配电路120实施用以确定部分失配功能∑(a'[i]+b[i])'的评估的逻辑且产生部分失配输出126。部分匹配输出116和部分失配输出126的反转值提供到“与”门102。“与”门102产生匹配输出104,其为两个数字的比较:第一数字a[n:1](其中第一输入a'[n:1]是第一数字a[n:1]的反转版本)和第二数字b[n:1](其中第二输入b[n:1]是第二数字b[n:1]的真版本)。具体地说,“与”门102经配置以实施部分匹配输出与部分失配输出的反转值的“与”功能。
参考图1b,进一步详细解释部分匹配电路110。一般来说,部分匹配电路110经配置以确定且提供部分匹配输出116作为输出,其为第一输入a'[n:1]的n位与第二输入b[n:1]的对应n位的“与非”功能的逐位乘积。举例来说,在图1b中,部分匹配电路110包含n个“与非”门112_1到112_n,其对于相应第一和第二n位输入a'[n:1]和b[n:1]中的每一个接受一个位(以实施(a'[i].b[i])',其中i=1到n)。n个“与非”门112_1到112_n的输出提供到n位“与”门114以实施逐位“与”功能以用于确定n个“与非”门112_1到112_n的输出的逐位乘积(即,∏(a'[i].b[i])')的评估且产生部分匹配输出116。虽然n位“与”门114在图1b中示出为一个合并的逻辑块,但实际上n位“与”门114可包括各自具有较小数目个输入的若干“与”门的树或阶层结构,以便确定n个“与非”门112_1到112_n的输出的逐位乘积或逐位“与”的评估。
参考图1c,进一步详细解释部分失配电路120。一般来说,部分失配电路120经配置以确定且提供部分失配输出126作为输出,其为第一输入a'[n:1]的n位与第二输入b[n:1]的对应n位的“或非”功能的逐位求和。举例来说,在图1c中,部分失配电路120包含n个“或非”门122_1到122_n,其对于相应第一和第二n位输入a'[n:1]和b[n:1]中的每一个接受一个位(以实施(a'[i]+b[i])',其中i=1到n)。n个“或非”门122_1到122_n的输出提供到n位“或”门124以实施n个“或非”门122_1到122_n的输出的逐位“或”(即,∑(a'[i]+b[i])')以产生部分失配输出126。虽然n位“或”门124在图1c中示出为一个合并的逻辑块,但实际上,n位“或”门124可包括各自具有较小数目个输入的若干“或”门的树或阶层结构,以便产生n个“或非”门122_1到122_n的输出的逐位求和或逐位“或”。
此外将认识到,“或”门的电路实施方案可包括使用输出耦合到反相器的“或非”门。因此,在替代实施方案(未显式地示出)中,并非使用输出(即,部分失配电路120的部分失配输出126)在馈入到“与”门102之前经反转(参见图1中的比较器100的示意图)的n位“或”门124,n位“或”门124可被n位“或非”门(未图示)代替,这可避免其输出在馈入到“与”门102之前的随后反转。许多其它此类电路变化是可能的。因此应理解,比较器100的实施方案的以上描述是针对示范性方面的功能性。所属领域的技术人员将基于示范性特征的描述而认识到用于执行本文所描述的功能的特定电路实施方案和装置。
图1a-c中的比较器100的示意性表示适用于使用例如多米诺cmos、偏斜cmos、伪静态cmos等技术的比较器100的实施方案。举例来说,在不脱离本发明的范围的情况下,部分匹配电路110和部分失配电路120可包括多米诺cmos、偏斜cmos、伪静态cmos技术或类似技术。此外,如先前解释,第一输入a'[n:1]是第一数字a[n:1]的反转版本,其中第一数字a[n:1]可包括高速缓冲存储器的所存储地址或标签数据(例如,第一数字a[n:1]可包括所存储地址,且在a[n:1]由逐位反相器150反转之后a'[n:1]作为第一输入提供到比较器100)。第二输入b[n:1]可为第二数字b[n:1]的真版本,且可包括在高速缓冲存储器中将搜索的所需地址。因此,示范性比较提供高速缓冲存储器中对于所需地址的命中或未中的确定。
相应地,应了解,示范性方面包含用于执行本文揭示的过程、功能和/或算法的各种方法。举例来说,图2图解说明比较(例如,第一数字(例如,a[n:1])和第二数字(例如,b[n:1]))的方法200。方法200可例如在比较器100中实施。
在框202中,方法200包含接收第一单端输入(例如,图1a-c的包括n位的第一输入a'[n:1],其中n为正整数)。在示范性方面中,第一输入a'[n:1]可为第一数字a[n:1]的反转版本。在一些情况下,第一数字可在n位反相器中反转以获得第一输入。
在框204中,方法200包含接收第二单端输入(例如,图1a-c的包括n位的第二输入b[n:1]。在示范性方面中,且第二输入b[n:1]是第二数字b[n:1]的真版本)。
在框206中,方法200包含仅基于第一单端输入和第二单端输入而确定部分匹配输出(例如,在部分匹配电路110中确定部分匹配输出为第一输入的n位与第二输入的对应n位的“与非”功能(例如,使用n个“与非”门112_1到112_n)的逐位乘积(例如,使用n位“与”门114))。
在框208中,方法200包含仅基于第一单端输入和第二单端输入而确定部分失配输出(例如,在部分失配电路120中确定部分失配输出为第一输入的n位与第二输入的对应n位的“或非”功能(例如,使用n个“或非”门122_1到122_n)的逐位求和(例如,使用n位“或”门124))。
在框210中,方法200包含基于部分匹配输出和部分失配输出而确定比较输出(例如,确定第一数字与第二数字的比较为部分匹配输出(例如,部分匹配输出116)与部分失配输出(例如,部分失配输出126)的反转值的“与”功能(例如,在“与”门102中))。所述比较可揭露例如第一数字a[n:1]是等于还是不等于第二数字b[n:1]。
在示范性方面中,可使用多米诺cmos、偏斜cmos或伪静态cmos技术确定方法200中的部分匹配输出和部分失配输出。举例来说,可仅以第一和第二输入的真(即,非反转)版本确定方法200中的部分匹配输出和部分失配输出。在一些实例中,方法200的比较可指示高速缓冲存储器中的命中或未中(例如,命中或未中指示可基于第一数字与第二数字的比较,其中例如第一数字包括高速缓冲存储器的所存储地址或标签数据且第二数字包括高速缓冲存储器中将搜索的所需地址)。
另外,将见到示范性方面涉及用于执行本文公开的功能的各种装置。举例来说,将见到示范性方面包含例如比较器100的设备,其包括第一单端输入(例如,包括n位的a'[n:1],其中n为正整数)和第二单端输入(例如,包括n位的b[n:1])。第一单端输入可为第一数字a[n:1]的反转版本且第二单端输入可为第二数字b[n:1]的真版本,其中所述设备可包含用于比较第一数字和第二数字的装置。所述设备可包含例如用于仅基于第一单端输入和第二单端输入而确定部分匹配输出的装置(例如,用于确定第一输入的n位与第二输入的对应n位的“与非”功能的逐位乘积的部分匹配电路110),以及用于仅基于第一单端输入和第二单端输入而确定部分失配输出的装置(例如,用于确定第一输入的n位与第二输入的对应n位的“或非”功能的逐位求和的部分失配电路120)。所述设备进一步包含用于基于部分匹配输出和部分失配输出而确定比较输出的装置(例如,用以执行部分匹配输出的输出与部分失配输出的反转值的“与”功能的“与”门102)。
现将相对于图3论述其中可部署比较器100的实例设备。图3示出了根据示范性方面配置的无线装置300的框图。无线装置300包含处理器302,其可为例如此项技术中已知的数字信号处理器(dsp)或任何通用处理器或中央处理单元(cpu)。在图3中,比较器100示出为处理器302内的块,同时为清楚起见而省略图1a-c中示出的比较器100的细节。比较器100可用以实施例如用于处理器302的算术和逻辑单元的比较。虽然未图示,但与比较器100相似的比较器也可包含在用以将搜索地址与高速缓冲存储器的标签数据进行比较的逻辑中,或者例如存储器310的存储器控制逻辑中。处理器302可以通信方式耦合到存储器310,如所示。
图3还示出耦合到处理器302和显示器328的显示器控制器326。译码器/解码器(编解码器)334(例如,音频和/或话音编解码器)可耦合到处理器302。还图解说明了例如无线控制器340(其可包含调制解调器)等其它组件。扬声器336和麦克风338可耦合到编解码器334。图3还指示无线控制器340可耦合到无线天线342。在特定方面中,处理器302、显示器控制器326、存储器310、编解码器334以及无线控制器340包含在系统级封装或芯片上系统装置322中。
在特定方面中,输入装置330和电力供应器344耦合到芯片上系统装置322。此外,在特定方面中,如图3中所图示,显示器328、输入装置330、扬声器336、麦克风338、无线天线342以及电力供应器344在芯片上系统装置322的外部。然而,显示器328、输入装置330、扬声器336、麦克风338、无线天线342以及电力供应器344中的每一个可耦合到芯片上系统装置322的组件,例如接口或控制器。
应注意,虽然图3描绘无线通信装置,但处理器302和存储器310也可集成到以下各项中:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(pda)、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信装置、移动电话,或其它相似装置。
所属领域的技术人员将了解,可使用多种不同技术及技艺中的任一者来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
另外,所属领域的技术人员将了解,结合本文中所揭示实施例描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的这种可互换性,上文已大体就其功能性来描述了各种说明性组件、块、模块、电路和步骤。此类功能性是实施为硬件还是软件取决于具体应用和施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离本发明的范围。
结合本文中所揭示的实施例而描述的方法、序列及/或算法可直接以硬件、以由处理器执行的软件模块或以两者的组合来体现。软件模块可驻留在ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动的磁盘、cd-rom,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并且将信息写入到存储媒体。在替代例中,存储媒体可与处理器成一体式。
因此,本发明的实施例可包含体现使用单端输入比较第一数字和第二数字的方法的计算机可读媒体。因此,本发明不限于所说明的实例,且任何用于执行本文中所描述的功能性的装置包含于本发明的实施例中。
虽然前面的揭示内容展示本发明的说明性实施例,但应注意,在不脱离如所附权利要求书界定的本发明的范围的情况下,可在其中做出各种改变和修改。无需按任何特定次序来执行根据本文中所述的本发明的实施例的方法权利要求项的功能、步骤及/或动作。此外,虽然可能以单数形式描述或主张本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。