CN1155883C - 在流水线处理器中用于跳转延迟时隙控制的方法和装置 - Google Patents

在流水线处理器中用于跳转延迟时隙控制的方法和装置 Download PDF

Info

Publication number
CN1155883C
CN1155883C CNB008084602A CN00808460A CN1155883C CN 1155883 C CN1155883 C CN 1155883C CN B008084602 A CNB008084602 A CN B008084602A CN 00808460 A CN00808460 A CN 00808460A CN 1155883 C CN1155883 C CN 1155883C
Authority
CN
China
Prior art keywords
instruction
streamline
jump
processor
data bit
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.)
Expired - Fee Related
Application number
CNB008084602A
Other languages
English (en)
Other versions
CN1360693A (zh
Inventor
P���ֶ�����
P·沃恩斯
ֺ�ķ
C·格林汉姆
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.)
Synopsys Inc
Original Assignee
ARC INTERNAT U S HOLDINGS Inc
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
Priority claimed from US09/418,663 external-priority patent/US6862563B1/en
Application filed by ARC INTERNAT U S HOLDINGS Inc filed Critical ARC INTERNAT U S HOLDINGS Inc
Publication of CN1360693A publication Critical patent/CN1360693A/zh
Application granted granted Critical
Publication of CN1155883C publication Critical patent/CN1155883C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

一种在流水线中央处理器(CPU)或用户化微处理器内用于实现指令的方法和装置。在本发明的第一个方面中,公开了流水线内控制转移和执行指令的一种改进的方法。在一个实施例中,该方法包括在程序跳转指令内定义三个分立的延迟段;这些延迟段模式按照程序员需要而规定后面指令执行或者阻塞流水线程序。在本发明的第二个方面中,公开了结合上述模式综合处理一个处理器设计的方法。还描述了利用上述的方法所综合的示范性门逻辑,以及一个能够实施这些方法的计算机系统。

Description

在流水线处理器中用于跳转延迟时隙控制的方法和装置
本申请的优先权是于1999年5月13日申请的美国临时专利申请Serial No.60/134,253,标题为“Method And Apparatus For SynthesizingAnd Implementing Intergrated Circuit Designs,”和共同待审的于1999年10月14日申请的美国专利申请No.09/418,663,标题为“Method AndApparatus For Managing The Configuration And Functionality Of ASemiconductor Design”它的优先权是相同标题的于1998年10月14日申请的美国临时专利申请Serial No.60/104,271。
技术领域
本发明涉及集成电路设计领域,尤其涉及在一个流水线中央处理器(CPU)或用户化微处理器中使用的用于实现指令的一种硬件描述语言(HDL)。
背景技术
在计算机领域中RISC(精简指令集计算机)处理器是大家所熟知的。RISC处理器与非-RISC(通常所说的“CISC”)处理器相比,通常具有利用充分精简指令集的基本特性。通常,RISC处理器机器指令并不全是微编码的,可以直接执行而不用解码,因而在处理速度上可以提供有意义的经济效益。此外,“流线型的(streamlined)”指令处理能力还允许进一步简化处理器的设计(与非-RISC设备相比),从而允许更小的硅片和更少的制造费用。
此外,RISC典型的特征在于(i)装入/存储存储器结构体系(也就是,仅在装入和存储指令时必须存取存储器;其他的指令经过处理器中的内部寄存器操作);(ii)处理器和编译器的统一性;和(iii)流水线操作。
美国专利5724566中公开了一种地址流水线,其用以保持指令流水线中的指令地址。流水线操作是一种技术,用于通过把处理器中运算的顺序分成片段来增加处理器的性能,当可能时这些片段能以并行方式有效地被执行。在一个典型的流水线处理器中,与处理器运算操作程序(比如加法,乘法,除法等等)相关的运算单元通常被“分段”,以便任意时钟周期内在该单元一个给定片段中执行操作的一个具体部分。图1示例了具有这样被分段的运算单元的一个典型的处理器体系结构。因此,在任意给定的时钟周期这些单元可以在一个不同计算的结果上进行运算。作为一个例子,在第一时钟周期中两个数A和B被送到乘法单元10并由单元的第一片段12进行部分处理。在第二时钟周期中,来自A和B相乘的部分结果被送到第二片段14,同时第一片段12接收开始进行处理的两个新的数(比方说C和D)。最终结果是在一个初始启动周期之后,每个时钟周期由运算单元10执行一个乘法运算。
从一个结构体系到另一个结构体系,流水线的深度会变化。在本文中,术语“深度”指的是在流水线中存在的分阶段的数量。通常,带有更多阶段的一个流水线执行程序较快,但如果流水线的效果是明显可见的话,对于程序员来说编程也更加困难。大多数流水线处理器是三阶段(取指令,解码,和执行)或四阶段(比如取指令,解码,取操作数,和执行,或者可替换的,取指令,解码/取操作数,执行,和写回),尽管可以使用更多的或更少的阶段。
使用流水线结构通常对地址需要联锁,尤其是在这种情况下,即在一个早先流水线阶段中的一个跟随指令(n+1)需要来自一个后面阶段指令n的结果。解决上述问题的一个简单方法是通过一个或多个时钟周期延迟在指令解码阶段中的操作数计算。可以使用“记分板”,其中把一个位附加到每个处理器寄存器以便作为该寄存器内容的一个标志。可替换的,NOP(空操作操作码)可以被插入编码中以便愿意的时候延迟相应的流水线阶段。后一种方法称为“软件联锁”,具有增加了编码尺寸,并增加了使用需要联锁指令的程序的复杂性的缺点。
在处理器设计中另一个重要的考虑是程序转移或“跳转”。所有的处理器都支持某种类型的转移指令。简单来说,转移涉及程序流被中断或被改变的情况。此外,诸如循环设置和子程序调用指令等其它操作也以类似的方式中断或改变程序流。术语“跳转延迟时隙”通常指的是在一个转移或跳转指令被解码之后在一个流水线内的时间段。转移可以是有条件的(也就是基于一个或多个参数的真值或值)或无条件的。它也可以是绝对的(例如,基于一个绝对存储器地址),或相对的(例如,基于相对的地址和与任何特殊存储器地址无关)。
在流水线系统上进行转移具有一种非常有意义的作用。当一个转移指令被插入并通过处理器的指令解码阶段被解码时(表示处理器必须开始执行一个不同的地址),在指令序列中的下一个指令字已经被提取和插入流水线中。解决该问题的一个方案是清除提取的指令字并暂停或阻塞另外的提取操作直到转移指令已被执行为止,如图2所示。然而,该方法需要在几个指令周期——通常指令周期的数目处于一个到处理器设计中使用的流水线的深度之间——中转移指令的执行结果。这个结果对于处理器的速度和效率是不利的,因为在这一期间处理器不能实施其它的运算。可替换的,可以使用一种延迟的转移方法。在该方法中,当一个转移指令到达解码阶段时流水线不被清除,而通常在转移被执行之前执行存在于流水线先前阶段中的后面的指令。因此,在转移指令被解码时,该转移即被延迟若干——为执行所有流水线中随后指令所必需的——指令周期。与上述的多周期转移相比,这种方法增加了流水线的效率,但也增加了基本编码的复杂性(程序员易于理解)。
结合了包括用于控制处理器流水线内转移指令的执行方法的数字处理器体系结构是为人熟知的;举例来说参见P.Patel等著“Architectural Features of the I860TM-Miocroprocesser RISC Core andOn-chip Caches”,Proceedings of the 1989 IEEE International Conferenceon Computer Design:VLSI in Computers and Processors,ICCD’89,IEEEComp.Society Presss,pp389-390,该文描述了一种处理器结构体系,该结构体系里在有条件转移指令中利用了一种“挤位”。当设置了挤位,对于进行转移情况即注销在延迟时隙中的指令,并执行不进行转移的情况。此外,如未设置挤位,则对于不进行转移情况即注销在延迟时隙中的指令,并执行进行转移的情况。通过预测在程序编辑时间上的转移方向而确定这一挤位。还可参见专利号为U.S.Patent No.5,724,566、申请于1998年3月3日、转让给Texas Instruments Inc.的专利,该专利公布了一种“地址流水线”的使用,这种地址流水线保持出现于指令流水线中的指令的地址,并特别地方便了在一个转移延迟时隙期间停止这个数字处理器而无该转移信息的损失。
基于上述内容,处理器设计者和程序员必须结合现有技术中利用延迟的或多周期的转移方法来仔细权衡得失。需要一种改进的进行转移/跳转的方法来克服或减轻这些折中方法中存在的问题,同时提供附加的灵活性。而且,当把更多的流水线阶段加到处理器设计中时,对于改进的和简化的转移以及处理器内的指令执行,有益之处会更多。此外,在一个具体应用的方式中,能够容易地综合处理这种改进的流水线处理器设计,并且使用这些可获得的综合工具,对于设计者和程序员来说是实际有效的。
                       发明内容
