掌桥专利:专业的专利平台
掌桥专利
首页

基于时分复用的光学三态内容可寻址存储器

文献发布时间:2023-06-19 13:46:35


基于时分复用的光学三态内容可寻址存储器

背景技术

内容可寻址存储器(CAM)是一种可以执行搜索操作的存储器,可以将数据串作为搜索内容输入其中,并且得到的输出是存储器中存储匹配数据的位置的地址。这与读取操作相反,在读取操作中,输入地址并且得到的输出是存储在与搜索到的地址相对应的存储器位置中的数据。某些CAM可能能够执行上述搜索操作和上述读取操作两者,而非CAM存储器可能能够执行读取操作,但不能执行搜索操作。

三态CAM(TCAM)是这样一种类型的CAM:其中,除两个二进制数据值之外,位单元还可以存储通配符数据值。当搜索存储通配符值的位单元时,不管使用什么搜索标准来搜索位单元,结果都是匹配。某些TCAM可能还允许基于通配符搜索标准进行搜索。当基于通配符搜索标准来搜索位单元时,不管位单元中存储了什么值,结果都是匹配。

附图说明

参照以下附图根据一个或多个不同的实施例详细地描述本公开。附图仅被提供用于说明性目的,并且仅描绘典型实施例或示例实施例。

图1图示了根据本文中公开的技术的实施例的示例光学搜索引擎。

图2图示了根据本文中公开的技术的实施例的另一光学搜索引擎。

图3图示了根据本文中公开的技术的实施例的另一示例光学搜索引擎。

图4图示了根据本文中公开的技术的实施例的另一示例光学搜索引擎。

图5图示了根据本文中公开的技术的实施例的示例相干检测搜索引擎。

图6图示了根据本文中公开的技术的实施例的示例空间复用的光学搜索引擎。

图7图示了根据本文中公开的技术的实施例的示例宽带相干检测搜索引擎。

图8图示了根据本文中公开的技术的实施例的示例计算装置。

图9图示了根据本文中公开的技术的实施例的示例方法。

图10是可以用来实施本公开中描述的实施例的各种特征的示例计算部件。

附图并非是穷举的,并且不将本公开限制于所公开的精确形式。

具体实施方式

内容可寻址存储器(CAM)是一种特殊类型的存储器,通常在高速搜索应用中使用。CAM包括将输入模式与存储的二进制数据进行比较的硬件(电路)。CAM的存储数据不是通过其位置进行访问的,而是基于其内容执行访问。将搜索词输入到CAM,CAM在其内容中对搜索词进行搜索,并且当找到时,CAM返回找到的内容所驻留的位置的地址。CAM功能强大、效率高且速度快。输入模式和CAM中的数据由逻辑‘0’和逻辑‘1’表示(通常被称为二进制CAM或bCAM)。

三态CAM(TCAM)超越了bCAM的二进制性质,允许存储和搜索第三个值,称为通配符或“无关”(don’t care)位。无论存储数据词的位的搜索标准是逻辑‘0’还是逻辑‘1’,存储的通配符位都被视为匹配项。以这种方式,TCAM允许额外的复杂性,因为输入模式可以表示一系列模式,而不仅仅是一个模式。例如,输入模式“01XX0”可以指示四个单独的存储词的匹配项:01000;01010;01100;以及01110。TCAM以大规模并行方式执行存储器中比较操作,使得与旧方法相比能够实现极高的吞吐量。吞吐量的这种增加实现了因特网数据包路由、实时网络流量监测和更高效的访问控制列表,以及需要快速存储器比较的应用程序中的其他改进。

越来越多地使用光学通信技术来执行数据传送。与通过电子方式进行的传统数据传送相比,使用光学器件传送数据能够实现极高的带宽。尽管应用程序经常使用集成光学器件来传送数据,但现有的CAM实施方式通常需要电子信号。因此,需要昂贵的光电转换以将数据从光学域转换到电学域。由于需要这些转换,因此现有的CAM和TCAM实施方式将越来越成为瓶颈,从而降低了网络中可能的总体效率和吞吐量。

在通过援引以其全文并入本文的2020年6月18日提交的相关共同待决申请(美国专利申请号16/905,674)中,发明人公开了一种光电TCAM编码方案和硬件平台,其包括基于集成光子电路中的密集波长解复用的光学矩阵向量乘法引擎。发明人还公开了实施全光学(即,相干)硬件平台的类似编码方案,其中对单一波长的光进行编码并且在多路径干涉仪中使用相位控制来实施矩阵向量乘法。

在本公开中,公开了一种利用时分复用(TDM)的用于光电TCAM的方法和系统。根据本文中公开的技术的各种实施例在时域中对波长上的搜索词进行编码。搜索词的每个位位置与一组时隙相关联。调制器被配置为表示TCAM存储词,其中调制器由编程控制器根据下文更详细地讨论的TDM编码方案进行驱动。输入路由元件将光学搜索信号光学地耦接到调制器中。如果在任何时隙期间,允许光穿过调制器,则指示不匹配。在各种实施例中,公共时钟信号可以由输入编码和编程控制器用来确保位位置编码在输入编码器与调制器之间同步。在各种实施例中,多个调制器可以串联或并联连接,每个调制器被配置为表示不同的TCAM存储词,从而使得能够分别连续地或并行地将搜索词与多个TCAM存储词进行比较。在各种实施例中,TDM编码方案可以与波分复用(WDM)和/或空间复用法结合,以使得能够并行地对照多个TCAM存储词来搜索多个搜索词。在各种实施例中,TCAM光学搜索引擎可以使用集成的光学器件(例如,集成光学电路/芯片)或自由空间光学器件来实施。

图1图示了根据本文中公开的技术的实施例的示例光学搜索引擎100。示例光学搜索引擎100仅被提供用于说明性目的,并且不应被解释为将技术范围仅限于所描绘的实施例。为便于讨论,关于通过使用光学调制器101将搜索词和一个TCAM存储词进行比较来讨论图1的光学搜索引擎100,但在各种实施例中,光学搜索引擎100可以包括多个调制器101,每个调制器与TCAM存储词相关联以使得能够将多个TCAM存储词与搜索词进行比较。如图1所示,搜索词103由输入编码器102接收。在各种实施例中,光学搜索引擎100可以包括一个或多个输入编码器102,每个输入编码器102被配置为对一个或多个接收到的搜索词103中的搜索词103进行编码,并且在其他实施例中,输入编码器102可以被配置为对一个或多个搜索词103进行编码。在一些实施例中,光学搜索引擎输入端(图1中未示出)可以被配置为接收一个或多个搜索词103并且将每个接收到的一个或多个搜索词传输到输入编码器102。可以通过电连接(例如,通过电迹线)、通过光学路由元件(例如,波导、光纤)或这两者的组合来接收一个或多个搜索词103。

在各种实施例中,输入编码器102被配置为在时域中对一个或多个接收到的搜索词103进行编码。在各种实施例中,在相同波长上对一个或多个搜索词103中的每一个的位进行编码。在一些实施例中,可以在多个波长上对每个搜索词103进行编码。表1图示了根据本文中公开的技术的基于TDM的编码方案。

表1

如表1所示,每个逻辑位值由两个时隙t

为便于参考,本文中公开的技术应关于在时间上基于振幅对搜索信号进行编码来讨论,但编码方案也可以基于光的不同特性来实施。作为非限制性示例,输入编码器102可以被配置为使用波长的偏振对光学搜索信号进行编码。例如,如果搜索词位值是逻辑‘1’,则编码方案可以在第一时隙t

