CN103778014A - 多核终端共享资源的方法及装置 - Google Patents
多核终端共享资源的方法及装置 Download PDFInfo
- Publication number
- CN103778014A CN103778014A CN201210413307.5A CN201210413307A CN103778014A CN 103778014 A CN103778014 A CN 103778014A CN 201210413307 A CN201210413307 A CN 201210413307A CN 103778014 A CN103778014 A CN 103778014A
- Authority
- CN
- China
- Prior art keywords
- core
- mutual exclusion
- current
- frequency
- shared
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Telephone Function (AREA)
Abstract
本发明涉及一种多核终端共享资源的方法及装置,其方法包括:当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;当共享互斥寄存器的状态位为空闲时,依据共享互斥寄存器存储的信息设置相应参数进行资源共享。本发明针对目前多核的终端,存在多个共享资源时,利用共享互斥寄存器来达到保护和协调共享资源的使用,由此协调了各核对共享资源的分配,提高了公共资源的利用率,同时提高了终端系统整体性能。
Description
技术领域
本发明涉及移动通信技术领域,尤其涉及一种多核终端共享资源的方法及装置。
背景技术
随着系统集成技术和无线通信技术的快速发展,尤其是无线通信系统中, 多核智能机终端的大量出现,导致各CPU核在操作很多公共资源时出现冲突。例如,当某一个CPU核需要调整系统总线频率或核电压时,会影响其它核的性能,若各CPU核同时进行调频调压,则会产生冲突;又如,当某一个CPU核需要操作公共RF(射频)资源时,会影响其它核的功能,若各CPU核同时操作公共RF资源,同样会造成资源使用冲突,对于其他公共资源的使用,同样存在冲突问题。
发明内容
本发明的主要目的在于提供一种多核终端共享资源的方法及装置,旨在实现公共资源的保护与协调使用。
为了达到上述目的,本发明提出一种多核终端共享资源的方法,包括:
当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;
当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
优选地,所述共享资源至少包括以下之一:多核调频调压、RF公共资源、I2C总线以及UART串口。
优选地,所述多核终端包括第一核和第二核,当所述第一核需要进行调频调压时,所述依据共享互斥寄存器存储的信息设置相应参数进行资源共享的步骤包括:
将所述共享互斥寄存器的状态位置为非空闲状态;
从所述共享互斥寄存器中读取所述第一核的当前频率,与预调核频率进行比较;
根据比较结果设置当前核电压以及所述第一核的当前频率;
将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器对应位中。
优选地,所述根据比较结果设置当前核电压以及所述第一核的当前频率的步骤包括:
当所述预调核频率大于所述第一核的当前频率时,从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;
当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;设置所述第一核的当前频率;
当所述预调核频率小于所述第一核的当前频率时,设置所述第一核的当前频率;从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
优选地,所述多核终端包括第一核和第二核,当所述第一核需要调整系统总线频率时,所述依据共享互斥寄存器存储的信息设置相应参数进行资源共享的步骤包括:
将所述共享互斥寄存器的状态位置为非空闲状态;
从所述共享互斥寄存器中读取系统当前总线频率、所述第二核允许的最低系统总线频率;
比较预调核频率、所述系统当前总线频率以及第二核允许的最低系统总线频率;取其中最大者设置为系统当前总线频率;
将所述系统当前总线频率、第二核允许的最低系统总线频率分别写入所述共享互斥寄存器对应位中。
优选地,当所述多核终端共享RF公共资源时,所述依据共享互斥寄存器存储的信息设置相应参数进行资源共享的步骤包括:
当所述多核终端中的任一核欲进入睡眠状态时,从所述共享互斥寄存器中读取对应的RF公共资源状态;若所述对应的RF公共资源状态为工作状态,则将所述对应的RF公共资源状态置为省电状态,并将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中;
当所述多核终端中的任一核在唤醒时,从所述共享互斥寄存器中读取对应的RF公共资源状态;若所述对应的RF公共资源状态为省电状态,则将所述对应的RF公共资源状态恢复到工作状态,并将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中。
优选地,该方法还包括:
当资源共享完毕后,将所述共享互斥寄存器的状态位回位成空闲状态。
本发明还提出一种多核终端共享资源的装置,包括:
状态位读取模块,用于当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;
资源共享模块,用于当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
优选地,所述共享资源至少包括以下之一:多核调频调压、RF公共资源、I2C总线以及UART串口。
优选地,所述多核终端包括第一核和第二核,当所述第一核需要进行调频调压时,所述资源共享模块包括:
置位单元,用于将所述共享互斥寄存器的状态位置为非空闲状态;
读取单元,用于从所述共享互斥寄存器中读取所述第一核的当前频率,与预调核频率进行比较;
设置单元,用于根据比较结果设置当前核电压以及所述第一核的当前频率;
更新单元,用于将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器对应位中。
优选地,所述设置单元还用于当所述预调核频率大于所述第一核的当前频率时,从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;设置所述第一核的当前频率;当所述预调核频率小于所述第一核的当前频率时,设置所述第一核的当前频率;从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
优选地,当所述第一核需要调整系统总线频率时,所述读取单元,还用于从所述共享互斥寄存器中读取系统当前总线频率、所述第二核允许的最低系统总线频率;
所述设置单元,还用于比较预调核频率、所述系统当前总线频率以及第二核允许的最低系统总线频率;取其中最大者设置为系统当前总线频率;
所述更新单元,还用于将所述系统当前总线频率、第二核允许的最低系统总线频率分别写入所述共享互斥寄存器对应位中。
优选地,当所述多核终端共享RF公共资源时,
所述读取单元,还用于在所述多核终端中的任一核欲进入睡眠状态或在唤醒时,从所述共享互斥寄存器中读取对应的RF公共资源状态;
所述设置单元,还用于在所述多核终端中的任一核欲进入睡眠状态且所述对应的RF公共资源状态为工作状态时,将所述对应的RF公共资源状态置为省电状态;或者,在所述多核终端中的任一核在唤醒时且所述对应的RF公共资源状态为省电状态时,将所述对应的RF公共资源状态恢复到工作状态;
所述更新单元,还用于将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中。
优选地,所述置位单元还用于当资源共享完毕后,将所述共享互斥寄存器的状态位回位成空闲状态。
本发明提出的一种多核终端共享资源的方法及装置,针对目前多核的终端,存在多个共享资源时,利用共享互斥寄存器来达到保护和协调共享资源的使用,在多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;当共享互斥寄存器的状态位为空闲时,依据共享互斥寄存器存储的信息设置相应参数进行资源共享,由此协调了各核对共享资源的分配,提高了公共资源的利用率,同时提高了终端系统整体性能。
附图说明
图1是本发明多核终端共享资源的方法一实施例的流程示意图;
图2 是本发明多核终端共享资源的装置一实施例的结构示意图;
图3是本发明多核终端共享资源的装置一实施例中资源共享模块的结构示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
本发明实施例的解决方案主要是:针对目前多核的终端,存在多个共享资源时,利用共享互斥寄存器来达到保护和协调共享资源的使用。
本发明中多核终端指包含两个或两个以上CPU核(以下简称核)的终端,以下各实施例以目前双核共享架构的终端为例进行说明。
如图1所示,本发明一实施例提出一种多核终端共享资源的方法,包括:
步骤S101,当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;
其中,共享资源指的是各个核都能访问和操作的资源,包括总线、内存以及外设等,具体包括但不限于多核调频调压、RF公共资源、I2C总线以及UART串口等。
当多核终端中的某一个核需要操作系统总线频率或核电压、RF资源、公共I2C总线等公共资源时,都会影响其它核的性能,所以当任何一个核动态操作公共资源时都需要结合对方参数和要求进行调整,此外,还需要避免双方同时操作资源造成的冲突问题。
本实施例利用共享互斥寄存器来达到保护和协调共享资源的使用,以保证各核能正常使用共享资源。
首先需要设计一个由顶层的共享互斥寄存器,该共享互斥寄存器为32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。
当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位,以便根据该共享互斥寄存器的状态位设置相应的参数。
步骤S102,当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
判断所述共享互斥寄存器的状态位是否空闲,当所述共享互斥寄存器的状态位未空闲时,表示对方核对共享资源具有控制权,当前核无法使用资源;当所述共享互斥寄存器的状态位为空闲时,则可以依赖该共享互斥寄存器存放的信息调节相应的参数,以实现资源共享。其中,在设置参数时,需要将共享互斥寄存器的状态位设置为非空闲状态,当资源共享完毕后,需要将共享互斥寄存器的状态位回位成空闲状态。
下面以多核调频调压、RF公共资源、I2C总线为例对本实施例基于多核终端实现资源共享的方案进行详细阐述:
实例一、对于多核动态调频调压的应用场景:
首先需要设计一个由顶层的共享互斥寄存器,以利用该共享互斥寄存器实现多核共享公共资源。
该共享互斥寄存器为32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核进行调频调压时,首先会读取该共享互斥寄存器最低位,当读取的共享互斥寄存器的最低位为空闲时,则可以进行相应的频率和核电压设置,否则,需要等待该共享互斥寄存器的最低位空闲为止。
当然,在具体进行频率,电压等设置时,需要依赖该共享互斥寄存器存放的信息作为调频调压的条件,才能最终进行调频调压的设置,当调频调压完成后,需要置该共享互斥寄存器的最低位为0,释放控制权,则对方可以使用。
具体地,设定多核终端中的两核分别为第一核和第二核,多核共享架构动态调核时钟和电压的实现流程如下:
1)、当第一核根据CPU负载或者应用场景方式等需要进行调频时,会先读取该共享互斥寄存器最低位bit[0],当读到bit[0]为0时,表示该共享互斥寄存器空闲,目前可以使用;否则无法使用该共享互斥寄存器;
2)、当读到bit[0]位为空闲后,硬件会自动将该位置1,表示现在该共享互斥寄存器已使用,此时禁止其它用户改写该共享互斥寄存器;
3)读取该共享互斥寄存器中bit[3-1],读出该第一核的当前频率,与预调核频率比较,根据比较结果设置当前核电压以及第一核的当前频率;
如果预调核频率大于该第一核当前频率,则走升频流程;否则,退出整个升频流程;走降频流程。
在升频流程中,读取该共享互斥寄存器中的bit[5-4], 获取当前核电压,以预调核电压和当前核电压作比较,如果预调核电压大于当前核电压,则走升压流程,否则退出升压流程。
当所述预调核电压大于所述当前核电压时,读取该共享互斥寄存器的bit[7-6],获取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;然后设置所述第一核的当前频率。
在降频流程中,所述预调核频率小于所述第一核的当前频率,首先设置所述第一核的当前频率;然后从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器的bit[7-6]读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
最后,将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器中对应位bit[5-4]、bit[3-1]、bit[9-8]。
此时,系统将该共享互斥寄存器bit[0]置为0,让出控制权。
对应多核共享架构动态调节系统总线频率的实现流程如下:
1)、当第一核根据CPU负载或者应用场景方式等需要进行调总线频率时,会先读该共享互斥寄存器最低位bit[0],当读到为0时,表示该共享互斥寄存器空闲,目前可以使用;否则无法使用该共享互斥寄存器。
2)、当读到bit[0]位为空闲后,硬件会自动将该位置1,表示现在该共享互斥寄存器已使用,此时禁止其它用户改写该寄存器;
3)、以动态降低系统总线频率为例,根据调频策略需要降频时,此时会读取该共享互斥寄存器中bit[13-11],读出系统当前总线频率、第二核允许的最低系统总线频率;
读取该共享互斥寄存器的bit[16-14],获取第二核允许的最低系统总线频率,取MAX(预调核频率、系统当前总线频率、第二核允许的最低总线频率) ,设置系统当前总线频率。
将当前系统总线频率和当前第二核允许的最低系统总线频率分别写到该共享互斥寄存器中bit[13-11]和bit[19-17];之后,系统将该共享互斥寄存器bit[0]置为0,让出控制权。
实例二、对应多核使用RF公共资源的应用场景:
首先需要设计一个由顶层的共享互斥寄存器,以利用该共享互斥寄存器实现多核共享资源,该共享互斥寄存器是32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核需要操作RF资源时,首先会读取该共享互斥寄存器最低位,当读取的共享互斥寄存器最低位为空闲时,则可以进行相应的RF资源设操作和设置,否则,需要等待该位空闲为止。当然,具体进行RF资源操作时,需要依赖该共享互斥寄存器存放的信息作为是否能操作RF的条件,才能最终进行真正的RF的设置,当操作完成后,需要置该该共享互斥寄存器最低位为0,释放控制权,则对方可以使用。
具体地,多核共享RF公共资源使用的实现流程如下:
1)、当任何一个核在睡眠前去操作公共资源进入省电状态时,必须先读RF互斥共享寄存器状态位,必须一直等到bit[0]为0,此时去读RF互斥共享寄存器中对方核RF公共资源状态bit[1],如果为0,此时对应将RF公共资源置为省电状态,然后将当前状态置到 RF互斥共享寄存器对应位中,最后配置RF互斥共享寄存器状态位bit[0]为0,释放控制权;
2)、当任何一个核在唤醒时需要必须先读RF互斥共享寄存器状态位,必须一直等到bit[0]为0,此时去读RF互斥共享寄存器中对方核RF公共资源状态bit[1],如果为0,此时对应将RF公共资源置为恢复到工作状态,然后将当前状态置到 RF互斥共享寄存器对应位中,最后配置RF互斥共享寄存器状态位bit[0]为0,释放控制权。
实例三、对应多核使用公共I2C总线资源的应用场景:
首先需要设计一个由顶层的共享互斥寄存器,利用该共享互斥寄存器, 该寄存器是32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核需要操作公共I2C资源时,首先会读取该共享互斥寄存器最低位,当读取为空闲时,则可以使用该公共I2C总线,否则,需要等待该位空闲为止。当操作完成后,需要置该该共享互斥寄存器最低位为0,释放控制权,则对方可以使用。
具体地,多核公共I2C总线资源使用的实现流程如下:
1)、当任何一个核去操作公共I2C总线资源,必须先读I2C总线互斥共享寄存器状态位,必须一直等到bit[0]为0,此时才能去操作该I2C总线资源;否则如果bit[0]一直为1,则不能操作该 I2C总线;
2)、当任何一个核操作完该I2C总线,必须设置I2C总线互斥共享寄存器状态位 bit[0]为1,释放控制权,这样其它核才能使用该公共资源。
本实施例通过上述方案,能够解决对多核共享架构/共享资源的分配和使用,不但能实际解决公共资源UART串口、RF资源等的使用,同时能解决多核DVFS调频调压实现方案,从而提高了终端的整体性能,其效果显著。比如解决多核共享架构进行动态调频调压,可以比较明显的改善系统的待机、通话、上网等场景下的功耗,延长用户对电池使用的时间。
在其他实施例中只要是利用共享互斥寄存器来实现对双核或者更多核共享架构/共享资源的使用,均可以基于本实施例的上述方案而扩展实施,在此不再赘述。
如图2所示,本发明一实施例提出一种多核终端共享资源的装置,包括:状态位读取模块201及资源共享模块202,其中:
状态位读取模块201,用于当多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;
资源共享模块202,用于当所述共享互斥寄存器的状态位为空闲时,依据所述共享互斥寄存器存储的信息设置相应参数进行资源共享。
其中,共享资源指的是各个核都能访问和操作的资源,包括总线、内存以及外设等,具体包括但不限于多核调频调压、RF公共资源、I2C总线以及UART串口等。
当多核终端中的某一个核需要操作系统总线频率或核电压、RF资源、公共I2C总线等公共资源时,都会影响其它核的性能,所以当任何一个核动态操作公共资源时都需要结合对方参数和要求进行调整,此外,还需要避免双方同时操作资源造成的冲突问题。
本实施例利用共享互斥寄存器来达到保护和协调共享资源的使用,以保证各核能正常使用共享资源。
首先需要设计一个由顶层的共享互斥寄存器,该共享互斥寄存器为32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。
当多核终端中的其中一核需要共享资源时,通过状态位读取模块201读取共享互斥寄存器的状态位,以便资源共享模块202根据该共享互斥寄存器的状态位设置相应的参数。
资源共享模块202首先判断所述共享互斥寄存器的状态位是否空闲,当所述共享互斥寄存器的状态位未空闲时,表示对方核对共享资源具有控制权,当前核无法使用资源;当所述共享互斥寄存器的状态位为空闲时,则可以依赖该共享互斥寄存器存放的信息调节相应的参数,以实现资源共享。其中,在设置参数时,需要将共享互斥寄存器的状态位设置为非空闲状态,当资源共享完毕后,需要将共享互斥寄存器的状态位回位成空闲状态。
下面以多核调频调压、RF公共资源、I2C总线为例对本实施例基于多核终端实现资源共享的方案进行详细阐述:
实例一、对于多核动态调频调压的应用场景:
首先需要设计一个由顶层的共享互斥寄存器,以利用该共享互斥寄存器实现多核共享公共资源。
该共享互斥寄存器为32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核进行调频调压时,首先会读取该共享互斥寄存器最低位,当读取的共享互斥寄存器的最低位为空闲时,则可以进行相应的频率和核电压设置,否则,需要等待该共享互斥寄存器的最低位空闲为止。
当然,在具体进行频率,电压等设置时,需要依赖该共享互斥寄存器存放的信息作为调频调压的条件,才能最终进行调频调压的设置,当调频调压完成后,需要置该共享互斥寄存器的最低位为0,释放控制权,则对方可以使用。
具体地,设定多核终端中的两核分别为第一核和第二核,多核共享架构动态调核时钟和电压的实现流程如下:
1)、当第一核根据CPU负载或者应用场景方式等需要进行调频时,会先读取该共享互斥寄存器最低位bit[0],当读到bit[0]为0时,表示该共享互斥寄存器空闲,目前可以使用;否则无法使用该共享互斥寄存器;
2)、当读到bit[0]位为空闲后,硬件会自动将该位置1,表示现在该共享互斥寄存器已使用,此时禁止其它用户改写该共享互斥寄存器;
3)读取该共享互斥寄存器中bit[3-1],读出该第一核的当前频率,与预调核频率比较,根据比较结果设置当前核电压以及第一核的当前频率;
如果预调核频率大于该第一核当前频率,则走升频流程;否则,退出整个升频流程;走降频流程。
在升频流程中,读取该共享互斥寄存器中的bit[5-4], 获取当前核电压,以预调核电压和当前核电压作比较,如果预调核电压大于当前核电压,则走升压流程,否则退出升压流程。
当所述预调核电压大于所述当前核电压时,读取该共享互斥寄存器的bit[7-6],获取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;然后设置所述第一核的当前频率。
在降频流程中,所述预调核频率小于所述第一核的当前频率,首先设置所述第一核的当前频率;然后从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器的bit[7-6]读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
最后,将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器中对应位bit[5-4]、bit[3-1]、bit[9-8]。
此时,系统将该共享互斥寄存器bit[0]置为0,让出控制权。
对应多核共享架构动态调节系统总线频率的实现流程如下:
1)、当第一核根据CPU负载或者应用场景方式等需要进行调总线频率时,会先读该共享互斥寄存器最低位bit[0],当读到为0时,表示该共享互斥寄存器空闲,目前可以使用;否则无法使用该共享互斥寄存器。
2)、当读到bit[0]位为空闲后,硬件会自动将该位置1,表示现在该共享互斥寄存器已使用,此时禁止其它用户改写该寄存器;
3)、以动态降低系统总线频率为例,根据调频策略需要降频时,此时会读取该共享互斥寄存器中bit[13-11],读出系统当前总线频率、第二核允许的最低系统总线频率;
读取该共享互斥寄存器的bit[16-14],获取第二核允许的最低系统总线频率,取MAX(预调核频率、系统当前总线频率、第二核允许的最低总线频率) ,设置系统当前总线频率。
将当前系统总线频率和当前第二核允许的最低系统总线频率分别写到该共享互斥寄存器中bit[13-11]和bit[19-17];之后,系统将该共享互斥寄存器bit[0]置为0,让出控制权。
实例二、对应多核使用RF公共资源的应用场景:
首先需要设计一个由顶层的共享互斥寄存器,以利用该共享互斥寄存器实现多核共享资源,该共享互斥寄存器是32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核需要操作RF资源时,首先会读取该共享互斥寄存器最低位,当读取的共享互斥寄存器最低位为空闲时,则可以进行相应的RF资源设操作和设置,否则,需要等待该位空闲为止。当然,具体进行RF资源操作时,需要依赖该共享互斥寄存器存放的信息作为是否能操作RF的条件,才能最终进行真正的RF的设置,当操作完成后,需要置该该共享互斥寄存器最低位为0,释放控制权,则对方可以使用。
具体地,多核共享RF公共资源使用的实现流程如下:
1)、当任何一个核在睡眠前去操作公共资源进入省电状态时,必须先读RF互斥共享寄存器状态位,必须一直等到bit[0]为0,此时去读RF互斥共享寄存器中对方核RF公共资源状态bit[1],如果为0,此时对应将RF公共资源置为省电状态,然后将当前状态置到 RF互斥共享寄存器对应位中,最后配置RF互斥共享寄存器状态位bit[0]为0,释放控制权;
2)、当任何一个核在唤醒时需要必须先读RF互斥共享寄存器状态位,必须一直等到bit[0]为0,此时去读RF互斥共享寄存器中对方核RF公共资源状态bit[1],如果为0,此时对应将RF公共资源置为恢复到工作状态,然后将当前状态置到 RF互斥共享寄存器对应位中,最后配置RF互斥共享寄存器状态位bit[0]为0,释放控制权。
实例三、对应多核使用公共I2C总线资源的应用场景:
首先需要设计一个由顶层的共享互斥寄存器,利用该共享互斥寄存器, 该寄存器是32位寄存器,最低位表示状态位,其它31位可以给双核各自使用。当其中某一核需要操作公共I2C资源时,首先会读取该共享互斥寄存器最低位,当读取为空闲时,则可以使用该公共I2C总线,否则,需要等待该位空闲为止。当操作完成后,需要置该该共享互斥寄存器最低位为0,释放控制权,则对方可以使用。
具体地,多核公共I2C总线资源使用的实现流程如下:
1)、当任何一个核去操作公共I2C总线资源,必须先读I2C总线互斥共享寄存器状态位,必须一直等到bit[0]为0,此时才能去操作该I2C总线资源;否则如果bit[0]一直为1,则不能操作该 I2C总线;
2)、当任何一个核操作完该I2C总线,必须设置I2C总线互斥共享寄存器状态位 bit[0]为1,释放控制权,这样其它核才能使用该公共资源。
本实施例通过上述方案,能够解决对多核共享架构/共享资源的分配和使用,不但能实际解决公共资源UART串口、RF资源等的使用,同时能解决多核DVFS调频调压实现方案,从而提高了终端的整体性能,其效果显著。比如解决多核共享架构进行动态调频调压,可以比较明显的改善系统的待机、通话、上网等场景下的功耗,延长用户对电池使用的时间。
在其他实施例中只要是利用共享互斥寄存器来实现对双核或者更多核共享架构/共享资源的使用,均可以基于本实施例的上述方案而扩展实施,在此不再赘述。
更为具体地,如图3所示,所述资源共享模块202包括:置位单元2021、读取单元2022、设置单元2023以及更新单元2024,其中:
若设定所述多核终端包括第一核和第二核,当所述第一核需要进行调频调压时,置位单元2021,用于将所述共享互斥寄存器的状态位置为非空闲状态;
读取单元2022,用于从所述共享互斥寄存器中读取所述第一核的当前频率,与预调核频率进行比较;
设置单元2023,用于根据比较结果设置当前核电压以及所述第一核的当前频率;
更新单元2024,用于将所述当前核电压、所述第一核的当前频率以及所述第一核允许的最小核电压分别写入所述共享互斥寄存器中对应位中。
进一步地,所述设置单元2023还用于当所述预调核频率大于所述第一核的当前频率时,从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压;设置所述第一核的当前频率;当所述预调核频率小于所述第一核的当前频率时,设置所述第一核的当前频率;从所述共享互斥寄存器读取当前核电压,与预调核电压进行比较;当所述预调核电压大于所述当前核电压时,从所述共享互斥寄存器读取所述第二核允许的核电压;取所述预调核电压及第二核允许的核电压中的较大者设置为当前核电压。
当所述第一核需要调整系统总线频率时,所述读取单元2022还用于从所述共享互斥寄存器中读取系统当前总线频率、所述第二核允许的最低系统总线频率;
所述设置单元2023还用于比较预调核频率、所述系统当前总线频率以及第二核允许的最低系统总线频率;取其中最大者设置为系统当前总线频率;
所述更新单元2024还用于将所述系统当前总线频率、第二核允许的最低系统总线频率分别写入所述共享互斥寄存器中对应位中。
当所述多核终端共享RF公共资源时,所述读取单元2022还用于在所述多核终端中的任一核欲进入睡眠状态或在唤醒时,从所述共享互斥寄存器中读取对应的RF公共资源状态;
所述设置单元2023还用于在所述多核终端中的任一核欲进入睡眠状态且所述对应的RF公共资源状态为工作状态时,将所述对应的RF公共资源状态置为省电状态;或者,在所述多核终端中的任一核在唤醒时且所述对应的RF公共资源状态为省电状态时,将所述对应的RF公共资源状态恢复到工作状态;
所述更新单元2024还用于将所述RF公共资源的当前状态写入所述互斥共享寄存器对应位中。
所述置位单元2021还用于当资源共享完毕后,将所述共享互斥寄存器的状态位回位成空闲状态。
本发明实施例多核终端共享资源的方法及装置,针对目前多核的终端,存在多个共享资源时,利用共享互斥寄存器来达到保护和协调共享资源的使用,在多核终端中的其中一核需要共享资源时,读取共享互斥寄存器的状态位;当共享互斥寄存器的状态位为空闲时,依据共享互斥寄存器存储的信息设置相应参数进行资源共享,由此协调了各核对共享资源的分配,提高了公共资源的利用率,同时提高了终端系统整体性能。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (14)
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中任一项所述的装置,其特征在于,所述置位单元还用于当资源共享完毕后,将所述共享互斥寄存器的状态位回位成空闲状态。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210413307.5A CN103778014B (zh) | 2012-10-25 | 多核终端共享资源的方法及装置 | |
PCT/CN2013/078108 WO2013182098A1 (zh) | 2012-10-25 | 2013-06-27 | 多核终端共享资源的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210413307.5A CN103778014B (zh) | 2012-10-25 | 多核终端共享资源的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103778014A true CN103778014A (zh) | 2014-05-07 |
CN103778014B CN103778014B (zh) | 2018-06-01 |
Family
ID=
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107209690A (zh) * | 2015-03-25 | 2017-09-26 | 英特尔公司 | 共享资源访问控制方法和装置 |
CN107393594A (zh) * | 2017-07-27 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种多核固态硬盘调试方法及系统 |
WO2021035798A1 (zh) * | 2019-08-27 | 2021-03-04 | 江苏华存电子科技有限公司 | 一种在多核场景中自动切换外送数据的uart主控系统 |
CN113821834A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 数据处理方法、安全架构系统和计算设备 |
US11755785B2 (en) | 2020-08-03 | 2023-09-12 | Nxp Usa, Inc. | System and method of limiting access of processors to hardware resources |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004988A1 (en) * | 2004-06-30 | 2006-01-05 | Jordan Paul J | Single bit control of threads in a multithreaded multicore processor |
CN1758229A (zh) * | 2005-10-28 | 2006-04-12 | 中国人民解放军国防科学技术大学 | 异构多核微处理器局部空间共享存储方法 |
CN101510191A (zh) * | 2009-03-26 | 2009-08-19 | 浙江大学 | 具备缓存窗口的多核体系架构及其实现方法 |
CN102521207A (zh) * | 2010-12-22 | 2012-06-27 | 威盛电子股份有限公司 | 多内核微处理器的共享电源的分布式管理 |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004988A1 (en) * | 2004-06-30 | 2006-01-05 | Jordan Paul J | Single bit control of threads in a multithreaded multicore processor |
CN1758229A (zh) * | 2005-10-28 | 2006-04-12 | 中国人民解放军国防科学技术大学 | 异构多核微处理器局部空间共享存储方法 |
CN101510191A (zh) * | 2009-03-26 | 2009-08-19 | 浙江大学 | 具备缓存窗口的多核体系架构及其实现方法 |
CN102521207A (zh) * | 2010-12-22 | 2012-06-27 | 威盛电子股份有限公司 | 多内核微处理器的共享电源的分布式管理 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107209690A (zh) * | 2015-03-25 | 2017-09-26 | 英特尔公司 | 共享资源访问控制方法和装置 |
CN107393594A (zh) * | 2017-07-27 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种多核固态硬盘调试方法及系统 |
WO2021035798A1 (zh) * | 2019-08-27 | 2021-03-04 | 江苏华存电子科技有限公司 | 一种在多核场景中自动切换外送数据的uart主控系统 |
US11755785B2 (en) | 2020-08-03 | 2023-09-12 | Nxp Usa, Inc. | System and method of limiting access of processors to hardware resources |
CN113821834A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 数据处理方法、安全架构系统和计算设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2013182098A1 (zh) | 2013-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866921B (zh) | 一种多核cpu的调控方法及系统 | |
CN1993669B (zh) | 多核处理器内的电源管理协调 | |
CN104204999B (zh) | 用于个体核性能状态的方法和装置 | |
CN103092701A (zh) | 一种通信方法、装置及电子设备 | |
CN104635908A (zh) | 一种降低移动终端的耗电量的方法及装置 | |
CN206358095U (zh) | 一种新能源汽车电子vcu模块的低功耗休眠电路 | |
CN113253648A (zh) | 车辆及其网络管理方法、域控制器、存储介质和电子设备 | |
CN102681649B (zh) | 一种多智能设备延长电池续航能力的装置及方法 | |
CN103312901A (zh) | 一种带有屏幕的移动终端的节电方法和装置 | |
JP2014026648A (ja) | ハイスピードインターチップhsicインタフェースに基づくウェイクアップ方法、ホットスワップ方法、およびデバイス | |
CN109278676A (zh) | 一种车辆控制器上下电控制方法及系统、存储介质及终端 | |
CN103037109A (zh) | 多核设备能耗管理方法及装置 | |
CN104142907A (zh) | 增强型处理器、处理方法和电子设备 | |
CN104978233A (zh) | 动态使用内存的方法与装置 | |
CN105320244A (zh) | 使用动态时钟频率的输入-输出设备管理 | |
CN103051793B (zh) | 一种移动终端控制数据传输模式的方法及装置 | |
CN104204988A (zh) | 活动显示的处理器睡眠状态 | |
CN103778014A (zh) | 多核终端共享资源的方法及装置 | |
CN103440031A (zh) | 一种移动终端关屏自动优化的省电系统及方法 | |
CN103778014B (zh) | 多核终端共享资源的方法及装置 | |
CN204425380U (zh) | 一种无线路由器 | |
CN106330641A (zh) | 一种超低功耗can网络通讯方法 | |
CN104424142A (zh) | 一种多核处理器系统中访问共享资源的方法与装置 | |
CN102478952B (zh) | 具有待机模式的电子装置及其操作方法 | |
CN113891439A (zh) | 小区节能方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |