一种处理器在片内存储器和FPGA内核中运行程序的方法与流程

未命名 08-18 阅读:96 评论:0

一种处理器在片内存储器和fpga内核中运行程序的方法
技术领域
1.本技术涉及计算机技术领域,尤其涉及一种处理器在片内存储器和fpga内核中运行程序的方法以及soc fpga芯片。


背景技术:

2.本领域中,可编程逻辑门阵列(field programmable gate array,fpga)芯片可以包括处理器、片内存储器和fpga内核。在系统级芯片(system on chip,soc)fpga芯片的设计中,为了减小soc fpga芯片的面积,片内存储器通常采用存储容量较小的存储器,使得片内存储器只能存储简单的程序的信息。在此种情况下,处理器无法运行比较复杂或者较大容量的程序。


技术实现要素:

3.本技术提供一种处理器在片内存储器和fpga内核中运行程序的方法以及soc fpga芯片,能够在不增加片外存储器的条件下,解决soc fpga芯片无法运行较大容量的程序的问题。
4.第一方面,本技术提供一种处理器在片内存储器和fpga内核中运行程序的方法。该方法可以应用于soc fpga芯片。所述soc fpga芯片中包括处理器、存储器控制模块、片内存储器和fpga内核,所述fpga内核中包括嵌入式存储器模块(embedded memoy blocks,emb)。其中,处理器可以包括x86处理器、arm处理器等。
5.所述方法包括:存储器控制模块将所述处理器待运行的程序的信息写入所述片内存储器和所述emb;存储器控制模块根据所述处理器的访问地址访问所述片内存储器或者所述emb,以从所述片内存储器或所述emb读取所述访问地址对应的信息、或者将所述信息写入所述片内存储器或者所述emb。
6.上述实施方式中,将处理器待运行的程序信息写入片内存储器和emb,可以解决程序的容量大于片内存储器的容量的情况下,片内存储器无法满足程序在处理器上运行所需要的存储空间的问题。换言之,在该实施方式中,soc fpga芯片的处理器可以运行较大容量的程序。
7.在第一方面的一种可能的实施方式中,在将所述处理器待运行的程序信息写入所述片内存储器和所述emb之前,所述方法还包括:比较所述信息的容量和所述片内存储器的存储容量;在所述信息的容量大于所述片内存储器的存储容量的情况下,调用fpga内核中emb模块扩充所需存储容量,确定将所述信息写入所述片内存储器和所述emb。在所述信息的容量不大于所述片内存储器的存储容量的情况下,确定将所述信息写入所述片内存储器。
8.其中,在确定将所述信息写入所述片内存储器和所述emb的情况下,可以确定各个信息对应的访问地址,访问地址介于片内存储器或者emb的地址范围。
9.上述实施方式中,通过比较程序需要的容量和片内存储器的存储容量的大小,可
以确定是否需要使用emb存储该程序的信息。
10.在第一方面的一种可能的实施方式中,将所述信息写入所述片内存储器和所述emb包括:接收访问地址和所述访问地址对应的信息;若所述访问地址介于所述片内存储器对应的地址范围,将所述信息写入所述片内存储器;若所述访问地址介于所述emb对应的地址范围,将所述信息写入所述emb。其中,soc fpga芯片所在计算设备的非易失性存储器的存储控制器将程序的信息及其对应的访问地址,经过soc fpga芯片内部的系统总线发送给soc fpga芯片内部的存储器控制模块。或者,调试设备将程序的信息及其对应的访问地址发送给soc fpga芯片内部的调试模块,调试模块将程序的信息及其对应的访问地址,经过soc fpga芯片内部的系统总线发送给soc fpga芯片内部的存储器控制模块。
11.上述实施方式中,可以根据各个信息对应的地址,将程序的一部分信息写入片内存储器,将一部分信息写入emb。。
12.在第一方面的一种可能的实施方式中,所述根据所述处理器的访问地址访问所述片内存储器或者所述emb,包括:接收所述处理器发送的所述访问地址;若所述访问地址介于所述片内存储器对应的地址范围,从所述片内存储器读取所述信息;若所述访问地址介于所述emb对应的地址范围,从所述emb读取所述信息。
13.在第一方面的一种可能的实施方式中,所述根据所述处理器的访问地址访问所述片内存储器或者所述emb,包括:接收所述处理器发送的所述访问地址和所述信息;若所述访问地址介于所述片内存储器对应的地址范围,将所述信息写入所述片内存储器;若所述访问地址介于所述emb对应的地址范围,将所述信息写入所述emb。
14.上述实施方式中,存储器控制模块可以根据处理器发送的地址,确定从片内存储器或者emb中读取信息、或者向片内存储器或者emb写入信息。
15.在第一方面的一种可能的实施方式中,所述存储器控制模块包括总线接口、内存储器接口和emb存储器接口;所述总线接口与所述处理器连接,所述片内存储器接口与所述片内存储器连接,所述emb存储器接口与所述emb连接。
16.上述实施方式中,存储器控制模块通过内存储器接口和emb存储器接口与片内存储器和emb连接,使得片内存储器可以根据处理器发送的访问地址访问片内存储器或者emb。例如,当处理器发送的访问地址介于片内存储器对应的地址范围时,存储器控制模块根据该访问地址通过片内存储器接口访问片内存储器;当处理器发送的访问地址介于emb对应的地址范围时,存储器控制模块根据该访问地址通过emb存储器接口访问emb。
17.第二方面,本技术提供一种存储器控制模块。该存储器控制模块可以应用于soc fpga芯片中,所述soc fpga芯片中包括处理器、片内存储器和fpga内核,所述fpga内核中包括嵌入式存储器模块emb。该存储器控制模块包括:第一单元和第二单元。
18.其中,第一单元用于将处理器运行的程序的信息写入所述片内存储器和所述emb。
19.其中,第二单元用于根据所述处理器的访问地址访问所述片内存储器或者所述emb,以从所述片内存储器或所述emb读取所述访问地址对应的信息,或者,将所述信息写入所述片内存储器或者所述emb。
20.在第二方面的一种可能的实施方式中,在将所述处理器待运行的程序的信息写入所述片内存储器和所述emb之前,所述方法还包括:比较所述信息的容量和所述片内存储器的存储容量的情况下;在所述信息的容量大于所述片内存储器的存储容量,确定将所述信
息写入所述片内存储器和所述emb;在所述信息的容量等于或小于所述片内存储器的存储容量的情况下,确定将所述信息写入所述片内存储器。
21.在第二方面的一种可能的实施方式中,所述第一单元具体用于,接收访问地址和所述访问地址对应的信息;若所述访问地址介于所述片内存储器对应的地址范围,将所述信息写入所述片内存储器;若所述访问地址介于所述emb对应的地址范围,将所述信息写入所述emb。
22.在第二方面的一种可能的实施方式中,所述第二单元具体用于,接收所述处理器发送的所述访问地址;若所述访问地址介于所述片内存储器对应的地址范围,从所述片内存储器读取所述信息;若所述访问地址介于所述emb对应的地址范围,从所述emb读取所述信息。
23.在第二方面的一种可能的实施方式中,所述第二单元具体用于,接收所述处理器发送所述访问地址和所述信息;若所述访问地址介于所述片内存储器对应的地址范围,将所述信息写入所述片内存储器;若所述访问地址介于所述emb对应的地址范围,将所述信息写入所述emb。
24.在第二方面的一种可能的实施方式中,所述存储器控制模块包括总线接口、片内存储器接口、和emb存储器接口;所述总线接口与所述处理器连接,所述片内存储器接口与所述片内存储器连接,所述emb存储器接口与所述emb连接。
25.第三方面,本技术提供一种soc fpga芯片,其特征在于,所述芯片中包括处理器、存储器控制模块、片内存储器和fpga内核,所述fpga内核中包括emb,所述存储器控制模块与所述处理器、所述片内存储器和所述emb连接,所述存储器控制模块用于前述第一方面及其任一可选实施方式中的方法。
26.在第三方面的一种可能的实施方式中,所述存储器控制模块包括总线接口、片内存储器接口、和emb存储器接口;所述总线接口与所述处理器连接,所述片内存储器接口与所述片内存储器连接,所述emb存储器接口与所述emb连接。
27.第四方面,本技术提供一种计算设备,其特征在于,所述计算设备包括:第三方面及其可选实施方式所述的soc fpga芯片。
28.第五方面,本技术提供一种计算机可读存储介质,计算机可读存储介质片内存储器储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种可能的实现方式所提供的方法。
29.第六方面,本技术提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种可能的实现方式所提供的方法。
30.上述提供的任一种存储器控制模块、soc fpga芯片、计算设备或计算机存储介质或计算机程序产品,均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文提供的对应方法中的对应方案的有益效果,此处不再赘述。
附图说明
31.图1是本技术实施例提供的一种soc fpga芯片的结构示意图;
32.图2是本技术实施例提供的另一种soc fpga芯片的结构示意图;
33.图3是本技术实施例提供的一种存储器控制模块的接口示意图;
34.图4是本技术实施例提供的一种基于图2所示soc fpga芯片的处理器在片内存储器和fpga内核中运行程序的方法的流程图;
35.图5是本技术实施例提供的一种存储器控制模块的结构示意图;
36.图6是本技术实施例提供的一种计算设备的结构示意图。
具体实施方式
37.为了使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本技术实施例中的技术方案进行描述。
38.在本技术实施例的描述中,“示例性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
39.在本技术实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,单独存在b,同时存在a和b这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个屏幕终端是指两个或两个以上的屏幕终端。
40.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
41.图1是本技术提供的一种soc fpga芯片的结构示意图。该soc fpga芯片中包括处理器110、系统总线120、一个或多个存储器控制模块(例如存储器控制模块131和存储器控制模块132)、一个或多个片内存储器(例如片内存储器141和片内存储器142)、以及fpga内核。
42.在图1中,处理器110与系统总线120连接,处理器110经过系统总线120与存储器控制模块131和存储器控制模块132通信。存储器控制模块131与片内存储器141通信,存储器控制模块132与片内存储器142通信。
43.在处理器110运行程序之前,需要将待运行的程序的信息写入soc fpga的片内存储器。
44.当处理器110运行程序时,可以向存储器控制模块131和/或存储器控制模块132发送读/写指令,以从片内存储器141和/或片内存储器142读取该程序的信息,或者向写入或者片内存储器141和/或片内存储器142程序的信息。存储器控制模块131用于根据处理器110发送的读/写指令,向片内存储器141写入信息或者从片内存储器141读取信息。存储器控制模块132用于根据处理器110发送的读/写指令,向片内存储器142写入信息或者从片内存储器142读取信息。
45.程序的信息包括程序的指令和数据。在具体应用中,程序的指令和数据可以分别存储在不同的片内存储器中,从而提升读写效率,例如可以使用片内存储器141存储程序的指令,使用片内存储器142存储程序的数据。当然,程序的指令和数据还可以存储在同一片内存储器中。
46.如背景技术所提及的,在设计soc fpga芯片时,为了避免soc fpga芯片面积较大,片内存储器141和片内存储器142均会采用存储容量较小的存储器,使得处理器110运行的程序的大小受到限制,即处理器110无法运行较大容量的程序。
47.为此,本技术实施例提供另一种soc fpga芯片。该soc fpga芯片中存储器控制模块与片内存储器和fpga内核中的一个或多个嵌入式存储器模块emb连接,从而增大soc fpga的处理器运行程序需要的片内存储空间。在程序的需要的容量大于片内存储器的容量时,在处理器运行的程序之前,可以将程序的信息一部分信息存储在片内存储器中,一部分信息存储在emb中,从而满足处理器运行较大容量程序的存储容量需求。其中,emb属于fpga内核,可以根据处理器的需要在例化时调整emb存储空间的大小,在片内存储器的大小满足处理器工作需求时,emb供fpga内核使用。
48.图2是本技术实施例提供另一种soc fpga芯片的结构示意图。该soc fpga芯片中包括处理器110、系统总线120、一个或多个存储器控制模块(例如存储器控制模块131和存储器控制模块132)、一个或多个片内存储器(例如片内存储器141和片内存储器142)、以及fpga内核150。其中,fpga内核150中包括多个嵌入式存储器模块emb,例如emb151和emb152。其中,存储器控制模块131除与片内存储器141连接外,还与emb151连接;存储器控制模块132除与片内存储器142连接外,还与emb152连接。
49.在图2所示实施例中,存储器控制模块(包括存储器控制模块131和存储器控制模块132)中可以包括总线接口和多个片内存储器接口。总线接口可以包括高性能总线(advanced high performance bus,ahb)接口。以存储器控制模块131为例,如图3所示,存储器控制模块131可以包括ahb接口、片内存储器接口和emb存储器接口。其中,ahb接口与系统总线连接,片内存储器接口与片内存储器141连接,emb存储器接口与emb151连接。
50.基于图2所示的soc fpga芯片,本技术实施例提供一种数据处理方法。该数据处理器方法可以应用于图2所示的存储器控制模块中。
51.图4是本技术实施例提供的一种数据处理方法的流程图。如图4所示,该方法包括s401-s404。下面以图2中的存储器控制模块131执行该方法为例进行具体介绍。
52.在s401中,存储器控制模块将处理器110待运行的程序的信息写入片内存储器和ebm。
53.程序的多个第一信息包括程序的多个指令和多个数据。数据是指处理器运行程序时,根据指令进行计算的原始数据。soc fpga芯片外部的调试设备可以通过比较处理器110待运行的程序的信息的容量和片内存储器的存储容量的大小,确定使用片内存储器存储程序的信息、或者使用片内存储器和emb存储程序的信息。如果信息的容量大于片内存储器的存储容量,确定将信息写入片内存储器和emb。如果信息的容量不大于片内存储器的存储容量,确定将信息写入片内存储器其中,在确定将信息写入片内存储器和emb后,可以根据片内存储器的地址范围和emb的地址范围,确定程序的各个信息及其对应的访问地址。
54.以程序的多个指令举例来说,可以根据该程序的指令需要的容量和片内存储器141的存储容量,确定使用片内存储器141存储该程序的指令、或者使用片内存储器141和emb151存储该程序的指令。其中,若程序的指令需要的容量大于片内存储器141的存储容量,确定使用片内存储器141和emb151存储该程序的指令。若程序的指令需要的容量小于或等于片内存储器141的存储容量,确定使用片内存储器141存储该程序的指令。这样,处理器
运行的程序的一部分指令可以放在片内存储器141中,一部分指令放在fpga内核的emb151中,处理器仍然可以读取程序的所有指令,从而正常运行该程序。
55.以程序的多个数据举例来说,可以根据该程序的数据需要的容量和片内存储器142的存储容量,确定使用片内存储器142存储该程序的数据、或者使用片内存储器142和emb152存储该程序的数据。其中,若程序的数据需要的容量大于片内存储器142的存储容量,确定使用片内存储器142和emb152存储该程序的数据。若程序的数据需要的容量小于或等于片内存储器142的存储容量,确定使用片内存储器142存储该程序的数据。这样,处理器运行的程序的一部分数据可以放在片内存储器142中,一部分数据放在fpga内核的emb152中,处理器仍然可以读取程序的所有数据,从而正常运行该程序。
56.其中,fpga芯片外部的调试设备向soc fpga芯片中的调试模块发送soc fpga芯片的配置文件,该配置文件中包括程序的信息及其对应的访问地址。调试模块用于向系统总线120发送程序的信息及其对应的访问地址。
57.存储器控制模块131可以通过ahb接口,从系统总线120接收程序的指令以及指令对应的访问地址。然后,根据访问地址,将指令写入片内存储器141或者emb151。其中,若访问地址介于片内存储器141对应的地址范围,通过片内存储器接口将指令写入片内存储器141;若访问地址介于emb151对应的地址范围,通过emb存储器接口将指令写入emb151。
58.存储器控制模块132可以通过ahb接口,从系统总线120接收程序的数据以及数据对应的访问地址,然后,根据访问地址,将数据写入片内存储器142或者emb152。其中,若访问地址介于片内存储器142对应的地址范围,通过片内存储器接口将数据写入片内存储器142;若访问地址介于emb152对应的地址范围,通过emb存储器接口将数据写入emb152。
59.在s402中,存储器控制模块接收处理器110发送访问地址,根据该访问地址访问片内存储器或者emb,以从片内存储器或者emb读取信息,或者向片内存储器或者emb写入信息。
60.以信息为指令来说,处理器110可以通过系统总线120向存储器控制模块131发送访问地址,以读取该访问地址对应的指令。存储器控制模块131通过ahb接口,从系统总线120接收处理器110发送的访问地址,根据该访问地址,从片内存储器141或emb151读取该访问地址对应的指令。其中,若访问地址介于片内存储器141对应的地址范围,存储器控制模块131通过片内存储器接口从片内存储器141读取指令;若访问地址介于emb151对应的地址范围,存储器控制模块131通过emb存储器接口从emb151读取指令。
61.在处理器110使用读取的指令之后,处理器110可以通过系统总线120和存储器控制模块131将该指令写入片内存储器141或者emb151。存储器控制模块131通过ahb接口,从系统总线120接收处理器110发送的待存储指令以及待存储指令对应的访问地址,根据该待存储指令对应的访问地址,将待存储指令写入片内存储器141或emb151。其中,若访问地址介于片内存储器141对应的地址范围,存储器控制模块131通过片内存储器接口将待存储指令写入片内存储器141;若访问地址介于emb151对应的地址范围,存储器控制模块131通过emb存储器接口将待存储指令写入emb151。
62.以信息为数据来说,处理器110可以通过系统总线120向存储器控制模块132发送访问地址,以读取该访问地址对应的数据。存储器控制模块132通过ahb接口,从系统总线120接收处理器110发送的访问地址,根据该访问地址,从片内存储器142或emb152读取该访
问地址对应的数据。其中,若访问地址介于片内存储器142对应的地址范围,存储器控制模块132通过片内存储器接口从片内存储器142读取数据;若访问地址介于emb152对应的地址范围,存储器控制模块132通过emb存储器接口从emb152读取数据。
63.在处理器110使用读取的数据之后,处理器110可以通过系统总线120和存储器控制模块132将该数据写入片内存储器142或者emb152。存储器控制模块132通过ahb接口,从系统总线120接收处理器110发送的待存储数据以及待存储数据对应的访问地址,根据该待存储数据对应的访问地址,将待存储数据写入片内存储器142或emb152。其中,若访问地址介于片内存储器142对应的地址范围,存储器控制模块132通过片内存储器接口将待存储数据写入片内存储器142;若访问地址介于emb152对应的地址范围,存储器控制模块132通过emb存储器接口将待存储数据写入emb152。
64.上述图4所示的方法实施例,soc fpga芯片中的处理器可以片内存储器无法满足程序的存储需求时,将程序的指令或者数据存储在fpga内核中的emb中,从而增加soc fpga芯片的处理器运行程序需要的片内存储空间,使得处理器可以运行容量较大的程序。该方法在一定程度上,还可以增强处理器功能的扩展性和fpga内核中emb的灵活性。
65.基于图4所示的方法实施例,本技术实施例还提供一种存储器控制模块。该存储器控制模块可以应用于图2所示的soc fpga芯片中。
66.图5是本技术实施例提供的一种存储器控制模块的结构示意图。如图5所示,该存储器控制模块500可以包括第一单元501和第二单元502。
67.其中,第一单元501用于将处理器运行的程序的信息写入片内存储器和emb。
68.其中,第二单元502用于根据处理器的访问地址访问片内存储器或者emb,以从片内存储器或emb读取访问地址对应的信息,或者,将信息写入片内存储器或者emb。
69.本实施例中,第一单元501具体用于:接收访问地址和访问地址对应的信息;若访问地址介于片内存储器对应的地址范围,将信息写入片内存储器;若访问地址介于emb对应的地址范围,将信息写入emb。
70.本实施例中,第二单元502具体用于,接收处理器110发送的访问地址;若访问地址介于片内存储器对应的地址范围,从片内存储器读取信息;若访问地址介于emb对应的地址范围,从emb读取信息。
71.本实施例中,第二单元502具体用于,接收处理器110发送的访问地址和信息;若访问地址介于片内存储器对应的地址范围,将信息写入片内存储器;若访问地址介于emb对应的地址范围,将信息写入emb。
72.需要说明的是,图5所示实施例提供的存储器控制模块500在执行数据处理方法时,仅以上述各功能模块的划分举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的计算设备与图4所示的运行程序的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
73.图6是本技术实施例提供一种计算设备600的硬件结构示意图。
74.参见图6,该计算设备600包括soc fpga芯片601、通信接口602、非易失性存储器603和总线604,soc fpga芯片601、非易失性存储器603和通信接口602通过总线604彼此连接。soc fpga芯片601、非易失性存储器603和通信接口602也可以采用除了总线604之外的
其他连接方式连接。
75.其中,非易失性存储器603可以用于存储soc fpga芯片的配置文件。
76.其中,soc fpga芯片601可以包括图2所示的soc fpga芯片。soc fpga芯片601可以包括至少一个电路,以执行图4所示实施例提供的数据处理方法。
77.其中,通信接口602包括输入/输出(input/output,i/o)接口、物理接口和逻辑接口等用于实现计算设备600内部的器件互连的接口,以及用于实现计算设备600与其他设备(例如其他计算设备或用户设备)互连的接口。物理接口可以是以太网接口,光纤接口,atm接口等。
78.其中,总线604可以是任何类型的,用于实现soc fpga芯片601、非易失性存储器603和通信接口602互连的通信总线,例如系统总线。
79.上述器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本技术实施例对上述器件的具体实现形式不做限定。
80.图6所示的计算设备600仅仅是示例性的,在实现过程中,计算设备600还可以包括其他组件,本文不再一一列举。
81.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
82.可以理解的是,在本技术的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本技术的实施例的范围。应理解,在本技术实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,不应对本技术实施例的实施过程构成任何限定。
83.以上所述的具体实施方式,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本技术的保护范围,凡在本技术的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本技术的保护范围之内。