在各种实施例中,经编码搜索信号110将包括2N个时隙,其中N是搜索词中的位位置的数量。作为非限制性示例,搜索词103可以包括8个位位置(例如,‘01101000’),并且经编码搜索信号110可以包括8组相关联的时隙(即,总共16个时隙t)。在一些实施例中,每个相关联的时隙t

尽管关于在单一波长上对搜索词进行编码来讨论,但在各种实施例中,可以在单一频率上对搜索词进行编码。如在本领域中理解,信号的频率与其波长成反比,其中信号的频率和波长的乘积等于光速。因此,可以根据波长通过将光速除以波长来确定对应的频率。

由输入编码器102生成的经编码搜索信号110可以耦接到光学输入路由元件104。光学输入路由元件104可以包括光学波导、光纤,或本领域中已知的其他光学路由介质。光学输入路由元件可以由但不限于以下项中的一个或多个构成:砷化镓(GaAs)、磷化铟(InP)、硅(Si)、氮化硅(SiN)、LiNbO

为了执行TCAM搜索操作,调制器101可以在时间上进行调制以表示TCAM存储词。在各种实施例中,调制器101可以包括一个或多个光纤,包括但不限于波导谐振器(例如,环形调制器)、多路径干涉仪(例如,马赫曾德尔干涉仪(MZI))、光子晶体(例如,铌酸锂(LiNbO

在各种实施例中,编程控制器106可以用来在时间上调谐一个或多个调制器101,以表示一个或多个TCAM存储词的位位置。在各种实施例中,编程控制器106可以被配置为控制光学搜索引擎的所有调制器的调谐,而在其他实施例中,可以包括多个编程控制器106,多个编程控制器106中的每一个被配置为调谐一个或多个调制器101。在各种实施例中,每个调制器101可以具有相关联的编程控制器106。每个调制器101可以通信地耦接到一个或多个调谐部件(图1中未示出),该一个或多个调谐部件中的每一个能够改变调制器101的光学特性以使得能够调谐调制器101的性能。在各种实施例中,一个或多个调谐部件可以包括被配置为改变调制器101的芯部或包层的折射率、控制自由载流子的数量和/或创建调制器101的谐振波长的红移和/或蓝移的一个或多个装置。调谐部件的非限制性示例包括加热器、电接触件,以及用来调谐光学部件的谐振波长的其他装置。在各种实施例中,编程控制器106可以包括处理部件、现场可编程门阵列(FPGA)、专用集成电路(ASIC),或存在于计算系统中的其他类型的处理器。在一些实施例中,处理控制器106可以包括中央处理单元(CPU)、图形处理单元(GPU),或在光学搜索引擎100外部的其他处理部件。

在各种实施例中,每个TCAM存储词可以维护在TCAM词存储装置108中。TCAM词存储装置108可以包括被配置为存储一个或多个TCAM词的非暂时性机器可读存储介质。TCAM词存储装置108的非限制性示例可以包括存储器的常见形式,包括RAM、PROM、EPROM、闪速EPROM、NVRAM、忆阻器、光学存储存储器,以及电、光学或电光存储介质。在各种实施例中,TCAM词存储装置108可以包括一种或多种类型的易失性和/或非易失性存储器。在各种实施例中,TCAM词存储装置108可以是用于光学搜索引擎100的被配置为存储TCAM存储词的专用存储器部件,而在其他实施例中,TCAM词存储装置108可以是共享存储器部件中的分区或其他分配的空间。TCAM词存储装置108可以在存储区域网(SAN)或其他联网存储解决方案中实施。编程控制器106可以通信地耦接到TCAM词存储装置108并且被配置为取得TCAM存储词以通过调制器101与经编码存储词进行比较。在各种实施例中,每个TCAM存储词可以与光学搜索引擎100内的特定调制器101相关联,使得编程控制器106始终将表示TCAM存储词的驱动信号施加到相同调制器101。编程控制器106可以将TCAM存储词到调制器101的映射维护在编程控制器106的专用存储器部件(图1中未示出)中、在TCAM词存储装置108中、或在通信地耦接到光学搜索引擎100的另一单独的存储器部件(图1中未示出)中,或者它们的组合。在一些实施例中,每个TCAM存储词可以保存在分配给特定调制器101的存储器空间中的TCAM词存储中、带有识别相关联的调制器101的标识符,或者它们的组合。在一些实施例中,每个TCAM词可以在其编码状态下存储在TCAM词存储装置108中,而在其他实施例中,TCAM词可以在未编码状态下存储。当在编码状态下存储TCAM存储词时,取得TCAM存储词与由编程控制器106施加相关联的驱动信号之间的时延减小,但TCAM词存储装置108的存储器占用可能比在未编码状态下存储TCAM存储词时大(因为词的大小在编码状态下至少加倍以具有分配给位位置的每个时隙的逻辑值)。存储的方法(编码或未编码)取决于实施TCAM的应用程序的要求。

在对根据表1编码的搜索词103执行TCAM操作时,编程控制器106可以被配置为将调制器调谐为允许经编码词的波长的光或阻挡光。表2示出了对于从TCAM词存储装置108取得的TCAM存储词的每个对应位值的调制器101的操作状态。

表2

如表2所示,调制器101可以被配置为在与TCAM存储词位值的位位置相关联的时隙t内使光通过或阻挡光。为了表示逻辑‘1’,调制器101可以被调谐为在与位位置相关联的第一时隙t

使用上文讨论的编码方案,光学搜索引擎100可以被配置为通过TDM编码来提供全光学三态搜索功能。以这种方式,可以避免光电转换并且可以更快地执行TCAM搜索。利用TDM编码通过减少对光学缓冲器的需要而使得光学搜索引擎100与当前的光子功能更兼容,从而减少系统中的时延。在时域中进行编码进一步使得每个TCAM存储词能够用单个光学调制器101(其可以包括一个或多个光学元件(例如,环、MZI、光子晶体等))来表示,从而减少光学搜索引擎100的占用并且使得能够将更多的TCAM存储词与输入搜索词进行比较。基于表1和表2中指示的逻辑状态,只有当搜索词103的位位置的值与TCAM存储词的位位置的对应值之间出现不匹配时,光在给定的时隙t期间才将穿过调制器101。表3示出了基于光学搜索信号上和对应的调制器101的经编码位值的结果。

表3

如表3所示,当经编码词的位是逻辑‘1’时,输入(来自输入编码器102的经编码光学搜索信号)在相关联的位位置的第一时隙t

当经编码词的位是逻辑‘0’时,输入(来自输入编码器102的经编码光学搜索信号)在相关联的位位置的第一时隙t

另外,如果TCAM存储词的位位置的位值是通配符值‘X’,则不论输入是逻辑‘1’还是‘0’,输出波导107上都不存在光。为了表示通配符值‘X’(或也被称为“无关”位),由编程控制器106来驱动调制器,以在两个时隙t

给定的位位置处的不匹配由输出路由元件107上存在光指示。如在表3中看出,当输入的位位置是逻辑‘1’但TCAM存储词的位位置是逻辑‘0’时,光在第一时隙t

在各种实施例中,可以根据来自时钟105的时钟(CLK)信号执行对搜索输入103的编码。CLK信号可以用来识别与搜索词103的每个相应的位位置相关联的时隙t

如在图1中看出,在各种实施例中,光电检测器109可以光学地耦接到输出路由元件107的结果端。光电检测器109可以被配置为感测输出路由元件107上是否存在任何光,由此检测相应的位位置的不匹配。在各种实施例中,光电检测器109可以包括光电二极管或光子的其他类型的电路型检测器。在各种实施例中,每个光电检测器109可以包括被配置为输出与调制器101所表示的存储词相对应的存储器地址的电路。在一些实施例中,每个光电检测器109可以将匹配/不匹配指示输出到编码器电路(图1中未示出),该编码器电路被配置为生成与调制器101的存储词相对应的存储器地址,其中从光电检测器109接收到匹配指示。在一些实施例中,每个光电检测器109可以将指示发送到光学搜索引擎100内的处理电路(图1中未示出),该处理电路被配置为识别与调制器101所表示的特定TCAM存储词相关联的存储器地址并且将电信号输出到存储器控制器或可访问存储器存储的其他装置控制器。

在各种实施例中,光电检测器109可以被配置为在搜索词103的持续时间内(即,在2N个时隙t的持续时间内)随时间而集成不匹配,从而使得光电检测器109能够确定搜索词103与调制器101所表示的TCAM存储词之间的所有不匹配的总和。以这种方式,搜索词103与相应的TCAM存储词之间的不匹配程度。在各种实施例中,光电检测器109可以包括被配置为在搜索的持续时间内执行光的集成的电路,而在一些实施例中,光电检测器109可以被配置有长TC时间常数,以使得能够在光电检测器109内进行集成。在一些实施例中,光电检测器109可以被配置为标记或以其他方式识别在哪些位位置出现不匹配。

尽管在图1中图示了单个调制器101,但在各种实施例中,光学搜索引擎100可以包括多个调制器101,每个调制器101被配置为表示不同的TCAM存储词。以这种方式,可以在相同的搜索操作期间将多个存储词与搜索词103进行比较。图2图示了根据本文中公开的技术的实施例的示例光学搜索引擎200。示例光学搜索引擎200仅被提供用于说明性目的,并且不应被解释为仅限于所描绘的实施例。在各图之间的参考是公共的情况下,应理解,除非另有明确陈述,否则关于那些参考的讨论是适用的。

如图2所示,光学搜索引擎200包括被配置为使得能够将单个搜索词103与M个TCAM存储词进行比较的TCAM词库201。每个TCAM搜索词由调制器101a至101M(通常称为“调制器101”,共同称为“多个调制器101”)表示。在各种实施例中,每个调制器101可以具有专用编程控制器106(如图2所描绘),而在其他实施例中,一个或多个调制器101可以由单个编程控制器106(图2中未示出)驱动。在各种实施例中,在每个时隙t内将电驱动信号204a至204M(通常称为“电驱动信号204”,共同称为“多个电驱动信号204”)施加到相应的调制器101以设置调制器101状态。电驱动信号204与关于图1讨论的来自编程控制器106的驱动信号类似。在各种实施例中,电驱动信号204可以从相同的编程控制器106施加到每个调制器101(和/或与每个调制器101相关联的一个或多个调谐部件),其中编程控制器106被配置为针对来自TCAM词存储(图2中未示出)的多个TCAM存储词中的每一个生成单独的电驱动信号,使得每个调制器101被驱动以表示不同的TCAM存储词。在其他实施例中,电驱动信号204中的一个或多个可以由第一编程控制器106生成,并且电驱动信号204中的一个或多个可以由第二编程控制器106生成。在一些实施例中,图2的每个调制器101可以具有被配置为针对相应的TCAM存储词生成并施加电驱动信号204的专用编程控制器106。

尽管图2中未图示,但光学搜索引擎200将包括关于图1讨论的TCAM词存储装置108和时钟105。为便于理解图2的图示示例,从图2省略了TCAM词存储装置108和时钟105,并且本领域普通技术人员将理解,省略的部件将存在于光学搜索引擎200实施方式中。如图2所示,经编码搜索词110从输入编码器102输出并且光学地耦接到1×M分离器203。在各种实施例中,1×M分离器203被配置为生成M个经编码搜索信号110a至110M(通常称为“经编码搜索信号110”,共同称为“多个经编码搜索信号110”)。以这种方式,可以并行地将搜索词103与TCAM词库201的M个TCAM存储词进行比较。在各种实施例中,输入编码器102和1×M分离器203可以集成到相同部件中,而在一些实施例中,输入编码器102可以被配置为生成经编码搜索信号110的M个版本,而无需将生成的信号分离。

1×M分离器203可以被配置为将每个经编码搜索信号110光学地耦接到TCAM词库201的相应调制器101。在各种实施例中,1×M分离器203的每个输出端可以使用相关联的输入路由元件104a至104M(通常称为“输入路由元件104”,共同称为“多个输入路由元件104”)光学地耦接到相应的调制器101。输入路由元件104可以包括但不限于波导、光纤、耦接器部件或者能够将光从一个点引导到另一点的其他光学元件中的一个或多个。在一些实施例中,来自时钟105的CLK信号可以由1×M分离器203用来控制经编码搜索信号110的M个副本的输出。1×M分离器203可以包括被配置为延迟来自时钟105的CLK信号的一个或多个时钟延迟,使得输出的经编码搜索信号110与相应的调制器101同步,以便与搜索词103的位位置相关联的时隙t跟与相应的调制器101所表示的TCAM存储词的对应位位置相关联的时隙t同步。在一些实施例中,1×M分离器203可以具有来自不同时钟源的专用CLK信号。

每个调制器101可以通过相应的输出路由元件107a至107M(通常称为“输出路由元件107”,共同称为“多个输出路由元件107”)光学地耦接到专用光电检测器109a至109M(通常称为“光电检测器109”,共同称为“多个光电检测器109”)。图2所示的每个光电检测器109可以与关于图1讨论的光电检测器109类似。使光电检测器109专用于图2中的每个调制器101使得能够并行地专用搜索词与每个TCAM存储词的比较结果。

图3图示了根据本公开的技术的实施例的另一示例光学搜索引擎300。示例光学搜索引擎300被提供用于说明性目的,并且不应被解释为仅限于所描绘的实施例。在各图之间的参考是公共的情况下,应理解,除非另有明确陈述,否则关于那些参考的讨论是适用的。图3的光学搜索引擎300被配置为使得能够连续地而非并行地将搜索词103与多个TCAM存储词进行比较。如图3所示,每个调制器101可以与相应的波长λ相关联(即,每个TCAM存储词可以与相应的波长λ相关联)。输入编码器102可以被配置为在存储词波长λ

不同于图2的并联配置,每个调制器101可以串联设置在搜索路由元件302上。如图所示,搜索路由元件302可以将多波长经编码搜索信号310光学地耦接到第一调制器101a中。如图3所示,第一调制器101a与存储词波长λ

在多波长经编码搜索信号310内包括的多个波长的情况下,将单个光电检测器设置在搜索路由元件302的端部上将导致难以确定搜索信号与哪些TCAM存储词具有至少一个位不匹配。在一些实施例中,搜索路由元件302可以被配置为在遍历所有的调制器101之后将第M调制器101M的输出端光学地耦接到光学解复用器301,该光学解复用器被配置为将多波长经编码搜索信号310分为留在多波长经编码搜索信号310中的一个或多个单独的波长λ。在每个调制器101处,如果搜索词匹配相关联的TCAM存储词,比在搜索路由元件302的输出端处,相关联的存储词波长λ的光将不留在搜索路由元件302上(即,将从多波长经编码搜索信号310中过滤掉)。留在搜索路由元件302上并进入光学解复用器301的任何光表明搜索词103与剩余存储词波长λ的相关联的TCAM存储词具有至少一个位不匹配。在一些实施例中,每个调制器101可以被配置为用作带通滤波器。调制器的“阻挡”状态可以类似于调制器101的“开”状态(即,调制器101被配置为使相应的存储词波长λ衰减),并且调制器的“通过”状态可以类似于调制器101的“关”状态(即,调制器101被配置为使所有波长的光通过)。

光学解复用器301可以被配置为将每个单独的存储词波长λ输出到与相应的存储词波长λ相关联的相应输出路由元件107上。在各种实施例中,输出路由元件107可以与关于图1和图2讨论的输出路由元件107类似。如果没有在与相应的存储词波长λ相关联的输出路由元件107上输出光,则这表明与该相应的存储词波长λ相关联的TCAM存储词匹配搜索词103。在各种实施例中,光电检测器109(与关于图1和图2讨论的光电检测器109类似)光学地耦接到每个相应的输出路由元件107的输出端,以检测相关联的存储词波长λ的光。作为非限制性示例,如果搜索词103和由第三调制器101c所表示的TCAM存储词具有至少一个不匹配位,则第三光电检测器109c可以检测第三存储词波长λ

光学搜索引擎300延迟对每个位位置的匹配或不匹配的检测,直到多波长经编码搜索信号310已经遍历搜索路由元件302的整个长度(即,已经穿过所有的调制器101)为止。图4图示了根据本文中公开的技术的另一示例光学搜索引擎400。光学搜索引擎400仅被呈现用于说明性目的,并且不应被解释为将技术范围仅限于所描绘的实施例。在各图之间的参考是公共的情况下,应理解,除非另有明确陈述,否则关于那些参考的讨论是适用的。不同于关于图3讨论的光学搜索引擎300,图4的光学搜索引擎400将每个TCAM搜索词的相关联的光电检测器109光学地耦接到相应的调制器101。如图4所示,输出路由元件402a至402M(通常称为“输出路由元件402”,共同称为“多个输出路由元件402”)可以光学地耦接到每个相应的调制器101。代替等到多波长经编码搜索信号310遍历所有的调制器为止,可以与调制器101处的比较按顺序检测不匹配。作为非限制性示例,光电检测器109a可以通过第一输出路由元件402a光学地耦接到第一调制器101a。如果出现不匹配,则在多波长经编码搜索信号310遍历所有的其他调制器101之前,第一存储词波长λ1的光可以由调制器在第一输出路由元件402a上输出并被光电检测器109a检测到。使用光学搜索引擎400,可以进行不匹配检测,而在搜索路由元件302的端部处无需光学解复用器。

在各种实施例中,基于TDM的光学TCAM的光学搜索引擎可以利用相干检测(即,零差检测)来实施。图5图示了根据本文中公开的技术的实施例的示例相干检测搜索引擎500。示例相干检测搜索引擎500仅被提供用于说明性目的,并且不应被解释为将技术范围仅限于所描绘的实施例。在各图之间的参考是公共的情况下,应理解,除非另有明确陈述,否则关于那些参考的讨论是适用的。如图5所示,搜索词103可以被输入编码器102编码以生成单一波长经编码搜索信号110,这与关于图1和图2讨论的编码类似。在各种实施例中,可以包括1×M分离器203以生成经编码搜索信号110的M个副本115a至115M(通常称为“经编码搜索信号115”,共同称为“多个经编码搜索信号115”)。尽管图5中未图示,但时钟(与关于图1讨论的时钟105类似)可以将CLK信号提供到输入编码器102,该输入编码器可以使用CLK信号以应用上文关于表1讨论的编码方案。

在各种实施例中,使用与对搜索词103进行编码的相同波长来对要与搜索词103比较的每个TCAM存储词进行编码。如图5所示,多个TCAM存储词525可以从TCAM词存储装置108获得并提供到多词编码器505。在各种实施例中,多词编码器505可以包括一种或多种类型的处理器或处理电路,与上文关于图1讨论的编程控制器106类似。多词编码器505可以被配置为将每个TCAM存储词编码到与经编码搜索词115相同的波长的光学信号上。在各种实施例中,光源515可以光学地耦接到多词编码器505并且被配置为将与搜索词103相关联的单一波长(即,包括经编码搜索信号115的单一波长)的光提供到多词编码器505。在各种实施例中,光源515可以包括一种或多种类型的发光二极管(LED;可能具有后续窄带滤波器)、单一波长激光器、竖直腔表面发射激光器(VCSEL),或其他光发射源。在各种实施例中,光源515可以通信地耦接到输入编码器102,使得输入编码器102可以在光源515的单一波长的光学信号上对搜索词103进行编码。在一些实施例中,输入编码器102可以通信地耦接到与光源515类似的单独光源。在光域中接收到搜索词的情况下,注入锁定光源可以被输入编码器102用来在相干检测搜索引擎500的单一波长的信号上对接收到光学搜索词103进行编码。

在各种实施例中,输入编码器102和多词编码器505可以各自利用时钟信号CLK来执行编码,与上文关于图1讨论的来自时钟105的信号类似。如图5所示,输入编码器102可以接收搜索词时钟信号CLK

多词编码器505可以包括多个光学调制器(图5中未示出),光学调制器中的一个或多个被配置为针对从TCAM词存储装置108取得的每个TCAM存储词525生成经编码TCAM词信号530a至530M(通常称为“经编码TCAM词信号530”,共同称为“多个经编码TCAM词信号530”)。每个TCAM词信号530可以按与经编码搜索信号115类似的方式进行编码。也就是,不同于关于图1至图4讨论的实施例,每个TCAM存储词525被编码为传播光学信号,而不是被编码为调制器的状态。表4图示了根据本文中公开的技术的基于TDM的编码方案。

表4

如表4所示,每个逻辑位值由两个时隙t

使用表1和表4的编码方案,相干检测搜索引擎500可以被配置为根据本文中公开的技术来实施三态搜索功能。表5示出了经编码搜索信号115和TCAM词信号530的相干检测的结果。

表5

如表5所示,当位位置处的搜索词103是逻辑‘1’时,经编码搜索信号115将在与位位置相关联的第一时隙t

如图5所示,每个经编码搜索信号115沿着x轴从1×M分离器203朝向光交叉复用器(interleaver)510传播。光交叉复用器510被配置为将输入的信号(即,经编码搜索信号115和TCAM词信号530)朝向倍增器区520的相应倍增器路由。光交叉复用器510被配置为将每个经编码搜索信号115路由到相应倍增器的第一输入端,并且将每个TCAM词信号530路由到相应倍增器的第二输入端。如图5所示,倍增器区520中的每个倍增器与相应的经编码搜索信号115和相应的TCAM词信号530相关联。在一些实施例中,光交叉复用器510可以使用光学偏振交叉复用器分束器来实施。在各种实施例中,光交叉复用器510可以包括偏振器,该偏振器被配置为允许相应的经编码搜索信号115以第一偏振穿过并以第二偏振反射相应的TCAM词信号530。在其他实施例中,可以实施光交叉复用器510,使得相应的经编码搜索信号115和相应的TCAM词信号530在光交叉复用器510的表面上空间偏移。通过这种方式,倍增器区520的倍增器可以被配置为基于信号的位置来识别源信号(即,经编码搜索信号115或TCAM词信号530)。在各种实施例中,每个经编码搜索信号115可以通过光学路由元件进行传播,该光学路由元件与关于图1讨论的输入路由元件104类似,而在其他实施例中,每个经编码搜索信号115可以在自由空间(例如,空气、真空)中传播。自由空间光学器件是使用在自由空间(例如,空气、氧化物、真空、块状光学传输介质(例如,平板波导(slab waveguide)))而不是光学介质(例如,光纤)中传播的光的光学通信技术。

而且,各自表示多个TCAM存储词525的每个TCAM词信号530沿着y轴以与经编码搜索信号115类似的方式从多词编码器505朝向光交叉复用器510中传播。交叉复用器510可以包括偏振分束器或被设计为产生合成信号的其他光学元件,该合成信号包括处于不同偏振、不同位置、不同模式或它们的组合的两个信号。在各种实施例中,交叉复用器510可以包括基于镜子的针孔阵列,其中多个针孔被包括在镜子内以允许一些光穿过针孔而同时在非针孔位置阻挡光与镜子相交。在各种实施例中,交叉复用器510可以被动地路由相干光信号,而在其他实施例中,可以使用主动光交叉复用器510。在各种实施例中,TCAM词信号530在与经编码搜索信号115垂直的方向上传播。交叉复用器510可以包括被配置为允许经编码搜索信号115穿过交叉复用器510的部分反射元件,而TCAM词信号530可以被反射90°,使得经编码搜索信号115和TCAM词信号530彼此平行且在相同方向上传播。通过这种方式,经编码搜索信号115中的一个和相应的TCAM词信号530相对于彼此设置在交叉复用器510的接合点处,使得每个输入信号对(即,每个经编码搜索词115/TCAM词信号530对)光学地耦接到相应倍增器的输入端。作为非限制性示例,在接合点550处,允许经编码搜索信号115b穿过交叉复用器510,而TCAM词信号530b在接合点550处被反射90°。如上所述,在每个输入信号对内,经编码搜索词115可以被路由以光学地耦接到倍增器的第一输入端,并且TCAM词信号530可以被路由以光学地耦接到倍增器的第二输入端。

在各种实施例中,在交叉复用器510之后,输入信号对(包括处于不同偏振、不同位置、不同模式或它们的组合的经编码搜索信号115和TCAM词信号530)各自馈送到倍增器区520内的倍增器中。每个倍增器可以包括能够将TCAM词信号530与相应的经编码搜索信号115进行比较的光学元件,诸如(但不限于)多路径干涉仪。在各种实施例中,每个倍增器可以被配置为执行零差检测(即,单一波长检测)。作为非限制性示例,倍增器区520的第一倍增器被配置为接收第一经编码搜索信号115a和第一TCAM词信号530a。第一倍增器可以被配置为将第一TCAM词信号530a用作参考信号(即,作为在传统零差检测方法中使用的本地振荡器信号)。如上所讨论,平衡光电检测器阵列509的一个光电检测器光学地耦接到倍增器区520的倍增器的相应输出端。相应倍增器的每个分支将包括经编码搜索信号115与TCAM词信号530的总和或者经编码搜索信号115与TCAM词信号530之间的差值。如果参考信号匹配采样信号(在这个背景下是第一经编码搜索信号115a),则平衡光电检测器阵列509将检测到非零量的光(如表5所示),从而指示搜索词103与TCAM存储词525之间的不匹配。然而,如果信号的位位置不匹配(例如,经编码搜索信号110a的位是逻辑‘1’但第一TCAM存储词信号530a的位是逻辑‘0’),则第一倍增器可以被配置为使得第一倍增器的每个臂的输出导致平衡光电检测器阵列509检测到零光,由此指示搜索词103与TCAM存储词525之间的匹配。在一些实施例中,当振幅A存在于参考信号(在这个非限制性示例中时第一TCAM词信号530a)中时,第一倍增器可以被配置为激活倍增器的输出。

在各种实施例中,相干检测搜索引擎500可以使用光学传输介质(诸如平面集成光学器件)来实施。在这样的实施例中,图5所示的每个经编码搜索信号115和TCAM词信号530可以通过光学路由元件进行传播,该光学路由元件包括但不限于波导或光纤。在各种实施例中,为了避免信号之间的交叉,可以在集成光学芯片的不同层上实施每一对光学路由元件(例如,115c和530c)。在各种实施例中,倍增器区520可以设置在集成光学芯片的多个层中的一个中,并且来自每一层的信号可以耦接到与倍增器区520相同的层中。在各种实施例中,可以通过使用一个或多个耦接元件(包括但不限于镜子、格栅或其他耦接部件)来实施耦接。在各种实施例中,倍增器区520可以在集成光学芯片/电路的层上分离,使得将不包括附加的耦接部件。光交叉复用器510可以包括在集成光学芯片/电路内的多个多路径干涉仪。在一些实施例中,代替如图5所示那样垂直地传播,TCAM词信号530可以与经编码搜索信号115平行地传播,每个信号与相关联的多路径干涉仪的输入相关联。在一些实施例中,如果交叉损失是可接受的(即,在特定应用程序的要求内),则多个层中的一个或多个可以组合到在光学路由元件之间具有交叉的单个层中。

关于图1至图5讨论的实施例已经参考使用在表1至表5中体现的TDM编码方案对单个搜索词103进行编码。使用TDM编码方案,光学搜索引擎100至400和相干检测搜索引擎500减少实施光学TCAM所需的光学元件的数量,从而提高TCAM的能量效率。在一些实施例中,一种或多种其他类型的复用可以与TDM编码方案结合使用,以使得能够并行地将多个搜索词与多个TCAM存储词进行比较。作为非限制性示例,使用自由空间光学器件或集成光学芯片/电路的空间复用可以用来使得能够同时将多个搜索词与多个TCAM存储词进行比较。图6图示了根据本文中公开的技术的实施例的示例空间复用的光学搜索引擎600。示例空间复用的光学搜索引擎600仅被提供用于说明性目的,并且不应被解释为将技术范围仅限于所描绘的实施例。在各图之间的参考是公共的情况下,应理解,除非另有明确陈述,否则关于那些参考的讨论是适用的。空间复用的光学搜索引擎600与关于图5讨论的相干检测搜索引擎500类似,其中仅使用单一波长来编码多个搜索词。

如图6所示,多个搜索词SW

第一成像光学器件阵列620和第二成像光学器件阵列630可以分别被配置为扇出每个经编码搜索信号610和每个TCAM词信号530。在各种实施例中,第一想象光学器件阵列620和第二成像光学器件阵列630可以包括被配置为扇出(fan out)光学信号的圆柱形透镜阵列,使得每个光学信号(例如,每个经编码搜索词610)的宽度足够宽以与所有的垂直光学信号(例如,所有的TCAM词信号530)相交。在各种实施例中,第一成像光学器件阵列620和/或第二成像光学器件阵列630可以被实施为一个或多个光学成像元件,包括但不限于透镜、光圈、滤波器、偏振旋转器、镜子、分束器、针孔等。作为非限制性示例,考虑输入编码器602的输出包括N×1向量,并且多词编码器505的输出是M×1向量。如在图6中可以看出,第一成像光学器件阵列620可以被配置为沿着y轴将经编码搜索信号610c扇出到自由空间光交叉复用器650的长度,并且第二成像光学器件阵列630可以被配置为沿着x轴将每个TCAM词信号530c扇出到自由空间光交叉复用器650的长度。如所图示,自由空间光交叉复用器650由其内设置有对角面的立方体表示。在各种实施例中,自由空间光交叉复用器650可以被实施为沿着所描绘的立方体的对角线设置的透镜,而在其他实施例中,自由空间光交叉复用器650可以被实施为沿着对角线耦接在一起以形成转变点的第一棱镜和第二棱镜。自由空间光交叉复用器650的对角线(不论是透镜、两个棱镜之间的转变点还是另一类型的光交叉复用器)等效于关于图5讨论的交叉复用器510,其中对角线被配置为允许扇出的经编码搜索信号610沿着x轴直线传递并且将扇出的TCAM词信号530反射90,使得TCAM词信号530将方向从沿着z轴传播改变为沿着x轴在与经编码搜索信号610相同的方向上传播。在各种实施例中,成像光学器件阵列620、630可以包括被配置为将扇出信号输出到相应的通道或信道的至少一个光学成像元件。通道的数量可以等于经编码搜索词115的数量或TCAM词信号530的数量(即,对于经编码搜索词115来说是N个通道且对于TCAM词信号530来说是M个通道)。在其他实施例中,多个通道可以光学地耦接到成像光学器件阵列620、630内的相应光学成像元件。

因此,每个经编码搜索信号610被配置为与每个TCAM词信号530相关联且与其并行地路由。扇出的信号本质上表示矩阵-矩阵相乘,其中每个矩阵的大小是N×M。在各种实施例中,输入信号对可以光学地耦接到倍增器区640内的多个倍增器中的相应一个。在各种实施例中,倍增器区640内的多个倍增器中的每一个可以与关于图5讨论的倍增器区520中的倍增器类似。如图6所示,倍增器区640可以包括光学地耦接到自由空间光交叉复用器650的输出端的倍增器的N×M网格。为便于参考,倍增器区640内的每个倍增器可以写成倍增器640ij,其中i标识经编码搜索信号610并且j标识TCAM词信号530。作为非限制性示例,自由空间光交叉复用器650中的对角线上的黑框指示第三经编码搜索信号610c和第三TCAM词信号530c在自由空间光交叉复用器650内相交的接合点。所描绘的示例未按比例并且不应这样解释。倍增器640cc可以执行与关于图5讨论的类似的比较。倍增器640cc的输出端可以光学地耦接到光电检测器阵列660的相应光电检测器660cc。光电检测器阵列660可以包括与关于图1至图5讨论的光电检测器109类似的光电检测器的N×M网格,其中光电检测器阵列660中的每个列与相应的TCAM存储词525相关联并且光电检测器阵列660中的每个行与相应的搜索词SW相关联。

在其他实施例中,TDM编码方案可以与基于波长的复用(即,WDM)相结合,以便使得能够并行地将多个搜索词SW与多个TCAM存储词进行比较。图7图示了根据本文中公开的技术的实施例的示例宽带相干检测搜索引擎700。示例宽带相干检测搜索引擎700仅被提供用于说明性目的,并且不应被解释为将技术范围仅限于所描绘的实施例。在各图之间的参考是公共的情况下,应理解,除非另有明确陈述,否则关于那些参考的讨论是适用的。如图7所示,多个搜索词SW

多波长经编码搜索信号710可以光学地耦接到1×M分离器203,其与关于图2讨论的1×M分离器203类似。1×M分离器203可以生成多波长经编码搜索信号715a至715M的M个副本,其中M是要与搜索词SW进行比较的TCAM存储词525的总数。多波长经编码搜索信号715可以按与关于图5讨论的经编码搜索信号115相同的方式传播。

在各种实施例中,多词编码器705可以被配置为创建多个多波长TCAM词信号730a至730M(通常称为“多波长TCAM词信号730”,共同称为“多个多波长TCAM词信号730”)。每个多波长TCAM词信号730可以包括编码到每个相关联的波长λ上的相应TCAM存储词525。宽带光源715可以连接到多词编码器705并由其使用,以在所有的相关联波长λ上对每个TCAM存储词525进行编码。在各种实施例中,宽带光源715可以是连接到输入编码器702的相同宽带光源,并且在一些实施例中,宽带光源715可以是专用光源。交叉复用器510可以被配置为以与关于图5讨论的类似方式路由每个多波长经编码搜索信号715与多波长TCAM词信号730中的相应一个。以这种方式,生成包括所有的搜索词SW(在相应的相关联波长λ上)和相应的TCAM搜索词525(在所有的相关联波长λ上编码)的光学信号。

并行路由的光学信号可以光学地耦接到倍增器区720内的相应倍增器。倍增器区720内的每个倍增器可以与关于图5讨论的倍增器区520中的倍增器类似,除了倍增器区720中的每个倍增器包括多波长倍增器。在一些实施例中,倍增器区720内的每个倍增器可以包括被配置为在每个相关联波长λ上操作的一个或多个光学元件。

为了考虑到多个相关联波长λ,倍增器区720内的每个倍增器可以光学地耦接到相应解复用器760a至760M(通常称为“解复用器760”,共同称为“多个解复用器760”)。每个解复用器760可以被配置为以与关于图3讨论的解复用器301类似的方式将相应的相关联波长λ的光分开。每个解复用器760可以包括光学地耦接到光电检测器阵列780a至780M(通常称为“光电检测器阵列780”,共同称为“多个光电检测器阵列780”)的多个输出端。光电检测器阵列780内的每个光电检测器可以与相应的TCAM存储词相关联。在各种实施例中,每个光电检测器阵列780可以包括从解复用器760输出的每波长的平衡光电检测器阵列(与关于图5讨论的平衡光电检测器阵列509类似)。

在各种实施例中,根据图6和图7的示例实施例,TDM编码方案可以与空间复用和WDM方法结合。以这种方式,可以获得所有方法的能量效率益处。作为非限制性示例,可以以更能量有效的方式搜索较长的词、较大数量的词或它们的组合,从而提高TCAM的整体吞吐量和效率。

关于图1至图7讨论的光学搜索引擎可以在装置的TCAM部件内实施,从而与传统TCAM相比,提高搜索的速度和效率。图8图示了根据本文中公开的技术的实施例的示例计算装置800。示例计算装置800被提供用于说明性目的,并且不应被解释为将技术范围仅限于所描绘的实施例。在各种实施例中,示例计算装置800可以包括更多或更少的部件。当在各图之间使用公共参考时,应理解,除非另外陈述,否则与这样的参考相关联的所有描述适用于参考的所有实例。

如图8所示,计算装置800可以包括处理器803。在各种实施例中,处理器803可以是通用处理器(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者本领域中已知的其他计算机处理器装置中的一个或多个。在各种实施例中,处理器803可以包括被配置为控制计算装置800的TCAM搜索功能的操作的协处理器。在一些实施例中,处理器803可以被配置为将电搜索词发送到和光学搜索引擎850。在各种实施例中,光学搜索引擎850可以被配置为实施上文关于图1至图7讨论的实施例。由处理器803执行的一个或多个应用程序可以通过电子地提交电搜索输入行801的搜索词来请求访问在与计算装置800相同的网络内的存储器的一部分。光学搜索引擎850可以对光学搜索信号上的搜索词进行编码,如关于图1至图7所讨论。在各种实施例中,搜索词可以通过光学搜索输入行802从光源804光学地提交到光学搜索引擎850。

在各种实施例中,光源804可以包括来自计算装置800的光学收发器(图8中未示出)的输出。光学收发器可以被配置为从连接到计算装置800的一个或多个其他装置接收编码有搜索词的光学信号。在一些实施例中,光源804可以包括在计算装置800内并连接到计算装置内的一个或多个其他部件和/或连接到面板接收器的内部输出的光纤或其他光学传输介质。通过光学搜索输入802光学地接收的搜索词可以复用到多个光学搜索信号中,如关于图1至图7所讨论。

在各种实施例中,处理器803可以通信地耦接到编程控制器806。如关于图1至图7所讨论,编程控制器806可以被配置为对光学搜索引擎800内的多个调制器进行编程,使得根据关于图1至图5讨论的编码方案来驱动每个调制器的状态。在各种实施例中,处理器803可以向编程控制器806发送要存储的词,该编程处理器然后可以确定应如何对电驱动信号进行编码。在一些实施例中,处理器803和编程控制器806可以是相同的部件。在一些实施例中,编程控制器806可以被配置为针对每个词来接收用于光学搜索引擎850的调制器的操作的指令。

在执行搜索之后,可以由光学搜索引擎850输出一个或多个输出信号807。在各种实施例中,输出信号807可以包括在网络内的存储器部件中且可由计算装置800直接地或间接地(即,通过网络内的另一装置)访问的一个或多个存储器地址,该一个或多个存储器地址与由被确定为匹配搜索词的光学搜索引擎850的多个调制器所表示的一个或多个存储词相对应。输出信号807可以发送到转换器870、激光器860或这两者的组合。如果与(多个)匹配的TCAM存储词相对应的存储器地址要发送到电子部件(例如,直接地连接到计算装置800的存储器控制器)以获得对所请求的(多个)存储器地址处的内容的访问,则输出信号807可以发送到转换器870,该转换器被配置为将输出信号转换成包括(多个)存储器地址的电信号。在各种实施例中,转换器870可以包括模数转换器(ADC)。如果输出信号807要光学地发送到另一实体(例如,通过光学互连件的另一计算装置),则输出信号807可以发送到激光器860,该激光器被配置为将输出转换成光学信号,以便传输到另一实体,诸如存储器控制器或另一装置。

图9是根据本公开的实施例的示例方法900。示例方法900被提供用于说明性目的,并且不应被解释为限制本文中公开的技术范围。示例方法900可以在与上文关于图1至图8讨论的那些类似的光学TCAM中实施,以执行三态搜索。在各种实施例中,方法900可以包括可由计算装置的一个或多个处理器执行并存储在非暂时性机器可读存储介质上的一个或多个非暂时性机器可读指令。在操作902处,可以从搜索词源接收一个或多个搜索词。一个或多个搜索词可以由与关于图1至图8讨论的那些类似的光学搜索系统的搜索输入接收。在各种实施例中,一个或多个搜索词可以作为来自可以访问光学搜索系统的一个或多个处理器和/或应用程序的电子信号进行接收。在一些实施例中,可以在来自光源的经编码光学搜索信号上接收一个或多个搜索词,与上文关于图1至图8讨论的类似。在各种实施例中,搜索词源可以包括处理电路、应用程序、光学收发器或者关于图1至图8讨论的其他源。在各种实施例中,一个或多个搜索词可以由与关于图1至图8讨论的输入编码器类似的输入编码器接收。

在操作904处,在时域中对一个或多个搜索词中的每一个的每个位进行编码。在各种实施例中,可以按与关于上表1至表5讨论的TDM编码方案类似的方式执行对每个位进行编码。搜索词的每个位可以与两个时隙相关联。在各种实施例中,可以基于来自时钟源的时钟信号来确定时隙。作为非限制性示例,在第一时钟周期期间,输入编码器可以设置与位位置相关联的第一时隙的值,在第二时钟周期期间,输入编码器可以设置与相同位位置相关联的第二时隙的值,并且针对TCAM存储词,调制器可以根据与相同位位置相关联的第一时隙进行设置,以此类推。也就是,输入编码器和调制器可以并行地操作。在各种实施例中,可以使用相同的时钟信号对一个或多个TCAM存储词的每个对应的位进行编码,而在其他实施例中,可以使用单独的时钟信号对搜索词和TCAM存储词进行编码。在各种实施例中,可以使用延迟的时钟信号对TCAM存储词的对应位位置进行编码。

在一些实施例中,操作904可以任选地包括以与上文关于图6讨论的类似的方式空间地复用一个或多个搜索词中的每一个。空间地复用一个或多个搜索词中的每一个可以包括根据自由空间光学组合器/分离器来将用于每个搜索词的经编码光学信号扇出。在各种实施例中,一个或多个搜索词中的每一个可以在单一波长上进行编码。在一些实施例中,操作904可以任选地包括将多个波长中的波长与一个或多个搜索词中的每个搜索词相关联,使得在相关联波长的光上对相应的搜索词进行编码。在各种实施例中,除了在时域中对搜索词进行编码(即,TDM编码),一个或多个搜索词中的每一个还可以空间地和通过WDM两者进行复用。

在操作906处,可以将经编码的一个或多个搜索词输入到光学搜索引擎中。输入一个或多个经编码搜索词可以包括在与关于图1至图8讨论的输入路由元件类似的输入路由元件上输出经编码搜索信号。在各种实施例中,输入经编码搜索信号可以包括使用分离器(诸如关于图1至图8讨论的1×M分离器)来生成经编码搜索信号的一个或多个副本。在一些实施例中,一个或多个搜索词中的每一个可以在单独的经编码搜索信号上输入,而在其他实施例中,所有的搜索词都可以在多波长经编码搜索信号上输入。在一些实施例中,可以在多个波长上对每个搜索词进行编码,而在其他实施例中,可以在相关联波长上对每个搜索词进行编码。

在操作908处,将每个搜索词的每个经编码位与一个或多个TCAM存储词的对应位进行比较。可以按与关于图1至图8讨论的类似的方式执行比较。在各种实施例中,光学搜索引擎的调制器可以由编程控制器驱动以在时域中对多个TCAM存储词中的TCAM存储词进行编码,类似于对每个搜索词的编码。在一些实施例中,对TCAM存储词进行编码可以包括生成表示每个TCAM存储词的一个或多个TCAM词信号。在操作910处,确定相应位位置的比较结果。在一些实施例中,可以在词比较的持续时间内确定每个基于位的比较结果,而在其他实施例中,可以在所有的经编码位与多个TCAM存储词进行比较(例如,搜索词的所有经编码位已经遍历多个调制器)之后确定每个基于位的比较结果。在一些实施例中,可以并行地搜索多个TCAM存储词,每个TCAM存储词具有被配置为光学地耦接来自输入编码器的经编码搜索信号的副本的相应输入路由元件。

在操作912处,可以将多个比较结果集成以确定搜索词是否匹配TCAM存储词。在用来对搜索词进行编码的所有相关联的时隙遍历光学搜索引擎之后,光电检测器可以被配置为将在一个或多个光学路由元件和/或自由空间光学路径上接收的所有光信号集成。可以按与上文关于图1至图8讨论的类似的方式执行集成。在操作914处,可以确定与一个或多个匹配的TCAM存储词相关联的存储器地址。这个确定可以类似于关于图1至图8讨论的确定。

图10描绘了可以实施本文中描绘的各种实施例的示例计算机系统1000的框图。计算机系统1000包括总线1002或用于传送信息的其他通信机构、与总线1002耦接以用于处理信息的一个或多个硬件处理器1004。硬件处理器1004可以是例如一个或多个通用微处理器。在各种实施例中,计算机系统1000可以与关于图8讨论的计算系统800类似。

计算机系统1000还可以包括耦接到总线1002以用于存储信息和要由处理器1004执行的指令的主存储器1006,诸如随机存取存储器(RAM)、缓存和/或其他动态存储装置。主存储器1006还可以用于存储在要由处理器1004执行的指令的执行期间的临时变量或其他中间信息。当存储在可供处理器1004访问的存储介质中时,这样的指令使计算机系统1000成为被自定义为执行指令中指定的操作的专用机器。

计算机系统1000还包括只读存储器(ROM)1008或者耦接到总线1002以用于为处理器1004存储静态信息和指令的其他静态存储装置。提供诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等存储装置1010并且耦接到总线1002以用于存储信息和指令。

计算机系统1000可以经由总线1002耦接到诸如液晶显示器(LCD)(或触摸屏)等的显示器1012上,以用于向计算机用户显示信息。包括字母数字键和其他键的输入装置1014耦接到总线1002,以用于将信息和命令选择传送到处理器1004。另一种类型的用户输入装置是如鼠标、轨迹球或光标方向键等光标控制装置1016,以用于将方向信息和命令选择传送到处理器1004并用于控制在显示器1012上的光标移动。在一些实施例中,与光标控制装置相同的方向信息和命令选择可以通过在没有光标的情况下接收触摸屏上的触摸来实施。

计算系统1000可以包括用于实施GUI的用户界面模块,所述GUI可以作为由(多个)计算装置执行的可执行软件代码被存储在大容量存储装置中。通过举例的方式,所述模块和其他模块可以包括部件(诸如软件部件、面向对象的软件部件、类部件和任务部件)、进程、函数、属性、过程、子例程、程序代码段、驱动程序、固件、微代码、电路、数据、数据库、数据结构、表格、数组和变量。

通常,如本文所使用的词语“部件”、“引擎”、“系统”、“数据库”、“数据存储”等可以是指在硬件或固件中实施的逻辑,或者是指以诸如例如Java、C或C++等编程语言编写的、可能具有入口点和出口点的软件指令集。软件部件可以被编译并链接到可执行程序,被安装在动态链接库中,或者可以用诸如例如BASIC、Perl、或Python等解释性编程语言书写。应当理解,软件部件可以从其他部件或从其本身调用,和/或可以响应于检测到的事件或中断而被调用。被配置用于在计算装置上执行的软件部件可以被提供在计算机可读介质中,诸如致密盘、数字视频盘、闪存驱动器、磁盘、或任何其他有形介质,或者可以被提供作为数字下载(并且可以原始地以要求在执行之前安装、解压缩或解密的压缩格式或可安装格式来存储)。这样的软件代码可以部分或全部地存储在执行计算装置的存储器装置上,以用于由计算装置执行。软件指令可以嵌入在诸如EPROM等固件中。将进一步理解,硬件部件可以包括诸如门和触发器等连接逻辑单元,和/或可以包括诸如可编程门阵列或处理器等可编程单元。

计算机系统1000可以使用定制的硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实施本文所描述的技术,所述定制的硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统相结合使计算机系统1000成为专用机器或者将其编程为专用机器。根据一个实施例,本文的技术由计算机系统1000响应于处理器1004执行主存储器1006中包含的一个或多个指令的一个或多个序列而执行。这种指令可以从另一个存储介质(诸如存储装置1010)读取到主存储器1006中。主存储器1006中包含的指令序列的执行使(多个)处理器1004执行本文所描述的过程步骤。在替代性实施例中,可以使用硬接线电路代替软件指令或与软件指令组合。

如本文所使用的术语“非暂时性介质”及类似术语是指存储使机器以特定方式操作的数据和/或指令的任何介质。这种非暂时性介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储装置1000。易失性介质包括动态存储器,如主存储器1006。非暂时性介质的常见形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或者任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、闪速EPROM、NVRAM、任何其他存储器芯片或者盒、以及所述介质的联网版本。

非暂时性介质不同于传输介质但可以与传输介质结合使用。传输介质参与非暂时性介质之间的信息传递。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线1002的导线。传输介质还可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的声波或光波。

计算机系统1000还包括耦接到总线1002的通信接口1018。网络接口1018提供耦接到一个或多个网络链路的双向数据通信,所述一个或多个网络链路连接到一个或多个本地网络。例如,通信接口1018可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,以向相应类型的电话线提供数据通信连接。作为另一个示例,网络接口1018可以是用于提供与兼容LAN(或用于与WAN进行通信的WAN部件)的数据通信连接的局域网(LAN)卡。还可以实施无线链路。在任何这种实施方式中,网络接口1018发送和接收携载表示各种类型信息的数字数据流的电信号、电磁信号或光信号。

网络链路通常通过一个或多个网络向其他数据装置提供数据通信。例如,网络链路可以提供通过本地网络到主计算机或到由因特网服务提供商(ISP)操作的数据装置的连接。ISP进而通过现在通常称为“因特网”的全球分组数据通信网络来提供数据通信服务。本地网络和因特网都使用携载数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路上和通过通信接口1018的信号(其将数字数据载送到计算机系统1000和从所述计算机系统载送数字数据)是传输介质的示例形式。

计算机系统1000可以通过(多个)网络、网络链路和通信接口1018发送消息和接收数据,包括程序代码。在因特网示例中,服务器可以通过因特网、ISP、本地网络和通信接口1018传输应用程序的请求代码。

所接收的代码可以在被接收到时由处理器1004执行,和/或存储在存储装置1010或其他非易失性存储器中以供稍后执行。

在前面章节中所描述的每个过程、方法、和算法均可以在由包括计算机硬件的一个或多个计算机系统或计算机处理器所执行的代码部件中实施并由所述代码部件全部或部分地进行自动化。所述一个或多个计算机系统或计算机处理器还可以操作以支持“云计算”环境中相关操作的进行、或者操作作为“软件即服务”(SaaS)。所述过程和算法可以在专用电路中部分地或全部地实施。上文所描述的各种特征和过程可以彼此独立地使用,或者可以以各种方式进行组合。不同的组合和子组合旨在落入本公开的范围内,并且在一些实施方式中可以省略某些方法框或过程框。本文描述的方法和过程也不限于任何特定的顺序,并且与所述方法和过程相关的框或状态可以以适当的其他顺序进行、或者可以并行进行、或者以某种其他方式进行。可以向所公开的示例实施例中添加框或状态或从中移除框或状态。可以将某些操作或过程的进行分配到多个计算机系统或计算机处理器之中,使其不是仅驻留在单个机器内,而是跨多个机器部署。

如本文所使用的,电路可以利用任何形式的硬件、软件或其组合来实施。例如,可以实施一个或多个处理器、控制器、ASIC、PLA、PAL、CPLD、FPGA、逻辑部件、软件例程或其他机制以构成电路。在实施中,本文描述的各种电路可以被实施为分立电路,或者所描述的功能和特征可以在一个或多个电路之中部分地或全部地共享。即使可以分别地描述或主张各种特征或功能元件作为单独的电路,这些特征和功能也可以在一个或多个公共电路之间共享,并且这种描述不应要求或暗示需要单独的电路来实施这样的特征或功能。在使用软件来全部或部分地实施电路的情况下,这样的软件可以被实施以与能够执行关于所述软件所描述的功能的计算系统或处理系统(诸如计算机系统1000)一起操作。

如本文所使用的,术语“或”可以以包括性或排他性的意义来解释。而且,不应将对单数形式的资源、操作或结构的描述理解为排除复数。除非另外具体规定,或在如所使用的环境内以其他方式被理解,否则条件语言(除其他外,比诸如“可”、“可以”、“可能”或“会”)一般地旨在传达某些实施例包括(而其他实施例不包括)某些特征、元素和/或步骤。

除非另外明确说明,否则本文档中使用的术语和短语及其变体应被解释为开放式的而不是限制性的。形容词(诸如“常规”、“传统”、“正常”、“标准”、“已知”和类似含义的术语)不应被解释为将所描述的项限制为给定时间段或在给定时间可用的项,而是应该被理解为包含可能现在或将来的任何时候都可用或已知的常规、传统、正常或标准技术。在某些实例中,宽泛单词和短语(诸如“一个或多个”、“至少”、“但不限于”或其他类似的短语)的存在不应被理解为是指在这类宽泛短语可能不存在的情况下意图或要求更窄的情况。

技术分类

06120113806095