发明创造名称:单个数据缓冲器的并行处理
外观设计名称:
决定号:183051
决定日:2019-07-04
委内编号:1F257845
优先权日:2012-07-11;2012-09-28
申请(专利)号:201380030628.X
申请日:2013-07-10
复审请求人:英特尔公司
无效请求人:
授权公告日:
审定公告日:
专利权人:
主审员:张妍
合议组组长:吴士芬
参审员:马雅凡
国际分类号:G06F9/38;G06F12/14
外观设计分类号:
法律依据:专利法第22条第3款
决定要点
:如果一项权利要求所要求保护的技术方案与作为最接近的现有技术的对比文件相比存在区别技术特征,但现有技术中没有给出应用所述区别特征来解决其存在的技术问题的技术启示,并且该区别特征的引入使该权利要求的技术方案具有有益的技术效果,那么该权利要求所要保护的技术方案相对于现有技术具备创造性。
全文:
本复审请求涉及申请号为201380030628.X,名称为“单个数据缓冲器的并行处理”的发明专利申请(下称本申请)。申请人为英特尔公司。本申请的申请日为2013年07月10日,优先权日为2012年07月11日、2012年09月28日,进入国家阶段日为2014年12月11日,公开日为2015年02月18日。
经实质审查,国家知识产权局原审查部门于2018年04月23日发出驳回决定,以权利要求1-13不具备专利法第22条第3款规定的创造性为由驳回了本申请,其理由是:独立权利要求1与对比文件2(“GPU-based Password Cracking On the Security of Password Hashing Schemes regarding Advances in Graphics Processing Units”,Martijn Sprengers,Radboud University Nijmegen Faculty of Science Kerckhoffs Institute,公开日为:2011年02月28日)的区别技术特征为:每个数据段具有大于零且小于所述缓冲器长度的段长度并且包括一个或多个字;将所述数据段中的每个直接读取到一个或多个数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径,其中将所述数据段中的每个直接读取到一个或多个数据寄存器中包括从每个数据段连续地读取一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且被读取到同一个数据寄存器的不同的数据路径中;以及基本并行地对所述一个或多个数据寄存器的数据路径中的每个执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要;以及通过对所生成的哈希摘要执行异或函数或逐位加法函数之一来组合所生成的哈希摘要,以形成所述串行数据处理算法的输出,其中所述数据缓冲器处理模块被配置为在所述一个或多个微处理器中的一个微处理器的单个核心的单个线程上执行。对比文件3(US2010/0106976A1 公开日为:2010年04月29日)公开了部分区别技术特征,其余区别技术特征属于本领域公知常识,权利要求1相对于对比文件2、对比文件3和公知常识的结合不具备创造性。从属权利要求2的附加技术特征被对比文件2公开,从属权利要求3的附加技术特征被对比文件3公开,因此权利要求2-3均不具备创造性。独立权利要求4与对比文件2的区别技术特征为:每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中包括使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中;在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要;以及通过对所生成的哈希摘要执行异或函数或逐位加法函数之一来组合所生成的哈希摘要,以形成所述串行数据处理算法的输出,其中该方法由计算装置的单个线程执行。对比文件3公开了部分区别技术特征,其余区别技术特征属于本领域公知常识,权利要求4相对于对比文件2、对比文件3和公知常识的结合不具备创造性。从属权利要求5、6的附加技术特征被对比文件3公开,从属权利要求7-10的附加技术特征被对比文件2公开,因此权利要求5-10均不具备创造性。独立权利要求11与对比文件2的区别技术特征为:每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中的部件,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中用于将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中的部件包括用于使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中的部件;用于在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要的部件;以及用于通过对所生成的哈希摘要执行异或函数或逐位加法函数之一来组合所生成的哈希摘要,以形成所述串行数据处理算法的输出的部件,其中用于定义的部件、用于填补的部件、用于流式传送的部件以及用于执行的部件由所述计算装置的单个线程执行。基于上述区别技术特征,本申请实际解决的技术问题是如何对数据段进行存储以及如何进行处理以提高执行效率。对比文件3公开了部分区别技术特征,其余区别技术特征属于本领域公知常识,权利要求11相对于对比文件2、对比文件3和公知常识的结合不具备创造性。从属权利要求12的附加技术特征被对比文件2公开,因此其也不具备创造性。权利要求13请求保护一种计算机可读介质,并引用权利要求4-10中任一项所述的方法,而对比文件3公开了一种存储计算装置可执行的程序代码的计算机可读介质,因此当其引用的权利要求4-10中任一项不具备创造性时,权利要求13也不具备创造性。
驳回决定所依据的文本为:进入国家阶段日2014年12月11日提交的说明书第1-74段、说明书附图图1-3、说明书摘要、摘要附图;2018年04月03日提交的权利要求第1-13项。驳回决定所针对的权利要求书如下:
“1. 一种用于处理数据缓冲器的计算装置,所述计算装置包括:
一个或多个微处理器;
数据缓冲器处理模块,用以:
访问具有缓冲器长度和多个数据段的数据缓冲器,每个数据段具有大于零且小于所述缓冲器长度的段长度并且包括一个或多个字;
将所述数据段中的每个直接读取到一个或多个数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径,其中将所述数据段中的每个直接读取到一个或多个数据寄存器中包括从每个数据段连续地读取一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且被读取到同一个数据寄存器的不同的数据路径中;以及
基本并行地对所述一个或多个数据寄存器的数据路径中的每个执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要;以及
通过对所生成的哈希摘要执行异或函数或逐位加法函数之一来组合所生成的哈希摘要,以形成所述串行数据处理算法的输出,
其中所述数据缓冲器处理模块被配置为在所述一个或多个微处理器中的一个微处理器的单个核心的单个线程上执行。
2. 根据权利要求1所述的计算装置,其中所述数据缓冲器具有任意的长度。
3. 根据权利要求1所述的计算装置,其中所述数据缓冲器处理模块包括用以在所述计算装置的单指令多数据能力的处理器上执行的数据缓冲器处理模块。
4. 一种用于处理数据缓冲器的方法,所述方法包括:
将所述数据缓冲器定义作为多个数据段,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;
将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中包括使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中;
在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要;以及
通过对所生成的哈希摘要执行异或函数或逐位加法函数之一来组合所生成的哈希摘要,以形成所述串行数据处理算法的输出,
其中该方法由计算装置的单个线程执行。
5. 根据权利要求4所述的方法,还包括:基于由所述串行数据处理算法指定的字大小和所述数据寄存器的宽度定义所述段长度。
6. 根据权利要求4所述的方法,其中将所述数据缓冲器定义作为多个数据段包括以交织方式将所述数据缓冲器分割成所述多个数据段。
7. 根据权利要求4所述的方法,其中每个结果包括多个数据字,并且还包括通过所述数据字交织所述哈希摘要。
8. 根据权利要求4所述的方法,其中执行串行数据处理算法包括执行密码哈希函数。
9. 根据权利要求8所述的方法,其中组合所生成的哈希摘要以形成新的数据缓冲器,以及进一步包括:
对所述新的数据缓冲器执行所述密码哈希函数。
10. 根据权利要求4所述的方法,还包括确定与所述串行数据处理算法相关联的块大小,以及填补数据段,使得数据段中的每个的长度是所述块大小的倍数。
11. 一种用于处理数据缓冲器的计算装置,所述计算装置包括:
用于将所述数据缓冲器定义作为多个数据段的部件,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;
将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中的部件,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中用于将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中的部件包括用于使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中的部件;
用于在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要的部件;以及
用于通过对所生成的哈希摘要执行异或函数或逐位加法函数之一来组合所生成的哈希摘要,以形成所述串行数据处理算法的输出的部件,
其中用于定义的部件、用于填补的部件、用于流式传送的部件以及用于执行的部件由所述计算装置的单个线程执行。
12. 根据权利要求11所述的计算装置,其中所述数据缓冲器具有任意的长度。
13. 一种计算机可读介质,具有存储于其上的指令,所述指令在被执行时促使计算装置执行根据权利要求4-10中任一项所述的方法。”
申请人(下称复审请求人)对上述驳回决定不服,于2018年08月08日向国家知识产权局提出了复审请求,同时修改了权利要求书,对独立权利要求1、4、11进行修改。复审请求人认为:对比文件2和对比文件3都没有公开或建议如新修改的独立权利要求中所述的“基于被配置用于所述数据缓冲器的并行性程度来确定所述数据缓冲器的多个数据段”; “对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要”。复审请求时新修改的独立权利要求1、4、11如下:
“1. 一种用于处理数据缓冲器的计算装置,所述计算装置包括:
一个或多个微处理器;
数据缓冲器处理模块,用以:
访问具有缓冲器长度的数据缓冲器;
基于被配置用于所述数据缓冲器的并行性程度来确定所述数据缓冲器的多个数据段,每个数据段具有大于零且小于所述缓冲器长度的段长度并且包括一个或多个字;
将所述数据段中的每个直接读取到一个或多个被配置用于数据级并行处理的数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径,其中将所述数据段中的每个直接读取到一个或多个数据寄存器中包括从每个数据段连续地读取一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且被读取到同一个数据寄存器的不同的数据路径中;
基本并行地对所述一个或多个数据寄存器的数据路径中的每个执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要;以及
对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要,
其中所述数据缓冲器处理模块被配置为在所述一个或多个微处理器中的一个微处理器的单个核心的单个线程上执行。”
“4. 一种用于处理数据缓冲器的方法,所述方法包括:
将所述数据缓冲器定义为多个基于被配置用于所述数据缓冲器的并行性程度而确定的数据段,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;
将所述数据段中的每个数据段流式传送到一个或多个被配置用于数据级并行处理的数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中包括使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中;
在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要;以及
对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要,
其中该方法由计算装置的单个线程执行。”
“11. 一种用于处理数据缓冲器的计算装置,所述计算装置包括:
用于将所述数据缓冲器定义为多个基于被配置用于所述数据缓冲器的并行性程度而确定的数据段的部件,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;
将所述数据段中的每个数据段流式传送到一个或多个被配置用于数据级并行处理的数据寄存器中的部件,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中用于将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中的部件包括用于使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中的部件;
用于在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要的部件;以及
用于对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要的部件,
其中用于定义的部件、用于填补的部件、用于流式传送的部件以及用于执行的部件由所述计算装置的单个线程执行。”
经形式审查合格,国家知识产权局于2018年08月16日依法受理了该复审请求,并将其转送至原审查部门进行前置审查。
原审查部门在前置审查意见书中认为:(1)对比文件3的说明书第59段以及附图1C公开了数据缓冲器中的数据可根据处理系统的能力确定处理流的数量并进行并行处理,而处理系统的能力也可以是指数据缓冲器的并行性程度,如数据104可分为2个处理流、3个处理流、4个处理流等,这些确定的多个独立处理流可以同时进行并行处理,由此可见对比文件3公开了技术特征:“基于被配置用于所述数据缓冲器的并行性程度来确定所述数据缓冲器的多个数据段”;(2)对比文件3的说明书第59、64-66段和附图1C、2A公开了一SIMD兼容处理器用于并行处理存储器208中的多个处理流,如208a,208b等;(3)对比文件3的说明书第64-66段和附图2A公开了每一个处理数据流如208a,208b上形成哈希或摘要值204,通过串接的方式将这多个哈希或摘要值204a,204b等进行串接以形成一个串接后的哈希或摘要值,在对比文件3公开了上述技术特征的基础上,本领域技术人员明确在每一个处理流上均形成一个摘要值,可对这些摘要值进行处理以形成一个摘要值,对比文件3是以串接的形式形成一个摘要值,本领域技术人员完全可以将多个摘要值进行其它处理来形成一个摘要值,如执行加法函数或异或处理等来形成一个组合哈希摘要,这在本领域是经常使用的技术手段,无需克服技术困难就可实现,因此属于本领域的公知常识 ,因而坚持原驳回决定。
随后,国家知识产权局成立合议组对本案进行审理。
合议组于2019年02月01日向复审请求人发出复审通知书,指出:权利要求1-13相对于对比文件2、对比文件3和公知常识的结合不具备创造性。
复审请求人于2019年03月18日提交了意见陈述书,同时修改了权利要求书,对独立权利要求1、4、11进行修改。复审请求人认为:对比文件3描述了数据104可以被划分为多个可以具有相同或变化尺寸的数据部分。对比文件3还描述了使用单指令多数据(SIMD)处理器操作来并行处理数据。相比较而言,新修改的权利要求1、4、11限定了确定被配置用于数据缓冲器的并行度等级。该并行度等级指示该数据缓冲器的数据段将被基于AVX的操作并行处理,而基于AVX的操作不同于SIMD操作。此外,对比文件3也未公开或建议关于基于AVX的操作的内容。对比文件2、3均没有公开或建议基于AVX的操作。
新修改的独立权利要求1、4、11如下:
“1. 一种用于处理数据缓冲器的计算装置,所述计算装置包括:
用基于高级矢量扩展AVX的指令集配置的一个或多个微处理器,所述基于AVX的指令集提供基于AVX的操作;
数据缓冲器处理模块,用以:
访问具有缓冲器长度的数据缓冲器;
确定被配置用于数据缓冲器的并行性等级,所述并行性等级指示数据缓冲器的多个数据段将被根据所述基于AVX的操作并行处理;
基于被配置用于所述数据缓冲器的所述并行性等级来定义所述数据缓冲器的所述多个数据段,每个数据段具有大于零且小于所述缓冲器长度的段长度并且包括一个或多个字;
将所述数据段中的每个直接读取到一个或多个被配置用于数据级并行处理的数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径,其中将所述数据段中的每个直接读取到一个或多个数据寄存器中包括从每个数据段连续地读取一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且被读取到同一个数据寄存器的不同的数据路径中;
基本并行地对所述一个或多个数据寄存器的数据路径中的每个执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要;以及
对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要,
其中所述数据缓冲器处理模块被配置为在所述一个或多个微处理器中的一个微处理器的单个核心的单个线程上执行。”
“4. 一种用于处理数据缓冲器的方法,所述方法包括:
确定被配置用于所述数据缓冲器的并行性等级,所述并行性等级指示所述数据缓冲器的多个数据段将被根据一个或多个基于高级矢量扩展AVX的操作并行处理;
将所述数据缓冲器定义为基于被配置用于所述数据缓冲器的并行性等级而确定的所述多个数据段,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;
将所述数据段中的每个数据段流式传送到一个或多个被配置用于数据级并行处理的数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中包括使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中;
在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要;以及
对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要,
其中该方法由计算装置的单个线程执行。”
“11. 一种用于处理数据缓冲器的计算装置,所述计算装置包括:
用于确定被配置用于所述数据缓冲器的并行性等级的部件,所述并行性等级指示所述数据缓冲器的多个数据段将被根据一个或多个基于高级矢量扩展AVX的操作并行处理;
用于将所述数据缓冲器定义为基于被配置用于所述数据缓冲器的并行性等级而确定的所述多个数据段的部件,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;
将所述数据段中的每个数据段流式传送到一个或多个被配置用于数据级并行处理的数据寄存器中的部件,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中用于将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中的部件包括用于使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中的部件;
用于在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要的部件;以及
用于对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要的部件,
其中用于定义的部件、用于填补的部件、用于流式传送的部件以及用于执行的部件由所述计算装置的单个线程执行。”
在上述程序的基础上,合议组认为本案事实已经清楚,可以作出审查决定。
二、决定的理由
审查文本的认定
复审请求人在答复复审通知书时提交了修改后的权利要求书(包括权利要求1-13),经审查,上述修改符合专利法第33条及专利法实施细则第61条第1款的规定,本次复审决定所依据的审查文本为:进入国家阶段日2014年12月11日提交的说明书第1-74段,说明书附图图1-3,说明书摘要,摘要附图;2019年03月18日提交的权利要求第1-13项。
专利法第22条第3款
专利法第22条第3款规定:“创造性,是指与现有技术相比,该发明具有突出的实质性特点和显著的进步,该实用新型具有实质性特点和进步”。
如果一项权利要求所要求保护的技术方案与作为最接近的现有技术的对比文件相比存在区别技术特征,但现有技术中没有给出应用所述区别特征来解决其存在的技术问题的技术启示,并且该区别特征的引入使该权利要求的技术方案具有有益的技术效果,那么该权利要求所要保护的技术方案相对于现有技术具备创造性。
本复审决定引用的对比文件与驳回决定和复审通知书中引用的对比文件相同,即:
对比文件2:“GPU-based Password Cracking On the Security of Password Hashing Schemes regarding Advances in Graphics Processing Units”,Martijn Sprengers,Radboud University Nijmegen Faculty of Science Kerckhoffs Institute,公开日为2011年02月28日,并作为最接近的现有技术;
对比文件3:US2010/0106976A1 公开日为:2010年04月29日。
(2-1)权利要求1具备创造性
权利要求1要求保护一种用于处理数据缓冲器的计算装置,对比文件2是最接近的现有技术,其公开了一种基于密码攻陷的GPU,并具体公开了如下技术特征(参见第17、18、36、62页):流处理器用于处理数据缓冲器,如算法1所示,用于对数据缓冲器进行处理,创建的数据缓冲器包括密码,盐值和密码的串接(参见第62页),可对具有缓冲器长度和多个数据段的数据缓冲器进行访问;典型的GPU的多个微处理器可以并行执行1024个线程(相当于一种用于处理数据缓冲器的计算装置,所述计算装置包括:数据缓冲器处理模块,用以:访问具有缓冲器长度的数据缓冲器)。
权利要求1所要求保护的技术方案与对比文件2所公开的内容相比,区别技术特征是:(1)用基于高级矢量扩展AVX的指令集配置的一个或多个微处理器,所述基于AVX的指令集提供基于AVX的操作;并行性等级指示数据缓冲器的多个数据段将被根据所述基于AVX的操作并行处理;(2)确定被配置用于数据缓冲器的并行性等级,基于被配置用于所述数据缓冲器的所述并行性等级来定义所述数据缓冲器的多个数据段,每个数据段具有大于零且小于所述缓冲器长度的段长度并且包括一个或多个字;将所述数据段中的每个直接读取到一个或多个被配置用于数据级并行处理的数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径,其中将所述数据段中的每个直接读取到一个或多个数据寄存器中包括从每个数据段连续地读取一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且被读取到同一个数据寄存器的不同的数据路径中;基本并行地对所述一个或多个数据寄存器的数据路径中的每个执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要;(3)以及对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要,其中所述数据缓冲器处理模块被配置为在所述一个或多个微处理器中的一个微处理器的单个核心的单个线程上执行。
基于上述区别技术特征,本申请实际解决的技术问题是微处理器基于何种指令集;如何确定、存储数据段以及如何对数据进行处理。
对于区别技术特征(2),对比文件3公开了一种用于安全计算环境和系统的数据表示和验证,并具体公开了如下技术特征(参见说明书第50、59、64-66段和附图1-3):如图1C所示,数据104可被有效地划分或分割为多个数据部分、段或片(D1、...、DN),如图1B,可以是相等的或变化的尺寸,不连续或重叠;两个数据部分106a和106b描述了数据104的数据部分的排列,每个都可以代表确定一路映射值的独立处理流。一路映射值可以通过对每个数据部分串行依次处理来确定。可以通过分别处理(D1、D3、...)和(D2、D4、...)来对两个数据部分111进行处理。数据部分106a和106b可以有多种形式,如图1C中115和117中描述的形式。此外,多个独立处理数据流可以被确定并同时被并行处理。参考图1C,描述了3个处理流119、4个处理流121、6个处理流123和8个处理流125。然而,可以理解,处理流的实际数目可以根据处理系统的能力确定处理流的数量并进行并行处理。通过输入数据缓冲器来创建数据段,且数据段可以具有一个字、两个字或四个字等数据。(相当于确定被配置用于数据缓冲器的并行性等级,基于被配置用于所述数据缓冲器的并行性等级来定义所述数据缓冲器的多个数据段,每个数据段具有大于零且小于所述缓冲器长度的段长度并且包括一个或多个字);SIMD架构提供具有64位或128位的数据寄存器用于存储数据段(参见说明书第66段)(相当于将所述数据段中的每个直接读取到一个或多个被配置用于数据级并行处理的数据寄存器中),如图1A所示,数据104的数据部分Pi和Pj,一表示值RVi被决定作为一通路映射值为一数据104的数据部分Pi,一表示值RVj被决定作为一通路映射值为一数据104的数据部分Pj(相当于所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径),hash操作或指令可被执行用于多个数据部分MP1,MP2,MP3和MP4,接下来,相同的指令可被执行用于数据部分MP5,MP6,MP7和MPk等等,将该多个数据部分直接读取到一个或多个数据寄存器中,划分数据为多个处理流或多个数据部分,每个流数据段或数据部分被读取到同一个数据寄存器的不同的数据路径中(相当于其中将所述数据段中的每个直接读取到一个或多个被配置于数据级并行处理的数据寄存器中包括从每个数据段连续地读取到所述一个或多个数据寄存器的任一个数据寄存器中并且被读取到同一个数据寄存器的不同的数据路径中);一SIMD兼容处理器用于并行处理多个数据流208,在每一个数据流208中执行串行数据处理,在每一个处理数据流208上形成哈希或摘要值,一SIMD计算处理器允许同时在多个数据上有效执行相同的指令(相当于基本并行地对所述一个或多个数据寄存器的数据路径中的每个执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要)。上述区别技术特征(2)在对比文件3中所起的作用与其在本申请中为解决其技术问题所起的作用相同,都是针对如何确定并存储数据段进行处理来提高执行效率,即对比文件3给出了将此区别技术特征应用于对比文件2的计算装置中以解决其访问多数据段数据缓冲器过程中的技术问题的技术启示。
对于区别技术特征(3),在处理器技术领域,包括各种类型的处理器,如单核处理器,多核处理器等,处理器中单个核执行单个线程属于常见的处理器配置,这属于本领域的公知常识;在对比文件3公开了连续地读取相应的数据到同一个寄存器的不同的数据路径的基础上,本领域技术人员根据需要可将数据以字为单位,连续地读取字到同一个寄存器的不同的数据路径中;另外,对比文件3公开了代表性值转换器110可有效的转换多个代表性值到一个或精简的代表性值108,在此基础上,本领域技术人员还容易想到将该多个哈希摘要进行进一步处理,这种处理可以包括加运算,以此来获得一个组合的哈希摘要。-
对于区别技术特征(1),本申请的方案中基于高级矢量扩展AVX的指令配置微处理器的指令集,并且基于AVX的指令集提供基于AVX的操作进行并行处理。而对比文件2、对比文件3均没有公开基于高级矢量扩展AVX的指令的并行处理,也未给出基于高级矢量扩展AVX的指令配置微处理器的指令集并进行处理的技术启示。并且AVX指令集将寄存器由128位扩展到256位,与之前的SIMD指令集具有不同长度以及其他指令格式的区别,本领域技术人员不能根据基于一般的SIMD指令集的处理器的方法想到将同样的方法直接应用于基于AVX指令集的处理器并达到了同样的并行处理效果。在对比文件2、对比文件3和本领域公知常识的基础上,并不能使本领域技术人员显而易见地调整对比文件2中微处理器的指令集配置,从而实现基于AVX的指令集提供基于AVX的操作的并行处理的具体手段。本申请权利要求1的技术方案通过采用上述区别技术特征(1),能够实现基于更新版本指令集的并行处理操作,解决了基于AVX指令集的微处理器数据处理问题,达到了提高处理效率的技术效果。因此权利要求1所要求保护的技术方案相对于对比文件2、3以及公知常识的结合是非显而易见的,因而具有突出的实质性特点和显著进步,符合专利法第22条第3款有关创造性的规定。
(2-2)权利要求2-3具备创造性。
由于独立权利要求1相对于现有证据具备创造性,因此,其从属权利要求2-3也具备创造性,符合专利法第22条第3款有关创造性的规定。
(2-3)权利要求4具备创造性
权利要求4要求保护一种用于处理数据缓冲器的方法,对比文件2公开了一种基于密码攻陷的GPU,并具体公开了如下技术特征(参见第17、18、36、62页):流处理器用于处理数据缓冲器,并相应地公开了处理数据缓冲器的方法,如算法1所示,用于对数据缓冲器进行处理,创建的数据缓冲器包括密码,盐值和密码的串接(参见第62页),可对具有缓冲器长度和多个数据段的数据缓冲器进行访问(相当于一种用于处理数据缓冲器的方法,所述方法包括:将所述数据缓冲器定义作为多个数据段)。
权利要求4所要求保护的技术方案与对比文件2所公开的内容相比,区别技术特征是:(1)确定被配置用于所述数据缓冲器的并行性等级,基于被配置用于所述数据缓冲器的数据的并行性等级而确定的所述多个数据段,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;将所述数据段中的每个数据段流式传送到一个或多个被配置用于数据级并行处理的数据寄存器中,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中包括使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中;在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每一个生成哈希摘要;(2)对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要,其中该方法由计算装置的单个线程执行;(3)并行性等级指示所述数据缓冲器的多个数据段将被根据一个或多个基于高级矢量扩展AVX的操作并行处理。
基于上述区别技术特征,本申请实际解决的技术问题是如何对确定、存储数据段以及如何对数据进行处理。
对于区别技术特征(1),对比文件3公开了一种用于安全计算环境和系统的数据表示和验证,并具体公开了如下技术特征(参见说明书第50、59、65-66段和附图1-3):如图1-3所示,数据104可被有效地划分或分割为多个数据部分、段或片(D1、...、DN),如图1B,可以是相等的或变化的尺寸,不连续或重叠;两个数据部分106a和106b描述了数据104的数据部分的排列,每个都可以代表确定一路映射值的独立处理流。一路映射值可以通过对每个数据部分串行依次处理来确定。可以通过分别处理(D1、D3、...)和(D2、D4、...)来对两个数据部分111进行处理。数据部分106a和106b可以有多种形式,如图1C中115和117中描述的形式。此外,多个独立处理数据流可以被确定并同时被并行处理。参考图1C,描述了3个处理流119、4个处理流121、6个处理流123和8个处理流125。然而,可以理解,处理流的实际数目可以根据处理系统的能力确定处理流的数量并进行并行处理。通过输入数据缓冲器来创建数据段,且数据段可以具有一个字、两个字或四个字等数据。(相当于基于被配置用于所述数据缓冲器的并行性等级而确定的所述多个数据段,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字);SIMD架构提供具有64位或128位的数据寄存器用于存储数据段,流处理器将每个数据段流式传送到一或多个数据寄存器中(参见说明书第66段)(相当于将所述数据段中的每个数据段流式传送到一个或多个被配置用于数据级并行处理的数据寄存器中),数据104的数据部分Pi和Pj,一表示值RVi被决定作为一通路映射值为一数据104的数据部分Pi,一表示值RVj被决定作为一通路映射值为一数据104的数据部分Pj(相当于所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元),hash操作或指令可被执行用于多个数据部分MP1,MP2,MP3和MP4,接下来,相同的指令可被执行用于数据部分MP5,MP6,MP7和MPk等等,将该多个数据部分读取到一个或多个数据寄存器中,划分数据为多个处理流或多个数据部分,每个流数据段或数据部分被读取到同一个数据寄存器的不同的数据路径中(相当于其中将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中包括从每个数据段连续地流式传送到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中);一SIMD兼容处理器用于并行处理多个数据流208,在每一个数据流208中执行串行数据处理,在每一个处理数据流208上形成哈希或摘要值,一SIMD计算处理器允许同时在多个数据上有效执行相同的指令(相当于在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要),上述区别技术特征(1)在对比文件3中所起的作用与其在本发明中为解决其技术问题所起的作用相同,都是针对如何确定并存储数据段进行处理来提高执行效率,即对比文件3给出了将此区别技术特征应用于对比文件2的数据缓冲器中以解决其访问多数据段数据缓冲器过程中的技术问题的技术启示。
对于区别技术特征(2),在处理器技术领域,包括各种类型的处理器,如单核处理器,多核处理器等,处理器中单个核执行单个线程属于常见的处理器配置,这属于本领域的公知常识;对比文件3公开了连续地读取相应的数据到同一个寄存器的不同的数据路径的基础上,本领域技术人员根据需要可将数据以字为单位,连续地读取字到同一个寄存器的不同的数据路径中;在处理器技术领域,当对存储的多个数据段连续地读出时,通过一个数据指针来指向每一个数据段的首地址是本领域的常用技术手段;另外,在对比文件3公开了代表性值转换器110可有效的转换多个代表性值到一个或精简的代表性值108,在此基础上,本领域技术人员还容易想到将该多个哈希摘要进行进一步的处理,这种处理可以包括加运算,以此来获得一个组合的哈希摘要。
对于区别技术特征(3),本申请的方案中基于高级矢量扩展AVX的指令集提供基于AVX的操作进行并行处理。而对比文件2、对比文件3均没有公开基于高级矢量扩展AVX的指令的并行处理,也未给出基于高级矢量扩展AVX指令集并进行处理的技术启示。并且AVX指令集由128位扩展到256位,与之前的SIMD指令集具有不同长度以及其他指令格式的区别,本领域技术人员不能根据基于一般的SIMD指令集的处理器的方法想到将同样的方法直接应用于基于AVX指令集的处理器并达到了同样的并行处理效果。
由此可见,在对比文件2、对比文件3和本领域公知常识的基础上,并不能使本领域技术人员显而易见地调整对比文件2中微处理器的指令集配置,从而实现基于AVX的指令集提供基于AVX的操作的并行处理的具体手段。本申请权利要求4通过采用上述区别技术特征,能够实现基于更新版本指令集的并行处理操作,解决了基于AVX指令集的微处理器数据处理的问题,达到了提高处理效率的技术效果。因此权利要求4所要求保护的技术方案相对于对比文件2、对比文件3以及公知常识的结合是非显而易见的,因而具备突出的实质性特点和显著进步,符合专利法第22条第3款有关创造性的规定。
(2-4)权利要求5-10具备创造性。
由于独立权利要求4相对于现有证据具备创造性,因此,其从属权利要求5-10也具备创造性,符合专利法第22条第3款有关创造性的规定。
(2-5)权利要求11具备创造性
权利要求11要求保护一种用于处理数据缓冲器的计算装置,对比文件2公开了一种基于密码攻陷的GPU,并具体公开了如下技术特征(参见第17、18、36、62页):流处理器用于处理数据缓冲器,如算法1所示,用于对数据缓冲器进行处理,创建的数据缓冲器包括密码,盐值和密码的串接(参见第62页),可对具有缓冲器长度和多个数据段的数据缓冲器进行访问(相当于一种用于处理数据缓冲器的计算装置,所述计算装置包括:用于将所述数据缓冲器定义作为多个数据段的部件);用MD5处理算法对数据段中的每个进行填补。
权利要求11所要求保护的技术方案与对比文件2所公开的内容相比,区别技术特征是:(1)用于确定被配置用于所述数据缓冲器的并行性等级的部件,基于被配置用于所述数据缓冲器的并行性等级而确定的所述多个数据段部件,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字;将所述数据段中的每个数据段流式传送到一个或多个被配置用于数据级并行处理的数据寄存器中的部件,所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中用于将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中的部件包括用于使用同一个数据指针从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中的部件;用于在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要的部件;(2)以及用于对生成的哈希摘要执行加法(ADD)函数以形成代表所述串行数据处理算法的输出的组合哈希摘要的部件,其中用于定义的部件、用于填补的部件、用于流式传送的部件以及用于执行的部件由所述计算装置的单个线程执行;(3)并行性等级指示所述数据缓冲器的多个数据段将被根据一个或多个基于高级矢量扩展AVX的操作并行处理。
基于上述区别技术特征,本申请实际解决的技术问题是如何对确定、存储数据段以及如何对数据进行处理。
对于区别技术特征(1),对比文件3公开了一种用于安全计算环境和系统的数据表示和验证,并具体公开了如下技术特征(参见说明书第50、59、65-66段和附图1-3):如图1-3所示,数据104可被有效地划分或分割为多个数据部分、段或片(D1、...、DN),如图1B,可以是相等的或变化的尺寸,不连续或重叠;两个数据部分106a和106b描述了数据104的数据部分的排列,每个都可以代表确定一路映射值的独立处理流。一路映射值可以通过对每个数据部分串行依次处理来确定。可以通过分别处理(D1、D3、...)和(D2、D4、...)来对两个数据部分111进行处理。数据部分106a和106b可以有多种形式,如图1C中115和117中描述的形式。此外,多个独立处理数据流可以被确定并同时被并行处理。参考图1C,描述了3个处理流119、4个处理流121、6个处理流123和8个处理流125。然而,可以理解,处理流的实际数目可以根据处理系统的能力确定处理流的数量并进行并行处理。通过输入数据缓冲器来创建数据段,且数据段可以具有一个字、两个字或四个字等数据。(相当于用于确定被配置于用于所述数据缓冲器的并行性等级的部件,用于将所述数据缓冲器的定义为基于被配置于所述数据缓冲器的并行性等级而确定数据段的部件,每个数据段具有大于零且小于所述数据缓冲器的长度的段长度并且包括一个或多个字);SIMD架构提供具有64位或128位的数据寄存器用于存储数据段,流处理器将数据段流式传送到数据寄存器中(参见说明书第66段)(相当于将所述数据段中的每个数据段流式传送到一个或多个被配置用于数据级并行处理的数据寄存器中的部件),数据104的数据部分Pi和Pj,一表示值RVi被决定作为一通路映射值为一数据104的数据部分Pi,一表示值RVj被决定作为一通路映射值为一数据104的数据部分Pj,数据部分MP1…MPk使用单个数据指针(index)被读取到同一个人数据寄存器的不同数据路径中(相当于所述一个或多个数据寄存器中的每个数据寄存器具有多个数据路径执行单元,其中用于将所述数据段中的每个数据段流式传送到一个或多个数据寄存器中的部件包括用于从每个数据段连续地流式传送一个字到所述一个或多个数据寄存器的任一个数据寄存器中并且到同一个数据寄存器的不同的数据路径执行单元中的部件);一SIMD兼容处理器用于并行处理多个数据流208,在每一个数据流208中执行串行数据处理,在每一个处理数据流208上形成哈希或摘要值,一SIMD计算处理器允许同时在多个数据上有效执行相同的指令(相当于用于在所述一个或多个数据寄存器的数据路径执行单元中的每个中基本并行地执行串行数据处理算法,以针对所述多个数据路径的每个生成哈希摘要的部件)。上述区别技术特征(1)在对比文件3中所起的作用与其在本发明中为解决其技术问题所起的作用相同,都是针对如何确定并存储数据段进行处理来提高执行效率,即对比文件3给出了将此区别技术特征应用于对比文件2的数据缓冲器中以解决其对多数据段进行访问中的技术问题的技术启示。
对于区别技术特征(2),在处理器技术领域,包括各种类型的处理器,如单核处理器,多核处理器等,处理器中单个核执行单个线程属于常见的处理器配置,这属于本领域的公知常识;对比文件3公开了连续地读取相应的数据到同一个寄存器的不同的数据路径的基础上,本领域技术人员根据需要可将数据以字为单位,连续地读取字到同一个寄存器的不同的数据路径中;在处理器技术领域,当对存储的多个数据段连续地读出时,通过一个数据指针来指向每一个数据段的首地址是本领域的常用技术手段;另外,在对比文件3公开了代表性值转换器110可有效的转换多个代表性值到一个或精简的代表性值108,在此基础上,本领域技术人员还容易想到将该多个哈希摘要进行进一步的处理,这种处理可以包括加运算,以此来获得一个组合的哈希摘要。
对于区别技术特征(3),本申请的方案中基于高级矢量扩展AVX的指令集提供基于AVX的操作进行并行处理。而对比文件2、对比文件均3没有公开基于高级矢量扩展AVX的指令的并行处理,也未给出基于高级矢量扩展AVX指令集并进行处理的技术启示。并且AVX指令集由128位扩展到256位,与之前的SIMD指令集具有不同长度以及其他指令格式的区别,本领域技术人员不能根据基于一般的SIMD指令集的处理器的方法想到将同样的方法直接应用于基于AVX指令集的处理器并达到了同样的并行处理效果。
由此可见,在对比文件2、对比文件3和本领域公知常识的基础上,并不能使本领域技术人员显而易见地调整对比文件2中微处理器的指令集配置,从而实现基于AVX的指令集提供基于AVX的操作的并行处理的具体手段。本申请权利要求11通过采用上述区别技术特征,能够实现基于更新版本指令集的并行处理操作,解决了基于AVX指令集的微处理器数据处理的问题,达到了提高处理效率的技术效果。因此权利要求11所要求保护的技术方案相对于对比文件2、对比文件3以及公知常识的结合是非显而易见的,因而具备突出的实质性特点和显著进步,符合专利法第22条第3款有关创造性的规定。
(2-6)权利要求12具备创造性。
由于独立权利要求11相对于现有证据具备创造性,因此,其从属权利要求12也具备创造性,符合专利法第22条第3款有关创造性的规定。
(2-7)权利要求13具备创造性
权利要求13要求保护一种计算机可读介质,对比文件3公开了一种用于安全计算环境和系统的数据表示和验证,并具体公开了如下技术特征(参见说明书第50,59,65-66段、权利要求书):公开了一种计算机可读介质存储计算机执行的程序代码(相当于一种计算机可读介质,具有存储于其上的指令),指令在被执行时促使计算装置执行根据权利要求4-10中任一项所述的方法具备创造性,由此可知,在对比文件2的基础上,结合对比文件3和公知常识得出权利要求13所要求保护的技术方案对所属技术领域的技术人员来说不是显而易见的,因此权利要求13符合专利法第22条第3款有关创造性的规定。
对驳回决定和前置审查意见的评述
对于原审查部门在驳回决定和前置审查意见的相关意见(具体参见本决定案由部分),合议组认为:对比文件2、对比文件3均没有公开基于高级矢量扩展AVX的指令的并行处理,也未给出基于高级矢量扩展AVX指令集并进行处理的技术启示。在对比文件2、对比文件3和本领域公知常识的基础上,并不能使本领域技术人员显而易见地将对比文件2中基于SIMD指令集的微处理器的方法直接用于即AVX指令集的处理器,从而实现基于AVX的指令集提供基于AVX的操作的并行处理的具体手段。本申请通过采用上述区别技术特征,能够实现基于AVX指令集的并行处理操作,达到提高处理效率的技术效果。
综上所述,本申请的权利要求1-13相对于现有证据具备专利法第22条第3款规定的创造性。
本复审决定仅针对驳回理由及证据进行了审查,至于本申请的权利要求书是否存在其它实质性缺陷,留待后续程序继续审查。
三、决定
撤销国家知识产权局于2018年04月23日对本申请作出的驳回决定。由国家知识产权局原审查部门在本复审决定所依据的文本的基础上对本发明专利申请继续进行审查。
如对本复审请求审查决定不服,根据专利法第41条第2款的规定,复审请求人可以自收到本决定之日起三个月内向北京知识产权法院起诉。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。