本发明涉及及存储技术领域,尤其涉及一种适用于单片机芯片的数据处理方法。
背景技术:
随着超大规模集成电路的迅速发展,芯片的处理速度和处理能力不断得到提高,单片机芯片凭借其体积小、质量轻、性价比高的优点在工业控制、网络通讯、航空航天等领域得到越来越广泛的应用。其中,微处理器是单片机芯片的中央处理单元(centralprocessingunit,简称“cpu”),主要用于完成数据的算术或逻辑运算,同时也对整个单片机芯片系统的操作进行协调和管理。
存储区用于存储数据和程序,其中数据存储区用于存放数据的中间结果,完成数据暂存以及数据缓冲等功能,单片机芯片的存储区通常分为片内存储区和片外存储区,其中片内存储区又可分为用于存储程序的只读存储器(readonlymemory,简称“rom”)和用于存储数据的随机访问存储器(randomaccessmemory,简称“ram”)。片外存储器是片内存储器的扩展,主要是为了弥补片内存储器存储空间较小的缺点,通常可以由可擦写的可编程只读存储器(erasableprogrammablereadonlymemory,简称“eprom”)、可电擦写的可编程只读存储器(electricallyerasableprogrammablereadonlymemory,简称“eeprom”)、闪存(flashmemory,简称“flash”)等来实现。
目前单片机的存储空间都是很小并且是有限的,所以在遇到单片机存储不够的情况下一般的选择是更换更大存储空间的单片机或者增加外部存储硬件,这样就增加的产品的成本,更换单片机的同时还会存在单片机不兼容的问题。
技术实现要素:
针对所述技术的不足,本发明主要目的是在不扩展存储硬件的情况下,增加单片机芯片芯片的存储,本发明要解决的问题,提供一种适用于单片机芯片的数据处理方法。
为实现上述目的,本发明通过以下方案来实现。
一种适用于单片机的芯片数据处理方法,其中,所述单片机芯片在进行数据存储之前,先将需要存储的数据进行压缩,再保存在所述单片机芯片的存储空间内;
所述单片机芯片在执行所述存储空间内的指令之前,先对所述存储空间内的指令进行解压缩,再将解压缩后的指令提供给所述单片机芯片的处理器进行处理;
于所述单片机芯片内部执行对所述指令的解压缩,以及将解压缩后的指令进行处理的过程;
采用所述单片机芯片外部的编译器执行数据压缩,再保存在所述单片机芯片的所述存储空间内。
优选的,该一种数据处理方法,其中,所述编译器对需要存储的数据进行分块压缩,再保存在所述单片机芯片的所述存储空间内。
优选的,该一种数据处理方法,其中,当所述单片机芯片的所述处理器执行当前指令完毕后,所述处理器判断下一条需要执行的指令是否位于所述当前指令所关联的地址范围内;
若是,则所述处理器在所述当前指令的地址范围内继续执行下一条指令;
若否,则所述处理器重新从所述存储空间内提取对应的指令并进行解压缩,再执行解决缩后的指令。
优选的,该一种机数据处理方法,其中,压缩前的数据的存储地址与压缩后的数据的存储地址一一对应;
当所述处理器判断下一条需要执行的指令位于所述当前指令所关联的地址范围之外时,执行下述步骤:
所述处理器产生关联于下一条需要执行的指令的存储地址,并经过地址映射后得到压缩后的存储地址,所述处理器根据压缩后的存储地址获取指令并进行解压缩,随后执行指令。
一种适用于单片机芯片的数据处理系统,其中,于所述单片机芯片内设置有存储空间和处理器,所述处理器连接所述存储空间;
在进行数据存储之前,采用所述单片机芯片外部的编译器将需要存储的数据进行压缩,再保存在所述单片机芯片的存储空间内;
所述处理器在执行所述存付空间内的指令之前,先对所述存储空间内的指令进行解压缩,再将解压缩后的指令提供给所述单片机芯片的处理器进行处理。
优选的,该数据处理系统,其中,所述编译器对需要存储的数据进行分块压缩,再保存在所述单片机芯片的所述存储空间内。
优选的,该数据处理系统,其中,于所述单片机芯片内还设置有一连接所述处理器的判断单元,用于在所述单片机芯片的所述处理器执行当前指令完毕后,判断下一条需要执行的指令是否位于所述当前指令所关联的地址范围内,并输出相应的判断结果;
所述处理器根据所述判断结果:
当下一条需要执行的指令位于所述当前指令所关联的地址范围内时,在所述当前指令的地址范围内继续执行下一条指令;
当下一条需要执行的指令位于所述当前指令所关联的地址范围外时,重新从所述存储空间内提取对应的指令并进行解压缩,再执行解压缩后的指令。
优选的,该一种数据处理系统,其中,压缩前的数据的存储地址与压缩后的数据的存储地址一一对应;
当所述判断结果表示判断下一条需要执行的指令位于所述当前指令所关联的地址范围之外时,所述处理器产生关联于下一条需要执行的指令的存储地址,并经过地址映射后得到压缩后的存储地址,所述处理器根据压缩后的存储地址获取指令并进行解压缩,随后执行指令。
一种单片机芯片,其中,采用上述的适用于单片机芯片的数据处理方法。
一种单片机芯片,其中,应用上述的适用于单片机芯片的数据处理系统。本发明的优点在于:
本发明中,对指令数据在外部编译器中进行压缩,解压缩的功能集成在单片机芯片中,可以间接的扩大单片机芯片的存储空间,并不需要添加外部存储期间,更不用跟换芯片,使单片机芯片的存储空间扩大。这样可以节省产品的成本,也可以降低程序移植时代来的风险。通过压缩算法压缩文件使文件存储时所需要的存储空间变小,但是并不改变文件信息的内容;这样在相同大小的存储空间中就可以存储更大的文件。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是现有技术中,单片机芯片数据进行存储的示意图;
图2是本发明一种适用于单片机芯片的数据处理方法实施例中将可执行文件压缩后存放入单片机芯片示意图;
图3是本发明一种适用于单片机芯片的数据处理方法实施例中的流程示意图;
图4是本发明一种适用于单片机芯片的数据处理系统实施例中的系统示意图;
图5是本发明一种适用于单片机芯片的数据处理系统实施例中的单片机芯片逻辑结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
具体地,如图1中所示,现有技术中,单片机芯片在进行数据保存时,通常不会事先对数据进行压缩,而直接进行存储,这样的保存方式会占用较大的存储容量,不适用于单片机芯片目前容量有限的存储空间。
而本发明较佳的实施例中,根据现有技术存在的问题,现提供一种适用于单片机芯片数据处理的方法,单片机芯片在进行数据存储之前,先将需要存储的数据进行压缩,再保存在单片机芯片的存储存空间内(其指令数据的保存过程如图2中所示);进一步地,单片机芯片需要对需要存储的数据进行分块压缩,再保存在单片机芯片的存储空间内。
具体地,单片机芯片在执行存储空间内的指令之前,先对存储空间内的指令进行解压缩,再将解压缩后的指令提供给单片机芯片的外理芯片进行处理。
上述数据处理方法单片机芯片中,对指令数据进行分块压缩的功能可以采用单片机芯片外部的编译器执行,并且可以通过单片机芯片内部的处理器执行解压缩的功能。
本发明较佳的实施例中,如图3中所示,当单片机芯片的处理器执行当前指令完毕后,处理器判断下一条需要执行的指令是否位于当前指令所关联的地址范围内;
若是,则处理器在当前指令的地址范围内继续执行下一条指令;
若否,则处理器重新从所述存储空间内提取对应的指令并进行解压缩,再执行解决缩后的指令。
本发明较佳的实施例中,压缩前的数据的存储地址与压缩后的数据的存储地址一一对应;
仍然如图3中所示,当处理器判断下一条需要执行的指令位于当前指令所关联的地址范围之外时,执行下述步骤:
处理器产生关联于下一条需要执行的指令的存储地址,并经过地址映射后得到压缩后的存储地址,处理器根据压缩后的存储地址获取指令并进行解压缩,随后执行指令。
具体地,当单片机芯片中得处理器要执行存储中的程序时,一般是直接读取存储区程序的指令,而在使用压缩后的程序后存储区的程序不能直接执行,要通过解压缩后才能正常的执行。
当处理器发送从单片机芯片的存储区出一条指令,取出的指令进行解压后处理器执行,当处理器执行指令期间出现要执行本块压缩指令外的指令,此时处理器发出的地址是没压缩前的地址,通过地址镜像映射找到压缩后的指令的实际位置,取出进行解压,然后处理器继续执行。
本发明的较佳的实施例中,基于上文中所述的适用于单片机芯片的数据处理方法,现提供一种适用于单片机芯片的数据处理系统,具体如图4中所示:
于单片机芯片内设置有存储空间1和处理器2,处理器2连接存储空间1,单片机芯片还连接一外部的编译器(图中未示出);
上述编译器处理器在进行数据存储之前,先将需要存储的数据进行压缩,再保存在单片机芯片的存储空间1内;
上述处理器2在执行存储空间1内的指令之前,先对存储空间1内的指令进行解压缩,再将解压缩后的指令提供给单片机芯片的处理器2进行处理。
本发明较佳的实施例中,处理器外部编译器对需要存储的数据进行分块压缩,再保存在单片机芯片的存储空间1内。
本发明较佳的实施例中,仍然如图4中所示,于单片机芯片内还设置有一连接处理器2的判断单元3,用于在单片机芯片的处理器2执行当前指令完毕后,判断下一条需要执行的指令是否位于当前指令所关联的地址范围内,并输出相应的判断结果;
处理器2根据判断结果:
当下一条需要执行的指令位于当前指令所关联的地址范围内时,在当前指令的地址范围内继续执行下一条指令;
当下一条需要执行的指令位于当前指令所关联的地址范围外时,重新从存储空间内提取对应的指令并进行解压缩,再执行解压缩后的指令。
本发明较佳的实施例中,压缩前的数据的存储地址与压缩后的数据的存储地址一一对应;
当判断结果表示判断下一条需要执行的指令位于当前指令所关联的地址范围之外时,处理器2产生关联于下一条需要执行的指令的存储地址,并经过地址映射后得到压缩后的存储地址,处理器2根据压缩后的存储地址获取指令并进行解压缩,随后执行指令。
本发明较佳的实施例中,提供一种单片机芯片,适用于单片机芯片的数据处理方法。
本发明较佳的实施例中,还提供一种单片机芯片,适用于单片机芯片的数据处理系统。
具体地,该单片机芯片如图5中所示,其中集成有片内存储器51(上文中所述的存储空间),该片内存储器51中保存有分块压缩后(经过单片机芯片外部的编译器进行分块压缩)的指令数据。同时该单片机芯片中还集成有解压缩的功能模块52,该功能模块52用于在单片机芯片的处理器(cpu)53需要执行指令时从片内存储器51中获取相应的指令数据并进行解压缩,随后将经过解压缩的指令数据发送至指令缓存空间(cache)54中,以供处理器53调取并执行。综上,所有的功能都集成于单片机芯片内部,在解决单片机芯片存储空间不够的问题的同时提高了单片机芯片的集成度。当然,如图5中所示,在该单片机芯片中还集成有外设功能模块以及电源等组件55,在此不再一一赘述。
本发明的有益效果在于:
本发明可以间接的扩大单片机芯片的存储空间,并不需要添加外部存储期间,更不用更换芯片,使单片机芯片的存储空间扩大。这样可以节省产品的成本,也可以降低程序移植时代来的风险。通过压缩算法压缩文件使文件存储时所需要的存储空间变小,但是并不改变文件信息的内容;这样在相同大小的存储空间中就可以存储更大的文件。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。