CN1295597C - 多发布处理器 - Google Patents

多发布处理器 Download PDF

Info

Publication number
CN1295597C
CN1295597C CNB038086794A CN03808679A CN1295597C CN 1295597 C CN1295597 C CN 1295597C CN B038086794 A CNB038086794 A CN B038086794A CN 03808679 A CN03808679 A CN 03808679A CN 1295597 C CN1295597 C CN 1295597C
Authority
CN
China
Prior art keywords
issue
groove
register
group
processor
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
CNB038086794A
Other languages
English (en)
Other versions
CN1647032A (zh
Inventor
J·A·J·雷坦
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.)
Nytell Software LLC
Original Assignee
Koninklijke Philips Electronics NV
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
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1647032A publication Critical patent/CN1647032A/zh
Application granted granted Critical
Publication of CN1295597C publication Critical patent/CN1295597C/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
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)
  • Power Sources (AREA)
  • Saccharide Compounds (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Advance Control (AREA)

Abstract

一种多发布处理器,包括多个发布槽(UC0、UC1、UC2和UC3)(多个发布槽中的每个都具有多个功能单元(FU0、FU1和FU2))和多个可保持寄存器(1-33和101-117)。所述的多个发布槽包括第一组发布槽(UC1、UC2和UC3)和第二组发布槽(UC0),并且寄存器堆(RF0和RF1)可以由多个发布槽(UC0、UC1、UC2和UC3)访问。在第一组发布槽(UC1、UC2和UC3)中的多个可保持寄存器(1-33)中的至少一部分的位置与在第二组发布槽(UC0)中的多个可保持寄存器(101-117)中的至少一个对应部分的位置不同。所述的可保持寄存器可以防止未使用的功能单元的输入变化,该变化将导致不必要的功率耗损。然而,这样会增加在中断处理期间必须保存的状态的数量。通过改变用于不同发布槽的可保持寄存器的位置,在中断处理期间可能只需要保存较少的状态,同时保持显著的功耗降低和改善的性能。

Description

多发布处理器
技术领域
本发明涉及一种多发布(multi-issue)处理器,包括:多个发布槽(issue slots),多个发布槽中的每个包括多个功能单元和多个可保持寄存器,所述的多个发布槽包括第一组发布槽和第二组发布槽;以及可以由多个发布槽访问的一个寄存器堆。
背景技术
多发布处理器呈现出了大量并行硬件,以便在一个处理器周期中允许多个操作的并行执行,从而利用程序中的指令级并行度。多发布处理器的例子是VLIW(超长指令字)处理器和超标量(superscalar)处理器。在VLIW处理器的情形下,软件程序包含与将被并行执行的操作有关的全部信息,并且这些操作被组装成为一个很长的指令。编译器确保考虑到操作之间的全部相关性,并确保不会发生资源冲突。除了这一程序信息,硬件不需要任何附加信息就可以正确地执行程序,这导致硬件相对简单。在超标量处理器的情形下,将被执行的软件作为一个由连续的一系列操作组成的程序而被提供。在运行时间,处理器硬件自身确定存在哪些操作相关性,并且根据这些相关性决定并行执行哪些操作,同时确保不会发生资源冲突。一个相对简单的编译器足以将高级编程语言翻译为顺序代码,但是处理器硬件是很复杂的。
在多发布处理器中,在发布槽中组织负责执行这些操作的并行硬件。每个发布槽都包含一个或多个执行实际操作的功能单元。通常,在每个处理器周期中,在每个发布槽中的一个功能单元上开始一个操作。在一些处理器中,在一个发布槽中设置多个功能单元,以作为最大可用并行度和指令宽度成本(在VLIW处理器情形下)或硬件复杂度(在超标量处理器情形下)之间的折衷。
因为在每个时钟周期中,最多可以在每个发布槽的一个功能单元上开始一个操作,所以在该发布槽中在给定的处理器周期内没有被使用的功能单元可能会浪费功率。即使在这些功能单元的输出无关紧要的情况下,如果这些功能单元的输入在它们未被使用的时间内改变,则比起被使用时,它们仍将消耗可观的功率。
可以通过在发布槽内的所用功能单元的输入端处设置可保持寄存器(即在不同输入的情况下其状态保持不变的寄存器)来消除功率浪费。在不使用这些功能单元的时候,这些可保持寄存器将使功能单元的输入不变。因为这些功能单元的输入保持不变,没有任何组合门被进行切换并且不会发生动态功率损耗。这些可保持寄存器例如可以通过时钟选通来实现。这些寄存器另一个优点是,它们形成的附加的流水线级(pipeline stage)允许以较高的时钟频率运行处理器。将寄存器添加到功能单元输入的全部的输入端处的一个缺点是增加了在中断期间必须保存的状态的数量。一个中断允许处理器很快地响应外部事件,并且它使处理器暂时推迟当前程序跟踪的进一步执行,并且替代地执行另一个跟踪。被推迟的跟踪的状态必须被保存,这样,当已经服务了中断后,处理器可以恢复它的原始状态并且可以正确地继续进行原始跟踪。为了获得可预测的并且短的中断延迟,必须总是能够在需要时中断处理器。这在实时应用程序中是尤其重要的。在该程序中的任意点中断处理器可能意味着必须保存大量的状态。
于2000年10月18日提交的非预先公开的欧洲专利申请00203591.3[代理人文档PHNL000576]提供了用于减少在中断期间必须保存的状态的数量的解决方案。应用了第二压缩指令组,其被使用于中断服务例程,并且仅使用处理器资源的有限集合。在中断的情形下,仅仅保存由第二压缩指令组使用的处理器资源的有限集合的状态就足够了,同时简单地冻结全部其它资源的状态。然而,当寄存器被设置在该有限资源集合中的每个功能单元的全部输入端处的时候,由第二压缩指令组使用的资源仍然具有大量在中断期间必须保存和恢复的状态。
发明内容
本发明的一个目的是提供一个解决方案,以便更进一步降低在多发布处理器中断处理期间必须保存的状态的数量,同时保持功耗的显著降低和改善的性能。
这个目的利用所述的这种多发布处理器实现,所述多发布处理器包括:多个发布槽,所述多个发布槽中的每一个发布槽都包括多个功能单元和多个可保持寄存器,所述多个可保持寄存器被安置在所述功能单元的输入端处,所述多个发布槽包括第一组发布槽和第二组发布槽;和可由多个发布槽访问的寄存器堆,其中在第一组发布槽中的多个可保持寄存器的至少一部分的位置与在第二组发布槽中的多个可保持寄存器的至少一个对应部分的位置不同。
理想地,所述的可保持寄存器被设置在发布槽的内的每个功能单元的全部的输入端处。这样保证没有使用的功能单元的每个输入将保持不变,并且不会发生不必要的功率耗损。然而,这会增加在中断处理期间必须保存的状态的数量。通过改变用于不同发布槽的可保持寄存器的位置,并且不在每个功能单元的全部输入端的前面设置可保持寄存器,只需要在中断处理期间保存较少状态。这可能导致功率消耗的较少的降低或减少在性能方面的提高。根据应用程序的类型可以在这些需求之间做出一个最佳的选择。
本发明的一个实施例的特征在于,多发布处理器还包括一个第一指令组装置,该装置可以访问第一组发布槽,和第二指令组装置,该装置可以访问第二组发布槽。这个实施例的一个优点是可以使发布槽中的可保持寄存器的位置依赖于控制这个发布槽的指令组装置。如果第二指令组装置被用于一个中断服务例程,在第二组发布槽中的可保持寄存器可以被定位成最佳地降低在中断处理期间必须被保存的状态的数量。然而,这个解决方案不是降低功率消耗的最佳的解决方案。可保持寄存器的定位仍然产生能够提高处理器的时钟频率一个附加的流水线级。许多中断需要非常简单的中断服务例程,因此使用一组有限的发布槽的压缩的第二指令组就足够了。所以非最佳的功率消耗降低仅仅适用于多发布处理器内部的一小组发布槽。在中断处理期间不使用第一组发布槽,并且作为结果,不必保存它们的状态。可保持寄存器可以被设置成最佳地降低功率消耗,并且通过产生一个附加的流水线级提高时钟频率。对于整个处理器,这将导致在提高性能、降低功率消耗和减少状态保存开销之间的平衡考虑。
本发明的一个实施例的特征在于,在第一组发布槽中,多个可保持数据寄存器的位置是在所述功能单元的单个数据输入端处,而在第二组发布槽中,多个可保持数据寄存器的位置是在所述功能单元的公共数据输入端处。这个实施例的一个优点是大大降低了在中断处理期间必须被保存的状态的数量,因为可保持寄存器不是位于第二组发布槽的诸功能单元的所有单独输入端处,而是仅仅在它们的公共输入端处。然而,使用第二组发布槽的一个发布槽的一个功能单元会导致该发布槽的其它功能单元的输入的改变,因此导致不必要的功率耗损。如果整个发布槽都没有被使用,诸功能单元将不消耗功率。在第一组发布槽中,可保持寄存器被定位在诸功能单元的全部输入端处,以便最佳地降低功率消耗,这导致功率消耗的整体的显著降低。此外,在第一和第二组发布槽中的可保持寄存器在体系结构中形成一个附加的流水线级,这允许处理器运行于一个较高的时钟频率。结果,在降低功率消耗、提高性能和减少中断处理期间所必须保存的状态的数量之间获得一个很好的折衷。
附图说明
所说明的实施例的特征将进一步被阐述,并且参考附图而被说明:
图1是一个VLIW处理器的示意图。
图2是一个仅由第一指令组使用的发布槽UC1、UC2和UC3的示意图。
图3是在中断处理期间由第二指令组使用的发布槽UC0的示意图。
具体实施方式
参考图1,示意方框图说明了一个VLIW处理器,该处理器包括多个发布槽(包括发布槽UC0、UC1、UC2和UC3)和一个包括寄存器堆部分RF0和RF1的分布式寄存器堆。所述的处理器具有一个控制器SQ和一个用于耦合寄存器堆部分RF0和RF1以及发布槽UC0、UC1、UC2和UC3的连接网络CN。所述的发布槽UC0、UC1、UC2和UC3由第一指令组使用,并且该第一指令组包括通常的VLIW指令。发布槽UC0是唯一的由第二指令组使用的发布槽。该第二指令组被用于中断服务例程。
参考图2,示意方框图说明了发布槽UC1、UC2和UC3。参考图3,示意方框图说明了发布槽UC0。现在参考图2和图3,每个发布槽包括一个解码器DEC、一个时间形态(time shape)控制器TSC、一个输入路由网络IRN、一个输出路由网络ORN和多个功能单元,所述的多个功能单元包括功能单元FU0、FU1和FU2。解码器DEC被耦合到时间形态控制器TSC和功能单元FU0、FU1和FU2。输入路由网络IRN被耦合到功能单元FU0、FU1和FU2。输出网络网络ORN也被耦合到功能单元FU0、FU1和FU2。解码器DEC对在每个时钟周期中被加到发布槽的操作O进行解码。解码步骤的结果是操作数寄存器索引ORI,并且解码器DEC将这些索引传递到连接网络CN,如图1所示。解码步骤的更进一步结果是结果文件索引RFI和寄存器索引RI。解码器DEC将这些索引传递到时间形态控制器TSC。按照必须在其上执行所述操作的功能单元的输入/输出行为,时间形态控制器TSC将结果文件索引RFI和寄存器索引RI延迟适当的数量。随后,时间形态控制器TSC将结果文件索引RFI和寄存器索引RI传递到连接网络CN,如图1所示。解码器DEC也利用耦合SEL选择功能单元FU0、FU1和FU2中的一个。此外,解码器DEC利用耦合OPT将有关必须被执行的操作的信息传递到功能单元FU0、FU1和FU2。输入路由网络IRN将用于发布槽UC1、UC2和UC3的操作数数据OD传递到功能单元FU0,FU1和FU2的输入端。功能单元FU0、FU1和FU2将它们的输出数据传送到输出路由网络ORN,并且随后输出路由网络ORN将结果数据RD传送到通信网络CN,参见图1。
参考图2,在功能单元FU0、FU1和FU2的数据和控制输入端处直接提供了可保持寄存器1-27。可保持寄存器1-5、11-15、21和23被称为可保持数据寄存器,因为它们被定位于功能单元FU0、FU1和FU2的数据输入端处。当功能单元没有被使用的时候,可保持寄存器1-27将使功能单元FU0,FU1和FU2的输入不变。结果,没有组合门被切换并且不会发生功率耗损。此外,为了防止结果文件索引RFI和寄存器索引RI发生不必要的改变并从而导致不必要的功率耗损,可保持寄存器29、31和33被直接放置在时间形态控制器TSC之后。这个实施例的一个优点是它降低了功率消耗。在每个时钟周期中,最多可以在功能单元FU0、FU1和FU2其中之一上开始一个操作,并且大多数的功能单元在一个单一处理器周期中结束它们的操作。如果由于通过输入路由网络IRN或解码器DEC被传送的数据而使未被使用的功能单元的输入发生改变,则当它们没有被使用的时候这些功能单元仍将消耗可观的功率,尽管它们的输出是无关紧要的。添加可保持寄存器1-33会产生附加状态,但是这对于发布槽UC1、UC2和UC3来讲是无关紧要的。在中断期间,只要冻结它们的状态即可。所述的可保持寄存器1-33仅承担附加的区域。在相应的功能单元没有被使用的情形下,由于使用时钟选通来将寄存器保持在它们的不活动状态,这些寄存器不浪费附加功率。
参考图3,发布槽UC0是唯一由第二指令组使用的发布槽,其被用于中断服务例程。为了保证快速的中断响应,最小化在中断处理期间必须被保存的状态的数量是重要的。这可以通过将可保持寄存器放置在功能单元FU0、FU1和FU2的公共输入端处来实现。因此,可保持寄存器101、103和105被直接地放置在发布槽UC0的输入端处,而不是在发布槽UC0中的每个功能单元FU0、FU1和FU2的数据输入端处。此外,可保持寄存器117被放置在解码器DEC的输出端处(而不是在发布槽UC0中的每个功能单元FU0、FU1和FU2的输入端处),以用于传送必须被执行的操作OPT的类型的信息。在时间形态控制器TSC的结果文件索引输入和寄存器索引输入终端处同样定位了可保持寄存器113和115,而不是在它们的输出端处,这节省了一个可保持寄存器。在每个功能单元FU0、FU1和FU2的输入端处的可保持寄存器107,109和111的定位保持不变,因为这些功能单元输入没有被耦合到解码器DEC的公共的输出端。
在发布槽UC0中的可保持寄存器的定位的一个优点是,与由于发布槽UC1、UC2和UC3中的可保持寄存器而呈现的状态的数量相比,在中断期间必须被保存的状态的数量被大大减少。使用发布槽UC0中的功能单元FU0、FU1和FU2其中之一,导致发布槽UC0的其它功能单元的输入改变,并因此在这个发布槽中产生不必要的功率耗损。如果整个发布槽都没有被使用,可保持寄存器101-111和117将防止发布槽UC0的功能单元FU0、FU1和FU2的功率消耗。
对于发布槽UC0、UC1、UC2和UC3,可保持寄存器的位置导致在提高性能、降低功率消耗和减少状态开销之间的平衡考虑。许多中断需要非常简单的中断服务例程,因此只需要使用有限的第二组发布槽的的压缩第二指令组就足够了。在发布槽的较大的子集中,所述的可保持寄存器可以如图2所示地被定位,以便最佳地降低功率消耗,这导致功率消耗的整体的显著降低。通过如图3所示地在发布槽中定位由第二指令组使用的可保持寄存器,在中断处理期间必须被保存的状态的数量被大大降低。此外,被添加到发布槽UC0、UC1、UC2和UC3的可保持寄存器在体系结构中形成一个附加的流水线级,这允许处理器以较高的时钟频率运行。再参考图1,在发布槽UC0、UC1,UC2和UC3中被定位的可保持寄存器将现有的数据通路分成两部分,这减少了执行一个部分的数据通路所需的时间,并且允许提高处理器的时钟频率。
一个超标量处理器还包括可以并行执行多个操作的多个发布槽,和VL IW处理器的情况一样。因此,在这个部分中描述的VLIW处理器的实施例的原则也可以应用于超标量处理器。通常,当与超标量处理器相比的时候,VLIW处理器可能具有更多发布槽。VLIW处理器的硬件与超标量处理器相比简单一些,这导致较好的可扩展的体系结构。由于本发明,尤其是发布槽的数量和每个发布槽中的功能单元的数量将决定功率消耗的相对的降低。
应当注意到上述实施例是说明性的,而不是对本发明的限定,并且对本领域的普通技术人员来讲,在没有脱离所附权利要求书的范围的情况下,将能设计出许多替换实施例。在权利要求书中,括号中的任何附图标记都不是对权利要求的限定。术语″包括″不排除存在除了在权利要求中列出的以外的元件或步骤。元件前面的术语″一个″不排除存在多个这样的元件。在列举了若干设备的装置权利要求中,若干这些设备可以被包含在同一个硬件项中。在互相不同的从属权利要求中引用某些手段这一事实并不表示这些手段不能被组合使用以获益。

Claims (3)

1.一种多发布处理器,包括:
多个发布槽,所述多个发布槽中的每一个发布槽都包括多个功能单元和多个可保持寄存器,所述多个可保持寄存器被安置在所述功能单元的输入端处,
所述多个发布槽包括第一组发布槽和第二组发布槽;和
可由多个发布槽访问的寄存器堆;
其中,在第一组发布槽中的多个可保持寄存器的至少一部分的位置与在第二组发布槽中的多个可保持寄存器的至少一个对应部分的位置不同。
2.根据权利要求1的多发布处理器,包括:
可以访问至少该第一组发布槽的第一指令组装置;
可以访问该第二组发布槽的第二指令组装置。
3.根据权利要求1或2的多发布处理器,其中:
在第一组发布槽中,多个可保持数据寄存器的位置是在所述功能单元的单个数据输入端处,而在第二组发布槽中,多个可保持数据寄存器的位置是在所述功能单元的公共数据输入端处。
CNB038086794A 2002-04-18 2003-04-01 多发布处理器 Expired - Fee Related CN1295597C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02076525 2002-04-18
EP02076525.1 2002-04-18

Publications (2)

Publication Number Publication Date
CN1647032A CN1647032A (zh) 2005-07-27
CN1295597C true CN1295597C (zh) 2007-01-17

Family

ID=29225684

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038086794A Expired - Fee Related CN1295597C (zh) 2002-04-18 2003-04-01 多发布处理器

Country Status (9)

Country Link
US (1) US8095780B2 (zh)
EP (1) EP1499960B1 (zh)
JP (1) JP4194953B2 (zh)
KR (1) KR20040111532A (zh)
CN (1) CN1295597C (zh)
AT (1) ATE472134T1 (zh)
AU (1) AU2003214556A1 (zh)
DE (1) DE60333089D1 (zh)
WO (1) WO2003088038A2 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
US10802987B2 (en) 2013-10-15 2020-10-13 Mill Computing, Inc. Computer processor employing cache memory storing backless cache lines
US9747238B2 (en) * 2014-06-23 2017-08-29 Mill Computing, Inc. Computer processor employing split crossbar circuit for operand routing and slot-based organization of functional units
KR102593320B1 (ko) * 2016-09-26 2023-10-25 삼성전자주식회사 전자 장치, 프로세서 및 그 제어 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US6026479A (en) * 1998-04-22 2000-02-15 Hewlett-Packard Company Apparatus and method for efficient switching of CPU mode between regions of high instruction level parallism and low instruction level parallism in computer programs

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
JP2655615B2 (ja) 1988-12-08 1997-09-24 日本電気株式会社 情報処理装置
US5832202A (en) 1988-12-28 1998-11-03 U.S. Philips Corporation Exception recovery in a data processing system
US6002880A (en) * 1992-12-29 1999-12-14 Philips Electronics North America Corporation VLIW processor with less instruction issue slots than functional units
JP2987308B2 (ja) 1995-04-28 1999-12-06 松下電器産業株式会社 情報処理装置
US6510510B1 (en) * 1996-01-25 2003-01-21 Analog Devices, Inc. Digital signal processor having distributed register file
US6317820B1 (en) 1998-06-05 2001-11-13 Texas Instruments Incorporated Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism
US6192384B1 (en) * 1998-09-14 2001-02-20 The Board Of Trustees Of The Leland Stanford Junior University System and method for performing compound vector operations
GB2343269A (en) 1998-10-30 2000-05-03 Ericsson Telefon Ab L M Processing arrangements
US7114056B2 (en) * 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US6745336B1 (en) * 1999-05-20 2004-06-01 Princeton University System and method of operand value based processor optimization by detecting a condition of pre-determined number of bits and selectively disabling pre-determined bit-fields by clock gating
EP1124181B8 (en) * 2000-02-09 2012-03-21 Texas Instruments Incorporated Data processing apparatus
DE10008008C1 (de) 2000-02-22 2001-08-23 Fujitsu Siemens Computers Gmbh Prozessor für die Bearbeitung von Unterbrechungsanforderungen und Prozessor für die Bearbeitung von Ereignissen
JP5185478B2 (ja) 2000-02-29 2013-04-17 富士通セミコンダクター株式会社 パイプライン処理方法並びにその方法を利用するパイプライン処理装置
EP1132813A3 (en) 2000-02-29 2003-12-17 Fujitsu Limited Computer with high-speed context switching

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US6026479A (en) * 1998-04-22 2000-02-15 Hewlett-Packard Company Apparatus and method for efficient switching of CPU mode between regions of high instruction level parallism and low instruction level parallism in computer programs

Also Published As

Publication number Publication date
JP4194953B2 (ja) 2008-12-10
EP1499960B1 (en) 2010-06-23
AU2003214556A1 (en) 2003-10-27
WO2003088038A3 (en) 2003-12-24
WO2003088038A2 (en) 2003-10-23
KR20040111532A (ko) 2004-12-31
DE60333089D1 (de) 2010-08-05
ATE472134T1 (de) 2010-07-15
AU2003214556A8 (en) 2003-10-27
US8095780B2 (en) 2012-01-10
CN1647032A (zh) 2005-07-27
EP1499960A2 (en) 2005-01-26
US20050132170A1 (en) 2005-06-16
JP2005523499A (ja) 2005-08-04

Similar Documents

Publication Publication Date Title
US6226738B1 (en) Split embedded DRAM processor
US7398374B2 (en) Multi-cluster processor for processing instructions of one or more instruction threads
US8266413B2 (en) Processor architecture for multipass processing of instructions downstream of a stalled instruction
CA2337172C (en) Method and apparatus for allocating functional units in a multithreaded vliw processor
Hu et al. An approach for implementing efficient superscalar CISC processors
KR102329371B1 (ko) 실행 메카니즘들 사이의 전환 제어
US20040205326A1 (en) Early predicate evaluation to reduce power in very long instruction word processors employing predicate execution
CN103443769A (zh) 用于异构多核心系统的动态核心选择
US6298431B1 (en) Banked shadowed register file
Kemp et al. PEWs: A decentralized dynamic scheduler for ILP processing
EP1146420A1 (en) Method and apparatus for splitting packets in a multithreaded VLIW processor
US8151097B2 (en) Multi-threaded system with branch
US20010054056A1 (en) Full time operating system
CN115374923A (zh) 基于risc-v扩展的通用神经网络处理器微架构
CN1295597C (zh) 多发布处理器
EP1999575B1 (en) Method and apparatus for simultaneous speculative threading
WO2024131071A1 (zh) 一种处理指令的方法、系统、设备和非易失性可读存储介质
US7290157B2 (en) Configurable processor with main controller to increase activity of at least one of a plurality of processing units having local program counters
US20020087844A1 (en) Apparatus and method for concealing switch latency
US20020156999A1 (en) Mixed-mode hardware multithreading
US9003168B1 (en) Control system for resource selection between or among conjoined-cores
Robatmili et al. Exploiting criticality to reduce bottlenecks in distributed uniprocessors
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
Bunchua et al. Reducing operand transport complexity of superscalar processors using distributed register files
EP1620792A2 (en) Parallel processing system

Legal Events

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

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20070914

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

Effective date of registration: 20070914

Address after: Holland Ian Deho Finn

Patentee after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Patentee before: Koninklijke Philips Electronics N.V.

ASS Succession or assignment of patent right

Owner name: NITAI SOFTWARE CO., LTD.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20120321

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

Effective date of registration: 20120321

Address after: Delaware

Patentee after: Nytell Software LLC

Address before: Holland Ian Deho Finn

Patentee before: Koninkl Philips Electronics NV

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

Granted publication date: 20070117

Termination date: 20130401