CN110998512A - 在数据处理设备中对连续值进行匹配 - Google Patents

在数据处理设备中对连续值进行匹配 Download PDF

Info

Publication number
CN110998512A
CN110998512A CN201880049537.3A CN201880049537A CN110998512A CN 110998512 A CN110998512 A CN 110998512A CN 201880049537 A CN201880049537 A CN 201880049537A CN 110998512 A CN110998512 A CN 110998512A
Authority
CN
China
Prior art keywords
input
comparison
vector
value
circuitry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880049537.3A
Other languages
English (en)
Other versions
CN110998512B (zh
Inventor
亚利阳德罗·马丁内兹·文森特
杰西·加勒特·贝
姆布·埃约勒
蒂莫西·海斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd filed Critical ARM Ltd
Publication of CN110998512A publication Critical patent/CN110998512A/zh
Application granted granted Critical
Publication of CN110998512B publication Critical patent/CN110998512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Circuits Of Receivers In General (AREA)
  • Executing Machine-Instructions (AREA)
  • Hardware Redundancy (AREA)
  • Image Processing (AREA)
  • Stored Programmes (AREA)

Abstract

提供一种设备及一种操作该设备的方法,用于进行比较操作来匹配输入向量中的给定值序列。指令译码器电路系统响应于指定输入向量的区段的串匹配指令而产生控制信号以控制数据处理电路系统进行比较操作。比较操作确定较值,该比较值指示出是否该区段的所必要的一组连续输入元素的各输入元素具有的值匹配参考数据项的连续参考元素中的相应值。可进行多个比较操作来确定对应于输入向量的区段的匹配向量,以指示出该输入向量中的子串的开始位置。还提供一种串匹配指令以及模拟器虚拟机实施方式。

Description

在数据处理设备中对连续值进行匹配
技术领域
本公开涉及一种数据处理设备。更具体地,本公开涉及针对给定的值序列进行搜索。
背景技术
数据处理设备可进行非常多样的数据处理操作,有些数据处理操作需要数据处理设备确定在给定的输入数据中是否存在预定值序列(有时被称为子串)。要实施此功能所必要的数据处理电路系统的复杂性对于大的输入数据项而言可能成为负担。
发明内容
在一个示例中,提供一种设备,该设备包含:指令译码器电路系统,其将指令译码;以及数据处理电路系统,其选择性地对输入数据向量的一个或更多个区段应用向量处理操作,输入数据向量包含位于该输入数据向量中的各位置处的多个区段,其中指令译码器电路系统响应于指定输入数据向量的区段和参考数据项的串匹配指令而产生控制信号,以使得数据处理电路系统中的比较电路系统:进行比较操作体设定比较值,该比较值指示出是否该区段的所必要的一组连续输入元素中的各输入元素具有的值匹配参考数据项的连续参考元素中的相应值。
在另一示例中,提供一种操作设备的方法,包含下列步骤:将指令译码;选择性地对输入数据向量的一个或更多个区段应用向量处理操作,输入数据向量包含位于该输入数据向量中的各位置处的多个区段;响应于指定输入数据向量的区段和参考数据项的串匹配指令而产生控制信号,以使得数据处理电路系统中的比较电路系统:进行比较操作以设定比较值,该比较值指示出是否该区段的所必要的一组连续输入元素中的各输入元素具有的值匹配参考数据项的连续参考元素中的相应值。
在另一示例中,提供一种设备,该设备包含:用于将指令译码的装置;用于选择性地对输入数据向量的一个或更多个区段应用向量处理操作的装置,输入数据向量包含位于该输入数据向量中的各位置处的多个区段;用于响应于指定输入数据向量的区段和参考数据项的串匹配指令而产生控制信号的装置,该控制信号使得设备中的用于比较的装置:进行比较操作以设定比较值,该比较值指示出是否该区段的所必要的一组连续输入元素中的各输入元素具有的值匹配参考数据项的连续参考元素中的相应值。
在另一示例中,提供一种用于控制主机数据处理设备以提供指令执行环境的计算机程序,该计算机程序包含:指令译码程序逻辑,其将指令译码;以及数据处理程序逻辑,其选择性地对输入数据向量结构的一个或更多个区段应用向量处理操作,输入数据向量结构包含位于该输入数据向量结构中的各位置处的多个区段,其中指令译码程序逻辑响应于指定输入数据向量结构的区段和参考数据项结构的串匹配指令而产生控制信号以使得数据处理程序逻辑中的比较程序逻辑:进行比较操作以设定比较值,该比较值指示出是否该区段的所必要的一组连续输入元素中的各输入元素具有的值匹配参考数据项结构的连续参考元素中的相应值。
附图说明
将仅通过示例来参考附图所示的实施例进一步描述本公开的技术,在附图中:
图1示意地图示根据一个示例的设备;
图2示意地图示根据一个示例的设备;
图3图示根据一个示例的在匹配确定电路系统进行的匹配确定处理期间所进行的比较操作;
图4图示一个示例中的比较操作,该比较操作对应于给定的偏移值和给定的必要数目;
图5图示一个示例中的比较操作,其中溢位标志被设定以使得相邻比较电路系统进行溢位比较操作;
图6图示在一个示例中由相邻比较电路系统进行的溢位比较操作;
图7图示在一个示例中的输入述词向量,该输入述词向量被用以指示出多个输入元素中何者包含所必要的一组连续输入元素;
图8图示在一个示例中的数据处理电路系统,该数据处理电路系统包含比较电路系统,其中溢位标志能被设定并被传播至相邻比较电路系统;
图9图示在一个示例中的流程图,其显示当执行匹配确定处理时所采取的步骤序列;
图10示意地图示在一各实施例中提供模拟器实现方式的系统的组件;以及
图11图示在一些实施例中的设备中存在的比较电路系统,该比较电路系统被用以实施“匹配区段”指令(指令本身并非本公开的技术的主题),但该比较电路系统也被用以实施本公开的技术的串匹配指令。
具体实施方式
至少一些示例提供一种设备,该设备包含:指令译码器电路系统,其将指令译码;以及数据处理电路系统,其选择性地对输入数据向量的一个或更多个区段应用向量处理操作,输入数据向量包含位于该输入数据向量中的各位置处的多个区段,其中指令译码器电路系统响应于指定输入数据向量的区段和参考数据项的串匹配指令而产生控制信号以使得数据处理电路系统中的比较电路系统:进行比较操作以设定比较值,该比较值指示出是否该区段的所必要的一组连续输入元素中的各输入元素具有的值匹配参考数据项的连续参考元素中的相应值。
所提供的数据处理设备能确定在输入向量中是否存在预定值序列。包含多个输入元素(每个输入元素包含特定值)的输入向量可在各式各样情境中由数据处理设备处置。因此在输入向量是数据值串的情况中,则针对输入数据向量的元素执行比较操作,使得能确定在该输入数据的连续输入元素(串)中是否找到序列(子串)中的值。为了支持这样的比较操作,本公开的技术提供了一种数据处理电路系统,其响应于来自指令译码器电路系统的控制信号,以将输入向量的区段中的输入元素的值与参考数据项中相应参考元素的值做比较。将理解,参考数据项不限于包含特定数目的元素。
本公开的技术认识到当提供这样的数据处理设备时面临的一个实际问题是输入数据项越大,进行必要的比较操作所关联的电路系统的复杂度越大,尤其因为在输入元素与参考元素之间必须进行的比较的排列组合数目增大,以至于使得供应必要的电路系统可能变得不可行。在此情形中,本公开的技术提供数据处理电路系统(由指令译码器电路系统所产生的控制信号来控制)来确定输入向量的区段中的所必要的一组连续输入元素中的各者是否匹配参考数据项的连续参考元素中的相应值(搜索关键词)。所必要的一组连续输入元素可不同地定义(如以下将更详细论述),但通常此方法规定:电路系统能被实际提供,以及必要的比较操作能被实施。具体而言,藉由在分区段的基础上实施与相应参考元素的比较,改善了进行子串搜索的效率。
在一些示例中,比较电路系统还响应于控制信号而进行:包含多个比较操作的匹配确定处理,其中用于各比较操作的所必要的一组连续输入元素开始于区段中用于该比较操作的相应候选偏移处,其中多个比较操作的候选偏移值跨越该区段。换言之,针对由匹配确定处理进行的各比较操作确定候选偏移,来指示出被执行比较操作的区段中的偏移。比较操作针对对应于输入向量的区段的全部偏移的各候选偏移值进行。因此,各比较操作确定比较值,且该比较值对应于给定候选偏移值。比较操作的偏移指示出该区段中与相应参考元素做比较的那组输入元素的位置。藉由针对多个候选偏移(候选偏移值)的各者进行比较操作,能够针对子串在该区段中找到的输入元素范围内的各可能位置确定比较值。此外,由于匹配确定处理的各比较操作仅在该输入向量的给定区段中的输入元素上进行,因此能控制数据处理设备的复杂度,即使是针对大的输入向量。因此,子串在输入向量中的全部可能位置都被搜索,从而改善子串搜索的准确度,同时仍管控数据处理电路系统的复杂度。
在一些示例中,所必要的一组连续输入元素的元素的数目等于参考数据项中的参考元素的数目减去相应比较操作的相应候选偏移。当在输入向量中搜索子串(参考数据项)时,该子串的长度可能大于区段的长度。在此情况中,若在该输入向量中找到该子串,该子串将跨于至少两个区段。此外,在区段中找到参考数据项的第一参考元素的情况中,参考数据项的大小可能大于该区段的大小与找到该第一参考元素所在之处的偏移值之间的差。在此情况中该子串也将跨于至少两个区段处。因此,可能有需要基于参考数据项的大小与偏移值来确定连续输入元素的必要数目。在本上下文中,本公开的技术提出,所必要的一组连续输入元素可被确定为参考数据项的大小减去相应比较操作的候选偏移值,这使得比较操作能确定该区段的剩余输入元素(该区段位于相应候选偏移位置及该位置之后的输入元素)与对应参考元素比较是否匹配。因此,即使子串跨越超过一个区段,仍能在输入向量中找到该子串。换言之,对区段做比较的限制(为了能管理潜在的硬件复杂度)无需限制能搜索的子串的长度。
在一些示例中,比较电路系统响应于比较值被设定,而设定检测的偏移值来匹配候选偏移值,其中检测的偏移值指示出基底输入元素,该基底输入元素由比较操作识别为连续输入元素的第一输入元素。针对各比较操作,相关联的偏移值被用来指示区段中开始比较操作的偏移。该偏移值指示出区段中要与相应参考元素做比较的第一输入元素。比较值指示出必要数目的连续输入元素已经在相应比较操作期间在区段中找到,而因此针对该比较操作所使用的偏移值(候选偏移值)指示出连续输入元素的第一输入元素在区段中的位置。
藉由将检测的偏移值设定为匹配由比较操作使用的找到所必要的一组连续输入元素的候选偏移值,可以识别出对应于可能子串匹配的基底输入元素(正在搜索的子串的第一输入元素)的输入元素。应注意,识别连续输入元素的基底输入元素并不需要在输入向量中已经找到子串的全部输入参考元素,而是只要已经找到所必要的一组连续输入元素即可。实际上,可能需要在该输入向量的其他区段上进行多个计数操作,以确定是否已找到整个子串。藉由设定检测的偏移值,即使输入向量的其他区段需要先被处理,仍能找到子串的位置。
在一些示例中,匹配确定处理包含针对区段决定匹配向量,而各比较操作的比较值被用以设定匹配向量中的相应匹配元素的值,其中各相应匹配元素在匹配向量中具有的位置对应于确定了比较值的比较操作的相应候选偏移。因此在一些示例中匹配确定处理确定了哪些候选偏移被相应比较操作使用来识别所必要的一组连续输入元素与其相应参考元素之间的匹配。此匹配向量可被数据处理电路系统所进行的进一步处理所使用,例如溢位(overflow)比较操作。这意味着即使当输入向量被划分成为区段时,也能在输入向量中找到子串可能位置。因此,能够可管控地局限硬件复杂度,而不妨碍子串的位置被可靠地确定得出。
在一些示例中,数据处理电路系统还包含多个比较电路系统,其响应于控制信号而进行多个匹配确定处理,多个匹配确定处理中的各者针对来自多个区段之中的相应区段所进行。输入向量被划分成为多个区段,而各区段包含多个输入元素。各匹配确定处理是利用给定区段进行的,并且是藉由确定所必要的一组连续输入元素中的各输入元素具有的值是否匹配参考数据项中的相应元素而进行的。数据处理电路系统内包含多个比较电路系统,且各比较电路系统利用来自输入向量的相应区段来进行匹配确定处理。这意味着输入向量能平行地在区段中有效地被处理。此种将输入向量分区段的作法使得匹配确定处理能够藉由将硬件复杂度局限在可管控的水平而被实际地实施。
在一些示例中,各匹配确定处理包含:针对各区段确定相应匹配向量,且各比较操作的比较值被用以设定匹配向量中的匹配元素的值,其中各相应匹配元素在该相应匹配向量中具有的位置对应于确定了比较值的比较操作的相应候选偏移。匹配向量包含多个匹配元素,各匹配元素包含的值被设定以匹配比较值。各匹配元素中的匹配值因此指示出所必要的一组连续输入元素的基底输入元素是否被识别为处在与匹配元素的相应位置相匹配的偏移处。此作法意味着能藉由匹配向量中的设定的匹配值来从匹配元素的位置隐含地确定所确定的偏移值。据此,藉由以指示出确定相应比较值的比较操作的偏移值的位置来设定匹配元素的匹配值,能有效地识别出基底输入元素而不需要显著可观的额外的硬件。
在一些示例中,多个比较电路系统中的比较电路系统响应于溢位条件被满足而传送溢位标志以供由多个比较电路系统中的相邻比较电路系统使用,其中当比较值被设定且所必要的一组连续输入元素中的元素的数目少于参考数据项中的元素的数目时,溢位条件被满足。由于输入数据项被分组成为区段,在有些情况中参考数据项可能跨于多个区段。因此本公开的技术提出从一比较电路系统传送指示符到相邻比较电路系统,以指示出在该比较电路系统的区段中仅已找到参考数据项(所必要的一组连续输入元素)的一部分。这使相邻电路系统能可靠地确定参考数据项的剩余部分(或者剩余部分的局部)是否在后续的区段中。
因此当溢位条件被满足时溢位标志被传送至相邻比较电路系统。若参考数据项中的参考元素的数目大于用于给定比较操作的所必要的一组参考元素,则若在该比较操作中识别出基底元素,参考数据项的至少一剩余部分位于后续的区段中。因此,比较操作产生溢位标志来向相邻比较电路系统做指示,以参考给定比较操作的所确定偏移值来确定所必要的一组连续输入元素。这意味着能藉由将被搜索的子集分割成必要的多组连续输入元素,各组连续输入元素对应于输入向量的相应区段,来有效地识别出输入向量中的长的子集。
在一些示例中,当溢位标志被设定时,相邻比较电路系统响应于被设定的溢位标志而进行溢位比较操作,以基于由比较电路系统的匹配确定处理所确定的匹配向量来确定所必要的溢位的一组连续输入元素。由匹配确定处理所确定的匹配向量指示出子串的可能匹配的基底输入元素。由于匹配元素在匹配向量中的位置指示出检测的偏移值,能利用匹配向量(除了参考数据项的已知长度之外)来确定由相邻比较电路系统使用的区段的输入元素(所必要的溢位的一组连续输入元素)的数目,这些输入元素是必要的以匹配参考数据项的剩余部分的相应参考元素。将理解(若被传送至相邻比较电路系统的溢位标志被设定)在相邻比较电路系统中除了针对区段进行比较操作之外,还能进行溢位比较操作。藉由利用所必要的溢位的一组连续输入元素来进行溢位比较操作,可以可靠地在输入向量中搜索长的子集,因为除了对给定区段进行比较操作之外还能搜索参考数据项的剩余部分。
在一些示例中,所必要的一组连续输入元素由输入述词向量所指示,该输入述词向量包含多个输入述词元素,每个输入述词元素对应于由比较操作使用的输入元素,其中该多个输入述词元素指示出多个输入元素中的何者包含连续输入元素。对于匹配确定处理中的多个比较操作的各比较操作,所必要的一组连续输入元素不同。比较电路系统可包含多个比较器,其中各比较器将输入元素的值与对应的参考元素的值做比较。本公开所提出的包含多个输入述词标志的输入述词向量可被提供以指示比较器中何者应被设定。据此,可以仅激活将所必要的一组连续输入元素的各输入元素与其它们的相应参考元素做比较所必要的那些比较器。因此,因为已经可以仅进行所需的比较,所以能降低比较电路系统在进行匹配确定处理之时的功耗,,减少冗余的处理量。
在一些示例中提供一种操作设备的方法,该方法包含下列步骤:将指令译码;选择性地对输入数据向量的一个或更多个区段应用向量处理操作,输入数据向量包含位于该输入数据向量中的各位置处的多个区段;响应于指定输入数据向量的区段和参考数据项的串匹配指令,以产生控制信号来使得数据处理电路系统中的比较电路系统:进行比较操作来设定比较值,该比较值指示出是否该区段的所必要的一组连续输入元素中的各输入元素具有的值匹配参考数据项的连续参考元素中的相应值。
至少一些示例提供一种用于控制主机数据处理设备以提供指令执行环境的计算机程序,包含:指令译码程序逻辑,其将指令译码;及数据处理程序逻辑,其选择性地对输入数据向量结构应用指令所指定的向量处理操作,输入数据向量结构包含位于该输入数据向量结构中的各位置处的多个输入数据项结构,其中指令译码程序逻辑响应于指定输入数据项结构的计数指令,以产生控制信号来控制数据处理程序逻辑:进行计数操作来确定计数值,该计数值指示出输入数据项结构的子集的输入元素的数目,这些数据元素的值匹配参考数据项结构中的参考元素中的参考值。
至少一些示例提供一种计算机可读存储介质,其以非瞬态的方式存储按照以上提及的示例中的任何示例的计算机程序。
现将参看附图描述一些特定实施例。
图1示意地图示可体现本公开技术的各示例的数据处理设备100。该设备包含数据处理电路系统102,数据处理电路系统102响应于其执行的一系列指令而对数据项进行数据处理操作。这些指令为以本领域普通技术人员所熟知的方式从数据处理设备100能存取的存储器104撷取,为此目的提供了获取电路系统105。此外,获取电路系统105所撷取的指令被传递给指令译码器电路系统101,其产生控制信号,这些控制信号被布置为控制处理电路系统102(以及一组寄存器103及加载/存储单元106)的配置及操作的各种方面。一般而言,可管线式地布置数据处理电路系统102,而此细节与本公开的技术无关。本领域普通技术人员将熟知图1所代表的一般配置方式,而其进一步详细说明仅因简要目的而在此省略。寄存器103(如图1中可见)各包含用于多个数据元素的存储区,使得处理电路系统能对指定寄存器内的指定数据元素应用数据处理操作,或是能对指定寄存器内的一组指定数据元素(“向量”)应用数据处理操作。具体而言,所描绘的数据处理设备有关于对于输入向量的区段进行比较操作,这些区段被维持在寄存器103中,以下将更详细地参考一些特定实施例做进一步解释。数据处理电路系统102在执行指令时必要的数据值以及这些数据处理指令所导致产生的数据值被利用加载/存储单元106而写入至存储器104和自存储器104读出。还应注意,一般图1中的存储器104可被视为一种计算机可读存储介质的示例,在该计算机可读存储介质上能存储本公开的技术的指令,这些指令通常作为预定义的指令系列(“程序”)的部分,处理电路系统于是执行该序列的指令。处理电路系统然而可从各式各样不同来源存取这样的程序,如在RAM中、ROM中、经由网络接口,等等。本公开描述处理电路系统102能执行的各种新颖指令,而后面的图式提供对这些指令的本质、数据处理电路系统中为了支持这些指令的执行的变型等的进一步解释。
图2示意地图示一个实施例中的数据处理设备200的组件的一些更多细节。图2的数据处理电路系统201被示出为包含比较电路系统204。如所描绘的,数据处理电路系统可存取寄存器文件203,其中此种存取动作因指令译码电路系统202产生的控制信号而发生。如以上关于图1所述,由获取电路系统206从存储器207撷取指令序列,且该指令系列被传递至指令译码器电路系统202,同时由数据处理设备为进行其数据处理操作所必要的数据值被加载/存储单元208从存储器207撷取并传递至寄存器文件203。指令译码器电路系统202响应于串匹配指令而产生适当的控制信号,以使得数据处理电路系统201利用寄存器文件203中维持的数据值的内容来进行数据处理操作,这些数据值中的一些被加载/存储单元208写回至指定的存储器地址。此处理的更多细节将参考后面的图式来说明。
图3示意地图示一个实施例中的数据处理电路系统201中的匹配确定电路系统301。匹配确定电路系统301进行多个比较操作。被提供以支持这些操作的比较电路系统204主要包含比较器矩阵(对此示例来说为十六个比较器,对应于图3中的中央4×4网格),各比较器接受对相应行提供的输入(即参考数据项元素中的一者)以及对相应列提供的另一输入(即输入数据项元素中的一者),使得在输入数据项元素的任意者与参考数据项元素的任意者之间能做比较。输入数据项及参考数据项两者由一组寄存器302中的寄存器的部分内容所提供(各自在串匹配指令中被指定),且如所示地被暂时维持(例如各自被维持在触发器(flip-flop)阵列中),使得各比较器能接收其用于比较的相应输入值组对。
从图3注意到,维持所图示的输入向量的寄存器被显示为被分组成区段。这些区段对应于比较电路系统204的“宽度”,即在此示例中为四个元素。因此应理解,为了清楚起见图3仅图示对应于一个区段的比较电路系统,但事实上在该设备中针对各区段存在这种比较电路系统,使得该向量的完整宽度能够得以搜索。在此一个区段中,各比较操作的结果被指示在匹配向量303中。为了产生该匹配向量,比较电路系统中的各比较器被布置以将各输入元素中包含的输入值与相应参考元素中的参考值做比较。各比较器包含一组逻辑门,逻辑门被布置以确定逻辑值,该逻辑值指示给定比较结果是否是在输入值及其相应参考值之间的匹配。参看所示示例,进行了一比较操作,该比较操作是来自作为匹配确定处理的部分所进行的多个比较操作之中的第一比较操作。简单而言,在此区段中比较电路系统正在确定是否在串“halo”中找到了子串“halo”。被圈起的值所示出的比较操作具有为“0”的候选“偏移值”,表示输入数据项的第一输入元素与各后续输入元素包含了必要的数目的连续输入元素。因此,连续输入元素的“必要的数目”为如图中显示的“4”。在此比较操作中所做的个体比较(在个体输入元素与其相应参考元素之间的比较)(由具有标记“匹配的连续输入元素”的被圈起的值所表示)各以结果“1”来示出匹配。也亦进行其他比较,而在此例中结果全部是“0”。然而,对于被圈起的比较操作,来自必要的一组连续输入元素中的各输入元素(“h”、“a”、“l”、及“o”)被与参考数据项的相应参考元素做比较。在此示例中,在输入数据项中从对应于偏移值“0”的位置处找到了参考数据项。因此,如所示,该比较操作指示各输入元素与其相应参考元素之间的匹配。就以比较电路系统而言,因此应理解,为了匹配向量的产生,当匹配条件满足时所必要的是,对于匹配向量303中对应于候选偏移值“0”的匹配元素的值被设定(被标记成“找到起点”)。这藉由个体比较器之间的对角路径间的连接所提供(一个示例在图3中由一组四个被圈起的比较器结果给出)。当然此组十六个比较器中的其他可能的对角路径较短,有两个三比较器路径、两个两比较器路径、及两个一比较器“路径”。AND(与)门连接了各对角路径上的比较器,使得若对角线中的全部元素被找到,则产生一设定值(以填入匹配向量的对应元素)。换言之,各对角线代表本文中所用术语中的“比较操作”。还应注意,尽管若参考数据项在输入数据项之内(即在此比较电路系统对应的区段内)的某处开始,则仅有包含了所示被圈起的、以及其右下方的对角线能找到参考数据项的至少一部分。然而,如以下将论述的,在此区段中能找到参考数据项的后面部分(即,在“halo”的示例中为“alo”、“lo”、或“o”),而其前一部分在前一区段中。据此,一般而言,全部的比较器确实都被激活,而因此给出了图3中所示的完整4×4比较器结果矩阵。还应注意,在向量寄存器302的意义上,该匹配向量并非“向量”,反而仅是该匹配确定电路系统中内部产生的数组(例如暂时维持在一组触发器中),利用该数组能识别出序列的起点(若找到的话)并进一步对此发出信号。还应注意,由于在当前的区段中找到参考数据项的全部元素,没有设定溢位标志(相较于图5)。
另一点要注意的,在响应于其他类型的指令(而不只是串匹配指令)的设备中,相同一组比较器可被用以实行其他类型的比较或其他类型的处理操作。此种硬件再利用使该设备能有较小的占用面积(footprint),或换句话说,给定的占用面积能支持更大范围的数据处理。例如,如稍后将针对图11描述的,一设备还可响应于“匹配区段”指令,该指令利用同一组比较器与在比较器之间提供的额外逻辑门来在该区段上进行计数操作。
图4示意地图示一实施例中在数据处理电路系统201中的匹配确定电路系统301。这里的匹配确定电路系统301也进行多个比较操作(即对角线的多组相应比较)。将了解,此图示类似于图3(并且的确可表示同一个电路系统,但不过具有不同的输入)但在图4的示例中(对比于图3的示例)参考数据项(“cat”)仅为三个元素之长。因此不需要做出此电路系统所能处理的在所有输入数据项元素(4个)与所有参考数据项元素(4个)之间的全部可能比较(16个),并且为此目的,可向程序编写者提供利用输入述词向量(见图7)的可能性,该输入述词向量能使不必要的比较器(即第四行的比较器)暂时被停用。在图4的示例中,注意到该区段包含一组4个输入元素(如所示),这些输入元素具有输入值为[f c a t],而参考数据项包含3个参考元素,这些参考元素具有参考值[c a t]。换言之,简单地说,在此区段中比较电路系统正在确定是否在串“fcat”中找到子串“cat”。如先前参考图3所述的比较被进行,然而此例中找到子串“cat”的比较操作具有候选偏移值“1”。换言之,此实际上是被进行的该组比较操作中的第二个,在此操作中能在输入数据项中找到完整的子串“cat”(即不论是开始于偏移0处或开始于偏移1处)。当然在第一列中(在候选偏移值为“0”处),以“f”为输入数据项的第一个(索引0)元素,没有找到对于任何参考元素的匹配。然而在输入元素索引“1”处开始的比较操作是在此示例中找到子串的操作。参考参考数据项的长度及候选偏移值确定了“必要的数目”。因此对于开始于输入数据项的索引1处的比较,且参考数据项的长度等于输入元素的数目(这些输入元素具有的索引等于或大于候选偏移值(即,三),则“必要的数目”是“3”。据此,如所示,所必要的一组连续输入元素的各输入元素匹配其相应参考元素,且匹配向量303中对应于候选偏移值“1”的匹配元素的值被设定。找到匹配的比较操作所使用的候选偏移值被设为“偏差值”(检测的偏移值),且位于该匹配向量的对应索引处的匹配向量元素的值相应被设定。
图5图示匹配确定电路系统301,而此图示类似于图3(且的确可表示同一个电路系统,不过具有不同的输入),其根据一个示例进行匹配确定处理中的多个比较操作。具体地,注意虽然参考数据项又是有4个参考元素,但对应于所图示的比较电路系统的区段(在寄存器302中所存取)包含仅参考数据项(“halo”)的一部分(前二个字母“ha”)。该匹配确定处理进行多个比较操作,各比较操作对应于候选偏移值。图5明显标示出利用了候选偏移值“2”的比较操作。由于参考数据项的长度大于具有比候选偏移更高阶的索引的其余索引元素的数目,来自输入元素之中的必要的一组连续输入元素由具有索引“2”(对应于候选偏移)的输入元素以及最后输入元素(具有索引为“3”)所划界。因此,在被明显标示出的比较中的连续参考元素的必要数目是二。如所示,当开始于偏移值“2”之处时,在该区段找到必要的一组输入元素(即前两个字母)。据此,具有索引等于偏移值的匹配元素被设定;而且,由于在当前区段中仅找到一部分的参考数据项,溢位标志被设定。此标志接着被传送至相邻比较电路系统,且在一些示例中该偏移值(检测的偏移值)额外地被传送至相邻电路系统。也重要的是,在此示例中检测到子串并不完全基于此区段的结果而通报,而是还要求在下一区段中找到该子串的其余部分(或至少接续部分),如现在所描述的。
图6图示根据一个示例的匹配确定电路系统301中的另一组比较电路系统204,在其中也进行匹配确定处理的溢位比较操作。当从前一(即如所图示的位于左边的)比较电路系统传送溢位标志时,溢位比较操作变得相关。溢位比较操作是对应于少于全部的要搜索参考数据项(省略至少第一个参考元素)的对角线行进的比较。在图6的示例中,因此是这组比较器的左上方三角形一半中的对角线。这些比较可总是被进行,或者当在不必要时可被省略(但不过这需要一些额外的电路系统来在不需要时将它们切断并且需要初始触发信号–即来自前一区段的溢位信号–并且这也影响计时,因为在前一区段的比较已产生结果之前,此区段的比较无法被实施)。溢位比较操作被进行,以便确定参考数据项的剩余部分的至少局部是否匹配后续区段中的相应输入元素。该后续区段是输入向量中的下一区段并是在寄存器302中被存取的。如图6中所示,被圈起的比较操作(具有候选偏移值“0”且另外“必要的数目”少于参考项长度时的比较操作)找到参考数据项的必要的后面部分。必要的数目是基于在图5中确定了匹配(如图5中所示,由前一匹配确定处理的匹配向量所指示)的比较操作的检测的偏移值而确定的。具体而言,由于参考数据项的其余部分小于区段的大小,必要的数目等于参考数据项的长度减去前一个检测的偏移值(即,如所示,其等于“2”)。所必要的一组连续输入元素因此由溢位比较电路系统所用的区段中的第一及第二输入元素所划界。因此,该溢位比较操作将第一及第二输入元素中的值与其在参考数据项中的相应参考元素做比较,其中在此示例中这些参考元素的偏移为“2”,代表第一数据输入项必定是“l”而第二数据输入项必定是“o”。如所示,所必要的一组连续输入元素[l o],的确匹配对应的参考元素,因此具有的索引等于该溢位比较操作所使用的偏移值“0”的匹配元素被设定。注意,当前一区段的溢位标志被设定时,被设起的匹配元素具有不同的意义,也就是确认了子串在此区段中接续。因此比较电路系统可以确定已在该输入向量中由用于识别处基底数据元素的匹配确定处理(此例中为前一匹配确定处理)的匹配向量中的匹配元素的索引所指示的位置处找到完整的子集(参考数据项)。
图7图示根据一个示例的比较器网格,其由输入述词向量控制。该输入述词向量可被用来向比较电路系统204中的比较器矩阵指示出要激活哪些比较器。例如,当参考数据项(被搜索的关键词/子串)的长度短于区段大小时,某些比较器可被禁用。比较电路系统204包含多个比较器,其中各比较器对应于给定输入元素及相应参考元素之间的比较。因此,在所图示的示例(包含区段大小为4且可能的参考数据项大小为4)中,有一个被排列成4×4网格的16个比较器的网格。图7中所示输入述词向量中的输入述词标志各对应于给定行中的比较器(如所示),其中该给定行的比较器比较各输入元素与给定参考数据项元素的值。例如在图7中,仅有输入述词向量的较低两位被设定,意味着参考数据项仅前两个元素被激活(即被搜索)。换言之,在此示例中全部必须被找到的是“ha”。当输入述词向量中的较高两位未被设定时,较上两行比较器被禁用。最后,子串“ha”确实在针对该区段中第三及第四位置的被圈起的比较操作中被找到,因此(如上所述)匹配向量中于第三位置处的匹配元素被设定。
图8图示溢位标志的使用,该溢位标志被输入至一比较电路系统,该比较电路系统与另一比较电路系统相邻。具体而言,数据处理电路系统102经图示为包含寄存器802及多个比较电路系统801-1、801-2、801-3及801-4。这些四个比较电路系统因此提供了用于在给定区段中搜索的比较器,并且一起允许实施跨越包含了四个区段的向量的完整宽度的搜索。溢位标志的传送允许要搜索的序列跨过至少一个区段边界。如所示,从比较电路系统801-1传送至801-2的溢位标志未被设起设定,然而从比较电路系统801-2传送至801-3的溢位标志被设定。在图6及图7图示的示例(其中在输入向量中有找到参考数据项但其跨于两区段)中,溢位标志被设定且从第一比较电路系统801-2被传送至相邻比较电路系统801-3,该相邻比较电路系统如以上参考图7所述进行溢位比较操作。
图9图示根据一个示例的流程图,其示出操作设备的方法。该处理开始于步骤900。在步骤901,加载参考数据项。在步骤902,加载下一个(于第一迭代是第一个)输入数据项。该处理继续于步骤903,选择下一个(于第一迭代是第一个)偏移值。在步骤904,进行比较操作以确定比较值,该比较值指示出是否来自至少一个输入元素之中的所必要的数目的连续输入元素各具有的值等于至少一个参考元素的连续参考元素中的相应值。步骤905将匹配向量的对应匹配元素设为具有该比较值的值。步骤906确定是否候选偏移值是最后偏移值。若不是,则重复步骤903~905直到满足步骤906中的条件。若满足步骤906中的条件,则在步骤907输出该匹配向量。在步骤908,确定是否输入数据项(区段)是最后输入数据项。若不是,则重复步骤902~907直到满足步骤908中的条件(此为最后偏移值)。注意,为了最简单地描述比较操作,该流程图将这些步骤描述为顺序的步骤(步骤904在内循环中的各个被执行迭代),但从以上对比较电路系统的示例的说明中将理解,当提供比较器矩阵(例如在论述示例中为4×4)时这些迭代将典型地并行操作,且因此对于给定输入数据项(即区段内容)的全部比较操作被同时进行。类似地,注意,为了最简单地描述输入数据项(即区段比较),流程图将其描述为顺序的步骤(步骤902在外循环的各个被执行迭代),但从以上对比较电路系统的示例的说明中将理解,当提供一组比较电路系统(例如在所论述的示例中为四个并行)时这些电路系统将典型地并行操作,且因此指令所参考的向量的各输入数据项(即区段内容)的被同时进行。最后,若步骤908中的条件被满足,则该方法在步骤909完成。
图10图示可使用的模拟器实现方式。尽管先前所述实施例以用于操作支持本公开的技术的特定处理硬件的设备及方法来实现本发明,也可以提供按照本文所述实施例的指令执行环境,其通过利用计算机程序来实施。此类计算机程序通常被称为模拟器,就此而言其提供硬件架构的基于软件的实现方式。模拟器计算机程序的各种变化包括仿真器、虚拟机、模型、及二进制转译器(包括动态二进制转译器)。典型地,模拟器实现方式可在主机处理器730上运行,该主机处理器可选地运行主机操作系统720,该操作系统支持模拟器程序710。在一些布置方式中,在硬件与所提供的指令执行环境之间及/或在相同主机处理器上提供的多个不同指令执行环境之间可有多个模拟层级。历史地,需要强大的处理器来提供以合理速度执行的模拟器实现方式,但此种做法在特定情况(像是当为了兼容性或重复使用之理由而需要执行原生于另一处理器的代码时)中是合理的。例如,模拟器实现方式可提供具有额外功能性的指令执行环境,该指令执行环境不被主机处理器硬件所支持,或者提供通常关联于不同硬件架构的指令执行环境。在“Some Efficient ArchitectureSimulation Techniques”中(Robert Bedichek,1990年冬天USENIX会议,第53至63页)提供了对此模拟的概述。
在参考特定的硬件结构或特征而先前已描述本案实施例的程度上,在一模拟的实施例中,可藉由适当的软件结构或特征提供等效的功能性。例如,特定的电路系统可模拟的实施例中被实施成计算机程序逻辑。类似地,存储器硬件(像是寄存器或高速缓存)可在模拟的实施例中被实施成软件数据结构。前述实施例中提及的硬件元件中一者或更多者存在于主机硬件(例如主机处理器730)上的布置方式中,有些模拟的实施例可利用主机硬件(适当时)。
模拟器程序710可被存储在计算机可读存储介质上(其可为非瞬态介质),且该模拟器程序提供对于目标代码700(其可包括应用、操作系统及管理程序,如图2中所示)的程序接口(指令执行环境),该程序接口与模拟器程序710所建模的硬件架构的应用程序接口相同。因此,可利用模拟器程序710在指令执行环境内执行目标代码700的程序指令(包括上述的串匹配指令),使得其实不具有以上论述的设备2的硬件特征的主机计算机730能够仿真这些特征。
图11图示与以上各示例中所述的一组16个比较器相同的比较器(即“比较电路系统”中的4×4矩阵),但这些比较器也在该设备中被置于另一用途。在所示示例中,此对应于其响应于也为该设备所定义的“匹配区段”(也称为MATCHSEG)指令。此MATCHSEG指令指明包含输入向量的源寄存器,该输入向量再次被划分成区段以匹配各比较电路系统的宽度,且此MATCHSEG指令使得针对一组计数值的各区段做出确定,各计数值指示出在该区段的元素的任意元素中将找到参考数据项中的对应参考值的次数。据此,图11中所示中央4×4数值矩阵对应于(原先)参考图3所述一组比较器相同的比较器,而在比较器之间提供了额外的连接。不像以上论述的示例(从图3开始),这些针对水平行进(在图11中显示的方向中)的比较器的连接以及对各比较找到的匹配加总,给出被标记为“计数数据项”的各元素中的加总计数值。如图11的示例中所示,该区段包含一组输入值[4 2 2 0]而参考数据项包含一组4个参考值[0 1 2 3]。针对参考数据项的相应参考元素中的各参考值进行计数操作。因此,对于第一参考值“0”,找到一个匹配(在索引为0的区段元素中),所产生计数值则为一。针对具有参考值“1”的第二参考元素,由于该区段没有值为“1”的输入元素,针对该参考元素的计数值为零。对具有参考值“3”的最后参考元素也是此情况。然而,由于在该子集中有两个输入元素实例具有输入值“2”,对应于具有值“2”的第三参考元素的计数值具有计数值为二。据此,各计数值指示出在该区段中的输入元素中包含的输入值匹配相应参考值的输入元素的数目。该比较电路系统(图2图中的项目204)被提供以支持根据本公开的技术的比较操作,并额外地支持这些响应于MATCHSEG指令所进行的计数操作,其中响应于此指令所产生的控制信号使得从比较器输出结果导出的计数值被输出,其中响应于本公开的技术的串匹配指令所产生的控制信号使得该匹配向量被用来指示出是否(及何处)找到要搜索的参考数据项的匹配。因此指令译码器电路系统响应于给定指令所产生的控制信号可操作以配置比较电路系统204来进行子串比较操作或计数操作(可能还有其他),依照被供应给指令译码器电路系统的指令而定。
简短地整体总结,提供了一种设备及一种操作此设备的方法,用于进行比较操作以匹配输入向量内的给定值序列。指令译码器电路系统响应于指定输入向量的区段的串匹配指令,而产生控制信号来控制数据处理电路系统以进行比较操作。该比较操作确定比较值,其指示出是否该区段的必要的一组连续输入元素的各输入元素具有的值匹配参考数据项的连续参考元素中的相应值。可进行多个比较操作来确定对应于输入向量的区段的匹配向量,以指示出子串在该输入向量中的开始位置。
在本申请中,“被配置以…”等字句被用来表示设备的元件具有能够实现所定义的操作的配置。在此上下文中,“配置”代表硬件或软件的布置或互连方式。例如,该设备可具有提供所定义的操作的专属硬件,或者处理器或其他处理装置可被编程来进行该功能。“被配置以”并不暗含该设备元件必须以任何方式被改变以为了提供所定义的操作。
尽管在本文中已参考附图详细地说明例示性实施例,应了解本发明不受限于这些确切的实施例,而是本领域的技术人员能实现对其的各种改变、添加、及修改,而不悖离随附权利要求所定义的本发明法人范畴及精神。例如,从属权利要求的特征能与独立权利要求的特征做出各种不同组合,而不悖离本发明的范畴。

Claims (14)

1.一种设备,包含:
指令译码器电路系统,其将指令译码;以及
数据处理电路系统,其选择性地对输入数据向量的一个或更多个区段应用向量处理操作,所述输入数据向量包含位于该输入数据向量中的各位置处的多个区段,
其中所述指令译码器电路系统响应于指定所述输入数据向量的区段和参考数据项的串匹配指令而产生控制信号,以使得所述数据处理电路系统中的比较电路系统:
进行比较操作以设定比较值,该比较值指示出是否所述区段的所必要的一组连续输入元素中的各输入元素具有的值匹配所述参考数据项的连续参考元素中的相应值。
2.如权利要求1所述的设备,其中所述比较电路系统还响应于所述控制信号而进行:
匹配确定处理,该匹配确定处理包含多个比较操作,其中用于各比较操作的所必要的一组连续输入元素开始于所述区段中用于该比较操作的相应候选偏移处,其中所述多个比较操作的候选偏移值跨越所述区段。
3.如权利要求2所述的设备,其中所必要的一组连续输入元素的元素的数目等于所述参考数据项中的参考元素的数目减去相应比较操作的相应候选偏移。
4.如权利要求2或权利要求3所述的设备,其中所述比较电路系统响应于所述比较值被设定而设定匹配候选偏移值的检测的偏移值,其中所述检测的偏移值指示出基底输入元素,所述基底输入元素由所述比较操作被识别为所述连续输入元素的第一输入元素。
5.如权利要求2至4中任一项所述的设备,其中所述匹配确定处理包含确定针对所述区段的匹配向量,并且各比较操作的比较值被用以设定所述匹配向量中的相应匹配元素的值,
其中各相应匹配元素在所述匹配向量中具有的位置对应于确定所述比较值的比较操作的相应候选偏移。
6.如权利要求2至5中任一项所述的设备,其中所述数据处理电路系统还包含多个比较电路系统,所述多个比较电路系统响应于所述控制信号而进行多个匹配确定处理,各匹配确定处理针对来自所述多个区段之中的相应区段而进行。
7.如权利要求6所述的设备,其中各匹配确定处理包含确定针对相应区段的相应匹配向量,并且各比较操作的比较值被用以设定所述匹配向量中的匹配元素的值,
其中各相应匹配元素在相应匹配向量中具有的位置对应于确定所述比较值的比较操作的相应候选偏移。
8.如权利要求6或7所述的设备,其中多个比较电路系统中的比较电路系统响应于溢位条件被满足而传送溢位标志,该溢位标志供所述多个比较电路系统中的相邻比较电路系统之用,
其中当所述比较值被设定且所必要的一组连续输入元素中的元素的数目小于所述参考数据项中的参考元素的数目时,所述溢位条件被满足。
9.如权利要求8所述的设备,其中当所述溢位标志被设定时,所述相邻比较电路系统响应于所设定的溢位标志还进行溢位比较操作,以基于由所述比较电路系统的匹配确定处理所确定的匹配向量来确定所必要的溢位的一组连续输入元素。
10.如前述任何权利要求所述的设备,其中所必要的一组连续输入元素由输入述词向量所指示,所述输入述词向量包含多个输入述词元素,每个输入述词元素对应于由所述比较操作使用的输入元素,
其中所述多个输入述词元素指示出所述多个输入元素中的何者包含所述连续输入元素。
11.一种操作设备的方法,包含下列步骤:
将指令译码;
选择性地对输入数据向量的一个或更多个区段应用向量处理操作,所述输入数据向量包含位于该输入数据向量中的各位置处的多个区段;
响应于指定所述输入数据向量的区段和参考数据项的串匹配指令而产生控制信号,以使得所述设备的数据处理电路系统中的比较电路系统:
进行比较操作以设定比较值,该比较值指示出是否所述区段的所必要的一组连续输入元素中的各输入元素具有的值匹配所述参考数据项的连续参考元素中的相应值。
12.一种设备,包含:
用于将指令译码的装置;
用于选择性地对输入数据向量的一个或更多个区段应用向量处理操作的装置,所述输入数据向量包含位于该输入数据向量中的各位置处的多个区段;
用于响应于指定所述输入数据向量的区段和参考数据项的串匹配指令而产生控制信号的装置,所述控制信号使得所述设备中的用于比较的装置:
进行比较操作以设定比较值,该比较值指示出是否所述区段的所必要的一组连续输入元素中的各输入元素具有的值匹配所述参考数据项的连续参考元素中的相应值。
13.一种用于控制主机数据处理设备以提供指令执行环境的计算机程序,该计算机程序包含:
指令译码程序逻辑,其将指令译码;以及
数据处理程序逻辑,其选择性地对输入数据向量结构的一个或更多个区段应用向量处理操作,所述输入数据向量结构包含位于该输入数据向量结构中的各位置处的多个区段,
其中所述指令译码程序逻辑响应于指定所述输入数据向量结构的区段和参考数据项结构的串匹配指令而产生控制信号,以使得所述数据处理程序逻辑中的比较程序逻辑:
进行比较操作以设定比较值,该比较值指示出是否所述区段的所必要的一组连续输入元素中的各输入元素具有的值匹配所述参考数据项结构的连续参考元素中的相应值。
14.一种计算机可读存储介质,其以非瞬态的方式存储如权利要求13所述的计算机程序。
CN201880049537.3A 2017-08-01 2018-07-05 在数据处理设备中对连续值进行匹配 Active CN110998512B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/665,715 2017-08-01
US15/665,715 US10678506B2 (en) 2017-08-01 2017-08-01 Matching consecutive values in a data processing apparatus
PCT/GB2018/051897 WO2019025752A1 (en) 2017-08-01 2018-07-05 MATCHING CONSECUTIVE VALUES IN A DATA PROCESSING APPARATUS

Publications (2)

Publication Number Publication Date
CN110998512A true CN110998512A (zh) 2020-04-10
CN110998512B CN110998512B (zh) 2023-12-22

Family

ID=63077892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880049537.3A Active CN110998512B (zh) 2017-08-01 2018-07-05 在数据处理设备中对连续值进行匹配

Country Status (8)

Country Link
US (1) US10678506B2 (zh)
EP (1) EP3662361B1 (zh)
JP (1) JP7245817B2 (zh)
KR (1) KR102594770B1 (zh)
CN (1) CN110998512B (zh)
IL (1) IL272136B (zh)
TW (1) TWI782060B (zh)
WO (1) WO2019025752A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817297B2 (en) * 2019-03-30 2020-10-27 Intel Corporation Method and apparatus for vector-matrix comparison
WO2024073325A1 (en) * 2022-09-30 2024-04-04 Texas Instruments Incorporated Reducing overhead in processor array searching

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1175575A (en) * 1981-12-07 1984-10-02 Michael S. Pelley Programmable controller with multiple functions
US4991134A (en) * 1988-03-30 1991-02-05 International Business Machines Corporation Concurrent sorting apparatus and method using FIFO stacks
WO2000058828A1 (en) * 1999-03-26 2000-10-05 Microchip Technology Incorporated Microcontroller instruction set
US20040199630A1 (en) * 1999-06-30 2004-10-07 Sarkissian Haig A. State processor for pattern matching in a network monitor device
US8762694B1 (en) * 2003-02-19 2014-06-24 Intel Corporation Programmable event-driven yield mechanism
US20140281371A1 (en) * 2013-03-13 2014-09-18 Hariharan Thantry Techniques for enabling bit-parallel wide string matching with a simd register

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4307377A (en) * 1979-11-09 1981-12-22 Bell Telephone Laboratories, Incorporated Vector coding of computer graphics material
DE4334294C1 (de) * 1993-10-08 1995-04-20 Ibm Prozessor für Zeichenketten variabler Länge
US5608662A (en) * 1995-01-12 1997-03-04 Television Computer, Inc. Packet filter engine
CN1293478C (zh) * 1999-06-30 2007-01-03 倾向探测公司 用于监控网络流量的方法和设备
GB0210604D0 (en) * 2002-05-09 2002-06-19 Ibm Method and arrangement for data compression
US20050086234A1 (en) * 2003-10-15 2005-04-21 Sierra Wireless, Inc., A Canadian Corporation Incremental search of keyword strings
US7574742B2 (en) * 2004-11-15 2009-08-11 Industrial Technology Research Institute System and method of string matching for uniform data classification
US7636703B2 (en) * 2006-05-02 2009-12-22 Exegy Incorporated Method and apparatus for approximate pattern matching
US9069547B2 (en) * 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
US7908457B2 (en) * 2008-05-05 2011-03-15 International Business Machines Corporation Retaining an association between a virtual address based buffer and a user space application that owns the buffer
US9804839B2 (en) 2012-12-28 2017-10-31 Intel Corporation Instruction for determining histograms
US9323865B2 (en) * 2013-12-24 2016-04-26 TCL Research America Inc. Content alignment method and system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1175575A (en) * 1981-12-07 1984-10-02 Michael S. Pelley Programmable controller with multiple functions
US4991134A (en) * 1988-03-30 1991-02-05 International Business Machines Corporation Concurrent sorting apparatus and method using FIFO stacks
WO2000058828A1 (en) * 1999-03-26 2000-10-05 Microchip Technology Incorporated Microcontroller instruction set
US20040199630A1 (en) * 1999-06-30 2004-10-07 Sarkissian Haig A. State processor for pattern matching in a network monitor device
US8762694B1 (en) * 2003-02-19 2014-06-24 Intel Corporation Programmable event-driven yield mechanism
US20140281371A1 (en) * 2013-03-13 2014-09-18 Hariharan Thantry Techniques for enabling bit-parallel wide string matching with a simd register

Also Published As

Publication number Publication date
JP2020530151A (ja) 2020-10-15
IL272136B (en) 2022-08-01
EP3662361A1 (en) 2020-06-10
TWI782060B (zh) 2022-11-01
TW201911081A (zh) 2019-03-16
IL272136A (en) 2020-03-31
KR20200030582A (ko) 2020-03-20
EP3662361B1 (en) 2022-03-23
KR102594770B1 (ko) 2023-10-27
WO2019025752A1 (en) 2019-02-07
CN110998512B (zh) 2023-12-22
JP7245817B2 (ja) 2023-03-24
US10678506B2 (en) 2020-06-09
US20190042190A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
EP2569694B1 (en) Conditional compare instruction
CN110945477B (zh) 数据处理设备中的数据项中的计数元素
US11422807B2 (en) Testing bit values inside vector elements
CN110998512B (zh) 在数据处理设备中对连续值进行匹配
CN111459548B (zh) 双加载指令
EP3759592B1 (en) Data processing
US11550574B2 (en) Generating a vector predicate summary
US11321051B2 (en) Statistical mode determination
US11301252B2 (en) Executing mutually exclusive vector instructions according to a vector predicate instruction
CN114995820A (zh) 代码翻译方法、装置、设备、存储介质和程序产品
JP2020201659A (ja) 演算装置、演算方法、および演算プログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant