CN103970714A - 用于共享功能逻辑的设备和方法及其可重配置处理器 - Google Patents
用于共享功能逻辑的设备和方法及其可重配置处理器 Download PDFInfo
- Publication number
- CN103970714A CN103970714A CN201410043018.XA CN201410043018A CN103970714A CN 103970714 A CN103970714 A CN 103970714A CN 201410043018 A CN201410043018 A CN 201410043018A CN 103970714 A CN103970714 A CN 103970714A
- Authority
- CN
- China
- Prior art keywords
- data
- function
- functional unit
- functional units
- result
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 9
- 230000000875 corresponding effect Effects 0.000 claims 5
- 230000002596 correlated effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 81
- 238000010586 diagram Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
Abstract
提供了一种用于共享功能逻辑的设备和方法及可重配置处理器。所述用于在功能单元之间共享功能逻辑的设备可包括:存储器,被配置为存储为了共享一个或多个功能逻辑而从两个或更多个功能单元接收的数据;以及仲裁器,被配置为基于调度规则将存储在存储器中的数据发送到所述功能逻辑。
Description
本申请要求于2013年1月28日向韩国知识产权局提交的第10-2013-0009327号韩国专利申请的优先权,该专利申请的公开内容出于所有目的整个地通过引用合并于此。
技术领域
与以下描述一致的设备和方法涉及一种用于共享一个或多个功能逻辑的设备和方法。
背景技术
可重配置处理器通常包括多个功能单元和/或多个功能模块,并且这多个功能单元共同执行算术运算并根据互相独立的给定输入提供输出是正常的。然而,在算术运算的一些情况下,需要大的硬件功能逻辑,就芯片大小和功耗和/或其他实际考虑因素而言,这可使得难以将相应的算术运算放置在多个功能单元中。在少数功能单元中分配预定运算的情况下,因为一个功能单元一次执行一个算术运算,所以对于具有多个相应的算术运算的应用,可有效地引起关于处理性能的限制。另外,通常需要在将用于对给定的算术运算进行处理的输入发送到能够对这些算术运算进行处理的功能单元并且获取结果的电路或额外的通信上进行路由选择。然而,如果不存在被分配相应的算术运算的多个功能单元,则因为在许多情况下输入/输出值必须被发送得非常远,所以路由选择资源效率会降低,并且性能会降低。此外,更多的路由选择增加,更多的资源效率增加,因此,调度变得越来越困难。
发明内容
一个或多个实施例提供一种用于在功能单元或模块之间共享功能逻辑的设备和方法及其处理器。
根据实施例的一方面,提供一种用于共享功能逻辑的设备,该设备包括:存储器,被配置为存储为了共享至少一个功能逻辑而从至少两个功能单元接收的数据;以及仲裁器,被配置为基于调度规则将所存储的数据发送到所述至少一个功能逻辑。
用于共享功能逻辑的设备还可包括输出单元,该输出单元被配置为将所述至少一个功能逻辑通过对仲裁器发送的数据进行处理而获得的至少一个结果发送到所述至少两个功能单元中的每个。
输出单元可包括被配置为临时存储所获得的至少一个结果的缓冲器。
输出单元可被进一步配置为将所获得的至少一个结果存储在缓冲器中预定时间量,然后将所述至少一个结果发送到所述至少两个功能单元中的每个。
所述至少两个功能单元可包括在至少一个可重配置处理器中。
所述至少两个功能单元中的每一个功能单元可属于一个可重配置处理器中的、被配置为同时对至少两个任务进行处理的至少两个功能单元组中的相应的一个功能单元组。
存储器可包括至少两个队列,所述至少两个队列分别对应于所述至少两个功能单元,并且被配置为存储将从所述至少两个功能单元中的每个发送到所述至少一个功能逻辑的数据。
存储器可包括至少一个队列,所述至少一个队列被配置为存储将从共享所述至少一个功能逻辑的至少一个硬件装置发送到所述至少一个功能逻辑的数据。
所述至少一个功能逻辑中的每个可被配置为执行相同的运算。
根据另一实施例的一方面,提供一种可重配置处理器,该可重配置处理器包括:多个功能单元;至少两个队列,分别被配置为存储从所述多个功能单元中的至少两个功能单元中的相应的一个功能单元接收的数据,所述至少两个功能单元连接以便共享至少一个功能逻辑;仲裁器,被配置为基于调度规则将所存储的数据发送到所述至少一个功能逻辑;以及输出单元,被配置为将所述至少一个功能逻辑通过对仲裁器发送的数据进行处理而获得的至少一个结果发送到所述至少两个功能单元中的每个。
输出单元可包括被配置为临时存储所获得的至少一个结果的缓冲器,并且基于调度规则,将所获得的至少一个结果存储在缓冲器中预定时间量,并将所获得的至少一个结果发送到所述至少两个功能单元中的每个。
所述多个功能单元中的每个可被指定为属于被配置为同时对至少两个任务进行处理的至少两个功能单元组中的各自的一个功能单元组,并且所述至少两个功能单元中的每一个功能单元可包括在所述至少两个功能单元组中的相应的一个功能单元组中。
根据另一实施例的一方面,提供一种用于共享功能逻辑的方法,所述方法包括:将为了共享至少一个功能逻辑而从至少两个功能单元接收的数据存储在与所述至少两个功能单元相应的至少两个队列中的各自的一个队列中;并且基于调度规则将所存储的数据发送到所述至少一个功能逻辑。
所述方法还可包括将所述至少一个功能逻辑通过对所发送的数据进行处理而获得的至少一个结果发送到所述至少两个功能单元中的每个。
将所获得的至少一个结果发送到所述至少两个功能单元中的每个的步骤可包括将所获得的至少一个结果存储在缓冲器中预定时间量。
所述至少两个功能单元可包括在至少一个可重配置处理器中。
所述至少两个功能单元中的每一个功能单元可属于一个可重配置处理器中的、被配置为同时对至少两个任务进行处理的至少两个功能单元组中的相应的一个功能单元组。
所述至少一个功能逻辑中的每个可被配置为执行相同的运算。
附图说明
通过参照附图详细地描述示例性实施例,以上和/或其他方面将更清楚,其中:
图1是示出根据示例性实施例的用于共享功能逻辑的设备的框图;
图2是示出根据示例性实施例的用于共享功能逻辑的设备的示图;
图3是示出根据另一示例性实施例的用于共享功能逻辑的设备的示图;
图4是示出根据另一示例性实施例的用于共享功能逻辑的设备的示图;
图5是示出根据另一示例性实施例的用于共享功能逻辑的设备的示图;
图6是示出根据示例性实施例的可重配置处理器的框图;和
图7是示出根据示例性实施例的用于共享功能逻辑的方法的流程图。
具体实施方式
提供以下描述来帮助读者获得在此描述的方法、设备和/或系统的全面理解。因此,在此描述的方法、设备和/或系统的各种改变、修改和等同将被建议给本领域的普通技术人员。此外,为了提高清晰性和简洁性,可以省去公知功能和构造的描述。在本说明书的所有描述中,相同的标号指示相同的组件。
在整个附图和详细描述中,除非另有描述,否则相同的附图标号将被理解为指的是相同的元件、特征和结构。为了清晰、例示说明和方便,可以放大这些元件的相对大小和描绘。
以下参照如所示的附图详细地提供用于共享功能逻辑的设备和方法以及可重配置处理器的示例。
图1是示出根据示例性实施例的用于共享功能逻辑的设备的框图。一般来讲,当设计可重配置处理器时,因为例如与实际考虑因素(诸如,芯片大小)相关的限制,能够执行预定运算的功能逻辑仅可包括在其预定数量的范围内。在示例性实施例中,如图1所示,用于共享功能逻辑的设备100可以使得一个或多个功能单元FU0和FU1能够共享对预定运算进行处理的功能逻辑140,从而允许支持该预定运算的功能单元的数量增加,同时仅引起由于共享而导致的最小开销。
参照图1,用于共享功能逻辑的设备100包括存储单元(在此也被称为存储器)110、仲裁单元(在此也被称为仲裁器)120和输出单元130。
存储单元110存储来自两个或更多个功能单元(在此也被称为功能模块)FU0和FU1的数据,这些功能单元共享对该数据进行处理的功能逻辑140。具体地讲,存储单元110可包括分别与两个或更多个功能单元FU0和FU1对应的两个或更多个队列,并且从每个功能单元接收的数据可被存储在与该特定功能单元对应的特定队列中。例如,存储单元110可被实施为存储装置,诸如,被配置用于存储数据的任何装置或组件。功能模块被配置为执行特定功能,并且可被实施为硬件模块或组件(诸如处理器或专用电路)或者软件模块或程序。
仲裁单元120可根据调度规则将从功能单元FU0和FU1中的每个输入到存储单元110以便被共享的多条数据发送到功能逻辑140,从而帮助功能逻辑140对该数据进行处理。具体地讲,调度规则可包括与将从每个功能单元接收的数据发送到将被共享的功能逻辑140的次序相关的信息。仲裁单元120可基于与该次序相关的信息将输入到每个队列的数据发送到功能逻辑140。仲裁器120被配置为执行仲裁功能,并且可被实施为例如硬件组件或模块(诸如处理器或专用电路)或者软件模块或程序。
此外,在示例性实施例中,将被共享的功能逻辑140可包括两个或更多个功能逻辑,并且在被设计为共享两个或更多个功能逻辑140的情况下,每个功能逻辑140可对相同的运算进行处理。在这方面,与被配置为在仲裁单元120将输入到每个队列的数据发送到对相同运算进行处理的两个或更多个功能逻辑140中的一个功能逻辑140之后对该相同运算进行处理的设计相比,被配置为共享这些功能逻辑140的设计将执行更快的处理。
另外,在示例性实施例中,如图1所示,被配置为对预定运算进行处理的功能逻辑140可通过包括在用于共享功能逻辑的设备100的硬件的外部而与仲裁单元120和输出单元130连接。此外,在另一示例性实施例中,功能逻辑可被设计为用于共享功能逻辑的设备100的一个元件。
输出单元130将功能逻辑140通过对仲裁单元120发送的数据进行处理而获得的一个或多个结果发送到已经接收到该数据并将该数据存储在存储单元110中的功能单元。例如,当仲裁单元120根据调度规则将一个功能单元FU0所存储的数据发送到功能逻辑140,并且该功能逻辑140通过对该数据进行处理而获得的结果被返回给功能单元FU0。输出单元130可被实施为例如被配置为提供输出的硬件装置或组件、或者被配置为提供输出的软件模块或程序。
输出单元130可包括临时存储通过功能逻辑140所执行的处理而获得的结果的缓冲器(未示出)。如果从功能逻辑140所执行的处理获得的结果被输出,则输出单元130基于调度规则确定是否在延迟预定时间量之后将这些结果发送到相应的功能单元,并且如果需要预定延迟时间量,则输出单元130将处理结果存储在缓冲器中。此后,如果预定时间量过去,则输出单元130可将存储在缓冲器中的处理结果发送到相应的功能单元。
从输出单元130接收处理结果的功能单元可使用这些结果对下一运算进行处理。此外,功能单元可将所接收的结果发送到寄存器文件或另一功能单元,以使得该另一功能单元可使用这些结果对另一运算进行处理。
在另一示例性实施例中,用于共享功能逻辑的设备100可被设计为具有一个或多个可重配置处理器和通过被放置在一个可重配置处理器的外部而便利于功能单元的共享的相应硬件。此外,可重配置处理器可被实施为一个模块。
图2是示出根据示例性实施例的用于共享功能逻辑的设备的示图。
参照图2,在示例性实施例中,一个可重配置处理器20可被设计为通过用于共享功能逻辑的设备200共享一个功能逻辑。具体地讲,包括在一个可重配置处理器20中的两个或更多个功能单元FU0,1、FU2,3可与用于共享功能逻辑的设备200的存储单元210和输出单元230连接,以便共享一个功能逻辑240。
存储单元210可包括两个或更多个队列Q1和Q2,每个队列存储从共享功能逻辑240的相应的功能单元FU0,1和FU2,3接收的各数据。存储单元210将从每个功能单元FU0,1、FU2,3接收的数据存储在每个相应队列Q1和Q2中。从每个功能单元FU0,1和FU2,3接收的数据可在被存储在相应队列Q1和Q2中之后被临时保存,直到在被仲裁单元220选择之后被发送到功能逻辑240为止。
仲裁单元220可包括复用器,并且可根据调度规则确定临时保存在每个队列Q1和Q2中的数据之中的将被处理的后续数据。然后,仲裁单元220可将所确定的数据发送到功能逻辑240。
功能逻辑240通过使用从仲裁单元220接收的数据来执行预定运算,并输出处理后的所获得的结果。
如果从功能逻辑240输出结果,则输出单元230将这些结果发送到相应的功能单元,即,已经在队列中输入将被仲裁单元220发送到功能逻辑240的数据的功能单元。
在示例性实施例中,输出单元230可包括图2中未示出的缓冲器,并且如果处理结果将在预定时间量过去之后被发送到相应的功能单元,则可将这些结果临时存储在缓冲器中。
如图2所示,如果在一个可重配置处理器20的功能单元FU0,0中产生功能逻辑240的输入,则就发送时间和通信资源而言,与通过相对远离FU0,0的FU2,3将所产生的输入发送到功能逻辑相比,通过相对接近FU0,0的FU0,1将所产生的输入直接发送到功能逻辑更有效率。
参照如以上所提及的图2,在示例性实施例中,用于共享功能逻辑的设备200可被设计为与一个可重配置处理器20分离的硬件装置。此外,在另一示例性实施例中,用于共享功能逻辑的设备能够被设计为作为一个配置模块包括在一个可重配置处理器20中。
图3和图4是示出根据其他示例性实施例的用于共享功能逻辑的设备的示图。
如图3所示,在另一示例性实施例中,两个或更多个可重配置处理器31和32以及对额外的运算进行处理的硬件33等可被设计为通过用于共享功能逻辑的设备300共享一个功能逻辑340。在这个示例性实施例中,用于共享功能逻辑的设备300可被设计为以便使得多个可重配置处理器31和32和/或对额外的运算进行处理的硬件33等能够共享功能逻辑240的单独硬件。
用于共享功能逻辑的设备300可包括存储单元310、仲裁单元320和输出单元330。因为可类似于上述那样理解用于共享功能逻辑的设备300的每个组件,所以以下省去具体描述。
此外,如图4所示,在另一示例性实施例中,多个功能单元FU0、FU1、FU2和FU4可被设计为通过用于共享功能逻辑的设备400共享两个或更多个功能逻辑400a和400b。具体地讲,多个功能单元FU0至FU4可包括在一个可重配置处理器中或者两个或更多个可重配置处理器中的每个中。另外,两个或更多个功能逻辑440a和440b中的每个可包括被配置为对相同运算进行处理的功能逻辑。
如上所述,在两个或更多个功能逻辑440a和440b能够用硬件配置的情况下,如果通过共享所有的两个或更多个功能逻辑440a和440b对运算进行处理,则可缩短输入到存储单元410的每个队列的数据的等待时间。具体地讲,输入到存储单元410的每个队列的数据可被仲裁单元420发送到两个或更多个功能逻辑440a和440b,然后在两个或更多个功能逻辑440a和440b中被处理,并且因为被两个或更多个功能逻辑440a和44b即时处理的结果被输出单元430发送到相应的功能单元,所以与仅用一个功能逻辑对该数据进行处理相比,可提高处理性能。
图5是示出根据另一示例性实施例的用于共享功能逻辑的设备的示图。
参照图5,一个可重配置处理器50可包括两个或更多个功能单元组51和52,以便同时对两个或更多个线程或任务进行处理。具体地讲,被配置为对线程或任务之一进行处理的功能单元组51和被配置为与其同时对其他线程或任务进行处理的另一功能单元组52可能全都需要从对预定运算进行处理的功能逻辑540获得的处理后的结果。在这种情况下,可通过将包括在功能单元组51和52中的每个中的预定功能单元FU0,1和FU2,3与用于共享功能逻辑的设备500连接来共享功能逻辑540。
在这个示例性实施例中,用于共享功能逻辑的设备500可包括存储单元510、仲裁单元520和输出单元530。因为可根据上述示例性实施例理解用于共享功能逻辑的设备500的每个组件,所以可省去以下的具体描述。
通常,一般的可重配置处理器一次执行一个任务或一个线程。这是因为由于资源限制(诸如仅一个或几个对预定运算进行处理的功能单元的情况),对几个任务或线程进行处理可能是困难的。然而,在上述用于共享功能逻辑的设备中,可重配置处理器能够通过选择命令级别的并行性低的任务或者易于或有利于在大小相对小的功能单元组中进行调度的任务来同时进行处理。另外,在不将高成本硬件运算分配给每个功能单元组的情况下,这样的运算可仅被分配给一个或几个功能单元,并且在所有功能单元组之间共享,从而可实现成本降低。
图6是示出根据示例性实施例的可重配置处理器的框图。
参照图1、图2、图3、图4、图5和图6,以上描述了用于共享功能逻辑的设备的各种示例性实施例。用于共享功能逻辑的设备可被设计为与一个或多个可重配置处理器分离的硬件。然而,在图6中所示的示例性实施例中,该设备可被设计为包括在一个可重配置处理器中。
参照图6,可重配置处理器可包括多个功能单元61、两个或更多个队列62、仲裁单元63和输出单元64。
类似于如以上参照图2所描述的,可重配置处理器60可被设计或配置为使多个功能单元61中的两个或更多个功能单元共享功能逻辑65,以便通过共享对预定运算进行处理的功能逻辑65来对运算进行处理。
如果功能逻辑65需要预定运算,则预定功能单元61或与可重配置处理器60的功能逻辑连接的功能单元可通过连接的功能单元将功能逻辑65接收的数据发送到队列62。
发送到队列62并存储在队列62中的数据中的一些被仲裁单元63选择并且被发送到功能逻辑65,功能逻辑65对所发送的数据进行处理。功能逻辑65通过使用所发送的数据执行运算,并输出运算结果。
输出单元64将来自功能逻辑65的运算结果发送到最初的功能单元61。尽管未示出,但是输出单元64可包括临时缓冲器,并且来自功能逻辑65的运算结果可在存储在临时缓冲器中预定时间量之后被发送到功能单元61。
此外,类似于以上参照图5所描述的,可重配置处理器60可将多个功能单元61划分为两个或更多个功能单元组,以便同时对两个或更多个线程或任务进行处理,并且可以通过将包括在每个相应的功能单元组中的各个功能单元与功能单元61连接来同时对两个或更多个线程进行处理。
图7是示出根据示例性实施例的用于共享功能逻辑的方法的流程图。
以下参照图7描述可通过使用如图1所示的用于共享功能逻辑的设备100而执行的用于共享功能逻辑的方法。
在操作710中,用于共享功能逻辑的设备100将从两个或更多个功能单元接收的数据或者从硬件接收的数据存储在两个或更多个相应队列中。具体地讲,所述两个或更多个功能单元可包括在一个可重配置处理器中。可替换地,所述两个或更多个功能单元中的每个可分别包括在两个或更多个可重配置处理器中的相应的一个可重配置处理器中。此外,如果所述两个或更多个功能单元被划分为两个或更多个功能单元组以便在一个可重配置处理器中同时对两个或更多个线程或任务进行处理,则这些功能单元中的每个可包括在各自的功能单元组中。
然后,在操作720中,用于共享功能逻辑的设备100可基于调度规则将存储在每个队列中的数据发送到对预定运算进行处理的至少一个功能逻辑。调度规则可包括与从每个功能单元接收的数据的处理次序相关的信息。所述至少一个功能逻辑可包括多于一个的功能逻辑,并且如果被设计为共享两个或更多个功能逻辑,则每个功能逻辑可执行相同的运算。设备100能够通过共享对相同运算进行处理的两个或更多个功能逻辑对预定运算进行处理来进行即时处理。
最后,在操作730中,所述设备将从所述至少一个功能逻辑获得的处理后的结果发送到相应的功能单元。此外,所获得的处理后的结果可在被存储在临时缓冲器中预定时间量之后被发送到相应的功能单元。
上述方法和/或运算可被记录、存储或装入在包括程序指令的一个或多个暂时性或非暂时性计算机可读存储介质中,这些程序指令将被计算机执行以使处理器运行或执行这些程序指令。这些介质还可以单独地或与这些程序指令组合地包括数据文件、数据结构等。
计算机可读存储介质的示例包括:磁性介质,诸如硬盘、软盘和磁带;光学介质,诸如紧凑盘——只读存储器(CD ROM)盘和数字多功能盘(DVD);磁光介质,诸如光学盘;以及被专门配置为存储并执行程序指令的硬件装置,诸如只读存储器(ROM)、随机存取存储器(RAM)、闪存等。程序指令的示例包括诸如由编译器生成的机器代码、以及包含可被计算机通过使用解释器而执行的更高级代码的文件。所描述的硬件装置可被配置为充当一个或多个软件模块以便执行上述运算和方法,反之亦然。另外,计算机可读存储介质可分布在通过网络连接的计算机系统之间,并且计算机可读代码或程序指令可被以分散的方式存储和执行。此外,实现这些示例性实施例的功能程序、代码和代码段可易于被本领域的程序员推断出。
本领域的技术人员可以理解,可以在不修改本发明构思的技术构思或基本特征的情况下进行各种具体修改。因此,以上所公开的实施例是示例性的,应当可被理解为不限于所有方面。
Claims (26)
1.一种用于共享功能逻辑的设备,所述设备包括:
存储器,被配置为存储为了共享至少一个功能逻辑而从至少两个功能单元接收的数据;和
仲裁器,被配置为基于调度规则将所存储的数据发送到所述至少一个功能逻辑中的每个。
2.根据权利要求1所述的设备,还包括:
输出单元,被配置为将所述至少一个功能逻辑通过对仲裁器发送的数据进行处理而获得的至少一个结果发送到所述至少两个功能单元中的每个。
3.根据权利要求2所述的设备,其中,输出单元包括被配置为临时存储所获得的至少一个结果的缓冲器。
4.根据权利要求3所述的设备,其中,输出单元被进一步配置为将所获得的至少一个结果存储在缓冲器中预定时间量,然后将所述至少一个结果发送到所述至少两个功能单元中的每个。
5.根据权利要求1所述的设备,其中,所述至少两个功能单元包括在至少一个可重配置处理器中。
6.根据权利要求1所述的设备,其中,所述至少两个功能单元中的每一个功能单元属于一个可重配置处理器中的、被配置为同时对至少两个任务进行处理的至少两个功能单元组中的相应的一个功能单元组。
7.根据权利要求1所述的设备,其中,存储器包括至少两个队列,所述至少两个队列分别对应于所述至少两个功能单元,并且被配置为存储将从所述至少两个功能单元中的每个发送到所述至少一个功能逻辑的数据。
8.根据权利要求7所述的设备,其中,存储器包括至少一个队列,所述至少一个队列被配置为存储将从共享所述至少一个功能逻辑的至少一个硬件装置发送到所述至少一个功能逻辑的数据。
9.根据权利要求1所述的设备,其中,所述至少一个功能逻辑中的每个被配置为执行相同的运算。
10.一种可重配置处理器,包括:
多个功能单元;
至少两个队列,分别被配置为存储从所述多个功能单元中的至少两个功能单元中的相应的一个功能单元接收的数据,所述至少两个功能单元连接以便共享至少一个功能逻辑;
仲裁器,被配置为基于调度规则将所存储的数据发送到所述至少一个功能逻辑;和
输出单元,被配置为将所述至少一个功能逻辑通过对仲裁器发送的数据进行处理而获得的至少一个结果发送到所述至少两个功能单元中的每个。
11.根据权利要求10所述的可重配置处理器,其中,输出单元包括被配置为临时存储所获得的至少一个结果的缓冲器,并且基于调度规则,将所获得的至少一个结果存储在缓冲器中预定时间量,然后将所获得的至少一个结果发送到所述至少两个功能单元中的每个。
12.根据权利要求10所述的可重配置处理器,其中,所述多个功能单元中的每个被指定为属于被配置为同时对至少两个任务进行处理的至少两个功能单元组中的各自的一个功能单元组,并且其中,所述至少两个功能单元中的每一个功能单元包括在所述至少两个功能单元组中的相应的一个功能单元组中。
13.一种用于共享功能逻辑的方法,所述方法包括:
将为了共享至少一个功能逻辑而从至少两个功能单元接收的数据存储在与所述至少两个功能单元相应的至少两个队列中的各自的一个队列中;和
基于调度规则将所存储的数据发送到所述至少一个功能逻辑。
14.根据权利要求13所述的方法,还包括:
将所述至少一个功能逻辑通过对所发送的数据进行处理而获得的至少一个结果发送到所述至少两个功能单元中的每个。
15.根据权利要求14所述的方法,其中,将所获得的至少一个结果发送到所述至少两个功能单元中的每个的步骤包括将所获得的至少一个结果存储在缓冲器中预定时间量。
16.根据权利要求13所述的方法,其中,所述至少两个功能单元包括在至少一个可重配置处理器中。
17.根据权利要求13所述的方法,其中,所述至少两个功能单元中的每一个功能单元属于一个可重配置处理器中的、被配置为同时对至少两个任务进行处理的至少两个功能单元组中的相应的一个功能单元组。
18.根据权利要求13所述的方法,其中,所述至少一个功能逻辑中的每个被配置为执行相同的运算。
19.一种功能执行设备,包括:
仲裁处理器,被配置为访问从第一功能单元接收的第一数据并且访问从第二功能单元接收的第二数据;
功能处理器,被配置为从仲裁处理器接收第一数据和第二数据并且执行关于所接收的第一数据和所接收的第二数据的功能;和
输出单元,被配置为从功能处理器接收所执行的功能的至少一个结果并输出所接收的至少一个结果,
其中,仲裁处理器被进一步配置为基于调度规则确定将第一数据和第二数据发送到功能处理器的次序。
20.根据权利要求19所述的设备,还包括被配置为存储第一数据的第一队列和被配置为存储第二数据的第二队列,其中,仲裁处理器被进一步配置为基于调度规则在第一时间从第一队列访问第一数据并且基于调度规则在第二时间从第二队列访问第二数据。
21.根据权利要求19所述的设备,其中,输出单元被进一步配置为应用调度规则来确定将所述至少一个结果发送到第一功能单元和第二功能单元中的至少一个的发送时间,并且基于所确定的发送时间发送所述至少一个结果。
22.根据权利要求19所述的设备,其中,仲裁处理器被进一步配置为访问从至少第三功能单元接收的至少第三数据,并应用调度规则来确定将所述至少第三数据发送到功能处理器的次序,并且其中,功能处理器被进一步配置为从仲裁处理器接收所述至少第三数据,并执行关于所接收的第一数据、所接收的第二数据和所接收的至少第三数据的功能。
23.一种用于执行功能的方法,所述方法包括:
从第一功能单元接收第一数据,并从第二功能单元接收第二数据;
基于调度规则确定对所接收的第一数据和所接收的第二数据中的每个进行处理的次序;
基于所确定的处理次序执行关于所接收的第一数据和所接收的第二数据的功能;和
获得所执行的功能的至少一个结果,并输出所获得的至少一个结果。
24.根据权利要求23所述的方法,还将第一数据存储在第一队列中并将第二数据存储在第二队列中,其中,确定处理次序的步骤包括应用调度规则来确定与用于对第一数据进行处理的时序相关的第一延迟时间和与用于对第二数据进行处理的时序相关的第二延迟时间。
25.根据权利要求23所述的方法,其中,输出所获得的至少一个结果的步骤包括应用调度规则来确定将所述至少一个结果发送到第一功能单元和第二功能单元中的至少一个的发送时间,并基于所确定的发送时间发送所述至少一个结果。
26.根据权利要求23所述的方法,还包括从至少第三功能单元接收至少第三数据,基于调度规则确定用于对所接收的至少第三数据进行处理的次序,并基于所确定的处理次序执行关于所接收的第一数据、所接收的第二数据和所接收的至少第三数据的功能。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130009327A KR102032895B1 (ko) | 2013-01-28 | 2013-01-28 | 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서 |
KR10-2013-0009327 | 2013-01-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103970714A true CN103970714A (zh) | 2014-08-06 |
CN103970714B CN103970714B (zh) | 2018-07-06 |
Family
ID=50028827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410043018.XA Active CN103970714B (zh) | 2013-01-28 | 2014-01-23 | 用于共享功能逻辑的设备和方法及其可重配置处理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9753769B2 (zh) |
EP (1) | EP2759927B1 (zh) |
KR (1) | KR102032895B1 (zh) |
CN (1) | CN103970714B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462388A (zh) * | 2014-09-09 | 2017-02-22 | 华为技术有限公司 | 处理器 |
US10659396B2 (en) * | 2015-08-02 | 2020-05-19 | Wave Computing, Inc. | Joining data within a reconfigurable fabric |
KR102593320B1 (ko) | 2016-09-26 | 2023-10-25 | 삼성전자주식회사 | 전자 장치, 프로세서 및 그 제어 방법 |
CN112834819B (zh) * | 2021-01-04 | 2024-04-02 | 杭州万高科技股份有限公司 | 一种用于电能计量芯片的数字信号处理装置及方法 |
US11675588B2 (en) * | 2021-08-20 | 2023-06-13 | Micron Technology, Inc. | Tile-based result buffering in memory-compute systems |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109356A (en) * | 1990-05-29 | 1992-04-28 | Environmental Research Institute Of Michigan | Apparatus for computation of discrete Fourier transform using array parallel processor |
US6725354B1 (en) * | 2000-06-15 | 2004-04-20 | International Business Machines Corporation | Shared execution unit in a dual core processor |
US20070124563A1 (en) * | 2005-11-28 | 2007-05-31 | Fujitsu Limited | Processing device, method of determining internal configuration of processing device, and processing system |
US20090055626A1 (en) * | 2007-08-24 | 2009-02-26 | Cho Yeon Gon | Method of sharing coarse grained array and processor using the method |
US20110225595A1 (en) * | 2010-03-11 | 2011-09-15 | Toyota Jidosha Kabushiki Kaisha | Task execution controller and recording medium on which task execution control program is recorded |
CN102279801A (zh) * | 2010-06-09 | 2011-12-14 | 晨星软件研发(深圳)有限公司 | 存储器共享系统及方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838165A (en) | 1996-08-21 | 1998-11-17 | Chatter; Mukesh | High performance self modifying on-the-fly alterable logic FPGA, architecture and method |
US7047534B2 (en) * | 2000-03-17 | 2006-05-16 | Microsoft Corporation | Simplified device drivers for hardware devices of a computer system |
US6627985B2 (en) | 2001-12-05 | 2003-09-30 | Arbor Company Llp | Reconfigurable processor module comprising hybrid stacked integrated circuit die elements |
US7126214B2 (en) | 2001-12-05 | 2006-10-24 | Arbor Company Llp | Reconfigurable processor module comprising hybrid stacked integrated circuit die elements |
GB0224023D0 (en) | 2002-10-16 | 2002-11-27 | Roysmith Graeme | Reconfigurable integrated circuit |
US7299339B2 (en) | 2004-08-30 | 2007-11-20 | The Boeing Company | Super-reconfigurable fabric architecture (SURFA): a multi-FPGA parallel processing architecture for COTS hybrid computing framework |
KR20070097051A (ko) | 2004-11-30 | 2007-10-02 | 동경 엘렉트론 주식회사 | 동적으로 재구성 가능한 프로세서 |
TW200617703A (en) | 2004-11-30 | 2006-06-01 | Tokyo Electron Ltd | Dynamically reconfigurable processor |
KR100722770B1 (ko) | 2005-01-31 | 2007-05-30 | 재단법인서울대학교산학협력재단 | 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 |
JP4527571B2 (ja) * | 2005-03-14 | 2010-08-18 | 富士通株式会社 | 再構成可能演算処理装置 |
EP2095226A1 (en) | 2006-12-11 | 2009-09-02 | Nxp B.V. | Virtual functional units for vliw processors |
KR101390974B1 (ko) | 2008-01-30 | 2014-05-02 | 삼성전자주식회사 | 다중 모드를 제공하는 재구성 가능한 장치 및 방법 |
KR101738941B1 (ko) * | 2010-03-23 | 2017-05-24 | 삼성전자주식회사 | 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법 |
JP6234660B2 (ja) * | 2012-04-27 | 2017-11-22 | 富士通株式会社 | 動画像復号装置 |
US8910167B2 (en) * | 2012-07-20 | 2014-12-09 | oneZero Financial Systems, LLC | Parallel processing system |
-
2013
- 2013-01-28 KR KR1020130009327A patent/KR102032895B1/ko active IP Right Grant
-
2014
- 2014-01-22 US US14/160,756 patent/US9753769B2/en active Active
- 2014-01-23 CN CN201410043018.XA patent/CN103970714B/zh active Active
- 2014-01-28 EP EP14152782.0A patent/EP2759927B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109356A (en) * | 1990-05-29 | 1992-04-28 | Environmental Research Institute Of Michigan | Apparatus for computation of discrete Fourier transform using array parallel processor |
US6725354B1 (en) * | 2000-06-15 | 2004-04-20 | International Business Machines Corporation | Shared execution unit in a dual core processor |
US20070124563A1 (en) * | 2005-11-28 | 2007-05-31 | Fujitsu Limited | Processing device, method of determining internal configuration of processing device, and processing system |
US20090055626A1 (en) * | 2007-08-24 | 2009-02-26 | Cho Yeon Gon | Method of sharing coarse grained array and processor using the method |
US20110225595A1 (en) * | 2010-03-11 | 2011-09-15 | Toyota Jidosha Kabushiki Kaisha | Task execution controller and recording medium on which task execution control program is recorded |
CN102279801A (zh) * | 2010-06-09 | 2011-12-14 | 晨星软件研发(深圳)有限公司 | 存储器共享系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US9753769B2 (en) | 2017-09-05 |
KR102032895B1 (ko) | 2019-11-08 |
EP2759927B1 (en) | 2016-10-26 |
KR20140096587A (ko) | 2014-08-06 |
EP2759927A1 (en) | 2014-07-30 |
CN103970714B (zh) | 2018-07-06 |
US20140215476A1 (en) | 2014-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8806498B2 (en) | Method and system for resolving dependency among the enqueued works and/or finished works and scheduling the dependency-resolved works | |
US10095556B2 (en) | Parallel priority queue utilizing parallel heap on many-core processors for accelerating priority-queue-based applications | |
US20210406437A1 (en) | Programmable chip, design method and device | |
US8819345B2 (en) | Method, apparatus, and computer program product for inter-core communication in multi-core processors | |
CN103970714A (zh) | 用于共享功能逻辑的设备和方法及其可重配置处理器 | |
CN103019810A (zh) | 具有不同执行优先级的计算任务的调度和管理 | |
CN103262030A (zh) | 经由动态聚合操作的快速且线性化并发优先级队列 | |
CN111324294B (zh) | 存取张量数据的方法和装置 | |
CN105045632A (zh) | 一种多核环境下实现免锁队列的方法和设备 | |
CN111047036B (zh) | 神经网络处理器、芯片和电子设备 | |
CN110991619A (zh) | 神经网络处理器、芯片和电子设备 | |
CN104731562A (zh) | 在simd处理单元中的任务执行 | |
US10996860B2 (en) | Method to improve mixed workload performance on storage devices that use cached operations | |
US20210326189A1 (en) | Synchronization of processing elements that execute statically scheduled instructions in a machine learning accelerator | |
US20140331021A1 (en) | Memory control apparatus and method | |
CN116069480B (zh) | 一种处理器及计算设备 | |
CN102521155B (zh) | 实现表项在物理存储器上动态分配的方法和装置 | |
CN102681820A (zh) | 动态分簇的寄存器堆及使用该寄存器堆的可重构计算装置 | |
EP3792757A1 (en) | Method, apparatus, device, and storage medium for performing processing task | |
CN111047035A (zh) | 神经网络处理器、芯片和电子设备 | |
CN102542525A (zh) | 一种信息处理设备以及信息处理方法 | |
CN104750547A (zh) | 虚拟机的输入输出io请求处理方法及装置 | |
CN102609306B (zh) | 多核处理芯片对视频处理任务的处理方法及其系统 | |
WO2021212045A1 (en) | Synchronization of processing elements and software managed memory hierarchy in a machine learning accelerator | |
CN111767999A (zh) | 数据处理方法、装置及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |