Claims
- 1. Apparatus comprising:
a semiconductor substrate; a plurality of interface processors formed on said substrate, the number of said processors being at least five; internal instruction memory formed on said substrate and storing instructions accessibly to said interface processors; internal data memory formed on said substrate and storing data passing through said device accessibly to said interface processors;
said internal data memory having a plurality of memory elements, the number of said memory elements being correlated to the number of said interface processors; a request controller operatively interposed between each of said interface processors and said memory elements and controlling the flow of requests from data from said interface processor to said memory elements; a memory arbiter operatively interposed between each of said memory elements and said interface processors and controlling access to said memory element by said interface processors;
each of said interface processors having access to a plurality of said memory elements and each of said memory elements being responsive to requests from a plurality of said interface processors; and a plurality of input/output ports formed on said substrate;
at least one of said input/output ports connecting said internal data memory with external data memory; and at least two other of said input/output ports exchanging data passing through the interface device with an external network under the direction of said interface processors.
- 2. Apparatus according to claim 1 wherein each of said memory arbiters grants highest priority memory access to a read request from a single interface processor.
- 3. Apparatus according to claim 2 wherein each of said memory arbiters grants second highest priority memory access; to a plurality of simultaneous read requests for common data from a plurality of interface processors.
- 4. Apparatus according to claim 3 wherein each of said memory arbiters grants third highest priority memory access to a plurality of simultaneous write requests from a plurality of interface processors.
- 5. Apparatus according to claim 4 wherein each of said memory arbiters grants fourth highest priority memory access to a plurality of simultaneous read/modify/write requests from a plurality of interface processors.
- 6. Apparatus comprising:
a semiconductor substrate; at least five interface processors formed on said substrate; internal instruction memory formed on said substrate and storing instructions accessibly to each of said interface processors; internal data memory formed on said substrate and storing data passing through said device accessibly to each of said interface processors; said internal data memory having at least five memory elements; a request controller operatively interposed between each of said interface processors and said memory elements and controlling the flow of requests from data from the corresponding one of said interface processors to said memory elements; a memory arbiter operatively interposed between each of said memory elements and said interface processors and controlling access to the corresponding one of said memory elements by said interface processors; each of said interface processors having access to a plurality of said memory elements and each of said memory elements being responsive to requests from a plurality of said interface processors; said request controllers and said memory arbiters cooperating for implementing a set of access rules governing access to said memory elements by said interface processors which grant highest priority access to a single request from a single interface processor to a single memory element; and a plurality of input/output ports formed on said substrate;
at least one of said input/output ports connecting said internal data memory with external data memor/; and at least two other of said input/output ports exchanging data passing through the interface device with an external network under the direction of said interface processors.
- 7. A memory system comprising:
a plurality of storage modules; and a memory controller operatively coupled to the plurality of storage modules, said memory controller being responsive to multiple requests from multiple sources to provide access simultaneously to all or some of the storage modules.
- 8. The memory system as set forth in claim 7 wherein multiple requests are received simultaneously.
- 9. The memory system of claims 7 or 8 further including a plurality of processors operatively coupled to the memory controller and generating the multiple requests.
- 10. The memory system of claim 9 wherein the memory controller includes:
a plurality of arbiters with each arbiter operatively coupled to one storage module and controlling access to said one storage module; a plurality of control devices with each one operatively coupled to receive signals from one of the processors and to generate storage request signals indicating access to one of the storage modules; and a bus structure operatively coupling the control devices and the arbiters so that each control device has access to all or some of the storage modules.
- 11. The memory system of claim 10 further including a substrate upon which recited elements are integrated.
- 12. The memory system of claim 11 wherein the memory modules are of different types with each one being designed to store a particular type of data structure.
- 13. The memory system of claim 12 wherein the memory modules include DRAMs and SRAMs.
- 14. The memory system of claim 12 wherein a portion of said SRAMs and at least one DRAM are fabricated on said substrate and at least one SRAM and the remainder of any DRAMs are located externally of said substrate.
- 15. The memory system of claim 12 wherein selected ones of the memories are partitioned into multiple sub-memories which can be accessed simultaneously.
- 16. The memory system of claim 13 wherein the DRAMs are partitioned into four banks.
- 17. A method comprising the steps of:
receiving a data flow inbound through an input port of an interface device; communicating the data flow through a plurality of interface processors embedded in the interface device;
parsing the data flow into a plurality of portions; storing the parsed portions of the data flow in a plurality of memory elements; controlling access between the memory elements and the interface processors to allow each of the interface processors access to each of the memory elements; and assembling and directing data flow outbound through an output port of the interface device in accordance with the execution of stored instructions by the interface processors.
- 18. A method according to claim 17 further comprising storing selected portions of the parsed data flow in the memory elements, and directing other selected portions of the parsed data flow to a switching fabric for determination of an outbound direction.
- 19. A method according to claim 18 further comprising recombining the stored and other selected portions of the data flow prior to direction of the data flow outbound through an output port.
RELATED APPLICATIONS
[0001] The interested reader is referred, for assistance in understanding the inventions here described, to the following prior disclosures which are relevant to the description which follows and each of which is hereby incorporated by reference into this description as fully as if here repeated in full:
[0002] U.S. Pat. No. 5,008,878 issued Apr. 16, 1991 for High Speed Modular Switching Apparatus for Circuit and Packet Switched Traffic;
[0003] U.S. Pat. No. 5,724,348 issued Mar. 3, 1998 for Efficient Hardware/Software Interface for a Data Switch;
[0004] U.S. Pat. No, 5,787,430, issued Jul. 28, 1998 for Variable Length Data Sequence Back Tracking and Tree Structure;
[0005] U.S. patent application Ser. No. 09/312,148 filed May 14, 1999, and entitled “System Method and Computer Program for Filtering Using Tree Structure”; and
[0006] U.S. patent application Ser. No., 09/330,968 filed Jun. 11, 1999 and entitled “High Speed Parallel/Serial Link for Data Communication”.