CN101553780A - Vliw处理器的虚拟功能单元 - Google Patents
Vliw处理器的虚拟功能单元 Download PDFInfo
- Publication number
- CN101553780A CN101553780A CNA2007800455522A CN200780045552A CN101553780A CN 101553780 A CN101553780 A CN 101553780A CN A2007800455522 A CNA2007800455522 A CN A2007800455522A CN 200780045552 A CN200780045552 A CN 200780045552A CN 101553780 A CN101553780 A CN 101553780A
- Authority
- CN
- China
- Prior art keywords
- groove
- vliw
- processor
- unit
- virtual
- 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.)
- Pending
Links
- 230000000977 initiatory effect Effects 0.000 claims description 46
- 238000003860 storage Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims 1
- 230000007717 exclusion Effects 0.000 claims 1
- 230000006386 memory function Effects 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 5
- 230000008901 benefit Effects 0.000 abstract description 4
- 230000006872 improvement Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 6
- 102100026693 FAS-associated death domain protein Human genes 0.000 description 5
- 101000911074 Homo sapiens FAS-associated death domain protein Proteins 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000011068 loading method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent 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/3891—Concurrent 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
提供了一种在静态调度VLIW处理器中采用的虚拟功能单元设计。处理器调度器中出现的、该功能单元的“虚拟”视图超过了该功能单元的物理实例的数目。因此,针对太困难或成本太高以致无法进行物理复制的那些类型的功能单元,可以实现显著的处理器性能改进。同不具有虚拟视图的处理器和受限于该处理器的簇的子集的物理单元相比,通过向VLIW处理器的不同簇提供不同的虚拟视图,编译器/调度器可以为处理器产生更高效的代码。编译器/调度器确保了与具有多个虚拟视图的功能单元的操作的调度有关的约束得以满足。不分簇的处理器也受益于虚拟视图。通过在物理功能单元的多个发起槽中提供多个虚拟视图,编译器/调度器更自由地调度功能单元的操作。
Description
技术领域
本发明涉及微型计算机系统,更具体地,涉及具有带旁路网络的许多发起槽的VLIW处理器,并且其中,针对带旁路网络的两个或更多个发起槽来虚拟化单个物理功能处理器单元。
背景技术
在过去的50年中,处理器设计已取得了显著的进步。总体上增大半导体电路密度允许使用更少的组件并以降低了的成本实现更高的性能级别。当利用CMOS工艺技术来实现时,低功率的实现方式变得可能。
针对音频和视频处理的嵌入式消费者市场是受成本驱动的。最初利用专用硬件实现了这样的设备,该专用硬件可以以比利用可编程处理器的可能价格更低的价格提供所需的性能。随后,较新音频和视频标准的增加的复杂度使可编程性在经济方面变得更加可行,并且由专门用途处理器提供的更高性能级别使可编程性变得极为可行。
在过去,可以利用专用硬件经济地实现MPEG2视频处理。但是更新、更高性能的H.264/AVC视频处理目前最好由专门用途(领域)处理器来完成。因此,最近的消费设备目前包括超过1960年代IBM大型机相应性能级别的可编程处理性能级别。低功率处理器实现方式使电池供电的移动电话和其他便携式设备变得可行。
TM3270是NXP(前飞利浦)半导体TriMedia架构族中的最新的媒体处理器。TM3270是针对视频和音频处理的专门用途领域处理器并针对嵌入式消费者市场提供了可编程媒体处理平台。详见J.W.van deWaerdt,The TM3270 Media-processor,pp.183,October 2006,ISBN90-9021060-1,PhD Thesis(BibTeX)。在互联网上从http://ce.et.tudelft.nl/publicationfiles/1228_587_thesis_JAN_WILLEM.pd f下载。
典型地,超长指令字(VLIW,very long instruction word)处理器是静态调度处理器,例如NXP TM3270和德克萨斯仪器公司TMS320C6x。通过编译器/调度器在“编译”时间而非“执行”时间完成向VLIW处理器发起槽和功能单元的操作的分配。通过诸如超标量(super-scalar)处理器之类的运行时间调度处理器来完成“执行”时间处的分配。因此,编译器/调度器必须详细地了解VLIW处理器的发起槽和功能单元。
如图1A所示,在典型的4发起槽的VLIW处理器中,四种不同类型的功能单元可用于VLIW编译器/调度器。例如,发起槽1:算术逻辑单元(ALU);发起槽2:浮点算术单元(FALU);发起槽3:用于桶形移位器操作的移位器;以及,发起槽4:用于加载和存储操作的LS。
源操作数将来自统一寄存器堆,并且,操作结果被放入相同的寄存器堆中。如果每一功能单元采用单个周期来执行操作,则这里能够更简单地解释编译器/调度器的功能。参见表I。每个NOP指示无操作且由于关联发起槽没有执行操作而成为资源浪费。因此,插入越少的NOP就越好。
表I
发起槽1 | 发起槽2 | 发起槽3 | 发起槽4 | |
VLIW i: | ADD r2r3->r4 | NOP | NOP | LD32[r5]->r6 |
VLIW i+1: | NOP | NOP | SLL r7r6->r8 | NOP |
表I中的代码表示由处理器执行的两个顺序VLIW指令。每一VLIW指令可以调用被分配给特定发起槽的四个操作。某些是NOP操作。例如,第一指令(i)的发起槽4中的LD32操作产生下一接续VLIW指令(i+1)中发起槽3中的SLL操作将会需要的结果。
在该理想示例中,由于所有功能单元仅需要单个周期来执行其操作,因而每一操作的结果可用于接续的VLIW指令中的所有其他操作。通过寄存器堆在功能单元之间传达操作数数据。但是这样的寄存器传达可能会在处理器中创建关键时间路径(critical timing path)。在通常的实践中,如果接续的VLIW指令(指令i+1)中的操作需要操作结果,则如图1A所示,必须通过旁路网络来传达该操作结果。如果在后续的VLIW指令(i+2、i+3、i+4等)中使用该操作结果,则可以通过寄存器堆来传达该操作结果。如果全部传达都必须通过寄存器堆,则旁路网络的使用缓和了可能会出现的关键时间路径。
可以通过增加发起槽的数目来构造更高性能的VLIW处理器。例如,具有更多相应功能单元的8发起槽的处理器同4发起槽的处理器相比可以提供双倍的性能。参见图1B。附加的四个发起槽(槽5-槽8)可能具有以下功能单元:发起槽5:ALU;发起槽6:FALU;发起槽7:移位器;以及,发起槽8:另一移位器。
8发起槽的处理器的旁路网络远比4发起槽的机器中的旁路网络更复杂和昂贵。这样的高复杂度旁路网络可以容易地变成8发起槽的处理器设计中的关键时间路径。因此,德克萨斯仪器VLIW处理器使用簇(clustering),其中,将八个发起槽分组进四个发起槽的两个簇中,四个发起槽例如是发起槽1-4和5-8。参见图1C。这些簇中的每一个都具有其自身的旁路网络,但仅有4发起槽的机器的复杂度。这样的旁路网络复杂度的降低阻止了旁路网络变成处理器工作中的关键时间路径。
这样的簇是以性能和功能为代价的。不能通过下一接续VLIW指令(i+1)将操作结果传达给另一簇中的另一操作。在两簇的旁路网络中没有提供所需的旁路路径。簇间的传达必须通过统一寄存器堆,并且向操作数数据变得可用的时间添加了一个附加周期时间。
例如,如果指令中的FADD操作需要来自发起槽5的指令(i)中的ADD操作,则VLIW编译器/调度器应当使用其对发起槽簇的了解,来分配下一指令(i+1)以通过例如发起槽6中的FADD操作在相同簇中进行FADD操作。如果将该FADD操作(例如,发起槽2中的FADD操作)分配给了另一集群,则可能必须延迟直到达到指令(i+2)为止。这相当于由必须流经统一寄存器堆的数据所引起的等待时间。因此,当编译器/调度器配备有与处理器的拓扑和组织有关的信息时,可以在两个而非三个VLIW指令中执行ADD-FADD操作序列。尽管采用了簇,但在其他情况下也可以实现类似的进步。
簇有助于缓和旁路网络加载和复杂度。簇还可以应用于针对不同集群的各自寄存器堆,或者与簇间传达机制相结合以将操作数数据从一个簇传递给另一个簇。统一寄存器堆提供了一种尽管以一个指令延迟为代价但使寄存器能够加载、安置和被读取的、在簇之间传递数据的方式。
每一LS单元复杂且成本较高,因此,为了簇而复制第二LS单元是异常昂贵的。可在每个VLIW指令中维持两个加载或存储操作的多端口LS单元是复杂的,并且,LS单元通常需要大量的芯片有效面积,可能完全无法获得所需的额外面积。如果8发起槽的处理器在簇2中没有使用复制的LS,则簇2不能被指示来进行任何加载或存储操作。
所需要的是一种支持许多发起槽功能单元的复制和性能进步的方式,在该发起槽功能单元中,旁路网络簇已用于在没有显著地牺牲性能的前提下降低复杂度。
发明内容
在示例实施例中,在静态调度VLIW处理器中采用了虚拟功能单元。该设计向处理器调度器提供了功能单元的“虚拟”视图,其中,虚拟视图的数量超过了功能单元的物理实例的数量。
本发明的一个优点在于,针对太困难或成本太高以致无法进行物理复制的那些类型的功能单元,来实现显著的处理器性能改进。
本发明的另一优点在于,可以利用旁路网络簇来简化VLIW处理器。
本发明的又一优点在于,提供了一种编译器/调度器,能够对VLIW处理器中两个或更多个发起槽提供虚拟化。
本发明的以上概述并不意在表示本发明的每一个所公开的实施例或每个方面。在以下的附图和详细描述中提供了其他方面和示例实施例。
附图说明
结合附图,考虑对本发明各种实施例的以下详细描述,可以更完整地理解本发明,在附图中:
图1A是带旁路网络的四发起槽处理器的功能框图;
图1B是带单个复杂旁路网络的八发起槽处理器的功能框图;
图1C是带两个小的4槽旁路网络簇的八发起槽处理器的功能框图;
图2是本发明的八发起槽处理器实施例的功能框图,其中,该处理器实施例带有可虚拟访问相同加载-存储单元的两个4槽旁路网络簇;
图3是可被虚拟映射到图2的两个簇中的加载-存储设备的功能框图;
图4是本发明的、带有单个旁路网络的八发起槽处理器实施例的功能框图,并且其中,已针对两个发起槽虚拟化了一个加载-存储单元。
具体实施方式
尽管本发明适于各种修改和备选形式,但在附图中已作为示例示出了本发明的细节并将详细描述这些细节。然而,应当理解的是,其意图不在于将本发明限于所描述的具体实施例。相反,其意图在于覆盖落入由所附权利要求所限定的本发明精神和范围内的所有修改、等同替代方式和备选方式。
超长指令字(VLIW)处理器具有针对每一指令进行并行操作的功能处理单元。通过各个发起槽(例如,八个发起槽)来操作VLIW指令。对于每个发起槽,可以使用多个功能单元。这里,为了简单起见,对每个发起槽的一个功能单元进行描述。NXP TriMedia架构是对于每个发起槽具有多个功能单元的设计的一个示例。来自取指令单元(IFU)的VLIW指令的对应部分告知各自的ALU、FALU、移位器和加载-存储单元到何处获得其输入操作数以及利用这些操作数做什么。旁路网络使一个功能单元的结果可用于正好下一指令周期中的另一功能单元。统一寄存器堆在两个指令周期过后才会被读取。带有能够在任何和所有八个发起槽当中进行通信的单个旁路网络的8槽VLIW处理器对于大多数应用来说成本太高且太过复杂。因此,代之以使用更小的4槽旁路网络簇。
图2示出了本发明的一个VLIW处理器实施例,这里由通用附图标记200来表示。VLIW指令由八个功能单元并行操作,这八个功能单元例如是ALU 201、FALU 202、移位器(SHIFT)203、LS 204、ALU 205、FALU 206、移位器207和LS 208。然而,实现LS 204和LS 208作为虚拟加载-存储单元实现。单个物理LS 210针对相应的旁路网络簇——簇1212和簇2214形成多个端口。统一寄存器堆216从每个操作单元201-208接收所有结果,并准备在两个指令过后被读取。旁路网络簇——簇1212和簇2214允许仅在一个VLIW指令过后在相应的簇内读取结果。
处理器200的单个VLIW指令包括发起槽4或发起槽8中的LS操作,但不同时包括这两个发起槽中的操作。如果LS操作需要将出现在簇1212中的结果,则必须在针对LS 204的发起槽4中实现LS指令。同样,如果LS操作需要将出现在簇2214中的结果,则必须在针对LS 208的发起槽8中实现LS指令。物理LS 210中的多端口将朝向对应的簇。
从取指令单元(IFU)220中逐指令地提供VLIW。这些VLIW是由编译器/调度器224汇编了的程序224的一部分。这样的编译器/调度器224知道发起槽201-208、簇1212、簇2214和该一个物理LS 210的组织和限制。编译器/调度器224相应地对程序指令进行汇编以最佳利用资源。
图2示出了两个簇之间的加载-存储功能处理单元的虚拟化。本发明的实施例可以虚拟化任何类型的VLIW功能处理单元,以使其作为两个或更多个簇中的发起槽而出现。
图3提供了可以如何使用多端口或数据复用器来在簇1和簇2的槽4和槽8中分别实现虚拟LS单元。电路300将一个复用LS设备302连接进簇1虚拟LS 304和簇2虚拟LS 306中。实际LS单元312的数据输入复用器308和310选择来自每一簇的操作数。将结果广播至这两个簇。输入复用器308和310将通过逐指令地感测已指向槽4或槽8中哪一个以执行来自IFU的LS指令,来接收与要读入哪个簇有关的指令。
再次参照图1B,不分簇的处理器可以受益于虚拟视图。通过在物理功能单元的多个发起槽中提供多个虚拟视图,编译器/调度器更自由地调度功能单元的操作。
图4示出了静态调度的、不分簇的VLIW处理器400。VLIW处理器400包括八个发起槽401-408,其中,单个物理LS功能单元410已虚拟化并支持发起槽401-408中的两个加载-存储(LS)发起槽404和408。旁路网络412提供了八个发起槽401-408之间的快速操作数通信,并且统一寄存器堆414提供了传递数据的另一种手段。来自程序文件420的取指令单元(IFU)418提供VLIW 416。编译器/调度器422提供通过虚拟化某些发起槽而施加的限制和约束。
尽管已参照多个具体示例实施例对本发明进行了描述,但本领域的技术人员要认识到,在不脱离权利要求书中所阐述的本发明精神和范围的前提下,可以对本发明作出许多改变。
Claims (9)
1、一种超长指令字(VLIW)处理器系统,包括:
多个发起槽,在所述多个发起槽当中并行地操作VLIW;
针对所述多个发起槽中各个发起槽的组的多个旁路网络簇,使得操作结果能被直接传递并能够避免通过统一寄存器堆而发生的延迟;
所述多个发起槽中每一个发起槽中的多个功能处理单元,所述多个功能处理单元的复本被分配给每一旁路网络簇;
至少两个虚拟发起槽,分别被布置于所述多个旁路网络簇中的各个簇中;以及
单个功能单元,通过所述虚拟发起槽而连接,并出现在所述多个旁路网络簇中的各个簇中;
其中,所述单个功能单元利用多端口而实现一次,并能够接收所述多个旁路网络簇上的操作数和输出结果,以避免通过所述统一寄存器堆而发生的延迟。
2、根据权利要求1所述的系统,还包括:
取指令单元(IFU),用于将每个VLIW提供给所述多个发起槽;
包括供所述IFU访问的多个VLIW指令的程序;以及
编译器/调度器,知道每一发起槽、每一旁路网络簇、和通过所述虚拟发起槽而连接的单个功能单元的组织和限制,并且用于相应地对程序指令进行汇编以最优地利用处理器资源。
3、根据权利要求1所述的系统,还包括:
作为通过所述虚拟发起槽而连接的单个功能单元而被包括的加载-存储单元。
4、一种超长指令字(VLIW)处理器,包括:
八个发起槽的集合,在所述八个发起槽当中并行地操作VLIW;
针对所述八个发起槽中各个发起槽的两个组的一对旁路网络簇,使得操作结果能被直接传递并能够避免通过统一寄存器堆而发生的延迟;
所述八个发起槽中一些发起槽中的多个功能处理单元,所述多个功能处理单元的复本被分配给每一旁路网络簇;
至少两个加载-存储虚拟发起槽,分别被布置于所述一对旁路网络簇中的各个簇中;以及
单个加载-存储功能单元,通过所述虚拟发起槽而连接,并出现在多个旁路网络簇中的各个簇中;
其中,所述单个加载-存储功能单元利用多端口而实现一次,并能够接收所述两个旁路网络簇的操作数和输出结果,以避免在必须通过所述统一寄存器堆传递结果的情况下发生的延迟。
5、根据权利要求4所述的VLIW处理器,还包括:
取指令单元(IFU),用于将每个VLIW提供给所述多个发起槽;以及
包括供所述IFU访问的多个VLIW指令的程序;
其中,知道每一发起槽、每一旁路网络簇、和通过所述虚拟发起槽而连接的单个加载-存储功能单元的组织和限制的编译器/调度器用于对最优地利用处理器资源的程序指令进行汇编。
6、根据权利要求4所述的VLIW处理器,还包括:
编译器/调度器,用于提供与具有多个虚拟视图的功能单元的操作的调度有关的任何约束。
7、一种在超长指令字(VLIW)处理器中降低构造成本和改进操作性能的方法,包括:
将发起槽分组进至少两个旁路网络簇中;以及
通过多端口来虚拟化至少一个物理功能单元,以使其出现在至少两个旁路网络簇中。
8、一种在多个发起槽中提供物理功能单元的多个虚拟视图的不分簇的静态调度VLIW处理器,并且所述不分簇的静态调度VLIW处理器向编译器/调度器提供了调度功能单元的操作的更大自由度。
9、根据权利要求8所述的处理器,其中,虚拟化后的功能单元,而不是功能单元的物理复本,提供了某些功能单元的多个虚拟视图,使得所述虚拟视图与发起槽相关联并且物理功能单元得以共享,以及在关联的编译器/调度器中包括了与相应发起槽中功能单元操作的互斥发起有关的约束。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US87452906P | 2006-12-11 | 2006-12-11 | |
US60/874,529 | 2006-12-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101553780A true CN101553780A (zh) | 2009-10-07 |
Family
ID=39269340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800455522A Pending CN101553780A (zh) | 2006-12-11 | 2007-12-11 | Vliw处理器的虚拟功能单元 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100005274A1 (zh) |
EP (1) | EP2095226A1 (zh) |
CN (1) | CN101553780A (zh) |
WO (1) | WO2008072179A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270114A (zh) * | 2011-05-06 | 2011-12-07 | 凌阳科技股份有限公司 | 簇间数据传输操作插入方法及装置 |
CN104461471A (zh) * | 2014-12-19 | 2015-03-25 | 中国人民解放军国防科学技术大学 | 分簇vliw处理器上统一的指令调度和寄存器分配方法 |
CN104484160A (zh) * | 2014-12-19 | 2015-04-01 | 中国人民解放军国防科学技术大学 | 一种优化的分簇vliw处理器上的指令调度和寄存器分配方法 |
CN106575220A (zh) * | 2014-08-29 | 2017-04-19 | 高通股份有限公司 | 多个经集群极长指令字处理核心 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013103571A1 (en) * | 2012-01-06 | 2013-07-11 | Intel Corporation | Reducing the number of read/write operations performed by a cpu to duplicate source data to enable parallel processing on the source data |
KR102032895B1 (ko) | 2013-01-28 | 2019-11-08 | 삼성전자주식회사 | 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서 |
CN110389763B (zh) * | 2018-04-20 | 2023-06-16 | 伊姆西Ip控股有限责任公司 | 用于调度专用处理资源的方法、设备和计算机可读介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5243688A (en) * | 1990-05-22 | 1993-09-07 | International Business Machines Corporation | Virtual neurocomputer architectures for neural networks |
JP2977688B2 (ja) * | 1992-12-18 | 1999-11-15 | 富士通株式会社 | マルチプロセッシング装置、方法、及びこれらに使用するプロセッサ |
US6269435B1 (en) * | 1998-09-14 | 2001-07-31 | The Board Of Trustees Of The Leland Stanford Junior University | System and method for implementing conditional vector operations in which an input vector containing multiple operands to be used in conditional operations is divided into two or more output vectors based on a condition vector |
EP1124181B8 (en) * | 2000-02-09 | 2012-03-21 | Texas Instruments Incorporated | Data processing apparatus |
US7428485B2 (en) * | 2001-08-24 | 2008-09-23 | International Business Machines Corporation | System for yielding to a processor |
JP4230461B2 (ja) * | 2002-09-17 | 2009-02-25 | エヌエックスピー ビー ヴィ | 完全同期方式スーパーパイプライン型vliwプロセッサのシステムおよび方法 |
US7484075B2 (en) * | 2002-12-16 | 2009-01-27 | International Business Machines Corporation | Method and apparatus for providing fast remote register access in a clustered VLIW processor using partitioned register files |
US7653912B2 (en) * | 2003-05-30 | 2010-01-26 | Steven Frank | Virtual processor methods and apparatus with unified event notification and consumer-producer memory operations |
DE102006027181B4 (de) * | 2006-06-12 | 2010-10-14 | Universität Augsburg | Prozessor mit internem Raster von Ausführungseinheiten |
-
2007
- 2007-12-11 CN CNA2007800455522A patent/CN101553780A/zh active Pending
- 2007-12-11 WO PCT/IB2007/055016 patent/WO2008072179A1/en active Application Filing
- 2007-12-11 EP EP07849416A patent/EP2095226A1/en not_active Withdrawn
- 2007-12-11 US US12/518,500 patent/US20100005274A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270114A (zh) * | 2011-05-06 | 2011-12-07 | 凌阳科技股份有限公司 | 簇间数据传输操作插入方法及装置 |
CN102270114B (zh) * | 2011-05-06 | 2013-08-14 | 凌阳科技股份有限公司 | 簇间数据传输操作插入方法及装置 |
CN106575220A (zh) * | 2014-08-29 | 2017-04-19 | 高通股份有限公司 | 多个经集群极长指令字处理核心 |
CN104461471A (zh) * | 2014-12-19 | 2015-03-25 | 中国人民解放军国防科学技术大学 | 分簇vliw处理器上统一的指令调度和寄存器分配方法 |
CN104484160A (zh) * | 2014-12-19 | 2015-04-01 | 中国人民解放军国防科学技术大学 | 一种优化的分簇vliw处理器上的指令调度和寄存器分配方法 |
CN104484160B (zh) * | 2014-12-19 | 2017-12-26 | 中国人民解放军国防科学技术大学 | 一种优化的分簇vliw处理器上的指令调度和寄存器分配方法 |
CN104461471B (zh) * | 2014-12-19 | 2018-06-15 | 中国人民解放军国防科学技术大学 | 分簇vliw处理器上统一的指令调度和寄存器分配方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100005274A1 (en) | 2010-01-07 |
WO2008072179A1 (en) | 2008-06-19 |
EP2095226A1 (en) | 2009-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108268278B (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
CN109213723B (zh) | 一种用于数据流图处理的处理器、方法、设备、及一种非暂时性机器可读介质 | |
US10915471B2 (en) | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator | |
JP5762440B2 (ja) | 高効率の埋め込み型均一マルチコアプラットフォーム用のタイルベースのプロセッサアーキテクチャーモデル | |
US10817291B2 (en) | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator | |
Sankaralingam et al. | Trips: A polymorphous architecture for exploiting ilp, tlp, and dlp | |
Kapasi et al. | The Imagine stream processor | |
US7028170B2 (en) | Processing architecture having a compare capability | |
CN101553780A (zh) | Vliw处理器的虚拟功能单元 | |
US8490066B2 (en) | Profiler for optimizing processor architecture and application | |
WO2006017482A2 (en) | Programmable processor architecture hierarchical compilation | |
US20140317388A1 (en) | Apparatus and method for supporting multi-modes of processor | |
Khailany et al. | Exploring the VLSI scalability of stream processors | |
Wittenburg et al. | HiPAR-DSP: A parallel VLIW RISC processor for real time image processing applications | |
CN113934455A (zh) | 指令转换方法及装置 | |
JP5324568B2 (ja) | ソフトウェア無線端末のためのプログラマブルデバイス | |
She et al. | OpenCL code generation for low energy wide SIMD architectures with explicit datapath | |
Adriaansen et al. | Code generation for reconfigurable explicit datapath architectures with llvm | |
CN105446733A (zh) | 分离核 | |
US8601236B2 (en) | Configurable vector length computer processor | |
CN101699392B (zh) | 流处理器中io单元复用方法 | |
CN116670644A (zh) | 通用计算核上的交错处理的方法 | |
CN101027635A (zh) | 其中功能单元共用读取端口的数据处理电路 | |
She et al. | A co-design framework with opencl support for low-energy wide simd processor | |
Hußmann et al. | Compiler-driven reconfiguration of multiprocessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20091007 |