Cpu二级缓存的加速初始化方法

文档序号:6510893阅读:1285来源:国知局
Cpu二级缓存的加速初始化方法
【专利摘要】本发明公开了一种CPU二级缓存的加速初始化方法,包括以下步骤:1)初始化每个CPU核心的mailbox寄存器;2)CPU主核将二级缓存划分为n段,n为CPU核心数量;3)主核向每个从核发送初始化一段二级缓存命令,从核读取初始化命令;4)主核和从核完成各自的二级缓存初始化,从核初始化完成后通知主核;5)所有核心完成各自的二级缓存初始化后初始化任务完成。本发明通过多个核来协同完成任务,从而加快任务完成的速度,减少初始化二级缓存所花费的时间,同时加快了BIOS的启动速度。
【专利说明】CPU 二级缓存的加速初始化方法
【技术领域】
[0001]本发明涉及一种CPU缓存的初始化方法,特别是涉及一种CPU 二级缓存的加速初始化方法。
【背景技术】
[0002]CPU缓存(Cache Memory)位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。而二级缓存则是介于一级缓存和内存之间的存储器,其容量较大于一级缓存、远小于内存,主要用来协调一级缓存于内存之间的速率差。
[0003]在按下计算机电源按钮后,主板会reset CPU,然后CPU执行指令,跳到BIOS进行启动。在BIOS启动的过程中需要对CPU的二级cache进行初始化操作。在龙芯多核CPU上对二级cache的初始化是由O号核即主核来执行,其他的核即从核处于一直在空等即一直在做无用的功的状态,直到BIOS加载完内核后,内核来唤醒它。按照这样的方法初始化龙芯CPU的二级cache花费的时间是非常长,特别是在龙芯3B的双路的服务器上更是花费的时间按多,这样将导致BOIS的启动过程时间长的更是让人难以忍受。

【发明内容】

[0004]针对上述现有技术的不足,本发明的目的是提供一种CPU 二级缓存的加速初始化方法,以加快二级缓存的初始化速度,减少等待时间。
[0005]本发明的技术方案是这样的:一种CPU 二级缓存的加速初始化方法,其特征在于,包括以下步骤:
[0006]I)初始化每个CPU核心的mailbox寄存器;
[0007]2) CPU主核将二级缓存划分为η段,η为CPU核心数量;
[0008]3)主核向每个从核发送初始化一段二级缓存命令,从核读取初始化命令;
[0009]4)主核和从核完成各自的二级缓存初始化,从核初始化完成后通知主核;
[0010]5)所有核心完成各自的二级缓存初始化后初始化任务完成。
[0011]在本发明的一个具体实施例中,所述步骤3)中,主核向自身的mailbox发送各个从核的初始化一段二级缓存命令,从核读取主核mailbox获取初始化命令。
[0012]在本发明的另一个具体实施例中,所述步骤3)中,主核向每个从核的mailbox发送从核的初始化一段二级缓存命令,从核读取自身mailbox获取初始化命令。
[0013]在本发明的又一个具体实施例中,所述步骤4)中,从核初始化完成后向主核mailbox发送完成消息,主核读取自身mailbox获取从核完成消息。
[0014]在本发明的还一个具体实施例中,所述步骤4)中,从核初始化完成后向自身mailbox发送完成消息,主核读取从核mailbox获取从核完成消息。
[0015]本发明所提供的技术方案,充分的利用龙芯多核CPU的优势把一个任务进行切分成多个子任务,由主核和从核各自完成相应的子任务,让多个核来协同完成任务,从而加快任务完成的速度。这种技术能加快龙芯多核CPU上二级缓存的初始化的过程,减少初始化二级缓存所花费的时间,同时加快了 BIOS的启动速度。
【专利附图】

【附图说明】
[0016]图1为本发明CPU 二级缓存初始化流程示意图。
【具体实施方式】
[0017]下面结合实施例对本发明作进一步说明,但不作为对本发明的限定。
[0018]请参见图1,以龙芯3B双路的服务器为例,该服务具有两个8核CPU共16个核心,对应具有16M的二级缓存,因此CPU中每个核心所要初始化的二级缓存为1M,一个核心初始化IM即为一个子任务。初始化任务具体过程和方法如下:
[0019]第一:所有的核初始化自身的MailBox寄存器或者是由主核初始化所有核的MailBox寄存器即把MailBox寄存器置O。
[0020]第二:根据EBase寄存器的值来区分主核和从核,从而使主核和从核走不同的流程。
[0021]第三:进行子任务的切分。如在龙芯3B的双路服务器上总共有16核和16M的二级cache,可以把初始化16M的二级cache空间切分成初始化16个子任务,每个子任务是初始化IM的二级cache空间。
[0022]第四:如果是从核则一直等待主核的消息即不断的读取自身MailBox消息或者是主核的MailBox消息来确认是否开始初始化一段固定大小的二级cache (如IM的二级cache)ο当从核从MailBox得到的消息表明主核需要让从核自己初始化某段二级cache空间,则从核就开始执行主核分配给自己的任务,当任务完成后从核就向自己的Mailbox或者是主核的MailBox发送消息表示主核分配的任务已经完成,从核可以执行其他的任务或者是等待。
[0023]第五:如果是主核则发送消息给从核的的MailBox或者是自己的MailBox通知从核有任务即初始化某一段二级cache空间。通知完从核后主核开始自己的任务即初始化一段二级cache空间,任务完成后读取自己MailBox或者是从核的MailBox来确认各个从核是否完成分配的任务即是否已经初始化完了某段二级caceh空间。在确认了所有的从核都完成了分配的任务后继续执行接下来的流程如初始化内存控制器等。
[0024]分别用本发明方法及原二级缓存初始化方法在龙芯3B双路的服务器上进行了对比实验,实验的结果说明这种优化方法是有效的而且效果非常明显,在用原初始化方法初始化二级缓存需要50秒左右的时间,用本发明方法初始化二级缓存只需要6秒左右时间。
【权利要求】
1.一种CPU 二级缓存的加速初始化方法,其特征在于,包括以下步骤: 1)初始化每个CPU核心的mailbox寄存器; 2)CPU主核将二级缓存划分为η段,η为CPU核心数量; 3)主核向每个从核发送初始化一段二级缓存命令,从核读取初始化命令; 4)主核和从核完成各自的二级缓存初始化,从核初始化完成后通知主核; 5)所有核心完成各自的二级缓存初始化后初始化任务完成。
2.根据权利要求1所述的CPU二级缓存的加速初始化方法,其特征在于:所述步骤3)中,主核向自身的mailbox发送各个从核的初始化一段二级缓存命令,从核读取主核mailbox获取初始化命令。
3.根据权利要求1所述的CPU二级缓存的加速初始化方法,其特征在于:所述步骤3)中,主核向每个从核的mailbox发送从核的初始化一段二级缓存命令,从核读取自身mailbox获取初始化命令。
4.根据权利要求2所述的CPU二级缓存的加速初始化方法,其特征在于:所述步骤4)中,从核初始化完成后向主核mailbox发送完成消息,主核读取自身mailbox获取从核完成消息。
5.根据权利要求3所述的CPU二级缓存的加速初始化方法,其特征在于:所述步骤4)中,从核初始化完成后向自身mailbox发送完成消息,主核读取从核mailbox获取从核完成消息。
【文档编号】G06F9/445GK103473095SQ201310408094
【公开日】2013年12月25日 申请日期:2013年9月10日 优先权日:2013年9月10日
【发明者】张福新, 陈国祺, 吴少刚 申请人:江苏中科梦兰电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1