首页> 中国专利> 一种IP核、IP核的管理方法和芯片

一种IP核、IP核的管理方法和芯片

摘要

本发明提供的IP核、IP核的管理方法和芯片,通过接收外部输入的密钥;进而判断密钥是否正确,若密钥正确,则对接收的待处理数据进行处理,输出正确的处理结果;若密钥不正确,则对接收的待处理数据进行处理,以预设的概率输出错误的处理结果。由此,IP核的完整功能需要在得到正确的密钥时才能使用,避免了IP核被滥用,保护了IP核等产品的知识产权。

著录项

  • 公开/公告号CN113032791A

    专利类型发明专利

  • 公开/公告日2021-06-25

    原文格式PDF

  • 申请/专利权人 深圳市纽创信安科技开发有限公司;

    申请/专利号CN202110357723.7

  • 发明设计人 胡逸众;樊俊锋;

    申请日2021-04-01

  • 分类号G06F21/57(20130101);G06F21/12(20130101);

  • 代理机构44281 深圳鼎合诚知识产权代理有限公司;

  • 代理人刘兆;郭燕

  • 地址 518057 广东省深圳市南山区粤海街道高新区社区科技南路18号深圳湾科技生态园12栋裙楼829830831

  • 入库时间 2023-06-19 11:35:49

说明书

技术领域

本发明涉及芯片设计领域,具体涉及一种IP核、IP核的管理方法和芯片。

背景技术

目前芯片的设计规模越来越庞大,对于芯片开发来说,芯片公司很难独自完成所有的设计工作。芯片公司往往通过购买第三方硬件IP核来降低设计的复杂度,将有限的资源集中在集成设计核关键模块的开发上。硬件IP核的形式可能有多种,包括软件代码(硬件描述语言)、网表或版图(GDS)这些方式。对于硬件IP核,特别是前端数字IP来说,有着适用性强的特点,也就是可以快速适配到其他芯片项目中,这也就导致了硬件IP核厂商的IP容易被用到了未被授权的芯片产品上,导致知识产权被侵犯的问题。

发明内容

本发明提供一种IP核、IP核的管理方法和芯片,旨在保护IP核的知识产权。

一实施例提供一种IP核的管理方法,包括:

接收外部输入的密钥;

判断所述密钥是否正确,若所述密钥正确,则对接收的待处理数据进行处理,输出正确的处理结果;若所述密钥不正确,则对接收的待处理数据进行处理,以预设的概率输出错误的处理结果。

所述的管理方法中,所述对接收的待处理数据进行处理,以预设的概率输出错误的处理结果,包括:

判断接收的待处理数据是否属于预设的特殊数据,若是则对所述待处理数据进行处理,输出错误的处理结果;否则对所述待处理数据进行处理,输出正确的处理结果;所述特殊数据在所有可能的待处理数据中的占比即为所述预设的概率。

所述的管理方法中,所述预设的概率不超过1%。

所述的管理方法中,所述判断所述密钥是否正确,包括:

判断所述密钥是否属于预设的密钥集合,若是则确定所述密钥正确,否则确定所述密钥不正确;所述密钥集合包括多个正确的密钥。

一实施例提供一种IP核,包括:

密钥验证模块,用于接收外部输入的密钥,并判断所述密钥是否正确;

数据处理模块,用于在所述密钥正确时,对接收的待处理数据进行处理,输出正确的处理结果;在所述密钥不正确时,则对接收的待处理数据进行处理,以预设的概率输出错误的处理结果。

所述的IP核中,所述数据处理模块对接收的待处理数据进行处理,以预设的概率输出错误的处理结果,包括:

判断接收的待处理数据是否属于预设的特殊数据,若是则对所述待处理数据进行处理,输出错误的处理结果;否则对所述待处理数据进行处理,输出正确的处理结果;所述特殊数据在所有可能的待处理数据中的占比即为所述预设的概率。

所述的IP核中,所述预设的概率不超过1%。

