Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PHOTONIC CONTENT-ADDRESSABLE MEMORY AND APPLICATIONS THEREOF
Document Type and Number:
WIPO Patent Application WO/2024/074901
Kind Code:
A1
Abstract:
Photonic content-addressable memories (CAMs) and applications thereof are provided. The CAM includes a photonic cross-bar array comprising a plurality of row and column waveguides, and a plurality of photonic filter devices. Each filter device is selectively programmable in first and second states representing respective stored bit values that filters out light according to the programming. An encoder for encoding a plurality of input bit-strings into optical signals such that bit values in different bit-strings are encoded using optical signals in different pairs of optical states, and to simultaneously supply the optical signals corresponding to each bit-position in the bit-strings to a respective row waveguide of the array. The CAM further comprises a detector for detecting light in any of said optical states in each column waveguide, thereby identifying any mismatch between each input bit-string and bit values stored in the filter devices coupling light to that waveguide.

Inventors:
SYED GHAZI SARWAT (CH)
SEBASTIAN ABU (CH)
Application Number:
PCT/IB2023/056187
Publication Date:
April 11, 2024
Filing Date:
June 15, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
IBM (US)
IBM ISRAEL SCIENCE AND TECH LTD (IL)
IBM CHINA INVEST CO LTD (CN)
International Classes:
G11C15/00
Attorney, Agent or Firm:
GILBOA, Eyal (IL)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A photonic content-addressable memory comprising: a photonic cross-bar array comprising a plurality of row and column waveguides; a plurality of photonic fdter devices, each located at a respective cross-point of the row and column waveguides for selectively coupling light from the row waveguide to the column waveguide at that cross-point, wherein each fdter device is selectively programmable in first and second states representing respective stored bit values, and each filter device is operable, in said first state, to filter out light in any of a first plurality of optical states from light coupled to the column waveguide and, in said second state, to filter out light in any of a second, different plurality of optical states from light coupled to the column waveguide; an encoder for encoding a plurality of input bit-strings into optical signals such that bit values in different bit-strings are encoded using optical signals in different pairs of optical states, each pair comprising one state from each of said first and second plurality, and to simultaneously supply the optical signals corresponding to each bit-position in the bit-strings to a respective row waveguide of the array; and a detector for detecting light in any of said optical states in each column waveguide, thereby identifying any mismatch between each input bit-string and bit values stored in the filter devices coupling light to that waveguide.

2. The content-addressable memory of claim 1 wherein the encoder is adapted to encode input bit-strings comprising bit values 0, 1 and X, where X indicates a don’t-care bit, such that bit values 0 and 1 in a bit-string are encoded using optical signals in a said pair of optical states and a bit value X is encoded as zero signal.

3. The content-addressable memory of claim 1 wherein said optical states correspond to one of respective wavelengths of light and respective polarization states of light.

4. The content-addressable memory of claim 1 wherein each fdter device comprises a directional coupler for coupling light from the row waveguide to the column waveguide, and a programmable fdter for operation in the first and second programmable states.

5. The content-addressable memory of claim 4 wherein the directional couplers are adapted for equal distribution of optical power between column waveguides of the array.

6. The content-addressable memory of claim 4 wherein said optical states correspond to respective wavelengths of light and said programmable filter comprises a frequency filter for filtering out light having any of a first plurality of wavelengths in the first programmable state and any of a second plurality of wavelengths in the second programmable state.

7. The content-addressable memory of claim 6 wherein the frequency filter comprises first and second ring resonators which are operable to filter out said light in the first and second programmable states respectively.

8. The content-addressable memory of claim 7 wherein the ring resonators include respective memory elements which are programmable to tune the ring resonators for operation in said first and second programmable states.

9. The content-addressable memory of claim 8 wherein each memory element comprises a phase-change memory element.

10. The content-addressable memory of claim 1 wherein: the encoder is operable to encode, for each input bit-string, at least one additional, logic bit associated with that bit string using at least one additional optical signal in at least one additional optical state, different to states in said first and second plurality of states, and to supply the additional optical signals for corresponding logic bits of the bit-strings simultaneously to a row waveguide of the array; the memory includes a plurality of programmable logic devices arranged for selectively coupling the additional optical signals to the column waveguides; and the detector is operable to detect the additional optical signals in each column waveguide.

11. The content-addressable memory of claim 10 wherein said at least one additional optical state is different for different input bit-strings.

12. The content-addressable memory of claim 10 wherein: said first and second plurality of optical states correspond to respective wavelengths of light; said additional optical state corresponds to an additional wavelength of light; and each programmable logic device comprises a directional coupler for coupling light from a row waveguide to a column waveguide and a programmable frequency filter for selectively filtering out light having said additional wavelength from light coupled to the column waveguide.

13. The content-addressable memory of claim 12 wherein the frequency filter comprises a ring resonator and a memory element which is programmable to tune the ring resonator for filtering out light having said additional wavelength.

14. The content-addressable memory of claim 1 wherein the detector is adapted to produce an output indicating, for each column waveguide, whether each input bit-string matches the bit values stored in the filter devices coupling light to that waveguide.

