运行程序的装置、芯片和方法

文档序号:6605598阅读:266来源:国知局
专利名称:运行程序的装置、芯片和方法
技术领域
本发明涉及单片机技术领域,特别是涉及一种运行程序的装置、芯片和方法。
背景技术
目前,芯片的MCU(微程序控制器,Microprogrammed Control Unit)中运行的 程序一般放在内部的R0M(只读存储器,Read Only Memory)中;虽然ROM具有断电不丢 失数据的优点,但是,其将程序固化在芯片中,只能读出不能写入,该固化程序被称作固件 (firmware),这样,芯片程序的灵活性大大降低。总之,需要本领域技术人员迫切解决的一个技术问题就是如何能够提高芯片程 序的灵活性。

发明内容
本发明所要解决的技术问题是提供一种运行程序的装置、芯片和方法,用以提高 芯片程序的灵活性。为了解决上述问题,本发明公开了一种运行程序的装置,包括MCU 控制器;存储器,包括E2PR0M ;输入接口模块,用于接收用户定义的E2PR0M的物理地址;内存映射模块,用于将MCU控制器读取的指令地址映射为E2PR0M地址;E2PR0M读取模块,用于根据所述E2PR0M地址,读取E2PR0M ;其中,所述E2PR0M读取模块的读取结果经所述内存映射模块,返回给MCU控制器, 由所述MCU控制器执行程序。另一方面,本发明还公开了一种芯片,其可以包括前述运行程序的装置。另一方面,本发明还公开了一种运行程序的方法,包括接收用户定义的E2PR0M的物理地址;将MCU控制器读取的指令地址映射为E2PR0M地址;根据所述E2PR0M地址,读取E2PR0M ;返回所述读取E2PR0M的结果给MCU控制器,由所述MCU控制器执行程序。与现有技术相比,本发明具有以下优点本发明通过内存地址映射模块将E2PR0M中数据和MCU控制器的物理地址一一映 射,并通过一个专门的E2PR0M读取模块,来读取E2PR0M中与所述物理地址相应的数据,这 样,MCU能够不断得到E2PR0M中的指令和/或数据,而由于E2PR0M中数据具有可在线改写 的优点,因而能够提高芯片程序的灵活性。


图1是本发明一实施例中的一种运行程序的装置的结构图2是本发明另一实施例中的一种运行程序的装置的结构图;图3是本发明一种运行程序的方法一实施例的流程图;图4是本发明一种运行程序的方法另一实施例的流程图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。为使本领域技术人员更好地理解本发明,以下简单介绍E2PR0M的存储原理。E2PR0M(电可擦写可编程只读存储器,Electrically Erasable Programmable Read Only Memory),是用电进行擦除数据的ROM ;串行E2PR0M是可在线电擦除和电写入的 存储器,具有体积小、接口简单、数据保存可靠、可在线改写、功耗低等特点,而且为低电压 写入,在单片机系统中应用十分普遍。串行E2PR0M按总线形式可分为三种,即I2C(Inter-Integrated Circuit)总线、 Microwire 总线及 SPI (Service Provider Interface)总线;因其总线的特点,目前E2PR0M 主要用于数据存贮,其作为MCU的一个外部存贮器,并不支持数据的直接地址寻址访问,数 据的访问是间接寻址。本发明的核心构思之一在于,通过E2PR0M直接运行程序,具体而言,在芯片中增 加内存地址映射机制,其能够把E2PR0M中的数据和内存地址一一映射,并且,通过一个专 门的E2PR0M读取模块,来读取E2PR0M中对应的数据,这样,MCU能够不断得到内存地址中 的指令和/或数据,而由于E2PR0M中数据具有可在线改写的优点,因而能够提高芯片的灵 活性。图1示出了本发明一实施例中的一种运行程序的装置100的结构图。运行程序的 装置100包括MCU 控制器 101;E2PR0M 102 ;输入接口模块103,用于接收用户定义的E2PR0M 102的物理地址;内存映射模块104,用于将MCU控制器101读取的指令地址映射为E2PR0M地址;E2PR0M读取模块105,用于根据所述E2PR0M地址,读取E2PR0M102 ;其中,所述E2PR0M读取模块105的读取结果经所述内存映射模块104,返回给MCU 控制器101,由所述MCU控制器101执行程序。MCU控制器101负责芯片的控制和执行,是程序运行的载体;例如,它的一个功能 是,从存储器中取出一条指令,并指出下一条指令在存储器中的位置,也即读取得到指令地址。作为MCU控制器101的存储器,E2PR OM 102主要用来存放可执行程序,其中,所 述可执行程序可以包括指令和数据等。作为用户接口,输入接口模块103主要用于接收用户的输入信息。所述输入信息 可以为用户定义的E2PR0M 102的物理地址,例如,用户可以把E2PR0M 102的物理地址规定 为 0x10000000。内存映射模块104的主要功能是为E2PR0M 102中的数据寻找相应的存储器地址,以进行下一步的数据读取,也即通过映射过程得到所述存储器地址。例如,MCU控制器101上电后首先从0地址执行程序,于是MCU读取的指令地址为 0地址;假设用户定义E2PR0M 102的物理地址为0x10000000那么,内存映射模块104的映 射过程可以为,将所述就把0地址转换成0x10000000+0这个地址读取指令。为了保证E2PR0M 102中数据读取的准确性,在本发明的一种优选实施例中,所述 输入接口模块103,还可用于接收用户设置的E2PR0M读取时序;此时,所述E2PR0M读取模块105,则可用于根据所述E2PR0M读取时序及E2PR0M地 址,读取 E2PR0M 102。在实际中,所述Ε2Η 0Μ读取时序可以包括读信号等,例如,本领域技术人员可以 根据具体的读周期要求,来设置所述读信号的长度;本优选实施例能够使得E2PR0M读取模 块105,按照正确的时序读取E2PR0M 102中的数据。另夕卜,E2PR0M读取模块105可以采用I2C总线、Microwire总线、或SPI总线等串 行总线进行读取。在访问E2PR0M 102时,所述读取结果的返回过程可以为依次经过E2PR0M读取模 块105及内存映射模块104,最终返回至MCU控制器101。可以理解,在MCU执行程序的过程中,经由MCU控制器101、内存映射模块104、 E2PR0M读取模块105的读取过程,以及上述读取结果的返回过程是连续的。由于MCU控制器101执行的程序主要源自E2PR0M 102,而E2PR0M102中数据具有 可在线改写的优点,因而,相对于现有技术将程序固化在ROM中,对本实施例中的运行程序 的装置而言,更新程序变成一件很容易的事情,能够提高程序更改的灵活性;另外,相对于内部ROM,由于外部E2PR0M 102还具有成本低、容量大等优点,因而, 本实施例还能够降低芯片的成本,提高芯片的存储容量。需要说明的是,除了 E2PR0M 102外,本发明所述运行程序的装置还可以包括RAM、 ROM、闪存等其它存储器等,本发明对此不加以限制。在E2PR0M读取模块105读取E2PR0M 102中当前物理地址的数据时,一旦该当 前物理地址命中,就返回该结果;同理,会执行下一物理地址的类似访问;上述逐地址访问 E2PR0M102,会带来程序执行速度慢的问题。由于在MCU读取指令或数据的过程中,指令/或数据一般都是存贮在连续的空间 中,因此,MCU控制器101可以在读取E2PR0M 102中当前物理地址的指令或数据时,把相邻 地址的指令或者数据存入到E2PR0M读取模块105的缓存中,由于该缓存具有静止存取功 能,这样就能够加速程序的运行速度。基于上述思想,在本发明的另一种优选实施例中,E2PR0M读取模块105中可以包 括如下子模块缓存子模块Al,用于存放相邻多个地址的数据;判断子模块A2,用于判断该缓存子模块是否命中当前地址的数据;返回子模块A3,用于在该缓存子模块命中当前地址的数据时,返回命中的当前地 址的数据给MCU控制器101;读取子模块A4,用于在缓存命中失败时,从E2PR0M 102读取该当前地址的数据, 并返回所述读取结果给MCU控制器101 ;
6
保存子模块A5,用于读取与当前地址相邻的下一个或几个地址的数据,并保存到 所述缓存子模块Al。由于所述读取子模块A4返回读取结果给MCU控制器101,以及,所述保存子模块 A5读取数据到缓存,是一个并行的过程,因而能够提高程序的运行效率。本发明的运行程序的装置可以用于SOC芯片(片上系统,System onChip)等各种 芯片中,此时,该装置中E2PR0M 102则可作为芯片的外部存储器,用于存放可执行程序。参照图2,示出了本发明另一实施例中的一种运行程序的装置200的结构图,具体 可以包括MCU 控制器 201;存储器202,可以包括 SRAM 221 和 E2PR0M 222 ;输入接口模块203,用于接收用户定义的存储器202的物理地址,以及,用户设置 的存储器访问信息;内存映射模块204,根据所述存储器访问信息,将MCU控制器201读取的指令地址 映射为存储器地址;内存选择器205,用于根据所述映射得到的存储器地址,以及用户定义的存储器的 物理地址,选择相应的存储器;E2PR0M读取模块206,用于在内存选择器205选择E2PR0M 222时,读取E2PR0M 222 ;以及SRAM读取模块207,用于在内存选择器205选择SRAM 221时,读取SRAM 221 ;其中,E2PR0M读取模块206或者SRAM读取模块207的读取结果经所述内存选择 器205和内存映射模块204,返回给MCU控制器201,由所述MCU控制器201执行程序。本实施例中的运行程序的装置200与前一实施例中的运行程序的装置100的区别 在于,增加了 SRAM 221,使得用户可以根据实际需求,从存储器SRAM 221和E2PR0M 222中 选择一个,以更好地执行程序。作为MCU控制器201的存储器,SRAM 221主要用来存储当前正在使用的或经常使 用的程序和数据;并且,MCU控制器201可根据SRAM221的地址将数据随机的写入或读出, 只要电源存在,SRAM 221存储的内容就不会消失;另外,CPU也可以对SRAM 221直接访问, 存取速度非常快。对于存储器202的物理地址,在本发明的一种应用示例中,用户可以把E2PR0M 222的物理地址规定为0x10000000,把SRAM 221的物理地址规定为0x20000000。所述用户设置的存储器访问信息,主要表示用户对SRAM 221和E2PR0M 222中的 哪个存储器存在访问需求。例如,在对内存中的RW(已初始化的全局变量,Read Write)段和/或bss (未初 始化的全局变量的内存区域,Block Started by Symbol segment)段存在访问需求时,用 户会通过设置存储器访问信息,以对SRAM 221进行读取操作。在实际中,可采用一芯片引脚来表示所述存储器访问信息,例如,该芯片引脚为高 电平代表可执行程序在E2PR0M 222中,该芯片引脚为低电平代表可执行程序在SRAM221 中;而用户定义的E2PR0M 222和SRAM 221的物理地址是不同的,因此,内存映射模块204 能够根据所述芯片引脚的电平,对MCU读取的指令指令地址进行自动映射。
举例来说,根据用户设置的存储器访问信息得知,可执行程序在E2PR0M 222中, 而用户定义E2PR0M 222的物理地址为0x10000000那么,内存映射模块204的映射过程可 以为,将所述就把0地址转换成0x10000000+0这个地址读取指令。内存选择器205具体用于根据所述映射得到的存储器地址,选择具体的访问哪个 存储器202,按照上例中的设置,在映射得到的存储器地址为0x10000011时,选中E2PR0M 222,在映射得到的存储器地址为0x20000011时,选中SRAM 221。无论是访问SRAM 221,还是访问E2PR0M 222,所述读取结果的返回过程都可以 为依次经过E2PR0M读取模块206或SRAM读取模块207、内存选择器105及内存映射模块 104,最终返回至MCU控制器201。可以理解,在MCU执行程序的过程中,经由MCU控制器201、内存映射模块204、内 存选择器205、E2PR0M读取模块206或SRAM读取模块207的读取过程,以及上述读取结果 的返回过程是连续的。本实施例也可用于SOC芯片等各种芯片中,此时,所述SRAM 121即可位于芯片内 部,也可位于芯片外部,本发明对此不加以限制。与前述装置实施例相应,本发明还公开了一种运行程序的方法第一实施例。参照 图3,该运行程序的方法可以包括步骤301、接收用户定义的E2PR0M的物理地址;步骤302、将M⑶控制器读取的指令地址映射为E2PR0M地址;步骤303、根据所述E2PR0M地址,读取E2PR0M ;步骤304、返回所述读取E2PR0M的结果给MCU控制器,由所述MCU控制器执行程序。为了保证E2PR0M中数据读取的准确性,在本发明的一种优选实施例中,所述方法 还可以包括接收用户设置的E2PR0M读取时序;此时,所述步骤303的执行过程可以为,根据所述E2PR0M读取时序及E2PR0M地 址,读取E2ra0M。在实际中,所述Ε2Η 0Μ读取时序可以包括读信号等,例如,本领域技术人员可以 根据具体的读周期要求,来设置所述读信号的长度;本优选实施例能够按照正确的时序读 取E2PR0M中的数据。由于在MCU读取指令或读取数据时,指令或数据一般存贮在连续的空间中,因此, 可以在读取E2PR0M中当前物理地址的指令或数据时,把相邻地址的指令或者数据读入到 缓存中,由于该缓存具有静止存取功能,这样就能够加速程序的运行速度。基于上述思想,在本发明的另一种优选实施例中,所述步骤303可以进一步包括子步骤Bi、判断缓存是否命中当前地址的数据,其中,所述缓存中存放有相邻多个 地址的数据;子步骤B2、在缓存命中当前地址的数据时,返回命中的当前地址的数据给MCU控 制器;子步骤B3、在缓存未命中当前地址的数据时,从E2PR0M读取该当前地址的数据, 并返回读取结果给MCU控制器;
子步骤B4、读取与当前地址相邻的下一个或几个地址的数据,并保存到所述缓存。由于所述子步骤B3返回读取结果给MCU控制器,以及,所述子步骤B4读取数据到 缓存,是一个并行的过程,因而能够提高程序的运行效率。本发明还给出了一种运行程序的方法第二实施例,该运行程序的方法的第二实施 例能够使得用户可以根据实际需求,从存储器SRAM和E2PR0M中选择一个来执行程序。参 照图4,该运行程序的方法可以包括步骤401、接收用户定义的E2PR0M和SRAM的物理地址,以及,用户设置的存储器访 问信息;步骤402、根据所述存储器访问信息,将MCU控制器读取的指令地址映射为存储器 地址;步骤403、根据所述映射得到的存储器地址,以及用户定义的存储器的物理地址, 选择相应的存储器;步骤404、在选择E2PR0M时,读取E2PR0M ;步骤405、在选择SRAM时,读取SRAM ;步骤406、返回所述读取E2PR0M或读取SRAM的结果给MCU控制器,由所述MCU控 制器执行程序。在实际中,可采用一芯片引脚来表示所述存储器访问信息,例如,该芯片引脚为高 电平代表可执行程序在E2PR0M中,该芯片引脚为低电平代表可执行程序在SRAM中;而用 户定义的E2PR0M和SRAM的物理地址是不同的,因此,步骤402能够根据所述芯片引脚的电 平,对MCU读取的指令指令地址进行自动映射。对于方法实施例而言,由于其与图1所示的运行程序的装置实施例基本相似,所 以描述的比较简单,相关之处参见图1的部分说明即可。本发明可以应用于SOC等芯片中,用于提高芯片程序更改的灵活性,使得更新程 序编程一件很容易的事情。以上对本发明所提供的一种运行程序的装置和方法,进行了详细介绍,本文中应 用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理 解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发 明的限制。
9
权利要求
一种运行程序的装置,其特征在于,包括MCU控制器;存储器,包括E2PROM;输入接口模块,用于接收用户定义的E2PROM的物理地址;内存映射模块,用于将MCU控制器读取的指令地址映射为E2PROM地址;E2PROM读取模块,用于根据所述E2PROM地址,读取E2PROM;其中,所述E2PROM读取模块的读取结果经所述内存映射模块,返回给MCU控制器,由所述MCU控制器执行程序。
2.如权利要求1所述的装置,其特征在于,所述E2PR0M存储程序。
3.如权利要求1或2所述的装置,其特征在于,所述输入接口模块,还用于接收用户设 置的E2PR0M读取时序;所述E2PR0M读取模块,用于根据所述E2PR0M读取时序及E2PR0M地址,读取E2PR0M。
4.如权利要求1或2所述的装置,其特征在于,所述E2PR0M读取模块包括 缓存子模块,用于存放相邻多个地址的数据;判断子模块,用于判断该缓存子模块是否命中当前地址的数据; 返回子模块,用于在该缓存子模块命中当前地址的数据时,返回命中的当前地址的数 据给MCU控制器;读取子模块,用于在该缓存子模块未命中当前地址的数据时,从E2PR0M读取该当前地 址的数据,并返回所述读取结果给MCU控制器;保存子模块,用于读取与当前地址相邻的下一个或几个地址的数据,并保存到所述缓 存子模块。
5.如权利要求1或2所述的装置,其特征在于,所述存储器还包括SRAM;所述输入接口模块,还用于接收用户定义的SRAM的物理地址,以及,用户设置的存储 器访问信息;所述内存映射模块,还用于根据所述存储器访问信息,将MCU控制器读取的指令地址 映射为存储器地址;所述运行程序的装置还包括内存选择器,用于根据所述映射得到的存储器地址,以及用户定义的存储器的物理地 址,选择相应的存储器;SRAM读取模块,用于在内存选择器的选择结果为SRAM时,读取SRAM ; 其中,所述E2PR0M读取模块或SRAM读取模块的读取结果经所述内存选择器和内存映 射模块,返回给MCU控制器,由所述MCU控制器执行程序。
6.一种芯片,其特征在于,包括前述1至2中任一项所述的运行程序的装置。
7.一种运行程序的方法,其特征在于,包括 接收用户定义的E2PR0M的物理地址;将MCU控制器读取的指令地址映射为E2ra0M地址; 根据所述E2PR0M地址,读取E2PR0M ;返回所述读取E2PR0M的结果给MCU控制器,由所述MCU控制器执行程序。
8.如权利要求7所述的方法,其特征在于,还包括接收用户设置的E2PR0M读取时序;所述读取E2PR0M的步骤为,根据所述E2PR0M读取时序及E2PR0M地址,读取E2PR0M。
9.如权利要求7所述的方法,其特征在于,所述读取E2PR0M的步骤包括判断缓存是否命中当前地址的数据,其中,所述缓存中存放有相邻多个地址的数据; 在缓存命中当前地址的数据时,返回命中的当前地址的数据给MCU控制器; 在缓存未命中当前地址的数据时,从E2PR0M读取该当前地址的数据,并返回读取结果 给MCU控制器;读取与当前地址相邻的下一个或几个地址的数据,并保存到所述缓存。
10.如权利要求7所述的方法,其特征在于,所述方法还包括接收用户定义的SRAM的物理地址,以及,用户设置的存储器访问信息; 根据所述存储器访问信息,将MCU控制器读取的指令地址映射为存储器地址; 根据所述映射得到的存储器地址,以及用户定义的存储器的物理地址,选择相应的存 储器;在选择E2PR0M时,读取E2PR0M ; 在选择SRAM时,读取SRAM ;返回所述读取E2PR0M或读取SRAM的结果给MCU控制器,由所述MCU控制器执行程序。
全文摘要
本发明提供了一种运行程序的装置、芯片和方法,其中的装置具体包括MCU控制器;存储器,包括E2PROM;输入接口模块,用于接收用户定义的E2PROM的物理地址;内存映射模块,用于将MCU控制器读取的指令地址映射为E2PROM地址;E2PROM读取模块,用于根据所述E2PROM地址,读取E2PROM;其中,所述E2PROM读取模块的读取结果经所述内存映射模块,返回给MCU控制器,由所述MCU控制器执行程序。本发明用以提高芯片程序的灵活性。
文档编号G06F9/30GK101944011SQ20101022190
公开日2011年1月12日 申请日期2010年6月29日 优先权日2010年6月29日
发明者艾国 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1