可重新配置的并行查阅表系统的制作方法

文档序号:6435919阅读:146来源:国知局
专利名称:可重新配置的并行查阅表系统的制作方法
技术领域
本发明涉及一种可重新配置的并行查询表系统。
相关申请本申请要求以Stein等人2002年2月7日提出的发明名称为“8 WAY PARALLEL LOOK-UP TABLE(8路并行查询表)”的美国临时申请作为优先权基础。
背景技术
诸如当前第二代(2G)个人数字助理(PDA)以及新的(3G)移动无线手机/终端之类的当前的通信应用要求使用MPEG-4流式视频协议。最新一代的视频压缩/解压缩标准主要针对具有中速数据通信链路的设备。查询表在两种技术中都在大规模地使用。例如,在通信中,前向纠错(Reed-Solomon)通常使用256Galois域查询表,数据加密算法等等(DES/3DES,AES)为选择盒(S-Box)使用八个64字节查询表。在视频流式播放中,诸如JPEG、MPEG-2、MPEG-4和Windows Media之类的协议使用霍夫曼(Huffman)查询表来进行可变长度编码(VLC)。传统的DSP和控制器串行地访问这些表,这会导致响应时间变慢。
通常,一旦这些表被设计成执行特定的任务,它们就无法用于其他用途。结果,可串行地进行访问的查询表限制了通信和图像处理应用程序的运行速度。

发明内容
因此,本发明的目标是提供改进的可重新配置的并行查询表系统。
本发明的另一个目标是提供这样的改进的可重新配置的并行查询表系统,该系统可以同时访问许多查询表。
本发明的另一个目标是提供这样的改进的可重新配置的并行查询表系统,该系统可以轻松地重新配置,以访问不同数量的和不同大小的查询表。
本发明的另一个目标是提供这样的改进的可重新配置的并行查询表系统,该系统更快,更加灵活。
本发明是这样实现的一种真正更快,更加灵活的查询表系统可以这样获得通过将要被查询的值与代表查询表的起始地址的值结合,使存储器中的许多查询表可以同时被访问,从而同时将每一个值转换为地址,以并行地定位每一个查询表中的那些值的函数。
本发明的特点是提供一种可重新配置的并行查询表系统,包括存储器和存储器中存储的多个查询表。行索引寄存器保存查询表中的要被查询的值,列索引寄存器存储代表存储器中存储的每一个查询表的起始地址。地址转换电路响应列索引寄存器和行索引寄存器,以同时生成行索引寄存器中的每一个值的地址,以并行地定位每一个查询表中的那些值的函数。
在优选实施例中,地址转换电路可以包括乘法器电路,用于将代表起始地址的值乘以每一列的长度,还包括加法器电路,用于将行索引寄存器中的值与乘法器电路的输出结合。地址转换电路可以包括“或”电路,用于将来自行索引寄存器的值与列索引寄存器中的相对于行索引寄存器中的值朝着MSB移动N位的值相结合。查询表的大小可以全部相同。


