多处理器系统的制作方法

文档序号:22387264发布日期:2020-09-29 17:49阅读:121来源:国知局
多处理器系统的制作方法

本发明涉及一种多处理器系统。



背景技术:

在专利文献1中公开有一种多处理器系统,其至少包括第1处理器和第2处理器,其特征在于,包括:读取专用存储器,存储第1处理器执行的第1程序和第2处理器执行的第2程序;及随机访问存储器,以能够访问的方式连接有所述第1处理器及第2处理器,并具有所述第1处理器的存储器使用区域、所述第2处理器的存储器使用区域、以及所述第1处理器与所述第2处理器的存储器共享使用区域,所述读取专用存储器在其内部除了程序的被分割的编码以外还具有标题,各标题内存储有对应的分割尺寸信息、表示每种启动模式中是否需要传送的信息,所述第1处理器访问存储于所述读取专用存储器中的所述第2处理器用程序,针对每个分割,作为判定在所述第2处理器中是否需要传送的前提,关于所述启动模式而判定是存在通常模式下的启动指示,还是存在特殊模式下的启动指示,将与该所判定的启动模式对应的程序扩展到所述第2处理器的存储器使用区域。

专利文献1:国际公开第2008/001671号公报



技术实现要素:

本发明的目的在于提供一种使得第2处理器能够比现有技术更快地启动的多处理器系统。

第1方式所涉及的多处理器系统至少包括第1处理器和第2处理器,所述多处理器系统具备:存储单元,存储第1处理器执行的第1程序和第2处理器执行的第2程序;存储器部,具有所述第2处理器的存储器使用区域;及监视单元,经由通信线路而连接于所述存储单元及所述存储器部,在从所述存储单元读取的程序为所述第2程序的情况下,将所读取的所述第2程序存储于所述存储器部。

第2方式所涉及的多处理器系统在第1方式所涉及的多处理器系统中,在所述存储单元上,经由所述通信线路连接有所述第1处理器及所述监视单元。

第3方式所涉及的多处理器系统在第2方式所涉及的多处理器系统中,所述通信线路为总线。

第4方式所涉及的多处理器系统在第1方式所涉及的多处理器系统中,所述第1处理器与所述存储单元经由所述监视单元及所述通信线路而连接。

第5方式所涉及的多处理器系统在第4方式所涉及的多处理器系统中,所述存储单元与所述监视单元之间、以及所述监视单元与所述第1处理器之间经由所述通信线路而1对1地连接。

第6方式所涉及的多处理器系统在第1至5中任一方式所涉及的多处理器系统中,还具备:处理器间接口电路,在所述第1处理器与所述第2处理器之间;及读取单元,读取存储于所述存储单元中的程序,所述第1处理器将所述处理器间接口电路进行初始化,所述读取单元开始从所述存储单元读取所述第2程序直至完成所述处理器间接口电路的初始化。

发明效果

根据第1方式,具有如下效果:能够比现有技术更快地启动第2处理器。

根据第2方式,具有如下效果:能够简单地构成多处理器系统。

根据第3方式,具有如下效果:能够使用总线简单地构成多处理器系统。

根据第4方式,具有如下效果:监视单元能够总括管理程序传送。

根据第5方式,具有如下效果:能够使通信速度比现有技术更快。

根据第6方式,具有如下效果:开始从存储单元读取第2程序,直至完成处理器间接口电路的初始化,由此能够比现有技术更快地启动第2处理器。

附图说明

根据以下附图,对本发明的实施方式进行详细叙述。

图1是第1实施方式的多处理器系统的框图;

图2是通过cpu1_112执行cpu1程序而进行的cpu2程序数据及cpu3程序数据的传送处理的流程图;

图3是将由snoop控制器180执行的、cpu2程序数据及cpu3程序数据存储于ram_b108的程序数据存储处理的流程图;

图4是cpu2程序数据及cpu3程序数据的传送处理及程序数据存储处理时的cpu1_112、dmac118及snoop控制器180的时序图;

图5是表示存储ram_b108的程序的区域的一例的图;

