比较器和存储器区域检测电路和方法与流程

文档序号:13982812阅读:281来源:国知局
比较器和存储器区域检测电路和方法与流程
本公开涉及比较器、存储器区域检测、和方法。
背景技术
:比较器电路可以用于检测被测值是高于还是低于阈值。这种电路的使用的示例被发现在存储器区域检测电路中。这可以被用在例如需要知道存储器地址是高于还是低于阈值地址、或(如果使用两个分别的阈值)它是否位于上限和下限地址定义的存储器区域内的情况中。例如,一个或多个属性(诸如可编程属性)可以与存储器区域相关联,使得存储器地址是否落入该区域的检测可以被用于依赖那些一个或多个属性而控制对该地址的存储器访问。这样属性的一个示例是指示写入操作是否可以对该存储器区域执行的属性。这样属性的另一示例是请求实体(例如,应用或虚拟机)是否具有访问存储器区域的许可。一些先前提议的布置使用所谓的位掩码,其中地址位的子集与预定值比较,使得如果位子集匹配掩码,则地址被检测到位于存储器区域中。然而,这要求存储器区域与由特定地址位表示的边界对齐,并且仅允许在存储器区域的尺寸和对齐方面的有限灵活性。使用位掩码实现单个任意存储器区域可能要求大量的单个掩码。因此,在其他布置中,使用算术比较。这里,被测存储器地址通过与上限和下限地址的算术比较而进行比较,以检测被测地址是否位于由上限和下限地址所定义的存储器区域中。然而,该算术比较可能导致一种地址比较,这种地址比较可能处于存储器和处理器性能的关键路径上,从而强加对应于执行该比较所花费的时间的延迟。技术实现要素:在示例布置中,提供了比较器电路,包括:进位保留加法(csa)电路,用来关于在第一输入值、第二输入值、与第一和第二输入值相关联的进位输入值、以及第三输入值中的相应位位置,生成部分和位的集合和进位位的集合,该csa电路包括相器电路,以提供在第三输入值和由第一和第二输入值组成的组之间的相对取反;以及组合器电路,以将部分和位的集合、在更高有效位方向上被偏移预定数量的位的进位位的集合、进位输入值、以及1进行组合,以生成至少进位输出位;其中,进位输出位指示第三输入值是否大于第一和第二输入值的和。在另一示例布置中,提供一种比较器电路,包括:进位保留加法(csa)装置,用于关于第一输入值、第二输入值、与第一和第二输入值相关联的进位输入值、以及第三输入值中的相应位位置,生成部分和位的集合和进位位的集合,该csa装置包括用于提供在第三输入值和由第一和第二输入值组成的组之间的相对取反的反相器装置;以及组合器装置,以将部分和位的集合、在更高有效位方向上被偏移预定数量的位的进位位的集合、进位输入值以及1进行组合,以生成至少进位输出位;其中,进位输出位指示第三输入值是否大于第一和第二输入值的和。在另一示例的布置中,提供了一种方法,包括:由进位保留加法,关于第一输入值、第二输入值、与第一和第二输入值相关联的进位输入值、以及第三输入值中的相应的位位置,生成部分和位的集合和进位位的集合,该生成步骤包括提供在第三输入值与由第一和第二输入值组成的组之间的相对取反;以及将部分和位的集合、在更高有效位方向上被偏移预定数量的位的进位位的集合、进位输入值以及1进行组合,以生成至少进位输出位;其中,进位输出位指示第三输入值是否大于第一和第二输入值的和。本技术的其他各方面和特征由所附权利要求书定义。附图说明本技术将参考附图中所述的实施例,仅以示例的方式被进一步描述,其中:图1示意性地示出了存储器区域;图2和图3示意性地示出了存储器区域属性数据;图4示意性地示出了数据处理系统;图5示意性地示出了存储器地址生成器;图6示意性地示出了存储器保护单元;图7到图9提供了区域数据的示意性示例;图10示意性地示出了存储器保护单元;图11示意性地示出了进位保留加法电路;图12示意性地示出了比较器电路;图13示意性地示出了存储器保护单元;图14示意性地示出了第一csa电路;图15示意性地示出了第二csa电路;图16示意性地示出了观测点电路;图17示意性地示出了饱和加法器;以及图18是示出了方法的示意流程图。具体实施方式在参考附图讨论实施例之前,提供了实施例的以下描述。示例实施例提供了一种比较器电路,包括:进位保留加法(csa)电路,以关于第一输入值、第二输入值、与第一和第二输入值相关联的进位输入值、以及第三输入值中的相应位的位置,生成部分和位的集合和进位位的集合,该csa电路包括反相器电路,以提供在第三输入值与由第一和第二输入值组成的组之间的相对取反;以及组合器电路,以将部分和位的集合、在更高有效位方向被偏移预定数量的位的进位位的集合、进位输入值以及1进行组合,以生成至少进位输出位;其中,进位输出位指示第三输入值是否大于第一和第二输入值的和。示例实施例认识到在算术比较器中涉及的延迟与在多位比较中解析进位链相关。示例实施例还认识到进位保留加法(csa)是用于计算将三个值相加的结果而不会导致这样严重的延迟的技术。示例实施例还认识到在第一和第二值之间的比较可以在当这些值中的一个被另一个相减时被表达为进位,并且二进制减法可以被视为反码加上1的和。根据输出信号需要的极性,比较器电路可以包括输出位反相器,以将进位输出位取反。在示例中,预定数量的位是1位。代替第一和第二值的和,可以使用替代值,使得选择器被配置为可选地将第一和第二输入值中的一个设置为0。在一些示例中,csa电路被配置为根据第一输入值、第二输入值、和第三输入值的反码来生成部分和位的集合和进位位的集合。在这些示例中,进位保留加法电路可以包括:第一电路,以将成对的第一输入值的位和第二输入值的位进行组合,以生成相应的中间部分和位和相应的中间进位位;以及第二电路,以将中间部分和位和中间进位位与第三输入值的反码进行组合。在另一示例中,csa电路被配置为根据第一输入值的反码、第二输入值的反码以及第三输入值来生成部分和位的集合和进位位的集合。在这些示例中,进位保留加法电路可以包括:第一电路,以将成对的第一输入的反码的位和第二输入值的反码的位进行组合以生成相应的中间部分和位和相应的中间进位位;以及第二电路,以将中间部分和位和中间进位位与第三输入值进行组合。这种比较器电路可以在存储器区域检测电路(例如,存储器保护电路或观测点电路)情况下是有用的,该存储器区域检测电路包括:检测器,以检测被测存储器地址是否位于由下限和上限定义的存储器地址范围内,该检测器包括:第一比较器电路,其中,第三输入值表示下限;以及第二比较器电路,其中,第三输入值表示上限;输出电路,以根据来自第一和第二比较器电路的进位输出位生成输出标志;其中,被测存储器地址被形成为第一输入值、第二输入值、和进位输入值的和,并且输出标志指示被测存储器地址是否位于由下限和上限所定义的存储器地址范围内。这种布置由于减少了解析多个进位链的需求,因此可以比先前提议的使用算术比较器的电路更快地操作。例如,可以使用两个或更多检测器,其中每个具有各自的上限和下限。在该示例中,电路可以被用于将来自两个或更多检测器的输出标志进行组合以生成存储器地址是否位于由下限和上限所定义的存储器地址范围内的指示。为了减少电路的数量,进而减少示例集成电路实现方式中的面积的使用,检测器的每个具有各自的第二电路;并且两个或更多检测器使用公共的第一电路。为了提供总线地址,例如,地址生成器可以被用于从第一输入值、第二输入值、以及进位输入值生成存储器地址。这还可以被用于提供对在第一、第二、和第三输入值的加法中的求模算术的校正,其中:地址生成器被配置为生成地址进位位;并且组合器电路被配置为根据地址进位位来生成进位输出位。使用的一个示例是在观测点电路等,其包括中断生成器,该中断生成器被配置为响应于存储器地址位于由下限和上限所定义的存储器地址范围内而生成处理器中断。使用的另一示例在存储器保护电路中,包括:如以上所讨论的存储器区域检测电路,其中,上限和下限定义具有一个或多个相关联属性的给定存储器区域;存储器保护电路被配置为根据一个或多个相关联的属性控制对于被检测到处于存储器区域中的存储器地址的访问。另一示例实施例提供了一种饱和合成器,包括:配置为将两个或更多数据值进行组合的数据值组合器;如以上所定义的被配置为将数据值组合器的输出与一个或多个限值进行比较的比较器;以及响应于比较器电路来将数据值组合器的输出限制到一定限值或一个或多个限值的限制器。另一示例实施例提供了一种比较器电路,包括:进位保留加法(csa)装置,用于关于第一输入值、第二输入值、与第一和第二输入值相关联的进位输入值、以及第三输入值中的相应位位置来生成部分和位的集合和进位位的集合,该csa装置包括用于提供在第三输入值和由第一和第二输入值组成的组之间的相对取反的反相器装置;以及组合器装置,用于将部分和位的集合、在更高有效位方向上被偏移预定数量的位的进位位的集合、进位输入值以及1的进行组合,以生成至少进位输出位;其中,进位输出位指示第三输入值是否大于第一和第二输入值的和。另一示例实施例提供了一种方法,该方法包括:通过进位保留加法,关于第一输入值、第二输入值、与第一和第二输入值相关联的进位输入值、以及第三输入值中的相应位位置来生成部分和位的集合和进位位的集合,该生成步骤包括在第三输入值与由第一和第二输入值组成的组之间提供相对取反;以及将部分和位的集合、在更高有效位方向上被偏移预定数量的位的进位位的集合、进位输入值以及1进行组合,以生成至少进位输出位;其中,进位输出位指示第三输入值是否大于第一和第二输入值的和。现参考图1,提供了存储器映射的示例,从而说明多个存储器区域的实现方式。图1沿横轴表示存储器地址,例如从左侧的较低(或最低)存储器地址到右侧的较高(或最高)存储器地址。存储器地址空间被分配为不同的用途。图1的示例中,提供了6个存储器区域(编号为存储器区域1…6),存储器区域1被分配给静态随机存取存储器(sram),存储器区域2和3被分配给闪存ram,存储器区域4被分配给只读存储器(rom),存储器5被映射到输入/输出(i/o)设备,并且存储其区域6未被使用。图1的存储器区域可以与不同许可相关联,例如,适用于在与由存储器映射所表示的存储器相关联的处理器或虚拟机上运行的应用的许可。这种许可的示例在图1中示出;例如,在存储器区域1中,应用可以在该存储器区域中读取和/或写入数据但不执行指令。在存储器区域2中,应用可以读取、写入和执行。存储器区域3不具有针对应用的许可,所以应用未被许可以访问该存储器区域。在存储器区域4中,应用可以读取或执行。在存储器区域5中,应用可以读取和/或写入,存储器区域6并未被提供许可。许可的这些示例是基于映射到整个存储器映射中的区域并且还映射到运行在访问该存储器映射的处理器上的应用的特性的电路的类型。然而,其他类型的许可或类似属性可以与存储器区域相关联,例如与正运行代码相关联的安全级别相结合,使得对于特定安全级别,允许对某些存储器区域的访问,但不允许对其他区域的访问。在示例中,安全级别可能形成两个或更多安全级别的层级结构,使得更高的安全级别能够访问对于在较低安全级别处运行的代码被拒绝访问的存储器区域。事实上,存储器区域存储中存储的存储器区域数据(见下文)本身可以是只能在更高安全级别执行的存储器事务的示例。替代地,存储器区域可以简单地与存储器区域是否可有效访问的指示相关联。即,响应于该指示,与在该区域中的存储器地址相关的存储器事务的进行被允许或不被允许。图2示意性地示出了存储器区域属性数据,该存储器区域属性数据指示以上所讨论的示例的应用是否能够有效访问图1的存储器区域中的每一个。此处,存储器区域数据10包括针对每个存储器区域的有效性标志20,该有效性标志指示是否可以有效做出对于该存储器区域的访问。在其他示例中,关于图2提及的有效性标志可以被暗指,由于存储器区域数据可以(以一般水平、或针对应用、或针对特定安全级别等等)指定允许事务的存储区域,使得不允许对于不在该区域内的任何存储器地址的事务。这种形式的示例参考图7在以下讨论。图3示出了替代的布置,其中,存储器区域数据30为每个存储器区域提供了读取(r)、写入(w)、和执行(x)标志,以指示是否可以在该存储器区域中执行这些操作。此处,对勾(√)指示该类型事务被允许,而叉(×)指示该事务类型不被允许。属性的其他示例指示存储器区域的共享状态、是否可以重排该存储器区域中的指令以执行,等等。存储器区域可以以多种方式定义。图1中示出的示例将定义下限存储器地址(“base”)和上限存储器地址(“limit”),使得如果:base﹤﹦存储器地址﹤﹦limit,则存储器地址落在区域内。其他示例可以定义基地址和区域大小。它功能上等于以上所讨论的布置,因为上限地址等于基地址加上区域大小。其他示例可以(也等效地)定义上限地址和区域大小。图4示意地示出了数据处理系统,该数据处理系统包括处理元件400、存储例如处理器指令412和数据414的存储器系统410、输入/输出(i/o)电路420、存储器保护单元430和区域数据存储440。处理元件400执行从存储器410获取的处理器指令。为了说明的清晰和简单,图4仅示出了处理元件400的某些特征,并且本领域技术人员将理解其他特征可以被包括。图4所示的相关特征包括处理器402、指令获取(ifetch)单元404、和加载-存储单元406(lsu)。在处理器402上运行的程序代码(例如,应用程序)的控制下,存储器访问操作可以由ifetch单元404或lsu406发起。这些操作被归类为存储器事务。存储器保护单元(mpu)430通过询问存储在区域数据存储440中的区域数据来允许或不允许事务发生。在一些示例中,通过将两个值相加在一起生成存储器地址,例如,寄存器的内容可以被加到另一值(例如,被指定为处理指令的运算元的值),以给出存储器地址,该存储器地址取决于在该运算元中指定的值和存储在该寄存器中的值。图5示意地示出了可用于这些情况的存储器地址生成器。在图5中,加法器500将两个运算元op-a、op-b以及进位输入(carry-in)值op-c相加在一起。加法器510的输出被传递到复用器520,该复用器520还接收表示不需要这种加法运算的存储器地址的值(其他,other)。复用器520根据选择信号sel_add530来选择加法器的输出510或地址“other”,以生成输出存储器地址540。因此,图5提供了从第一输入值、第二输入值、和进位输入值生成存储器地址的地址生成器的示例。在一些应用中,诸如下面参考图13所讨论的应用,地址生成器被配置为从加法器500的加法中生成地址进位位550。在某些情况下,这样的进位位不是必需的,但在图13的示例的布置中可以是有用的。下面将进一步讨论这种地址进位(carry)位的使用。图6示意性地示出了图4的存储器保护单元430的操作的一部分。在该示例中,mpu430将地址540与相应的base和limit地址进行比较。如果地址540位于由下限(base)和上限(limit)地址所定义的区域内,则事务被认为是有效的,并且由mpu输出有效性指示600。单独地,地址540作为总线地址被提供,以遵从指示事务有效且被允许的有效性指示访问存储器或其他存储器映射的设备的相关部分。图7到9提供了可以由mpu430引用的区域数据的示意性示例。在图7中,提供了base地址和limit地址,其布置是,如果存储器地址在区域数据中的base和limit地址之间,则事务被允许。换言之,如结合图2所述,“有效性标志”被暗指,因为关于落入由图7中的base和limit定义的区域内的存储器地址的事务被认为是允许的事务;否则被认为不是允许的事务。在图8中,对于每个存储器区域,存储器区域由base和limit地址定义,并且还提供了属性,以指示在该存储器区域内允许的事务的性质。属性可以简单地是“允许的”标志,或者可以包括其他属性,诸如结合图3所讨论的那些。在图9中提供了另一示例,其中base和limit地址定义了存储器区域,并且转换信息指示适用于该存储器区域的存储器地址转换(例如,从虚拟地址到物理地址或中间物理地址)。这些布置共同的特征是,需要进行比较以检测被测存储器地址(诸如关于所提交的事务的存储器地址)是在由下限值和上限值定义的存储器区域的内部还是外部。图10更详细示出了诸如mpu430的存储器保护单元。此处,被测地址1000被提供到多个比较器1010、1020、1030(其中示出了三个,但可以提供各种数量),每个比较器将地址1000与各自的base和limit地址进行比较。比较器1010、1020、1030的输出由或(or)门1040组合,使得如果事务被认为是由任一比较器所允许的,则输出有效信号1050被生成以指示事务被允许。如上所述,地址1000还被提供作为用于存储器访问的总线地址1060。图6和图10提供了包括以下将要讨论的形式的存储器区域检测电路的存储器保护电路的示例,其中,上限和下限定义了具有一个或多个相关属性的给定存储器区域;存储器保护电路被配置为根据该一个或多个相关联的属性,来控制对被检测到位于存储器区域中的存储器地址的访问。图10所示的布置的类型可能出现的一个问题是,对于存储器事务是否被允许的检测可能是位于用于实现处理器性能的关键路径内,但是因为算术比较器在多位比较中依赖于对多个进位值链的解析,所以算术比较器可能运行缓慢。图11示意地示出了进位保留加法(csa)电路1100。csa电路提供了所建立用于计算将三个值相加的结果而不会导致两次解析进位链的延迟的情况的方案。在图11的示例中,输入a、b和进位输入(cin)的各自的位被提供给csa电路1100。如果这些位中恰好有一个(可以是它们中的任一个)是“1”,则输出总和(s)值为1。如果输入位中恰好有两个为1,则进位输出(cout)为1并且总和(s)输出为0。如果三个输入位全部都为1,则cout和s均为1。结合图11所讨论的类型的csa电路例如可以被用于比较器电路的情况中,并且可以被用于图10所示类型的mpu,或将结合图16在以下讨论的其他电路。然而,这样电路在比较器电路中的使用(无论该比较器电路自身是否被用在图13或16布置中)被视为表示本公开的实施例。本公开的布置可以使用csa电路,但用于提供比较器功能的整体方法与简单的csa电路有显著不同。考虑将“test(测试)”值与下限值或上限值进行比较。与下限值的比较等价于:“test﹥﹦下限值?”。这等于“下限值﹥test?”结果的否定,这进而可以由减法(test-下限值)的进位输出(carryout)值(下溢)来表示。例如,如果test=下限值,则减法(test-下限值)=0,没有下溢。如果test﹥下限值,则减法(test-下限值)=(正值),没有下溢。如果test﹤下限值,则减法(test-下限值)生成下溢或进位输出位。因此,检测“test﹥﹦下限值?”的结果可以由减法(test-下限值)的进位输出位表示,其因为如果检测为假(即,test﹤下限值)或0,则进位输出位为1。类似地,与上限值的比较等价于“test﹤﹦上限值?”,转而可以由减法(上限值-test)进位输出值(下溢)来表示。如果测试结果为假(即,test﹥上限值),则进位输出位是1,并且如果测试结果为真,则为0。出于方便,在每种情况中,进位输出位可以取反,以当条件为真时(视情况而定,test﹥﹦下限值或test﹤﹦上限值)提供1。还应当注意,函数“x-y”可以等效地表示为“x+~y+1”,其中符号~y表示y的逐位取反。现转到csa技术的使用,总和“x+~y”可以使用csa电路被执行。图12示出了简化的示例。值x和y被提供给csa电路1200。反相器1210、1220关于值x(以生成~x)或值y(以生成~y)而提供。对于多位值x和y,csa电路1200生成成对的总和位与进位位的集合。换言之,值x和y中的每个位位置生成总和位s和进位位c。然后,总和位和进位位被相加在一起。然而,应当注意,s-c对中的进位位c指的是与该对中的相应的总和位s相比较而言在更高有效方向上偏移1位(或更一般地,可以是1或其他值的预定数量的位)的位位置。因此,在将总和位与进位位相加在一起之前,该集合的所有进位位都被偏移1位。图12中的csa电路1200的输入和输出如下所示(在x+~y的示例实现方式中):值x的位值~y的位总和位进位位x0y0s0c0x1y1s1c1x2y2s2c2x3y3s3c3x4y4s4c4…………xnynsncn在加法器1230将总和位和进位位相加在一起之前,将进位位偏移1个位位置。值1再被加上,以提供上述等效的否定。总和位进位位(经偏移)s0+0s1+c0s2+c1s3+c2s4+c3…+…sn+cn-10+cn分别地,可以将值插入作为新的最高有效总和位与新的最低有效进位位,而这些可能性将在下面讨论。现在,在上表中的这些位置中已经插入了一个0。以上所示的多位加法由加法器1230执行。从该加法生成进位输出位1240。如上所述,该进位输出位可以由反相器(如输出位反相器的示例)取反,以生成反相的进位输出位1260以形成比较的结果指示。图12的讨论是基于两个任意的值x和y。应当理解,取决于取反1210、1220中哪一个被使用,从而提供了比较器电路的示例,该比较器电路使用csa电路来生成指示x﹥﹦y,或y﹥﹦x,或x﹥y,或y﹥x的输出(1240或其取反版本1260)。然而,如以上所讨论的,这种比较器电路可以在存储器区域检测电路中使用。在该电路中,要被执行的典型测试是,值a和b(其可以具有相关联的进位输入值)的总和是否大于或等于值base,和/或是否小于或等于值limit。与图12相比,这将暗指base或limit可以由值x、y中的一个表示,并且a、b与进位输入的和可以由值x、y中的另一个来表示。可以使用csa技术,从而即使在一个值与其他值的和相比较的这种情况下,仅需要解析一个进位链,其等于加法器1230处的进位链。图13提供了这可以如何被实现的示例。在图13中,地址生成器1300类似于图5中所示的,并且包括加法器1302、复用器1304和反相器1306。加法器1302和复用器1304以与图5中所示的等效组件相同的方式进行操作,使得加法器1302将输入运算元op-a、op-b和进位输入值op-c相组合,生成地址(被传递到复用器1304)和进位输出值c1。反相器1306生成c1的取反版本、~c1(在图13中使用的变量名上有一横线的符号,即)。下面将讨论其中使用c1和~c1的方式。在选择信号sel_add的控制下,复用器的输出取决于加法器1302的输出或取决于另一地址othre。变量base和limit被存储在区域数据存储设备中(图13中未示出,但如关于图4描述)。反相器1308将base取反以形成~base。注意,值~base自身可以代替base存储在区域数据存储设备中、或在base以外也被存储在区域数据存储设备中。比较利用base执行,但~base被用作本电路的一部分。图13的电路实现两个比较功能,即被测地址是否﹥﹦base,以及被测地址是否﹤﹦limit。必须通过这些测试,才能认为被测地址是位于由base和limit定义的区域内。在图13中,两个测试基本上是并行执行的,并且如果两个测试都通过,则and(与)门1314将两个测试结果相组合以生成“有效”信号1316。该电路可以包括比较器的多个实例(示意性地示出为1318、1320...),每一个以类似于图10的示意图的方式响应于各自的base和limit地址。这些是两个或更多检测器的示例,每一个检测器具有各自的上限和下限。来自每个这种实例的“有效”信号被or(或)门1322组合(如组合两个或更多检测器的输出标志的电路的示例),以生成被测存储器地址的指示,从而生成组合的“有效”信号1324,该信号1324在单独的有效信号中的任一个(或多个)被设置的情况下指示有效性。csa技术被用于图13的电路。csa加法实现为两个阶段。在第一csa电路1310、1312中,执行op-a和op-b的加法。该第一csa电路仅需要在电路的所有实例(包括实例1318、1320...)中实现一次。第一csa电路1310、1312的单个实现方式可以减少在集成电路实现方式中用于实现(例如)mpu所需的区域。这是多个检测器中的每一个具有各自的第二电路并且两个或更多检测器使用公共的第一电路的示例。由第一csa电路生成的结果可以与第二csa电路1326、1328并行被提供,该第二csa电路针对每个实例实现一次(即,对于每组base、limit一次)。第一csa电路1310接收由反相器1332生成的值~op-a和~op-b,并对它们进行双输入csa加法。第一csa电路1312接收值op-a和op-b,并对它们进行输入csa加法。注意,sel_add信号还控制复用器1334和两个and门1336、1338,使得如果sel_add被设置为选择地址other,则将~other提供给第一csa电路1310来代替~op-a,设置op-b、op-c为零。应当注意,该布置的对称性意味着other可以替代op-b的位置,而不是代替op-a。以这种方式对other的选择提供了被配置为选择性地将第一和第二输入值中的一个设置为零的选择器的示例。值op-c(进位输入值)以下面将要描述的方式并且以非取反形式c2和(由反相器1340取反的)取反形式~c2而被使用。第一csa电路1310的输出与值limit一起被提供给第二csa电路1326。第一csa电路1312的输出与值~base一起被提供给第二csa电路1328。在每种情况下,第二csa电路1326、1328对各自的输入执行三输入csa加法,以生成总和s和进位c输出。每个第二csa电路的总和与进位输出由相应的加法器1342、1344相加在一起,并且加上值1(如以上参考图12所讨论的)。在进行加法之前,如以上所述,执行c值的位移。然而,在进行加法之前,在最低有效进位位和最高有效总和位的空位位置中,插入其它的值。在加法器1342的情况下,插入为:总和位进位位(经偏移)s0+~c2(来自反相器1340)s1+c0s2+c1s3+c2s4+c3…+…sn+cn-1c1(来自加法器1302)+cn在加法器1344的情况下,插入为:插入这些值的每一个的原因将被讨论。首先考虑值c1和其反码~c1,该值的插入是为了能够基于op-a和op-b的加法对2n取模(其中n是op-a或op-b中的位数,例如n=32)来实现有效的结果。由加法器1302执行的加法生成的任何进位输出值被有效地用于将由第一和第二csa电路执行的比较的进位输出进行取反。换言之,如果op-a、op-b和op-c的相加生成大于2n的值,则假设仅有该值的前n位事实上将被用作存储器地址,则需要对其进行对2n取模的处理。第一和第二csa电路的结果可以提供一种进位输出值,该进位输出值不是比较的结果而是由于op-a+op-b+op-c大于2n而发生的。因此,如果c1等于1,则需要将其取反。提供此取反的优雅简洁的方法是插入c1(或在加法器1344的情况下为它的反码)作为提供给加法器1342、1344的运算元之一的新的最高有效位。总和位中的空的空间为插入该值提供了方便的空间。以这种方式,组合器电路被配置为根据地址进位位生成进位输出位。考虑c2及其反码~c2,这可能已经在第一csa电路阶段被添加到op-a和op-b中,但这将使得该电路更复杂(在集成电路实现方式中占据更多空间)。作为替代,可以使用由第二csa电路1326、1328的c位输出中的空的最低有效位位置,以允许在该阶段加入c1或它的反码。如上所述,每个加法器1342、1344加1。如上所述,输出进位位1346、1348在被提供给and门1314之前,由反相器1350、1352取反。因此图13提供了一种比较器电路的示例,该比较器电路包括:进位保留加法(csa)电路,以关于第一输入值(例如op-a)、第二输入值(例如op-b),与第一和第二输入值相关联的进位输入值(例如op-c)和第三输入值(base或limit)中的相应位位置,生成部分和位的集合和进位位的集合,该csa电路包括反相器电路,以提供在第三输入值与由第一和第二输入值组成的组之间的相对取反;以及组合器电路(诸如加法器1342、1344中的一个或两者),用来将部分和位的集合、在更高有效位的方向上被偏移预定数量的位的进位位的集合、进位输入值以及1进行组合,以生成至少一个进位输出位;其中,进位输出位指示第三输入值是否大于第一和第二输入值的和。总之,图13示意性地示出了存储器区域检测电路,其包括检测器以检测被测存储器地址是否处于由下限(例如base)和上限(例如limit)定义的存储器地址范围内,该检测器包括:第一比较器电路,其中,第三输入值表示下限;以及第二比较器电路,其中,第三输入值表示上限;输出电路,以根据来自第一和第二比较器电路的进位输出位1346、1348生成输出标志1316;其中,被测存储器地址被形成为第一输入值(op-a)、第二输入值(op-b)和进位输入值(op-c)的和,并且输出标志指示被测存储器地址是否位于由下限和上限定义的存储器地址范围内。在一些示例中,csa电路被配置为根据第一输值入、第二输入值和第三输入值(在上述的base)的反码(在以上示例中为~base),生成部分和位的集合和进位位的集合。在这种情况下,进位保留加法电路可以包括第一电路,以将成对的第一输入值的位和第二输入值的位进行组合,以生成相应的中间部分和位和相应的中间进位位;以及第二电路,以将中间部分和位和中间进位位与第三输入值的反码进行组合。在其他示例中,csa电路被配置为根据第一输入值的反码、第二输入值的反码和第三输入值(例如limit),生成部分和位的集合和进位位的集合。在这种情况下,进位保留加法电路可以包括:第一电路,以将成对的第一输入值的反码的位和第二输入值的反码的位进行组合,以生成相应的中间部分和位和相应的中间进位位;以及第二电路,以将中间部分和位和中间进位位与第三输入值进行组合。图14示意性地示出了图13的第一csa电路1310、1312的示例1400。两个输入a和b的各自的位被提供给异或(xor)门1410并提供给与(and)门1420,该异或门1410生成s输出,与门1420生成c输出。应当理解,图14的布置仅是该功能的实现方式的一个示例,并且可以使用其他功能上等效的电路。下表示出了到图14的电路的输入、和来自图14的电路的输出。abs=axorbc=aandb0000011010101101图15示意地示出了图13的第二csa电路1326、1328的示例1500。三个输入a、b和d的各自的位由电路处理。如果这些输入位中仅有一个(可以是任何一个)为1,则s=1且c=0。如果这些输入位中只有两个为1,则s=0且c=1。如果这三个位全部为1,则s=c=1。为了生成s,通过异或门1510将两个输入位(在该示例中为a、b)组合,并且通过另一异或门1520将结果与剩余的输入位组合。下表示出了到图15的电路的输入和从图15的电路的s输出。abdaxorbs=(axorb)xord0000000101010110111010011101101100011101来自图15的c输出由三个与门1530、1540、1550通过将成对的输入位进行组合来生成,三个与门的输出被或门1560组合。下表示出了到图15的电路的输入和从图15的电路的输出c。abda&ba&db&d进位=(a&b)or(a&d)or(b&d)00000000010000010000001100111000000101010111010011111111图16示意性地示出了本公开技术和示例比较器的另一示例使用。图16在若干方面与图4类似,因为处理元件1600与存储器系统和存储器映射i/o1620交互。提供了响应于存储在区域数据存储1640中的存储器区域数据的所谓的观测点电路1630。观测点电路1630(例如)作为硬件调试或分析系统的一部分进行操作。如果检测到对于由存储在区域数据存储1630中的区域数据定义的存储器地址的事务,则观测点电路1630向处理元件1600发出处理器中断,这转而导致处理元件来执行中断例程。以这种方式,处理元件可以以正常方式执行程序代码,但是如果检测到对位于被测的一个或多个存储器区域中的地址的存储器事务,则处理元件可以执行中断例程,例如以生成跟踪数据,或在此时提供至少一些处理参数的转储。观测点电路可以以与以上讨论的存储器保护单元电路相同的方式进行操作,从而将与当前存储器事务相关联的地址与定义base和limit地址的区域数据进行比较。代替生成“有效”指示,相同的电路可以生成中断信号。因此,在图10和13的电路中,有效信号事实上被用作中断信号。因此,图16的观测点电路提供中断生成器的示例,该中断生成器被配置为响应于位于由下限和上限定义的存储器地址范围内的存储器地址,生成处理器中断。本公开技术的另一示例使用是在饱和加法器(或减法器或其他组合器或运算)的情况中。图17中示意性地示出饱和加法器的示例。饱和加法器将两个值相加,使得结果可以达到但不超过限值(limit)。输入值a和b由加法器1700相加,并且被传递到比较器1710,该比较器1710(例如使用包括反相器的处理链)检测加法器输出是否小于或等于值limit。如果是,则限制器1720将该值作为饱和加法器的输出而传递。如果不是(即,检测到加法器值大于limit),则限制器将输出值限制到limit。这提供了一种饱和组合器的示例,该饱和组合器包括:被配置为将两个或更多数据值进行组合的数据值组合器(诸如1700);被配置为将数据值组合器的输出与一个或多个限值进行比较的比较器电路(诸如1710);以及响应于比较器电路以将数据值组合器的输出限制到一定限值或一个或多个限值的限制器(诸如1720)。图18是示出了方法的示意流程图,该方法包括:(在步骤1800处)通过进位保留加法,关于第一输入值、第二输入值、与第一和第二输入值相关联的进位输入值、第三输入值中的相应位位置生成部分和位的集合和进位位的集合,该生成步骤包括提供在第三输入值与由第一和第二输入值组成的组之间的相对取反;以及(在步骤1810处)将部分和位的集合、在更高有效位方向上被偏移预定数量的位的进位位的集合、进位输入值以及1进行组合,以生成至少进位输出位;其中进位输出位指示第三输入值是否大于第一和第二输入值的和。在本申请中,词语“配置为...”用于指装置的元件具有能够执行所定义的操作的配置。在这种情况下,“配置”意指硬件或软件的互连的布置或方式。例如,装置可以具有提供所定义的操作的专用硬件,或者可以被编程以执行功能的处理器或其他处理设备(诸如处理元件12)。“配置为”并不意味着装置元件需要以任何方式改变以提供定义的操作。尽管已经参考附图详细描述了本技术的说明性的实施例,应当理解,本技术不限于这些精确的实施例,并且本领域技术人员在不脱离由所附权利要求定义的技术的范围和精神的情况下,可以做出各种改变、添加和修改。例如,从属权利要求的特征可以与独立权利要求的特征相结合,而不脱离本技术的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1