本发明通过提供一种用于在数字处理器结构体系内执行指令的改进的方法和装置来满足上述的需要。
在本发明的第一个目的是,提供一种在一个流水线处理器内管理转移和指令执行的改进的方法,该方法为处理器设计者提供了更多的涉及灵活性而不必牺牲流水线效率。在一个实施例中,利用指令字的预定位实现三个分立的延迟段模式。这三个模式包括:(i)在所有环境下执行一个延迟段指令;(ii)只有当采用一个跳转时执行一个延迟段,和(iii)如果采用一个跳转,一个流水线就阻塞或气泡来代替一个指令执行。一个流水线泡类似于一个NOP空操作指令,其中它是一个流过流水线而不执行任何操作的指令。它通常是一个在被装入流水线之后就被“注销”的指令。使用现有的转移或类似的指令,在跳转延迟时隙控制中这三个模式的可用性给程序员提供了额外的灵活性。此外,公开了用综合逻辑实现上述延迟段方法的无约束和有约束的示例。
本发明的第二个目的是提供一种结合上述跳转延迟时隙方法的一个集成电路的综合设计的改进方法,以便给设计者能够易于将这些改进包括到用计算机软件创造的新设计中。在一个实施例中,该方法包括获得用户输入的有关设计的配置;基于用户的输入和现存的功能库生成用户化的HDL(硬件描述语言)功能块;基于用户的输入和程序库确定设计层次并产生一个层次文件,新的库文件,和程序描述文件;运行程序描述文件生成结构的HDL和稿本;运行生成的稿本生成一个用于模拟程序的程序描述文件和一个综合稿本;以及基于产生的设计和综合稿本对设计进行综合。
本发明的第三个目的是提供一种改进的且更高效的计算机程序,其既有用于综合处理器设计,也具体实现上述方法。在一个实施例中,计算机程序包括存储在一个微型计算机的磁存储设备上的一个目标编码表达式,并适于在其中的中央处理器上运行。计算机程序进一步包括一个交互式的,菜单控制的图形用户界面(GUI),因而便于使用。
本发明的第四个目的是提供用于运行上述计算机程序的一种改进的且更高效的装置,该计算机程序用于综合与流水线处理器相关的逻辑,包括改进的跳转延迟控制逻辑。在一个实施例中,系统包括一个具有一个显示器的独立的微型计算机系统,中央处理器,数据存储设备,和输入设备。
本发明的第五个目的是提供一种改进的处理器体系结构,其具有改进的流水线效率和设计灵活性。在一个实施例中,该处理器包括具有三阶段流水线的一个精简指令集计算机(RISC),三阶段流水线包括由上述跳转延迟时隙方法所部分控制的取指令,解码,和执行阶段。
                       附图简述
图1是使用“分段的”算法单元的一个典型的现有技术处理器结构的方框图。
图2是正进行一个多周期转移运算的一个四阶段流水线处理器的示意图。
图3是按照本发明在一个流水线处理器内控制跳转延迟时隙模式的通常方法的一个示意性的逻辑流程图。
图3a是执行图3指定的跳转延迟时隙模式方法的一个实施例的逻辑流程图。
图4是按照本发明、对结合了跳转延迟时隙模式的处理器逻辑进行综合的普通方法的一个逻辑流程图。
图5是表示用于实现本发明的跳转延迟时隙模式的综合逻辑(无约束)的第一实施例的示意图。
图6是表示用于实现本发明的跳转延迟时隙模式的综合逻辑(有约束)的第二实施例的示意图。
图7是结合了相应于本发明的跳转延迟时隙模式的一个流水线处理器设计的方框图。
图8是用于综合处理图5-6的逻辑装置的一个计算机系统实施例的功能方框图。
                      具体实施方式
现在参考给出的附图,其中相同的编号指整体相同的部分。
在此所用的术语“处理器”意味着包括任何集成电路或其它的能够就至少一个指令字而执行一个操作的电子设备,包括,但不限于此,精简指令集芯片(RISC)处理器,比如由本专利申请受让人制造的用户结构的芯片,中央处理器(CPU),以及数字信号处理器(DSP)。这样设备的硬件可以被集成在一个单片硅上(“小片”),或被分布在两个或多个小片中。而且,处理器的各种功能方式可以用软件或与处理器相关的固件来实现。
此外,作为本领域普通技术人员来说,应理解在此使用的术语“阶段”涉及一个流水线处理器内的各连续阶段;即阶段1相当于第一流水线阶段,阶段2相当于第二流水线阶段,依此类推。
此外应注意的是,下面的描述仅与VHSIC硬件描述语言(VHDL)有关,而诸如Verilog的其它硬件描述语言也可以同样成功地用于描述本发明的各种实施例。而且,示例了一个Synopsys综合引擎,比如Design Compiler 1999.05(DC99)来用于综合处理在此所述的各种实施例,但也可以使用其它的综合引擎,比如特别地可从Cadence DesignSystems,Inc.获得的Buildgates。IEEE std.1076.3-1997,IEEE StandardVHDL Synthesis Packages描述了一种用于规定基于硬件描述语言的设计的一种工业接受的语言以及综合处理能力,这对于本领域普通技术人员来说,是可以得到的。
最后,应该清楚尽管下面描述了本专利申请受让人使用上述的综合处理引擎和VHSIC硬件描述语言来综合处理逻辑的具体实施例,这类具体实施例以不同方式受到约束,但这些实施例仅仅作为本发明的设计示例。而且,尽管对这些实施例规定了一种1.0um工艺,但应该可以想象到用其它的制造工艺(例如0.35um或0.18um)来结合在此公开的本发明。
现在描述相应于本发明、控制跳转延迟时隙以及在一个处理器内对它们进行编码的改进的方法。
本发明通常包括多个不同的“跳转模式”或修改程序。这些修改程序在整个跳转过程中控制处理器的操作;特别是,一个指令在一个先于跳转指令本身阶段的流水线阶段之后、或该流水线阶段之中的执行。总体来说,这些修改程序提供给程序员许多益处,这些益处不是由多周期或延迟的转移方法孤立地提供的,因为程序员能够安排程序编码以便在这样的跳转或转移操作过程中按期望的方式操作流水线。
现在参考图3,描述按照本发明在一个流水线处理器内跳转进行期间控制指令执行的通用方法300。首先,在步骤302,提供一个适于在处理器上运行和包括多个指令“字”的程序。程序中的每个指令字被表示为并包括了多个数据位,并且至少一个指令字包括一个跳转指令。在本文中,术语“指令集”用于描述可以在处理器上执行的每个可能指令的完全集,并且术语“程序”用于描述从处理器的指令集中选择、以便实现一具体目的的一个指令特定序列。在此所用的术语“跳转”指任何转移,跳转,循环设置或调用指令,虽然其他要求改变处理器指令处理流程的指令也能够与所公开的本发明相结合。
下一步,在步骤304,多个预定值之一被分配到跳转指令的至少一个数据位。在一个实施例中,跳转指令的两个数据位被指定携带跳转延迟时隙模式信息,如以下参考表1所示。对于这两位使用允许的二元状态“0”和“1”,可以形成22或4的唯一组合,每个组合指定一种不同的跳转延迟时隙模式。然而,应该明白,通过使用或多或少的数据位可以指定任意不同数目的唯一(或非唯一)模式,如果需要的话,甚至使用不同的数字基数。
接着,在步骤306,由处理器解码包含在跳转延迟时隙模式信息中的至少一个跳转指令。在计算机领域中大家熟知用于指令解码的方法和装置,因而在此不作进一步的描述。然而应注意的是,与现有技术的指令解码相比,本发明的指令集内的跳转指令解码包括不仅对指令本身进行解码(步骤307),还包括对先前所述的指定的跳转延迟时隙模式数据位的解码和分析(步骤308)。
在步骤310,按照步骤304中由程序员规定的功能性,执行指定的跳转延迟时隙模式。
图3a图示了经图3步骤310而执行指定跳转延迟时隙模式的方法的一个实施例。在第一步骤312,读取在步骤314中被指定的携带延迟段模式信息的数据位以便确定在被解码指令内所选择的跳转延迟时隙模式。接着,在步骤314,分析选择的延迟段模式以便确定它是否是有条件的(也就是,取决于另一个参数,比如是否采取一个到另一个程序地址的跳转)。如果选择的模式是有条件的,在步骤316和317中分析参数的状态以便确定其中的“真值”。如果该条件为真,经步骤318执行用于一个真实条件的所需的动作。如果该条件不为真,经步骤320执行用于一个虚伪条件所需的动作(或选择不采取动作)。如果选择的模式对任何参数都是无条件的,在步骤322中执行那个模式(比如执行流水线内一个随后的指令,或者一个流水线阻塞)所需的动作。
在上述方法300的一个示范性实施例中,定义了下列三个跳转修改程序(延迟段模式):
(1)ND(“没有延迟的指令段”)—当无跳转时仅执行流水线中的下一个指令;如果进行跳转,插入一个周期流水线阻塞或气泡
(2)D(“延迟的指令段”)—不管跳转状态而总是执行下一个指令
(3)JD(“跳转延迟的指令段”)—当跳转时仅执行下一个指令;如果不进行跳转,插入一个周期流水线阻塞或气泡
当采取一个跳转时,第一模式(1)提供了一个或多个周期的流水线“阻塞”来代替一个指令执行。第二模式(2)提供一个延迟段指令(也就是,在所有环境下,存在于解码后跟随跳转指令的时间段中的指令)的执行。只有当采取一个跳转时,第三模式(3)提供一个延迟段指令的执行。尽管下面的讨论仅仅有关于这三种模式,但应该明白不需要共同使用、或者在相同的指令集内使用所有的三个模式,而且可以把其它的带有不同功能性的附加的延迟模式加到指令集中,以进一步增强编程的灵活性和可控性。
部分地由于可以定制指令集而并不限于先前所述的纯多周期或延迟的转移方法,在跳转延迟时隙控制中,利用上述三个不同的模式可以提供给程序员附加的灵活性。特别是,通过在程序内的确定指令中插入适当的跳转延迟模式编码,在一个处理器和一个指令集内,程序员可以获得多周期和延迟转移方法二者的有益特性。
表1图示了与上述三个延迟段模式相关的跳转延迟模式编码。在图示的实施例中,使用处理器指令字(IW)的两个二进制数据位来表示三个延迟段模式ND,D,和JD的其中之一:
                    表1
 IW位  语法 模式
 00  d 如采取跳转则无延迟段指令执行—代之以一周期流水线阻塞或气泡。
 01  .d 总执行延迟段指令。
 10  .jd 仅当采取跳转才执行延迟段指令
 11 保留