15. The content-addressable memory of claim 1 wherein the detector is connected to logic for performing a processing operation dependent on detection of light in any of said optical states by the detector.

16. The content-addressable memory of claim 1 including an optical amplifier provided between each column waveguide and the detector for amplifying light in the column waveguide.

17. The content-addressable memory of claim 1 wherein the encoder is adapted to scale the amplitude of optical signals supplied to the row waveguides.

18. A memory apparatus comprising a plurality of content-addressable memories as claimed in claim 1, and a memory controller for supplying input bit-strings in parallel to the plurality of memories.

19. A network switching device comprising: a plurality of input ports for receiving input data packets and a plurality of output ports for output of data packets; a switch fabric for forwarding input data packets to the output ports in dependence on respective address bit-strings in the input packets; and a switch controller comprising at least one content-addressable memory as claimed in claim 1 for storing said address bit-strings in the filter devices thereof, wherein the switch controller is adapted to provide the address bit-strings of a plurality of data packets as the input bit-strings to said at least one content-addressable memory, and to determine the output ports for forwarding of those data packets in dependence on matching of the input bit-strings to stored address bit-strings.

20. A method for simultaneously comparing a plurality of first bit-strings with each of a plurality of second bit-strings, the method comprising: storing each second bit string in a content-addressable memory as claimed in claim 1 such that successive bits are stored in filter devices located at successive cross-points of a column waveguide with the row waveguides; supplying the plurality of first bit-strings as said input bit-strings to the encoder of said memory; and determining a comparison result in dependence on detection of light in any of said optical states in the detector of said memory.

Description:
PHOTONIC CONTENT-ADDRESSABLE MEMORY AND APPLICATIONS THEREOF

BACKGROUND

[0001] The present disclosure relates generally to photonic content-addressable memory and applications thereof. Photonic content-addressable memories are provided together with devices and methods exploiting such memories.

[0002] Content-addressable memory is a type of associative memory that can perform search operations with 0(1) time complexity. In a content-addressable memory (CAM), data is addressed by the data content rather than data address as in traditional memories such as RAM (Random -Access Memory) and hard disks. The input to the memory is a bit-string (the “search word” or “search vector”) which is compared with a plurality of bit-strings stored in the memory. The stored bit-strings can be stored in an array of memory cells connected between a set of input search lines and a set of output match lines. The input search word is applied on the search lines, and the output on a match line indicates whether the search word matches the word stored in cells connected to that match line. A match line is typically pulled low (logic 0) if any bit in the search word does not match the corresponding bit of the stored word, whereby a high match line (logic 1) indicates a match. For binary CAM operation, all input search bits must match the corresponding stored bits. In ternary CAMs (TCAMs), the memory cells can store a third, “don’t- care” bit value X which matches both input bit values 0 and 1.

[0003] CAMs are popularly used for high-speed searches for data routing in network switching devices (routers, switches, gateways, etc.). Here, the CAM is used to determine the appropriate output ports for forwarding of data packets arriving at the input ports. Routing bandwidth is limited by the speed with which these searches can be performed. Other applications include cache memories, decision trees, neural networks and data mining, among various others.

[0004] CAMs are commonly implemented using digital electronics. A typical SRAM (Static Random-Access Memory) TCAM memory cell requires 2 SRAM bit cells and an additional 4 transistors. Memristive TCAM cells are an emerging hardware approach which reduces the power consumption and space complexities incurred with digital CAM. Typical memristive hardware uses 6T2M (6 transistor, 2 memristor) CAM cells, 2T2M cells, or 5T2M cells, that mitigate the requirements of SRAM- or DRAM-based CAM cells. While memristive CAMs address the space and latency issues of digital CAM to some extent, these issues remain a problem for many applications.

[0005] Optical, or photonic, CAM is another promising approach. These CAMs process input search words encoded in optical, rather than electrical, signals and offer high-speed operation by processing data at the speed of light. While such CAMs offer faster operation than their electronic counterparts, they rely on the same basic operating principles, and current photonic CAMs are not sufficiently area/time and/or energy efficient to meet the ever-increasing demands for miniaturization, speed and efficiency in CAM applications.

SUMMARY

[0006] A first aspect of the present disclosure provides a photonic content-addressable memory. The photonic CAM includes a photonic cross-bar array comprising a plurality of row and column waveguides, and a plurality of photonic filter devices, each located at a respective cross-point of the row and column waveguides for selectively coupling light from the row waveguide to the column waveguide at that cross-point. Each filter device is selectively programmable in first and second states representing respective stored bit values. Each filter device is operable, in the first programmable state, to filter out light in any of a first plurality of optical states from light coupled to the column waveguide and, in the second programmable state, to filter out light in any of a second, different plurality of optical states from light coupled to the column waveguide. The CAM incudes an encoder for encoding a plurality of input bit-strings into optical signals such that bit values in different bit-strings are encoded using optical signals in different pairs of optical states, each pair comprising one state from each of said first and second plurality, and to simultaneously supply the optical signals corresponding to each bit-position in the bit-strings to a respective row waveguide of the array. The CAM further comprises a detector for detecting light in any of said optical states in each column waveguide, thereby identifying any mismatch between each input bit-string and bit values stored in the filter devices coupling light to that waveguide.