图6是第2实施方式的多处理器系统的框图;

图7是第1变形例中的cpu2程序数据及cpu3程序数据的传送处理及程序数据存储处理时的cpu1_112、dmac118及snoop控制器180的时序图;

图8是第2变形例中的cpu2程序数据及cpu3程序数据的传送处理及程序数据存储处理时的cpu1_112、dmac118及snoop控制器180的时序图。

符号说明

100-rom,101-总线,103-总线,108-ram_b,112-cpu1,118-dmac,152-cpu2,180-snoop控制器,107a、107b-通信线路。

具体实施方式

以下,参考附图对用于实施本发明的方式例进行详细说明。

(第1实施方式)

参考附图对第1实施方式所涉及的多处理器系统的结构进行说明。

图1中示出第1实施方式多处理器系统的框图。如图1所示,多处理器系统包括复数个cpu(centralprocessingunit:中央处理单元),例如至少包括cpu1_112和cpu2_152。具体而言,多处理器系统具备:具备cpu1_112的soc(system-on-a-chip:集成电路)102;及具备cpu2_152及cpu3_154的asic(applicationspecificintegratedcircuit:专用集成电路)104。

cpu1_112和cpu2_152是本发明技术的“第1处理器”和“第2处理器”的一例。

多处理器系统具备rom(readonlymemory:只读存储器)100。rom100中存储有cpu1_112执行的cpu1程序数据、cpu2_152执行的cpu2程序数据及cpu3_154执行的cpu3程序数据。rom100例如是非易失性存储器。

rom100是本发明技术的“存储单元”的一例。

多处理器系统具备具有cpu1_112的存储器使用区域的ram(randomaccessmemory:随机存取存储器)_a106和具有cpu2_152的存储器使用区域的ram_b108。ram_a106及ram_b108例如是易失性存储器,例如dram(dynamicrandomaccessmemory:动态随机存取存储器)。

ram_b108是本发明技术的“存储器部”的一例。

soc102具备cpu1_112、rom控制器(cont)114a、dram控制器(cont)116、dmac((dmacontroller))118及处理器间控制器(cont)120。这些元件(112至120)通过总线122彼此连接成能够通信。dram控制器116连接于ram_a106。

dmac118是本发明技术的“存储器部”的一例。

asic104具备cpu2_152、cpu3_154、dram控制器(cont)156、处理器间控制器(cont)158、其他复数个控制器(other1控制器160a、other2控制器160b、other3控制器160c……)及snoop控制器180。dram控制器156连接于ram_b108。

snoop控制器180是本发明技术的“监视单元”的一例。

处理器间控制器120与处理器间控制器158通过pcie(pciexpress(总线接口))105被连接。

处理器间控制器120与处理器间控制器158是本发明技术的“处理器间接口电路”的一例。

在rom100上经由通信线路连接有cpu1_112及snoop控制器180。具体而言,snoop控制器180经由总线103而连接于rom100与cpu1_112之间的总线101。

详细内容将在后述叙述,snoop控制器180在从rom100读取的程序数据为cpu2程序数据及cpu3程序数据的情况下,将所读取的cpu2程序数据及cpu3程序数据存储于ram_b108。如图5所示,snoop控制器180从ram_b108的预先确定的cpu2用程序起始地址p2a存储cpu2程序,从预先确定的cpu3用程序起始地址p3a存储cpu3程序数据。

如上所述,rom100中存储有cpu1程序数据、cpu2程序数据及cpu3程序数据。cpu1程序数据存储于从rom100的存储位置m1到m2之间的区域,cpu2程序数据存储于从rom100的存储位置m2到m3之间的区域,cpu3程序数据存储于rom100的存储位置m3以后的区域。

存储于rom100中的程序数据在图1中从纸面上侧向下侧、且从左侧向右侧被读取。关于cpu1程序数据、cpu2程序数据及cpu3程序数据,更靠开头(容易读取的位置)配置启动优先顺序更高的程序数据。由此,cpu2_152及cpu3_154的程序数据的传送顺序比不是该配置的情况变得更靠前,cpu2_152及cpu3_154比不是该配置的情况更快地启动。

