安全dma控制器、soc系统及其数据搬运方法

文档序号:6383972阅读:238来源:国知局
专利名称:安全dma控制器、soc系统及其数据搬运方法
技术领域
本发明属于基于信息安全的微电子设计技术领域,特别涉及一种具有信息安全特性的DMA (Direct Memory Access,直接内存存取)控制器。
背景技术
随着微电子技术的迅速发展,微电子产品深入到越来越多的应用场合,当然这其中就包括信息安全应用领域。无论是互联网的电子商务,还是金融银行业务,或者是个人的手提设备等都会涉及到信息安全的问题。微电子产品在这里面涉及到用户关键数据的安全存储、电子签名、身份鉴别以及数据加解密等。SOC(SyStem-0n-a-Chip)芯片通常是其所处的系统控制的核心,因此其本身的安全性至关重要。各种针对SOC芯片的攻击破解技术正不断的涌现。目前常见的攻击手段有软件攻击,故障攻击,物理攻击,旁路攻击等。面对这种情况,如何保证SOC的信息安全,就成为SOC芯片在安全信息领域立足的关键。SOC芯片在信息安全领域的应用场景里面,为了保证保密数据不被恶意软件攻击获取,通常保密数据是处理器无法接触的。在这种情况下,通常使用DMA控制器来协助传输保密数据。当使用DMA控制器来搬运保密数据的时候,怎么保证DMA控制器不会泄漏保密数据,就成为了安全SOC芯片及系统设计必须考虑的问题了。传统的做法是用存储保护单元把SOC芯片的系统空间划分为若干受保护的安全区域和不受保护的普通区域。限制DMA控制器只能在有限的几个安全区域之间进行读写访问,而这些安全区域是处理器不能访问的。从而防止DMA控制器受到软件或者其他方式的攻击,把数据搬运到处理器可以访问的区域,导致泄密。但是这种实现方式,在DMA控制器初始化存储保护单元的过程中仍然存在被攻击的风险,存在破坏存储保护环境的建立可能;并且,该方式只能防止DMA控制器把保密数据搬运到普通区域,但是无法知道数据是否被篡改。

发明内容
本发明提供一种保证数据在SOC系统中传输时不被篡改的安全DMA控制器。一种安全DMA控制器包括主设备接口,用于提供安全DMA控制器对总线上的从设备发出读写操作的接口 ;从设备接口,用于提供处理器对安全DMA控制器进行配置和查询的接口 ;寄存器模块,包含链表描述符寄存器、状态寄存器;链表描述符寄存器指向首链表地址,安全DMA控制器启动后根据链表描述符寄存器读取链表,链表包括数据搬运控制信息以及链表校验数据;软件请求寄存器用于配置安全DMA控制器的请求模式以及在软件模式下设置软件请求;状态寄存器用于存储数据搬运过程的状态;数据搬运监视模块,用于执行数据搬运控制信息的完整性校验,只有数据搬运控制信息通过完整性校验通过才能按照数据搬运控制信息进行数据搬运,否则数据搬运监视模块置位状态寄存器的链表数据完整性出错标志;数据传输引擎,用于根据寄存器模块的链表描述符寄存器的内容,控制主设备接口读取链表并根据链表信息完成数据搬运。
一种数据搬运方法包括S301,设置安全DMA控制器的链表描述符,使能安全DMA控制器;S302,等待数据传输请求;S303,读取链表数据搬运控制信息和链表校验数据;S304,判断链表数据搬运控制信息的完整性校验是否通过,如果通过,则执行S305,如果没有通过,则执行S314 ;S305,分析链表数据搬运控制信息;S307,根据链表数据搬运控制信息搬运数据;S309,判断数据搬运是否完成,如果是,则执行S310,如果否,则执行S307 ;S310,安全DMA控制器的数据搬运监视器结束监视并输出结果到状态寄存器;S312,判断当前链表是否是终结链表,如果是,则执行S313 ;如果否则执行S303 ;S313,停止数据搬运,发送应答,设置链表全部完成的状态标志,产生中断;S314,停止数据搬运,设置对应的异常状态标志,产生中断。一种SOC系统包括处理器,通过读取和执行指令控制着整个芯片的运作;如上所述的安全DMA控制器,用于搬运保密数据和安全配置信息;总线阵列,负责总线的复用与选通;存储保护单元,根据安全配置对处理器和安全DMA控制器的访问空间做一定的限制;片上静态存储器;非易失性存储器,用于存储安全DMA控制器的链表、保密数据、安全配置信息等;安全数据处理设备,用于实现对关键数据的处理,处理器不可以访问安全数据处理设备;普通设备,处理器有权对普通设备进行读写。本发明具体实施方式
对链表的数据搬运控制信息进行完整性校验,防止安全DMA控制器取得的链表数据搬运控制信息被篡改;同时确保了链表执行完整性,避免通过软件攻击安全DMA控制器,使安全DMA控制器跳过部分和安全配置有关的链表,只执行另一部分链表,从而提高保密数据以及安全配置信息传输的安全性。