[0007] Unlike prior CAMs in which input search words are processed serially, i.e. one a time, embodiments of this disclosure offer photonic CAMs in which multiple search words can be searched simultaneously. If light in either of the optical states used for encoding a given input bit-string is detected on a column waveguide, then the bit-string does not match that stored in the filter devices associated with that column waveguide. Since different pairs of optical states are used for encoding each input word, multiple input words can be searched in parallel with 0(1) time complexity. This offers orders of magnitude higher processing speeds than current state-of- the-art CAMs. Moreover, the memory is implemented in a compact photonic cross-bar array in which the photonic filter devices storing bit-strings are the same at each cross-point. This offers exceptionally-simple, area-efficient, integrated CAMs with superfast operation.

[0008] Embodiments of the disclosure can be readily configured for ternary CAM operation. Here, the encoder is adapted to encode input bit-strings comprising bit values 0, 1 and X, where X indicates a don’t-care bit. Bit values 0 and 1 in a bit-string are encoded using optical signals in the associated pair of optical states, and a bit value X is encoded as zero signal. No signal will therefore be detected for an input bit of value X, indicating a match with the corresponding stored bit value, whether 1 or 0.

[0009] The optical states used for encoding input bit-strings may correspond to respective wavelengths of light, whereby the optical signals encoding the input bit-strings are wavelengthdivision multiplexed on the row waveguides. Other embodiments may use different polarization states of light.

[0010] The photonic filter devices are conveniently implemented by a directional coupler for coupling light from the row waveguide to the column waveguide at a cross-point, and a programmable filter for operation in the first and second programmable states. Here, the directional couplers can be adapted for equal distribution of optical power between column waveguides of the array, simplifying operation at the detector. In embodiments based on wavelength-division multiplexing, the programmable filter can be a frequency filter. In preferred embodiments, the frequency filter comprises first and second ring resonators which are operable to filter out light in the first and second programmable states respectively. These embodiments can exploit a plurality of resonance wavelengths of the ring resonators to filter out optical signals with the required wavelengths. The ring resonators may include respective memory elements, and preferably non-volatile elements such as phase-change memory elements, which are programmable to tune the ring resonators for operation in the first and second programmable states. This provides a non-volatile, easily-programmable array for highly energy-efficient operation. [0011] CAMs embodying the disclosure also offer the facility for in-memory logic computations to accommodate application-level requirements. In particular, the encoder can be operable to encode, for each input bit-string, at least one additional, logic bit associated with that bit string using at least one additional optical signal in at least one additional optical state, different to states in the first and second plurality of states. The additional optical signals for corresponding logic bits of the bit-strings are supplied simultaneously to a row waveguide of the array. Here, the memory also includes a plurality of programmable logic devices arranged for selectively coupling the additional optical signals to the column waveguides, and the detector is operable to detect the additional optical signals in each column waveguide. Operation of such in-memory logic will be explained further below.

[0012] The output of CAMs embodying the disclosure can be adapted to the requirements of a particular application. For a simple match search, for example, the detector can be adapted to produce an output indicating, for each column waveguide, whether each input bit-string matches the bit values stored in the filter devices coupling light to that waveguide. In addition, or as an alternative, the detector may be connected to logic for performing a desired processing operation dependent on the detection results. Examples of such processing operations will be described below.

[0013] Memory apparatus embodying the disclosure may comprise a plurality of CAMs as described above, and a memory controller for supplying input bit-strings in parallel to the plurality of CAMs. Such memory apparatus may use the CAMs for various parallel search operations, allowing parallel searching of more words and/or parallel searches for longer words distributed over multiple arrays.

[0014] Another aspect of the disclosure provides a network switching device having a plurality of input ports for receiving input data packets and a plurality of output ports for output of data packets. The device comprises a switch fabric for forwarding input data packets to the output ports in dependence on respective address bit-strings in the input packets, and a switch controller comprising at least one CAM as described above for storing the address bit-strings in the filter devices of the CAM. The switch controller is adapted to provide the address bit-strings of a plurality of data packets as the input bit-strings to said at least one CAM, and to determine the output ports for forwarding of those data packets in dependence on matching of the input bitstrings to stored address bit-strings.

[0015] A further aspect of the disclosure provides a method for simultaneously comparing a plurality of first bit-strings with each of a plurality of second bit-strings. The method includes storing each second bit string in a CAM described above such that successive bits are stored in filter devices located at successive cross-points of a column waveguide with the row waveguides. The method further comprises supplying the plurality of first bit-strings as said input bit-strings to the encoder of the CAM, and determining a comparison result in dependence on detection of light in any of said optical states in the detector of the CAM.

[0016] Embodiments of the disclosure will be described in more detail below, by way of illustrative and non-limiting example, with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

[0017] Figure 1 is a schematic illustration of a photonic CAM embodying the disclosure;

[0018] Figure 2 illustrates structure of photonic fdter devices used in an embodiment of the CAM;

[0019] Figure 3 illustrates operation of the filter devices of Figure 2;

[0020] Figure 4 illustrates binary CAM operation for a simple example;

