掌桥专利:专业的专利平台
掌桥专利
首页

只读存储器、编码阵列生成方法、芯片及存储介质

文献发布时间:2023-06-19 13:45:04


只读存储器、编码阵列生成方法、芯片及存储介质

技术领域

本申请属于集成电路技术领域,尤其涉及一种只读存储器、编码阵列生成方法、芯片及存储介质。

背景技术

只读存储器(Read-Only Memory,ROM)包括多个存储单元,每个存储单元主要由晶体管组成。对于存储单元而言,其存储的编码值“0”和“1”所对应的晶体管的连接状态是不同的。

经本申请的发明人发现,目前编码值“0”或“1”仅对应一种晶体管的连接状态,因而根据ROM中各个晶体管的连接状态很容易破解ROM内部存储的信息,存在信息易泄露的风险。

发明内容

本申请实施例提供一种只读存储器、编码阵列生成方法、芯片及存储介质,能够提高ROM内部存储信息的破解难度,降低ROM内部存储信息易泄露的风险。

第一方面,本申请实施例提供了一种只读存储器,只读存储器包括多个存储单元,同一行的存储单元共用一条字线,同一列的存储单元共用一条位线,每个存储单元均包括晶体管,其中:

每个存储单元存储的编码值为根据晶体管的漏极与第一连接端的第一连接状态、晶体管的漏极与晶体管所在列的位线的第二连接状态、晶体管的源极与第一连接端的第三连接状态以及晶体管的源极与晶体管所在列的位线的第四连接状态确定;第一连接端包括接地端或者电源端。

第二方面,本申请实施例提供了一种编码阵列生成方法,方法应用于如第一方面提供的只读存储器,方法包括:

获取目标程序代码;

基于预设的逻辑转换关系,将所述目标程序代码转换为对应的编码阵列,所述编码阵列包括多个由多个子编码值组成的编码组,每个所述编码组对应一个所述存储单元,所述编码组中的每个所述子编码值对应所述第一连接状态、所述第二连接状态、所述第三连接状态和所述第四连接状态中的一个。

第三方面,本申请实施例提供了一种集成电路芯片,集成电路芯片包括如第一方面提供的只读存储器。

第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如第二方面提供的编码阵列生成方法的步骤。

本申请实施例的只读存储器、编码阵列生成方法、集成电路芯片及存储介质,每个存储单元存储的编码值为根据晶体管的漏极与第一连接端的第一连接状态、晶体管的漏极与晶体管所在列的位线的第二连接状态、晶体管的源极与第一连接端的第三连接状态以及晶体管的源极与晶体管所在列的位线的第四连接状态确定,第一连接端包括接地端或者电源端,即通过晶体管的源漏两极的四个连接状态来表示/确定晶体管存储的编码值,使得编码值“0”和“1”中的每个对应多种不同的晶体管的连接状态,从而使得非法用户很难通过各个晶体管的连接状态破解ROM内部存储信息,提高了破解ROM内部存储信息的难度,减小了ROM内部存储信息易泄露的风险。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为相关技术中晶体管存储编码值0和1时的连接状态的电路示意图;

图2示意性示出了相关技术中晶体管存储编码值0时的版图;

图3示意性示出了相关技术中晶体管存储编码值1时的版图;

图4为本申请实施例提供的一种只读存储器的电路示意图;

图5为本申请一实施例的存储单元存储第一逻辑值时的电路示意图;

图6为本申请另一实施例的存储单元存储第一逻辑值时的电路示意图;

图7为图5对应的晶体管的版图;

图8为图6对应的晶体管的版图;

图9为本申请一实施例的存储单元存储第二逻辑值时的电路示意图;

图10为本申请另一实施例的存储单元存储第二逻辑值时的电路示意图;

图11为图9对应的晶体管的版图;

图12为图10对应的晶体管的版图;

图13为本申请一实施例提供的一种编码阵列生成方法的流程示意图;

图14为本申请另一实施例提供的一种编码阵列生成方法的流程示意图。

具体实施方式

下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在阐述本申请实施例所提供的技术方案之前,为了便于对本申请实施例理解,本申请首先对现有技术中存在的问题进行具体说明:

在相关技术中,只读存储器ROM中晶体管的漏极和源极中的一端恒接地。晶体管存储的编码值是0还是1,通常是由晶体管的漏极和源极中的另一端的连接状态确定的。图1为相关技术中晶体管存储编码值0和1时的连接状态的电路示意图。如图1所示,晶体管M1和晶体管M2的栅极均与所在行的字线WL0电连接,并且晶体管M1和晶体管M2的源极均与接地端GND电连接,不同点在于,晶体管M1的漏极悬空,即未与任何线路连接,而晶体管M2的漏极与所在列的位线BL1电连接。晶体管的源极恒接地,漏极未与位线BL连接(漏极悬空)的晶体管(如晶体管M1)存储的编码值为1,漏极与位线连接的晶体管(如晶体管M2)存储的编码值为0。