表2是从表1定义的跳转延迟时隙模式中得到的一个真值表:
                        表2
               条件真值
跳转延迟时隙模式 采取跳转 不采取跳转
.nd 一个周期阻塞或气泡 延迟段指令执行
.d 延迟段指令执行 延迟段指令执行
.jd 延迟段指令执行 不延迟段指令执行
下面的汇编语言编码利用一个有条件的、到后面有一个数学(加)指令的程序位置‘目标’  的转移指令(beq),示例了表1各相应跳转延迟时隙模式的语法和操作的例子:
(1)beq.nd target        ;
   add     rl,rl,1    ;如果采取跳转不执行“加”
(2)beq.d  target
   add     rl,rl,1    ;总是执行“加”
(3)beq.jd   target      ;
   add     rl,rl,1    ;仅当采取跳转执行“加”
表1的第四个模式(“11”)可以用于其它的跳转模式或非跳转模式功能——如果愿意的话,从而为程序员提供了进一步的灵活性。另外,虽然在表1的实施例中示例了指令字的两位,但应该清楚的是,可以想象使用其他数目的以及不同安排的位(包括它们在指令字内的位置及其语法)。例如,三个非相邻的位可用于表示多达八个独立的跳转延迟时隙模式。
表3利用基于IW内三个数据位的五个跳转延迟时隙模式(四个加一个保留),示例了本发明跳转延迟时隙模式的第二实施例:
                表3
IW位 语法 模式
000 (保留)
001 .jd 仅当采取跳转时执行延迟段指令
010 .d 总是执行延迟段指令
011 .nd1 如采取跳转则不执行延迟段指令—代之以一周期流水线阻塞
100 (保留)
101 (保留)
110 (保留)
111 .nd2 如采取跳转则不执行延迟段指令—代之以两周期流水线阻塞
在示例的实施例中,存在于指令集内的跳转指令可以停止其它指令类型的执行(即“注销”),取决于两个因素:(i)选择的延迟段模式,和(ii)跳转指令的条件是否为真。以下四个指令说明了本文中与本申请人的ARC RISC处理器相关的VHDL编码的上述原理:1.  规则的跳转指令:
    ip2rjmp<=′1′WHEN ip2iv=′1′AND(ip2i=obcc
                                  OR ip2i= oblcc
                                          OR ip2i= ojcc) ELSE
                                      ′0′;
2.  循环回路设置指令:
      ip21pcc   <=′1′WHEN ip2iv=′1′AND(ip2i= olpcc)ELSE
                    ′0′;
3.  跳转/非跳转信号:
ip2jumping  <=(ip2rjmp AND ip2condtrue)OR(ip2lpcc AND NOT
jp2condtrue);
ip2nojump   <=(ip2jmp AND NOT ip2condtrue)OR(ip2lpcc AND
ip2condtrue);
4.“注销”信号
ip2killnext<= ‘1’ WHEN ((ip2dd=dmk)AND ip2bch=‘1’)
                       OR   ((ip2dd=dmnd)AND ip2jumping=‘1’)
                       OR   ((ip2dd=dmjd)AND ip2nojump=‘1’)ELSE
             ′0′
p2killnext<=ip2killnext;
应注意的是,所示实施例的ip2killnext指令包括p2iv(流水线阶段2指令有效信号)和一个用于一个跳转操作的全解码,以便在流水线控制逻辑(“pipectl”)内可以使用它而不用除en2(流水线阶段2启动/阻塞信号)以外的任何其他的解码。这种特性减少了解码延迟并允许指令更快执行。尽管在这个例子中使用的解码技术导致了上述操作中的许多益处,但应该明白该技术对于本发明的实际应用并不是必不可少的。
附录A示例了用于综合处理本发明的上述跳转延迟时隙模式的VHDL的一个实施例。
附录B提供了利用Synopsys综合处理引擎用于延迟段综合处理的一个综合稿本的示例。
此外,应该注意的是,可以连同(单独地或共同的)其他的流水线控制和联锁的方法一起来使用本发明的方法和装置,其中尤其包括那些与本申请共同待审的美国专利申请标题为“Method And ApparatusFor Jump Control In A Pipelined Processor”中公开的内容,以及那些与本申请共同待审的美国专利申请标题为“Method And Apparatus ForProcessor Pipeline Segmentation and Reassembly”中公开的内容,它们与此同时申报,在此结合它们的全部内容作为参考。而且,各种寄存器编码方案,比如与本申请共同待审的美国专利申请标题为“Methodand Apparatus for Loose Register Encoding Within a Pipelined Processor”中描述的“松散”寄存器编码,它与此同时申报,在此结合参考它的全部内容,在此可以连同本发明使用的跳转延迟时隙一起进行描述。进行综合处理的方法
参考图4,描述了先前讨论的结合跳转延迟时隙模式综合处理逻辑的方法400。在与本申请共同待审的美国专利申请序列号09/418,663标题为“Method And Apparatus For Managing The Configuration AndFunctionality Of A Semiconductor Design”中公开了综合处理具有一个用户化(即“软的”)指令的集成电路逻辑的普通方法,它于1999年10月14日申报,在此结合它的全部内容作为参考。
虽然下面的描述是有关于在一个微型计算机或其他类似处理设备上的一个算法或计算机程序,但应该清楚可以使用其它的硬件环境(包括小型计算机,工作站,网络计算机,“超级计算机”,和大型计算机)来实践本方法。此外,如果需要的话,相对于软件可以把计算机程序的一个或多个部分实施于硬件或固件中,这种替换的实施例在计算机
技术领域是熟知的。
最初,在步骤402中获得有关设计配置的用户输入。特别是,由用户选择用于设计的期望的模块或功能,并按需要添加、减去或产生与设计有关的指令。例如,在信号处理应用程序中,通常最好让CPU包括单一的“乘法和累积”(MAC)指令。在本发明中,修改综合设计的指令集以便在其中结合上述跳转延迟时隙模式(或其他等同的跳转延迟时隙控制体系结构)。尤其是,在本发明的实施例中,表示指定跳转延迟时隙模式的多个预定值之一通过参考图1的上述跳转指令字的两个数据位进行表示。此外,在步骤402中由用户定义用于每个VHDL文件的技术库位置。本发明中的技术库文件存储了所有与用于综合处理所需单元相关的信息,例如包括逻辑功能,输入/输出计时,和任何相关约束。在本发明中,每个用户可以定义他的/她的自己的库名和位置,从而进一步增加了灵活性。
下一步,在步骤403,生成在步骤402中规定的基于用户输入和现存功能库的用户化的HDL功能块。
在步骤404中,基于用户的输入和上述的库文件确定设计结构层次。基于设计结构层次顺序地产生一个结构层次文件,新的库文件,和程序描述文件。在此使用的术语“程序描述文件”相当于通用的UNIX程序描述文件功能或者相当于计算机领域普通技术人员熟知的一个计算机系统的类似的功能。程序描述文件功能导致其他常驻计算机系统中的程序或算法以规定的次序被执行。此外,它进一步规定数据文件的名称和位置和其他为指定程序的成功操作所需的信息。但应该注意的是,在此公开的发明可以利用不同于“程序描述文件”的文件结构来产生期望的功能性。
在本发明的程序描述文件产生处理过程的一个实施例中,是经过显示提示交互地询问用户来输入与期望的设计有关的信息,比如“构件”的类型(例如,整体设备或系统配置),外部存储器系统数据总线的宽度,扩展时隙的不同类型,高速缓冲存储器的类型/大小等等。但只要符合本发明,也可以使用许多其他的输入信息的配置和资源。
在步骤406,运行在步骤404中产生的程序描述文件以便生成结构的HDL。该结构的HDL将设计中分立的功能块结合在一起以便完成一个设计。
接着,在步骤408,运行在步骤406中产生的稿本以生成用于模拟程序的一个程序描述文件。此外,在步骤408中还运行产生一个综合稿本的稿本。
在程序的这一点上,做出一个是否综合或模拟设计的决定(步骤410)。如果选择模拟,用户利用在步骤412产生的设计和模拟程序描述文件(和用户程序)运行模拟程序。可替换的,如果选择综合处理,用户利用在步骤414中的综合稿本和产生的设计运行综合处理。在完成综合/模拟稿本之后,在步骤416评估适当的设计程序。例如,一个综合引擎可以生成一个具体的设计的物理布局,它符合整体设计处理程序的性能标准,但不符合所要求的小片尺寸。在此情况下,设计者将对控制文件,数据库,或其它元件进行改变,它们可以影响小片尺寸。随后设计信息的结果集合被用于重新运行综合处理稿本。
如果产生的设计是可接受的,则完成设计处理程序。如果设计是不可接受的,重新执行从步骤402开始的处理步骤直到获得一个可接受的设计。在此方式中,循环方法400。
现在参考图5,示例了利用图4的Synopsys设计编译器和方法所综合处理的门逻辑(包括在附录A的VHDL中所引用的ip2bch)的第一实施例。注意用于产生图5的逻辑综合的处理期间,规定了一个LSI10k 1.0um工艺,并且在设计上没有约束。来自图5逻辑的p2killnext信号输出被用于VHDL编码(rctl.vhdl)中的任何地方以便当指令被传送到阶段2时在阶段1中将其标以“注销”标记。
图6示例了利用Synopsys设计编译器和上述的1.0um工艺综合处理的示范性门逻辑的第二实施例。然而,不像图5的逻辑,已经约束了ip2condtrue和p2killnext之间的关键路径以便以尽可能短的时间进行操作。如先前所提到的,在整个综合处理过程中,只要需要可以应用许多各种不同的约束。
图7示例了制造好的流水线处理器的一个例子,使用在此上述的一个1.0um工艺和结合图5的逻辑以及跳转延迟时隙模式。如图7所示,处理器700是一个ARC类的微处理器CPU设备,其中尤其具有一个处理器芯片702,芯片存储器704,和一个外部接口706。利用用户化VHDL设计制造该设备,使用本发明的方法400获得用户化的VHDL设计,该设备随后被综合处理成一个逻辑级表达式,并接着利用半导体领域已知的编译,布局和制造技术把它精简成一个物理设备。
本领域普通技术人员应该清楚,图7的处理器可以包括任何通用的可获得的外围设备,比如串行通信设备,并行接口,计时器,计数器,高电流驱动器,模数(A/D)转换器,数模(D/A)转换器,中断处理器,LCD驱动器,存储器和其他类似的设备。另外,处理器还可以包括自定义或应用的具体电路元件。本发明不局限于外围设备的类型,数量或复杂程度,以及其他的可以使用本发明方法和装置相组合的电路元件。反之,任何由现有半导体工艺的物理能力所施加的限制都会随时间而改进。因此可预期,随半导体工艺的进步,可能应用本发明的集成的复杂性及质量将进一步提高。
还应该注意的是,当前的许多IC设计使用一个微处理器芯片和一个DSP芯片。然而DSP仅可以用于所需的有限数量的DSP功能,或者用于IC的快速DMA结构体系。在此公开的本发明可以支持许多DSP指令功能,并且它的快速局部RAM系统可以直接存取数据。通过使用在此公开的用于IC的CPU&DSP功能的方法可以明显地实现节省费用。
除此之外,请注意这里如前所述的方法(及相应的计算机程序)可容易地以相对简单的再综合适应于更新的生产技术,例如0.18或0.1微米工艺——而非使用“硬的”原有微技术系统时,为了适应这类技术通常要采用冗长昂贵的处理。
现在参考图8,描述一个计算设备的实施例,它尤其是能够综合这里图5和图6的跳转延迟时隙模式逻辑结构。计算设备800包括一个母板801,该母板具有一个中央处理器(CPU)802,随机存取存储器(RAM)804,和存储器控制器805。此外还提供一个存储设备806(比如一个硬盘驱动器或CD-ROM),输入设备807(比如一个键盘或鼠标),和显示设备808(比如一个CRT,等离子体,或TFT显示器),以及支持主机和周边器件工作所需的总线。在整个设计综合处理过程中,上述的VHDL描述和综合引擎以计算机程序的一个目标编码表达式的形式被存储在RAM 804和/或存储设备806中来由CPU 802进行使用,在计算机领域中后者是大家熟知的。在整个系统操作过程中,用户(未示出)通过把设计的配置规范经程序显示和输入设备807输入到综合处理程序中来综合处理逻辑设计。由程序所生成的经过综合的设计储存于存储设备806中以便以后检索,显示于图形显示设备808,或经由一个串行或并行接口812而输出到一台外部设备,如打印机、数据存储设备、其它外围设备——如果需要的话。
尽管上面已经进行了详细描述,并应用各种实施例指出了本发明的新颖性,但应明白在不脱离本发明的范畴下,本领域技术人员可以对本发明的设备的细节或处理过程以省略,替代,或改变的各种形式作出变化。上述的内容是目前实现本发明的最佳方式。这一描述绝不意味着限制,反之,应作为本发明通用原理的示例。本发明的范围应该根据权利要求的内容来确定。
        附录A-示例用于综合处理的延迟段VHDL
  library ieee.arc;

  use ieee.std_logic_1164.all;

  use arc.arcutil.all;

  entity delay_slot is:

  PORT(             ip2iv        ;   in   std_ulogic;

                    ip2condtrue  ;   in   std_ulogic;

                    ip2i         ;   in   std-ulogic_vector(4 downto 0);

                    ip2dd        ;   in   std_ulogic_vector(1 downto 0);

                    p2killnext   ;   out  std_ulogic);

   end delay_slot;

  architecture synthesis of delay_slot is:

            signal             ip2bch       ;       std_ulogic;

            signal             ip2rjmp      ;       std_ulogic;

            signal             ip2lpcc      ;       std_ulogic;

            signal             ip2jumping   ;       std_ulogic;

            signal             ip2nojump    ;       std_ulogic;

            signal             ip2killnext  ;       std_ulogic;

  begin

    ip2bch<=   ′1′WHEN ip2iv=  ‘1’AND(ip2i=obccOR ip2i=oblcc

                                         OR  ip2I=olpccOR ip21=

  ojcc)ELSE

                      ‘0’;