[0021] Figure 5 illustrates ternary CAM operation for a simple example;

[0022] Figure 6 is a schematic illustration of a network switching device embodying the disclosure;

[0023] Figures 7a and 7b illustrate structure and operation of a CAM incorporating in-memory logic in an embodiment of the disclosure;

[0024] Figure 8 illustrates operation of the in-memory logic in a routing application;

[0025] Figure 9 illustrates additional features of CAMs embodying the disclosure;

[0026] Figure 10 illustrates memory apparatus using multiple CAMs embodying the disclosure; and

[0027] Figures 1 la and 1 lb illustrate different operating modes of the Figure 10 apparatus.

DETAILED DESCRIPTION

[0028] Figure 1 shows components of an exemplary photonic CAM embodying the disclosure. The CAM 1 includes a photonic cross-bar array, indicated generally at 2, comprising a plurality of row and column waveguides. The array 2 is an w-by-m array in this embodiment, having n row waveguides 3 and m column waveguides 4. The CAM 1 includes a plurality of photonic fdter devices denoted by fl/ (i = 1 to m, j = 1 to n) in the figure. Each filter device fl/ is located at a respective cross-point of a row and column waveguide for selectively coupling light from the row waveguide j to the column waveguide i at that cross-point. The CAM further comprises an encoder, indicated generally at 5, and a detector indicated generally at 6. The encoder 5 is adapted to encode a plurality of input bit-strings into optical signals which are supplied to row waveguides of array 2. The detector 6 is adapted to detect the optical signals which are coupled from the row waveguides to the column waveguides of the array.

[0029] Each filter device fiy is selectively programmable in first and second states representing respective stored bit values. Each column i = 1 to m of these filter devices can thus be programmed with a stored bit-string (stored word) with which the input bit-strings (input words) are to be compared. When in the first programmable state (corresponding to a stored bit value of 1 in this example), each filter device £> is operable to filter out light in any of a first plurality of optical states from light coupled to the column waveguide i. When in the second programmable state (corresponding to a stored bit value of 0 in this example), each filter device fl/ is operable to filter out light in any of a second, different plurality of optical states from light coupled to the column waveguide i. In this embodiment, the various optical states correspond to respective wavelengths of light. The first plurality of optical states comprises wavelengths denoted by

A 2 , A 3 , ..., etc., and the second plurality of optical states comprises wavelengths denoted by Ai , A 2 , A 3 , etc.

[0030] The encoder 5 is operable to encode a plurality of input words into optical signals such that bit values in different input words are encoded using optical signals in different pairs of optical states, where each pair comprises one state from each of the first and second plurality of states. Figure 1 shows three input words, denoted here by S* (k = { 1, 2, 3}), each comprising bits s*i, s*2, Sto. Each input word S* is encoded using optical signals having a corresponding pair of wavelengths A fe , A' k . In this example, a bit value 1 in S* is encoded into a signal of wavelength A k , and a bit value 0 in S* is encoded into a signal of wavelength A k . In this embodiment, the encoder 5 includes a set of bit encoders Ei to E» for receiving corresponding bits, s*i to s/.-» respectively, of the input words S*. Hence, each bit encoder encodes an input bit of word Si, into an optical signal of wavelength A 2 (if the bit value is I ) or A (if the bit value is 0). An input bit of word S2 is encoded into an optical signal of wavelength A 2 (if the bit value is I ) or A 2 ' (if the bit value is 0). An input bit of word S3 is encoded into an optical signal of wavelength A 3 (if the bit value is 1) or A 3 ' (if the bit value is 0). While three input words are shown here for simplicity, additional input words S* , k = 4, 5, 6, etc., can be similarly encoded in encoder 5 using corresponding wavelength pairs A k , A' k .

[0031] The optical signals output by each bit encoder Ei to E /; are supplied to a corresponding multiplexer (MUX) which is coupled to a respective row waveguide 3 of array 2. Hence, the encoder 5 simultaneously supplies the optical signals corresponding to each bit-position in input words S* to a respective row waveguide of the array. Signals on each row waveguide are selectively coupled to the column waveguide at each array cross-point in dependence on the programmed state of the fdter device f/ at that cross-point. If the filter device £/ is programmed to store a bit value 1, then optical signals of wavelength A 1; A 2 , A 3 , ..., etc., (which encode an input bit of value 1) will be filtered out. Only signals of wavelength A 2 , A 2 , A 3 , ..., etc. (which encode an input bit of value 0) will be transmitted to the column waveguide. Conversely, if the filter device f is programmed to store a bit value 0, then optical signals of wavelength A 2 , A 2 ' , A 3 , ..., etc., (which encode an input bit of value 0) will be filtered out, and signals of wavelength A 1; A 2 , A 3 , ..., etc., (which encode an input bit of value 1) will be transmitted to the column waveguide. Thus, if an input bit siy matches the bit stored in device fy, then no optical signal is transmitted to the column waveguide for that bit. If all bits s*i to stn of a given input word S* match the corresponding bits stored in devices f n to f of a given column i of the array, then no signals of wavelength A fe or A' k will be transmitted to the column waveguide for that column i of the array.

