Claims
- 1. A method of transferring a plurality of messages, comprising: dividing said message into cells of a specified length; obtaining an address on each of said cells which identifies its message; receiving said cells at a receiving node; receiving other cells, from other messages at said receiving node; and at said receiving node, defining at least one variable related to said addresses of at least a plurality of said messages.
- 2. A method as in claim 1, further comprising forming a message table for said plurality of messages.
- 3. A method of claim 2, wherein said variable is a number of a last-index in said message table.
- 4. A method as in claim 2, wherein said variable is a number of active connections in said message table.
- 5. A method as in claim 2, wherein there are two of said variables, and said variables include a number of active connections in said message table and a last-index which is used by said table.
- 6. A method as in claim 2, wherein said variable is related to entries in the message table.
- 7. A method as in claim 2, wherein said variable is related to a number of active messages.
- 8. A method as in claim 2, further comprising, at the receiving node; receiving a cell, and comparing and address of the cell with said message table by searching said message table only between a lowest possible index and a value based on said variable.
- 9. A method as in claim 8, further comprising defining a second variable related to said message table.
- 10. A method as in claim 9, wherein said second variable is related to a fill state of said message table.
- 11. A method as in claim 10, further comprising comparing said second variable to said number of active messages variable to determine blank entries in said message table.
- 12. A method as in claim 2, further comprising determining if there are blank spaces in the message table by using said variable, searching said table for said blank entries if so, and using said variable to determine a location for a new message to be added, if not.
- 13. A method as in claim 1, wherein said communication is via Asynchronous Transfer Mode.
- 14. A method as in claim 13, wherein said addresses of said cells include a virtual channel identifier (VCI) and virtual path identifier (VPI).
- 15. A method as in claim 1, wherein said communication is via a digital subscriber line (DSL).
- 16. A method as in claim 5, wherein said message table further comprises a cell storage area and a connection number entry area, further comprising: associating a connection number with each new address associated with said messages; storing said connection number in said connection number entry area; extracting said cells from said messages and storing said cells in said cell storage area associated with said connection number in said message table.
- 17. A method as in claim 16, further comprising: receiving a next message having a next address; determining if said next address is associated with a connection number in said message table; extracting a cell from said next message and storing said cell in said cell storage area associated with said connection number, if said next address is associated with a connection number in said message table; and adding a new connection number to said message table and storing said cell in a cell storage area associated with said new connection number in said message table, if said next address is not associated with a connection number in said message table.
- 18. A network interface card device for communicating with a plurality of simultaneous communications, comprising: a register, storing a table including a plurality of simultaneous data transmissions, at least a plurality of said data transmissions formed by a plurality of separated cells of information, where each of the cells have a shorter total length than the data transmission, and each data transmission and each cell of the data transmission are represented by an address; said table storing contents of said cells and an address, such that each cell contents is added to an entry in said table which represents the address associated with said each cell, and said memory also storing a first variable related to contents of at least a plurality of said simultaneous data transmissions in said table; and a controller, operating based on a stored instruction set, to receive a cell, to use said variable to search said table in a way that enables searching less than all of said table, to add said cell to a desired entry in said table if an address of said cell is found in said table and to add a new address to said table if said address of said cell is not found in said table.
- 19. A device as in claim 18, further comprising a second variable related to said plurality of simultaneous data transmissions, wherein said controller also uses said second variable to search said table.
- 20. A device as in claim 18, wherein said controller also detects an end of message, and removes an entry corresponding to the ended message from said table.
- 21. A device as in claim 20, wherein there is a second variable related to a number of connections, and wherein said controller is operative to determine whether a blank space exists in said table by comparing said first variable to said second variable.
- 22. A device as in claim 21, wherein said controller compares said first variable to said second variable, adds a new entry at the end of the table if said first variable equals said second variable, and searches from a lowest value to a value of said first variable if said first and second variables are not equal.
- 23. A device as in claim 18, wherein said first variable represents a last index in said table that is used, and said second variable represents a number of active connections in said table.
- 24. A method of operating a synchronous transfer mode (ATM) system, comprising: receiving a plurality of simultaneous messages, each of said simultaneous messages being formed of a plurality of separated cells with addresses which cells collectively have data forming the simultaneous messages; maintaining a table in memory which stores said data associated with said addresses; detecting a new message, which does not have a previous entry in said table; and finding a new location in said table by searching fewer than all locations in said table.
- 25. A method as in claim 24 further comprising storing a variable associated with said plurality of messages.
- 26. A method as in claim 24 further comprising storing two variables associated with said plurality of simultaneous messages, one of said variables relating to a number of active messages, another of said variables related to a size of the table.
- 27. A method as in claim 26 wherein said finding comprises comparing said variables to one another.
- 28. A method as in claim 26 wherein if said variables are equal, establishing a new value at the end of the table.
- 29. A method as in claim 27 wherein if said variables are not equal, searching less than all of said table to find a blank space in the table.
- 30. A method as in claim 24 further comprising assigning a connection number to said cells based on said addresses, and storing said connection number are along with other portions with the same connection number.
- 31. A method as in claim 24, further comprising removing an inactive message from the table.
- 32. A method as in claim 31 wherein said inactive message is removed by setting its address to all zeros.
- 33. A method as in claim 32 further comprising changing values of said variables after removing said inactive message.
- 34. A method of operating in an asynchronous transfer mode, comprising: receiving a plurality of simultaneous messages, each of said simultaneous messages received as a plurality of separated cells which are addressed with an address; maintaining a table of information from said cells in memory; maintaining a variable associated with said table in memory; and using said variable to search said table in way that enables searching less than all of said table.
- 35. A method as in claim 34 wherein said variable is related to a number of active connections.
- 36. A method as in claim 35 wherein said variable is related to a last entry in the table.
- 37. A method as in claim 34 wherein there are two variables, one related to a number of active connections, another related to an ending point of the table.
- 38. A method as in claim 37 further comprising adding a new connection by comparing said variables, taking a first action if said variables are equal and a second action if said variables are unequal.
- 39. A method as in claim 38 wherein said first action comprises adding a new value at the end of the table, and incrementing a first variable.
- 40. A method as in claim 38 wherein said second action comprises searching between a minimum value and a value of said second variable to look for a blank space in said table, said searching comprising searching less than all values in said table.
- 41. A method as in claim 40 wherein said second action comprises searching between a minimum value and a value of said second variable to look for a blank space in said table, said searching comprising searching less than all values in said table.
- 42. A method as in claim 34, wherein said table further comprises a cell storage area and a connection number entry area, further comprising: associating a connection number with each new address associated with said simultaneous messages; storing said connection number in said connection number entry area; extracting said cells from said simultaneous messages and storing said cells in said cell storage area associated with said connection number in said table.
- 43. A method as in claim 42, further comprising: receiving a next message having a next address; determining if said next address is associated with a connection number in said table; extracting a cell from said next message and storing said cell in said cell storage area associated with said connection number, if said next address is associated with a connection number in said table; and adding a new connection number to said table and storing said cell in a cell storage area associated with said new connection number in said table, if said next address is not associated with a connection number in said table.
- 44. A method of operating in asynchronous transfer mode, comprising: maintaining a table in memory having a plurality of simultaneously-transmitted messages, each message transmitted as a plurality of separated cells, said table associating cells that are related to one another; receiving a new cell; receiving an address of said new cell from the new cell; removing the address from said new cell to leave information without said address; forming a first variable associated with said table which represents a last value in said table which is active; forming a loop from a minimum value to said first variable; at each point in said loop, comparing said removed address to a current loop value; and adding said information from said cell to the current loop position if the removed address matches the current loop position.
- 45. A method as in claim 44 further comprising detecting no matches, and adding a new connection.
- 46. A method as in claim 44 further comprising a second variable related to a number of active connections, and wherein said second variable is incremented when a new connection is added.
- 47. A method for supporting a flexible addressing scheme for an ADSL interface using a VPI/VCI value in a header of a cell, said VPI/VCI value being within a range of connection values, said method comprising the steps of: setting a num_of_conn variable equal to zero; setting a last variable equal to zero; determining a first entry of a table for storage of a value; said table having a number of entries, said number of entries being less than the number of connection values in said range, including; setting said first entry equal to said last incrementing said last incrementing said num_of_conn; storing a predetermined one of said connection values in said first entry; receiving said cell; extracting said VPI/VCI value from said cell; comparing said VPI/VCI value to entries in said table in a sequential manner starting with said first entry and ending at said last determining a match when said VPI/VCI value is present in one of said entries; and passing the contents of said one of said entries and said cell to a processor for further processing when said match is determined.
- 48. The method as in claim 47 including the steps of: determining an additional entry of said table for storage of a connection, including; setting said additional entry equal to said last incrementing said last incrementing said num_of_conn; storing an additional predetermined one of said connection values in said additional entry.
- 49. The method as in claim 48 further including the steps of: recognizing a delete connection value; comparing said delete connection delete connection value to entries in said table in a sequential manner starting with said first entry and ending at said last determining a match when said delete connection value is present in one of said entries; and storing a null value in said one of said entries, said null value being outside said range of connection values; decrementing said num_of_conn.
- 50. The method as in claim 49 including the steps of: recognizing a second additional connection value; determining a second additional entry of said table for storage of a connection value, said step of determining a second additional entry including; setting said second additional entry equal to said last incrementing said last and incrementing said num_of_conn; comparing said null value to entries in said table in a sequential manner starting with said first entry and ending at said last determining a match when said null value is present in one of said entries; setting said second additional entry equal to said one of said entries when said match is determined, decrementing said last when said match is determined; and storing said second additional connection value in said second additional entry.
- 51. The method as in claim 47 wherein said number of table entries is equal to 32.
- 52. The method as in claim 47 wherein said number of table entries is equal to 64.
- 53. An system for supporting a flexible addressing scheme for an ADSL interface using a VPI/VCI value in a header of a cell, said VPI/VCI value being within a range of connection values, said system comprising; first means for determining a first entry of a table for storage of a value, _said table having a number of table entries, said number of table entries being less than the number of connection values in said range, second means for storing a predetermined one of said connection values in said first entry; third means for receiving said cell; fourth means for extracting said VPI/VCI value from said cell; fifth means for comparing said VPI/VCI value to entries in said table in a sequential manner; sixth means for determining a match when said VPI/VCI value is present in one of said entries, and seventh means for passing the contents of said one of said entries and said cell to a processor for further processing when said match is determined.
- 54. The system as in claim 53 wherein said first means includes: a comparing means for comparing a null value to entries in said table in a sequential manner, said null value being outside said range of connection values; a determining means for determining a null match when said null value is present in one of said entries; and a setting means for setting said first entry as said one of said entries.
- 55.The system as in claim 53 including: an additional determining means for determining an additional entry of said table for storage of a connection value, said second means storing an additional predetermined one of said connection values in said additional entry.
- 56. The system as in claim 54 wherein said additional determining means includes: a comparing means for comparing a null value to entries in said table in a sequential manner, said null value being outside said range of connection values; a determining means for determining a null match when said null value is present in one of said entries; and a setting means for setting said additional, entry as said one of said entries.
- 57. The system as in claim 56 further including: a recognizing means for recognizing a delete connection value, said comparing means comparing said delete connection delete connection value to entries in said table in a sequential manner, said determining means determining a match when said delete connection value is present in one of said entries, and said second means storing said null value in said one of said entries.
- 58. The system as in claim 57 wherein said recognizing means recognizing an additional connection value and said additional determining means determining said additional entry of said table.
- 59. The system as in claims 53 wherein said number of table entries is equal to 32.
- 60. The system as in claims 53 wherein said number of table entries is equal to 64.
- 61. A method for supporting a flexible addressing scheme for an ADSL interface using a VPI/VCI value in a header of a cell, said VPI/VCI value being within a range of connection values, said system comprising: setting a num_of_conn variable equal to zero; setting a last variable equal to zero; determining a first entry of a table for storage of a value said table having a number of entries, said number of entries being less than the number of connection values in said range, including; setting said first entry equal to said last incrementing said last incrementing said num_of_conn, storing a predetermined one of said connection values in said first entry; receiving said cell; extracting said VPI/VCI value from said cell; comparing said VPI/VCI value to entries in said table in a sequential manner starting with said first entry and ending at said last determining a match when said VPI/VCI value is present in one of said entries; and passing the contents of said one of said entries and said cell to a processor for further processing when said match is determined.
- 62. The method as in claim 61 including the steps of: determining an additional entry of said table for storage of a connection, including; setting said additional entry equal to said last incrementing said last incrementing said num_of_conn; storing an additional predetermined one of said connection values in said additional entry.
- 63. The method as in claim 62 further including the steps of: recognizing a delete connection value; comparing said delete connection delete connection value to entries in said table in a sequential manner starting with said first entry and ending at said last determining a match when said delete connection value is present in one of said entries; and storing a null value in said one of said entries, said null value being outside said range of connection values; decrementing said num_of_conn.
- 64. The method as in claim 63 including the steps of: recognizing a second additional connection value; determining a second additional entry of said table for storage of a connection value, said step of determining a second additional entry including; setting said second additional entry equal to said last incrementing said last incrementing said num_of_conn; comparing said null value to entries in said table in a sequential manner starting with said first entry and ending at said last determining a match when said null value is present in one of said entries; setting said second additional entry equal to said one of said entries when said match is determined; decrementing said last when said match is determined; and storing said second additional connection value in said second additional entry.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation Patent Application that claims priority from co-pending patent application Ser. No. 09/338,935, filed on Jun. 23, 1999, which in turn claims the benefit of U.S. Provisional Application No. 60/090,441, filed Jun. 24, 1998.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60090441 |
Jun 1998 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09338935 |
Jun 1999 |
US |
Child |
10063508 |
May 2002 |
US |