Source: https://patents.google.com/patent/KR101163868B1/en
Timestamp: 2020-02-20 01:24:13
Document Index: 92039444

Matched Legal Cases: ['art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 800', 'art 800']

KR101163868B1 - System and method for inter-processor communication - Google Patents
KR101163868B1
KR101163868B1 KR1020107009685A KR20107009685A KR101163868B1 KR 101163868 B1 KR101163868 B1 KR 101163868B1 KR 1020107009685 A KR1020107009685 A KR 1020107009685A KR 20107009685 A KR20107009685 A KR 20107009685A KR 101163868 B1 KR101163868 B1 KR 101163868B1
KR1020107009685A
KR20100083806A (en
마크 그로스버그
폴 크르지자노우스키
에오인 하이덴
오픈픽 인크.
2007-10-02 Priority to US97683307P priority Critical
2007-10-02 Priority to US60/976,833 priority
2008-09-26 Application filed by 오픈픽 인크. filed Critical 오픈픽 인크.
2008-09-26 Priority to PCT/US2008/077882 priority patent/WO2009045904A1/en
2010-07-22 Publication of KR20100083806A publication Critical patent/KR20100083806A/en
2012-07-13 Publication of KR101163868B1 publication Critical patent/KR101163868B1/en
Means for reliable interprocessor communication in a multi-processor system are described. According to one aspect, a specially configured serial bus is used as a general purpose data link between the first processor and the second processor. The serial bus may be an I 2 S (Inter-IC Sound) bus. According to another aspect, the network interface present in the second processor is made available to the first processor via a data link established through the I 2 S bus. This allows the second processor to be used as a proxy and to support remote configuration and network address traversal (NAT).
SYSTEM AND METHOD FOR INTER-PROCESSOR COMMUNICATION}
The present invention relates to a multi-processor system including but not limited to dual-processor systems.
It is well known to use a dual-processor design to achieve energy efficient, fault-tolerant systems. Dual-processor systems are those that include two separate physical microprocessors in the same chassis (on the same board or on separate boards). The dual-processor architecture offers several advantages over the single-processor architecture. For example, in a dual-processor system, both processors can work individually and simultaneously for isolated tasks. Such multi-tasking computer capabilities are crucial in processor-intensive applications such as creating, editing and rendering graphics and multimedia files.
In communication systems such as Voice over Internet Protocol (VoIP) phones, a dual-processing architecture can be implemented to minimize latency and jitter in voice communications. The example dual-processor architecture may include a first central processing unit (CPU) configured to process traditional operating system (OS) and computational tasks and a digital signal processor (DSP) configured to process audio signal data. However, for two different kinds of separate and / or isolated processors to work together cooperatively, a reliable means must be provided for the processors to communicate with each other.
The present invention provides a reliable means for interprocessor communication in a multi-processor system. According to one aspect of the invention, a specially configured serial bus is used as a general purpose data link between the first processor and the second processor. The serial bus may be an I 2 S (Inter-IC Sound) bus. According to another aspect of the present invention, the network interface present in the second processor is made available to the first processor via a data link established through the I 2 S bus. This allows the second processor to be used as a proxy and to support remote configuration and network address traversal (NAT).
In particular, a method is described herein that facilitates communication between a first processor and a second processor. According to the method, a continuous serial clock signal is transmitted from the first processor to the second processor. A first plurality of frames is transmitted from the first processor to the second processor during the transmission of the continuous serial clock signal, the first plurality of frames comprising at least one data frame. Transmitting the continuous serial clock signal may include transmitting the continuous serial clock signal through a serial clock signal line of an I 2 S (Inter-IC Sound) bus and transmitting the first plurality of frames. The method may include transmitting the first plurality of frames over a first serial data line of the I 2 S bus.
The method includes transmitting a second plurality of frames from the second processor to the first processor during transmission of the continuous clock signal, wherein each transmission of the second plurality of frames is performed by the first plurality of frames. Synchronized with each transmission of each frame of frames. Transmitting the second plurality of frames includes transmitting the second plurality of frames over a second serial data line of an I 2 S (Inter-IC Sound) bus.
The method may also further include transmitting a word select signal from the first processor to the second processor, wherein transmitting the first plurality of frames comprises the continuous serial clock signal and the word select signal. And transmitting each of the first plurality of frames in synchronization, wherein transmitting the second plurality of frames comprises: transmitting each of the second plurality of frames in synchronization with the continuous serial clock signal and the word select signal; It includes sending.
Also described herein are multi-processor systems. The system includes a first processor, a second processor, and a serial bus interface connecting the first processor and the second processor. The first processor transmits a continuous serial clock signal to the second processor via the serial bus interface and transmits a first plurality of frames to the second processor via the serial bus interface during transmission of the continuous serial clock signal. Configured to transmit. The first plurality of frames includes at least one data frame. The serial bus interface may include an I 2 S bus.
The second processor may be configured to transmit a second plurality of frames to the first processor during the transmission of the continuous clock signal, wherein each transmission of the second plurality of frames is each of the first plurality of frames. It is synchronized with each transmission of the frame of.
Also described herein is a method of using a first processor that can access the network interface as a proxy for a second processor that cannot access the network interface. According to the method, a data link is established between the first processor and the second processor via an I 2 S bus. The network interface is then accessed by the second processor via the data link. Accessing the network interface may include configuring the network interface. Configuring the network interface may include configuring network address traversal (NAT) functions or configuring a Transmission Control Protocol (TCP) / Internet Protocol (IP) stack.
Also described herein are multi-processor systems. The system includes a first processor, a second processor, an I 2 S bus connecting the first processor and the second processor, and a network interface connected to the first processor but not to the second processor. The second processor is configured to establish a data link with the first processor via the I 2 S bus and to access the network interface via the data link. The second processor may be adapted to configure the network interface by configuring network address traversal (NAT) functions or by configuring a Transmission Control Protocol (TCP) / Internet Protocol (IP) stack.
Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with reference to the accompanying drawings. Note that the present invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to those of ordinary skill in the art based on the teachings contained herein.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate the invention, and together with the description, illustrate the principles of the invention and enable those skilled in the art to make and use the invention. It is even more helpful.
1 is a block diagram of a system for Voice over Internet Protocol (VoIP) that may implement the present invention.
2 illustrates a connection between a first processor and a second processor using an I 2 S bus according to an embodiment of the invention.
3 illustrates the simultaneous exchange of fixed-length frames between first and second processors over an I 2 S bus according to an embodiment of the invention.
4 is a block diagram illustrating components of the first and second processors used to implement a voice prioritization scheme for transmitting frames between two processes in accordance with an embodiment of the present invention. to be.
5 shows a flowchart of a method for facilitating communication between a first processor and a second processor according to an embodiment of the present invention.
6 is a block diagram illustrating a first processor using a second processor as a network proxy according to an embodiment of the present invention.
7 is another block diagram illustrating a first processor using a second processor as a network proxy according to an embodiment of the present invention.
8 illustrates a flow diagram of a method of using a first processor capable of accessing a network as a proxy for a second processor unable to access a network interface according to an embodiment of the present invention.
The features and advantages of the present invention will become more apparent upon reading the detailed description set forth below in connection with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numerals generally indicate identical, functionally similar, and / or structurally similar elements. The drawing in which the element first appears is indicated by the leftmost digit (s) of the corresponding reference number.
1 illustrates an example operating environment in which embodiments of the present invention may operate. In particular, FIG. 1 is a block diagram of a system 100 for a VoIP telephone that may implement the present invention. System 100 uses a dual-processor architecture. Specifically, system 100 includes a first processor 102 configured to process traditional operating system (OS) and computational tasks and a second processor 104 configured to process audio signal data. In one embodiment, first processor 102 is an MCIMX31 (i.MX31) multimedia application processor sold by Freescale Semiconductor, Inc. of Austin, Texas and second processor 104 is Massachusetts ADSP-BF536 Blackfin? Sold by Analog Devices, Inc., of Norwood. It is an embedded processor. In the system 100 of FIG. 1, the first processor 102 is configured to function as a Linux-based central processing unit (CPU) while the second processor 104 operates as a digital signal processor (DSP).
As shown in FIG. 1, the first processor 102 is coupled to a memory 112 that stores data used or generated during execution of such instructions as well as program instructions for execution by the first processor 102. do. Similarly, the second processor 104 is coupled to a memory 116 that stores data used or generated during execution of such instructions as well as program instructions for execution by the second processor 104. As also shown in FIG. 1, the second processor 104 includes a network interface 118 including an Ethernet PHY and MAC 122 and an RJ45 connection 124, and a PSTN line interface 126 and an RJ11 connection 128. Is connected to an optional plain old telephone service (POTS) interface 120, which includes &lt; RTI ID = 0.0 &gt;
When the system 100 of FIG. 1 is operating as a VoIP speaker phone, the audio subsystem 106 captures voice input from the user through a microphone (not shown in FIG. 1) and converts the voice input into an analog audio signal. Convert to The audio subsystem 106 provides its analog audio signal to the first processor 102, which is then transmitted to the Internet Protocol (IP) network via the network interface 118. Before it is passed to the second processor 104 for compression. In contrast, the compressed audio signal is received by the second processor 104 from the IP network via the network interface 118. The second processor 104 decompresses the compressed audio signal to generate a digital audio signal and transmits the digital audio signal to the first processor 102. The first processor 102 converts the digital audio signal into analog form and delivers the analog audio signal to the audio subsystem 106 for playback to a user through a speaker (not shown in FIG. 1).
By providing the first processor 102 with access to analog audio input and output signals, the system 100 of FIG. 1 allows the first processor 102 to associate with those signals, such as speech recognition or audio signal change. Allows you to perform specific functions. In addition, by directly connecting the first processor 102 to the audio subsystem 106, the system 100 of FIG. 1 may be configured such that the processor plays back non-telephony-related audio content. It allows the microphone and speakers of the audio subsystem 106 to be used to perform media or multimedia related functions. The first processor 102 may also include other functions, including but not limited to presentation of a graphical user interface via the display 110, which may include an LCD display, and processing of user input received via the keypad 108. Configured to perform the
In contrast, the primary function of the second processor 104 is to compress and decompress the audio signal for each transmission or reception of the audio signal over the IP network via the network interface 118. Compression and decompression functions are implemented as signal processing algorithms by the second processor 104 and are computationally intensive. The second processor 104 may also be configured to perform ancillary functions such as voice activity detection, echo cancellation, or other well known functions related to the transmission or reception of audio signals through a telephony system. .
In order for the first processor 102 and the second processor 104 to work together in the manner described above, reliable interprocessor communication between the first processor 102 and the second processor 104 must be achieved. As will be described in more detail below, this reliable interprocessor communication is achieved using a specially configured link. In particular, in accordance with an embodiment of the present invention, a specially configured serial bus 114 is used. In one embodiment, the serial bus is an I 2 S (Inter-IC sound) bus.
In addition, according to an embodiment of the present invention, the network interface 118 present in the second processor 104 is made available to the first processor 102. In fact, the second processor 104 is used as a proxy and supports remote configuration and network address traversal (NAT). This feature will also be described in more detail below.
Although aspects of the present invention are described herein in connection with the example system 100 of FIG. 1, the present invention is not limited to its operating environment. As will be appreciated by those skilled in the art, the present invention can be used in any system that utilizes two or more processors to perform system functions.
B. Using a Serial Bus as a Universal Data Link in accordance with an embodiment of the present invention
According to an embodiment of the invention, a specially configured serial bus is used as a general purpose data link between the first processor and the second processor. In the embodiment described herein, the serial bus is an I 2 S bus, but the invention is not so limited. This aspect of the invention will now be described in more detail with respect to the example operating environment of FIG. 1, where the first processor 102 is an i.MX31 multimedia application processor and the second processor 104 is an ADSP-BF536 Blackfin? It is an embedded processor. However, the present invention is not limited to this particular embodiment and other processes may be used.
As will be appreciated by those skilled in the art, the I 2 S bus is a Philips for connecting digital audio devices together (such as compact disc (CD) players, digital audio tapes, digital sound processors and digital TV-sound). It is an electronic serial bus interface designed by Philips Semiconductors. For example, the I 2 S bus can function as a serial bus that carries two-channel (stereo) pulse code modulated digital data between a CD transport and a digital-to-analog (DAC) converter in a CD player. The I 2 S bus is described in the I 2 S bus specification (February 1986) issued by Philips Semiconductors, the entire contents of which are incorporated by reference as if they were fully described herein.
The I 2 S bus is typically used to process audio data only, while other signals (such as sub-coding and control) are transmitted separately. To minimize the number of pins required and keep the wiring simple, the I 2 S bus consists of three serial bus lines: a serial data line with two time division multiplexed data channels, a word select line, and a continuous Serial clock line. By separating the data and clock signals, the I 2 S bus avoids the time related errors that cause jitter, thereby eliminating the need for anti-jitter devices. Jitter can cause distortion in the DAC.
i.MX31 Multimedia Application Processor and ADSP-BF536 Blackfin? Both embedded processors provide at least one interface for connecting to an I 2 S bus. In particular, the i.MX31 multimedia application processor provides two Synchronous Serial Interface (SSI) / I 2 S interfaces, each of which can be used to connect to an I 2 S bus, while the BF536 Blackfin? The embedded processor provides two serial ports, each supporting I 2 S capable operation.
As shown in FIG. 2, in one implementation of the system 100 of FIG. 1, the i.MX31 multimedia application processor 202 (also referred to herein as the i.MX31 processor 202) and the BF536 (herein referred to herein). ADSP-BF536 Blackfin? (Also called processor 204). The embedded processors 204 are connected to each other via an I 2 S bus 206 using a four-wire configuration. According to this four-wire configuration, the first wire 232 is used to carry a continuous serial clock SCK, and the second wire 234 is used to carry a word select signal WS. Three wires 236 are used to carry the serial data SD1 from the BF536 processor 204 to the i.MX31 processor 202, and the fourth wire 238 is used to transfer the BF536 processor (from the i.MX31 processor 202). 204 is used to convey serial data SD2. The direction of transmission of the SCK and WS depends on which processor is functioning as the bus master. The use of two serial data lines allows simultaneous bidirectional transfer of data between two processes.
The BF536 processor 204 is configured to use the I 2 S bus 214 for transmitting data signals used for multiprocessor communication as well as for transmitting audio signals in a traditional manner. In an operating mode that is transmitting data signals over the I 2 S bus 214, the BF536 processor 204 is configured to stop and restart the serial clock SCK. In contrast, the i.MX31 processor 202 is configured to use an I 2 S bus for transmission of audio signals only. As a result, the i.MX31 processor 202 is not tolerant of stopping and restarting the serial clock SCK by the BF536 processor 204. Thus, when the I 2 S bus 214 is used by the i.MX31 processor 202 to transmit data signals, it is received over that bus and received first-in first-in FIFO of the i.MX31 processor 202. out) The data stored in the buffer may cause an error.
Ideally, you would prefer to transmit variable length frames between two processors only when needed. This will save not only processor cycles but also DMA (memory) bandwidth. But this is not necessarily achievable. For example, as described above, the suspension of the serial clock SCK during periods when data is not being transmitted between two processors may cause the i.MX31 processor 202 to lose synchronization and the processor's FIFO. The data stored in the buffer can cause errors.
Embodiments of the present invention overcome this problem by creating and using a continuously-running (streaming) protocol that ensures that the serial clock SCK never stops. Highly optimized packet mode data transmission is then layered on top of the I 2 S bus interface.
The streaming protocol uses fixed length frames with fixed length headers. As an example, FIG. 3 shows an exemplary fixed length frame 302 with a fixed length header 312 and a payload 314. Each fixed length header identifies the type of frame (eg, audio or data) and also includes other information such as the length and checksum of the packet carried by the frame. These fields are indicated by length 324 and checksum 326 in representative header 312, respectively. In one embodiment, the checksum is a 16 bit checksum placed over the entire data of the frame.
According to the streaming protocol, each endpoint exchanges fixed length frames at the same time. Therefore, when the first word of the frame header is being transmitted by the i.MX31 processor 202, the first word of the other frame header is also being transmitted by the BF536 processor 204. This allows each processor to use the same serial clock SCK and word select WS signal to control the transmission of data. As an example, simultaneous exchange of representative fixed length frames 302 and 304 is shown in FIG. 3. In an embodiment of the invention the WS signal is used to indicate the frame boundary. As mentioned above, each frame is classified as either an audio frame or a data frame. In one embodiment, the data frames are formatted as raw Internet Protocol (IP) datagrams that do not have a media access control (MAC) header.
Embodiments of the present invention also include a frame synchronization protocol that allows two processors to synchronize data transmissions. This frame synchronization protocol is used during system startup and may also be used when a processor reboots or in any situation where synchronization is lost between two processors for some reason.
To facilitate frame synchronization, the header of each frame includes two marker words. This is further illustrated in FIG. 3, which shows that the header 312 of the representative frame 302 includes a first marker word 322 and a second marker word 328. During frame synchronization, the processor serving as the bus master continuously clocks out "null" (empty) frames until it detects a boundary of frames transmitted by another frame. A null frame can be indicated by setting the packet length and checksum associated with that frame to zero. The bus master detects the boundary of frames transmitted by the other processor by searching the marker pattern of the other processor. Once the boundary of the frames transmitted by the other processor is detected, the bus master aligns its frame transmission with the frame transmission of the other processor. All further configuration then occurs at the Transmission Control Protocol (TCP) / IP layer.
In one embodiment of the present invention, each processor 202 and 204 is configured to receive an out-of-band reset signal to trigger the synchronization protocol described above. Since the implementation of the synchronization protocol is expensive in terms of time and processor resources, it is not desirable to use the protocol to support the transmission of variable length frames, although such an implementation is possible.
According to a further embodiment of the present invention, the two processors 202 and 204 communicate over an I 2 S communication link under a voice prioritization regime. That is, when transmitting frames, a pending voice or audio frame always takes precedence over the raw data frame. This approach is intended to minimize the latency and jitter associated with VoIP phone calls being processed by system 100.
4 is a block diagram illustrating components of each processor 202 and 204 used to implement a voice prioritization scheme. In particular, as shown in FIG. 4, each processor includes a data queue 402 and a voice queue 404 coupled to the transmitter 408 via a multiplexer 406. Data queue 402 is configured to hold data frames destined for transmission on an I 2 S communication link, while voice queue 404 is configured to hold voice frames destined for transmission on an I 2 S communication link. . For example, as shown in FIG. 4, data queue 402 holds example data frames 412 and voice queue 404 holds example voice frames 414. Multiplexer 406 is configured to selectively provide either a data frame from data queue 402 or a voice frame from voice queue 404 to transmitter 408 for transmission over an I 2 S communication link. Multiplexer 406 is also configured to perform this function by giving priority to speech frames over data frames.
As mentioned above, according to an embodiment of the present invention, data frames and voice frames are of fixed size. In order to ensure that a high bandwidth TCP / IP link is provided for voice communication, a large frame size can be used to carry voice information. For maximum efficiency, each frame is transmitted using as few memory copies as possible. As mentioned above, a simple 16 bit checksum is placed over the entire data of the frame in the header. Beyond that, the protocol does not require any checks on the payload for most of its processing.
5 shows a flowchart 500 of a method for facilitating communication between a first processor and a second processor in accordance with the foregoing description. The flowchart 500 will now be described with continued reference to the system 100 of FIG. 1. However, the method of flowchart 500 is not limited to its implementation.
As shown in FIG. 5, the method of flowchart 500 begins at step 502 where serial serial over the serial bus 114 from the first processor 102 to the second processor 104. The clock is sent. This step may include transmitting a continuous serial clock signal over the serial clock signal line of the I 2 S bus.
In step 504, a first plurality of frames is transmitted from the first processor 102 to the second processor 104 via the serial bus 114 during the transmission of the continuous serial clock signal. This step can include transmitting the first plurality of frames over the first serial data line of the I 2 S bus. The first plurality of frames may comprise voice or data frames. Each of the first plurality of frames may include a fixed length frame.
In step 506, a second plurality of frames is transmitted from the second processor 104 to the first processor 102 via the serial bus 114 during the transmission of the continuous serial clock signal, where the second plurality of frames Each transmission of the first plurality of frames is synchronized with each transmission of each frame of the first plurality of frames. This step can include transmitting a second plurality of frames over a second serial data line of the I 2 S bus. The second plurality of frames may comprise voice or data frames. Each of the second plurality of frames may include a fixed length frame.
The method of the flowchart 500 described above may further include transmitting a word select signal from the first processor 102 to the second processor 104 via the serial bus 114. In such an embodiment, transmitting the first plurality of frames may include transmitting the first plurality of frames in synchronization with the continuous serial clock signal and the word select signal. Further, in such an embodiment, transmitting the second plurality of frames may include transmitting the second plurality of frames in synchronization with the continuous serial clock signal and the word select signal. Transmitting the word select signal may include transmitting a word select signal over a word select signal line on an I 2 S bus.
C. The first processor uses the second processor as a network proxy in accordance with the present invention.
Networkable consumer electronic devices incorporating multiple processors often have a single network interface (eg, an Ethernet or Wi-Fi interface) accessible only by one processor. It would be beneficial for all processors in a multi-processor system to use that single network interface. In particular, it would be beneficial if a single processor with network access could function as a proxy supporting remote configuration and network address traversal (NAT).
As described above, in one embodiment of the present invention, a serial bus, such as an I 2 S bus, may comprise a first processor (which may be a general purpose CPU) and a first processor (which may be an external / remote DSP, for example). It functions as a high speed, large bandwidth, general purpose data link between the second processors, providing reliable data transfer between the two processors. According to another aspect of the invention, the serial bus also enables each processor in a multi-processor system to access a network, such as an Ethernet or Wi-Fi network, without resorting to using internal switches or multiple transceivers. Can be used for
For example, in the system 100 described above with respect to FIG. 1, the network interface 118 is present in the second processor 104. According to an embodiment of the invention, the first processor 102 is adapted to configure and use the network interface 118 on the remote processor 104 via the serial bus 114. An example of such an embodiment is shown in FIG. 6, in which the first processor 102 is implemented as an i.MX31 multimedia application processor 602 (also referred to herein as an i.MX31 processor 602), and a second The processor 104 is an ADSP-BF536 Blackfin® (also referred to herein as a BF536 processor 604). It is implemented as an embedded processor 604, and the serial bus 114 is implemented as an I 2 S bus 606.
In connection with the embodiment shown in FIG. 6, a protocol is employed that allows the i.MX31 processor 602 to configure the BF536 processor 604. This protocol is layered on top of the I 2 S bus 606 and includes other functions present in the BF536 processor 604 as well as the configuration of network address traversal (NAT) and TCP / IP stacks. It is used to construct protocols. Such other functions may include, but are not limited to, speech engine configuration, public switched telephone network (PSTN) telephony, system heartbeat, and other miscellaneous tasks.
This concept is further illustrated in FIG. In particular, FIG. 7 illustrates a multiprocessor system 700 according to an embodiment of the present invention in which a first processor 702 is connected to a second processor 704 via an internal link 708. The first processor 702 may configure the NAT / routing logic 712 in the second processor 704 using a protocol layered on top of a serial bus interface, such as the I 2 S interface implemented on the internal link 708. Can be. Such a configuration of NAT / routing logic 712 may be assigned to the first processor 702 (indicated by “private address B” in FIG. 6) and to the first processor 702 (indicated by “private address A”). And assigning two private IP addresses to the second processor 704. Such private IP addresses may be used by the NAT / routing logic 712 in a well known manner to manage communication between each of the two processors and entities residing in the network 706, where such communication is single. This is done via the network interface 710.
The use of such a protocol is particularly relevant in that the second processor 704 is used as a network router. In such a case, it is necessary to provide network configuration data to the second processor 704. According to this embodiment, internal link 708 is used to convey static IP addresses and TCP / IP is used to establish additional TCP / IP connections.
8 shows a flowchart 800 of a method of using a first processor capable of accessing a network interface as a proxy for a second processor unable to access a network interface according to the foregoing description. As shown in FIG. 8, the method of flowchart 800 begins at step 802, where a data link is established through an I 2 S bus between a first processor and a second processor. In step 804, the network interface is accessed by the second processor over the data link. In an embodiment, accessing the network interface includes configuring the network interface. Configuring the network interface may include, for example, configuring NAT functions and / or configuring a TCP / IP stack.
While various embodiments of the invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. For example, although aspects of the invention have been described above in connection with the dual-processor architecture of the system 100 of FIG. 1, the invention is not limited to its operating environment. Rather, embodiments of the present invention may be implemented in any system utilizing a multi-processor architecture.
Moreover, those skilled in the relevant art will understand that various changes in form and detail may be made to the embodiments of the invention described herein without departing from the spirit and scope of the invention as defined in the appended claims. . Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
A method of facilitating communication between a first processor and a second processor, the method comprising:
Transmitting a continuous serial clock signal from the first processor to the second processor, and
Transmitting a first plurality of frames from the first processor to the second processor during the transmission of the consecutive serial clock signal, the first plurality of frames comprising at least one data frame
Including a method for facilitating communication.
Transmitting the continuous serial clock signal comprises transmitting the continuous serial clock signal through a serial clock signal line of an I 2 S (Inter-IC Sound) bus,
Transmitting the first plurality of frames comprises transmitting the first plurality of frames over a first serial data line of the I 2 S bus.
Each of the first plurality of frames is a fixed length frame.
Transmitting a second plurality of frames from the second processor to the first processor during the transmission of the continuous clock signal,
Each transmission of the second plurality of frames facilitates communication synchronized with each transmission of each frame of the first plurality of frames.
And transmitting the second plurality of frames comprises transmitting the second plurality of frames over a second serial data line of an I 2 S (Inter-IC Sound) bus.
Transmitting a word select signal from the first processor to the second processor,
Transmitting the first plurality of frames comprises transmitting each of the first plurality of frames in synchronization with the continuous serial clock signal and the word select signal;
Transmitting the second plurality of frames comprises transmitting each of the second plurality of frames in synchronization with the continuous serial clock signal and the word select signal.
And transmitting the word select signal comprises transmitting the word select signal over a word select signal line of an I 2 S (Inter-IC Sound) bus.
Detecting a marker word in a header of at least one frame transmitted from the first processor to the second processor, and
Synchronizing transmission of the second plurality of frames based on the detected marker word.
Storing a data frame destined for transmission to the second processor in a first queue, and
Storing a voice frame destined for transmission to the second processor in a second queue,
And transmitting the first plurality of frames comprises transmitting the voice frame to the second processor prior to the data frame according to a voice prioritization scheme.
As a multi-processor system,
First processor,
A serial bus interface connecting the first processor and the second processor;
The first processor transmits a continuous serial clock signal to the second processor via the serial bus interface and transmits a first plurality of frames to the second processor via the serial bus interface during transmission of the continuous serial clock signal. And the first plurality of frames comprises at least one data frame.
The serial bus interface includes an I 2 S (Inter-IC Sound) bus,
And the first processor is configured to transmit the continuous serial clock signal through a serial clock signal line of the I 2 S bus.
The second processor is configured to transmit a second plurality of frames to the first processor during transmission of the continuous clock signal, wherein each transmission of the second plurality of frames is a respective frame of the first plurality of frames The multi-processor system synchronized with each transmission of the.
And the second processor is configured to transmit the second plurality of frames over a second serial data line of the I 2 S bus.
The first processor is further configured to transmit a word select signal to the second processor and transmit each of the first plurality of frames in synchronization with the continuous serial clock signal and the word select signal,
And the second processor is further configured to transmit the second plurality of frames in synchronization with the continuous serial clock signal and the word select signal.
Wherein the first processor is configured to transmit the word select signal via a word select signal line of an I 2 S (Inter-IC Sound) bus.
The second processor is further configured to detect a marker word in a header of at least one frame transmitted from the first processor and to synchronize transmission of the second plurality of frames based on the detected marker word. Multi-processor system configured.
11. The method of claim 10, wherein the first processor stores a data frame destined for transmission to the second processor in a first queue, and stores a voice frame destined for transmission to the second processor in a second queue. And transmit the voice frame to the second processor prior to the data frame based on a voice prioritization scheme.
A method of using a first processor capable of accessing a network interface as a proxy for a second processor not directly connected to a network interface, the method comprising:
Establishing a data link between the first processor and the second processor via an I 2 S (Inter-IC Sound) bus, and
Accessing the network interface by the second processor via the data link
Accessing the network interface comprises configuring the network interface.
Configuring the network interface comprises configuring network address traversal (NAT) functions.
Configuring the network interface comprises configuring a Transmission Control Protocol (TCP) / Internet Protocol (IP) stack.
Second processor,
An I 2 S (Inter-IC Sound) bus connecting the first processor and the second processor, and
A network interface connected to the first processor but not to the second processor,
And the second processor is configured to establish a data link with the first processor via the I 2 S bus and to access the network interface via the data link.
And the second processor is adapted to configure the network interface by configuring network address traversal (NAT) functions.
And said second processor is adapted to configure said network interface by configuring a Transmission Control Protocol (TCP) / Internet Protocol (IP) stack.
KR1020107009685A 2007-10-02 2008-09-26 System and method for inter-processor communication KR101163868B1 (en)
US97683307P true 2007-10-02 2007-10-02
US60/976,833 2007-10-02
PCT/US2008/077882 WO2009045904A1 (en) 2007-10-02 2008-09-26 System and method for inter-processor communication
KR20100083806A KR20100083806A (en) 2010-07-22
KR101163868B1 true KR101163868B1 (en) 2012-07-13
KR1020107009685A KR101163868B1 (en) 2007-10-02 2008-09-26 System and method for inter-processor communication
WO2017034200A1 (en) * 2015-08-26 2017-03-02 서경대학교 산학협력단 Method for allocating process to core in many-core platform and communication method between core processes
US10235324B2 (en) * 2015-09-30 2019-03-19 Nxp Usa, Inc. Interconnect sharing with integrated control for reduced pinout
JP2017130891A (en) 2016-01-22 2017-07-27 キヤノン株式会社 Radiation image capturing device, method for controlling radiation image capturing device, and radiation image capturing system
JP2007026033A (en) * 2005-07-15 2007-02-01 Fujitsu Ltd Semiconductor device and automatic decision method for operation mode of semiconductor device
2008-09-26 WO PCT/US2008/077882 patent/WO2009045904A1/en active Application Filing
2008-09-26 EP EP08836345.2A patent/EP2195746B1/en active Active
2008-09-26 CN CN200880116333A patent/CN101861577A/en not_active Application Discontinuation
2008-09-26 CA CA2701205A patent/CA2701205C/en active Active
2008-09-26 JP JP2010528044A patent/JP5363490B2/en active Active
2008-09-26 KR KR1020107009685A patent/KR101163868B1/en active IP Right Grant
2008-09-26 US US12/239,269 patent/US8755309B2/en active Active
KR20100083806A (en) 2010-07-22
US20090116475A1 (en) 2009-05-07
CA2701205C (en) 2015-04-28
EP2195746A4 (en) 2010-12-22
JP5363490B2 (en) 2013-12-11
JP2010541101A (en) 2010-12-24
US8755309B2 (en) 2014-06-17
CN101861577A (en) 2010-10-13
WO2009045904A1 (en) 2009-04-09
CA2701205A1 (en) 2009-04-09
EP2195746B1 (en) 2014-03-26
EP2195746A1 (en) 2010-06-16
JP3504505B2 (en) 2004-03-08 DSP-based multi-bus multiplex communication adapter