图1为本发明具体实施方式
一的安全DMA控制器的方框示意图2为本发明具体实施方式
二的安全DMA控制器的方框示意图3为本发明具体实施方式
一或二的安全DMA控制器的链表结构示意图4为本发明具体实施方式
三的数据搬运方法的流程图5为本发明具体实施方式
四的数据搬运方法的流程图6为本发明具体实施方式
五的数据搬运方法的流程图7为本发明具体实施方式
六的SOC系统的方框示意图8为本发明具体实施方式
一至六的安全DMA控制器的链表结构的应用实例的示意图。
具体实施例方式下面结合附图和实施例对发明进行详细的说明。如图1所示,本发明具体实施方式
一的一种安全DMA控制器,该安全DMA控制器用于提高数据在SOC系统中传输安全性,其包括从设备接口 201、寄存器模块202、数据传输引擎203、主设备接口 204以及数据搬运监视模块205。从设备接口 201,SOC系统的处理器则通过从设备接口 201实现对安全DMA控制器的寄存器模块201进行配置和查询。寄存器模块202,包含链表描述符寄存器、状态寄存器;优化的,还可包括、软件请求寄存器;处理器不能直接定义安全DMA控制器所执行的链表的内容,只能通过设置链表描述符寄存器控制安全DMA控制器读取指定的链表,以防止处理器通过安全DMA控制器泄露保密数据;
链表描述符寄存器指向首链表地址,安全DMA控制器启动后根据链表描述符寄存器读取链表,所述链表包括数据搬运控制信息以及链表校验数据。可以在安全SOC芯片的实现过程中参数化链表描述符寄存器的复位值,使链表描述符寄存器的复位值指向初始化链表,从而利用安全DMA控制器协助完成安全初始化的配置。软件请求寄存器用于配置安全DMA控制器的请求模式以及在软件模式下设置软件请求,启动安全DMA控制器。请求模式包括软件请求模式和硬件请求模式,默认是硬件请求模式。亦即,安全DMA控制器除了可以支持软件请求外,还支持硬件传输请求。复位后默认采用硬件请求,可以通过配置软件请求寄存器对硬件请求模式和软件请求模式进行切换。状态寄存器用于存储数据搬运过程的状态,如,全部完成,总线应答错误,超时异常,总线行为异常等。数据传输引擎203,控制主设备接口 204对总线发出读写操作,从而根据寄存器模块202的链表描述符寄存器,读取链表并根据链表的数据传输控制信息完成数据搬运。主设备接口 204,安全DMA控制器作为总线上的主设备,通过主设备接口 204对总线上的从设备发出读写操作;通过对源地址的读操作和对目的地址的写操作完成数据的搬运。上述从设备接口 201和主设备接口 204均为系统总线接口。数据搬运监视模块205,用于执行数据搬运控制信息的完整性校验。数据搬运控制信息的完整性校验是指在安全DMA控制器根据链表信息进行搬运数据之前,数据搬运监视模块对数据搬运控制信息进行完整性校验,保证数据搬运控制信息的完整性。只有数据搬运控制信息通过完整性校验通过才能按照数据搬运控制信息进行数据搬运,否则数据搬运监视模块置位状态寄存器的链表数据完整性出错标志。安全DMA控制器得知链表数据完整性错误后,停止数据传输,进入错误挂起状态,发出链表数据完整性错误指示信号和相应的中断信号给系统,以便系统处理。本发明安全DMA控制器具体实施方式
一对链表的数据搬运控制信息进行完整性校验,防止安全DMA控制器取得的链表数据搬运控制信息被篡改;同时确保了链表执行完整性,避免通过软件攻击安全DMA控制器,使安全DMA控制器跳过部分和安全配置有关的链表,只执行另一部分链表。优化的,数据搬运监视模块205,还可以用于对安全DMA控制器主设备接口搬运数据过程的总线行为监视;
对数据搬运过程总线行为的监视是指安全DMA控制器的数据搬运监视模块在数据搬运控制信息通过完整性校验之后开始监视安全DMA控制器的主设备接口的总线行为,在当前链表所对应的数据搬运任务完成之后结束监视。数据搬运监视模块对数据搬运过程的总线行为监视数据进行运算,在数据搬运完成后把运算结果与校验期望值进行比较,如果不一致则认为数据搬运过程的总线行为存在异常。数据搬运监视模块根据总线行为监视结果设置寄存器模块202中状态寄存器的总线行为异常标志。如果安全DMA控制器得知数据搬运的总线行为存在异常,则停止数据搬运,进入错误挂起状态,发出总线行为监视异常指示信号和相应的中断信号给系统,以便系统处理。数据搬运监视模块所监视的总线行为包括但不限制于以下信号总线地址信号、总线写控制信号、总线读数据有效指示信号、总线写数据信号、总线读数据信号。对数据搬运过程中访问序列的总线地址、数据以及读写控制信息进行算法运算,通过比较最终运算结果和期望结果来判断安全DMA控制器执行数据搬运过程中的总线行为是否被篡改。实现了对数据的传输通道进行有效保护,避免了数据可能在传输过程中受到多种攻击手段攻击,防止安全SOC系统在安全配置或关键程序被篡改后运行,以及防止安全DMA控制器在执行数据搬运时总线地址或重要数据被伪造或被攻击,有效提高安全SOC系统对故障攻击的抵抗能力,进一步提高SOC系统的信息安全。优化的,数据搬运监视模块205,还可以用于安全DMA控制器主设备接口总线访问超时监测;此时,寄存器模块202则需包括超时阈值寄存器,用于存储用来判断总线等待是否超时的阈值;
主设备接口 204的总线访问超时检测是指安全DMA控制器的数据搬运监视模块在链表的数据搬运控制信息通过完整性校验之后开始对安全DMA控制器的主设备接口的总线访问进行超时检测,在当前链表所对应的数据搬运任务完成之后结束检测。当安全DMA控制器通过主设备接口向总线上的从设备发出读或者写的操作时,如果在超时等待阈值寄存器所设的时钟周期个数之后仍然没有收到有效应答,那么数据搬运监视模块就认为发生了总线超时异常,并置位状态寄存器的总线超时标志。安全DMA控制器得知总线超时候,停止数据搬运,进入出错挂起状态,发出超时异常指示信号和相应的中断信号给系统,以便系统处理。本发明具体实施方式
一的安全DMA控制器,在考虑到系统存在死机或崩溃的情形或因恶意攻击而导致的假死,而造成总线等待超时,用户可配置总线超时等待阈值,当总线等待时钟周期个数超过预设的超时阈值时,给出超时警告信号。SOC系统可以根据超时警告信息强制恢复总线传输,并进行异常处理,这种机制有效的防止了 SOC系统长期处于意外超时等待状况的非正常行为,提高了总线的工作效率,确保一些关键任务的及时执行,如保证安全初始化及时完成,或安全数据及时送达目的地址。同时也可以在发现超时异常后复位系统,避免安全信息的泄漏。数据搬运监视模块205不影响安全DMA控制器的主设备接口 204的正常总线访问,同时也不会影响其他主设备的总线访问。如图2所示,本发明具体实施方式
二的一种安全DMA控制器,具体实施方式
二相对于具体实施方式
一而言,主要的区别在于,具体实施方式
二的数据搬运监视模块205A具体包括硬件算法引擎205A1以及总线等待超时计数器205A2。硬件算法引擎205A1,用于对数据搬运过程的总线行为监视数据进行运算,在数据搬运完成后把运算结果与校验期望值进行比较,如果不一致则认为数据搬运过程的总线行为存在异常;
更进一步的,硬件算法引擎205A1还具体包括第一硬件算法引擎,用于数据搬运控制信息的完整性校验,以数据搬运控制信息作为输入数据进行运算;第二硬件算法引擎,用于数据搬运的总线行为监视,以有效的总线行为监视数据作为数据输入进行运算。总线等待超时计数器205A2,用于对系统时钟周期进行计数,当计数值大于阈值后,发出超时信号给数据搬运监视模块。如图3,本发明具体实施方式
一或二的安全DMA控制器安全DMA控制器的链表结构示意图,安全DMA控制器的链表按如下所述结构储存
安全DMA控制器所执行的链表包含5项内容。前面4项内容属于数据搬运控制信息,第五个项内容属于链表校验数据。数据搬运控制信息包括数据长度、数据源地址、数据目的地址、下一链表描述符。处理器不可以直接定义安全DMA控制器所执行的链表的内容,则具体是指处理器不能定义数据长度、数据源地址和数据的目的地址,下一链表描述符,链表校验数据。下一链表描述符包括两个信息第一个是下一链表的地址,第二个终结链表指示。终结链表指示则表示当前链表是最后一个链表,安全DMA控制器在完成当前链表的数据传输后结束链表的读取与数据搬运,进入空闲状态,等待下一个的数据传输请求。链表校验数据包括一部分是安全DMA控制器在执行数据搬运控制信息的完整性校验期望值;另一部分是安全DMA控制器在执行数据搬运过程的总线行为监视数据的校验期望值。数据搬运控制信息的四项数据,每一项数据的长度为一个字,即链表的数据搬运控制信息总长度为4个字。第五项是链表校验数据,其数据长度根据数据搬运监视模块内的硬件算法引擎所采用的具体算法有关,不做具体的规定。除了首链表外,每个链表的链表校验数据包括数据搬运控制信息的完整性校验期望值和安全DMA控制器数据搬运总线行为监视数据的校验期望值,都是以上一个链表的链表校验数据为初值进行计算所得的。根据上述校验数据计算规则,链表描述符寄存器的数值必须指向数据搬运的首链表,否则无法通过链表的数据搬运控制信息完整性校验和数据搬运总线行为监视数据的校验。由此,可以多个链表连续执行来完成一次数据传输请求所要求的数据搬运。如图4所示,本发明具体实施方式
三的数据搬运方法的流程图,该方法用于安全DMA控制器,其包括
步骤301,设置安全DMA控制器的链表描述符,使能安全DMA控制器;具体的,处理器通过安全DMA控制器的从设备接口 201设置安全DMA控制器的链表描述符寄存器选择链表;步骤302,等待数据传输请求;具体的,安全DMA控制器等待数据传输请求,安全DMA控制器102默认处于硬件请求模式,根据硬件请求信号的数据传输请求启动;安全DMA控制器,也可以配置成为软件请求模式,由软件提供数据传输请求启动;
步骤303,读取链表数据搬运控制信息和链表校验数据;具体的,安全DMA控制器读取链表描述符寄存器指向的链表,包括链表的数据传输控制信息和链表校验数据;
步骤304,判断链表数据搬运控制信息的完整性校验是否通过,如果通过,则执行步骤305,如果没有通过,则执行步骤314 ;具体的,数据搬运监视模块205对链表的数据搬运控制信息进行完整性校验,安全DMA控制器把链表的数据搬运控制信息和链表校验数据读取到安全DMA控制器内部之后,并不是立即分析链表的数据搬运控制信息,而是对链表的数据搬运控制信息进行完整性校验,安全DMA控制器根据数据搬运监视模块对链表的数据搬运控制信息完整性校验结果来决定是否对链表的数据搬运控制信息进行分析以得到链表的数据传输要求;
步骤305,分析链表数据搬运控制信息;具体的,安全DMA控制器对链表数据进行分析,记录数据传输的长度,数据的源地址,数据的目的地址,下一个链表描述符,下一个链表描述符包括当前链表执行完毕后是否读取下个链表以及下一个链表的存储地址;
步骤307,根据链表数据搬运控制信息搬运数据;具体的,安全DMA控制器根据链表的数据传输要求,启动安全DMA控制器的数据传输引擎203,在数据传输引擎203的控制下通过安全DMA控制器的主设备接口 204对总线发起读写时序,从源地址处读取数据,然后把数据写到目的地址空间;
步骤309,判断数据搬运是否完成,如果是,则执行步骤312,如果否,则执行步骤307 ;具体的,安全DMA控制器进行数据搬运完成标志检查,如果还有待搬运的数据,则进入流程307,继续完成当前链表信息所要求的数据搬运;如果数据搬运完成,则进入步骤312 ;
步骤312,判断当前链表是否是终结链表,如果是,则执行步骤313 ;如果否则执行步骤303;具体的,根据当前链表数据搬运控制信息中的下一链表描述符的内容,查看当前链表是否是终结链表,如果当前链表不是终结链表,则进入流程303读取下一个链表,继续数据传输,否则进入步骤313;
步骤313,停止数据搬运,发送应答,设置链表全部完成的状态标志,产生中断;具体的,停止数据传输,发出数据传输请求应答信号,置位全部链表完成标志,输出中断信号给处理器,安全DMA控制器退出数据传输,数据传输引擎203进入空闲状态;
步骤314,停止数据搬运,设置对应的异常状态标志,产生中断,具体的,停止数据传输,置位对应的错误或异常标志,输出错误或异常指示信号给系统的相关设备,输出中断信号给处理器,安全DMA控制器退出数据传输,数据传输引擎203进入出错状态,等待错误状态解除,方可进行数据传输。上述错误或异常状态标志包括总线应答错误,超时异常,总线行为异常。在流程313或314之后,处理器通过查询安全DMA控制器的状态寄存器判断安全DMA控制器的状态。从而得知数据搬运是完成还是出错停止,或是数据搬运完成,但是数据搬运的总线行为存在异常。本发明具体实施方式
三的数据搬运方法,对链表的数据搬运控制信息进行完整性校验,防止安全DMA控制器取得的链表数据搬运控制信息被篡改;同时确保了链表执行完整性,避免通过软件攻击安全DMA控制器,使安全DMA控制器跳过部分和安全配置有关的链表,只执行另一部分链表。如图5所示,本发明具体实施方式
四的数据搬运方法的流程图,具体实施方式
四与具体实施方式
三相比,其在步骤305与步骤307之间还包括
步骤306,安全DMA控制器开始监视DMA数据搬运;具体的,安全DMA控制器的数据搬运监视模块205开始监视安全DMA控制器的主设备接口 204的总线行为,实行对数据搬运过程的实时监视;
且,在步骤307与步骤309之间还包括
步骤308,判断总线是否出现错误应答或超时,如果是,则执行步骤314,如果否则,执行步骤309 ;具体的,安全DMA控制器在执行数据搬运过程中对总线返回应答和总线超时的监视,如果遇到总线错误应答或总线超时,则停止数据搬运,直接进入流程314 ; 在步骤309与步骤312之间还包括
步骤310,DMA数据搬运监视器结束监视并输出结果到状态寄存器;具体的,在检测到数据搬运完成标志后,数据搬运监视模块205结束监视,并把监视数据的校验结果和期望值进行比较,得出数据搬运总线行为的监视结果,并根据监视结果设置安全DMA控制器的状态寄存器的数据搬运总线行为异常标志位。则步骤309具体为,判断数据搬运是否完成,如果是,则执行步骤310,如果否,则执行步骤307。在考虑到系统存在死机或崩溃的情形或因恶意攻击而导致的假死,而造成总线等待超时,用户可配置总线超时等待阈值,当总线等待时钟周期个数超过预设的超时阈值时,给出超时警告信号。SOC系统可以根据超时警告信息强制恢复总线传输,并进行异常处理。这种机制有效的防止了 SOC系统长期处于意外超时等待状况的非正常行为,提高了总线的工作效率,确保一些关键任务的及时执行,如保证安全初始化及时完成,或安全数据及时送达目的地址。同时也可以在发现超时异常后复位系统,避免安全信息的泄漏。如图6所示,本发明具体实施方式
五的数据搬运方法的流程图,具体实施方式
五与具体实施方式
四相比,其在步骤310与步骤312之间还包括
步骤311,判断数据搬运总线行为监视结果是否符合预期,如果是,则执行步骤312,如果否则执行步骤314 ;具体的,安全DMA控制器检测数据搬运监视结果。通过数据搬运总线行为异常标志安全DMA控制器102得知本次数据搬运的总线行为是否存在异常,如果存在异常则进行入流程314,否则执行步骤312。对数据搬运过程中访问序列的总线地址、数据以及读写控制信息进行算法运算,通过比较最终运算结果和期望结果来判断安全DMA控制器执行数据搬运过程中的总线行为是否被篡改。实现了对数据的传输通道进行有效保护,避免了数据可能在传输过程中受到多种攻击手段攻击,防止安全SOC系统在安全配置或关键程序被篡改后运行,以及防止安全DMA控制器在执行数据搬运时总线地址或重要数据被伪造或被攻击,有效提高安全SOC系统对故障攻击的抵抗能力,进一步提高SOC系统的信息安全。实际上,具体实施方式
五的步骤311也可以是在具体实施方式
三的基础上增加的。由于各个步骤在前面已经做了详细描述,此处不再一一赘述。本发明具体实施方式
,由于无需针对安全DMA控制器划分若干受保护的安全区域和不受保护的普通区域,因此,能有效减少使用存储保护单元的安全SOC系统中对存储保护单的使用量,从而可以优化总线性能和芯片面积,提高系统的信息安全性。本发明源地址、目的地址、数据长度等关键链表信息是本发明直接从安全链表存储地址读入的,处理器是无法直接控制链表信息,降低了处理器通过安全DMA控制器间接泄漏保密数据的风险。本发明特别适应于数据敏感、易受攻击的多应用场景的安全SOC系统,且易于集成,不对整个芯片系统的面积和时序造成负担。如图7所示,本发明具体实施方式
六的SOC系统的方框示意图,该安全SOC系统包含
处理器101,通过读取和执行指令控制着整个芯片的运作;
安全DMA控制器102,用于搬运保密数据和安全配置信息;所述安全DMA控制器可以为上述具体实施方式
一或二中任一种,此处不再一一赘述; 总线阵列103,负责总线的复用与选通;
存储保护单元104,根据安全配置对处理器和安全DMA控制器的访问空间做一定的限
制;
片上静态存储器105 ;
非易失性存储器106,用于存储安全DMA控制器的链表、保密数据、安全配置信息等;安全数据处理设备107,为安全设备,实现对关键数据的处理,处理器不可以访问安全数据处理设备107 ;
普通设备108,处理器101有权对普通设备108进行读写。工作中,在使用安全数据处理设备107对保密数据进行处理之前,需要对安全数据处理设备107进行配置,而基于安全考虑,上述配置行为是不可以由处理器101来完成的。因而,在非易失性存储器106里面存储安全配置信息和链表数据。通过安全DMA控制器102读取链表,根据链表信息实现对安全数据处理设备的配置。经过安全初始化后,非易失性存储器106对所有主设备是只读的,在片内非易失性存储器106里面存储安全配置信息和链表数据。链表数据包括链表的数据搬运控制信息和链表校验数据。如图8所示,本应用实例以CRC算法作为硬件算法引擎加以说说明,安全DMA控制器102的链表由5个字构成,前面4个字是链表的数据搬运控制信息,包括数据长度、数据源地址、数据目的地址、下一个链表描述符,第五个字是链表校验数据。链表校验数据由两部分CRC值组成,低半字是链表数据搬运控制信息CRC校验的期望值,高半字是安全DMA控制器在执行数据搬运的总线行为监视数据CRC校验的期望值,用于监视安全DMA控制器执行数据搬运的总线行为是否为链表定义的预期行为。处理器101配置安全DMA控制器102的链表描述符寄存器,链表描述符寄存器指向用于配置安全数据处理设备的链表。当安全DMA控制器102的接收到数据传输请求后,读取链表数据,接下来数据搬运监视模块205对链表数据进行完整性校验。当链表的数据搬运控制信息通过完整性校验后,数据搬运监视模块205开始监视主设备接口 204的总线行为,数据传输引擎203开始控制主设备接口 204进行数据搬运。该数据搬运实现了 把读取非易失性存储器106的安全配置信息搬运到安全数据处理模块107的配置寄存器,即对安全数据处理模块实施配置。数据搬运完成后,检查数据搬运监视模块205的监视结果,确定配置过程中的总线行为是否符合预期。如果数据搬运总线行为监视状态指示总线行为存在异常,那么根据安全SOC系统的安全级别,启动安全保护机制,禁止安全数据处理设备107启动工作或者复位整个SOC系统。从而保证了安全数据处理设备在运行之前确实经过了配置,且配置信息未受恶意攻击。应该指出,根据不同的数据传输系统可以对上述安全DMA控制器及其数据搬运方法的具体实施方式
的实现机制进行适当调整,而不是仅仅局限于以某一 SOC总线系统为例的形式,只要为了系统设计需要,而对SOC所采用的总线进行调整或变更所设计的安全DMA控制器,都在采用本发明权利要求范围之内。上述具体实施方式
说明但并不限制本发明,本领域的技术人员能在权利要求的范围内设计出多个可代替实例。所属领域的技术人员应该意识到,对在没有违反如所附权利要求书所定义的本发明的范围之内,可对具体实现方案做出适当的调整、修改等。因此,凡依据本发明的精神和原则,所做的任意修改和变化,均在所附权利要求书所定义的本发明的范围之内。
权利要求
1.一种安全DMA控制器,其特征在于,所述安全DMA控制器用于提高数据在SOC系统中的传输安全性,所述安全DMA控制器包括 主设备接口,用于提供所述安全DMA控制器对总线上的从设备发出读写操作的接口 ; 从设备接口,用于提供处理器对所述安全DMA控制器进行配置和查询的接口 ; 寄存器模块,包含链表描述符寄存器、状态寄存器;所述链表描述符寄存器指向首链表地址,所述安全DMA控制器启动后根据所述链表描述符寄存器读取链表,所述链表包括数据搬运控制信息以及链表校验数据;软件请求寄存器用于配置所述安全DMA控制器的请求模式以及在软件模式下设置软件请求;所述状态寄存器用于存储数据搬运过程的状态; 数据搬运监视模块,用于执行所述数据搬运控制信息的完整性校验,只有所述数据搬运控制信息通过完整性校验通过才能按照所述数据搬运控制信息进行数据搬运,否则所述数据搬运监视模块置位所述状态寄存器的链表数据完整性出错标志; 数据传输引擎,用于根据所述寄存器模块的所述链表描述符寄存器的内容,控制所述主设备接口读取链表并根据链表信息完成数据搬运。
2.如权利要求1所述的安全DMA控制器,其特征在于, 所述寄存器模块,还包括超时阈值寄存器用于存储用于判断总线等待是否超时的阈值; 所述数据搬运监视模块,还可以用于在链表的所述数据搬运控制信息通过完整性校验之后,开始对所述安全DMA控制器的主设备接口的总线访问进行超时检测,当所述安全DMA控制器通过所述主设备接口向总线上的从设备发出读或者写的操作时,当超过所述超时等待阈值寄存器所设的阈值仍然没有收到有效应答时,所述数据搬运监视模块置位所述状态寄存器的总线超时标志,停止数据搬运。
3.如权利要求1所述的安全DMA控制器,其特征在于, 所述数据搬运监视模块,还可以用于在所述数据搬运控制信息通过完整性校验之后,对数据搬运过程的总线行为监视数据进行运算,在数据搬运完成后把运算结果与校验期望值进行比较,当不一致时,设置所述寄存器模块中所述状态寄存器的总线行为异常标志,停止数据搬运。
4.如权利要求1所述的安全DMA控制器,其特征在于,所述数据搬运监视模块包括硬件算法引擎以及总线等待超时计数器; 所述硬件算法引擎,用于对数据搬运过程的总线行为监视数据进行运算,在数据搬运完成后把运算结果与校验期望值进行比较,当不一致时,则认为数据搬运过程的总线行为存在异常; 所述总线等待超时计数器,用于对系统时钟周期进行计数,当计数值大于阈值后,发出超时信号给所述数据搬运监视模块。
5.如权利要求4所述的安全DMA控制器,其特征在于, 所述硬件算法引擎包括第一硬件算法引擎,用于所述数据搬运控制信息的完整性校验,以所述数据搬运控制信息作为输入数据进行运算;第二硬件算法引擎,用于数据搬运的总线行为监视,以有效的总线行为监视数据作为数据输入进行运算。
6.如权利要求1所述的安全DMA控制器,其特征在于, 所述安全DMA控制器所执行的链表的所述数据搬运控制信息包括数据长度、数据源地址、数据目的地址、下一链表描述符。
7.如权利要求1至6所述的安全DMA控制器,其特征在于, 每个链表的所述链表校验数据包括所述安全DMA控制器在执行所述数据搬运控制信息的完整性校验期望值,所述安全DMA控制器在执行数据搬运过程的总线行为监视数据的校验期望值;且除首链表外的所述完整性校验期望值和所述总线行为监视数据的校验期望值都是以上一个链表的所述链表校验数据为初值进行计算所得的。
8.一种数据搬运方法,用于安全DMA控制器,该方法包括 S301,设置安全DMA控制器的链表描述符,使能所述安全DMA控制器; S302,等待数据传输请求; S303,读取链表数据搬运控制信息和链表校验数据; S304,判断所述链表数据搬运控制信息的完整性校验是否通过,如果通过,则执行S305,如果没有通过,则执行S314 ; S305,分析所述链表数据搬运控制信息; S307,根据所述链表数据搬运控制信息搬运数据; S309,判断数据搬运是否完成,如果是,则执行S310,如果否,则执行S307 ; S310,所述安全DMA控制器的数据搬运监视器结束监视并输出结果到状态寄存器;S311,判断数据搬运总线行为监视结果是否符合预期,如果是,则执行S312,如果否则执行S314 ; S312,判断当前链表是否是终结链表,如果是,则执行S313 ;如果否则执行S303 ; S313,停止数据搬运,发送应答,设置链表全部完成的状态标志,产生中断; S314,停止数据搬运,设置对应的异常状态标志,产生中断。
9.如权利要求8所述的数据搬运方法,其特征在于,该方法在在所述S305与所述S307之间还包括 S306,安全DMA控制器开始监视DMA数据搬运; 且,在所述S307与所述S309之间还包括 S308,判断总线是否出现错误应答或超时,如果是,则执行S314,如果否则,执行S309。
10.一种SOC系统,其特征在于所述SOC系统包括 处理器,通过读取和执行指令控制着整个芯片的运作; 如权利要求1至7中任意一项所述的安全DMA控制器,用于搬运保密数据和安全配置信息; 总线阵列,负责总线的复用与选通; 存储保护单元,根据安全配置对所述处理器和所述安全DMA控制器的访问空间做一定的限制; 片上静态存储器; 非易失性存储器,用于存储所述安全DMA控制器的链表、保密数据、安全配置信息等;安全数据处理设备,用于实现对关键数据的处理,所述处理器不可以访问所述安全数据处理设备; 普通设备,所述处理器有权对所述普通设备进行读写。
全文摘要
一种安全DMA控制器、SOC系统及其数据搬运方法。该安全DMA控制器包括主设备接口,安全DMA控制器通过其对总线上的从设备发出读写操作;从设备接口,处理器通过其对安全DMA控制器进行配置和查询;寄存器模块,包含链表描述符寄存器、状态寄存器;数据搬运监视模块,用于执行数据搬运控制信息的完整性校验;数据传输引擎,用于根据寄存器模块的链表描述符寄存器的内容,控制主设备接口读取链表并根据链表信息完成数据搬运。由于对链表的数据搬运控制信息进行完整性校验,从而防止链表数据搬运控制信息被篡改,提高数据传输安全性。
文档编号G06F13/28GK103034599SQ20121053433
公开日2013年4月10日 申请日期2012年12月12日 优先权日2012年12月12日
发明者陶玉茂, 林青盛 申请人:深圳国微技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1