------延迟段取消逻辑.------
--由于LPcc指令对其它的转移指令以不同方式使用它的条件码,在实
施例中需要两个信号来规定一个进行跳转的跳转指令,一个用于规定
一个不进行跳转的跳转指令。
--规则跳转指令--
  ip2rjmp  <=′1′WHEN ip2iv=′1′   AND(ip2i  =  obcc

                                        OR  ip2i  =  oblcc

                                        OR  ip2i  =  ojcc)ELSE

                          ‘0’;
        <!-- SIPO <DP n="17"> -->
        <dp n="d17"/>
  --循环回路设置指令--

  ip2lpcc    <=′1′WHEN ip2iv=‘1’    AND(ip2i  =olpcc) ELSE

  ‘0’

  --进行跳转/不跳转信号--

  ip2jumping<=(ip2rjmpANDip2ondtrue)OR(ip2lpccANDNOTip2condtrue);

  ip2nojump

  <(ip2rjmpANDNOTip2condtrue)OR(ip2lpccANDip2condtrue);

  --取消信号本身—

  --        

  --ip2killnext include p2iv and a full decode for a jump,so can

  --be used in pipectl without any further decode(apart from en2 of course).

     ip2killnext<=’1’WHEN((ip2dd=dmk)AND ip2bch=′1′)

                          OR   ((ip2dd=dmnd)AND ip2jumping=′1′)

                          OR     ((ip2dd=dmjd)AND ip2nojump=′1′)

  ELSE

                    ‘0’;

      p2killnext<=ip2killnext;

   end synthesis;
             附录B-用于延迟段综合的示例综合稿本
  /*′produce result without any optimization*/

  /*assuming using the LSI Logic 10k library*/

  analyze-format vhdl-lib ARC                   {ARCHOME+

  ″/arc/vhdl/arcutil.vhdl″}analyze-format vhdl-lib USER

  {USERDIR+″/vhdl/delay_slot.vhdl″}

  elaborate delay_slot-arch″synthesis″-Hb USER

  compile

  write-format db-hierarchy-output db/delay_slot_noopt.db

  rernove_design-all

  /*result with logic optimization*/

  elaborate delay_slot-arch″synthesis″-lib USER

  /*timing for inputs direct from flipflops*/

  t_in=1.33

  /*create an imaginary 20MHz clock*/

  create clock-name ck-period 50

  set_input_delay        20       ip2condtrue       -clock ck

  set_input_delay        t_in     ip2dd             -clock ck

  set_input delay        t_in     ip2l              -clock ck

  set_input_delay        t_in     ip2iv             -clock ck

  set_output_delay       28       p2killnext        -clock ck

  compile

  write-format db-hierarchy-output db/delay_slot_opt.db    

