CN117581218A - 支持固定功能内核的嵌入式处理器 - Google Patents
支持固定功能内核的嵌入式处理器 Download PDFInfo
- Publication number
- CN117581218A CN117581218A CN202280044825.6A CN202280044825A CN117581218A CN 117581218 A CN117581218 A CN 117581218A CN 202280044825 A CN202280044825 A CN 202280044825A CN 117581218 A CN117581218 A CN 117581218A
- Authority
- CN
- China
- Prior art keywords
- vpb
- pld
- fixed function
- logic
- mode
- 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
- 230000006870 function Effects 0.000 claims abstract description 102
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000008569 process Effects 0.000 claims abstract description 20
- 239000004744 fabric Substances 0.000 claims description 53
- 239000004065 semiconductor Substances 0.000 claims description 22
- 238000004088 simulation Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims 2
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
一种用于在可编程逻辑器件(PLD)中嵌入微处理器的方法和装置,其中该微处理器具有可在两种模式下操作的逻辑单元。第一模式是运行与PLD相关的至少一个通用进程的通用模式,并且第二模式是模拟固定功能以供配置到PLD(结构)的结构中的逻辑使用的固定功能模式。存储器单元耦合到逻辑单元和结构,并且结构能够操作用于与逻辑单元一起关于固定功能传送信号。
Description
相关申请的交叉引用
本申请要求于2021年10月7日提交的美国临时专利申请序列号63/253,472和于2022年6月28日提交的美国非临时专利申请序列号17/852,304的优先权日的权益,这些申请中的每一者的全部内容以引用方式并入,就像在本文中全文阐述一样。
背景技术
可编程逻辑器件(PLD)(诸如但不限于现场可编程门阵列(FPGA))中嵌入的处理器包括大量的电路和管芯面积。标量处理器和向量处理器两者都是如此。
如果PLD的用户没有在PLD上使用标量处理器或向量处理器,则这是电路、管芯面积和功率的浪费,没有限制。这提出了一个技术问题,对于该技术问题,需要使用技术手段的技术解决方案。
发明内容
在一个示例中,微处理器嵌入在可编程逻辑器件(PLD)中,其中该微处理器具有可在两种模式下操作的逻辑单元。第一模式是运行与PLD相关的至少一个通用进程的通用模式,并且第二模式是模拟固定功能以供配置到PLD的结构中的逻辑使用的固定功能模式。存储器单元耦合到逻辑单元和结构,并且结构与逻辑单元一起关于固定功能传送信号。
在一个示例中,启用了一种控制嵌入在可编程逻辑器件(PLD)中的微处理器的操作的方法,该方法包括两种操作模式。当逻辑单元从PLD的结构接收控制信号时,则逻辑单元模拟固定功能以供配置到结构中的逻辑使用。当在逻辑单元处不存在来自结构的控制信号时,则逻辑单元执行与PLD的操作相关的至少一个通用进程。
在一个示例中,逻辑单元与耦合到逻辑单元和结构的存储器单元交换信号,其中结构可操作用于与逻辑单元一起关于固定功能传送信号。
在一个示例中,集成电路(IC)器件具有半导体管芯,该半导体管芯具有设置在半导体管芯内的导电矩阵,该导电矩阵以通信方式耦合IC器件的设置在管芯内的多个部件以及其外部的一个或多个部件。该IC器件具有设置在半导体管芯内的可编程逻辑器件(PLD),该可编程逻辑器件包括使用导电矩阵耦合的部件并且包括微处理器,该微处理器具有可在两种模式下操作的逻辑单元。在通用模式下,微处理器运行与PLD相关的至少一个通用进程,并且在固定功能模式下,微处理器模拟固定功能以供配置到PLD的结构中的逻辑使用。IC器件可包括存储器单元,该存储器单元耦合到逻辑单元和PLD的结构,其中PLD的结构与逻辑单元一起关于固定功能传送信号。
附图说明
本文参考以下描述和附图来描述与本公开的示例性具体实施相关的一些例示性方面、特征和元素。因此,描述了其中本文所公开的原理实际上可实现的各种方式,并且其所有方面和等同物旨在落入所要求保护的主题的范围内。结合附图中的每个枚举图(图)来考虑以下描述,本公开的前述特征和用途以及其他特征和用途变得更加明显。在本公开的整个说明书中,相似的附图标号(如附图的每个图中所示)通常表示相似的部件、特征和/或元素。
图1描绘了示例性PLD具体实施。
图2描绘了示例性向量处理器块(VBP)。
图3更详细地描绘了示例性VPB。
图4描绘了示例性VPB逻辑结构连接。
图5描绘了示例性VPB、逻辑结构和控制器连接。
图6描绘了示例性VPB片上网络(NoC)连接。
图7描绘了示例性VPB固定功能模式结构连接。
图8描绘了方法的示例性流程图。
图9描绘了方法的另一示例性流程图。
图10更详细地描绘了示出模式的示例性流程图。
图11描绘了示出模式和内核的示例性流程图。
图12描绘了示出同步的示例性流程图。
图13描绘了示出数据互连的示例性流程图。
图14描绘了示出片上网络(NoC)的示例性流程图。
图15描绘了示出数学块的示例性流程图。
图16描绘了示例性集成电路(IC)。
图17描绘了具有VPB的示例性IC。
图18更详细地描绘了具有VPB的示例性IC。
图19描绘了具有与结构通信的VPB的示例性IC。
图20描绘了具有与控制器通信的VPB的示例性IC。
图21描绘了具有与NoC通信的VPB的示例性IC。
图22描绘了具有存储器单元的示例性IC。
图23描绘了示例性同步垫片(shim)逻辑。
图24描绘了具有多个VPB和结构区域的管芯。
图25描绘了作为浮点乘加块的示例性固定功能模式。
图26描绘了示出主要功能块和互连的示例性具体实施。
具体实施方式
概述
在一个示例中,嵌入在PLD中的处理器可在客户不需要其作为通用处理器时服务于一些其他有用的目的。
在一个示例中,嵌入在PLD中的处理器可充当可配置固定功能模拟器。
在一个示例中,短的无限循环程序(内核)被存储在高速缓存中。
在一个示例中,数据从结构流入并返回到结构。
在一个示例中,数据根据固定时间表来输入/输出。
在一个示例中,嵌入式处理器可充当固定功能块,其实现PLD结构的各种有用功能,诸如浮点乘加、乘法累加、复数乘法、蝶形(用于FFT)或矩阵-矩阵乘法,但不限于此。
在-个示例中,固定功能内核模式可通过对寄存器堆寄存器用别名(aliasing)来与结构交换数据。
在一个示例中,固定功能内核模式与结构的数据交换具有确定性调度。
在一个示例中,固定功能内核模式可与使用加载指令的结构的循环的开始同步。
在一个示例中,嵌入式处理器是一个或多个标量处理器。
在一个示例中,嵌入式处理器是向量处理器块(VPB),也被称为数字向量处理器(DVP)。
在一个示例中,嵌入式处理器是一个或多个标量处理器以及一个或多个VPB或DVP。
图1概括地在100处描绘了例如但不限于处于半导体管芯上的示例性PLD具体实施。在102处是PLD。在104处是具有逻辑单元106的微处理器(μP),该逻辑单元具有通用模式108和固定功能模式110。经由链路111,通用模式108能够与同PLD 102相关的通用进程112一起操作。经由链路119,逻辑单元106能够与存储器单元118一起操作。在114处是具有配置到结构中的逻辑116的结构。经由链路115,固定功能模式110能够与配置到结构中的逻辑116一起操作。经由链路113,结构114能够与存储器单元118一起操作。
虽然为了解释在图1中示出了单个微处理器(μP)104,但是应当理解,PLD 102可具有多于一个微处理器(μP)104,其中相应的逻辑单元106具有相应的通用模式108和固定功能模式110,但不限于此。
图2概括地在200处描绘了示例性具体实施。在204处是具有逻辑单元206的微处理器(μP),该逻辑单元具有向量处理器块(VPB)212、通用模式208和固定功能模式210。VPB212能够经由链路209在通用模式208下操作。VPB 212能够经由链路211在固定功能模式210下操作。
图3概括地在300处描绘了示例性具体实施。在312处是VPB,其具有分别示出为ALU0至ALU N 314-0至314-N的一个或多个算术逻辑单元(ALU)320,以及任选的浮点单元(FPU)316。高速缓存318经由321或323分别与一个或多个ALU 320或FPU 316耦合。注意,高速缓存318可在ALU 314或FPU 316的外部,或者设置在相应的ALU 314或FPU316内。高速缓存318具有内核310,该内核能够经由链路326在固定功能模式310下操作。模拟固定功能的固定功能模式310使用经由链路331从结构330流入的数据。
图4概括地在400处描绘了示例性具体实施。在412处是VPB,其具有被示出为ALU 0至ALU N414-0至414-N的算术逻辑单元(ALU)420或浮点单元(FPU)416中的一者或多者。高速缓存418被示出为经由421或423分别与一个或多个ALU420或FPU416耦合。注意,高速缓存418可在ALU 414或FPU 416的外部,或者设置在ALU 414或FPU 416内。高速缓存418具有内核410,该内核能够经由链路426在固定功能模式410下操作。模拟固定功能的固定功能模式410使用经由链路431从结构430流入的数据。内核410具有无限循环程序440,该无线循环程序经由链路433从结构430内的开始框432接收开始控制。VPB 410经由435接收结构430内的同步控制434。任选地,经由437连接到结构430的一个或多个微处理器450经由435从结构430内的″同步″434接收同步。这样,任选的微处理器可被同步。
图5概括地在500处描绘了示例性具体实施。在512处是VPB,其具有被示出为ALU 0至ALUN 514-0至514-N的算术逻辑单元(ALU)520或浮点单元(FPU)516中的一者或多者。高速缓存518被示出为能够经由521或523分别与一个或多个ALU 520或FPU 516一起操作。注意,高速缓存518可在ALU 514或FPU 516的外部,或者设置在ALU 514或FPU 516内。高速缓存518具有内核510,该内核能够经由链路526在固定功能模式510下操作。模拟固定功能的固定功能模式510使用经由链路531从结构530流入的数据。在532处是结构530中的数据互连。经由链路533,数据互连532在结构530与高速缓存518之间传送数据信号。在540处是控制器,其经由链路533能够与数据互连532一起操作,并且经由链路535能够与存储器单元542一起操作。
图6概括地在600处描绘了示例性具体实施。在602处是PLD。在612处是VPB,其具有被示出为ALU 0至ALU N 614-0至614-N的算术逻辑单元(ALU)620或浮点单元(FPU)616中的一者或多者。高速缓存618被示出为能够经由621或623分别与一个或多个ALU 620或FPU616-起操作。注意,高速缓存618可在ALU 614或FPU616的外部,或者设置在ALU 614或FPU616内。高速缓存618具有内核610,该内核能够经由链路626在固定功能模式610下操作。模拟固定功能的固定功能模式610使用经由链路631从结构630流入的数据。在632处是控制互连,其经由链路633在VPB 612与PLD 602的片上网络(NoC)640之间交换控制信号。
图7概括地在700处描绘了示例性具体实施。在704处是具有逻辑单元706的微处理器(μP),该逻辑单元具有向量处理器块712、通用模式708和固定功能模式710。VPB 712能够作为嵌入式处理器720经由链路709在通用模式708下操作。VPB 712能够作为浮点数学块730经由链路711在固定功能模式710下操作。经由链路715,固定功能模式710能够与作为结构714的一部分的配置到结构中的逻辑716一起操作。
图8概括地在800处描绘了方法的示例性流程图。在802处,开始控制嵌入在PLD中的微处理器的操作,其经由链路803进行到804处的决策。在804处,确定PLD中的逻辑单元是否从PLD的结构接收到控制信号,并且当接收到控制信号时(是),经由链路819进行到框820。如果在804处确定逻辑单元没有从PLD的结构接收到控制信号(否),则经由链路805进行到框806。在框806处,执行与PLD的操作相关的至少一个通用进程。在框820处,模拟固定功能以供配置到结构中的逻辑使用,然后经由链路821进行到框822。在框822处,与耦合到逻辑单元和结构的存储器单元交换信号,其中结构与逻辑单元一起关于固定功能传送信号。
图9概括地在900处描绘了方法的示例性流程图。在902处,开始控制嵌入在PLD中的微处理器的操作,其经由链路903进行到904处的决策。在904处,确定PLD的逻辑单元是否从PLD的结构接收到控制信号,并且当接收到控制信号时(是),经由链路919进行到框920。如果在904处确定逻辑单元没有从PLD的结构接收到控制信号(否),则经由链路905进行到框906。在框906处,执行与PLD的操作相关的至少一个通用进程。在框920处,模拟固定功能以供配置到PLD的结构中的逻辑使用,然后经由链路921进行到框922。在框922处,与耦合到逻辑单元和结构的存储器单元交换信号,其中结构与逻辑单元一起关于固定功能传送信号。框924具有包括VPB的逻辑单元,该VPB能够至少在对应于模拟的第一模式和对应于执行的第二模式下操作。经由链路925,第一模式能够与模拟框920一起操作。经由链路927,第二模式能够与执行框906一起操作。
图10概括地在1000处描绘了方法的示例性流程图。在1002处,开始控制嵌入在PLD中的微处理器的操作,其经由链路1003进行到1004处的决策。在1004处,确定PLD的逻辑单元是否从PLD的结构接收到控制信号,并且当接收到控制信号时(是),经由链路1019进行到框1020。如果在1004处确定逻辑单元没有从PLD的结构接收到控制信号(否),则经由链路1005进行到框1006。在框1006处,执行与PLD的操作相关的至少一个通用进程。在框1020处,模拟固定功能以供配置到结构中的逻辑使用,然后经由链路1021进行到框1022。在框1022处,与耦合到逻辑单元和结构的存储器单元交换信号,其中结构与逻辑单元一起关于固定功能传送信号。框1028具有框1024和框1026。框1024具有逻辑单元,该逻辑单元包括向量处理器块(VPB)(更多详情见框1026),该向量处理器块能够关于至少对应于模拟的第一模式和对应于执行的第二模式进行操作。经由链路1025,第一模式能够与模拟框1020一起操作。经由链路1027,第二模式能够与执行框1006一起操作。框1026将VPB详述为包括算术逻辑单元(ALU)或浮点单元(FPU)中的一者或多者,并且详述了设置在ALU/FPU中或耦合到ALU/FPU的高速缓存,该高速缓存包括随其存储的内核并且能够关于模拟的固定功能进行操作(经由链路1025第一模式),并且其中该方法包括使用从结构流入的数据来计算模拟的固定功能。
图11概括地在1100处描绘了方法的示例性流程图。在1102处,开始控制嵌入在PLD中的微处理器的操作,其经由链路1103进行到1104处的决策。在1104处,确定PLD的逻辑单元是否从PLD的结构接收到控制信号,并且当接收到控制信号时(是),经由链路1119进行到框1120。如果在1104处确定PLD的逻辑单元没有从PLD的结构接收到控制信号(否),则经由链路1105进行到框1106。在框1106处,执行与PLD的操作相关的至少一个通用进程。在框1120处,模拟固定功能以供配置到结构中的逻辑使用,然后经由链路1121进行到框1122。在框1122处,与耦合到逻辑单元和结构的存储器单元交换信号,其中结构与逻辑单元一起关于固定功能传送信号。框1128具有框1124、框1126和框1130。框1124具有逻辑单元,该逻辑单元包括VPB(更多详情见框1126),该VPB能够在至少对应于模拟的第一模式和对应于执行的第二模式下操作。经由链路1125,第一模式能够与模拟框1120一起操作。经由链路1127,第二模式能够与执行框1106一起操作。框1126将VPB详述为包括算术逻辑单元(ALU)或浮点单元(FPU)中的一者或多者,以及设置在ALU/FPU中或耦合到ALU/FPU的高速缓存(更多详情见框1130),该高速缓存包括随其存储的内核并且能够关于模拟的固定功能进行操作(经由链路1125第一模式),并且其中该方法包括使用从结构流入的数据来计算模拟的固定功能。框1130具有附加详情,其中内核包括与存储在高速缓存中的无限循环程序相关的代码,并且包括从结构触发无限循环程序的开始,以及使微处理器与结构同步。
图12概括地在1200处描绘了方法的示例性流程图。在1202处,开始控制嵌入在PLD中的微处理器的操作,其经由链路1203进行到1204处的决策。在1204处,确定PLD的逻辑单元是否从PLD的结构接收到控制信号,并且当接收到控制信号时(是),经由链路1219进行到框1220。如果在1204处确定PLD的逻辑单元没有从PLD的结构接收到控制信号(否),则经由链路1205进行到框1206。在框1206处,执行与PLD的操作相关的至少一个通用进程。在框1220处,模拟固定功能以供配置到结构中的逻辑使用,然后经由链路1221进行到框1222。在框1222处,与耦合到逻辑单元和结构的存储器单元交换信号,其中结构与逻辑单元一起关于固定功能传送信号。框1268具有框1264、框1266和框1260。框1264具有逻辑单元,该逻辑单元包括VPB(更多详情见框1266),该VPB能够关于至少对应于模拟的第一模式和对应于执行的第二模式进行操作。经由链路1265,第一模式能够与模拟框1220一起操作。经由链路1267,第二模式能够与执行框1206一起操作。框1266将VPB详述为包括ALU或FPU中的一者或多者,并且详述了设置在ALU/FPU中或耦合到ALU/FPU的高速缓存(更多详情见框1260),该高速缓存包括随其存储的内核并且能够关于模拟的固定功能进行操作(经由链路1265第一模式),并且其中该方法包括使用从结构流入的数据来计算模拟的固定功能。框1260具有附加详情,其中内核包括与存储在高速缓存中的无限循环程序相关的代码,并且从结构触发无限循环程序的开始,并且使微处理器与结构同步,并且其中同步还包括使微处理器与PLD的耦合到结构的一个或多个其他微处理器同步,如图所示经由到具有PLD的耦合到结构的一个或多个其他微处理器的1262的链路1261″同步″。
图13概括地在1300处描绘了方法的示例性流程图。在1302处,开始控制嵌入在PLD中的微处理器的操作,其经由链路1303进行到1304处的决策。在1304处,确定PLD的逻辑单元是否从PLD的结构接收到控制信号,并且当接收到控制信号时(是),经由链路1319进行到框1320。如果在1304处确定逻辑单元没有从PLD的结构接收到控制信号(否),则经由链路1305进行到框1306。在框1306处,执行与PLD的操作相关的至少一个通用进程。在框1320处,模拟固定功能以供配置到结构中的逻辑使用,然后经由链路1321进行到框1322。在框1322处,与耦合到逻辑单元和结构的存储器单元交换信号,其中结构与逻辑单元一起关于固定功能传送信号。框1328具有框1324和框1326。框1324具有逻辑单元,该逻辑单元包括VPB(更多详情见框1326),该VPB能够关于至少对应于模拟的第一模式和对应于执行的第二模式进行操作。经由链路1325,第一模式能够与模拟框1320一起操作。经由链路1327,第二模式能够与执行框1306一起操作。框1326将VPB详述为包括ALU或FPU中的一者或多者,以及设置在ALU/FPU中或耦合到ALU/FPU的高速缓存,该高速缓存包括随其存储的内核并且能够关于模拟的固定功能进行操作(经由链路1325第一模式),并且其中该方法包括使用从结构流入的数据来计算模拟的固定功能。经由链路1331到框1326的框1330经由耦合到高速缓存和结构的数据互连在结构与VPB之间传送数据信号,并且关于所传送的数据信号控制存储器单元。
图14概括地在1400处描绘了方法的示例性流程图。在1402处,开始控制嵌入在PLD中的微处理器的操作,其经由链路1403进行到1404处的决策。在1404处,确定PLD的逻辑单元是否从PLD的结构接收到控制信号,并且当接收到控制信号时(是),经由链路1419进行到框1420。如果在1404处确定PLD的逻辑单元没有从PLD的结构接收到控制信号(否),则经由链路1405进行到框1406。在框1406处,执行与PLD的操作相关的至少一个通用进程。在框1420处,模拟固定功能以供配置到结构中的逻辑使用,然后经由链路1421进行到框1422。在框1422处,与耦合到逻辑单元和结构的存储器单元交换信号,其中结构能够操作以与逻辑单元一起关于固定功能传送信号。框1428具有框1424和框1426。框1424具有逻辑单元,该逻辑单元包括VPB(更多详情见框1426),该VPB能够关于至少对应于模拟的第一模式和对应于执行的第二模式进行操作。经由链路1425,第一模式能够与模拟框1420一起操作。经由链路1427,第二模式能够与执行框1406一起操作。框1426详述了VPB包括ALU或FPU中的一者或多者,以及设置在ALU/FPU中或耦合到ALU/FPU的高速缓存,该高速缓存包括随其存储的内核并且能够关于模拟的固定功能进行操作,并且其中该方法包括使用从结构流入的数据来计算模拟的固定功能,并且其中VPB具有控制互连,该控制互连经由到具有PLD的片上网络(NoC)的框1430的链路1431″控制互连″在VPB与PLD的片上网络(NoC)之间交换控制信号。
图15概括地在1500处描绘了方法的示例性流程图。在1502处,开始控制嵌入在PLD中的微处理器的操作,其经由链路1503进行到1504处的决策。在1504处,确定PLD的逻辑单元是否从PLD的结构接收到控制信号,并且当接收到控制信号时(是),经由链路1519进行到框1520。如果在1504处确定PLD的逻辑单元没有从PLD的结构接收到控制信号(否),则经由链路1505进行到框1506。在框1506处,执行与PLD的操作相关的至少一个通用进程。在框1520处,模拟固定功能以供配置到结构中的逻辑使用,然后经由链路1521进行到框1522。在框1522处,与耦合到逻辑单元和结构的存储器单元交换信号,其中结构与逻辑单元一起关于固定功能传送信号。框1524具有逻辑单元,该逻辑单元包括向量处理器块(VPB),该向量处理器块能够关于至少对应于模拟的第一模式和对应于执行的第二模式进行操作,并且其中VPB能够作为嵌入式处理器关于对应的第二模式进行操作,并且关于第一模式,该方法包括使VPB作为供结构的配置逻辑使用的浮点(FP)数学(Math)块关于第一模式进行操作。经由链路1525,第一模式能够与模拟框1520一起操作。经由链路1527,第二模式能够与执行框1506一起操作。
图16概括地在1600处描绘了示例性具体实施。在1660处是集成电路(IC),该集成电路具有半导体管芯1650,该半导体管芯具有包括PLD 1602的多个部件1640。PLD 1602具有在1604处的微处理器(μP)、结构1614和存储器单元1618。微处理器1604具有逻辑单元1606,该逻辑单元具有通用模式1608和固定功能模式1610。经由链路1611,通用模式1608能够与同PLD 1602相关的通用进程1612一起操作。经由链路1619,逻辑单元1606能够与存储器单元1618一起操作。结构1614具有配置到结构中的逻辑1616。经由链路1615,固定功能模式1610能够与配置到结构中的逻辑1616一起操作。经由链路1613,结构1614能够与存储器单元1618一起操作。半导体管芯1650具有导电矩阵1652,该导电矩阵用于经由代表性链路1680来耦合多个部件1640以及半导体管芯1650外部的一个或多个部件1662以及IC 1660外部的一个或多个部件1670。
图17概括地在1700处描绘了示例性具体实施。在1760处是集成电路(IC),该集成电路具有半导体管芯1750,该半导体管芯具有包括PLD 1702的多个部件1740。PLD 1702具有在1704处的微处理器(μP)、结构1714和存储器单元1718。微处理器1704具有逻辑单元1706,该逻辑单元具有向量处理器块(VPB)1720、通用模式1708和固定功能模式1710。VPB1720能够经由链路1721以通用模式1708进行操作。VPB 1720能够经由链路1723以固定功能模式1710进行操作。经由链路1711,通用模式1708能够与同PLD 1702相关的通用进程1712一起操作。经由链路1719,逻辑单元1706能够与存储器单元1718一起操作。结构1714具有配置到结构中的逻辑1716。经由链路1715,固定功能模式1710能够与配置到结构中的逻辑1716一起操作。经由链路1713,结构1714能够与存储器单元1718一起操作。半导体管芯1750具有导电矩阵1752,该导电矩阵用于经由代表性链路1780来耦合多个部件1740以及半导体管芯外部的一个或多个部件1762以及IC外部的一个或多个部件1770。
图18概括地在1800处描绘了示例性具体实施。在1860处是集成电路(IC),该集成电路具有半导体管芯1850,该半导体管芯具有包括PLD 1802的多个部件1840。PLD 1802在1804处具有微处理器(μP),并且在1814处具有结构。微处理器1804具有逻辑单元1806,该逻辑单元具有向量处理器块(VPB)1820。VPB 1820具有ALU框1822,该ALU框具有被示出为ALU0至ALU N 1824-0至1824-N的算术逻辑单元(ALU)1824或浮点单元(FPU)1826和高速缓存1828中的一者或多者。高速缓存1828被示出为能够经由1829或1831分别与一个或多个ALU1824或FPU 1826一起操作。注意,高速缓存1828可在ALU 1824或FPU 1826的外部,或者设置在ALU 1824或FPU 1826内。高速缓存1828具有内核1830,该内核能够经由链路1833以固定功能模式1810进行操作。模拟固定功能的固定功能模式1810使用经由链路1817从结构1814从配置到结构中的逻辑1816流入的数据。
图19概括地在1900处描绘了示例性具体实施。未示出的是集成电路(IC),该集成电路具有半导体管芯(也未示出),该半导体管芯具有包括PLD 1902的多个部件(也未示出)。PLD 1902在1904处具有微处理器(μP),该微处理器具有逻辑单元1906,该逻辑单元1906具有向量处理器块(VPB)1920。VPB 1920具有被示出为ALU 0至ALU N 1924-0至1924-N的算术逻辑单元(ALU)1922或浮点单元(FPU)1926和高速缓存1928中的一者或多者。高速缓存1928被示出为能够经由1929或1931分别与一个或多个ALU 1922或FPU 1926一起操作。注意,高速缓存1928可在ALU 1922或FPU 1926的外部,或者设置在ALU 1922或FPU 1926内。高速缓存1928具有内核1930,该内核能够经由链路1933以固定功能模式1910进行操作。模拟固定功能的固定功能模式1910使用经由链路1917从结构1914从配置到结构中的逻辑1916流入的数据。内核1930具有无限循环程序1932,该无线循环程序经由链路1935从结构1914内的开始框1918接收开始控制。VPB 1920经由1937从结构1914内接收同步控制1940。任选地,经由1951连接到结构1914的一个或多个微处理器1950经由1937从结构1914内的″同步″1940接收同步。这样,任选的微处理器可被同步。
图20概括地在2000处描绘了示例性具体实施。在2060处是集成电路(IC),该集成电路具有半导体管芯2050,该半导体管芯具有包括PLD 2002的多个部件2040。PLD 2002在2004处具有微处理器(μP),在2014处具有结构,在2042处具有控制器,并且在2044处具有存储器单元。μP2004具有逻辑单元2006,该逻辑单元2006具有向量处理器块(VPB)2020。VPB2020具有被示出为ALU 0至ALU N 2022-0至2022-N的算术逻辑单元(ALU)2022或浮点单元(FPU)2026中的一者或多者。VPB2020具有高速缓存2028,该高速缓存2028被示出为能够经由2029或2031分别与一个或多个ALU 2022或FPU2026一起操作。注意,高速缓存2028可在ALU 2022或FPU 2026的外部,或者设置在ALU 2022或FPU 2026内。高速缓存2028具有内核2030,该内核能够经由链路2033在固定功能模式2010下操作。模拟固定功能的固定功能模式2010使用经由链路2017从结构2014从配置到结构中的逻辑2016流入的数据。在2040处是结构2014中的数据互连。经由链路2041,数据互连2040能够与VPB 2020的高速缓存2028一起操作以在结构2014与高速缓存2028之间传送数据信号。在2042处是控制器,其经由链路2041能够与数据互连2040一起操作,并且经由链路2043能够与存储器单元2044一起操作。
图21概括地在2100处描绘了示例性具体实施。在2160处是集成电路(IC),该集成电路具有半导体管芯2150,半导体管芯2150具有包括PLD 2102的多个部件2140。PLD 2102在2104处具有微处理器(μP),在2142处具有片上网路(NoC)并且在2114处具有结构。PLD微处理器2104具有逻辑单元2106,该逻辑单元2106具有向量处理器块(VPB)2120。VPB 2120具有被示出为ALU 0至ALU N 2124-0至2124-N的算术逻辑单元(ALU)2122或浮点单元(FPU)2126、高速缓存2128和控制互连2140中的一者或多者。高速缓存2128被示出为能够经由2129或2131分别与一个或多个ALU 2122或FPU 2126一起操作。注意,高速缓存2128可在ALU2122或FPU 2126的外部,或者设置在ALU 2122或FPU 2126内。高速缓存2128具有内核2130,该内核能够经由链路2133在固定功能模式2110下操作。模拟固定功能的固定功能模式2110使用从结构2114经由链路2117从配置到结构中的逻辑2116流入的数据。控制互连2140能够经由链路2141操作以在VPB 2120与PLD 2102的NoC 2142之间交换控制信号。
图22概括地在2200处描绘了示例性具体实施。在2260处是集成电路(IC),该集成电路具有半导体管芯2250和在半导体管芯2250外部的一个或多个部件2262。半导体管芯2250具有包括PLD 2202的多个部件2240以及用于耦合多个部件2240的导电矩阵2252。PLD2202在2204处具有微处理器(μP),在2218处具有存储器单元并且在2214处具有结构。微处理器2204具有逻辑单元2206,该逻辑单元2206具有向量处理器块(VPB)2220,具有通用模式2208和固定功能模式2210。VPB 2220能够作为嵌入式处理器2224经由链路2221在通用模式2208下操作。VPB 2220能够作为浮点数学块2230经由链路2223在固定功能模式2210下操作。经由链路2211,通用模式2208能够与同PLD 2202相关的通用进程2212一起操作。经由链路2219,逻辑单元2206能够与存储器单元2218一起操作。结构2214具有配置到结构中的逻辑2216。经由链路2215,固定功能模式2210能够与配置到结构中的逻辑2216一起操作。经由链路2213,结构2214能够与存储器单元2218一起操作。示出了IC外部的一个或多个部件2270,该一个或多个部件可经由代表性链路2280与多个部件2240、导电矩阵2252或半导体管芯外部的一个或多个部件2262通信。
图11在1130处(以及在相关说明中)讨论了使微处理器与结构同步,并且图12在1260处(以及在相关说明中)讨论了使多个微处理器同步。另外,在图19中,在1940处、1937处、1950处和1951处(以及在相关说明中)讨论了使多个微处理器同步。存在用于使机制同步的多种方法。例如,但不限于,使用PLD结构来停止微处理器,使用PLD结构来同时启动多个微处理器(包括VPB),暂停微处理器中的相应内核直到存在有效数据为止,使用存储器映射的加载指令来停止微处理器,或使用VPB中的向量加载指令来开始执行,但不限于此。同步在一些示例中是有益的,原因在于,可利用多个微处理器在可预测的时间实现可预测的结果。以这种方式,数据和结果的调度可被传送到具有可预测行为的其他微处理器。即,例如,来自一个微处理器的结果可被及时传送到其他微处理器,而微处理器不必等待已接收该数据和结果。
如果IC正在使用用于PLD的通信标准,例如但不限于ARM LIMITED(ARM)高级微控制器总线架构(AMBA)AXI4-流协议,则在图23中概括地在2300处示出多微处理器同步的一个示例。在2302处示出了处理器0至N(2304-0至2304-N)与结构逻辑0至N(2306-0至2306-N)之间的同步垫片逻辑。同步垫片逻辑2302经由所示的逻辑处理来自和去往多个处理器2304-0至2304-N和多个结构逻辑2306-0至2306-N的AXI4-流″就绪″信号和AXI4-流″有效″信号。注意,相应的处理器2304与结构逻辑2306之间的数据2308-0至2308-N不由2302″同步垫片逻辑2302″控制,而是直接去往/来自相应的处理器2304、去往/来自相应的结构逻辑2306。
在图23中,多个处理器2304分别由处理器0至处理器N(2304-0至2304-N)表示。与处理器(2304-0至2304-N)中的每一者相关联的分别是表示为0至N(2306-0至2306-N)的结构逻辑2306。对于处理器2304中的每一者,存在表示为0至N(2310-0至2310-N)的相应有效输出和表示为0至N(2312-0至2312-N)的就绪输入。类似地,对于每个结构逻辑2306,存在表示为0至N(2314-0至2314-N)的有效输入和表示为0至N(2316-0至2316-N)的就绪输出。在同步垫片逻辑2302中,存在0至N个AND门2318-0至2318-N,其分别将相关联的处理器有效信号(2310-0至2310-N)和结构逻辑就绪信号(分别为2316-0至2316-N)进行AND运算,从而(在AND运算之后)产生馈送到AND门2320中的多个处理器-有效-结构-就绪信号。2320″AND门″的输出(在AND运算之后)可被视为全局同步信号,该全局同步信号被路由到每个处理器0至N就绪输入(2312-0至2313-N)并且被路由到每个结构逻辑0至N有效输入(2314-0至2314-N)。
虽然图23中的所有N+1(0至N)个处理器均被示出为同步,但示例不限于此。例如,在具有许多微处理器的IC上,某些微处理器可能被同步,而其他微处理器可能不被同步。而且,不同的微处理器组可不同地同步,或者取决于它们的通用模式或固定功能模式而不同地同步。
图24概括地在2400处描绘了示例性具体实施,示出了管芯2402,该管芯具有如代表性结构区域2404所示的多个结构区域以及如代表性VPB 2406所示的多个VPB。应当理解,VPB不需要作为处理器(即,在通用模式下操作),相反可由结构逻辑用作固定功能(即,在固定功能模式下操作),诸如浮点ALU,但不限于此。
图25概括地在2500处描绘了示例性具体实施,示出了在固定功能模式下作为执行数学函数D=A+(B*C)的浮点乘加(FPMADD)软知识产权(IP)块的VPB 2502。左侧的输入是时钟(clk)2504、复位负激活(resetn)2506、输入A 2508、输入B 2510和输入C 2512。输入A、B和C被示出为分别为256位宽。右侧的输出是就绪信号2514,并且输出D 2516被示出为256位宽。
图26概括地在2600处描绘了示例性具体实施,示出了主要功能块和互连。在2602处是VPB,在2604处是NoC,在2608处是FPGA结构。
对于图26,这里有一些符号:
CSCB——控制、状态和配置总线
I和T——发起方和目标方,其更普遍地被称为主方和从方
VPB——向量处理器块(其也可被称为DVP——分布式或数字向量处理器)。
NoC——片上网络
VLSRAM——非常大的静态随机存取存储器。大型片上存储器是FPGA SoC的一部分。
ECC——纠错码
RMW——读取/修改/写入
VIS7是来自SiFive公司的零件号,指示处理器的某些特征。
L1 I$/D$是一级指令高速缓存和数据高速缓存
ITIM——指令紧密集成存储器
DLS——数据本地存储
VecRegFile——向量寄存器堆
FPGA——现场可编程门阵列(PLD)
关于符号I和T,应当注意,I和T是发起方和目标方,它们也可分别被称为主方和从方。箭头从发起方到目标方。箭头指示谁发起请求以及它们去往哪个目标方,但是请求本身可从目标方读取或者向目标方写入,因此在所有I→T总线上可存在在两个方向上行进的数据线。
Claims (23)
1.一种装置,所述装置包括:
微处理器,所述微处理器嵌入在可编程逻辑器件(PLD)中,所述微处理器包括:
逻辑单元,所述逻辑单元能够在两种模式下操作,所述两种模式包括:
通用模式,所述通用模式运行与所述PLD相关的至少一个通用进程;和
固定功能模式,所述固定功能模式模拟固定功能以供配置到所述PLD(结构)的结构中的逻辑使用;以及
存储器单元,所述存储器单元耦合到所述逻辑单元和所述结构,其中所述结构能够操作用于与所述逻辑单元一起关于所述固定功能传送信号。
2.根据权利要求1所述的微处理器,其中所述逻辑单元包括向量处理器块(VPB)。
3.根据权利要求2所述的微处理器,其中所述VPB包括:
算术逻辑单元(ALU)或浮点单元(FPU)中的一者或多者;
高速缓存,所述高速缓存设置在所述ALU或FPU中或耦合到所述ALU或FPU,所述高速缓存包括随其存储的内核并且能够关于所述模拟的固定功能进行操作,其中所述模拟的固定功能是使用从所述结构流入的数据来计算的。
4.根据权利要求3所述的微处理器,其中:
所述内核包括与存储在所述高速缓存中的无限循环程序相关的代码;
所述无限循环程序的开始由所述结构触发;并且
所述微处理器与所述结构同步。
5.根据权利要求3所述的微处理器,其中所述VPB包括:
数据互连,所述数据互连耦合到所述高速缓存和所述结构,所述数据互连用于在所述结构与所述VPB之间传送数据信号;
控制器,所述控制器耦合到所述数据互连和所述存储器单元。
6.根据权利要求3所述的微处理器,其中所述VPB包括控制互连以在所述VPB与所述PLD的片上网络之间交换控制信号。
7.根据权利要求2所述的微处理器,其中所述VPB能够:
作为嵌入式处理器关于所述对应的通用模式进行操作;以及
作为浮点数学块关于所述固定功能模式进行操作。
8.一种方法,所述方法包括:
当逻辑单元从所述可编程逻辑器件(PLD)的结构接收控制信号时,模拟固定功能以供配置到所述结构中的逻辑使用;
当在所述逻辑单元的输入处不存在来自所述结构的所述控制信号时,执行与所述PLD的操作相关的至少一个通用进程;以及
与耦合到所述逻辑单元和所述结构的存储器单元交换信号,其中所述结构能够操作用于与所述逻辑单元一起关于所述固定功能传送信号。
9.根据权利要求8所述的方法,其中所述逻辑单元包括向量处理器块(VPB),所述向量处理器块能够关于至少对应于所述模拟的第一模式和对应于所述执行的第二模式进行操作。
10.根据权利要求9所述的方法,其中所述VPB包括算术逻辑单元(ALU)或浮点单元(FPU)中的一者或多者,以及设置在所述ALU或FPU中或耦合到所述ALU或FPU的高速缓存,所述高速缓存包括随其存储的内核并且能够关于所述模拟进行操作,并且其中所述方法包括使用从所述结构流入的数据来计算所述模拟的固定功能。
11.根据权利要求10所述的方法,其中所述内核包括与存储在所述高速缓存中的无限循环程序相关的代码,并且包括:
从所述结构触发所述无限循环程序的开始;以及
使所述微处理器与所述结构同步。
12.根据权利要求11所述的方法,所述方法包括使所述微处理器与所述PLD的耦合到所述结构的一个或多个其他微处理器同步。
13.根据权利要求10所述的方法,所述方法包括:
经由耦合到所述高速缓存和所述结构的数据互连在所述结构与所述VPB之间传送数据信号;以及
关于所传送的数据信号控制所述存储器单元。
14.根据权利要求10所述的方法,其中所述VPB包括控制互连,所述方法包括:
在所述VPB与所述PLD的片上网络之间交换控制信号。
15.根据权利要求9所述的方法,其中所述VPB能够作为嵌入式处理器关于所述对应的第二模式进行操作,并且关于所述第一模式,所述方法包括使所述VPB作为供所述结构的所述配置逻辑使用的浮点数学块关于所述第一模式进行操作。
16.一种集成电路(IC)器件,所述IC器件包括:
半导体管芯;
导电矩阵,所述导电矩阵设置在所述半导体管芯内以便以通信方式耦合设置在所述IC器件的所述管芯内的多个部件以及其外部的一个或多个部件;和
可编程逻辑器件(PLD),所述可编程逻辑器件设置在所述半导体管芯内并且包括使用所述矩阵耦合的部件,所述PLD包括微处理器和存储器单元,其中:
所述微处理器包括逻辑单元,所述逻辑单元能够在以下模式中操作:
通用模式,所述通用模式运行与所述PLD相关的至少一个通用进程;以及
固定功能模式,所述固定功能模式模拟固定功能以供配置到所述PLD(结构)的结构中的逻辑使用;并且
所述存储器单元耦合到所述逻辑单元和所述结构,其中所述结构用于与所述逻辑单元一起关于所述固定功能传送信号。
17.根据权利要求16所述的IC器件,其中所述逻辑单元包括向量处理器块(VPB),所述向量处理器块能够关于所述两种模式进行操作。
18.根据权利要求17所述的IC器件,其中所述VPB包括:
算术逻辑单元(ALU)或浮点单元(FPU);
高速缓存,所述高速缓存设置在所述ALU或FPU中或耦合到所述ALU或FPU,所述高速缓存包括随其存储的内核并且能够关于所述模拟的固定功能进行操作,其中所述模拟的固定功能是使用从所述结构流入的数据来计算的。
19.根据权利要求18所述的IC器件,其中:
所述内核包括与存储在所述高速缓存中的无限循环程序相关的代码;
所述无限循环程序的开始由所述结构触发;并且
所述微处理器与所述结构同步。
20.根据权利要求18所述的IC器件,其中所述VPB包括:
数据互连,所述数据互连耦合到所述高速缓存和所述结构以在所述结构与所述VPB之间传送数据信号;和
控制器,所述控制器耦合到所述数据互连和所述存储器单元。
21.根据权利要求18所述的IC器件,其中所述VPB包括控制互连以在所述VPB与所述PLD的片上网络之间交换控制信号。
22.根据权利要求17所述的IC器件,其中所述VPB能够:
作为嵌入式处理器关于所述对应的通用模式进行操作;以及
作为供所述结构的所述配置逻辑使用的浮点数学块关于所述固定功能模式进行操作。
23.一种方法,所述方法包括:
对于多个处理器中的相应处理器,从多个结构逻辑中的相应结构逻辑接收相应就绪信号;
将所述相应就绪信号与来自所述多个处理器中的所述相应处理器的相应有效信号进行AND运算,从而产生相应多个处理器-有效-结构-就绪信号;
对所述相应多个处理器-有效-结构-就绪信号进行AND运算,从而产生全局同步信号;以及
将所述全局同步信号发送到所述相应多个处理器的相应就绪输入,并且将所述全局同步信号发送到所述相应多个结构逻辑的相应结构逻辑有效输入。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/253,472 | 2021-10-07 | ||
US17/852,304 US20230116391A1 (en) | 2021-10-07 | 2022-06-28 | Embedded Processor Supporting Fixed-Function Kernels |
US17/852,304 | 2022-06-28 | ||
PCT/US2022/036475 WO2023059377A1 (en) | 2021-10-07 | 2022-07-08 | Embedded processor supporting fixed-function kernels |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117581218A true CN117581218A (zh) | 2024-02-20 |
Family
ID=89884949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280044825.6A Pending CN117581218A (zh) | 2021-10-07 | 2022-07-08 | 支持固定功能内核的嵌入式处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117581218A (zh) |
-
2022
- 2022-07-08 CN CN202280044825.6A patent/CN117581218A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Petrisko et al. | BlackParrot: An agile open-source RISC-V multicore for accelerator SoCs | |
US6058492A (en) | Method and apparatus for design verification using emulation and simulation | |
US5263149A (en) | Integrated circuit logic functions simulator for selectively connected series of preprogrammed PLA devices using generated sequence of address signals being provided between simulated clock cycles | |
EP2237165B1 (en) | Multiprocessor system with specific architecture of communication elements and manufacturing method therefor | |
JPS62217354A (ja) | プロセツサ | |
CN107924428A (zh) | 可编程逻辑ic的块存储器布局和体系架构及其操作方法 | |
US20190057060A1 (en) | Reconfigurable fabric data routing | |
TWI299941B (zh) | ||
CN117581218A (zh) | 支持固定功能内核的嵌入式处理器 | |
US20230116391A1 (en) | Embedded Processor Supporting Fixed-Function Kernels | |
JP2000215226A (ja) | 論理検証装置 | |
WO2023059377A1 (en) | Embedded processor supporting fixed-function kernels | |
WO2021036421A1 (zh) | 多核架构的同步信号产生电路、芯片和同步方法及装置 | |
US11113441B1 (en) | Reduce/broadcast computation-enabled switching elements in an emulation network | |
US7299427B2 (en) | Radio prototyping system | |
Owens et al. | Implementing a family of high performance, micrograined architectures | |
Samahi et al. | Automated integration and communication synthesis of reconfigurable MPSoC platform | |
CN109828948B (zh) | 一种集成人工智能模块的系统芯片 | |
JP2004310568A (ja) | シミュレータ装置、シミュレーション方法および性能解析方法 | |
US20240134718A1 (en) | Apparatus and method for synchronizing participants of a simulation | |
Bishop | Configurable computing for mainstream software applications | |
EP4357964A1 (en) | Apparatus and method for synchronizing participants of a simulation | |
Zhou et al. | Introducing MGAP-2 [Micro-Grain Array Processor] | |
Salem et al. | FPGA prototyping and design evaluation of a NoC-based MPSoC | |
Dérutin et al. | Design of a scalable network of communicating soft processors on FPGA |
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 |