在cpu2程序数据及cpu3程序数据各程序数据中,在开头和末尾配置有识别数据。具体而言,在cpu2程序数据的开头配置有表示cpu2程序数据的开头的开始识别数据p2s,在其末尾配置有表示cpu2程序数据的末尾的结束识别数据p2e。在cpu3程序数据的开头配置有表示cpu3程序数据的开头的开始识别数据p3s,在其末尾配置有表示cpu3程序数据的末尾的结束识别数据p3e。若将这种识别数据配置于程序数据中,则snoop控制器180判断cpu1程序数据与cpu2程序数据的中断点、cpu2程序数据与cpu3程序数据的中断点、cpu3程序数据与其他程序数据的中断点。另外,snoop控制器180也可以使用存储有各程序数据的地址来代替该识别数据而判断程序数据的中断点。也可以在asic104内部或外部的非易失性存储器中存储有识别数据或地址,将程序数据的识别符设为是可变的,或者设定为除预定值以外的值。

接着,对第1实施方式作用进行说明。

图2中示出通过cpu1_112执行cpu1程序而进行的cpu2程序数据及cpu3程序数据的传送处理的流程图。图3中示出将snoop控制器180执行的、cpu2程序数据及cpu3程序数据存储于ram_b108的程序数据存储处理的流程图。在图4(图4的(a)至(c))中示出cpu2程序数据及cpu3程序数据的传送处理及程序数据存储处理时的cpu1_112、dmac118及snoop控制器180的时序图。

若soc102及asic104被接通电源,则cpu1_112及snoop控制器180也被接通电源。

被接通电源的snoop控制器180开始图3的处理,在步骤252中,判断在从rom100传送的程序数据中是否存在被指定的开始识别数据p2s或开始识别数据p3s(图4:时刻t0至时刻t4)。

若cpu1_112被接通电源而启动,则在(时刻t0到t1)、步骤202(参考图2)中,cpu1_112设定dmac118,以使cpu1程序从rom100传送到ram_a106(参考时刻t1到t2)。在步骤204中,cpu1_112判断cpu1程序的传送是否结束。

步骤202的上述所设定的dmac118从rom100读取cpu1程序数据,并扩展到ram_a106(从时刻t2到时刻t3之前)。由dmac118来读取的cpu1程序数据经由总线101、rom控制器114a、总线122、dram控制器116传送并存储于ram_a106。

如上所述,在总线101上连接有另一端连接于snoop控制器180的总线103的一端,因此cpu1程序数据经由总线101、103也传送到snoop控制器180。如上所述,snoop控制器180在图3的步骤252中判断在被传送的程序数据中是否存在被指定的开始识别数据p2s或开始识别数据p3s。即,snoop控制器180判断被传送的程序数据是cpu2程序数据,还是cpu3程序数据。

如上所述,从时刻t2到时刻t3之前,cpu1程序数据也被传送到snoop控制器180,因此步骤252的判定结果成为否定判定。该情况下,snoop控制器180忽略被传送的程序数据(不存在于ram_b108)。

dmac118在读取从地址m1到m2的程序数据并扩展到ram_a106的状态下,将状态(传送状态)设为传送中,在该扩展结束的情况下切换为表示cpu1程序的传送结束的传送结束。cpu1_112确认dmac118的状态,在检测出状态为传送结束的情况下,图2的步骤204成为肯定判定(时刻t3)。

在步骤204成为肯定判定的情况下,在步骤206中,cpu1_112将dmac118设定成传送cpu2用程序、接着传送cpu3用程序(时刻t3到时刻t4)。在步骤208中,cpu1_112将pcie105进行初始化(时刻t4到时刻t5),在步骤210中,cpu1_112判断cpu2用程序的传送是否结束(时刻t5到时刻t6)。

设定有传送cpu2用程序,接着传送cpu3用程序的情况的dmac118从rom100读取cpu2程序数据,并扩展到ram_a106。由dmac118读取的cpu2程序数据经由总线101、rom控制器114a、总线122、dram控制器116而传送并存储于ram_a106。

cpu2程序数据还经由总线101、103而也传送到snoop控制器180。该情况下,dmac118首先读取表示cpu2程序数据的开头的开始识别数据p2s,并传送到snoop控制器180。

若开始识别数据p2s传送到snoop控制器180,则图3的步骤252的判定结果成为肯定判定。若步骤252的判定结果成为肯定判定,则在步骤254中,snoop控制器180向被指定的地址开始传送。具体而言,snoop控制器180从图5所示的ram_b108的地址p2a依次存储cpu2程序数据(时刻t4到时刻t6)。

通过上述处理,如图4所示,在通过cpu1_112来初始化pcie105的期间(时刻t4到时刻t5),cpu2程序数据通过snoop控制器180经由总线101、103、总线162、dram控制器156,而不是经由pcie105被传送到ram_b108。如此,cpu2程序数据向ram_b108的传送开始,直至完成pcie105的初始化。

在第1实施方式中,在相同的时刻t4开始pcie105的初始化和cpu2程序数据向ram_b108的传送,在cpu2程序数据向ram_b108的传送完成之前结束pcie105的初始化。

如上所述,在图2的步骤210中,cpu1_112判断cpu2程序的传送是否结束(时刻t5到时刻t6)。

dmac118在读取从地址m2到m3的程序数据并扩展到ram_b108的情况下,将状态(传送状态)切换为cpu2程序的传送结束。cpu1_112确认dmac118的状态,在检测出状态切换为cpu2程序的传送结束的情况下,图2的步骤210成为肯定判定(时刻t6)。

除此以外,在snoop控制器180中,与dmac118的状态的切换也相同地进行状态的切换。cpu1_112可以确认snoop控制器180的状态,并检测状态是否已切换为cpu2程序的传送结束。进而,cpu1_112可以判定cpu2程序是否存储于ram_a106。

如上所述,pcie105被初始化,cpu2程序数据向ram_b108的传送已完成,因此在步骤212中,cpu1_112解除cpu2_152的复位(cpu2_152的启动开始:时刻t6到时刻t7)。具体而言,cpu1_112将复位的解除通知到cpu2_152。这是为了防止在cpu2程序的所有的程序数据存储于ram_b108之前,cpu2_152执行cpu2程序。另外,cpu2管理部(other2控制器160b)被初始化(时刻t9)。

在步骤214中,cpu1_112判断cpu3程序的传送是否已结束(时刻t7到时刻t8)。在判定为cpu3程序的传送已结束的情况下,在步骤216中,cpu1_112解除cpu3_154的复位。在步骤214、216中执行cpu3程序这一点与在步骤210、212执行cpu2程序这一点不同,因此省略该说明。另外,cpu3管理部(other3控制器160c)被初始化(时刻t10)。

dmac118在时刻t4到时刻t6进行cpu2程序的传送,在时刻t6到时刻t8进行cpu3程序的传送。

在snoop控制器180中,也通过图3的步骤254在时刻t4到时刻t6进行cpu2程序的传送,在时刻t6到时刻t8进行cpu3程序的传送。

在步骤256中,snoop控制器180判断在经由总线101、103传送的程序数据中是否存在被指定的结束识别数据p3e。反复进行步骤256直至判断为在经由总线101、103被传送的程序数据中存在被指定的结束识别数据p3e。在判定为被传送的程序数据中存在被指定的结束识别数据p3e的情况下,判断为cpu3程序的传送结束,并结束处理。

如以上说明,在第1实施方式中,在相同的时刻t4开始进行pcie105的初始化和cpu2程序数据向ram_b108的传送。即,与pcie105的初始化独立地进行cpu2程序数据向ram_b108的传送。由此,在第1实施方式中,cpu2比在pcie的初始化之后传送cpu2程序数据的现有技术更快地启动。

在第1实施方式中,snoop控制器180经由1根总线103而连接于rom100与cpu1_112之间的总线101。从通信线路为1根的观点来看,多处理器系统的结构被简化。

(第2实施方式)

