US20100205325A1 - Modular Device Component - Google Patents
Modular Device Component Download PDFInfo
- Publication number
- US20100205325A1 US20100205325A1 US12/593,674 US59367408A US2010205325A1 US 20100205325 A1 US20100205325 A1 US 20100205325A1 US 59367408 A US59367408 A US 59367408A US 2010205325 A1 US2010205325 A1 US 2010205325A1
- Authority
- US
- United States
- Prior art keywords
- data
- processor
- network connection
- network
- memory
- 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
Links
- 238000012545 processing Methods 0.000 claims description 18
- 239000000872 buffer Substances 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 230000027455 binding Effects 0.000 description 4
- 238000009739 binding Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
- H04L47/726—Reserving resources in multiple paths to be used simultaneously
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1006—Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
Definitions
- the presented invention relates to a component of an electrical device and more particularly to the construction of the component and the way in which it connects to a network.
- a device consists of a number of components, each responsible for a different application or service, connected by a network interconnect.
- An example of such a modular architecture is that of Network on a Terminal Architecture (NoTA).
- FIG. 1 shows two interconnected NoTA communications stacks that logically enable two services to communicate.
- the first communication stack 1 comprises a first network stack 2 , first middleware 3 , a first operating system 4 and first bindings 5 , and enables the first service 6 to communicate with a second service 7 .
- the second communication stack 8 comprises a second network stack 9 , second middleware 10 , a second operating system 11 and second bindings 12 , and enables the second service 7 to communicate with the first service 6 .
- the two communication stacks are connected through a network 13 .
- network stack may relate to the first four layers of the Open Systems Interconnection Basic Reference Model (OSI Model).
- OSI Model Open Systems Interconnection Basic Reference Model
- the first four layers of the OSI model are often known as the physical layer, the data link layer, the network layer and the transport layer. These four layers deal with the transport of data between applications and services and the network.
- Middleware generally relates to software layers that mediate interaction between applications or services so that they can exchange data.
- the provision of middleware in a system also simplifies application development, by providing functions, such as masking the heterogeneity and distribution of the underlying hardware and operating systems, and the hiding of low-level programming details.
- a NoTA hardware organisation of an electronic device may comprise a number of components connected through a network, each implementing a different application or service.
- Each component may contain a microprocessor to which an application or service, and a NoTA communications stack (as in FIG. 1 ) may be mapped.
- Each component may further comprise a physical network connection block to receive data from the network switch and a memory to store data.
- the microprocessor, the physical network connection block and the memory may all be connected to a BUS or another kind of communication network.
- contemporary modular components are not truly independent, but instead tend to have interdependencies with other components in the system. This prevents, for example, optimal power management, due to more than one component being required to perform one task that might ideally be performed by a single component.
- IP intellectual property
- the present invention provides a component of an electronic device comprising a network connection processor, which comprises a physical network connection block to receive data from and transmit data to a network and a first data processor configured to process data arriving at the network connection processor, and a second data processor configured to process data received from the network connection processor.
- a network connection processor which comprises a physical network connection block to receive data from and transmit data to a network and a first data processor configured to process data arriving at the network connection processor, and a second data processor configured to process data received from the network connection processor.
- the first data processor may be configured to process the data by implementing middleware and network stack functionalities. This improves the efficiency of the second data processor because the network interconnect traffic is dealt with by the network connection processor and therefore enables the second data processor to perform other tasks. Furthermore, the second data processor need not be over-dimensioned for network traffic.
- the network connection processor may be decouplable from the component. This enables legacy systems to be adapted to the new architecture simply by incorporating the network connection processor. Similarly, this also enables forward integration whereby as long as the component includes a network connection processor, it can be connected to the network.
- the second data processor may be configured to implement an application or service.
- the component may further comprise a transport system configured to transport data between the network connection processor and the secondary data processor.
- the component may have internal memory. This enables incoming data to be stored prior to being processed by the second data processor.
- the transport system may be further configured to transport data between the network connection processor and the memory, and between the second data processor and the memory.
- the component may have external memory, the external memory being exclusive to the component so as to reduce interdependency between components.
- the network connection processor may further comprise memory.
- the memory may comprise circular buffers. This improves the overall performance of the network connection processor by enabling received data to be stored prior to processing.
- the second data processor may be a field programmable gate array. This enables the component to be programmable and therefore able to implement a number of different services or applications as desired.
- the transport system may be a BUS.
- the present invention also provides an electronic device of modular construction comprising a plurality of components as described above. This enables the device to perform a number of different services or applications, with each being mapped to a different component.
- the plurality of components may be connected by the network, and the electronic device may be a mobile phone.
- the first data processor may be configured to implement firewall functionalities.
- the present invention further provides a method comprising receiving data from a network, processing the received data, transporting the processed data to a memory, storing the processed data, transporting the processed data from the memory to a second data processor and further processing the processed data.
- Processing the received data may comprise implementing network stack and middleware functionalities.
- Further processing the processed data may comprise implementing an application or service.
- Processing the received data may comprise implementing firewall functionalities.
- FIG. 1 shows two interconnected NoTA communications stacks.
- FIG. 2 shows a mobile telephone terminal.
- FIG. 3 shows an exemplary modular network hardware organisation of the mobile telephone phone terminal of FIG. 2 .
- FIG. 4 shows a component of the modular network hardware organisation of FIG. 3 .
- FIG. 5 shows the flow of data within the component of FIG. 4 .
- FIG. 6 shows a conventional component of modular network hardware organisation.
- FIG. 7 shows the flow of data within the component of FIG. 6 .
- FIG. 8 shows a conceptual memory allocation for the network connection processor memory.
- FIG. 9 shows a component of the modular network hardware architecture wherein the service is mapped to a field programmable gate array.
- FIG. 10 shows a network connection processor as the network connection point of a complex computing architecture.
- FIG. 11 shows a network connection processor configured to implement a firewall.
- FIG. 2 shows a mobile phone terminal. Visible are an aerial 14 , a speaker 15 , a display 16 , a keypad 17 and an audio receiver 18 .
- FIG. 3 shows an exemplary modular network hardware organisation of the mobile telephone depicted in FIG. 2 .
- the mobile phone comprises a plurality of components each relating to a different function of the mobile phone.
- the components comprise the aerial 14 , the speaker 15 , the display 16 , the keypad 17 , the audio receiver 18 , a memory 19 , a clock 20 , a SIM card reader 21 , an MP3 player 22 , a video player 23 , an image viewer 24 , a modem 25 .
- Each component is connected to a network switch 26 .
- Data may be passed from one component to another, via the network switch 26 .
- data received by the aerial 14 may be passed via the network switch 26 to the speaker 15 and likewise data received from the audio receiver 18 may be passed via the network switch 26 to the aerial 14 .
- FIG. 4 shows an example of a component of the modular network hardware organisation of FIG. 3 .
- the component may be, for example, the video viewer 23 .
- the component 23 comprises a network connection processor (NCP) 27 , a component processor 28 , a memory 29 and an internal connection such as a BUS 30 .
- the network connection processor (NCP) 27 is a hardware processor.
- the network connection processor 27 has an integrated physical network connection block (PNCB) 31 , which is connected to the network switch 26 of the hardware organisation.
- the physical network connection block 31 may receive incoming data from the network switch 26 , and conversely the network switch 26 may receive outgoing data from physical network connection block 31 .
- Mapped to the network connection processor 27 are network stack 2 and middleware 3 functionalities. These functionalities are responsible for the decoding of the incoming data and the determination of the destination of the incoming data, such as whether the data be passed to the memory 29 for retrieval at a later time, or whether it be passed to the memory 29 and on to the component processor 28 for immediate processing. Furthermore they are also responsible for, among other things, the transformation of the incoming data into a format that is recognized by the component processor 28 .
- the network connection processor 27 may also be implemented so as to enforce memory locality, whereby it denies access to the component memory by a second component. This reduces the interdependency between components.
- the presence of the network connection processor 27 means that the component processor 28 need not perform the above functions and thus the component processor 28 is free to perform other tasks.
- the network connection processor 27 may have internal memory 32 . It may be used as buffers for DMA-like situations, temporal storage for protocol processing, temporal and configuration storage for the middleware 3 , and as an instruction and/or data cache for the network connection processor 27 . However, the network connection processor 27 may still operate successfully without an internal memory. Instead, the network connection processor 27 could utilise the component memory 29 .
- the component processor 28 may be a microchip, which has mapped to it the service or application 6 , the bindings 5 , and operating system (OS) software 4 .
- the component processor receives data of a recognized format from the network connection processor 27 and implements the service or the application 6 .
- the processing power of the network connection processor 27 may be relatively low in comparison to that of the component processor 27 due to the limited functionality it is required to implement.
- component memory 29 has been depicted as embedded memory, this is only a logical restriction.
- the memory 29 may be physically outside of the component 23 , but it is important that the memory is logically not accessible by anyone else other than the component 23 itself.
- a network connection processor 27 in a component of modular-network hardware architecture is desirable due to the programmer-friendly interface provided towards the component processor, flexibility in DMA and other memory management schemes, and the possibility for software or firmware updates.
- the efficiency of the network connection processor 27 can be further enhanced with the use of application (or service) specific instructions, thus making the network connection processor 27 an Application Specific Instruction-set Processor (ASIP).
- ASIP Application Specific Instruction-set Processor
- a network connection processor facilitates the implementation of highly modular systems. This may result in increased power efficiency, because where a particular function might have required two or more components to be operational in a previous, less modular system, a highly modular system may be able carry out the function with just one dedicated component.
- a network connection processor 27 also enables unknown vendors to implement their IP, i.e. their software and its underlying functionality, with a particular architecture.
- IP i.e. their software and its underlying functionality
- the above-described embodiments allow that, instead of revealing the details of the architecture to an unknown vendor, the producer of the architecture is able to give the vendor a network connection processor 27 , which the vendor can integrate with their IP to form a new component. The producer can then simply plug in the new component to existing prototyping environments in order to test it.
- FIG. 5 shows the flow of data into and within a component, such as that in FIG. 4 .
- a data packet comprising three individual data pieces, is incoming from the network and the component processor requires the first data piece for immediate processing.
- the data packet (d 1 , d 2 , d 3 ) is received s 1 from the network stack 26 by the network connection processor 27 , where the destinations of the individual data pieces are determined.
- the network connection processor 27 then sends the whole data packet to the BUS 30 s 2 .
- the data packet is then transferred from the BUS 30 to the memory 29 s 3 .
- the required first data piece (d 1 ) is passed from the memory 29 to the BUS 30 s 4 , and from the BUS 30 to the component processor 28 s 5 for processing.
- FIG. 6 shows a conventional component of a modular network architecture, without a network connection processor.
- the component 33 comprises a component processor 34 , a memory 35 , a physical network connection block 36 and a BUS 37 .
- the physical network connection block 36 is connected to the network switch 26 . Mapped to the component processor are the service 6 , bindings 5 , an operating system 4 , middleware 3 and the network stack 2 .
- FIG. 7 shows the flow of data into and within the component of FIG. 6 .
- a data packet comprising three individual data pieces is incoming from the network and the component processor requires the first data piece for immediate processing.
- the data packet (d 1 , d 2 , d 3 ) is received t 1 by the physical network connection block 36 from the network switch 26 .
- the component processor then transfers the first piece of data (d 1 ) from the physical network connection block 36 to the BUS 37 t 2 , and then from the BUS 37 to itself t 3 .
- the component processor 34 then determines the destination of the data piece.
- the data piece is then transferred back to the BUS 37 t 4 and on to the memory 35 for storage t 5 . This process is then repeated for the other two data pieces.
- the second data piece (d 2 ) is transferred from the physical network block 36 to the BUS 37 t 6 , from the BUS 37 to the component processor 34 t 7 , from the component processor 34 to the BUS 37 t 8 , and finally from the BUS 37 to the memory 35 for storage t 9 .
- the same operations occur with the third data piece and comprises a further four data transfers (t 10 to t 13 ).
- the first data piece is recalled from the memory 35 to the BUS 37 t 14 , and then onto the component processor 34 for processing t 15 .
- FIG. 8 depicts the conceptual memory allocation for the network connection processor memory 32 .
- the code and stack 38 portion may be used to store instructions and variables for the operating system, the network stack, the middleware, and any low-level control software that the network connection processor requires in order to operate.
- the memory may further comprise circular buffers which comprise a first transmit buffer 39 , a second transmit buffer 40 and a third transmit buffer 41 , and also a first receive buffer 42 , a second receive buffer 43 and a third receive buffer 44 .
- the heap 45 controls the allocation of the buffers
- the number of buffers does not need to be high, but it is advantageous to have several so that they can be rotated. That is, when a receive buffer becomes full, it is converted into a transmit buffer and it becomes read-only. After the contents of the transmit buffer have been transferred off the network connection processor, the allocated memory space of the buffer may be freed.
- the use of the network connection processor is not limited to the example of FIG. 4 .
- the service or application may be mapped to the network connection processor rather than to a separate component processor.
- FIG. 9 illustrates a component 46 comprising a field programmable gate array 47 , a memory 48 , a BUS 49 and a network connection processor 27 (as in FIG. 4 ).
- FIG. 10 shows a network connection processor as the connection point of a complex computing architecture.
- a component 50 comprises a network connection processor 27 , a component processor 51 with dedicated memory 52 , a hardware accelerator 53 , component memory 54 , a BUS 55 and a bridge 56 .
- the network connection processor 27 is connected to the network switch 26 .
- the bridge 56 is connected to the BUS 55 and the peripheral BUS 57 , which may be the interconnect of another component or even an entire network.
- the network connection processor may also be configured to implement firewall functionalities.
- FIG. 11 shows a network connection processor including such a capability.
- the network connection processor 27 comprises a firewall 58 interposed between the network stack 2 and the PNCB 31 .
- the firewall functionality may be implemented by a network layer firewall.
- a network layer filter may also be known as a packet filter.
- the firewall may be configured to filter out incoming data from unauthorized sources.
- the firewall may alternatively or additionally be configured to filter out incoming data that does not comply with predetermined allowed data patterns. This allows data that matches the predetermined allowed patterns and/or data incoming from authorized sources to pass. Other data is discarded.
- a user of the hardware organisation may define the authorised sources and/or allowed data patterns. Alternatively, the authorised sources and/or allowed data patterns may be pre-stored in the hardware organisation.
- the firewall may comprise a stateful network layer firewall or a stateless network layer firewall.
- the firewall functionalities may alternatively be implemented by a firewall other than of the network layer firewall type.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
Description
- The presented invention relates to a component of an electrical device and more particularly to the construction of the component and the way in which it connects to a network.
- In many companies with complex high technology products, the renewal of product architectures can be a very arduous process. It is common that a successful technical asset in the beginning turns out to be a significant barrier to renewing the company. This results in legacy gradually taking control over the decisions and real changes not being made until the situation becomes critical.
- Therefore, in recent times, such companies have been investigating solutions to this problem. One such solution is the use of modular architectures, wherein a device consists of a number of components, each responsible for a different application or service, connected by a network interconnect. An example of such a modular architecture is that of Network on a Terminal Architecture (NoTA).
- In NoTA each component has mapped to it a service/services or application/applications and a communication stack, with each communications stack connected to the network interconnect.
FIG. 1 shows two interconnected NoTA communications stacks that logically enable two services to communicate. Thefirst communication stack 1 comprises afirst network stack 2,first middleware 3, afirst operating system 4 andfirst bindings 5, and enables thefirst service 6 to communicate with asecond service 7. Likewise, thesecond communication stack 8 comprises asecond network stack 9,second middleware 10, asecond operating system 11 andsecond bindings 12, and enables thesecond service 7 to communicate with thefirst service 6. The two communication stacks are connected through anetwork 13. - In this case the term network stack may relate to the first four layers of the Open Systems Interconnection Basic Reference Model (OSI Model). The first four layers of the OSI model are often known as the physical layer, the data link layer, the network layer and the transport layer. These four layers deal with the transport of data between applications and services and the network.
- Middleware generally relates to software layers that mediate interaction between applications or services so that they can exchange data. The provision of middleware in a system also simplifies application development, by providing functions, such as masking the heterogeneity and distribution of the underlying hardware and operating systems, and the hiding of low-level programming details.
- A NoTA hardware organisation of an electronic device may comprise a number of components connected through a network, each implementing a different application or service.
- Each component may contain a microprocessor to which an application or service, and a NoTA communications stack (as in
FIG. 1 ) may be mapped. Each component may further comprise a physical network connection block to receive data from the network switch and a memory to store data. The microprocessor, the physical network connection block and the memory may all be connected to a BUS or another kind of communication network. - One main problem that exists with conventional modular architectures is that the components contain many implementation layers (such as those in
FIG. 1 ) with complex functionality. Therefore, the automatic implementation of these layers tends to result in a large code footprint, slow execution due to the component processor having to process the network traffic loads, and low power efficiency. Hence, such modular architectures tend not to be very competitive when compared to dedicated communication implementations with fewer channels. - Furthermore, generally, contemporary modular components are not truly independent, but instead tend to have interdependencies with other components in the system. This prevents, for example, optimal power management, due to more than one component being required to perform one task that might ideally be performed by a single component.
- Another issue with contemporary modular components is that often the component processor is also responsible for moving incoming data to the memory. This means that the processor is unavailable for performing other more important tasks during this time.
- Besides the renewal of architectures, another important issue that affects companies with complex high technology products is how to enable vendors to bring their intellectual property (IP) to a particular architecture. Traditionally, this has been difficult due to the confidentiality of future device architectures. Moreover, if a vendor develops IP for an existing architecture they may be too late, because new designs are likely to utilise new architectures.
- The present invention provides a component of an electronic device comprising a network connection processor, which comprises a physical network connection block to receive data from and transmit data to a network and a first data processor configured to process data arriving at the network connection processor, and a second data processor configured to process data received from the network connection processor.
- The first data processor may be configured to process the data by implementing middleware and network stack functionalities. This improves the efficiency of the second data processor because the network interconnect traffic is dealt with by the network connection processor and therefore enables the second data processor to perform other tasks. Furthermore, the second data processor need not be over-dimensioned for network traffic.
- The network connection processor may be decouplable from the component. This enables legacy systems to be adapted to the new architecture simply by incorporating the network connection processor. Similarly, this also enables forward integration whereby as long as the component includes a network connection processor, it can be connected to the network.
- The second data processor may be configured to implement an application or service.
- The component may further comprise a transport system configured to transport data between the network connection processor and the secondary data processor.
- The component may have internal memory. This enables incoming data to be stored prior to being processed by the second data processor.
- The transport system may be further configured to transport data between the network connection processor and the memory, and between the second data processor and the memory.
- The component may have external memory, the external memory being exclusive to the component so as to reduce interdependency between components.
- The network connection processor may further comprise memory. The memory may comprise circular buffers. This improves the overall performance of the network connection processor by enabling received data to be stored prior to processing.
- The second data processor may be a field programmable gate array. This enables the component to be programmable and therefore able to implement a number of different services or applications as desired.
- The transport system may be a BUS.
- The present invention also provides an electronic device of modular construction comprising a plurality of components as described above. This enables the device to perform a number of different services or applications, with each being mapped to a different component.
- The plurality of components may be connected by the network, and the electronic device may be a mobile phone.
- The first data processor may be configured to implement firewall functionalities.
- The present invention further provides a method comprising receiving data from a network, processing the received data, transporting the processed data to a memory, storing the processed data, transporting the processed data from the memory to a second data processor and further processing the processed data.
- Processing the received data may comprise implementing network stack and middleware functionalities.
- Further processing the processed data may comprise implementing an application or service.
- Processing the received data may comprise implementing firewall functionalities.
- Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings in which:
-
FIG. 1 shows two interconnected NoTA communications stacks. -
FIG. 2 shows a mobile telephone terminal. -
FIG. 3 shows an exemplary modular network hardware organisation of the mobile telephone phone terminal ofFIG. 2 . -
FIG. 4 shows a component of the modular network hardware organisation ofFIG. 3 . -
FIG. 5 shows the flow of data within the component ofFIG. 4 . -
FIG. 6 shows a conventional component of modular network hardware organisation. -
FIG. 7 shows the flow of data within the component ofFIG. 6 . -
FIG. 8 shows a conceptual memory allocation for the network connection processor memory. -
FIG. 9 shows a component of the modular network hardware architecture wherein the service is mapped to a field programmable gate array. -
FIG. 10 shows a network connection processor as the network connection point of a complex computing architecture. -
FIG. 11 shows a network connection processor configured to implement a firewall. -
FIG. 2 shows a mobile phone terminal. Visible are an aerial 14, aspeaker 15, adisplay 16, akeypad 17 and anaudio receiver 18. -
FIG. 3 shows an exemplary modular network hardware organisation of the mobile telephone depicted inFIG. 2 . The mobile phone comprises a plurality of components each relating to a different function of the mobile phone. The components comprise the aerial 14, thespeaker 15, thedisplay 16, thekeypad 17, theaudio receiver 18, amemory 19, aclock 20, aSIM card reader 21, anMP3 player 22, avideo player 23, animage viewer 24, amodem 25. Each component is connected to anetwork switch 26. - Data may be passed from one component to another, via the
network switch 26. For example, data received by the aerial 14 may be passed via thenetwork switch 26 to thespeaker 15 and likewise data received from theaudio receiver 18 may be passed via thenetwork switch 26 to the aerial 14. -
FIG. 4 shows an example of a component of the modular network hardware organisation ofFIG. 3 . The component may be, for example, thevideo viewer 23. Thecomponent 23 comprises a network connection processor (NCP) 27, acomponent processor 28, amemory 29 and an internal connection such as aBUS 30. The network connection processor (NCP) 27 is a hardware processor. - The
network connection processor 27 has an integrated physical network connection block (PNCB) 31, which is connected to thenetwork switch 26 of the hardware organisation. The physicalnetwork connection block 31 may receive incoming data from thenetwork switch 26, and conversely thenetwork switch 26 may receive outgoing data from physicalnetwork connection block 31. - Mapped to the
network connection processor 27 arenetwork stack 2 andmiddleware 3 functionalities. These functionalities are responsible for the decoding of the incoming data and the determination of the destination of the incoming data, such as whether the data be passed to thememory 29 for retrieval at a later time, or whether it be passed to thememory 29 and on to thecomponent processor 28 for immediate processing. Furthermore they are also responsible for, among other things, the transformation of the incoming data into a format that is recognized by thecomponent processor 28. Thenetwork connection processor 27 may also be implemented so as to enforce memory locality, whereby it denies access to the component memory by a second component. This reduces the interdependency between components. - The presence of the
network connection processor 27 means that thecomponent processor 28 need not perform the above functions and thus thecomponent processor 28 is free to perform other tasks. - It may be advisable, for performance reasons, for the
network connection processor 27 to haveinternal memory 32. It may be used as buffers for DMA-like situations, temporal storage for protocol processing, temporal and configuration storage for themiddleware 3, and as an instruction and/or data cache for thenetwork connection processor 27. However, thenetwork connection processor 27 may still operate successfully without an internal memory. Instead, thenetwork connection processor 27 could utilise thecomponent memory 29. - The
component processor 28 may be a microchip, which has mapped to it the service orapplication 6, thebindings 5, and operating system (OS)software 4. The component processor receives data of a recognized format from thenetwork connection processor 27 and implements the service or theapplication 6. - The processing power of the
network connection processor 27 may be relatively low in comparison to that of thecomponent processor 27 due to the limited functionality it is required to implement. - It should be noted that although the
component memory 29 has been depicted as embedded memory, this is only a logical restriction. Thememory 29 may be physically outside of thecomponent 23, but it is important that the memory is logically not accessible by anyone else other than thecomponent 23 itself. - The provision of a
network connection processor 27 in a component of modular-network hardware architecture is desirable due to the programmer-friendly interface provided towards the component processor, flexibility in DMA and other memory management schemes, and the possibility for software or firmware updates. The efficiency of thenetwork connection processor 27 can be further enhanced with the use of application (or service) specific instructions, thus making thenetwork connection processor 27 an Application Specific Instruction-set Processor (ASIP). - Furthermore, a network connection processor facilitates the implementation of highly modular systems. This may result in increased power efficiency, because where a particular function might have required two or more components to be operational in a previous, less modular system, a highly modular system may be able carry out the function with just one dedicated component.
- The provision of a
network connection processor 27 also enables unknown vendors to implement their IP, i.e. their software and its underlying functionality, with a particular architecture. In conventional systems, in order to incorporate IP into a particular architecture, it is necessary for the vendor to know and understand the architecture so that they can integrate their IP with that architecture. This is sometimes a problem as a producer of the architecture may be reluctant to commit to purchase and thus disclose the details of the architecture without having sufficiently tested the vendor's product. The above-described embodiments allow that, instead of revealing the details of the architecture to an unknown vendor, the producer of the architecture is able to give the vendor anetwork connection processor 27, which the vendor can integrate with their IP to form a new component. The producer can then simply plug in the new component to existing prototyping environments in order to test it. - The provision of a
network connection processor 27 in a component also provides significant improvements in performance when compared to conventional component implementation.FIG. 5 shows the flow of data into and within a component, such as that inFIG. 4 . In this example, a data packet, comprising three individual data pieces, is incoming from the network and the component processor requires the first data piece for immediate processing. First, the data packet (d1, d2, d3) is received s1 from thenetwork stack 26 by thenetwork connection processor 27, where the destinations of the individual data pieces are determined. Thenetwork connection processor 27 then sends the whole data packet to theBUS 30 s2. The data packet is then transferred from theBUS 30 to thememory 29 s3. At this point, the required first data piece (d1) is passed from thememory 29 to theBUS 30 s4, and from theBUS 30 to thecomponent processor 28 s5 for processing. -
FIG. 6 shows a conventional component of a modular network architecture, without a network connection processor. Thecomponent 33 comprises acomponent processor 34, amemory 35, a physicalnetwork connection block 36 and aBUS 37. The physicalnetwork connection block 36 is connected to thenetwork switch 26. Mapped to the component processor are theservice 6,bindings 5, anoperating system 4,middleware 3 and thenetwork stack 2. -
FIG. 7 shows the flow of data into and within the component ofFIG. 6 . Again a data packet comprising three individual data pieces is incoming from the network and the component processor requires the first data piece for immediate processing. - First, the data packet (d1, d2, d3) is received t1 by the physical
network connection block 36 from thenetwork switch 26. The component processor then transfers the first piece of data (d1) from the physicalnetwork connection block 36 to theBUS 37 t2, and then from theBUS 37 to itself t3. Thecomponent processor 34 then determines the destination of the data piece. The data piece is then transferred back to theBUS 37 t4 and on to thememory 35 for storage t5. This process is then repeated for the other two data pieces. The second data piece (d2) is transferred from thephysical network block 36 to theBUS 37 t6, from theBUS 37 to thecomponent processor 34 t7, from thecomponent processor 34 to theBUS 37 t8, and finally from theBUS 37 to thememory 35 for storage t9. The same operations occur with the third data piece and comprises a further four data transfers (t10 to t13). When all three data pieces have be transferred to the memory, the first data piece is recalled from thememory 35 to theBUS 37 t14, and then onto thecomponent processor 34 for processing t15. - From a comparison of
FIGS. 5 and 7 , it is clear that the provision of thenetwork connection processor 27 dramatically reduces the data traffic within the component. -
FIG. 8 depicts the conceptual memory allocation for the networkconnection processor memory 32. The code and stack 38 portion may be used to store instructions and variables for the operating system, the network stack, the middleware, and any low-level control software that the network connection processor requires in order to operate. The memory may further comprise circular buffers which comprise a first transmitbuffer 39, a second transmitbuffer 40 and a third transmitbuffer 41, and also a first receivebuffer 42, a second receivebuffer 43 and a third receivebuffer 44. Theheap 45 controls the allocation of the buffers - The number of buffers does not need to be high, but it is advantageous to have several so that they can be rotated. That is, when a receive buffer becomes full, it is converted into a transmit buffer and it becomes read-only. After the contents of the transmit buffer have been transferred off the network connection processor, the allocated memory space of the buffer may be freed.
- The use of the network connection processor is not limited to the example of
FIG. 4 . For example, if the service or application is very small, such as a single sensor, but a connection to the network is still desired, the service or application may be mapped to the network connection processor rather than to a separate component processor. - Similarly, hardware-centric IP can also be integrated with a network connection processor. Depending on the complexity of the service, the network connection processor may need to decode the service messages or the hardware may be sufficiently intelligent to do it on its own. Field programmable gate arrays could be used to provide a programmable hardware service. By providing the field programmable gate array with new configuration bitstreams, it could be used as a different service every time.
FIG. 9 illustrates acomponent 46 comprising a fieldprogrammable gate array 47, amemory 48, aBUS 49 and a network connection processor 27 (as inFIG. 4 ). -
FIG. 10 shows a network connection processor as the connection point of a complex computing architecture. Acomponent 50 comprises anetwork connection processor 27, acomponent processor 51 withdedicated memory 52, ahardware accelerator 53,component memory 54, aBUS 55 and abridge 56. Thenetwork connection processor 27 is connected to thenetwork switch 26. Thebridge 56 is connected to theBUS 55 and theperipheral BUS 57, which may be the interconnect of another component or even an entire network. - In addition to the features described above, the network connection processor may also be configured to implement firewall functionalities.
FIG. 11 shows a network connection processor including such a capability. In addition to the features of the above-described embodiments, thenetwork connection processor 27 comprises afirewall 58 interposed between thenetwork stack 2 and thePNCB 31. - The firewall functionality may be implemented by a network layer firewall. A network layer filter may also be known as a packet filter. As such, the firewall may be configured to filter out incoming data from unauthorized sources. The firewall may alternatively or additionally be configured to filter out incoming data that does not comply with predetermined allowed data patterns. This allows data that matches the predetermined allowed patterns and/or data incoming from authorized sources to pass. Other data is discarded. A user of the hardware organisation may define the authorised sources and/or allowed data patterns. Alternatively, the authorised sources and/or allowed data patterns may be pre-stored in the hardware organisation. The firewall may comprise a stateful network layer firewall or a stateless network layer firewall.
- The firewall functionalities may alternatively be implemented by a firewall other than of the network layer firewall type.
- It should be realised that the foregoing examples should not be construed as limiting. Other variations and modifications will be apparent to persons skilled in the art upon reading the present application. Moreover, the disclosure of the present application should be understood to include any novel features or any novel combination of features either explicitly or implicitly disclosed herein or any generalisation thereof and during the prosecution of the present application or of any application derived therefrom, new claims may be formulated to cover any such features and/or combination of such features.
Claims (21)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0706134.4 | 2007-03-29 | ||
US0706134.4 | 2007-03-29 | ||
GBGB0706134.4A GB0706134D0 (en) | 2007-03-29 | 2007-03-29 | A modular device component |
PCT/EP2008/053630 WO2008119732A1 (en) | 2007-03-29 | 2008-03-27 | A modular device component |
Publications (2)
Publication Number | Publication Date |
---|---|
US20100205325A1 true US20100205325A1 (en) | 2010-08-12 |
US8850076B2 US8850076B2 (en) | 2014-09-30 |
Family
ID=38050466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/593,674 Expired - Fee Related US8850076B2 (en) | 2007-03-29 | 2008-03-27 | Modular device component |
Country Status (3)
Country | Link |
---|---|
US (1) | US8850076B2 (en) |
GB (1) | GB0706134D0 (en) |
WO (1) | WO2008119732A1 (en) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010005884A1 (en) * | 1999-12-24 | 2001-06-28 | Teruharu Serada | Communication method and communication system |
US20020016706A1 (en) * | 2000-07-03 | 2002-02-07 | Cadence Design Systems,Inc. | System and method for a circuit component interface |
US6353867B1 (en) * | 2000-01-14 | 2002-03-05 | Insilicon Corporation | Virtual component on-chip interface |
US20020087729A1 (en) * | 2000-09-11 | 2002-07-04 | Edgar David A. | System, method and computer program product for optimization and acceleration of data transport and processing |
US20020144045A1 (en) * | 2001-03-27 | 2002-10-03 | Sagar Edara | Method and apparatus for providing a modular system on-chip interface |
US20020143928A1 (en) * | 2000-12-07 | 2002-10-03 | Maltz David A. | Method and system for collection and storage of traffic data in a computer network |
US20040042483A1 (en) * | 2002-08-30 | 2004-03-04 | Uri Elzur | System and method for TCP offload |
US20040176059A1 (en) * | 2002-12-18 | 2004-09-09 | Frederic Hayem | Multi-processor platform for wireless communication terminal having partitioned protocol stack |
US20040257986A1 (en) * | 2003-06-05 | 2004-12-23 | Jha Ashutosh K. | Processing data for a TCP connection using an offload unit |
US20050021871A1 (en) * | 2003-07-25 | 2005-01-27 | International Business Machines Corporation | Self-contained processor subsystem as component for system-on-chip design |
US20050257031A1 (en) * | 2000-09-02 | 2005-11-17 | Actel Corporation | Field programmable gate array and microcontroller system-on-a-chip |
US7159052B1 (en) * | 1999-11-02 | 2007-01-02 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Configurable architecture for virtual socket client to an on-chip bus interface block |
US20070030856A1 (en) * | 2005-08-08 | 2007-02-08 | Cooke Stephen P | Shared DSL Network and Deployment Method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004035843B4 (en) | 2004-07-23 | 2010-04-15 | Infineon Technologies Ag | Router Network Processor |
-
2007
- 2007-03-29 GB GBGB0706134.4A patent/GB0706134D0/en not_active Ceased
-
2008
- 2008-03-27 WO PCT/EP2008/053630 patent/WO2008119732A1/en active Application Filing
- 2008-03-27 US US12/593,674 patent/US8850076B2/en not_active Expired - Fee Related
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159052B1 (en) * | 1999-11-02 | 2007-01-02 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Configurable architecture for virtual socket client to an on-chip bus interface block |
US20010005884A1 (en) * | 1999-12-24 | 2001-06-28 | Teruharu Serada | Communication method and communication system |
US6353867B1 (en) * | 2000-01-14 | 2002-03-05 | Insilicon Corporation | Virtual component on-chip interface |
US20020016706A1 (en) * | 2000-07-03 | 2002-02-07 | Cadence Design Systems,Inc. | System and method for a circuit component interface |
US20050257031A1 (en) * | 2000-09-02 | 2005-11-17 | Actel Corporation | Field programmable gate array and microcontroller system-on-a-chip |
US20020087729A1 (en) * | 2000-09-11 | 2002-07-04 | Edgar David A. | System, method and computer program product for optimization and acceleration of data transport and processing |
US20050265315A1 (en) * | 2000-09-11 | 2005-12-01 | Ablesoft, Inc. | System, method, and computer program product for optimization and acceleration of data transport and processing |
US20020143928A1 (en) * | 2000-12-07 | 2002-10-03 | Maltz David A. | Method and system for collection and storage of traffic data in a computer network |
US20020144045A1 (en) * | 2001-03-27 | 2002-10-03 | Sagar Edara | Method and apparatus for providing a modular system on-chip interface |
US20040042483A1 (en) * | 2002-08-30 | 2004-03-04 | Uri Elzur | System and method for TCP offload |
US20040176059A1 (en) * | 2002-12-18 | 2004-09-09 | Frederic Hayem | Multi-processor platform for wireless communication terminal having partitioned protocol stack |
US20040257986A1 (en) * | 2003-06-05 | 2004-12-23 | Jha Ashutosh K. | Processing data for a TCP connection using an offload unit |
US20050021871A1 (en) * | 2003-07-25 | 2005-01-27 | International Business Machines Corporation | Self-contained processor subsystem as component for system-on-chip design |
US20070030856A1 (en) * | 2005-08-08 | 2007-02-08 | Cooke Stephen P | Shared DSL Network and Deployment Method |
Non-Patent Citations (2)
Title |
---|
Google Patent Search * |
IP.com Search * |
Also Published As
Publication number | Publication date |
---|---|
US8850076B2 (en) | 2014-09-30 |
WO2008119732A1 (en) | 2008-10-09 |
GB0706134D0 (en) | 2007-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2477930C2 (en) | Method and system for transmitting flow multimedia data with zero copying | |
EP1374403B1 (en) | Integrated circuit | |
US20040017819A1 (en) | Receive queue descriptor pool | |
US20100192154A1 (en) | Separation kernel with memory allocation, remote procedure call and exception handling mechanisms | |
US20040100900A1 (en) | Message transfer system | |
CN103023684A (en) | Method, device and system for network information management | |
CN104796328B (en) | The gateway host of the data communication equipment of multiplex roles or agreement based on KNX/EIB buses | |
US8850076B2 (en) | Modular device component | |
CN112822087A (en) | Data distinguishing method, data distinguishing device, router and network relay equipment | |
CN116996444A (en) | DPDK-based high-speed network packet processing system and method | |
US11500695B2 (en) | Digital signal processing plug-in implementation | |
US7873747B2 (en) | Device and method for transmitting data | |
CN114897532A (en) | Operation log processing method, system, device, equipment and storage medium | |
WO2000002361A1 (en) | Module for mobile terminals | |
CN113055876A (en) | Method and device for downloading standby cloud card and terminal equipment | |
CN110765426A (en) | Equipment permission setting method, device, equipment and computer storage medium | |
EP0470875B1 (en) | Communication controller between a computer and a plurality of ISDN terminals | |
US20080148293A1 (en) | Configurable event broker | |
US7613133B2 (en) | Method, system and computer program product for processing packets at forwarder interfaces | |
US20050160448A1 (en) | Smartcard uart for minimizing processor demands in a conditional access system | |
CN118733304B (en) | Socket communication method and system for realizing local TCP (Transmission control protocol) by shared memory | |
CN116366534B (en) | Multicast traffic replication method based on hardware offloading and related device | |
CN114296821B (en) | Middleware device and system for adapting algorithm application in image pickup equipment | |
CN112748981B (en) | Processing method and device for software mirror image of virtual network function | |
US20140082152A1 (en) | Dynamically Monitoring and Customizing Devices in a Communication Network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NOKIA CORPORATION, FINLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KUUSILINNA, KIMMO KALERVO;NIKARA, JARI ANTERO;LIUHA, PETRI MIKKO JOHANNES;SIGNING DATES FROM 20100412 TO 20100428;REEL/FRAME:024303/0937 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: NOKIA TECHNOLOGIES OY, FINLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOKIA CORPORATION;REEL/FRAME:035561/0438 Effective date: 20150116 |
|
AS | Assignment |
Owner name: PROVENANCE ASSET GROUP LLC, CONNECTICUT Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NOKIA TECHNOLOGIES OY;NOKIA SOLUTIONS AND NETWORKS BV;ALCATEL LUCENT SAS;REEL/FRAME:043877/0001 Effective date: 20170912 Owner name: NOKIA USA INC., CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNORS:PROVENANCE ASSET GROUP HOLDINGS, LLC;PROVENANCE ASSET GROUP LLC;REEL/FRAME:043879/0001 Effective date: 20170913 Owner name: CORTLAND CAPITAL MARKET SERVICES, LLC, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNORS:PROVENANCE ASSET GROUP HOLDINGS, LLC;PROVENANCE ASSET GROUP, LLC;REEL/FRAME:043967/0001 Effective date: 20170913 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.) |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
AS | Assignment |
Owner name: NOKIA US HOLDINGS INC., NEW JERSEY Free format text: ASSIGNMENT AND ASSUMPTION AGREEMENT;ASSIGNOR:NOKIA USA INC.;REEL/FRAME:048370/0682 Effective date: 20181220 |
|
AS | Assignment |
Owner name: PROVENANCE ASSET GROUP LLC, CONNECTICUT Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKETS SERVICES LLC;REEL/FRAME:058983/0104 Effective date: 20211101 Owner name: PROVENANCE ASSET GROUP HOLDINGS LLC, CONNECTICUT Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKETS SERVICES LLC;REEL/FRAME:058983/0104 Effective date: 20211101 Owner name: PROVENANCE ASSET GROUP LLC, CONNECTICUT Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:NOKIA US HOLDINGS INC.;REEL/FRAME:058363/0723 Effective date: 20211129 Owner name: PROVENANCE ASSET GROUP HOLDINGS LLC, CONNECTICUT Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:NOKIA US HOLDINGS INC.;REEL/FRAME:058363/0723 Effective date: 20211129 |
|
AS | Assignment |
Owner name: RPX CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PROVENANCE ASSET GROUP LLC;REEL/FRAME:059352/0001 Effective date: 20211129 |