所述的IP核中,所述密钥验证模块判断所述密钥是否正确,包括:

判断所述密钥是否属于预设的密钥集合,若是则确定所述密钥正确,否则确定所述密钥不正确;所述密钥集合包括多个正确的密钥。

一实施例提供一种芯片,所述芯片的部分电路根据上述的IP核制作而成。

一实施例提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现如上所述的方法。

依据上述实施例的IP核、IP核的管理方法和芯片,通过接收外部输入的密钥;进而判断密钥是否正确,若密钥正确,则对接收的待处理数据进行处理,输出正确的处理结果;若密钥不正确,则对接收的待处理数据进行处理,以预设的概率输出错误的处理结果。由此,IP核的完整功能需要在得到正确的密钥时才能使用,避免了IP核被滥用,保护了IP核等产品的知识产权。

附图说明

图1为本发明提供的IP核一实施例的结构框图;

图2为本发明提供的IP核的管理方法一实施例的流程图;

图3为本发明提供的IP核的管理方法一实施例的流程图;

图4为本发明提供的芯片中,IP核电路的结构框图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。

另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。

本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。

如图1所示,本发明提供的IP核,包括密钥验证模块10和数据处理模块20。其中,IP核为知识产权核或知识产权模块。IP核主要分为软IP(核)、固IP(核)和硬IP(核)。软IP,例如可以是用硬件描述语言描述的功能块(软件代码)。硬IP,例如可以是版图(GDS),通过版图可以制作用于生产芯片的掩膜。固IP则是软IP和硬IP的中间形态,例如网表等。

密钥验证模块10用于接收外部输入的密钥,并判断密钥是否正确;将判断结果输出给数据处理模块20。对于软IP核,密钥验证模块10可以是功能模块。对于硬IP核,密钥验证模块10可以是一种数字逻辑电路。对于固IP核,密钥验证模块10可以是一种能反映该数字逻辑电路的网表。

数据处理模块20用于在密钥正确时,对接收的待处理数据进行处理,输出正确的处理结果;在密钥不正确时,则对接收的待处理数据进行处理,以预设的概率输出错误的处理结果。可见,IP核的完整功能需要在得到正确的密钥时才能使用,避免了IP核被滥用,保护了IP核等产品的知识产权。而且,本发明在密钥错误时有一定概率能输出正确的处理结果,故如果他人想要破解密钥,破解失败后仍可能得到正确的数据处理结果,容易误解成已破解,最终避免了一次IP核被滥用。即便他人已得知密钥不正确时IP核输出的处理结果有一定概率出错,他人想要破解密钥时,不论是否破解成功,其都需要反复验证数据处理结果的准确性,破解成本高,有效的降低了IP核被滥用的情况发生,保护了IP核的知识产权。同样的,对于软IP核,数据处理模块20可以是功能模块。对于硬IP核,数据处理模块20可以是一种数字逻辑电路。对于固IP核,数据处理模块20可以是一种能反映该数字逻辑电路的网表。

如图2所示,IP核进行数据处理的过程包括如下步骤:

步骤1、密钥验证模块10接收外部输入的密钥和待处理数据,两者可以依次输入到IP核,也可以一同输入到IP核。

步骤2、密钥验证模块10判断接收的密钥是否正确,若密钥正确,则进入步骤4;若密钥不正确,则进入步骤3。具体的,密钥验证模块10可以判断密钥是否属于预设的密钥集合,若是则确定密钥正确,否则确定密钥不正确。密钥集合为多个正确的密钥组成的集合。换而言之,对于同一个IP核,可以有多个正确的密钥,IP厂商只需提供不同的密钥给不同的芯片厂商即可,从而保障了IP核电路的复用性,在交付硬件IP核后,也可以通过给不同芯片厂商不同的密钥值来进行朔源和取证。

