首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

存储器加载和算术加载单元(ALU)融合 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:三星电子株式会社

摘要:根据一个总体方面,加载单元可以包括:加载电路,被配置为从存储器加载至少一个数据。所述加载单元可以包括:对齐电路,被配置为对齐所述数据以生成对齐后的数据。所述加载单元还可以包括:数学运算执行电路,被配置为将所述至少一个数据作为操作数而生成预定数学运算的结果。其中,所述加载单元被配置为,如果活动指令与所述预定数学运算相关联,则旁路所述对齐电路并将所述数据直接输入到所述数学运算执行电路。

主权项:1.一种加载单元,包括:加载电路,被配置为从存储器加载至少一个数据;对齐电路,被配置为对齐所述数据以生成对齐数据;数学运算执行电路,被配置为生成预定数学运算的结果,其中所述数据作为操作数;并且其中,所述加载单元被配置为,如果活动指令与所述预定数学运算相关联,则旁路所述对齐电路并将所述数据直接输入到所述数学运算执行电路。

全文数据:存储器加载和算术加载单元ALU融合[_1]相关申请的交叉引用[0002]本申请要求于2017年3月14日提交的标题为“MEMORYLOADANDARITHMETICLOADUNITALUFUSING”的美国临时专利申请No•62471,353以及2017年6月2日提交的标题为“MEMORYLOADANDARITHMEHCLOADUNITALUFUSING”的美国专利申请No.15612,963的优先权,在先申请的内容通过引用合并于此。技术领域[0003]本说明书涉及计算机体系结构,并且更具体地涉及存储器加载和算术加载单元ALU融合体系结构。背景技术[0004]处理器例如中央处理单元CPU或核执行各种类型的指令。两种典型的指令类型包括存储器加载LD指令和算术或数学指令例如加法ADD指令。通常,为了实现高性能的处理器执行,希望保持这些指令的延迟(lateney较小。[0005]加载指令或运算通常在与一级数据(L1D高速缓存直接接口的加载存储单元LSU中执行。而数学运算例如,ADD通常在算术逻辑单元ALU或其他数学执行单元例如,浮点单元FPU中执行。[0006]大多数处理器中的加载指令的延迟通常在3到5个周期之间变化。通常,这样的多周期延迟包括各种复杂运算,这些运算包括例如转换后备缓冲器TLB地址查找、L1D高速缓存标签索引查找、标签物理地址比较、L1D高速缓存数据读取以及数据值的对齐更新。由于数据经常从对齐到特定字节边界例如特定字长的数据高速缓存中读出,所以经常涉及对齐更新。然而,实际请求的存储器地址可能不发生在该预定义的字节边界处例如,它可能发生在一个字的中途。[0007]因此,从高速缓存中读出的数据可能需要以某种方式进行移位以得到适当的对齐,从而满足加载指令。在对齐阶段也可以对数据进行其他操作,包括符号扩展和大端小端操作。[0008]同样,数学指令或运算从开始到结束可以具有其自己的延迟。例如,ADD指令通常具有单周期延迟来执行加法。[0009]在某些体系结构中,以下情况很常见的:加载指令对寄存器值进行更新,该寄存器值稍后用作后续ADD指令的源。处理器可以执行将存储器读取操作用作源操作数的算术运算。通常,加载和数学指令的延迟是各单独指令的各单独延迟的总和。发明内容[0010]根据一个总体方面,加载单元可以包括:加载电路,被配置为从存储器加载至少一个数据。所述加载单元可以包括:对齐电路,被配置为对齐所述数据以生成对齐数据。所述加载单元还可以包括:数学运算执行电路,被配置为将所述至少一个数据作为操作数而生成预定数学运算的结果。其中,所述加载单元被配置为,如果活动指令与所述预定数学运算相关联,则旁路所述对齐电路并将所述数据直接输入到所述数学运算执行电路。[0011]根据另一个总体方面,系统可以包括:数学执行单元,包括组合逻辑电路并且被配置为基于指令和至少一个数据来进行多个逻辑运算。该系统还可以包括组合式加载-存储数学单元。该组合式加载-存储数学单元被配置为:从存储器加载数据,并且基于活动指令,基于所述数据进行所述多个逻辑运算中的预定的一个逻辑运算。该系统可以被配置为:如果所述活动指令至少与所述多个逻辑运算中的所述预定的一个逻辑运算相关联,则分配所述指令由所述组合式加载-存储数学单元而不是由所述数学执行单元来执行。[0012]根据另一个总体方面,一种使用加载单元的方法可以包括:[0013]从存储器加载数据。该方法可以包括至少部分地基于活动指令来确定是将所述数据传送给执行单元还是在所述加载单元内基于所述数据生成结果。其中,如果将所述数据传送给执行单元,则在传送所述数据之前对齐所述数据。其中,如果确定要生成结果,则生成所述数据的多个对齐,并且基于所述数据的多个对齐中的至少一个生成预定数学运算的结果。[0014]在附图和以下描述中阐述了一个或多个实现方式的细节。其他特征将通过说明书和附图以及权利要求而变得显而易见。[0015]用于计算机体系结构(更具体地,存储器加载和算术加载单元ALU融合体系结构)的系统和或方法基本上如结合至少一个附图所示和或所描述的那样,并且如权利要求中更完整地阐述的那样。附图说明[0016]图1是根据本公开内容的系统的示例实施例的框图。[0017]图2是根据本公开内容的系统的示例实施例的框图。[0018]图3是根据本公开内容的系统的示例实施例的框图。[0019]图4是根据本公开内容的系统的示例实施例的框图。[0020]图5是信息处理系统的示意性框图,可以包括根据本公开内容的原理形成的器件。[0021]在各个附图中,类似的附图标记表示类似的元素。具体实施方式[0022]下面将参照附图更全面地描述各种示例实施例,在附图中示出了一些示例实施例。然而,本公开内容可以按多种不同形式来体现,并且不应当被解释为受到本文阐述的示例实施例的限制。更确切地说,提供这些示例实施例使得本公开将全面和完整,并且将本公开内容的范围充分传达给本领域技术人员。在附图中,为了清楚起见,可以夸大层和区域的尺寸和相对尺寸。[0023]将理解的是,当一元件或层被称为在另一元件或层“上”、“连接到”或“耦接到”另一元件或层时,其可以直接在该另一元件或层上、直接连接到或耦接到该另一元件或层,或者可以存在中间元件或层。相反,当一元件被称为“直接在”另一元件或层“上”、“直接连接到”或“直接耦接到”另一元件或层时,不存在中间元件或层。贯穿附图,类似标记表示类似元件。如本文所用,术语“和或”包括关联列出的一个或更多个项目的任意和所有组合。[0024]将理解,虽然本文中可以使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和或部分,但是这些元件、组件、区域、层和或部分不应受这些术语限制。这些术语仅用于将一•个元件、组件、区域、层或部分与另个区域、层或部分加以区分。因此,以下讨论的第一元件、组件、区域、层或者部分可被称为第二元件、组件、区域、层或者部分,而不脱离本公开内容的教导。[0025]在此可能使用空间相对术语如”下方”、”之下”、”下”、”上方”、”上”等,以便于描述一个元件或特征相对于另一元件或特征在附图中示出的关系。将理解的是,空间上的相对术语除了包括附图中示出的方向之外,还意在包含设备在使用中或操作中的不同方向。例如,如果附图中的设备被翻转,则被描述为在其他元件或者特征〃下方〃或者〃之下〃的元件将被定向在其他元件或者特征的〃上方〃。因此,示例术语“下方”可以涵盖上方和下方两种取向。所述设备可以以其他方式定向(旋转9〇度或在其他方向),且可以相应地解释本文中使用的空间相对描述符。[0026]本文所用的术语仅是为了描述特定示例实施例,而不意在限制本公开内容。如本文中使用的,单数形式“一”、“一个”和“该”意在还包括复数形式,除非上下文明确地给出相反的指示。还应该理解,术语“包括”和或“包含”在本说明书中使用时,表明存在所述的特征、整体、步骤、操作、元件和或部件,但是并没有排除存在或另外添加一个或多个其它特征、整体、步骤、操作、元件、部件和或其组合。[0027]例证实施方案在本文中是参考剖面图示描述的,所述剖面图示是理想化的例证实施方案和中间结构)的示意图。因此,例如由于制造技术和或公差造成的所图示的形状的变化将被预期。因而,不应该将示例实施例解释为局限于这里所示的具体区域形状,而应包括例如由于制造而导致的形状偏差。例如,所示为矩形的注入区域将典型地具有圆形的或者弯曲的特征和或在其边缘处的注入浓度的梯度,而不是从注入区域至未注入区域的二元变化。同样地,由注入形成的埋入区域可以导致在埋入区域和通过其进行所述注入的表面之间的区域中的一些注入。因此,图中所示的区域实际上是示意性的,并且它们的形状不意在图示器件区域的实际形状并且不意在限制本公开内容的范围。[0028]除非另外定义,否则这里使用的所有术语包括技术和科学术语具有与本公开内容所属领域的普通技术人员通常所理解的含义相同的含义。还应理解,诸如在常用词典中定义的术语等的术语应被解释为其含义与在相关技术的上下文中的含义相一致,而不应将其解释为理想的或过于正式的含义,除非本文明确如此定义。[0029]在下文中,将参考附图详细说明示例实施例。[0030]图1是根据本公开内容的系统100的示例实施例的框图。在所示实施例中,系统1〇〇是流水线处理器的简化架构图。可以理解的是,以上仅仅是一个说明性示例,本公开内容不限于此。[0031]在所示实施例中,系统100可以包括指令获取单元(IFU102JFU102可以被配置为获取或加载指令150。在这样的流水线实施例中,由给定单元例如,IFU102和指令解码单元IDU104实行或处理的指令150可以被称为该单元的活动指令。[0032]系统100还可以包括IDU104,其被配置为对活动指令进行解码并且确定系统1〇〇应该如何路由或处理该指令。在所示实施例中,指令lf50可以是简单的数学指令,并且可能需要将从存储器加载的数据作为数学运算的操作数,并由数学执行单元处理以产生结果。[0033]在所示实施例中,系统100可以包括算术逻辑单元ALU108。然而,在其他实施例中,系统100的不同版本可以涉及其他未示出的流水线级或单元,诸如例如单指令多数据SIMD级、多累加级、数据移动(例如,加载和存储)。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0034]在所示实施例中,系统100可以包括加载-存储单元LSU106OLSU106可以被配置为执行包括以下在内的多种操作:从存储器例如,存储器112加载数据并且将数据存储回存储器112或存储到系统100内的寄存器例如,作为其他单元的一部分的寄存器198。[0035]在更传统的系统中,如上所述,LSU106对齐或配置和校正数据的格式化例如,符号扩展和端序操作endianoperation,然后将对齐数据156传递给数学执行单元。在所示实施例中,数学执行单元可以包括算术逻辑单元ALU108。这里,术语“对齐数据156”是指已经由LSU106调节或处理的任何数据,而不管是否对数据进行了对齐、符号扩展、端序校正、类似处理、或是仅仅检查以确定这样的处理并非必需。[0036]在所示实施例中,ALU108可以被配置为对数据进行多个数学运算例如,加法、减法、乘法和除法并产生结果158。给定指令150可以确定要对数据进行这些数学运算中的哪一运算例如,加法指令)。在一些实施例中,活动指令例如ADD可能需要两个或更多个操作数。在这样的实施例中,任何其他操作数可能已经加载并放置在ALU108可以存取的寄存器例如,寄存器198中。[0037]在所示实施例中,ALU108然后可以将结果158传递给回写WB单元1HKWB110可以被配置为将结果159写回到存储器112或另一个寄存器。在各种实施例中,WB单元11〇可以是LSU106。在另一个实施例中,WB单元110可以是ALU108。在又一个实施例中,WB单元110可以包括完全独立的单元。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0038]在各种实施例中,每个单元所花费的处理时间可以变化。例如,尽管(出于说明性目的)显示为五个流水线级,但是在一些体系结构(例如,先进RISC机器ARM处理器)中,IFU102级可能花费2-3个时钟周期,LSU106可能包括一个或多个读取时钟周期和一个对齐或移位时钟周期2个或更多个总时钟周期),ALU108可能花费2个时钟周期例如,运算和饱和)。因此,作为非限制性示例,由LSU106和ALU108引起的延迟可能包括4个时钟周期。另外,从LSU106到ALU108的数据传递可能涉及将该数据156从处理器的一端传送到处理器的另一端。[0039]在所不实施例中,LSU1〇6可以包括用于进行一个或多个数学运算的能力或电路。具体而言,LSU1〇6可以被配置为进行也可以由ALU108进行的一个或多个数学运算。在这样的实施例中,LSU1〇6可以被称为组合式加载-存储数学单元、或内部集成有小型ALU的LSU〇[0040]在这样的实施例中,如果活动指令是指示数据15f5将被用作可以由LSU106进行的数学运算的操作数的指令,则LSU1〇6可以旁路或避开许多如上所述的多个传统动作,并简单地自行生成结果157。[0041]如将参照其他附图更详细描述的,在这样的实施例中,如上所述,LSU106可以加载或获取数据I55。在节省传送对齐数据的带宽的较慢实施例中而不是如接下来描述的较快实施例那样节省延迟,LSU106接着可以如上所述对齐数据。LSU1〇6然后可以使用其内部的数学运算执行电路例如,组合逻辑块或电路199,进行针对对齐数据156的数学运算f例如,ADD以产生结果157。该结果K7可以传送给WB单元11〇。在一些实施例中,如果冊单元110是LSU106在本实施例中有可能但不一定是这种情况),则该传送可以是概念性的而不是物理性的。WB单元110然后可以存储结果157,作为所示出的结果159。在这样的实施例中,可以节省传送对齐数据156所涉及的带宽,并且如果数学运算简单且涉及比ALU108将使用的周期少的周期,则在LSU106中执行运算可以节省一些延迟。[0042]_在另一个更快的实施例中,LSU1〇6可以被配置为跳过、旁路或避开对齐运算节省该运算的延迟,例如时钟周期)。相反,在这样的实施例中,LSU106可以对未对齐的数据lf55进行数学运算。LSU106然后可以生成结果IK并且再次完全旁路ALU108。在这样的实施例中,传送对齐数据156的带宽以及ALU108周期和LSU106的对齐周期的延迟都可以被节省。在这样的实施例中,用于对齐的周期可以花费在计算数学运算上。[0043]在一个实施例中,活动指令可以确定数学运算是由LSU106还是ALU108进行。在一些实施例中,LSU106可以检查活动指令并且确定它是否符合能够由LSu106执行的数学运算。如果是,则LSU1〇6可以简单地进行该运算而不是将其传递给ALU108。[0044]在另一个实施例中,(LSU106的)外部单元例如,IDU1〇4可以确定指令应该由LSU1〇6还是ALU1〇8执行。在一个这样的实施例中,IDU104可以基于单个指令进行该确定,或者在另一个实施例中,IDU104可以基于多个相关指令例如,加载指令后跟使用相同数据的加法指令,或寄存器拥塞进行该确定。[0045]在又一个实施例中,组合式指令例如,组合的L0AD-ADD指令可以指示将使用LSU106,而分离的指令例如,LOAD指令后跟ADD指令可以指示将使用ALU108。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0046]在所示实施例中,尽管单元例如,IFU102、LSU106被称为“单元”,但应该理解的是它们是电路。并且每个单元包括逻辑上组合在一起以执行一个或多个任务或运算的一组电路。(例如,获取指令、进行数学运算)。类似地,每个单元包括也作为电路的多个组合逻辑块CLB199«XLB1"是执行更原始的任务或运算例如,将两个操作数加在一起、对齐数据的更小的电路组合。[0047]此外,尽管所示实施例示出了ALU108被旁路或被部分地集成到LSU106中),但是应该理解,本公开内容不限于任何一个执行单元或者甚至一个数学执行单元。在各种实施例中,LSU106可以被配置为进行由另一个执行单元例如浮点单元或图形单元进行的一个或多个运算。类似地,虽然运算被集成到LSU106中,但本公开不限于具有存储数据的能力的单元,可以仅包括加载数据的单元。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0048]此外,虽然为了简化和说明的目的,本文使用加法ADD运算作为示例性数学运算,但是可以理解的是,其他实际上任何数学或非数学运算都可以被集成到LSU106中。尽管使用ALU中的ADD指令来描述本公开,但是可以理解的是,本系统和方法可以扩展为包括由ALU或另一个数学执行单元执行的其它类型的算术运算例如,减法、进位加、借位减、二进制补码、递增、递减和通过)、逻辑移位、循环移位和按位操作,而不偏离本公开的范围。[0049]图2是根据本公开内容的系统200的示例实施例的框图。在各种实施例中,如上所述,系统200可以包括加载-存储单元或组合式加载-存储数学单元。可以理解的是,以上仅1乂是一个说明性示例,本公开内容不限于此。[0050]在所示实施例中,系统200可以包括或存取诸如数据高速缓存202的存储器。在各种实施例中,系统200可以从数据高速缓存202检索、读取、获取或加载数据210。在所示实施例中,数据210可以包括128位字;尽管可以理解的是,以上仅仅是一个说明性示例,本公开内容不限于此。[0051]在各种实施例中,系统200可以包括对齐电路204。在一些实施例中,对齐电路204可以被配置为进行如上所述的字对齐。在另一个实施例中,对齐电路204还可以或可选地进行一个^多个附加的数据调节服务,例如符号扩展或端序操作。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0052]对齐电路2〇4可以产生或生成对齐数据216。在各种实施例中,加载数据210的动作可以花费第一时钟周期或流水线级,(经由对齐电路204对齐的动作可以花费第二时钟周期或流水线级。可以理解的是,以上仅仅是一个说明性示例,本公开内容不限于此。[0053]在所示实施例中,系统200还可以包括数学运算执行电路201。在这样的实施例中,系统200可以基本上并行地驱动这两个电路对齐电路204和数学运算执行电路201。在各种实施例中,系统200可选择驱动对齐电路204或数学运算执行电路201,并分别使数学运算执行电路201或对齐电路204停止或进入休眠(或处于低功率模式)。如上所述,这可以基于活动指令或来自外部单元例如,IDU的信号来进行。在另一个实施例中,对齐电路204和数学运算执行电路201两者可以计算它们各自的结果216和214,并且可以简单地忽略无用的结果。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0054]在所示实施例中,数学运算执行电路2〇1可以被配置为进行预定的数学运算,例如加法。在这样的实施例中,该运算可以将数据210或其一个版本作为输入操作数并输出结果214。在各种实施例中,该运算可能需要第二或更多操作数。在这样的实施例中,可以经由寄存器未示出或第二加载操作来提供操作数250。[0055]在所示实施例中,数学运算执行电路201可以包括多个组合逻辑电路例如,加法器206A、2〇6B、2〇6C和2〇6D。在这样的实施例中,这些组合逻辑电路可以基本相同,使得它们全部进行相同的数学运算。这些组合逻辑电路可以并行布置,使得它们可以全部基本同时地计算其各自的结果例如,结果212A、212B、212C和212D。[0056]在所示实施例中,如果数据210跳过或旁路对齐电路204,则数据210可能未被正确对齐。因此,如果给定的组合逻辑电路对未对齐的数据进行运算,则结果可能不正确。为了补偿这一点,数学运算执行电路201可以对多个版本的数据210进行运算。数据201的每个版本可以以不同的方式对齐。这些版本中的一个将是数据210的正确对齐版本。使用该数据210的正确对齐版本的组合逻辑电路将产生正确的结果,而来自其他组合逻辑电路的结果将被忽略。[0057]在所示实施例中,使用四个加法器206A、2〇6B、2〇6C和2〇6D。同样,数据210的四个对齐变体被馈送到各加法器。可以理解的是,以上的数量四仅仅是一个说明性示例,本公开内容不限于此。[0058]第一对齐版本210A与未对齐数据相同,位127-0具有未改变的顺序。对齐版本210B己经将数据210循环移位了32位,使得位31-0现在是最高有效位MSB,并且位127-32相应地移位。对齐版本210C已经将数据210循环移位了64位,使得位63-〇现在是最高有效位MSB,并且位127_64相应地移位。对齐版本2i〇D已经将数据210循环移位了96位,使得位95-0现在是最高有效位MSB,并且位127-96相应地移位。版本210A、210B、210C和210D分别被输入到加法器206A、206B、206C和206D。加法器206A、206B、206C和206D取得其数据210的版本和第二操作数250,对它们进行加法,并分别输出候选结果212A、212B、212C和212D。[0059]在所示实施例中,数学运算执行电路2〇1可以包括选择器电路208例如,多路复用器MUX。在这样的实施例中,选择器电路2〇8可以被配置为在候选结果212A、212B、212C和212D之间进行选择以便选出最终结果214。在各种实施例中,这可以经由选择信号252来完成。[0060]在一些实施例中,对齐电路204可以与数学运算执行电路201并行地操作。在这样的实施例中,在加法器完成其结果的计算之前,对齐电路204可能已经确定了数据210的正确对齐应该是什么。在这样的实施例中,对齐电路2〇4然后可以生成或提供选择信号252。在另一个实施例中,选择信号252可以由另一个电路未示出)产生。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0061]在各种实施例中,根据需要,结果214可被写回到存储器或被放置在寄存器中。在任一情况下,对齐数据216都不需要被转发到更高级的数学执行单元例如,ALU。如上所述,更高级的数学执行单元例如,ALU可以被配置为进行多个各种数学运算,而系统2〇〇可以被配置为仅仅进行一个数学运算。在这样的实施例中,系统200可以用于快速简单的数学运算,更高级的数学执行单元可以用于更复杂的运算,或者操作数已经存储在例如该更高级的数学执行单元的寄存器中的运算。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0062]回到系统200并行地驱动对齐电路204和数学运算执行电路201的能力,在各种实施例中,可以存在指示系统2〇0进行两个运算的新指令或组合式指令。例如,可以存在组合式L0AD-ADDLD,ADD,其需要两个输出。作为LD,ADD指令的加载部的部分,对齐数据216可以是输出,作为LD,ADD指令的加法部的部分,结果214可以是输出。在另一个实施例中,像LD,ADD这样的组合式指令可以简单地得到结果214这一单个输出。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0063]在一些实施例中,可以包括组合式指令LD,ADD或类似指令)作为指令集架构ISA的一部分。在另一个实施例中,组合式指令lD,ADD可以是当两个或更多个更大或更高级的指令被识别为可以被组合或融合以形成组合式指令时动态生成的低级指令例如微操作)。例如,后跟Add的Load可以被组合或融合以形成LD,ADD。在一些实施例中,这可以通过IDU或其他电路来完成。然而可以理解的是,在各种实施例中,单独的单个ADD指令可能足以使得选择数学运算执行电路201而不是更高级的数学执行单元例如,ALU。[0064]图3是根据本公开内容的系统300的示例实施例的框图。在各种实施例中,如上所述,系统300可以包括加载-存储单元或组合式加载-存储数学单元。可以理解的是,以上仅仅是一个说明性示例,本公开内容不限于此。[0065]在所示实施例中,系统300可以从数据高速缓存202获取或加载数据210。然后它可以在对齐电路204中处理数据21〇并产生对齐数据216,如上所述。而且,系统300可以包括进行预定的数学运算例如,加法并且生成结果314的数学运算执行电路301。[0066]在所示实施例中,数学运算执行电路3〇1中的动作的顺序可以与图2的数学运算执行电路201中所示的相反。在这样的实施例中,数据21〇A、210B、210C和210D的对齐变体或版本可首先通过选择器3〇8。选择器308可以输出数据的对齐版本或选定版本311。在一些实施例中,这可以与对齐数据216相同。[0067]数据的选定版本311可作为操作数提供给组合逻辑电路例如,加法器306。组合逻辑电路306然后可以使用数据的选定版本311和任何其他操作数250来生成结果314。在这样的实施例中,可以避免电路的重复(以及相应的额外功耗和面积消耗)。可以理解的是,以上仅仅是一个说明性示例,本公开内容不限于此。[0068]图4是根据本公开内容的系统400的示例实施例的框图。在各种实施例中,如上所述,系统400可以包括加载-存储单元或组合式加载-存储数学单元。可以理解的是,以上仅仅是一个说明性示例,本公开内容不限于此。[0069]在所示实施例中,系统400可以从数据高速缓存202获取或加载数据210,并使用对齐电路204对齐该数据。如上所述,对齐电路可以生成对齐数据216。[0070]在所示实施例中,系统400可以不仅包括一个数学运算执行电路201如图2和3所示),而且包括多个数学运算执行电路4〇6。在这样的实施例中,每个数学运算执行电路406可以被配置为执行或进行数学运算。举例来说,一个数学运算执行电路406可以被配置为进行第一运算(例如,加法),另一数学运算执行电路可以被配置为进行第二运算(例如,减法),又一数学运算执行电路可以被配置为执行第三运算例如,二进制补码转换)。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0071]在这样的实施例中,如果活动指令与这些数学运算中的任何一个相关联,则可以分配系统400来完成该运算,而不是将该运算转移到更高级的执行单元例如,ALU。如上所述,在一些实施例中,系统400可以利用指示何时应该由系统4〇〇执行运算的特殊指令例如LD,ADD。在另一个实施例中,处理器可以检测何时需要这样的分配并且相应地指示系统400〇[0072]在各种实施例中,系统400可以包括选择器电路408例如,解复用器deMUX,其被配置为将数据210路由到对齐电路204或选定的一个数学运算执行电路4〇6。在另一个实施例中,选择器电路40S可以被移动以仅在多个数学运算执行电路4〇6之间进行选择,并且对齐电路204可以继续与选定的数学运算执行电路406并行地操作。在各种实施例中,选择器电路408可以由控制信号452来控制。[0073]在所示实施例中,如上所述,每个数学运算执行电路406可以接收多个数据对齐410。在一些实施例中,可以针对特定的数学运算调整多个对齐41〇。然而在各种实施例中,多个数据对齐410可以是相同的。[0074]在各种实施例中,数学运算执行电路406中的每一个可以包括组合逻辑块或电路以及选择器电路,类似于参照图2和图3描述的。每个数学运算执行电路4〇6可以产生相应的结果414A、414B和414C。在各种实施例中,第二选择器电路4〇9例如,MUx可以在各个电路的结果之间进行选择。在这样的实施例中,系统400可以输出对齐数据216和单个结果415。可以理解的是,以上仅仅是一个说明性示例,本公开内容不限于此。[0075]图5是信息处理系统5〇〇的示意性框图,其可以包括根据本公开内容的原理形成的半导体器件。[0076]参考图5,信息处理系统5〇〇可以包括根据本公开内容的原理构建的一个或多个器件。在另一个实施例中,信息处理系统500可以采用或执行根据本公开内容的原理的一种或多种技术。[0077]在各种实施例中,信息处理系统500可以包括计算设备,例如膝上型计算机、台式计算机、工作站、服务器、刀片服务器、个人数字助理、智能电话、平板电脑以及其他适当的计算机或虚拟机,或者其虚拟计算设备。在各种实施例中,信息处理系统500可以由用户(未示出使用。[0078]根据本公开内容的信息处理系统500可以进一步包括中央处理单元CPU、逻辑或处理器510。在一些实施例中,处理器510可以包括一个或多个功能单元块FU®或组合逻辑块CLB515。在这样的实施例中,组合逻辑块可以包括各种布尔逻辑运算例如,NAND、N0R、NOT、X0R、稳定逻辑器件例如,触发器、锁存器)、其它逻辑器件或其组合。这些组合逻辑运算可以被以简单或复杂的方式配置为处理输入信号以实现期望的结果。应该理解,虽然描述了同步组合逻辑运算的一些说明性示例,但是本公开内容不限于此,可以包括异步运算或同步运算与异步运算的混合。在一个实施例中,组合逻辑运算可以包括多个互补金属氧化物半导体CMOS晶体管。在各种实施例中,可以将这些CMOS晶体管布置成进行逻辑运算的门;然而可以理解的是,可以使用其他技术并且这些技术在本公开内容的范围内。[0079]根据本公开内容的信息处理系统500还可以包括易失性存储器520例如,随机存取存储器RAM。根据本公开内容的信息处理系统500还可以包括非易失性存储器530例如,硬盘驱动器、光存储器、NAND或闪存)。在一些实施例中,易失性存储器520、非易失性存储器530或其组合或其部分可被称为“存储介质”。在各种实施例中,易失性存储器520和或非易失性存储器530可以被配置为以半永久或基本永久的形式存储数据。[0080]在各种实施例中,信息处理系统500可以包括被配置为允许信息处理系统500成为通信网络的一部分并且经由通信网络进行通信的一个或多个网络接口540ji-Fi协议的示例可以包括但不限于电气和电子工程师协会IEEE802.1lg、IEEE802.1In。蜂窝协议的示例可以包括但不限于:高级IEEE802•16m又称无线MAN城域网)、高级长期演进LTE,用于GSM全球移动通信系统演进的增强型数据速率EDGE、演进型高速分组接入HSPA+。有线协议的示例可以包括但不限于IEEE802.3也称为以太网)、光纤通道、电力线通信例如HomePlug,IEEE1901。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0081]根据本公开内容的信息处理系统500还可以包括用户接口单元550例如,显示适配器、触觉接口、人机接口设备)。在各种实施例中,该用户接口单元550可以被配置成接收来自用户的输入和或向用户提供输出。其它类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;以及可以以任意形式包括声音、语音或触觉输入来接收来自用户的输入。[0082]在各种实施例中,信息处理系统500可以包括一个或多个其他设备或硬件组件560例如,显示器或监视器、键盘、鼠标、相机、指纹阅读器、视频处理器)。应当理解,以上仅仅是一些说明性示例,本公开内容不限于此。[0083]根据本公开内容的信息处理系统5〇0还可以包括一个或多个系统总线505。在这样的实施例中,系统总线5〇5可以被配置为通信地耦接处理器510、易失性存储器520、非易失性存储器530、网络接口540、用户接口单元550以及一个或多个硬件组件560。由处理器51〇处理的数据或从非易失性存储器530外部输入的数据可以存储在非易失性存储器530或易失性存储器520中。[0084]在各种实施例中,信息处理系统500可以包括或执行一个或多个软件组件570。在一些实施例中,软件组件570可以包括操作系统0S和或应用。在一些实施例中,0S可以被配置为向应用提供一个或多个服务,并且在应用和信息处理系统500的各种硬件组件(例如,处理器510、网络接口540之间进行管理或充当媒介。在这样的实施例中,信息处理系统500可以包括一个或多个本地应用,其可以被本地安装例如,在非易失性存储器530内)并被配置为由处理器510直接执行并且直接与0S交互。[0085]在这样的实施例中,本地应用可以包括预编译的机器可执行代码。在一些实施例中,本地应用可以包括脚本解释器例如,Cshellcsh,AppleScript,AutoHotkey或虚拟执行机器VM例如Java虚拟机、Microsoft公共语言运行时),其被配置为将源代码或目标代码转换成由处理器510执行的可执行代码。[0086]上述半导体器件可以使用各种封装技术封装。例如,根据本公开内容的原理构建的半导体器件可以使用以下中的任何一项技术封装:堆叠封装POP技术、球栅阵列BGA技术、芯片规模封装CSP技术、带引线的塑料芯片载体PLCC技术、塑料双列直插封装PDIP技术、华夫包内裸片dieinwafflepack技术、晶圆形式裸片dieinwaferform技术、板上芯片(COB技术、陶瓷双列直插式封装(CERDIP技术、塑料公制方型扁平封装PMQFP技术、塑料方型扁平封装PQFP技术、小外形封装S0IC技术、窄间距小外形封装SS0P技术、薄小外形封装TS0P技术、薄方型扁平封装TQFP技术、系统级封装SIP技术、多芯片封装MCP技术、晶圆级制造封装WFP技术、晶圆级处理堆栈封装WSP技术、或者本领域技术人员将知道的其他技术。[0087]方法步骤可以通过一个或多个可编程处理器执行计算机程序来执行,以通过操作输入数据并产生输出来执行功能。还可以由专用逻辑电路来执行方法步骤,并可以将装置实现为专用逻辑电路,例如,FPGA现场可编程门阵列或者ASIC专用集成电路)。[0088]在各种实施例中,计算机可读介质可以包括当被执行时使得设备执行方法步骤的至少一部分的指令。在一些实施例中,计算机可读介质可以被包括在磁介质、光介质、其他介质或者其组合例如,CD-ROM、硬盘驱动器、只读存储器、闪存驱动器)中。在这样的实施例中,计算机可读介质可以是有形和非暂时性地具体化的制造物品。[0089]虽然已经参照示例实施例描述了本公开内容的原理,但是对于本领域技术人员来说显而易见的是,在不脱离这些公开的构思的精神和范围的情况下可以对其进行各种改变和修改。因此,应当理解,上述实施例不是限制性的而仅是示意性的。因此,本公开构思的范围应由所附权利要求及其等同物的最宽允许解释来确定,并且不应受限于之前的说明。因此,应该理解的是,所附权利要求旨在覆盖落入实施例范围内的所有这些修改和变化。