[0032] The detector 6 is adapted to detect light in any of the first and second plurality of optical states (here wavelengths d 2 , d 3 , and A ', A 2 r , A 3 ', ..., ) in each column waveguide of the array. In this embodiment, the detector comprises a set of demultiplexers (DEMUX) coupled to respective column waveguides, and a corresponding set of photodetectors PDi to PD m . Each demultiplexer separates the light output on the associated column waveguide 4 into its component wavelengths, and supplies the resulting signals (if any) to the corresponding photodetector. Each photodetector is adapted to detect light at all pairs of wavelengths A k , A k ' used for encoding the input words Sk, thereby identifying any mismatch between each input bitstring and bit values stored in corresponding column of filter devices. If a photodetector PD Z detects light at any wavelength A k , A k ' , then the corresponding input word S* does not match the stored word in column i of the array. Hence, a given input word can be compared with all stored words in parallel. In addition, since different pairs of optical states A k , A' k are used to encode each input word Sk, all input words can be simultaneously compared to words stored in the array. This simultaneous search facility offers massively enhanced throughput for CAM search operations.

[0033] The CAM 1 can be adapted to provide an output dependent on the particular search application. For a simple match/mismatch search described above, the detector may provide an output indicating, for each column waveguide i, whether each input bit-string S* matches the bit values stored in the filter devices coupling light to that waveguide. For example, each photodetector PD Z may provide a A-bit output indicating whether each input signal S* matches (1) or mismatches (0) the word stored in column i. Alternatively, or in addition, the detector 6 may be connected to logic for performing a desired processing operation dependent the results of detection of light by the detector. Illustrative examples of such application-dependent logic are described below.

[0034] Figure 2 is a more detailed illustration of the filter devices fy in a preferred embodiment of CAM 1. The enlargement in this figure shows two filter devices 10 at adjacent cross-points of a column waveguide 4 with two row waveguides 3. Each filter device 10 comprises a directional coupler and a programmable filter. The directional coupler is implemented here by a broadband coupling waveguide 11 for coupling light of all operational wavelengths from the row waveguide to the column waveguide. (Note here that no coupling occurs at actual cross-points of row and column waveguides in the array, any coupling losses here being negligible for the operation described). The directional couplers 11 of all filter devices 10 in the array are adapted for equal distribution of optical power between column waveguides of the array.

[0035] The programmable filter, which can be selectively programmed into the first and second programmable states, comprises a frequency filter in this embodiment. The frequency filter, indicated generally at 12, comprises first and second ring resonators, R1 and R2, and a drop port implemented by a waveguide 13 and a grating 14. The first ring resonator R1 is operable, in the first programmable state of frequency filter 12, to filter out light with any of the first plurality of wavelengths A 2 , A 3 , ..., from light transmitted to the column waveguide via directional coupler 11. The second ring resonator R2 is operable, in the second programmable state of the frequency filter, to filter out light with any of the second plurality of wavelengths A , A 2 ', A 3 ', ..., from light transmitted to the column waveguide.

[0036] As illustrated in the figure, the ring resonators R1 and R2 include respective memory elements, here phase-change memory (PCM) elements, which are programmable to tune the ring resonators for operation in the first and second programmable states. Each PCM element can be implemented by a layer of PCM material (e.g. a chalcogenide such as GST (germanium- antimony-tellurium)) overlying a portion of the ring resonator waveguide. As is well known in the art, such PCM elements can be programmed into amorphous or crystalline states, having different opto-electrical properties, by heating the PCM material. Heat may be applied here by application of a programming voltage to a heater, e.g., a metal layer, overlying the PCM material.

Alternatively, heating may be effected by applying a light signal to the PCM material with appropriate power to induce the desired phase state.

[0037] The selective fdtering by fdter devices 10 exploits wavelengths in the resonance spectrum of the ring resonators R1 and R2. Figure 3 illustrates tuning of the rings resonators for operation in the two programmable states of a filter device. The upper diagram here shows the resonance spectrum of ring R1 in the two programmable states (crystalline and amorphous) of the PCM element of that ring. In the ON (e.g. crystalline) state, wavelengths A 2 , A 3 , ..., are evanescently coupled into ring R1 from directional coupler 11. These wavelengths are then coupled from R1 to drop port 13 and dispersed by grating 14. Hence, when R1 is ON, all wavelengths A 2 , A 3 , ..., on the associated row waveguide 3 are transmitted to the drop port, and so filtered out from light coupled to the column waveguide 4. In the OFF state of ring Rl, the resonance wavelengths are shifted as indicated, whereby wavelengths A 2 , A 3 , ..., will be transmitted to the column waveguide. Similarly, when ring R2 is ON as indicated in the lower diagram, all wavelengths A^, A 2 ' , A 3 ', ..., on the row waveguide are transmitted to the drop port and so filtered out from light coupled to the column waveguide 4. When ring R2 is OFF, all wavelengths A ', A 2 ' , A 3 , ..., will be transmitted to the column waveguide.

[0038] In the first programmable state of filter device 10, ring Rl is ON (representing a stored bit value of 1) and ring R2 is OFF. Wavelengths A 2 , A 3 , ..., (which encode bit values 1 in the input words) will thus be dropped, while wavelengths A 2 , A 2 , A 3 , ..., (which encode bit values 0 in the input words) will be transmitted to the column waveguide. In the second programmable state of device 10, ring R2 is ON (representing a stored bit value of 0) and ring R2 is OFF. Wavelengths A 2 , A 2 , A 3 , ..., (which encode bit values 0) will thus be dropped, while wavelengths A 2 , A 3 , ..., (which encode bit values 1) will be transmitted. Figure 4 is a schematic illustration of the resulting filtering operation in relation to a simple example. This figure shows two columns of an array having n = 4 filter devices 10 per column. Devices in the first column, labeled ai to a4 here, store respective bits of a first word A as indicated. Devices in in the second column, labeled bi to b4, store respective bits of a second word B. The corresponding states of resonators R1 and R2 for these devices are indicated in the table in the figure.

[0039] Array operation is illustrated for three input words, Si to S3, whose bit values are encoded as shown using respective pairs of wavelengths A k , A' k . The labelled arrows on the column waveguides next to each filter device indicate the input wavelengths which are transmitted by that device. For the first column, photodetector PDi detects wavelengths used to encode inputs Si and S3, indicating a mismatch with word A. At wavelengths A 2 , A! 2 , however, no signal (or less than a predetermined threshold level to accommodate expected coupling losses) is detected, indicating a match between S2 and A. The output of PDi thus correctly indicates a match with S2. Similarly, the output of PD2 correctly indicates a match between Si and word B.

[0040] It will be appreciated that the CAM 1 can be fabricated as an integrated, on-chip structure using standard material processing techniques. Array 2 can be implemented using nanophotonic waveguides and micro-ring resonators (MMRs) for rings R1 and R2 of filter devices fy. Note that all filter devices f are identical, providing a particularly simple design and facilitating array fabrication. The encoder 5 and detector 6 can be implemented using generally-known devices and well-known techniques as will be apparent to those skilled in the art. For example, optical signals at the required wavelengths may be generated by integrated lasers in encoder 5. The photodetectors PD Z may be implemented by photodiodes in detector 6.

[0041] The above embodiment provides an exceptionally area- and energy-efficient CAM implementation, with superfast operation by simultaneous searching of multiple input bit-strings. While operation with three input words is described for simplicity, ring resonators can support many hundreds of resonant modes. This offers orders of magnitude greater throughput for parallel searches, constrained only by the number of signal wavelengths that can be generated in practical designs. By way of example, simultaneous searching of up to about a hundred input words may be feasible with current technology, with around 20 to 30 parallel input words being sufficient for many applications. [0042] Programming of the array 2 can be performed in known manner by a controller (not shown in Figure 1), e.g. a processor which receives the words to be stored in the array and applies appropriate programming signals to filter devices fij. The filter design of Figure 2 offers ease of programming (and reprogramming) by use of PCM elements as described above, and non-volatile storage for low-energy operation. The pair of ring resonators storing respective bits 1 and 0 provides high SNR (signal-to-noise ratio) operation. Signal detection in detector 6 is a simple binary operation, whereby any signal above the predetermined match threshold can be regarded as a mismatch. This match threshold can be low and can be set just above the noise threshold for detector operation.

[0043] The input bit-strings to encoder 5 may be defined, in general, by electrical or optical input signals. Note also that, while a regular array of parallel, orthogonal row and column waveguides is shown in Figure 1, in general waveguides need not be parallel or regularly spaced, and row and column waveguides need not be orthogonal. However, this array structure provides a particularly efficient implementation. “Row” and “column” waveguides are of course interchangeable and not intended to imply any particular array orientation. Also, the programming/coding of 1’s and 0’s described above can of course be reversed.

[0044] Various other implementations of filter devices fy can be envisaged. For example, other non-volatile memory elements, e.g. resistive memory elements, may be used in some embodiments. Other embodiments may use volatile memory elements based on modulators using nanomechanical, electro-optical, plasma dispersion or thermal effects. The directional couplers may be implemented by other devices such as MZIs (Mach-Zehnder Interferometers), and the programmable filters may be implemented by tunable gratings for example. Also, embodiments can be envisaged in which the optical states used to encode input bits correspond to different polarization states, rather than different wavelengths, of light. In this case, a filter devices fy may be implemented using devices, such as meta-waveguides, which are sensitive to different polarizations of light and can be tuned to selectively filter out required polarization states. Suitable implementations here will be apparent to those skilled in the art from the operation described herein.

[0045] CAMs embodying the disclosure can be readily adapted for ternary CAM operation. In particular, the encoder 5 can be adapted to encode input bit-strings comprising bit values 0, 1 and X (where X indicates a don’t-care bit) such that bit values 0 and 1 in a bit-string are encoded using optical signals in a pair of states A k , A' k , and a bit value X is encoded as zero signal. Figure

5 illustrates this operation for the same example as Figure 4, but where input S3 contains two don’t-care bits X. Since X is encoded as zero signal in encoder 5, no wavelength A 3 or A 3 ' is transmitted by filter devices as, a4, bs or b4 for these bits, whereby X matches both stored bit values 1 and 0. Detector 6 thus detects an additional match for S3 with stored word A here.

[0046] CAMs embodying the disclosure can be applied to particular advantage in network switching devices, such as routers, switches, gateways, etc., where input data packets must be forwarded to the appropriate device output ports for onward transmission in the network. Figure

6 is a schematic illustration of one embodiment of such a switching device. In this example, a router 20 has a set of input ports Ii to Ip for receiving input data packets from network nodes, and a set of output ports Oi to O™ for output of data packets to network nodes. Packets received at the input ports are forwarded to the output ports via a high-speed switch fabric 21. Input packets are queued as necessary in input queue buffers QIN. Packets forwarded to the output ports are queued as necessary in output queue buffers QOUT before processing and onward transmission to the network.

[0047] The appropriate output ports for forwarding of input packets depends on the destination address bit-strings contained in the input packets. The forwarding operation is controlled by a switch controller 22 which compares the address bit-strings in input packets with network addresses stored in a CAM. In particular, switch controller 22 comprises a CAM 1 as described above and a routing processor 23 for controlling the address lookup operation. The network addresses to be compared with input packet addresses are stored by processor 23 in respective columns of the filter devices fiy in CAM 1. These columns are indicated schematically as Ci to Cm in the figure, where typical address space here is 7 to 15 bits. Each column Ci to Cm corresponds to the address of a respective output port Oi to Om. If an input packet address matches that stored in a given column Ci, then that packet should be forward to the corresponding output port Oi for onward transmission. The output of CAM detector 6 (omitted in this figure) is supplied to address logic 24. This address logic returns the output port addresses for respective input packets to routing processor 23. The routing processor then controls forwarding of packets by switch fabric 21 to the correct output ports.

[0048] In operation of router 20, the routing processor 23 reads the addresses from packets arriving at the input ports, and provides the addresses from a plurality of input packets as the input bit-strings to CAM 1. Address logic 24 thus simultaneously determines the appropriate output ports for those data packets based on matching of the input packet addresses to addresses stored in the CAM.

[0049] In a typical network, multiple network nodes will be in communication with router 20 at any given time instant. When the arrival rate of packets exceeds the rate of output routing, data trafficking (queuing) occurs. Routing bandwidth is thus limited by the speed with which the output port address for a given input data packet can be searched. Even with the fastest imaginable electronic CAMs, data trafficking cannot be mitigated due to the serial nature of CAM searches. This represents a severe bottleneck, and contributes to large communication latencies. By simultaneously searching multiple input packet addresses in CAM 1, router 20 offers massively increased throughput, alleviating this bottleneck and significantly enhancing network bandwidth.

[0050] Another emerging requirement for network switching devices is the ability to on-the-fly program the CAM for flexible use and for in-memory logic computations, e.g., to make a routing decision, change output port addresses, or perform application-level computations on the packets.

CAMs embodying the disclosure offer the facility for in-memory logic operations to accommodate such requirements. In particular, the CAM encoder can be adapted to encode, for each input search word, at least one additional, logic bit associated with that word using at least one additional optical signal in at least one additional optical state, different to states in the first and second plurality of states used for encoding search words. The additional optical signals for corresponding logic bits of the search words are supplied simultaneously to a row waveguide of the array. In addition, a plurality of programmable logic devices can be provided in the array, these logic devices being arranged for selectively coupling the additional optical signals to the column waveguides. The CAM detector is then operable to detect the additional optical signals in each column waveguide. An exemplary embodiment here is described below with reference to Figures 7a and 7b.

[0051] Figure 7a shows a CAM 30 in which features corresponding to those of CAM 1 (Figure 1) are indicated by like reference labels. Each input word S* here includes the string of address bits s*i to Skn, and an additional logic bit, here set to value 1. The encoder 31 includes an additional bit-encoder Ez for encoding these logic bits. In particular, the logic bit in an input word S* is encoded using an additional wavelength A^' . This wavelength A^' is different to all other operational wavelengths A fe , A' k , and may be different for different input words as indicated in the figure. The resulting optical signals at wavelengths A", A'2 and A 3 are wavelength-division multiplexed onto a row waveguide 32 of the array.

[0052] A plurality of programmable logic devices, denoted by Li to L m , are provided at respective cross-points of column waveguides 4 with row waveguide 32. The structure and operation of these logic devices L z are illustrated in Figure 7b. Each device L z comprises a directional coupler, here broadband coupling waveguide 34, for coupling light from row waveguide 32 to the column waveguide, and a programmable frequency filter. The frequency filter is implemented here by a ring resonator RL having a memory element (here a PCM element) which is programmable to tune the resonator RL for filtering out light having a wavelength A k . In the ON state of resonator RL (corresponding to a stored logic bit of value 1), wavelengths A”, A' and A 3 are coupled to drop port 35 and thus not transmitted to the column waveguide. In the OFF state of RL (corresponding to a stored logic bit of value 0), wavelengths A", A'2 and A 3 will be transmited to the column waveguide. The CAM detector 6 (not shown in Figure 7a) is operable to detect light at wavelengths A", A^' and A 3 on each column waveguide, thereby identifying any mismatch between the input logic bits and the logic bits stored in the logic devices L.

