多核终端共享资源的方法及装置制造方法

文档序号:6490194阅读:225来源:国知局
多核终端共享资源的方法及装置制造方法
【专利摘要】本发明涉及一种多核终端共享资源的方法及装置,其方法包括:当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;当共享互斥寄存器的状态位为空闲时,依据共享互斥寄存器存储的信息设置相应参数进行资源共享。本发明针对目前多核的终端,存在多个共享资源时,利用共享互斥寄存器来达到保护和协调共享资源的使用,由此协调了各核对共享资源的分配,提高了公共资源的利用率,同时提高了终端系统整体性能。
【专利说明】多核终端共享资源的方法及装置
【技术领域】
[0001]本发明涉及移动通信【技术领域】,尤其涉及一种多核终端共享资源的方法及装置。【背景技术】
[0002]随着系统集成技术和无线通信技术的快速发展,尤其是无线通信系统中,多核智能机终端的大量出现,导致各CPU核在操作很多公共资源时出现冲突。例如,当某一个CPU核需要调整系统总线频率或核电压时,会影响其它核的性能,若各CPU核同时进行调频调压,则会产生冲突;又如,当某一个CPU核需要操作公共RF (射频)资源时,会影响其它核的功能,若各CPU核同时操作公共RF资源,同样会造成资源使用冲突,对于其他公共资源的使用,同样存在冲突问题。

【发明内容】

[0003]本发明的主要目的在于提供一种多核终端共享资源的方法及装置,旨在实现公共资源的保护与协调使用。
[0004]为了达到上述目的,本发明提出一种多核终端共享资源的方法,包括:
[0005]当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;
[0006]当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
[0007]优选地,所述共享资源至少包括以下之一:多核调频调压、RF公共资源、I2C总线以及UART串口。
[0008]优选地,所述多核终端包括第一核和第二核,当所述第一核需要进行调频调压时,所述依据共享互斥寄存器存储的信息设置相应参数进行资源共享的步骤包括:
[0009]将所述共享互斥寄存器的状态位置为非空闲状态;
[0010]从所述共享互斥寄存器中读取所述第一核的当前频率,与预调核频率进行比较;
[0011]根据比较结果设置当前核电压以及所述第一核的当前频率;
[0012]将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器对应位中。
[0013]优选地,所述根据比较结果设置当前核电压以及所述第一核的当前频率的步骤包括:
[0014]当所述预调核频率大于所述第一核的当前频率时,从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;
[0015]当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;设置所述第一核的当前频率;
[0016]当所述预调核频率小于所述第一核的当前频率时,设置所述第一核的当前频率;从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
[0017]优选地,所述多核终端包括第一核和第二核,当所述第一核需要调整系统总线频率时,所述依据共享互斥寄存器存储的信息设置相应参数进行资源共享的步骤包括:
[0018]将所述共享互斥寄存器的状态位置为非空闲状态;
[0019]从所述共享互斥寄存器中读取系统当前总线频率、所述第二核允许的最低系统总线频率;
[0020]比较预调核频率、所述系统当前总线频率以及第二核允许的最低系统总线频率;取其中最大者设置为系统当前总线频率;
[0021]将所述系统当前总线频率、第二核允许的最低系统总线频率分别写入所述共享互斥寄存器对应位中。
[0022]优选地,当所述多核终端共享RF公共资源时,所述依据共享互斥寄存器存储的信息设置相应参数进行资源共享的步骤包括:
[0023]当所述多核终端中的任一核欲进入睡眠状态时,从所述共享互斥寄存器中读取对应的RF公共资源状态;若所述对应的RF公共资源状态为工作状态,则将所述对应的RF公共资源状态置为省电状态,并将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中;
[0024]当所述多核终端中的任一核在唤醒时,从所述共享互斥寄存器中读取对应的RF公共资源状态;若所述对应的RF公共资源状态为省电状态,则将所述对应的RF公共资源状态恢复到工作状态,并将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中。
[0025]优选地,该方法还包括:
[0026]当资源共享完毕后,将所述共享互斥寄存器的状态位回位成空闲状态。
[0027]本发明还提出一种多核终端共享资源的装置,包括:
[0028]状态位读取模块,用于当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;
[0029]资源共享模块,用于当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
[0030]优选地,所述共享资源至少包括以下之一:多核调频调压、RF公共资源、I2C总线以及UART串口。
[0031]优选地,所述多核终端包括第一核和第二核,当所述第一核需要进行调频调压时,所述资源共享模块包括:
[0032]置位单元,用于将所述共享互斥寄存器的状态位置为非空闲状态;
[0033]读取单元,用于从所述共享互斥寄存器中读取所述第一核的当前频率,与预调核频率进行比较;
[0034]设置单元,用于根据比较结果设置当前核电压以及所述第一核的当前频率;
[0035]更新单元,用于将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器对应位中。
[0036]优选地,所述设置单元还用于当所述预调核频率大于所述第一核的当前频率时,从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;设置所述第一核的当前频率;当所述预调核频率小于所述第一核的当前频率时,设置所述第一核的当前频率;从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
[0037]优选地,当所述第一核需要调整系统总线频率时,所述读取单元,还用于从所述共享互斥寄存器中读取系统当前总线频率、所述第二核允许的最低系统总线频率;
[0038]所述设置单元,还用于比较预调核频率、所述系统当前总线频率以及第二核允许的最低系统总线频率;取其中最大者设置为系统当前总线频率;
[0039]所述更新单元,还用于将所述系统当前总线频率、第二核允许的最低系统总线频率分别写入所述共享互斥寄存器对应位中。
[0040]优选地,当所述多核终端共享RF公共资源时,
[0041]所述读取单元,还用于在所述多核终端中的任一核欲进入睡眠状态或在唤醒时,从所述共享互斥寄存器中读取对应的RF公共资源状态;
[0042]所述设置单元,还用于在所述多核终端中的任一核欲进入睡眠状态且所述对应的RF公共资源状态为工作状态时,将所述对应的RF公共资源状态置为省电状态;或者,在所述多核终端中的任一核在唤醒时且所述对应的RF公共资源状态为省电状态时,将所述对应的RF公共资源状态恢复到工作状态;
[0043]所述更新单元,还用于将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中。
[0044]优选地,所述置位单元还用于当资源共享完毕后,将所述共享互斥寄存器的状态位回位成空闲状态。
[0045]本发明提出的一种多核终端共享资源的方法及装置,针对目前多核的终端,存在多个共享资源时,利用共享互斥寄存器来达到保护和协调共享资源的使用,在多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;当共享互斥寄存器的状态位为空闲时,依据共享互斥寄存器存储的信息设置相应参数进行资源共享,由此协调了各核对共享资源的分配,提高了公共资源的利用率,同时提高了终端系统整体性能。
【专利附图】

