加速SOC内核读取指令的方法及系统与流程

文档序号:18821639发布日期:2019-10-09 00:51阅读:425来源:国知局
加速SOC内核读取指令的方法及系统与流程

本发明涉及一种加速soc内核读取指令的方法及系统,属于soc(systemonchip)技术领域。



背景技术:

现有的soc系统中,内核从flash中读取指令主要分为两种方式,方式一是采用串行接口flash,需要将指令数据复制到sram中,内核直接从sram中读取数据,由于需要提供一个大容量的sram存放指令数据,成本较高。方式二是采用并行接口flash,由于并行接口flash的读取速率受限制,所以通过增加flash的数据位宽并采用预取指令的方式提高内核读取指令的速度,但是如果内核读取指令的地址发生了跳转,内核需要等待若干时钟周期才能得到指令,降低了mcu的运算和处理能力。



技术实现要素:

为了解决上述方式二的问题,本发明提供一种加速soc内核读取指令的方法及系统,该方法及系统在内核读取指令的地址发生跳转时,使得内核无需等待周期即可得到指令数据,提高了mcu的运算和处理能力。

解决上述问题的技术方案为:一种加速soc内核读取指令的方法,包括如下步骤:

s1、数据预处理,指令分析单元读出flash单元中的指令进行分析,将跳转地址及该跳转地址中存放的数据建立数据库;

s2、将s1中建立的数据库存储在flash单元中;

s3、将s2中存储于flash单元的数据写入指令缓存单元;

s4、指令跳转时,指令控制单元将目标地址传输到flash单元和指令缓存单元,在flash单元读取指令等待时将指令缓存单元的数据传输到内核,直至从flash单元中读到数据后指令控制单元将flash单元中的数据传输到内核。

进一步地,s2中,指令缓存单元包括:包括指令缓冲控制单元、cam存储器和sram存储器;指令缓冲控制单元,将指令分析单元的分析结果中的地址信息保存在所述cam存储器中,对应的指令数据信息保存在sram存储器中,cam存储器中的存放的地址信息与sram存储器中存放的数据信息一一对应。

一种加速soc内核读取指令的系统,包括:内核、flash单元、指令分析单元、指令控制单元和指令缓冲单元;

所述指令分析单元,用于对指令数据进行分析,获取跳转到的目标地址的首地址,并将符合条件的地址及该地址中存放的指令数据保存在指令缓冲单元中;

所述指令控制单元,用于将指令分析单元的分析结果写入所述指令缓冲单元,同时所述指令控制单元对所述内核访问flash单元的地址进行分析,当判断访问flash单元的地址发生跳转时,所述指令控制单元将跳转的目标地址同时发送给所述指令缓冲单元和所述flash单元。

进一步地,所述指令分析单元集成在soc芯片内部或者设于soc芯片外部。

进一步地,指令缓冲单元包括指令缓冲控制单元、cam存储器和sram存储器;

所述指令缓冲控制单元,用于保存所述指令分析单元分析的结果,同时负责查找指令控制单元传输过来的地址所对应的指令数据。所述指令缓冲控制单元,将所述指令分析单元的分析结果中的地址信息保存在所述cam存储器中,对应的指令数据信息保存在所述sram存储器中。

进一步地,所述cam存储器中的存放的地址信息与所述sram存储器中存放的数据信息一一对应。

进一步地,指令缓冲控制单元负责将指令控制单元发送过来的地址信息与cam中存储的地址信息进行匹配,匹配的结果是指令数据在sram存储的地址信息,从而从sram中获取到指令数据。

本发明的优点在于:在soc系统中内核读取指令数据的地址发生跳转时,内核无需等待周期即可得到指令数据,提高了soc的运算和处理能力。

下面结合附图对本发明作进一步详细描述。

附图说明

图1为本发明结构示意图;

图2为图1中模式a一较佳实施例结构示意图;

图3为图1中模式b一较佳实施例结构示意图。

具体实施方式

为了加深对本发明的理解,下面将结合实施例和附图对本发明作进一步详述,该实施例仅用于解释本发明,并不构成对本发明保护范围的限定。

如图1所示,一种加速soc内核读取指令的方法,包括如下步骤:

s1、数据预处理,指令分析单元读出flash单元中的指令进行分析,将跳转地址及该跳转地址中存放的数据建立数据库;

s2、将s1中建立的数据库存储在flash中;

s3、将s2中存储于flash的数据写入指令缓存单元;

s4、指令跳转时,指令控制单元将目标地址传输到flash单元和指令缓存单元,在flash单元读取指令等待时将指令缓存单元的数据传输到内核,直至从flash单元中读到数据后指令控制单元将flash单元中的数据传输到内核。

本发明装置包括:内核、flash单元、指令分析单元、指令控制单元和指令缓冲单元;

所述指令分析单元,用于对指令数据进行分析,获取跳转到的目标地址的首地址,并将符合条件的地址及该地址中存放的指令数据保存在指令缓冲单元中。

进一步地,所述指令分析单元集成在soc芯片内部或者设于soc芯片外部。