[0053] Figure 8 illustrates operation of CAM 30 for a simple example. This example corresponds to that of Figure 5 with additional logic devices Li and L2 in respective columns of the array. Here, for routing to occur, the address bit-string S* in the packet from a node N* must match that in a column of the CAM, but the logic bits must also match. In this example, therefore, with Li set to 0, the detector PDi will output a 0 (mismatch) for the logic bit comparison in the first column. The router address logic (24 in Figure 6) will therefore indicate a “routing failed” decision for the packets from nodes N2 and Ns. In the second column, however, the logic bits match for node Ni and the address logic will return the output port address corresponding to column 2 for node Ni.

[0054] The simple, in-memory logic scheme described above can be used to control routing decisions. For example, if an output port is overloaded or if a destination node does not want to provide access, e.g. for maintenance or confidentially reasons, then the logic device for that output port address can be set to OFF. While a simple example is described here, it will be appreciated that one or a combination of different logic bits may be used to implement various other routing control schemes, and more complex Boolean operations can be performed using detector outputs from the array columns. Such embodiments offer full flexibility in CAM programming, whether for reconfiguring for different output port addresses or for performing inmemory logic operations.

[0055] Optical losses in the photonic cross-bar array increase quadratically with the array size (n by m), and this constrains scalability of the cross-bar dimensions. To improve the signal quality, CAMs embodying the disclosure may include an optical amplifier, provided between each column waveguide and the detector, as illustrated schematically in Figure 9. Here, a broadband optical amplifier (OA) is provided at the output of each column for amplifying the accumulated light signals in the column waveguide before feeding into the detector (not shown). In addition, or as an alternative, the encoder may be adapted to scale the amplitude of optical signals supplied to the row waveguides. This can be achieved using high input-coupling into the rows and/or amplification by broadband optical amplifiers at the row inputs as illustrated. In general, however, limiting array size can mitigate optical losses to acceptable levels. For example, an array size of 64 by 64 for routing applications allows search operations on IPv4 (4 Byte), IPv6 (8 bytes) protocols, as well as MAC address searches (6 Byte). Of course, other protocols that rely on reduced word length (3 Byte and smaller) can also be used.

[0056] Network switching devices and other apparatus embodying the disclosure may exploit a plurality of CAMs for parallel search operations. For instance, for a search over a large number of output port addresses, the search operation can be broadcast across multiple arrays. Figure 10 shows an example of such memory apparatus. This apparatus 40 comprises a plurality of CAMs, here four CAMs 1 as described above, and a memory controller 41 for supplying input bit-strings in parallel to the CAMs. The memory controller 41 may comprise an optical or electrical processor which is compatible with passive/quasi-passive photonic arrays as described above. [0057] Figures 1 la and 1 lb illustrate exemplary operating modes of the memory apparatus 40, here for simple 4 by 4 arrays. In Figure I la, each input search word S* is supplied to each of a plurality (here two) of the CAMS 1, each storing a different set of stored words (A through D, and E though H, respectively). This allows searching over a large number of words, e.g. output port addresses, in parallel using modestly-sized arrays, allowing N by M parallel searches where N is the number of columns and M is the number of arrays. In Figure 1 lb, each input search word S* is parsed into sections (here two sections) and different sections are supplied to respective CAMs 1 each storing different sections (e.g. bits ai through a4, and as through as of word A) of the same set of stored words (A through D). A logical AND applied to the outputs of the two arrays for a given input word then determines if there is an overall match. This allows parallel search operations to be performed for longer word lengths distributed over different arrays. [0058] CAMs embodying the disclosure can be applied to advantage in various applications other than routing, and outputs of these CAMs can be processed as appropriate for the application in question. By way of example, embodiments can be adapted to perform Hamming difference calculations for multiple input bit-strings simultaneously. In this application, the intensity of light having either of a pair of wavelengths A k , A' k encoding a given input bit-string can be detected by the CAM detector for each column. This intensity then provides a measure of the number of bits by which the input bit-string differs from the stored bit string. Various other applications, including cache memories, decision trees, associative search operations for neural networks, and data mining applications can also benefit from CAMs embodying the disclosure. In general, these CAMs can be used in any application where a plurality of first bit-strings need to be compared with each of a plurality of second bit-strings to determine a comparison result. The comparisons can be performed simultaneously by: storing each second bit string in a CAM embodying the disclosure such that successive bits are stored in filter devices located at successive cross-points of a column waveguide with the row waveguides; supplying the plurality of first bit-strings as the input bit-strings to the CAM encoder; and determining the required comparison result in dependence on detection of light in the CAM detector.

[0059] It will be seen that the above embodiments offer compact and efficient architectures for ultrafast, energy-efficient CAMs. It will of course be appreciated that various changes and modifications can be made to the exemplary embodiments described. By way of example, altematives/modifications described in relation one embodiment may be applied to other embodiments as appropriate. In general, where features are described herein with reference to a CAM embodying the disclosure, corresponding features may be provided in memory apparatus/methods using such CAMs, and vice versa.

[0060] The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.