CN109634909B - 具有片上互连的混合可编程众核设备 - Google Patents
具有片上互连的混合可编程众核设备 Download PDFInfo
- Publication number
- CN109634909B CN109634909B CN201811237154.7A CN201811237154A CN109634909B CN 109634909 B CN109634909 B CN 109634909B CN 201811237154 A CN201811237154 A CN 201811237154A CN 109634909 B CN109634909 B CN 109634909B
- Authority
- CN
- China
- Prior art keywords
- processor
- programmable logic
- data
- hybrid
- processors
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 claims abstract description 36
- 230000006870 function Effects 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 28
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000008672 reprogramming Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000007667 floating Methods 0.000 claims description 2
- 230000003068 static effect Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000001133 acceleration Effects 0.000 abstract description 22
- 238000012546 transfer Methods 0.000 abstract description 17
- 239000004744 fabric Substances 0.000 abstract description 7
- 238000010276 construction Methods 0.000 abstract description 4
- 238000005192 partition Methods 0.000 description 54
- 230000008569 process Effects 0.000 description 16
- 239000002184 metal Substances 0.000 description 11
- 238000013461 design Methods 0.000 description 7
- 238000005259 measurement Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 102220244326 rs113167834 Human genes 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Bus Control (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种混合可编程逻辑设备,其包括可编程的现场可编程门阵列逻辑构造以及众核分布式处理子系统。该设备在同一设备即同一芯片中集成了可编程逻辑元件的构造和处理器两者。可编程逻辑元件可以被确定大小并且被布置,使得布局和布线工具能够将处理器和逻辑元件作为同构布线构造来寻址。可编程逻辑元件可以向处理器提供硬件加速功能,这些硬件加速功能能够在该设备被构造之后被定义。该设备可以包括调度电路,该调度电路能够在逻辑构造中的水平和垂直连接器上调度数据的传输,以采用异步的方式在可编程逻辑元件与处理器之间传输数据。
Description
本申请是申请日为2014年3月13日、申请号为201410092909.4、发明名称为“具有片上互连的混合可编程众核设备”的发明专利申请的分案申请。
技术领域
本发明涉及包含许多可编程处理器、专用功能模块、以及可编程FPGA构造的混合可编程逻辑设备。本发明对于网络和分组处理特别有用,尽管它可以在其他应用中使用。
背景技术
众核(即多核)设备已经提供了一种提高设备性能而不引起提高时钟速度的成本的方式。众核设备可以包括用于硬件特定功能(诸如差错控制编码或者加密)的专用ASIC模块。这些模块通常被称为硬件加速器。
发明内容
本发明提供一种混合可编程逻辑设备,其包括可编程现场可编程门阵列逻辑构造(例如,可编程逻辑元件)以及众核分布式处理子系统(例如,众核处理器)。注意,术语“混合”指的是在同一设备(即,同一芯片)中集成了可编程逻辑元件的构造和处理器两者的设备。在所提供的架构中,可编程逻辑元件可以提供“后期绑定”的硬件加速功能,意思是被用来形成硬件加速功能的特定功能和逻辑架构能够在该设备被构造之后被定义。例如,可编程逻辑元件可以经由在运行时对混合可编程逻辑设备编程的软件,被分区或者分组为硬件加速器。还注意到,术语“设备”指的是本文中所描述的混合可编程逻辑设备的任何实施例或者实施例的组合。
在某些实施例中,处理器可以被集成到可编程逻辑构造中,而使得处理器的一个或多个物理尺寸(诸如宽度、长度或高度)是可编程逻辑元件的同一物理尺寸(即,对应的长度、宽度或高度)的倍数。这允许了具有不同尺寸的设备的有效率组装,而使处理器与可编程逻辑元件或者其他逻辑模块的比率不同。在某些实施例中,处理器可以是“硬化的”,意思是它们包括固定逻辑元件而不是可编程逻辑元件。这个特征提供了将强大的众核处理器集成到可编程逻辑构造中。在某些实施例中,处理器可以被集成到该构造中而使得处理器被平铺(tiled)在行或列中。注意,术语“被平铺”指的是布置处理器使得它们交错或者散布在可编程逻辑元件之中。例如,处理器可以与可编程逻辑元件一起被连续地布置在二维平面中,使得在连续的处理器之间没有其他的可编程逻辑元件。处理器的这种平铺可以允许用于在设备的处理器、可编程逻辑元件、以及I/O接口之间进行通信的互连网络的有效率构造和供应。
在某些实施例中,混合可编程逻辑设备可以包括数据总线,以将处理器、I/O接口、以及存储器之间的数据移动到芯片上或者移动到芯片外。在某些实施例中,这个数据总线可以是“硬化的”,意思是它包括专用电路组件,而不是能够该设备上被保留用于其他用途的电路组件。这个硬化的数据总线允许了向该设备内部和外部两者的高性能数据传送。在某些实施例中,这个数据总线可以包括水平和垂直连接器。水平和垂直连接器的某些组可以被接线,以向可编程逻辑元件提供数据并且从可编程逻辑元件提供数据,而其他组可以被接线,以向处理器提供数据并且从处理器提供数据。在某些实施例中,两组中的水平和垂直连接器可以处于相同金属层或相同层中。这些相同金属层可以位于设备中的互连栈中的层的上方,该互连栈包含处理器和可编程逻辑元件。在某些实施例中,水平和垂直连接器可以被布局以使得它们的垂直间距(例如,在互连栈中的垂直位置)是可编程逻辑元件、处理器或者两者的一个或多个组的大小的倍数。将用于处理器和可编程逻辑元件两者的水平和垂直连接器放置在相同金属层中,并且确定它们的大小使得它们符合可编程逻辑元件和处理器的大小,允许了布局和布线工具(例如,软件)将处理器和逻辑元件作为同构路由构造来寻址。换句话说,可以采用与向可编程逻辑元件路由数据并且从可编程逻辑元件路由数据的连接器相同的方式,来寻址向处理器路由数据并且从处理器路由数据的连接器的部分。
在某些实施例中,混合可编程逻辑设备可以包括入口/出口处理模块,该入口/出口处理模块接收数据(例如,以数据分组的形式),并且将该数据转发给该设备的其他元件。在某些实施例中,该设备可以包括片上网络总线,该片上网络总线专用于把去往和来自该入口/出口处理模块的数据路由和/或运送至该设备的其他元件。入口/出口处理模块可以是硬化的ASIC,或者可以是从该设备上的可编程逻辑元件构建的模块。
在某些实施例中,混合可编程逻辑设备可以包括调度电路,该调度电路能够调度逻辑构造中的水平和垂直连接器上的数据传输,该水平和垂直连接器在可编程逻辑元件与处理器之间传输数据。在某些实施例中,这个调度电路可以接收被寻址到这些处理器中的至少一个处理器的中断消息,意思是它们包含指示该数据的有效载荷应该由一个特定处理器或多个特定处理器来处理的信息。在其他实施例中,调度电路可以使用异步通信的其他方法以在可编程逻辑元件与处理器之间发送数据。在某些实施例中,调度电路可以标识这些处理器中的哪些处理器应该处理特定数据(例如,数据的块或分组),并且将该数据分发给所标识的处理器。通过使用中断消息或者其他的异步通信方法,调度电路可以允许处理器、可编程逻辑元件、以及数据总线以不同的时钟速度运行,因此打破网络总线与处理器时钟速度之间的任何定时依赖性。
在某些实施例中,调度电路可以包括程序指令存储器,该程序指令存储器能够在处理器的操作期间被重新编程。每个处理器可以基于所接收的数据分组中的信息来经由该调度电路检测新的操作模式,响应于检测到新的操作模式而停止操作(例如,清除处理器中的任何管线(pipeline)中的所有指令),并且基于从该设备中的其他元件所接收的数据来对该程序指令存储器重新编程。
在某些实施例中,处理器和可编程逻辑可以被划分为分区,以便管理电源。例如,可以计算混合可编程逻辑设备的分区。每个分区可以包括处理器和可编程逻辑元件的子集。可以计算处理器需求的至少一个测量,并且基于这个测量,可以变更分区中的处理器和可编程逻辑元件的电源状态。这个特征可以允许基于去往处理器和可编程逻辑元件的特定组的吞吐量来动态地管理设备的功耗。
附图说明
一旦结合附图地考虑对以下的详细描述,本发明的以上和其他优点将是明显的,在附图中,相似的参考符号自始至终指代相似的部分,并且其中:
图1A是根据本发明的实施例的混合可编程逻辑设备;
图1B是根据本发明的实施例的包含与可编程逻辑元件邻近的处理器的混合可编程逻辑设备的展开视图;
图1C是根据本发明的实施例的包含处理器与可编程逻辑元件之间的接口的混合可编程逻辑设备的展开视图;
图2A是根据本发明的实施例的在混合可编程逻辑设备中的数据总线的说明性视图;
图2B是根据本发明的实施例的在混合可编程逻辑设备中的数据总线的另一个说明性视图;
图3是根据本发明的实施例的具有硬化的数据总线和入口/出口的混合可编程逻辑设备;
图4A是根据本发明的实施例的具有硬化数据总线和入口/出口的混合可编程逻辑设备;
图4B是根据本发明的实施例的具有硬化数据总线和入口/出口的混合可编程逻辑设备;
图5是根据本发明的又另一个实施例的具有硬化数据总线和入口/出口的混合可编程逻辑设备;
图6是根据本发明的实施例的调度电路;
图7A是根据本发明的实施例的被分区的混合可编程逻辑设备的图示;
图7B是根据本发明的实施例的用于减少混合可编程逻辑设备的功耗的说明性过程。
具体实施方式
在设计众核设备时,对于特定应用而被要求的加速器的类型和数量可能难以预测。为了设计一种解决多于单个解决方案的设备,通常在设备中内置不需要的加速器,并且因此浪费设备上的区域以及消耗过度的功率。因此,将合意的是,设计具有可编程逻辑技术的众核设备,使得这些加速器可以在开发过程中的后期阶段被定义(例如,在众核设备的部署之后)。
进一步地,在设计众核设备时,许多代理可能请求对外部存储器的间歇访问。例如,在众核设备接收分组时,有效载荷从头部分开并且被发送给外部存储器(或者内部缓冲器),而针对大量的处理时间(例如,数百个时钟周期)该头部被发送给处理单元(例如,微处理器或硬件模块)。作为结果的头部(其可能被修改)然后与它的有效载荷重新结合并且排队用于向设备之外转发。当数百个代理正在发送并且接收数据时,对存储器的协同访问可能是困难的。因此,将合意的是,设计具有共享互连的众核设备,其允许灵活的路由(例如,如与静态路由相比较的动态路由)。
图1A是根据本发明的实施例的混合可编程逻辑设备100。设备100包括可编程逻辑元件130的区域,以及处理器150。通用输入/输出电路110能够包括一个或多个通用引脚,该一个或多个通用引脚能够在运行时由外部软件控制或编程。在某些实施例中,通用输入/输出电路110能够被配置为输入或者输出数据、能够读取或写入数据、能够被用作用于唤醒事件的IRQ、或者能够被用来从源外围设备向设备100传送数据。高速串行接口120能够促进信息在外部数据源(未示出)、可编程逻辑元件130、以及使用高速收发器模块的处理器150之间的信息传送。例如,高速串行接口120可以对接以太网连接以接收信息分组,用可编程逻辑元件130和处理器150来处理这些分组,并且将分组交换至不同的物理接口。下文关于图3来讨论用于路由所接收的信息的示例性电路。在某些实施例中,高速串行接口120可以以比通用输入/输出电路110更高的速度来传送数据。例如,高速串行接口120可以以数十千兆比特每秒的速率读取和写入数据,而通用输入/输出电路110可以以数百兆比特每秒的速率写入数据。在某些实施例中,高速串行接口120可以以线速率(line-rate)操作,线速率意思是设备100的合计吞吐速率(例如,跨越多个串行信道的100千兆比特每秒),而处理器150和可编程逻辑元件130以分布式速率操作,意思是处理线程(以及与这些处理线程一起使用的对应存储器和硬件加速模块)的合计吞吐量不比用于设备100的目标应用的最小吞吐量差。
可编程逻辑元件130能够包括逻辑门和存储器的任意组合。在某些实施例中,这些可编程逻辑元件可以被分组成逻辑阵列模块(“LAB”),该逻辑阵列模块指的是由加利福尼亚州圣何塞的Altera公司所提供的设备中的可编程逻辑资源的单元。然而,本发明可应用至来自任何来源的可编程逻辑元件。在某些实施例中,可编程逻辑元件可以被分组成硬件加速模块。每个硬件加速模块可以被指定为,对所接收的数据执行某种类型的硬件事件。在某些实施例中,硬件加速模块可以可配置使得该事件被定制为该特定情形。例如,硬件加速模块能够接受如下的参数:这些参数进一步将硬件事件定义为,对所接收的数据分组被执行。被用来配置硬件加速模块的参数可以例如由处理器150所生成。参数能够通过包括水平和垂直连接器的数据总线(未示出)被传输给硬件加速模块,该水平和垂直连接器连接至可编程逻辑元件130以及处理器150中的每个可编程逻辑元件和处理器。在某些实施例中,可编程逻辑元件130可以包括任何适当的存储器集群,诸如M20K存储器集群。
在某些实施例中,在设备100已经被构造和部署之后(例如,在设备100的运行时间期间或者通过远程更新过程),可编程逻辑元件130可以可配置成不同的硬件加速模块。因此,由可编程逻辑元件130所组成的硬件加速模块可以后期绑定,这允许设备100在任何数量的域中的任何数量的应用中通用。例如,可以更新设备100以负责最新的纠错、视频和图像处理、或者数据管理标准。这不同于具有处理器和固定硬件加速模块的商业网络处理单元、管线处理器、以及ASIC设备,因为这些设备不允许硬件加速器在部署之后被定义。
如图1A中示意性描绘的,在设备100上存在比用于处理器150的区域更多的区域用于可编程逻辑元件130。这是因为可编程逻辑元件130比处理器150便宜。在某些实施例中,可编程逻辑元件130可以基本上类似于由加利福尼亚州圣何塞的Altera公司所出售的Stratix V FPGA的可编程逻辑元件。然而,应该理解,适用于FPGA或PLD的任何可编程逻辑元件可以被用作可编程逻辑元件130。
处理器150能够包括具有众核设计的任何适当数量的处理器。这些众核设计可以基于由诸如ARM、MIPS和Tensilica的供应商的微处理器IP。这个微处理器IP允许创建定制的嵌入式处理器(例如,移除浮点单元)和定制的指令集架构的能力。在某些实施例中,这些处理器可以是“硬化的”,意思是它们包括固定逻辑元件而不是可编程逻辑元件。这个特征提供了将强大的众核处理器集成到可编程逻辑构造中。
如图1A中示意性描述的,处理器150平铺在可编程逻辑元件130没有出现的设备100的部分中的四列组装结构中。在其他实施例中,可以使用更少或更多列的处理器。在某些实施例中,列或者处理器的数量以及每列中的处理器的数量可以比图1A中所描绘的更多或更少。列的数量和每列中的处理器150的数量可以取决于用于每个处理器的处理器架构。例如,当每个处理器的指令缓存和数据缓存减少时,更多的处理器可以平铺在设备100上。在一个示例中,使用具有16KB的指令缓存和数据缓存的MIPS 34K多线程处理器。在这一示例中,当缩小到28mm的设计目标时,每个处理器消耗小于设备上的0.25平方微米的硅面积,这等于30个Stratix V LAB。应该理解,处理器150可以备选地布局在设备100上的行中。
在某些实施例中,处理器150是多线程的。多线程处理器向如下的应用提供了优点:在这些应用中,通常要求与片外存储器或者查找相对接,这可能花费多个时钟周期的处理时间,并且因此增加了延迟;或者要求隐藏加速器处理的延迟。例如,通过阻挡对这个查找任务的处理器中的一个线程,处理器能够继续执行其他功能。在某些实施例中,可以通过对于由处理器150所接收的数据的时间分片操作来实现多线程。在其他实施例中,可以通过已知的操作系统机制来实现多线程。
处理器150在设备上的平铺布局允许了有效率的构造以及提供用于在设备的处理器、可编程逻辑元件、以及I/O接口之间通信的互连网络。这是因为可编程逻辑元件130和设备100的其他元件(诸如存储器(未示出))从处理器150分离。此外,处理器150的平铺布局允许了处理器150和可编程逻辑元件130在设备100中的相同金属层中的结构,以及包含数据总线的互连栈的结构。
图1B是根据本发明的实施例的包含与可编程逻辑元件130邻近的处理器150的混合可编程逻辑设备100的展开视图。两个处理器在图1B中被示意性地描绘为包含三个组件—处理器核心170、指令缓存180、以及数据缓存190的方块。在图1B中还示意性描绘了被分组为LAB 132的可编程逻辑元件130。在某些实施例中,处理器150的尺寸的物理大小(诸如长度、高度或宽度)是可编程逻辑元件150或者由可编程逻辑元件150所组成的LAB的同一尺寸的倍数。例如,如图1B中所描绘的,两个处理器中的每个处理器的宽度等于三个LAB132。这允许了具有不同尺寸的设备的有效率组装,而使处理器与可编程逻辑元件或者其他逻辑模块的比率不同。
图1C是根据本发明的实施例的包含处理器150与可编程逻辑元件130之间的接口161的混合可编程逻辑设备100的展开视图。接口161可以被包括在每个LAB或者LAB行与处理器150之间。接口161可以包括LIM/LEIM电路162、接口逻辑164、以及接口端口166。LIM/LEIM电路162指代可编程输入多路复用器“LAB输入多路复用器”和“逻辑元件输入多路复用器”的集合,并且可以包括任何适当数量的如通常在由加利福尼亚圣何塞的Altera公司所出售的设备中找到的LIM和LEIM多路复用器。接口逻辑164可以包括,用于将数据缓冲到接口端口166的任何适当的电路组件。接口端口166可以包括,用于将信号物理地传递给处理器150之一的任何适当的电路。
在某些实施例中,水平和垂直连接器167还可以被包括在设备100上。如下文将关于图3所讨论的,水平和垂直连接器167可以在处理器150、可编程逻辑元件130、通用输入/输出接口、以及片上和片外存储器之间传送数据。在某些实施例中,水平和垂直连接器可以被接线至接口电路161,使得来自可编程逻辑元件130中的任意可编程逻辑元件的任意信号能够经由LIM/LEIM电路162和接口逻辑164被传递给接口端口166。例如,LIE/LEIM电路162内的多路复用器可以选择哪个信号驱动水平/垂直连接器167中的任何全局线路,以将可编程逻辑元件130中的任何可编程逻辑元件与处理器150相连接。
图2A是根据本发明的实施例的在混合可编程逻辑设备100中的数据总线210的说明性视图。尽管数据总线210的线路被示出在垂直方向上的LAB 215的上方,但是在实施方式中,它们是在LAB上方(例如,在包含LAB和处理器的金属层上方的金属层中)的互连栈的一部分。类似于水平和垂直连接器167,数据总线210能够在处理器150、可编程逻辑元件130、通用输入/输出接口110、以及设备100(图1A)上和设备100外的存储器之间传送数据。图2A说明性地突出了从LAB 215上方距离特定间隔的LAB 216被路由的数据总线210的两条线路。在某些实施例中,数据总线210的水平和垂直连接器可以被布局,使得它们的垂直间距(例如,互连栈中的垂直位置,在图2A和2B中由“W”图示)是可编程逻辑元件、处理器或者两者的一个或多个组的大小(例如,垂直间距)的倍数。
图2B是根据本发明的实施例的在混合可编程逻辑设备100中的数据总线210的另一个说明性视图。如图2B中示意性描绘的,处理器217取代LAB 216。处理器217可以是设备中的平铺处理器的列的一部分,诸如平铺处理器150之一(图1A)。在某些实施例中,数据总线210的接线具有相同的垂直间距,并且遵循通向LAB 215和LAB 216的数据总线210的相同的接线图案。此外,在某些实施例中,来自处理器217以及LAB 215和LAB 216的接线处于互连栈中的相同金属层中(例如,在包含LAB和处理器的金属层上方的金属层中)。通过将用于处理器和可编程逻辑元件两者的水平和垂直连接器放置在相同金属层中,并且确定它们的大小使得它们符合可编程逻辑元件和处理器的大小(例如,垂直间距),允许了布局和布线工具(例如,软件)将处理器和逻辑元件作为同构布线构造来寻址。换句话说,可以采用与向可编程逻辑元件(诸如LAB 215和LAB 216中的可编程逻辑元件)路由数据并且从可编程逻辑元件路由数据的连接器相同的方式,来寻址向处理器(诸如处理器217)路由数据并且从处理器路由数据的连接器的部分。
图3是根据本发明的实施例的具有硬化数据总线160和入口/出口处理模块136的混合可编程逻辑设备300。图4A是根据本发明的实施例的具有不同的硬化数据总线160的同一混合可编程逻辑设备300。图4B是具有另一种不同的硬化数据总线160的同一混合可编程逻辑设备300。
设备300还包括外部存储器135和嵌入式三态内容可寻址存储(CAM)存储器137。硬化数据总线160可以包括专属电路组件,该专属电路组件向处理器150、可编程逻辑元件130、入口/出口处理模块136、外部存储器135、以及嵌入式三态CAM存储器137并且从处理器150、可编程逻辑元件130、入口/出口处理模块136、外部存储器135、以及嵌入式三态CAM存储器137传送数据,而不是被保留用于设备上的其他使用。在某些实施例中,硬化数据总线160可以被称为片上网络互连。在这样的实施例中,硬化数据总线160可以专用于把去往和来自入口/出口处理模块的数据路由和/或运送至该设备的其他元件。硬化数据总线160能够允许设备内部和外部两者的高性能数据传送。在某些实施例中,硬化数据总线160可以包括水平和垂直连接器167(图1C)和数据总线210(图2A和2B)的一部分。在其他实施例中,硬化数据总线160可以完全从水平和垂直连接器167分离。
硬化数据总线160可以具有各种拓扑。例如,硬化数据总线160可以具有环形拓扑、诸如由英国剑桥的ARM Holdings所设计的AXI的共享总线协议、来自Sonics、Arteris或者其他第三方公司的互连技术、或者由加利福尼亚州圣何塞的Altera公司所设计的Avalon互连。在某些实施例中,硬化数据总线160可以是分级的。例如,如图3中示意性描绘的,硬化数据总线160可以是4路分工的。在另一个示例中,如图4A中示意性描绘的,硬化数据总线160可以是单片式的。在又另一个示例中,如图4B中示意性描绘的,硬化数据总线可以是分段的。
在某些实施例中,可以由能够对设备300编程的软件来分级地连接或断开硬化数据总线160的部分。这个软件可以包括由加利福尼亚州圣何塞的Altera公司所设计的Quartus软件或者任何其他适当的软件。在某些实施例中,硬化数据总线160的宽度被设计为实现特定应用的线速率。例如,如果硬化数据总线160是64比特并且以80%的效率工作在1GHz,则它能够提供51Gbps的带宽并且被用来以50Gbps的流式视频应用为目标。在另一个示例中,如果硬化数据总线160是64比特并且以80%的效率工作在1.5GHz,则它能够提供150Gbps的带宽并且以100Gb的业务交换应用为目标。在某些实施例中,可以添加分离的硬化数据总线以运送用于处理器输入和输入(如LAB输入和输出)的数据。
在某些实施例中,硬化数据总线160可以被放置在处理器150和可编程逻辑元件130上方(例如,在上方的金属层中)或者邻近处理器150和可编程逻辑元件130。以这种方式,硬化数据总线160最少地侵害设备300(图3)的组装。
外部存储器135可以包括通向外部存储器(诸如DDR存储器)的任何适当接口。外部存储器135能够在设备300正在处理视频数据或分组数据的应用中缓冲数据。在某些实施例中,嵌入式三态CAM存储器137可以包括,对于联网应用有用的任何适当的内容可寻址存储器的模块。在某些实施例中,嵌入式三态CAM存储器137可以使用基本上类似于接口电路161(图1C)的电路来与可编程逻辑元件130和处理器150对接。在某些实施例中,嵌入式三态CAM存储器137可以由SRAM或者嵌入式SRAM分组缓冲存储器替代。
入口/出口处理模块136能够接收数据并且将该数据转发给设备100的其他元件。例如,入口/出口处理模块136能够接收数据分组并且向设备300提供协议终止或者分组成帧服务。在某些实施例中,入口/出口处理模块136可以将所接收的数据转发给硬化数据总线160。在某些实施例中,入口/出口处理模块可以包括硬化ASIC模块。这些模块可以根据美国专利No.8,314,636中所公开的ASIC模块来构造,该专利通过引用以其整体并入本文。在某些实施例中,入口/出口处理模块可以由可编程逻辑元件130来构建。
图5是根据本发明的又另一个实施例的具有硬化数据总线160和入口/出口137的混合可编程逻辑设备500。设备500可以基本上类似于设备100(图1A)和设备300(图3),除了用于对接至2.5D或3D存储器的通用接口总线138被集成到设备500中,或者其他的功能之外。如图5中示意性图示的,接口138能够经由硬化数据总线160连接到处理器150和可编程逻辑元件130。在其他实施例中,接口138能够通过通用FPGA路由(诸如水平和垂直连接器167(图1C))连接至处理器150和可编程逻辑元件130。在某些实施例中,接口138可以根据美国专利申请No.13/350,662和No.13/620,126中所描述的设计和方法来制造,这两个专利申请通过引用以其整体并入本文。
图6是根据本发明的实施例的调度电路600。调度电路600包括数据总线605,其能够基本上类似于水平和垂直连接器167(图1C)或者硬化数据总线160(图3)。调度电路600能够在诸如可编程逻辑元件130的可编程逻辑元件与处理器630之间调度水平和垂直连接器、硬化数据总线上的数据传输。在某些实施例中,处理器630可以是平铺处理器的列的一部分,诸如关于处理器150(图1A)所描述的那些。在这样的实施例中,调度电路600的副本可以与处理器150中的每个处理器集成。
调度电路600包括总线接口610和线程电路620。在某些实施例中,调度电路还可以包括处理器630和缓存640。处理器630可以基本上类似于处理器150(图1A),并且缓存640可以基本上类似于指令缓存180和数据缓存190。此外,处理器630可以是处理器的平铺列或行的一部分,诸如关于处理器150(图1A)所描述的那个。在这样的实施例中,调度电路600可以针对处理器的平铺行或列中的每个处理器而被实施在该设备上。
水平和垂直连接器605可以传输去往和来自总线接口610的数据。水平和垂直连接器605可以是水平和垂直连接器167、硬化数据总线160、或者两者的至少一部分的部分。在某些实施例中,数据总线210可以使用水平和垂直连接器605,来传输去往和来自设备上的可编程逻辑元件以及设备上的处理器的数据。例如,总线接口210可以使用水平和垂直连接器167,在设备100的可编程逻辑元件130与处理器630之间传输数据。在某些实施例中,在可编程逻辑元件与处理器之间的数据传输,可以以与处理器630的时钟的速度速率不同或者异步的速度速率而发生。例如,处理器的操作的速度可以比设备上的可编程逻辑元件的操作的速度更快或者更慢,并且使用水平和垂直连接器605在可编程逻辑元件与处理器之间传输数据的速度速率,可以不同于处理器630的时钟的速度。
在这样的实施例中,总线接口610可以提供如下的机制:这些机制允许数据以关于处理器630的时钟速度异步的速率,在水平和垂直连接器605上传输。在某些实施例中,总线接口610可以通过水平和垂直连接器605接收中断消息。在这样的实施例中,这些中断消息可以被寻址到设备上的处理器中的一个或多个处理器,意思是它们包含如下的信息:该信息指示与该消息相关联的数据的有效载荷应该由一个特定处理器或多个特定处理器来处理。总线接口电路610可以仅传输与被寻址到处理器630的中断消息相关联的数据,并且忽略不寻址到处理器630的其他消息。例如,总线接口电路610可以在与总线电路610相关联的软件或硬件中包含预定的或硬编码的值,该值是处理器630的地址。总线接口电路610可以周期性地或者持续地针对该地址来监测通过水平和垂直连接器605所传输的消息。当检测到该地址时,总线接口电路610可以缓冲与寻址到处理器630的消息相关联的数据,并且使用线程电路620将该数据从缓冲器传输给处理器630。线程电路620维护与处理器630中的各种任务的执行相关联的一个或多个程序计数器。在某些实施例中,线程电路620从接口电路610接收数据,并且基于其维护的程序计数器中的一个或多个程序计数器来确定适当的时间,以将该数据发送给处理器630。以这种方式,调度电路600可以允许设备的处理器、可编程逻辑元件、以及数据总线工作在不同时钟速度,因此打破了与网络总线有关的组件与处理器时钟速度之间的任何定时或时钟依赖性。
在某些实施例中,异步通信的任何适当方法可以被用来在设备的可编程逻辑元件与处理器630之间发送数据。在某些实施例中,调度电路600的功能可以通过两个或多个处理器的组而不是调度电路600来实现。处理器的这些组可以标识处理器中的哪些处理器来发送从设备的水平和垂直连接器所接收的(即,从可编程逻辑元件所传输的)数据,并且将该数据分发给所标识的处理器。这个标识可以类似于上文关于总线接口电路610所描述的监测过程来确定。
在某些实施例中,调度电路600可以包括程序指令存储器(未示出),其能够包括外部存储器的任何适当组合。在某些实施例中,设备上的处理器(诸如处理器630)的指令集可以在操作期间被修改,使得它们被重新编程具有新的程序集。这个新的指令集可以允许该设备实现新的功能或不同的功能,诸如可以由处理器所使用的针对硬件加速器的程序指令。
在这样的实施例中,程序指令存储器可以针对处理器中的一个或多个处理器来检测新的操作模式。例如,程序指令存储器可以包含用于监测水平和垂直连接器605上的数据分组的指令。能够由它们的分组头部来标识的某些数据分组可以包含控制分组,该控制分组包含用于将处理器630重新编程而具有新的功能或更新的功能的指令。总线接口电路610可以通过周期性地或者连续地监测水平和垂直连接器,以匹配控制分组头部,来检测这些控制分组。响应于检测到新的操作模式,可以停止处理器630的操作。例如,一旦总线接口电路610检测到控制分组头部,其可以缓冲该分组的有效载荷数据,并且将该有效载荷数据传送给线程电路620。线程电路620然后可以执行处理器630的线程或管线中的创建、执行、或者插入指令中的一个或多个指令,该一个或多个指令使得处理器630停止操作并且清除所有待处理指令。线程电路620然后可以从总线接口电路610中的缓冲器向处理器630传送控制分组的有效载荷,该有效载荷包含用于对处理器630重新编程的指令。在某些实施例中,控制分组的头部中的信息可以以一组处理器为目标,该一组处理器诸如设备上的一个或多个平铺列中的一组处理器。在这样的实施例中,上文所描述的过程可以针对使用每个处理器的相关联总线接口电路的设备上的目标处理器中的每个处理器而基本上并行地发生。
在某些实施例中,设备上的处理器可以经由分区被划分为不同的类别。这种分区可以是物理的(例如,处理器中的硬编码)或者虚拟的(例如,经由调度软件所保持的记录来指派)。图7A是根据本发明的实施例的被分区的混合可编程逻辑设备100的图示。设备100可以基本上类似于关于图1A所描述的那个设备。设备100可以被分区为第一分区702、第二分区704、以及第三分区706。这些分区可以由布局和布线工具或者任何适当的软件来指定。在某些实施例中,这些分区可以由如下的表格来指定:该表格将处理器的地址或其他唯一标识符中的每一个与分区编号相映射。在某些实施例中,处理器的分区还可以与设备100的可编程逻辑元件的分区相关联。应该理解,尽管图7A示出三个分区,但是设备100的处理器可以被划分为该设备上的任何适当几何尺寸中的任何适当数量的分区。
每个分区710、720、以及730可以与不同类别的处理器和可编程逻辑元件相关联。在某些实施例中,这些类别可以被用来经由不同类型的处理来实施可替换的处理模型。在这样的实施例中,每个分区可以与不同的处理或硬件加速功能相关联。例如,与第一分区702相关联的处理器可以被指定为操作流标识处理,与第二分区704相关联的处理器可以被指定为操作初始分组处理和分发,并且与第三分区706相关联的处理器可以被指定为对系统或设备广度状态处理(system or device-wide state processing)进行操作。以这种方式,设备100可以被配置为操作任何数量的应用。在分组处理应用中对设备100的使用在与本文同时提交的、标题为“Mapping Network Applications To A Hybrid ProgrammableMany-Core Device”(代理人案卷号000174-0768-101/A03945)的美国专利申请No.____中被进一步地举例说明和讨论,该美国专利申请通过引用以其整体并入本文。
在某些实施例中,不同类别的处理器和可编程逻辑元件可以被用来管理设备100的电源使用。例如,基于对于与每个分区相关联的处理器和逻辑元件的处理能力的需求,与设备100的分区相关联的处理器和可编程逻辑元件可以被上电或断电。下文关于图7B来描述这个过程。
在某些实施例中,与设备100的一个或多个分区相关联的处理器和可编程逻辑元件可以被指定为管家(housekeeper)处理器。这些管家处理器可以代表设备100来实施诸如电源和时钟管理的功能。在某些实施例中,这些管家处理器可以由布局和布线工具的用户来指定。在其他实施例中,这些管家处理器可以在设备100的运行期间由设备100自动地指定。
图7B是根据本发明的实施例的用于减少混合可编程逻辑设备(诸如设备100(图1A和7A))的功耗的说明性过程700。过程700开始于步骤710。在步骤710处,计算该设备的至少两个分区,每个分区包括与可编程逻辑元件相关联的处理器。这两个分区中的每个分区可以基本上类似于关于图7A所讨论的分区702、704和706。在某些实施例中,可以在设备的工作之前由布局和布线软件来计算分区。在其他实施例中,可以在设备的工作期间由调度软件来计算分区。这个调度软件可以在设备外部的主机处理器上、或者在所指定的管家处理器上被执行。在这样的实施例中,调度软件可以在设备的工作期间动态地改变分区。例如,在第一时间处,调度软件可以指定被活动地用于硬件加速功能的与40%的处理器以及相关联的可编程逻辑元件相关联的第一分区,并且指定不被活动地使用的与60%的处理器以及相关联的可编程逻辑元件相关联的第二分区。然而,在随后的时间,在更多的处理器和可编程逻辑元件已经变得活动之后,调度软件可以指定被活动地用于硬件加速的与55%的处理器以及可编程逻辑元件相关联的第一分区,并且指定不被活动地使用的与45%的处理器以及可编程逻辑元件相关联的第二分区。以这种方式,设备能够基于设备的吞吐量来活动地调整其电源使用。在某些实施例中,分区可以与“上半部”和“下半部”的处理器和相关联的可编程逻辑元件相关联。在这样的实施例中,调度软件可以指定与设备中的资源的“下半部”相关联的分区处于省电模式,而与设备中的资源的“上半部”相关联的分区可以被指定用于活动模式。在某些实施例中,通过确定什么硬件加速功能正在由处理器或处理器组执行,并且然后将与执行特定硬件加速功能相关联的这些处理器和可编程逻辑元件指定为单个分区,可以计算分区。
过程700可以前进到步骤720。在步骤720处,计算处理器需求的至少一个测量。在某些实施例中,可以针对在步骤710处所计算的每个分区来计算处理器需求的这些测量。在某些实施例中,可以通过调度软件来计算处理器需求的测量。在某些实施例中,可以通过确定正在等待(例如,在队列中)由处理器或处理器组(例如,特定分区中的所有处理器)处理的所接收的数据分区的数量,来计算处理器需求的测量。在一个实施例中,如果处理器或处理器组针对预定时间段还未接收到数据分组(例如,因为处理器以及相关联的可编程逻辑元件执行没有正在被使用的硬件加速功能),则如下文将关于步骤730所讨论的,处理器或处理器组可以被指定为是不需要的,并且被标记以用于断电。以这种方式,不再需要它们的处理电源的处理器,在设备100上象征性地从执行它们的工作中“下岗”。在同一实施例中,如果数据分组随后针对被标记为空闲的处理器或处理器组而被接收,则如下文将关于步骤730所讨论的,这些数据分组可以排队并且该处理器或多个处理器可以被指定为是活动的,并且被标记以用于上电。以这种方式,再次被需要的空闲处理器在设备100上象征性地被聘回以执行它们的工作。在另一个实施例中,如果处理器或处理器组在预定阈值之下已经接收了多个数据分组,则如下文将关于步骤730所讨论的,该处理器或处理器组可以被指定为不需要的,并且被标记以用于断电。
过程700然后可以前进到步骤730。在步骤730处,可以基于在步骤720处所计算的处理器需求的测量,来变更分区中的处理器以及相关联的可编程逻辑模块的电源状态。在某些实施例中,可以通过把被分配给一个分区的设备的资源断电,来变更该分区的电源状态。例如,如果针对特定分区,处理器需求被计算为小于所接收的数据分组的阈值数量,则可以将该分区的处理器或处理器组以及相关联的可编程逻辑元件断电。在某些实施例中,可以通过禁用被提供给分区内的资源的时钟信号,来将这些资源断电。在某些实施例中,可以通过将之前被断电或者休眠的分区的资源上电,来变更分区的电源状态。例如,如果设备确定被断电的特定分区中的资源被需要以用于执行新的硬件加速功能或所调度的硬件加速功能,或者确定当前正被接收的数据分组调用与先前被断电的硬件加速功能相关联的资源,则可以将该分区内的资源上电。在某些实施例中,可以通过启用被提供给分区内的资源的时钟信号,来将这些资源上电。
将理解,前文仅是对本发明的原理的举例说明,并且本领域的技术人员能够做出各种修改而不脱离本发明的范围和精神。本领域的技术人员将意识到,本发明能够通过除了所描述的实施例之外的实施例来实行,所描述的实施例为了举例说明而不是限制的目的而被提出,并且本发明仅由随后的权利要求所限定。
Claims (24)
1.一种混合数据处理设备,包括:
硬化处理器阵列;
可编程逻辑元件阵列;
多个区域,其分别包括:
所述硬化处理器阵列中的硬化处理器,其能够被配置为以第一时钟速率进行操作,
其中,所述硬化处理器阵列中的硬化处理器通信地耦合到以不同于所述第一时钟速率的第二时钟速率进行操作的所述可编程逻辑元件阵列,
其中,所述可编程逻辑元件阵列能够在所述混合数据处理设备运行时被重新配置;以及
多个连接器,其能够被配置为在所述硬化处理器阵列中的所述硬化处理器和所述可编程逻辑元件阵列之间传送数据;
硬化数据总线,其使得能够在所述硬化处理器阵列中的所述硬化处理器和所述可编程逻辑元件阵列之间进行静态路由,
其中,所述硬化数据总线包括将所述硬化处理器阵列耦合到所述可编程逻辑元件阵列的多个水平连接器和多个垂直连接器;以及
接口,其能够被配置为将所述数据从所述第一时钟速率转换成所述第二时钟速率。
2.根据权利要求1所述的混合数据处理设备,其中,所述硬化处理器阵列中的所述硬化处理器包括指令存储器和数据存储器。
3.根据权利要求1所述的混合数据处理设备,其中,所述硬化处理器阵列中的所述硬化处理器能够被配置为执行浮点精度操作。
4.根据权利要求1所述的混合数据处理设备,其中,所述硬化处理器阵列中的所述硬化处理器能够被配置作为硬件加速器以加速硬件功能。
5.根据权利要求1所述的混合数据处理设备,其中,所述多个连接器包括水平和垂直连接器。
6.根据权利要求1所述的混合数据处理设备,其中,所述多个连接器能够被配置为形成片上网络。
7.根据权利要求1所述的混合数据处理设备,其中,所述硬化处理器阵列中的所述硬化处理器包括处理器核心。
8.一种混合可编程逻辑设备,包括:
处理器,包括固定逻辑元件;
可编程逻辑元件,经由数据总线通信地耦合到所述处理器;以及
调度电路,直接耦合到所述数据总线和所述处理器,其中所述调度电路包括总线接口电路和线程电路,并且其中所述调度电路被配置为:
在所述总线接口电路中,经由所述数据总线从所述可编程逻辑元件接收数据分组,其中所述数据分组包括地址、头部、以及有效载荷;
在所述总线接口电路中,确定所述地址是否与所述处理器相关联;
在所述总线接口电路中,识别所述头部中的控制分组,其中所述控制分组包括用于所述处理器的操作模式;
在所述总线接口电路中,缓冲所述有效载荷;
部分地基于所述控制分组来调度所述线程电路的第一线程上的指令,其中所述指令被配置为:部分地基于所述控制分组,将所述处理器的操作模式从第一操作模式改变到第二操作模式;以及
一经所调度的所述指令的执行,部分地基于所调度的所述指令,将所述有效载荷递送给所述处理器。
9.根据权利要求8所述的混合可编程逻辑设备,其中所述调度电路被配置为:将所述有效载荷缓冲在与所述处理器的所述第一线程相关联的所述线程电路中。
10.根据权利要求8所述的混合可编程逻辑设备,其中所述头部包括中断信号,并且其中所述调度电路被配置为:通过清除所述处理器的所述第一线程,来调度所述处理器的所述第一线程上的所述指令。
11.根据权利要求8所述的混合可编程逻辑设备,其中所述线程电路包括程序计数器,并且其中所述总线接口电路被配置为:通过设置与所述第一线程相关联的计数器来调度所述指令。
12.根据权利要求8所述的混合可编程逻辑设备,其中所述总线接口电路在第一频率处接收所述数据分组,并且其中所述总线接口电路在与所述第一频率不同的第二频率处,向所述处理器递送所述有效载荷。
13.根据权利要求8所述的混合可编程逻辑设备,其中所述有效载荷包括与所述第二操作模式相关联的第二指令集。
14.根据权利要求13所述的混合可编程逻辑设备,其中所述调度电路包括程序指令存储器,所述程序指令存储器被配置为存储所述处理器的第一指令集,并且其中对所述处理器重新编程包括:向所述程序指令存储器添加所述第二指令集。
15.根据权利要求8所述的混合可编程逻辑设备,其中所述数据总线包括硬化的数据总线。
16.根据权利要求8所述的混合可编程逻辑设备,其中所述混合可编程逻辑设备包括耦合到所述数据总线的高速串行接口。
17.根据权利要求16所述的混合可编程逻辑设备,其中所述高速串行接口被配置为与以太网连接对接。
18.一种从可编程逻辑结构向混合可编程逻辑设备的处理器传输数据的方法,所述方法包括:
经由数据总线,在总线接口中,从所述可编程逻辑结构接收信号,其中所述信号通过所述总线接口以总线时钟速率接收,并且其中所述信号包括地址、头部、以及有效载荷;
在所述总线接口中,确定所述地址是否与所述处理器相关联;
在所述总线接口中,识别所述信号的所述头部中的控制分组,其中所述控制分组包括用于所述处理器的操作模式;
将所述信号的所述有效载荷缓冲在与所述处理器的第一线程相关联的线程电路中;
部分地基于所述控制分组来调度所述处理器的所述第一线程上的指令,其中所调度的所述指令被配置为:部分地基于所述控制分组的所述操作模式,对所述处理器重新编程;以及
部分地基于所调度的所述指令的执行,部分地基于所调度的所述指令,以处理器时钟速率将所述信号的所述有效载荷递送到所述处理器。
19.根据权利要求18所述的方法,其中调度所述指令包括:创建所调度的所述指令、执行所调度的所述指令、或插入所调度的所述指令、或它们的任何组合。
20.根据权利要求18所述的方法,包括:将所述信号的所述有效载荷缓冲在所述总线接口的缓冲器中。
21.根据权利要求18所述的方法,其中所述头部包括中断信号,并且其中调度所述处理器的所述第一线程上的所述指令包括:清除所述处理器的所述第一线程。
22.根据权利要求21所述的方法,其中调度所述指令包括:部分地基于所述地址来选择所述处理器的所述第一线程。
23.根据权利要求20所述的方法,其中所调度的所述指令的所述执行包括所述处理器时钟速率的改变。
24.根据权利要求20所述的方法,其中所调度的所述指令的所述执行包括所述处理器的功率的改变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811237154.7A CN109634909B (zh) | 2013-03-14 | 2014-03-13 | 具有片上互连的混合可编程众核设备 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/804,419 | 2013-03-14 | ||
US13/804,419 US9471537B2 (en) | 2013-03-14 | 2013-03-14 | Hybrid programmable many-core device with on-chip interconnect |
CN201410092909.4A CN104050142B (zh) | 2013-03-14 | 2014-03-13 | 具有片上互连的混合可编程众核设备 |
CN201811237154.7A CN109634909B (zh) | 2013-03-14 | 2014-03-13 | 具有片上互连的混合可编程众核设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410092909.4A Division CN104050142B (zh) | 2013-03-14 | 2014-03-13 | 具有片上互连的混合可编程众核设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109634909A CN109634909A (zh) | 2019-04-16 |
CN109634909B true CN109634909B (zh) | 2023-12-26 |
Family
ID=50289371
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811237154.7A Active CN109634909B (zh) | 2013-03-14 | 2014-03-13 | 具有片上互连的混合可编程众核设备 |
CN201410092909.4A Active CN104050142B (zh) | 2013-03-14 | 2014-03-13 | 具有片上互连的混合可编程众核设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410092909.4A Active CN104050142B (zh) | 2013-03-14 | 2014-03-13 | 具有片上互连的混合可编程众核设备 |
Country Status (3)
Country | Link |
---|---|
US (5) | US9471537B2 (zh) |
EP (1) | EP2778946A3 (zh) |
CN (2) | CN109634909B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105684378A (zh) * | 2013-10-03 | 2016-06-15 | 迈克菲公司 | 在网络安全装置中高效地复制分组 |
CN109783435A (zh) * | 2014-10-27 | 2019-05-21 | 阿尔特拉公司 | 具有嵌入式可编程逻辑的集成电路器件 |
CN104636311A (zh) * | 2015-02-28 | 2015-05-20 | 天津大学 | 多处理器片上网络互连阵列尺寸的开发方法 |
US10606779B2 (en) | 2016-09-16 | 2020-03-31 | Altera Corporation | Methods and apparatus for performing partial reconfiguration in a pipeline-based network topology |
US10416974B2 (en) | 2017-10-06 | 2019-09-17 | Chicago Mercantile Exchange Inc. | Dynamic tracer message logging based on bottleneck detection |
US11296706B2 (en) | 2018-06-27 | 2022-04-05 | Intel Corporation | Embedded network on chip accessible to programmable logic fabric of programmable logic device in multi-dimensional die systems |
US10838909B2 (en) * | 2018-09-24 | 2020-11-17 | Hewlett Packard Enterprise Development Lp | Methods and systems for computing in memory |
US11044804B2 (en) | 2018-10-04 | 2021-06-22 | Samsung Display Co., Ltd. | Connector assembly and display device having the same |
US10673439B1 (en) | 2019-03-27 | 2020-06-02 | Xilinx, Inc. | Adaptive integrated programmable device platform |
CN112486895B (zh) * | 2019-09-12 | 2024-01-09 | 阿里巴巴集团控股有限公司 | 一种fpga芯片及其互联控制方法 |
CN112817905A (zh) * | 2021-02-05 | 2021-05-18 | 中国电子科技集团公司第五十八研究所 | 互联裸芯、互联微组件、互联微系统及其通信方法 |
WO2023015656A1 (zh) * | 2021-08-12 | 2023-02-16 | 北京微电子技术研究所 | 一种面向嵌入式的可配置众核处理器 |
CN116701292A (zh) | 2022-02-24 | 2023-09-05 | 平头哥(上海)半导体技术有限公司 | 用于芯片间通信的处理系统和通信方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6803786B1 (en) * | 2003-03-11 | 2004-10-12 | Xilinx, Inc. | Structures and methods providing columns of tightly coupled processor and RAM blocks within an array of logic blocks |
CN1734676A (zh) * | 2004-07-22 | 2006-02-15 | 阿尔特拉公司 | 带可编程部分的掩模可编程逻辑器件 |
CN102331733A (zh) * | 2010-07-14 | 2012-01-25 | 中国科学院沈阳计算技术研究所有限公司 | 基于片上可编程系统的数控系统逻辑控制器及其实现方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356620B2 (en) | 2003-06-10 | 2008-04-08 | Altera Corporation | Apparatus and methods for communicating with programmable logic devices |
US6557096B1 (en) | 1999-10-25 | 2003-04-29 | Intel Corporation | Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types |
US7123623B2 (en) | 2000-11-29 | 2006-10-17 | Tellabs Operations, Inc. | High-speed parallel cross bar switch |
US6917589B2 (en) | 2001-01-25 | 2005-07-12 | Agere Systems Inc. | Automatic quality of service assignment in ethernet switches |
US6781407B2 (en) | 2002-01-09 | 2004-08-24 | Xilinx, Inc. | FPGA and embedded circuitry initialization and processing |
US6798239B2 (en) | 2001-09-28 | 2004-09-28 | Xilinx, Inc. | Programmable gate array having interconnecting logic to support embedded fixed logic circuitry |
US8914590B2 (en) * | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US7200735B2 (en) * | 2002-04-10 | 2007-04-03 | Tensilica, Inc. | High-performance hybrid processor with configurable execution units |
US20050249185A1 (en) | 2002-06-07 | 2005-11-10 | Poor Robert D | Routing in wireless networks |
US7657861B2 (en) * | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
US6754744B2 (en) | 2002-09-10 | 2004-06-22 | Broadcom Corporation | Balanced linked lists for high performance data buffers in a network device |
US7092975B2 (en) | 2003-02-12 | 2006-08-15 | Ge Mortgage Holdings, Llc | Methods and apparatus for management of data storage resources |
US7157934B2 (en) * | 2003-08-19 | 2007-01-02 | Cornell Research Foundation, Inc. | Programmable asynchronous pipeline arrays |
WO2005048501A2 (en) | 2003-10-30 | 2005-05-26 | Teak Technologies, Inc. | Nonblocking and deterministic multirate multicast packet scheduling |
US7551617B2 (en) | 2005-02-08 | 2009-06-23 | Cisco Technology, Inc. | Multi-threaded packet processing architecture with global packet memory, packet recirculation, and coprocessor |
US8018849B1 (en) | 2005-03-25 | 2011-09-13 | Tilera Corporation | Flow control in a parallel processing environment |
US7746862B1 (en) | 2005-08-02 | 2010-06-29 | Juniper Networks, Inc. | Packet processing in a multiple processor system |
US8761188B1 (en) * | 2007-05-01 | 2014-06-24 | Altera Corporation | Multi-threaded software-programmable framework for high-performance scalable and modular datapath designs |
US7724032B2 (en) | 2007-08-20 | 2010-05-25 | Altera Corporation | Field programmable gate array with integrated application specific integrated circuit fabric |
CN101902321B (zh) * | 2010-08-13 | 2014-11-05 | 中兴通讯股份有限公司 | 时钟管理方法和系统 |
US8667192B2 (en) * | 2011-02-28 | 2014-03-04 | Xilinx, Inc. | Integrated circuit with programmable circuitry and an embedded processor system |
US8769477B1 (en) * | 2013-01-31 | 2014-07-01 | Xilinx, Inc. | Computer aided design tool and user interface for configuration of a programmable system-on-a-chip |
-
2013
- 2013-03-14 US US13/804,419 patent/US9471537B2/en active Active
-
2014
- 2014-03-06 EP EP14158110.8A patent/EP2778946A3/en not_active Ceased
- 2014-03-13 CN CN201811237154.7A patent/CN109634909B/zh active Active
- 2014-03-13 CN CN201410092909.4A patent/CN104050142B/zh active Active
-
2016
- 2016-10-07 US US15/288,569 patent/US9830300B2/en active Active
-
2017
- 2017-11-27 US US15/823,353 patent/US10127190B2/en active Active
-
2018
- 2018-11-09 US US16/186,248 patent/US10635631B2/en active Active
-
2020
- 2020-04-27 US US16/859,728 patent/US11256656B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6803786B1 (en) * | 2003-03-11 | 2004-10-12 | Xilinx, Inc. | Structures and methods providing columns of tightly coupled processor and RAM blocks within an array of logic blocks |
CN1734676A (zh) * | 2004-07-22 | 2006-02-15 | 阿尔特拉公司 | 带可编程部分的掩模可编程逻辑器件 |
CN102331733A (zh) * | 2010-07-14 | 2012-01-25 | 中国科学院沈阳计算技术研究所有限公司 | 基于片上可编程系统的数控系统逻辑控制器及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140281379A1 (en) | 2014-09-18 |
US10635631B2 (en) | 2020-04-28 |
EP2778946A3 (en) | 2016-01-13 |
CN104050142B (zh) | 2018-11-16 |
US11256656B2 (en) | 2022-02-22 |
CN104050142A (zh) | 2014-09-17 |
US9471537B2 (en) | 2016-10-18 |
US20200257651A1 (en) | 2020-08-13 |
CN109634909A (zh) | 2019-04-16 |
EP2778946A2 (en) | 2014-09-17 |
US20170024355A1 (en) | 2017-01-26 |
US20190121783A1 (en) | 2019-04-25 |
US9830300B2 (en) | 2017-11-28 |
US20180089139A1 (en) | 2018-03-29 |
US10127190B2 (en) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634909B (zh) | 具有片上互连的混合可编程众核设备 | |
US9829962B2 (en) | Hardware and software enabled implementation of power profile management instructions in system on chip | |
US10074053B2 (en) | Clock gating for system-on-chip elements | |
US7010667B2 (en) | Internal bus system for DFPS and units with two- or multi-dimensional programmable cell architectures, for managing large volumes of data with a high interconnection complexity | |
US9256575B2 (en) | Data processor chip with flexible bus system | |
US9477280B1 (en) | Specification for automatic power management of network-on-chip and system-on-chip | |
US20040128474A1 (en) | Method and device | |
CN104050143A (zh) | 向混合可编程多核器件映射网络应用 | |
US10564929B2 (en) | Communication between dataflow processing units and memories | |
US7978693B2 (en) | Integrated circuit and method for packet switching control | |
US20180212894A1 (en) | Fork transfer of data between multiple agents within a reconfigurable fabric | |
CN112084729A (zh) | 用于逻辑器件的粗粒度可编程路由网络 | |
Song et al. | Asynchronous spatial division multiplexing router | |
US11934897B2 (en) | Application data flow graph execution using network-on-chip overlay | |
WO2009155762A1 (zh) | 一种阵列处理器结构 | |
EP1177630A1 (en) | Apparatus and methods for dynamically defining variably sized autonomous sub-arrays within a programmable gate array | |
Huang et al. | Accelerating NoC-based MPI primitives via communication architecture customization | |
US20180088904A1 (en) | Dedicated fifos in a multiprocessor system | |
US9626325B2 (en) | Array processor having a segmented bus system | |
Onsori et al. | Performance enhancement of routers in networks-on-chip using dynamic virtual channels allocation | |
WO2007092747A2 (en) | Multi-core architecture with hardware messaging | |
Yin | Time-Division-Multiplexing Based Hybrid-Switched NoC for Heterogeneous Multicore Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |