本发明涉及存储管理,尤其涉及一种片上系统共享闪存的方法、片上系统、物联网芯片及设备。
背景技术:
1、当前片上系统都包含多个处理器(同构或者异构),各自独立运行软件代码在系统里完成不同的控制任务。指令代码可以存放在芯片内部,也可以存放到芯片外部存储设备上,供处理器直接取指运行。物联网芯片受限于片上内存容量,所有可用的片上存储设备都会被充分利用,而nor型闪存的片上执行技术使得处理器可以在闪存上直接运行程序。nor型闪存之所以可以片内执行,是因为符合处理器取指译码执行的要求。处理器发送一个地址,nor型闪存就能返回对应代码指令让处理器执行,中间不需要额外的操作。
2、在现有技术中,受结构和接口等方面限制,单个处理器访问单个特定nor型闪存完成指令执行,而两个处理器访问则需要访问两个独立的nor型闪存来各自分别完成指令执行。即,采用非共享方式使用nor型闪存,一对一连接独享专用。但这个方式会出现多套nor型闪存控制器以及多套nor型闪存颗粒的芯片引脚接口,导致面积和芯片引脚数额外增加,可扩展性差,不是成本效率最优组合方案。
技术实现思路
1、本发明提供的片上系统共享闪存的方法、片上系统、物联网芯片及设备,能够使多个处理器共享访问同一个闪存模块,从而,节省了闪存控制器和芯片引脚,降低了片上系统的硬件成本。
2、第一方面,本发明提供一种片上系统共享闪存的方法,执行于多处理器片上系统的其中一个处理器中,所述方法包括,
3、在向所述闪存控制器发送擦写访问请求时,将所述擦写访问请求对应的数据分割为多个数据单元,以使闪存控制器逐数据单元擦写对应的地址段;
4、在向所述闪存控制器发送擦写访问请求后,监控所述闪存控制器的擦写进程以及多个所述处理器中的其他所述处理器的读访问请求状态;
5、当闪存控制器完成了一个以上的数据单元的擦写,且其他所述处理器中的任意一个处于发送了读访问请求的状态时,挂起当前的擦写访问请求,以使所述闪存控制器响应所述读请求;
6、当所述读访问请求结束时,继续当前的擦写访问请求。
7、可选地,所述方法还包括:
8、在向闪存控制器发送擦写访问请求时,向多个所述处理器中的其他所述处理器发送等待通知,以使多个所述处理器中的其他所述处理器在擦写访问请求执行期间保持等待;
9、在擦写访问请求结束或挂起后,向多个所述处理器中的其他处理器发送结束通知。
10、第二方面,本发明提供一种片上系统共享闪存的方法,执行于多处理器片上系统的其中一个处理器中,所述方法包括,
11、在向所述闪存控制器发送读访问请求之前,向多个所述处理器中的其他所述处理器发送读访问通知,以使其他所述处理器中正在进行擦写访问请求的处理器在当前数据单元擦写完成后挂起当前的擦写访问请求;
12、在所述擦写访问请求挂起后,向所述闪存控制器发送读访问请求;
13、在读访问请求结束后,向其他所述处理器发送结束通知,以使挂起的擦写访问请求继续被执行。
14、可选地,所述方法还包括:
15、在向闪存控制器发送读访问请求之前,向所述多个所述处理器中的其他所述处理器发送查询通知,以使多个处理器中的其他所述处理器返回当前的访问状态;
16、在接收到其他所述处理器中的任何一个返回擦写访问请求的状态时,保持当前的读访问请求处于等待状态;
17、在接收到对应于擦写访问请求结束或挂起的结束通知时,执行处于等待状态的读访问请求。
18、第三方面,本发明提供一种片上系统共享闪存的方法,执行于多处理器片上系统的存储模块中的闪存控制器,所述方法包括,
19、在接收多个所述处理器中的其中一个所述处理器发送的擦写访问请求并响应时,将所述存储子模块划分为多个地址段,并逐地址段执行所述擦写访问请求;
20、在当前地址段未擦写完成,且接收到多个处理器中的其他处理器的读访问请求时,通过握手协议使多个所述处理器中的其他所述处理器发送的读访问请求保持等待状态;
21、在当前地址段擦写完成后,将所述擦写访问请求挂起,并响应保持等待状态的读访问请求;
22、在所述读访问请求执行结束后,继续执行挂起的擦写访问请求。
23、第四方面,本发明提供一种共享闪存的片上系统,包括:
24、多个处理器,用于获取并执行代码指令;
25、闪存模块,所述闪存模块包括闪存控制器和存储子模块,所述存储子模块用于存储多个所述处理器所需要的代码指令,所述闪存控制器用于响应于多个所述处理器的请求从所述存储子模块取出并发送对应代码指令;其中,所述代码指令至少包括第一代码指令和第二代码指令;第一代码指令能够被其中一个处理器执行,以使所述其中一个处理器能执行如上述任一项执行于多个处理器中的其中一个的用于擦写访问请求的片上系统共享闪存的方法;第二代码指令能够被其中一个处理器执行,以使所述其中一个处理器能执行如上述任一项执行于多个处理器中的其中一个的用于读访问请求的片上系统共享闪存的方法;所述闪存控制器具有判断电路,所述判断电路响应于多个处理器的请求执行如上述任一项执行于闪存模块中的闪存控制器的片上系统共享闪存的方法;
26、片上系统互联总线模块,所述片上系统互联总线模块用于将所述多个处理器与所述闪存模块通信连接;其中,
27、所述片上系统互联总线模块包括:
28、仲裁器,所述仲裁器与多个所述处理器通信连接,所述仲裁器与闪存模块通信连接,所述仲裁器用于将所述多个处理器发送的访问请求进行仲裁,确定当前需要向所述闪存模块发送的访问请求。
29、可选地,所述仲裁器用于对多个处理器发送的访问请求进行仲裁,以使所述多个处理器发送中仅有一个处理器的访问请求被发送至闪存模块。
30、可选地,所述仲裁器用于对多个处理器发送的相同类型的访问请求进行仲裁,以使相同类型的访问请求每次仅有一个被发送至闪存模块,不同类型的访问请求产生并发。
31、可选地,当所述多个处理器中的其中一个与所述闪存模块的传输协议不同时,所述片上系统互连总线模块还包括转换单元,所述转换单元与传输协议不同的处理器通信连接,所述转换单元用于将传输协议不同的处理器向所述闪存模块发送的访问请求进行转换。
32、可选地,所述转换单元用于将对应的处理器与所述存储模块的传输协议、数据位宽以及时钟频率进行转换。
33、第五方面,本发明提供一种物联网芯片,所述物联网芯片包括如上述任意一项所述的共享闪存的片上系统。
34、第六方面,本发明提供一种物联网设备,所述物联网设备包括如上述的物联网芯片。
35、在本发明提供的技术方案中,通过转换单元将对应的处理器与闪存模块之间的通信数据进行转换,确保每个处理器都能正确的读出或者擦写数据,再通过仲裁模块进行仲裁,确保每个处理器对闪存模块的访问不发生冲突,从而,实现了多个处理器共享闪存模块。由于多个处理器共享闪存模块,因此,节省了闪存控制模块所占用的面积,也节省了引线和引脚的数量,有效地降低了硬件成本。同时,由于本发明提供的技术方案具有简洁的架构,使其可扩展性强,不会受到处理器数量的限制。
1.一种片上系统共享闪存的方法,其特征在于,执行于多处理器片上系统的其中一个处理器中,所述方法包括,
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.一种片上系统共享闪存的方法,其特征在于,执行于多处理器片上系统的其中一个处理器中,所述方法包括,
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.一种片上系统共享闪存的方法,其特征在于,执行于多处理器片上系统的存储模块中的闪存控制器,所述方法包括,
6.一种共享闪存的片上系统,其特征在于,包括:
7.根据权利要求6所述的共享闪存的片上系统,其特征在于,所述仲裁器用于对多个处理器发送的访问请求进行仲裁,以使所述多个处理器发送中仅有一个处理器的访问请求被发送至闪存模块。
8.根据权利要求6所述的共享闪存的片上系统,其特征在于,所述仲裁器用于对多个处理器发送的相同类型的访问请求进行仲裁,以使相同类型的访问请求每次仅有一个被发送至闪存模块,不同类型的访问请求产生并发。
9.一种物联网芯片,其特征在于,所述物联网芯片包括如权利要求8所述的共享闪存的片上系统。
10.一种物联网设备,其特征在于,所述物联网设备包括如权利要求9所述的物联网芯片。