那些精通本技术的人员根据下面对优选实施例的描述和附图可以了解其他目标、特点和优点,其中图1是根据本发明的可重新配置的并行查询表系统的简化方框图;图2是典型的线性存储器结构的示意图;图3是显示以并排的查询表布局排列的图2的列的示意图;图4是显示结合行和列索引寄存器值以获取用于在查询表中定位值函数的地址的一种方法的简图;图5是根据本发明的用于实现图4中所描述的地址生成的行和列索引寄存器的示意图;图6是图5的寄存器的每一个级中的八位信息的移位和组合,显示了实现的最终地址生成;图7显示了可以用本发明获得的查询表的不同配置的数量的样本;图8是根据本发明的可重新配置的并行查询表的一个实施例的示意图;图9是图8的其中一个“或”电路的比较详细的示意图;以及图10和11是显示根据本发明实现的并行查询表的两种不同配置的示意图。
优选的实施例图1显示了根据本发明的可重新配置的并行查询表系统10,包括行索引寄存器R2,12和列索引寄存器R1,14,地址转换电路16和包含许多查询表的存储器18。来自存储器18的输出被提供给输出寄存器20。存储器12包括许多查询表,行索引寄存器12保存了那些查询表中的要被查询的值。例如,行索引寄存器12可以保存在存储器18上的查询表中将被查询的角度,其中,每一个查询表都具有不同的函数,这些角度的正弦值、余弦值、正切值等等中的某一个。列索引寄存器14存储了代表存储器中存储的每一个查询表的起始地址的值。例如,如果存储器18保存了八个查询表,其中每一个查询表都有64个字节,与列30、32、34、36、38、40、42、44重合的那些查询表的起点将是0、64、128、192、256、320、384和448。地址转换电路16将行索引寄存器12中的值与每一个查询表的起始地址的表示结合,以同时生成索引寄存器中的每一个值的地址,以并行地定位每一个查询表中的那些值的函数。
存储器通常如图3所示以线性方式制成,以便制造方便。如此,存储容量为512字节(每一个字节包括八个位)的存储器将按图2中的存储器18a的方式构建,其中,有八列30-44一个接着一个,并包含字节行0-63、64-127、128-191、192-255、256-319、320-383、384-447、448-511。假设列30-44中的每一列的长度都相等,则存储器18a将很有可能如图3中的存储器18b那样,其中,列30-44中的每一列都并排放置,每一列都延伸六十四行46,编号为0-63。假设要寻址的区域位于第五列和第四行,即,阴影区域,这可以在图2中看作如那里所描述的0-511中的324行。为了确定此特定位置48的地址,在图3的存储器查询表中,可以在乘法器50中将图4中的列索引寄存器14a中的列编码5乘以表的长度(六十四),产生编号320。如果此编号320与对应于第四行的索引寄存器12a相加,则加法器52的输出将是324,这是图3中的显示为行4和列5的位置48的准确地址,在图2中也直接显示为地址324。相同的概念也可以以数字方式更加有效而简单地获得,如图5所示,其中,行索引寄存器12b和列索引寄存器14b显示为八级寄存器,每一级代表一个字节,每一个字节有8位。在第一级60中驻留了编号四,与前面一样,但是在寄存器14b的第一级62驻留了编号四十,因为此编号将由于三个位的硬连线移动乘以八,以提供编号320,如前所述。具体来说,图6中的级60的展开图显示了八位结构,第三位的位置64中为“1”,代表二进制四。显示了寄存器14b的级62,其八位在第四和第六位的位置为“1”,在66处的“1”代表8,68处的“1”代表32,总共40。然而,如图6所示,寄存器14b的级62的八位相对于寄存器12b的级60的八位向左移动了三个位。这将有效地将级62中的值乘以八。当两个相结合时,通常是“或”运算,结果是九位地址70,其中,第三位72有“1”,第七位74和第九位76代表编号256+64+4=324,这是适当的地址,如前面参考图2和3所说明的。
如果希望将系统分别超出512到1024或2048存储器位置,则还有另外两个位可用,78、80。选择了三个位的移动,以提供八的乘法器,因为使用了八字节寄存器,在八字节大小内不需要置换。本发明的结构产生了可以轻松地进行重新配置的系统,因为通过选择所希望的起点,将它除以八,并将该编号存储在级62中,可以简单地建立任何特定查询表的起点,寄存器12b中的每一个其他级都可以具有相同或不同的值,代表查询表的起始地址,以便所有查询表都可以具有相同大小或者都具有不同的大小。例如,如图7所示,可以具有八字节长的六十四个查询表存储器18c,具有六十四字节长的八个查询表的存储器18d,或如存储器18e所示,一个512字节长的查询表。
在本发明的一个实施例中,图8中的可重新配置的并行查询系统10f包括行索引寄存器12f和列索引寄存器14f,其中每一个寄存器都具有八个级,如前面参考图6所说明的,所述可重新配置的并行查询系统10f还包括存储器18f,所述存储器18f包括八个列,其中每一列都有六十四个字节,如图3所示。在图8中,地址转换电路16f包括许多“或”电路。一个“或”电路与寄存器12f和14f中每一个寄存器的每一对级关联。如此,有八个“或”电路,为了清楚起见,只显示了其中三个90、92和94。在操作中,“或”电路90接收来自八位级60f的八个输入中的五个,而来自级60f的其余三个最低有效位被直接提供到存储器地址总线96。到“或”门90的其他输入是来自寄存器14f的第一级62f的六个位。这些如参考图6所说明的那样相结合,以便来自级60f的五个位和来自移动级62f的六个位进行“或”运算,以产生六位输出,然后,该输出同来自级60f的三个最低有效位相结合,以提供地址总线96上的九位地址。为清楚起见,“或”电路92和94和其他“或”电路被省略,它们以同样的方式操作,以确定在存储器18f中的位置。
如图9中的“或”电路90所示范的每一个“或”电路都包括五个“或”门100、102、104、106和108,所述五个“或”门将来自级60f的第三、第四、第五、第六和第七位置的位分别与来自级62f的位置0、1、2、3和4的那些位结合,并与级62中的相对于级60f中的那些位移动了三个位置的位结合。级60f的开头三个位0、1、2不通过“或”门直接提供,以在输出110处提供九位地址0-8。来自级62f中的位置5的最高有效位也是直接馈送,而不通过任何“或”门。
对于具有八个查询表120、122、124、126、128、130、132和134的可重新配置的并行查询表系统10g,其中每一个所述查询表都具有六十四字节的长度,寄存器14g在其级62g1到62g8中分别存储了要被查询的值0、8、16、24、32、40、48和56。如此,当这些值中的每一个由于三个位移位而乘以因子8时,每一个查询表的起点将分别是0、64、128、192、256、320、384和448,如前面所说明的。查询表中的要被查询的值存储在每一个级60g1-60g8中,这些值只能存储在六个位中,因为在每一个列或查询表中只有六十四行地址。寄存器24g和12g的级中的两个值的组合,如前面所述,是通过在“或”电路150、152、154、156、158、160、162和164中执行的移位和加法来实现的。
在又一个示例中,如图11所示,根据本发明的可重新配置的并行查询表系统10h可以通过在每一级62h1-62h4中放置值32并在其余的级62h5-52h8中放置0而配置为提供两个查询表,其中每一个查询表都有256个字节。通过在头四级中放置32,头四个值将要使用从256开始的查询表,并到511,其他四个值将要使用从0开始的查阅表,到255。行索引寄存器12h的级中的值现在将以八位形式表示,因为行数是256。
虽然至今为止都使用了八位结构,但这不是本发明的必须的限制。例如,通过根据查询表的长度作为八位的基本字节大小因子,重复行索引寄存器的两个相邻的级中的值并调整列索引寄存器中的值,可以确定16位、32位等等字的地址,并进行查询。例如,在具有两个查询表的存储器,每一个查询表都有256个字节,级62h1-62h8可以交替地用值0和32加载,而级60h1-60h8可以以类似的对加载,以便60h1和60h2具有相同的值,60h3和60h4具有相同的值等等,以便使用从0开始到255的表,用最低有效字节(LSB)、使用从256开始到511的表,用最高有效字节(MSB)确定十六位字的地址并进行查询。尽管是以行和列对本发明进行讨论的,但是,也可以以列和行或其他有序阵列来实现。
虽然本发明的特定的特点在某些图形中显示而非在其他图形中显示,但是,这只是为了方便而已,因为每一个特点都可以同根据本发明的任何或所有其他特点相结合。这里所使用的“包含”、“包括”“具有”以及“带有”之类的词可以在广义的含义上进行理解,而不仅限于任何物理连接。此外,主体申请中所说明的任何实施例不应被理解为仅有的可能的实施例。
那些精通本技术的人员会想到其他实施例,这些实施例都会在下面的权利要求范围内
权利要求
1.一种可重新配置的并行查询表系统,包括存储器;所述存储器中存储的多个查询表;行索引寄存器,用于保存所述查询表中的要被查询的值;列索引寄存器,用于存储代表所述存储器中存储的每一个所述查询表的起始地址的值;以及地址转换电路,响应所述列索引寄存器和所述行索引寄存器,以同时生成所述行索引寄存器中的每一个值的地址,以并行地定位每一个查询表中的那些值的函数。
2.根据权利要求1所述的可重新配置的并行查询表系统,其中,所述地址转换电路包括乘法器电路,用于将代表起始地址的值乘以每一列的长度,还包括加法器电路,用于将所述行索引寄存器中的值与所述乘法器电路的输出结合。
3.根据权利要求1所述的可重新配置的并行查询表系统,其中,所述地址转换电路包括“或”电路,用于将所述行索引寄存器中的所述值与所述列索引寄存器中的相对于所述行索引寄存器中的值朝着MSB移动N位的所述值相结合。
4.根据权利要求1所述的可重新配置的并行查询表系统,其中,所述查询表的大小全部相同。
全文摘要
一种可重新配置的并行查询表系统(10)包括存储器(18);存储器中存储的多个查询表;行索引寄存器(12),用于保存查询表中的要被查询的值;列索引寄存器(14),用于存储代表存储器中存储的查询表的起始地址;地址转换电路(16),响应列索引寄存器(14)和行索引寄存器(12)同时生成行索引寄存器(12)中的每一个值的地址,以并行地定位每一个查询表中的那些值的函数。
文档编号G06FGK1623141SQ02828485
公开日2005年6月1日 申请日期2002年11月27日 优先权日2002年2月7日
发明者尤瑟夫·斯坦, 海姆·普瑞姆 申请人:阿纳洛格装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1