(12)发明专利申请
(10)申请公布号 CN 1045879 A(43)申请公布日 2017.02.22
(21)申请号 2016110280.8(22)申请日 2016.11.18
(71)申请人 南京火零信息科技有限公司
地址 210046 江苏省南京市栖霞区尧化街
道科创路1号金港科创园4幢507(72)发明人 张毓
(74)专利代理机构 北京科亿知识产权代理事务
所(普通合伙) 11350
代理人 汤东凤(51)Int.Cl.
G06F 15/78(2006.01)
权利要求书1页 说明书6页 附图5页
()发明名称
一种高性价比的SoC架构(57)摘要
本发明公开了一种高性价比的SoC架构,包括改进的8051核、flash核、模数转换器、实时钟、串口、SPI接口、通用IO口、通信收发器、数据存储器、I2C接口,所述模数转换器、实时钟、串口、SPI接口、通用IO口、I2C接口通过SFR总线或xmem总线与8051核电性连接,所述通信收发器通过SFR总线和xmem总线与8051核电性连接,所述数据存储器通过xmem总线与8051核电性连接,所述flash核通过flash信号线与flash存取控制电路电性连接,所述flash存取控制电路通过读写总线与8051核电性连接,所述flash存取控制电路支持程序烧录。本发明可以节省存储空间、提高速度,支持8051在flash中的bank操作,采用了改进的8051核,与标准8051指令集兼容,占用芯片面积小,减少了成本和风险,简化系统设计、减少功耗和成本。
CN 1045879 ACN 1045879 A
权 利 要 求 书
1/1页
1.一种高性价比的SoC架构,其特征在于:包括改进的8051核、flash核、模数转换器、实时钟、串口、SPI接口、通用IO口、通信收发器、数据存储器、I2C接口,所述模数转换器、实时钟、串口、SPI接口、通用IO口、I2C接口通过SFR总线或xmem总线与8051核电性连接,所述通信收发器通过SFR总线和xmem总线与8051核电性连接,所述数据存储器通过xmem总线与8051核电性连接,所述flash核通过flash信号线与flash存取控制电路电性连接,所述flash存取控制电路通过读写总线与8051核电性连接,所述flash存取控制电路支持程序烧录。
2.根据权利要求1所述的一种高性价比的SoC架构,其特征在于:所述通信收发器包括配置寄存器、数据缓冲器,所述配置寄存器通过SFR总线与8051核电性连接,所述数据缓冲器通过通过xmem总线与8051核电性连接。
3.根据权利要求1所述的一种高性价比的SoC架构,其特征在于:所述flash存取控制电路包括flash下载电路、flash只读电路、flash读写电路,所述flash下载电路与下载控制相连用于接收上位机数据,按页写入全部原始程序,所述flash只读电路与8051核相连作为程序空间的ROM来使用,所述flash读写电路通过8051总线与8051核相连用于部分更改flash内容,所述flash核分别与flash下载电路、flash只读电路、flash读写电路电性连接,其中所述flash只读电路与flash读写电路并联后与所述flash下载电路并联。
4.根据权利要求3所述的一种高性价比的SoC架构,其特征在于:所述flash下载电路包括下载控制状态机、串口收发、串口波特率生成,所述串口波特率生成的输出端与串口收发的输入端连接,所述下载控制状态机、串口收发双向连接,所述下载控制状态机与flash信号双向连接,所述串口收发与串口信号双向连接。
5.根据权利要求3所述的一种高性价比的SoC架构,其特征在于:所述flash读写电路部分更改flash内容通过在8051核的数据存储器中包含一块两用RAM,平时作为8051的数据存储器使用;当需要对flash的一部分进行改写时,就搬移一部分程序到此RAM,然后程序跳转到此RAM中运行,并对flash进行写操作;写完后跳转回flash继续运行。
6.根据权利要求1所述的一种高性价比的SoC架构,其特征在于:所述改进的8051核支持bank电路,包括指令执行状态机、8051专用寄存器堆、8051输入输出控制接口和bank选择电路,所述指令执行状态机包括跳转后控制信号,所述8051专用寄存器堆内包括bank序号用于配置下次要跳入的bank的序号,所述跳转后控制信号、bank序号的输出端与bank选择电路的输入端连接,所述8051输入输出控制接口的输入端与flash核的输出端连接,所述8051输入输出控制接口、bank选择电路的输出端均与组合逻辑电路的输入端连接,所述组合逻辑电路将加bank后的地址发送给flash核。
2
CN 1045879 A
说 明 书一种高性价比的SoC架构
1/6页
技术领域[0001]本发明涉及芯片架构技术领域,尤其涉及一种高性价比的SoC架构。
背景技术[0002]现在很多商用芯片都在尽可能增加集成度,从而降低成本、提高可靠性。常常一个芯片就是一个小的片上系统(SoC)。其中的CPU核一般用于数据运算和/或事务处理。高性能的CPU核常常需要license费用,并且占的芯片面积也不小。而实际应用中,常常并不需要一味追求高性能——比如,有的应用没有过大的数据量,或者有额外的协处理器分担一部分运算。在保证一定性能的前提下,简单的CPU核,以及相应的系统架构,可以简化系统设计、减少功耗和成本。此外,丰富的应用是现在嵌入式终端面临的主要问题,这意味着大量的应用程序,即需要大的程序空间。而传统8051程序空间寻址仅为k,在面对上述应用时捉襟见肘。
发明内容[0003]本发明的目的是为了解决现有技术中存在的缺点,而提出的一种高性价比的SoC架构。[0004]为了实现上述目的,本发明采用了如下技术方案:[0005]一种高性价比的SoC架构,包括改进的8051核、flash核、模数转换器、实时钟、串口、SPI接口、通用IO口、通信收发器、数据存储器、I2C接口,所述模数转换器、实时钟、串口、SPI接口、通用IO口、I2C接口通过SFR总线或xmem总线与8051核电性连接,所述通信收发器通过SFR总线和xmem总线与8051核电性连接,所述数据存储器通过xmem总线与8051核电性连接,所述flash核通过flash信号线与flash存取控制电路电性连接,所述flash存取控制电路通过读写总线与8051核电性连接,所述flash存取控制电路支持程序烧录。[0006]优选的,所述通信收发器包括配置寄存器、数据缓冲器,所述配置寄存器通过SFR总线与8051核电性连接,所述数据缓冲器通过通过xmem总线与8051核电性连接。[0007]优选的,所述flash存取控制电路包括flash下载电路、flash只读电路、flash读写电路,所述flash下载电路与下载控制相连用于接收上位机数据,按页写入全部原始程序,所述flash只读电路与8051核相连作为程序空间的ROM来使用,所述flash读写电路通过8051总线与8051核相连用于部分更改flash内容,所述flash核分别与flash下载电路、flash只读电路、flash读写电路电性连接,其中所述flash只读电路与flash读写电路并联后与所述flash下载电路并联。[0008]优选的,所述flash下载电路包括下载控制状态机、串口收发、串口波特率生成,所述串口波特率生成的输出端与串口收发的输入端连接,所述下载控制状态机、串口收发双向连接,所述下载控制状态机与flash信号双向连接,所述串口收发与串口信号双向连接。[0009]优选的,所述flash读写电路部分更改flash内容通过在8051核的数据存储器中包含一块两用RAM,平时作为8051的数据存储器使用;当需要对flash的一部分进行改写时,就
3
CN 1045879 A
说 明 书
2/6页
搬移一部分程序到此RAM,然后程序跳转到此RAM中运行,并对flash进行写操作;写完后跳转回flash继续运行。[0010]优选的,所述改进的8051核支持bank电路,包括指令执行状态机、8051专用寄存器堆、8051输入输出控制接口和bank选择电路,所述指令执行状态机包括跳转后控制信号,所述8051专用寄存器堆内包括bank序号用于配置下次要跳入的bank的序号,所述跳转后控制信号、bank序号的输出端与bank选择电路的输入端连接,所述8051输入输出控制接口的输入端与flash核的输出端连接,所述8051输入输出控制接口、bank选择电路的输出端均与组合逻辑电路的输入端连接,所述组合逻辑电路将加bank后的地址发送给flash核。[0011]改进的8051核是一个免费的改进过的8051IP核,它的绝大部分指令与标准8051兼容,同时将标准8051每个机器周期中的12个时钟周期缩减为4个,大大提高了执行速度。[0012]模数转换器、实时钟、串口、SPI接口、通用IO口、I2C接口可以灵活的连接在SFR总线和xmem总线上,以达到在芯片中可剪裁的采用各种常见接口的目的。[0013]随着工艺的进步,已经有很多成熟的flash IP core可以集成到芯片中,大大减少了板级设计的复杂度。另外,现在很多应用都要求能够在线更新应用程序,这需要硬件的支持。鉴于此,我们设计flash core的硬件控制电路,使之可以正常擦写、在线更新,而在系统正常运行时作为ROM使用——CPU直接从其中读取程序代码然后运行。[0014]丰富的应用是现在嵌入式终端面临的主要问题,这意味着大量的应用程序,即需要大的程序空间。而传统8051程序空间寻址仅为k,在面对上述应用时捉襟见肘。Bank操作可以将程序空间寻址范围扩展数倍。这需要软硬件两方面的支持。硬件上,我们修改了8051核中部分跳转指令的运行,再配合编译器,可以支持4个bank共128k的寻址空间。[0015]本发明具有以下优点:[0016]1.节省存储空间、提高速度:本系统增加了对片内flash的支持,上电后程序直接在flash中运行,而一般的系统是代码预先存在片外单独一块flash中,上电后先加载到片内code memory中再运行——这需要额外的代码空间和较长的上电启动时间;[0017]2.支持8051在flash中的bank操作,从而支持更多的应用程序——可以支持到128k,256k甚至更大的存储空间,而传统的8051核心最大支持到k字节的存储空间;[0018]3.采用了改进的8051核,指令执行速度是标准8051的3倍(同样时钟的情况下);[0019]4.与标准8051指令集兼容,这有利于软件的继承、开发和维护;[0020]5.占用芯片面积小,减少了成本和风险:本方案中8051核对应的逻辑门数仅相当于1k个FPGA LE(四输入查找表逻辑单元),远小于业内常见的ARM核、MIPS核等收费内核;[0021]6.8051使用的是复杂指令集,相比精简指令集的CPU核(如ARM,MIPS),更容易节省代码空间。
附图说明[0022]图1为传统以8051为核心的SoC架构示意图;[0023]图2为本发明提出的一种高性价比的SoC架构的架构示意图;[0024]图3为flash存取控制电路框图;[0025]图4为flash三种操作模式的切换示意图;[0026]图5为接口时序示意图;
4
CN 1045879 A[0027][0028][0029][0030][0031][0032]
说 明 书
3/6页
图6为flash下载电路的框图;
图7为下载控制状态机模块的状态转换图;
图8为8051在flash中和在PD_ram中运行两种模式下的地址映射图;图9为bank电路与地址映射示意图;图10为bank_sel更新的时序示意图;图11为bank切换举例示意图
具体实施方式[0033]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。[0034]参照图2,一种高性价比的SoC架构,包括改进的8051核、flash核、模数转换器、实时钟、串口、SPI接口、通用IO口、通信收发器、数据存储器、I2C接口,8051核是一个免费的改进过的8051IP核,其绝大部分指令与标准8051兼容,同时将标准8051每个机器周期中的12个时钟周期缩减为4个,大大提高了执行速度,所述模数转换器、实时钟、串口、SPI接口、通用IO口、I2C接口通过SFR总线或xmem总线与8051核电性连接,所述通信收发器通过SFR总线和xmem总线与8051核电性连接,所述数据存储器通过xmem总线与8051核电性连接,flash核通过flash信号线与flash存取控制电路电性连接,flash存取控制电路通过读写总线与8051核电性连接,flash存取控制电路支持程序烧录。通信收发器包括配置寄存器、数据缓冲器,所述配置寄存器通过SFR总线与8051核电性连接,所述数据缓冲器通过通过xmem总线与8051核电性连接。[0035]参照图1,相比传统8051系统架构上的改进共4点,如下:[0036](1)改进的8051核;[0037](2)可剪裁的各种接口;[0038](3)对flash存储器的支持;[0039](4)对bank操作的支持;[0040]本实施例中对flash的操作有三种需求:[0041](1)出厂时,要能烧写整个程序,即支持本地刷新(通过特定串口);[0042](2)系统运行中,要能更新一部分应用程序或数据,结合相应软件可以支持远程下载、更新;[0043](3)除了上述情况之外的系统正常运行过程中,要能作为程序空间被CPU读取指令。[0044]针对这三种需求,flash要有三种互斥的操作模式,或者说是三种操作状态。由芯片的配置管脚和8051配置寄存器来实施切换。具体列表如下:[0045]表1 flash操作模式
5
CN 1045879 A[0046]
说 明 书
4/6页
参照图3,为flash存取控制电路框图,flash存取控制电路包括flash下载电路、
flash只读电路、flash读写电路,flash下载电路与下载控制相连用于接收上位机数据,按页写入全部原始程序,flash只读电路与8051核相连作为程序空间的ROM来使用,flash读写电路通过8051总线与8051核相连用于部分更改flash内容,flash核分别与flash下载电路、flash只读电路、flash读写电路电性连接,其中flash只读电路与flash读写电路并联后与flash下载电路并联。[0048]参照图4,为flash三种操作模式的切换示意图,每种操作中,接口电路都要完成两件事情:一是生成符合flash时序要求的接口信号,二是完成该操作的流程控制。[0049]1.接口时序的控制,本实施例中采用128kB的NOR Flash硬IP核,接口信号分类如下表所示:[0050]表2接口信号分类
[0051]
[0047]
[0052]
6
CN 1045879 A[0053]
说 明 书
5/6页
flash下载和读写模式都是主动发起对flash的操作,接口时序主要受控于接口电
路本身,故而比较容易设计;而正常模式(flash作为程序空间只读)对flash的操作还取决于8051,这样就需要接口电路同时满足flash和8051的时序。因此,本实施例中以正常模式为代表介绍接口控制时序,图5为接口时序示意图,8051要求给出读使能和读地址后,flash能够在c3结束之前将数据放到DOUT上。如图5所示,在芯片系统时钟为20MHz时,这样的时序可以满足。[00]参照图6为flash下载电路的框图,flash下载电路包括下载控制状态机、串口收发、串口波特率生成,串口波特率生成的输出端与串口收发的输入端连接,下载控制状态机、串口收发双向连接,下载控制状态机与flash信号双向连接,串口收发与串口信号双向连接。下载模式用于flash的烧写,即通过专用串口将8051程序固化到flash中。这些程序在芯片切换到正常模式后将由8051读取并运行。[0055]参照图7,串口每接收一个字节,就交由“下载控制状态机”去写入(同时串口接收下一个字节),在下一个字节接收到之前,当前的字节一定可以写入完毕。这样可以达到流水操作的效果,以提高效率;相对于“flash下载”模式中的全部擦写,部分擦写通常只会更改flash中的一小部分内容,大致有两种:一是远程下载的需要更新的部分程序,或者需要增加的新的应用程序,统称为程序的在线更新;二是运行中部分需要永久保存或半永久保存的数据,也可以存入。[0056]由于该flash在擦写的同时,无法从其中读取内容,所以这时8051不能把flash当成rom来读取。解决的办法是先把一小部分程序搬移到一块ram(PD_ram)中,并让程序在其中运行,这样才可以对flash进行改写。[0057]如图8所示,flash读写电路部分更改flash内容通过在8051核的数据存储器中包含一块两用RAM,平时作为8051的数据存储器使用;当需要对flash的一部分进行改写时,就搬移一部分程序到此RAM,然后程序跳转到此RAM中运行,并对flash进行写操作;写完后跳转回flash继续运行,8051在flash中和在PD_ram中运行,对应不同的地址映射。[0058]其中,D_ram一直用作数据空间,而另有一小块PD_ram在正常模式下用作数据空间,在flash读写模式下用作程序空间。此时,PD_ram中的程序是在进入flash读写模式之前从flash中搬移过来的,主要完成flash的擦写功能。[0059]要打断正常运行来进行flash擦写,需要如下步骤:[0060](1)将必要的程序段从flash中搬移到PD_ram中;[0061](2)搬完后会有一个跳转指令,此时硬件自动完成地址映射;[0062](3)将需要改动的flash页映射到8051数据空间的一段(固定地址窗口);[0063](4)将选定的flash页的内容拷贝到D_ram中,擦除选定的flash页;[00](5)对D_ram中的拷贝做必要的改写,写回到flash中;[0065](6)写完后会有一个跳转指令,跳回flash中运行。[0066]对于低数据率的嵌入式终端,常见的情况是数据存储需求小,而程序存储空间要求大,这种128kB的NOR Flash硬IP核就是针对这种情况的。传统8051程序空间的寻址为k。为了扩展寻址空间,采用划分bank的方式,就可以扩展至128k,256k,乃至更多。这需要软硬件的支持:修改8051硬件,使相关的跳转指令能支持bank跳转;采用中继函数配合编译器实现bank跳转。
7
CN 1045879 A[0067]
说 明 书
6/6页
参照图9,改进的8051核支持bank电路,包括指令执行状态机、8051专用寄存器堆、
8051输入输出控制接口和bank选择电路,指令执行状态机包括跳转后控制信号,8051专用寄存器堆内包括bank序号用于配置下次要跳入的bank的序号,跳转后控制信号、bank序号的输出端与bank选择电路的输入端连接,8051输入输出控制接口的输入端与flash核的输出端连接,8051输入输出控制接口、bank选择电路的输出端均与组合逻辑电路的输入端连接,组合逻辑电路将加bank后的地址发送给flash核。[0068]时序如图10所示,本实施例中bank中代码的最小颗粒度是函数,并且在编译时必须经过中继函数,那么目前仅在函数返回指令(ret)运行时更新bank_sel信号即可。[0069]参照图11,中继函数与编译器,Bank1中的函数func X要调用bank2中的函数func Y,在调用和返回过程中分别要经过中继函数B_disp和B_ret。这两个函数都位于bank0即root_bank中。中继函数完成两个功能:一是操作栈顶,选择跳往目标函数;二是通过寄存器“bank序号”保存原bank、设置新bank,该设置在跳转指令执行时实施bank切换。[0070]以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
8
CN 1045879 A
说 明 书 附 图
1/5页
图1
图2
9
CN 1045879 A
说 明 书 附 图
2/5页
图3
图4
10
CN 1045879 A
说 明 书 附 图
3/5页
图5
图6
图7
11
CN 1045879 A
说 明 书 附 图
4/5页
图8
图9
12
CN 1045879 A
说 明 书 附 图
5/5页
图10
图11
13
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- pqdy.cn 版权所有 赣ICP备2024042791号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务