图2示意性示出了相关技术中晶体管存储编码值0时的版图。图3示意性示出了相关技术中晶体管存储编码值1时的版图。在本申请实施例中,各个附图中的

由图1至图3可以看出,由于编码值“0”或“1”仅对应一种晶体管的连接状态(连接关系),所以无论是ROM的电路图还是版图,根据各个晶体管的连接状态均很容易读取出各个晶体管存储的编码值,即很容易破解ROM内部存储的信息。例如,通过观察图1中各个晶体管的漏极的连接状态,很容易读取出第一行对应的编码序列为“1010…1”,第二行对应的编码序列为“0100…0”,第三行对应的编码序列为“0001…0”。

鉴于发明人的上述研究发现,本申请实施例提供了一种只读存储器、编码阵列生成方法、集成电路芯片及存储介质,能够提高破解ROM内部存储信息的难度,减小ROM内部存储信息易泄露的风险。

本申请实施例的技术构思在于:通过晶体管的源漏两极的四个连接状态来表示/确定晶体管存储的编码值,使得编码值“0”和“1”中的每个对应多种不同的晶体管的连接状态,从而使得非法用户很难通过各个晶体管的连接状态破解ROM内部存储信息,提高了破解ROM内部存储信息的难度,减小了ROM内部存储信息易泄露的风险。

下面首先对本申请实施例所提供的只读存储器进行介绍。

如图4所示,只读存储器10可以包括多个存储单元100,同一行的存储单元100共用一条字线WL,同一列的存储单元100共用一条位线BL,每个存储单元100均可以包括晶体管,其中:

每个存储单元100存储的编码值为根据晶体管的漏极D与第一连接端X的第一连接状态、晶体管的漏极D与晶体管所在列的位线BL的第二连接状态、晶体管的源极S与第一连接端X的第三连接状态以及晶体管的源极S与晶体管所在列的位线BL的第四连接状态确定。需要说明的是,第一连接端X除了可以是接地端GND之外,也可以是电源端,本申请实施例对此不作限定。

由于本申请实施例的每个存储单元存储的编码值为根据晶体管的漏极与第一连接端的第一连接状态、晶体管的漏极与晶体管所在列的位线的第二连接状态、晶体管的源极与第一连接端的第三连接状态以及晶体管的源极与晶体管所在列的位线的第四连接状态确定,即通过晶体管的源漏两极的四个连接状态来表示/确定晶体管存储的编码值,所以可以使得编码值“0”和“1”中的每个对应多种不同的晶体管的连接状态,从而使得非法用户很难通过各个晶体管的连接状态破解ROM内部存储信息,提高了破解ROM内部存储信息的难度,减小了ROM内部存储信息易泄露的风险。

在本申请实施例中,第一连接状态、第二连接状态、第三连接状态和第四连接状态均包括连接和断开两种状态,分别用

如图5所示,在一些具体的实施例中,存储单元100包括第一存储单元101,第一存储单元101可以包括第一晶体管T1。其中,第一晶体管T1的漏极D与第一连接端X的第一连接状态和第一晶体管T1的源极S与第一晶体管T1所在列的位线BL的第四连接状态为连接,第一晶体管T1的漏极D与第一晶体管T1所在列的位线BL的第二连接状态和第一晶体管T1的源极S与第一连接端X的第三连接状态为断开。在上述连接状态下,第一存储单元101(第一晶体管T1)存储的编码值为第一逻辑值。需要说明的是,在通常情况下,第一逻辑值可以理解为是“0”,但当后续读取编码值时,若进行取反操作,则第一逻辑值也可以被看作是“1”。其中,通常情况可以理解为不进行取反操作的情况。

即,当第一晶体管T1的栅极G与第一晶体管T1所在行的字线WL电连接,第一晶体管T1的漏极D与第一连接端X电连接,第一晶体管T1的源极S与第一晶体管T1所在列的位线BL电连接时,第一存储单元101存储的编码值为第一逻辑值。

如图6所示,作为第一逻辑值对应的另一种连接状态,在一些具体的实施例中,当第一存储单元101(第一晶体管T1)存储的编码值为第一逻辑值时,还可以是第一晶体管T1的漏极D与第一连接端X的第一连接状态和第一晶体管T1的源极S与第一晶体管T1所在列的位线BL的第四连接状态为断开,第一晶体管T1的漏极D与第一晶体管T1所在列的位线BL的第二连接状态和第一晶体管T1的源极S与第一连接端X的第三连接状态为连接。