【附图说明】
[0046]图1是本发明多核终端共享资源的方法一实施例的流程示意图;
[0047]图2是本发明多核终端共享资源的装置一实施例的结构示意图;
[0048]图3是本发明多核终端共享资源的装置一实施例中资源共享模块的结构示意图。
[0049]为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
【具体实施方式】
[0050]本发明实施例的解决方案主要是:针对目前多核的终端,存在多个共享资源时,利用共享互斥寄存器来达到保护和协调共享资源的使用。
[0051]本发明中多核终端指包含两个或两个以上CPU核(以下简称核)的终端,以下各实施例以目前双核共享架构的终端为例进行说明。
[0052]如图1所示,本发明一实施例提出一种多核终端共享资源的方法,包括:
[0053]步骤S101,当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;
[0054]其中,共享资源指的是各个核都能访问和操作的资源,包括总线、内存以及外设等,具体包括但不限于多核调频调压、RF公共资源、I2C总线以及UART串口等。
[0055]当多核终端中的某一个核需要操作系统总线频率或核电压、RF资源、公共I2C总线等公共资源时,都会影响其它核的性能,所以当任何一个核动态操作公共资源时都需要结合对方参数和要求进行调整,此外,还需要避免双方同时操作资源造成的冲突问题。
[0056]本实施例利用共享互斥寄存器来达到保护和协调共享资源的使用,以保证各核能正常使用共享资源。
[0057]首先需要设计一个由顶层的共享互斥寄存器,该共享互斥寄存器为32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。
[0058]当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位,以便根据该共享互斥寄存器的状态位设置相应的参数。
[0059]步骤S102,当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
[0060]判断所述共享互斥寄存器的状态位是否空闲,当所述共享互斥寄存器的状态位未空闲时,表示对方核对共享资源具有控制权,当前核无法使用资源;当所述共享互斥寄存器的状态位为空闲时,则可以依赖该共享互斥寄存器存放的信息调节相应的参数,以实现资源共享。其中,在设置参数时,需要将共享互斥寄存器的状态位设置为非空闲状态,当资源共享完毕后,需要将共享互斥寄存器的状态位回位成空闲状态。
[0061]下面以多核调频调压、RF公共资源、I2C总线为例对本实施例基于多核终端实现资源共享的方案进行详细阐述:
[0062]实例一、对于多核动态调频调压的应用场景:
[0063]首先需要设计一个由顶层的共享互斥寄存器,以利用该共享互斥寄存器实现多核共享公共资源。
[0064]该共享互斥寄存器为32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核进行调频调压时,首先会读取该共享互斥寄存器最低位,当读取的共享互斥寄存器的最低位为空闲时,则可以进行相应的频率和核电压设置,否则,需要等待该共孚互斥寄存器的最低位空闲为止。
[0065]当然,在具体进行频率,电压等设置时,需要依赖该共享互斥寄存器存放的信息作为调频调压的条件,才能最终进行调频调压的设置,当调频调压完成后,需要置该共享互斥寄存器的最低位为0,释放控制权,则对方可以使用。
[0066]具体地,设定多核终端中的两核分别为第一核和第二核,多核共享架构动态调核时钟和电压的实现流程如下:
[0067]I)、当第一核根据CPU负载或者应用场景方式等需要进行调频时,会先读取该共孕互斥寄存器最低位bit [O],当读到bit [O]为O时,表不该共孕互斥寄存器空闲,目如可以使用;否则无法使用该共享互斥寄存器;[0068]2)、当读到bit[0]位为空闲后,硬件会自动将该位置I,表示现在该共享互斥寄存器已使用,此时禁止其它用户改写该共享互斥寄存器;
[0069]3)读取该共享互斥寄存器中bit [3-1],读出该第一核的当前频率,与预调核频率比较,根据比较结果设置当前核电压以及第一核的当前频率;
[0070]如果预调核频率大于该第一核当前频率,则走升频流程;否则,退出整个升频流程;走降频流程。
[0071]在升频流程中,读取该共享互斥寄存器中的bit[5_4],获取当前核电压,以预调核电压和当前核电压作比较,如果预调核电压大于当前核电压,则走升压流程,否则退出升压流程。
[0072]当所述预调核电压大于所述当前核电压时,读取该共享互斥寄存器的bit [7-6],获取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;然后设置所述第一核的当前频率。
[0073]在降频流程中,所述预调核频率小于所述第一核的当前频率,首先设置所述第一核的当前频率;然后从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器的bit [7-6]读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
[0074]最后,将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器中对应位bit [5-4]、bit [3-1]、bit [9-8]。
[0075]此时,系统将该共享互斥寄存器bit [O]置为0,让出控制权。
[0076]对应多核共享架构动态调节系统总线频率的实现流程如下:
[0077]I)、当第一核根据CPU负载或者应用场景方式等需要进行调总线频率时,会先读该共孕互斥寄存器最低位bit[0],当读到为O时,表不该共孕互斥寄存器空闲,目如可以使用;否则无法使用该共享互斥寄存器。
[0078]2)、当读到bit[0]位为空闲后,硬件会自动将该位置I,表示现在该共享互斥寄存器已使用,此时禁止其它用户改写该寄存器;
[0079]3)、以动态降低系统总线频率为例,根据调频策略需要降频时,此时会读取该共享互斥寄存器中bit[13_ll],读出系统当前总线频率、第二核允许的最低系统总线频率;
[0080]读取该共享互斥寄存器的bit [16-14],获取第二核允许的最低系统总线频率,取MAX(预调核频率、系统当前总线频率、第二核允许的最低总线频率),设置系统当前总线频率。
[0081]将当前系统总线频率和当前第二核允许的最低系统总线频率分别写到该共享互斥寄存器中bit [13-11]和bit [19-17];之后,系统将该共享互斥寄存器bit [O]置为0,让出控制权。
[0082]实例二、对应多核使用RF公共资源的应用场景:
[0083]首先需要设计一个由顶层的共享互斥寄存器,以利用该共享互斥寄存器实现多核共享资源,该共享互斥寄存器是32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核需要操作RF资源时,首先会读取该共享互斥寄存器最低位,当读取的共享互斥寄存器最低位为空闲时,则可以进行相应的RF资源设操作和设置,否则,需要等待该位空闲为止。当然,具体进行RF资源操作时,需要依赖该共享互斥寄存器存放的信息作为是否能操作RF的条件,才能最终进行真正的RF的设置,当操作完成后,需要置该该共享互斥寄存器最低位为O,释放控制权,则对方可以使用。
[0084]具体地,多核共享RF公共资源使用的实现流程如下:
[0085]I)、当任何一个核在睡眠前去操作公共资源进入省电状态时,必须先读RF互斥共享寄存器状态位,必须一直等到bit [O]为0,此时去读RF互斥共享寄存器中对方核RF公共资源状态bit [I],如果为0,此时对应将RF公共资源置为省电状态,然后将当前状态置到RF互斥共享寄存器对应位中,最后配置RF互斥共享寄存器状态位bit [O]为0,释放控制权;
[0086]2)、当任何一个核在唤醒时需要必须先读RF互斥共享寄存器状态位,必须一直等到bit [O]为0,此时去读RF互斥共享寄存器中对方核RF公共资源状态bit [I],如果为0,此时对应将RF公共资源置为恢复到工作状态,然后将当前状态置到RF互斥共享寄存器对应位中,最后配置RF互斥共享寄存器状态位bit [O]为0,释放控制权。
[0087]实例三、对应多核使用公共I2C总线资源的应用场景:
[0088]首先需要设计一个由顶层的共享互斥寄存器,利用该共享互斥寄存器,该寄存器是32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核需要操作公共I2C资源时,首先会读取该共享互斥寄存器最低位,当读取为空闲时,则可以使用该公共I2C总线,否则,需要等待该位空闲为止。当操作完成后,需要置该该共享互斥寄存器最低位为O,释放控制权,则对方可以使用。
[0089]具体地,多核公共I2C总线资源使用的实现流程如下:
[0090]I)、当任何一个核去操作公共I2C总线资源,必须先读I2C总线互斥共享寄存器状态位,必须一直等到bit [O]为0,此时才能去操作该I2C总线资源;否则如果bit [O] —直为I,则不能操作该I2C总线;
[0091]2)、当任何一个核操作完该I2C总线,必须设置I2C总线互斥共享寄存器状态位bit[0]为1,释放控制权,这样其它核才能使用该公共资源。
[0092]本实施例通过上述方案,能够解决对多核共享架构/共享资源的分配和使用,不但能实际解决公共资源UART串口、RF资源等的使用,同时能解决多核DVFS调频调压实现方案,从而提高了终端的整体性能,其效果显著。比如解决多核共享架构进行动态调频调压,可以比较明显的改善系统的待机、通话、上网等场景下的功耗,延长用户对电池使用的时间。
[0093]在其他实施例中只要是利用共享互斥寄存器来实现对双核或者更多核共享架构/共享资源的使用,均可以基于本实施例的上述方案而扩展实施,在此不再赘述。
[0094]如图2所示,本发明一实施例提出一种多核终端共享资源的装置,包括:状态位读取模块201及资源共享模块202,其中:
[0095]状态位读取模块201,用于当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;
[0096]资源共享模块202,用于当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
[0097]其中,共享资源指的是各个核都能访问和操作的资源,包括总线、内存以及外设等,具体包括但不限于多核调频调压、RF公共资源、I2C总线以及UART串口等。
[0098]当多核终端中的某一个核需要操作系统总线频率或核电压、RF资源、公共I2C总线等公共资源时,都会影响其它核的性能,所以当任何一个核动态操作公共资源时都需要结合对方参数和要求进行调整,此外,还需要避免双方同时操作资源造成的冲突问题。
[0099]本实施例利用共享互斥寄存器来达到保护和协调共享资源的使用,以保证各核能正常使用共享资源。
[0100]首先需要设计一个由顶层的共享互斥寄存器,该共享互斥寄存器为32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。
[0101]当多核终端中的其中一核需要共享资源时,通过状态位读取模块201读取共享互斥寄存器的状态位,以便资源共享模块202根据该共享互斥寄存器的状态位设置相应的参数。
[0102]资源共享模块202首先判断所述共享互斥寄存器的状态位是否空闲,当所述共享互斥寄存器的状态位未空闲时,表示对方核对共享资源具有控制权,当前核无法使用资源;当所述共享互斥寄存器的状态位为空闲时,则可以依赖该共享互斥寄存器存放的信息调节相应的参数,以实现资源共享。其中,在设置参数时,需要将共享互斥寄存器的状态位设置为非空闲状态,当资源共享完毕后,需要将共享互斥寄存器的状态位回位成空闲状态。
[0103]下面以多核调频调压、RF公共资源、I2C总线为例对本实施例基于多核终端实现资源共享的方案进行详细阐述:
[0104]实例一、对于多核动态调频调压的应用场景:
[0105]首先需要设计一个由顶层的共享互斥寄存器,以利用该共享互斥寄存器实现多核共享公共资源。
[0106]该共享互斥寄存器为32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核进行调频调压时,首先会读取该共享互斥寄存器最低位,当读取的共享互斥寄存器的最低位为空闲时,则可以进行相应的频率和核电压设置,否则,需要等待该共孚互斥寄存器的最低位空闲为止。
[0107]当然,在具体进行频率,电压等设置时,需要依赖该共享互斥寄存器存放的信息作为调频调压的条件,才能最终进行调频调压的设置,当调频调压完成后,需要置该共享互斥寄存器的最低位为0,释放控制权,则对方可以使用。
[0108]具体地,设定多核终端中的两核分别为第一核和第二核,多核共享架构动态调核时钟和电压的实现流程如下:
[0109]I)、当第一核根据CPU负载或者应用场景方式等需要进行调频时,会先读取该共孕互斥寄存器最低位bit [O],当读到bit [O]为O时,表不该共孕互斥寄存器空闲,目如可以使用;否则无法使用该共享互斥寄存器;
[0110]2)、当读到bit[0]位为空闲后,硬件会自动将该位置I,表示现在该共享互斥寄存器已使用,此时禁止其它用户改写该共享互斥寄存器;
[0111]3)读取该共享互斥寄存器中bit [3-1],读出该第一核的当前频率,与预调核频率比较,根据比较结果设置当前核电压以及第一核的当前频率;
[0112]如果预调核频率大于该第一核当前频率,则走升频流程;否则,退出整个升频流程;走降频流程。[0113]在升频流程中,读取该共享互斥寄存器中的bit[5_4],获取当前核电压,以预调核电压和当前核电压作比较,如果预调核电压大于当前核电压,则走升压流程,否则退出升压流程。
[0114]当所述预调核电压大于所述当前核电压时,读取该共享互斥寄存器的bit[7_6],获取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;然后设置所述第一核的当前频率。
[0115]在降频流程中,所述预调核频率小于所述第一核的当前频率,首先设置所述第一核的当前频率;然后从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器的bit [7-6]读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
[0116]最后,将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器中对应位bit [5-4]、bit [3-1]、bit [9-8]。
[0117]此时,系统将该共享互斥寄存器bit [O]置为0,让出控制权。
[0118]对应多核共享架构动态调节系统总线频率的实现流程如下:
[0119]I)、当第一核根据CPU负载或者应用场景方式等需要进行调总线频率时,会先读该共孕互斥寄存器最低位bit[0],当读到为O时,表不该共孕互斥寄存器空闲,目如可以使用;否则无法使用该共享互斥寄存器。
[0120]2)、当读到bit[0]位为空闲后,硬件会自动将该位置I,表示现在该共享互斥寄存器已使用,此时禁止其它用户改写该寄存器;
[0121]3)、以动态降低系统总线频率为例,根据调频策略需要降频时,此时会读取该共享互斥寄存器中bit[13-ll],读出系统当前总线频率、第二核允许的最低系统总线频率;
[0122]读取该共享互斥寄存器的bit [16-14],获取第二核允许的最低系统总线频率,取MAX(预调核频率、系统当前总线频率、第二核允许的最低总线频率),设置系统当前总线频率。
[0123]将当前系统总线频率和当前第二核允许的最低系统总线频率分别写到该共享互斥寄存器中bit [13-11]和bit [19-17];之后,系统将该共享互斥寄存器bit [O]置为0,让出控制权。
[0124]实例二、对应多核使用RF公共资源的应用场景:
[0125]首先需要设计一个由顶层的共享互斥寄存器,以利用该共享互斥寄存器实现多核共享资源,该共享互斥寄存器是32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核需要操作RF资源时,首先会读取该共享互斥寄存器最低位,当读取的共享互斥寄存器最低位为空闲时,则可以进行相应的RF资源设操作和设置,否则,需要等待该位空闲为止。当然,具体进行RF资源操作时,需要依赖该共享互斥寄存器存放的信息作为是否能操作RF的条件,才能最终进行真正的RF的设置,当操作完成后,需要置该该共享互斥寄存器最低位为0,释放控制权,则对方可以使用。
[0126]具体地,多核共享RF公共资源使用的实现流程如下:
[0127]I)、当任何一个核在睡眠前去操作公共资源进入省电状态时,必须先读RF互斥共享寄存器状态位,必须一直等到bit [O]为0,此时去读RF互斥共享寄存器中对方核RF公共资源状态bit [I],如果为O,此时对应将RF公共资源置为省电状态,然后将当前状态置到RF互斥共享寄存器对应位中,最后配置RF互斥共享寄存器状态位bit [O]为O,释放控制权;
[0128]2)、当任何一个核在唤醒时需要必须先读RF互斥共享寄存器状态位,必须一直等到bit [O]为0,此时去读RF互斥共享寄存器中对方核RF公共资源状态bit [I],如果为0,此时对应将RF公共资源置为恢复到工作状态,然后将当前状态置到RF互斥共享寄存器对应位中,最后配置RF互斥共享寄存器状态位bit [O]为0,释放控制权。
[0129]实例三、对应多核使用公共I2C总线资源的应用场景:
[0130]首先需要设计一个由顶层的共享互斥寄存器,利用该共享互斥寄存器,该寄存器是32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核需要操作公共I2C资源时,首先会读取该共享互斥寄存器最低位,当读取为空闲时,则可以使用该公共I2C总线,否则,需要等待该位空闲为止。当操作完成后,需要置该该共享互斥寄存器最低位为O,释放控制权,则对方可以使用。
[0131]具体地,多核公共I2C总线资源使用的实现流程如下:
[0132]I)、当任何一个核去操作公共I2C总线资源,必须先读I2C总线互斥共享寄存器状态位,必须一直等到bit [O]为0,此时才能去操作该I2C总线资源;否则如果bit [O] —直为I,则不能操作该I2C总线;
[0133]2)、当任何一个核操作完该I2C总线,必须设置I2C总线互斥共享寄存器状态位bit[0]为1,释放控制权,这样其它核才能使用该公共资源。
[0134]本实施例通过上述方案,能够解决对多核共享架构/共享资源的分配和使用,不但能实际解决公共资源UART串口、RF资源等的使用,同时能解决多核DVFS调频调压实现方案,从而提高了终端的整体性能,其效果显著。比如解决多核共享架构进行动态调频调压,可以比较明显的改善系统的待机、通话、上网等场景下的功耗,延长用户对电池使用的时间。
[0135]在其他实施例中只要是利用共享互斥寄存器来实现对双核或者更多核共享架构/共享资源的使用,均可以基于本实施例的上述方案而扩展实施,在此不再赘述。
[0136]更为具体地,如图3所示,所述资源共享模块202包括:置位单元2021、读取单元2022、设置单元2023以及更新单元2024,其中:
[0137]若设定所述多核终端包括第一核和第二核,当所述第一核需要进行调频调压时,置位单元2021,用于将所述共享互斥寄存器的状态位置为非空闲状态;
[0138]读取单元2022,用于从所述共享互斥寄存器中读取所述第一核的当前频率,与预调核频率进行比较;
[0139]设置单元2023,用于根据比较结果设置当前核电压以及所述第一核的当前频率;
[0140]更新单元2024,用于将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器中对应位中。
[0141]进一步地,所述设置单元2023还用于当所述预调核频率大于所述第一核的当前频率时,从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;设置所述第一核的当前频率;当所述预调核频率小于所述第一核的当前频率时,设置所述第一核的当前频率;从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
[0142]当所述第一核需要调整系统总线频率时,所述读取单元2022还用于从所述共享互斥寄存器中读取系统当前总线频率、所述第二核允许的最低系统总线频率;
[0143]所述设置单元2023还用于比较预调核频率、所述系统当前总线频率以及第二核允许的最低系统总线频率;取其中最大者设置为系统当前总线频率;
[0144]所述更新单元2024还用于将所述系统当前总线频率、第二核允许的最低系统总线频率分别写入所述共享互斥寄存器中对应位中。
[0145]当所述多核终端共享RF公共资源时,所述读取单元2022还用于在所述多核终端中的任一核欲进入睡眠状态或在唤醒时,从所述共享互斥寄存器中读取对应的RF公共资源状态;
[0146]所述设置单元2023还用于在所述多核终端中的任一核欲进入睡眠状态且所述对应的RF公共资源状态为工作状态时,将所述对应的RF公共资源状态置为省电状态;或者,在所述多核终端中的任一核在唤醒时且所述对应的RF公共资源状态为省电状态时,将所述对应的RF公共资源状态恢复到工作状态;
[0147]所述更新单元2024还用于将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中。
[0148]所述置位单元2021还用于当资源共享完毕后,将所述共享互斥寄存器的状态位回位成空闲状态。
[0149]本发明实施例多核终端共享资源的方法及装置,针对目前多核的终端,存在多个共享资源时,利用共享互斥寄存器来达到保护和协调共享资源的使用,在多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;当共享互斥寄存器的状态位为空闲时,依据共享互斥寄存器存储的信息设置相应参数进行资源共享,由此协调了各核对共享资源的分配,提高了公共资源的利用率,同时提高了终端系统整体性能。
[0150]以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1.一种多核终端共享资源的方法,其特征在于,包括: 当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位; 当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
2.根据权利要求1所述的方法,其特征在于,所述共享资源至少包括以下之一:多核调频调压、RF公共资源、I2C总线以及UART串口。
3.根据权利要求1所述的方法,其特征在于,所述多核终端包括第一核和第二核,当所述第一核需要进行调频调压时,所述依据共享互斥寄存器存储的信息设置相应参数进行资源共享的步骤包括: 将所述共享互斥寄存器的状态位置为非空闲状态; 从所述共享互斥寄存器中读取所述第一核的当前频率,与预调核频率进行比较; 根据比较结果设置当前核电压以及所述第一核的当前频率; 将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器对应位中。
4.根据权利要求3所述的方法,其特征在于,所述根据比较结果设置当前核电压以及所述第一核的当前频率的步骤包括: 当所述预调核频率大于所述第一核的当前频率时,从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较; 当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;设置所述第一核的当前频率; 当所述预调核频率小于所述第一核的当前频率时,设置所述第一核的当前频率;从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
5.根据权利要求1所述的方法,其特征在于,所述多核终端包括第一核和第二核,当所述第一核需要调整系统总线频率时,所述依据共享互斥寄存器存储的信息设置相应参数进行资源共享的步骤包括: 将所述共享互斥寄存器的状态位置为非空闲状态; 从所述共享互斥寄存器中读取系统当前总线频率、所述第二核允许的最低系统总线频率; 比较预调核频率、所述系统当前总线频率以及第二核允许的最低系统总线频率;取其中最大者设置为系统当前总线频率; 将所述系统当前总线频率、第二核允许的最低系统总线频率分别写入所述共享互斥寄存器对应位中。
6.根据权利要求1所述的方法,其特征在于,当所述多核终端共享RF公共资源时,所述依据共享互斥寄存器存储的信息设置相应参数进行资源共享的步骤包括: 当所述多核终端中的任一核欲进入睡眠状态时,从所述共享互斥寄存器中读取对应的RF公共资源状态;若所述对应的RF公共资源状态为工作状态,则将所述对应的RF公共资源状态置为省电状态,并将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中; 当所述多核终端中的任一核在唤醒时,从所述共享互斥寄存器中读取对应的RF公共资源状态;若所述对应的RF公共资源状态为省电状态,则将所述对应的RF公共资源状态恢复到工作状态,并将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中。
7.根据权利要求3-6中任一项所述的方法,其特征在于,还包括: 当资源共享完毕后,将所述共享互斥寄存器的状态位回位成空闲状态。
8.一种多核终端共享资源的装置,其特征在于,包括: 状态位读取模块,用于当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位; 资源共享模块,用于当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
9.根据权利要求8所述的装置,其特征在于,所述共享资源至少包括以下之一:多核调频调压、RF公共资源、I2C总线以及UART串口。
10.根据权利要求8所述的装置,其特征在于,所述多核终端包括第一核和第二核,当所述第一核需要进行调频调压时,所述资源共享模块包括: 置位单元,用于将所述共享互斥寄存器的状态位置为非空闲状态; 读取单元,用于从所述共享互斥寄存器中读取所述第一核的当前频率,与预调核频率进行比较;` 设置单元,用于根据比较结果设置当前核电压以及所述第一核的当前频率; 更新单元,用于将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器对应位中。
11.根据权利要求10所述的装置,其特征在于,所述设置单元还用于当所述预调核频率大于所述第一核的当前频率时,从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;设置所述第一核的当前频率;当所述预调核频率小于所述第一核的当前频率时,设置所述第一核的当前频率;从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
12.根据权利要求10所述的装置,其特征在于,当所述第一核需要调整系统总线频率时,所述读取单元,还用于从所述共享互斥寄存器中读取系统当前总线频率、所述第二核允许的最低系统总线频率; 所述设置单元,还用于比较预调核频率、所述系统当前总线频率以及第二核允许的最低系统总线频率;取其中最大者设置为系统当前总线频率; 所述更新单元,还用于将所述系统当前总线频率、第二核允许的最低系统总线频率分别写入所述共享互斥寄存器对应位中。
13.根据权利要求10所述的装置,其特征在于,当所述多核终端共享RF公共资源时, 所述读取单元,还用于在所述多核终端中的任一核欲进入睡眠状态或在唤醒时,从所述共享互斥寄存器中读取对应的RF公共资源状态; 所述设置单元,还用于在所述多核终端中的任一核欲进入睡眠状态且所述对应的RF公共资源状态为工作状态时,将所述对应的RF公共资源状态置为省电状态;或者,在所述多核终端中的任一核在唤醒时且所述对应的RF公共资源状态为省电状态时,将所述对应的RF公共资源状态恢复到工作状态; 所述更新单元,还用于将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中。
14.根据权利要求10-13中任一项所述的装置,其特征在于,所述置位单元还用于当资源共享完毕后,将所述共享`互斥寄存器的状态位回位成空闲状态。
【文档编号】G06F9/50GK103778014SQ201210413307
【公开日】2014年5月7日 申请日期:2012年10月25日 优先权日:2012年10月25日
【发明者】张映俊, 丁克忠, 吴敏锋 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1