第2实施方式所涉及的多处理器系统的结构与第1实施方式所涉及的多处理器系统的结构大致相同,因此对相同部分标注同一符号并省略其说明,以不同的部分为主进行说明。

在图6中示出第2实施方式多处理器系统的框图。如图6所示,cpu1_112与rom100经由snoop控制器180及通信线路107a、107b而连接。具体而言,rom100与snoop控制器180之间通过通信线路107a而连接,snoop控制器180与cpu1_112之间通过通信线路107b、接口(i/f)控制器114b及总线122而连接。

rom100与snoop控制器180之间1对1(peertopeer)地连接,snoop控制器180与cpu1_112之间1对1(peertopeer)地连接。

第2实施方式作用与第1实施方式的作用大致相同,因此省略其说明。另外,在第2实施方式中,各程序数据经由通信线路107a、snoop控制器180、及通信线路107b及soc102传送到ram_a106。尤其,cpu2程序数据及cpu3程序数据还经由线路107a、asic104(snoop控制器180)传送到ram_b108。

在第2实施方式中,cpu2比在pcie的初始化之后传送cpu2程序数据的现有技术更快地启动。

rom100与snoop控制器180之间1对1(peertopeer)地连接,snoop控制器180与cpu1_112之间1对1(peertopeer)地连接。由此,通信速度比通过总线连接的速度更快。

snoop控制器180总括管理各程序的传送。

(变形例)

(第1变形例)

对第1变形例进行说明。另外,第1变形例的结构可以是第1实施方式的结构及第2实施方式的结构中的任一结构。

对第1变形例的作用进行说明。在图7(图7的(a)至(c))中示出第1变形例中的cpu2程序数据及cpu3程序数据的传送处理及程序数据存储处理时的cpu1_112、dmac118及snoop控制器180的时序图。

在第1实施方式及第2实施方式中,cpu1在cpu2程序被传送的情况下使cpu2启动,但是在第1变形例中,snoop控制器180在将cpu2用程序存储于ram_b108的情况下,使cpu2_152启动。

(第2变形例)

对第2变形例进行说明。另外,第2变形例的结构可以是第1实施方式的结构及第2实施方式的结构中的任一结构。

对第2变形例的作用进行说明。在图8(图8的(a)至(c))中示出第2变形例中的cpu2程序数据及cpu3程序数据的传送处理及程序数据存储处理时的cpu1_112、dmac118及snoop控制器180的时序图。

在第1实施方式及第2实施方式中,在pcie105的初始化中(时刻t4到时刻t5)传送cpu2用程序,但是在第2变形例中,在pcie105开始初始化(时刻t4)之前传送cpu2用程序(时刻t2到时刻t3)。如此,在本发明的技术中独立地进行pcie105的初始化和cpu2程序数据向ram_b108的传送。至少,在完成pcie105的初始化之前开始传送cpu2用程序。由此,cpu2比在pcie的初始化之后传送cpu2程序数据的现有技术更快地启动。

另外,在第2变形例中,在传送cpu1程序数据(时刻t6到时刻t7)之前传送cpu2程序(时刻t2到时刻t3)。

除此以外,在上述例中已说明的多处理器系统的结构(参考图1、图6)是一个例子,当然,在不脱离本发明的主旨的范围内,可以删除不必要的部分,或者追加新的部分。

并且,上述例中的处理流程(参考图2到图4参考)也是一个例子,当然,在不脱离本发明的主旨的范围内,可以删除不必要的步骤,或者追加新的步骤,或者调换处理顺序。

上述本发明的实施方式是以例示及说明为目的而提供的。另外,本发明的实施方式并不全面详尽地包括本发明,并且并不将本发明限定于所公开的方式。很显然,对本发明所属的领域中的技术人员而言,各种变形及变更是自知之明的。本实施方式是为了最容易理解地说明本发明的原理及其应用而选择并说明的。由此,本技术领域中的其他技术人员能够通过对假定为各种实施方式的特定使用最优化的各种变形例来理解本发明。本发明的范围由以上的权利要求书及其等同物来定义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1