CN106407023A - 基于多核处理器的现场可编程门阵列芯片的并行布线方法 - Google Patents

基于多核处理器的现场可编程门阵列芯片的并行布线方法 Download PDF

Info

Publication number
CN106407023A
CN106407023A CN201610805258.8A CN201610805258A CN106407023A CN 106407023 A CN106407023 A CN 106407023A CN 201610805258 A CN201610805258 A CN 201610805258A CN 106407023 A CN106407023 A CN 106407023A
Authority
CN
China
Prior art keywords
main thread
candidate nodes
sub
line journey
cost value
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
Application number
CN201610805258.8A
Other languages
English (en)
Inventor
耿嘉
樊平
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.)
Jingwei Qili Beijing Technology Co ltd
Original Assignee
Beijing Deep Science And Technology Co Ltd
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 Beijing Deep Science And Technology Co Ltd filed Critical Beijing Deep Science And Technology Co Ltd
Priority to CN201610805258.8A priority Critical patent/CN106407023A/zh
Publication of CN106407023A publication Critical patent/CN106407023A/zh
Pending legal-status Critical Current

Links

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明涉及一种基于多核处理器的现场可编程门阵列芯片的并行布线方法。该方法流程可以分为主线程和至少一个子线程。主线程对FPGA芯片的源节点进行识别,获取源节点关联的第一候选节点,之后主线程根据第一候选节点的数量和多核处理器的核数,确定子线程的数量,并启动子线程;主线程根据第一候选节点的数量,启动与数量相同的子线程。主线程通过向子线程依次发送第一候选节点,接收子线程根据第一候选节点并行计算出的相应COST值。主线程对最低的COST值对应的第一候选节点进行识别,根据识别结果,对FPGA芯片进行布线。该方法通过子线程对候选节点COST值的并行计算,有效的降低了布线的运行时间。

Description

基于多核处理器的现场可编程门阵列芯片的并行布线方法
技术领域
本发明涉及集成电路技术领域,尤其涉及一种基于多核处理器的现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片的并行布线方法。
背景技术
现场可编程门阵列FPGA芯片是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。
FPGA的软件流程可以包括综合处理、映射、布局和布线。现有技术的布线算法是基于单处理器单线程进行的串行计算节点cost值的过程,即在一个有向图中从一个源节点到目的节点的路径搜索过程。节点cost值是指布线时使用节点的代价评估值,该代价评估值包括通过该节点的物理延时,当前拥挤状态、历史拥挤状态,该节点所处线网的关键度等信息。
然而,由于COST值涉及的因素较多,因此的计算量通常比较大。在现有的FPGA芯片的整个软件流程中,布线的运行时间通常占用时间的比例往往在50%以上,也就是说,现有技术的布线运行时间较长。
发明内容
本申请实施例提供了一种基于多核处理器的现场可编程门阵列芯片的并行布线方法。该方法流程可以分为主线程和至少一个子线程。该方法可以减少布线运行时间。
第一方面,该方法可以包括:主线程对FPGA芯片的源节点进行识别,获取源节点关联的第一候选节点;主线程根据第一候选节点的数量和多核处理器的核数,确定子线程的数量,并启动子线程。主线程向启动后的子线程依次发送第一候选节点;主线程接收子线程根据第一候选节点并行计算出的相应COST值。主线程对最低的COST值对应的第一候选节点进行识别,并根据识别结果,对FPGA芯片进行布线。
在一个可选的实现中,主线程对FPGA芯片进行识别,获取源节点关联的至少一个第一候选节点之后,主线程将第一候选节点存储在第一队列中。主线程向子线程依次发送第一候选节点,具体包括:主线程接收子线程发送的布线请求;主线程根据布线请求,判断第一队列是否为空;若否,则主线程向空闲的子线程发送所述第一候选节点;若是,则主线程向所有的子线程发送结束线程信号,以通知布线结束。
在一个可选的实现中,主线程接收至少一个子线程发送的布线请求之后,主线程向子线程发送请求响应信号,以指示收到布线请求。
在一个可选的实现中,当主线程识别出第一候选节点不是目的节点时,主线程对第一候选节点进行识别,获取第一候选节点的第二候选节点,以接收子线程发送的第二候选节点的COST值。
在一个可选的实现中,主线程接收子线程根据第一候选节点并行计算出的COST值之后,主线程将第一候选节点以及第一候选节点对应的COST值存储在第二队列中。
在一个可选的实现中,主线程对最低的COST值对应的第一候选节点进行识别具体包括:当主线程确定最低的COST值对应的第一候选节点是目的节点主线程对FPGA芯片布线完成;当主线程确定最低的COST值对应的第一候选节点不是目的节点时,主线程获取第一候选节点驱动的第二候选节点,以用于识别出最低的COST值对应的第二候选节点是目的节点,完成布线。
本发明实施例提供的一种基于多核处理器的FPGA的并行布线方法流程可以分为主线程和至少一个子线程。主线程对FPGA芯片的源节点进行识别,获取源节点关联的第一候选节点,之后主线程根据第一候选节点的数量,启动与数量相同的子线程。主线程通过向子线程依次发送第一候选节点,接收子线程根据第一候选节点并行计算出的相应COST值。主线程对最低的COST值对应的第一候选节点进行识别,根据识别结果,对FPGA芯片进行布线。该方法通过子线程对候选节点COST值的并行计算,有效的降低了布线的运行时间。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1A为现有技术的布线资源结构示意图;
图1B为图1A所示的布线资源的一种结构示意图;
图2为本发明实施例提供的基于多核处理器的FPGA芯片的并行布线方法流程图;
图3A位本发明实施例提供的主线程方法流程示意图;
图3B位本发明实施例提供的子线程方法流程示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明下述实施例中的方法是基于多核处理器的FPGA芯片实现的。在FPGA芯片的布线资源图中,布线资源通常都是以多路选择器(mux)的形式存在于硬件中,通常每个mux都会驱动很多个mux。在图1A所示的布线资源中每个mux都是一个节点。其中以4选1的多路选择器mux为例,该布线资源可以包括源节点muxA0(即开始节点)、中间节点muxB0-muxB2和目的节点muxC0(即结束节点),源节点muxA0可以驱动中间节点muxB0-muxB2,中间节点muxB1-muxB2可以驱动目的节点muxC0。
可以理解的是,该布线资源还可以包括源节点muxA1,源节点muxA1可以驱动中间节点muxB0-muxB2中的至少一个节点,或驱动中间节点muxB1-muxB2中的至少一个节点和/或目的节点muxC0。
图1B为图1A所示的布线资源的一种结构示意图。A节点为源节点,B节点、C节点和D节点为中间节点,E节点为目的节点。
本发明实施例通过多核处理器将布线过程分为主线程和子线程,由此多个子线程来并行计算节点的COST值。其中,依据实际技术情况,子线程的个数可以根据多核处理器的核数而定,也可以根据源节点驱动的节点个数而定。
下面将对多核处理器的布线过程进行详细描述。
图2为本发明实施例提供的基于多核处理器的FPGA芯片的并行布线方法流程图。如图2所示,该方法可以包括如下步骤:
步骤210、主线程启动子线程。
主线程是启动FPGA芯片时,自启动的线程,主线程可以获取初始化信息。该初始化信息可以包括布线任务的源节点和目的节点。
可选地,在主线程启动子线程之前,主线程根据FPGA芯片的源节点,获取源节点关联的第一候选节点。主线程扫描FPGA芯片,锁定FPGA芯片的源节点,并对源节点进行识别,获取源节点关联的至少一个第一候选节点。
主线程根据第一候选节点的数量和多核处理器的核数,确定子线程的数量,如多核处理器为4核处理器,源节点关联8个候选节点,那么主线程只能启动3个子线程(主线程本身占用一个核)。由于计算节点COST值的计算量较大,计算时间较长,故用第一候选节点的数量确定子线程的数量,可以保证每个第一候选节点的COST值均由独立的子线程完成或由空闲的子线程完成。
回到步骤210,主线程可以通过向子线程发送触发信号(如高低电平),以启动子线程,使其进入工作状态。
步骤220、主线程将获取的第一候选节点存储在第一队列中。
步骤230、子线程向主线程发送布线请求。
步骤240、主线程接收子线程发送的布线请求。
若主线程未接到子线程发送的布线请求,则主线程将继续等待子线程发送的布线请求。
可选地,在主线程接收到子线程发送的布线请求后,向子线程发送确认接收的响应信号,以指示主线程接收到该布线请求。
步骤250、主线程判断第一队列是否为空队列后,向子线程发送第一信号。
当第一队列不是空队列时,主线程向子线程发送第一信号,第一信号可以包括从第一队列中取出的一个第一候选节点后,执行步骤240,主线程再次接收子线程发送的布线请求。
可选地,子线程根据接收的第一候选节点,计算该节点的COST值。
子线程向主线程发送第二信号,第二信号可以包括该节点的COST值。
当第一队列是空队列时,主线程向子线程发送第一信号,第一信号是结束线程信号,以通知布线结束。此时子线程将第一候选节点及其计算出的相应COST值发送至主线程。
步骤260、主线程将接收的第一候选节点及其相应的COST值存储在第二队列中。
步骤270、当主线程确定第一候选节点是目的节点时,主线程根据COST值,对FPGA芯片进行布线。
若该第一候选节点是目的节点,则布线成功,即主线程已找到布线时间最少的布线方案。
若该第一候选节点不是目的节点,则主线程从此时的第二队列中取出最低的COST值对应的第一候选节点,主线程将该第一候选节点作为源节点:主线程对该源节点进行识别,获取源节点关联的第二候选节点,返回执行步骤230-步骤270,直到主线程从第二队列中取出最低的COST值对应的候选节点为目的节点为止。
需要说明的是,主线程从第一队列或第二队列中取出候选节点后,第一队列或第二队列中将不存在该候选节点。
在一个例子中,结合图1B,在图3A所示的主线程方法流程和图3B所示的子线程方法流程中,主线程扫描FPGA芯片,锁定FPGA芯片的源节点A,并对源节点A进行识别,获取源节点A关联的第一候选节点B、C和D,并将获取的第一候选节点B、C和D放入如表1所示的第一队列中。
表1
第一候选节点
B
C
D
如表1所示,第一队列中存储主线程获取的第一候选节点。
启动后的子线程向主线程发送布线请求,并等待主线程响应,直到子线程接收到主线程发送的响应信号,才表明主线程接受了该请求。主线程识别第一队列是否为空队列,即是否存有第一候选节点:当第一队列不是空队列时,则主线程从第一队列中依次取出一个第一候选节点发送至子线程,以使子线程根据第一候选节点计算出相应的COST值,之后再次等待子线程的请求。
当第一队列是空队列时,则主线程向子线程发送结束线程信号,以通知布线结束,此时子线程将第一候选节点及其计算出的相应COST值发送至主线程。主线程将接收的第一候选节点及其相应的COST值存储在第二队列中,如表2所示的第二队列可以包括如下内容:
表2
第一候选节点 COST值
B x
C y
D z
在表2中,候选节点B对应的COST值为x;候选节点C对应的COST值为y;候选节点D对应的COST值为z。
(1)主线程从第二队列中取出最低的COST值对应的第一候选节点C,并识别出该第一候选节点C不是目的节点,则主线程获取当前第一候选节点C驱动的全部节点D和E,作为第二候选节点存储在第一队列中,再次执行上述步骤,直到在第二队列中查询到目的节点E为止。
(2)主线程从第二队列中取出最低的COST值对应的第一候选节点B,并识别出该第一候选节点B并不是目的节点E,且当前第一候选节点B没有驱动的第二候选节点,则主线程将再次从此时的第二队列中取出最低的COST值对应的第一候选节点C,回到(1)。
本发明实施了提供的一种基于多核处理器的FPGA的并行布线方法流程可以分为主线程和至少一个子线程。主线程启动子线程后,对FPGA芯片的源节点进行识别,获取源节点关联的第一候选节点,之后主线程通过向子线程依次发送第一候选节点,接收子线程根据第一候选节点并行计算出的相应COST值。当主线程识别出第一候选节点是结束节点时,主线程根据COST的最小值,对FPGA芯片进行布线。该方法通过子线程对候选节点COST值的并行计算,有效的降低了布线的运行时间。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器、闪存、只读存储器、可擦除可编程只读寄存器(英文:erasableprogrammable read-only memory,EPROM)存储器、电可擦可编程只读存储器存储器(英文:electrically erasable programmable read-only memory,EEPROM)、硬盘、只读光盘(英文:compact disc read-only memory,CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于用户设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (6)

1.一种基于多核处理器的现场可编程门阵列芯片的并行布线方法,其特征在于,所述方法流程分为主线程和至少一个子线程,所述方法包括:
所述主线程对FPGA芯片的源节点进行识别,获取所述源节点关联的第一候选节点;
所述主线程根据所述第一候选节点的数量和多核处理器的核数,确定所述子线程的数量,并启动所述子线程;
所述主线程向启动后的所述子线程依次发送所述第一候选节点;
所述主线程接收所述子线程根据所述第一候选节点并行计算出的相应COST值;
所述主线程对最低的所述COST值对应的所述第一候选节点进行识别;
所述主线程根据识别结果,对所述FPGA芯片进行布线。
2.根据权利要求1所述的方法,其特征在于,所述主线程对FPGA芯片进行识别,获取所述源节点关联的至少一个第一候选节点之后,所述方法还包括:
所述主线程将所述第一候选节点存储在第一队列中;
所述主线程向启动后的所述子线程依次发送所述第一候选节点,具体包括:
所述主线程接收所述子线程发送的布线请求;
所述主线程根据所述布线请求,判断所述第一队列是否为空;
若否,则所述主线程向空闲的所述子线程依次发送所述第一候选节点;
若是,则所述主线程向所有的所述子线程发送结束线程信号,以通知布线结束。
3.根据权利要求2所述的方法,其特征在于,所述主线程接收所述子线程发送的布线请求之后,所述方法还包括:
所述主线程向所述子线程发送请求响应信号,以指示收到所述布线请求。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述主线程识别出所述第一候选节点不是目的节点时,所述主线程对所述第一候选节点进行识别,获取所述第一候选节点的第二候选节点,以接收所述子线程发送的所述第二候选节点的COST值。
5.根据权利要求1所述的方法,其特征在于,所述主线程接收所述子线程根据所述第一候选节点并行计算出的COST值之后,所述方法还包括:
所述主线程将所述第一候选节点以及所述第一候选节点对应的COST值存储在第二队列中。
6.根据权利要求1所述的方法,其特征在于,所述主线程对最低的所述COST值对应的所述第一候选节点进行识别,具体包括:
当所述主线程确定最低的所述COST值对应的所述第一候选节点是目的节点时,所述主线程对所述FPGA芯片布线完成;
当所述主线程确定最低的所述COST值对应的所述第一候选节点不是目的节点时,所述主线程获取所述第一候选节点驱动的第二候选节点,以用于识别出最低的所述COST值对应的所述第二候选节点是所述目的节点,完成布线。
CN201610805258.8A 2016-09-06 2016-09-06 基于多核处理器的现场可编程门阵列芯片的并行布线方法 Pending CN106407023A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610805258.8A CN106407023A (zh) 2016-09-06 2016-09-06 基于多核处理器的现场可编程门阵列芯片的并行布线方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610805258.8A CN106407023A (zh) 2016-09-06 2016-09-06 基于多核处理器的现场可编程门阵列芯片的并行布线方法

Publications (1)

Publication Number Publication Date
CN106407023A true CN106407023A (zh) 2017-02-15

Family

ID=57999881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610805258.8A Pending CN106407023A (zh) 2016-09-06 2016-09-06 基于多核处理器的现场可编程门阵列芯片的并行布线方法

Country Status (1)

Country Link
CN (1) CN106407023A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366029A (zh) * 2012-03-31 2013-10-23 中国科学院微电子研究所 一种现场可编程门阵列芯片布局方法
CN103886137A (zh) * 2014-03-03 2014-06-25 西安电子科技大学 一种实现现场可编程门阵列快速布局布线的方法
CN104462726A (zh) * 2014-12-26 2015-03-25 中国电子科技集团公司第四十七研究所 用于反熔丝的现场可编程门阵列的布线方法
CN105205205A (zh) * 2015-08-18 2015-12-30 北京大学 基于网表位置信息最优划分的fpga粗粒度并行布线方法
CN105634468A (zh) * 2014-10-30 2016-06-01 京微雅格(北京)科技有限公司 一种fpga的布线方法和宏单元

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366029A (zh) * 2012-03-31 2013-10-23 中国科学院微电子研究所 一种现场可编程门阵列芯片布局方法
CN103886137A (zh) * 2014-03-03 2014-06-25 西安电子科技大学 一种实现现场可编程门阵列快速布局布线的方法
CN105634468A (zh) * 2014-10-30 2016-06-01 京微雅格(北京)科技有限公司 一种fpga的布线方法和宏单元
CN104462726A (zh) * 2014-12-26 2015-03-25 中国电子科技集团公司第四十七研究所 用于反熔丝的现场可编程门阵列的布线方法
CN105205205A (zh) * 2015-08-18 2015-12-30 北京大学 基于网表位置信息最优划分的fpga粗粒度并行布线方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARCEL GORT等: "Deterministic multi-core parallel routing for FPGAs", 《CONFERENCE :FIELD-PROGRAMMABLE TECHNOLOGY》 *

Similar Documents

Publication Publication Date Title
CN108537543B (zh) 区块链数据的并行处理方法、装置、设备和存储介质
CN108595157B (zh) 区块链数据的处理方法、装置、设备和存储介质
US11074205B2 (en) Managing efficient selection of a particular processor thread for handling an interrupt
JP5490336B2 (ja) Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け
US8799564B2 (en) Efficiently implementing a plurality of finite state machines
WO2020227098A1 (en) Multi-tenant optimized serverless placement using smart network interface cards and commodity storage
US9858228B2 (en) Dynamic assignment of groups of resources in a peripheral component interconnect express network
US9853906B2 (en) Network prioritization based on node-level attributes
US20090213735A1 (en) System to improve data packet routing in a data processing device and associated methods
US8522076B2 (en) Error detection and recovery in a shared pipeline
US10552354B2 (en) Managing starvation in a distributed arbitration scheme
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
CN117009283A (zh) 一种多核多芯片数据处理方法、装置、芯片及存储介质
CN106407023A (zh) 基于多核处理器的现场可编程门阵列芯片的并行布线方法
CN112751724A (zh) 检测链路状态的方法及装置
CN115878333A (zh) 进程组间的一致性判断方法、装置及设备
CN115563050A (zh) 众核计算芯片及数据访问方法
CN115840621A (zh) 一种多核***的交互方法及相关装置
US20100218048A1 (en) Migratory hardware diagnostic testing
CN103825842A (zh) 一种多cpu***的数据流处理方法和装置
US11176009B2 (en) Implementing power up detection in power down cycle to dynamically identify failed system component resulting in loss of resources preventing IPL
CN113691434B (zh) 数据传输***、方法、电子设备及存储介质
US9047092B2 (en) Resource management within a load store unit
CN117130970A (zh) 一种多芯片数据传输方法、装置、芯片及存储介质
EP3893122A1 (en) Network processor and message processing method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190110

Address after: 901-903, 9th Floor, Satellite Building, 63 Zhichun Road, Haidian District, Beijing

Applicant after: JINGWEI QILI (BEIJING) TECHNOLOGY Co.,Ltd.

Address before: 100080 Beijing Haidian A62, East of Building No. 27, Haidian Avenue, 4th Floor, A District, Haidian District

Applicant before: BEIJING SHENWEI TECHNOLOGY CO.,LTD.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170215