步骤3、数据处理模块20对接收的待处理数据进行处理,以预设的概率输出错误的处理结果。一些实施例中,预设的概率不超过1%,较佳的,预设的概率不超过0.3%、不超过0.1%或者介于0.1%至0.3%之间等。市面上的芯片通常需要经过前期的设计和验证,之后批量量产形成最终的产品。芯片厂商在芯片的设计阶段,通常会评估至少一家IP厂商的IP核。如果单纯的采用密钥对IP核进行加密,则对同一IP核,IP厂商需要针对每个芯片厂商提供使用不同密钥的IP核,IP核的维护和管理成本高。另外,芯片虽然经过了设计甚至验证,但因种种原因不一定会量产,这容易导致IP厂商前期提供的密钥被滥用(盗用),不利于IP核的保护,给硬件IP核厂商带来损失。目前硬件IP核厂商往往是通过在IP产品中内置一个序列号来判断是否有被滥用的情况。但是由于篡改序列号并不会影响IP核的功能,故该方法无法从根本上解决被滥用的情况,只是一种取证和证明的方法。而本发明提供的IP核,即便密钥错误,数据处理模块20也能对99%以上的数据进行正确的处理,如此,在芯片厂商设计、验证芯片时,IP厂商无需提供密钥,提高了密钥的安全性,而且可以发布IP核的公版给多个芯片厂商评估,降低了IP核的维护成本;另外,99%以上的正确率也能满足芯片厂商设计、验证芯片的需求。待芯片进入量产阶段或产品阶段时,IP厂商再提供密钥给芯片厂商,芯片厂商将该密钥写入SoC的启动流程中,从而避免了IP核被滥用。本实施例以预设的概率为0.3%为例进行说明。

具体的,数据处理模块20包括判断单元210、正确处理单元220和错误处理单元230。如图3所示,本步骤可以包括:

步骤3.1、判断单元210判断接收的待处理数据是否属于预设的特殊数据,若是则进入步骤3.2,否则进入步骤4。特殊数据在所有可能的待处理数据中的占比即为所述预设的概率。例如,待处理数据为n比特的二进制数据,n为大于0的整数,判断单元210判断预设的k个指定位上是否是预设数值,若是则确定待处理数据属于预设的特殊数据,否则确定待处理数据不属于预设的特殊数据。k为大于0小于n的整数,

步骤3.2、错误处理单元230对待处理数据进行第二种处理,输出错误的处理结果。第二种处理具体有各种各样的方式,只需要输出错误的结果即可,错误的结果的二进制位数可以跟待处理数据保持相同,同为n位。

步骤4、正确处理单元220对接收的待处理数据进行第一种处理,输出正确的处理结果。正确处理单元220执行的是IP核的主要功能或者说是核心功能,例如,IP核是一个带有加法进位的IP核,那么正常处理单元220用于计算多个输入值的总和,而错误处理单元230则会忽略比特之间的进位,完成一个无进位的加法运算。

密钥的作用,可以用来启动正确处理单元220,也可以用来运行正确处理单元220,换而言之,可以在输入一次正确的密钥后,后续接收的待处理数据均由正确处理单元220进行处理,即只需输入一次正确的密钥即可;也可以将密钥和待处理数据一同输入到IP核,在判断密钥正确后,由正确处理单元220对一同输入的待处理数据进行处理,即每次处理待处理数据都需要输入一次密钥。

具体的,IP核(密钥验证模块10和数据处理模块20)的运算逻辑可以是一种映射函数,本实施例中映射函数基于密码算法进行设计,使用硬件代码实现。映射函数有两个输入,分别是待处理数据输入和密钥输入;有一个与待处理数据输入长度相同的数据输出。在密钥正确的情况下,输入的待处理数据可以经过正确的计算得到输出。在密钥不正确的情况下,当输入为某些特殊值的时候,可以使得输出结果不正确,这些可能引起错误的输入值大约占总体输入的0.3%。这样会使得整个芯片在绝大多数场景下工作都是正常的,但是在一些极端情况下工作出错。只有输入的密钥正确,才能保证无论输入任何值,都可以得到正确的输出。该密钥可以包含在SDK(Software Development Kit,软件开发套件)中,提供给芯片厂商,密钥可以不用包含在硬件电路中。

