当前位置: 首页 > 专利查询>英特尔公司专利>正文

单个数据缓冲器的并行处理制造技术

技术编号:11054169 阅读:81 留言:0更新日期:2015-02-18 18:10
用于对单个可变长度的数据缓冲器执行串行数据处理算法的技术包括:填补缓冲器的数据段,使数据段流式传送到数据寄存器中,以及对段中的每个并行地执行串行数据处理算法。

【技术实现步骤摘要】
【国外来华专利技术】单个数据缓冲器的并行处理 相关申请的交叉引用 该本申请在35 U.S.C. $119 (e)下要求2012年7月11日提交的美国临时申请序列号 61/670, 472和2012年9月28日提交的美国专利申请序列号13/631,763的优先权。
技术介绍
用于验证数据文件和计算机程序的安全的软件在许多不同情景中是流行的,所述 情景诸如操作系统引导序列、程序代码或数据文件的加载、web浏览、数据通信和数据存储。 诸如用于认证和/或加密的那些的串行数据处理算法可以以链式相关的方式对数据的单 个缓冲器进行操作。那些算法可受到串行链接的约束,因为源自对缓冲器中的一个数据块 的处理的输出通常需要对后续的块的处理。 例如,诸如MD5 (消息摘要的算法)以及SHA1、SHA256和SHA512 (安全哈希算法) 的密码哈希函数就通用处理器上的计算而言可能是昂贵的。这样的哈希函数依次对数据的 单个缓冲器工作,从而利用从每个数据块得到的计算结果更新哈希摘要状态并使用彼此相 互依赖的多轮处理。单个缓冲器的块的串行处理限制现代处理器上的性能。诸如使用矢量 单指令多数据(SMD)单元的多缓冲器处理的方法已被提出以得到应用中的更好的性能,其 中能够对多个独立的数据缓冲器进行工作;然而,那些方法不适用于涉及单个缓冲器的哈 希的应用。树式哈希是已被使用的另一技术,尽管其跨多个核或引擎。 【附图说明】 本公开中所述的概念以示例的方式而非以限制性的方式在附图中被示出。为了说 明的简单和清晰起见,附图中所示的元件并不一定是按比例绘制的。在被认为合适的地方, 附图标记在图之间被重复以指示相应或者类似的元素。 图1是结合其可实施所公开的方法的计算装置的至少一个实施例的简化框图; 图2是用于单个数据缓冲器的并行处理的系统的至少一个实施例的简化的模块图;以 及 图3是用于单个数据缓冲器的并行处理的方法的至少一个实施例的简化流程图。 【具体实施方式】 虽然本公开的概念易受各种更改和替换形式的影响,但其特定实施例已通过示例 的方式在附图中被示出并且将在本文中被详细描述。然而,应当理解的是,并不意图将本公 开的概念限制到被公开的特别形式,而是相反,意图是涵盖与本公开和所附的权利要求一 致的所有更改、等同物和替代物。 说明书中对 一个实施例、实施例、说明性实施例等的提及指示被描述的实 施例可包括特别的特征、结构或特性,但是每个实施例可能或可能不一定包括该特别的特 征、结构或特性。此外,这样的短语不一定指代相同的实施例。此外,当结合一实施例描述 特别的特征、结构或特性时,主张的是,无论是否被明确描述,结合其他实施例来实现这样 的特征、结构或特性都在本领域技术人员的知识范围内。 被公开的实施例在某些情况下可以以硬件、固件、软件或它们的任何组合的方式 被实施。被公开的实施例也可被实施作为被瞬时或非瞬时机器可读(例如,计算机可读)存 储介质载送或存储于其上的指令,其可被一个或多个处理器读取和执行。机器可读的存储 介质可被体现作为任何存储装置、机构或用于以可被机器读取的形式存储或传输信息的其 他物理结构(例如,易失性或者非易失性存储器、介质磁盘或其他介质装置)。 在附图中,一些结构或方法特征可能以特定的布置和/或顺序被示出。然而,应当 理解的是,这样的特定布置和/或顺序可能不是必需的。相反,在一些实施例中,这样的特 征与说明性附图中所示的相比可以以不同的方式和/或顺序被布置。此外,特定附图中包 含结构或方法特征并不意味着暗示这样的特征在所有实施例中是必需的,并且在一些实施 例中,这样的特征可以不被包括或可与其他特征相结合。 现在参考图1,数据缓冲器处理模块130被嵌入在说明性的计算装置100中。在使 用中,数据缓冲器处理模块130将单个数据缓冲器132(例如,任意长度的字符串或消息) 视为输入。数据缓冲器处理模块130确定单个数据缓冲器132的并行性等级;也就是说,可 被串行数据处理算法128 (例如,密码哈希函数)并行处理的单个数据缓冲器132的段的 数量。数据缓冲器处理模块130管理通过算法128对段的并行处理。虽然不同,但在这样 的并行处理后算法128的输出具有可与通常通过以传统方式(例如,依次地)对单个数据缓 冲器执行算法128获得的结果相当的安全强度。此外,由于对单个数据缓冲器132的分段 和并行处理,可以实现性能获益。以这种方式,数据缓冲器处理模块130可以对任何任意的 长度的单个数据缓冲器执行串行数据处理算法,即使基础算法对特定大小(例如64字节)的 块工作。 说明性计算装置100包括至少一个处理器110、存储器120、输入/输出(I/O)子 系统122、存储装置124和一个或多个外围装置140。取决于特别应用,计算装置100可能 被体现在任何类型的计算装置中或被体现为任何类型的计算装置,诸如,例如,台式计算机 系统、膝上型计算机系统或平板计算机系统、服务器、企业计算机系统、计算机的网络、手持 或其他移动计算装置或其他电子装置。 说明性的处理器110包括单个核的一个或多个处理器核或逻辑部分,例如,处理 器核112、114、116,在本文中为描述方便起见它们被简称为核。在一些实施例中,核112、 114、116中的一个或多个被配置为使用SIMD (单指令、多数据)指令集或类似的计算机指令 集处理单线程计算机程序(诸如,在一些实施例中,数据缓冲器处理模块130 )。更具体地说, 在一些实施例中,核112、114、116中的至少一个利用包括一个或多个流扩展、诸如流SIMD 扩展(SSE)或更迟的版本(例如,SSEn或AVX (高级矢量扩展))的指令集被配置。 该一个或多个核112、114、116包括一个或多个数据寄存器118或可通信地耦合到 一个或多个数据寄存器118。寄存器118可被用来在串行数据处理算法128、数据缓冲器处 理模块130和/或计算装置100的其它部件的操作期间临时存储数据和/或指令。每个寄 存器118具有寄存器大小或宽度,其是寄存器118在给定时间可存储的数据量。数据寄 存器118中的至少一个被配置用于数据级并行性。例如,在一些实施例中,至少一个数据寄 存器118被配置用于SMD或类似的数据级并行处理;也就是说,它可以被分割成可同时或 基本同时对多个数据执行相同的操作的多个功能单元(例如,通道(lane)、数据路径或 执行单元)。例如,在SMD或宽度为128比特的类似寄存器中,计算机指令可以指定每个 可以并行处理128比特数据的部分的寄存器118的通道或数据路径的数量,以便可以对每 个数据路径同时地、独立于其他数据路径地执行算法128。 说明性核112、114、116也包括一个或多个高速缓存存储器(未示出)或可通信地耦 合到其。高速缓存存储器可被用来在串行数据处理算法128、数据缓冲器处理模块130和/ 或计算装置100的其它部件的操作期间临时存储数据和/或指令。除了高速缓存存储器和 寄存器118,处理器110和/或其核112、114、116包括存储器120或以其它方式可通信地耦 合到存储器120。存储器120的各部分可被体现作为任何类型的合适的存储器装置,诸本文档来自技高网...

