US20020035623A1 - Method and apparatus for operating the internet protocol over a high-speed serial bus - Google Patents

Method and apparatus for operating the internet protocol over a high-speed serial bus Download PDF

Info

Publication number
US20020035623A1
US20020035623A1 US09/835,712 US83571201A US2002035623A1 US 20020035623 A1 US20020035623 A1 US 20020035623A1 US 83571201 A US83571201 A US 83571201A US 2002035623 A1 US2002035623 A1 US 2002035623A1
Authority
US
United States
Prior art keywords
network
address
identifier
component
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/835,712
Other versions
US6405247B1 (en
Inventor
Sachin Lawande
Salim Ling
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Hewlett Packard Enterprise Development LP
Original Assignee
Lawande Sachin S.
Salim Ling
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lawande Sachin S., Salim Ling filed Critical Lawande Sachin S.
Priority to US09/835,712 priority Critical patent/US6405247B1/en
Publication of US20020035623A1 publication Critical patent/US20020035623A1/en
Application granted granted Critical
Publication of US6405247B1 publication Critical patent/US6405247B1/en
Assigned to HEWLETT-PACKARD COMPANY reassignment HEWLETT-PACKARD COMPANY MERGER (SEE DOCUMENT FOR DETAILS). Assignors: 3COM CORPORATION
Assigned to HEWLETT-PACKARD COMPANY reassignment HEWLETT-PACKARD COMPANY CORRECTIVE ASSIGNMENT TO CORRECT THE SEE ATTACHED Assignors: 3COM CORPORATION
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD COMPANY
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. CORRECTIVE ASSIGNMENT PREVIUOSLY RECORDED ON REEL 027329 FRAME 0001 AND 0044. Assignors: HEWLETT-PACKARD COMPANY
Assigned to HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP reassignment HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Definitions

  • This invention relates to the operation of a high speed data network which interconnects different application modules, and more particularly relates to a method and apparatus for operating IP protocol over a high-speed bus such as an IEEE 1394 high-speed bus.
  • OSI Open Systems Interconnection
  • the Open Systems Interconnection uses the layering framework with the goal to create an open systems networking environment where any vendor's computer system, connected to any network, can freely share data with any other computer system on that network or linked network.
  • Many computer systems have a structure based on the OSI model, which organizes the communication process into seven different categories and places these categories in a layered sequence based on their relation to the user.
  • the three lowest layers in the OSI model are the physical, link and network layers, each layer dealing with network access.
  • the physical layer is concerned with transmission of unstructured bit stream over physical media, such as cables, and is considered to be the lowest layer.
  • the link layer provides for the reliable transfer of information across the physical layer, sending blocks of data with the necessary synchronization, error control, and flow control.
  • the network layer determines how data is transferred between computers and addresses routing within and between individual networks.
  • IEEE 1394 is a data transport bus that supports up to 63 nodes per bus and up to 1023 buses.
  • the bus can be a tree or daisy-chained (devices connected in series) or a combination of both and can support both asynchronous and isochronous data.
  • IP Internet Protocol
  • IP protocol is a connectionless protocol (i.e. mode of operation in which a packet header is encoded with sufficient information to permit independent delivery of the packet) that operates at the network layer.
  • the IP protocol is a standard describing software that monitors the internetwork addresses for different nodes, routes outgoing messages, and recognizes incoming messages. IP, which works in conjunction with the Transmission Control Protocol (TCP), (and identified as TCP/IP) provides communication across interconnected networks, between computers with diverse hardware architectures and various operating systems.
  • TCP and IP are two of the more widely used protocols in the family of Internet protocols.
  • the IEEE 1394 is designed as a memory read/write bus where the sender of data must have information on the receiver's memory structure.
  • the sender or initiating node reads from or writes to the memory location of the receiver or target note.
  • the sender node is required to know the memory architecture of the receiving node in order to perform memory read/writes.
  • the IP protocol transfers data without the sender knowing about the receivers memory architecture. As such, the data transfers of IP cannot be directly accomplished on the IEEE 1394 architecture.
  • the IEEE 1394 is essentially a connectionless acknowledged protocol.
  • Each IEEE 1394 packet of data other than a packet that is broadcast to all nodes, generates an acknowledgment from the receiver. If the acknowledgment indicates a failure in the reception of the packet, the sender retransmits the packet.
  • the packet formats of the IEEE 1394 are incompatible with the IP packet formats.
  • a packet header is the portion of the message sent that contains information which guides the message to the correct destination.
  • IP protocol uses logical addresses to identify each node in the network with the IP addresses as 32-bit values depicted in dotted-decimal fashion (e.g., 149.112.234.1 for IP host and 149.112.234.2 for another IP host).
  • IP address an application on one IP host that needs to transfer data to another application on a different IP host will use the IP address to direct the data transfer (e.g., use the IP address 149.112.234.2 to transfer data to the second application).
  • the IEEE 1394 protocol requires the use of a physical address of the destination node. Thus, a conversion between the IP address to the IEEE address must be accomplished before the data can be handed to the physical layer for transmission.
  • ARP Address Resolution Protocol
  • IP host wishes to obtain the address of a destination node, it broadcasts an ARP query with the IP address of the destination node. All IP hosts on the local network receive the ARP broadcast and check to see if the IP address contained in the ARP query is the same as the local IP interface address. The node whose address is equal to the address contained in the ARP query responds with an ARP response that contains the physical address for that node.
  • ARP Address Resolution Protocol
  • the IEEE 1394 physical address is generated dynamically by the IEEE 1394 and can change upon a bus reset.
  • the physical address of an IP interface is set at the time of interface initialization and cannot be changed without bringing the IP interface down and then reinitialized with a new physical address. If this is done, all of the IP traffic on the interface is stopped and is only restarted after the IP interface is up again. Any TCP connections using that interface will be torn down.
  • Another problem when integrating various heterogeneous systems is determining whether the data formats conform to a certain standard or a certain computer architecture.
  • Components such as computers and modules on a network, receive many packets of information.
  • the component In order to determine if the component should process the information, the component must assess if the data format conforms with a certain standard or certain computer architecture. If the data format does not conform, the component should not process the data. Otherwise, the data format should be processed. Further, in order for a component to be able to process the data more quickly, the component must quickly determine whether the packets conforms. Otherwise, data might be lost.
  • Previous components have attempted to determine whether a packet should be processed is by examining the format of the packet. For example, if the component is looking for a packet which is formatted under the IP protocol, the component examines the packet to determine if the specific fields within the packet are within the bounds of a packet which is formatted under the IP protocol. If the packet is within bounds, the component processes the packet. Otherwise, the packet is ignored.
  • a method of reconfiguring the bus line without disturbing the on-going traffic on the bus includes the step of obtaining the non-changeable address of the component, which does not change during a bus reset, and the changeable address, which is assignable.
  • the method further includes the step of placing the non-changeable address and changeable address in a look-up table.
  • the network is reconfigured.
  • the method further includes the step of determining the non-changeable address of the component.
  • the look-up table is examined for the changeable address which corresponds to the non-changeable address.
  • the component is assigned the changeable address which was placed in the look-up table prior to bus reset.
  • a data processing system in accordance with a second aspect of the invention, includes a bus line and a module connected to the bus line.
  • the module has a memory which contains a network identifier address.
  • the data processing system includes a network manager connected to the bus line.
  • the network manager has a memory device and a processor with the memory device having a look-up table containing the network identifier address and the changeable address.
  • the processor has a comparator for comparing the network identifier address in the look-up table with the network identifier address in the module.
  • a method for determining whether to process an incoming data stream to a component includes the step of determining the first packet identifier contained in the first memory device of the first component. The method further includes the step the packet is formed having a field containing the first packet identifier. In addition, the packet is sent onto the bus. The method further includes the step of determining by the second component the second packet identifier contained in the second memory device of the second component. Further, the second component receives the packet from the bus and parses through the fields to obtain the first packet identifier. The method further includes the step of comparing by the second component the parsed data with the second packet identifier, and processing the packet if the parsed data equals the second packet identifier.
  • a data processing system includes a bus line and two modules connected to the bus line.
  • the first module has a first memory and a first processor, with the first memory containing a first packet identifier.
  • the first processor accesses the first memory, obtaining the first packet identifier, and forms a data stream containing the first packet identifier.
  • the second module has a second memory and a second processor, with the second memory containing a second packet identifier.
  • the second processor has a comparator which compares the second packet identifier with the first packet identifier in the data stream.
  • a method for sending a packet of data on a physical and link layer configured for packets which include memory architecture information in the packet includes the step of receiving the packet of information at the link layer from the network layer from the sender module. The method also includes the step of placing header information into the packet which does not include memory architecture information about the receiver module and which conforms to sending the information via channel based I/O. In addition, the packet is transported to the receiver module via the physical layer.
  • a primary object of the invention is to integrate the IP protocol with an IEEE 1394 high-speed bus.
  • Another object of the invention is to provide a means for inserting or removing nodes from a network at any level in the computer architecture without disturbing the on-going traffic on other nodes in the network.
  • Still another object of the invention is to transfer IP packets on the IEEE 1394 using channel based input/output.
  • Still yet another object of the invention is to efficiently and correctly determine whether to process incoming packets of data.
  • FIG. 1 is an exemplary application of the Remote Access and Routing Server
  • FIG. 2 is block diagram of an example of a network and devices comprising the Remote Access and Routing Server;
  • FIG. 3 is a block diagram of the Routing Device
  • FIG. 4A is a block diagram of the Analog-Digital Call Terminating Device
  • FIG. 4B is a block diagram of the Onboard T 1 /E 1 NIC, Board Manager Subsystem, DSP Subsystem and Shared Memory Subsystem of the Analog-Digital Call Terminating Device;
  • FIG. 4C is a block diagram of the Application Co-Processor and Shared Memory Controller of the Analog-Digital Call Terminating Device
  • FIG. 4D is a block diagram of the Network Co-Processor Subsystem and Shared Memory Controller of the Analog-Digital Call Terminating Device;
  • FIG. 5 is a block diagram of the layered architecture of the network
  • FIG. 6A is a state machine of the initialization of the network
  • FIG. 6B is a flow chart of the initialization of the network corresponding to the state machine in FIG. 6A;
  • FIG. 7A is the format of the IEEE 1394 address
  • FIG. 7B is the format of the self-identification packet used during initialization of the network
  • FIG. 7C is the format for the IP packet encapsulated in the IEEE 1394 packet
  • FIG. 7D is the format for the Get-Priority-Request
  • FIG. 7E is the format for the Get-Priority-Response
  • FIG. 8 is a block diagram of the network manager and module.
  • FIG. 9 is the flow chart of the determination whether a packet is sent from a compatible module.
  • FIG. 1 refers to a Remote Access and Routing Server (RARS) 10 for a data processing system.
  • the Remote Access and Routing Server 10 integrates separate data communication entities via a public switched telephone network (PSTN) 22 .
  • PSTN public switched telephone network
  • the Remote Access and Routing Server 10 provides remote access for mobile users and for individuals at home offices, access nodes for Internet service providers, and dial-up local area network to local area network (LAN-to-LAN) routing capabilities for geographically disperse corporate enterprises.
  • FIG. 1 discloses one application of the Remote Access and Routing Server 10 which allows communication between corporate offices (central and branch offices) 12 , 14 , 16 , homes and mobile users 18 , 20 .
  • the Remote Access and Routing Server 10 is connected to a LAN 24 which is in turn connected to Data Terminating Equipment (DTE) 26 , such as a computer, and to other devices 28 , 30 .
  • DTE Data Terminating Equipment
  • the Internet Service Provider 12 is also connected to the Internet.
  • Branch Offices 14 or Small Offices 16 may also be connected to the PSTN 22 via the Remote Access Routing Server 10 .
  • Mobile users 20 and Home Office users 18 may connect to the PSTN 22 via a modem 32 or other data communication device.
  • the Remote Access and Routing Server 10 is comprised of a stackable architecture whereby various suboperations of the Remote Access and Routing Server 10 are separated at the device level into a Routing Device 34 , a Digital Call Terminating Device 36 , and Analog-Digital Call Terminating Device 38 , allowing for expandability of the system based on a user's needs.
  • the user may expand the system by simply adding slices to the stack in modular increments. In this manner, the user's system may grow to match the user's needs.
  • the Remote Access and Routing Server 10 may also be combined into one system without separation at the device level. Referring to FIG. 2, the modules are connected via a network 40 with each device having its own power supply. The network allows inter-device communication in the system architecture.
  • the Routing Device 34 also known as a Router, the Digital Call Terminating Device 36 and the Analog-Digital Call Terminating Device 38 are interconnected by the network 40 , which is based upon the IEEE 1394 (Firewire).
  • the Routing Device 34 is connected to a local area network (LAN) 24 which is in turn connected to a management station 42 .
  • LAN local area network
  • Each device is connected to the network 40 via a node which has an address.
  • a single device may have multiple nodes connected to the network 40 .
  • each node attached to the network 40 has equal access to the data transfer services and share the available bandwidth with other nodes.
  • Each of the components have connectors to the network 40 and can support a nominal 200 mb/s data rate.
  • the Routing Device 34 contains the router engine, the ⁇ fraction (10/100) ⁇ Mbit Ethernet® interface 56 and a network interface 54 , referring to FIG. 3.
  • the Routing Device 34 is the center of system management. It provides the functionality to route all of the protocols supported by the Remote Access and Routing Server 10 , is the simple network management protocol (SNMP) agent for management of the system, and allows for synchronous serial interfaces for connection to a LAN or a Wide Area Network (WAN).
  • SNMP simple network management protocol
  • An Edge Server Device is a device which is placed at the edge of the Local Area Network.
  • the Edge Server Device is similar to the Routing Module in that it implements the network management components required as the primary network manager module on the network.
  • the Remote Access and Routing Server 10 may be implemented using a Routing Device 34 , an Edge Server Device or a combination of both devices.
  • the Digital Call Terminating Device 36 contains two T 1 /E 1 Primary Rate Interface (PRI) connections, a network interface and the necessary hardware to terminate two spans worth of Integrated Services Digital Network (ISDN) originated calls. Depending on the country, either T 1 or E 1 is used. T 1 is a standard for digital transmission in the United States, Canada, Hong Kong and Japan with a capacity of 1.544 M bits per second. E 1 is a standard for digital transmission in Europe with a capacity of 2.048 M bits per second. Call traffic, following processing by the Digital Call Terminating Device 36 , is passed to the Routing Device 34 , which in turn communicates with a LAN 24 .
  • PRI Primary Rate Interface
  • ISDN Integrated Services Digital Network
  • the Analog-Digital Call Terminating Device 38 is a single-span T 1 /E 1 access module designed to terminate calls of both analog and digital origin. This call traffic, following processing by the Analog-Digital Call Terminating Device 38 , is passed to the Routing Device 34 , which in turn communicates with a LAN 24 . As shown in FIG. 2, a second Analog-Digital Call Terminating Device 39 can be integrated into the network 40 . Therefore, the Analog-Digital Call Terminating Devices can be place in a star or daisy-chain topology with a second Analog-Digital Call Terminating Device acting as a repeater.
  • the central processing unit for the Routing Device 34 is a PowerPCTM 603 44 manufactured by IBM and Motorola and operating at 200 MHz. Because the printed circuit board will use a BGA package for the PowerPCTM, and will contain a 2.5 Volt regulator, the printed circuit board can accommodate any PowerPCTM 603 or 604 device for adjustments as central processing unit capacity requirements change.
  • the CPU chipset 48 is the IBM 82660 family consisting of the 82663 buffer and 82664 controller. This chipset 48 provides a glueless interface between the PowerPCTM 44 , system memory (DRAM) 50 , L 2 cache 46 , and the on-board PCI bus 52 .
  • the L 2 cache 46 consists of a single 16K ⁇ 15 cache tag RAM with 4 32K ⁇ 32 SSRAM devices to support the 512 KB of L 2 cache. Further information on the IBM 82660 chipset 48 is in IBM27-82660 PowerPCTM to PCI Bridge and Memory Controller User's Manual, IBM, SC09-3026-00, 1996.
  • Main memory is 64 bits in width and consists of 16 MB of base memory plus field upgrade capacity to 144 MB.
  • Base memory consists of eight 1 M ⁇ 16 60 ns EDO DRAM devices soldered to the PCB for reliability and low cost.
  • the PCB contains one 168-pin DIMM socket for memory expansion to 24, 32, 48, 80, or 144 MB total capacity using a 8, 16, 32, 64, or 128 MB DIMM respectively.
  • Expansion memory is EDO for higher performance.
  • Boot memory contains the CPU's primary bootstrap code to be executed upon hardware reset and consists of a software-locked segment of main storage flash. This allows primary bootstrap code to be field-updated in the unlikely event that becomes necessary.
  • Storage memory (Bulk Flash 64 ) is erasable and supports the operational code and the application's file system. It consists of 4 MB of flash memory, with provision for larger factory-installed sizes.
  • the printed circuit board supports four flash devices so that the board is populated with two 2 MB ⁇ 8 devices for a total of 4 MB.
  • the maximum configuration is 8 MB with 2 MB ⁇ 8 devices.
  • Memory is accessible as 32 64 KB blocks per device with boot memory and storage memory share the same physical device.
  • Storage memory consists of two Intel 28F016SC devices or two AMD 29F016 devices, with separate programming algorithms for the Intel or AMD devices.
  • a command user interface serves as an interface between the CPU and the internal operation of the device.
  • a valid command sequence written to the device initiates automatic execution of algorithms and timings for block erase, byte write, and lock-bit configuration operations.
  • a block erase operation erases one of the 64 KB blocks typically within one second wherein each block may be erased 100,000 times.
  • the Non-Volatile Memory is an EEPROM 66 consisting of 512 bytes.
  • the EEPROM 66 is written with the serial number and configuration data as part of the manufacturing process.
  • Non-volatile memory consist of one NM93LC66 device with locations individually addressable (as 16-bit “registers”). The non-volatile device is accessed serially via a three-wire interface (select, clock, data); however, this serial access is under control of the PCISC2 FPGA, which makes the EEPROM 66 visible to software through a conventional register set.
  • Two UARTs (Universal Asynchronous Receiver Transmitter) 70 are supported in the Routing Device, as shown in FIG. 3.
  • the first is a Console Port UART and is customer-accessible via a front-panel DB9 connector.
  • the UART complies with the ANSI RS-232-E and ITU V.28 standards, is configured as a DTE interface, supports hardware RTS-CTS flow control, contains 16-byte transmit and receive FIFOs, and supports the required asynchronous communication rates of 9600, 19200, 38400, 57600, and 115200 Baud.
  • the Console Port UART consists of one 16C550CFN device clocked at 3.6864 MHz and one Maxim MAX241 transceiver.
  • the second UART is a Debug UART.
  • the debug port is terminated internal to the Routing Device via a header, is compliant with ANSI RS-232-E and ITU V.28 standards, is configured as a DTE interface, supports hardware RTS-CTS flow control, contains 16-byte transmit and receive FIFO's, and supports the required asynchronous communication rates of 9600, 19200, 38400, 57600, and 115200 Baud.
  • the debug port consists of one 16C550CFN device clocked at 3.6865 MHz, and one Maxim MAX241 transceiver.
  • the Real-Time Clock 68 is used to provide date (year, month, day of month, day of week) and time (hours, minutes, seconds, hundredths). In addition to time/date availability, the device features alarm time comparison, programmable clock tick interrupt generation, a small number of bits of general purpose non-volatile RAM, and automatic storage of the date/time of last power failure.
  • the Real-Time Clock 68 consists of a DP8573A device with a dedicated 32.768 kHz crystal and capacitor backup power.
  • the Watchdog Timer 72 detects unusual operation by interrupting and then resetting the module if the timer 72 has been enabled but not been tickled in nominally 1.6 seconds. Upon reset, the watchdog timer is disabled, and requires an explicit software operation to enable it. Once enabled, software cannot disable it without allowing it to expire. Expiration of the watchdog causes a non-maskable interrupt (NMI) to occur.
  • NMI non-maskable interrupt
  • the Watchdog Timer 72 consist of one Maxim MAX697 supervisor device with assistance from the PCISC2 FPGA.
  • Voltage tolerance monitoring is provided on two critical voltages (+5.0 Volts, +3.3 Volts). Monitoring of +5.0 Volts is provided by the power supply unit. Monitoring of the Power supply unit generated +5.0 and +3.3 Volts is performed by on-board Routing Device circuitry, as discussed subsequently. If any voltage becomes out-of-tolerance, the board will be placed in a reset condition and held until the out-of-tolerance condition passes. The +5.0 and +3.3 voltages are monitored on-board so as to generate a proper power-up reset signal to the board.
  • the +2.5 Volt signal, generated on-board, is not monitored, because it is derived from a high-MTBF regulator, and because a reset signal is more accurately derived by monitoring that regulator's input voltage (+5.0/+3.3). On-board voltage monitoring will be performed by the voltage detection subsystem of the Maxim MAX 697 supervisor device.
  • the Routing Device 34 is equipped with a reset button 76 which causes an immediate hardware reset of the entire module. This is required for debugging and catastrophic error recovery under otherwise unanticipated conditions.
  • the button 76 drives the Maxim MAX 697 supervisor device, which is responsible for reset generation and timing.
  • a digital thermometer-thermostat device is used to sense on-board temperature.
  • the device's alarm setpoint is programmed at time of board manufacture so that an alarm is generated and routed to a status register when this setpoint is exceeded.
  • This setpoint is the “hard” setpoint beyond which proper operation cannot be guaranteed.
  • the temperature sensor device is accessed serially via a three-wire interface (select, clock, data); however, this serial access is under control of the PCISC2 FPGA 58 , which makes the device visible to software through a conventional register set.
  • the basic user interface consists of an LCD (liquid crystal display) panel 74 , six buttons 76 , and two LEDs (unit power and unit status) 74 .
  • the LCD 74 and buttons 76 reside on a subassembly which attaches to the main PCB via a cable and connector.
  • the LCD 74 and button peripherals 76 are connected to the PCISC2 FPGA 58 .
  • the PCI Bus 52 is provided by the IBM82660 chipset 48 . It operates at 3.3 Volts and is compliant with PCI Specification Revision 2.0.
  • the PCI Bus 52 like the rest of the Routing Device 34 , is operated in big endian (also known as non-Intel) byte-order mode. Big endian is a format for storage or transmission of binary data in which the most significant byte comes first. The reverse convention is called little endian.
  • PCI device configuration registers are required to operate in little endian mode for PCI compliance; therefore, software reorders bytes only when reading PCI device configuration registers.
  • Two single-width PMC Connector slots 60 are provided for future expansion.
  • PCI based systems require a set of bus support functions (referred to as Central Resource Functions) that are usually not provided by a PCI Bridge such as the IBM82660 48.
  • the Central Resource Functions in this design include a central arbiter, interrupt controller, and miscellaneous logic for individual device selection during PCI configuration cycles. These functions are provided in the PCISC2 FPGA device 58 .
  • this device 58 provides a bridge to a slower-speed eight-bit bus (X-bus) 62 which supports all non-PCI peripherals (flash memory 64 , UARTs 70 etc.).
  • the PCISC2 FPGA 58 provides bus buffering and control, address decoding, and chip select generation for X-Bus peripherals.
  • the Ethernet® Interface 56 connects to the Ethernet® LAN subsystem.
  • the Network Interface 54 connects to the IEEE 1394 .
  • the Network Interface 54 also programmed to communicate with the PowerPCTM 44 whereby the Network Interface 54 indicates to the PowerPCTM 44 when a packet has been received or sent.
  • Software code which is resident in System Memory 50 , is executed by the PowerPCTM 44 to control the operation of the Network Interface 54 . The software code is discussed subsequently in FIGS. 5 - 9 .
  • the Edge Server Device is designed based on industry standard personal computer architecture using commercially available components. Intel®V Pentium Pro® processor-based mother boards are used. Further the operating system is Windows NT 4.0. Therefore the Edge Server device uses the native remote access service for Windows NTTM to provide the functionality of a dialup router.
  • the Edgeserver Module originates and terminates calls from the Analog-Digital Call Terminating Device 38 and the Digital Call Terminating Device 36 . Therefore, the Edgeserver Module is able to answer and authenticate inbound calls and route them onto a corporate LAN using the IP protocol.
  • the power subsystem, as shown in block 54 of FIG. 3 is integrated into the Edge Server device in order to power the PHYs and also power the network power bus.
  • the Edge Server device includes a Network Interface which programmed to communicate with the microprocessor whereby the Network Interface 54 indicates to the microprocessor when a packet has been received or sent.
  • Software code which is resident in System Memory 50 , is executed by the PowerPCTM 44 to control the operation of the Network Interface 54 .
  • the software code is discussed subsequently in FIGS. 5 - 9 .
  • FIG. 4A a block diagram of the Analog-Digital Call Terminating Device 38 is shown.
  • the Onboard T 1 /E 1 NIC (Network Interface Card) 78 provides an interface between the T 1 /E 1 telephone lines and the remainder of the Analog-Digital Call Terminating Device 38 .
  • the Board Manager Subsystem 80 executes the software which controls the calls to and from the T 1 /E 1 line.
  • the Board Manager Subsystem 80 when receiving data from the T 1 /E 1 line, sends the data to the DSP Subsystem 82 which contains 24 modems.
  • the DSP Subsystem 82 may be expanded to include 30 modems. Subsequently, the Board Manager Subsystem 80 sends the data to the 4-Port Shared Memory Subsystem 84 .
  • the Network Co-Processor Subsystem 88 then takes the data in the Shared Memory Subsystem 84 and sends it onto the Network 40 for routing by the Routing Device 34 .
  • the process is reversed in that the data is taken from the Shared Memory Subsystem 84 , sent to the DSP Subsystem 82 , through the Onboard T 1 /E 1 NIC 78 , and then to the T 1 /E 1 line.
  • Analog-Digital Call Terminating Device 38 communicates with each other via data buses, as shown in FIG. 4A. Further, there is a local time division multiplex line connecting the DSP Subsystem 82 with the Onboard T 1 /E 1 NIC 78 , as discussed in further detail subsequently.
  • FIG. 4B shows a more detailed block diagram of the Onboard T 1 /E 1 NIC 78 , Board Manager Subsystem 80 , Shared Memory Subsystem 84 and DSP Subsystem 82 of the Analog-Digital Call Terminating Device 38 .
  • the passive circuitry 90 contains transformers and protection devices to protect from any spikes in the voltage on the T 1 /E 1 line.
  • the passive circuitry 90 also matches the impedance to the T 1 /E 1 line.
  • the Line Interface Unit (LIU) 92 part number LXT361, is the physical layer interface, acting as a line driver/receiver.
  • the Framer 94 handles all of the T 1 /E 1 framing and transmit framing tasks.
  • the Time-Slot Interchanger (TSI) 96 allows the time slots to be remapped when sent back onto the T 1 /E 1 line.
  • the 64 channel Local Time Division Multiplex (TDM) bus is connected between the Time-Slot Interchanger 96 and the DSP 108 .
  • the Board Manager PowerPCTM model number 403GCX-66 also communicates with memory devices, FLASH 104 and DRAM 106 .
  • the Board Manager Address and Data Bus 107 connects the Board Manager 124 with the DSP Subsystem 82 , the Shared Memory System 84 and the Onboard T 1 /E 1 (NIC) 78 , as indicated by the data paths in FIG. 4A ( 81 , 83 , 79 ).
  • FIG. 4C shows a more detailed block diagram of the Application Co-Processor 126 , PowerPCTM model number 403GCX-66, in combination with the Shared Memory Controller 128 and SRAM 130 and DRAM 132 memory devices.
  • the Application Co-Processor Address and Data Bus 131 connects the Application Co-Processor 126 with the Shared Memory Controller 128 , the SRAM 130 and DRAM 132 , as indicated by the data path in FIG. 4A ( 85 ).
  • FIG. 4D shows a block diagram of the Network Co-Processor 134 , PowerPCTM model number 403GCX-66.
  • the Network Co-Processor 134 is the interface for the Analog-Digital Call Terminating Device 38 to the IEEE 1394 .
  • the System Controller FPGA 138 is for monitoring the primary power supply and the backup power supply, allowing the Network Co-Processor 134 to control the local power supply.
  • the Network Interface 150 similar to the Network Interface 54 for the Routing Device 34 , connects to the IEEE 1394 .
  • the Network Interface 150 contains the physical layer interfaces (PHYs), link layer controller (LLC), and the power subsystem.
  • the Network Interface 150 is also programmed to communicate with the Network Co-Processor 134 whereby the Network Interface 150 indicates to the Network Co-Processor 134 when a packet has been received-or sent.
  • Software code which is resident in DRAM (Dynamic Random Access Memory) 136 , is executed by the Network Co-Processor 134 to control the operation of the Network Interface 150 .
  • the software code is discussed subsequently in FIGS. 5 - 9 .
  • the Network Co-Processor Address and Data Bus 135 connects the Network Co-Processor 134 with the Shared Memory Controller 128 , as indicated by the data path in FIG. 4A ( 87 ).
  • the IEEE 1394 high speed serial bus 40 providing the physical and link layer functions and the TCP/IP 152 , 154 serving as the transport layer.
  • the Bus Management Protocol (BMP) 156 is responsible for management of the network, such as the selection of the network manager and the optimization of the IEEE 1394 bus.
  • the User Datagram Protocol (UDP) 158 is also a transport layer protocol providing connectionless mode protocol.
  • the network uses the IP protocol as the transport protocol for data transfers over the IEEE 1394 bus 40 .
  • the IP protocol uses logical addresses to identify each node in the network with the IP addresses as 32-bit values depicted in dotted-decimal fashion (e.g., 149.112.234.1 for one application and 149.112.234.2 for another application).
  • An application that needs to transfer data to another application will use the IP address to direct the data transfer (e.g., use the IP address 149.112.234.2 to transfer data to the second application).
  • Each node on the network is configured with an IP address within the network range that uniquely identifies the node. For a network supporting up to 63 nodes, it is sufficient to use a single Class C IP network address.
  • the network can support IP address assignment to the individual modules in the network. Further, for a single IP network, the IP addresses are assigned such that all nodes are on the same IP network and no two nodes have the same IP address. The IP addresses are assigned to the nodes through the Net-Topology-Update packet, which is described subsequently.
  • IEEE 1394 uses the physical address of the destination node.
  • FIG. 3A is the format of the IEEE 1394 physical layer address. It uses a 16-bit wide address formed by the concatenation of the 10-bit bus number and the 6-bit node number.
  • the network may support the bridging of multiple IEEE 1394 buses with the differing buses distinguished by the 10-bit bus number.
  • the first 10-bits of the IEEE 1394 address need not change across bus resets.
  • the 6-bit node number results in a total address space of 64 addresses per IEEE 1394 bus.
  • Address FFFF 16 is used as the broadcast address for the bus, thereby resulting in an effective address space of 63 addresses.
  • the 6-bit node address for the IEEE 1394 is generated dynamically by the 1394 bus during bus initialization, resulting in a potentially different IEEE 1394 address for the same node across bus resets.
  • a bus reset occurs whenever there is a reconfiguration of the network (i.e. whenever a node is inserted or removed from the network). Therefore, the IEEE 1394 is unlike other physical layers in that it is not programmed with an address for the node which is constant when the system is reconfigured.
  • ARP Address Resolution Protocol
  • This conversion may be accomplished through an address resolution scheme whereby a look-up table is used to map the IP address to the appropriate IEEE 1394 address.
  • IP and IEEE 1394 addresses other protocols may be substituted for the IP or IEEE 1394 protocols when implementing the address resolution scheme using a look-up table.
  • the address resolution scheme may be implemented at any layer of the computer architecture (e.g., physical, data link, network, transport, session, presentation, or application layers).
  • FIG. 6A is a state machine and FIG. 6B is a flow chart of the initialization process of the network with the preferred software listing below.
  • the software which is attached as an Appendix and incorporated herein by reference, is written in the “C” programming language and is executed on the IBM/Motorola PowerPCTM microprocessor.
  • the software implements the procedures disclosed in FIGS. 5, 6A, 6 B, 8 , and 9 . The reader's attention is directed to the notice regarding copyright set forth at the beginning of this document.
  • the Bus Reset state 162 is entered when a system power up occurs or when a node is inserted in or removed from the network.
  • the main function of this state is to ensure that the reset signal is propagated to all the nodes so that all IEEE 1394 nodes enter the reset phase.
  • the Bus Reset state 162 may be entered at any phase of network operation in order to maintain maximum flexibility of the system, as denoted by the arrows in FIG. 6A.
  • the IEEE 1394 physical layer chip detects the insertion or removal of a node and sends a reset signal onto all of the ports for a period of time to ensure that the entire bus sees the signal.
  • a bus reset occurs whenever the network is reconfigured by insertion or removal of a node.
  • the 1394 link controller also sends an interrupt to indicate the entry into Bus Reset 172 , as shown in FIG. 6B.
  • the previous address resolution table (based on the Net-Topology-Update discussed subsequently) and any output packets buffered in the 1394 driver are flushed. All IP traffic on the IEEE 1394 interface is stopped and resumed only upon entering the Data Transfer phase.
  • existing TCP connections between nodes, other than the node being inserted/removed are not reset upon entering the Bus Reset state.
  • the TCP/IP protocol is not informed of any change in the state of the network and the applications using the network are not notified of the bus reset event.
  • the TCP/IP protocol itself is not affected in any way and data transfers from the application to the protocol stack continue as before. All output data on a TCP session will be buffered by the protocol stack during the initialization phase until the flow control window closes 174 . At this point, the application will not be able to transfer more data to the protocol stack.
  • the flow control window will be opened again, allowing for data transfers to continue on the session. For data which is input, upon entering the Bus Reset phase, input data buffered by the TCP session will continue to be transferred to the application. Once all buffered input data has been transferred to the application, no more data will be transferred to the application until the Data Transfer phase is entered.
  • the tree identify state 164 results in the ordering of the IEEE 1394 bus into a logical tree with one node as the root 176 .
  • Each node waits to receive a signal from a “child” node, which is of lower priority. If the node receives a “child” signal, then it sends a message to its “parent” indicating that the node is a “child” and that the node has a “child” as well. In this manner, the logical tree is formed so that all the nodes know their place in the tree, from the lowest leaf to the highest root.
  • the root node which has the highest natural priority for access to the IEEE 1394 bus, is selected via an arbitration process in the case of multiple root-capable nodes.
  • Each node forgets its IEEE 1394 address it had prior to the bus reset. The lowest leaf then gets the node address of zero. The next highest node receives the node address of one, and so on until the root node receives the highest IEEE 1394 node address. If a module is removed or inserted, the tree structure may be disrupted so that the IEEE 1394 addresses, which are based on the tree structure, may be different across bus resets. Therefore, the IEEE 1394 addresses change dynamically since software is not able to guarantee that a node will have a certain IEEE 1394 address across a bus reset.
  • the self-identify phase 166 is entered.
  • Each node on the network acquires a new 1394 physical address and advertises it to the network by broadcasting the self-identification packet 176 .
  • the format of the self-identification packet is referred to in FIG. 7B.
  • the first two bits ( 10 ) indicate that the format is a self-identification packet identifier.
  • the phy_ID is the physical node identifier of the sender of the packet.
  • L active Link transaction layer
  • gap_cnt current value of node's gap count
  • sp speed capabilities
  • del del
  • c node is contender for manager of the network, which is discussed subsequently
  • pwr power consumption
  • p 0 , p 1 , p 2 port status
  • i indicates if node initiated reset
  • m indicates if a second self-identification packet will be sent.
  • the self-identification packets are essentially broadcast on the network with each node building a table of self-identification packets to determine the 1394 address of the root node 34 .
  • the root node has the highest 1394 address so that, upon completion of the self identify phase 166 , all nodes on the network know the 1394 address of the root node 176 .
  • the root node selects the node which will be the manager of the network based on the self-identification packets during the Manager identify phase 168 .
  • the root node searches the list of self-identification packets to determine the manager capable nodes in the system. If there are no manager capable nodes, the root node detects an error condition. If the root node determines that there is at least one manager capable node, the root node broadcasts a Get-Priority-Request message 178 to obtain the capability, priority, current IEEE 1394 address and the network identifier (NID) of each node.
  • NID network identifier
  • the Get-Priority-Request is sent to obtain the network identifier and the priority of all the nodes on the network.
  • the Get-Priority-Request consists of: total_length (16 bits) which is the total length of the message in octets; message_code (16 bits) which is set to one (1) for Get-Priority-Request; source ID (16 bits) which is the IEEE 1394 node ID of the sending node and is the concatenation of the 10-bit source bus ID and 6-bit physical address (as shown in FIG. 7A); and reserved (16 bits) which is set to zero(0).
  • the network identifier is a unique 32-bit network identifier which is hardwired into each node during manufacture in the factory.
  • the nodes then send Get-Priority-Responses 178 .
  • the root node selects the manager of the network. Further, the Get-Priority-Response is used to maintain consistency of IP addresses across bus resets, as discussed subsequently.
  • the initialization continues 180 . However, if a node other than the root node is selected as the manager of the network, the root node then broadcasts a message to enable root connection to the node which was selected as the manager of the network upon the next bus reset 182 . The root node also transmits the look-up table of addresses, which is discussed subsequently, to the node which was selected as the manager of the network 182 . The current root node then initiates a second bus reset so that the new configuration will take effect. Upon the second bus reset, the node which was already selected as the manager of the network, upon reset, will also be chosen as the root node so that the initialization continues.
  • the manager of the network 190 then assigns the IP addresses to the nodes 184 .
  • the assignment of IP addresses must be done such that nodes that were assigned IP addresses before this bus reset (i.e. the bus reset that caused the manager of the network to be selected) must be assigned the same IP address. Otherwise, whenever a node is inserted or removed from the network, the IP interface must be brought down with all of the IP data structures being reinitialized. Because of this hot-swap capability, the IP interface is left in tact with the IP still “believing” that it is talking to the physical and link layers as before the insertion or removal of the node from the network.
  • the manager of the network 190 uses a look-up table 198 in a memory device 196 , such as a Random Access Memory (RAM) device.
  • the look-up table 198 contains the network identifier (NID) and the corresponding IP address and IEEE 1394 address prior to the bus reset. Besides being unique for each node, the network identifier never changes for the lifetime of the node. Thus, while the IEEE 1394 node address as well as the IP node address may change upon bus reset, the network identifier does not.
  • the network identifier acts as a permanent unique node identifier, and the 32-bit network identifier space is sufficiently large enough such that it may be segmented-to allow for various pieces of information specific to the node, such as module type information.
  • the 32-bit network identifier does not have any specific formatting requirements other than the requirement that it be unique.
  • the NED 212 is programmed into the node using a ROM 210 , as shown in FIG. 8, or other means which will allow for the network identifier address to be constant across a bus reset.
  • the network identifier while programmed at the factory, may also be programmed by the user.
  • the network identifier may be changeable during periods of operation but other than during an insertion or removal of a node from the network; however, as stated previously, the network identifier must be constant across an insertion or removal of a node from the network.
  • Other means may be employed which allows for the node to maintain a unique node identifier between bus resets.
  • the network identifier can be stored in flash memory or some other memory which will be constant across a bus reset.
  • the network identifier can be taken from other sources in the module, such as the serial number which is programmed into the module at the time of manufacture.
  • the manager of the network determines the previous IP address for a specific network identifier.
  • the Get-Priority-Response is sent in response by a node to a Get-Priority-Request message. This message is sent to the address specified in the Get-Priority-Request message in the “source_ID” field, as shown in FIG. 7D.
  • the Get-Priority-Response consists of: total_length (16 bits) which is the total length of the message in octets; message code (16 bits) which is set to two (2) for Get-Priority-Response; source_ID (16 bits) which specifies the IEEE 1394 node ID of the sending node and is a concatenation of the 10-bit source bus ID and the 6-bit IEEE 1394 physical address (as shown in FIG.
  • priority_level (8 bits) which is the priority level of this node in the range of 0 - 255 with 255 being the highest priority
  • capability_flags (8 bits) which is the bit flags indicating the management capabilities of this contender
  • source_PNID 32 bits which is the network identifier for the node (as discussed previously).
  • the manager builds a temporary look-up table which maps the current IP addresses for the specific network identifiers.
  • the manager uses its comparator 194 in it processor 192 to compare the values in the historical look-up table 194 which contains the network identifier and the previous IP and IEEE addresses with the Get-Priority-Responses.
  • the processor 192 determines the previous IP address for the specific network identifier.
  • the network manager 190 then assigns the previous IP address before the bus reset to the node for the specific network identifier. After all of the nodes are assigned their previous IP addresses, a new look-up table is created, deleting the nodes which were removed and adding the IP and IEEE 1394 addresses for the nodes that were inserted.
  • each node which was in operation prior to bus reset will be assigned the same IP address as before the bus reset.
  • the gap count which is a number that is used by the IEEE 1394 physical layer chip in the calculation of the time between packet gaps.
  • the gap count is a factor of the number of nodes connected to the bus, and is set to the maximum value of 3F 16 upon bus reset.
  • the manager optimizes the gap count by calculating a new gap count for the IEEE 1394 bus topology, and then broadcasts the new gap count to all of the nodes connected to the bus.
  • the final phase of the state diagram in FIG. 6B is the Data Transfer State 170 and is entered after completion of the Manager Identify state 168 .
  • the Manager Identify state 168 is completed when the results of the IP address assignment and the IEEE 1394 addresses are broadcast to all nodes 188 , which is the Net-Topology-Update.
  • a node Upon receipt of the results of the address assignment, a node resumes transfer of IP packets on the IEEE 1394 interface. Further, all nodes remain in the Data Transfer phase until a bus reset is caused on the network.
  • the address resolution scheme can prevent disturbances in the on-going traffic in both higher and lower layers in the computer architecture.
  • the on-going traffic was not disturbed at the IP layer and above.
  • the addresses for the IEEE 1394 cannot be maintained with certainty across bus resets.
  • the on-going traffic at the link layer and below can be maintained due to continuity of addresses across bus resets.
  • the data on the physical layer bus may be corrupted due to the insertion/removal of a new node (which caused the bus reset).
  • the address resolution scheme can also be used in swapping any connection at any layer or hierarchy of the computer architecture, from the physical layer to the application layer.
  • the process and apparatus can be used with any computer architecture to protect disturbances at any node within the computer architecture.
  • nodes such as the Router device 34 , Digital Call Terminating Device 36 , and Analog-Digital Call Terminating Device 38 can be inserted or removed from the network without disturbing the on-going traffic.
  • the Router Device 34 is chosen as the manager of the network, so that the Router Device 34 will contain the look-up table which is used to assign the same IP addresses for other devices such as the Digital Call Terminating Device 36 or the Analog-Digital Call Terminating Device 38 as before the insertion or removal of another module on the network 40 .
  • a second aspect which is incompatible between the IEEE 1394 and the IP are the protocols between the sender and receiver.
  • the IEEE 1394 assumes that the sender or receiver is not an “intelligent” device and is not intended for channel based I/O.
  • the IEEE 1394 link layer specification includes a memory read/write data transfer scheme, where the requesting node specifies the memory location of the read/write action in the destination node. Therefore, the IEEE 1394 protocol includes information on the sender's or receiver's memory architecture, such as the specific location in memory for the read or write.
  • IP on the other hand, is intended for channel based I/O and assumes that the sender or receiver is sufficiently intelligent to process the data without memory architecture being included in the packet.
  • the data transfer scheme as specified by the IEEE 1394 is modified to transfer IP packets over IEEE 1394 .
  • the network transfers the packets using addressed data writes to transfer data.
  • Addressed data transfers allow for more flexibility in the handling of the data by the receiving node, whose memory architecture can be very different from the sending node. Further, the sending node need not be aware of the memory architecture of the receiver which allows for greater scaleability of the system.
  • the Common Packet Header contains the information that the IEEE 1394 examines to determine the routing of the packet.
  • the IEEE 1394 does not have a field in which to determine what type of protocol is encapsulated in its packet, i.e. what type of payload it is carrying.
  • the common packet header of the IEEE 1394 ordinarily contains the destination offset field in order to comply with the IEEE 1394 's requirement of including memory architecture information.
  • Modification of the IEEE 1394 packet header is done to integrate the IEEE 1394 with the IP protocol.
  • the IEEE 1394 through its specification, has a field in the header which has memory information (i.e. where the packet is to be written to or read from) of the target of the packet of data.
  • the field is modified, putting in the “protocol_type” field in the packet header. This is done so that the module that receives the packet will examine the field with the protocol type and determine from where the packet was sent from (i.e. the IP or the BMP). In this manner, the receiver module determines what type of data it is carrying via the “protocol_type” field in the packet header as shown in FIG. 7C.
  • the protocol_type field is 16 bits and specifies the protocol of the packet encapsulated in the data field.
  • the protocol_type field values are either BMP (Bus Management Protocol) or IP (Internet Protocol) to signify to the IEEE 1394 that the data field encapsulated in the IEEE 1394 packet either corresponds to the BMP protocol or to the IP protocol.
  • the following protocols are defined: BMP (0101 16 ); IP (0800 16 ).
  • BMP Bus Management Protocol
  • IP Internet Protocol
  • the protocol_type field may be modified based on the configuration of the system to indicate the type of packet encapsulated in the field.
  • the IEEE 1394 memory read write function is modified so that, instead of parsing the fields to determine where to write to or read from, the function examines the protocol_type to determine where the packet is from and thereafter how to process the packet.
  • Other fields in the Common Packet Header include: destination_ID which specifies the IEEE 1394 node ID of the receiving node (as discussed above with reference to FIG. 7A); t 1 which is the transaction label (unused and set to zero); rt which is the retry code (the network does not use the IEEE 1394 capability to resend data if the data that was previously send was not received properly; therefore, the retry code is set to zero); tcode which is the transaction code specifying the packet format and type of transaction to be performed (the IEEE 1394 receivers use the tcode to determine the 1394 header format); pri which is the priority (this field is unused and set to zero); source ID which specifies the IEEE 1394 node ID of the sending node (with the format of FIG.
  • protocol type which specifies the protocol of the packet encapsulated in the data field (two protocols are defined, one for the BMP and one for IP); pn_version which is the network version number; company_ID which is discussed subsequently; data length which is the total length of the data field in the number of bytes; extended_tcode is the extended transaction code which is set to zero; header CRC which is the computed cyclic redundancy check for the CPH portion of the packet; data field which is the data to be transferred in the packet; and data_CRC which is the computed cyclic redundancy check, using the same algorithm used to compute the header_CRC.
  • the IP packet is not a multiple of 4, then the data field is padded by one or more zero bytes to align the data field end on a quadlet boundary.
  • the IP packet is then followed by the cyclic redundancy check (CRC) which checks the integrity of the data field.
  • CRC cyclic redundancy check
  • the company_ID indicates the specific company that manufactured the network and is used as a packet identifier or a data stream identifier (i.e. identifying the origin of the packet or the data stream). This is added in the common packet header in order to add robustness to the system.
  • the company_ID is used (1) in terms of assigning addresses and (2) in terms of determining whether to process a packet.
  • the IP addresses are assigned, during the Manager Identify phase 168 , the same IP addresses prior to insertion or removal of the node.
  • the node sends a Get-Priority-Response in response to a Get-Priority-Request.
  • the common packet header contains the company_ID which is sent by the module 204 sending the Get-Priority-Response to the Manager of the Network 190 .
  • the module 204 accesses ROM 210 to retrieve the company_ID 202 to formulate the common packet header.
  • the Manager of the Network 190 when assigning IP addresses during the Manger Identify phase 168 , determines whether a node is network compatible, based on the company_ID in the Get-Priority-Response.
  • the Manager of the Network 190 uses the comparator 194 in the processor 192 to determine whether the company_ID field in the packet header is the same as the value stored in the ROM 200 of the Network Manager 190 . If the values are not the same, the Manager of the Network 190 does not assign an IP address to the node of the module which sent the Get-Priority-Response which did not contain the company_ID in the common packet header. In this manner, non-network modules do not interact with the higher layers of the computer architecture.
  • each packet includes a specific manufacture identifier (company_ID) in the common packet header so that if any packet does not contain a valid company identifier field, it will be discarded by the receiver.
  • company_ID manufacture identifier
  • Each module which is connected to the network via nodes 214 determines what the company_ID is.
  • the sender module contains the company_ID 202 in its ROM 200 .
  • FIG. 8 shows that the sender module is the network manager 190 .
  • the sender module may be any network compatible module, including the network manager 190 .
  • the sender module retrieves the company_ID and formats the packet header with the company_ID in conformance with FIG. 7C.
  • the sender module then sends the packet onto the bus.
  • a module 204 receives the packet and determines whether to process the packet based on the field allocated to the company_ID. The module performs this receiving of the packet at the link layer.
  • the company_ID 202 is hardwired into the module via a Read Only Memory (ROM) 210 . Alternatively, the company_ID is sent to all modules during any reset to the bus so that the company_ID can reside in volatile memory.
  • ROM Read Only Memory
  • the module which receives the packet first determines the company_ID for compatible modules 216 .
  • the module uses its processor 206 searches the packet header 220 .
  • the module compares the packet with the company_ID using the comparator 208 . If the header contains the company_ID in the correct portion of the header 222 , the module processes the packet 224 . Otherwise, the packet is not processed.
  • modules which are not designed to process the packet may refuse the packet at the link layer and thereby not interfere with the module's processing.

Abstract

A method and apparatus of integrating the IEEE 1394 protocol with the IP protocol in which the IEEE 1394 high speed serial bus operates as the physical and link layer medium and the IP operates as the transport layer. There are differences in the protocols which require special consideration when integrating the two protocols. The IEEE 1394 configures packets with memory information and the IP operates under channel based I/O thereby necessitating a modification of the data transfer scheme to accomplish IP transfers over the IEEE 1394. Further, due to differences in packet headers, the IEEE 1394 packet header is modified to encapsulate IP packets. Moreover, in order to determine network packets quickly and efficiently, an identifier is inserted in each network packet header indicating that the packet should be processed by the network. Finally, in order to support the ability to insert or remove nodes on the network without a loss of data, the IP interface must not be disturbed. This is accomplished by maintaining constant IP addresses across bus resets which are caused by insertion or removal of nodes from the network.

Description

    BACKGROUND OF THE INVENTION
  • A. Field of the Invention [0001]
  • This invention relates to the operation of a high speed data network which interconnects different application modules, and more particularly relates to a method and apparatus for operating IP protocol over a high-speed bus such as an IEEE 1394 high-speed bus. [0002]
  • B. Description of Related Art [0003]
  • When communication is necessary among heterogeneous systems (i.e. different vendors and standards), the software to communicate between the systems can be extremely difficult to develop. The potential exists for different vendors to use different data formats and data exchange conventions so that the differing machines are unable to “talk” directly to each other. To combat this potential problem, standardizing organizations have established computer architectures and structures to facilitate the communication between heterogeneous systems. One accepted structuring technique is layering. The communications functions are partitioned into a vertical set of layers whereby each layer performs a related subset of functions required to communicate with another system. Each layer then relies on the next lower layer to perform more primitive functions and to conceal the details of those functions as well as to provide services to the next higher layer. In this manner, the larger problem of communicating between differing systems can be structured into a discrete subset of layered subproblems. [0004]
  • One model of layering is the Open Systems Interconnection (OSI). The Open Systems Interconnection uses the layering framework with the goal to create an open systems networking environment where any vendor's computer system, connected to any network, can freely share data with any other computer system on that network or linked network. Many computer systems have a structure based on the OSI model, which organizes the communication process into seven different categories and places these categories in a layered sequence based on their relation to the user. [0005]
  • The three lowest layers in the OSI model ([0006] layers 1 through 3) are the physical, link and network layers, each layer dealing with network access. The physical layer is concerned with transmission of unstructured bit stream over physical media, such as cables, and is considered to be the lowest layer. The link layer provides for the reliable transfer of information across the physical layer, sending blocks of data with the necessary synchronization, error control, and flow control. The network layer determines how data is transferred between computers and addresses routing within and between individual networks.
  • One example of a physical and link layer medium is the IEEE 1394 high speed serial bus. IEEE 1394 is a data transport bus that supports up to 63 nodes per bus and up to 1023 buses. The bus can be a tree or daisy-chained (devices connected in series) or a combination of both and can support both asynchronous and isochronous data. Further, the Internet Protocol (IP) is a connectionless protocol (i.e. mode of operation in which a packet header is encoded with sufficient information to permit independent delivery of the packet) that operates at the network layer. The IP protocol is a standard describing software that monitors the internetwork addresses for different nodes, routes outgoing messages, and recognizes incoming messages. IP, which works in conjunction with the Transmission Control Protocol (TCP), (and identified as TCP/IP) provides communication across interconnected networks, between computers with diverse hardware architectures and various operating systems. TCP and IP are two of the more widely used protocols in the family of Internet protocols. [0007]
  • However, there are several problems when integrating the IEEE 1394 protocols with the protocols. First, there are differences in the protocols between the sender and the receiver of data. The IEEE 1394 is designed as a memory read/write bus where the sender of data must have information on the receiver's memory structure. In particular, the sender or initiating node reads from or writes to the memory location of the receiver or target note. The sender node is required to know the memory architecture of the receiving node in order to perform memory read/writes. In contrast, the IP protocol transfers data without the sender knowing about the receivers memory architecture. As such, the data transfers of IP cannot be directly accomplished on the IEEE 1394 architecture. Further, the IEEE 1394 is essentially a connectionless acknowledged protocol. Each IEEE 1394 packet of data, other than a packet that is broadcast to all nodes, generates an acknowledgment from the receiver. If the acknowledgment indicates a failure in the reception of the packet, the sender retransmits the packet. Second, the packet formats of the IEEE 1394 are incompatible with the IP packet formats. A packet header is the portion of the message sent that contains information which guides the message to the correct destination. [0008]
  • Third, there are addressing problems when using the IP protocol as the transport protocol for data transfers over the IEEE 1394 bus. The IP protocol uses logical addresses to identify each node in the network with the IP addresses as 32-bit values depicted in dotted-decimal fashion (e.g., 149.112.234.1 for IP host and 149.112.234.2 for another IP host). An application on one IP host that needs to transfer data to another application on a different IP host will use the IP address to direct the data transfer (e.g., use the IP address 149.112.234.2 to transfer data to the second application). However, the IEEE 1394 protocol requires the use of a physical address of the destination node. Thus, a conversion between the IP address to the IEEE address must be accomplished before the data can be handed to the physical layer for transmission. [0009]
  • Prior methods of obtaining the physical address, such as through the use of the Address Resolution Protocol (ARP), either cannot or should not be used with the IEEE 1394 network. Ordinarily, when an IP host wishes to obtain the address of a destination node, it broadcasts an ARP query with the IP address of the destination node. All IP hosts on the local network receive the ARP broadcast and check to see if the IP address contained in the ARP query is the same as the local IP interface address. The node whose address is equal to the address contained in the ARP query responds with an ARP response that contains the physical address for that node. However, most ARP implementations cannot support the dynamic changing of the hardware address and therefore cannot be used on an IEEE 1394 bus. The IEEE 1394 physical address is generated dynamically by the IEEE 1394 and can change upon a bus reset. The physical address of an IP interface is set at the time of interface initialization and cannot be changed without bringing the IP interface down and then reinitialized with a new physical address. If this is done, all of the IP traffic on the interface is stopped and is only restarted after the IP interface is up again. Any TCP connections using that interface will be torn down. [0010]
  • Further, the requirement of broadcasting an ARP inquiry and the address resolution latency are undesirable. All nodes on the network are forced to process the ARP request to determine if they have to respond to it. The determination of the physical address must be done quickly enough so that no data is lost on the network. During this determination, the data is buffered. However, the data can only be buffered for a finite period of time due to physical constraints in terms of memory requirements on the buffers and due to specification constraints in terms of the requirements of some protocols to process a packet of information within a certain period of time. [0011]
  • Another problem when integrating various heterogeneous systems is determining whether the data formats conform to a certain standard or a certain computer architecture. Components, such as computers and modules on a network, receive many packets of information. In order to determine if the component should process the information, the component must assess if the data format conforms with a certain standard or certain computer architecture. If the data format does not conform, the component should not process the data. Otherwise, the data format should be processed. Further, in order for a component to be able to process the data more quickly, the component must quickly determine whether the packets conforms. Otherwise, data might be lost. [0012]
  • Previous components have attempted to determine whether a packet should be processed is by examining the format of the packet. For example, if the component is looking for a packet which is formatted under the IP protocol, the component examines the packet to determine if the specific fields within the packet are within the bounds of a packet which is formatted under the IP protocol. If the packet is within bounds, the component processes the packet. Otherwise, the packet is ignored. [0013]
  • There are several problems with this scheme. First, the determination whether to process the packet is fairly intensive in terms of deciding whether specific fields in the packet conform to the IP protocol. Second, a component can still be “fooled” into believing that a packet does conform to a certain protocol simply because the packet falls within the bounds of that protocol. [0014]
  • SUMMARY OF THE INVENTION
  • In accordance with a first aspect of the invention, a method of reconfiguring the bus line without disturbing the on-going traffic on the bus is provided. The method includes the step of obtaining the non-changeable address of the component, which does not change during a bus reset, and the changeable address, which is assignable. The method further includes the step of placing the non-changeable address and changeable address in a look-up table. In addition, the network is reconfigured. The method further includes the step of determining the non-changeable address of the component. The look-up table is examined for the changeable address which corresponds to the non-changeable address. In addition, the component is assigned the changeable address which was placed in the look-up table prior to bus reset. [0015]
  • In accordance with a second aspect of the invention, a data processing system is provided. The data processing system includes a bus line and a module connected to the bus line. The module has a memory which contains a network identifier address. In addition, the data processing system includes a network manager connected to the bus line. The network manager has a memory device and a processor with the memory device having a look-up table containing the network identifier address and the changeable address. The processor has a comparator for comparing the network identifier address in the look-up table with the network identifier address in the module. [0016]
  • In accordance with a third aspect of the invention, a method for determining whether to process an incoming data stream to a component is provided. The method includes the step of determining the first packet identifier contained in the first memory device of the first component. The method further includes the step the packet is formed having a field containing the first packet identifier. In addition, the packet is sent onto the bus. The method further includes the step of determining by the second component the second packet identifier contained in the second memory device of the second component. Further, the second component receives the packet from the bus and parses through the fields to obtain the first packet identifier. The method further includes the step of comparing by the second component the parsed data with the second packet identifier, and processing the packet if the parsed data equals the second packet identifier. [0017]
  • In accordance with a fourth aspect of the invention, a data processing system is provided. The data processing system includes a bus line and two modules connected to the bus line. The first module has a first memory and a first processor, with the first memory containing a first packet identifier. The first processor accesses the first memory, obtaining the first packet identifier, and forms a data stream containing the first packet identifier. The second module has a second memory and a second processor, with the second memory containing a second packet identifier. The second processor has a comparator which compares the second packet identifier with the first packet identifier in the data stream. [0018]
  • In accordance with a fifth aspect of the invention, a method for sending a packet of data on a physical and link layer configured for packets which include memory architecture information in the packet is provided. The method includes the step of receiving the packet of information at the link layer from the network layer from the sender module. The method also includes the step of placing header information into the packet which does not include memory architecture information about the receiver module and which conforms to sending the information via channel based I/O. In addition, the packet is transported to the receiver module via the physical layer. [0019]
  • Accordingly, a primary object of the invention is to integrate the IP protocol with an [0020] IEEE 1394 high-speed bus.
  • Another object of the invention is to provide a means for inserting or removing nodes from a network at any level in the computer architecture without disturbing the on-going traffic on other nodes in the network. [0021]
  • Still another object of the invention is to transfer IP packets on the [0022] IEEE 1394 using channel based input/output.
  • Still yet another object of the invention is to efficiently and correctly determine whether to process incoming packets of data. [0023]
  • These and other objects, features, and advantages of the present invention are discussed or apparent in the following detailed description. [0024]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • A presently preferred embodiment of the present invention is described herein with reference to the drawings wherein: [0025]
  • FIG. 1 is an exemplary application of the Remote Access and Routing Server; [0026]
  • FIG. 2 is block diagram of an example of a network and devices comprising the Remote Access and Routing Server; [0027]
  • FIG. 3 is a block diagram of the Routing Device; [0028]
  • FIG. 4A is a block diagram of the Analog-Digital Call Terminating Device; [0029]
  • FIG. 4B is a block diagram of the Onboard T[0030] 1/E1 NIC, Board Manager Subsystem, DSP Subsystem and Shared Memory Subsystem of the Analog-Digital Call Terminating Device;
  • FIG. 4C is a block diagram of the Application Co-Processor and Shared Memory Controller of the Analog-Digital Call Terminating Device; [0031]
  • FIG. 4D is a block diagram of the Network Co-Processor Subsystem and Shared Memory Controller of the Analog-Digital Call Terminating Device; [0032]
  • FIG. 5 is a block diagram of the layered architecture of the network; [0033]
  • FIG. 6A is a state machine of the initialization of the network; [0034]
  • FIG. 6B is a flow chart of the initialization of the network corresponding to the state machine in FIG. 6A; [0035]
  • FIG. 7A is the format of the [0036] IEEE 1394 address;
  • FIG. 7B is the format of the self-identification packet used during initialization of the network; [0037]
  • FIG. 7C is the format for the IP packet encapsulated in the [0038] IEEE 1394 packet;
  • FIG. 7D is the format for the Get-Priority-Request; [0039]
  • FIG. 7E is the format for the Get-Priority-Response; [0040]
  • FIG. 8 is a block diagram of the network manager and module; and [0041]
  • FIG. 9 is the flow chart of the determination whether a packet is sent from a compatible module.[0042]
  • DETAILED DESCRIPTION OF THE PREFERRED AND ALTERNATIVE EMBODIMENTS OF THE INVENTION
  • FIG. 1 refers to a Remote Access and Routing Server (RARS) [0043] 10 for a data processing system. The Remote Access and Routing Server 10 integrates separate data communication entities via a public switched telephone network (PSTN) 22. The Remote Access and Routing Server 10 provides remote access for mobile users and for individuals at home offices, access nodes for Internet service providers, and dial-up local area network to local area network (LAN-to-LAN) routing capabilities for geographically disperse corporate enterprises. For example, FIG. 1 discloses one application of the Remote Access and Routing Server 10 which allows communication between corporate offices (central and branch offices) 12, 14, 16, homes and mobile users 18, 20. In a Corporate Office or Internet Service Provider 12, the Remote Access and Routing Server 10 is connected to a LAN 24 which is in turn connected to Data Terminating Equipment (DTE) 26, such as a computer, and to other devices 28, 30. The Internet Service Provider 12 is also connected to the Internet. Branch Offices 14 or Small Offices 16 may also be connected to the PSTN 22 via the Remote Access Routing Server 10. Further, Mobile users 20 and Home Office users 18 may connect to the PSTN 22 via a modem 32 or other data communication device.
  • The Remote Access and [0044] Routing Server 10 is comprised of a stackable architecture whereby various suboperations of the Remote Access and Routing Server 10 are separated at the device level into a Routing Device 34, a Digital Call Terminating Device 36, and Analog-Digital Call Terminating Device 38, allowing for expandability of the system based on a user's needs. The user may expand the system by simply adding slices to the stack in modular increments. In this manner, the user's system may grow to match the user's needs. The Remote Access and Routing Server 10 may also be combined into one system without separation at the device level. Referring to FIG. 2, the modules are connected via a network 40 with each device having its own power supply. The network allows inter-device communication in the system architecture. The Routing Device 34, also known as a Router, the Digital Call Terminating Device 36 and the Analog-Digital Call Terminating Device 38 are interconnected by the network 40, which is based upon the IEEE 1394 (Firewire). The Routing Device 34 is connected to a local area network (LAN) 24 which is in turn connected to a management station 42. Each device is connected to the network 40 via a node which has an address. A single device may have multiple nodes connected to the network 40. Further, each node attached to the network 40 has equal access to the data transfer services and share the available bandwidth with other nodes. Each of the components have connectors to the network 40 and can support a nominal 200 mb/s data rate. This application incorporates by reference U.S. Pat. No. 5,528,595 by inventors Walsh et al. entitled Modem Input/Output Signal Processing Techniques, which describes further aspects of the Analog-Digital Call Terminating Device and the Routing Device.
  • The [0045] Routing Device 34 contains the router engine, the {fraction (10/100)} Mbit Ethernet® interface 56 and a network interface 54, referring to FIG. 3. The Routing Device 34 is the center of system management. It provides the functionality to route all of the protocols supported by the Remote Access and Routing Server 10, is the simple network management protocol (SNMP) agent for management of the system, and allows for synchronous serial interfaces for connection to a LAN or a Wide Area Network (WAN).
  • An Edge Server Device is a device which is placed at the edge of the Local Area Network. The Edge Server Device is similar to the Routing Module in that it implements the network management components required as the primary network manager module on the network. The Remote Access and [0046] Routing Server 10 may be implemented using a Routing Device 34, an Edge Server Device or a combination of both devices.
  • The Digital [0047] Call Terminating Device 36 contains two T1/E1 Primary Rate Interface (PRI) connections, a network interface and the necessary hardware to terminate two spans worth of Integrated Services Digital Network (ISDN) originated calls. Depending on the country, either T1 or E1 is used. T1 is a standard for digital transmission in the United States, Canada, Hong Kong and Japan with a capacity of 1.544 M bits per second. E1 is a standard for digital transmission in Europe with a capacity of 2.048 M bits per second. Call traffic, following processing by the Digital Call Terminating Device 36, is passed to the Routing Device 34, which in turn communicates with a LAN 24.
  • The Analog-Digital [0048] Call Terminating Device 38 is a single-span T1/E1 access module designed to terminate calls of both analog and digital origin. This call traffic, following processing by the Analog-Digital Call Terminating Device 38, is passed to the Routing Device 34, which in turn communicates with a LAN 24. As shown in FIG. 2, a second Analog-Digital Call Terminating Device 39 can be integrated into the network 40. Therefore, the Analog-Digital Call Terminating Devices can be place in a star or daisy-chain topology with a second Analog-Digital Call Terminating Device acting as a repeater.
  • Referring to FIG. 3, a block diagram of the [0049] Routing Device 34 is shown. The central processing unit for the Routing Device 34 is a PowerPC™ 603 44 manufactured by IBM and Motorola and operating at 200 MHz. Because the printed circuit board will use a BGA package for the PowerPC™, and will contain a 2.5 Volt regulator, the printed circuit board can accommodate any PowerPC™ 603 or 604 device for adjustments as central processing unit capacity requirements change. The CPU chipset 48 is the IBM 82660 family consisting of the 82663 buffer and 82664 controller. This chipset 48 provides a glueless interface between the PowerPC™ 44, system memory (DRAM) 50, L2 cache 46, and the on-board PCI bus 52.
  • The [0050] L2 cache 46 consists of a single 16K×15 cache tag RAM with 4 32K×32 SSRAM devices to support the 512 KB of L2 cache. Further information on the IBM 82660 chipset 48 is in IBM27-82660 PowerPC™ to PCI Bridge and Memory Controller User's Manual, IBM, SC09-3026-00, 1996.
  • Main memory is 64 bits in width and consists of 16 MB of base memory plus field upgrade capacity to 144 MB. Base memory consists of eight 1 M×16 60 ns EDO DRAM devices soldered to the PCB for reliability and low cost. The PCB contains one 168-pin DIMM socket for memory expansion to 24, 32, 48, 80, or 144 MB total capacity using a 8, 16, 32, 64, or 128 MB DIMM respectively. Expansion memory is EDO for higher performance. Boot memory contains the CPU's primary bootstrap code to be executed upon hardware reset and consists of a software-locked segment of main storage flash. This allows primary bootstrap code to be field-updated in the unlikely event that becomes necessary. Storage memory (Bulk Flash [0051] 64) is erasable and supports the operational code and the application's file system. It consists of 4 MB of flash memory, with provision for larger factory-installed sizes. The printed circuit board supports four flash devices so that the board is populated with two 2 MB×8 devices for a total of 4 MB. The maximum configuration is 8 MB with 2 MB×8 devices. Memory is accessible as 32 64 KB blocks per device with boot memory and storage memory share the same physical device.
  • Storage memory consists of two Intel 28F016SC devices or two AMD 29F016 devices, with separate programming algorithms for the Intel or AMD devices. A command user interface serves as an interface between the CPU and the internal operation of the device. A valid command sequence written to the device initiates automatic execution of algorithms and timings for block erase, byte write, and lock-bit configuration operations. A block erase operation erases one of the 64 KB blocks typically within one second wherein each block may be erased 100,000 times. [0052]
  • The Non-Volatile Memory is an [0053] EEPROM 66 consisting of 512 bytes. The EEPROM 66 is written with the serial number and configuration data as part of the manufacturing process. Non-volatile memory consist of one NM93LC66 device with locations individually addressable (as 16-bit “registers”). The non-volatile device is accessed serially via a three-wire interface (select, clock, data); however, this serial access is under control of the PCISC2 FPGA, which makes the EEPROM 66 visible to software through a conventional register set.
  • Two UARTs (Universal Asynchronous Receiver Transmitter) [0054] 70 are supported in the Routing Device, as shown in FIG. 3. The first is a Console Port UART and is customer-accessible via a front-panel DB9 connector. The UART complies with the ANSI RS-232-E and ITU V.28 standards, is configured as a DTE interface, supports hardware RTS-CTS flow control, contains 16-byte transmit and receive FIFOs, and supports the required asynchronous communication rates of 9600, 19200, 38400, 57600, and 115200 Baud. The Console Port UART consists of one 16C550CFN device clocked at 3.6864 MHz and one Maxim MAX241 transceiver.
  • The second UART is a Debug UART. The debug port is terminated internal to the Routing Device via a header, is compliant with ANSI RS-232-E and ITU V.28 standards, is configured as a DTE interface, supports hardware RTS-CTS flow control, contains 16-byte transmit and receive FIFO's, and supports the required asynchronous communication rates of 9600, 19200, 38400, 57600, and 115200 Baud. The debug port consists of one 16C550CFN device clocked at 3.6865 MHz, and one Maxim MAX241 transceiver. The Real-[0055] Time Clock 68 is used to provide date (year, month, day of month, day of week) and time (hours, minutes, seconds, hundredths). In addition to time/date availability, the device features alarm time comparison, programmable clock tick interrupt generation, a small number of bits of general purpose non-volatile RAM, and automatic storage of the date/time of last power failure. The Real-Time Clock 68 consists of a DP8573A device with a dedicated 32.768 kHz crystal and capacitor backup power.
  • The [0056] Watchdog Timer 72 detects unusual operation by interrupting and then resetting the module if the timer 72 has been enabled but not been tickled in nominally 1.6 seconds. Upon reset, the watchdog timer is disabled, and requires an explicit software operation to enable it. Once enabled, software cannot disable it without allowing it to expire. Expiration of the watchdog causes a non-maskable interrupt (NMI) to occur. The Watchdog Timer 72 consist of one Maxim MAX697 supervisor device with assistance from the PCISC2 FPGA.
  • Voltage tolerance monitoring is provided on two critical voltages (+5.0 Volts, +3.3 Volts). Monitoring of +5.0 Volts is provided by the power supply unit. Monitoring of the Power supply unit generated +5.0 and +3.3 Volts is performed by on-board Routing Device circuitry, as discussed subsequently. If any voltage becomes out-of-tolerance, the board will be placed in a reset condition and held until the out-of-tolerance condition passes. The +5.0 and +3.3 voltages are monitored on-board so as to generate a proper power-up reset signal to the board. The +2.5 Volt signal, generated on-board, is not monitored, because it is derived from a high-MTBF regulator, and because a reset signal is more accurately derived by monitoring that regulator's input voltage (+5.0/+3.3). On-board voltage monitoring will be performed by the voltage detection subsystem of the Maxim MAX 697 supervisor device. [0057]
  • The [0058] Routing Device 34 is equipped with a reset button 76 which causes an immediate hardware reset of the entire module. This is required for debugging and catastrophic error recovery under otherwise unanticipated conditions. The button 76 drives the Maxim MAX 697 supervisor device, which is responsible for reset generation and timing.
  • A digital thermometer-thermostat device is used to sense on-board temperature. The device's alarm setpoint is programmed at time of board manufacture so that an alarm is generated and routed to a status register when this setpoint is exceeded. This setpoint is the “hard” setpoint beyond which proper operation cannot be guaranteed. The temperature sensor device is accessed serially via a three-wire interface (select, clock, data); however, this serial access is under control of the [0059] PCISC2 FPGA 58, which makes the device visible to software through a conventional register set. In addition to this means of measuring on-board temperature, the power supply unit will be capable of detecting an over-temperature condition within the power supply unit itself The basic user interface consists of an LCD (liquid crystal display) panel 74, six buttons 76, and two LEDs (unit power and unit status) 74. The LCD 74 and buttons 76 reside on a subassembly which attaches to the main PCB via a cable and connector. The LCD 74 and button peripherals 76 are connected to the PCISC2 FPGA 58.
  • The [0060] PCI Bus 52 is provided by the IBM82660 chipset 48. It operates at 3.3 Volts and is compliant with PCI Specification Revision 2.0. The PCI Bus 52, like the rest of the Routing Device 34, is operated in big endian (also known as non-Intel) byte-order mode. Big endian is a format for storage or transmission of binary data in which the most significant byte comes first. The reverse convention is called little endian. PCI device configuration registers are required to operate in little endian mode for PCI compliance; therefore, software reorders bytes only when reading PCI device configuration registers. Two single-width PMC Connector slots 60 are provided for future expansion.
  • PCI based systems require a set of bus support functions (referred to as Central Resource Functions) that are usually not provided by a PCI Bridge such as the [0061] IBM82660 48. The Central Resource Functions in this design include a central arbiter, interrupt controller, and miscellaneous logic for individual device selection during PCI configuration cycles. These functions are provided in the PCISC2 FPGA device 58. In addition to the Central Resource Functions, this device 58 provides a bridge to a slower-speed eight-bit bus (X-bus) 62 which supports all non-PCI peripherals (flash memory 64, UARTs 70 etc.). The PCISC2 FPGA 58 provides bus buffering and control, address decoding, and chip select generation for X-Bus peripherals. The Ethernet® Interface 56 connects to the Ethernet® LAN subsystem. The Network Interface 54 connects to the IEEE 1394 . The Network Interface 54 contains the =5 physical layer interfaces (PHYs), link layer controller (LLC), and the power subsystem. The Network Interface 54 also programmed to communicate with the PowerPC™ 44 whereby the Network Interface 54 indicates to the PowerPC™ 44 when a packet has been received or sent. Software code, which is resident in System Memory 50, is executed by the PowerPC™ 44 to control the operation of the Network Interface 54. The software code is discussed subsequently in FIGS. 5-9.
  • The Edge Server Device is designed based on industry standard personal computer architecture using commercially available components. Intel®V Pentium Pro® processor-based mother boards are used. Further the operating system is Windows NT 4.0. Therefore the Edge Server device uses the native remote access service for Windows NT™ to provide the functionality of a dialup router. The Edgeserver Module originates and terminates calls from the Analog-Digital [0062] Call Terminating Device 38 and the Digital Call Terminating Device 36. Therefore, the Edgeserver Module is able to answer and authenticate inbound calls and route them onto a corporate LAN using the IP protocol. The power subsystem, as shown in block 54 of FIG. 3 is integrated into the Edge Server device in order to power the PHYs and also power the network power bus. Further, the Edge Server device includes a Network Interface which programmed to communicate with the microprocessor whereby the Network Interface 54 indicates to the microprocessor when a packet has been received or sent. Software code, which is resident in System Memory 50, is executed by the PowerPC™ 44 to control the operation of the Network Interface 54. The software code is discussed subsequently in FIGS. 5-9.
  • Referring to FIG. 4A, a block diagram of the Analog-Digital [0063] Call Terminating Device 38 is shown. The Onboard T1/E1 NIC (Network Interface Card) 78 provides an interface between the T1/E1 telephone lines and the remainder of the Analog-Digital Call Terminating Device 38. The Board Manager Subsystem 80 executes the software which controls the calls to and from the T1/E1 line. The Board Manager Subsystem 80, when receiving data from the T1/E1 line, sends the data to the DSP Subsystem 82 which contains 24 modems. The DSP Subsystem 82 may be expanded to include 30 modems. Subsequently, the Board Manager Subsystem 80 sends the data to the 4-Port Shared Memory Subsystem 84. The Network Co-Processor Subsystem 88 then takes the data in the Shared Memory Subsystem 84 and sends it onto the Network 40 for routing by the Routing Device 34. When sending data onto the T1/E1 line, the process is reversed in that the data is taken from the Shared Memory Subsystem 84, sent to the DSP Subsystem 82, through the Onboard T1/E1 NIC 78, and then to the T1/E1 line.
  • The various subcomponents of the Analog-Digital [0064] Call Terminating Device 38 communicate with each other via data buses, as shown in FIG. 4A. Further, there is a local time division multiplex line connecting the DSP Subsystem 82 with the Onboard T1/E1 NIC 78, as discussed in further detail subsequently.
  • FIG. 4B shows a more detailed block diagram of the Onboard T[0065] 1/E1 NIC 78, Board Manager Subsystem 80, Shared Memory Subsystem 84 and DSP Subsystem 82 of the Analog-Digital Call Terminating Device 38. The passive circuitry 90 contains transformers and protection devices to protect from any spikes in the voltage on the T1/E1 line. The passive circuitry 90 also matches the impedance to the T1/E1 line. The Line Interface Unit (LIU) 92, part number LXT361, is the physical layer interface, acting as a line driver/receiver. The Framer 94 handles all of the T1/E1 framing and transmit framing tasks. The Time-Slot Interchanger (TSI) 96 allows the time slots to be remapped when sent back onto the T1/E1 line. The 64 channel Local Time Division Multiplex (TDM) bus is connected between the Time-Slot Interchanger 96 and the DSP 108. The Board Manager PowerPC™ model number 403GCX-66 also communicates with memory devices, FLASH 104 and DRAM 106. The Board Manager Address and Data Bus 107 connects the Board Manager 124 with the DSP Subsystem 82, the Shared Memory System 84 and the Onboard T1/E1 (NIC) 78, as indicated by the data paths in FIG. 4A (81, 83, 79).
  • FIG. 4C shows a more detailed block diagram of the [0066] Application Co-Processor 126, PowerPC™ model number 403GCX-66, in combination with the Shared Memory Controller 128 and SRAM 130 and DRAM 132 memory devices. The Application Co-Processor Address and Data Bus 131 connects the Application Co-Processor 126 with the Shared Memory Controller 128, the SRAM 130 and DRAM 132, as indicated by the data path in FIG. 4A (85).
  • FIG. 4D shows a block diagram of the [0067] Network Co-Processor 134, PowerPC™ model number 403GCX-66. The Network Co-Processor 134 is the interface for the Analog-Digital Call Terminating Device 38 to the IEEE 1394 . The System Controller FPGA 138 is for monitoring the primary power supply and the backup power supply, allowing the Network Co-Processor 134 to control the local power supply. The Network Interface 150, similar to the Network Interface 54 for the Routing Device 34, connects to the IEEE 1394 . The Network Interface 150 contains the physical layer interfaces (PHYs), link layer controller (LLC), and the power subsystem. The Network Interface 150 is also programmed to communicate with the Network Co-Processor 134 whereby the Network Interface 150 indicates to the Network Co-Processor 134 when a packet has been received-or sent. Software code, which is resident in DRAM (Dynamic Random Access Memory) 136, is executed by the Network Co-Processor 134 to control the operation of the Network Interface 150. The software code is discussed subsequently in FIGS. 5-9. The Network Co-Processor Address and Data Bus 135 connects the Network Co-Processor 134 with the Shared Memory Controller 128, as indicated by the data path in FIG. 4A (87).
  • Referring to FIG. 5, a system using a layered architecture model is shown with the [0068] IEEE 1394 high speed serial bus 40 providing the physical and link layer functions and the TCP/ IP 152, 154 serving as the transport layer. The Bus Management Protocol (BMP) 156 is responsible for management of the network, such as the selection of the network manager and the optimization of the IEEE 1394 bus. The User Datagram Protocol (UDP) 158 is also a transport layer protocol providing connectionless mode protocol.
  • The network uses the IP protocol as the transport protocol for data transfers over the [0069] IEEE 1394 bus 40. The IP protocol uses logical addresses to identify each node in the network with the IP addresses as 32-bit values depicted in dotted-decimal fashion (e.g., 149.112.234.1 for one application and 149.112.234.2 for another application). An application that needs to transfer data to another application will use the IP address to direct the data transfer (e.g., use the IP address 149.112.234.2 to transfer data to the second application). Each node on the network is configured with an IP address within the network range that uniquely identifies the node. For a network supporting up to 63 nodes, it is sufficient to use a single Class C IP network address. The network can support IP address assignment to the individual modules in the network. Further, for a single IP network, the IP addresses are assigned such that all nodes are on the same IP network and no two nodes have the same IP address. The IP addresses are assigned to the nodes through the Net-Topology-Update packet, which is described subsequently.
  • On the other hand, [0070] IEEE 1394 uses the physical address of the destination node. FIG. 3A is the format of the IEEE 1394 physical layer address. It uses a 16-bit wide address formed by the concatenation of the 10-bit bus number and the 6-bit node number. The network may support the bridging of multiple IEEE 1394 buses with the differing buses distinguished by the 10-bit bus number. In an embodiment which uses a single IEEE 1394 bus configuration, the first 10-bits of the IEEE 1394 address need not change across bus resets. The 6-bit node number results in a total address space of 64 addresses per IEEE 1394 bus. Address FFFF16 is used as the broadcast address for the bus, thereby resulting in an effective address space of 63 addresses. The 6-bit node address for the IEEE 1394 is generated dynamically by the 1394 bus during bus initialization, resulting in a potentially different IEEE 1394 address for the same node across bus resets. A bus reset occurs whenever there is a reconfiguration of the network (i.e. whenever a node is inserted or removed from the network). Therefore, the IEEE 1394 is unlike other physical layers in that it is not programmed with an address for the node which is constant when the system is reconfigured.
  • In order to transfer data over the [0071] IEEE 1394 physical layer, a conversion between the IP address to the physical address must be performed. However, this conversion cannot be accomplished through prior methods such as an Address Resolution Protocol (ARP) since most ARP's are not designed to support dynamic changing of the hardware address (which the IEEE 1394 does) and since the ARP is inefficient sending a broadcast request. This conversion may be accomplished through an address resolution scheme whereby a look-up table is used to map the IP address to the appropriate IEEE 1394 address. Though implemented using IP and IEEE 1394 addresses, other protocols may be substituted for the IP or IEEE 1394 protocols when implementing the address resolution scheme using a look-up table. Further, the address resolution scheme may be implemented at any layer of the computer architecture (e.g., physical, data link, network, transport, session, presentation, or application layers).
  • FIG. 6A is a state machine and FIG. 6B is a flow chart of the initialization process of the network with the preferred software listing below. The software, which is attached as an Appendix and incorporated herein by reference, is written in the “C” programming language and is executed on the IBM/Motorola PowerPC™ microprocessor. The software implements the procedures disclosed in FIGS. 5, 6A, [0072] 6B, 8, and 9. The reader's attention is directed to the notice regarding copyright set forth at the beginning of this document.
  • Referring to FIG. 6A, the [0073] Bus Reset state 162 is entered when a system power up occurs or when a node is inserted in or removed from the network. The main function of this state is to ensure that the reset signal is propagated to all the nodes so that all IEEE 1394 nodes enter the reset phase. The Bus Reset state 162 may be entered at any phase of network operation in order to maintain maximum flexibility of the system, as denoted by the arrows in FIG. 6A. In the Bus Reset state 162, the IEEE 1394 physical layer chip detects the insertion or removal of a node and sends a reset signal onto all of the ports for a period of time to ensure that the entire bus sees the signal. In other words, a bus reset occurs whenever the network is reconfigured by insertion or removal of a node. The 1394 link controller also sends an interrupt to indicate the entry into Bus Reset 172, as shown in FIG. 6B. The previous address resolution table (based on the Net-Topology-Update discussed subsequently) and any output packets buffered in the 1394 driver are flushed. All IP traffic on the IEEE 1394 interface is stopped and resumed only upon entering the Data Transfer phase. In keeping with the ability to insert or remove a node from the network without affecting data traffic between other nodes in the network, existing TCP connections between nodes, other than the node being inserted/removed, are not reset upon entering the Bus Reset state. Further, the TCP/IP protocol is not informed of any change in the state of the network and the applications using the network are not notified of the bus reset event. The TCP/IP protocol itself is not affected in any way and data transfers from the application to the protocol stack continue as before. All output data on a TCP session will be buffered by the protocol stack during the initialization phase until the flow control window closes 174. At this point, the application will not be able to transfer more data to the protocol stack. When the Data Transfer phase is entered, the flow control window will be opened again, allowing for data transfers to continue on the session. For data which is input, upon entering the Bus Reset phase, input data buffered by the TCP session will continue to be transferred to the application. Once all buffered input data has been transferred to the application, no more data will be transferred to the application until the Data Transfer phase is entered.
  • Next, the [0074] tree identify state 164 results in the ordering of the IEEE 1394 bus into a logical tree with one node as the root 176. Each node waits to receive a signal from a “child” node, which is of lower priority. If the node receives a “child” signal, then it sends a message to its “parent” indicating that the node is a “child” and that the node has a “child” as well. In this manner, the logical tree is formed so that all the nodes know their place in the tree, from the lowest leaf to the highest root. The root node, which has the highest natural priority for access to the IEEE 1394 bus, is selected via an arbitration process in the case of multiple root-capable nodes.
  • Each node forgets its [0075] IEEE 1394 address it had prior to the bus reset. The lowest leaf then gets the node address of zero. The next highest node receives the node address of one, and so on until the root node receives the highest IEEE 1394 node address. If a module is removed or inserted, the tree structure may be disrupted so that the IEEE 1394 addresses, which are based on the tree structure, may be different across bus resets. Therefore, the IEEE 1394 addresses change dynamically since software is not able to guarantee that a node will have a certain IEEE 1394 address across a bus reset.
  • After the logical tree is formed, the self-[0076] identify phase 166 is entered. Each node on the network acquires a new 1394 physical address and advertises it to the network by broadcasting the self-identification packet 176. The format of the self-identification packet is referred to in FIG. 7B. The first two bits (10) indicate that the format is a self-identification packet identifier. The phy_ID is the physical node identifier of the sender of the packet. Other items in the self-identification packet include: L (active Link transaction layer); gap_cnt (current value of node's gap count); sp (speed capabilities); del (worst case repeater delay); c (node is contender for manager of the network, which is discussed subsequently); pwr (power consumption); p0, p1, p2 (port status); i (indicates if node initiated reset); and m (indicates if a second self-identification packet will be sent).
  • The self-identification packets are essentially broadcast on the network with each node building a table of self-identification packets to determine the 1394 address of the [0077] root node 34. The root node has the highest 1394 address so that, upon completion of the self identify phase 166, all nodes on the network know the 1394 address of the root node 176.
  • After the self-[0078] identify phase 166, the root node selects the node which will be the manager of the network based on the self-identification packets during the Manager identify phase 168. The root node searches the list of self-identification packets to determine the manager capable nodes in the system. If there are no manager capable nodes, the root node detects an error condition. If the root node determines that there is at least one manager capable node, the root node broadcasts a Get-Priority-Request message 178 to obtain the capability, priority, current IEEE 1394 address and the network identifier (NID) of each node.
  • Referring to FIG. 7D, the Get-Priority-Request is sent to obtain the network identifier and the priority of all the nodes on the network. The Get-Priority-Request consists of: total_length (16 bits) which is the total length of the message in octets; message_code (16 bits) which is set to one (1) for Get-Priority-Request; source ID (16 bits) which is the [0079] IEEE 1394 node ID of the sending node and is the concatenation of the 10-bit source bus ID and 6-bit physical address (as shown in FIG. 7A); and reserved (16 bits) which is set to zero(0).
  • The network identifier is a unique 32-bit network identifier which is hardwired into each node during manufacture in the factory. The nodes then send Get-Priority-[0080] Responses 178. Based on the Get-Priority-Response of each node to the Get-Priority-Request message, the root node selects the manager of the network. Further, the Get-Priority-Response is used to maintain consistency of IP addresses across bus resets, as discussed subsequently.
  • If the root node itself is selected as the manager of the network, the initialization continues [0081] 180. However, if a node other than the root node is selected as the manager of the network, the root node then broadcasts a message to enable root connection to the node which was selected as the manager of the network upon the next bus reset 182. The root node also transmits the look-up table of addresses, which is discussed subsequently, to the node which was selected as the manager of the network 182. The current root node then initiates a second bus reset so that the new configuration will take effect. Upon the second bus reset, the node which was already selected as the manager of the network, upon reset, will also be chosen as the root node so that the initialization continues.
  • The manager of the [0082] network 190 then assigns the IP addresses to the nodes 184. In order to support the hot-swap capability, the assignment of IP addresses must be done such that nodes that were assigned IP addresses before this bus reset (i.e. the bus reset that caused the manager of the network to be selected) must be assigned the same IP address. Otherwise, whenever a node is inserted or removed from the network, the IP interface must be brought down with all of the IP data structures being reinitialized. Because of this hot-swap capability, the IP interface is left in tact with the IP still “believing” that it is talking to the physical and link layers as before the insertion or removal of the node from the network.
  • In order to accomplish this hot-swap feature, the manager of the [0083] network 190 uses a look-up table 198 in a memory device 196, such as a Random Access Memory (RAM) device. The look-up table 198 contains the network identifier (NID) and the corresponding IP address and IEEE 1394 address prior to the bus reset. Besides being unique for each node, the network identifier never changes for the lifetime of the node. Thus, while the IEEE 1394 node address as well as the IP node address may change upon bus reset, the network identifier does not. Therefore, the network identifier acts as a permanent unique node identifier, and the 32-bit network identifier space is sufficiently large enough such that it may be segmented-to allow for various pieces of information specific to the node, such as module type information. The 32-bit network identifier does not have any specific formatting requirements other than the requirement that it be unique. Further, the NED 212 is programmed into the node using a ROM 210, as shown in FIG. 8, or other means which will allow for the network identifier address to be constant across a bus reset. The network identifier, while programmed at the factory, may also be programmed by the user. In addition, the network identifier may be changeable during periods of operation but other than during an insertion or removal of a node from the network; however, as stated previously, the network identifier must be constant across an insertion or removal of a node from the network. Other means may be employed which allows for the node to maintain a unique node identifier between bus resets. For example, the network identifier can be stored in flash memory or some other memory which will be constant across a bus reset. Or, the network identifier can be taken from other sources in the module, such as the serial number which is programmed into the module at the time of manufacture.
  • Based on a look-up table [0084] 198, referred to in FIG. 8, and based on the Get-Priority-Responses (which contains the network identifier for the specific node), the manager of the network determines the previous IP address for a specific network identifier. The Get-Priority-Response is sent in response by a node to a Get-Priority-Request message. This message is sent to the address specified in the Get-Priority-Request message in the “source_ID” field, as shown in FIG. 7D. Referring to FIG. 7E, the Get-Priority-Response consists of: total_length (16 bits) which is the total length of the message in octets; message code (16 bits) which is set to two (2) for Get-Priority-Response; source_ID (16 bits) which specifies the IEEE 1394 node ID of the sending node and is a concatenation of the 10-bit source bus ID and the 6-bit IEEE 1394 physical address (as shown in FIG. 7A); priority_level (8 bits) which is the priority level of this node in the range of 0-255 with 255 being the highest priority; capability_flags (8 bits) which is the bit flags indicating the management capabilities of this contender; and source_PNID (32 bits) which is the network identifier for the node (as discussed previously).
  • The manager builds a temporary look-up table which maps the current IP addresses for the specific network identifiers. The manager then uses its [0085] comparator 194 in it processor 192 to compare the values in the historical look-up table 194 which contains the network identifier and the previous IP and IEEE addresses with the Get-Priority-Responses. The processor 192 then determines the previous IP address for the specific network identifier. The network manager 190 then assigns the previous IP address before the bus reset to the node for the specific network identifier. After all of the nodes are assigned their previous IP addresses, a new look-up table is created, deleting the nodes which were removed and adding the IP and IEEE 1394 addresses for the nodes that were inserted. Thus, based on the look-up table, each node which was in operation prior to bus reset will be assigned the same IP address as before the bus reset.
  • After the IP and [0086] IEEE 1394 addresses are determined, the gap count, which is a number that is used by the IEEE 1394 physical layer chip in the calculation of the time between packet gaps, is optimized 186. The gap count is a factor of the number of nodes connected to the bus, and is set to the maximum value of 3F16 upon bus reset. The manager optimizes the gap count by calculating a new gap count for the IEEE 1394 bus topology, and then broadcasts the new gap count to all of the nodes connected to the bus.
  • The final phase of the state diagram in FIG. 6B is the [0087] Data Transfer State 170 and is entered after completion of the Manager Identify state 168. The Manager Identify state 168 is completed when the results of the IP address assignment and the IEEE 1394 addresses are broadcast to all nodes 188, which is the Net-Topology-Update. Upon receipt of the results of the address assignment, a node resumes transfer of IP packets on the IEEE 1394 interface. Further, all nodes remain in the Data Transfer phase until a bus reset is caused on the network.
  • In an alternative embodiment, the address resolution scheme can prevent disturbances in the on-going traffic in both higher and lower layers in the computer architecture. In the previous embodiment, the on-going traffic was not disturbed at the IP layer and above. Further, due to limitations in the [0088] IEEE 1394 specification, which only allows for dynamic addressing, the addresses for the IEEE 1394 cannot be maintained with certainty across bus resets. However, for protocols which allow for assignment of addresses at the physical and link layers, rather than dynamic generation or programmed addresses during manufacture, the on-going traffic at the link layer and below can be maintained due to continuity of addresses across bus resets. During a bus reset at the physical layer, the data on the physical layer bus may be corrupted due to the insertion/removal of a new node (which caused the bus reset). However, data on the drivers, which were previously formatted but not yet put out on the bus, can be maintained through the address resolution scheme. Therefore, using both the network identifiers and the look-up table which contains the previous addresses for the nodes, the same addresses can be assigned so that traffic can remain undisturbed across a bus reset. Further, the address resolution scheme can also be used in swapping any connection at any layer or hierarchy of the computer architecture, from the physical layer to the application layer. Moreover, the process and apparatus can be used with any computer architecture to protect disturbances at any node within the computer architecture.
  • In this manner, different modules may be inserted or removed from the network without disturbing the on-going traffic on the system. For example, referring to FIG. 2, nodes such as the [0089] Router device 34, Digital Call Terminating Device 36, and Analog-Digital Call Terminating Device 38 can be inserted or removed from the network without disturbing the on-going traffic. Ordinarily, the Router Device 34 is chosen as the manager of the network, so that the Router Device 34 will contain the look-up table which is used to assign the same IP addresses for other devices such as the Digital Call Terminating Device 36 or the Analog-Digital Call Terminating Device 38 as before the insertion or removal of another module on the network 40.
  • A second aspect which is incompatible between the [0090] IEEE 1394 and the IP are the protocols between the sender and receiver. The IEEE 1394 assumes that the sender or receiver is not an “intelligent” device and is not intended for channel based I/O. In other words, the IEEE 1394 link layer specification includes a memory read/write data transfer scheme, where the requesting node specifies the memory location of the read/write action in the destination node. Therefore, the IEEE 1394 protocol includes information on the sender's or receiver's memory architecture, such as the specific location in memory for the read or write. IP, on the other hand, is intended for channel based I/O and assumes that the sender or receiver is sufficiently intelligent to process the data without memory architecture being included in the packet. To reconcile this difference, the data transfer scheme as specified by the IEEE 1394 is modified to transfer IP packets over IEEE 1394 . The network transfers the packets using addressed data writes to transfer data. Addressed data transfers allow for more flexibility in the handling of the data by the receiving node, whose memory architecture can be very different from the sending node. Further, the sending node need not be aware of the memory architecture of the receiver which allows for greater scaleability of the system.
  • As referred to in FIG. 7C, the Common Packet Header (CPH) contains the information that the [0091] IEEE 1394 examines to determine the routing of the packet. The IEEE 1394 does not have a field in which to determine what type of protocol is encapsulated in its packet, i.e. what type of payload it is carrying. Further, the common packet header of the IEEE 1394 ordinarily contains the destination offset field in order to comply with the IEEE 1394's requirement of including memory architecture information.
  • Modification of the [0092] IEEE 1394 packet header is done to integrate the IEEE 1394 with the IP protocol. In particular, the IEEE 1394, through its specification, has a field in the header which has memory information (i.e. where the packet is to be written to or read from) of the target of the packet of data. However, to integrate the two protocols, the field is modified, putting in the “protocol_type” field in the packet header. This is done so that the module that receives the packet will examine the field with the protocol type and determine from where the packet was sent from (i.e. the IP or the BMP). In this manner, the receiver module determines what type of data it is carrying via the “protocol_type” field in the packet header as shown in FIG. 7C. The protocol_type field is 16 bits and specifies the protocol of the packet encapsulated in the data field. For the architecture disclosed in FIG. 5, the protocol_type field values are either BMP (Bus Management Protocol) or IP (Internet Protocol) to signify to the IEEE 1394 that the data field encapsulated in the IEEE 1394 packet either corresponds to the BMP protocol or to the IP protocol. The following protocols are defined: BMP (010116); IP (080016). In this manner, the protocol of the packet, according to the configuration of the system as shown in FIG. 5, can be identified to the IEEE 1394 indicating the type of data contained in the data field. The protocol_type field may be modified based on the configuration of the system to indicate the type of packet encapsulated in the field. Thus, the IEEE 1394 memory read write function is modified so that, instead of parsing the fields to determine where to write to or read from, the function examines the protocol_type to determine where the packet is from and thereafter how to process the packet.
  • Other fields in the Common Packet Header include: destination_ID which specifies the [0093] IEEE 1394 node ID of the receiving node (as discussed above with reference to FIG. 7A); t1 which is the transaction label (unused and set to zero); rt which is the retry code (the network does not use the IEEE 1394 capability to resend data if the data that was previously send was not received properly; therefore, the retry code is set to zero); tcode which is the transaction code specifying the packet format and type of transaction to be performed (the IEEE 1394 receivers use the tcode to determine the 1394 header format); pri which is the priority (this field is unused and set to zero); source ID which specifies the IEEE 1394 node ID of the sending node (with the format of FIG. 7A); protocol type which specifies the protocol of the packet encapsulated in the data field (two protocols are defined, one for the BMP and one for IP); pn_version which is the network version number; company_ID which is discussed subsequently; data length which is the total length of the data field in the number of bytes; extended_tcode is the extended transaction code which is set to zero; header CRC which is the computed cyclic redundancy check for the CPH portion of the packet; data field which is the data to be transferred in the packet; and data_CRC which is the computed cyclic redundancy check, using the same algorithm used to compute the header_CRC.
  • Further, if the IP packet is not a multiple of 4, then the data field is padded by one or more zero bytes to align the data field end on a quadlet boundary. The IP packet is then followed by the cyclic redundancy check (CRC) which checks the integrity of the data field. [0094]
  • The company_ID indicates the specific company that manufactured the network and is used as a packet identifier or a data stream identifier (i.e. identifying the origin of the packet or the data stream). This is added in the common packet header in order to add robustness to the system. The company_ID is used (1) in terms of assigning addresses and (2) in terms of determining whether to process a packet. First, after a node is inserted or removed from the network, the IP addresses are assigned, during the [0095] Manager Identify phase 168, the same IP addresses prior to insertion or removal of the node. During the Manager Identify phase 168, the node sends a Get-Priority-Response in response to a Get-Priority-Request. Encapsulated in the Get-Priority-Response is the common packet header (CPH) as shown in FIG. 7C. The common packet header contains the company_ID which is sent by the module 204 sending the Get-Priority-Response to the Manager of the Network 190. The module 204 accesses ROM 210 to retrieve the company_ID 202 to formulate the common packet header. The Manager of the Network 190, when assigning IP addresses during the Manger Identify phase 168, determines whether a node is network compatible, based on the company_ID in the Get-Priority-Response. The Manager of the Network 190 uses the comparator 194 in the processor 192 to determine whether the company_ID field in the packet header is the same as the value stored in the ROM 200 of the Network Manager 190. If the values are not the same, the Manager of the Network 190 does not assign an IP address to the node of the module which sent the Get-Priority-Response which did not contain the company_ID in the common packet header. In this manner, non-network modules do not interact with the higher layers of the computer architecture.
  • Second, it is important that non-network packets are discarded by the network with as little effect on the network as possible. In order to do this, each packet includes a specific manufacture identifier (company_ID) in the common packet header so that if any packet does not contain a valid company identifier field, it will be discarded by the receiver. Each module which is connected to the network via [0096] nodes 214 determines what the company_ID is. The sender module contains the company_ID 202 in its ROM 200. FIG. 8 shows that the sender module is the network manager 190. The sender module may be any network compatible module, including the network manager 190. The sender module retrieves the company_ID and formats the packet header with the company_ID in conformance with FIG. 7C. The sender module then sends the packet onto the bus. A module 204 receives the packet and determines whether to process the packet based on the field allocated to the company_ID. The module performs this receiving of the packet at the link layer. The company_ID 202 is hardwired into the module via a Read Only Memory (ROM) 210. Alternatively, the company_ID is sent to all modules during any reset to the bus so that the company_ID can reside in volatile memory.
  • Referring to FIG. 9, the module which receives the packet first determines the company_ID for [0097] compatible modules 216. When the module receives a packet from the bus 218, the module uses its processor 206 searches the packet header 220. The module then compares the packet with the company_ID using the comparator 208. If the header contains the company_ID in the correct portion of the header 222, the module processes the packet 224. Otherwise, the packet is not processed. Thus, if a non-network compatible device is connected to the system, modules which are not designed to process the packet may refuse the packet at the link layer and thereby not interfere with the module's processing.
  • From the foregoing detailed description, it will be appreciated that numerous changes and modifications can be made to the hardware and software aspects of the invention without departure from the true spirit and scope of the invention. For example, the present invention is not dependent on any specific type of computer architecture or type of protocol. This true spirit and scope of the invention is defined by the appended claims, to be interpreted in light of the foregoing specification. [0098]
    Figure US20020035623A1-20020321-P00001
    Figure US20020035623A1-20020321-P00002
    Figure US20020035623A1-20020321-P00003
    Figure US20020035623A1-20020321-P00004
    Figure US20020035623A1-20020321-P00005
    Figure US20020035623A1-20020321-P00006
    Figure US20020035623A1-20020321-P00007
    Figure US20020035623A1-20020321-P00008
    Figure US20020035623A1-20020321-P00009
    Figure US20020035623A1-20020321-P00010
    Figure US20020035623A1-20020321-P00011
    Figure US20020035623A1-20020321-P00012
    Figure US20020035623A1-20020321-P00013
    Figure US20020035623A1-20020321-P00014
    Figure US20020035623A1-20020321-P00015
    Figure US20020035623A1-20020321-P00016
    Figure US20020035623A1-20020321-P00017
    Figure US20020035623A1-20020321-P00018
    Figure US20020035623A1-20020321-P00019
    Figure US20020035623A1-20020321-P00020
    Figure US20020035623A1-20020321-P00021
    Figure US20020035623A1-20020321-P00022
    Figure US20020035623A1-20020321-P00023
    Figure US20020035623A1-20020321-P00024
    Figure US20020035623A1-20020321-P00025
    Figure US20020035623A1-20020321-P00026
    Figure US20020035623A1-20020321-P00027
    Figure US20020035623A1-20020321-P00028
    Figure US20020035623A1-20020321-P00029
    Figure US20020035623A1-20020321-P00030
    Figure US20020035623A1-20020321-P00031
    Figure US20020035623A1-20020321-P00032
    Figure US20020035623A1-20020321-P00033
    Figure US20020035623A1-20020321-P00034
    Figure US20020035623A1-20020321-P00035
    Figure US20020035623A1-20020321-P00036
    Figure US20020035623A1-20020321-P00037
    Figure US20020035623A1-20020321-P00038
    Figure US20020035623A1-20020321-P00039
    Figure US20020035623A1-20020321-P00040
    Figure US20020035623A1-20020321-P00041
    Figure US20020035623A1-20020321-P00042
    Figure US20020035623A1-20020321-P00043
    Figure US20020035623A1-20020321-P00044
    Figure US20020035623A1-20020321-P00045
    Figure US20020035623A1-20020321-P00046
    Figure US20020035623A1-20020321-P00047
    Figure US20020035623A1-20020321-P00048
    Figure US20020035623A1-20020321-P00049
    Figure US20020035623A1-20020321-P00050
    Figure US20020035623A1-20020321-P00051
    Figure US20020035623A1-20020321-P00052
    Figure US20020035623A1-20020321-P00053
    Figure US20020035623A1-20020321-P00054
    Figure US20020035623A1-20020321-P00055
    Figure US20020035623A1-20020321-P00056
    Figure US20020035623A1-20020321-P00057
    Figure US20020035623A1-20020321-P00058
    Figure US20020035623A1-20020321-P00059
    Figure US20020035623A1-20020321-P00060
    Figure US20020035623A1-20020321-P00061
    Figure US20020035623A1-20020321-P00062
    Figure US20020035623A1-20020321-P00063
    Figure US20020035623A1-20020321-P00064
    Figure US20020035623A1-20020321-P00065
    Figure US20020035623A1-20020321-P00066
    Figure US20020035623A1-20020321-P00067
    Figure US20020035623A1-20020321-P00068
    Figure US20020035623A1-20020321-P00069
    Figure US20020035623A1-20020321-P00070
    Figure US20020035623A1-20020321-P00071
    Figure US20020035623A1-20020321-P00072
    Figure US20020035623A1-20020321-P00073
    Figure US20020035623A1-20020321-P00074
    Figure US20020035623A1-20020321-P00075
    Figure US20020035623A1-20020321-P00076
    Figure US20020035623A1-20020321-P00077
    Figure US20020035623A1-20020321-P00078
    Figure US20020035623A1-20020321-P00079
    Figure US20020035623A1-20020321-P00080
    Figure US20020035623A1-20020321-P00081
    Figure US20020035623A1-20020321-P00082
    Figure US20020035623A1-20020321-P00083
    Figure US20020035623A1-20020321-P00084
    Figure US20020035623A1-20020321-P00085
    Figure US20020035623A1-20020321-P00086
    Figure US20020035623A1-20020321-P00087
    Figure US20020035623A1-20020321-P00088
    Figure US20020035623A1-20020321-P00089
    Figure US20020035623A1-20020321-P00090
    Figure US20020035623A1-20020321-P00091
    Figure US20020035623A1-20020321-P00092
    Figure US20020035623A1-20020321-P00093
    Figure US20020035623A1-20020321-P00094
    Figure US20020035623A1-20020321-P00095
    Figure US20020035623A1-20020321-P00096
    Figure US20020035623A1-20020321-P00097
    Figure US20020035623A1-20020321-P00098
    Figure US20020035623A1-20020321-P00099
    Figure US20020035623A1-20020321-P00100
    Figure US20020035623A1-20020321-P00101
    Figure US20020035623A1-20020321-P00102
    Figure US20020035623A1-20020321-P00103
    Figure US20020035623A1-20020321-P00104
    Figure US20020035623A1-20020321-P00105
    Figure US20020035623A1-20020321-P00106
    Figure US20020035623A1-20020321-P00107
    Figure US20020035623A1-20020321-P00108
    Figure US20020035623A1-20020321-P00109
    Figure US20020035623A1-20020321-P00110
    Figure US20020035623A1-20020321-P00111
    Figure US20020035623A1-20020321-P00112
    Figure US20020035623A1-20020321-P00113
    Figure US20020035623A1-20020321-P00114
    Figure US20020035623A1-20020321-P00115
    Figure US20020035623A1-20020321-P00116
    Figure US20020035623A1-20020321-P00117
    Figure US20020035623A1-20020321-P00118
    Figure US20020035623A1-20020321-P00119
    Figure US20020035623A1-20020321-P00120
    Figure US20020035623A1-20020321-P00121
    Figure US20020035623A1-20020321-P00122
    Figure US20020035623A1-20020321-P00123
    Figure US20020035623A1-20020321-P00124
    Figure US20020035623A1-20020321-P00125
    Figure US20020035623A1-20020321-P00126
    Figure US20020035623A1-20020321-P00127
    Figure US20020035623A1-20020321-P00128
    Figure US20020035623A1-20020321-P00129
    Figure US20020035623A1-20020321-P00130
    Figure US20020035623A1-20020321-P00131
    Figure US20020035623A1-20020321-P00132
    Figure US20020035623A1-20020321-P00133
    Figure US20020035623A1-20020321-P00134
    Figure US20020035623A1-20020321-P00135
    Figure US20020035623A1-20020321-P00136
    Figure US20020035623A1-20020321-P00137
    Figure US20020035623A1-20020321-P00138
    Figure US20020035623A1-20020321-P00139
    Figure US20020035623A1-20020321-P00140
    Figure US20020035623A1-20020321-P00141
    Figure US20020035623A1-20020321-P00142
    Figure US20020035623A1-20020321-P00143
    Figure US20020035623A1-20020321-P00144
    Figure US20020035623A1-20020321-P00145
    Figure US20020035623A1-20020321-P00146
    Figure US20020035623A1-20020321-P00147
    Figure US20020035623A1-20020321-P00148
    Figure US20020035623A1-20020321-P00149
    Figure US20020035623A1-20020321-P00150
    Figure US20020035623A1-20020321-P00151
    Figure US20020035623A1-20020321-P00152
    Figure US20020035623A1-20020321-P00153
    Figure US20020035623A1-20020321-P00154
    Figure US20020035623A1-20020321-P00155
    Figure US20020035623A1-20020321-P00156
    Figure US20020035623A1-20020321-P00157
    Figure US20020035623A1-20020321-P00158
    Figure US20020035623A1-20020321-P00159
    Figure US20020035623A1-20020321-P00160
    Figure US20020035623A1-20020321-P00161
    Figure US20020035623A1-20020321-P00162
    Figure US20020035623A1-20020321-P00163
    Figure US20020035623A1-20020321-P00164
    Figure US20020035623A1-20020321-P00165
    Figure US20020035623A1-20020321-P00166
    Figure US20020035623A1-20020321-P00167
    Figure US20020035623A1-20020321-P00168
    Figure US20020035623A1-20020321-P00169
    Figure US20020035623A1-20020321-P00170
    Figure US20020035623A1-20020321-P00171
    Figure US20020035623A1-20020321-P00172
    Figure US20020035623A1-20020321-P00173
    Figure US20020035623A1-20020321-P00174
    Figure US20020035623A1-20020321-P00175
    Figure US20020035623A1-20020321-P00176
    Figure US20020035623A1-20020321-P00177
    Figure US20020035623A1-20020321-P00178
    Figure US20020035623A1-20020321-P00179
    Figure US20020035623A1-20020321-P00180
    Figure US20020035623A1-20020321-P00181
    Figure US20020035623A1-20020321-P00182
    Figure US20020035623A1-20020321-P00183
    Figure US20020035623A1-20020321-P00184
    Figure US20020035623A1-20020321-P00185
    Figure US20020035623A1-20020321-P00186
    Figure US20020035623A1-20020321-P00187
    Figure US20020035623A1-20020321-P00188
    Figure US20020035623A1-20020321-P00189
    Figure US20020035623A1-20020321-P00190
    Figure US20020035623A1-20020321-P00191
    Figure US20020035623A1-20020321-P00192
    Figure US20020035623A1-20020321-P00193
    Figure US20020035623A1-20020321-P00194
    Figure US20020035623A1-20020321-P00195
    Figure US20020035623A1-20020321-P00196
    Figure US20020035623A1-20020321-P00197
    Figure US20020035623A1-20020321-P00198
    Figure US20020035623A1-20020321-P00199
    Figure US20020035623A1-20020321-P00200
    Figure US20020035623A1-20020321-P00201
    Figure US20020035623A1-20020321-P00202
    Figure US20020035623A1-20020321-P00203
    Figure US20020035623A1-20020321-P00204
    Figure US20020035623A1-20020321-P00205
    Figure US20020035623A1-20020321-P00206
    Figure US20020035623A1-20020321-P00207
    Figure US20020035623A1-20020321-P00208

Claims (43)

We claim:
1. In a data processing system having a network bus, at least one component connected to a node on the network bus and a network manager connected to the network bus having a memory containing a look-up table, the component containing a non-changeable address which does not change upon reconfiguration of the network and the component being assigned a changeable address, a method for reconfiguring the network without disturbing the on-going traffic comprising the steps of:
A. obtaining the non-changeable address and changeable address for the at least one component;
B. placing the non-changeable address and changeable address for the at least one component in the look-up table;
C. reconfiguring the network;
D. determining the non-changeable address for the at least one component;
E. examining in the look-up table the changeable address for the at least one component which corresponds to the non-changeable address; and
F. assigning the at least one component with the address which corresponds to the changeable address in the look-up table.
2. The method of claim 1 wherein the step of reconfiguring the network includes inserting a component onto a node of the network bus.
3. The method of claim 1 wherein the step of reconfiguring the network includes removing a component from a node of the network bus.
4. The method of claim 1 wherein the step of determining the non-changeable address for the at least one component includes reading a network identification address in a non-volatile memory device.
5. The method of claim 4 wherein the non-volatile memory device is a Read Only Memory device which is programmed during manufacture.
6. The method of claim 1 further comprising the step of dynamically generating the at least one component with a second changeable address.
7. The method of claim 6 wherein the look-up table further contains a second changeable address for the at least one component prior to reconfiguring the network and further comprising the step of updating the look-up table with the second changeable address after the step of dynamically generating the at least one component with a second changeable address.
8. The method of claim 6 wherein the first changeable address is formatted under the Internet Protocol and the second changeable address is formatted under the IEEE 1394 protocol.
9. In a data processing system having a computer architecture with a vertical set of layers, the data processing system having a network bus, at least one component connected to a node on the network bus and a network manager connected to the network bus having a memory containing a look-up table, the component containing a non-changeable address which does not change upon reconfiguration of the network, and the component being assigned two changeable address which can change upon reconfiguring the network, the first changeable address being assignable for a higher layer and the second changeable address being dynamically generated for a lower layer, a method for reconfiguring-the network without disturbing the on-going traffic on the higher layer and on layers higher than the higher layer comprising the steps of:
A. obtaining the non-changeable address and first changeable address for the at least one component;
B. placing the non-changeable address and first changeable address for the at least one component in the look-up table;
C. reconfiguring the network;
D. determining the non-changeable address for the at least one component;
E. examining in the look-up table the first changeable address for the at least one component prior to reconfiguring the network that corresponds to the non-changeable address; and
F. assigning the at least one component with the address which corresponds to the first changeable address for the at least one component prior to reconfiguring the network in the look-up table.
10. The method of claim 9 wherein the step of reconfiguring the network includes inserting a component onto a node on the network bus.
11. The method of claim 9 wherein the step of reconfiguring the network includes removing a component from a node on the network bus.
12. The method of claim 9 wherein the look-up table further contains the second changeable address for the at least one component prior to reconfiguring the network and further comprising the steps of dynamically generating the at least one component with a new second changeable address and updating the look-up table with the new second changeable address.
13. The method of claim 9 wherein the step of determining the non-changeable address for the at least one component includes reading a network identification address in a non-volatile memory device.
14. The method of claim 9 wherein the first changeable address is formatted under the Internet Protocol and the second changeable address is formatted under the IEEE 1394 protocol.
15. In a data processing system having a network bus, at least one component connected to a node on the network bus and a network manager connected to the network bus having a memory containing a look-up table, the component containing a non-changeable address which cannot change upon reconfiguring the network, and the component being assigned two changeable addresses which can change upon reconfiguring the network and which are assignable, a method for reconfiguring the network without disturbing the on-going traffic comprising the steps of:
A. obtaining the non-changeable address and two changeable addresses for the at least one component;
B. placing the non-changeable address and two changeable addresses for the at least one component in the look-up table;
C. reconfiguring the network;
D. determining the non-changeable address for the at least one node;
E. examining in the look-up table the first changeable address that corresponds to the non-changeable address;
F. examining in the look-up table the second changeable address that corresponds to the non-changeable address;
G. assigning the at least one component with the address which corresponds to the first changeable address for the at least one component prior to reconfiguring the network in the look-up table; and
H. assigning the at least one component with the address which corresponds to the second changeable address for the at least one component prior to reconfiguring the network in the look-up table.
16. A data processing system for interconnecting components along a network, the data processing system comprising:
a bus line having at least two nodes;
a module connected to the first node, the module including a non-volatile memory, the non-volatile memory containing a network identifier address, the module also being assigned a changeable address;
a network manager connected to the second node, the network manager having a memory device and a processor, the memory device having a look-up table, the look-up table containing the network identifier address for the module and the changeable address of the module; and
the processor having a comparator, the comparator comparing the network identifier address in the look-up table with the network identifier address in the module, the processor assigning the module the changeable address in the look-up table if the network identifier address in the look-up table equals the network identifier address in the module.
17. A data processing system for interconnecting components along a network, the data processing system having a computer architecture with a vertical set of layers, the data processing system comprising:
a module being assigned an address for a layer in the computer architecture, the module including a non-volatile memory, the non-volatile memory containing a network identifier address, the module also being assigned a changeable address for the layer which is assignable;
a network manager having a memory device and a processor; the memory device having a look-up table, the look-up table containing the module's network identifier address and the module's changeable address for the layer; and
the processor having a comparator, the comparator comparing the network identifier address in the look-up table with the network identifier address in the module, the processor assigning the module the changeable address in the look-up table for the layer of the module if the network identifier address in the look-up table equals the network identifier address in the module.
18. A data processing system as claimed in claim 17 wherein the layer that the module is connected to is the network layer.
19. A data processing system as claimed in claim 18 wherein the network layer is formatted under the Internet Protocol.
20. A data processing system for interconnecting components along a network, the data processing system having a computer architecture with a vertical set of layers, the data processing system comprising:
a data network including an upper layer and a lower layer in the computer architecture;
a module connected to the data network, the module including a non-volatile memory, the non-volatile memory containing a network identifier address, the module also being assigned a changeable address for the upper layer;
a network manager connected to the data network, the network manager having a memory device and a processor; the memory device having a look-up table, the look-up table containing the module's network identifier address and the module's changeable address for the layer; and
the processor having a comparator, the comparator comparing the network identifier address in the look-up table with the network identifier address in the module, the processor assigning the module the changeable address in the look-up table for the upper layer if the network identifier address in the look-up table equals the network identifier address in the module.
21. A data processing system as claimed in claim 20 wherein the module has a second changeable address for the lower layer which is dynamically generated.
22. A data processing system as claimed in claim 21 wherein the lower layer is formatted under the IEEE 1394 protocol.
23. A data processing system as claimed in claim 20 wherein the upper layer is formatted under the Internet Protocol.
24. In a data processing system having a network bus and having a protocol for a data stream wherein the data stream has a header with fields, one field being the data stream identifier field, a component connected to the network bus, the component having a memory device containing a data stream identifier, the component also having a processor, the processor having a comparator, a method for determining whether to process an incoming data stream comprising the steps of:
A. obtaining the data stream identifier from the memory device of the component;
B. receiving the incoming data stream by the component;
C. parsing through the header of the data stream to obtain the data in the data stream identifier field;
D. comparing the data which was parsed with the data stream identifier from the memory device of the component; and
E. processing the incoming data stream if the data which was parsed equals the data stream identifier from the memory device of the component.
25. The method of claim 24 wherein the incoming data stream is in the form of a packet of data.
26. The method of claim 24 wherein the data stream identifier from the memory device of the component is a company identification number.
27. In a data processing system having a network bus and having a protocol for a data stream wherein the data stream has a header with fields, one field being the data stream identifier field, a first component and a second component both connected to the network bus, the first component having a first memory device containing a first data stream identifier, the first component also having a first processor, the second component having a second memory device containing a second data stream identifier, the second component also having a second processor, the second processor having a comparator, a method for determining whether to process an incoming data stream comprising the steps of:
A. obtaining the first data stream identifier from the first memory device;
B. forming a data stream by inserting the first data stream identifier in the data stream identifier field;
C. sending the data stream onto the bus;
D. obtaining the second data stream identifier from the second memory device of the second component;
E. receiving the data stream by the second component;
F. parsing through the header of the data stream to obtain the data in the data stream identifier field;
G. comparing the data which was parsed with the second data stream identifier; and
H. processing the incoming data stream if the data which was parsed equals the second data stream identifier.
28. The method of claim 27 wherein the incoming data stream is in the form of a packet of data.
29. The method of claim 28 wherein the first data stream identifier is a first company identification number and the second data stream identifier is a second company identification number.
30. A data processing system for interconnecting components along a network and for processing packets of data, the packets of data having a protocol wherein the packets have a header with fields, one field being the packet identifier field containing a packet identifier, the packet identifier identifying the origin of the packet, the data processing system comprising:
a bus line having at least two nodes;
a first module connected to the first node, the first module including a first memory, the first memory containing a first packet identifier, the module also including a first processor;
the first processor forming the data stream including the header, the first processor connected to the first memory, the first processor accessing the first memory to obtain the first packet identifier, the first processor placing the first packet identifier in the packet identifier field;
a second module connected to the second node, the second module including a second memory, the second memory containing a second packet identifier, the module also including a second processor;
the second processor having a comparator, the comparator comparing the second packet identifier in the second memory with the data in the packet identifier field, the second processor processing the packet if the second packet identifier in the second memory equals the data in the packet identifier field.
31. A data processing system as claimed in claim 30 wherein the first packet identifier is a first company identification number and the second packet identifier is a second company identification number.
32. In a data processing system having a protocol for a packet wherein the packet has a header with fields, one field being the company identifier field, the data processing system also having a network bus, at least one component connected to a node on the network bus and a network manager connected to the network bus having a processor, the processor having a comparator, the network manager also having a memory containing a first company identifier, the component having a memory containing a second company identifier, a method for assigning addresses to a company compatible component comprising the steps of:
A. obtaining the second company identifier from the memory device of the component;
B. forming a packet of data in the component by inserting the second company identifier in the company identifier field;
C. sending the packet of data onto the bus;
D. obtaining the first company identifier from the memory device of the network manager;
E. receiving the packet of data by the network manager;
F. parsing through the header of the packet of data to obtain the data in the company identifier field;
G. comparing, in the comparator of the network manager, the data which was parsed with the first company identifier obtained from the memory device of the network manager; and
H. assigning an address to the component if the data which was parsed equals the first company identifier.
33. The method of claim 32 wherein the data processing system is composed of a vertical set of layers, one of which is a network layer, and wherein the address assigned to the component if the data which was parsed equals the first company identifier is at the network layer.
34. In a data processing system having a sender module for sending information and a receiver module for receiving information, the data processing system also having a computer architecture with a vertical set of layers, the computer architecture having a physical layer, link layer and network layer, the physical and link layers configured under a standard which dictates that memory architecture information be included in a packet of information sent from the sender module to the receiver module, the physical and link layers having a memory read write function, the network layer configured under a standard which dictates channel based I/O and which does not include memory architecture information in the packet of data sent from the sender module to the receiver module, a method for sending a packet of data on a physical and link layer configured for packets which include memory architecture information in the packet comprising the steps of:
receiving from the sender module the packet of information at the link layer from the network layer;
placing header information into the packet which does not include memory architecture information about the receiver module and which conforms to sending the information via channel based I/O; and
transporting, via the physical layer, the packet to the receiver module including executing the memory read write function without examining the header of the packet of information for memory architecture information.
35. The method of claim 34 wherein the network layer is formatted under the Internet Protocol and the physical and link layers are formatted under the IEEE 1394 protocol.
36. The method of claim 35 further comprising the step of modifying the memory read write function of physical and link layers to execute channel based I/O.
37. The method of claim 34 wherein the sender module has a memory containing a first company identifier and further comprising the step of inserting in the header of the packet the first company identifier.
38. The method of claim 37 wherein the receiver module has a memory containing a second company identifier and further comprising the steps of parsing through the packet of information for the company identifier and comparing the parsed information with the second company identifier in the memory of the receiver module.
39. The method of claim 38 further comprising the step of processing the packet if the parsed information equals the second company identifier in the memory of the receiver module.
40. In a data processing system having a sender module for sending information and a receiver module for receiving information, the data processing system also having a computer architecture with a vertical set of layers, the computer architecture having a physical layer and link layer formatted under the IEEE 1394 standard and a network layer formatted under the Internet Protocol, the IEEE 1394 standard dictating that memory architecture information be included in a packet of information sent from the sender module to the receiver module, the Internet Protocol standard dictating that packets of information do not include memory architecture information sent from the sender module to the receiver module, a method for sending a packet of data on an IEEE 1394 physical and link layer and on an Internet Protocol network layer comprising the steps of:
receiving the packet on information at the network layer from the sender module;
formatting the packet with information conforming to the Internet Protocol including placing header information into the packet which does not include memory architecture information about the receiver module;
sending the packet of information from the network layer to the physical and link layer;
transporting via the IEEE 1394 physical and link layer the packet to the receiver module using a memory read write protocol which does not require memory architecture of the receiver module; and processing the packet of information by the receiver module.
41. A data communications system comprising:
a network having a first node and a second node;
a call terminating device connected to the first node of the network, the call terminating device comprising a framer, a time division multiplex line, and at least one modem, the call terminating device connected to the first node, the module including a non-volatile memory, the non-volatile memory containing a network identifier address, the module also being assigned a changeable address;
a router device connected to the second node of the network, the router device having a memory device and a processor, the memory device having a look-up table, the look-up table containing the network identifier address for the module and the changeable address of the module; and
the processor having a comparator, the comparator comparing the network identifier address in the look-up table with the network identifier address in the call terminating device, the processor assigning the call terminating device the changeable address in the look-up table if the network identifier address in the look-up table equals the network identifier address in the call terminating device.
42. The data communications system of claim 41 wherein the changeable address is formatted under the Internet Protocol.
43. The data communications system of claim 41 wherein the network is an IEEE 1394 network.
US09/835,712 1997-05-02 2001-04-16 Method and apparatus for operating the internet protocol over a high-speed serial bus Expired - Lifetime US6405247B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/835,712 US6405247B1 (en) 1997-05-02 2001-04-16 Method and apparatus for operating the internet protocol over a high-speed serial bus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/850,406 US6219697B1 (en) 1997-05-02 1997-05-02 Method and apparatus for operating the internet protocol over a high-speed serial bus
US09/835,712 US6405247B1 (en) 1997-05-02 2001-04-16 Method and apparatus for operating the internet protocol over a high-speed serial bus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US08/850,406 Continuation US6219697B1 (en) 1997-05-02 1997-05-02 Method and apparatus for operating the internet protocol over a high-speed serial bus

Publications (2)

Publication Number Publication Date
US20020035623A1 true US20020035623A1 (en) 2002-03-21
US6405247B1 US6405247B1 (en) 2002-06-11

Family

ID=25308027

Family Applications (2)

Application Number Title Priority Date Filing Date
US08/850,406 Expired - Lifetime US6219697B1 (en) 1997-05-02 1997-05-02 Method and apparatus for operating the internet protocol over a high-speed serial bus
US09/835,712 Expired - Lifetime US6405247B1 (en) 1997-05-02 2001-04-16 Method and apparatus for operating the internet protocol over a high-speed serial bus

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US08/850,406 Expired - Lifetime US6219697B1 (en) 1997-05-02 1997-05-02 Method and apparatus for operating the internet protocol over a high-speed serial bus

Country Status (1)

Country Link
US (2) US6219697B1 (en)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030204575A1 (en) * 2002-04-29 2003-10-30 Quicksilver Technology, Inc. Storage and delivery of device features
US20050005154A1 (en) * 2003-07-03 2005-01-06 Andrew Danforth Method to block unauthorized access to TFTP server configuration files
US20050083861A1 (en) * 2002-03-05 2005-04-21 Van Den Heuvel Sebastiaan Antonius F.A. Method and arrangement for converting a first data stream into a second data stream
US20060095597A1 (en) * 2004-10-29 2006-05-04 Honeywell International Inc. IEEE 1394 network for deterministic and/or fault-tolerant communication
US20060092977A1 (en) * 2004-10-29 2006-05-04 Honeywell International Inc. IEEE 1394 gateway for fault-tolerant communication
US20090254646A1 (en) * 2005-01-07 2009-10-08 Lantronix, Inc. Milarrs systems and methods
US20090290197A1 (en) * 2008-05-20 2009-11-26 David Mandelstam Telecommunication system and method of synchronization
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7668229B2 (en) 2001-12-12 2010-02-23 Qst Holdings, Llc Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US20100159910A1 (en) * 2002-01-04 2010-06-24 Qst Holdings, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7809050B2 (en) 2001-05-08 2010-10-05 Qst Holdings, Llc Method and system for reconfigurable channel coding
US7865847B2 (en) 2002-05-13 2011-01-04 Qst Holdings, Inc. Method and system for creating and programming an adaptive computing engine
US7904603B2 (en) 2002-10-28 2011-03-08 Qst Holdings, Llc Adaptable datapath for a digital processing system
US20110069222A1 (en) * 2009-08-28 2011-03-24 Irdeto Access B.V. Reliable and non-manipulatable processing of data streams in a receiver
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US7937539B2 (en) 2002-11-22 2011-05-03 Qst Holdings, Llc External memory controller node
USRE42743E1 (en) 2001-11-28 2011-09-27 Qst Holdings, Llc System for authorizing functionality in adaptable hardware devices
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US8225073B2 (en) 2001-11-30 2012-07-17 Qst Holdings Llc Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US8250339B2 (en) 2001-11-30 2012-08-21 Qst Holdings Llc Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US8356161B2 (en) 2001-03-22 2013-01-15 Qst Holdings Llc Adaptive processor for performing an operation with simple and complex units each comprising configurably interconnected heterogeneous elements
US8533431B2 (en) 2001-03-22 2013-09-10 Altera Corporation Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
WO2014004381A3 (en) * 2012-06-25 2014-04-10 Netapp, Inc. Non-disruptive controller replacement in network storage systems
US20140320748A1 (en) * 2010-11-18 2014-10-30 Aereo, Inc. Antenna System with Individually Addressable Elements in Dense Array
US9847940B2 (en) * 2014-07-04 2017-12-19 Fujitsu Limited Control method, packet processing device, and storage medium
US11055103B2 (en) 2010-01-21 2021-07-06 Cornami, Inc. Method and apparatus for a multi-core system for implementing stream-based computations having inputs from multiple streams
CN113711542A (en) * 2019-05-22 2021-11-26 欧姆龙株式会社 Network machine

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751221B1 (en) * 1996-10-04 2004-06-15 Kabushiki Kaisha Toshiba Data transmitting node and network inter-connection node suitable for home network environment
US6219697B1 (en) * 1997-05-02 2001-04-17 3Com Corporation Method and apparatus for operating the internet protocol over a high-speed serial bus
US6333929B1 (en) 1997-08-29 2001-12-25 Intel Corporation Packet format for a distributed system
US6418493B1 (en) * 1997-12-29 2002-07-09 Intel Corporation Method and apparatus for robust addressing on a dynamically configurable bus
US6690648B2 (en) * 1998-02-24 2004-02-10 Canon Kabushiki Kaisha Data communication apparatus, method, and system utilizing reception capability information of a destination node
US6895003B1 (en) * 1998-02-24 2005-05-17 Canon Kabushiki Kaisha Communication system, apparatus, and method in which data transmission is interrupted for a bus reset
US7072330B2 (en) * 1998-04-03 2006-07-04 Consolidated Ip Holdings, Inc. Systems for voice and data communications having TDM and packet buses and telephony station cards including voltage generators
US6181694B1 (en) 1998-04-03 2001-01-30 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communciations using intelligently bridged TDM and packet buses
US6154465A (en) * 1998-10-06 2000-11-28 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligenty bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6389009B1 (en) 2000-12-28 2002-05-14 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses
US6498791B2 (en) 1998-04-03 2002-12-24 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same
US20090059818A1 (en) * 1998-04-03 2009-03-05 Pickett Scott K Systems and methods for providing configurable caller id iformation
US6385651B2 (en) * 1998-05-05 2002-05-07 Liberate Technologies Internet service provider preliminary user registration mechanism provided by centralized authority
KR100261111B1 (en) * 1998-05-06 2000-07-01 윤종용 Method of displaying system device operation of ieee 1394 network system
KR100261112B1 (en) * 1998-05-06 2000-07-01 윤종용 Device page producing method
US6522654B1 (en) * 1998-05-15 2003-02-18 Harris-Exigent, Inc. Method for hosting the internet protocol suite on the IEEE-1394 high speed serial bus
US6324178B1 (en) * 1998-05-26 2001-11-27 3Com Corporation Method for efficient data transfers between domains of differing data formats
JP3922817B2 (en) * 1998-06-30 2007-05-30 株式会社東芝 Communication node and communication terminal
KR100553867B1 (en) * 1998-07-04 2006-05-25 삼성전자주식회사 Bus reset processing method in network connected with IEEE 1394 bus
US6496862B1 (en) * 1998-08-25 2002-12-17 Mitsubishi Electric Research Laboratories, Inc. Remote monitoring and control of devices connected to an IEEE 1394 bus via a gateway device
KR100316650B1 (en) * 1998-08-29 2002-01-12 윤종용 High Protocol and IEEE 1394 Bus Matching Method for Higher Layer Data Transmission
US7013354B1 (en) * 1998-10-05 2006-03-14 Canon Kabushiki Kaisha Channel protocol for IEEE 1394 data transmission
KR100354741B1 (en) * 1998-10-16 2002-11-18 삼성전자 주식회사 Analog Translator for IEEE 1394 and Method
JP2000124914A (en) * 1998-10-19 2000-04-28 Sony Corp Device and method for processing information and distribution medium
DE69934192T2 (en) * 1998-10-27 2007-08-30 Hewlett-Packard Development Co., L.P., Houston Method and device for network connection by means of bridges
JP3175826B2 (en) * 1998-11-24 2001-06-11 日本電気株式会社 Network configuration method and network management node
JP4366741B2 (en) * 1998-12-22 2009-11-18 ソニー株式会社 Digital broadcast receiving apparatus and digital signal processing apparatus recognition method
JP2000216800A (en) * 1999-01-27 2000-08-04 Sony Corp Data repeater, data repeating method and server medium
US6810452B1 (en) * 1999-03-19 2004-10-26 Sony Corporation Method and system for quarantine during bus topology configuration
US6378000B1 (en) * 1999-04-29 2002-04-23 Mitsubish Electric Research Laboratories, Inc Address mapping in home entertainment network
US7047292B1 (en) * 1999-05-24 2006-05-16 Cisco Technology, Inc. Prioritizing network management traffic
JP4505692B2 (en) * 1999-06-18 2010-07-21 ソニー株式会社 Data communication apparatus and method, and recording medium
US6628607B1 (en) 1999-07-09 2003-09-30 Apple Computer, Inc. Method and apparatus for loop breaking on a serial bus
JP3539287B2 (en) * 1999-07-15 2004-07-07 セイコーエプソン株式会社 Data transfer control device and electronic equipment
US6788700B1 (en) * 1999-07-28 2004-09-07 Cisco Technology, Inc. Interfacing between a network interface and a bus
US6633587B1 (en) * 1999-08-26 2003-10-14 Worldcom, Inc. System and method for delivering reliable datagram service through connection-oriented service
US6725282B1 (en) * 1999-09-07 2004-04-20 Bath Iron Works Method and apparatus for a wearable computer
JP2001086139A (en) * 1999-09-14 2001-03-30 Sony Corp Transmission method and its device
US6643710B1 (en) * 1999-09-17 2003-11-04 3Com Corporation Architecture to fragment transmitted TCP packets to a requested window size
US6910090B1 (en) 1999-09-21 2005-06-21 Sony Corporation Maintaining communications in a bus bridge interconnect
US6578086B1 (en) * 1999-09-27 2003-06-10 Nortel Networks Limited Dynamically managing the topology of a data network
JP2001119767A (en) * 1999-10-19 2001-04-27 Sony Corp Information processing unit and method, information processing system and recording medium
US6691096B1 (en) 1999-10-28 2004-02-10 Apple Computer, Inc. General purpose data container method and apparatus for implementing AV/C descriptors
US6671768B1 (en) 1999-11-01 2003-12-30 Apple Computer, Inc. System and method for providing dynamic configuration ROM using double image buffers for use with serial bus devices
US6618750B1 (en) 1999-11-02 2003-09-09 Apple Computer, Inc. Method and apparatus for determining communication paths
US6813663B1 (en) 1999-11-02 2004-11-02 Apple Computer, Inc. Method and apparatus for supporting and presenting multiple serial bus nodes using distinct configuration ROM images
US6587904B1 (en) * 1999-11-05 2003-07-01 Apple Computer, Inc. Method and apparatus for preventing loops in a full-duplex bus
US6636914B1 (en) 1999-11-05 2003-10-21 Apple Computer, Inc. Method and apparatus for arbitration and fairness on a full-duplex bus using dual phases
US6728821B1 (en) 1999-11-29 2004-04-27 Sony Corporation Method and system for adjusting isochronous bandwidths on a bus
JP3613102B2 (en) * 1999-12-14 2005-01-26 日本電気株式会社 Frame configuration method, frame configuration apparatus, and frame configuration transfer system
JP2001186162A (en) * 1999-12-24 2001-07-06 Toshiba Corp Av unit network system
JP3454217B2 (en) * 1999-12-28 2003-10-06 日本電気株式会社 Communication path control method, device control device, and bridge
US6941377B1 (en) * 1999-12-31 2005-09-06 Intel Corporation Method and apparatus for secondary use of devices with encryption
US7266617B1 (en) * 2000-01-18 2007-09-04 Apple Inc. Method and apparatus for border node behavior on a full-duplex bus
US6639918B1 (en) 2000-01-18 2003-10-28 Apple Computer, Inc. Method and apparatus for border node behavior on a full-duplex bus
US20010014601A1 (en) * 2000-02-14 2001-08-16 Tatsuru Kuwabara Client server system for mobile phone
US7421507B2 (en) * 2000-02-16 2008-09-02 Apple Inc. Transmission of AV/C transactions over multiple transports method and apparatus
US7050453B1 (en) 2000-02-17 2006-05-23 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
EP1266508B1 (en) * 2000-03-20 2011-04-20 AT & T Corp. Method and apparatus for coordinating a change in service provider between a client and a server
EP1266489B1 (en) 2000-03-20 2008-04-23 AT&T Corp. Method and apparatus for coordinating a change in service provider between a client and a server with identity based service access management
JP2001292146A (en) * 2000-04-07 2001-10-19 Sony Corp Electronic unit and processing method in bus initialized phase for interface device of digital serial data
US6718497B1 (en) 2000-04-21 2004-04-06 Apple Computer, Inc. Method and apparatus for generating jitter test patterns on a high performance serial bus
US6618785B1 (en) * 2000-04-21 2003-09-09 Apple Computer, Inc. Method and apparatus for automatic detection and healing of signal pair crossover on a high performance serial bus
US6757773B1 (en) 2000-06-30 2004-06-29 Sony Corporation System and method for determining support capability of a device coupled to a bus system
US6956614B1 (en) 2000-11-22 2005-10-18 Bath Iron Works Apparatus and method for using a wearable computer in collaborative applications
US6962277B2 (en) * 2000-12-18 2005-11-08 Bath Iron Works Corporation Apparatus and method for using a wearable computer in testing and diagnostic applications
US6977939B2 (en) * 2001-01-26 2005-12-20 Microsoft Corporation Method and apparatus for emulating ethernet functionality over a serial bus
US6917970B2 (en) * 2001-03-09 2005-07-12 Sun Microsystems, Inc. Method and program code for identifying new nodes on a bus following a reset
EP1317169B1 (en) * 2001-03-22 2012-05-09 Sony Corporation Electronic device and information reproducing system
US6820150B1 (en) * 2001-04-11 2004-11-16 Microsoft Corporation Method and apparatus for providing quality-of-service delivery facilities over a bus
DE10121711A1 (en) * 2001-05-04 2002-11-14 Tenovis Gmbh & Co Kg Data processing device, especially a PC or computer has an architecture with processor specific and processor unspecific modules to simplify upgrading of the system and thus extend its useful life
US20020184291A1 (en) * 2001-05-31 2002-12-05 Hogenauer Eugene B. Method and system for scheduling in an adaptable computing engine
JP3525435B2 (en) * 2001-07-04 2004-05-10 ソニー株式会社 Information processing apparatus and method, and communication system
US20030037154A1 (en) * 2001-08-16 2003-02-20 Poggio Andrew A. Protocol processor
US20050030917A1 (en) * 2001-08-17 2005-02-10 Amit Haller Device, system, method and computer readable medium obtaining a network attribute, such as a DNS address, for a short distance wireless network
US7139818B1 (en) 2001-10-04 2006-11-21 Cisco Technology, Inc. Techniques for dynamic host configuration without direct communications between client and server
US20030115329A1 (en) * 2001-12-18 2003-06-19 Pascal Joly Stacked approach to service provider Architecture
KR100406857B1 (en) * 2002-01-09 2003-11-21 엘지전자 주식회사 Method of deciding configuration manager in home network
US20030145143A1 (en) * 2002-01-31 2003-07-31 Adelman Lonnie W. Communicable coupling systems for electronic appliances
JP3882636B2 (en) * 2002-02-20 2007-02-21 ヤマハ株式会社 COMMUNICATION DEVICE MANAGING OTHER NODES AND COMMUNICATION DEVICE MANAGED BY OTHER NODES
US7055085B2 (en) * 2002-03-07 2006-05-30 Broadcom Corporation System and method for protecting header information using dedicated CRC
JP3647815B2 (en) * 2002-03-11 2005-05-18 株式会社東芝 Communication method and communication apparatus
US6867991B1 (en) 2003-07-03 2005-03-15 Integrated Device Technology, Inc. Content addressable memory devices with virtual partitioning and methods of operating the same
US6972978B1 (en) 2002-03-15 2005-12-06 Integrated Device Technology, Inc. Content addressable memory (CAM) devices with block select and pipelined virtual sector look-up control and methods of operating same
JP3683227B2 (en) * 2002-03-28 2005-08-17 日本電気エンジニアリング株式会社 Local bus bridge
KR100449725B1 (en) * 2002-06-11 2004-09-22 삼성전자주식회사 Apparatus and method for generating distributed traffic
US7869424B2 (en) 2002-07-01 2011-01-11 Converged Data Solutions Inc. Systems and methods for voice and data communications including a scalable TDM switch/multiplexer
US7706359B2 (en) * 2002-07-01 2010-04-27 Converged Data Solutions, Inc. Systems and methods for voice and data communications including a network drop and insert interface for an external data routing resource
US7805114B1 (en) 2002-07-17 2010-09-28 Bath Iron Works Corporation In situ re-configurable wireless communications system (IRCWCS)
US8015303B2 (en) * 2002-08-02 2011-09-06 Astute Networks Inc. High data rate stateful protocol processing
JP3655604B2 (en) * 2002-08-09 2005-06-02 株式会社東芝 Network relay device and network relay method
US20040051650A1 (en) * 2002-09-16 2004-03-18 Bryan Gonsoulin Two way data communication with a well logging tool using a TCP-IP system
US8151278B1 (en) 2002-10-17 2012-04-03 Astute Networks, Inc. System and method for timer management in a stateful protocol processing system
US7814218B1 (en) 2002-10-17 2010-10-12 Astute Networks, Inc. Multi-protocol and multi-format stateful processing
US7596621B1 (en) * 2002-10-17 2009-09-29 Astute Networks, Inc. System and method for managing shared state using multiple programmed processors
US7467227B1 (en) * 2002-12-31 2008-12-16 At&T Corp. System using policy filter decision to map data traffic to virtual networks for forwarding the traffic in a regional access network
DE10302363A1 (en) * 2003-01-22 2004-08-05 Deutsche Thomson-Brandt Gmbh Method for operating a network of interface nodes and interface device
FR2854016A1 (en) * 2003-04-17 2004-10-22 Thomson Licensing Sa Reset messages transmitting method for use in communication network, involves transmitting reset messages of one bus to another other bus, when number of nodes is changed and number of nodes is not increased or decreased
RU2377667C2 (en) * 2003-05-09 2009-12-27 Эл Джи Электроникс Инк. Recording medium with data structure for managing at least recording medium data area, and methods and devices for recording and playing back
JP3891145B2 (en) * 2003-05-16 2007-03-14 ソニー株式会社 Wireless communication apparatus, wireless communication method and program
US7668099B2 (en) * 2003-06-13 2010-02-23 Apple Inc. Synthesis of vertical blanking signal
US7353284B2 (en) * 2003-06-13 2008-04-01 Apple Inc. Synchronized transmission of audio and video data from a computer to a client via an interface
US8275910B1 (en) 2003-07-02 2012-09-25 Apple Inc. Source packet bridge
US20060280174A1 (en) * 2003-09-10 2006-12-14 Nokia Corporation Method and system for establishing a data link layer protocol on a physical layer port connection
US7788567B1 (en) * 2003-11-18 2010-08-31 Apple Inc. Symbol encoding for tolerance to single byte errors
US7995606B1 (en) 2003-12-03 2011-08-09 Apple Inc. Fly-by and ack-accelerated arbitration for broadcast packets
US7502338B1 (en) 2003-12-19 2009-03-10 Apple Inc. De-emphasis training on a point-to-point connection
US7581041B1 (en) * 2003-12-29 2009-08-25 Apple Inc. Methods and apparatus for high-speed serialized data transfer over network infrastructure using a different protocol
US7237135B1 (en) * 2003-12-29 2007-06-26 Apple Inc. Cyclemaster synchronization in a distributed bridge
US7308517B1 (en) 2003-12-29 2007-12-11 Apple Inc. Gap count analysis for a high speed serialized bus
KR100677143B1 (en) * 2004-10-15 2007-02-02 삼성전자주식회사 Method and apparatus for transmitting isochronous stream
DE102005004151A1 (en) * 2005-01-28 2006-08-10 Siemens Ag Method and device for assigning packet addresses of a plurality of devices
CN100395782C (en) * 2005-05-10 2008-06-18 华为技术有限公司 Special measuring controlling message transmitting method
DE102006011829B4 (en) * 2006-03-13 2015-10-22 Bayerische Motoren Werke Aktiengesellschaft Method for data communication
US8483108B2 (en) * 2006-07-24 2013-07-09 Apple Inc. Apparatus and methods for de-emphasis training on a point-to-point connection
EP1885100B1 (en) * 2006-08-02 2009-04-08 Siemens Aktiengesellschaft Method for automatic address allocation between communication devices
JP4768564B2 (en) * 2006-09-28 2011-09-07 富士通セミコンダクター株式会社 Data transfer device
US7916736B2 (en) * 2006-09-29 2011-03-29 Freescale Semiconductor, Inc. System and method for translucent bridging
CN101192231B (en) * 2006-11-27 2012-07-04 国际商业机器公司 Bookmark based on context
EP2028797B1 (en) * 2007-08-23 2010-02-24 Siemens Aktiengesellschaft Data transmission method
US8140835B2 (en) * 2008-05-09 2012-03-20 International Business Machines Corporation Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer
JP5272719B2 (en) * 2008-12-24 2013-08-28 富士通セミコンダクター株式会社 Data transfer apparatus and data transfer method
US8578012B2 (en) * 2010-07-02 2013-11-05 Schweitzer Engineering Laboratories Inc Local intelligent electronic device (IED) rendering templates over limited bandwidth communication link to manage remote IED
US8799227B2 (en) 2011-11-11 2014-08-05 Blackberry Limited Presenting metadata from multiple perimeters
US9075955B2 (en) 2012-10-24 2015-07-07 Blackberry Limited Managing permission settings applied to applications
US9558086B2 (en) * 2015-06-02 2017-01-31 Aspeed Technology Inc. System on chip with debug controller and operating method thereof
FI127266B (en) 2016-07-08 2018-02-28 Sarokal Test Systems Oy System for processing data stream messages

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528595A (en) * 1974-06-09 1996-06-18 U.S. Robotics, Inc. Modem input/output signal processing techniques
US5751967A (en) * 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5875301A (en) * 1994-12-19 1999-02-23 Apple Computer, Inc. Method and apparatus for the addition and removal of nodes from a common interconnect
US5815678A (en) * 1995-07-14 1998-09-29 Adaptec, Inc. Method and apparatus for implementing an application programming interface for a communications bus
US5764930A (en) * 1996-04-01 1998-06-09 Apple Computer, Inc. Method and apparatus for providing reset transparency on a reconfigurable bus
US5809331A (en) * 1996-04-01 1998-09-15 Apple Computer, Inc. System for retrieving configuration information from node configuration memory identified by key field used as search criterion during retrieval
SG77135A1 (en) * 1996-04-26 2000-12-19 Texas Instruments Inc Method and system for assigning a channel number to a received data packet
JP3601205B2 (en) * 1996-08-26 2004-12-15 ソニー株式会社 Electronic apparatus and operation mode control method thereof
US5991842A (en) * 1996-08-27 1999-11-23 Canon Kabushiki Kaisha Communication system for providing digital data transfer, electronic equipment for transferring data using the communication system, and an interface control device
US6131119A (en) * 1997-04-01 2000-10-10 Sony Corporation Automatic configuration system for mapping node addresses within a bus structure to their physical location
US6219697B1 (en) * 1997-05-02 2001-04-17 3Com Corporation Method and apparatus for operating the internet protocol over a high-speed serial bus
US5938752C1 (en) * 1997-05-20 2002-02-05 Microsoft Corp System and method for encapsulating legacy data transport protocols for ieee 1394 serial bus
US6157972A (en) * 1997-12-05 2000-12-05 Texas Instruments Incorporated Apparatus and method for processing packetized information over a serial bus
US6160796A (en) * 1998-01-06 2000-12-12 Sony Corporation Of Japan Method and system for updating device identification and status information after a local bus reset within a home audio/video network
US6243774B1 (en) * 1998-06-30 2001-06-05 International Business Machines Corporation Apparatus program product and method of managing computer resources supporting concurrent maintenance operations

Cited By (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543794B2 (en) 2001-03-22 2013-09-24 Altera Corporation Adaptive integrated circuitry with heterogenous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US9396161B2 (en) 2001-03-22 2016-07-19 Altera Corporation Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US8356161B2 (en) 2001-03-22 2013-01-15 Qst Holdings Llc Adaptive processor for performing an operation with simple and complex units each comprising configurably interconnected heterogeneous elements
US9665397B2 (en) 2001-03-22 2017-05-30 Cornami, Inc. Hardware task manager
US8543795B2 (en) 2001-03-22 2013-09-24 Altera Corporation Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US8589660B2 (en) 2001-03-22 2013-11-19 Altera Corporation Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US9015352B2 (en) 2001-03-22 2015-04-21 Altera Corporation Adaptable datapath for a digital processing system
US8533431B2 (en) 2001-03-22 2013-09-10 Altera Corporation Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US9037834B2 (en) 2001-03-22 2015-05-19 Altera Corporation Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US9164952B2 (en) 2001-03-22 2015-10-20 Altera Corporation Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US8767804B2 (en) 2001-05-08 2014-07-01 Qst Holdings Llc Method and system for reconfigurable channel coding
US8249135B2 (en) 2001-05-08 2012-08-21 Qst Holdings Llc Method and system for reconfigurable channel coding
US7809050B2 (en) 2001-05-08 2010-10-05 Qst Holdings, Llc Method and system for reconfigurable channel coding
US7822109B2 (en) 2001-05-08 2010-10-26 Qst Holdings, Llc. Method and system for reconfigurable channel coding
USRE42743E1 (en) 2001-11-28 2011-09-27 Qst Holdings, Llc System for authorizing functionality in adaptable hardware devices
US9330058B2 (en) 2001-11-30 2016-05-03 Altera Corporation Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US8250339B2 (en) 2001-11-30 2012-08-21 Qst Holdings Llc Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US8225073B2 (en) 2001-11-30 2012-07-17 Qst Holdings Llc Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US8880849B2 (en) 2001-11-30 2014-11-04 Altera Corporation Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US9594723B2 (en) 2001-11-30 2017-03-14 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having fixed, application specific computational elements
US8442096B2 (en) 2001-12-12 2013-05-14 Qst Holdings Llc Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7668229B2 (en) 2001-12-12 2010-02-23 Qst Holdings, Llc Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US20100159910A1 (en) * 2002-01-04 2010-06-24 Qst Holdings, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US9002998B2 (en) 2002-01-04 2015-04-07 Altera Corporation Apparatus and method for adaptive multimedia reception and transmission in communication environments
US20050083861A1 (en) * 2002-03-05 2005-04-21 Van Den Heuvel Sebastiaan Antonius F.A. Method and arrangement for converting a first data stream into a second data stream
US7493375B2 (en) * 2002-04-29 2009-02-17 Qst Holding, Llc Storage and delivery of device features
US20030204575A1 (en) * 2002-04-29 2003-10-30 Quicksilver Technology, Inc. Storage and delivery of device features
US7865847B2 (en) 2002-05-13 2011-01-04 Qst Holdings, Inc. Method and system for creating and programming an adaptive computing engine
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US8200799B2 (en) 2002-06-25 2012-06-12 Qst Holdings Llc Hardware task manager
US8782196B2 (en) 2002-06-25 2014-07-15 Sviral, Inc. Hardware task manager
US10817184B2 (en) 2002-06-25 2020-10-27 Cornami, Inc. Control node for multi-core system
US10185502B2 (en) 2002-06-25 2019-01-22 Cornami, Inc. Control node for multi-core system
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US7904603B2 (en) 2002-10-28 2011-03-08 Qst Holdings, Llc Adaptable datapath for a digital processing system
US8706916B2 (en) 2002-10-28 2014-04-22 Altera Corporation Adaptable datapath for a digital processing system
US8380884B2 (en) 2002-10-28 2013-02-19 Altera Corporation Adaptable datapath for a digital processing system
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US8266388B2 (en) 2002-11-22 2012-09-11 Qst Holdings Llc External memory controller
US7937539B2 (en) 2002-11-22 2011-05-03 Qst Holdings, Llc External memory controller node
US7937538B2 (en) 2002-11-22 2011-05-03 Qst Holdings, Llc External memory controller node
US7941614B2 (en) 2002-11-22 2011-05-10 QST, Holdings, Inc External memory controller node
US8769214B2 (en) 2002-11-22 2014-07-01 Qst Holdings Llc External memory controller node
US7984247B2 (en) 2002-11-22 2011-07-19 Qst Holdings Llc External memory controller node
US7979646B2 (en) 2002-11-22 2011-07-12 Qst Holdings, Inc. External memory controller node
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US20050005154A1 (en) * 2003-07-03 2005-01-06 Andrew Danforth Method to block unauthorized access to TFTP server configuration files
US7293282B2 (en) 2003-07-03 2007-11-06 Time Warner Cable, Inc. Method to block unauthorized access to TFTP server configuration files
US20060092977A1 (en) * 2004-10-29 2006-05-04 Honeywell International Inc. IEEE 1394 gateway for fault-tolerant communication
US20060095597A1 (en) * 2004-10-29 2006-05-04 Honeywell International Inc. IEEE 1394 network for deterministic and/or fault-tolerant communication
US7990898B2 (en) 2004-10-29 2011-08-02 Honeywell International Inc. IEEE 1394 network for deterministic and/or fault-tolerant communication
US8077603B2 (en) * 2004-10-29 2011-12-13 Honeywell International Inc. IEEE 1394 gateway for fault-tolerant communication
US8024446B2 (en) * 2005-01-07 2011-09-20 Lantronix, Inc. MILARRS systems and methods
US8504740B2 (en) 2005-01-07 2013-08-06 Lantronix, Inc. MILARRS systems and methods
US8219661B2 (en) 2005-01-07 2012-07-10 Lantronix, Inc. MILARRS systems and methods
US20090254646A1 (en) * 2005-01-07 2009-10-08 Lantronix, Inc. Milarrs systems and methods
US20090290197A1 (en) * 2008-05-20 2009-11-26 David Mandelstam Telecommunication system and method of synchronization
US8351583B2 (en) * 2008-05-20 2013-01-08 David Mandelstam Telecommunication system and method of synchronization
CN102075813A (en) * 2009-08-28 2011-05-25 耶德托存取公司 Reliable and non-manipulatable processing of data streams in a receiver
US20110069222A1 (en) * 2009-08-28 2011-03-24 Irdeto Access B.V. Reliable and non-manipulatable processing of data streams in a receiver
US20140068656A1 (en) * 2009-08-28 2014-03-06 Irdeto B.V. Reliable and non-manipulatable processing of data streams in a receiver
US8599916B2 (en) * 2009-08-28 2013-12-03 Irdeto B.V. Reliable and non-manipulatable processing of data streams in a receiver
US11055103B2 (en) 2010-01-21 2021-07-06 Cornami, Inc. Method and apparatus for a multi-core system for implementing stream-based computations having inputs from multiple streams
US9538253B2 (en) * 2010-11-18 2017-01-03 Rpx Corporation Antenna system with individually addressable elements in dense array
US20140320748A1 (en) * 2010-11-18 2014-10-30 Aereo, Inc. Antenna System with Individually Addressable Elements in Dense Array
US9367412B2 (en) 2012-06-25 2016-06-14 Netapp, Inc. Non-disruptive controller replacement in network storage systems
WO2014004381A3 (en) * 2012-06-25 2014-04-10 Netapp, Inc. Non-disruptive controller replacement in network storage systems
US9847940B2 (en) * 2014-07-04 2017-12-19 Fujitsu Limited Control method, packet processing device, and storage medium
CN113711542A (en) * 2019-05-22 2021-11-26 欧姆龙株式会社 Network machine

Also Published As

Publication number Publication date
US6219697B1 (en) 2001-04-17
US6405247B1 (en) 2002-06-11

Similar Documents

Publication Publication Date Title
US6219697B1 (en) Method and apparatus for operating the internet protocol over a high-speed serial bus
US6522654B1 (en) Method for hosting the internet protocol suite on the IEEE-1394 high speed serial bus
JP2878062B2 (en) System and method for extending network resources to a remote network
US5915119A (en) Proxy terminal for network controlling of power managed user terminals in suspend mode
EP0689696B1 (en) System for reverse address resolution for remote network device
US7616635B2 (en) Address mapping for data packet routing
US6928478B1 (en) Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate
US7269661B2 (en) Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet
US20040260841A1 (en) Method, apparatus, and system for internet protocol communication over intelligent platform management bus
US6219353B1 (en) Message hub
US7536479B2 (en) Local and remote network based management of an operating system-independent processor
Cisco Configuring the CSA
Cisco System Error Messages
Cisco System Error Messages
Cisco System Error Messages
Cisco System Error Messages
Cisco System Error Messages
Cisco System Error Messages
Cisco Cable Installation and Interface Configuration
Cisco IBM Channel Attach Commands
Cisco IBM Channel Attach Commands
Cisco IBM Channel Attach Commands
Cisco IBM Channel Attach Commands
Cisco IBM Channel Attach Commands
Cisco IBM Channel Attach Commands

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA

Free format text: MERGER;ASSIGNOR:3COM CORPORATION;REEL/FRAME:024630/0820

Effective date: 20100428

AS Assignment

Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SEE ATTACHED;ASSIGNOR:3COM CORPORATION;REEL/FRAME:025039/0844

Effective date: 20100428

AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:027329/0044

Effective date: 20030131

AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: CORRECTIVE ASSIGNMENT PREVIUOSLY RECORDED ON REEL 027329 FRAME 0001 AND 0044;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:028911/0846

Effective date: 20111010

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001

Effective date: 20151027