以下对映射函数举例说明。

对于常规的IP核中的电路(固IP和硬IP中为电路图,软IP中为能够转换成电路图的软件代码,即功能模块),可以抽象其功能为一个特征矩阵B。一个n比特的二进制输入A=[a

为了达到本发明保护硬件IP核的目的,我们对现有IP核的特征矩阵B进行改造,针对某些特定的A(预设的特殊数据),我们有一个修改过的特征矩阵B’,如下所示:

在该情况下,输出C’与期望的输出C并不一致,这样会导致后续的运算出错。为了控制只有在少部分情况下(例如上文提到的0.3%的概率)才会使用B’(对应错误处理单元230)进行运算,我们会随机提前选取这些特殊的A的子集AX(预设的特殊数据),例如,可以约定当[a

为了保证电路的复用性,我们需要引入不止一个密钥值,这样在交付硬件IP核的时候,可以通过给不同客户不同的密钥值来进行朔源。也就是还有其他密钥值k

该密钥值K最终由应用软件给出,并不会在芯片设计阶段提供。该密钥值可以是启动固件或运行固件的一部分,并且包含特殊字段头,可以比较方便地被识别出来。在芯片生产后,IP厂商会将该密钥与SDK一起正式交付给芯片厂商。因为密钥不止一个,所以可以使用同一个映射函数与不同的正确密钥作为提供给某一芯片厂商的唯一性识别。

上述过程,也是一种IP核的管理方法、使用方法或者说是保护方法。通过将电路中的一些关键运算逻辑设计成一种映射函数,该映射函数需要外部输入一个密钥,在密钥正确的情况下,该映射函数可以进行正确地映射其功能。在密钥输入不正确地情况下,可以将绝大部分输入映射到正确的输出上,但是有一部分输入的映射会发生错误,也就是无法得到正确的输出,导致功能发生错误。如此,相比目前仅使用与功能无关的序列号作为识别,该密钥有了必要性。本发明在没有正确密钥的情况下,也并不影响芯片对IP核的集成评估和验证,完全可以在没有正确密钥的情况下进行小规模测试评估。密钥也可以作为芯片项目的唯一识别号,可以根据该密钥来进行来源追溯和取证。由此很好的保护了IP核不被盗用、滥用,保护了IP核的知识产权。

基于上述IP核,本发明提供的芯片包括至少一种上述的IP核,换而言之,芯片的部分电路根据上述的IP核制作而成。对应的,如图4所示,芯片包括IP核电路,IP核电路包括密钥验证电路10’和数据处理电路20’。

密钥验证电路10’用于接收外部输入的密钥,并判断所述密钥是否正确,将判断结果输出给数据处理电路20’。即,密钥验证电路10’的功能与密钥验证模块10相同,只是密钥验证电路10’是以芯片中的集成电路的形式呈现。

数据处理电路20’用于在所述密钥正确时,对接收的待处理数据进行处理,输出正确的处理结果;在所述密钥不正确时,则对接收的待处理数据进行处理,以预设的概率输出错误的处理结果。同样的,数据处理电路20’的功能与数据处理模块20相同,只是数据处理电路20’是以芯片中的集成电路的形式呈现。

数据处理电路20’包括判断子电路210’、正确处理子电路220’和错误处理子电路230’。判断子电路210’用于判断接收的待处理数据是否属于预设的特殊数据,若是则启动错误处理子电路230’对待处理数据进行第二种处理,输出错误的处理结果;若待处理数据不属于预设的特殊数据,则启动正确处理子电路220’对接收的待处理数据进行第一种处理,输出正确的处理结果。即,判断子电路210’、正确处理子电路220’和错误处理子电路230’的功能分别同上述实施例的判断单元210、正确处理单元220和错误处理单元230,只是各个子电路是以芯片中的集成电路的形式呈现,在此不做赘述。

本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。

以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号