硬件接口组件和用于硬件接口组件的方法

文档序号:10624555阅读:380来源:国知局
硬件接口组件和用于硬件接口组件的方法
【专利摘要】一种硬件接口组件被设置为可操作地将至少一个运算单元耦合至处理系统的互连组件。硬件接口组件包括多个编程可见寄存器以及至少一个操作解码器组件。至少一个操作解码器组件被设置为,在通过互连组件收到对应于硬件接口组件的布置的存储器映射的地址范围的写入访问请求时,解码所接收的写入访问请求的目标地址的寄存器标识符部分以标识所述编程可见寄存器中的至少一个,解码所接收的写入访问请求的目标地址的布置部分以标识执行的运算操作,以及配置运算单元以对在标识的至少一个编程可见寄存器内的至少一个输入操作数执行标识的运算操作。
【专利说明】
硬件接口组件和用于硬件接口组件的方法
技术领域
[0001]本发明涉及硬件接口组件,以及更具体的涉及被设置为可操作地将至少一个运算单元耦合至处理系统的互连组件的硬件接口组件。【背景技术】
[0002]在诸如功率计量的深嵌入式应用空间中,对于高动态范围运算操作的硬件支持对最大化系统性能以及最小化装置功耗是重要的。常规的通用处理核心对于通用应用进行优化,以及由于缺少对于高动态范围运算操作(诸如像除法、平方根、乘法以及饱和分数信号处理的64位运算操作)的硬件支持而通常不能支持许多深嵌入式应用空间需要的计算性能。
[0003]领先的微控制器单元(MCU)提供者已经解决了对于这样的高动态范围运算操作在嵌入式应用内硬件支持的需要,这是通过提供例如具有FPU(浮点单元)模块的ARM? C〇rtex?-M4的更先进的处理核心体系结构,或者通过将专用的、存储器映射的运算硬件单元与更通用处理核心进行集成而实现的。然而更先进的处理核心体系结构可以适合于高端应用,它们的高单位成本通常使得它们对于低端应用是过于昂贵的。因此,将专用的存储器映射的运算硬件单元与通用处理核心集成对于提供指定尺寸和功率约束内的低端嵌入式应用内的硬件支持是需要的。
[0004]常规地,专用存储器映射运算单元通过硬件接口连接到微控制器核。运算单元通常被实现为硬线连接逻辑电路,其被设计为在单个时钟周期中计算诸如乘、乘加和乘减的基本操作,以及在若干时钟周期中计算诸如除和平方根的更高级的操作。虽然用于高动态范围计算的独立运算单元的性能可以提供相较于最常用微控制器核的好几倍的增加,但是利用运算硬件单元的这样的计算性能的能力通常受限于将运算单元接口至通用微控制器核的硬件接口的能力,以及反之亦然。
[0005]图1示出用于存储器映射运算硬件单元110的常规基本硬件接口实现方式。存储器映射运算单元110显示为32位设计。因此,编程模型寄存器的宽度是32位。对于64位运算操作加速,两个32位寄存器级联在一起以形成需要的64位数据操作数。按照惯例,弓丨用的32位寄存器被命名为<REG>_H{igh}和<REG>_L{ow}。
[0006]图1中示出的基本硬件接口 120包括:输入操作数寄存器(0P1_L、0P1_H、0P2_I^P 0P2_H)、用于通过运算单元110执行的64位运算操作的输入操作数被写到该输入操作数寄存器中,控制寄存器,用于选择和启动操作和结果寄存器(RES_L和RES_H),从所述结果寄存器读取通过运算单元110执行的64位运算操作的结果。
[0007]将64 = 64/64除法操作用作通过运算单元110执行的64位运算操作的示例。为完整起见,64 = 64/64除法操作包括64位分母除以64位分子,以及计算的结果64位商。 由图1中示出的基本硬件接口 120实现的64 = 64/64编程模型包括以下用于64 = 64/64 除法操作的存储器映射‘访问’:
[0008]1.ADDR(OxOO) — NUMERAT0R_L // 将分子的最低有效 32 位写到 0P1_L
[0009]2.ADDR(0x04) — NUMERAT0R_H // 将分子的最高有效 32 位写到 0P1_H
[0010]3.ADDR(0x08)—DEN0MINAT0R_L // 将分母的最低有效 32 位写到 0P2_L
[0011]4.ADDR(OxOC)—DEN0MINAT0R_H // 将分母的最高有效 32 位写到 0P2_H
[0012]5.ADDR(OxlO) — CONTROL(OxOl) //写控制寄存器以选择&触发操作
[0013]6.QU0TIENT_L—ADDR(0xl4) // 从 RES_L 读结果商的最低有效 32 位
[0014]7.QU0TIENT_H—ADDR(0xl8) // 从 RES_H 读结果商的最高有效 32 位
[0015]基本硬件接口 120被设计成用每个访问执行一个动作。控制寄存器被设置为选择需要的操作以及触发其执行。例如,控制寄存器可以包括用于支持运算的位映射,由此如所示出的,通过控制寄存器内的单个位标识每个支持的运算。
[0016]所有操作数、控制和结果寄存器在地址空间中连续地映射,这允许利用自动导致地址寄存器的递增的间接寻址来使用存储器装载和存储多个指令。使用这样的间接寻址装载和存储多个指令增加了基本硬件接口 120的计算吞吐量。然而,使用基本硬件接口 120 执行单个64位运算操作需要附加的访问,所述访问是通过写控制寄存器来选择和触发运算单元以执行需要的运算操作来执行的。
[0017]应当注意,在此提供的编程模型示例对应于“低位优先”的存储器常规。然而,应当明白,其它实现方式可以遵循替代的存储器常规和组织,例如高位优先。
[0018]图2示出对于存储器映射运算硬件单元110的已知的先进的硬件接口实现方式。 图2中示出的先进的硬件接口 220包括:将输入操作数写到其中的一系列成对的第一输入操作数寄存器(0P1)、将输入操作数写到其中的一对第二输入操作数寄存器(0P2)和从其中读取通过运算单元110执行的64位运算操作的结果的一对结果寄存器(RES_L和RES_ H)。先进的硬件接口 220还使用对第一 0P1操作数寄存器对的写入来选择通过运算单元 110执行的操作以及对第二0P2操作数寄存器对的写入来启动操作。
[0019]再次将64 = 64/64除法操作用作通过运算单元110执行的64位运算操作的示例。 通过图2中示出的先进的硬件接口 220实现的64 = 64/64编程模型包括以下存储器映射 ‘访问’:
[0020]1.ADDR(OxOO) — NUMERAT0R_L // 将分子的最低有效 32
[0021]位写到0P1_L&选择64 = 64/64操作
[0022]2.ADDR(0x04) — NUMERAT0R_H // 将分子的最高有效 32 位写到 0P1_H
[0023]3.ADDR(0x44)—DEN0MINAT0R_L // 将分母的最低有效 32 位写到 0P2_L
[0024]4.ADDR (0x48)—DEN0MINAT0R_H // 将分母的最高有效 32 位写到 0P2_H& 触发 64=64/64操作
[0025]5.QU0TIENT_L—ADDR(0x4C) // 从 RES_L 读取结果商的最低有效 32 位
[0026]6.QU0TIENT_H—ADDR (0x50) // 从 RES_H 读取结果商的最高有效 32 位
[0027]先进的硬件接口 220被设计成与每个特定的访问一起执行多个动作;基于第一输入操作数寄存器地址选择操作类型,以及通过对第二操作数的最后写入来触发操作。以这样的方式,图1中示出的基本硬件接口 120所需的对控制寄存器的单独访问是不需要的,将执行单个64位运算操作以及取回结果所需进行的访问的数量减少到六。
[0028]然而,原则上先进的硬件接口 220的寄存器映射不能对于所有操作顺序地寻址, 以及因此利用自动张贴地址寄存器的递增的间接寻址的指令的使用是非常受限或甚至是不适用的。此外,由于需要对每个支持操作设置的单独的第一输入操作数寄存器(0P1),与基本硬件接口 120相比,在先进的硬件接口 220内需要实现的寄存器的数量极大地增加。
[0029]在图1和图2中示出的专用运算单元的这些已知的硬件接口介绍了使用特定的寄存器选择和触发运算操作或者非顺序寄存器布局所导致的不同的性能低效。
【发明内容】

[0030]如在所附权利要求中描述的,本发明提供一种硬件接口组件和处理系统,所述处理系统包括这样的硬件接口组件以及在运算单元和处理系统的互连组件之间交流的方法。 [0031 ]在从属权利要求中陈述本发明的特定实施例。
[0032]本发明的这些以及其它方面从参考在下文中描述的实施例将是明显的,以及将参考在下文中描述的实施例阐明本发明的这些以及其它方面。【附图说明】
[0033]仅举例来说,将参考附图描述本发明的更多细节、方面和实施例。在附图中,类似的参考数字被用来标识类似的或者功能上相似的元件。图中的元件为简单和清楚起见而示出并且没有必要按比例绘制。
[0034]图1示出存储器映射运算硬件单元的常规的基本硬件接口实现方式。
[0035]图2示出存储器映射运算硬件单元的已知的先进的硬件接口实现方式。
[0036]图3示意性地示出处理系统的一部分的简化框图。
[0037]图4示意性地示出硬件接口组件的示例的简化框图。
[0038]图5示出布置的(decorated)存储器映射的地址范围的示例。
[0039]图6示出代表通过图4的运算硬件单元支持的运算操作的集合的布置存储器映射的一部分的不例的表。
[0040]图7和8示出在处理系统的互连组件和运算单元之间接口的方法的示例的简化流程图。【具体实施方式】
[0041]现在将参考附图描述本发明的示例。然而,应当明白,本发明不限于在此描述的和如附图中所示出的特定的示例。此外,因为可能在极大程度上使用本领域技术人员已知的电子组件和电路实现本发明示出的实施例,所以不会以比如在下面示出的为理解和领会本发明潜在的概念考虑所需要的任何更大的程度说明细节,以及为了不混淆或分散本发明的教导。
[0042]根据本发明的第一方面的一些示例,提供被设置为可操作地将至少一个运算单元耦合至处理系统的互连组件的硬件接口组件。硬件接口组件包括多个编程可见寄存器 (program-visible register)以及至少一个操作解码器组件。至少一个操作解码器组件被设置为,在通过互连组件收到对应于硬件接口组件的布置的存储器映射的地址范围的写入访问请求时,基于布置的存储器映射的地址范围解码接收的写入访问请求的目标地址的寄存器标识符部分以标识所述编程可见寄存器中的至少一个,基于布置的存储器映射的地址范围解码接收的写入访问请求的目标地址的布置部分以标识执行的运算操作,以及配置运算单元以对在标识的至少一个编程可见寄存器内的至少一个输入操作数执行标识的运算操作。
[0043]有利地,以及如以下更详细地描述的,通过实现这样的硬件接口组件的布置的存储器映射的地址范围,不需要用于选择以及触发运算操作的对控制寄存器的单独访问,而仍然允许硬件接口的寄存器映射对于所有操作顺序地寻址,由此允许以地址寄存器的自动公告递增(automatic post incrementing)的间接寻址使用装载和存储多个指令。此外, 在硬件接口组件内不需要提供对于每个操作的不同的寄存器。
[0044]现在参考图3,示意性地示出处理系统300的一部分的简化框图,在示出的示例中所述处理系统300实现在集成电路装置305内,所述集成电路装置305包括在单个集成电路封装内的至少一个管芯。处理系统300包括一个或多个处理器模块,例如微控制器单元 (MCU)核心330。处理系统300进一步包括至少一个运算硬件单元310,所述运算硬件单元 310被设置为向高动态范围运算操作(诸如像除、平方根、乘以及饱和分数信号处理的64位运算操作)提供硬件支持。运算硬件单元310可操作地耦合到硬件接口组件320,所述硬件接口组件320被设置为可操作地将运算单元310耦合到系统总线340或处理系统300的其它互连组件。以这样的方式,MCU核330能够通过系统总线340和硬件接口 320访问由运算硬件单元310提供的运算资源。
[0045]图4示意性地示出硬件接口组件320的示例的简化框图。图4中示出的硬件接口组件320包括多个编程可见寄存器:用于传递输入操作数的四个寄存器410到440和用于累加操作或从示出的示例中的运算硬件单元310取回输出结果的两个累加器/结果寄存器 450、460。硬件接口组件320进一步包括操作解码器组件470。在下文中描述的示例中,操作解码器组件包括用于由运算硬件单元310支持的运算操作集合的一个或多个布置的存储器映射地址范围。布置的存储器映射地址范围(一个或多个)可以被限定在存储在操作解码器组件470可访问的存储元件475内的查找表(LUT)内,在操作解码器组件470内硬线连接,或被以任何其它合适的方式限定。
[0046]布置的器件是实现地址范围操作的器件,以及施加‘布置’到在地址范围上执行的操作。布置可以被指定提供关于操作如何执行的语义信息。在本发明的示例的背景中,硬件接口组件320可以被考虑为布置的器件,由此,由运算硬件单元310支持的运算操作是存储器映射的,映射地址范围(或多个范围)包括操作布置。
[0047]图5示出布置的存储器映射地址范围510的示例。布置的存储器映射地址范围510 通常覆盖诸如地址520的多个地址。在示出的示例中,在布置的存储器映射地址范围510内的每个地址520包括标识被访问的寄存器的寄存器标识符(ID)组件530,例如标识图4中示出的示例中的寄存器410到460中的一个。布置的存储器映射地址范围510内的每个地址520进一步包括至少一个布置部分540,在示出的示例中的布置部分540包括操作布置。 图6示出代表用于由运算硬件单元310支持的运算操作集合的布置的存储器映射的一部分的示例的表。应当注意,图6中的表使用2数字数字标识符后缀表示64位寄存器。例如, A10指的是级联的{A1,A0}寄存器组合,X32指的是级联的{X3,X2}寄存器组合,等等。此夕卜,由于所有的寄存器是32位(4字节)值,所以低阶二字节地址位(地址位[1:0])总是 0以及因此没有被包括在表内。
[0048]图6中不出的布置的存储器映射的一部分显不用于64位平方根、32位X64位乘法以及64位/64位除法操作的映射。在图6中示出的示例中,地址位2到4被用来标识输入操作数和累加器/结果寄存器410到460,而地址位5到11被用来限定被执行的运算操作。以这样的方式,输入操作数和累加器/结果寄存器410到460对于每个运算操作在地址空间中被映射。
[0049]诸如饱和、数据限制和舍入的运算操作的附加属性还可以被映射在布置部分540 内。例如,可以在适当的情况下由地址位[11] = 1使能饱和。
[0050]在示出的示例中,通过在地址内使用较低有效位(即位2到4)映射输入操作数和累加器/结果寄存器410到460,输入操作数和累加器/结果寄存器410到460可以对于每个操作被连续地映射。此外,通过首先排序寄存器输入操作数寄存器的映射并以上升数字顺序排序,即X0、X1、X2、X3、A0、A1,这允许以地址寄存器的自动公告递增的间接寻址来使用存储器装载和存储多个指令,使硬件接口组件的计算吞吐量增加。
[0051]参考回图4,操作解码器组件470被设置为,在通过系统总线340收到对应于硬件接口组件320的布置的存储器映射地址范围的写入访问请求时,解码接收的写入访问请求的目标地址的寄存器标识符部分530,以标识输入操作数寄存器410到440中的一个,以及将接收的写入访问请求的数据装载到标识的输入操作数寄存器中。操作解码器组件470进一步被设置为解码接收的写入访问请求的目标地址的布置部分540,以标识将被执行的运算操作,以及配置运算单元以执行标识的运算操作,例如通过操作选择信号410。
[0052]可以想到以降序使用输入操作数寄存器410到440。以该方式,总是使用最高编号的输入操作数寄存器X3 440 (例如,如果只需要一个32位输入操作数,或者如果需要64位或更多输入操作数,则装载最后的输入操作数寄存器)。照此,将数据装载到输入操作数寄存器X3 440中可以被用作对于触发运算单元310以执行配置的运算操作的提示。因此,操作解码器组件470可以被设置为,在将数据装载到最后映射的输入操作数寄存器(即在示出的示例中的输入操作数寄存器X3 440)中时,触发运算单元310以执行配置的运算操作。
[0053]有利地,通过在硬件接口组件320内实现这样的布置的存储器映射,不需要执行用于选择和触发运算单元以执行需要的运算操作的附加访问,这是因为可以在将最后的输入操作数装载到最后映射的输入操作数寄存器中之后基本上立即触发和执行需要的运算操作。
[0054]图4中示出的硬件接口组件320的附加的特性包括,举例来说:
[0055](i)对输入操作数寄存器X0、X1和X2410、420、430的写入访问在系统总线340上从不停止;
[0056](ii)如果运算单元310忙于之前的计算,则可以停止对最后映射的输入操作数寄存器X3 440的写入访问,直到运算单元310完成操作以及在累加器/结果寄存器A0和A1 450、460中结果变为可用。
[0057](iii)在系统总线340上不停止对输入操作数寄存器X0、X1、X2和X3 410、420、 440、440的读取访问;
[0058](iv)可以停止对累加器/结果寄存器A0和A1 450、460的读取访问,直到运算单元310完成操作以及用刚刚新计算的值更新累加器/结果寄存器A0和A1 450、460。
[0059]如在上文中描述的硬件接口组件320允许发展简单、短和有效的软件包以装载操作数以及从存储器映射的运算单元310取回结果。
[0060]将64 = 64/64除法操作用作通过运算单元310执行的64位运算操作的示例。通过图4中示出的硬件接口组件310实现的64 = 64/64编程模型包括以下存储器映射的‘访问’:
[0061]1.ADDR(0x780)—NUMERAT0R_L// 将分子的最低有效 32 位写入到 X0
[0062]2.ADDR(0x784)—NUMERAT0R_H// 将分子的最高有效 32 位写入到 XI
[0063]3.ADDR(0x788)—DENOMINATORS// 将分母的最低有效 32 位写入到 X2
[0064]4.ADDR (0x78C)—DEN0MINAT0R_H//将分母的最高有效32位写入到X3,选择&触发64 = 64/64操作
[0065]5.QU0TIENT_L — ADDR (0x790) //从A0读取结果商的最低有效32位
[0066]6.QU0TIENT_H — ADDR (0x794) //从A1读取结果商的最高有效32位
[0067]注意,数据值的最低有效32位也被称为最低有效字(LSW)以及最高有效32位也被称为最高有效字(MSW)。
[0068]凭借在对输入操作数寄存器410到440的写入访问的地址位[11:5]中指定执行的运算操作类别,以及在将数据装载到最后映射的输入操作数寄存器(即示出的示例中的 X3 440)完成时触发的运算操作的执行,与图1中示出的现有技术的基本硬件接口 120相比,图4中示出的硬件接口组件320用每个特定的访问能够执行更多动作。另外,对于每个映射运算操作,输入操作数以及累加器/结果寄存器410到460在地址空间中连续地映射, 这允许以地址寄存器的自动公告递增的间接寻址使用装载和存储多个指令。
[0069]如将被本领域技术人员理解的,运算单元310可以支持对先前操作的结果执行的操作,例如对存储在累加器/结果寄存器450、460内的值执行的操作。可以通过对存储器映射的目标地址的读取访问来访问这样的操作,所述存储器映射的目标地址包括操作布置 540和寄存器标识符部分530,所述操作布置540限定对存储在累加器/结果寄存器450、 460内的一个或多个值执行的这样的操作,以及所述寄存器标识符部分530对应于累加器/ 结果寄存器450、460,将被用作输入操作数的结果值被存储在该累加器/结果寄存器450、 460内。例如,在解码接收的读取访问请求的目标地址的寄存器标识符部分530和操作布置部分540时,如果操作布置部分540对应于对累加器/结果寄存器450、460内存储的一个或多个值执行的操作,则操作解码器组件470可以被设置为配置运算单元310以对标识的累加器/结果寄存器450、460内存储的值来执行由目标地址的操作布置部分540标识的运算操作。在收到这样的读取访问请求时,可以在系统总线340上停止实际的读取访问,直到完成相应的运算操作以及将有效的结果值装载到累加器/结果寄存器450、460中。一旦有效的结果值已经被装载到累加器/结果寄存器450、460中,可以通过将相应的累加器/结果寄存器450、460内的计算的结果值传输到系统总线340上完成实际的读取访问。
[0070]除了提供对通过运算单元310支持的运算操作的访问之外,硬件接口组件320进一步被设置为通过累加器/结果寄存器450、460的读取访问使这样的操作的结果(存储在累加器/结果寄存器450、460内)变得可用。例如,操作解码器组件470可以被设置为,在通过系统总线340接收到读取访问请求时,解码接收的读取访问请求的目标地址以标识编程可见寄存器中的至少一个(例如,累加器/结果寄存器450、460中的一个),以及将标识的编程可见寄存器内的数据传输到系统总线340。在一些示例中,操作解码器组件470可以被设置为停止系统总线操作直到有效数据出现在标识的编程可见寄存器内,以及在有效数据出现在标识的编程可见寄存器内时,从标识的编程可见寄存器传输数据到系统总线340。
[0071]现在参考图7和8,示出在例如可以被实现在图4中示出的硬件接口组件320内的处理系统的互连组件和运算单元之间接口的方法的示例的简化流程图700、800。
[0072]首先参考图7,方法的该部分在705处开始,收到通过处理系统的互连组件接收的写入访问请求。在710处随后确定,是否接收的写入访问请求包括在硬件接口组件的布置的存储器映射的地址范围(一个或多个)(或该地址范围中的一个)内的目标地址。如果确定接收的写入访问请求不包括在硬件接口组件的布置的存储器映射的地址范围(一个或多个)内的目标地址,在760处,方法结束。然而,如果确定接收的写入访问请求包括在硬件接口组件的布置的存储器映射的地址范围(一个或多个)内的目标地址,方法移到715, 在那里,解码目标地址的寄存器标识符部分以标识在硬件接口组件内的寄存器,将接收的写入访问的数据写入到该寄存器中,例如在图4中将数据写入到输入操作数寄存器410到 440中的哪一个寄存器中。在720处,随后将接收的写入访问的数据装载到标识的寄存器中。在示出的示例中,方法随后包括确定在其内装载数据的标识的寄存器是否包括最后映射的输入操作数寄存器(例如在图4中示出的示例中的寄存器X3 440)。如果确定标识的寄存器不是最后映射的输入操作数寄存器,则在760处方法结束。相反地,如果确定标识的寄存器是最后映射的输入操作数寄存器,则方法移到735,在那里,解码接收的写入访问请求的目标地址的布置部分以标识将被执行的运算操作。在740处,随后配置运算单元(AU) 设置,以配置运算单元对硬件接口组件的输入操作数寄存器内存储的输入操作数执行标识的运算操作。在745处,随后触发运算单元以执行配置的运算操作。在750处,从运算单元接收运算操作的结果,以及在755处,将结果装载到一个或多个结果寄存器中。随后方法在 760处结束。
[0073]现在参考图8,方法的该部分在805处开始,收到通过处理系统的互连组件接收的读取访问请求。在810处随后确定,是否接收的读取访问请求包括在硬件接口组件的布置的存储器映射的地址范围(一个或多个)(或该地址范围中的一个)内的目标地址。如果确定接收的读取访问请求不包括在硬件接口组件的布置的存储器映射的地址范围(一个或多个)内的目标地址,在870处,方法结束。然而,如果确定接收的读取访问请求包括在硬件接口组件的布置的存储器映射的地址范围(一个或多个)内的目标地址,方法移到815,在那里,解码接收的读取访问请求的目标地址的寄存器标识符部分以标识在硬件接口组件内将从其中读取数据的寄存器,例如从结果寄存器450到460中的哪一个寄存器数据被传输到图4中的系统总线340上。在示出的示例中,在820处,解码接收的读取访问请求的目标地址的布置部分。在825处,随后确定在标识的寄存器内有效数据是否存在。如果例如基于标识的寄存器的有效数据标志是否未置位而确定在标识的寄存器内有效数据不存在,则在830处方法停止总线操作,直到有效数据出现在标识的寄存器内(例如,直到对于标识的寄存器,有效数据标志被置位)。当确定有效数据在标识的寄存器内出现时,方法移到835, 在那里基于目标地址的解码的布置部分确定是否需要对标识的寄存器内的数据执行运算操作。
[0074]如果确定不需要对标识的寄存器内存储的数据执行运算操作,方法跳到860,在那里,将标识的寄存器内的数据传输到系统互连的数据总线组件,以及在870处方法结束。 然而,在835处,如果确定需要对在标识的寄存器内存储的数据执行运算操作,则方法移到840,在那里,运算单元(AU)设置被配置为配置运算单元,以对硬件接口组件的标识的寄存器内存储的数据执行需要的运算操作。在850处,随后触发运算单元执行配置的运算操作。 在示出的示例中,方法随后循环返回到825。
[0075]在前述说明书中,已经参考本发明的实施例的具体示例而描述了本发明。然而,将明显的是可以在没有脱离如所附权利要求中陈述的本发明的范围的情况下在其中进行各种修改和变化,以及权利要求不限于上面描述的特定的示例。
[0076]如在此所讨论的连接可以是例如通过中间装置适合于传输来自相应的节点、单元或装置的信号或者传输至相应的节点、单元或装置的信号的任何类型的连接。因此,除非暗指或者另外声明,连接例如可以是直接连接或者间接连接。可以将连接参考为单独连接、多个连接、单向连接或者双向连接来示出或者描述。然而,不同的实施例可以改变连接的实现方式。例如,可以使用单独的单向连接而不是双向连接,并且反之亦然。同时,可以用串行地或者以时分多路复用的方式传输多个信号的单连接来替换多个连接。同样地,携载多个信号的单独连接可以被分出到携载这些信号的子集的各种不同的连接中。因此,对于传输信号存在多种选择。
[0077]虽然在示例中已经描述特定的导电类型或者电势极性,但是应当明白,导电类型以及电势极性可以被反向。
[0078]在此描述的每个信号可以被设计为正或者负逻辑。在负逻辑信号的情况下,信号是低电平有效,其中逻辑真状态对应于逻辑电平零。在正逻辑信号的情况下,信号是高电平有效,其中逻辑真状态对应于逻辑电平一。注意,可以将在此描述的任何信号设计为或者负或者正逻辑信号。因此,在可替代实施例中,被描述为正逻辑信号的信号可以被实现为负逻辑信号,以及那些被描述为负逻辑信号的信号可以被实现为正逻辑信号。
[0079]此外,当分别指的是将信号、状态位或者类似设备译成其逻辑真或者逻辑假状态时,在此使用术语“有效”或者“设置”和“否定”(或者“无效”或者“清除”)。如果逻辑真状态是逻辑电平一,则逻辑假状态是逻辑电平零。以及如果逻辑真状态是逻辑电平零,则逻辑假状态是逻辑电平一。
[0080]本领域技术人员将认识到在逻辑块之间的边界仅仅是示例性的而可替代实施例可以合并逻辑块或电路元件或者强迫可替代的分解各种逻辑块或电路元件上的功能。因此,应当理解,在此描绘的体系结构仅仅是示例性的,而事实上可以实现达到相同功能的许多其它体系结构。例如,在示出的示例中,已经关于运算单元将硬件接口组件示出和描述为单独的功能组件。然而应当明白,硬件接口组件和运算单元可以被实现为集成组件。
[0081]任何获得相同功能的组件的设置被有效地‘关联’,以致获得期望的功能。因此,在此结合来达到特定功能的任何两个组件可以被视为彼此“相联系”使得达到期望的功能,而不管体系结构或者中间组件。同样地,任何这样联系的两个组件还可以被看作彼此‘可操作地连接’或者‘可操作地耦合’以获得期望的功能。
[0082]此外,本领域技术人员将认识到在以上所述描述的操作之间的边界仅仅是说明性的。多个操作可以被结合成单个操作,单个操作可以被分配在附加的操作中,以及可以在时间上至少部分地重叠地执行操作。此外,可替代实施例可以包括特定操作的多个实例,并且在各个其它实施例中可以改变操作的顺序。
[0083]还例如,示例或其部分可以被以任何适当类型的硬件描述语言实现为代表物理电路或者代表能转变为物理电路的逻辑表示的软件或者代码。
[0084]并且,本发明不限于以非可编程硬件实现的物理设备或者单元,而是还可以应用于通过根据合适的程序代码操作的能够执行期望的设备功能的可编程装置或者单元,诸如大型机、小型机、服务器、工作站、个人计算机、笔记本、个人数字助理、电子游戏机、汽车以及其它嵌入式系统、蜂窝电话以及各种其它的无线装置,在本申请中通常表示为‘计算机系统,。
[0085]然而,其它修改、变化和替换物也是可能的。因此,说明书和附图要被当作是示例性的而不是限制性的。
[0086]在权利要求中,置于括号内的任何参考标记不应该被认为是限制权利要求。词‘包括’不排除在权利要求中列出的那些之外的其它元件或者步骤的存在。此外,如在此使用的术语或‘一个’被定义为一个或多于一个。此外,即使当同一权利要求包括引导短语‘一个或更多个"或"至少一个"以及不定冠词(例如‘一’或‘一个")时,在权利要求中使用引导短语(introductory phrase)(例如,“至少一个”和“一个或更多个”)也不应该被解释为暗示由不定冠词“一”或“一个”引导的另一个权利要求要素把包含这样引入的权利要求要素的任何特定权利要求限制为仅仅包含一个这样的要素的发明。这也适用于定冠词的使用。除非另有说明,诸如‘第一’和‘第二’的术语被用来任意地区分这样的术语描述的元件。因此,这些术语不一定意图指示这种元件的时间的或其它的优先级。在互相不同的权利要求中叙述某些测量值的名义事实不表示这些测量值的组合不能被有利地利用。
【主权项】
1.一种硬件接口组件,被设置为可操作地将至少一个运算单元耦合至处理系统的互连 组件,所述硬件接口组件包括:多个编程可见寄存器;以及至少一个操作解码器组件,其中所述至少一个操作解码器组件被设置为,在通过互连组件收到对应于所述硬件接 口组件的布置的存储器映射的地址范围的写入访问请求时:基于所述布置的存储器映射的地址范围解码所接收的写入访问请求的目标地址的寄 存器标识符部分,以标识所述编程可见寄存器中的至少一个;基于所述布置的存储器映射的地址范围解码所接收的写入访问请求的目标地址的布 置部分,以标识将被执行的运算操作;以及配置所述运算单元以对所标识的至少一个编程可见寄存器内的至少一个输入操作数 执行所标识的运算操作。2.根据权利要求1所述的硬件接口组件,其中所述寄存器标识符部分被映射在所接收 的写入访问请求的目标地址的较低有效位内,以及所述布置部分被映射在所接收的写入访 问请求的目标地址的较高有效位内。3.根据权利要求2所述的硬件接口组件,其中每个运算操作包括在硬件接口组件的布 置的存储器映射的地址范围内的地址空间,以及所述编程可见寄存器被映射在对于每个运 算操作的地址空间内。4.根据前述权利要求中的任何一个所述的硬件接口组件,其中所述编程可见寄存器对 于每个运算操作被连续地映射在所述硬件接口组件的布置的存储器映射的地址范围内。5.根据前述权利要求中的任何一个所述的硬件接口组件,其中所述编程可见寄存器包 括至少一个输入操作数寄存器和至少一个累加器/结果寄存器。6.根据权利要求5所述的硬件接口组件,其中通过首先并且以上升的数字顺序排序所 述输入操作数寄存器来将所述编程可见寄存器映射在硬件接口组件的布置的存储器映射 的地址范围内。7.根据权利要求6所述的硬件接口组件,其中所述编程可见寄存器包括被设置为以降 序使用的多个输入操作数寄存器。8.根据权利要求7所述的硬件接口组件,其中至少一个操作解码器组件被设置为,在 通过互连组件收到对应于硬件接口组件的布置的存储器映射的地址范围的写入访问请求 时:基于布置的存储器映射的地址范围解码所接收的写入访问请求的目标地址的寄存器 标识符部分,以标识所述编程可见寄存器中的至少一个;如果所标识的至少一个标识的编程可见寄存器包括输入操作数寄存器,则将用于所接 收的写入访问请求的数据装载到所标识的至少一个编程可见寄存器中;基于布置的存储器映射的地址范围解码所接收的写入访问请求的目标地址的布置部 分,以标识将被执行的运算操作;以及配置所述运算单元以对所标识的至少一个编程可见寄存器内的至少一个输入操作数 执行所标识的运算操作。9.根据权利要求7所述的硬件接口组件,其中所述至少一个操作解码器组件被设置为,在通过所述互连组件收到对应于所述硬件接口组件的布置的存储器映射的地址范围的 写入访问请求时:解码所接收的写入访问请求的目标地址的寄存器标识符部分,以标识所述编程可见寄 存器中的至少一个;如果所标识的至少一个标识的编程可见寄存器包括输入操作数寄存器,则将用于所接 收的写入访问请求的数据装载到所标识的至少一个编程可见寄存器中;确定所标识的至少一个编程可见寄存器是否是最后映射的输入操作数寄存器;以及如果确定所标识的至少一个编程可见寄存器是最后映射的输入操作数寄存器,则解码 所接收的写入访问请求的目标地址的布置部分,以标识将被执行的运算操作,以及配置所 述运算单元以执行所标识的运算操作。10.根据权利要求7所述的硬件接口组件,其中至少一个操作解码器组件被设置为,在 通过所述互连组件收到对应于所述硬件接口组件的布置的存储器映射的地址范围的读取 访问请求时:解码所接收的读取访问请求的目标地址的寄存器标识符部分,以标识所述编程可见寄 存器中的至少一个;基于所布置的存储器映射的地址范围解码所接收的读取访问请求的目标地址的布置 部分,以确定是否对在所述至少一个标识的编程可见寄存器内存储的数据执行运算操作; 以及如果确定对所述至少一个标识的编程可见寄存器内存储的数据执行运算操作,则配置 所述运算单元以对所标识的至少一个编程可见寄存器内的至少一个输入操作数执行所标 识的运算操作。11.根据前述权利要求中的任何一个所述的硬件接口组件,其中所述至少一个操作解 码器组件被设置为,在通过所述互连组件收到对应于所述硬件接口组件的布置的存储器映 射的地址范围的读取访问请求时:解码所接收的读取访问请求的目标地址,以标识所述编程可见寄存器中的至少一个;以及将所述至少一个标识的编程可见寄存器内的数据传输到所述互连组件。12.根据权利要求11所述的硬件接口组件,其中所述至少一个操作解码器组件被设置 为,在通过所述互连组件收到对应于所述硬件接口组件的布置的存储器映射的地址范围的 读取访问请求时:解码所接收的读取访问请求的目标地址,以标识所述编程可见寄存器中的至少一个;停止总线操作直到在所标识的至少一个编程可见寄存器内出现有效数据;以及在所标识的至少一个编程可见寄存器具有在其中储存的有效数据时,将所述至少一个 标识的编程可见寄存器内的数据传输到所述互连组件。13.根据前述权利要求中的任何一个所述的实现在集成电路装置内的硬件接口组件, 包括在单个集成电路封装内的至少一个管芯。14.一种处理系统,包括根据前述权利要求中的任何一个的至少一个硬件接口组件。15.根据权利要求14所述的处理系统,其中所述处理系统是包括处理器核心以及数学 协处理器的微处理器,以及其中所述硬件接口组件被设置为可操作地将所述处理器核心耦合到所述数学协处理器。16.根据权利要求15所述的处理系统,其中在所述微处理器中是微控制器。17.根据权利要求14-16中任何一个所述的处理系统,包括系统总线,以及其中所述硬 件接口组件将所述运算单元耦合到所述系统总线。18.—种电力计量系统,包括根据权利要求14-17中任何一个所述的处理系统。19.一种在处理系统的互连组件和运算单元之间接口的方法,所述方法包括,在硬件接 口组件内包括多个编程可见寄存器:通过所述互连组件接收对应于硬件接口组件的布置的存储器映射的地址范围的写入 访问请求;基于所布置的存储器映射的地址范围解码所接收的写入访问请求的目标地址的寄存 器标识符部分,以标识所述编程可见寄存器中的至少一个;基于所布置的存储器映射的地址范围解码所接收的写入访问请求的目标地址的布置 部分,以标识将被执行的运算操作;以及配置所述运算单元以对在所标识的至少一个编程可见寄存器内的至少一个输入操作 数执行所标识的运算操作。
【文档编号】G06F9/30GK105988773SQ201510069258
【公开日】2016年10月5日
【申请日】2015年2月10日
【发明人】M·米恩基纳, J·C·西尔塞罗, 梅汪生, 肖
【申请人】飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1