Claims (22)

1.一种在流水线处理器(700)内控制指令执行的方法,包括:
提供包括多个指令字的一个指令集,每个所述指令字包括多个数据位,至少所述指令字的其中之一包括一个跳转指令;
将多个值中的一个赋予所述至少一个跳转指令的多个所述数据位中的每一个,以提供多个跳转延迟时隙模式;
当所述至少一个跳转指令被解码时,基于所述多个数据位的所述被赋的值在所述流水线内控制至少一个随后指令的执行。
2.权利要求1的方法,其中赋值的动作包括:
在所述至少一个跳转指令内识别多个数据位;
将两个二进制值的其中之一赋予每个所述数据位,所述两个二进制值的组合表示所述处理器内的至少三个跳转延迟时隙模式。
3.权利要求2的方法,其中基于所述二进制值,在所述流水线中控制至少一个随后指令的执行的动作包括从组中选择至少一个模式,该组包括:
(i)在所有环境下执行所述至少一个随后的指令;
(ii)只有当出现一个跳转时执行所述至少一个随后的指令;
(iii)如果出现一个跳转则阻塞流水线或在流水线中插入一个气泡。
4.权利要求3的方法,其中所述至少一个跳转指令包括一个有条件转移指令。
5.权利要求1的方法,其中基于所述的被赋值,在所述流水线中控制至少一个随后指令的执行的动作包括:
(i)在所有环境下执行所述至少一个随后的指令;
(ii)只有当出现一个程序跳转时执行所述至少一个随后的指令;
(iii)如果出现一个程序跳转则阻塞流水线或在流水线中插入一个气泡。
6.一种处理数据的设备包括:
一适于执行多个指令的处理器;
一个与处理器芯片进行数据通信的数据存储介质,适于存储多个数据位;和
表现为多个数据位并存储在所述存储介质上的一个计算机程序,所述程序适于在一个计算机系统的处理器上运行,并在一个具有一条流水线、而且结合了具有至少一个转移指令和多个与之相关跳转模式的一个指令集的处理器中用于综合处理集成电路逻辑,所述多个跳转模式至少包括下列:
(i)在所有环境下执行所述所述流水线内的一个随后的指令;
(ii)只有当出现程序跳转时执行所述流水线内的一个随后的指令;
(iii)如果出现程序跳转阻塞所述流水线。
8.一种数字处理器(700)包括:
一个具有多阶段指令流水线的处理器芯片,所述芯片适于解码和执行包括多个指令字的一个指令集;
在所述处理器芯片(702)和一个信息存储设备之间的一个数据接口;
其中至少一个所述指令字包括一个跳转指令,该跳转指令包含定义多个跳转延迟时隙模式的数据,所述多个模式响应于所述指令集内的所述至少一个跳转指令字而控制所述处理器芯片的所述指令流水线内的指令的执行。
9.权利要求8的处理器,其中所述多个跳转延迟模式包括至少下列模式:
(i)在所有环境下执行所述流水线内的一个随后的指令;
(ii)只有当出现程序跳转时执行所述流水线内的一个随后的指令;
(iii)如果出现程序跳转阻塞所述流水线。
10.权利要求8的处理器,其中所述至少一个跳转指令包括具有一个相关逻辑条件的一个有条件转移指令,由通过所述逻辑条件确定的所述至少一个有条件转移指令而指定地执行一个跳转到所述信息存储设备内的地址。
11.权利要求5的方法,其中所述数据位包括二进制数据。
12.一种控制多阶段流水线数字处理器中转移的方法,包括:
在所述数据存储设备内存储一个指令集,所述指令集包括多个指令字,每个所述指令字包括多个数据位,至少一个所述指令字包括一个转移指令,用于基于第一参数直接转移到所述数据存储设备内的第一地址;
定义多个跳转模式;
分配所述多个跳转模式的至少一个给所述至少一个转移指令的至少一个所述数据位;
对包括所述至少一个数据位的所述至少一个转移指令进行解码;
基于所述至少一个数据位和所述第一参数确定是否转移到所述第一地址。
13.权利要求12的方法,其中定义多个跳转模式的动作包括定义下列模式:
(i)在所有环境下执行一个随后的指令;
(ii)只有当出现程序跳转时执行一个随后的指令;
(iii)如果出现程序跳转阻塞流水线或把一个气泡插进流水线。
14.权利要求8的数字处理器,其中定义多个跳转延迟指令时隙模式的动作包括:
在所述至少一个跳转指令内识别多个数据位;
将两个二进制数值中的一个赋予每个所述数据位,所述两个二进制数值的组合表示在所述处理器内至少三种跳转延迟模式。
15.权利要求14的数字处理器,其中所述控制执行的方法包括了从包括如下的组中选择至少一种延迟模式:
(i)在所有环境下执行所述流水线内的一个随后的指令;
(ii)只有当出现程序跳转时执行所述流水线内的一个随后的指令;
(iii)如果出现程序跳转阻塞所述流水线。
16.权利要求8的数字处理器,其中所述多阶段指令流水线包括至少取指令,解码,执行和写回阶段,而且所述处理器进一步包括至少部分地由所述跳转延迟时隙模式所控制的逻辑,所述逻辑适于在对其解码前识别那些将不为所述处理器所执行的指令。
17.权利要求16的数字处理器,其中所述逻辑配置为使得在所述逻辑的输入与输出之间的关键路径被约束于可能的最短时间内进行运算。
18.权利要求8的数字处理器,其中所述处理器包括一个具有一个扩展指令集的用户化RISC处理器。
19.权利要求8的数字处理器,其中所述跳转延迟时隙模式由驻在于所述跳转指令内的多个数据位所定义。
20.权利要求19的数字处理器,其中所述多个数据位包括三个相邻的具有二进制数据的数据位。
21.权利要求19的数字处理器,其中在所述指令流水线内控制指令执行的所述方法包括:
确定是否所述跳转指令的跳转延迟模式是有条件的;
确定是否该跳转模式所依据的参数值是有条件的;
确定是否至少部分地基于所述参数的所述值而执行在所述流水线内的所述指令。
22.权利要求1的方法,进一步包括:
在所述处理器的流水线的解码阶段对所述跳转指令进行解码;
在所述解码阶段中解码所述的多个数据位、以识别相应于所述跳转指令的多个跳转模式之一;
确定是否所述跳转模式是有条件的;
确定这种跳转模式所据以为条件的参数的值;
至少部分地基于所述参数的所述值而确定是否执行在所述流水线内的所述指令。
23.权利要求22的方法,进一步包括在将其解码之前,所述处理器不执行被提取到所述流水线内的那些指令。
CNB008084602A 1999-05-13 2000-05-12 在流水线处理器中用于跳转延迟时隙控制的方法和装置 Expired - Fee Related CN1155883C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US13425399P 1999-05-13 1999-05-13
US60/134,253 1999-05-13
US09/418,663 US6862563B1 (en) 1998-10-14 1999-10-14 Method and apparatus for managing the configuration and functionality of a semiconductor design
US09/418,663 1999-10-14
US52387700A 2000-03-13 2000-03-13
US09/523,877 2000-03-13

