The present invention relates to electronic multicomponent systems, methods, systems, devices and software for establishing reliable communication in a connection-less environment.
In modern electronic multicomponent systems it is important, that all the electronic components that are used to configure a system can be seamlessly integrated and are able to communicate with each other, no matter which manufacturer originally built the respective component. In order to allow for such type of integration often various manufacturers form a group or an alliance to define certain standards for components and interconnects as well as interfaces of the target system. Such an alliance is the Mobile Industry Processor Interface alliance (MIDI®). At present around 150 manufacturers form part of this alliance. Technical details are kept mostly confidential within the members of the alliance. Certain information is available at http://www.mipi.org/ on the World Wide Web.
With increased speed and processing capabilities of future components it is of utmost importance, that the interconnects between future systems allow for high communication bandwidth. Therefore, often high speed serial interfaces like USB or USB2 are used. The MIPI® alliance has defined UniProSM as a serial high speed link to connect e.g. chips in mobile device. Currently UniProSM is released in a standard 1.0. More information related to this standard, which in some details is also kept member confidential in the MIPISM alliance is available at http://en.wikipedia.org/wiki/UniPro on the World Wide Web.
UniProSM is in particular intended to allow manufacturers of future mobile phones the mixing and matching of components with different functionalities that are supplied by different vendors in order to have a maximum flexibility to create new devices. A UniProSM standard- or Unified Protocol is aimed at chip-to-chip networks using high speed serial links. It is defined to be a general purpose communication protocol that solves the general interconnect problems, such as error handling, flow control, routing or arbitration.
Generally for networks two types of communication services are conceivable: A connection-less (CL) service and a connection oriented (CO) service. The type of connection-oriented communication requires previous to the communication that the connection is to be set up in order to allocate the resources required for a secured communication. In particular this communication set up avoids that one of the buffers from a component participating in the communication overflows or underflows. It is however also conceivable, that a setup of a communication requires resources and time and a certain communication overhead, in order to issue the flow control and manage the connection during data exchange. Another type of service, the connection-less service contrary to the connection oriented service is faster, because no connection needs to be set up. On the other hand, however, due to the fact, that no connection is set up, a communication connection that is operated by a connection-less service may loose data at the edges of the network due to the fact, that the components involved in the communication are not controlled, and thereby buffer underflows or overflows may take place, which can lead to data losses.
In some communication cases however the applied communication service needs to be quick and reliable at the same time. In the case of the Unified Protocol this may be for example the configuration protocol which here is required for discovery and enumeration.
Document US 2005/0240696 A1 discloses a data transfer control device and electronic instrument. Here a data transfer control device includes a transceiver which receives a request packet from a partner device connected with the serial bus and a link controller which analyzes the received request packet. The received request packet includes a response request field for informing whether or not to perform a handshake transfer using an acknowledge packet. The link controller directs transmission of an acknowledge packet for the request packet when a response request value indicating that response is requested has been set in the response request field of the received request packet. The communication according to this document requires a central control device and subsequent evaluation of communication contents which renders the communication rather complicated and makes it time-consuming.
It is an object of the invention to provide a system, method, device or software for establishing reliable communication in a connection-less multicomponent environment on the basis of a reliable network. This object is achieved for a method according to claim 1 and for a system according to claim 13. Advantageous further developments of the invention are defined in the dependent claims.
A method for establishing reliable communication according to the present invention demonstrates the particular advantage, that no coordinating device for the communication is required. Due to the strict follow-up of messages according to the method of the present invention and in particular the processing at the receiver to at least maintain the originator until a third type of message is received, the complete communication flow is ensured without the necessity of a large communication overhead.
Beneficially according to a further embodiment of the present invention a second first type of message is discarded at the receiver while the original of the first type of message is still maintained. This allows a fast communication and avoids double processing of incoming messages on the receiver side.
Advantageously according to a further embodiment of the present invention in case the second type of message is not received within a predefined time period the sender resends the first type of message. By this processing it is advantageously ensured, that once the component on the receiver side is not capable of processing a first type of message it will be automatically resent.
Expediently according to a further embodiment of the method according to the present invention a timer is started on the sender side, to measure the predefined time period. Timers are often used in integrated circuits and thus they provide a cheap and reliable means to time a communication protocol. Preferably the timer is started, as soon as the first type of message is sent from the sender.
Beneficially according to a further embodiment of the method of the present invention the timer is started each time a first type of message is sent at the sender. Thus a complete control of the communication flow is possible even when a sequence of first type of messages is sent from the sender side.
In a particular advantageous fashion a further embodiment of the method according to the present invention allows it to sequentially send at least two first type of messages and handle the associated second type of messages also in a sequential order. Thus communication of a plurality of messages from a sender to a receiver in a reliable manner is much facilitated.
Beneficially according to a further embodiment of the method according to the present invention as unique identifier associated to sequential messages sequence numbers are used that respectively correspond to the first type of messages and are associated to respective second type of messages. This allows the embodiment of the method according to the present invention to keep easy track of the communication in progress in terms of the sequential messages having been transmitted and also allows for an easy error tracking in particular if resuming communication is needed after the receiver was not able to deal with one incoming first type of message having a certain sequence number.
Expediently according to a further embodiment of the method according to the present invention once communication has failed between the sender and the receiver once the predefined time period has expired communication is restarted by issuing a first type of message having the next higher sequence number as a previously received second type of message. By this a continuous communication flow is secured even in the case the receiver is not capable of dealing with a certain first type of message or a plurality thereof.
Of particular advantage is a further embodiment of the method according to the present invention wherein the first type of message is a request, respectively the second type of message is a response, respectively the third type of message is an acknowledge. By this convention reliable communications can be established using a 3-way handshake.
Expediently a further embodiment according to the present invention is implemented in a connection-less environment based on the connection-less service of the Unified Protocol. This type of implementation advantageously makes use of the reliable nature of the network connecting the chips and in this way the protocol only has to ensure, that at the edges of the network no buffer underflow or overflow takes place. A reliable network like this allows for a very small protocol overhead to ensure reliable communication.
Expediently a further embodiment of the embodiment according to the method of the present invention uses as a request a GET message and as a response a SET message. In this manner only little adaptation needs to be performed to the Unified Protocol if the configuration protocol according to UniProSM is to be adapted.
Advantageously according to a further embodiment of the method of the present invention the particular execution of the method is triggered by a single reserved bit. This allows to use a standard protocol like the Unified Protocol even in its connection-less implementation and only start the reliable communication if needed and by using a reserved bit, no changes to the standard protocol have to be implemented which allows an optimum adaptation of the method according to the present invention to the standard of the Unified Protocol.
The present invention also provides a system for establishing reliable communication in a connection-less environment,
Preferably, if the sender does not receive the second type of message within a predefined time period the sender is adapted to resend the first type of message.
Optionally, the sender has a timer (505). The sender is adapted to start the timer to measure the predefined time period. For example, the timer is started each time a first type of message is sent, and/or wherein the timer is stopped each time a second type of message is received.
The receiver can be adapted such that if it receives a second first type of message while maintaining the originator, the second first type of message is discarded.
The sender can be adapted to send at least a first and a second first type of message in a timed sequence respectively marked by a first and a second unique identifier.
Preferably the receiver is adapted to send a first and a second type of message in the timed sequence that are respectively marked in association with the first and second unique identifier.
Preferably, the first and second unique identifier are a sequence number counting the number of messages; and
The sender can be adapted to start sending a first type of message having the next higher sequence number as the one of the previously received second type of message, in case the predefined time period has expired between two subsequent first type of messages.
In any of the embodiments of the invention, the first type of message can be a request, and/or the second type of message can be a response and/or the third type of message can be an acknowledge.
The request can be a SET request or GET request message and/or the response is a SET response or GET response message and preferably the system for connection-less communication is based on a connection-less service of the Unified Protocol. Yje system may be adapted to set a reserved bit in a header of a protocol data unit of the Unified Protocol.
Accordingly, of particular advantage is the system according to the present invention using a minimum configuration of two chips that are interconnected by a reliable network wherein one of the components acts as a sender and implements the parts of the method of the present invention of the sender whereas the second component acts as receiver and implements the respective method steps of the method according to the present invention associated to the receiver.
Advantageously according to a further embodiment of the system of the present invention one of the components is a microprocessor because accordingly reliable communication between a microprocessor and another component can be established even in a connection-less environment and using as few communication overhead as possible.
Expediently according to a further embodiment of the system of the present invention this system is implemented in a mobile device. As the communication overhead of the system according to the present invention is as small as possible the mobile device usually having a small processor and small memory requires no large share of the processors computing capacity to handle the communication between the various chips inside and thus a faster communication inside the mobile device is ensured.
The present invention also includes software products. Which may be stored on a signal storage medium such as a machine readable optical recording means, e.g. a CD-ROM, DVD-ROM; a solid state memory, e.g. a USB stick; a magnetic disk product such as hard disk, or diskette, or a magnetic tape memory.
Below examples and embodiments of the present invention are further explained by use of examples in drawings wherein:
Preferred embodiments of the present invention will now be described in detail with reference to the annexed drawings. In the following description, a detailed description of known functions and configurations incorporated herein has been omitted for conciseness.
Although, the present invention will be described with respect to particular embodiments and with reference to certain drawings, the invention is not limited thereto but only by the claims. The drawings described are only schematic and are non-limiting. In the drawings, the size of some of the elements may be exaggerated and not drawn on scale for illustrative purposes. The dimensions and the relative dimensions do not correspond to actual reductions to practice of the invention.
Furthermore, the terms first, second and the like in the description and in the claims, are used for distinguishing between similar elements and not necessarily for describing a sequence, either temporally, spatially, in ranking or in any other manner. It is to be understood that the terms so used are interchangeable under appropriate circumstances and that the embodiments of the invention described herein are capable of operation in other sequences than described or illustrated herein.
It is to be noticed that the term “comprising”, used in the claims, should not be interpreted as being restricted to the means listed thereafter; it does not exclude other elements or steps. Similarly, it is to be noticed that the term “connected”, also used in the claims, should not be interpreted as being restricted to direct connections only, although “connected” includes a direct connection which may be advantageous. The term “coupling” should also be interpreted as not being limited to direct connections. Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner, as would be apparent to one of ordinary skill in the art from this disclosure, in one or more embodiments.
Similarly it should be appreciated that in the description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. Furthermore, while some embodiments described herein include some but not other features included in other embodiments, combinations of features of different embodiments are meant to be within the scope of the invention, and form different embodiments, as would be understood by those in the art. In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practised without these specific details. In other instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
Here for instance in
Furthermore due to the fact that no connection exists also no end-to-end flow control is possible. This means, that at the connection device data could be discarded because the destination device could not accept data at the time they arrive there, due to for instance a buffer overflow. Advantages of a connection-less communication are however the ability to be able to send data in a very rapid fashion. Above all the time that is needed to build up and establish a connection can be saved. In UniProSM for instance a device access point to a connection-less service is called RPort.
The additional information that is needed in order to transfer a packet according to a connection-less service can immediately be conceived by comparing the sizes of the formats of the protocol data unit of
Furthermore the header of layer 4 is extended the L4s bit 260 is set to 0 and also includes for instance a CPort bit 220 in order to indicate if the segment addresses a CPort—CPort bit set to 1—or an RPort—CPort bit set to 0—which is used to discriminate between a connection-less and a connection-oriented service. Moreover the source port 225 and a Ver bit 230 which in this case is set to 0 that indicates a first generation version of the protocol data unit which allows the option to define more developed layer 4 protocol data units in the future. In addition one Ext bit per layer 4 symbol, which in this case is set to 1 and indicates the presence of another symbol on the layer 4 and otherwise indicates the end of the header of layer 4. In the example shown above there is one layer 4 extension for the protocol ID 235. Furthermore a protocol ID field is contained, 240, which for instance indicates the communication protocol used by the application involved.
In order to perform connection-less communication an application has to send data messages that fit e.g. within a UniProSM frame. In the same manner as handled in the connection-oriented service in the connection-less service the message boundaries are set by the application in question. Above that the application also has to make sure that a destination device ID and RPort is specified and optionally also the protocol ID. For instance, the messages may be included in the packets without being segmented before they are sent through the network. At the receiving side for instance the application also receives the source device ID and the source RPort in addition to the message content itself.
In addition in the case of a SET message the request may also include the value itself, which may spawn over several symbols. For instance, the GET message may have a different value for the command field and no value field.
In addition the C2 response messages may again be identified by a type field for instance SET_SUCCESS, GET_SUCCESS, FAILURE. In the SET_SUCCESS case, for instance no additional fields are required. For a GET_SUCCESS, a value specified in the GET request is returned in a value field. In the case of FAILURE, there may be a failure reason field, which might indicate the reason a command has failed for instance wrong device ID, wrong RPort, non-existing attribute, access to attribute temporarily locked by another device, value outside the attribute range for a set command and so on.
In order to efficiently use the network both the C2 request commands and the C2 responses may be provided in a grouped single request and response message in a combined format respectively. For instance, in UniProSM these combined configuration messages are called C3 configuration messages. According to the message format that is shown in the embodiment of
One or more C2 messages which in case the C3 type is indicated as request are requests and otherwise if indicated in the type as response are responses 330 which in itself contain a C2 header 315, a C2 attribute 325 as well as C2 selector 320. Above that the C3 message contains a trailer 340 which may encode an error code, and, in case of a C3 response for instance may specify the last executed command 345 which is in particular useful when an error occurred. Prominently it can be identified the reserved bits marked by reference numeral 310 which can be used totally conforming to the specified configuration protocol according UniProSM to trigger the execution of a particular communication method according to the present invention in order to establish reliable communication in a connection-less environment.
The method according to the invention overcomes the problem, that in case of layer 4 data units which are transmitted as messages or datagrams those can be lost due to a buffer overflow at the receiver TG although the network is working reliable. If the method according to the invention is applied configuration commands are still executable in a reliable fashion and for instance all C2 commands are executed in order and once and only once even in such a case. These circumstances also discriminate the method according to the present invention from supposedly similar 3-way or 4-way handshakes that are used in TCP or SCTP in the course of setting up or closing a connection. According to this embodiment of the present invention the reliability of the transmission of commands for instance in the case of a configuration according to the Unified Protocol is provided on the C3 level in that for instance one of the reserved bits in the C3 header is used as a trigger flag, respectively as a reliability flag. Preferably the method according to the present invention is executed in case this flag is set. In other cases for instance the method is not executed and thus the bandwidth of the network RN can be used up to its optimum. The reliability in for instance the transmission of configuration commands may for example be achieved by using a 3-way handshake which generally consists of a request, a response and in addition a configuration acknowledgement. In case of the configuration according to UniProSM the response and the request are for instance mandatory in the configuration transaction.
As shown in the embodiment of
In the embodiment shown in
It is however also conceivable to implement an embodiment where a receiver can receive a multitude of first type of messages from different senders at the same time in case provisions are taken, that the receiver is capable of maintaining the originator for each first type of message and the hardware implementation takes account of this effect. In this case for instance the number of concurrent first type of messages at the receiver may be limited due to the number of available storage locations for maintaining different owners respectively originators. Not being capable of maintaining another originator may be the reason for not being able to establish a reliable communication between the sender and the receiver. The third type of message, in case it is an acknowledgement according to the UniProSM may be one of the C3 messages which are identified in the C3 type in the C3 header.
It is also conceivable, that the sender and the receiver are exchanged, indicating that the receiver of
The example of an embodiment according to the present invention depicted in
As
As indicated above, the present invention may be implemented as hardware circuits. However, some parts can be implemented in software in any computer language, run by conventional processing hardware such as a general purpose microprocessor, or application specific integrated circuits for example. Embodiments of the present invention may be implemented as hardware, computer software, or combinations of both.
For example, operation of parts of the system can be under the control of a processing engine such as a microprocessor, e.g. a general purpose processor, an embedded processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination designed to perform the functions described herein. A processor may also be implemented as a combination of computing devices, e.g., a combination of an FPGA and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with an FPGA, or any other such configuration.
As indicated above the present invention also provides a processing system. The processing system may include a computing device or processing engine, e.g. a microprocessor. Any of the methods described above according to embodiments of the present invention or claimed may be implemented in a processing system 40 such as shown in
The receiver, in case of being able to handle the first type of message, has means for sending to the sender a second type of message and at least maintains an originator of the first type of message . The sender has means for sending to the receiver a third type of message when the sender is receiving the second type of message. The receiver, when receiving the third type of message, has means for releasing the originator, whereby reliable communication is established. For the case that the receiver receives a second first type of message (635) while maintaining the originator, means are provided for discarding the second first type of message.
The sender is adapted such that if it does not receive the second type of message within a predefined time period, the sender has means for resending the first type of message. The sender may have a timer that is started to measure the predefined time period. The sender may have means for starting the timer each time a first type of message is sent.
The sender may have means for sending at least a first and a second first type of message in a timed sequence respectively marked by a first and a second unique identifier. The receiver then has means for send a first and a second second type of message in the timed sequence that are respectively marked in association with the first and second unique identifier.
The first and second unique identifier can be a sequence number counting the number of messages, wherein the receiver has means such that only the first type of message having the correct sequence number in the counted number of the first type of messages is handled at the receiver.
The sender may have means for starting to send a first type of message having the next higher sequence number as the one of the previously received second type of message, in case the predefined time period has expired between two subsequent first type of messages.
In all the embodiments of the present invention, the first type of message can be a request, and/or the second type of message can be a response and/or the third type of message can be an acknowledgement and/or the connection-less environment can be a communication environment based on a connection-less service of the Unified Protocol. For example, the request can be a GET message and/or the response can be a SET message and execution can be based on a setting of a reserved bit in a header of a protocol data unit of the Unified Protocol.
The present invention also includes a computer program product or a suite of computer program products which provides the functionality of any of the methods according to the present invention when executed on a computing device. Software according to the present invention, when executed on a processing engine, can contain code for establishing reliable communication in a connection-less environment, i.e. to control a sender to send to a receiver a first type of message; to control the receiver in case of being able to handle the first type of message to send to the sender a second type of message and at least maintain an originator of the first type of message, to control, where the sender when receiving the second type of message, to send to the receiver a third type of message; and to control the receiver when receiving the third type of message to release the originator, whereby reliable communication is established.
The software may also be adapted to discard the second first type of message, in case the receiver receives a second first type of message while maintaining the originator.
The software may also be adapted to, when the sender does not receive the second type of message within a predefined time period, control the sender to resend the first type of message.
The software may also be adapted to start a timer in the sender to measure the predefined time period. The timer can be started each time a first type of message is sent.
The software may also be adapted to control the sender to send at least a first and a second first type of message in a timed sequence respectively marked by a first and a second unique identifier; and to control the receiver to send a first and a second type of message in the timed sequence that are respectively marked in association with the first and second unique identifier. The first and second unique identifier can be a sequence number counting the number of messages.
The software may be adapted so that only the first type of message having the correct sequence number in the counted number of the first type of messages is handled at the receiver.
The software may be adapted to control the sender to start sending a first type of message having the next higher sequence number as the one of the previously received second type of message, in case the predefined time period has expired between two subsequent first type of messages.
The first type of message can be a request, and/or the second type of message can be a response and/or the third type of message can be an acknowledgement.
The connection-less environment can be a communication environment based on a connection-less service of the Unified Protocol and the request can be a SET request or GET request message and/or the response can be a SET response or GET response message.
Such a computer program product can be tangibly embodied in a carrier medium carrying machine-readable code for execution by a programmable processor. The present invention thus relates to a carrier medium carrying a computer program product that, when executed on computing means, provides instructions for executing any of the methods as described above. The term “carrier medium” refers to any medium that participates in providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as a storage device which is part of mass storage. Common forms of computer readable media include, a CD-ROM, a DVD, a flexible disk or floppy disk, a tape, a memory chip or cartridge or any other medium from which a computer can read. Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution. The computer program product can also be transmitted via a carrier wave in a network, such as a LAN, a WAN or the Internet. Transmission media can take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications. Transmission media include coaxial cables, copper wire and fibre optics, including the wires that comprise a bus within a computer.
Number | Date | Country | Kind |
---|---|---|---|
09161248.1 | May 2009 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2010/052455 | 2/26/2010 | WO | 00 | 11/21/2011 |