US20030023776A1 - Method for enabling a communication between processes, processing system, integrated chip and module for such a chip - Google Patents

Method for enabling a communication between processes, processing system, integrated chip and module for such a chip Download PDF

Info

Publication number
US20030023776A1
US20030023776A1 US10/187,393 US18739302A US2003023776A1 US 20030023776 A1 US20030023776 A1 US 20030023776A1 US 18739302 A US18739302 A US 18739302A US 2003023776 A1 US2003023776 A1 US 2003023776A1
Authority
US
United States
Prior art keywords
processes
communication
different
processing system
integrated chip
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.)
Abandoned
Application number
US10/187,393
Inventor
Pasi Kolinummi
Juhani Vehvilainen
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Assigned to NOKIA CORPORATION reassignment NOKIA CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KOLINUMMI, PASI, VEHVILAINEN, JUHANI
Publication of US20030023776A1 publication Critical patent/US20030023776A1/en
Priority to US14/461,959 priority Critical patent/US9817705B2/en
Assigned to NOKIA TECHNOLOGIES OY reassignment NOKIA TECHNOLOGIES OY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NOKIA CORPORATION
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the invention relates to a method for enabling in a processing system a communication between at least two activated processes.
  • the invention equally relates to a corresponding processing system, to an integrated chip comprising at least one processor for running processes in said integrated chip, and to a module for such an integrated chip.
  • a process is an active part of a processing system which is run by a processor and which is capable of performing certain basic data transfer operations. It is known in particular to implement processes in integrated circuits (IC), like Application Specific Integrated Circuits (ASIC), or in independent functional blocks, either integrated in a chip.
  • IC integrated circuits
  • ASIC Application Specific Integrated Circuits
  • Such a process can be implemented as hardware or software process.
  • Modern software architectures for example are based on multiple processes that are controlled by an operating system.
  • the architecture can comprise a single or several processors.
  • processes are executed one after another, even though within a larger time window they seem to operate in parallel. Since the operations performed by different processes may be interdependent, a possibility has to be provided which enables the processes to share information among each other.
  • FIG. 1 illustrates different communications that might be required between different processes running in an integrated circuit, e.g. in an ASIC, on a single chip.
  • a chip 10 comprises at least one processor capable of running several processes 11 . Each process 11 is depicted in the figure as a cloud.
  • the chip 10 further comprises several interfaces 12 depicted as rectangles. Several communications that might be required between different processes 11 and between processes 11 and interfaces 12 are indicated by arrows. Equally, communications between processes of the depicted chip with processing running on other chips not shown in the figure might become necessary.
  • the required communication structure i.e. all communications that might become necessary in a processing system between different processes, can be quite different depending on the application. In particular, the number of required parallel processes and the number of physical components can vary. But also for a specific processing system, the communication structure is often difficult to predict. Thus it is commonly agreed upon that the communication structure has to be flexible enough to allow a communication between all possible combinations of processes. Another requirement is that all communication within one chip should be carried out in a similar manner in order to decrease the communication burden. Ideally, also processes in different chips should communicate in a similar manner.
  • a data transfer commonly consists of a stream of multiple bits, for example audio or video streams.
  • the length of the streams can vary, and they can contain different header information to allow various message protocols.
  • Notification messages provide some additional information to the destination process, and can inform e.g. about some transmitted data.
  • the additional information can be for example a status or an interrupt signal.
  • Notification messages between different processes are currently transferred as separate flag signals for which no coding is used. The number of flags can be quite high if multiple integrated chips are interconnected.
  • Notification and data transfer have different characteristics.
  • a notification has to be fast and predictable in its timing with a fixed latency time, while a data transfer requires a reasonable average communication bandwidth to enable the transfer of a large amount of data within a certain time.
  • notification and data transfer are dealt with separately, i.e. all communication channels and status and/or interrupt signals are currently transferred separately for each process.
  • the data transfer is done on one or multiple communication wires, and each notification message requires a separate physical flag signal. This has lead to a solution with many buses and status signals, and thus with many hardware resources.
  • This object is reached with a method for enabling in a processing system a communication between at least two activated processes.
  • signals are transmitted between the at least two processes in at least two virtual channels using the same physical channel.
  • the processing system comprises one or more physical channels of which at least one is employed for transmitting signals in virtual channels.
  • a processing system comprising at least one processor for running different processes, i.e. the different processes may be run by the same processor or by different processors.
  • the system moreover comprises at least one physical channel provided for enabling a communication between at least two of said different processes, and means for distributing signals which are to be transmitted for such a communication between at least two of said different processes to different virtual channels on said at least one physical channel.
  • the object of the invention is further reached with an integrated chip comprising at least one processor for running at least two different processes in said integrated chip.
  • the chip comprises in addition at least one physical channel provided for enabling a communication between different processes run in said integrated chip, and means for distributing signals that are to be transmitted for such a communication between processes run in the integrated chip to different virtual channels on the at least one physical channel.
  • the latter means are to correspond to those of the proposed processing system.
  • the physical channel is arranged between two different integrated chips each comprising at least one processor for running at least one process.
  • the proposed integrated chip has to comprise an interface to the external physical channel provided for enabling a communication between the at least one process in the integrated chip and at least one other process running in another integrated chip.
  • the alternative integrated chip comprises means for distributing signals that are to be transmitted for such a communication between processes running in said integrated chip and in another integrated chip to different virtual channels using said at least one external physical channel.
  • the means for distributing signals to virtual channels are to correspond again to those of the proposed processing system.
  • the proposed integrated chips can be in particular constituted by ASICs.
  • a module for an integrated chip comprising processing means for handling signals that are to be transmitted between different processes running in said integrated chip and/or between a process running in said integrated chip and a process running in another integrated chip.
  • the proposed module is capable of distributing signals that are to be transmitted between the processes for enabling a communication between said processes to virtual channels on a physical channel within said integrated chip and/or a physical channel connecting said integrated chip and another integrated chip.
  • the means for distributing signals to virtual channels are to correspond again to those of the proposed processing system.
  • the module can be in particular an intellectual property (IP) block.
  • the invention allows to minimize the hardware complexity, and the number of pins. Since the power consumption is dependent on external pins, reducing the number of pins will moreover decrease the power consumption. In addition, the wiring area required for connecting processes can be decreased. If the involved processes are implemented in several integrated chips, e.g. in ASICs, the wiring can be decreased both inside each chip and in a printed wire board (PWB) by which several chips are connected.
  • PWB printed wire board
  • the number of available logical channels can be increased and used more flexibly.
  • the purpose of the channels can be designed in the software development and thus decision on possibly required connections is not critical anymore.
  • the logical channels are seen by the software similarly as the physical channels are seen in conventional processing systems.
  • a physical channel is employed for transmitting different kind of messages between said processes in different virtual channels. It is thus proposed to convert multiple physical channels provided for different transfer requirements to one physical channel, which comprises multiple logical channels provided according to the requirements. This enables a significant decrease in the number of physical channels between functional units.
  • the different kinds of messages can include in particular notification messages and data. Notification messages are transmitted in special logical channels that do not transfer data, but only a one bit notification messages like for example an interrupt request.
  • the number of logical data streams and the number of notification messages are not limited, and a simple bi-directional serial bus is sufficient for the combined notification message and data stream transfer.
  • the communication requirements can be met while utilizing the available physical communication channels more effectively than separate data and notification channels.
  • different priorities are assigned to different kinds of signals which are to be transmitted in different virtual channels on the same physical channel.
  • the different priorities can be assigned directly and individually to the signals that are to be transmitted, or indirectly to different virtual channels to which the signals are assigned for transmission according to their characteristics.
  • the proposed prioritisation enables a guarantee of short and predictable latency times for notification messages and a large average bandwidth for data streams. Compared to the current solutions, the performance will thus remain about the same, since with such a prioritization, even long data streams do not delay instant notification messages.
  • Virtual channels can have different latencies, but the maximum latencies in a specific processing system can be calculated.
  • the maximum latency allows to guarantee a transmission time of messages and thus to build a real-time communication system.
  • the possibility of real time handling enables the use of the invention also in devices like mobile terminals which require that the time for certain operations be predictable.
  • the processes between which a communication is to be enabled can be hardware or software implemented processes, since the communication between such processes can be handled similarly.
  • the involved processes can be running on a single chip or on two or more different chips.
  • the communication according to the invention is handled by a dedicated process provided in each chip.
  • This dedicated process can be implemented in software or hardware with the same functionalities. Still, a better and more predictable performance can be expected to be achieved with a hardware implementation, which can be critical in real-time applications.
  • the dedicated process is in particular responsible for dealing with different required properties of the virtual channels.
  • the channel mapping is preferably not fixed and any process can communicate with all other processes. Thus all processes can also utilize all hardware blocks. This moves the decision for hardware resource mapping from hardware design to software design, and thus increases the flexibility of the hardware and allows late changes and task partitions in the software design.
  • the invention is related in particular to the communication between integrated circuits.
  • Software is a seamless part of an embedded system and thus the usage of the invention can be done with software.
  • the signaling can be realized e.g. similar to the signaling described in “IEEE Standard for a High Performance Serial Bus-Amendment 1”, IEEE Std 1394a-2000, for a public serial bus implementation.
  • FIG. 1 illustrates the communication between different parallel processes within one chip
  • FIG. 2 illustrates the communication between different parallel processes in different chips
  • FIG. 3 shows several ASICs connected to the same physical wires in a PCB
  • FIG. 4 shows the connection of different components of an ASIC to an internal bus
  • FIG. 5 shows an embodiment of a hardware implementation of the invention within one ASIC
  • FIG. 6 shows an embodiment of a transmitter unit of the implementation of FIG. 5.
  • FIG. 7 shows an embodiment of a receiver unit of the implementation of FIG. 5.
  • FIG. 1 has already been described in the background of the invention.
  • FIG. 2 schematically shows a part of a processing system with two IC chips like the one depicted in FIG. 1.
  • processes 22 , 23 that can be activated by integrated processors are shown again as clouds, interfaces 24 , 25 as rectangles and possible communications as arrows.
  • the depicted processes 22 , 23 do not only have to communicate within one chip, but also between the two chips 20 , 21 , as indicated by additional arrows between processes 22 , 23 of different chips 20 , 21 .
  • a bi-directional physical channel 28 is shown which interconnects an additional interface 5 included in both of the two chips 20 , 21 , which interfaces are referred to in the figure by 26 , 27 .
  • communications can be carried out freely between all processes 22 , 23 of the two chips 20 , 21 , even though there is only one bi-directional physical communication channel 28 provided between the two chips 20 , 21 .
  • the virtual channels can be obtained for example by dividing the available transmission time into transfer frames and by distributing the data and notifications to selected frames or to selected time slots in these frames.
  • FIG. 3 schematically illustrates a possible structure for a communication according to the invention between the processes of a processing system with more than two ASICs.
  • FIG. 3 five different ASICs 30 - 34 of a processing system are depicted, ASIC 1 , 2 , 3 , A and B. Each of these ASICs 30 - 34 is connected to the same physical wires 35 of a printed circuit board (PCB).
  • PCB printed circuit board
  • a suitable implementation takes care that all requests of communications are served in a timely manner in virtual channels using the same physical wires 35 . External flag signals for notification messages are not needed.
  • the structure of FIG. 3 can be enlarged by any number of chips.
  • FIG. 4 schematically illustrates an exemplary internal structure of any of the ASICs 30 of FIG. 3.
  • the ASIC comprises a processor 40 , a direct memory access controller (DMA) 41 , a message and data stream block interface 42 , and a memory interface 43 . All these components 40 - 43 are connected to an internal bus 44 of the ASIC. Externally, the ASIC can further be connected directly to an I/O bus via the message and data stream block interface 42 and to a memory bus via the memory interface 43 .
  • the memory bus can connect the ASIC with an external memory, while the I/O bus can be provided by the physical wires 35 of FIG. 3 and thus be used as connection to other ASICs 31 - 34 .
  • notification messages are transmitted from one process to another one of the processes via the internal bus 44 .
  • Data is transmitted from one process via the internal bus 44 , the memory interface 43 and the external memory interface to the external memory.
  • a destination process receiving a corresponding notification then demands the stored data from the memory and receives it again via the external memory bus, the memory interface 43 and the internal bus 44 .
  • the access to the memory is controlled by the DMA 41 .
  • notification message and data are transmitted from the processor 40 via the internal bus 44 , the message and data stream block interface 42 and the external I/O bus to the other ASIC.
  • signals are distributed to virtual channels for transmission.
  • FIG. 5 schematically illustrates a more specific modular hardware implementation of the invention for an ASIC of a processing system.
  • the implementation is independent of the employed communication protocol and can be realized on top of any physical communication channel.
  • the ASIC can be e.g. one of the ASICs of FIG. 3 or the ASIC of FIG. 4.
  • the ASIC is able to run several processes which have to communicate with each other and with processes of other ASICs.
  • the ASIC of FIG. 5 comprises three processors 50 - 52 having access to a connection network 53 , which is formed by internal communication busses corresponding to the internal bus 44 of FIG. 4.
  • the ASIC further comprises a direct memory access controller 54 , a communication assistance hardware 55 , a receiver unit 56 and a transmitter unit 57 .
  • the processors 50 - 52 correspond to the processor 40 of FIG. 4, the DMA 54 to the DMA 41 of FIG. 4, and the receiver unit 56 and the transmitter unit 57 in combination to the message and data stream block interface 42 of FIG. 4.
  • Each of these components of the ASIC have access to the connection network 53 .
  • the transmission unit 57 has further access via external pins to an external bi-directional I/O bus.
  • the receiver unit 56 has access via external pins to the external bus.
  • the pins of the ASIC and the external bus are not depicted in FIG. 5.
  • the receiver unit 56 is moreover able to forward signals directly to the communication assistance hardware 55 .
  • the communication assistance block 55 is able to transmit signals directly to the direct memory access controller.
  • Communication assistance hardware 55 and direct memory controller 54 are software controllable.
  • Each of the depicted processors 50 - 52 is designed to run one or more processes, and frequently, several processes of the processing system will be running in parallel or quasi in parallel. Each process may have to communicate with another process run by a processor of the same or of another ASIC, as illustrated in FIG. 2. Each communication includes either only a notification message informing the respective other process about some status change, or a notification message associated to a data transfer.
  • the corresponding signals are written by the source process to the connection network 53 of the ASIC. Communications internal to the ASIC are transmitted via said connection network 53 to the destination process, while communications with external processes are further transmitted in virtual channels via the external I/O bus.
  • the communication assistance 55 is responsible that all signals transmitted by a source process run by one of the processors 50 - 52 of the depicted ASIC are transferred correctly and efficiently in virtual channels to a destination process.
  • the communication assistance 55 takes care in particular of special channel requirements for some signals like fast notification transfer and of keeping status registers in each communication assistance coherent. Thus each process sees similar status registers and they do not even have to know where a destination process is located, or where an interface required to perform a specific task is located. Chip boundaries are thus invisible to the processes.
  • Each virtual channel can have a different priority, which affects the information transfer order in case of multiple simultaneous requests.
  • the notification transfer is made fast and predictable with this priority mechanism, by assigning a higher priority to notification messages than to data streams.
  • the worst-case latency time for notification messages is less than two data transfer frame, wherein the frame length can be configured.
  • a transfer frame could have for example a 32-bit data field and a 8-bit header to implement a virtual channel.
  • the worst-case latency time is then the transfer time of 80 bits plus a few clock cycles needed by the communication assistance state machine.
  • the communication assistance 55 or the processors 50 - 52 can configure the priorities of each virtual channel inside the receiver unit 56 and the transmission unit 57 by programming. In normal operation mode, the communication assistance 55 and the processors 50 - 52 thus do not have to take care of the priorities. The processors 50 - 52 then only need to the know the different properties of the channels, since each message can be assigned automatically in the transmission unit 57 according to its characteristics to an appropriate virtual channel.
  • priorities could be assigned individually to each message, but this would imply that each message has to contain in addition an indication of the required priority.
  • a source process running in an ASIC with the depicted modular hardware implementation of FIG. 5 wants to transfer a notification implying a status change to a destination process.
  • the source process writes the notification message and transmits it via the connection network 53 .
  • the communication assistance 55 of the ASIC is informed about the required transfer of a notification message via the connection network 53 .
  • the communication assistance 55 takes care that the status change is transmitted to the destination process, even if the destination process is not in the same integrated chip.
  • the communication assistance 55 transmits the notification either via the connection network 53 to a process run by a processor 50 - 52 of the same ASIC, or via the connection network 53 , the transmission unit 57 and the external I/O bus to some other ASIC which corresponds to the first ASIC.
  • the notification message is transmitted by the transmission unit 57 in a virtual channel with a high priority on the external I/O bus to the other ASIC with the destination process.
  • the destination process receives the notification either directly via the connection network or via the communication assistance and the connection network of its ASIC and behaves accordingly. It can for example clear the message indicator.
  • the communication assistance of the second ASIC then takes care that the status change goes back to the source process.
  • the message with the status change is received in the depicted ASIC via the receiver unit 56 .
  • the status change is transferred to the communication assistance 55 for updating the status registers.
  • the message is further forwarded either directly via the connection network 53 or via the communication assistance 55 and the connection network 53 to the source process.
  • the actions of the communication assistance 55 or assistances in case of two involved ASICs, is invisible to both processes.
  • a source process running in the depicted ASIC has to transfer data to a destination process running in another ASIC connected to the depicted ASIC via the external I/O bus.
  • the second ASIC corresponds again as well to the ASIC depicted in FIG. 5.
  • the source process writes data targeted to the destination process to the connection network 53 .
  • the data reaches the communication assistance 55 of the ASIC via the connection network 53 .
  • the communication assistance 55 takes care that the data is transferred correctly to the destination process via the transmission unit 57 in virtual channels on the external I/O bus.
  • the data is transmitted by the transmission unit 57 in a virtual channel to which a low priority but a high bandwidth was assigned.
  • the second ASIC buffers the data preliminarily in its receiver unit before forwarding it via the connection network to the destination process. However, in case a large data stream is received, the data can be transferred automatically by the DMA of the second ASIC to a connected physical memory like an SDRAM, an SRAM or similar.
  • the destination process further has to be notified that data was transmitted for it. Therefore, the receiver unit of the second ASIC generates a notification message for the destination process. Alternatively, the source process could transmit for each data message a corresponding notification message which would be transmitted like a separate notification message.
  • the communication assistance of the second ASIC also takes care of transferring the notification message to the destination processes. The destination process receives the notification and reads as reaction the transmitted data from the connection network. In case the data was stored in a physical memory, the processor running the destination process can retrieve the data when it has time for handling it. The destination process can then clear the notification status to indicate the end of the communication operation.
  • the communication assistance of the second ASIC takes care as in the first example that the status change is transmitted to the source process. The operations of the communications assistances 55 are again invisible to both processes.
  • the processors 50 - 52 see many communication channels that can be equally used. The processors do not have to know that the channels are virtual. All hardware operation is hidden from the processors and thus all kind of processors can use the presented communication mechanism.
  • signals are transmitted in virtual channels only between processes running in different ASICs.
  • Virtual channels could be employed in addition within each ASIC.
  • FIGS. 6 and 7 schematically show in more detail an embodiment of the receiver unit 56 and an embodiment of the transmission unit 57 of FIG. 5.
  • the transmission unit 57 of FIG. 6 comprises an internal bus interface 60 which is connected at its input to the connection network 53 of the ASIC.
  • One output of the internal bus interface 60 is connected via a data stream transmit status block 61 and another output via a status signals block 62 to a selection and priorisation logic 63 .
  • This selection and priorisation logic 63 is further connected via an external interface 64 to external pins of the ASIC. The pins are not depicted in the figure.
  • the transmission unit receives via the internal bus interface 60 notification messages or data streams that are to be transmitted.
  • the signals are forwarded via the corresponding block 61 , 62 to the selection and priorisation logic 63 .
  • Inside the ASIC there are different registers and buffers for data and notifications that are to be sent, e.g. in the transmission unit for enabling smooth communication and priorisation.
  • the status blocks 61 , 62 show the status of these registers or of an internal state machine. Status signals provided by the status blocks 61 , 62 prevent new data from being written before older data is transmitted.
  • the selection and priorisation logic 63 assigns received signals to virtual channels according to programming by the communication assistance 55 , and forwards the signals via the external interface 64 to the external bus in the respective virtual channels.
  • FIG. 7 schematically shows a corresponding receiver unit 56 with an internal bus interface 70 , a data stream receive status block 71 , a status signals block 72 , a selection and priorisation logic 73 and an external interface 74 .
  • the structure of the receiving unit depicted in FIG. 7 is the same as the structure of the transmission unit of FIG. 6.
  • the status signals block 72 has a direct connection to the communication assistance 55 of FIG. 5 for status signals relating to notifications from the block 72 .
  • the receiver unit receives signals originating from processes of other ASICs via the external interface 74 distributed to virtual channels.
  • the selection and priorisation logic 73 assembles the original notification messages and data messages again according to a programming by the communication assistance 55 . If a data message is received, a notification message is generated to inform the destination process about the received data. The regained and/or generated messages are then transmitted to the addressed processes via the corresponding block 71 , 72 , the internal bus interface 70 and the connection network 53 of the ASIC.
  • the ASIC comprises different registers and buffers for data and notifications that are received. Similar to the status blocks 61 , 62 of the transmission unit of FIG.
  • the status signals provided by status blocks 71 , 72 of the receiver unit therefore indicate when received data is ready to be read by the processors. Moreover, status signals of notification messages are transferred to the communication assistance 55 by the status signals block 72 .
  • the communication assistance 55 is thus able to keep the status registers in coherence with the communication assistances of connected ASICs of the same processing system. Notification messages could also be transmitted via the communication assistance 55 to the destination process.
  • the functions integrated in the receiver unit 56 and the transmission unit 57 can vary. If the receiver and the transmitter units 56 , 57 are not designed for handling virtual channels, for example, then all communication operations, like prioritisation and sending the highest priority message first, are taken care of by the communication assistance 55 .
  • the functionalities of the communication assistance 55 of FIG. 5 could also be integrated into the receiver unit and the transmission unit of FIGS. 6 and 7.
  • a software process could be implemented for the communication based on the receiver and the transmitter block and on a microprocessor unit or a general purpose processor. Higher and more predictable performance will usually be achieved with a communication assistance hardware, though.