技术特征:
1.一种处理器在片内存储器和fpga内核中运行程序的方法,其特征在于,应用于soc fpga芯片,所述soc fpga芯片中包括处理器、存储器控制模块、片内存储器和fpga内核,所述fpga内核中包括嵌入式存储器模块emb,所述方法包括:所述存储器控制模块将所述处理器待运行的程序的信息写入所述片内存储器和所述emb;所述存储器控制模块根据所述处理器的访问地址访问所述片内存储器或者所述emb,以从所述片内存储器或所述emb读取所述访问地址对应的信息、或者将所述信息写入所述片内存储器或者所述emb。2.根据权利要求1所述的方法,其特征在于,在将所述处理器待运行的程序的信息写入所述片内存储器和所述emb之前,所述方法还包括:比较所述信息的容量和所述片内存储器的存储容量;在所述信息的容量大于所述片内存储器的存储容量的情况下,调用fpga内核中emb模块扩充所需存储容量,确定将所述信息写入所述片内存储器和所述emb。3.根据权利要求1或2所述的方法,其特征在于,将所述信息写入所述片内存储器和所述emb包括:从所述soc fpga芯片的调试模块接收所述信息以及所述信息对应的访问地址、或者从调试设备的非易失性存储器的控制器接收所述信息以及所述信息对应的访问地址;若所述访问地址介于所述片内存储器对应的地址范围,将所述信息写入所述片内存储器;若所述访问地址介于所述emb对应的地址范围,将所述信息写入所述emb。4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述处理器的访问地址访问所述片内存储器或者所述emb,包括:接收所述处理器发送的所述访问地址;若所述访问地址介于所述片内存储器对应的地址范围,从所述片内存储器读取所述信息;若所述访问地址介于所述emb对应的地址范围,从所述emb读取所述信息。5.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述处理器的访问地址访问所述片内存储器或者所述emb,包括:接收所述处理器发送的所述访问地址和所述信息;若所述访问地址介于所述片内存储器对应的地址范围,将所述信息写入所述片内存储器;若所述访问地址介于所述emb对应的地址范围,将所述信息写入所述emb。6.根据权利要求1-5任一项所述的方法,其特征在于,所述存储器控制模块包括总线接口、片内存储器接口和emb存储器接口;所述总线接口与所述处理器连接,所述片内存储器接口与所述片内存储器连接,所述emb存储器接口与所述emb连接。7.一种存储器控制模块,其特征在于,应用于soc fpga芯片,所述soc fpga芯片中包括处理器、片内存储器和fpga内核,所述fpga内核中包括嵌入式存储器模块emb,所述存储器控制模块包括:
第一单元,用于将所述处理器运行的程序的信息写入所述片内存储器和所述emb;第二单元,用于根据所述处理器的访问地址访问所述片内存储器或者所述emb,以从所述片内存储器或所述emb读取所述访问地址对应的信息,或者,将所述信息写入所述片内存储器或者所述emb。8.一种soc fpga芯片,其特征在于,所述芯片中包括处理器、存储器控制模块、片内存储器和fpga内核,所述fpga内核中包括嵌入式存储器模块emb,所述存储器控制模块与所述处理器、所述片内存储器和所述emb连接,所述存储器控制模块用于执行权利要求1至5任一所述的方法。9.根据权利要求8所述的芯片,其特征在于,所述存储器控制模块包括总线接口、片内存储器接口和emb存储器接口;所述总线接口与所述处理器连接,所述片内存储器接口与所述片内存储器连接,所述emb存储器接口与所述emb连接。10.一种计算设备,其特征在于,所述计算设备包括:如权利要求8或9所述的soc fpga芯片。

技术总结
本发明提供一种处理器在片内存储器和FPGA内核中运行程序的方法。将处理器、存储器控制模块、片内存储器和FPGA内核集成在SoC FPGA芯片中,FPGA内核中包括嵌入式存储模块EMB,并提供了当已知处理器运行的程序所需存储容量大于片内存储器容量时,可以通过调用FPGA内核中EMB扩充所需存储容量,从而实现处理器能够在片内存储器和FPGA内核中运行程序的解决方案。该方案可以解决在不增加片外存储器的条件下,SoC FPGA芯片的处理器由于片内存储器容量不足无法运行较大容量程序的问题。储器容量不足无法运行较大容量程序的问题。储器容量不足无法运行较大容量程序的问题。


技术研发人员:李全磊 王潘丰 王海力
受保护的技术使用者:京微齐力(北京)科技股份有限公司
技术研发日:2023.05.18
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