Publications (2)

Publication Number Publication Date
CN1360693A CN1360693A (zh) 2002-07-24
CN1155883C true CN1155883C (zh) 2004-06-30

Family

ID=27384545

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008084602A Expired - Fee Related CN1155883C (zh) 1999-05-13 2000-05-12 在流水线处理器中用于跳转延迟时隙控制的方法和装置

Country Status (7)

Country Link
EP (1) EP1190305B1 (zh)
CN (1) CN1155883C (zh)
AT (1) ATE251776T1 (zh)
AU (1) AU5013800A (zh)
DE (1) DE60005830T2 (zh)
TW (1) TW513665B (zh)
WO (1) WO2000070447A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246447B (zh) * 2007-02-15 2011-07-13 国际商业机器公司 用于测量微处理器中的流水线停顿的方法和装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4604984B2 (ja) * 2005-11-25 2011-01-05 株式会社デンソー 車載機器制御システム
US8566568B2 (en) 2006-08-16 2013-10-22 Qualcomm Incorporated Method and apparatus for executing processor instructions based on a dynamically alterable delay
CN101799793B (zh) * 2010-03-23 2012-06-13 深圳市硅格半导体有限公司 闪存控制方法及装置
US20150227371A1 (en) * 2014-02-12 2015-08-13 Imagination Technologies Limited Processors with Support for Compact Branch Instructions & Methods
CN111078293B (zh) * 2018-10-19 2021-03-16 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN111079916B (zh) * 2018-10-19 2021-01-15 安徽寒武纪信息科技有限公司 运算方法、系统及相关产品
IT202100002642A1 (it) * 2021-02-05 2022-08-05 Sk Hynix Inc Metodo implementato da un microcontrollore per gestire una istruzione nop e microcontrollore corrispondente

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4974155A (en) * 1988-08-15 1990-11-27 Evans & Sutherland Computer Corp. Variable delay branch system
JP2508907B2 (ja) * 1990-09-18 1996-06-19 日本電気株式会社 遅延分岐命令の制御方式
US5724566A (en) * 1994-01-11 1998-03-03 Texas Instruments Incorporated Pipelined data processing including interrupts

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246447B (zh) * 2007-02-15 2011-07-13 国际商业机器公司 用于测量微处理器中的流水线停顿的方法和装置

Also Published As

Publication number Publication date
AU5013800A (en) 2000-12-05
EP1190305A2 (en) 2002-03-27
WO2000070447A3 (en) 2001-05-25
DE60005830D1 (de) 2003-11-13
EP1190305B1 (en) 2003-10-08
ATE251776T1 (de) 2003-10-15
DE60005830T2 (de) 2004-07-29
CN1360693A (zh) 2002-07-24
WO2000070447A2 (en) 2000-11-23
TW513665B (en) 2002-12-11

Similar Documents

Publication Publication Date Title
US11900124B2 (en) Memory-network processor with programmable optimizations
Clark et al. Application-specific processing on a general-purpose core via transparent instruction set customization
Schoeberl et al. Towards a time-predictable dual-issue microprocessor: The Patmos approach
CN1716189A (zh) 设计用户可定制的处理器的方法以及装置
Oh et al. Recurrence cycle aware modulo scheduling for coarse-grained reconfigurable architectures
TWI526848B (zh) 用於控制多媒體擴充控制及狀態暫存器(mxcsr)的方法及裝置
CN1155883C (zh) 在流水线处理器中用于跳转延迟时隙控制的方法和装置
CN1217261C (zh) 用于处理器流水线分段法及再装配的方法以及装置
TWI556163B (zh) 用以轉譯向量指令的系統、設備與方法
Deest et al. One size does not fit all: Implementation trade-offs for iterative stencil computations on FPGAs
Uhrig et al. A two-dimensional superscalar processor architecture
Gorius et al. Design exploration of RISC-V soft-cores through speculative high-level synthesis
CN1384934A (zh) 流水线处理器内用于松散寄存器编码的方法和装置
Whitham et al. Using trace scratchpads to reduce execution times in predictable real-time architectures
CN1167005C (zh) 用于流水线化处理器中跳转控制的方法及装置
CN1206145A (zh) 带有流水线处理电路的信号处理器及其方法
US20060168431A1 (en) Method and apparatus for jump delay slot control in a pipelined processor
Samanta et al. A Comprehensive Survey and Comparison on Pipelined RISC System Architectures
Lee et al. Automatic instruction set design through efficient instruction encoding for application-specific processors
Mattos et al. The molen femtojava engine
Capalija Microarchitecture and FPGA implementation of the multi-level computing architecture
Reconfiguration DesignCon 2003
Sýkora Programmable and Customizable Hardware Accelerators for Self-adaptive Virtual Processors in FPGA

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SYNOPSYS INC.

Free format text: FORMER OWNER: ARC INTERNAT U. S. HOLDINGS INC.

Effective date: 20130710

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130710

Address after: American California

Patentee after: Synopsys Inc.

Address before: American California

Patentee before: ARC Internat U. S. Holdings Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20040630

Termination date: 20160512

CF01 Termination of patent right due to non-payment of annual fee