Abstract

The invention relates to a method for enabling in a processing system a communication between at least two activated processes 22,23. In order to improve the communication between different processes 22,23 of a processing system, it is proposed that for said communication signals are transmitted between said at least two processes 22,23 in virtual channels using the same physical channel 28. This enables an efficient use of physical resources. A corresponding processing system comprises at least one processor 50-52 for running different processes, at least one physical channel provided for enabling a communication between at least two of said different processes, and means 55-57 for distributing signals which are to be transmitted for such a communication between said at least two different processes to different virtual channels on said at least one physical channel.

Description

    FIELD OF THE INVENTION
  • The invention relates to a method for enabling in a processing system a communication between at least two activated processes. The invention equally relates to a corresponding processing system, to an integrated chip comprising at least one processor for running processes in said integrated chip, and to a module for such an integrated chip. [0001]
  • BACKGROUND OF THE INVENTION
  • A process is an active part of a processing system which is run by a processor and which is capable of performing certain basic data transfer operations. It is known in particular to implement processes in integrated circuits (IC), like Application Specific Integrated Circuits (ASIC), or in independent functional blocks, either integrated in a chip. [0002]
  • Such a process can be implemented as hardware or software process. Modern software architectures for example are based on multiple processes that are controlled by an operating system. The architecture can comprise a single or several processors. In a single processor system, processes are executed one after another, even though within a larger time window they seem to operate in parallel. Since the operations performed by different processes may be interdependent, a possibility has to be provided which enables the processes to share information among each other. [0003]
  • In a single processor system this is usually done via a common database or memory to which the respective information is stored by a source process and from which the information is retrieved by a destination process, since multiple processes of a single processor cannot transfer information simultaneously. In systems with more than one processor as active components, processes can be executed simultaneously. Still they need to transfer information, like data, to each other. In that case, data can be transferred directly by a source process to a destination process. If the two processes are running in different chips, the message transfer will usually cause in addition an automatic notification of the destination process when the receiver of the chip with the destination process has received the data. Alternatively, processes can send pure notifications to each other, e.g. for waking up the destination process. [0004]
  • FIG. 1 illustrates different communications that might be required between different processes running in an integrated circuit, e.g. in an ASIC, on a single chip. In the figure, a [0005] chip 10 comprises at least one processor capable of running several processes 11. Each process 11 is depicted in the figure as a cloud. The chip 10 further comprises several interfaces 12 depicted as rectangles. Several communications that might be required between different processes 11 and between processes 11 and interfaces 12 are indicated by arrows. Equally, communications between processes of the depicted chip with processing running on other chips not shown in the figure might become necessary.
  • The required communication structure, i.e. all communications that might become necessary in a processing system between different processes, can be quite different depending on the application. In particular, the number of required parallel processes and the number of physical components can vary. But also for a specific processing system, the communication structure is often difficult to predict. Thus it is commonly agreed upon that the communication structure has to be flexible enough to allow a communication between all possible combinations of processes. Another requirement is that all communication within one chip should be carried out in a similar manner in order to decrease the communication burden. Ideally, also processes in different chips should communicate in a similar manner. [0006]
  • Moreover, it is usually two different basic types of messages that have to be transferred between a source process and a destination process, namely data messages and notification messages. [0007]
  • A data transfer commonly consists of a stream of multiple bits, for example audio or video streams. The length of the streams can vary, and they can contain different header information to allow various message protocols. [0008]
  • Notification messages, in contrast, provide some additional information to the destination process, and can inform e.g. about some transmitted data. The additional information can be for example a status or an interrupt signal. Notification messages between different processes are currently transferred as separate flag signals for which no coding is used. The number of flags can be quite high if multiple integrated chips are interconnected. [0009]
  • Notification and data transfer have different characteristics. A notification has to be fast and predictable in its timing with a fixed latency time, while a data transfer requires a reasonable average communication bandwidth to enable the transfer of a large amount of data within a certain time. Because of these different requirements, notification and data transfer are dealt with separately, i.e. all communication channels and status and/or interrupt signals are currently transferred separately for each process. The data transfer is done on one or multiple communication wires, and each notification message requires a separate physical flag signal. This has lead to a solution with many buses and status signals, and thus with many hardware resources. [0010]
  • In conventional communication structures, the number of possible connections and the additional division into notification messages and data leads to a problem because of tight pin limitations on the chips. The number of pins is considerable if all possibly required communication are to be made possible. Since all independent functional blocks need flags, the number of pins required for the connections also increases significantly with the number of independent functional blocks. The great number of pins is a common problem in almost all current ASIC and standard processors. [0011]
  • Since in conventional solutions, moreover all possible connections have to be fixed in hardware design, which affects the hardware development schedule and might not lead to an optimal solution, because all requirements are usually not know in the hardware implementation phase. [0012]
  • The problem arises equally for hardware and software processes, since the required communications are similar. [0013]
  • SUMMARY OF THE INVENTION
  • It is an object of the invention to improve the communication between different processes of a processing system. [0014]
  • This object is reached with a method for enabling in a processing system a communication between at least two activated processes. For the communication, signals are transmitted between the at least two processes in at least two virtual channels using the same physical channel. That is, the processing system comprises one or more physical channels of which at least one is employed for transmitting signals in virtual channels. [0015]
  • The object is equally reached with a processing system comprising at least one processor for running different processes, i.e. the different processes may be run by the same processor or by different processors. The system moreover comprises at least one physical channel provided for enabling a communication between at least two of said different processes, and means for distributing signals which are to be transmitted for such a communication between at least two of said different processes to different virtual channels on said at least one physical channel. [0016]
  • The object of the invention is further reached with an integrated chip comprising at least one processor for running at least two different processes in said integrated chip. The chip comprises in addition at least one physical channel provided for enabling a communication between different processes run in said integrated chip, and means for distributing signals that are to be transmitted for such a communication between processes run in the integrated chip to different virtual channels on the at least one physical channel. The latter means are to correspond to those of the proposed processing system. [0017]
  • Alternatively or in addition, the physical channel is arranged between two different integrated chips each comprising at least one processor for running at least one process. In this case, the proposed integrated chip has to comprise an interface to the external physical channel provided for enabling a communication between the at least one process in the integrated chip and at least one other process running in another integrated chip. Moreover, the alternative integrated chip comprises means for distributing signals that are to be transmitted for such a communication between processes running in said integrated chip and in another integrated chip to different virtual channels using said at least one external physical channel. The means for distributing signals to virtual channels are to correspond again to those of the proposed processing system. [0018]
  • The proposed integrated chips can be in particular constituted by ASICs. [0019]
  • Finally, the object of the invention is reached with a module for an integrated chip comprising processing means for handling signals that are to be transmitted between different processes running in said integrated chip and/or between a process running in said integrated chip and a process running in another integrated chip. The proposed module is capable of distributing signals that are to be transmitted between the processes for enabling a communication between said processes to virtual channels on a physical channel within said integrated chip and/or a physical channel connecting said integrated chip and another integrated chip. The means for distributing signals to virtual channels are to correspond again to those of the proposed processing system. The module can be in particular an intellectual property (IP) block. [0020]
  • The use of several virtual or logical channels on one physical channel are described for communications between different network nodes of a network in “Virtual-channel flow control”, IEEE Transactions on Parallel and Distributed Systems, Vol. 3, [0021] Issue 2, March 1992, pages 194-205, by W. J. Dally. The invention proceeds from the idea that virtual channels could equally be employed for communications between different processes of a processing system, e.g. within or between ASICs. To this end, at least one physical channel is provided which can be used for transmitting signals between different processes in virtual channels. The invention thereby allows to utilize the available physical communication channels more efficiently by increasing the performance per wire and pin.
  • It is an advantage of the invention that it can be employed flexibly for different communication topologies and the physical communication interface can be serial or parallel. Moreover, the invention can be employed with different communication protocols. That means that the most suitable communication protocol can be selected. Further, the invention is scalable to any number of processes. [0022]
  • As an advantage for the hardware design, the invention allows to minimize the hardware complexity, and the number of pins. Since the power consumption is dependent on external pins, reducing the number of pins will moreover decrease the power consumption. In addition, the wiring area required for connecting processes can be decreased. If the involved processes are implemented in several integrated chips, e.g. in ASICs, the wiring can be decreased both inside each chip and in a printed wire board (PWB) by which several chips are connected. [0023]
  • As an advantage for the software design, the number of available logical channels can be increased and used more flexibly. The purpose of the channels can be designed in the software development and thus decision on possibly required connections is not critical anymore. The logical channels are seen by the software similarly as the physical channels are seen in conventional processing systems. [0024]
  • In sum, an economical solution for communications between processes in a processing system is presented, which solution is capable of fulfilling the communication requirements described above. [0025]
  • Preferably, a physical channel is employed for transmitting different kind of messages between said processes in different virtual channels. It is thus proposed to convert multiple physical channels provided for different transfer requirements to one physical channel, which comprises multiple logical channels provided according to the requirements. This enables a significant decrease in the number of physical channels between functional units. The different kinds of messages can include in particular notification messages and data. Notification messages are transmitted in special logical channels that do not transfer data, but only a one bit notification messages like for example an interrupt request. [0026]
  • The number of logical data streams and the number of notification messages are not limited, and a simple bi-directional serial bus is sufficient for the combined notification message and data stream transfer. Thus the communication requirements can be met while utilizing the available physical communication channels more effectively than separate data and notification channels. [0027]
  • Advantageously, different priorities are assigned to different kinds of signals which are to be transmitted in different virtual channels on the same physical channel. The different priorities can be assigned directly and individually to the signals that are to be transmitted, or indirectly to different virtual channels to which the signals are assigned for transmission according to their characteristics. The proposed prioritisation enables a guarantee of short and predictable latency times for notification messages and a large average bandwidth for data streams. Compared to the current solutions, the performance will thus remain about the same, since with such a prioritization, even long data streams do not delay instant notification messages. [0028]
  • Virtual channels can have different latencies, but the maximum latencies in a specific processing system can be calculated. The maximum latency allows to guarantee a transmission time of messages and thus to build a real-time communication system. The possibility of real time handling enables the use of the invention also in devices like mobile terminals which require that the time for certain operations be predictable. [0029]
  • The processes between which a communication is to be enabled can be hardware or software implemented processes, since the communication between such processes can be handled similarly. [0030]
  • The involved processes can be running on a single chip or on two or more different chips. [0031]
  • Preferably, the communication according to the invention is handled by a dedicated process provided in each chip. This dedicated process can be implemented in software or hardware with the same functionalities. Still, a better and more predictable performance can be expected to be achieved with a hardware implementation, which can be critical in real-time applications. The dedicated process is in particular responsible for dealing with different required properties of the virtual channels. The channel mapping is preferably not fixed and any process can communicate with all other processes. Thus all processes can also utilize all hardware blocks. This moves the decision for hardware resource mapping from hardware design to software design, and thus increases the flexibility of the hardware and allows late changes and task partitions in the software design. [0032]
  • In a hardware implementation, the invention is related in particular to the communication between integrated circuits. Software is a seamless part of an embedded system and thus the usage of the invention can be done with software. [0033]
  • If the processes and the communications between the processes are implemented independently from each other, the number and kind of supplied processes can vary. Communication channels between all processes can thus be made virtually available to allow each process to communicate with all other processes. [0034]
  • The signaling can be realized e.g. similar to the signaling described in “IEEE Standard for a High Performance Serial Bus-[0035] Amendment 1”, IEEE Std 1394a-2000, for a public serial bus implementation.
  • BRIEF DESCRIPTION OF THE FIGURES
  • In the following, the invention is explained in more detail with reference to drawings, of which [0036]
  • FIG. 1 illustrates the communication between different parallel processes within one chip; [0037]
  • FIG. 2 illustrates the communication between different parallel processes in different chips; [0038]
  • FIG. 3 shows several ASICs connected to the same physical wires in a PCB; [0039]
  • FIG. 4 shows the connection of different components of an ASIC to an internal bus; [0040]
  • FIG. 5 shows an embodiment of a hardware implementation of the invention within one ASIC; [0041]
  • FIG. 6 shows an embodiment of a transmitter unit of the implementation of FIG. 5; and [0042]
  • FIG. 7 shows an embodiment of a receiver unit of the implementation of FIG. 5.[0043]
  • DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 has already been described in the background of the invention. [0044]
  • FIG. 2 schematically shows a part of a processing system with two IC chips like the one depicted in FIG. 1. In both [0045] chips 20, 21, processes 22, 23 that can be activated by integrated processors are shown again as clouds, interfaces 24, 25 as rectangles and possible communications as arrows. The depicted processes 22, 23 do not only have to communicate within one chip, but also between the two chips 20, 21, as indicated by additional arrows between processes 22, 23 of different chips 20, 21. Moreover, a bi-directional physical channel 28 is shown which interconnects an additional interface 5 included in both of the two chips 20,21, which interfaces are referred to in the figure by 26, 27.
  • According to the invention, communications can be carried out freely between all [0046] processes 22, 23 of the two chips 20, 21, even though there is only one bi-directional physical communication channel 28 provided between the two chips 20, 21. This is achieved according to the invention by transmitting the signals in virtual channels which are formed on the physical channel 28. The virtual channels can be obtained for example by dividing the available transmission time into transfer frames and by distributing the data and notifications to selected frames or to selected time slots in these frames.
  • The processing system of FIG. 2 can be extended by additional chips. FIG. 3 schematically illustrates a possible structure for a communication according to the invention between the processes of a processing system with more than two ASICs. [0047]
  • In FIG. 3, five different ASICs [0048] 30-34 of a processing system are depicted, ASIC 1, 2, 3, A and B. Each of these ASICs 30-34 is connected to the same physical wires 35 of a printed circuit board (PCB). A suitable implementation takes care that all requests of communications are served in a timely manner in virtual channels using the same physical wires 35. External flag signals for notification messages are not needed. The structure of FIG. 3 can be enlarged by any number of chips.
  • FIG. 4 schematically illustrates an exemplary internal structure of any of the [0049] ASICs 30 of FIG. 3. The ASIC comprises a processor 40, a direct memory access controller (DMA) 41, a message and data stream block interface 42, and a memory interface 43. All these components 40-43 are connected to an internal bus 44 of the ASIC. Externally, the ASIC can further be connected directly to an I/O bus via the message and data stream block interface 42 and to a memory bus via the memory interface 43. The memory bus can connect the ASIC with an external memory, while the I/O bus can be provided by the physical wires 35 of FIG. 3 and thus be used as connection to other ASICs 31-34.
  • For communications between different processes of the depicted [0050] processor 40, notification messages are transmitted from one process to another one of the processes via the internal bus 44. Data is transmitted from one process via the internal bus 44, the memory interface 43 and the external memory interface to the external memory. A destination process receiving a corresponding notification then demands the stored data from the memory and receives it again via the external memory bus, the memory interface 43 and the internal bus 44. The access to the memory is controlled by the DMA 41.
  • For communications between a process of the depicted ASIC and a process of another ASIC, notification message and data are transmitted from the [0051] processor 40 via the internal bus 44, the message and data stream block interface 42 and the external I/O bus to the other ASIC.
  • For each or selected ones of the busses, signals are distributed to virtual channels for transmission. [0052]
  • FIG. 5 schematically illustrates a more specific modular hardware implementation of the invention for an ASIC of a processing system. The implementation is independent of the employed communication protocol and can be realized on top of any physical communication channel. The ASIC can be e.g. one of the ASICs of FIG. 3 or the ASIC of FIG. 4. The ASIC is able to run several processes which have to communicate with each other and with processes of other ASICs. [0053]
  • The ASIC of FIG. 5 comprises three processors [0054] 50-52 having access to a connection network 53, which is formed by internal communication busses corresponding to the internal bus 44 of FIG. 4. The ASIC further comprises a direct memory access controller 54, a communication assistance hardware 55, a receiver unit 56 and a transmitter unit 57. The processors 50-52 correspond to the processor 40 of FIG. 4, the DMA 54 to the DMA 41 of FIG. 4, and the receiver unit 56 and the transmitter unit 57 in combination to the message and data stream block interface 42 of FIG. 4.
  • Each of these components of the ASIC have access to the [0055] connection network 53. The transmission unit 57 has further access via external pins to an external bi-directional I/O bus. Equally, the receiver unit 56 has access via external pins to the external bus. The pins of the ASIC and the external bus are not depicted in FIG. 5. The receiver unit 56 is moreover able to forward signals directly to the communication assistance hardware 55. The communication assistance block 55 is able to transmit signals directly to the direct memory access controller. Communication assistance hardware 55 and direct memory controller 54 are software controllable.
  • Each of the depicted processors [0056] 50-52 is designed to run one or more processes, and frequently, several processes of the processing system will be running in parallel or quasi in parallel. Each process may have to communicate with another process run by a processor of the same or of another ASIC, as illustrated in FIG. 2. Each communication includes either only a notification message informing the respective other process about some status change, or a notification message associated to a data transfer. The corresponding signals are written by the source process to the connection network 53 of the ASIC. Communications internal to the ASIC are transmitted via said connection network 53 to the destination process, while communications with external processes are further transmitted in virtual channels via the external I/O bus.
  • The [0057] communication assistance 55 is responsible that all signals transmitted by a source process run by one of the processors 50-52 of the depicted ASIC are transferred correctly and efficiently in virtual channels to a destination process. The communication assistance 55 takes care in particular of special channel requirements for some signals like fast notification transfer and of keeping status registers in each communication assistance coherent. Thus each process sees similar status registers and they do not even have to know where a destination process is located, or where an interface required to perform a specific task is located. Chip boundaries are thus invisible to the processes. Each virtual channel can have a different priority, which affects the information transfer order in case of multiple simultaneous requests. The notification transfer is made fast and predictable with this priority mechanism, by assigning a higher priority to notification messages than to data streams. Thus the worst-case latency time for notification messages is less than two data transfer frame, wherein the frame length can be configured. A transfer frame could have for example a 32-bit data field and a 8-bit header to implement a virtual channel. The worst-case latency time is then the transfer time of 80 bits plus a few clock cycles needed by the communication assistance state machine.
  • The [0058] communication assistance 55 or the processors 50-52 can configure the priorities of each virtual channel inside the receiver unit 56 and the transmission unit 57 by programming. In normal operation mode, the communication assistance 55 and the processors 50-52 thus do not have to take care of the priorities. The processors 50-52 then only need to the know the different properties of the channels, since each message can be assigned automatically in the transmission unit 57 according to its characteristics to an appropriate virtual channel.
  • In an alternative embodiment, priorities could be assigned individually to each message, but this would imply that each message has to contain in addition an indication of the required priority. [0059]
  • In a first communication example, a source process running in an ASIC with the depicted modular hardware implementation of FIG. 5 wants to transfer a notification implying a status change to a destination process. The source process writes the notification message and transmits it via the [0060] connection network 53. The communication assistance 55 of the ASIC is informed about the required transfer of a notification message via the connection network 53. The communication assistance 55 takes care that the status change is transmitted to the destination process, even if the destination process is not in the same integrated chip. To this end, the communication assistance 55 transmits the notification either via the connection network 53 to a process run by a processor 50-52 of the same ASIC, or via the connection network 53, the transmission unit 57 and the external I/O bus to some other ASIC which corresponds to the first ASIC. In the latter case, the notification message is transmitted by the transmission unit 57 in a virtual channel with a high priority on the external I/O bus to the other ASIC with the destination process.
  • The destination process receives the notification either directly via the connection network or via the communication assistance and the connection network of its ASIC and behaves accordingly. It can for example clear the message indicator. The communication assistance of the second ASIC then takes care that the status change goes back to the source process. In case the destination process is running in another ASIC, the message with the status change is received in the depicted ASIC via the [0061] receiver unit 56. The status change is transferred to the communication assistance 55 for updating the status registers. The message is further forwarded either directly via the connection network 53 or via the communication assistance 55 and the connection network 53 to the source process. The actions of the communication assistance 55, or assistances in case of two involved ASICs, is invisible to both processes.
  • In a second communication example, a source process running in the depicted ASIC has to transfer data to a destination process running in another ASIC connected to the depicted ASIC via the external I/O bus. The second ASIC corresponds again as well to the ASIC depicted in FIG. 5. [0062]
  • The source process writes data targeted to the destination process to the [0063] connection network 53. The data reaches the communication assistance 55 of the ASIC via the connection network 53. The communication assistance 55 takes care that the data is transferred correctly to the destination process via the transmission unit 57 in virtual channels on the external I/O bus. The data is transmitted by the transmission unit 57 in a virtual channel to which a low priority but a high bandwidth was assigned. The second ASIC buffers the data preliminarily in its receiver unit before forwarding it via the connection network to the destination process. However, in case a large data stream is received, the data can be transferred automatically by the DMA of the second ASIC to a connected physical memory like an SDRAM, an SRAM or similar.
  • The destination process further has to be notified that data was transmitted for it. Therefore, the receiver unit of the second ASIC generates a notification message for the destination process. Alternatively, the source process could transmit for each data message a corresponding notification message which would be transmitted like a separate notification message. The communication assistance of the second ASIC also takes care of transferring the notification message to the destination processes. The destination process receives the notification and reads as reaction the transmitted data from the connection network. In case the data was stored in a physical memory, the processor running the destination process can retrieve the data when it has time for handling it. The destination process can then clear the notification status to indicate the end of the communication operation. The communication assistance of the second ASIC takes care as in the first example that the status change is transmitted to the source process. The operations of the communications assistances [0064] 55 are again invisible to both processes.
  • In the ASIC of FIG. 5, the processors [0065] 50-52 see many communication channels that can be equally used. The processors do not have to know that the channels are virtual. All hardware operation is hidden from the processors and thus all kind of processors can use the presented communication mechanism.
  • In the embodiment of FIG. 5, signals are transmitted in virtual channels only between processes running in different ASICs. Virtual channels could be employed in addition within each ASIC. [0066]
  • FIGS. 6 and 7 schematically show in more detail an embodiment of the [0067] receiver unit 56 and an embodiment of the transmission unit 57 of FIG. 5.
  • The [0068] transmission unit 57 of FIG. 6 comprises an internal bus interface 60 which is connected at its input to the connection network 53 of the ASIC. One output of the internal bus interface 60 is connected via a data stream transmit status block 61 and another output via a status signals block 62 to a selection and priorisation logic 63. This selection and priorisation logic 63 is further connected via an external interface 64 to external pins of the ASIC. The pins are not depicted in the figure.
  • The transmission unit receives via the [0069] internal bus interface 60 notification messages or data streams that are to be transmitted. The signals are forwarded via the corresponding block 61, 62 to the selection and priorisation logic 63. Inside the ASIC there are different registers and buffers for data and notifications that are to be sent, e.g. in the transmission unit for enabling smooth communication and priorisation. The status blocks 61, 62 show the status of these registers or of an internal state machine. Status signals provided by the status blocks 61, 62 prevent new data from being written before older data is transmitted. The selection and priorisation logic 63 assigns received signals to virtual channels according to programming by the communication assistance 55, and forwards the signals via the external interface 64 to the external bus in the respective virtual channels.
  • FIG. 7 schematically shows a corresponding [0070] receiver unit 56 with an internal bus interface 70, a data stream receive status block 71, a status signals block 72, a selection and priorisation logic 73 and an external interface 74. The structure of the receiving unit depicted in FIG. 7 is the same as the structure of the transmission unit of FIG. 6. In addition to the connections of the receiving unit of FIG. 6, in the transmission unit of FIG. 7 the status signals block 72 has a direct connection to the communication assistance 55 of FIG. 5 for status signals relating to notifications from the block 72.
  • The receiver unit receives signals originating from processes of other ASICs via the [0071] external interface 74 distributed to virtual channels. The selection and priorisation logic 73 assembles the original notification messages and data messages again according to a programming by the communication assistance 55. If a data message is received, a notification message is generated to inform the destination process about the received data. The regained and/or generated messages are then transmitted to the addressed processes via the corresponding block 71, 72, the internal bus interface 70 and the connection network 53 of the ASIC. The ASIC comprises different registers and buffers for data and notifications that are received. Similar to the status blocks 61, 62 of the transmission unit of FIG. 6, the status signals provided by status blocks 71, 72 of the receiver unit therefore indicate when received data is ready to be read by the processors. Moreover, status signals of notification messages are transferred to the communication assistance 55 by the status signals block 72. The communication assistance 55 is thus able to keep the status registers in coherence with the communication assistances of connected ASICs of the same processing system. Notification messages could also be transmitted via the communication assistance 55 to the destination process.
  • The functions integrated in the [0072] receiver unit 56 and the transmission unit 57 can vary. If the receiver and the transmitter units 56, 57 are not designed for handling virtual channels, for example, then all communication operations, like prioritisation and sending the highest priority message first, are taken care of by the communication assistance 55.
  • On the other hand, the functionalities of the [0073] communication assistance 55 of FIG. 5 could also be integrated into the receiver unit and the transmission unit of FIGS. 6 and 7.
  • Alternatively to the hardware implemented communication assistance of FIG. 5, a software process could be implemented for the communication based on the receiver and the transmitter block and on a microprocessor unit or a general purpose processor. Higher and more predictable performance will usually be achieved with a communication assistance hardware, though. [0074]