所述指令控制单元,用于将指令分析单元的分析结果写入所述指令缓冲单元,同时所述指令控制单元对内核访问flash单元的地址进行分析,当判断访问flash单元的地址发生跳转时,所述指令控制单元将跳转的目标地址同时发送给所述指令缓冲单元和flash单元,由于地址跳转时读取所述flash单元中的数据需要等待时间,所以此时读取所述指令缓冲单元中存放的指令数据,并将该指令数据传输给所述内核,避免了所述内核等待所述flash单元输出数据。当所述flash单元输出指令数据后,所述指令控制单元将所述flash单元输出的指令数据传输给所述内核。

进一步地,所述指令缓冲单元包括指令缓冲控制单元、cam存储器(contentaccessmemory)和sram存储器。所述指令缓冲控制单元,用于保存所述指令分析单元分析的结果,同时负责查找指令控制单元传输过来的地址所对应的指令数据。所述指令缓冲控制单元,将所述指令分析单元的分析结果中的地址信息保存在所述cam存储器中,对应的指令数据信息保存在所述sram存储器中,所述cam存储器中的存放的地址信息与所述sram存储器中存放的数据信息一一对应。

进一步地,所述指令缓冲控制单元将指令控制单元传输过来的地址信息传输到所述cam存储器,所述cam存储器将该地址信息与所述cam存储器中存放的地址信息进行匹配,并输出该地址信息在所述cam存储器中存放的位置地址。由于数据在所述sram存储器中存放的位置地址与所述cam存储器中存放地址信息的位置地址相同,从所述sram存储器中读取该位置地址中存放的数据就是指令数据。将所述sram存储器输出的指令数据发送给所述指令控制单元,所述指令控制单元将指令数据发送给所述内核。

如图2所示,实施例1:

该实施例中指令分析单元在soc芯片外部,现设定soc内核指令数据位宽为32bit,流程如下:

指令分析单元读出flash中的指令数据进行分析,分析出跳转到的目标地址区域,获取该目标地址区域的首地址及对应地址存放的指令数据,获取该首地址加4的地址及对应地址存放的指令数据;

重复上述步骤,直到获取所有满足条件的地址及地址中存放的数据,将分析结果保存在临时指令文件中;

将临时指令文件和flash指令文件中的数据通过flash烧录装置和flash控制单元写入flash中指定区域;

soc芯片上电完成后,指令控制单元读取flash中存放的临时指令数据并写入指令缓冲单元;

指令缓冲控制单元将分析结果中的地址信息写入cam存储器中,地址信息对应的数据信息写入sram中,在cam和sram中相同位置地址中存储的地址信息和数据信息一一对应。

内核运行过程中,当指令控制单元获取到内核读取指令的地址发生跳转时,指令控制单元将跳转的目标地址同时发送给指令缓冲单元和flash。

指令缓冲控制单元将指令控制单元传输过来的地址信息传输到cam,cam存储器负责将该地址信息与cam中存放的地址信息进行匹配,并输出该地址信息在cam中存放的位置地址。

由于数据在sram中存放的位置地址与cam中存放地址信息的位置地址相同,从sram中读取该位置地址中存放的指令数据。将sram输出的指令数据发送给指令控制单元,指令控制单元将指令数据发送给内核。

当从flash中读取到数据后,指令控制单元将flash中的数据传输到内核。

如图3所示,实施例2:

该实施例中指令分析单元集成在soc芯片内部,设定soc内核指令位宽为32bit,流程如下:

通过flash烧录装置和flash控制单元将flash指令文件写入soc芯片的flash中;

芯片上电后,指令控制单元将flash中所有的指令依次读取并传输到指令分析单元,指令分析单元对指令数据进行分析,分析出跳转到的目标地址区域,获取该目标地址及该目标地址存放的指令数据,获取该目标地址加4的地址及对应地址存放的指令数据。

将获取到的地址及数据写入到指令缓冲单元;

指令缓冲控制单元将分析结果中的地址信息写入cam存储器中,地址信息对应的数据信息写入sram中,在cam和sram中相同位置地址中存储的地址信息和数据信息一一对应。

重复上述步骤直到所有满足条件的地址及该地址中存放的数据写入cam和sram中。

内核运行过程中,当指令控制单元获取到内核读取指令的地址发生跳转时,指令控制单元将跳转的目标地址同时发送给指令缓冲单元和flash。

指令缓冲控制单元将指令控制单元传输过来的地址信息传输到cam,cam存储器负责将该地址信息与cam中存放的地址信息进行匹配,并输出该地址信息在cam中存放的位置地址。

由于数据在sram中存放的位置地址与cam中存放地址信息的位置地址相同,从sram中读取该位置地址中存放的指令数据。将sram输出的指令数据发送给指令控制单元,指令控制单元将指令数据发送给内核。

当从flash中读取到数据后,指令控制单元将flash中的数据传输到内核。

指令分析单元负责获取目标跳转地址及对应地址存放的数据。

指令缓冲单元的一方面负责保存指令分析单元的分析结果,另一方面负责将指令控制单元发送过来的地址信息与cam中存储的地址信息进行匹配,匹配的结果是指令数据在sram存储的地址信息,从而从sram中获取到指令数据。

指令控制单元一方面负责将指令分析单元的分析传输到指令缓冲单元中;另一方面负责分析内核读取flash的地址,当判断内核读取flash的地址发生跳转时,指令控制单元从指令缓冲单元获取指令数据。当flash准备好数据后,指令控制单元将flash中的指令数据传输到内核。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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