1. A method for controlling processing of messages for a plurality of protocol instances, comprising:
receiving a plurality of messages for a plurality of processors, wherein each message is associated with one of the protocol instances;
generating, for each message, a processing request identifying the one of the protocol instances with which the message is associated;
queuing the processing requests using a respective plurality of queues associated with the protocol instances, wherein each processing request is queued in the queue associated with the one of the protocol instances with which the processing request is associated; and
servicing the queues in a manner for arbitrating access by the queues to the processors for processing the messages, wherein each of the queues having at least one processing request queued therein is serviced by reading a processing request from the queue and causing the one of the processors with which the retrieved processing request is associated to process one of the messages associated with the protocol instance identified by the processing request.
2. The method of claim 1, wherein receiving the plurality of messages at the plurality of processors comprises:
receiving the messages at a plurality of network interfaces, wherein each network interface is associated with one of the respective processors.
3. The method of claim 1, wherein each processor has a memory associated therewith, wherein each memory comprises a plurality of message queues associated with the respective protocol instances, wherein the method further comprises:
for each message:
queuing the message in the memory associated with the processor at which the message is received, wherein the message is queued in one of the message queues of the memory, wherein the one of the message queues is associated with the one of the protocol instances with which the message is associated.
4. The method of claim 1, wherein, for each message, generating the processing request for the message comprises:
determining the one of the protocol instances with which the message is associated;
determining a processor identifier of the processor for which the message is received; and
generating the processing request for the received message;
wherein the processing request comprises the processor identifier;
wherein the processing request is adapted for being directed to the one of the queues associated with the determined one of the protocol instances with which the message is associated.
5. The method of claim 1, wherein each processing request is propagated from the processor at which the associated message is received to an arbiter module maintaining the queues.
6. The method of claim 1, wherein, for each processing request, queuing the processing request comprises:
determining the one of the protocol instances with which the processing request is associated; and
writing the processing request to the one of the queues associated with the one of the protocol instances with which the processing request is associated.
7. The method of claim 1, wherein servicing the queues comprises:
selecting one of the queues;
determining a queue status associated with the selected queue; and
in response to a determination that the selected queue has a status of EMPTY or BUSY, selecting a next one of the queues to be serviced;
in response to a determination that the selected queue has a status of WAITING, reading one of the processing requests from the selected queue and servicing the processing request.
8. The method of claim 7, wherein servicing the processing request comprises:
determining the one of the protocol instances with which the processing request is associated;
determining one of the processors with which the processing request is associated; and
generating a processing notice for the processing request, wherein the processing notice identifies the one of the protocol instances with which the processing request is associated; and
propagating the processing notice to the one of the processors with which the processing request is associated.
9. The method of claim 8, further comprising:
receiving the processing notice at the one of the processors with which the processing request is associated;
determining, from the processing notice, the one of the protocol instances with which the processing request is associated; and
processing one of the messages of the one of the protocol instances with which the processing request is associated.
10. The method of claim 9, further comprising:
clearing the processing request from the one of the queues from which the processing request was read;
determining a state of the one of the queues from which the processing request was read;
updating a status of the one of the queues from which the processing request was read from BUSY to EMPTY or WAITING based on the state; and
selecting a next one of the queues to be serviced.
11. An apparatus for controlling processing of messages for a plurality of protocol instances, comprising:
a plurality of processors, each processor adapted for processing messages associated with the protocol instances, each processor adapted for generating a processing request for each message received by the processor where each processing request identifies one of the protocol instances with which the message is associated; and
an arbiter module in communication with said processors, the arbiter module comprising a respective plurality of queues associated with the protocol instances, the arbiter module adapted for:
queuing the processing requests in respective ones of the queues based on the protocol instances with which the respective processing requests are associated; and
servicing the queues in a manner for arbitrating access by the queues to the processors for processing the messages, wherein each queue having at least one processing request queued therein is serviced by reading a processing request from the queue and causing the one of the processors with which the retrieved processing request is associated to process one of the messages associated with the protocol instance identified by the processing request.
12. The apparatus of claim 11, further comprising:
a plurality of network interfaces associated with the respective plurality of processors.
13. The apparatus of claim 11, further comprising:
a plurality of memory modules associated with the plurality of processors, respectively;
wherein each memory module comprises a plurality of message queues associated with the respective protocol instances for storing messages according to the respective protocol instances of the messages.
14. The apparatus of claim 11, wherein each processor is adapted for generating a processing request for a received message by:
determining the one of the protocol instances with which the message is associated;
determining a processor identifier of the processor for which the message is received; and
generating the processing request for the received message;
wherein the processing request comprises the processor identifier;
wherein the processing request is adapted for being directed to the one of the queues associated with the determined one of the protocol instances with which the message is associated.
15. The apparatus of claim 11, wherein each processor is adapted for propagating processing requests to the arbiter module.
16. The apparatus of claim 11, wherein the arbiter module is adapted for queuing each processing request by:
determining the one of the protocol instances with which the processing request is associated; and
writing the processing request to the one of the queues associated with the one of the protocol instances with which the processing request is associated.
17. The apparatus of claim 11, wherein the arbiter module is adapted for servicing the queues by:
selecting one of the queues;
determining a queue status associated with the selected queue; and
in response to a determination that the selected queue has a status of EMPTY or BUSY, selecting a next one of the queues to be serviced; or
in response to a determination that the selected queue has a status of WAITING, reading one of the processing requests from the selected queue and servicing the processing request.
18. The apparatus of claim 17, wherein the arbiter module is adapted for servicing the processing request by:
determining the one of the protocol instances with which the processing request is associated;
determining one of the processors with which the processing request is associated; and
generating a processing notice for the processing request, wherein the processing notice identifies the one of the protocol instances with which the processing request is associated; and
propagating the processing notice to the one of the processors with which the processing request is associated.
19. The apparatus of claim 11, wherein each processor is adapted for:
receiving a processing notice from the arbiter module, wherein the processing notice is generated by the arbiter module for a processing request read by the arbiter module from one of the queues selected by the arbiter module to be serviced;
determining, from the processing notice, one of the protocol instances with which the processing request is associated; and
processing one of the messages of the one of the protocol instances with which the processing request is associated.
20. The apparatus of claim 19, wherein the arbiter module is adapted for:
clearing the processing request from the one of the queues from which the processing request was read;
determining a state of the one of the queues from which the processing request was read;
updating a status of the one of the queues from which the processing request was read from BUSY to EMPTY or WAITING based on the state; and
selecting a next one of the queues to be serviced.
21. A computer readable storage medium storing a software program which, when executed by a computer, causes the computer to perform a method for controlling processing of messages for a plurality of protocol instances, the method comprising:
receiving a plurality of messages for a plurality of processors, wherein each message is associated with one of the protocol instances;
generating, for each message, a processing request identifying the one of the protocol instances with which the message is associated;
queuing the processing requests using a respective plurality of queues associated with the protocol instances, wherein each processing request is queued in the queue associated with the one of the protocol instances with which the processing request is associated; and
servicing the queues in a manner for arbitrating access by the queues to the processors for processing the messages, wherein each of the queues having at least one processing request queued therein is serviced by reading a processing request from the queue and causing the one of the processors with which the retrieved processing request is associated to process one of the messages associated with the protocol instance identified by the processing request.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A device, comprising:
a substrate;
a seed layer comprising a first biological agent residue located on the substrate; and
a metal layer located on the seed layer.
2. The device of claim 1, wherein:
the metal layer comprises a metal layer which is selectively deposited on the seed layer; and
the biological agent residue comprises at least one of peptide, amino acid or protein residue.
3. The device of claim 2, wherein:
the seed layer comprises metal ions or nanoparticles which catalyze selective deposition of the metal layer from a solution; and
the biological agent residue is located between the substrate and the seed layer.
4. The device of claim 3, wherein the metal layer comprises copper, nickel, gold, platinum, cobalt, iron, silver, palladium, ruthenium, rhodium or alloys thereof.
5. The device of claim 3, wherein seed layer comprises a fused nanoparticle layer.
6. The device of claim 1, wherein:
the substrate comprises at least one of a trench or via;
the seed layer is located in the at least one of the trench or via; and
the metal layer is located at least in the trench.
7. The device of claim 6, wherein the metal layer comprises a barrier layer which is located below an interconnect layer.
8. The device of claim 6, wherein:
the metal layer comprises an interconnect layer; and
the seed layer is located between the interconnect layer and a barrier layer.
9. The device of claim 1, wherein:
the metal layer comprises an electromigration lifetime enhancing cap layer; and
the seed layer is located between the cap layer and an interconnect layer.
10. The device of claim 3, wherein:
the substrate comprises an interlayer insulating layer containing a via connected to a trench;
the metal layer comprises at least one of a barrier layer and an interconnect layer located at least in the trench; and
the seed layer is located between the interlayer insulating layer and the metal layer.
11. The device of claim 10, further comprising at least one semiconductor device located below the interlayer insulating layer.
12. The device of claim 11, further comprising:
an electromigration lifetime enhancing cap layer located on the interconnect layer; and
a second seed layer comprising a second biological agent residue located between the cap layer and the interconnect layer.
13. The device of claim 1, wherein the metal layer comprises a bus line of a display device.
14. A device, comprising:
a substrate;
a seed layer comprising a first biological agent located on the substrate; and
a metal layer located on the seed layer.
15. The device of claim 14, wherein:
the metal layer comprises a metal layer which is selectively deposited on the seed layer;
the seed layer comprises metal ions or nanoparticles which catalyze selective deposition of the metal layer from a solution; and
the biological agent comprises at least one of a peptide, a protein or an amino acid which is located between the substrate and the seed layer.
16. The device of claim 15, wherein:
the substrate comprises an interlayer insulating layer containing a via connected to a trench;
the metal layer comprises at least one of a barrier layer and an interconnect layer located at least in the trench; and
the seed layer is located between the interlayer insulating layer and the metal layer.
17. The device of claim 16, further comprising:
an electromigration lifetime enhancing cap layer located on the interconnect; and
a second seed layer comprising cysteine located between the cap layer and the interconnect.
18. A method of forming a metal layer, comprising:
providing a substrate;
forming a biological agent and a seed layer on the substrate; and
selectively forming a metal layer on the seed layer.
19. The method of claim 18, wherein the biological agent comprises cysteine bound to the substrate and to the seed layer.
20. The method of claim 18, wherein:
the seed layer comprises a layer of metal nanoparticles connected to the substrate by the biological agent;
the biological agent comprises a first binding moiety for selectively binding to the substrate and a second binding moiety for selectively binding to the nanoparticles; and
the seed layer is selectively deposited on predetermined portions of the substrate.
21. The method of claim 18, wherein the seed layer is formed by binding metal ions to the biological agent.
22. The method of claim 18, wherein the biological agent and the seed layer are formed by microcontact printing.
23. The method of claim 18, wherein the biological agent and the seed layer are formed non-selectively over the entire substrate followed by patterning the seed layer.
24. The method of claim 18, wherein at least the biological agent is formed through a mask on predetermined portions of the substrate.
25. The method of claim 18, further comprising forming the seed layer on a first portion of the substrate and forming a contrast agent on a second portion of the substrate such that the metal layer is selectively formed on the seed layer but not on the contrast agent.
26. The method of claim 18, further comprising removing the biological agent after the step of selectively depositing the metal layer.
27. The method of claim 18, further comprising removing the biological agent before the step of selectively depositing the metal layer.
28. The method of claim 18, wherein the step of selectively depositing the metal layer comprises selectively depositing the metal layer on the seed layer using electroless plating.
29. The method of claim 18, wherein:
the substrate comprises an interlayer insulating layer containing a via connected to a trench; and
the metal layer comprises at least one of a barrier layer and an interconnect layer located at least in the trench.
30. The method of claim 29, further comprising:
forming a second biological agent and a second seed layer on the interconnect layer; and
selectively forming an electromigration lifetime enhancing cap layer on the second seed layer.
31. The method of claim 18, wherein the metal layer comprises an interconnect layer for a semiconductor device made by a dual damascene process.
32. The method of claim 18, wherein the metal layer comprises a bus line for a display device.
33. The method of claim 18, wherein the step of forming the biological agent and the seed layer comprises forming a plurality of proteins bound to metal nanoparticles or to metal ions.
34. The method of claim 18, wherein the step of forming the biological agent and the seed layer comprises forming a plurality of amino acids bound to metal nanoparticles or to metal ions.
35. The method of claim 18, wherein the step of forming the biological agent and the seed layer comprises forming a plurality of peptides bound to metal nanoparticles or to metal ions.
36. The method of claim 18, wherein the step of forming the biological agent and the seed layer comprises first binding the biological agent to metal nanoparticles followed by binding the biological agent and the nanoparticles to the substrate.
37. The method of claim 18, wherein the step of forming the biological agent and the seed layer comprises first binding the biological agent to the substrate followed by selectively forming metal ions or metal nanoparticles on the biological agent from a solution.
38. The method of claim 18, wherein the step of forming the biological agent and the seed layer comprises first binding the biological agent to the substrate followed by binding pre-formed metal nanoparticles to the biological agent.
39. The method of claim 18, wherein:
the step of providing a substrate comprises providing a substrate comprising a semiconductor device and a copper interconnect exposed in an interlayer insulating layer;
the step of forming a biological agent and a seed layer on the substrate comprises selectively forming a cysteine biological agent on the copper interconnect and selectively forming a metal nanoparticle seed layer on the biological agent; and
the step of selectively forming a metal layer on the seed layer comprises selectively plating a CoWB or CoWP layer on the seed layer.