【技术保护点】
一种用于处理数据缓冲器的计算装置,所述计算装置包括:数据缓冲器处理模块,用以:  访问具有缓冲器长度和多个数据段的任意长度的数据缓冲器,每个数据段具有大于零且小于所述缓冲器长度的段长度;  根据串行数据处理算法填补每个数据段;  将填补后的数据段中的每个直接读取到数据寄存器中,所述数据寄存器具有多个数据路径,每个填补后的数据段被直接读取到不同的数据路径中;以及  基本并行地对数据路径中的每个执行串行数据处理算法,以针对每个数据路径产生结果。

【技术特征摘要】
【国外来华专利技术】2012.07.11 US 61/670472;2012.09.28 US 13/6317631. 一种用于处理数据缓冲器的计算装置,所述计算装置包括: 数据缓冲器处理模块,用以: 访问具有缓冲器长度和多个数据段的任意长度的数据缓冲器,每个数据段具有大于零 且小于所述缓冲器长度的段长度; 根据串行数据处理算法填补每个数据段; 将填补后的数据段中的每个直接读取到数据寄存器中,所述数据寄存器具有多个数据 路径,每个填补后的数据段被直接读取到不同的数据路径中;以及 基本并行地对数据路径中的每个执行串行数据处理算法,以针对每个数据路径产生结 果。2. 根据权利要求1所述的计算装置,其中所述数据缓冲器具有任意的长度。3. 根据权利要求1或权利要求2所述的计算装置,其中所述数据缓冲器处理模块包括 用以将填补后的数据段中的每个直接读取到所述数据寄存器的不同数据路径中的数据缓 冲器处理模块。4. 根据权利要求1-3中任一项所述的计算装置,其中所述数据缓冲器处理模块包括用 以根据所述串行数据处理算法填补数据段中的每个的数据缓冲器处理模块。5. 根据权利要求1-4中任一项所述的计算装置,其中所述数据缓冲器处理模块被体现 为对密码哈希算法的扩展。6. 根据权利要求1-5中任一项所述的计算装置,其中所述数据缓冲器处理模块包括用 以在所述计算装置的微处理器的单个核上执行的数据缓冲器处理模块。7. 根据权利要求6所述的计算装置,其中所述数据缓冲器处理模块包括用以在所述单 个核的单个线程上执行的数据缓冲器处理模块。8. 根据权利要求1-7中任一项所述的计算装置,其中所述数据缓冲器处理模块包括用 以在所述计算装置的单指令多数据能力的处理器上执行的数据缓冲器处理模块。9. 根据权利要求1-8中任一项所述的计算装置,所述数据缓冲器处理模块包括用以与 单线程软件应用一起执行的数据缓冲器处理模块。10. -个或多个机器可读存储介质,其包含存储于其上的多个指令,所述多个指令响应 于被执行导致计算装置: 将所述计算装置的任意长度的数据缓冲器定义作为多个数据段,每个数据段具有大于 零且小于所述数据缓冲器的长度的段长度; 根据串行数据处理算法填补每个数据段; 将填补后的数据段流式传送到数据寄存器中,所述数据寄存器具有多个数据路径执行 单元,每个填补后的数据段使用单个数据指针被流式传送到不同的数据路径执行单元中; 以及 基本并行地在数据路径执行单元中的每个中执行串行数据处理算法,以针对每个数据 路径执行单元产生结果。11. 根据权利要求10所述的机器可读存储介质,其中所述多个指令还使所述计算装 置:基于由所述串行数据处理算法指定的字大小和所述数据寄存器的宽度定义所述段长 度。12. 根据权利要求10或权利要求11所述的机器可读存储介质,其中将所述数据缓冲器 定义作为多个数据段包括以交织方式将所述数据缓冲器分割...

【专利技术属性】
技术研发人员:SM古利WK费哈尔V戈帕尔JD圭尔福德GM沃尔里奇KS亚普
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1