权利要求:1.一种加载单元,包括:加载电路,被配置为从存储器加载至少一个数据;对齐电路,被配置为对齐所述数据以生成对齐数据;数学运算执行电路,被配置为生成预定数学运算的结果,其中所述数据作为操作数;并且其中,所述加载单元被配置为,如果活动指令与所述预定数学运算相关联,则旁路所述对齐电路并将所述数据直接输入到所述数学运算执行电路。2.根据权利要求1所述的加载单元,其中所述数学运算执行电路包括多个相同的组合逻辑电路,其中所述多个相同的组合逻辑电路中的每一个被配置为对所述数据的相应版本进行相同的数学运算,其中所述数据的各相应版本中的每一个包括所述数据的多个对齐中的一个。3.根据权利要求2所述的加载单元,其中所述数学运算执行电路包括:对齐选择器,被配置为至少基于所述数据的相应版本的对齐,选择所述多个相同的组合逻辑电路的哪一个输出与所述结果相关联。4.根据权利要求1所述的加载单元,其中所述数学运算执行电路被配置为:在所述数据的多个对齐变体之间进行选择;将选定的所述数据的对齐变体输入到组合逻辑电路;以及所述组合逻辑电路被配置为通过至少对选定的所述数据的对齐变体进行数学运算来生成所述结果。5.根据权利要求1所述的加载单元,其中,所述对齐电路和所述数学运算执行电路并行布置。6.根据权利要求1所述的加载单元,其中,所述预定数学运算包括加法。7.根据权利要求1所述的加载单元,其中,所述数学运算执行电路被配置为相比于如下操作以更少的延迟来生成所述结果:生成所述对齐数据、将所述对齐数据传递给也执行所述预定数学运算的执行单元以及由所述执行单元生成所述结果的所述执行单元的版本。8.根据权利要求1所述的加载单元,其中如果所述活动指令指示要进行加载操作和所述预定数学运算两者,则所述活动指令使所述加载单元旁路所述对齐电路。9.根据权利要求1所述的加载单元,其中所述加载单元被配置为,如果流水线管理电路指示所述活动指令与所述预定数学运算相关联,则旁路所述对齐电路。10.一种系统,包括:数学执行单元,包括组合逻辑电路,并被配置为基于指令和至少一个数据来进行多个逻辑运算;以及组合式加载-存储数学单元,被配置为:从存储器加载数据;并且基于活动指令,基于所述数据进行所述多个逻辑运算中的预定的一个逻辑运算,其中,所述系统被配置为,如果所述活动指令至少与所述多个逻辑运算中的所述预定的一个逻辑运算相关联,则分配所述指令由所述组合式加载-存储数学单元而不是由所述数学执行单元来执行。11.根据权利要求10所述的系统,其中,所述组合式加载-存储数学单元包括多个相同的组合逻辑电路,其中所述多个相同的组合逻辑电路中的每一个被配置为对所述数据的相应版本进行相同的数学运算,其中所述数据的各相应版本中的每一个包括所述数据的多个对齐中的一个。12.根据权利要求11所述的系统,其中所述组合式加载-存储数学单元包括:对齐选择器,被配置为至少基于所述数据的相应版本的对齐,选择所述多个本相同的组合逻辑电路的哪一个输出与结果相关联。13.根据权利要求10所述的系统,其中,所述组合式加载-存储数学单元被配置为:在所述数据的多个对齐变体之间进行选择;并且将选定的所述数据的对齐变体输入到组合逻辑电路;以及所述组合逻辑电路被配置为通过至少对选定的所述数据的对齐变体进行数学运算来生成结果。14.根据权利要求10所述的系统,其中,所述预定数学运算包括加法。15.根据权利要求10所述的系统,其中,所述组合式加载-存储数学单元被配置为相比于如下操作以更少的延迟生成结果:所述组合式加载-存储数学单元从存储器中加载所述数据、将所述数据传递给所述数学执行单元以及由所述数学执行单元生成所述结果的所述数学执行单元的版本。16.根据权利要求10所述的系统,其中,所述系统被配置为:如果所述活动指令与加载操作和所述多个逻辑运算中的所述预定的一个逻辑运算两者相关联,则分配所述指令由所述组合式加载-存储数学单元而不是由所述数学执行单元来执行。17.—种使用加载单元的方法,包括:从存储器加载数据;以及_至少部分地基于活动指令,确定是将所述数据传送给执行单元还是在所述加载单元内基于所述数据生成结果;其中:如果确定将所述数据传送给所述执行单元,则在传送所述数据之前对齐所述数据,以及如果确定要生成结果,则生成所述数据的多个对齐,并基于所述数据的多个对齐中的至少一个生成预定数学运算的结果。18.根据权利要求17所述的方法,其中,生成所述结果包括:通过对所述数据的多个对齐变体进行预定数学运算来生成多个结果变体;以及选择所述多个结果变体中的一个作为所述预定数学运算的结果。19.根据权利要求17所述的方法,其中,生成所述结果包括:选择所述数据的对齐中的一个;以及至少部分地基于所述数据的选定的一个对齐来生成所述预定数学运算的结果。20.根据权利要求17所述的方法,其中,至少部分地基于活动指令来确定是将所述数据传送给执行单元还是基于所述数据生成结果包括:如果所述活动指令指示要进行加载操作和所述预定数学运算两者,则选择生成所述结果D

百度查询: 三星电子株式会社 存储器加载和算术加载单元(ALU)融合

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。