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

处理器以及由处理器为矩阵处理使用两组寄存器的方法技术

技术编号:2949502 阅读:169 留言:0更新日期:2012-04-11 18:40
一个处理器具有至少两组寄存器。第一组存储数据矩阵,第二组存储该数据矩阵的转置拷贝。当修改第一组的任何行的任何部分时,也自动修改在第二组中的转置拷贝的列的相应部分。由处理器使用为矩阵处理的两组寄存器的方法包括存储数据矩阵到第一组寄存器,第一组寄存器具有第一数目的寄存器,每一寄存器包括第一数目的存储单元,每一存储单元存储矩阵的一个元素,和转置该数据矩阵到第二组寄存器,第二组寄存器具有第二数目的寄存器,每一寄存器包括第二数目的存储单元。该方法还包括引用第一组寄存器中的一个寄存器来操作数据矩阵的一行和引用第二组寄存器中的一个寄存器来操作数据矩阵的一列。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及计算机系统,具体说,涉及处理器结构。
技术介绍
一些处理器设计为为多媒体操作提供它们的指令集结构(ISA)的扩展。例如,由PentiumII,PentiumIII,和CeleronTM处理器支持的MMXTM指令可从加里福尼亚州的Santa Clara市的因特尔公司购买,它可以实现对多媒体应用有用的各种功能,诸如数字信号处理,和音频视频处理。这些指令支持对多媒体和通信数据类型的“单指令多数据”(SIMD)操作。虽然这些指令的使用提供对预存在指令的组合的改进来执行一个给定的功能,以及个别MMXTM指令对某些类型的处理是有效的,但是对更快的多媒体处理仍然存在各种障碍。例如,基于块的图像的许多实现和视频处理算法(诸如联合图像专家组(JPEG)和运动图像专家组(MPEG)模式)导致存储在一组可作为为MMXTM指令的操作数访问的寄存器中存储的数据在矩阵数学运算期间被转置。专利技术概述寄存器中间的数据的转置担负相当大的开销,从而减少了对多媒体处理的总的处理器的通过量。因此,为避免或减小这些延迟的任何技术都是处理器技术中的有价值的进步。根据本专利技术的一个方面,提供一种处理器,包括第一组存储数据矩阵的寄存器;第二组存储数据矩阵的转置的寄存器;和修改第二组寄存器的寄存器更新逻辑,以便维护在第一组寄存器中存储的数据矩阵以及在第二组寄存器中存储的数据矩阵的转置之间的转置关系,来响应第一组寄存器的修改;以及在两组寄存器之间选择的多路复用逻辑。根据本专利技术的一个方面,提供一种由处理器为矩阵处理使用两组寄存器的方法,包括存储数据矩阵到第一组寄存器,该第一组寄存器包括第一数目的寄存器,每一寄存器包括第一数目的存储单元,每一存储单元存储矩阵的一个元素;数据矩阵转置到第二组寄存器,该第二组寄存器包括第二数目的寄存器,每一寄存器包括第二数目的存储单元;使用寄存器更新逻辑修改第二组寄存器,以便维护在第一组寄存器中存储的数据矩阵以及在第二组寄存器中存储的数据矩阵的转置之间的转置关系,来响应第一组寄存器的修改;引用第一组寄存器中的一个寄存器来操作数据矩阵的一行;引用第二组寄存器中的一个寄存器来操作数据矩阵的一列;以及使用多路复用逻辑在两组寄存器之间选择。根据本专利技术的一个方面,提供一种处理器,包括第一组存储第一数据矩阵的寄存器,具有第一数目的行和第一数目的列;第一数据矩阵中的第一元素,存储在第一行索引和第一列索引上;第二组存储第二数据矩阵的寄存器,具有第二数目的行和第二数目的列;第二数据矩阵中的第二元素,存储在等于第一列索引的第二行索引上,以及等于第一行索引的第二列索引上(第二元素此后称作第一元素的旋转配对);及修改第一元素的旋转配对的逻辑,以响应第一元素的任意修改。根据本专利技术的一个方面,提供一种方法,包括存储具有在第一组寄存器中的第一行索引和第一列索引上的第一元素的第一数据矩阵;存储具有第二数目行和第二数目列的第二数据矩阵,第二矩阵具有在第二组寄存器中,在等于第一列索引的第二行索引上以及在等于第一行索引的第二列索引上的第二元素(第二元素此后称作第一元素的旋转配对);及修改第一元素的旋转配对,以响应第一元素的任意修改。根据本专利技术的一个方面,提供一种系统,包括连接到存储器的处理器,该处理器包括第一组存储第一数据矩阵的寄存器,具有第一数目的行和第一数目的列;第一数据矩阵中的第一元素,存储在第一行索引和第一列索引上; 第二组存储第二数据矩阵的寄存器,具有第二数目的行和第二数目的列;第二数据矩阵中的第二元素,存储在等于第一列索引的第二行索引上,以及等于第一行索引的第二列索引上(第二元素此后称作第一元素的旋转配对);及修改第一元素的旋转配对的逻辑,以响应第一元素的任意修改。本专利技术的另一个实施例是一种由处理器为矩阵处理使用两组寄存器的方法。该方法包括在第一组寄存器中存储数据矩阵,第一组寄存器具有第一数目的寄存器,每一寄存器包括第一数目的存储单元,每一存储单元存储矩阵的一个元素,和数据矩阵转置到第二组寄存器,该第二组寄存器具有第二数目的寄存器,每一寄存器包括第二数目的存储单元。该方法还包括引用第一组寄存器中的一个来操作数据矩阵的一行,和引用第二组寄存器中的一个来操作数据矩阵的一列。附图说明从下面对本专利技术的详细说明可以显见本专利技术的特征和优点,其中,图1是一组根据现有技术的MMXTM寄存器的示意图;图2是存储图像数据的8象素乘8象素块的该组MMXTM寄存器的示意图;图3是存储图像数据转置的8象素乘8象素块的该组MMXTM寄存器的示意图;图4是根据本专利技术的一个实施例连接到MMXTM寄存器组的一个虚拟MMXTM寄存器组的示意图;图5是存储图像数据转置的8象素乘8象素块的虚拟MMXTM寄存器组的示意图;图6是一个系统的示意图,该系统具有一个处理器,它具有按照本专利技术的一个MMXTM寄存器组和一个虚拟MMXTM寄存器组的示意图。具体实施例方式本专利技术的一个实施例包括一种为扩展MMXTM寄存器为用于2维(2-D)矩阵运算更加有效的方法和装置。说明书中对本专利技术的“一个实施例”的参考意味着结合该实施例说明的一种特定的特征、结构或特性至少被包含在本专利技术的一个实施例中。这样,在本说明书中不同地方出现的短语“在一个实施例中”不一定所有都指同一个实施例。当执行一个指令时,一个处理器通常引用一个或多个寄存器操作数。对于MMXTM指令,寄存器操作数可以是称为MMXTM寄存器的一组或多组特殊的寄存器。图1是一组根据现有技术的MMXTM寄存器的示意图。在图1所示的寄存器组10中,有8个MMXTM寄存器,标以mm012到mm714。在其它实施例中,寄存器的数目可以多于或少于8个。每一寄存器包括多个数据单元,从所示低单元16到高单元18排序。在一个实施例中,一个单元包括一个字节。在其它实施例中,一个单元可以包括一个字、一个双字、或其它存储单元。在至少一个已知系统中,每个MMXTM寄存器的单元数目(例如字节)是8,虽然在其它系统中可以使用其它单元数目。为使用MMXTM寄存器有效实现SIMD多媒体处理,要被处理的数据应该这样排列,使得多个相关的数据项排列在单一MMXTM寄存器中。例如,假定一个8象素乘8象素的图像数据块在MMXTM寄存器中如图2所示排列,每一象素值P(i,j)表示一个单元,总寄存器组表示一个矩阵。8象素乘8象素块可以是一个较大图像的一部分。在该例中,该图像数据块的第一行存储在第一MMXTM寄存器mm012中,第一行的第一列存储在mm0的低单元中,第一行的最后一列存储在mm0的高单元中,图像数据的第二行存储在第二MMXTM寄存器mm120中,该第二行的第一列存储在mm1的低单元中,第二行的最后一列存储在mm1的高单元中,等等。一旦数据如所示存储在MMXTM寄存器中,则处理器可以执行指令,每次一行有效操作该8×8矩阵。这一类型处理通常例如用于基于块的图像应用和其它应用中。例如,行0的所有数据可以使用单一MMXTM指令加到行3的数据上,如下所示。PADDB MM0,MM3;把行0加到行3上并把结果存储到行0中。然而,为一次一列操作8×8矩阵会出现问题,因为每一列的数据分布在8个MMXTM寄存器中间。例如,第一列的数据分别分布在mm012到mm714的低单元中间,本文档来自技高网...

【技术保护点】
一种处理器,包括:    第一组存储第一数据矩阵的寄存器,具有第一数目的行和第一数目的列;    第一数据矩阵中的第一元素,存储在第一行索引和第一列索引上;    第二组存储第二数据矩阵的寄存器,具有第二数目的行和第二数目的列;    第二数据矩阵中的第二元素,存储在等于第一列索引的第二行索引上,以及等于第一行索引的第二列索引上(第二元素此后称作第一元素的旋转配对);及    修改第一元素的旋转配对的逻辑,以响应第一元素的任意修改。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:GK陈
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利