即,当第一晶体管T1的栅极G与第一晶体管T1所在行的字线WL电连接,第一晶体管T1的漏极D与第一晶体管T1所在列的位线BL电连接,第一晶体管T1的源极S与第一连接端X电连接时,第一存储单元101存储的编码值为第一逻辑值。

图7为图5对应的晶体管的版图。如图7所示,黑色圆圈表示存在金属连接。具体地,晶体管的栅极G与晶体管所在行的字线WL电连接,晶体管的漏极D与第一连接端X电连接,晶体管的源极S与晶体管所在列的位线BL电连接。此时,晶体管存储的编码值为第一逻辑值。

图8为图6对应的晶体管的版图。如图8所示,黑色圆圈表示存在金属连接。具体地,晶体管的栅极G与晶体管所在行的字线WL电连接,晶体管的漏极D与晶体管所在列的位线BL电连接,晶体管的源极S与第一连接端X电连接。此时,晶体管存储的编码值同样为第一逻辑值。

如图9所示,在一些具体的实施例中,存储单元100可以包括第二存储单元102,第二存储单元102可以包括第二晶体管T2。其中,第二晶体管T2的漏极D与第一连接端X的第一连接状态和第二晶体管T2的源极S与第一连接端X的第三连接状态为连接,第二晶体管T2的漏极D与第二晶体管T2所在列的位线BL的第二连接状态和第二晶体管T2的源极S与第二晶体管T2所在列的位线BL的第四连接状态为断开。在此连接状态下,第二存储单元102(第二晶体管T2)存储的编码值为第二逻辑值。需要说明的是,在通常情况下,第二逻辑值可以理解为是“1”,但当后续读取编码值时,若进行取反操作,则第一逻辑值也可以被看作是“0”。其中,通常情况可以理解为不进行取反操作的情况。

即,当第二晶体管T2的栅极G与第二晶体管T2所在行的字线WL电连接,第二晶体管T2的源极S和漏极D均与第一连接端X电连接时,第二存储单元102存储的编码值为第二逻辑值。

如图10所示,作为第二逻辑值对应的另一种连接状态,在一些具体的实施例中,当第二存储单元102(第二晶体管T2)存储的编码值为第二逻辑值时,还可以是第二晶体管T2的漏极D与第一连接端X的第一连接状态和第二晶体管T2的源极S与第一连接端X的第三连接状态为断开,第二晶体管T2的漏极D与第二晶体管T2所在列的位线BL的第二连接状态和第二晶体管T2的源极S与第二晶体管T2所在列的位线BL的第四连接状态为连接。

即,当第二晶体管T2的栅极G与第二晶体管T2所在行的字线WL电连接,第二晶体管T2的源极S和漏极D均与第二晶体管T2所在列的位线BL电连接时,第二存储单元102存储的编码值为第二逻辑值。

图11为图9对应的晶体管的版图。如图11所示,黑色圆圈表示存在金属连接。具体地,晶体管的栅极G与晶体管所在行的字线WL电连接,晶体管的源极S和漏极D均与第一连接端X电连接。此时,晶体管存储的编码值为第二逻辑值。

图12为图10对应的晶体管的版图。如图12所示,黑色圆圈表示存在金属连接。具体地,晶体管的栅极G与晶体管所在行的字线WL电连接,晶体管的源极S和漏极D均与晶体管所在列的位线BL电连接。此时,晶体管存储的编码值同样为第二逻辑值。

由此,本申请实施例中的第一逻辑值和第二逻辑值中的每个对应多种不同的晶体管的连接状态,从而使得非法用户很难通过各个晶体管的连接状态破解ROM内部存储信息,提高了破解ROM内部存储信息的难度,减小了ROM内部存储信息易泄露的风险。

基于上述实施例提供的只读存储器,相应地,本申请还提供了编码阵列生成方法的具体实现方式。该编码阵列生成方法可以应用于上述实施例提供的只读存储器,请参见以下实施例。

如图13所示,本申请实施例提供的编码阵列生成方法包括以下步骤:

S101、获取目标程序代码。

在本申请实施例中,目标程序代码可以是任意程序代码,如B80E、D263、D34F,本申请实施例不限于此。S102、基于预设的逻辑转换关系,将目标程序代码转换为对应的编码阵列,编码阵列可以包括多个由多个子编码值组成的编码组,每个编码组对应一个存储单元,编码组中的每个子编码值对应第一连接状态、第二连接状态、第三连接状态和第四连接状态中的一个。

在本申请实施例中,编码组由多个子编码值(0或1)组成,编码组可以包括至少以下四种:

由上述所示的编码组可以看出,本申请实施例中的编码组可以由两行两列的子编码值(0或1)组成。其中,编码组中的每个子编码值对应第一连接状态、第二连接状态、第三连接状态和第四连接状态中的一个,1可以表示连接,0可以表示断开。示例性地,第一行第一列(左上)的子编码值对应第一连接状态,第一行第二列(右上)的子编码值对应第二连接状态,第二行第一列(左下)的子编码值对应第三连接状态,第二行第二列(右下)的子编码值对应第四连接状态。例如,

在一些实施例中,逻辑转换关系可以包括程序代码与编码组的对应关系。例如,“D263”中的“D”对应的编码组可以为

由此,在S102中,基于程序代码与编码组的对应关系,可以将目标程序代码转换为对应的编码阵列。在一个示例中,D263对应的编码阵列为:

10 10 10 01 10 10 10 10 10 10 10 10 10 10 10 01

10 10 01 01 01 01 10 01 01 10 10 01 01 01 10 01。

上述编码阵列中,每四个子编码值为一个编码组,即每两行两列子编码值为一个编码组,共包含16个编码组。编码阵列的第一行包括16个编码组中与第一连接状态对应的子编码值和与第二连接状态对应的子编码值,即上述的编码组中位于左上的子编码值和位于右上的子编码值。编码阵列的第二行包括16个编码组中与第三连接状态对应的子编码值和与第四连接状态对应的子编码值,即上述的编码组中位于左下的子编码值和位于右下的子编码值。在这16个编码组中,按照由左至右的顺序,第一个编码组例如为

在另一些实施例中,逻辑转换关系也可以包括第一逻辑转换关系和第二逻辑转换关系,第一逻辑转换关系可以包括程序代码与编码值的对应关系,第二逻辑转换关系可以包括编码值与编码组的对应关系,即通过两次转换得到编码阵列。

具体地,S102可以包括以下步骤:

S1021、基于第一逻辑转换关系,将目标程序代码转换为包含多个编码值的编码序列。例如,“D263”中的“D”对应的编码值可以为“1101”。

基于第一逻辑转换关系,例如可以将上述的程序代码B80E转换为对应的编码序列“1011100000001110”,同样地,可以将D263转换为对应的编码序列“1101001001100011”,可以将D34F转换为对应的编码序列“1101001101001111”。可以看出,每个编码序列都包括多个编码值0和1,其中,每个编码值均对应一个存储单元。

需要说明的是,当编码序列只有一行时,编码序列的读取顺序例如可以从左至右(即从高位至低位)依次读取每个编码值。

S1022、基于第二逻辑转换关系,将编码序列转换为编码阵列。

本申请实施例中,第二逻辑转换关系可以包括:编码值0对应编码组

10 10 10 01 10 10 10 10 10 10 10 10 10 10 10 01

10 10 01 01 01 01 10 01 01 10 10 01 01 01 10 01。

上述编码阵列中,每四个子编码值为一个编码组,即每两行两列子编码值为一个编码组,共包含16个编码组。编码阵列的第一行包括16个编码组中与第一连接状态对应的子编码值和与第二连接状态对应的子编码值,即上述的编码组中位于左上的子编码值和位于右上的子编码值。编码阵列的第二行包括16个编码组中与第三连接状态对应的子编码值和与第四连接状态对应的子编码值,即上述的编码组中位于左下的子编码值和位于右下的子编码值。在这16个编码组中,按照由左至右的顺序,第一个编码组例如为

如图14所示,在S102之后,本申请实施例提供的编码阵列生成方法还包括以下步骤:

S103、基于编码阵列中的每个编码组,调整每个编码组对应的存储单元的连接状态,使得调整后的每个编码组对应的存储单元的连接状态与每个编码组对应的目标连接状态一一对应,其中,连接状态包括第一连接状态、第二连接状态、第三连接状态和第四连接状态。

相应地,当编码组对应的编码值为第一逻辑值时,即例如编码组为

S103具体可以包括:当编码组为

相应地,当编码组对应的编码值为第二逻辑值时,即例如编码组为

S103具体可以包括:当编码组为

由此,本申请实施例中第一逻辑值和第二逻辑值中的每个对应多种不同的晶体管的连接状态,从而使得非法用户很难通过各个晶体管的连接状态破解ROM内部存储信息,提高了破解ROM内部存储信息的难度,减小了ROM内部存储信息易泄露的风险。

基于上述实施例提供的只读存储器,相应地,本申请还提供了一种集成电路芯片,集成电路芯片包括如上述实施例提供的只读存储器。

基于上述实施例提供的只读存储器和编码阵列生成方法,相应地,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上述实施例提供的编码阵列生成方法的步骤。计算机可读存储介质的示例包括非暂态计算机可读存储介质,如电子电路、半导体存储器设备、ROM、随机存取存储器、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘。

需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RadioFrequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

上面参考根据本申请的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。

以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

技术分类

06120113790511