Claims (20)

1. Method for enabling in a processing system a communication between at least two activated processes (22,23), wherein for said communication signals are transmitted between said at least two processes (22,23) in at least two virtual channels using the same physical channel (28).
2. Method according to claim 1, wherein different kinds of signals are transmitted between said processes (22,23) in different virtual channels using the same physical channel (28).
3. Method according to claim 2, wherein said different kinds of signals include notification signals and data signals.
4. Method according to claim 2, wherein different priorities are assigned to said different kinds of signals for transmission in different virtual channels using the same physical channel (28).
5. Method according to claim 1, wherein said processes (22,23) between which a communication is to be enabled are hardware and/or software implemented processes.
6. Method according to claim 1, wherein said processes (22,23) are implemented on at least two different chips (20,21).
7. Method according to claim 6, wherein a dedicated process in each chip handles the communication.
8. Method according to claim 7, wherein said process for handling the communication in each chip is implemented in software or hardware.
9. Processing system comprising at least one processor (50-52) for running different processes, at least one physical channel provided for enabling a communication between at least two of said different processes, and means (55-57) for distributing signals which are to be transmitted for such a communication between said at least two different processes to different virtual channels on said at least one physical channel.
10. Processing system according to claim 9, wherein said means (55-57) for distributing signals to different virtual channels include means for assigning different priorities to different kinds of signals that are to be transmitted between said different processes.
11. Processing system according to claim 9 comprising several chips, wherein each of at least two of said chips includes at least one processor (50-52) for running at least one process, wherein each of said at least two chips has access to the at least one physical channel, and wherein said means (55-57) for distributing signals to different virtual channels include a dedicated process in each chip for controlling the communication between the different processes of the processing system.
12. Processing system according to claim 9, wherein a software process is employed for controlling the communication between said at least two different processes, which software process is implemented in a microprocessor unit for handling the access of said different processes to said at least one physical channel.
13. Processing system according to claim 9, wherein a hardware process is employed for controlling the communication between the different processes, which hardware process is implemented in a communication assistance hardware (55) for handling the access of said different processes to said at least one physical channel.
14. Processing system according to claim 9, wherein said at least one physical channel is a bi-directional bus.
15. Processing system according to claim 9, wherein said processes between which a communication is to be enabled are hardware and/or software implemented processes.
16. Processing system according to claim 9, wherein said means (55-57) for distributing signals are designed to be independent from specific processes of said processing system.
17. Processing system according to claim 9, wherein said processing system is a real-time communications system.
18. Integrated chip comprising at least one processor (50-52) for running at least two different processes in said integrated chip, at least one physical channel provided for enabling a communication between different processes run in said integrated chip, and means (55-57) according to claim 9 for distributing signals that are to be transmitted for such a communication between processes run in said integrated chip to different virtual channels on said at least one physical channel.
19. Integrated chip comprising at least one processor (50-52) for running at least one process in said integrated chip, an interface (64,74) to at least one external physical channel provided for enabling a communication between said at least one process in said integrated chip and at least one other process running in another integrated chip, and means (55-57) according to claim 9 for distributing signals that are to be transmitted for such a communication between processes running in said integrated chip and in another integrated chip to different virtual channels using said at least one external physical channel.
20. Module for an integrated chip comprising means (55-57) according to claim 9 for distributing signals that are to be transmitted between different processes running in said integrated chip and/or between a process running in said integrated chip and a process running in another integrated chip for enabling a communication between said processes to virtual channels on a physical channel within said integrated chip and/or a physical channel connecting said integrated chip and another integrated chip.
US10/187,393 2001-06-28 2002-06-27 Method for enabling a communication between processes, processing system, integrated chip and module for such a chip Abandoned US20030023776A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/461,959 US9817705B2 (en) 2001-06-28 2014-08-18 Method for enabling a communication between processes, processing system, integrated chip and module for such a chip

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01114829.3 2001-06-28
EP01114829A EP1271331B1 (en) 2001-06-28 2001-06-28 Method for enabling a communication between processes and processing system using the same method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/461,959 Continuation US9817705B2 (en) 2001-06-28 2014-08-18 Method for enabling a communication between processes, processing system, integrated chip and module for such a chip

Publications (1)

Publication Number Publication Date
US20030023776A1 true US20030023776A1 (en) 2003-01-30

Family

ID=8177759

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/187,393 Abandoned US20030023776A1 (en) 2001-06-28 2002-06-27 Method for enabling a communication between processes, processing system, integrated chip and module for such a chip
US14/461,959 Expired - Fee Related US9817705B2 (en) 2001-06-28 2014-08-18 Method for enabling a communication between processes, processing system, integrated chip and module for such a chip

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/461,959 Expired - Fee Related US9817705B2 (en) 2001-06-28 2014-08-18 Method for enabling a communication between processes, processing system, integrated chip and module for such a chip

Country Status (6)

Country Link
US (2) US20030023776A1 (en)
EP (1) EP1271331B1 (en)
AT (1) ATE411561T1 (en)
AU (1) AU2002309184A1 (en)
DE (1) DE60136168D1 (en)
WO (1) WO2003003221A2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060256106A1 (en) * 2005-05-13 2006-11-16 Scarlata Vincent R Method and apparatus for migrating software-based security coprocessors
US20060256105A1 (en) * 2005-05-13 2006-11-16 Scarlata Vincent R Method and apparatus for providing software-based security coprocessors
US20060256108A1 (en) * 2005-05-13 2006-11-16 Scaralata Vincent R Method and apparatus for remotely provisioning software-based security coprocessors
US20080077916A1 (en) * 2006-09-27 2008-03-27 Supalov Alexander V Virtual heterogeneous channel for message passing
US20090089582A1 (en) * 2007-09-27 2009-04-02 Tasneem Brutch Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US8249257B2 (en) 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
US8281060B2 (en) 2006-09-27 2012-10-02 Intel Corporation Virtual heterogeneous channel for message passing

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929870B (en) * 2019-12-06 2022-07-22 华为技术有限公司 Event subscription method and electronic equipment

Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
US4901231A (en) * 1986-12-22 1990-02-13 American Telephone And Telegraph Company Extended process for a multiprocessor system
US5062040A (en) * 1986-12-22 1991-10-29 At&T Bell Laboratories Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
US5379297A (en) * 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
US5463629A (en) * 1992-07-13 1995-10-31 Ko; Cheng-Hsu Dynamic channel allocation method and system for integrated services digital network
US5495619A (en) * 1989-06-30 1996-02-27 Sgs Thomson Microelectronics Apparatus providing addressable storage locations as virtual links and storing predefined destination information for any messages transmitted on virtual links at these locations
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
US5603059A (en) * 1994-04-22 1997-02-11 Pitney Bowes Inc. Software architecture system having a virtual I/O channel including multi-layered communication interface in between virtual stations and physical modules
US5659796A (en) * 1995-04-13 1997-08-19 Cray Research, Inc. System for randomly modifying virtual channel allocation and accepting the random modification based on the cost function
US5828746A (en) * 1995-06-07 1998-10-27 Lucent Technologies Inc. Telecommunications network
US5892923A (en) * 1994-12-28 1999-04-06 Hitachi, Ltd. Parallel computer system using properties of messages to route them through an interconnect network and to select virtual channel circuits therewithin
US6005851A (en) * 1997-10-10 1999-12-21 Nortel Networks Corporation Adaptive channel control for data service delivery
US6014690A (en) * 1997-10-24 2000-01-11 Digital Equipment Corporation Employing multiple channels for deadlock avoidance in a cache coherency protocol
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6178453B1 (en) * 1997-02-18 2001-01-23 Netspeak Corporation Virtual circuit switching architecture
US6212361B1 (en) * 1998-04-02 2001-04-03 Lucent Technologies, Inc. Ordering message signals for transmission over a telecommunications channel
US6222845B1 (en) * 1997-02-25 2001-04-24 Cascade Communications Corp. System and method for providing unitary virtual circuit in digital network having communication links of diverse service types
US20020042864A1 (en) * 2000-10-05 2002-04-11 Hideo Iizuka Circuit and method for executing access control of virtual channel memory preventing deterioration of data transfer rate
US6393569B1 (en) * 1996-12-18 2002-05-21 Alexander S. Orenshteyn Secured system for accessing application services from a remote station
US6393506B1 (en) * 1999-06-15 2002-05-21 National Semiconductor Corporation Virtual channel bus and system architecture
US20020129206A1 (en) * 2000-12-29 2002-09-12 Manoj Khare Mechanism for handling conflicts in a multi-node computer architecture
US6674720B1 (en) * 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6792505B2 (en) * 2001-04-16 2004-09-14 International Business Machines Corporation System apparatus and method for storage device controller-based message passing having effective data channel bandwidth and controller cache memory increase
US6856950B1 (en) * 1999-10-15 2005-02-15 Silicon Graphics, Inc. Abstract verification environment
US7114043B2 (en) * 2002-05-15 2006-09-26 Broadcom Corporation Ambiguous virtual channels

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062140A (en) 1988-04-27 1991-10-29 Sony Corporation Induction speaker
FR2749092B1 (en) * 1996-05-21 1998-08-21 Cs Technologies Informatiques METHOD FOR INTERCONNECTING THE NODES OF A REAL TIME PARALLEL COMPUTER
DE19715799C2 (en) * 1997-04-16 1999-04-08 Philips Patentverwaltung Local network with means of implementation

Patent Citations (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
US4901231A (en) * 1986-12-22 1990-02-13 American Telephone And Telegraph Company Extended process for a multiprocessor system
US5062040A (en) * 1986-12-22 1991-10-29 At&T Bell Laboratories Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
US5495619A (en) * 1989-06-30 1996-02-27 Sgs Thomson Microelectronics Apparatus providing addressable storage locations as virtual links and storing predefined destination information for any messages transmitted on virtual links at these locations
US5379297A (en) * 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
US5463629A (en) * 1992-07-13 1995-10-31 Ko; Cheng-Hsu Dynamic channel allocation method and system for integrated services digital network
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US6354748B1 (en) * 1993-11-24 2002-03-12 Intel Corporation Playing audio files at high priority
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
US5603059A (en) * 1994-04-22 1997-02-11 Pitney Bowes Inc. Software architecture system having a virtual I/O channel including multi-layered communication interface in between virtual stations and physical modules
US5892923A (en) * 1994-12-28 1999-04-06 Hitachi, Ltd. Parallel computer system using properties of messages to route them through an interconnect network and to select virtual channel circuits therewithin
US5659796A (en) * 1995-04-13 1997-08-19 Cray Research, Inc. System for randomly modifying virtual channel allocation and accepting the random modification based on the cost function
US5828746A (en) * 1995-06-07 1998-10-27 Lucent Technologies Inc. Telecommunications network
US5850434A (en) * 1995-06-07 1998-12-15 Lucent Technologies Inc. Telecommunications network
US6393569B1 (en) * 1996-12-18 2002-05-21 Alexander S. Orenshteyn Secured system for accessing application services from a remote station
US6178453B1 (en) * 1997-02-18 2001-01-23 Netspeak Corporation Virtual circuit switching architecture
US6222845B1 (en) * 1997-02-25 2001-04-24 Cascade Communications Corp. System and method for providing unitary virtual circuit in digital network having communication links of diverse service types
US6005851A (en) * 1997-10-10 1999-12-21 Nortel Networks Corporation Adaptive channel control for data service delivery
US6014690A (en) * 1997-10-24 2000-01-11 Digital Equipment Corporation Employing multiple channels for deadlock avoidance in a cache coherency protocol
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6212361B1 (en) * 1998-04-02 2001-04-03 Lucent Technologies, Inc. Ordering message signals for transmission over a telecommunications channel
US6393506B1 (en) * 1999-06-15 2002-05-21 National Semiconductor Corporation Virtual channel bus and system architecture
US6674720B1 (en) * 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6856950B1 (en) * 1999-10-15 2005-02-15 Silicon Graphics, Inc. Abstract verification environment
US20020042864A1 (en) * 2000-10-05 2002-04-11 Hideo Iizuka Circuit and method for executing access control of virtual channel memory preventing deterioration of data transfer rate
US6751712B2 (en) * 2000-10-05 2004-06-15 Nec Corporation Circuit and method for executing access control of virtual channel memory preventing deterioration of data transfer rate
US20020129206A1 (en) * 2000-12-29 2002-09-12 Manoj Khare Mechanism for handling conflicts in a multi-node computer architecture
US6792505B2 (en) * 2001-04-16 2004-09-14 International Business Machines Corporation System apparatus and method for storage device controller-based message passing having effective data channel bandwidth and controller cache memory increase
US7114043B2 (en) * 2002-05-15 2006-09-26 Broadcom Corporation Ambiguous virtual channels
US7269695B2 (en) * 2002-05-15 2007-09-11 Broadcom Corporation Ambiguous virtual channels

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298948B2 (en) 2005-05-13 2016-03-29 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US9483662B2 (en) 2005-05-13 2016-11-01 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US20060256108A1 (en) * 2005-05-13 2006-11-16 Scaralata Vincent R Method and apparatus for remotely provisioning software-based security coprocessors
US9501665B2 (en) 2005-05-13 2016-11-22 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8068613B2 (en) 2005-05-13 2011-11-29 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7587595B2 (en) * 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US9311507B2 (en) 2005-05-13 2016-04-12 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US9524400B2 (en) 2005-05-13 2016-12-20 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US20060256105A1 (en) * 2005-05-13 2006-11-16 Scarlata Vincent R Method and apparatus for providing software-based security coprocessors
US7636442B2 (en) * 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US20060256106A1 (en) * 2005-05-13 2006-11-16 Scarlata Vincent R Method and apparatus for migrating software-based security coprocessors
US8565437B2 (en) 2005-05-13 2013-10-22 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8953806B2 (en) 2005-05-13 2015-02-10 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8953807B2 (en) 2005-05-13 2015-02-10 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8281060B2 (en) 2006-09-27 2012-10-02 Intel Corporation Virtual heterogeneous channel for message passing
US20080077916A1 (en) * 2006-09-27 2008-03-27 Supalov Alexander V Virtual heterogeneous channel for message passing
US20090089582A1 (en) * 2007-09-27 2009-04-02 Tasneem Brutch Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US8064605B2 (en) 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US8249257B2 (en) 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM

Also Published As

Publication number Publication date
US20150135196A1 (en) 2015-05-14
WO2003003221A2 (en) 2003-01-09
WO2003003221A3 (en) 2003-03-13
DE60136168D1 (en) 2008-11-27
AU2002309184A1 (en) 2003-03-03
EP1271331B1 (en) 2008-10-15
US9817705B2 (en) 2017-11-14
EP1271331A1 (en) 2003-01-02
ATE411561T1 (en) 2008-10-15

Similar Documents

Publication Publication Date Title
US9817705B2 (en) Method for enabling a communication between processes, processing system, integrated chip and module for such a chip
US7924708B2 (en) Method and apparatus for flow control initialization
US5634015A (en) Generic high bandwidth adapter providing data communications between diverse communication networks and computer system
US6233643B1 (en) Apparatus including a host processor and communications adapters interconnected with a bus
US7594052B2 (en) Integrated circuit and method of communication service mapping
US10467154B2 (en) Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus
EP1891778B1 (en) Electronic device and method of communication resource allocation.
US20060123178A1 (en) Generating multiple traffic classes on a PCI Express fabric from PCI devices
US7757022B2 (en) Integrated circuit device and signal transmission system
US20080084893A1 (en) Network-on-chip apparatus, and method for controlling dynamic frequency for the same
JP2009538024A (en) Gateway for data bus system
JP2008310832A (en) Apparatus and method for distributing signal from high level data link controller to a plurality of digital signal processor cores
JP2005518578A (en) Tagging and arbitration mechanisms at the input / output nodes of computer systems
US20030128709A1 (en) Scalable, re-configurable crossbar switch architecture for multi-processor system interconnection networks
JP4391819B2 (en) I / O node of computer system
US6178180B1 (en) Communications adapter for processing ATM and ISDN data
US7218638B2 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling
US20080181242A1 (en) Communications gateway between two entities
US6035366A (en) Computer architecture using packet switches for internal data transfer
US6857033B1 (en) I/O node for a computer system including an integrated graphics engine and an integrated I/O hub
US7136956B2 (en) Semiconductor device
JP3460080B2 (en) Distributed management communication method and apparatus
KR100391712B1 (en) IPC Matching Apparatus of Switching System
CN117632825A (en) Multiplexing communication system
JP2002330162A (en) Method and device for distributed communication control

Legal Events

Date Code Title Description
AS Assignment

Owner name: NOKIA CORPORATION, FINLAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KOLINUMMI, PASI;VEHVILAINEN, JUHANI;REEL/FRAME:013373/0858

Effective date: 20021002

STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION

AS Assignment

Owner name: NOKIA TECHNOLOGIES OY, FINLAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOKIA CORPORATION;REEL/FRAME:035551/0535

Effective date: 20150116